/* =========================================================
   CBL Construction — stylesheet
   ========================================================= */

:root{
  --navy: #1E417D;
  --navy-dark: #122C55;
  --navy-deep: #0C1F3D;
  --ink: #23262B;
  --ink-soft: #565C64;
  --paper: #FFFFFF;
  --paper-soft: #F3F6F9;
  --paper-line: #E1E7EE;
  --gold: #F2B705;
  --gold-deep: #B5860A;
  --red: #A2270B;
  --purple: #5D1E8B;
  --green: #3F6B24;

  --font-display: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Public Sans", "Helvetica Neue", Arial, sans-serif;

  --max: 1180px;
  --radius: 4px;
  --shadow-card: 0 1px 2px rgba(12,31,61,0.06), 0 8px 24px -12px rgba(12,31,61,0.18);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}

body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4{
  font-family: var(--font-display);
  color: var(--navy-deep);
  line-height: 1.12;
  margin: 0 0 0.5em;
  font-weight: 600;
  letter-spacing: -0.01em;
}
h1{ font-size: clamp(2.1rem, 1.6rem + 2.2vw, 3.4rem); }
h2{ font-size: clamp(1.6rem, 1.35rem + 1.2vw, 2.3rem); }
h3{ font-size: 1.3rem; }
h4{ font-size: 1.05rem; }

p{ margin: 0 0 1em; max-width: 66ch; }
p.lede{ font-size: 1.15rem; color: var(--ink-soft); max-width: 56ch; }

a{ color: var(--navy); text-decoration-color: rgba(30,65,125,0.35); text-underline-offset: 3px; }
a:hover{ text-decoration-color: currentColor; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

img{ max-width:100%; display:block; }

.container{ max-width: var(--max); margin: 0 auto; padding: 0 24px; }

.section{ padding: 76px 0; }
.section--tight{ padding: 48px 0; }
.section--soft{ background: var(--paper-soft); }
.section--navy{ background: linear-gradient(180deg, var(--navy-deep), var(--navy-dark)); color: #EAF0FA; }
.section--navy h1, .section--navy h2, .section--navy h3, .section--navy h4{ color: #fff; }
.section--navy p{ color: #C7D5EA; }
.section--navy a:not(.btn){ color: var(--gold); text-decoration-color: rgba(242,183,5,0.5); }
.section--navy a:not(.btn):hover{ color:#fff; text-decoration-color: currentColor; }
.hero h1, .hero h2, .hero h3{ color: #fff; }
.page-hero h1, .page-hero h2, .page-hero h3{ color: #fff; }

.eyebrow{
  display:inline-block;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--gold-deep);
  margin-bottom: 10px;
}

.rule-gold{ width: 56px; height: 4px; background: var(--gold); border: none; margin: 18px 0 26px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 13px 24px;
  border-radius: var(--radius);
  font-weight: 600;
  font-family: var(--font-body);
  font-size: 0.98rem;
  text-decoration:none;
  border: 2px solid transparent;
  cursor:pointer;
  transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover{ transform: translateY(-1px); }
.btn-primary{ background: var(--gold); color: var(--navy-deep); }
.btn-primary:hover{ background: #FFC934; text-decoration:none; }
.btn-outline{ background: transparent; border-color: rgba(255,255,255,0.55); color: #fff; }
.btn-outline:hover{ border-color:#fff; text-decoration:none; }
.btn-outline-navy{ background: transparent; border-color: var(--navy); color: var(--navy); }
.btn-outline-navy:hover{ background: var(--navy); color:#fff; text-decoration:none; }
.btn-block{ width:100%; justify-content:center; }

/* ---------- utility bar ---------- */
.utility-bar{
  background: var(--navy-deep); color:#C7D5EA; font-size:0.82rem;
}
.utility-bar .container{ display:flex; justify-content:flex-end; gap:22px; padding: 7px 24px; }
.utility-bar a{ color:#DCE6F5; text-decoration:none; display:inline-flex; align-items:center; gap:6px; font-weight:600; }
.utility-bar a:hover{ color:#fff; }
.utility-bar .u-sep{ color:#3E5477; }

/* ---------- header / nav ---------- */
.site-header{
  position: sticky; top:0; z-index: 50;
  background: rgba(255,255,255,0.97);
  backdrop-filter: saturate(180%) blur(6px);
  border-bottom: 1px solid var(--paper-line);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 0;
}
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand img{ height: 46px; width:auto; }
.brand-word{ font-family: var(--font-display); font-weight:700; color: var(--navy-deep); font-size:1.05rem; line-height:1.1; }
.brand-word small{ display:block; font-family: var(--font-body); font-weight:500; color: var(--ink-soft); font-size:0.68rem; letter-spacing:.02em; }

.nav-links{ display:flex; align-items:center; gap: 8px; list-style:none; margin:0; padding:0; }
.nav-links > li{ position:relative; }
.nav-links > li > a{
  color: var(--ink); font-weight:600; text-decoration:none; font-size:0.96rem;
  padding: 10px 14px; border-bottom:2px solid transparent; display:inline-block;
}
.nav-links > li > a:hover, .nav-links > li > a.active{ border-color: var(--gold); }

.has-dropdown > a::after{ content:"▾"; font-size:0.65em; margin-left:5px; opacity:.7; }
.dropdown{
  display:none; position:absolute; top: 100%; left:0; min-width: 240px;
  background:#fff; border:1px solid var(--paper-line); border-radius: var(--radius);
  box-shadow: var(--shadow-card); padding: 8px; z-index: 60;
}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{ display:block; }
.dropdown a{
  display:block; padding: 9px 12px; font-size:0.9rem; font-weight:600; color: var(--ink);
  text-decoration:none; border-radius:3px; border-bottom:none !important;
}
.dropdown a:hover{ background: var(--paper-soft); color: var(--navy); }
.dropdown .dd-note{ display:block; padding:8px 12px 2px; font-size:0.7rem; text-transform:uppercase; letter-spacing:.04em; color:#9AA5B1; font-weight:700; }

.nav-cta{
  margin-left: 10px; background: var(--gold); color: var(--navy-deep) !important;
  padding: 10px 20px !important; border-radius: var(--radius); font-weight:700 !important;
  border-bottom:none !important;
}
.nav-cta:hover{ background:#FFC934; }

.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{ display:block; width:24px; height:2px; background: var(--navy-deep); margin:5px 0; }

@media (max-width: 900px){
  .nav-toggle{ display:block; }
  .nav-links{
    position: absolute; top: 100%; left:0; right:0;
    background:#fff; flex-direction:column; align-items:flex-start;
    padding: 12px 24px 20px; gap: 2px; border-bottom: 1px solid var(--paper-line);
    display:none; max-height: 80vh; overflow-y:auto;
  }
  .nav-links.open{ display:flex; }
  .nav-links > li{ width:100%; }
  .nav-links > li > a{ width:100%; padding: 10px 0; }
  .dropdown{ display:block; position:static; box-shadow:none; border:none; padding: 0 0 8px 14px; }
  .has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{ display:block; }
  .nav-cta{ margin-left:0; margin-top:8px; display:inline-block; }
}

/* ---------- hero ---------- */
.hero-actions{ display:flex; gap:14px; margin-top: 22px; flex-wrap:wrap; }

/* page header (non-home) */
.page-hero{
  background: linear-gradient(180deg, var(--navy-deep), var(--navy));
  color:#fff;
  padding: 56px 0 46px;
  position:relative;
}
.page-hero .eyebrow{ color: var(--gold); }
.page-hero p{ color:#CFDBEE; }
.breadcrumb{ font-size:0.85rem; color:#9FB3D3; margin-bottom:14px; }
.breadcrumb a{ color:#CFDBEE; }

/* ---------- grids / cards ---------- */
.grid{ display:grid; gap: 26px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px){
  .grid-3{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 640px){
  .grid-3, .grid-2{ grid-template-columns: 1fr; }
}

.card{
  background:#fff; border:1px solid var(--paper-line); border-radius: var(--radius);
  overflow:hidden; box-shadow: var(--shadow-card);
  display:flex; flex-direction:column;
}
.card-body{ padding: 22px 22px 24px; flex:1; display:flex; flex-direction:column; }
.card h3{ margin-bottom:8px; }
.card p{ color: var(--ink-soft); font-size:0.96rem; }
.card .tag{
  display:inline-block; font-size:0.72rem; font-weight:700; letter-spacing:.02em;
  color: var(--navy); background: #E7EEFA; padding:4px 9px; border-radius:3px; margin-bottom:10px;
}

.service-card{ padding: 26px 24px; border-top: 4px solid var(--gold); background:#fff; border:1px solid var(--paper-line); border-radius: var(--radius); }
.service-card:nth-child(2n){ border-top-color: var(--purple); }
.service-card:nth-child(3n){ border-top-color: var(--navy); }
.service-card:nth-child(4n){ border-top-color: var(--red); }
.service-card:nth-child(5n){ border-top-color: var(--green); }
.service-card h3{ font-size:1.15rem; }
.service-card p{ color: var(--ink-soft); font-size:0.95rem; margin-bottom:0; }

/* ---------- image-led service card with dual CTA (KBE-style) ---------- */
/* ---------- social value cards ---------- */
.value-card{
  background:#fff; border:1px solid var(--paper-line); border-radius: var(--radius);
  overflow:hidden; box-shadow: var(--shadow-card); display:flex; flex-direction:column;
}
.value-card .photo{ aspect-ratio: 4/3; overflow:hidden; background:#dde3ea; }
.value-card .photo img{ width:100%; height:100%; object-fit:cover; }
.value-card .body{ padding: 22px; }
.value-card h3{ font-size:1.15rem; margin-bottom:8px; }
.value-card p{ color: var(--ink-soft); font-size:0.95rem; margin-bottom:0; }

.service-card-img{
  background:#fff; border:1px solid var(--paper-line); border-radius: var(--radius);
  overflow:hidden; box-shadow: var(--shadow-card); display:flex; flex-direction:column;
}
.service-card-img .photo{ aspect-ratio: 16/10; overflow:hidden; background:#dde3ea; }
.service-card-img .photo img{ width:100%; height:100%; object-fit:cover; }
.service-card-img .card-body{ padding: 20px 22px 22px; }
.service-card-img h3{ font-size:1.12rem; margin-bottom:8px; }
.service-card-img p{ color: var(--ink-soft); font-size:0.93rem; }
.dual-cta{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.dual-cta a{
  flex:1; text-align:center; padding:10px 12px; border-radius: var(--radius);
  font-size:0.85rem; font-weight:700; text-decoration:none; white-space:nowrap;
}
.dual-cta .view{ background: var(--paper-soft); color: var(--navy-deep); border:1px solid var(--paper-line); }
.dual-cta .view:hover{ background:#E7EEFA; }
.dual-cta .quote{ background: var(--navy); color:#fff; }
.dual-cta .quote:hover{ background: var(--navy-deep); }

/* ---------- boxed carousel arrows/overlay (shared with full-bleed) ---------- */
.carousel-nav-overlay{
  position:absolute; top:0; left:0; width:100%; aspect-ratio: 16/9;
  pointer-events:none; z-index:5;
}
.carousel-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  background:#fff; border:1px solid var(--paper-line); box-shadow: var(--shadow-card);
  cursor:pointer; font-size:1.1rem; color:var(--navy-deep);
  display:flex; align-items:center; justify-content:center;
  padding:0; pointer-events:auto;
}
.carousel-arrow:hover{ background: var(--paper-soft); }
.carousel-arrow.prev{ left:14px; }
.carousel-arrow.next{ right:14px; }
@media (max-width: 500px){
  .carousel-arrow{ width:36px; height:36px; font-size:1rem; }
  .carousel-arrow.prev{ left:8px; }
  .carousel-arrow.next{ right:8px; }
}
.carousel-dots{ display:flex; justify-content:center; gap:8px; margin-top:20px; }
.carousel-dots button{
  width:9px; height:9px; padding:0; border:none; border-radius:50%;
  background: var(--paper-line); cursor:pointer; transition: width .25s ease, background .25s ease;
}
.carousel-dots button.active{ background: var(--gold); width:26px; border-radius:5px; }

/* ---------- full-bleed services carousel ---------- */
.cs-carousel-full{ position:relative; width:100%; }
.cs-carousel-full .carousel-viewport{
  position:relative; overflow:hidden; border-radius:0; box-shadow:none; width:100%;
}
.cs-carousel-full .carousel-track{ display:flex; transition: transform 0.7s cubic-bezier(0.65,0,0.35,1); }
.cs-slide{
  flex: 0 0 100%; position:relative;
  height: 560px; overflow:hidden;
}
.cs-slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cs-slide-scrim{
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(9,23,46,0.90) 0%, rgba(9,23,46,0.55) 42%, rgba(9,23,46,0.08) 70%, transparent 100%);
}
.cs-slide-content{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  max-width: var(--max); margin:0 auto;
  padding: 0 24px 40px;
  color:#fff;
}
.cs-slide-content h3{ color:#fff; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); margin-bottom:10px; }
.cs-slide-content h1{ color:#fff; font-size: clamp(1.9rem, 1.4rem + 2vw, 2.9rem); margin-bottom:14px; line-height:1.12; }
.cs-slide-content .eyebrow{ display:inline-block; margin-bottom:10px; }
.cs-slide-content p{ color:#E3EAF6; max-width:560px; font-size:1rem; }
.cs-slide-content .dual-cta a{ padding:12px 20px; }
.carousel-nav-overlay--full{ position:absolute; inset:0; aspect-ratio:auto; height:100%; pointer-events:none; z-index:5; }
.carousel-nav-overlay--full .carousel-arrow{ pointer-events:auto; }
@media (max-width: 900px){
  .cs-slide{ height: 480px; }
}
@media (max-width: 560px){
  .cs-slide{ height: 620px; }
  .cs-slide-content{ padding: 0 20px 28px; }
  .cs-slide-content p{ max-width:none; }
}

/* ---------- checklist ---------- */
.checklist{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns: 1fr 1fr; gap: 12px 28px; }
@media (max-width:640px){ .checklist{ grid-template-columns:1fr; } }
.checklist li{ display:flex; align-items:flex-start; gap:10px; font-weight:600; color: var(--navy-deep); font-size:0.98rem; }
.checklist li::before{
  content:""; flex:0 0 auto; width:20px; height:20px; margin-top:2px; border-radius:50%;
  background: var(--gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/12px no-repeat, linear-gradient(#000,#000);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/12px no-repeat;
}
.checklist.on-dark li{ color:#fff; }
.checklist-plain{ list-style:none; margin:0; padding:0; }
.checklist-plain li{ padding: 10px 0; border-bottom:1px solid var(--paper-line); display:flex; gap:10px; font-weight:600; color: var(--navy-deep); }
.checklist-plain li::before{ content:"✓"; color: var(--gold-deep); font-weight:900; }

/* ---------- experience / stat band ---------- */
.exp-band{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap: 48px; align-items:center; }
.exp-band > div{ min-width:0; }
@media (max-width:860px){ .exp-band{ grid-template-columns:1fr !important; } }
.exp-band .big-stat{ font-family: var(--font-display); font-size: clamp(2.6rem,2rem+3vw,4.2rem); color: var(--gold); line-height:1; margin-bottom:6px; }
.exp-band .big-stat + p{ color:#CFDBEE; text-transform:uppercase; font-size:0.82rem; letter-spacing:.04em; font-weight:700; margin-bottom:0; }
.exp-band--light .big-stat{ color: var(--gold-deep); }
.exp-band--light .big-stat + p{ color: var(--ink-soft); }

/* ---------- large "why us" stat, right-hand side ---------- */
.why-cbl-stat{
  text-align:center;
  position:relative;
  padding: 30px 10px;
}
.why-cbl-stat::before{
  content:"";
  position:absolute; inset:0; margin:auto; width:min(100%, 380px); aspect-ratio:1/1;
  border-radius:50%;
  background: radial-gradient(circle, rgba(242,183,5,0.16) 0%, rgba(242,183,5,0.05) 55%, transparent 75%);
  z-index:0;
}
.why-cbl-stat-caption{
  position:relative; z-index:1;
  margin-bottom:18px;
  color:#DCE6F5;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:700;
  font-size:1rem;
  line-height:1.4;
}

/* ---------- mechanical odometer stat ---------- */
.odometer{
  position:relative; z-index:1;
  display:inline-flex; align-items:center; justify-content:center; gap:0.1em;
  font-family: var(--font-display); font-weight:700;
  font-size: clamp(2.6rem, 1.8rem + 4.5vw, 5.2rem);
  color: var(--gold);
  line-height:1;
}
.odometer-frame{
  display:flex; gap:0.06em;
  background: var(--navy-deep);
  border: 3px solid rgba(255,255,255,0.18);
  border-radius: 0.12em;
  padding: 0.1em;
  box-shadow: 0 20px 44px -14px rgba(0,0,0,0.6);
  margin: 0 0.08em;
}
.odometer-tile{
  position:relative; overflow:hidden;
  width: 0.72em; height: 1em;
  background: #fff;
  border-radius: 0.05em;
}
.odometer-strip{ position:absolute; left:0; top:0; width:100%; will-change:transform; }
.odometer-strip .d{
  display:block;
  height: 1em; line-height:1em;
  text-align:center;
  color: var(--navy-deep);
}
.odometer-tile::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  box-shadow: inset 0 8px 10px -8px rgba(0,0,0,0.45), inset 0 -8px 10px -8px rgba(0,0,0,0.3);
}
.odometer-tile::after{
  content:""; position:absolute; left:0; right:0; top:50%; height:2px;
  background: rgba(0,0,0,0.14); transform: translateY(-1px);
}
@media (max-width:480px){
  .odometer{ font-size: 2.3rem; }
}

/* ---------- category tag pills ---------- */
.tag-row{ display:flex; gap:10px; flex-wrap:wrap; margin: 6px 0 30px; }
.tag-pill{
  border:1px solid var(--paper-line); background:#fff; color: var(--navy-deep);
  font-size:0.85rem; font-weight:700; padding:8px 16px; border-radius:999px; text-decoration:none;
}
.tag-pill:hover, .tag-pill.active{ background: var(--navy); color:#fff; border-color: var(--navy); text-decoration:none; }

/* ---------- plain quote (KBE-style testimonial) ---------- */
.quote-plain{ max-width: 680px; margin: 0 auto 10px; text-align:center; }
.quote-plain p{ font-size:1.02rem; color:#fff; font-style:italic; max-width:none; line-height:1.5; }
.quote-plain cite{ display:block; font-style:normal; font-weight:700; color: var(--gold); margin-top:8px; font-size:0.9rem; }
.quote-track{ display:flex; gap:40px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; }
.quote-track .quote-plain{ flex: 0 0 100%; scroll-snap-align:start; }
.quote-dots{ display:flex; gap:8px; justify-content:center; margin-top:10px; }
.quote-dots span{ width:8px; height:8px; border-radius:50%; background: rgba(255,255,255,0.3); }

.case-card{ text-decoration:none; color:inherit; }
.case-card .photo{ aspect-ratio: 4/3; overflow:hidden; background:#ddd; }
.case-card .photo img{ width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.case-card:hover .photo img{ transform: scale(1.045); }
.case-card .meta{ font-size:0.82rem; color: var(--ink-soft); margin-bottom:6px; }
.case-card h3{ font-size:1.15rem; margin-bottom:6px; }
.case-card .figures{ display:flex; gap:16px; margin-top:auto; padding-top:14px; border-top:1px solid var(--paper-line); }
.case-card .figures div{ font-size:0.78rem; color: var(--ink-soft); }
.case-card .figures b{ display:block; color: var(--navy-deep); font-family: var(--font-display); font-size:1rem; }
.case-card .read-more{ margin-top:14px; font-weight:700; color: var(--navy); font-size:0.9rem; }
.badge-progress{ display:inline-block; background: var(--gold); color: var(--navy-deep); font-size:0.72rem; font-weight:700; padding:3px 9px; border-radius:3px; margin-bottom:6px; }
.badge-soon{ display:inline-block; background: var(--paper-line); color: var(--ink-soft); font-size:0.72rem; font-weight:700; padding:3px 9px; border-radius:3px; margin-bottom:6px; }

/* ---------- testimonials ---------- */
.quote-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
@media (max-width: 900px){ .quote-grid{ grid-template-columns: 1fr; } }
.quote-card{ background:#fff; border-radius: var(--radius); padding:26px; border:1px solid var(--paper-line); position:relative; }
.quote-card::before{
  content:"\201C"; font-family: var(--font-display); font-size:3.2rem; color: var(--gold); line-height:1;
  display:block; margin-bottom:-6px;
}
.quote-card p{ color: var(--ink); font-size:0.98rem; margin-bottom:14px; }
.quote-card cite{ font-style:normal; font-weight:700; font-size:0.88rem; color: var(--navy-deep); display:block; }
.quote-card cite span{ display:block; font-weight:500; color: var(--ink-soft); font-size:0.82rem; }

/* ---------- accreditations ---------- */
.accred-row{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.accred-chip{
  display:flex; align-items:center; gap:10px;
  border:1px solid var(--paper-line); border-radius: 999px; padding:10px 18px;
  font-size:0.86rem; font-weight:700; color: var(--navy-deep); background:#fff;
}
.accred-chip .dot{ width:9px; height:9px; border-radius:50%; background: var(--gold); }

/* ---------- info panel (case study) ---------- */
.cs-layout{ display:grid; grid-template-columns: 280px 1fr; gap: 48px; align-items:start; }
@media (max-width: 860px){ .cs-layout{ grid-template-columns: 1fr; } }
.cs-info{
  background: var(--paper-soft); border:1px solid var(--paper-line); border-radius: var(--radius);
  padding: 24px; position:sticky; top: 96px;
}
.cs-info dl{ margin:0; }
.cs-info dt{ font-size:0.72rem; text-transform:uppercase; letter-spacing:.04em; color: var(--ink-soft); margin-top:16px; font-weight:700; }
.cs-info dt:first-child{ margin-top:0; }
.cs-info dd{ margin:2px 0 0; font-weight:600; color: var(--navy-deep); }

.scope-banner{
  display:inline-block; background: var(--gold); color: var(--navy-deep); font-weight:700;
  padding:9px 20px; border-radius:3px; margin: 8px 0 18px; font-size:0.95rem;
}
.section-flag{
  display:inline-flex; align-items:center; gap:8px; font-weight:700; color:#fff;
  padding:9px 18px; border-radius:3px; margin: 30px 0 14px; font-size:0.95rem;
}
.flag-purple{ background: var(--purple); }
.flag-red{ background: var(--red); }
.flag-green{ background: var(--green); }
.flag-navy{ background: var(--navy); }

.constraint{ border-left:3px solid var(--paper-line); padding-left:16px; margin-bottom:18px; }
.constraint b{ display:block; color: var(--navy-deep); margin-bottom:4px; }

.photo-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:12px; margin: 18px 0 8px; }
@media (max-width: 700px){ .photo-grid{ grid-template-columns: repeat(2,1fr); } }
.photo-grid img{ width:100%; height:170px; object-fit:cover; border-radius: 3px; }
.photo-grid a{ display:block; }

.feedback-block{
  background: var(--navy-deep); color:#fff; border-radius: var(--radius);
  padding: 30px; margin-top: 28px;
}
.feedback-block p{ color:#DCE6F5; font-size:1.05rem; }
.feedback-block cite{ font-style:normal; font-weight:700; color: var(--gold); display:block; margin-top:10px; }
.feedback-block cite span{ display:block; font-weight:400; color:#B9C8E1; font-size:0.85rem; }

/* ---------- stats/values ---------- */
.value-list{ display:grid; grid-template-columns: repeat(2,1fr); gap: 22px 34px; }
@media (max-width:700px){ .value-list{ grid-template-columns: 1fr; } }
.value-item{ display:flex; gap:14px; }
.value-item .num{ font-family: var(--font-display); font-size:1.4rem; color: var(--gold-deep); font-weight:700; }

/* ---------- team ---------- */
.team-row{ display:flex; gap:24px; flex-wrap:wrap; }
.team-card{ flex:1 1 220px; border:1px solid var(--paper-line); border-radius: var(--radius); padding:20px; }
.team-card b{ display:block; color: var(--navy-deep); }
.team-card span{ color: var(--ink-soft); font-size:0.88rem; }

/* ---------- contact ---------- */
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 48px; }
@media (max-width: 860px){ .contact-grid{ grid-template-columns: 1fr; } }
.contact-detail{ display:flex; gap:14px; margin-bottom:20px; }
.contact-detail .k{ font-weight:700; color: var(--navy-deep); display:block; font-size:0.85rem; text-transform:uppercase; letter-spacing:.03em; }
.form-field{ margin-bottom:16px; }
.form-field label{ display:block; font-weight:600; font-size:0.88rem; margin-bottom:6px; }
.form-field input, .form-field textarea, .form-field select{
  width:100%; padding: 11px 13px; border:1px solid #C7D0DB; border-radius: var(--radius);
  font-family: var(--font-body); font-size:0.96rem; background:#fff;
}
.form-field textarea{ min-height:120px; resize:vertical; }
.form-note{ font-size:0.82rem; color: var(--ink-soft); margin-top: 10px; }

/* ---------- footer ---------- */
.site-footer{ background: var(--navy-deep); color:#B9C8E1; padding: 54px 0 26px; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
@media (max-width: 800px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
.site-footer h4{ color:#fff; font-size:0.95rem; margin-bottom:14px; }
.site-footer a{ color:#B9C8E1; text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; font-size:0.92rem; }
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.footer-brand img{ height:40px; width:auto; background:#fff; border-radius:4px; padding:4px 8px; }
.footer-bottom{
  margin-top: 40px; padding-top: 22px; border-top:1px solid rgba(255,255,255,0.12);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.82rem; color:#8DA0C4;
}

/* ---------- misc ---------- */
.two-col{ display:grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items:center; }
.two-col-even{ display:grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items:center; }
@media (max-width:860px){ .two-col-even{ grid-template-columns:1fr; } }
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; } }
.two-col img{ border-radius: var(--radius); }
.service-photo{
  aspect-ratio: 4/3; overflow:hidden; border-radius: var(--radius);
  box-shadow: var(--shadow-card);
}
.service-photo img{ width:100%; height:100%; object-fit:cover; border-radius:0; display:block; }
.section-icon-header{ display:flex; align-items:center; gap:20px; margin-bottom:8px; }
.section-icon-header .eyebrow{ margin-bottom:6px; }
.section-icon-header h2{ margin-bottom:0; }
.section-icon{
  flex:0 0 auto; width:84px; height:84px;
  display:flex; align-items:center; justify-content:center;
  background: #fff; border-radius:50%;
  padding:14px; box-shadow: 0 2px 10px rgba(12,31,61,0.12);
}
.section-icon img, .section-icon svg{ width:100%; height:100%; object-fit:contain; }
@media (max-width:560px){
  .section-icon{ width:64px; height:64px; padding:10px; }
  .section-icon-header{ gap:14px; }
}

/* ---------- large alternating icon/text feature (About page) ---------- */
.icon-feature{ display:grid; grid-template-columns: 1fr 1fr; gap:48px; align-items:center; }
@media (max-width:860px){ .icon-feature{ grid-template-columns:1fr; } }
.icon-feature-badge{
  width: min(100%, 280px);
  aspect-ratio: 1/1;
  margin: 0 auto;
  background:#fff;
  border-radius:50%;
  padding: 56px;
  box-shadow: 0 20px 44px -16px rgba(12,31,61,0.28);
}
.icon-feature-badge img, .icon-feature-badge svg{ width:100%; height:100%; object-fit:contain; }
@media (max-width:560px){
  .icon-feature-badge{ width: min(100%, 190px); padding:36px; }
}

/* ---------- tabbed interface (About page) ---------- */
.about-tabs{ margin-top:30px; }
.tabs-nav{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:26px; }
.tabs-nav button{
  display:flex; align-items:center; gap:10px;
  padding:12px 20px; border-radius:999px; border:2px solid var(--paper-line);
  background:#fff; font-weight:700; font-size:0.92rem; color:var(--navy-deep);
  cursor:pointer; transition: background .2s ease, border-color .2s ease, color .2s ease;
  font-family: var(--font-body);
}
.tabs-nav button img{ width:24px; height:24px; flex:0 0 auto; border-radius:50%; }
.tabs-nav button .tab-icon{
  width:24px; height:24px; flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  background:#fff; border-radius:50%; padding:3px; box-sizing:border-box;
}
.tabs-nav button .tab-icon svg{ width:100%; height:100%; display:block; }
.tabs-nav button:hover{ border-color: var(--navy); }
.tabs-nav button.active{ background: var(--navy); border-color: var(--navy); color:#fff; }

.tabs-panel-card{
  background:#fff; border:1px solid var(--paper-line); border-radius: var(--radius);
  padding: 36px; box-shadow: var(--shadow-card);
}
.tabs-panel{ display:none; }
.tabs-panel.active{ display:block; animation: tabFadeIn .35s ease; }
@keyframes tabFadeIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:translateY(0); } }
.tabs-panel h3{ margin-bottom:12px; }
@media (max-width:600px){
  .tabs-panel-card{ padding:22px; }
  .tabs-nav button{ padding:10px 14px; font-size:0.84rem; }
}
.photo-mosaic{ display:grid; grid-template-columns: repeat(3,1fr); gap:10px; }
.photo-mosaic img{
  width:100%; aspect-ratio:1/1; object-fit:cover;
  border-radius: var(--radius); display:block;
  box-shadow: var(--shadow-card);
}
@media (max-width:640px){
  .photo-mosaic{ grid-template-columns: repeat(2,1fr); }
}
.pill{ display:inline-block; padding:4px 11px; border-radius:999px; background:#E7EEFA; color:var(--navy); font-size:0.76rem; font-weight:700; margin: 0 6px 6px 0; }

.cta-band{ background: var(--gold); padding: 46px 0; }
.cta-band .container{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-band h2{ margin:0; color: var(--navy-deep); font-size:1.6rem; }
.cta-band p{ margin:4px 0 0; color:#5A4400; }

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:#fff; color:var(--navy); padding:10px 16px; z-index:100;
}
.skip-link:focus{ left: 16px; top:16px; }
