/* ===========================================================
   GoodLive Ventures — shared design system, v2
   Palette: deep racing pine-green / warm parchment / marigold gold.
   Type: Bricolage Grotesque (display) + Inter (body).
   =========================================================== */

:root{
  --charcoal-950:#0D211C;   /* deep pine-black — primary dark */
  --charcoal-900:#15302A;
  --charcoal-800:#1E3F37;
  --charcoal-line: rgba(250,246,236,0.14);
  --cream:#FAF6EC;          /* warm parchment */
  --stone:#EFE7D3;
  --stone-2:#E6DCC0;
  --ink:#13201B;             /* green-tinted near-black */
  --ink-soft:#4B5850;
  --brass:#E0A526;          /* marigold gold accent — for buttons, borders, dark backgrounds */
  --brass-text:#8A5D0F;     /* darker gold — WCAG AA-passing variant for small label text on light backgrounds */
  --brass-bright:#F0BE4E;
  --line-light: rgba(19,32,27,0.12);
  --radius-sm:2px;
  --radius-md:3px;
  --maxw:1240px;
  --safe-t: env(safe-area-inset-top,0px);
  --safe-b: env(safe-area-inset-bottom,0px);
  --font-display: 'Bricolage Grotesque', system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth; scroll-padding-top:88px;}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  padding-top:var(--safe-t); padding-bottom:calc(66px + var(--safe-b));
  overflow-x:hidden;
}
h1,h2,h3,h4,
.hero-h, .hero-full h1, .section-h, .div-lead h3, .div-card h3,
.founder-text h3, .insight-card h4, .feature-card h4, .vcard-body h4,
.process-item h4, .why-item h4, .contact-card h4, .cta-band h2,
.case-card h3, .brand{
  font-family: var(--font-display);
  letter-spacing:-0.01em;
}
@media (min-width:760px){ body{padding-bottom:var(--safe-b);} }
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
@media (min-width:900px){ .wrap{padding:0 48px;} }
.wrap-narrow{max-width:820px; margin:0 auto; padding:0 24px;}
@media (min-width:900px){ .wrap-narrow{padding:0 48px;} }

/* ---------- grain texture for dark sections ---------- */
.grain{position:relative;}
.grain::before{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:0.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- NAV ---------- */
header.site{
  position:sticky; top:0; z-index:50; background:rgba(18,21,26,0.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--charcoal-line); padding-top:var(--safe-t);
  transition:box-shadow .2s ease;
}
header.site.scrolled{box-shadow:0 8px 24px rgba(0,0,0,0.25);}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:16px; height:76px; max-width:var(--maxw); margin:0 auto; padding:0 24px; transition:height .2s ease;}
@media (min-width:900px){ .nav-row{padding:0 48px;} }
header.site.scrolled .nav-row{height:62px;}
.brand{color:var(--cream); text-decoration:none; font-weight:800; font-size:1.02rem; letter-spacing:0.01em; display:flex; flex-direction:column; line-height:1; white-space:nowrap; flex-shrink:0;}
.brand small{font-weight:500; font-size:0.58rem; color:var(--brass-bright); letter-spacing:0.1em; margin-top:5px; white-space:nowrap; transition:opacity .2s ease, max-height .2s ease; overflow:hidden;}
@media (max-width:360px){ .brand small{ display:none; } }
header.site.scrolled .brand small{opacity:0; max-height:0; margin-top:0;}
nav.primary{display:none; gap:22px; align-items:center; flex-wrap:nowrap;}
nav.primary a{color:#D9D5CB; text-decoration:none; font-size:0.85rem; font-weight:500; padding:6px 0; position:relative; white-space:nowrap; transition:color .15s;}
nav.primary a::after{content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform .25s cubic-bezier(.2,.8,.3,1);}
nav.primary a:hover, nav.primary a[aria-current="page"]{color:var(--cream);}
nav.primary a:hover::after, nav.primary a[aria-current="page"]::after{transform:scaleX(1);}
@media (min-width:1120px){ nav.primary{display:flex;} }
@media (min-width:1120px) and (max-width:1300px){ nav.primary{gap:16px;} nav.primary a, .nav-drop-toggle{font-size:0.8rem;} }

/* dropdown groups within nav.primary */
.nav-drop{position:relative;}
.nav-drop-toggle{
  background:none; border:none; color:#D9D5CB; font:inherit; font-size:0.85rem; font-weight:500;
  cursor:pointer; display:flex; align-items:center; gap:5px; padding:6px 0; position:relative;
  transition:color .15s; white-space:nowrap;
}
.nav-drop-toggle::after{content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform .25s cubic-bezier(.2,.8,.3,1);}
.nav-drop-toggle .caret{font-size:0.6rem; color:var(--brass-bright); transition:transform .18s ease;}
.nav-drop-toggle:hover, .nav-drop.open .nav-drop-toggle, .nav-drop-toggle[data-active="true"]{color:var(--cream);}
.nav-drop-toggle:hover::after, .nav-drop.open .nav-drop-toggle::after, .nav-drop-toggle[data-active="true"]::after{transform:scaleX(1);}
.nav-drop:hover .nav-drop-toggle .caret, .nav-drop.open .nav-drop-toggle .caret{transform:rotate(180deg);}
.nav-drop-menu{
  position:absolute; top:calc(100% + 16px); left:50%; transform:translateX(-50%) translateY(-8px) scale(0.98);
  background:var(--charcoal-900); border:1px solid var(--charcoal-line); border-radius:var(--radius-md);
  min-width:236px; padding:8px; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s ease, transform .2s cubic-bezier(.2,.8,.3,1); box-shadow:0 18px 36px rgba(0,0,0,0.35); z-index:60;
}
.nav-drop:hover .nav-drop-menu, .nav-drop.open .nav-drop-menu{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0) scale(1);
}
.nav-drop-menu a{display:block; padding:10px 12px; border-radius:var(--radius-sm); font-size:0.85rem; color:#D9D5CB; text-decoration:none; white-space:nowrap; transition:background .15s ease, color .15s ease, transform .15s ease;}
.nav-drop-menu a:hover, .nav-drop-menu a[aria-current="page"]{background:var(--charcoal-800); color:var(--cream); transform:translateX(3px);}

.nav-cta{display:flex; gap:10px; align-items:center; flex-shrink:0;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:inherit; font-weight:600; font-size:0.86rem; text-decoration:none; padding:11px 20px; min-height:44px; border-radius:var(--radius-sm); border:1px solid transparent; cursor:pointer; transition:transform .18s cubic-bezier(.2,.8,.3,1.2), background .18s ease, border-color .18s ease, color .18s ease, box-shadow .25s ease; white-space:nowrap;}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0) scale(0.97);}
.btn-brass{background:var(--brass); color:#12211B;}
.btn-brass:hover{background:var(--brass-bright); box-shadow:0 12px 26px rgba(224,165,38,0.32);}
.btn-ghost-dark{border-color:rgba(250,246,236,0.3); color:var(--cream); background:transparent;}
.btn-ghost-dark:hover{border-color:var(--cream); box-shadow:0 10px 22px rgba(0,0,0,0.25);}
.btn-ghost-light{border-color:var(--line-light); color:var(--ink); background:transparent;}
.btn-ghost-light:hover{border-color:var(--ink); box-shadow:0 10px 22px rgba(13,33,28,0.1);}
.btn-lg{padding:14px 26px; font-size:0.94rem;}
.navcta-desktop{display:none;}
@media (min-width:1120px){ .navcta-desktop{display:flex;} }
.menu-toggle{display:flex; background:none; border:1px solid rgba(250,246,236,0.3); border-radius:var(--radius-sm); width:42px; height:42px; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;}
@media (min-width:1120px){ .menu-toggle{display:none;} }
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after{content:''; display:block; width:18px; height:1.5px; background:var(--cream); position:relative;}
.menu-toggle span::before{position:absolute; top:-6px;}
.menu-toggle span::after{position:absolute; top:6px;}
#mobile-panel{display:none; background:var(--charcoal-950); border-bottom:1px solid var(--charcoal-line); padding:8px 24px 28px; max-height:calc(100vh - 76px); overflow-y:auto;}
#mobile-panel.open{display:block;}
#mobile-panel .mob-group-label{display:block; padding:16px 0 4px; font-size:0.7rem; font-weight:700; letter-spacing:0.06em; color:var(--brass-bright); text-transform:uppercase;}
#mobile-panel a{display:block; color:var(--cream); text-decoration:none; padding:13px 0; border-bottom:1px solid var(--charcoal-line); font-size:1rem; font-weight:500;}
#mobile-panel .mob-cta{display:flex; gap:10px; margin-top:18px;}

/* ---------- marquee ---------- */
.marquee{
  background:var(--charcoal-950); border-bottom:1px solid var(--charcoal-line); overflow:hidden; white-space:nowrap; padding:11px 0;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track{display:inline-flex; gap:0; animation:scroll 32s linear infinite;}
.marquee span{color:#7E9488; font-size:0.78rem; font-weight:600; letter-spacing:0.04em; padding:0 22px; display:inline-flex; align-items:center; gap:22px;}
.marquee span::after{content:'•'; color:var(--brass); }
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce){ .marquee-track{animation:none;} }

/* ---------- HERO variants ---------- */
.hero{background:radial-gradient(1100px 620px at 78% -10%, #1B3A32 0%, var(--charcoal-900) 55%, var(--charcoal-950) 100%); color:var(--cream); position:relative;}
.hero-grid{display:grid; grid-template-columns:1fr; gap:40px; padding:56px 0 56px;}
@media (min-width:980px){ .hero-grid{grid-template-columns:1.05fr 0.95fr; align-items:center; padding:84px 0 84px;} }
.eyebrow-line{display:flex; align-items:center; gap:10px; color:var(--brass-bright); font-size:0.8rem; font-weight:600; margin-bottom:20px;}
.eyebrow-line::before{content:''; width:26px; height:1px; background:var(--brass-bright);}
h1.hero-h{font-size:clamp(2.2rem, 5.6vw, 3.8rem); font-weight:800; line-height:1.03; letter-spacing:-0.01em; margin:0 0 22px; max-width:14ch;}
.hero-sub{font-size:1.05rem; line-height:1.62; color:#C4CFC6; max-width:48ch; margin:0 0 32px; font-weight:400;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:34px;}
.trust-strip{display:flex; flex-wrap:wrap; gap:10px 26px; padding-top:24px; border-top:1px solid var(--charcoal-line);}
.trust-strip span{font-size:0.76rem; color:#8FA69A; font-weight:500;}
.trust-strip b{color:var(--brass-bright); font-weight:600;}
.hero-art{position:relative; min-height:240px;}
.hero-art svg{width:100%; height:auto; display:block;}
@media (max-width:979px){ .hero-art{order:-1;} }

/* full-bleed editorial hero (about/insights) */
.hero-full{background:var(--charcoal-950); color:var(--cream); padding:60px 0 64px;}
.hero-full .kicker{color:var(--brass-bright);}
.hero-full h1{font-size:clamp(2.1rem,5vw,3.4rem); font-weight:800; line-height:1.06; max-width:16ch; margin:0 0 22px;}
.hero-full p{font-size:1.05rem; color:#C4CFC6; max-width:60ch; line-height:1.62;}

/* stat-led hero (corporate) */
.hero-stats{display:grid; gap:22px; margin-top:40px;}
@media (min-width:640px){ .hero-stats{grid-template-columns:repeat(3,1fr);} }
.hero-stats .stat{border-top:1px solid var(--charcoal-line); padding-top:14px;}
.hero-stats .stat b{display:block; font-size:1.3rem; color:var(--brass-bright); font-weight:800; margin-bottom:4px;}
.hero-stats .stat span{font-size:0.85rem; color:#8FA69A;}

/* ---------- breadcrumb ---------- */
.crumbs{background:var(--stone); border-bottom:1px solid var(--line-light);}
.crumbs .wrap{padding-top:14px; padding-bottom:14px; font-size:0.8rem; color:var(--ink-soft);}
.crumbs a{color:var(--ink-soft); text-decoration:none;}
.crumbs a:hover{color:var(--ink);}
.crumbs span.sep{margin:0 8px; opacity:0.5;}
.crumbs span.current{color:var(--ink); font-weight:600;}

/* ---------- SECTION helpers ---------- */
section{padding:68px 0;}
@media (min-width:900px){ section{padding:96px 0;} }
.section-head{max-width:660px; margin-bottom:48px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.kicker{display:flex; align-items:center; gap:10px; color:var(--brass-text); font-size:0.8rem; font-weight:700; margin-bottom:16px;}
.section-head.center .kicker{justify-content:center;}
.kicker::before{content:''; width:22px; height:1px; background:var(--brass);}
h2.section-h{font-size:clamp(1.6rem, 3.2vw, 2.4rem); font-weight:800; letter-spacing:-0.01em; margin:0 0 16px; line-height:1.1;}
.section-p{font-size:1rem; line-height:1.62; color:var(--ink-soft); max-width:58ch; margin:0;}
.section-head.center .section-p{margin-left:auto; margin-right:auto;}

/* ---------- quick answer (AEO) ---------- */
.quick-answer{
  background:var(--stone); border-left:3px solid var(--brass); border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:22px 26px; margin:0 0 44px; max-width:760px;
}
.quick-answer .qa-label{font-size:0.72rem; font-weight:700; letter-spacing:0.06em; color:var(--brass-text); margin-bottom:8px; display:block;}
.quick-answer p{margin:0; font-size:0.98rem; line-height:1.6; color:var(--ink);}

/* ---------- prose ---------- */
.prose{max-width:720px;}
.prose h2{font-size:1.5rem; font-weight:800; margin:44px 0 14px;}
.prose h3{font-size:1.15rem; font-weight:700; margin:30px 0 10px;}
.prose p{font-size:1rem; line-height:1.72; color:var(--ink-soft); margin:0 0 18px;}
.prose ul, .prose ol{color:var(--ink-soft); line-height:1.7; padding-left:22px; margin:0 0 18px;}
.prose li{margin-bottom:6px;}
.prose a{color:var(--brass-text); text-decoration:underline;}

/* ---------- DIVISIONS / cards ---------- */
.div-lead{border:1px solid var(--line-light); border-radius:var(--radius-md); padding:36px 28px; display:grid; gap:26px; margin-bottom:20px; background:var(--stone);}
@media (min-width:840px){ .div-lead{grid-template-columns:1.1fr 1fr; align-items:center; padding:52px;} }
.div-tag{font-size:0.76rem; font-weight:700; color:var(--brass-text); letter-spacing:0.02em; margin-bottom:12px;}
.div-lead h3{font-size:clamp(1.4rem,2.8vw,2rem); margin:0 0 14px; font-weight:800; line-height:1.14;}
.div-lead p{font-size:0.98rem; color:var(--ink-soft); line-height:1.6; margin:0 0 22px; max-width:48ch;}
.div-lead-art{aspect-ratio:16/10; border-radius:var(--radius-md); overflow:hidden; background:linear-gradient(135deg, var(--charcoal-900), var(--charcoal-950)); display:flex; align-items:center; justify-content:center;}
.div-pair{display:grid; gap:20px;}
@media (min-width:840px){ .div-pair{grid-template-columns:1fr 1fr;} }
.div-card{border-radius:var(--radius-md); padding:34px 28px; position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:320px;}
.div-card.dark{background:var(--charcoal-950); color:var(--cream);}
.div-card.light{background:var(--stone); border:1px solid var(--line-light);}
.div-card .div-tag.on-dark{color:var(--brass-bright);}
.div-card h3{font-size:1.4rem; font-weight:800; margin:0 0 12px; line-height:1.14;}
.div-card p{font-size:0.93rem; line-height:1.58; margin:0 0 22px; max-width:38ch;}
.div-card.dark p{color:#C4CFC6;}
.div-card.light p{color:var(--ink-soft);}
.div-card .spacer{flex:1;}
.card-link{display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:0.88rem; text-decoration:none; padding-bottom:2px; border-bottom:1px solid currentColor; width:fit-content;}
.div-card .brand-mark{font-size:0.72rem; letter-spacing:0.04em; opacity:0.65; margin-top:16px;}

/* ---------- feature grid (3/4 col) ---------- */
.feature-grid{display:grid; gap:20px;}
@media (min-width:640px){ .feature-grid.cols-2{grid-template-columns:1fr 1fr;} }
@media (min-width:840px){ .feature-grid.cols-3{grid-template-columns:repeat(3,1fr);} .feature-grid.cols-4{grid-template-columns:repeat(4,1fr);} }
.feature-card{border:1px solid var(--line-light); border-radius:var(--radius-md); padding:26px; background:var(--cream);}
.feature-card.on-stone{background:var(--stone);}
.feature-card h4{font-size:1.02rem; font-weight:700; margin:0 0 10px;}
.feature-card p{font-size:0.92rem; color:var(--ink-soft); line-height:1.58; margin:0;}
.feature-num{font-size:0.75rem; font-weight:700; color:var(--brass-text); margin-bottom:12px; display:block;}

/* ---------- structure tree ---------- */
.structure{background:var(--charcoal-950); color:var(--cream);}
.struct-tree{display:grid; border:1px solid var(--charcoal-line); border-radius:var(--radius-md); overflow:hidden;}
.struct-row{display:grid; grid-template-columns:1fr; border-bottom:1px solid var(--charcoal-line);}
.struct-row:last-child{border-bottom:none;}
@media (min-width:760px){ .struct-row{grid-template-columns:1fr 1px 1fr 1px 1fr;} }
.struct-cell{padding:24px 26px;}
.struct-div{background:var(--charcoal-line);}
@media (max-width:759px){ .struct-div{display:none;} }
.struct-parent{background:var(--charcoal-900); font-weight:700; display:flex; align-items:center; font-size:1rem;}
.struct-child b{display:block; font-size:1rem; font-weight:700; margin-bottom:4px;}
.struct-child span{font-size:0.84rem; color:#8FA69A;}
.struct-child .badge{display:inline-block; margin-top:10px; font-size:0.7rem; font-weight:600; color:var(--brass-bright); border:1px solid rgba(201,168,112,0.4); border-radius:20px; padding:3px 10px;}

/* ---------- why / list rows ---------- */
.why-list{display:grid; border-top:1px solid var(--line-light);}
.why-item{display:grid; gap:6px; padding:24px 0; border-bottom:1px solid var(--line-light);}
@media (min-width:760px){ .why-item{grid-template-columns:270px 1fr; align-items:baseline; gap:30px;} }
.why-item h4{margin:0; font-size:1.08rem; font-weight:700;}
.why-item p{margin:0; color:var(--ink-soft); font-size:0.95rem; line-height:1.6; max-width:56ch;}

/* ---------- process / timeline (importation) ---------- */
.process{counter-reset:step;}
.process-item{position:relative; padding:0 0 40px 56px; border-left:1px solid var(--line-light); margin-left:16px;}
.process-item:last-child{border-color:transparent; padding-bottom:0;}
.process-item::before{counter-increment:step; content:counter(step); position:absolute; left:-16.5px; top:0; width:33px; height:33px; border-radius:50%; background:var(--charcoal-950); color:var(--brass-bright); font-weight:700; font-size:0.88rem; display:flex; align-items:center; justify-content:center;}
.process-item h4{margin:2px 0 8px; font-size:1.05rem; font-weight:700;}
.process-item p{margin:0; color:var(--ink-soft); font-size:0.94rem; line-height:1.6; max-width:56ch;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line-light);}
.faq-item summary{cursor:pointer; padding:20px 0; font-weight:700; font-size:1rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-size:1.3rem; color:var(--brass-text); font-weight:400; flex-shrink:0;}
.faq-item[open] summary::after{content:'–';}
.faq-item p{margin:0 0 20px; color:var(--ink-soft); font-size:0.95rem; line-height:1.65; max-width:64ch;}

/* ---------- founder ---------- */
.founder-grid{display:grid; gap:32px; max-width:760px;}
.founder-monogram{
  width:64px; height:64px; border-radius:50%; background:linear-gradient(155deg, var(--charcoal-900), var(--charcoal-950));
  border:1px solid rgba(224,165,38,0.35); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:1.2rem; color:var(--brass-bright);
  margin-bottom:20px; flex-shrink:0;
}
.founder-text h3{font-size:1.7rem; font-weight:800; margin:0 0 4px;}
.founder-role{font-size:0.92rem; color:var(--brass-text); font-weight:600; margin-bottom:20px;}
.founder-text p{font-size:1rem; line-height:1.65; color:var(--ink-soft); max-width:62ch; margin:0 0 16px;}
.founder-affil{margin-top:24px; padding:16px 20px; border-left:2px solid var(--brass); background:var(--cream); border-radius:0 var(--radius-sm) var(--radius-sm) 0; font-size:0.9rem; color:var(--ink-soft); line-height:1.55; max-width:62ch;}

/* ---------- insight cards ---------- */
.insight-scroll{display:grid; gap:20px;}
@media (min-width:760px){ .insight-scroll{grid-template-columns:repeat(3,1fr);} }
.insight-card{background:var(--cream); border:1px solid var(--line-light); border-radius:var(--radius-md); padding:24px; display:flex; flex-direction:column; min-height:200px;}
.insight-cat{font-size:0.72rem; font-weight:700; color:var(--brass-text); letter-spacing:0.02em; margin-bottom:12px;}
.insight-card h4{font-size:1.04rem; font-weight:700; margin:0 0 12px; line-height:1.3;}
.insight-card .spacer{flex:1;}
.insight-card .meta{font-size:0.78rem; color:var(--ink-soft); margin-top:14px;}

/* ---------- forms ---------- */
.form-card{background:var(--cream); border:1px solid var(--line-light); border-radius:var(--radius-md); padding:30px;}
.form-row{display:grid; gap:16px; margin-bottom:16px;}
@media (min-width:640px){ .form-row.cols-2{grid-template-columns:1fr 1fr;} }
label{display:block; font-size:0.82rem; font-weight:600; margin-bottom:6px; color:var(--ink);}
input, select, textarea{
  width:100%; padding:13px 13px; border:1px solid var(--line-light); border-radius:var(--radius-sm);
  font-family:inherit; font-size:1rem; background:#fff; color:var(--ink);
}
input:focus, select:focus, textarea:focus{outline:2px solid var(--brass); outline-offset:1px;}
textarea{resize:vertical; min-height:110px;}
.enquiry-tags{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px;}
.enquiry-tags label{display:flex; align-items:center; gap:7px; border:1px solid var(--line-light); border-radius:20px; padding:9px 15px; font-size:0.85rem; font-weight:500; cursor:pointer; margin:0;}
.enquiry-tags input{width:20px; height:20px; margin:0; flex-shrink:0;}

/* ---------- contact info cards ---------- */
.contact-cards{display:grid; gap:18px;}
@media (min-width:760px){ .contact-cards{grid-template-columns:repeat(3,1fr);} }
.contact-card{border:1px solid var(--line-light); border-radius:var(--radius-md); padding:24px; background:var(--stone);}
.contact-card h4{margin:0 0 6px; font-size:1rem; font-weight:700;}
.contact-card p{margin:0 0 14px; font-size:0.86rem; color:var(--ink-soft);}
.contact-card a.line{display:block; font-size:0.9rem; font-weight:600; color:var(--ink); text-decoration:none; padding:5px 0;}
.contact-card a.line:hover{color:var(--brass-text);}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(120deg, var(--charcoal-950), #1B3A32 130%); color:var(--cream);}
.cta-band-inner{display:flex; flex-direction:column; gap:24px; align-items:flex-start;}
@media (min-width:840px){ .cta-band-inner{flex-direction:row; align-items:center; justify-content:space-between;} }
.cta-band h2{font-size:clamp(1.5rem,3vw,2.1rem); font-weight:800; margin:0 0 10px; max-width:22ch;}
.cta-band p{color:#C4CFC6; margin:0; font-size:0.98rem; max-width:44ch;}
.cta-band-btns{display:flex; gap:12px; flex-wrap:wrap;}

/* ---------- footer ---------- */
footer{background:var(--charcoal-950); color:#C4CFC6; padding:60px 0 26px;}
.footer-grid{display:grid; gap:34px; grid-template-columns:1fr; margin-bottom:44px;}
@media (min-width:560px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (min-width:700px){ .footer-grid{grid-template-columns:1.3fr repeat(4,1fr);} }
.footer-col h5{color:var(--cream); font-size:0.83rem; font-weight:700; margin:0 0 16px;}
.footer-col a{display:block; color:#8FA69A; text-decoration:none; font-size:0.86rem; padding:5px 0;}
.footer-col a:hover{color:var(--cream);}
.footer-brand{color:var(--cream); font-weight:800; font-size:1.02rem; margin-bottom:10px;}
.footer-brand-sub{font-size:0.84rem; color:#7E9488; max-width:32ch; line-height:1.55; margin-bottom:16px;}
.footer-social{display:flex; gap:14px;}
.footer-social a{padding:0; font-size:0.78rem; border:1px solid var(--charcoal-line); border-radius:50%; width:34px; height:34px; display:flex; align-items:center; justify-content:center;}
.footer-bottom{border-top:1px solid var(--charcoal-line); padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:0.78rem; color:#6E8478;}
.footer-bottom a{color:#6E8478; text-decoration:none;}
.footer-bottom a:hover{color:var(--cream);}

/* ---------- sticky mobile CTA ---------- */
.mobile-sticky{position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex; background:var(--charcoal-950); border-top:1px solid var(--charcoal-line); padding:10px 14px calc(10px + var(--safe-b)); gap:8px;}
@media (min-width:760px){ .mobile-sticky{display:none;} }
.mobile-sticky a{flex:1; display:flex; align-items:center; justify-content:center; min-height:46px; text-align:center; padding:12px 8px; border-radius:var(--radius-sm); font-size:0.8rem; font-weight:600; text-decoration:none;}

/* ---------- case studies ---------- */
.case-grid{display:grid; gap:22px;}
@media (min-width:840px){ .case-grid{grid-template-columns:repeat(2,1fr);} }
.case-card{border:1px solid var(--line-light); border-radius:var(--radius-md); background:var(--cream); padding:30px; display:flex; flex-direction:column;}
.case-card .case-tag{font-size:0.72rem; font-weight:700; color:var(--brass-text); letter-spacing:0.03em; margin-bottom:12px;}
.case-card h3{font-size:1.2rem; font-weight:700; margin:0 0 14px;}
.case-row{display:grid; grid-template-columns:96px 1fr; gap:4px 14px; font-size:0.9rem; margin-bottom:10px;}
.case-row b{color:var(--ink); font-weight:700;}
.case-row span{color:var(--ink-soft); line-height:1.55;}
.case-placeholder{
  margin-top:16px; padding:12px 14px; border-radius:var(--radius-sm); background:var(--stone);
  font-size:0.82rem; color:var(--ink-soft); border-left:2px solid var(--brass);
}

/* ---------- page load / transition ---------- */
@keyframes pageFadeIn{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }
body{ animation:pageFadeIn .5s cubic-bezier(.2,.8,.3,1) both; }
body.leaving{ opacity:0; transform:translateY(-8px); transition:opacity .2s ease, transform .2s ease; }

#scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:80;
  background:linear-gradient(90deg, var(--brass), var(--brass-bright));
  transition:width .12s linear; pointer-events:none;
}

/* ---------- hero entrance ---------- */
@keyframes heroFadeUp{ from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:none;} }
.hero-h, .hero-full h1{ animation:heroFadeUp .7s cubic-bezier(.16,.84,.44,1) both; }
.hero-sub, .hero-full p{ animation:heroFadeUp .7s cubic-bezier(.16,.84,.44,1) .12s both; }
.hero-ctas{ animation:heroFadeUp .7s cubic-bezier(.16,.84,.44,1) .22s both; }
.trust-strip, .hero-stats{ animation:heroFadeUp .7s cubic-bezier(.16,.84,.44,1) .32s both; }
.hero-art{ animation:heroFadeUp .9s cubic-bezier(.16,.84,.44,1) .18s both; will-change:transform; }

@media (prefers-reduced-motion: reduce){
  body{ animation:none; }
  body.leaving{ transition:none; opacity:1; transform:none; }
  .hero-h, .hero-full h1, .hero-sub, .hero-full p, .hero-ctas, .trust-strip, .hero-stats, .hero-art{ animation:none; }
}

/* ---------- interaction polish ---------- */
.card-link{ transition:transform .2s cubic-bezier(.2,.8,.3,1), color .2s ease; }
.card-link:hover{ transform:translateX(4px); }
.footer-col a{ transition:color .15s ease, transform .15s ease; }
.footer-col a:hover{ transform:translateX(3px); }
.div-card, .feature-card, .insight-card, .vcard, .case-card, .contact-card{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.div-card:hover, .feature-card:hover, .insight-card:hover, .vcard:hover, .case-card:hover, .contact-card:hover{
  transform:translateY(-4px); box-shadow:0 18px 36px rgba(13,33,28,0.14);
}
.div-card.dark:hover{ box-shadow:0 18px 36px rgba(0,0,0,0.35); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--brass); outline-offset:2px; border-radius:2px;
}

/* ---------- floating WhatsApp button (desktop) ---------- */
.wa-float{
  position:fixed; right:24px; bottom:24px; z-index:70;
  width:58px; height:58px; border-radius:50%; background:#25D366;
  display:none; align-items:center; justify-content:center; text-decoration:none;
  box-shadow:0 10px 26px rgba(0,0,0,0.28);
  transition:transform .2s cubic-bezier(.2,.8,.3,1.2), box-shadow .2s ease;
}
@media (min-width:760px){ .wa-float{display:flex;} }
.wa-float:hover, .wa-float:focus-visible{ transform:translateY(-3px) scale(1.05); box-shadow:0 14px 32px rgba(0,0,0,0.35); }
.wa-float svg{ width:29px; height:29px; position:relative; z-index:1; }
.wa-float::before{
  content:''; position:absolute; inset:-6px; border-radius:50%; border:2px solid #25D366; opacity:0.55;
  animation:waPulse 2.4s ease-out infinite;
}
@keyframes waPulse{ 0%{transform:scale(0.88); opacity:0.55;} 100%{transform:scale(1.4); opacity:0;} }
.wa-float-tip{
  position:absolute; right:calc(100% + 14px); top:50%; transform:translateY(-50%) translateX(6px);
  background:var(--charcoal-950); color:var(--cream); padding:8px 14px; border-radius:6px;
  font-family:var(--font-body); font-size:0.82rem; font-weight:600; white-space:nowrap;
  opacity:0; visibility:hidden; transition:opacity .18s ease, transform .18s ease; pointer-events:none;
}
.wa-float:hover .wa-float-tip, .wa-float:focus-visible .wa-float-tip{ opacity:1; visibility:visible; transform:translateY(-50%) translateX(0); }
@media (prefers-reduced-motion: reduce){ .wa-float::before{ animation:none; } }

/* ---------- hero network diagram (business-line hub animation) ---------- */
.orbit-rings{ transform-box:fill-box; transform-origin:50% 50%; animation:orbitSpin 100s linear infinite; }
@keyframes orbitSpin{ to{ transform:rotate(360deg); } }
.spoke{ stroke-dasharray:6 9; animation:spokeFlow 2.2s linear infinite; }
@keyframes spokeFlow{ to{ stroke-dashoffset:-30; } }
.hub-pulse{ transform-box:fill-box; transform-origin:50% 50%; animation:hubPulse 3.4s ease-in-out infinite; }
@keyframes hubPulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.05); } }
.hub-node{ transform-box:fill-box; transform-origin:50% 50%; animation:nodePulse 3.6s ease-in-out infinite; }
@keyframes nodePulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.08); } }
@media (prefers-reduced-motion: reduce){
  .orbit-rings, .spoke, .hub-pulse, .hub-node{ animation:none; }
}
/* the network-diagram labels shrink below a readable size on narrow phones;
   the hero copy already names all five business lines in words, so hide
   them there rather than ship illegible micro-text */
@media (max-width:600px){
  .node-label{ display:none; }
}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }
