/* Heritage Care Partners — shared styles */
:root{
  --cream:#f8f3ea; --blush:#f5e7d9; --blue:#e7eef5; --sage:#e9efe7;
  --navy:#0e2236; --navy-soft:#16324c;
  --gold:#c2924f; --gold-bright:#e8b24a; --gold-deep:#946326;
  --ink:#16293a; --ink-soft:#5c6b78;
  --light:#f8f3ea; --light-soft:#c8bda9;
  --line:#e8dccb;
  --maxw:1180px; --ease:cubic-bezier(.22,.61,.36,1);
  --w1:clamp(16px,5.2vw,100px); /* width 1: gutter from screen edge */
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; font-size:112.5%; }
body{ font-family:"Hanken Grotesk",system-ui,sans-serif; color:var(--ink); background:var(--cream); -webkit-font-smoothing:antialiased; line-height:1.62; }
img{ max-width:100%; display:block; }
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(1.25rem,4vw,2.5rem); }

/* type */
.eyebrow{ font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--gold-deep); }
.eyebrow::after{ content:""; display:block; width:40px; height:2px; margin:.8rem 0 0; border-radius:2px; background:linear-gradient(90deg,var(--gold),var(--gold-bright)); }
.center .eyebrow::after{ margin-inline:auto; }
.hero .eyebrow::after{ display:none; }
h1,h2,h3{ font-family:"Hanken Grotesk",sans-serif; font-weight:800; line-height:1.1; letter-spacing:-.02em; color:var(--ink); }
h1{ font-size:clamp(2.4rem,5.2vw,4rem); line-height:1.07; }
h2{ font-size:clamp(2rem,3.8vw,2.9rem); }
h3{ font-size:1.15rem; }
.lead{ font-size:clamp(1.06rem,1.4vw,1.24rem); color:var(--ink-soft); }
p{ color:var(--ink-soft); }
.serif{ font-family:"Spectral",Georgia,serif; font-weight:600; font-style:italic; color:var(--gold); }
.center{ text-align:center; }
.center .lead{ margin-inline:auto; }

/* buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-weight:600; font-size:.9rem; letter-spacing:.04em; text-decoration:none; padding:1.05rem 2.1rem; border-radius:8px; cursor:pointer; border:none; position:relative; overflow:hidden; isolation:isolate;
  background:var(--navy); color:#fff; transition:transform .35s var(--ease), box-shadow .35s ease; box-shadow:0 4px 16px -10px rgba(14,34,54,.45); }
.btn::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--gold); clip-path:circle(0% at 0% 100%); transition:clip-path .6s cubic-bezier(.22,1,.36,1); }
.btn:hover{ transform:translateY(-2px); box-shadow:0 16px 30px -16px rgba(14,34,54,.45); }
.btn:hover::before{ clip-path:circle(150% at 0% 100%); }
/* gold buttons sit on dark sections: subtle fade to navy, white text */
.btn.gold{ background:var(--gold); color:#fff; box-shadow:0 6px 16px -12px rgba(14,34,54,.4); transition:transform .35s var(--ease), box-shadow .35s ease; }
.btn.gold::before{ display:block; background:linear-gradient(115deg, transparent 38%, rgba(255,255,255,.32) 50%, transparent 62%); clip-path:none; transform:translateX(-130%); transition:transform .7s ease; }
.btn.gold:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -14px rgba(14,34,54,.4); }
.btn.gold:hover::before{ transform:translateX(130%); clip-path:none; }
/* large button variant: gold fill + H reveal; symmetric padding keeps the text centred */
.btn.has-h{ padding-inline:3rem; }
.btn.has-h::after{ content:""; position:absolute; right:16px; top:50%; width:28px; height:30px; z-index:-1; background:url("assets/heritage-h-mark.png") center/contain no-repeat; filter:brightness(0) invert(1); opacity:0; transform:translateY(-50%) scale(.7); transition:opacity .12s ease, transform .12s ease; pointer-events:none; }
.btn.has-h:hover::after{ opacity:.8; transform:translateY(-50%) scale(1); transition:opacity .2s ease .32s, transform .2s ease .32s; }
.text-link{ color:var(--ink); text-decoration:none; font-weight:700; font-size:.97rem; border-bottom:2px solid rgba(194,146,79,.55); padding-bottom:3px; transition:border-color .3s; }
.text-link:hover{ border-color:var(--gold); }
.playlink{ display:inline-flex; align-items:center; gap:.6rem; color:var(--ink); text-decoration:none; font-weight:700; font-size:.95rem; }
.playlink .pp{ width:38px; height:38px; border-radius:50%; background:#fff; box-shadow:0 8px 20px -10px rgba(14,34,54,.5); display:grid; place-items:center; transition:transform .3s var(--ease); }
.playlink:hover .pp{ transform:scale(1.08); }

/* nav / header ------------------------------------------------------------ */
header.nav{ position:sticky; top:0; z-index:60; background:transparent; border-bottom:1px solid transparent;
  will-change:transform; transform:translate3d(0,0,0); backface-visibility:hidden;
  transition:background .3s var(--ease), border-color .3s, box-shadow .3s, transform .32s var(--ease); }
header.nav.scrolled{ background:rgba(248,243,234,.9); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-color:var(--line); box-shadow:0 6px 22px -18px rgba(14,34,54,.5); }
header.nav.hide{ transform:translate3d(0,-100%,0); }
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; min-height:84px; padding-block:.4rem; }

.brand{ display:flex; align-items:center; gap:.7rem; text-decoration:none; }
.brand img{ height:44px; width:auto; border-radius:8px; transition:height .35s var(--ease), transform .3s var(--ease); }
header.nav.scrolled .brand img{ height:38px; }
.brand:hover img{ transform:translateY(-2px); }
.brand .name{ font-family:"Spectral",serif; color:var(--navy); font-size:1rem; letter-spacing:.15em; text-transform:uppercase; font-weight:600; }

.navlinks{ display:flex; align-items:center; gap:2rem; }
.navlinks a:not(.btn){ position:relative; color:var(--ink); text-decoration:none; font-size:.95rem; font-weight:600; transition:color .25s; }
.navlinks a:not(.btn)::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--gold); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.navlinks a:not(.btn):hover{ color:var(--gold-deep); }
.navlinks a:not(.btn):hover::after,.navlinks a.active::after{ transform:scaleX(1); }

/* services dropdown */
.has-drop{ position:relative; display:flex; align-items:center; }
.has-drop::after{ content:""; position:absolute; top:100%; left:-14px; right:-14px; height:18px; }
.drop-trigger{ display:inline-flex; align-items:center; gap:.35rem; }
.drop-trigger .caret{ width:12px; height:12px; color:var(--gold-deep); transition:transform .3s var(--ease); }
.has-drop:hover .caret,.has-drop:focus-within .caret{ transform:rotate(180deg); }
.drop-panel{ position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(8px);
  min-width:330px; background:#fff; border:1px solid var(--line); border-radius:18px;
  box-shadow:0 34px 70px -34px rgba(14,34,54,.45); padding:.5rem; display:flex; flex-direction:column;
  opacity:0; visibility:hidden; transition:opacity .22s var(--ease), transform .22s var(--ease); }
.has-drop:hover .drop-panel,.has-drop:focus-within .drop-panel{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.drop-panel a{ display:flex; flex-direction:column; gap:.15rem; padding:.72rem .9rem; border-radius:12px; text-decoration:none; transition:background .2s; }
.drop-panel a::after{ display:none; }
.drop-panel a:hover{ background:var(--cream); }
.drop-panel .dp-t{ color:var(--ink); font-weight:700; font-size:.95rem; }
.drop-panel .dp-d{ color:var(--ink-soft); font-size:.82rem; font-weight:500; }
.drop-panel .dp-overview{ border-bottom:1px solid var(--line); margin-bottom:.25rem; padding-bottom:.8rem; }
.drop-panel .dp-overview .dp-t{ color:var(--gold-deep); }
/* back-to-services return prompt (deep-dive pages) */
.svc-return{ display:flex; flex-direction:column; align-items:center; gap:.9rem; text-align:center; margin-top:calc(-1 * clamp(2.5rem,6vh,5rem)); padding-bottom:clamp(2.8rem,6vw,4.5rem); }
.svc-return p{ color:var(--ink-soft); font-size:1rem; margin:0; }
.svc-return-link{ display:inline-flex; align-items:center; gap:.5rem; color:var(--gold-deep); font-weight:700; text-decoration:none; border:1px solid var(--line); border-radius:999px; padding:.65rem 1.3rem; transition:background .25s var(--ease), border-color .25s var(--ease); }
.svc-return-link:hover{ background:var(--cream); border-color:var(--gold); }
.drop-panel .dp-guide{ border-top:1px solid var(--line); margin-top:.25rem; padding-top:.8rem; }

/* burger + mobile menu */
.burger{ display:none; width:42px; height:42px; border:none; background:none; cursor:pointer; padding:0; flex-direction:column; justify-content:center; gap:5px; }
.burger span{ display:block; width:22px; height:2px; margin:0 auto; background:var(--navy); border-radius:2px; transition:transform .3s var(--ease), opacity .2s; }
.burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-menu{ display:none; }

@media(max-width:860px){
  .navlinks{ display:none; }
  .burger{ display:flex; }
  .mobile-menu{ display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column;
    background:rgba(248,243,234,.98); backdrop-filter:blur(12px); border-bottom:1px solid var(--line);
    box-shadow:0 34px 50px -30px rgba(14,34,54,.4); padding:.6rem var(--w1) 1.6rem;
    max-height:0; overflow:hidden; opacity:0; visibility:hidden;
    transition:max-height .42s var(--ease), opacity .3s, visibility .3s; }
  .mobile-menu.open{ max-height:90vh; opacity:1; visibility:visible; }
  .mobile-menu a{ padding:.9rem .2rem; color:var(--ink); text-decoration:none; font-size:1.08rem; font-weight:700; border-bottom:1px solid var(--line); }
  .mobile-menu a.mm-sub{ padding-left:1.3rem; font-size:.98rem; font-weight:600; color:var(--ink-soft); }
  .mobile-menu a.mm-cta{ margin-top:1.1rem; border-bottom:none; text-align:center; color:#fff; }
  .mobile-menu.open a{ animation:mmIn .4s var(--ease) both; }
  .mobile-menu.open a:nth-child(1){ animation-delay:.03s } .mobile-menu.open a:nth-child(2){ animation-delay:.06s }
  .mobile-menu.open a:nth-child(3){ animation-delay:.09s } .mobile-menu.open a:nth-child(4){ animation-delay:.12s }
  .mobile-menu.open a:nth-child(5){ animation-delay:.15s } .mobile-menu.open a:nth-child(6){ animation-delay:.18s }
  .mobile-menu.open a:nth-child(7){ animation-delay:.21s } .mobile-menu.open a:nth-child(8){ animation-delay:.24s }
}
@keyframes mmIn{ from{ opacity:0; transform:translateY(8px) } to{ opacity:1; transform:none } }
@media(max-width:520px){ .brand .name{ display:none; } }
@media(prefers-reduced-motion:reduce){
  header.nav,.nav .wrap,.brand img,.navlinks a:not(.btn)::after,.drop-panel,.drop-trigger .caret,.burger span,.mobile-menu,.mobile-menu.open a{ transition:none !important; animation:none !important; }
  header.nav.hide{ transform:none; }
}

/* sections */
.section{ padding-block:clamp(4.5rem,10vh,7.5rem); }
.section.blush{ background:radial-gradient(130% 90% at 50% 0%, #faf0e3 0%, var(--blush) 58%); }
.section.sage{ background:var(--sage); }
.section.tight{ padding-block:clamp(3.5rem,7vh,5.5rem); }
.section-head{ max-width:640px; }
.section-head.center{ margin-inline:auto; }
.section-head h2{ margin-top:.7rem; }
.section-head p{ margin-top:1rem; font-size:1.08rem; }

/* hero */
.hero{ position:relative; overflow:hidden; padding-block:clamp(5rem,9vh,7rem) clamp(3rem,6vh,4.5rem); text-align:center; background:
   radial-gradient(110% 80% at 85% 0%, #fbeede 0%, rgba(251,238,222,0) 55%),
   radial-gradient(90% 70% at 5% 10%, #eef2ee 0%, rgba(238,242,238,0) 60%), var(--cream); }
.hero .inner{ max-width:1120px; margin-inline:auto; }
.hero h1{ margin-top:1.1rem; }
.hero .lead{ margin:1.4rem auto 0; max-width:46ch; }
.hero .cta-row{ margin-top:2rem; display:flex; gap:1.4rem; align-items:center; justify-content:center; flex-wrap:wrap; }
.reveal-load{ opacity:0; transform:translateY(18px); animation:rise .8s var(--ease) forwards; }
.dl1{ animation-delay:.08s; } .dl2{ animation-delay:.2s; } .dl3{ animation-delay:.34s; } .dl4{ animation-delay:.46s; }
@keyframes rise{ to{ opacity:1; transform:none; } }

/* typed emphasis + swoosh */
.type-wrap{ display:inline-block; position:relative; }
.hero-line2{ white-space:nowrap; }
@media(max-width:640px){ .hero h1 br{ display:none; } .hero-line2{ white-space:normal; } }
.typed{ font-family:"Spectral",Georgia,serif; font-style:italic; font-weight:600; color:var(--gold); }
.cursor{ display:inline-block; width:2px; height:.9em; background:var(--gold); margin-left:2px; transform:translateY(.1em); animation:blink 1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }
.swoosh{ display:block; margin:.1rem auto 0; width:min(360px,68%); height:18px; }
.swoosh path{ stroke:var(--gold); stroke-width:4; fill:none; stroke-linecap:round; stroke-dasharray:420; stroke-dashoffset:420; animation:draw 1.1s var(--ease) 1.1s forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }

/* hero card gallery */
.wrap.hero-bleed{ max-width:none; padding-inline:var(--w1); }
.gallery{ display:grid; grid-template-columns:1fr 1.28fr 1fr; gap:1.4rem; align-items:end; margin-top:clamp(2.5rem,5vw,3.6rem); }
.card{ position:relative; border-radius:28px; overflow:hidden; }
.card.c1{ background:#f0e1d2; height:clamp(300px,32vw,500px); } .card.c2{ background:#f6ecda; height:clamp(340px,38vw,580px); } .card.c3{ background:#e7eef5; height:clamp(300px,32vw,500px); }
.card svg{ position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:96%; height:auto; }
.browserbar{ position:absolute; top:14px; left:16px; display:flex; gap:6px; z-index:2; }
.browserbar i{ width:9px; height:9px; border-radius:50%; background:rgba(14,34,54,.18); }
.chip{ position:absolute; z-index:3; background:#fff; border-radius:14px; box-shadow:0 16px 34px -20px rgba(14,34,54,.5); display:flex; align-items:center; gap:.5rem; padding:.5rem .75rem; font-weight:700; font-size:.82rem; color:var(--ink); }
.chip .ic{ width:24px; height:24px; border-radius:50%; display:grid; place-items:center; flex:none; color:#fff; font-size:.78rem; }
.chip.t1{ top:16px; left:-10px; animation:float 5.5s ease-in-out infinite; }
.chip.t2{ bottom:24px; right:-12px; animation:float 6.4s ease-in-out infinite .5s; }
.avatars{ position:absolute; top:14px; right:14px; z-index:3; display:flex; }
.avatars span{ width:34px; height:34px; border-radius:50%; border:2.5px solid #fff; margin-left:-10px; box-shadow:0 6px 14px -8px rgba(0,0,0,.4); }
@keyframes float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }
@media(max-width:820px){ .gallery{ grid-template-columns:1fr 1fr; } .card.c3{ display:none; } }
@media(max-width:540px){ .gallery{ grid-template-columns:1fr; } .card.c2{ height:320px; } .chip{ display:none; } }

/* two-column feature */
.feature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5rem); align-items:center; }
.feature-grid.flip .imgcard{ order:2; }
@media(max-width:900px){ .feature-grid{ grid-template-columns:1fr; } .feature-grid.flip .imgcard{ order:0; } }
.feature h2{ margin-top:.6rem; max-width:18ch; }
.feature p.body{ margin-top:1.3rem; max-width:46ch; font-size:1.06rem; }
.imgcard{ border-radius:28px; overflow:hidden; background:radial-gradient(120% 100% at 50% 0%, #fbf3e6, #f1e3cf); position:relative; min-height:380px; box-shadow:0 44px 90px -56px rgba(14,34,54,.55); }
.imgcard::after{ content:""; position:absolute; inset:0; border-radius:28px; box-shadow:inset 0 0 0 1px rgba(194,146,79,.22); pointer-events:none; }
.imgcard.blue{ background:radial-gradient(120% 100% at 50% 0%, #eef4fa, #dfe9f2); } .imgcard.sage{ background:radial-gradient(120% 100% at 50% 0%, #eff4ec, #e1e9df); }
.imgcard svg{ position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:92%; }
.imgcard.photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.imgcard.tall{ min-height:clamp(380px,33vw,480px); }
.feature-grid.img-lead{ grid-template-columns:minmax(300px,30rem) 1fr; }
@media(max-width:900px){ .feature-grid.img-lead{ grid-template-columns:1fr; } }
/* about "why we do this": photo stretches to match the copy height */
.why-grid{ align-items:stretch; grid-template-columns:minmax(0,26rem) 1fr; gap:clamp(2.5rem,5vw,5rem); }
.why-grid .imgcard{ min-height:clamp(440px,42vw,620px); align-self:stretch; }
@media(max-width:900px){ .why-grid{ align-items:center; grid-template-columns:1fr; } .why-grid .imgcard{ min-height:360px; } }

/* ===== how it works: full-width navy journey ===== */
.hiw{ background:var(--navy); color:var(--light); padding-block:clamp(4.5rem,9vh,7.5rem) clamp(8.5rem,16vh,13rem); }
.hiw .wrap{ max-width:none; padding-inline:var(--w1); }
.hiw .eyebrow{ color:var(--gold-bright); }
.hiw h2{ color:var(--light); }
.hiw .section-head p{ color:var(--light-soft); }
.hiw-steps{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.6rem,3vw,3.2rem); margin-top:clamp(3rem,5vw,4.6rem); }
.hiw-thread{ position:absolute; top:37px; left:12.5%; right:12.5%; height:2px; background:repeating-linear-gradient(90deg,var(--gold) 0 8px,transparent 8px 18px); opacity:.45; }
.hiw-step{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; }
.hiw-num{ display:grid; place-items:center; width:74px; height:74px; border-radius:50%; background:var(--navy); border:1.5px solid rgba(232,178,74,.45); font-family:"Spectral",Georgia,serif; font-style:italic; font-weight:600; font-size:1.7rem; color:var(--gold-bright); box-shadow:0 0 0 10px var(--navy); }
.hiw-step h3{ color:var(--light); font-size:clamp(1.2rem,1.5vw,1.45rem); margin-top:1.5rem; }
.hiw-step p{ color:var(--light-soft); margin-top:.65rem; font-size:1.02rem; max-width:30ch; }
@media(max-width:820px){ .hiw-steps{ grid-template-columns:1fr 1fr; gap:2.8rem 2rem; } .hiw-thread{ display:none; } }
@media(max-width:520px){ .hiw-steps{ grid-template-columns:1fr; max-width:440px; margin-inline:auto; } }
/* soft rounded top so section colours curve into each other */
.soft-top{ position:relative; z-index:2; border-radius:clamp(28px,4vw,52px) clamp(28px,4vw,52px) 0 0; margin-top:calc(-1 * clamp(1.8rem,3.5vw,3.5rem)); box-shadow:0 -22px 46px -30px rgba(14,34,54,.28); }

/* about page: single centred testimonial */
.about-quote{ max-width:840px; margin:clamp(2.4rem,4vw,3.4rem) auto 0; text-align:center; }
.about-quote .stars-lg{ display:block; margin-bottom:1.4rem; }
.about-quote p{ font-family:"Spectral",Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(1.4rem,2.4vw,2.05rem); line-height:1.42; color:var(--ink); margin:0; }
.about-quote .mark{ color:var(--gold); font-style:normal; }
.about-quote footer{ display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:2rem; text-align:left; }
.about-quote footer strong{ display:block; color:var(--ink); font-weight:800; }
.about-quote footer span{ display:block; color:var(--ink-soft); font-size:.92rem; margin-top:.1rem; }
@media(max-width:900px){ .imgcard.tall{ min-height:360px; } }
/* three editorial points beneath a feature image */
.three-points{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.8rem,3.4vw,3.4rem); margin-top:clamp(2.8rem,4vw,3.8rem); }
.tp-num{ display:block; font-family:"Spectral",Georgia,serif; font-style:italic; font-weight:600; color:var(--gold); font-size:1.8rem; line-height:1; }
.tp h3{ margin-top:.55rem; font-size:1.22rem; }
.tp p{ margin-top:.45rem; color:var(--ink-soft); }
@media(max-width:760px){ .three-points{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; gap:1.8rem; } }

/* pillars */
.pillars{ margin-top:2rem; display:flex; flex-direction:column; gap:1.3rem; }
.pillar{ display:flex; gap:1rem; align-items:flex-start; }
.pillar .dot{ flex:none; width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:#fff; box-shadow:0 10px 24px -14px rgba(14,34,54,.4); }
.pillar h3{ font-size:1.1rem; }
.pillar p{ font-size:.98rem; margin-top:.1rem; }

/* steps */
.steps{ margin-top:3rem; display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
@media(max-width:860px){ .steps{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .steps{ grid-template-columns:1fr; } }
.step{ background:#fff; border-radius:22px; padding:1.7rem 1.5rem; box-shadow:0 24px 48px -34px rgba(14,34,54,.5); position:relative; }
.step .num{ font-family:"Spectral",serif; font-style:italic; font-weight:600; font-size:1.5rem; color:var(--gold); }
.step h3{ margin-top:.6rem; font-size:1.08rem; }
.step p{ margin-top:.5rem; font-size:.97rem; }

/* why columns */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:2.6rem; }
@media(max-width:760px){ .duo{ grid-template-columns:1fr; } }
.duo .pane{ border-radius:24px; padding:2rem; }
.duo .google{ background:#fff; border:1px solid var(--line); }
.duo .meta{ background:var(--navy); color:var(--light); }
.duo .pane h3{ font-size:1.25rem; } .duo .meta h3{ color:var(--light); }
.duo .pane p{ margin-top:.7rem; } .duo .meta p{ color:var(--light-soft); }
.duo .tag{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; }
.duo .google .tag{ color:var(--ink-soft); } .duo .meta .tag{ color:var(--gold-bright); }

/* fit list */
.fitlist{ margin-top:2rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem 2rem; }
@media(max-width:680px){ .fitlist{ grid-template-columns:1fr; } }
.fititem{ display:flex; gap:.8rem; align-items:flex-start; font-weight:600; color:var(--ink); }
.fititem svg{ flex:none; margin-top:3px; }

/* offer band */
.offer{ background:var(--navy); color:var(--light); border-radius:32px; padding:clamp(2.5rem,5vw,4rem); position:relative; overflow:hidden; }
.offer::before{ content:""; position:absolute; top:-30%; right:-8%; width:42vw; height:42vw; max-width:520px; max-height:520px; background:radial-gradient(circle,rgba(194,146,79,.22),transparent 62%); }
.offer h2{ color:var(--light); position:relative; max-width:20ch; }
.offer .serif{ color:var(--gold-bright); }
.offer p{ color:var(--light-soft); position:relative; margin-top:1.1rem; max-width:52ch; font-size:1.08rem; }
.offer .cta-row{ position:relative; margin-top:1.8rem; display:flex; gap:1.2rem; flex-wrap:wrap; }

/* faq */
.faq-section .wrap{ max-width:none; padding-inline:var(--w1); }
.faq-grid{ display:grid; grid-template-columns:0.85fr 1.5fr 0.85fr; gap:clamp(3rem,9vw,140px); align-items:center; margin-top:clamp(2.5rem,4vw,3.5rem); }
.faq-aside{ display:flex; flex-direction:column; align-items:flex-start; gap:1.2rem; }
.faq-aside.left{ align-items:flex-end; text-align:right; }
.faq-illo{ width:clamp(180px,15vw,250px); height:auto; }
.faq-illo.small{ width:clamp(160px,13vw,215px); }
.faq-aside p{ color:var(--ink-soft); font-size:1rem; max-width:30ch; margin:0; }
.faq-aside p a{ color:var(--gold-deep); font-weight:700; text-decoration:underline; }
.faq{ display:flex; flex-direction:column; gap:.9rem; }
.qa{ background:#fff; border:1px solid var(--line); border-radius:14px; transition:border-color .3s, box-shadow .3s; }
.qa.open{ border-color:rgba(194,146,79,.55); box-shadow:0 18px 40px -32px rgba(14,34,54,.4); }
.qa button{ width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:1.25rem 1.5rem; display:flex; justify-content:space-between; gap:1.25rem; align-items:center; font-family:inherit; font-size:1.04rem; font-weight:700; color:var(--ink); }
.qa button .pm{ flex:none; width:27px; height:27px; border-radius:50%; border:1.5px solid var(--gold); position:relative; transition:background .3s, border-color .3s; }
.qa.open button .pm{ background:var(--navy); border-color:var(--navy); }
.qa button .pm::before,.qa button .pm::after{ content:""; position:absolute; background:var(--gold-deep); border-radius:2px; transition:transform .3s var(--ease), background .3s; }
.qa button .pm::before{ inset:12px 6.5px; height:2.5px; }
.qa button .pm::after{ inset:6.5px 12px; width:2.5px; }
.qa.open button .pm::before,.qa.open button .pm::after{ background:#fff; }
.qa.open button .pm::after{ transform:scaleY(0); }
.qa .ans{ overflow:hidden; max-height:0; transition:max-height .4s var(--ease); }
.qa .ans p{ padding:0 1.5rem 1.3rem; font-size:1rem; color:var(--ink-soft); }
@media(max-width:980px){ .faq-grid{ grid-template-columns:1fr; max-width:680px; margin-inline:auto; gap:2rem; } .faq{ order:-1; } .faq-aside, .faq-aside.left{ align-items:center; text-align:center; } .faq-aside p{ max-width:none; } }

/* ribbon */
.ribbon{ background:var(--navy); color:var(--light); position:relative; overflow:hidden; }
.ribbon::before{ display:none; }
.ribbon .wrap{ position:relative; padding-block:clamp(3rem,7vh,4.5rem); display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.ribbon h2{ color:var(--light); max-width:18ch; } .ribbon .serif{ color:var(--gold-bright); }

/* footer */
footer.foot{ background:var(--navy-soft); color:var(--light-soft); padding-block:clamp(3.5rem,7vh,5.5rem) 2rem; position:relative; overflow:hidden; }
footer.foot::after{ content:""; position:absolute; right:-2%; bottom:-16%; width:min(320px,40vw); height:min(320px,40vw); background:url(assets/heritage-h-mark.png) no-repeat center/contain; opacity:.05; pointer-events:none; }
.foot-top{ position:relative; z-index:1; display:grid; grid-template-columns:1.1fr 3fr; gap:clamp(2.4rem,5vw,5rem); align-items:start; max-width:none; padding-inline:var(--w1); }
.foot-cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem 1.4rem; }
@media(max-width:900px){ .foot-top{ grid-template-columns:1fr; gap:2.6rem; } }
@media(max-width:560px){ .foot-cols{ grid-template-columns:1fr 1fr; } }
footer .brand .name{ color:var(--light); }
.foot-brand .brand img{ height:50px; }
.foot-trust{ display:flex; flex-wrap:wrap; gap:.55rem .6rem; margin-top:1.5rem; }
.foot-trust span{ display:inline-flex; align-items:center; gap:.45rem; font-size:.8rem; font-weight:600; color:var(--light-soft); border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:.4rem .85rem; }
.foot-trust span::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--gold-bright); flex:none; }
footer .fcol{ display:flex; flex-direction:column; align-items:flex-start; }
footer .fcol h4{ color:var(--light); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; margin-bottom:.9rem; }
footer .fcol a{ position:relative; display:inline-block; color:var(--light-soft); text-decoration:none; font-size:.96rem; padding:.28rem 0; }
footer .fcol a::after{ content:""; position:absolute; left:0; bottom:.14rem; width:100%; height:1.5px; background:var(--gold-bright); transform:scaleX(0); transform-origin:left; transition:transform .28s var(--ease); }
footer .fcol a:hover{ color:var(--gold-bright); }
footer .fcol a:hover::after{ transform:scaleX(1); }
footer .fcol .floc{ display:block; color:var(--light-soft); font-size:.96rem; padding:.28rem 0; }
footer .tag{ margin-top:1rem; font-size:.95rem; max-width:34ch; }
footer .legal{ position:relative; z-index:1; max-width:none; padding-inline:var(--w1); margin-top:clamp(2.5rem,5vw,3.5rem); padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.1); font-size:.85rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
footer .legal a{ color:inherit; text-decoration:none; opacity:.8; transition:opacity .2s ease; }
footer .legal a:hover{ opacity:1; text-decoration:underline; }
@media(prefers-reduced-motion:reduce){ footer .fcol a::after{ transition:none; } }

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.26s; } .reveal.d4{ transition-delay:.36s; }

/* included / deliverables grid */
.included{ margin-top:2.8rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
@media(max-width:860px){ .included{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .included{ grid-template-columns:1fr; } }
.inc{ background:#fff; border-radius:20px; padding:1.6rem; box-shadow:0 22px 46px -34px rgba(14,34,54,.5); }
.inc .ico{ width:46px; height:46px; border-radius:13px; background:var(--cream); display:grid; place-items:center; margin-bottom:1rem; }
.inc h3{ font-size:1.06rem; } .inc p{ font-size:.96rem; margin-top:.4rem; }

/* testimonial / story */
.story-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,3.5rem); align-items:center; }
@media(max-width:900px){ .story-grid{ grid-template-columns:1fr; } }
.videowrap{ position:relative; border-radius:24px; overflow:hidden; background:var(--navy); box-shadow:0 40px 80px -44px rgba(14,34,54,.7); aspect-ratio:16/9; }
.videowrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.quote{ font-family:"Spectral",Georgia,serif; font-weight:500; font-style:italic; font-size:clamp(1.5rem,2.6vw,2rem); line-height:1.32; color:var(--ink); }
.quote .mark{ color:var(--gold); }
.quote-who{ margin-top:1.2rem; font-family:"Hanken Grotesk",sans-serif; font-style:normal; font-weight:700; font-size:.95rem; color:var(--ink-soft); letter-spacing:.02em; }
.story-note{ margin-top:1.4rem; font-size:1.05rem; }

/* founders */
.founders{ margin-top:2.8rem; display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
@media(max-width:760px){ .founders{ grid-template-columns:1fr; } }
.founder{ background:#fff; border-radius:24px; padding:2rem; box-shadow:0 24px 50px -36px rgba(14,34,54,.5); display:flex; gap:1.3rem; align-items:flex-start; }
.founder .pic{ flex:none; width:104px; height:104px; border-radius:22px; overflow:hidden; background:var(--cream); position:relative; }
.founder .pic svg,.founder .pic img{ width:100%; height:100%; object-fit:cover; }
.founder .pic img{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:150%; height:150%; object-fit:cover; object-position:50% 30%; }
.founder h3{ font-size:1.2rem; } .founder .role{ color:var(--gold-deep); font-weight:700; font-size:.85rem; letter-spacing:.04em; margin-top:.15rem; }
.founder p{ margin-top:.7rem; font-size:.98rem; }

/* contact form */
.contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
@media(max-width:880px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-aside h2{ margin-top:.6rem; }
.contact-aside p{ margin-top:1.1rem; font-size:1.06rem; }
.reassure{ margin-top:1.8rem; display:flex; flex-direction:column; gap:.9rem; }
.reassure div{ display:flex; gap:.7rem; align-items:center; font-weight:600; color:var(--ink); font-size:.98rem; }
.form-card{ background:#fff; border-radius:26px; padding:clamp(1.6rem,3vw,2.4rem); box-shadow:0 30px 60px -40px rgba(14,34,54,.55); }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-weight:700; font-size:.9rem; margin-bottom:.45rem; color:var(--ink); }
.field input,.field select,.field textarea{ width:100%; font-family:inherit; font-size:1rem; color:var(--ink); background:var(--cream); border:1.5px solid var(--line); border-radius:12px; padding:.8rem .95rem; transition:border-color .2s, box-shadow .2s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(194,146,79,.18); }
.field textarea{ min-height:110px; resize:vertical; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
@media(max-width:520px){ .row2{ grid-template-columns:1fr; } }
.form-card .btn{ width:100%; justify-content:center; margin-top:.4rem; }
.form-note{ margin-top:.9rem; font-size:.85rem; color:var(--ink-soft); text-align:center; }
.form-success{ display:none; text-align:center; padding:2rem 1rem; }
.form-success.show{ display:block; }
.form-success .tick{ width:64px; height:64px; border-radius:50%; background:var(--sage); display:grid; place-items:center; margin:0 auto 1.1rem; }
.form-success h3{ font-size:1.4rem; } .form-success p{ margin-top:.6rem; }
form.sent .form-body{ display:none; }

/* ===== peel-up section transition (sticky stack) ===== */
.peel-pair{ position:relative; }
.peel-top{ position:sticky; top:0; }
.peel-up{ position:relative; z-index:2; background:var(--cream); border-radius:46px 46px 0 0; margin-top:-2.6rem; box-shadow:0 -30px 60px -28px rgba(14,34,54,.4); }
.peel-up.blush{ background:var(--blush); }
.peel-up.sage{ background:var(--sage); }

/* ===== ethos: results + care, with side stat cards ===== */
.ethos{ position:relative; z-index:2; background:#fff; border-radius:clamp(40px,5vw,64px) clamp(40px,5vw,64px) 0 0; margin-top:calc(-1 * clamp(2.5rem,5vw,5rem)); padding-block:clamp(4rem,6vw,6rem) clamp(4rem,8vh,6rem); box-shadow:0 -30px 70px -42px rgba(14,34,54,.45); }
.ethos-panel{ padding-inline:calc(var(--w1) * 2); }
.ethos-top{ display:grid; grid-template-columns:minmax(300px,25rem) 1fr; gap:clamp(2.5rem,5vw,5rem); align-items:center; }
.ethos-copy h2{ margin-top:1.15rem; max-width:15ch; }
.ethos-copy p.body{ margin-top:1.3rem; color:var(--ink-soft); font-size:1.07rem; max-width:42ch; }
.ethos-copy .text-link{ margin-top:1.7rem; display:inline-flex; align-items:center; gap:.5rem; }
.ethos-photo{ min-height:clamp(420px,44vw,600px); }
.ethos-facts{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); margin-top:clamp(2.8rem,4.5vw,4rem); padding-top:clamp(2.4rem,4vw,3rem); border-top:1px solid var(--line); }
.fact-num{ font-weight:800; font-size:clamp(2.4rem,4vw,3.4rem); line-height:1; letter-spacing:-.02em; color:var(--gold-deep); }
.fact p{ margin-top:.9rem; color:var(--ink-soft); font-size:1.02rem; max-width:40ch; }
.stats{ display:flex; flex-direction:column; gap:1.3rem; }
.stat{ border-radius:24px; padding:1.9rem; }
.stat.navy{ background:var(--navy); color:var(--light); box-shadow:0 30px 60px -40px rgba(14,34,54,.6); }
.stat.cream{ background:var(--cream); border:1px solid var(--line); box-shadow:0 24px 50px -40px rgba(14,34,54,.35); }
.stat .num{ font-weight:800; font-size:clamp(2.6rem,4vw,3.4rem); line-height:1; letter-spacing:-.02em; }
.stat.navy .num{ color:var(--gold-bright); }
.stat.cream .num{ color:var(--gold-deep); }
.stat p{ margin-top:.8rem; font-size:.99rem; }
.stat.navy p{ color:var(--light-soft); }
.stat.cream p{ color:var(--ink-soft); }
@media(max-width:1000px){
  .ethos-top{ grid-template-columns:1fr; text-align:center; gap:2.4rem; max-width:640px; margin-inline:auto; }
  .ethos-copy h2,.ethos-copy p.body{ max-width:none; margin-inline:auto; }
  .ethos-copy .eyebrow::after{ margin-inline:auto; }
  .ethos-photo{ min-height:360px; }
  .stats{ flex-direction:row; text-align:left; }
}
@media(max-width:560px){ .stats{ flex-direction:column; } .ethos-facts{ grid-template-columns:1fr; gap:1.8rem; } }

/* ===== expanding boxes (horizontal accordion) ===== */
.solutions{ color:var(--light); padding-block:clamp(1.5rem,4vh,3rem) 0; }
.solutions.peel-top{ position:sticky; top:0; }
.solutions .wrap{ position:relative; max-width:none; padding-inline:var(--w1); }
.sol-panel{ position:relative; overflow:hidden; background:var(--navy); border-radius:44px; padding:clamp(3.2rem,5vw,4.6rem) var(--w1) clamp(4rem,7vw,6rem); text-align:center; min-height:1060px; display:flex; flex-direction:column; justify-content:flex-start; }
.sol-panel::before{ display:none; }
.sol-panel > *{ position:relative; }
.sol-cta{ display:flex; gap:1.3rem; align-items:center; justify-content:center; flex-wrap:wrap; margin-top:1.8rem; }
.sol-link{ position:relative; color:var(--light); text-decoration:none; font-weight:700; font-size:.96rem; padding-bottom:5px; }
.sol-link::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--gold-bright); transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease); }
.sol-link:hover::after{ transform:scaleX(1); transform-origin:left; }
.sol-row{ display:flex; justify-content:center; align-items:flex-start; gap:2rem; margin-top:3rem; text-align:left; flex-wrap:wrap; }
.sol-item{ display:flex; flex-direction:column; }
.sol-label{ font-weight:800; color:var(--light); font-size:1.04rem; margin-bottom:.9rem; padding-left:.15rem; white-space:nowrap; }
.sol-body{ display:flex; align-items:stretch; }
.sol-card{ width:240px; height:240px; border-radius:22px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.03); cursor:pointer; display:grid; place-items:center; transition:background .35s var(--ease), border-color .35s; flex:none; padding:.7rem; overflow:hidden; }
.sol-card:hover{ border-color:rgba(255,255,255,.32); }
.sol-card:focus-visible{ outline:2px solid var(--gold-bright); outline-offset:3px; }
.sol-item.active .sol-card{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.24); }
.sol-card svg{ width:92%; height:auto; max-height:88%; }
.sol-card img.sol-ico{ width:92%; height:92%; object-fit:contain; }
/* Per-icon scale + nudge: the funnel art fills its canvas; the others have
   uneven transparent margin baked in, so we scale them up to match and shift
   them to sit centred in the box. Tweak the translate values to re-centre. */
.sol-card img[src$="icon-film.png"]{ transform:translate(10px,-20px) scale(1.7); }
.sol-card img[src$="icon-meta.png"]{ transform:translate(0,-18px) scale(1.4); }
.sol-card img[src$="icon-reporting.png"]{ transform:translate(10px,-20px) scale(1.6); }
.sol-desc{ width:0; overflow:hidden; opacity:0; transition:width .55s var(--ease), opacity .4s var(--ease), padding .4s; display:flex; flex-direction:column; justify-content:center; }
.sol-desc > div{ width:clamp(290px,21vw,410px); flex:none; padding-left:1.9rem; }
.sol-item.active .sol-desc{ width:clamp(290px,21vw,410px); opacity:1; }
.sol-desc p{ color:var(--light); font-size:1.02rem; line-height:1.55; }
.sol-desc .sol-more{ color:var(--gold-bright); }
.sol-more{ display:inline-block; margin-top:1rem; color:var(--gold-bright); font-weight:700; text-decoration:none; font-size:.92rem; white-space:nowrap; }
@media(max-width:980px){ .sol-row{ flex-wrap:wrap; } }
@media(max-width:760px){
  .sol-row{ flex-direction:column; gap:1.6rem; align-items:stretch; }
  .sol-body{ flex-direction:row; align-items:center; }
  .sol-card{ width:120px; height:120px; }
  .sol-desc{ width:auto; opacity:1; padding:0 0 0 1.2rem; }
}

/* ===== families: left accordion + right illustration ===== */
.families{ padding-block:clamp(4.5rem,9vh,7.5rem); }
.families .wrap{ max-width:none; padding-inline:calc(var(--w1) * 2); }
.fam-head{ text-align:center; max-width:640px; margin:0 auto clamp(2.6rem,5vw,3.6rem); }
.fam-head h2{ margin-top:.7rem; }
.fam-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.fam-acc{ display:flex; flex-direction:column; gap:1.1rem; }
.acc{ background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 18px 44px -34px rgba(14,34,54,.45); overflow:hidden; transition:border-color .3s, box-shadow .3s; }
.acc.open{ border-color:rgba(194,146,79,.55); box-shadow:0 26px 54px -32px rgba(14,34,54,.42); }
.acc-btn{ width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:1.35rem 1.6rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-family:inherit; font-size:clamp(1.1rem,1.5vw,1.25rem); font-weight:800; color:var(--ink); }
.acc-ico{ flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:var(--cream); position:relative; transition:background .3s; }
.acc.open .acc-ico{ background:var(--navy); }
.acc-ico::before,.acc-ico::after{ content:""; position:absolute; background:var(--gold-deep); border-radius:2px; transition:transform .3s, background .3s; }
.acc-ico::before{ width:12px; height:2.4px; }
.acc-ico::after{ width:2.4px; height:12px; }
.acc.open .acc-ico::before,.acc.open .acc-ico::after{ background:#fff; }
.acc.open .acc-ico::after{ transform:scaleY(0); }
.acc-body{ overflow:hidden; max-height:0; transition:max-height .45s var(--ease); }
.acc-body p{ padding:0 1.6rem 1.5rem; color:var(--ink-soft); font-size:1.01rem; max-width:48ch; }
.fam-illo{ display:grid; place-items:center; }
.fam-illo svg{ width:100%; max-width:800px; height:auto; }

/* ===== logo strip: channels we work across ===== */
.logos{ padding-block:clamp(3.5rem,6vh,5.5rem); }
.logos .wrap{ max-width:min(1520px,94vw); }
.logos-label{ text-align:center; color:var(--ink-soft); font-weight:600; font-size:1rem; max-width:46ch; margin:0 auto clamp(2rem,3.5vw,3rem); }
.logo-row{ display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; }
.logo-item{ flex:1 1 0; min-width:0; max-width:500px; height:190px; display:flex; align-items:center; justify-content:center; padding:0 2rem; }
.logo-item + .logo-item{ border-left:1px solid var(--line); }
.logo-item img{ max-height:160px; max-width:92%; width:auto; height:auto; }
@media(max-width:680px){ .logo-row{ flex-wrap:wrap; } .logo-item{ flex:1 1 44%; max-width:none; height:110px; padding:0 .8rem; } .logo-item + .logo-item{ border-left:none; } .logo-item img{ max-height:84px; } }

/* ===== reviews: two text testimonials ===== */
.reviews{ padding-block:clamp(4.5rem,9vh,7.5rem) clamp(8.5rem,16vh,13rem); }
.reviews .wrap{ max-width:none; padding-inline:calc(var(--w1) * 2); }
.reviews-head{ margin-bottom:clamp(2.8rem,5vw,4.2rem); }
.stars{ color:var(--gold); letter-spacing:4px; font-size:1.05rem; line-height:1; white-space:nowrap; }
.stars-lg{ font-size:1.5rem; letter-spacing:6px; margin-bottom:1.1rem; }
.reviews-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,700px)); justify-content:center; }
.review{ margin:0; min-height:300px; padding:0 clamp(2rem,3.2vw,3.6rem); display:flex; flex-direction:column; }
.review + .review{ border-left:1px solid var(--line); }
.review-top{ display:flex; align-items:center; gap:1rem; margin-bottom:1.3rem; }
.pill{ border:1.5px solid var(--gold); color:var(--gold-deep); border-radius:999px; padding:.34rem 1rem; font-size:.8rem; font-weight:700; }
.review p{ font-size:clamp(1rem,1.25vw,1.1rem); line-height:1.6; color:var(--ink); margin:0; }
.review p .mark{ color:var(--gold); font-weight:600; }
.review footer{ display:flex; align-items:center; gap:1rem; margin-top:auto; padding-top:1.8rem; }
.who-avatar{ flex:none; position:relative; overflow:hidden; width:56px; height:56px; border-radius:50%; background:var(--navy); color:var(--gold-bright); display:grid; place-items:center; font-family:"Spectral",serif; font-size:1.4rem; font-weight:600; }
.who-avatar img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.review footer strong{ display:block; font-size:1.05rem; color:var(--ink); font-weight:800; }
.review footer span{ display:block; color:var(--ink-soft); font-size:.92rem; margin-top:.1rem; }
@media(max-width:820px){ .reviews-grid{ grid-template-columns:1fr; gap:2.4rem; } .review{ min-height:0; padding:0; } .review + .review{ border-left:none; border-top:1px solid var(--line); padding-top:2.4rem; } }

/* ===== closer: two trust cards + final CTA ===== */
.closer{ position:relative; z-index:1; background:var(--navy-soft); padding-block:clamp(40px,6vw,90px) 180px; }
.closer + .foot{ padding-top:0; }
.closer-wave{ position:absolute; left:0; top:0; width:100%; height:clamp(200px,24vw,330px); display:block; z-index:0; }
.closer-wave path{ fill:var(--blush); }
.closer-inner{ position:relative; z-index:2; max-width:1200px; margin:0 auto; padding-inline:clamp(1.25rem,4vw,2rem); }
.closer-top{ display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.closer-card{ background:var(--navy); border:1px solid rgba(255,255,255,.08); border-radius:26px; min-height:450px; padding:clamp(2rem,3vw,2.8rem); color:var(--light); display:flex; flex-direction:column; }
.closer-card .ctop{ font-size:clamp(1.05rem,1.4vw,1.18rem); line-height:1.55; color:var(--light); max-width:32ch; margin:0; }
.closer-card .cbottom{ margin-top:auto; padding-top:2rem; }
.chip-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.chip-mini{ display:inline-flex; align-items:center; gap:.45rem; border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:.45rem .95rem; font-size:.85rem; font-weight:600; color:var(--light-soft); }
.closer-card.proof{ align-items:center; justify-content:center; text-align:center; }
.closer-card.proof .bigstars{ font-size:clamp(2.2rem,4vw,2.8rem); color:var(--gold); letter-spacing:8px; line-height:1; }
.closer-card.proof p{ color:var(--light-soft); font-size:1.06rem; margin-top:1.3rem; max-width:24ch; }
.closer-cta{ margin-top:110px; background:var(--cream); border-radius:34px; min-height:535px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:clamp(2.5rem,5vw,4rem); }
.closer-cta .cta-illo{ width:clamp(150px,17vw,210px); height:auto; margin-bottom:1.4rem; }
.closer-cta h2{ max-width:18ch; }
.closer-cta .sub{ margin-top:1.1rem; font-size:1.1rem; color:var(--ink-soft); max-width:44ch; }
.closer-cta .btn{ margin-top:2rem; }
.closer-cta .note{ margin-top:1.1rem; font-size:.9rem; color:var(--ink-soft); }
@media(max-width:820px){ .closer-top{ grid-template-columns:1fr; } .closer-card{ min-height:0; } .closer-cta{ min-height:0; } }
@media(max-width:900px){ .fam-grid{ grid-template-columns:1fr; } .fam-illo{ order:-1; } }

@media(prefers-reduced-motion:reduce){ *{ animation:none!important; transition:none!important; } .reveal,.reveal-load{ opacity:1; transform:none; } .swoosh path{ stroke-dashoffset:0; } .peel-top{ position:relative; } }

/* ===== service directory: editorial index ===== */
.svc-index{ list-style:none; margin:clamp(2.4rem,4vw,3.4rem) auto 0; max-width:940px; }
.svc-entry{ border-top:1px solid var(--line); }
.svc-entry:last-child{ border-bottom:1px solid var(--line); }
.svc-entry a{ display:flex; align-items:center; gap:clamp(1.1rem,2.6vw,2.2rem); padding:clamp(1.5rem,2.5vw,2.3rem) clamp(.3rem,1.4vw,1.2rem); text-decoration:none; color:var(--ink); transition:padding-left .4s var(--ease); }
.svc-num{ flex:none; font-family:"Spectral",Georgia,serif; font-style:italic; font-weight:600; font-size:clamp(1.5rem,2.4vw,2.2rem); color:var(--gold); line-height:1; min-width:1.8ch; }
.svc-text{ flex:1 1 auto; min-width:0; }
.svc-name{ display:block; font-family:"Hanken Grotesk",sans-serif; font-weight:800; font-size:clamp(1.3rem,2.1vw,1.85rem); letter-spacing:-.02em; line-height:1.12; color:var(--ink); transition:color .3s; }
.svc-line{ display:block; margin-top:.45rem; color:var(--ink-soft); font-size:1.02rem; max-width:54ch; }
.svc-go{ flex:none; width:50px; height:50px; border-radius:50%; border:1.5px solid var(--line); display:grid; place-items:center; color:var(--gold-deep); transition:background .35s var(--ease), border-color .35s, color .35s, transform .35s var(--ease); }
.svc-entry a:hover{ padding-left:clamp(.8rem,2.2vw,1.8rem); }
.svc-entry a:hover .svc-name{ color:var(--gold-deep); }
.svc-entry a:hover .svc-go{ background:var(--navy); border-color:var(--navy); color:#fff; transform:translateX(5px); }
.svc-entry a:focus-visible{ outline:2px solid var(--gold); outline-offset:4px; border-radius:6px; }
@media(max-width:560px){
  .svc-entry a{ gap:.9rem; padding-block:1.3rem; }
  .svc-num{ font-size:1.35rem; }
  .svc-go{ width:40px; height:40px; }
}

/* ===== service detail pages (shared) ===== */
.svc-back{ display:inline-flex; align-items:center; gap:.5rem; color:var(--ink-soft); text-decoration:none; font-weight:700; font-size:.92rem; margin-bottom:1.4rem; transition:color .25s; }
.svc-back:hover{ color:var(--gold-deep); }
.svc-back svg{ transition:transform .3s var(--ease); }
.svc-back:hover svg{ transform:translateX(-3px); }
.incl-list{ margin:clamp(2rem,3vw,2.8rem) auto 0; max-width:760px; display:grid; grid-template-columns:1fr 1fr; gap:1rem 2.4rem; }
@media(max-width:640px){ .incl-list{ grid-template-columns:1fr; } }
.incl-item{ display:flex; gap:.85rem; align-items:flex-start; font-weight:600; color:var(--ink); border-top:1px solid var(--line); padding-top:1rem; }
.incl-item svg{ flex:none; margin-top:3px; }

/* ===== what you get: three themes, two parts each ===== */
.yget .wrap{ max-width:none; padding-inline:calc(var(--w1) * 2); }
.w3 .wrap{ max-width:none; padding-inline:max(16px, calc(var(--w1) * 2 - 100px)); }
.w2 .wrap{ max-width:none; padding-inline:calc(var(--w1) * 2); }
/* The truth: large image feature, text scaled up, no centre void */
.truth .feature-grid{ grid-template-columns:minmax(360px,33rem) 1fr; gap:clamp(2.5rem,4.5vw,5.5rem); align-items:center; }
.truth .imgcard{ min-height:clamp(440px,42vw,640px); }
.truth .feature h2{ font-size:clamp(2.4rem,3.6vw,3.5rem); max-width:none; line-height:1.05; }
.truth .feature .body{ font-size:clamp(1.12rem,1.3vw,1.38rem); max-width:none; margin-top:1.7rem; }
@media(max-width:900px){ .truth .feature-grid{ grid-template-columns:1fr; } .truth .imgcard{ min-height:340px; } }
/* trust bar under the testimonials */
.trust-bar{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem 2.2rem; max-width:1040px; margin:clamp(3rem,5vw,4.4rem) auto 0; padding-top:clamp(2.6rem,4vw,3.4rem); border-top:1px solid rgba(194,146,79,.3); }
.trust-item{ display:flex; gap:.7rem; align-items:flex-start; font-weight:600; color:var(--ink); font-size:.98rem; line-height:1.42; }
.trust-item svg{ flex:none; margin-top:2px; }
@media(max-width:820px){ .trust-bar{ grid-template-columns:1fr 1fr; max-width:620px; gap:1.4rem 2rem; } }
@media(max-width:480px){ .trust-bar{ grid-template-columns:1fr; max-width:360px; } }
/* full-width photo band */
.photo-band{ position:relative; border-radius:clamp(20px,3vw,34px); overflow:hidden; height:clamp(360px,46vw,700px); box-shadow:0 44px 90px -58px rgba(14,34,54,.55); }
.photo-band img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.photo-band::after{ content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(194,146,79,.22); pointer-events:none; }
.photo-band.sm{ height:clamp(280px,32vw,440px); }
.photo-band.hero-photo{ height:clamp(360px,44vw,640px); margin-top:clamp(2.8rem,5vw,4.2rem); }
.offer-themes{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.6rem,3vw,3rem); margin-top:clamp(2.6rem,4vw,3.8rem); align-items:start; }
.offer-theme{ display:flex; flex-direction:column; }
.ot-head{ text-align:center; padding:0 .4rem 1.6rem; min-height:232px; }
.ot-num{ display:block; font-family:"Spectral",Georgia,serif; font-style:italic; font-weight:600; color:var(--gold); font-size:1.6rem; line-height:1; }
.ot-head h3{ font-size:clamp(1.3rem,1.6vw,1.55rem); margin-top:.45rem; }
.ot-head p{ color:var(--ink-soft); font-size:1rem; margin-top:.55rem; max-width:30ch; margin-inline:auto; }
.ot-head .text-link{ margin-top:1rem; display:inline-block; font-size:.92rem; }
.ot-cards{ display:flex; flex-direction:column; gap:1.2rem; }
.ot-card{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:1.7rem 1.8rem; box-shadow:0 26px 52px -38px rgba(14,34,54,.5); min-height:200px; }
.ot-card .ico{ width:50px; height:50px; border-radius:14px; background:var(--cream); display:grid; place-items:center; margin-bottom:1rem; }
.ot-card .ico svg{ width:26px; height:26px; }
.ot-card h4{ font-size:1.12rem; font-weight:800; letter-spacing:-.01em; }
.ot-card p{ color:var(--ink-soft); font-size:.98rem; margin-top:.35rem; }
@media(max-width:900px){ .offer-themes{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; gap:2rem; } .ot-head{ min-height:0; padding-bottom:1.1rem; } .ot-card{ min-height:0; } }

/* =====================================================================
   MOBILE LAYER — a designed-for-phone experience (additive only)
   Nothing above this line has been changed. Main phone breakpoint 720px,
   with finer tweaks at 430px and 380px. Targeted !important is used only
   where inline style="" attributes or page-level <style> blocks would
   otherwise win the cascade.
   ===================================================================== */
@media (max-width:720px){
  :root{ --mg:clamp(1.25rem,5vw,1.75rem); } /* one calm phone gutter */

  /* ---- global guards & rhythm ---- */
  html, body{ overflow-x:clip; }
  .wrap{ padding-inline:var(--mg); }
  /* normalise the inline "width-2" wrappers on the deep-dive/guide pages */
  .wrap[style]{ max-width:none !important; padding-inline:var(--mg) !important; }
  .wrap.hero-bleed, .hiw .wrap, .faq-section .wrap, .solutions .wrap,
  .ethos-panel, .families .wrap, .reviews .wrap,
  .yget .wrap, .w2 .wrap, .w3 .wrap,
  .foot-top, footer .legal{ padding-inline:var(--mg); }
  .section{ padding-block:clamp(3.6rem,9vh,5rem); }
  .section.tight{ padding-block:clamp(3rem,7vh,4rem); }
  h2{ font-size:clamp(1.8rem,6vw,2.25rem); text-wrap:balance; }
  .section-head p{ font-size:1.03rem; }
  .lead{ font-size:1.05rem; }

  /* ---- header ---- */
  .nav .wrap{ min-height:70px; }
  .brand img{ height:38px; }
  header.nav.scrolled .brand img{ height:34px; }

  /* ---- hero: typed line may wrap, never overflow ---- */
  .hero{ padding-block:clamp(3rem,6vh,4rem) clamp(2.2rem,5vh,3rem); }
  .hero h1{ font-size:clamp(2.05rem,8vw,2.6rem); }
  .hero h1 br{ display:none; }
  .hero-line2{ white-space:normal; }
  .hero .lead{ margin-top:1.1rem; }
  .swoosh{ height:14px; }
  .svc-back{ margin-bottom:1rem; }
  /* CTA rows stack into one clear full-width action */
  .cta-row{ flex-direction:column; align-items:center; gap:1.05rem; }
  .hero .cta-row{ margin-top:1.6rem; }
  .cta-row .btn{ width:100%; max-width:420px; }
  .btn{ padding:1rem 1.7rem; }
  .btn.has-h{ padding-inline:2.2rem; }
  /* photos keep a fixed friendly ratio instead of viewport-tied heights */
  .photo-band, .photo-band.sm{ height:auto; aspect-ratio:1/1; }
  .photo-band.hero-photo{ height:auto; aspect-ratio:4/5; margin-top:2rem; }

  /* ---- services hero film ---- */
  .wrap.hero-film{ padding-inline:var(--mg) !important; }
  .film-after{ flex-direction:column; align-items:center; gap:1.1rem; }
  .film-after .btn{ width:100%; max-width:420px; }

  /* ---- feature grids: image-led, stacked, ratio-sized ---- */
  .feature-grid{ gap:1.6rem; }
  .feature-grid .imgcard, .feature-grid.flip .imgcard{ order:-1; }
  .feature-grid .imgcard, .why-grid .imgcard, .truth .imgcard, .imgcard.tall{
    min-height:0 !important; height:auto; aspect-ratio:4/3; }
  .feature h2{ max-width:none; }
  .feature p.body{ max-width:none; font-size:1.03rem; margin-top:1rem; }
  .truth .feature h2{ font-size:clamp(1.9rem,6.6vw,2.35rem); }
  .truth .feature .body{ font-size:1.06rem; margin-top:1.1rem; }

  /* ---- ethos (results + care) ---- */
  .ethos{ border-radius:30px 30px 0 0; padding-block:3rem 3.2rem; }
  .ethos-top{ gap:1.8rem; }
  .ethos-photo{ min-height:0; aspect-ratio:4/5; }
  .ethos-facts{ margin-top:2.4rem; padding-top:2rem; }
  .stats{ gap:1rem; }
  .stat{ padding:1.6rem 1.4rem; }

  /* ---- solutions panel: vertical accordion (icon + label row, description drops below) ---- */
  .solutions .wrap{ padding-inline:clamp(.8rem,2.6vw,1.1rem); }
  .sol-panel{ min-height:0; border-radius:26px; padding:2.6rem 1.3rem 2.8rem; }
  .sol-cta{ flex-direction:column; gap:1.1rem; margin-top:1.6rem; }
  .sol-cta .btn{ width:100%; max-width:420px; }
  .sol-row{ flex-direction:column; gap:0; margin-top:2.2rem; align-items:stretch; }
  .sol-item{ position:relative; display:block; padding:1.5rem 0; border-top:1px solid rgba(255,255,255,.12); cursor:pointer; }
  .sol-item:last-child{ border-bottom:1px solid rgba(255,255,255,.12); }
  .sol-body{ display:block; }
  /* icon chip pinned top-left; whole row is the tap target */
  .sol-card{ position:absolute; top:1.35rem; left:0; width:60px; height:60px; border-radius:16px; padding:.4rem; pointer-events:none; }
  .sol-card img.sol-ico{ transform:scale(1.12) !important; width:92%; height:92%; }
  /* label sits beside the icon on one row */
  .sol-label{ display:flex; align-items:center; min-height:60px; margin:0; padding:0 48px 0 78px; font-size:1.12rem; font-weight:700; white-space:normal; line-height:1.25; }
  /* circular +/- toggle on the right, fills gold when open */
  .sol-item::after{ content:'+'; position:absolute; top:1.7rem; right:0; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.28); display:grid; place-items:center; color:var(--gold-bright); font-size:1.35rem; line-height:1; font-weight:500; transition:background .3s, color .3s, border-color .3s; }
  .sol-item.active::after{ content:'\2212'; background:var(--gold-bright); color:var(--navy); border-color:var(--gold-bright); }
  /* description drops full-width below the row, collapsed until the item is open */
  .sol-desc{ display:none !important; width:auto; opacity:1; padding:0; margin:0; }
  .sol-item.active .sol-desc{ display:block !important; margin-top:1rem; }
  .sol-desc > div{ width:auto; padding:0; }
  .sol-desc p{ font-size:.98rem; line-height:1.55; padding-left:0; }
  .sol-more{ margin-top:.7rem; }

  /* ---- families accordion ---- */
  .families{ padding-block:clamp(3.6rem,9vh,5rem); }
  .fam-grid{ gap:1.6rem; }
  .fam-illo svg{ max-width:400px; }
  .acc-btn{ padding:1.15rem 1.25rem; font-size:1.06rem; }
  .acc-body p{ padding:0 1.25rem 1.25rem; }

  /* ---- logo strip ---- */
  .logos{ padding-block:2.8rem; }
  .logo-item{ height:92px; }
  .logo-item img{ max-height:64px; }

  /* ---- reviews ---- */
  .reviews{ padding-block:clamp(3.6rem,9vh,5rem) clamp(6rem,12vh,7.5rem); }
  .reviews-head{ margin-bottom:2.2rem; }
  .review p{ font-size:1rem; }

  /* ---- how it works (navy journey) ---- */
  .hiw{ padding-block:clamp(3.6rem,8vh,5rem) clamp(5rem,10vh,6.5rem); }
  .hiw-steps{ margin-top:2.4rem; }
  .hiw-num{ width:64px; height:64px; font-size:1.5rem; }
  .hiw-step p{ font-size:.97rem; }

  /* ---- card grids go single-column with a comfortable cap ---- */
  .steps{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; margin-top:2.4rem; }
  .included{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; }
  .incl-list{ grid-template-columns:1fr; gap:.9rem; }
  .fitlist{ grid-template-columns:1fr; gap:.9rem; }
  .three-points{ gap:1.5rem; margin-top:2.2rem; }

  /* ---- duo comparison stacks into two clear cards ---- */
  .duo{ gap:1rem; }
  .duo .pane{ padding:1.7rem 1.4rem; }

  /* ---- services "what you get" ---- */
  .offer-themes{ gap:2.4rem; }
  .ot-head{ padding-bottom:1rem; }
  .ot-cards{ gap:1rem; }
  .ot-card{ padding:1.4rem 1.35rem; }

  /* ---- guide mini-cards stack vertically on phones ---- */
  .mini-cards{ display:flex !important; flex-direction:column !important; gap:1rem !important; }
  .mini-card{ width:auto; }

  /* ---- long-form article pages ---- */
  .article h2{ font-size:1.55rem !important; }
  .article h3{ font-size:1.15rem !important; margin-top:1.9rem !important; }

  /* ---- faq ---- */
  .faq-grid{ gap:1.6rem; margin-top:2rem; }
  .faq-illo{ width:130px; }
  .faq-illo.small{ width:112px; }
  .faq-aside p{ font-size:.95rem; }
  .faq-aside p a{ overflow-wrap:anywhere; }
  .qa button{ padding:1.05rem 1.15rem; font-size:.99rem; gap:.9rem; }
  .qa .ans p{ padding:0 1.15rem 1.1rem; font-size:.96rem; }

  /* ---- founders / quotes ---- */
  .founders{ gap:1.1rem; }
  .founder{ flex-direction:column; padding:1.7rem 1.5rem; gap:1.1rem; }
  .founder .pic{ width:96px; height:96px; }
  .about-quote p{ font-size:clamp(1.25rem,5.4vw,1.5rem); }
  .about-quote footer{ margin-top:1.5rem; }

  /* ---- contact ---- */
  .section[style*="padding-top"]{ padding-top:clamp(5.5rem,11vh,7rem) !important; }
  .contact-grid{ gap:2.2rem; }
  .form-card{ border-radius:22px; }
  .row2{ grid-template-columns:1fr; gap:0; }
  .reassure{ margin-top:1.4rem; }

  /* ---- closer + ribbon + return link ---- */
  .closer{ padding-block:clamp(32px,5vw,60px) 90px; }
  .closer-top{ gap:1rem; }
  .closer-card{ padding:1.8rem 1.5rem; }
  .closer-cta{ margin-top:56px; padding:2.6rem 1.4rem; border-radius:28px; }
  .closer-cta .btn{ width:100%; max-width:420px; }
  .ribbon .wrap{ flex-direction:column; align-items:center; text-align:center; gap:1.5rem; padding-block:clamp(3rem,7vh,4rem); }
  .ribbon h2{ max-width:none; }
  .ribbon .btn{ width:100%; max-width:420px; }
  .svc-return{ margin-top:-1.6rem; padding-bottom:2.6rem; }

  /* ---- footer: tidy two-column restack ---- */
  .foot-top{ gap:2.2rem; }
  .foot-cols{ grid-template-columns:1fr 1fr; gap:1.9rem 1.4rem; }
  .foot-cols .fcol:last-child{ grid-column:1 / -1; }
  footer .fcol a{ padding:.4rem 0; overflow-wrap:anywhere; }
  .foot-brand .brand img{ height:44px; }
  footer .legal{ flex-direction:column; gap:.3rem; margin-top:2.2rem; }
}

/* ---- finer phone tweaks ---- */
@media (max-width:430px){
  .hero h1{ font-size:2rem; }
  h2{ font-size:1.75rem; }
  .truth .feature h2{ font-size:1.85rem; }
  .sol-card{ width:54px; height:54px; }
  .step{ padding:1.5rem 1.3rem; }
  .inc{ padding:1.4rem 1.3rem; }
  .duo .pane{ padding:1.5rem 1.25rem; }
  .closer-card.proof .bigstars{ font-size:2rem; letter-spacing:6px; }
  .foot-cols{ gap:1.7rem 1.2rem; }
}
@media (max-width:380px){
  .hero h1{ font-size:1.85rem; }
  h2{ font-size:1.6rem; }
  .btn{ padding:.95rem 1.3rem; font-size:.86rem; }
  .sol-desc p{ font-size:.93rem; }
  .qa button{ font-size:.95rem; }
}

/* ---- tablet (721-1024): what-we-handle uses the same clean accordion as mobile, no horizontal card scroll ---- */
@media (min-width:721px) and (max-width:1024px){
  .sol-panel{ min-height:0; }
  .sol-row{ flex-direction:column; gap:0; margin-top:2.4rem; align-items:stretch; max-width:640px; margin-inline:auto; }
  .sol-item{ position:relative; display:block; padding:1.6rem 0; border-top:1px solid rgba(255,255,255,.12); cursor:pointer; }
  .sol-item:last-child{ border-bottom:1px solid rgba(255,255,255,.12); }
  .sol-body{ display:block; }
  .sol-card{ position:absolute; top:1.45rem; left:0; width:60px; height:60px; border-radius:16px; padding:.4rem; pointer-events:none; }
  .sol-card img.sol-ico{ transform:scale(1.12) !important; width:92%; height:92%; }
  .sol-label{ display:flex; align-items:center; min-height:60px; margin:0; padding:0 48px 0 80px; font-size:1.18rem; font-weight:700; white-space:normal; line-height:1.25; }
  .sol-item::after{ content:'+'; position:absolute; top:1.8rem; right:0; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.28); display:grid; place-items:center; color:var(--gold-bright); font-size:1.35rem; line-height:1; font-weight:500; transition:background .3s, color .3s, border-color .3s; }
  .sol-item.active::after{ content:'\2212'; background:var(--gold-bright); color:var(--navy); border-color:var(--gold-bright); }
  .sol-desc{ display:none !important; width:auto; opacity:1; padding:0; margin:0; }
  .sol-item.active .sol-desc{ display:block !important; margin-top:1rem; }
  .sol-desc > div{ width:auto; padding:0; }
  .sol-desc p{ font-size:1.02rem; line-height:1.6; padding-left:0; }
  .sol-more{ margin-top:.7rem; }
}
