:root{
  --bs-primary:#0b2c53;
  --bs-primary-rgb:11,44,83;
  --bs-secondary:#f07f24;
  --bs-secondary-rgb:240,127,36;
  --bs-success:#4e9f62;
  --bs-info:#3978c7;
  --bs-warning:#e9b95f;
  --bs-danger:#cf4752;
  --bs-light:#f4f7fa;
  --bs-dark:#0a1d36;
  --bs-body-color:#1f3146;
  --bs-body-bg:#ffffff;
  --bs-border-radius:0.5rem;
  --bs-border-radius-sm:0.375rem;
  --bs-border-radius-lg:0.875rem;
  --bs-font-sans-serif:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --bs-font-monospace:ui-monospace,SFMono-Regular,'Cascadia Mono','Segoe UI Mono',Menlo,Consolas,monospace;
  --icon-pulse-duration:0.45s;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  font-weight:400;
  line-height:1.625;
  color:#1f3146;
  background-color:#fff;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  font-weight:800;
  letter-spacing:-0.02em;
  line-height:1.15;
  color:#0a1d36;
}

p{
  line-height:1.75;
}

a{
  color:var(--bs-primary);
  text-underline-offset:0.2rem;
  transition:color 0.2s ease-in-out;
}

a:hover{
  color:#0e3a6b;
}

img{
  max-width:100%;
  height:auto;
}

.bg-primary-soft{
  background-color:#e8eff7;
}

.bg-brand-dark{
  background-color:#0a1d36;
  color:#e9eef5;
}

.bg-brand-dark .h1,
.bg-brand-dark h1,
.bg-brand-dark .h2,
.bg-brand-dark h2,
.bg-brand-dark .h3,
.bg-brand-dark h3,
.bg-brand-dark .h4,
.bg-brand-dark h4{
  color:#fff;
}

.text-accent{
  color:#f07f24;
}

.text-accent-dark{
  color:#ce6413;
}

.overflow-hidden{
  overflow:hidden;
}

.divider-light{
  border:0;
  border-top:1px solid rgba(255,255,255,0.18);
  opacity:1;
}

.divider-dark{
  border:0;
  border-top:1px solid #dfe6ed;
  opacity:1;
}

main{
  display:block;
  overflow:clip;
}

#page-root{
  overflow:clip;
}

.btn{
  border-radius:0.5rem;
  font-weight:600;
  letter-spacing:0.01em;
  padding:0.62rem 1.35rem;
  transition:color 0.2s ease-in-out, background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, transform 0.2s ease-in-out;
}

.btn:active:not(:disabled){
  transform:translateY(1px);
}

.btn-lg{
  padding:0.9rem 2rem;
  font-size:1.02rem;
  border-radius:0.7rem;
}

.btn-primary{
  --bs-btn-bg:var(--bs-primary);
  --bs-btn-border-color:var(--bs-primary);
  --bs-btn-hover-bg:#12335b;
  --bs-btn-hover-border-color:#12335b;
  --bs-btn-active-bg:#0a2849;
  --bs-btn-active-border-color:#0a2849;
  --bs-btn-disabled-bg:var(--bs-primary);
  --bs-btn-disabled-border-color:var(--bs-primary);
  box-shadow:0 0.25rem 1rem rgba(11,44,83,0.18);
}

.btn-outline-primary{
  --bs-btn-color:var(--bs-primary);
  --bs-btn-border-color:#8fa8c2;
  --bs-btn-hover-bg:var(--bs-primary);
  --bs-btn-hover-border-color:var(--bs-primary);
  --bs-btn-active-bg:#0a2849;
  --bs-btn-active-border-color:#0a2849;
}

.btn-accent{
  background-color:#f07f24;
  border:1px solid #f07f24;
  color:#0a1d36;
  font-weight:700;
  box-shadow:0 0.25rem 1rem rgba(240,127,36,0.25);
}

.btn-accent:hover,
.btn-accent:focus{
  background-color:#e5751c;
  border-color:#e5751c;
  color:#081725;
}

.btn-outline-light{
  --bs-btn-color:#fff;
  --bs-btn-border-color:rgba(255,255,255,0.7);
  --bs-btn-hover-bg:rgba(255,255,255,0.1);
  --bs-btn-hover-border-color:#fff;
  --bs-btn-hover-color:#fff;
  --bs-btn-active-bg:rgba(255,255,255,0.2);
  --bs-btn-active-border-color:#fff;
}

.btn-outline-brand{
  --bs-btn-color:#0a1d36;
  --bs-btn-border-color:#a8bbd1;
  --bs-btn-hover-bg:#0a1d36;
  --bs-btn-hover-border-color:#0a1d36;
  --bs-btn-hover-color:#fff;
  --bs-btn-active-bg:#050f1f;
  --bs-btn-active-border-color:#050f1f;
}

.btn-icon{
  display:inline-flex;
  align-items:center;
  gap:0.55rem;
}

.text-body{
  color:#1f3146;
}

.text-dark-body{
  color:#0a1d36;
}

.section-header{
  max-width:850px;
  margin-bottom:3rem;
}

.section-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#cf6415;
}

.section-eyebrow::before{
  content:"";
  width:24px;
  height:2px;
  background-color:currentColor;
  display:inline-block;
  border-radius:1px;
}

.section-title{
  font-size:clamp(1.85rem,5vw,3.2rem);
  margin-top:0.65rem;
  margin-bottom:1.25rem;
}

@media(max-width:575.98px){
  .section-title{
    line-height:1.25;
  }
}

.section-lead{
  font-size:1.1rem;
  color:#3c5268;
  max-width:760px;
}

.bg-gradient-primary{
  background:linear-gradient(135deg,#0a1d36 0%,#0e3a65 100%);
}

.bg-gradient-accent{
  background:linear-gradient(120deg,#fca45a 0%,#f07f24 55%,#d9641a 100%);
}

.bg-soft-primary{
  background-color:#eef3f9;
}

.bg-soft-accent{
  background-color:#fff6ee;
}

.text-shadow-sm{
  text-shadow:0 1px 2px rgba(0,0,0,0.15);
}

.text-shadow-lg{
  text-shadow:0 4px 24px rgba(0,0,0,0.35);
}

.rounded-4{
  border-radius:1rem;
}

.rounded-5{
  border-radius:1.5rem;
}

.z-index-1{
  z-index:1;
}

.position-relative{
  position:relative;
}

.fs-small{
  font-size:0.875rem;
}

.fs-small-sm{
  font-size:0.8rem;
}

.tracking-wide{
  letter-spacing:0.05em;
}

.hover-lift{
  transition:transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover{
  transform:translateY(-6px);
  box-shadow:0 1rem 2.5rem rgba(10,29,54,0.1);
}

.w-100{
  width:100%;
}

/* ---------- Header / Navigation ---------- */

.site-header{
  position:relative;
  z-index:1000;
}

.site-header .navbar{
  padding-top:0.8rem;
  padding-bottom:0.8rem;
  transition:padding 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.site-header .navbar-brand{
  font-weight:800;
  font-size:1.45rem;
  color:var(--bs-dark);
  letter-spacing:-0.03em;
}

.site-header .navbar-brand span{
  color:#f07f24;
}

.site-header .navbar-light .navbar-nav .nav-link{
  color:#1f3146;
  font-weight:500;
  padding-top:0.5rem;
  padding-bottom:0.5rem;
  margin:0 0.15rem;
  transition:color 0.2s ease-in-out;
}

.site-header .navbar-light .navbar-nav .nav-link:hover,
.site-header .navbar-light .navbar-nav .nav-link:focus{
  color:#0a1d36;
}

.site-header .navbar-nav .nav-item.active .nav-link{
  color:#cf6415;
  font-weight:700;
}

.site-header .nav-cta{
  margin-left:0.75rem;
}

.site-header .nav-cta .btn{
  white-space:nowrap;
}

.site-header .navbar-toggler{
  border-color:transparent;
  padding:0.35rem 0.5rem;
}

.site-header .navbar-toggler:focus{
  box-shadow:none;
}

.header-info-bar{
  background:#0a1d36;
  color:#d6dee8;
  font-size:0.85rem;
}

.header-info-bar .info-item{
  display:inline-flex;
  align-items:center;
  gap:0.45rem;
  padding:0.4rem 0;
  font-weight:400;
}

.header-info-bar .info-item i{
  color:#f07f24;
  font-size:0.85rem;
}

.header-info-bar a{
  color:#e0e6ee;
  text-decoration:none;
}

.header-info-bar a:hover{
  color:#fff;
}

.site-header.scrolled .navbar{
  background-color:#fff;
  box-shadow:0 0.5rem 0.9rem rgba(10,29,54,0.08);
  padding-top:0.2rem;
  padding-bottom:0.2rem;
}

.site-header.scrolled .navbar.navbar-light{
  background-color:rgba(255,255,255,0.95);
  backdrop-filter:blur(8px);
}

.header-bottom-border{
  border-bottom:1px solid #edf1f5;
}

/* ---------- Hero ---------- */

.hero-section{
  background-color:#f4f8fd;
  position:relative;
  overflow:hidden;
  padding-top:4.5rem;
  padding-bottom:4.5rem;
}

.hero-section .hero-content{
  padding-right:2rem;
}

.hero-section h1{
  font-size:clamp(2.4rem,6vw,4rem);
  line-height:1.1;
  margin-bottom:1.1rem;
}

.hero-section h1 small{
  display:block;
  font-weight:600;
  color:#cf6415;
  letter-spacing:-0.02em;
}

.hero-section .hero-lead{
  color:#3c5268;
  font-size:1.1rem;
  max-width:600px;
}

.hero-section .hero-badge-list{
  display:flex;
  flex-wrap:wrap;
  gap:0.65rem;
  margin-top:1.5rem;
}

.hero-section .badge{
  background-color:rgba(255,255,255,0.7);
  color:#0a1d36;
  font-size:0.85rem;
  padding:0.5rem 0.9rem;
  border-radius:0.4rem;
  font-weight:500;
}

.hero-section .badge i{
  color:#e5751c;
  margin-right:0.3rem;
}

.hero-image-placeholder{
  background-color:#e2ebf3;
  border-radius:1.25rem;
  min-height:420px;
  box-shadow:0 1.25rem 3rem rgba(10,29,54,0.12);
}

.hero-image-placeholder::after{
  content:"";
  position:absolute;
  background-color:#96adc2;
  width:1.5rem;
  height:1.5rem;
  border-radius:50%;
}

.hero-stats-row{
  padding:2rem;
  background-color:#0a1d36;
  color:#fff;
  border-radius:1.25rem;
  box-shadow:0 1rem 2.5rem rgba(10,29,54,0.28);
}

.hero-stats-row .stat-value{
  font-size:2rem;
  font-weight:800;
  color:#fff;
}

.hero-stats-row .stat-label{
  color:#a8bbd1;
  font-size:0.8rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  font-weight:600;
}

/* ---------- Carousel variants ---------- */

.carousel-preset .carousel-caption{
  left:8%;
  right:auto;
  top:20%;
  text-align:left;
  max-width:600px;
  bottom:auto;
  padding:0;
  text-shadow:0 4px 32px rgba(0,0,0,0.4);
}

.carousel-preset .carousel-caption h2{
  font-size:clamp(1.8rem,5vw,3.4rem);
  color:#fff;
  text-shadow:0 4px 28px rgba(0,0,0,0.15);
}

.carousel-preset .carousel-caption p{
  color:rgba(255,255,255,0.9);
  font-size:1.05rem;
}

.carousel-preset .carousel-control-prev,
.carousel-preset .carousel-control-next{
  width:4.5rem;
  height:4.5rem;
  top:50%;
  bottom:auto;
  transform:translateY(-50%);
  border-radius:50%;
  background-color:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.3);
  opacity:1;
  margin:0 1.2rem;
  transition:background-color 0.2s ease, border-color 0.2s ease;
}

.carousel-preset .carousel-control-prev:hover,
.carousel-preset .carousel-control-next:hover{
  background-color:rgba(255,255,255,0.22);
  border-color:rgba(255,255,255,0.6);
}

.carousel-preset .carousel-control-prev i,
.carousel-preset .carousel-control-next i{
  font-size:1.4rem;
  line-height:1;
}

.carousel-preset .badge-img-caption{
  display:inline-block;
  letter-spacing:0.08em;
  padding:0.5rem 0.9rem;
  background-color:rgba(10,29,54,0.8);
  border-left:4px solid #f07f24;
  color:#fff;
  font-size:0.8rem;
  font-weight:700;
  text-transform:uppercase;
}

/* ---------- Services / Cards ---------- */

.service-card{
  border:0;
  border-radius:1.1rem;
  background-color:#fff;
  transition:transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow:0 0.5rem 1.25rem rgba(10,29,54,0.07);
  height:100%;
}

.service-card:hover{
  transform:translateY(-0.35rem);
  box-shadow:0 1.5rem 2.8rem rgba(10,29,54,0.12);
}

.service-card .card-icon{
  width:64px;
  height:64px;
  background-color:#eef3f9;
  color:var(--bs-primary);
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:1rem;
  font-size:1.6rem;
}

.service-card .card-title{
  font-size:1.35rem;
  font-weight:800;
  color:#0a1d36;
  margin-top:1.5rem;
  margin-bottom:0.8rem;
}

.service-card .card-text{
  color:#3c5268;
}

.service-card .card-link{
  display:inline-flex;
  font-weight:600;
  text-decoration:none;
  align-items:center;
  gap:0.5rem;
  color:#cf6415;
}

.service-card .card-link:hover{
  color:#a44e12;
}

.service-card .card-footer{
  background-color:#fff;
  border-top:0;
  padding-top:1rem;
}

.service-card .border-top-accent{
  border-top:3px solid #f07f24;
}

.stats-badge{
  background-color:#ffe9d6;
  color:#cf6415;
  border-radius:2rem;
  padding:0.35rem 0.8rem;
  font-weight:700;
  font-size:0.8rem;
}

.info-list{
  padding:0;
  margin:0;
  list-style:none;
}

.info-list li{
  position:relative;
  padding-left:2.2rem;
  margin-bottom:0.8rem;
}

.info-list li::before {
  content:"\f058";
  font-family:"Font Awesome 6 Free";
  font-weight:900;
  position:absolute;
  left:0;
  color:#f07f24;
}

.icon-rated-btn{
  background-color:#eaf0f7;
  color:#0a1d36;
  width:60px;
  height:60px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:0.9rem;
  transition:background-color 0.25s ease-in-out, color 0.25s ease-in-out;
}

.icon-rated-btn:hover{
  background-color:var(--bs-primary);
  color:#fff;
}

/* ---------- Feature badges ---------- */

.utility-comparison{
  border-bottom:1px solid #edf1f5;
}

.utility-comparison .comparison-item{
  border-left:1px solid #edf1f5;
  padding:0.5rem 0.5rem;
}

.utility-comparison .comparison-item:first-child{
  border-left:0;
  padding-left:0;
}

.border-separator{
  border-top:1px solid rgba(255,255,255,0.3);
}

/* ---------- Timeline ---------- */

.process-timeline{
  position:relative;
  margin-top:2rem;
}

.process-timeline:before{
  content:"";
  position:absolute;
  left:1.5rem;
  top:0;
  bottom:0;
  width:2px;
  background-color:#e2e6ed;
}

.process-step{
  display:flex;
  gap:1.25rem;
  margin-bottom:2rem;
  position:relative;
  z-index:1;
}

.process-step-block .step-number{
  flex:0 0 3rem;
  height:3rem;
  width:3rem;
  background-color:var(--bs-primary);
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:1rem;
  box-shadow:0 0.5rem 0.8rem rgba(10,29,54,0.2);
}

.process-step-block .step-content h4{
  margin-bottom:0.3rem;
  font-size:1.15rem;
  font-weight:700;
}

.process-step-block .step-content p{
  color:#52687c;
  margin:0.15rem 0 0;
}

@media(min-width:768px){
  .process-step:before{
    display:none;
  }
}

/* ---------- FAQ ---------- */

.faq-custom-accordion .accordion-item{
  border:1px solid #dfe6ed;
  border-radius:1rem;
  margin-bottom:1rem;
  overflow:hidden;
}

.faq-custom-accordion .accordion-button{
  border-radius:1rem;
  padding:1.2rem 1.5rem;
  font-weight:600;
  font-size:1.05rem;
  background-color:#ffffff;
  color:#0a1d36;
  box-shadow:none;
}

.faq-custom-accordion .accordion-button:not(.collapsed){
  background-color:#f4f7fa;
  color:#0a1d36;
}

.faq-custom-accordion .accordion-button:focus{
  box-shadow:none;
  border-color:#dfe6ed;
}

.faq-custom-accordion .accordion-button::after{
  width:1.2rem;
}

.faq-custom-accordion .accordion-body{
  color:#3c5268;
  padding:0.5rem 1.5rem 1.5rem;
}

/* ---------- Form ---------- */

.form-control,
.form-select{
  padding:0.8rem 1rem;
  border-color:#d2dae3;
  border-radius:0.6rem;
  background-color:#fff;
  font-size:1rem;
  transition:border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.form-control:focus,
.form-select:focus{
  border-color:#f07f24;
  box-shadow:0 0 0 0.2rem rgba(240,127,36,0.1);
}

.form-check-input:checked{
  background-color:var(--bs-primary);
  border-color:var(--bs-primary);
}

.form-label{
  font-weight:600;
  color:#1f3146;
}

.contact-info-item{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1.5rem;
}

.contact-info-item .contact-info-icon{
  background-color:#eaf0f7;
  color:var(--bs-primary);
  width:48px;
  height:48px;
  border-radius:0.8rem;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.2rem;
  flex-shrink:0;
}

.map-placeholder{
  border:0;
  width:100%;
  min-height:300px;
  border-radius:1rem;
}

.contact-card{
  background-color:#fff;
  border-radius:1rem;
  box-shadow:0 0.75rem 1.75rem rgba(10,29,54,0.1);
  padding:2.25rem;
}

/* ---------- CTA banner ---------- */

.bg-cta{
  background-image:linear-gradient(rgba(10,29,54,0.84),rgba(10,29,54,0.84)),url('');
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  color:#fff;
  padding-top:4.5rem;
  padding-bottom:4.5rem;
}

.bg-cta .btn{
  min-width:160px;
}

.bg-cta .cta-title{
  color:#fff;
  font-size:clamp(1.9rem,5vw,3rem);
  letter-spacing:-0.02em;
}

/* ---------- Cookie banner ---------- */

#cookie-banner{
  position:fixed;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:9999;
  background:#0a1d36;
  color:#dfe6ee;
  box-shadow:0 1.5rem 3rem rgba(0,0,0,0.4);
  padding:1.2rem 1.5rem;
  border-radius:1rem;
  border-left:5px solid #f07f24;
  max-width:560px;
  margin-left:auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
}

#cookie-banner .cookie-icon{
  width:44px;
  height:44px;
  background:rgba(240,127,36,0.15);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#f07f24;
  border-radius:0.7rem;
  font-size:1.2rem;
}

#cookie-banner .cookie-text{
  flex:1 1 220px;
  font-size:0.92rem;
  line-height:1.5;
}

#cookie-banner .cookie-text a{
  color:#fbc391;
}

#cookie-banner .cookie-actions{
  display:flex;
  gap:0.5rem;
}

@media(max-width:575.98px){
  #cookie-banner .cookie-actions{
    width:100%;
    margin-left:0;
  }

  #cookie-banner .cookie-actions .btn{
    flex:1;
  }
}

/* ---------- Form toast notification ---------- */

.form-toast{
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:10000;
  background:var(--bs-primary);
  color:#fff;
  padding:1rem 1.4rem;
  border-radius:0.75rem;
  box-shadow:0 1rem 2.6rem rgba(10,29,54,0.3);
  display:flex;
  align-items:center;
  gap:0.7rem;
  opacity:0;
  transform:translateY(20px);
  visibility:hidden;
  transition:opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
  max-width:340px;
}

.form-toast.show-toast{
  opacity:1;
  transform:translateY(0);
  visibility:visible;
}

.form-toast i{
  font-size:1.4rem;
  color:#f07f24;
}

.form-toast .toast-text{
  font-size:0.92rem;
  line-height:1.4;
}

.is-invalid-field{
  border-color:var(--bs-danger);
}

.form-error-message{
  color:#cf4752;
  font-size:0.85rem;
  margin-top:0.3rem;
}

/* ---------- Scroll progress ---------- */

.scroll-top-btn{
  position:fixed;
  right:1.5rem;
  bottom:1.5rem;
  z-index:9998;
  width:50px;
  height:50px;
  background-color:rgba(10,29,54,0.8);
  backdrop-filter:blur(4px);
  color:#fff;
  border:0;
  border-radius:0.75rem;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.25s ease, visibility 0.25s ease;
}

.scroll-top-btn.active{
  opacity:1;
  visibility:visible;
  cursor:pointer;
}

.scroll-top-btn:hover{
  background-color:#050f1f;
}

/* ---------- Custom marketing block ---------- */

.feature-mega-card{
  border-radius:1.5rem;
  background:#fff;
  box-shadow:0 0.5rem 1.6rem rgba(10,29,54,0.08);
  overflow:hidden;
}

.feature-mega-card .feature-text-block{
  padding:2.5rem;
}

.feature-mega-card .feature-media-block{
  background:#e8eff7;
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  color:var(--bs-primary);
}

.marquee-logos{
  display:flex;
  align-items:center;
  gap:2.5rem;
  flex-wrap:wrap;
  justify-content:space-between;
}

.stat-strip{
  background-color:#fff;
  border:1px solid #e8edf3;
  border-radius:1rem;
  padding:1.75rem 1rem;
  box-shadow:0 0.25rem 0.5rem rgba(10,29,54,0.06);
}

.stat-strip .d-block{
  font-weight:900;
  font-size:1.6rem;
  color:#0a1d36;
}

/* ---------- Team ---------- */

.team-card{
  position:relative;
  overflow:hidden;
  border-radius:1rem;
  background-color:var(--bs-light);
}

.team-card .team-photo-placeholder{
  background-color:#dee7ef;
  width:100%;
  min-height:260px;
}

.team-description{
  padding:1.2rem;
}

.team-name{
  font-weight:800;
  color:#0a1d36;
  font-size:1.05rem;
  margin-bottom:0.2rem;
}

.team-role{
  color:#3c5268;
  font-size:0.9rem;
}

/* ---------- Pricing cards ---------- */

.card-pricing{
  border:1px solid #e3e9ef;
  border-radius:1.5rem;
  padding:2.5rem 2rem;
  background:#fff;
  transition:transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

.card-pricing.card-featured{
  border:2px solid var(--bs-primary);
  box-shadow:0 1rem 2.6rem rgba(10,29,54,0.15);
  position:relative;
}

.card-pricing .cta-placement .btn{
  width:100%;
}

.pricing-amount{
  color:#0a1d36;
  font-weight:800;
  font-size:2.5rem;
  line-height:1.2;
}

.pricing-period{
  font-weight:600;
  color:#3c5268;
  font-size:0.95rem;
}

/* ---------- Footer ---------- */

.footer-top{
  background:#0a1d36;
  color:#b7c5d6;
  padding:4rem 0 2rem;
}

.footer-top h6,
.footer-brand-title{
  color:#ffffff;
  font-weight:700;
  letter-spacing:0.03em;
  margin-bottom:1.2rem;
}

.footer-top a{
  color:#b7c5d6;
  text-decoration:none;
  transition:color 0.2s ease-in-out;
}

.footer-top a:hover{
  color:#f07f24;
}

.footer-list{
  list-style:none;
  margin:0;
  padding:0;
}

.footer-list li{
  margin-bottom:0.65rem;
}

.footer-legal a{
  color:#a0aaba;
}

.footer-legal a:hover{
  color:#ffffff;
}

.footer-bottom{
  background:#081425;
  color:#a0aaba;
  padding:1.2rem 0;
  font-size:0.9rem;
}

.footer-bottom p{
  margin:0;
}

.social-links a{
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.06);
  color:#d8dfec;
  width:40px;
  height:40px;
  border-radius:50%;
  transition:background-color 0.2s ease, color 0.2s ease;
}

.social-links a:hover{
  background:#f07f24;
  color:#0b1d36;
}

.footer-contact-list a{
  font-weight:400;
}

/* ---------- MISC helpers ---------- */

@media(min-width:1200px){
  .me-xxl-4{
    margin-right:1.5rem;
  }
}

@media(max-width:991.98px){
  .site-header .navbar-collapse{
    background-color:#fff;
    border-radius:1rem;
    padding:1rem;
    box-shadow:0 0.6rem 1rem rgba(0,0,0,0.05);
    margin-top:0.5rem;
  }
}

.vh-80{
  min-height:80vh;
}

.vh-60{
  min-height:60vh;
}

.opacity-60{
  opacity:0.6;
}

.bg-pattern-light{
  background-image:linear-gradient(45deg,#f0f4f9 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,#f0f4f9 75%),
    linear-gradient(45deg,transparent 75%,#f0f4f9 75%),
    linear-gradient(45deg,#f0f4f9 25%,transparent 25%);
  background-size:40px 40px;
  background-position:0 0,0 0,20px 20px,20px 20px;
}

.bg-pattern-dark{
  background-image:linear-gradient(45deg,rgba(255,255,255,0.02) 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,rgba(255,255,255,0.02) 75%),
    linear-gradient(45deg,transparent 75%,rgba(255,255,255,0.02) 75%),
    linear-gradient(45deg,rgba(255,255,255,0.02) 25%,transparent 25%);
  background-size:48px 48px;
  background-position:0 0,0 0,24px 24px,24px 24px;
}

.hero-pattern{
  position:relative;
}

.hero-pattern:after{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  width:70%;
  height:6px;
  background:linear-gradient(90deg,#f07f24,#ffca8d);
  border-top-right-radius:6px;
  border-bottom-right-radius:6px;
}

.testimonial-card{
  background:#ffffff;
  border-radius:1rem;
  padding:1.8rem;
  box-shadow:0 0.6rem 1rem rgba(10,29,54,0.06);
}

.testimonial-card .blockquote{
  font-size:1.05rem;
  line-height:1.8;
  color:#1f3146;
  padding-left:1.25rem;
  border-left:3px solid #f07f24;
  margin:0.8rem 0;
}

.testimonial-card .person-name{
  font-weight:700;
  color:#0a1d36;
}

.bg-floating-img{
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  min-height:300px;
  border-radius:1.25rem;
}

.box-shadow-xl{
  box-shadow:0 2rem 4rem rgba(10,29,54,0.15);
}

.pointer-none{
  pointer-events:none;
}

.select-none{
  user-select:none;
}

.object-fit-cover{
  object-fit:cover;
}

.rounded-xl{
  border-radius:20px;
}
/* Navbar "Diensten" dropdown rendered as a button (no href="#") */
.site-header .navbar-nav button.nav-dropdown-btn.nav-link{
  background:transparent;
  border:0;
  box-shadow:none;
  margin:0 0.15rem;
  padding:0.5rem 0.75rem;
  color:#1f3146;
  font-weight:500;
  font-size:1rem;
  font-family:inherit;
  line-height:inherit;
}
.site-header .navbar-nav button.nav-dropdown-btn.nav-link:hover,
.site-header .navbar-nav button.nav-dropdown-btn.nav-link:focus{
  color:#0a1d36;
}

/* Visible cookie consent banner */
@media(max-width:575.98px){
  #consent-banner > div{
    flex-direction:column;
    align-items:stretch !important;
  }
  #consent-banner > div p{
    width:100%;
  }
  #consent-banner > div > div{
    width:100%;
  }
  #consent-banner > div > div button{
    flex:1;
  }
}

/* ---------- Accessibility / contrast overrides ---------- */

/* Provide a solid dark base color beneath gradient/image hero sections so white text
   (which sits over a dark photograph/gradient) is measurable as high-contrast. */
.blog-hero,
.bg-cta,
.bg-gradient-primary,
.bg-brand-dark,
section[class*="hero"],
.carousel-item .bg-images{
  background-color:#0a1d36 !important;
}
.bg-gradient-primary{
  background-image:linear-gradient(135deg,#0a1d36 0%,#0e3a65 100%) !important;
}

/* Darker burnt-orange for section eyebrows shown on light backgrounds, to reach >=4.5:1.
   Eyebrows that carry an inline light colour (e.g. on dark heroes) are left untouched. */
.section-eyebrow{
  color:#a3430b !important;
}

/* "Lees het artikel" style accent links use an inline #cf6415 colour on white/soft backgrounds. */
.btn-link[style*="cf6415"],
a[style*="color: #cf6415"],
a[style*="color:#cf6415"]{
  color:#a3430b !important;
}

/* Darken muted/secondary text rendered as orange on light cards so it remains readable. */
p.text-secondary{
  color:#3f5266 !important;
}

/* ===== Accessibility & contrast fixes ===== */
/* Explicit dark base behind hero image sections so white text passes contrast checks */
.about-hero{background-color:#0a1d36 !important;}
/* Gradient CTA blocks get an explicit dark background-color */
.bg-gradient-primary{background-color:#0a1d36 !important;}
/* Small uppercase eyebrows: darker tone for sufficient contrast on light backgrounds.
   (Inline colors on dark sections still win because inline styles outrank a normal declaration.) */
.section-eyebrow{color:#7a3507;}
/* Bootstrap maps .text-secondary to our orange accent var; give readable dark slate instead */
.text-secondary{color:#42566b !important;}
/* Accent link buttons on white cards */
a.btn-link{color:#8a3e0a !important;}
/* Warning (amber) badge labels need dark text instead of white */
.badge.bg-warning{color:#3a2403 !important;}

/* Cookiebeleid: keep "Diensten" dropdown button styled like a nav link */
.navbar-nav .nav-item.dropdown > button.nav-link.dropdown-toggle {
  padding: 0.5rem 0.5rem;
  color: rgba(0,0,0,.55) !important;
  font-weight: 400;
  line-height: 1.5;
  cursor: pointer;
}
.navbar-nav .nav-item.dropdown > button.nav-link.dropdown-toggle:hover {
  color: rgba(0,0,0,.7) !important;
}

/* Fix: force light eyebrow text on dark hero backgrounds so it passes contrast.
   The earlier .section-eyebrow{color:#a3430b!important} override must not apply
   to eyebrows rendered over dark photographs/gradients (light inline colors
   were being defeated by that important rule). */
.contact-hero .section-eyebrow,
.blog-hero .section-eyebrow,
.about-hero .section-eyebrow,
section[class*="hero"] .section-eyebrow,
.bg-brand-dark .section-eyebrow,
.bg-gradient-primary .section-eyebrow{
  color:#ffc38a !important;
}

/* ---- express-koerier-sd4 page: accessibility & contrast overrides ---- */

/* Hero checklist items sit over a dark photograph -> force white text */
.page-hero .list-unstyled li{color:#ffffff !important;}

/* Light eyebrow text on the dark process section (light text reads on dark) */
#werkwijze .section-eyebrow,
.bg-brand-dark .section-eyebrow{color:#ffc38a !important;}
#werkwijze .section-eyebrow::before,
.bg-brand-dark .section-eyebrow::before{background-color:#ffc38a !important;}

/* Ensure white text in the dark "Hoe snelheid tot stand komt" section is measurable */
#werkwijze .text-white,
#werkwijze .bg-brand-dark{color:#ffffff !important;}
