/* ============================================================
   Zelonyx — single-page marketing site
   Values transcribed 1:1 from zelonyx-site-reference.html
   ============================================================ */

/* ---------- base ---------- */
:root { --ivory: #F5F1E8; }

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body { background: #0E332E; overflow-x: clip; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

a { color: #1D6A5C; text-decoration: none; }
a:hover { color: #B8894A; }
::selection { background: #D3AA61; color: #0E332E; }

button { font: inherit; cursor: pointer; }
img { max-width: 100%; }

.container { max-width: 1400px; margin: 0 auto; }
.accent { color: #D3AA61; }
.logo-z { font-size: 1.2em; color: #D3AA61; }
.mask { overflow: hidden; }

.sticky-col { position: sticky; top: 110px; }

/* animation initial-hidden states, gated on html.js (set by an inline script
   in <head>): they apply at first paint when JS will run, so animations start
   from the right state with no flash — while a no-JS visitor (or a JS
   failure, which removes the class) sees the full content. */
html.js .hline { transform: translateY(115%); }
html.js .hero-eyebrow { transform: translateY(130%); }
html.js .hero-tick { transform: scaleX(0); }
html.js .hero-foot { opacity: 0; }
html.js .stat-num { transform: translateY(112%); }
html.js .stat-label { opacity: 0; }
html.js .problem-qintro { opacity: 0; }
html.js .problem-imgwrap { clip-path: inset(0 0 100% 0); }
html.js .about-sig, html.js .about-body { opacity: 0; }
html.js .how-dot { transform: scale(0.6); }
.parallax-img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; }

/* eyebrow labels (light sections) */
.eyebrow { display: flex; align-items: center; gap: 14px; }
.eyebrow-tick { display: inline-block; width: 34px; height: 1.5px; background: #B8894A; }
.eyebrow-label { font-family: Figtree, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 0.26em; color: #1D6A5C; }
.eyebrow-dark .eyebrow-tick { background: #D3AA61; }
.eyebrow-dark .eyebrow-label { color: #D3AA61; }

/* pill buttons */
.btn { display: inline-flex; align-items: center; gap: 12px; font-family: Figtree, sans-serif; font-weight: 600; border-radius: 999px; }
.btn-brass { font-size: 15.5px; color: #0E332E; background: #D3AA61; padding: 18px 36px; }
.btn-brass:hover { color: #0E332E; }
.btn-petrol { font-size: 15px; color: #F5F1E8; background: #123F39; padding: 15px 30px; }
.btn-petrol:hover { color: #F5F1E8; }
.btn-wide { font-size: 15px; padding: 15px 30px; margin-top: 28px; min-width: 240px; justify-content: center; }
.btn-lg { font-size: 16px; padding: 20px 44px; }
.btn-arrow { font-size: 17px; line-height: 1; }

/* ---------- custom cursor ---------- */
.cursor-dot { position: fixed; top: 0; left: 0; width: 5px; height: 5px; border-radius: 50%; background: #D3AA61; z-index: 300; pointer-events: none; transform: translate(-100px, -100px); }
.cursor-ring { position: fixed; top: 0; left: 0; width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(211,170,97,0.75); z-index: 299; pointer-events: none; transform: translate(-100px, -100px); display: flex; align-items: center; justify-content: center; }
@media (prefers-reduced-motion: reduce) {
  .cursor-dot, .cursor-ring { display: none !important; }
}
@media (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html, body, a, button, input, textarea { cursor: none; }
}

/* ---------- chatbot ---------- */
.chat-root { position: fixed; right: 28px; bottom: 28px; z-index: 200; display: flex; flex-direction: column; align-items: flex-end; gap: 14px; font-family: Figtree, sans-serif; }
.chat-panel { width: 380px; max-width: calc(100vw - 56px); height: 540px; max-height: calc(100vh - 140px); background: #0E332E; border: 1px solid rgba(211,170,97,0.35); border-radius: 18px; box-shadow: 0 24px 70px rgba(10,35,31,0.5); display: flex; flex-direction: column; overflow: hidden; }
.chat-panel[hidden] { display: none; }
.chat-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 22px 18px; border-bottom: 1px solid rgba(245,241,232,0.12); }
.chat-title { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: 19px; color: #F5F1E8; }
.chat-subtitle { margin-top: 3px; font-size: 12px; color: rgba(245,241,232,0.55); }
.chat-close { background: none; border: none; padding: 6px; color: rgba(245,241,232,0.7); font-size: 20px; line-height: 1; }
.chat-scroll { flex: 1; overflow-y: auto; padding: 20px 20px 8px; display: flex; flex-direction: column; gap: 10px; }
.chat-msg { display: flex; }
.chat-msg-user { justify-content: flex-end; }
.chat-bubble { max-width: 82%; padding: 11px 15px; font-size: 14px; line-height: 1.55; white-space: pre-line; }
.chat-msg-bot .chat-bubble { border-radius: 14px 14px 14px 4px; background: rgba(245,241,232,0.08); color: rgba(245,241,232,0.92); }
.chat-msg-user .chat-bubble { border-radius: 14px 14px 4px 14px; background: #D3AA61; color: #0E332E; }
.chat-typing { display: flex; }
.chat-typing[hidden] { display: none; }
.chat-typing-bubble { padding: 12px 16px; border-radius: 14px 14px 14px 4px; background: rgba(245,241,232,0.08); color: #D3AA61; font-size: 13px; letter-spacing: 0.22em; }
.chat-mailto-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 4px 0 10px; }
.chat-mailto-wrap[hidden] { display: none; }
.chat-mailto-btn { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; color: #0E332E; background: #D3AA61; padding: 13px 24px; border-radius: 999px; }
.chat-mailto-btn:hover { color: #0E332E; }
.chat-mailto-note { font-size: 11.5px; color: rgba(245,241,232,0.5); }
.chat-input-row { display: flex; gap: 10px; padding: 14px 16px 16px; border-top: 1px solid rgba(245,241,232,0.12); }
.chat-input-row[hidden] { display: none; }
.chat-input { flex: 1; background: rgba(245,241,232,0.07); border: 1px solid rgba(245,241,232,0.18); border-radius: 999px; padding: 12px 18px; font-family: Figtree, sans-serif; font-size: 14px; color: #F5F1E8; outline: none; }
.chat-send { background: #D3AA61; border: none; border-radius: 50%; width: 44px; height: 44px; color: #0E332E; font-size: 17px; display: flex; align-items: center; justify-content: center; }
.chat-fab { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; background: #0E332E; border: 1px solid #D3AA61; border-radius: 50%; box-shadow: 0 10px 32px rgba(10,35,31,0.35); transition: transform 0.25s ease; }
.chat-fab:hover { transform: scale(1.08); }
.chat-fab-icon { display: block; }
.chat-fab-icon[hidden] { display: none; }
.chat-fab-close { font-family: Figtree, sans-serif; font-size: 24px; line-height: 1; color: #F5F1E8; }
.chat-fab-close[hidden] { display: none; }

/* ---------- preloader ---------- */
.preloader { position: fixed; inset: 0; z-index: 250; background: #0E332E; display: flex; align-items: flex-end; justify-content: space-between; padding: 40px 52px; }
.preloader-mask { overflow: hidden; }
.preloader-word { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(48px, 7vw, 110px); letter-spacing: 0; line-height: 1; padding-bottom: 0.22em; color: #F5F1E8; }
.preloader-pct { font-family: Figtree, sans-serif; font-weight: 500; font-size: 14px; letter-spacing: 0.3em; color: #D3AA61; }
.preloader-line { position: absolute; left: 0; bottom: 0; height: 2px; width: 0%; background: #D3AA61; }

/* ---------- navigation ---------- */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 90; display: flex; align-items: center; justify-content: space-between; padding: 26px 52px; }
.brand { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: 21px; letter-spacing: 0; color: #F5F1E8; line-height: 1; }
.nav-links { display: flex; align-items: center; gap: 34px; font-family: Figtree, sans-serif; font-weight: 500; font-size: 13.5px; letter-spacing: 0.06em; }
.nav-links [data-nav-link] { color: rgba(245,241,232,0.85); }
.nav-links [data-nav-cta] { color: #F5F1E8; border-bottom: 1.5px solid #F5F1E8; padding-bottom: 3px; }
.nav-burger { display: none; flex-direction: column; justify-content: center; gap: 6px; width: 44px; height: 44px; padding: 10px; background: none; border: none; }
.nav-burger span { display: block; width: 24px; height: 1.5px; background: #F5F1E8; }
.nav-menu { position: fixed; inset: 0; z-index: 95; background: #0E332E; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 24px; gap: 0; }
.nav-menu[hidden] { display: none; }
.nav-menu-close { position: absolute; top: 14px; right: 16px; width: 52px; height: 52px; background: none; border: none; color: #F5F1E8; font-size: 34px; line-height: 1; }
.nav-menu-links { display: flex; flex-direction: column; gap: 26px; }
.nav-menu-links a { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: 34px; letter-spacing: -0.02em; color: #F5F1E8; }
.nav-menu-cta { margin-top: 44px; }

/* ---------- hero ---------- */
.hero { position: relative; height: 100vh; height: 100svh; background: #0E332E; overflow: hidden; }
.hero-img { position: absolute; inset: 0; background-image: url("../assets/hero-threads.jpg"); background-size: cover; background-position: center 40%; opacity: 0.34; z-index: 0; }
.hero-webgl { position: absolute; inset: 0; z-index: 1; }
.hero-vignette { position: absolute; inset: 0; z-index: 2; background: radial-gradient(ellipse at 50% 100%, rgba(14,51,46,0.66) 0%, rgba(14,51,46,0) 55%); pointer-events: none; }
.hero-content { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; justify-content: space-between; padding: 118px 52px 44px; pointer-events: none; }
.hero-eyebrow { display: flex; align-items: center; gap: 14px; }
.hero-tick { display: inline-block; width: 34px; height: 1.5px; background: #D3AA61; transform-origin: left; }
.hero-eyebrow-text { font-family: Figtree, sans-serif; font-weight: 600; font-size: 12.5px; letter-spacing: 0.28em; color: #D3AA61; }
.hero-head { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(42px, min(7.6vw, 12vh), 138px); line-height: 0.99; letter-spacing: -0.03em; color: #F5F1E8; margin: 30px 0 0; }
/* padding/negative margin keep Fraunces descenders (g, y) unclipped inside the masks */
.hline-mask { display: block; overflow: hidden; padding-bottom: 0.18em; margin-bottom: -0.12em; }
.hline { display: block; }
.hero-head em { font-style: italic; font-weight: 400; color: #D3AA61; }
.hero-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; pointer-events: auto; }
.hero-lede { font-family: Figtree, sans-serif; font-size: 23px; line-height: 1.65; color: #D3AA61; max-width: 700px; margin: 0; }
.hero-lede p { margin: 0; }
/* Line 2 sits directly under Line 1 as part of the same block: ~0.85em gap,
   medium weight, exactly the ivory token — never pure white */
.hero-lede p.hero-lede-strong { margin-top: 0.85em; font-weight: 500; color: var(--ivory); }
/* bottom margin clears the fixed 56px chat FAB (right 28 / bottom 28) so the
   stack reads: Book button → microcopy → chat circle, with no overlap */
.hero-cta-col { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; margin-bottom: 72px; }
.hero-microcopy { font-family: Figtree, sans-serif; font-size: 12.5px; color: rgba(245,241,232,0.6); }
.hero-scrollcue { position: absolute; left: 52px; bottom: 44px; z-index: 4; display: none; font-family: Figtree, sans-serif; font-size: 12px; letter-spacing: 0.22em; color: rgba(245,241,232,0.55); }

/* ---------- credibility strip ---------- */
.stats { position: relative; background: #F5F1E8; padding: 140px 52px 120px; }
.stats-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: end; }
.stat { padding-right: 48px; }
.stat-mid { padding: 0 48px; border-left: 1px solid #DED8CC; }
.stat-last { padding-left: 48px; padding-right: 0; border-left: 1px solid #DED8CC; }
.stat-num { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(84px, 9.5vw, 164px); line-height: 0.95; letter-spacing: -0.045em; color: #123F39; }
.stat-suffix { color: #B8894A; }
.stat-label { margin-top: 20px; padding-top: 18px; border-top: 1px solid #DED8CC; font-family: Figtree, sans-serif; font-weight: 500; font-size: 15px; color: #42544E; }

/* ---------- the problem ---------- */
.problem { position: relative; background: #F5F1E8; padding: 40px 52px 170px; overflow: hidden; }
.problem-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 96px; align-items: start; }
.problem-scrub { margin-top: 44px; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(30px, 3.3vw, 50px); line-height: 1.24; letter-spacing: -0.02em; color: #18312D; }
.problem-body { margin: 32px 0 0; font-family: Figtree, sans-serif; font-size: 17px; line-height: 1.7; color: #42544E; max-width: 560px; }
.problem-qintro { margin-top: 84px; font-family: Fraunces, Georgia, serif; font-style: italic; font-size: 22px; color: #42544E; }
.problem-qlist { margin-top: 28px; }
.qline { display: flex; align-items: center; gap: 36px; padding: 30px 0; border-top: 1px solid #DED8CC; }
.qline-last { border-bottom: 1px solid #DED8CC; }
.qline-num { font-family: Figtree, sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 0.2em; color: #B8894A; flex: 0 0 44px; }
.qline-text { font-family: Fraunces, Georgia, serif; font-style: italic; font-weight: 400; font-size: clamp(23px, 2.3vw, 36px); line-height: 1.25; color: #123F39; }
.problem-imgwrap { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 3 / 4; }

/* ---------- the shift ---------- */
.shift { position: relative; background: #E8E1D4; padding: 170px 52px 170px; overflow: hidden; }
.shift-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; align-items: start; }
.shift-head { margin: 40px 0 0; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(32px, 3.6vw, 56px); line-height: 1.12; letter-spacing: -0.025em; color: #18312D; }
.shift-head em { font-style: italic; font-weight: 400; color: #1D6A5C; }
.shift-body { margin: 32px 0 0; font-family: Figtree, sans-serif; font-size: 17px; line-height: 1.7; color: #42544E; max-width: 520px; }
.shift-body + .shift-body { margin-top: 16px; }

.compare { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 3 / 4; touch-action: none; }
.compare > img, .compare-top img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.compare-top { position: absolute; inset: 0; overflow: hidden; clip-path: inset(0 0 0 55%); }
.compare-bar { position: absolute; top: 0; bottom: 0; left: 55%; width: 2px; background: #D3AA61; transform: translateX(-1px); }
.compare-handle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 52px; height: 52px; border-radius: 50%; background: #D3AA61; display: flex; align-items: center; justify-content: center; gap: 5px; box-shadow: 0 4px 18px rgba(14,51,46,0.35); }
.compare-arrow-left { width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-right: 6px solid #0E332E; }
.compare-arrow-right { width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 6px solid #0E332E; }
.compare-tag { position: absolute; bottom: 16px; font-family: Figtree, sans-serif; font-weight: 600; font-size: 11.5px; letter-spacing: 0.18em; padding: 7px 12px; border-radius: 999px; backdrop-filter: blur(4px); }
.compare-tag-left { left: 18px; color: #F5F1E8; background: rgba(14,51,46,0.55); }
.compare-tag-right { right: 18px; color: #0E332E; background: rgba(232,225,212,0.72); }

/* ---------- what we do ---------- */
.services { position: relative; background: #0E332E; padding: 170px 52px 170px; overflow: hidden; }
.services-headrow { display: flex; align-items: flex-end; justify-content: space-between; gap: 60px; margin-top: 40px; }
.services-head { margin: 0; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(36px, 4.2vw, 68px); line-height: 1.05; letter-spacing: -0.025em; color: #F5F1E8; }
.services-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 90px; margin-top: 90px; align-items: start; }
.svc { border-top: 1px solid rgba(245,241,232,0.18); padding: 38px 0 40px; cursor: pointer; }
.svc-last { border-bottom: 1px solid rgba(245,241,232,0.18); }
.svc-row { display: flex; align-items: baseline; gap: 36px; }
.svc-num { font-family: Figtree, sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 0.2em; color: #D3AA61; flex: 0 0 44px; }
.svc-title { flex: 1; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(26px, 2.6vw, 42px); line-height: 1.1; letter-spacing: -0.02em; color: #F5F1E8; }
.svc-plus { font-family: Fraunces, Georgia, serif; font-weight: 400; font-size: 30px; color: #D3AA61; line-height: 1; transition: transform 0.4s ease; }
.svc-body { overflow: hidden; height: auto; }
.svc-body-closed { height: 0; }
.svc-body-inner { padding: 26px 0 0 80px; max-width: 640px; }
.svc-quote { font-family: Fraunces, Georgia, serif; font-style: italic; font-size: 19px; line-height: 1.5; color: #D3AA61; }
.svc-items { margin: 20px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.svc-items li { font-family: Figtree, sans-serif; font-size: 14.5px; line-height: 1.5; color: rgba(245,241,232,0.7); }
.svc-items strong { font-weight: 600; color: #F5F1E8; }
.svc-imgwrap { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 3 / 4; }

/* ---------- why zelonyx ---------- */
.why { position: relative; background: #F5F1E8; padding: 170px 52px 170px; }
.why-head { margin: 40px 0 0; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(34px, 4vw, 62px); line-height: 1.08; letter-spacing: -0.025em; color: #18312D; max-width: 900px; }
.why-head em { font-style: italic; font-weight: 400; color: #1D6A5C; }
.why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 80px; }
/* grid stretch keeps the three cards equal-height; no fixed min-height so
   the shortened bodies sit naturally instead of clustering above a void */
.why-card { background: #123F39; border-radius: 14px; padding: 44px 40px 40px; display: flex; flex-direction: column; }
.why-card-num { font-family: Figtree, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 0.22em; color: #D3AA61; }
.why-card-title { margin-top: 22px; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: 25px; line-height: 1.2; color: #F5F1E8; }
.why-card-body { margin: 18px 0 0; font-family: Figtree, sans-serif; font-size: 17px; line-height: 1.7; color: rgba(245,241,232,0.78); flex: 1; }

/* ---------- how it works ---------- */
.how { position: relative; background: #E8E1D4; padding: 170px 52px 170px; }
.how-head { margin: 40px 0 0; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(34px, 4vw, 62px); line-height: 1.08; letter-spacing: -0.025em; color: #18312D; max-width: 860px; }
.how-head .suffix { color: #B8894A; }
.how-timeline { position: relative; margin-top: 90px; padding-left: 46px; }
.how-track { position: absolute; left: 8px; top: 8px; bottom: 8px; width: 1.5px; background: #DED8CC; }
.how-line { position: absolute; left: 8px; top: 8px; width: 1.5px; height: 0; background: #B8894A; }
.how-step { position: relative; padding: 0 0 78px; }
.how-step-last { padding-bottom: 0; }
.how-dot { position: absolute; left: -46px; top: 8px; width: 17px; height: 17px; border-radius: 50%; background: #E8E1D4; border: 1.5px solid #B8894A; }
.how-step-grid { display: grid; grid-template-columns: 260px 1fr; gap: 60px; align-items: baseline; }
.how-step-label { font-family: Figtree, sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 0.22em; color: #B8894A; }
.how-step-body { max-width: 720px; }
.how-step-title { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(26px, 2.7vw, 42px); line-height: 1.12; letter-spacing: -0.02em; color: #18312D; }
.how-step-body p { margin: 18px 0 0; font-family: Figtree, sans-serif; font-size: 17px; line-height: 1.7; color: #42544E; }

/* ---------- resources ---------- */
.resources { position: relative; background: #F5F1E8; padding: 170px 52px 170px; }
.resources-head { margin: 40px 0 0; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(34px, 4vw, 62px); line-height: 1.08; letter-spacing: -0.025em; color: #18312D; max-width: 900px; }
.resources-head em { font-style: italic; font-weight: 400; color: #1D6A5C; }
.resources-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 28px; margin-top: 80px; align-items: stretch; }
.res-card { position: relative; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: 460px; }
.res-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.res-card-shade { position: absolute; inset: 0; }
.res-card-content { position: relative; }
.res-card p { margin: 14px 0 0; font-family: Figtree, sans-serif; font-size: 15.5px; line-height: 1.7; }
.res-card-title { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: 28px; }
.res-card-dark { background: #123F39; }
.res-card-dark > img { opacity: 0.55; }
.res-card-dark .res-card-shade { background: linear-gradient(180deg, rgba(18,63,57,0.1) 0%, rgba(14,51,46,0.88) 78%); }
.res-card-dark .res-card-content { padding: 44px 44px 42px; }
.res-card-dark .res-card-title { color: #F5F1E8; }
.res-card-dark p { color: rgba(245,241,232,0.82); max-width: 480px; }
.res-card-light { background: #FCFAF5; border: 1px solid #DED8CC; padding: 44px 44px 42px; }
.res-card-light > img { opacity: 0.85; }
.res-card-light .res-card-shade { background: linear-gradient(180deg, rgba(252,250,245,0) 0%, rgba(252,250,245,0.92) 72%); }
.res-card-light .res-card-title { color: #18312D; }
.res-card-light p { color: #42544E; max-width: 420px; }

/* ---------- who we are ---------- */
.about { position: relative; background: #E8E1D4; padding: 170px 52px 170px; overflow: hidden; }
.about-quote { margin: 70px auto 0; max-width: 1100px; text-align: center; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(30px, 3.8vw, 58px); line-height: 1.18; letter-spacing: -0.02em; color: #18312D; }
.about-quote em { font-style: italic; font-weight: 400; color: #1D6A5C; }
.about-sig { margin-top: 36px; text-align: center; }
.about-sig-name { font-family: Fraunces, Georgia, serif; font-style: italic; font-weight: 400; font-size: 30px; color: #123F39; }
.about-sig-role { margin-top: 8px; font-family: Figtree, sans-serif; font-weight: 500; font-size: 12.5px; letter-spacing: 0.18em; color: #42544E; }
.about-body { margin: 90px auto 0; max-width: 1000px; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.about-body-head { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: 23px; line-height: 1.3; color: #18312D; }
.about-body-text { font-family: Figtree, sans-serif; font-size: 15.5px; line-height: 1.75; color: #42544E; }
.about-body-text p { margin: 0; }
.about-body-text p + p { margin-top: 16px; }

/* ---------- final CTA ---------- */
.cta { position: relative; background: #0E332E; padding: 190px 52px 190px; overflow: hidden; text-align: center; }
.cta-glow { position: absolute; left: 50%; top: 55%; width: 900px; height: 500px; transform: translate(-50%, -50%); background: radial-gradient(ellipse, rgba(29,106,92,0.35) 0%, rgba(14,51,46,0) 65%); pointer-events: none; }
.cta-content { position: relative; max-width: 900px; margin: 0 auto; }
.cta-eyebrow { font-family: Figtree, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 0.28em; color: #D3AA61; }
.cta-head { margin: 36px 0 0; font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: clamp(36px, 4.6vw, 72px); line-height: 1.06; letter-spacing: -0.025em; color: #F5F1E8; }
.cta-head em { font-style: italic; font-weight: 400; color: #D3AA61; }
.cta-body { margin: 30px auto 0; max-width: 620px; font-family: Figtree, sans-serif; font-size: 16.5px; line-height: 1.7; color: rgba(245,241,232,0.8); }
.cta-actions { margin-top: 44px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cta-microcopy { font-family: Figtree, sans-serif; font-size: 12.5px; color: rgba(245,241,232,0.55); }

/* ---------- footer ---------- */
footer { background: #0E332E; border-top: 1px solid rgba(211,170,97,0.22); padding: 90px 52px 44px; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 48px; }
.footer-brand { font-family: Fraunces, Georgia, serif; font-weight: 500; font-size: 26px; letter-spacing: 0; line-height: 1; color: #F5F1E8; }
.footer-tagline { margin-top: 12px; font-family: Fraunces, Georgia, serif; font-style: italic; font-size: 16px; color: rgba(245,241,232,0.62); }
.footer-col { display: flex; flex-direction: column; gap: 13px; }
.footer-col-title { font-family: Figtree, sans-serif; font-weight: 600; font-size: 11.5px; letter-spacing: 0.22em; color: #D3AA61; margin-bottom: 6px; }
.footer-col a { font-family: Figtree, sans-serif; font-size: 14.5px; color: rgba(245,241,232,0.78); }
.footer-col a:hover { color: #D3AA61; }
.footer-muted { font-family: Figtree, sans-serif; font-size: 14.5px; color: rgba(245,241,232,0.45); }
.footer-bottom { margin-top: 80px; padding-top: 26px; border-top: 1px solid rgba(245,241,232,0.14); display: flex; align-items: center; justify-content: space-between; font-family: Figtree, sans-serif; font-size: 13px; color: rgba(245,241,232,0.5); }

/* ---------- responsive (≤820px) ---------- */
@media (max-width: 820px) {
  [data-nav-link], .nav-links [data-nav-cta] { display: none; }
  .nav-burger { display: flex; }
  .nav { padding: 18px 24px; }
  /* hero must fit the small viewport: smaller lede, tighter padding,
     clearance for the 56px chat FAB under the CTA */
  .hero-content { padding: 96px 24px 24px; }
  .hero-lede { font-size: 17px; }
  .hero-foot { gap: 24px; }
  .hero-cta-col { margin-bottom: 76px; }
  /* class selectors, not bare `section`: the sections' base padding rules are
     class-specificity and would win over a type selector, leaving desktop
     52px gutters on phones */
  .stats, .problem, .shift, .services, .why, .how,
  .resources, .about, .cta, footer { padding-left: 24px; padding-right: 24px; }
  /* the 260px label column forced the page to ~505px wide on phones,
     shifting the whole layout (and the nav controls) off-screen */
  .how-step-grid { grid-template-columns: 1fr; gap: 18px; }
  .stats-grid,
  .problem-grid,
  .shift-grid,
  .services-grid,
  .why-grid,
  .resources-grid,
  .about-body { grid-template-columns: 1fr; gap: 44px; }
  .stat, .stat-mid, .stat-last { border-left: none; padding: 0 0 44px; }
  .hero-foot { flex-wrap: wrap; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
}

