*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }

/* ── BRAND COLORS (exact match to brand kit) ── */
:root {
  --tq:         #2DC5B6;
  --tq-pale:    rgba(45,197,182,0.12);
  --ce:         #1F6FB8;
  --ce-pale:    rgba(31,111,184,0.10);
  --mg:         #C0286C;
  --mg-pale:    rgba(192,40,108,0.10);
  --gd:         #D9A441;
  --gd-pale:    rgba(217,164,65,0.12);
  --ink:        #0E2A44;
  --ink-soft:   #2B3D54;
  --cream:      #FBF6EE;
  --cream-2:    #F3ECDD;
  --line:       rgba(14,42,68,0.11);
  --muted:      #7A7060;
  --serif:      'Fraunces', Georgia, serif;
  --sans:       'DM Sans', system-ui, sans-serif;
}

body {
  font-family: var(--sans);
  background: var(--cream);
  color: var(--ink-soft);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background: var(--cream-2); }
::-webkit-scrollbar-thumb { background: var(--tq); border-radius:3px; }

/* ── UTILITY ── */
.wrap { width:90%; max-width:1160px; margin:0 auto; }
.eyebrow {
  display:inline-block;
  font-size:10.5px; font-weight:600; letter-spacing:2.4px;
  text-transform:uppercase; color:var(--gd);
  margin-bottom:14px;
}
h2.section-h {
  font-family:var(--serif); font-weight:700;
  font-size:clamp(28px,3.6vw,48px); line-height:1.15;
  color:var(--ink); margin-bottom:16px;
}
h2.section-h em { font-style:italic; color:var(--ce); }
h2.section-h .tq { color:var(--tq); }
h2.section-h .mg { color:var(--mg); }
p.body-lg { font-size:17px; font-weight:300; line-height:1.85; color:var(--muted); }

.btn {
  display:inline-block; font-family:var(--sans);
  font-size:14px; font-weight:600; letter-spacing:0.3px;
  padding:13px 28px; border-radius:100px;
  text-decoration:none; cursor:pointer;
  transition:transform 0.18s, background 0.18s, box-shadow 0.18s;
}
.btn:hover { transform:translateY(-2px); }
.btn-tq { background:var(--tq); color:var(--ink); box-shadow:0 4px 18px rgba(45,197,182,0.3); }
.btn-tq:hover { background:#22b0a2; }
.btn-ce { background:var(--ce); color:white; box-shadow:0 4px 18px rgba(31,111,184,0.3); }
.btn-ce:hover { background:#185d9e; }
.btn-outline { background:transparent; color:var(--ink); border:1.5px solid var(--line); }
.btn-outline:hover { border-color:var(--ce); color:var(--ce); }
.btn-white { background:white; color:var(--ink); box-shadow:0 4px 18px rgba(0,0,0,0.12); }
.btn-white:hover { background:var(--cream); }
.btn-ghost-white { background:transparent; color:white; border:1.5px solid rgba(255,255,255,0.45); }
.btn-ghost-white:hover { background:rgba(255,255,255,0.1); border-color:white; }

/* ── LOGO MARK SVG (exact brand kit mark) ── */
.logo-svg-mark { display:block; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  height:70px; display:flex; align-items:center;
  justify-content:space-between; padding:0 5%;
  background:rgba(251,246,238,0.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:box-shadow 0.3s;
}
nav.scrolled { box-shadow:0 2px 18px rgba(14,42,68,0.08); }

.nav-brand {
  display:flex; align-items:center; gap:11px;
  text-decoration:none;
}
.nav-wordmark strong {
  display:block; font-family:var(--serif);
  font-size:18px; font-weight:700; color:var(--ink);
  letter-spacing:-0.2px; line-height:1.1;
}
.nav-wordmark span {
  display:block; font-size:9px; font-weight:600;
  letter-spacing:1.8px; text-transform:uppercase;
  color:var(--tq); margin-top:1px;
}

.nav-links { display:flex; align-items:center; gap:22px; list-style:none; }
.nav-links a {
  text-decoration:none; font-size:13.5px; font-weight:500;
  color:var(--ink-soft); transition:color 0.18s;
}
.nav-links a:hover { color:var(--ce); }
.nav-cta { margin-left:6px; padding:9px 20px !important; font-size:13px !important; }

.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:210; }
.hamburger span { display:block; width:22px; height:2px; background:var(--ink); border-radius:2px; transition:transform 0.3s, opacity 0.3s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── PAGE HEADER (for subpages) ── */
.page-header {
  padding:120px 0 60px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.page-header .hero-blob {
  position:absolute; border-radius:60% 40% 55% 45% / 45% 55% 40% 60%;
  pointer-events:none;
}
.page-header .hb1 { width:380px; height:380px; background:rgba(45,197,182,0.10); top:-80px; right:-60px; animation:blob1 12s ease-in-out infinite; }
.page-header .hb2 { width:260px; height:260px; background:rgba(31,111,184,0.08); bottom:-40px; left:-60px; animation:blob2 10s ease-in-out infinite; }
.page-header .page-header-inner { position:relative; z-index:2; max-width:620px; margin:0 auto; }
.page-header .eyebrow { display:block; margin-bottom:14px; }
.page-header h1 {
  font-family:var(--serif); font-weight:700;
  font-size:clamp(32px,4.5vw,54px); line-height:1.15;
  color:var(--ink); margin-bottom:16px;
}
.page-header h1 em { font-style:italic; color:var(--ce); }
.page-header h1 em.goals-met { color:#4A9FD9; }
.page-header p.body-lg { max-width:520px; margin:0 auto; }

/* ── HERO ── */
.hero {
  min-height:100vh;
  padding:100px 5% 80px;
  background:var(--cream);
  display:flex; align-items:center;
  position:relative; overflow:hidden;
}
.hero-blob {
  position:absolute; border-radius:60% 40% 55% 45% / 45% 55% 40% 60%;
  pointer-events:none;
}
.hb1 { width:520px; height:520px; background:rgba(45,197,182,0.14); top:-80px; right:-100px; animation:blob1 12s ease-in-out infinite; }
.hb2 { width:360px; height:360px; background:rgba(31,111,184,0.10); bottom:-60px; left:-80px; animation:blob2 10s ease-in-out infinite; }
.hb3 { width:220px; height:220px; background:rgba(192,40,108,0.08); top:38%; right:9%; animation:blob3 8s ease-in-out infinite; }

@keyframes blob1 { 0%,100%{border-radius:60% 40% 55% 45% / 45% 55% 40% 60%;transform:translate(0,0);} 50%{border-radius:40% 60% 45% 55% / 55% 45% 60% 40%;transform:translate(-12px,10px);} }
@keyframes blob2 { 0%,100%{transform:translate(0,0);} 50%{transform:translate(12px,-14px);} }
@keyframes blob3 { 0%,100%{transform:translate(0,0);} 50%{transform:translate(-10px,10px);} }

.hero-inner {
  display:grid; grid-template-columns:1fr;
  gap:72px; align-items:center;
  width:100%; max-width:820px; margin:0 auto;
  position:relative; z-index:2;
}

.hero-kicker {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(45,197,182,0.12); color:var(--ink);
  font-size:11px; font-weight:600; letter-spacing:1.6px;
  text-transform:uppercase; padding:6px 14px 6px 8px;
  border-radius:100px; margin-bottom:26px;
  animation:fadeUp 0.5s 0.1s both;
}
.kicker-dot {
  width:20px; height:20px; border-radius:50%;
  background:var(--tq); display:flex; align-items:center; justify-content:center;
}
.kicker-dot svg { width:10px; height:10px; fill:var(--ink); }

.hero-h1 {
  font-family:var(--serif); font-weight:700;
  font-size:clamp(38px,5vw,66px); line-height:1.1;
  color:var(--ink); margin-bottom:22px;
  animation:fadeUp 0.5s 0.2s both;
}
.hero-h1 em { font-style:italic; color:var(--ce); }
.hero-h1 .stripe { display:inline-block; position:relative; }
.hero-h1 .stripe::after {
  content:''; position:absolute;
  left:0; right:0; bottom:5px; height:10px;
  background:rgba(45,197,182,0.2); z-index:-1; border-radius:3px;
}

.hero-p {
  font-size:17px; font-weight:300; line-height:1.9;
  color:var(--muted); max-width:500px;
  margin-bottom:36px; animation:fadeUp 0.5s 0.3s both;
}

.hero-btns { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px; animation:fadeUp 0.5s 0.4s both; }

.hero-trust { display:flex; align-items:center; gap:14px; flex-wrap:wrap; animation:fadeUp 0.5s 0.5s both; }
.trust-chip {
  display:flex; align-items:center; gap:8px;
  font-size:12px; font-weight:500; color:var(--ink-soft);
}
.trust-chip strong { display:block; font-weight:700; font-size:13px; color:var(--ink); }
.tc-icon {
  width:38px; height:38px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; flex-shrink:0;
}
.tci-tq { background:var(--tq-pale); }
.tci-ce { background:var(--ce-pale); }
.tci-mg { background:var(--mg-pale); }
.trust-sep { width:1px; height:26px; background:var(--line); }

@keyframes fadeUp { from{opacity:0;transform:translateY(22px);} to{opacity:1;transform:translateY(0);} }

/* ── MARQUEE ── */
.marquee {
  background:var(--ink);
  border-top:2px solid var(--tq);
  border-bottom:2px solid var(--ce);
  padding:15px 0; overflow:hidden;
}
.marquee-track { display:flex; gap:0; width:max-content; animation:scroll 30s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }
.mi { display:flex; align-items:center; gap:18px; padding:0 26px; font-size:12.5px; font-weight:500; color:rgba(255,255,255,0.6); white-space:nowrap; }
.mi-dot { width:5px; height:5px; border-radius:50%; flex-shrink:0; }
.d-tq { background:var(--tq); }
.d-ce { background:var(--ce); }
.d-mg { background:var(--mg); }
.d-gd { background:var(--gd); }
@keyframes scroll { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ── ABOUT ── */
.about-section { padding:72px 0; background:var(--cream); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 36px; align-items:start; }
.about-grid .about-text { grid-column:1 / -1; margin-top:0; }

.about-bio p.body-lg { margin-bottom:10px; color:var(--muted); font-size:14.5px; line-height:1.7; }

.photo-col { position:relative; }
.photo-box {
  width:72%; aspect-ratio:3/4; border-radius:24px; overflow:hidden;
  background:linear-gradient(135deg, rgba(45,197,182,0.15) 0%, rgba(31,111,184,0.12) 50%, rgba(192,40,108,0.10) 100%);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.photo-float {
  position:absolute; bottom:-22px; right:-24px;
  background:white; border-radius:16px; padding:16px 20px;
  box-shadow:0 8px 32px rgba(14,42,68,0.12);
  border:1px solid var(--line);
}
.pf-num { font-family:var(--serif); font-style:italic; font-size:36px; color:var(--ce); line-height:1; }
.pf-txt { font-size:11px; font-weight:500; color:var(--muted); margin-top:3px; line-height:1.4; }
.photo-badge-circle {
  position:absolute; top:-16px; left:-16px;
  width:68px; height:68px; border-radius:50%;
  background:var(--gd); display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(217,164,65,0.4);
}
.photo-badge-circle span:first-child { font-family:var(--serif); font-size:17px; color:white; font-style:italic; line-height:1; }
.photo-badge-circle span:last-child { font-size:8.5px; font-weight:600; color:rgba(255,255,255,0.85); letter-spacing:0.3px; }

.about-text .eyebrow { display:block; }
.about-text h2.section-h { margin-bottom:18px; }
.about-text p.body-lg { margin-bottom:14px; }

.val-chips { display:flex; flex-wrap:wrap; gap:9px; margin:26px 0 30px; }
.vc {
  font-size:12px; font-weight:500; padding:6px 15px;
  border-radius:100px; border:1.5px solid;
}
.vc-tq { background:rgba(45,197,182,0.10); border-color:rgba(45,197,182,0.3); color:var(--ink); }
.vc-ce { background:rgba(31,111,184,0.08); border-color:rgba(31,111,184,0.25); color:var(--ink); }
.vc-mg { background:rgba(192,40,108,0.08); border-color:rgba(192,40,108,0.22); color:var(--ink); }
.vc-gd { background:rgba(217,164,65,0.10); border-color:rgba(217,164,65,0.3); color:var(--ink); }

/* ── WHO WE SERVE ── */
.serve-section { padding:96px 0; background:var(--cream-2); }
.serve-hd { text-align:center; max-width:600px; margin:0 auto 52px; }
.serve-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.serve-card { background:white; border-radius:22px; overflow:hidden; border:1px solid var(--line); transition:transform 0.22s, box-shadow 0.22s; }
.serve-card:hover { transform:translateY(-5px); box-shadow:0 18px 44px rgba(14,42,68,0.08); }
.sc-top { height:130px; display:flex; align-items:center; justify-content:center; font-size:48px; }
.sct-tq { background:linear-gradient(135deg, rgba(45,197,182,0.18), rgba(45,197,182,0.08)); }
.sct-ce { background:linear-gradient(135deg, rgba(31,111,184,0.16), rgba(31,111,184,0.06)); }
.sct-mg { background:linear-gradient(135deg, rgba(192,40,108,0.14), rgba(192,40,108,0.05)); }
.sc-body { padding:22px 24px 26px; }
.sc-body h3 { font-family:var(--serif); font-size:19px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.sc-body p { font-size:13.5px; line-height:1.75; color:var(--muted); margin-bottom:16px; }
.sc-tag { font-size:10.5px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; padding:5px 13px; border-radius:100px; }
.st-tq { background:rgba(45,197,182,0.12); color:var(--ink); }
.st-ce { background:rgba(31,111,184,0.10); color:var(--ce); }
.st-mg { background:rgba(192,40,108,0.10); color:var(--mg); }

/* ── SERVICES ── */
.services-section { padding:96px 0; background:var(--cream); }
.svc-hd { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:end; margin-bottom:50px; }
.svc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.svc-card { background:white; border-radius:18px; padding:26px 22px 22px; border:1px solid var(--line); border-top:3px solid; transition:transform 0.2s, box-shadow 0.2s; }
.svc-card:hover { transform:translateY(-3px); box-shadow:0 12px 32px rgba(14,42,68,0.07); }
.svc-card.s-tq { border-top-color:var(--tq); }
.svc-card.s-ce { border-top-color:var(--ce); }
.svc-card.s-mg { border-top-color:var(--mg); }
.svc-card.s-gd { border-top-color:var(--gd); }
.svc-icon { font-size:28px; margin-bottom:12px; display:block; }
.svc-card h3 { font-family:var(--serif); font-size:16.5px; font-weight:700; color:var(--ink); margin-bottom:7px; line-height:1.3; }
.svc-card p { font-size:13px; line-height:1.75; color:var(--muted); }

/* ── STATS STRIP ── */
.stats-strip { background:var(--ink); padding:72px 0; position:relative; overflow:hidden; }
.stats-strip::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 500px 400px at 75% 50%, rgba(45,197,182,0.12), transparent),
             radial-gradient(ellipse 300px 300px at 20% 80%, rgba(31,111,184,0.10), transparent);
}
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); position:relative; z-index:1; }
.stat-item { text-align:center; padding:20px; border-right:1px solid rgba(255,255,255,0.09); }
.stat-item:last-child { border-right:none; }
.stat-n { font-family:var(--serif); font-style:italic; font-size:52px; color:white; line-height:1; margin-bottom:8px; }
.stat-n sub { font-style:normal; font-size:26px; color:var(--gd); vertical-align:bottom; }
.stat-l { font-size:12px; font-weight:500; color:rgba(255,255,255,0.5); line-height:1.5; max-width:150px; margin:0 auto; }

/* ── APPROACH ── */
.approach-section { padding:96px 0; background:var(--cream-2); }
.approach-hd { text-align:center; max-width:560px; margin:0 auto 60px; }
.steps-row { display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.steps-row::before {
  content:''; position:absolute;
  top:33px; left:calc(12.5% + 20px); right:calc(12.5% + 20px);
  height:1.5px;
  background:linear-gradient(to right, var(--ce), var(--tq), var(--mg));
  opacity:0.35;
}
.step { text-align:center; padding:0 18px; }
.step-circle {
  width:66px; height:66px; border-radius:50%;
  margin:0 auto 18px; border:2px solid;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:24px; font-style:italic;
  background:white; position:relative; z-index:1;
}
.sc-ce { border-color:var(--ce); color:var(--ce); }
.sc-tq { border-color:var(--tq); color:var(--tq); }
.sc-mg { border-color:var(--mg); color:var(--mg); }
.sc-gd { border-color:var(--gd); color:var(--gd); }
.step h3 { font-family:var(--serif); font-size:17px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.step p { font-size:13.5px; line-height:1.75; color:var(--muted); }

/* ── TESTIMONIALS ── */
.test-section { padding:96px 0; background:var(--cream); }
.test-hd { text-align:center; max-width:520px; margin:0 auto 52px; }
.test-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.test-card { background:white; border-radius:20px; padding:30px 26px; border:1px solid var(--line); position:relative; transition:transform 0.22s, box-shadow 0.22s; overflow:hidden; }
.test-card:hover { transform:translateY(-4px); box-shadow:0 14px 40px rgba(14,42,68,0.07); }
.tc-accent { position:absolute; bottom:0; right:0; width:80px; height:80px; border-radius:0 0 20px 0; opacity:0.10; }
.tca-tq { background:var(--tq); }
.tca-ce { background:var(--ce); }
.tca-mg { background:var(--mg); }
.stars { display:flex; gap:3px; margin-bottom:14px; }
.star { width:12px; height:12px; background:var(--gd); clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); }
.tq-mark { font-family:var(--serif); font-style:italic; font-size:42px; color:rgba(45,197,182,0.3); line-height:0.6; display:block; margin-bottom:12px; }
.test-body { font-size:14.5px; line-height:1.8; color:var(--ink-soft); font-style:italic; margin-bottom:20px; }
.test-name { font-size:13.5px; font-weight:700; color:var(--ink); }
.test-role { font-size:11.5px; color:var(--muted); margin-top:2px; }

/* ── AREA HERO ── */
.area-hero { padding:120px 0 0; }
.area-hero .page-header-inner { max-width:780px; }
.area-hero h1 { font-family:var(--serif); font-weight:700; font-size:clamp(32px,4.5vw,54px); line-height:1.15; color:var(--ink); margin-bottom:16px; }
.area-hero h1 em { font-style:italic; color:var(--ce); }
.area-hero p.body-lg { max-width:480px; margin:0 auto; }
.area-landscape { position:relative; z-index:2; max-width:1000px; margin:48px auto 0; padding:0 5%; }
.area-landscape-svg { width:100%; height:auto; border-radius:20px; }

/* ── AREA ── */
.area-section { padding:96px 0; background:var(--cream-2); }
.area-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.area-locs { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:28px; }
.area-loc {
  display:flex; align-items:center; gap:7px;
  background:white; border:1px solid var(--line); border-radius:100px;
  padding:7px 16px; font-size:13px; font-weight:500; color:var(--ink-soft);
  transition:border-color 0.18s, color 0.18s;
}
.area-loc:hover { border-color:var(--ce); color:var(--ce); }
.loc-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.ld-tq { background:var(--tq); }
.ld-ce { background:var(--ce); }

.mod-cards { display:flex; flex-direction:column; gap:13px; }
.mod-card { display:flex; align-items:center; gap:14px; background:white; border:1px solid var(--line); border-radius:15px; padding:16px 20px; }
.mod-icon { width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.mi-tq { background:var(--tq-pale); }
.mi-ce { background:var(--ce-pale); }
.mod-card h4 { font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:2px; }
.mod-card p { font-size:12px; color:var(--muted); line-height:1.5; }

.area-visual {
  background:linear-gradient(145deg, rgba(45,197,182,0.14), rgba(31,111,184,0.12));
  border-radius:24px; height:400px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); position:relative; overflow:hidden;
}
.av-text { font-family:var(--serif); font-style:italic; font-size:17px; color:var(--ce); text-align:center; line-height:1.7; padding:24px; z-index:1; position:relative; }
.map-pin-dot { position:absolute; width:12px; height:12px; border-radius:50%; border:2.5px solid white; }
.mpd1 { background:var(--ce); top:28%; left:34%; box-shadow:0 2px 8px rgba(31,111,184,0.4); }
.mpd2 { background:var(--tq); top:38%; left:44%; box-shadow:0 2px 8px rgba(45,197,182,0.4); }
.mpd3 { background:var(--mg); top:50%; left:56%; box-shadow:0 2px 8px rgba(192,40,108,0.4); }
.mpd4 { background:var(--ce); top:60%; left:64%; box-shadow:0 2px 8px rgba(31,111,184,0.4); }
.mpd5 { background:var(--tq); top:67%; left:72%; box-shadow:0 2px 8px rgba(45,197,182,0.4); }

/* ── SWAG / BRAND ── */
.swag-section { padding:96px 0; background:var(--ink); }
.swag-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.swag-left .eyebrow { color:var(--gd); }
.swag-left h2.section-h { color:white; }
.swag-left h2.section-h em { color:var(--tq); }
.swag-left p.body-lg { color:rgba(255,255,255,0.6); margin-bottom:28px; }

.swag-items { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:30px; }
.swag-item { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:500; color:rgba(255,255,255,0.7); }
.swag-item::before { content:''; width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.si-tq::before { background:var(--tq); }
.si-ce::before { background:var(--ce); }
.si-mg::before { background:var(--mg); }
.si-gd::before { background:var(--gd); }

.swag-card {
  background:rgba(255,255,255,0.05);
  border:1.5px solid var(--gd);
  border-radius:22px; padding:36px 32px;
  text-align:center; position:relative; overflow:hidden;
}
.swag-card::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 260px 200px at 70% 30%, rgba(45,197,182,0.08), transparent);
}
.swag-eyebrow {
  display:inline-block; background:var(--gd); color:#3D2800;
  font-size:10px; font-weight:700; letter-spacing:1.8px;
  text-transform:uppercase; padding:5px 14px; border-radius:100px; margin-bottom:18px;
  position:relative;
}
.swag-card h3 {
  font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:28px; color:white; line-height:1.25; margin-bottom:12px;
  position:relative;
}
.swag-card p { font-size:13.5px; line-height:1.8; color:rgba(255,255,255,0.55); margin-bottom:22px; position:relative; }
.swag-chips { display:flex; flex-wrap:wrap; gap:7px; justify-content:center; margin-bottom:24px; position:relative; }
.swag-chip { font-size:11px; font-weight:500; padding:4px 12px; border-radius:100px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15); color:rgba(255,255,255,0.7); }

/* ── CTA ── */
.cta-section {
  padding:96px 0; background:var(--ce);
  text-align:center; position:relative; overflow:hidden;
}
.cta-section::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 500px 350px at 80% 50%, rgba(255,255,255,0.07), transparent),
             radial-gradient(ellipse 280px 280px at 20% 30%, rgba(255,255,255,0.05), transparent);
}
.cta-inner { position:relative; z-index:1; max-width:620px; margin:0 auto; }
.cta-section .eyebrow { color:rgba(255,255,255,0.6); }
.cta-h { font-family:var(--serif); font-weight:700; font-size:clamp(30px,4vw,50px); color:white; line-height:1.15; margin-bottom:16px; }
.cta-h em { font-style:italic; color:var(--gd); }
.cta-p { font-size:16px; font-weight:300; line-height:1.85; color:rgba(255,255,255,0.75); margin-bottom:34px; }
.cta-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta-sub { margin-top:22px; font-size:12.5px; color:rgba(255,255,255,0.45); }

/* ── FOOTER ── */
footer { background:var(--ink); padding:68px 5% 32px; }
.footer-top {
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px; margin-bottom:48px;
  padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.07);
}
.footer-logo strong { font-family:var(--serif); font-size:20px; color:white; display:block; line-height:1.1; }
.footer-logo span { font-size:8.5px; font-weight:600; letter-spacing:1.8px; text-transform:uppercase; color:var(--tq); margin-top:2px; display:block; }
.footer-tagline { font-size:13.5px; font-weight:300; line-height:1.8; color:rgba(255,255,255,0.42); margin:16px 0 20px; max-width:270px; }
.footer-social { display:flex; gap:9px; }
.soc { width:36px; height:36px; border-radius:9px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.45); text-decoration:none; transition:background 0.18s, color 0.18s; }
.soc:hover { background:var(--tq); color:var(--ink); border-color:var(--tq); }
.footer-col h4 { font-size:10.5px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:white; margin-bottom:18px; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:10px; }
.footer-col ul li a { font-size:13.5px; font-weight:300; color:rgba(255,255,255,0.42); text-decoration:none; transition:color 0.18s; }
.footer-col ul li a:hover { color:var(--tq); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; font-size:12px; color:rgba(255,255,255,0.25); }

/* ── CONTACT GRID ── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }

/* ── MOBILE ── */
@media (max-width:960px) {
  .hero-inner, .about-grid, .area-grid, .swag-grid, .contact-grid { grid-template-columns:1fr; }
  .hero-right, .photo-col { display:none; }
  .about-grid .about-bio { display:block; }
  .about-grid .about-text { grid-column:1; margin-top:0; }
  .area-visual { display:none; }
  .svc-hd { grid-template-columns:1fr; }
  .svc-grid { grid-template-columns:repeat(2,1fr); }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .stat-item { border-right:none; border-bottom:1px solid rgba(255,255,255,0.07); }
  .steps-row { grid-template-columns:repeat(2,1fr); }
  .steps-row::before { display:none; }
  .test-grid, .serve-cards { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr 1fr; }
  nav .nav-links {
    display:none; position:absolute; top:70px; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:rgba(251,246,238,0.97); backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line); padding:8px 0;
    box-shadow:0 8px 24px rgba(14,42,68,0.1);
  }
  nav .nav-links.open { display:flex; }
  nav .nav-links li { border-bottom:1px solid var(--line); }
  nav .nav-links li:last-child { border-bottom:none; }
  nav .nav-links a { display:block; padding:14px 5%; font-size:15px; }
  nav .nav-links .btn.nav-cta { margin:12px 5%; text-align:center; }
  .hamburger { display:flex; }
}
@media (max-width:560px) {
  .svc-grid, .stats-grid, .steps-row, .footer-top { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; }
}
