/* ============================================================
   Clinic Conductor, by PulseAI
   Design system derived from the brand mood board.

   COLOUR RULE, do not break it:
   Every word of body and heading copy on a light surface is ink
   navy. The accents (coral, gold, sage, blue) measure 1.5 to 2.2
   to 1 on cream, so they are illustration and ornament only. They
   become legible text only on the ink surface, where they measure
   5.9 to 8.9 to 1. The mood board follows the same rule: every
   word on it is navy.
   ============================================================ */

/* Self-hosted so the site makes no third-party font request. Latin subset,
   nine files, about 170 KB in total, each swapped in without blocking render. */
@font-face{font-family:"Figtree";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/figtree-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/figtree-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/figtree-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:700;font-display:swap;
  src:url("fonts/figtree-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/playfair-display-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/playfair-display-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/playfair-display-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400;font-display:swap;
  src:url("fonts/playfair-display-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;
  src:url("fonts/playfair-display-latin-500-italic.woff2") format("woff2")}

/* Metric-matched fallbacks: until the web fonts arrive, text is set in a local font
   scaled to the same width and line height, so headlines do not reflow when they swap.
   Measured against Times New Roman and Arial metrics (Liberation equivalents). */
@font-face{font-family:"Playfair Fallback";font-style:normal;
  src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif"),local("Times");
  size-adjust:113.08%;ascent-override:95.69%;descent-override:22.2%;line-gap-override:0%}
@font-face{font-family:"Playfair Fallback";font-style:italic;
  src:local("Times New Roman Italic"),local("TimesNewRomanPS-ItalicMT"),local("Liberation Serif Italic"),local("Times-Italic");
  size-adjust:107.22%;ascent-override:100.91%;descent-override:23.41%;line-gap-override:0%}
@font-face{font-family:"Figtree Fallback";font-style:normal;
  src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Helvetica");
  size-adjust:101.2%;ascent-override:93.87%;descent-override:24.7%;line-gap-override:0%}

:root{
  /* surfaces */
  --cream:#FAF0E3;
  --sand:#F3E6D7;
  --shell:#FFFBF5;
  --ink:#112944;
  --ink-deep:#0A1A2B;

  /* accents, ornament only on light */
  --coral:#FE9B73;
  --coral-deep:#F2714E;
  --gold:#FCBF53;
  --sage:#88BFB7;
  --blue:#7FA9CC;

  /* text */
  --text:#112944;
  --text-soft:#44586E;
  --on-ink:#FAF0E3;
  --on-ink-soft:#BCC7D4;

  --line:rgba(17,41,68,.13);
  --line-strong:rgba(17,41,68,.22);

  --serif:"Playfair Display","Playfair Fallback",Georgia,"Times New Roman",serif;
  --sans:"Figtree","Figtree Fallback","Helvetica Neue",Arial,sans-serif;

  --wrap:1180px;
  --gut:clamp(20px,5vw,40px);
  --r:14px;
  --r-lg:22px;

  --sect:clamp(76px,10vw,140px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,svg{max-width:100%}
img{height:auto;border:0}

/* ---------- type scale ---------- */
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  color:var(--text);
  letter-spacing:-.012em;
  margin:0;
  text-wrap:balance;
}
h1{font-size:clamp(2.45rem,6vw,4.3rem);line-height:1.04}
h2{font-size:clamp(1.95rem,4vw,3.1rem);line-height:1.1}
h3{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.22}
h4{font-size:1.1rem;line-height:1.35}
h1 em,h2 em,h3 em{font-style:italic;font-weight:400}

p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
a{color:inherit}

.kick{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin:0 0 20px;
  display:block;
}
.lede{
  font-size:clamp(1.08rem,1.7vw,1.3rem);
  line-height:1.6;
  color:var(--text-soft);
  max-width:40ch;
}
.lede--wide{max-width:58ch}
.muted{color:var(--text-soft)}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.wrap--narrow{max-width:760px}
section{position:relative}
.sect{padding:var(--sect) 0}
.sect--tight{padding:clamp(54px,7vw,88px) 0}
.sect--sand{background:var(--sand)}
.sect--ink{background:var(--ink);color:var(--on-ink)}
.sect--ink h1,.sect--ink h2,.sect--ink h3,.sect--ink h4{color:var(--on-ink)}
.sect--ink .lede,.sect--ink .muted,.sect--ink .kick{color:var(--on-ink-soft)}

/* hairline between same-coloured neighbours */
.rule-top{border-top:1px solid var(--line)}

/* ---------- header ---------- */
.hdr{
  position:sticky;top:0;z-index:60;
  background:rgba(250,240,227,.86);
  backdrop-filter:saturate(1.4) blur(14px);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s ease,background .25s ease;
}
.hdr.is-stuck{border-bottom-color:var(--line)}
.hdr__in{display:flex;align-items:center;gap:28px;height:76px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:none;line-height:1;min-height:44px}
.brand__mark{width:42px;height:42px;flex:none;border-radius:50%;box-shadow:0 2px 6px rgba(17,41,68,.18)}
.brand__text{display:flex;flex-direction:column;gap:5px}
.brand__name{font-family:var(--serif);font-size:1.28rem;font-weight:600;letter-spacing:-.015em;color:var(--text);white-space:nowrap}
.brand__by{display:flex;align-items:center;gap:6px;font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);white-space:nowrap}
.brand__by img{height:13px;width:auto;display:block}

.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav > .nav__link{
  text-decoration:none;color:var(--text);font-size:.95rem;font-weight:500;
  padding:9px 14px;border-radius:999px;transition:background .18s ease;
  white-space:nowrap;
}
.nav > .nav__link:hover{background:rgba(17,41,68,.07)}
.nav > .nav__link[aria-current="page"]{background:rgba(17,41,68,.08);font-weight:600}
.nav__cta{margin-left:12px}

.burger{
  display:none;margin-left:auto;background:none;border:1px solid var(--line-strong);
  border-radius:999px;padding:9px 16px;font:inherit;font-size:.9rem;font-weight:600;
  color:var(--text);cursor:pointer;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--sans);font-size:1rem;font-weight:600;
  text-decoration:none;cursor:pointer;border:1px solid transparent;
  padding:15px 28px;border-radius:999px;line-height:1;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--ink-deep);color:var(--cream);box-shadow:0 2px 0 rgba(10,26,43,.18)}
.btn--primary:hover{background:#06121f;box-shadow:0 10px 26px rgba(10,26,43,.26);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--text);border-color:var(--line-strong)}
.btn--ghost:hover{background:rgba(17,41,68,.06);border-color:var(--text)}
.btn--onink{background:var(--cream);color:var(--ink-deep)}
.btn--onink:hover{background:#fff;transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.26)}
.btn--onink-ghost{background:transparent;color:var(--on-ink);border-color:rgba(250,240,227,.34)}
.btn--onink-ghost:hover{background:rgba(250,240,227,.1);border-color:var(--on-ink)}
.btn--sm{padding:11px 20px;font-size:.92rem}
.btn .ar{transition:transform .18s ease}
.btn:hover .ar{transform:translateX(3px)}

.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

.tlink{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;
  font-weight:600;font-size:1rem;color:var(--text);
  text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:7px;
  text-decoration-color:var(--line-strong);
  transition:text-decoration-color .18s ease,gap .18s ease;
}
.tlink:hover{text-decoration-color:var(--text);gap:12px}
.sect--ink .tlink{color:var(--on-ink);text-decoration-color:rgba(250,240,227,.4)}
.sect--ink .tlink:hover{text-decoration-color:var(--on-ink)}

/* ---------- hero ---------- */
.hero{padding:clamp(48px,7vw,88px) 0 clamp(60px,8vw,110px);position:relative;overflow:hidden}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:clamp(28px,5vw,56px);align-items:center}
.hero h1{margin-bottom:26px}
.hero .lede{margin-bottom:34px;max-width:44ch}
.hero__art{position:relative}
.hero__art svg{display:block;width:100%;height:auto}
/* the art bleeds past the container to the viewport edge on wide screens */
@media (min-width:1181px){
  .hero__art{margin-right:calc((100vw - var(--wrap)) / -2 - var(--gut));width:calc(100% + (100vw - var(--wrap)) / 2 + var(--gut))}
}

/* page-top band for interior pages */
.phead{padding:clamp(46px,6vw,78px) 0 clamp(34px,4vw,54px)}
.phead h1{margin-bottom:22px;max-width:18ch}
.phead .lede{max-width:56ch}
.phead .cta-row{margin-top:32px}

/* links inside the flow diagram */
.flow-link text{cursor:pointer;opacity:.82;transition:opacity .16s ease,fill .16s ease}
.flow-link:hover text,.flow-link:focus-visible text{opacity:1;fill:var(--coral-deep);text-decoration:underline}
.flow-link:focus-visible{outline:2.5px solid var(--ink);outline-offset:2px;border-radius:3px}

/* the target section lifts briefly when arrived at from the diagram */
.pillar:target{position:relative}
.pillar:target::after{content:"";position:absolute;left:0;right:0;top:-2px;height:2px;background:var(--coral-deep);border-radius:2px}
@media (prefers-reduced-motion:no-preference){
  .pillar:target h3{animation:tgt 1.6s ease}
}
@keyframes tgt{0%,100%{color:var(--text)}22%{color:var(--coral-deep)}}

/* keep an anchored section clear of the sticky header */
[id]{scroll-margin-top:98px}

/* ---------- zigzag feature rows ---------- */
.zig{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,6vw,80px);align-items:center}
.zig + .zig{margin-top:clamp(64px,9vw,130px)}
.zig__art{position:relative}
.zig__art svg{display:block;width:100%;height:auto;border-radius:var(--r-lg)}
.zig:nth-child(even) .zig__art{order:-1}
.zig__body h2{margin-bottom:20px}
.zig__body .lede{margin-bottom:26px;max-width:46ch}

.fig{margin:0}
.fig figcaption{margin-top:18px;font-size:.95rem;line-height:1.55;color:var(--text-soft);max-width:52ch}
.sect--ink .fig figcaption{color:var(--on-ink-soft)}

/* linked legend for the flow diagram, the tappable path on a phone */
.flow-legend{margin-top:26px}
.flow-legend__h{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin:0 0 14px}
.flow-legend ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px}
.flow-legend a{
  display:inline-flex;align-items:center;gap:9px;min-height:44px;
  padding:9px 16px;border:1px solid var(--line-strong);border-radius:999px;
  text-decoration:none;font-size:.94rem;font-weight:500;color:var(--text);
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.flow-legend a:hover{background:rgba(17,41,68,.055);border-color:var(--text);transform:translateY(-1px)}
.flow-legend .dot{width:9px;height:9px;border-radius:50%;flex:none}
.sect--ink .flow-legend a{color:var(--on-ink);border-color:rgba(250,240,227,.3)}
.sect--ink .flow-legend a:hover{background:rgba(250,240,227,.09);border-color:var(--on-ink)}

/* on a phone the in-diagram labels are too small to be a tap target, so the
   legend above is the control and the drawing is left as a drawing */
@media (max-width:760px){
  .flow-link{pointer-events:none}
  .flow-link text{text-decoration:none}
}

/* ---------- benefit trio ---------- */
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,34px)}
.ben{display:flex;flex-direction:column}
.ben__art{border-radius:var(--r);overflow:hidden;margin-bottom:24px;background:var(--shell)}
.ben__art svg{display:block;width:100%;height:auto}
.ben h3{margin-bottom:10px;font-size:clamp(1.2rem,1.7vw,1.4rem)}
.ben p{color:var(--text-soft);margin:0;font-size:1rem}

/* ---------- pillars (why) ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3.4vw,44px)}
.pillar{padding-top:26px;border-top:2px solid var(--ink)}
.pillar h3{margin-bottom:12px;font-size:1.32rem}
.pillar p{color:var(--text-soft);margin:0;font-size:1rem}
.sect--ink .pillar{border-top-color:rgba(250,240,227,.55)}
.sect--ink .pillar p{color:var(--on-ink-soft)}

/* ---------- social proof ---------- */
.proof__stat{font-family:var(--serif);font-weight:500;font-size:clamp(2.4rem,5.4vw,3.9rem);line-height:1.04;letter-spacing:-.02em;margin:0 0 22px}
.quote{margin:0}
.quote blockquote{
  margin:0 0 22px;font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.22rem,2.2vw,1.6rem);line-height:1.46;
}
.quote figcaption{font-size:.96rem;line-height:1.5}
.quote .who{font-weight:600;display:block}
.quote .role{color:var(--text-soft)}
.sect--ink .quote .role{color:var(--on-ink-soft)}

/* ---------- logo band ---------- */
.band{padding:clamp(40px,5vw,62px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band__cap{text-align:center;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin-bottom:30px}
.band__mask{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.band__track{display:flex;gap:56px;width:max-content;align-items:center;animation:bandscroll 58s linear infinite}
.band:hover .band__track{animation-play-state:paused}
.band__track img{height:38px;width:auto;opacity:.92;filter:saturate(.82);transition:opacity .2s ease,filter .2s ease}
.band__track img:hover{opacity:1;filter:none}
@keyframes bandscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- FAQ ---------- */
.faq{max-width:840px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;padding:26px 48px 26px 0;position:relative;
  font-family:var(--serif);font-size:clamp(1.1rem,1.7vw,1.32rem);font-weight:500;line-height:1.32;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:8px;top:50%;width:13px;height:13px;
  border-right:2px solid var(--text);border-bottom:2px solid var(--text);
  transform:translateY(-70%) rotate(45deg);transition:transform .22s ease;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq summary:hover{color:var(--coral-deep)}
.faq__a{padding:0 60px 28px 0;color:var(--text-soft);font-size:1.03rem;margin:0}
.faq__a p{margin:0 0 .9em}

/* ---------- article cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,3vw,34px)}
.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{
  position:relative;display:flex;flex-direction:column;
  background:var(--shell);border:1px solid var(--line);border-radius:var(--r);
  padding:30px 28px 32px;transition:transform .2s ease,box-shadow .2s ease;
}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(17,41,68,.1)}
.card__tag{font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);margin-bottom:16px}
.card h3{font-size:1.24rem;line-height:1.26;margin-bottom:12px}
.card p{color:var(--text-soft);font-size:.99rem;margin:0}
.card__go{margin-top:22px;font-weight:600;font-size:.95rem;display:inline-flex;gap:7px;align-items:center}
.card a.stretch::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.card a.stretch{text-decoration:none}

/* accent hairline on top of cards, cycling */
.card::before{content:"";position:absolute;left:28px;right:28px;top:-1px;height:2px;border-radius:2px;background:var(--blue)}
.card:nth-child(3n+1)::before{background:var(--coral)}
.card:nth-child(3n+2)::before{background:var(--gold)}
.card:nth-child(3n+3)::before{background:var(--sage)}

/* ---------- prose (articles, legal) ---------- */
.prose{max-width:68ch;font-size:1.08rem;line-height:1.72}
.prose h2{margin:2em 0 .6em;font-size:clamp(1.5rem,2.6vw,2rem)}
.prose h3{margin:1.8em 0 .5em;font-size:1.26rem}
.prose p{margin:0 0 1.15em}
.prose ul,.prose ol{margin:0 0 1.3em;padding-left:1.25em}
.prose li{margin:0 0 .55em}
.prose li::marker{color:var(--coral-deep)}
.prose strong{font-weight:600}
.prose blockquote{
  margin:1.8em 0;padding:4px 0 4px 26px;border-left:3px solid var(--coral);
  font-family:var(--serif);font-style:italic;font-size:1.2rem;line-height:1.5;color:var(--text);
}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
.meta{font-size:.9rem;color:var(--text-soft);margin-bottom:34px}
.meta span + span::before{content:"·";margin:0 9px;opacity:.6}

/* ---------- forms ---------- */
.form{display:grid;gap:18px;max-width:560px}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field label{display:block;font-size:.88rem;font-weight:600;margin-bottom:7px}
.field input,.field textarea,.field select{
  width:100%;font:inherit;font-size:1rem;color:var(--text);
  background:var(--shell);border:1px solid var(--line-strong);border-radius:10px;
  padding:13px 15px;transition:border-color .18s ease,box-shadow .18s ease;
}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(17,41,68,.12);
}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:.93rem;color:var(--text-soft)}
.consent input{margin-top:4px;flex:none;width:17px;height:17px;accent-color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__note{font-size:.88rem;color:var(--text-soft);margin:0}
.note-ok{background:var(--shell);border:1px solid var(--line-strong);border-left:3px solid var(--sage);border-radius:10px;padding:20px 22px}

/* ---------- contact detail list ---------- */
.deets{display:grid;gap:26px}
.deet__k{font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px}
.deet__v{font-size:1.06rem}
.deet__v a{font-weight:600}

/* ---------- footer ---------- */
.ftr{background:var(--ink);color:var(--on-ink);padding:clamp(56px,7vw,84px) 0 32px}
.sect--ink + .ftr{padding-top:clamp(18px,3vw,34px)}
.sect--ink:last-of-type{padding-bottom:clamp(50px,6vw,78px)}
.ftr a{color:var(--on-ink);text-decoration:none}
.ftr a:hover{text-decoration:underline;text-underline-offset:3px}
.ftr__top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(28px,5vw,60px);padding-bottom:44px;border-bottom:1px solid rgba(250,240,227,.17)}
.ftr__name{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:1.5rem;font-weight:600;margin:0 0 14px;letter-spacing:-.015em}
.ftr__mark{width:44px;height:44px;border-radius:50%;flex:none;box-shadow:0 0 0 1px rgba(250,240,227,.18)}
.ftr__tag{color:var(--on-ink-soft);max-width:34ch;margin:0 0 18px;font-size:1rem}
.ftr__by{display:flex;align-items:center;gap:12px;font-size:.72rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--on-ink-soft);margin:0}
.ftr__by img{height:44px;width:auto;display:block}
.ftr__h{font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--on-ink-soft);margin:0 0 16px}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:.98rem}
.ftr__btm{display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:space-between;padding-top:26px;font-size:.87rem;color:var(--on-ink-soft)}
.ftr__legal{display:flex;flex-wrap:wrap;gap:10px 22px}

/* ---------- misc ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--cream);padding:12px 20px;z-index:200;border-radius:0 0 8px 0}
.skip:focus{left:0}
:focus-visible{outline:2.5px solid var(--ink);outline-offset:3px;border-radius:4px}
.sect--ink :focus-visible,.ftr :focus-visible{outline-color:var(--cream)}
.center{text-align:center}
.center .lede{margin-left:auto;margin-right:auto}
.center .cta-row{justify-content:center}
.mb0{margin-bottom:0}
.sect-head{margin-bottom:clamp(40px,5vw,66px);max-width:640px}
.sect-head.center{max-width:780px;margin-left:auto;margin-right:auto}
.sect-head.center .lede{max-width:58ch;margin-left:auto;margin-right:auto}
.sect-head.center{margin-left:auto;margin-right:auto}
.sect-head h2{margin-bottom:18px}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .hero__grid,.zig{grid-template-columns:1fr}
  .zig:nth-child(even) .zig__art{order:0}
  .hero__art,.zig__art{max-width:600px}
  .trio,.pillars,.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ftr__top{grid-template-columns:1fr 1fr}
  .ftr__brand{grid-column:1 / -1}
}
@media (max-width:760px){
  .trio,.pillars,.cards,.cards--2,.f2{grid-template-columns:1fr}
  body{font-size:16.5px}
  .faq summary{padding-right:40px}
  .faq__a{padding-right:20px}
}
@media (max-width:560px){
  .ftr__top{grid-template-columns:1fr}
  .cta-row .btn{width:100%;justify-content:center}
}

@media (prefers-reduced-motion:reduce){
  /* everything stops, except a solution animation under the player, which starts paused and
     moves only when the visitor asks it to */
  :not(.is-ctl *),:not(.is-ctl *)::before,:not(.is-ctl *)::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .band__track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;gap:30px 48px}
}

@media print{
  .hdr,.band,.ftr__btm{display:none}
  body{background:#fff}
}

/* =====================================================================
   Additions for the defensible build: dropdown, trust surfaces, proof
   strip, approach steps, credential cards, integration chips, report.
   ===================================================================== */

/* ---------- header panels ----------
   Each panel spans the header and opens onto what stands behind its label.
   Desktop: hover with intent or click. Mobile: accordion inside the drawer. */
.mm{position:static}
.mm__top{
  display:inline-flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;
  font:inherit;font-size:.95rem;font-weight:500;color:var(--text);
  padding:9px 14px;border-radius:999px;white-space:nowrap;transition:background .18s ease;
}
.mm__top:hover,.mm.is-open .mm__top{background:rgba(17,41,68,.07)}
.mm__top.is-here{background:rgba(17,41,68,.08);font-weight:600}
.mm__chev{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:translateY(-2px) rotate(45deg);opacity:.55;transition:transform .2s ease}
.mm.is-open .mm__chev{transform:translateY(1px) rotate(-135deg)}
.mm__panel{
  position:absolute;left:0;right:0;top:100%;
  background:var(--shell);border-top:1px solid var(--line);border-bottom:1px solid var(--line-strong);
  box-shadow:0 34px 60px -20px rgba(17,41,68,.22);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s;z-index:80;
}
.mm.is-open .mm__panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.mm__in{padding-top:30px;padding-bottom:0}
.mm__grid{display:grid;gap:44px;align-items:start}
.mm__grid--how{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.mm__grid--stories,.mm__grid--trust{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.mm__h{font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);margin:0 0 14px}
.mm__list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.mm__list--2{grid-template-columns:1fr 1fr;gap:4px 18px}
.nav .mm__item{display:flex;gap:14px;align-items:flex-start;white-space:normal;padding:12px 14px;border-radius:14px;
  text-decoration:none;color:var(--text);transition:background .15s ease}
.nav .mm__item:hover,.nav .mm__item:focus-visible{background:rgba(17,41,68,.055)}
.nav .mm__item[aria-current="page"]{background:rgba(17,41,68,.07)}
.mm__dot{flex:none;width:10px;height:28px;border-radius:6px;margin-top:2px}
.mm__dot--coral{background:var(--coral)}.mm__dot--gold{background:var(--gold)}
.mm__dot--sage{background:var(--sage)}.mm__dot--blue{background:var(--blue)}
.mm__t{display:block;font-weight:600;font-size:.97rem;line-height:1.3;color:var(--text)}
.mm__d{display:block;font-size:.86rem;line-height:1.45;color:var(--text-soft);margin-top:3px;font-weight:400}
.mm__feature{border-left:1px solid var(--line);padding-left:36px}
.nav .mm__card{display:block;white-space:normal;padding:18px 20px;border-radius:16px;background:var(--cream);
  border:1px solid var(--line);text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .15s ease}
.nav .mm__card:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.mm__card-t{display:block;font-family:var(--serif);font-size:1.22rem;font-weight:500;line-height:1.25}
.nav .mm__link{display:block;white-space:normal;padding:12px 2px;font-size:.92rem;font-weight:600;color:var(--text);
  text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px;border-radius:0}
.nav .mm__link:hover{text-decoration-color:var(--text);background:none}
.mm__note{font-size:.83rem;color:var(--text-soft);margin:10px 0 0;line-height:1.5}
.mm__stories{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.nav .mm__story{display:block;white-space:normal;padding:20px 22px;border-radius:16px;background:var(--cream);
  border:1px solid var(--line);text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .15s ease}
.nav .mm__story:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.mm__stat{display:block;font-family:var(--serif);font-size:2.3rem;line-height:1;font-weight:500;margin-bottom:12px;letter-spacing:-.01em}
.mm__laws{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mm__law{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:14px 14px 12px;position:relative;overflow:hidden}
.mm__law::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--coral)}
.mm__law:nth-child(2)::before{background:var(--gold)}.mm__law:nth-child(3)::before{background:var(--sage)}.mm__law:nth-child(4)::before{background:var(--blue)}
.mm__law-k{display:block;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft)}
.mm__law-n{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:500;margin:6px 0 4px}
.mm__law-s{display:block;font-size:.8rem;font-weight:600}
.mm__law-s::before{content:"\2713\00a0"}
.mm__promise{margin:18px 0 0;font-size:.95rem;line-height:1.55;max-width:520px}
.mm__foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;
  padding:16px 0 18px;border-top:1px solid var(--line);font-size:.9rem;color:var(--text-soft)}
.nav .mm__foot-cta{font-weight:700;color:var(--text);text-decoration:underline;text-underline-offset:4px;padding:10px 0;white-space:nowrap}
.nav .mm__foot-cta:hover{background:none}
.hdr.has-panel{background:var(--shell);border-bottom-color:var(--line)}

/* drawer: below 981px the header becomes a full-height menu with accordions */
@media (max-width:980px){
  .nav{display:none}
  .burger{display:inline-block}
  html.nav-open{overflow:hidden}
  /* a backdrop filter makes the header the containing block for fixed children */
  html.nav-open .hdr{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--cream)}
  .nav.is-open{
    display:flex;flex-direction:column;align-items:stretch;gap:2px;
    position:fixed;top:76px;left:0;right:0;bottom:0;overflow-y:auto;overscroll-behavior:contain;
    background:var(--cream);border-top:1px solid var(--line);
    padding:14px var(--gut) 32px;
  }
  .nav.is-open .nav__link,.nav.is-open .mm__top{display:flex;width:100%;justify-content:space-between;
    padding:15px 12px;border-radius:12px;font-size:1.06rem;min-height:48px}
  .nav.is-open .nav__cta{margin:16px 0 0;justify-content:center;padding:16px 24px}
  .mm__panel{position:static;box-shadow:none;border:0;background:transparent;transform:none;
    display:none;opacity:1;visibility:visible;transition:none}
  .mm.is-open .mm__panel{display:block}
  .mm__in{padding:0 0 10px 10px}
  .mm__grid,.mm__grid--how,.mm__grid--stories,.mm__grid--trust{grid-template-columns:1fr;gap:16px}
  .mm__list--2,.mm__stories{grid-template-columns:1fr}
  .mm__feature{border-left:0;padding-left:0}
  .mm__laws{grid-template-columns:1fr 1fr}
  .mm__card,.mm__note,.mm__promise,.mm__foot{display:none}
  .nav .mm__story{padding:14px 16px;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center}
  .mm__stat{font-size:1.5rem;margin:0;grid-row:span 2}
  .nav .mm__item{padding:11px 12px;min-height:44px}
  .nav .mm__link{padding:12px 12px;min-height:44px}
  .mm__h{margin:8px 0 6px 12px}
  .hdr.has-panel{background:rgba(250,240,227,.86)}
}
@media (min-width:981px) and (max-width:1400px){
  .nav .nav__link,.mm__top{padding:9px 9px;font-size:.9rem}
  .mm__top{gap:5px}
  .hdr__in{gap:16px}
}
@media (min-width:981px) and (max-width:1100px){
  .nav .nav__link,.mm__top{padding:8px 6px;font-size:.86rem}
  .mm__chev{display:none}
  .hdr__in{gap:12px}
  .hdr .btn{padding-left:14px;padding-right:14px}
}

/* ---------- sitewide trust strip (top of footer) ---------- */
.ftr__trust{padding:26px 26px 24px;margin:0 0 50px;border-radius:18px;
  border:1px solid rgba(250,240,227,.16);background:rgba(250,240,227,.04)}
.ftr__trust-top{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;align-items:baseline;margin-bottom:18px}
.ftr__trust-k{font-family:var(--serif);font-size:1.18rem;color:var(--on-ink)}
.ftr__trust-go{font-weight:600;font-size:.94rem;color:var(--gold);white-space:nowrap}

/* ---------- credential marks ----------
   Our own typographic marks in the brand palette. Deliberately unlike any
   official seal; each carries its status line, so nothing reads as a
   certificate we do not hold. Text on the tile is ink on shell, so the
   accent appears only as the band. */
.marks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,18px)}
.mark{
  position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:10px;
  min-height:150px;padding:22px 20px 18px;border-radius:16px;overflow:hidden;
  background:var(--shell);color:var(--text);
  box-shadow:0 1px 0 rgba(17,41,68,.06),0 10px 28px rgba(8,20,36,.18);
}
.mark::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--blue)}
.mark--coral::before{background:var(--coral)}
.mark--gold::before{background:var(--gold)}
.mark--sage::before{background:var(--sage)}
.mark::after{ /* a single ribbon stroke, the brand signature, faint in the corner */
  content:"";position:absolute;right:-30px;bottom:-34px;width:120px;height:90px;border-radius:50%;
  border:10px solid var(--blue);opacity:.13;transform:rotate(-18deg)}
.mark--coral::after{border-color:var(--coral)}
.mark--gold::after{border-color:var(--gold)}
.mark--sage::after{border-color:var(--sage)}
.mark__j{font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft)}
.mark__n{font-family:var(--serif);font-weight:500;font-size:clamp(1.45rem,2.1vw,1.85rem);line-height:1.08;letter-spacing:-.01em}
.mark__s{display:flex;gap:7px;align-items:flex-start;font-size:.82rem;font-weight:600;line-height:1.35;color:var(--text)}
.mark__s svg{flex:none;width:14px;height:14px;margin-top:1px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  background:rgba(136,191,183,.45);border-radius:50%;padding:1px}
.sect--ink .mark{box-shadow:0 14px 34px rgba(0,0,0,.28)}

/* compact row for the footer of every page */
.marks--compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.marks--compact .mark{min-height:0;padding:14px 12px 12px;border-radius:11px;gap:6px;box-shadow:none}
.marks--compact .mark::before{height:4px}
.marks--compact .mark::after{display:none}
.marks--compact .mark__j{font-size:.6rem;letter-spacing:.12em}
.marks--compact .mark__n{font-size:1.02rem}
.marks--compact .mark__s{font-size:.7rem;font-weight:600}
.marks--compact .mark__s svg{width:11px;height:11px}

/* on the Trust Center the marks are the hero art */
.trust-hero .marks{grid-template-columns:repeat(2,minmax(0,1fr))}
.trust-hero .mark{min-height:132px}


@media (max-width:980px){.marks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.marks--compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mark{min-height:128px;padding:18px 16px 14px}}

/* a proof figure inside a card keeps full ink, not the card's soft body colour */
.card .proof__stat{color:var(--text)}

/* the footer now has four columns */
.ftr__top{grid-template-columns:1.4fr 1fr 1fr 1fr}
@media (max-width:980px){.ftr__top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ftr__top{grid-template-columns:1fr 1fr;column-gap:20px}.ftr__top > div:last-child{grid-column:1 / -1}.ftr ul{font-size:.93rem}}

/* ---------- hero compliance microline ---------- */
.hero__trust{margin-top:26px;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.84rem;color:var(--text-soft)}
.hero__trust span{display:inline-flex;align-items:center;gap:8px}
.hero__trust span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px rgba(136,191,183,.28)}

/* ---------- proof strip ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.stat{padding:8px 28px 8px 0;border-right:1px solid var(--line)}
.stat + .stat{padding-left:28px}
.stat:last-child{border-right:0}
.stat__n{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,4.4vw,3.3rem);line-height:1;letter-spacing:-.02em;margin:0 0 12px}
.stat__l{font-size:.97rem;line-height:1.45;margin:0 0 6px;color:var(--text)}
.stat__s{font-size:.82rem;color:var(--text-soft);margin:0}
@media (max-width:860px){
  .stats{grid-template-columns:1fr 1fr;gap:30px 0}
  .stat:nth-child(2n){border-right:0}
  .stat:nth-child(2n+1){padding-left:0}
}

/* ---------- the approach, four steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.6vw,30px);counter-reset:step}
.step{position:relative;padding:26px 24px 28px;border-radius:var(--r);background:var(--shell);border:1px solid var(--line)}
.step__n{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--text-soft);margin:0 0 14px}
.step h3{font-size:1.3rem;margin:0 0 10px}
.step p{font-size:.98rem;color:var(--text-soft);margin:0}
.step::after{content:"";position:absolute;left:24px;right:24px;top:-1px;height:2px;border-radius:2px;background:var(--coral)}
.step:nth-child(2)::after{background:var(--gold)}
.step:nth-child(3)::after{background:var(--sage)}
.step:nth-child(4)::after{background:var(--blue)}
.steps__note{margin-top:28px;font-size:1.02rem}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- credential cards ---------- */
.creds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,24px)}
.cred{
  position:relative;display:grid;grid-template-columns:62px 1fr;gap:16px;align-items:start;
  padding:22px 22px 24px;border-radius:var(--r);background:var(--shell);border:1px solid var(--line);
}
.sect--ink .cred{background:rgba(250,240,227,.045);border-color:rgba(250,240,227,.16)}
.cred__seal{
  width:62px;height:62px;border-radius:50%;display:grid;place-items:center;text-align:center;
  background:var(--ink);color:var(--cream);box-shadow:inset 0 0 0 2px var(--ink),inset 0 0 0 4px var(--gold);
  font-family:var(--sans);font-weight:700;font-size:.66rem;letter-spacing:.04em;line-height:1.1;padding:6px;
}
.sect--ink .cred__seal{background:var(--cream);color:var(--ink);box-shadow:inset 0 0 0 2px var(--cream),inset 0 0 0 4px var(--gold)}
.cred__j{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin:2px 0 5px}
.cred h3{font-family:var(--sans);font-size:1.02rem;font-weight:700;line-height:1.3;margin:0 0 6px;letter-spacing:0}
.cred p{font-size:.92rem;line-height:1.5;color:var(--text-soft);margin:0}
.cred__st{display:inline-block;margin-top:10px;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.cred__st::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sage);margin-right:8px;transform:translateY(-1px)}
.sect--ink .cred h3{color:var(--on-ink)}
.sect--ink .cred p,.sect--ink .cred__j{color:var(--on-ink-soft)}
.sect--ink .cred__st{color:var(--on-ink)}
@media (max-width:980px){.creds{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.creds{grid-template-columns:1fr}}

/* ---------- commitments row ---------- */
.commits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.commit{padding:26px 26px 26px 0;border-bottom:1px solid var(--line)}
.commit:nth-child(3n+2),.commit:nth-child(3n+3){padding-left:26px;border-left:1px solid var(--line)}
.commit h3{font-size:1.18rem;margin:0 0 8px}
.commit p{font-size:.96rem;color:var(--text-soft);margin:0}
.sect--ink .commits,.sect--ink .commit{border-color:rgba(250,240,227,.16)}
.sect--ink .commit p{color:var(--on-ink-soft)}
@media (max-width:860px){
  .commits{grid-template-columns:1fr}
  .commit:nth-child(3n+2),.commit:nth-child(3n+3){padding-left:0;border-left:0}
}

/* ---------- integration chips ---------- */
.works{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:22px}
.works__k{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin-right:6px}
.chip{display:inline-flex;align-items:center;min-height:38px;padding:8px 15px;border-radius:999px;
  background:var(--shell);border:1px solid var(--line-strong);font-size:.9rem;font-weight:600;color:var(--text)}

/* ---------- specs list (Infoway) ---------- */
.specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 34px;margin:0;padding:0;list-style:none}
.specs li{padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;gap:16px;font-size:.96rem}
.specs b{font-weight:700}
.specs span{color:var(--text-soft)}
@media (max-width:760px){.specs{grid-template-columns:1fr}.specs li{grid-template-columns:1fr;gap:3px}}

/* ---------- sample care plan report (product visual) ---------- */
.rpt{position:relative;border-radius:20px;background:#fff;border:1px solid var(--line-strong);
  box-shadow:0 40px 80px -30px rgba(17,41,68,.35),0 8px 20px rgba(17,41,68,.06);overflow:hidden;font-size:14px}
.rpt__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--ink);color:var(--cream)}
.rpt__brand{font-family:var(--serif);font-size:1.02rem}
.rpt__tag{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.rpt__head{display:grid;grid-template-columns:1fr auto;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}
.rpt__who{font-weight:700;font-size:1rem}
.rpt__meta{font-size:.8rem;color:var(--text-soft);margin-top:2px}
.rpt__sum{display:flex;gap:16px;text-align:right}
.rpt__sum div{font-size:.72rem;color:var(--text-soft);line-height:1.25}
.rpt__sum b{display:block;font-family:var(--serif);font-size:1.4rem;color:var(--text);font-weight:500}
.rpt__sec{padding:12px 20px 4px;font-size:.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft)}
.rpt__row{display:grid;grid-template-columns:14px 1fr auto 74px;gap:12px;align-items:center;padding:10px 20px;border-top:1px solid rgba(17,41,68,.07)}
.rpt__dot{width:9px;height:9px;border-radius:50%;background:var(--coral-deep)}
.rpt__dot--w{background:var(--gold)}
.rpt__m{font-weight:600}
.rpt__ctx{display:block;font-size:.76rem;color:var(--text-soft);font-weight:400;margin-top:1px}
.rpt__v{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.rpt__spark{width:74px;height:24px}
.rpt__foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;padding:14px 20px;background:var(--sand);font-size:.82rem}
.rpt__sign{display:inline-flex;align-items:center;gap:9px;font-weight:600}
.rpt__sign::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(252,191,83,.3)}
.rpt__note{color:var(--text-soft)}
.rpt-cap{margin-top:14px;font-size:.84rem;color:var(--text-soft)}
@media (max-width:520px){
  .rpt__head{grid-template-columns:1fr}.rpt__sum{text-align:left}
  .rpt__row{grid-template-columns:12px 1fr auto}.rpt__spark{display:none}
}

/* ---------- solution page helpers ---------- */
.anim-block{margin-top:8px}
.sol-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sol-next a{display:block;padding:18px 20px;border-radius:14px;border:1px solid var(--line);background:var(--shell);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.sol-next a:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(17,41,68,.09)}
.sol-next b{display:block;font-size:1rem;margin-bottom:4px}
.sol-next span{font-size:.88rem;color:var(--text-soft)}
@media (max-width:860px){.sol-next{grid-template-columns:1fr}}

/* the art slot: a generated illustration replaces the ribbon fan when present */
.art-img{display:block;width:100%;height:auto}
.tlist{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:9px}
.tlist li{position:relative;padding-left:22px;font-size:.95rem;line-height:1.5;color:var(--text-soft)}
.tlist li::before{content:"";position:absolute;left:2px;top:.52em;width:10px;height:6px;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(-45deg)}
@media (max-width:860px){.creds[style*="repeat(2"]{grid-template-columns:1fr!important}}


/* ---------- generated illustrations ----------
   Painted art arrives on a cream ground that may not match the page exactly.
   A soft mask dissolves the edges that meet open page, as the vector art does. */
.art-img{display:block;width:100%;height:auto}
.hero__art .art-img{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%),linear-gradient(0deg,transparent 0,#000 12%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 14%),linear-gradient(0deg,transparent 0,#000 12%);
  mask-composite:intersect}
.ben__art .art-img{aspect-ratio:22/15;object-fit:cover}


/* ---------- painted video behind a page header ----------
   The clip sits behind the right of the header and dissolves leftward into the
   cream, so the headline always reads on clean ground. Below 980px it drops
   under the copy as a plain 16:9 block. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero--media{position:relative;overflow:hidden;isolation:isolate}
.hero--media .hero__grid{grid-template-columns:minmax(0,1fr)}
.hero--media .hero__copy{max-width:540px;position:relative;z-index:2}
.hmedia{position:absolute;top:0;right:0;bottom:0;width:min(64vw,1100px);z-index:0}
.hmedia::before{ /* the still, visible until the clip plays and for anyone who asked for less motion */
  content:"";position:absolute;inset:0;background:var(--poster) var(--focus,68% 42%)/cover no-repeat}
/* the still and the clip share one focal point, so pausing or reduced motion never shifts the picture */
.hmedia__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,68% 42%);
  opacity:0;transition:opacity .9s ease}
.hmedia.is-playing .hmedia__v{opacity:1}
.hmedia::before,.hmedia__v{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 14%,#000 46%);
          mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 14%,#000 46%)}
.hmedia__pause{
  position:absolute;right:18px;bottom:18px;z-index:3;display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line-strong);
  background:rgba(250,240,227,.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  font:inherit;font-size:.82rem;font-weight:600;color:var(--text);cursor:pointer;opacity:0;
  transition:opacity .3s ease}
.hmedia.is-playing .hmedia__pause,.hmedia.is-paused .hmedia__pause{opacity:1}
.hmedia__ico{width:10px;height:12px;border-left:3px solid var(--ink);border-right:3px solid var(--ink)}
.hmedia.is-paused .hmedia__ico{width:0;height:0;border:0;border-left:10px solid var(--ink);
  border-top:6px solid transparent;border-bottom:6px solid transparent}
.hero--media{min-height:min(760px,86vh)}
.phead.hero--media{min-height:min(620px,78vh);display:flex;align-items:center}
.phead.hero--media > .wrap{width:100%}
@media (max-width:980px){
  .hero--media,.phead.hero--media{min-height:0;display:flex;flex-direction:column;align-items:stretch}
  .hmedia{position:relative;width:auto;aspect-ratio:16/9;margin:0 var(--gut) 8px;order:2;border-radius:var(--r-lg);overflow:hidden}
  .hero--media{display:flex;flex-direction:column}
  .hero--media > .wrap{order:1}
  .hmedia::before,.hmedia__v{-webkit-mask-image:none;mask-image:none}
  .hero--media .hero__copy{max-width:none}
}

@media (max-width:980px){
  .hmedia__pause{right:12px;bottom:12px;width:44px;padding:0;justify-content:center}
  .hmedia__lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
}

/* ---------- why: the problem and the alternatives ---------- */
#problem .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.src{font-size:.85rem;color:var(--text-soft);margin:26px 0 0;max-width:760px;line-height:1.55}
.src a{color:var(--text)}
.alts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.alt{background:var(--shell);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 22px;position:relative}
.alt h3{font-family:var(--sans);font-size:1rem;font-weight:700;margin:0 0 10px;letter-spacing:0}
.alt p{font-size:.93rem;line-height:1.55;margin:0;color:var(--text-soft)}
.alt--us{background:var(--ink);border-color:var(--ink)}
.alt--us h3{color:var(--gold)}
.alt--us p{color:var(--on-ink)}
@media (max-width:1080px){.alts{grid-template-columns:1fr 1fr}.alt--us{grid-column:1 / -1}}
@media (max-width:620px){.alts{grid-template-columns:1fr}}
@media (max-width:620px){#problem .stats{grid-template-columns:1fr}#problem .stat{border-right:0;padding-left:0;padding-bottom:18px;border-bottom:1px solid var(--line)}}

/* ---------- partner stories ---------- */
.pfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:44px;border-top:1px solid var(--line)}
.pfact{padding:18px 22px 0 0}
.pfact + .pfact{padding-left:22px;border-left:1px solid var(--line)}
.pfact__k{display:block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft)}
.pfact__v{display:block;font-size:1rem;font-weight:600;margin-top:6px}
.pcard__logo{display:block;height:40px;width:auto;max-width:180px;object-fit:contain;margin-bottom:18px}
.pcard__logo--word{font-family:var(--serif);font-size:1.3rem;height:auto}
@media (max-width:760px){.pfacts{grid-template-columns:1fr 1fr}.pfact:nth-child(3){border-left:0;padding-left:0}}

/* ---------- PulseAI assistant (Voiceflow) ---------- */
/* stays out of the way while the phone menu is open */
html.nav-open #voiceflow-chat{display:none!important}

/* ---------- touch and narrow-phone fit ---------- */
@media (max-width:980px){
  /* every footer link is a full 44px target on touch screens */
  .ftr ul{gap:0}
  .ftr ul a,.ftr__legal a,.ftr__trust-go{display:inline-flex;align-items:center;min-height:44px}
  .ftr__legal{gap:0 22px}
}
@media (max-width:374px){
  .hdr__in{gap:12px}
  .brand{gap:8px}
  .brand__mark{width:34px;height:34px}
  .brand__name{font-size:1.06rem}
  .brand__by{font-size:.6rem;gap:5px}
  .brand__by img{height:11px}
  .burger{padding:9px 13px}
}

/* ---------- large screens: scale up so 1920 and 2560 displays don't read small ---------- */
@media (min-width:1700px){
  .hero--media .hero__copy{max-width:640px}
  .hero--media{min-height:min(860px,86vh);display:flex;align-items:center}
  .hero--media > .wrap{width:100%}
  html{font-size:112.5%}
  body{font-size:18.5px}
  :root{--wrap:1340px}
}
@media (min-width:2300px){
  .hero--media .hero__copy{max-width:760px}
  .hero--media{min-height:min(1040px,86vh)}
  html{font-size:125%}
  body{font-size:20.5px}
  :root{--wrap:1560px}
  .hdr__in{height:88px}
  .brand__mark{width:48px;height:48px}
}

/* closing painting: her coat runs off the bottom of the frame, so it dissolves into the cream */
.closing-art .art-img{-webkit-mask-image:linear-gradient(0deg,transparent 0,#000 16%);mask-image:linear-gradient(0deg,transparent 0,#000 16%)}

/* ---------- company pages ---------- */
.founder{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.founder__ph{margin:0}
.founder__body h2{margin:10px 0 6px}
.founder__role{font-size:.95rem;font-weight:600;color:var(--text-soft);margin:0 0 22px}
.founder__q{margin:0 0 22px;padding-left:20px;border-left:3px solid var(--coral);font-family:var(--serif);
  font-style:italic;font-size:clamp(1.25rem,2.2vw,1.55rem);line-height:1.35}
.founder__body p{max-width:60ch}
.commits--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.6vw,32px)}
.tm{margin:0;outline-offset:6px;border-radius:var(--r-lg)}
/* portraits: warm monochrome, fading to full colour on hover, keyboard focus, or (on touch screens) once in view */
.tm__ph{position:relative;aspect-ratio:1;border-radius:var(--r-lg);overflow:hidden;background:var(--sand)}
.founder__ph .tm__ph{aspect-ratio:4/5}
.tm__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.tm-col{opacity:0;transition:opacity .6s ease,transform .6s ease}
.tm:hover .tm-col,.tm:focus-visible .tm-col,.tm.is-in .tm-col{opacity:1}
.tm:hover .tm__ph img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.tm-col{transition:none}.tm:hover .tm__ph img{transform:none}}
.tm figcaption{margin-top:12px;font-weight:600;font-size:1rem}
.bigquote{margin:0 auto;max-width:900px;text-align:center}
.bigquote blockquote{margin:0 0 22px;font-family:var(--serif);font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.25;font-style:italic}
.bigquote .who{display:block;font-weight:700}
.bigquote .role{display:block;color:var(--text-soft);font-size:.95rem}
.chaps{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:0;max-width:860px}
.chaps::before{content:"";position:absolute;left:11px;top:10px;bottom:10px;width:3px;border-radius:3px;
  background:linear-gradient(var(--coral),var(--gold),var(--sage),var(--blue))}
.chap{position:relative;padding:0 0 38px 52px}
.chap:last-child{padding-bottom:0}
.chap::before{content:"";position:absolute;left:3px;top:6px;width:19px;height:19px;border-radius:50%;
  background:var(--shell);border:3px solid var(--ink)}
.chap__k{display:block;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft)}
.chap h3{margin:6px 0 8px}
.chap p{margin:0;max-width:62ch;color:var(--text-soft)}
.mm__grid--company{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.nav .mm__founder{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:center;padding:16px;border-radius:16px;
  background:var(--cream);border:1px solid var(--line);text-decoration:none;color:var(--text);white-space:normal}
.nav .mm__founder:hover{border-color:var(--line-strong)}
.mm__founder img{width:120px;height:150px;object-fit:cover;border-radius:12px;display:block}
.mm__fq{display:block;font-family:var(--serif);font-style:italic;font-size:1.2rem;line-height:1.35;margin-bottom:8px}
@media (max-width:980px){
  .team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mm__grid--company{grid-template-columns:1fr}
  .nav .mm__founder{display:none}
}
@media (max-width:860px){
  .founder{grid-template-columns:1fr}
  .founder__ph{max-width:380px}
  .commits--2{grid-template-columns:1fr}
}
.commits--2 .commit:nth-child(n){padding-left:0;border-left:0}
.commits--2 .commit:nth-child(2n){padding-left:26px;border-left:1px solid var(--line)}
@media (max-width:860px){.commits--2 .commit:nth-child(2n){padding-left:0;border-left:0}}

/* ---------- animation player (solution pages) ----------
   Sits inside the ink panel: cream controls, gold for the current step. */
.ap{display:flex;align-items:center;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(250,240,227,.14)}
.ap__btns{display:flex;gap:6px;flex:none}
.ap__b{width:44px;height:44px;border-radius:50%;border:1px solid rgba(250,240,227,.28);background:rgba(250,240,227,.06);
  color:var(--cream);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.ap__b svg{width:15px;height:15px;fill:currentColor}
.ap__b:hover{background:rgba(250,240,227,.14);border-color:rgba(250,240,227,.5)}
.ap__play{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.ap__play:hover{background:#fff}
.ap__b:focus-visible,.ap__seg:focus-visible{outline:2.5px solid var(--gold);outline-offset:2px}
.ap__bar{position:relative;flex:1;min-width:0;height:44px;display:flex;align-items:center}
.ap__segs{position:relative;display:flex;gap:5px;width:100%;pointer-events:none}
.ap__seg{flex:1;height:8px;border-radius:5px;background:rgba(250,240,227,.18);overflow:hidden;position:relative}
.ap__fill{position:absolute;inset:0;background:var(--cream);transform-origin:left center;transform:scaleX(0)}
.ap__seg.is-on .ap__fill{background:var(--gold)}
.ap__scrub{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ap__bar:focus-within .ap__segs{outline:2.5px solid var(--gold);outline-offset:8px;border-radius:6px}
.ap__time{flex:none;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--on-ink-soft);min-width:78px;text-align:right}
.ap__now{display:flex;align-items:center;gap:16px;margin-top:12px}
.ap__chips{display:flex;gap:6px;flex:none}
.ap__chip{width:44px;height:44px;border-radius:50%;border:1px solid rgba(250,240,227,.28);background:transparent;color:var(--cream);
  font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
.ap__chip:hover{border-color:rgba(250,240,227,.6)}
.ap__chip.is-on{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.ap__chip:focus-visible{outline:2.5px solid var(--gold);outline-offset:2px}
.ap__l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0} /* the drawing already shows this line */
.ap__live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* while paused, the ambient motion (waveforms, dashed flows) holds still too */
@media (max-width:560px){
  .ap{flex-wrap:wrap;gap:10px}
  .ap__bar{order:3;flex-basis:100%}
  .ap__time{margin-left:auto}
  .ap__now{flex-direction:column;align-items:flex-start;gap:10px}
}

/* ---------- client stories: profile, fit check, connection diagram, journey ---------- */
.story-head{align-items:center}
.cprof{background:var(--shell);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(22px,3vw,34px);
  box-shadow:0 24px 60px -34px rgba(17,41,68,.35);position:relative;overflow:hidden}
.cprof::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;
  background:linear-gradient(90deg,var(--coral),var(--gold) 40%,var(--sage) 70%,var(--blue))}
.cprof__top{display:flex;align-items:center;gap:18px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.cprof__logo{height:64px;width:auto;flex:none}
.cprof__name{font-family:var(--serif);font-size:1.28rem;line-height:1.2;margin:0 0 4px;color:var(--text)}
.cprof__type{margin:0;font-size:.92rem;color:var(--text-soft)}
.cprof__facts{margin:0;display:grid;gap:0}
.cprof__f{display:grid;grid-template-columns:8.5em minmax(0,1fr);gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.cprof__f:last-child{border-bottom:0;padding-bottom:0}
.cprof__f dt{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);padding-top:3px}
.cprof__f dd{margin:0;color:var(--text);font-weight:500;line-height:1.45}
@media (max-width:480px){.cprof__f{grid-template-columns:1fr;gap:4px}.cprof__logo{height:52px}}

.fit{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fit__i{position:relative;background:var(--shell);border:1px solid var(--line);border-radius:var(--r);
  padding:20px 20px 20px 58px;font-size:1.02rem;line-height:1.5;color:var(--text)}
.fit__tick{position:absolute;left:18px;top:19px;width:26px;height:26px;border-radius:50%;background:var(--sage)}
.fit__tick::after{content:"";position:absolute;left:8px;top:7px;width:10px;height:6px;border-left:2px solid var(--ink);
  border-bottom:2px solid var(--ink);transform:rotate(-45deg)}
@media (max-width:980px){.fit{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.fit{grid-template-columns:1fr}}

.cflow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);gap:clamp(18px,3vw,44px);align-items:center;position:relative}
.cflow__col ul,.cflow__hub ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cflow__col li{background:var(--shell);border:1px solid var(--line);border-radius:999px;padding:11px 18px;font-size:.96rem;
  line-height:1.35;color:var(--text);position:relative}
.cflow__in li{border-left:4px solid var(--coral)}
.cflow__out li{border-left:4px solid var(--sage)}
.cflow__k{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin:0 0 12px}
.cflow__hub{background:var(--ink);color:var(--on-ink);border-radius:var(--r-lg);padding:clamp(22px,3vw,32px);text-align:center;position:relative;
  box-shadow:0 30px 60px -36px rgba(17,41,68,.55)}
.cflow__hub img{width:56px;height:56px;border-radius:50%;background:var(--shell);padding:6px;display:block;margin:0 auto 10px}
.cflow__name{font-family:var(--serif);font-size:1.3rem;margin:0 0 14px;color:var(--on-ink)}
.cflow__hub li{font-size:.95rem;line-height:1.4;color:var(--on-ink);padding:9px 0;border-top:1px solid rgba(250,240,227,.14);text-align:left}
.cflow__hub li::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:middle}
@media (min-width:981px){
  .cflow::before,.cflow::after{content:"";position:absolute;top:50%;height:2px;width:clamp(18px,3vw,44px);background:var(--line-strong)}
  .cflow::before{left:calc((100% - 2 * clamp(18px,3vw,44px)) * 1 / 3.1)}
  .cflow::after{right:calc((100% - 2 * clamp(18px,3vw,44px)) * 1 / 3.1)}
}
@media (max-width:980px){
  .cflow{grid-template-columns:1fr;gap:14px}
  .cflow__hub{margin:6px 0}
  .cflow__hub::before,.cflow__hub::after{content:"";position:absolute;left:50%;width:2px;height:14px;background:var(--line-strong)}
  .cflow__hub::before{top:-20px}.cflow__hub::after{bottom:-20px}
}
.cflow__note{margin:26px 0 0;color:var(--text-soft);font-size:1rem;text-align:center}

.jr__legend{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 18px}
.jr__key{font-size:.85rem;color:var(--text-soft);display:inline-flex;align-items:center;gap:8px}
.jr__key::before{content:"";width:12px;height:12px;border-radius:50%}
.jr__key--cc::before{background:var(--gold)}
.jr__key--team::before{background:var(--blue)}
.jr__key--client::before{background:var(--coral)}
.jr{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:none}
.jr__s{position:relative;background:var(--shell);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 16px;
  display:flex;flex-direction:column;gap:10px;min-height:150px}
.jr__s::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;border-radius:var(--r) 0 0 var(--r)}
.jr__s--cc::before{background:var(--gold)}
.jr__s--team::before{background:var(--blue)}
.jr__s--client::before{background:var(--coral)}
.jr__n{font-family:var(--serif);font-size:1.5rem;line-height:1;color:var(--text)}
.jr__t{color:var(--text);line-height:1.45;font-size:.98rem;flex:1}
.jr__w{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft)}
@media (max-width:980px){.jr{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.jr{grid-template-columns:1fr}.jr__s{min-height:0}}

.scard__top{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.scard__top .card__tag{margin:0}
.scard__logo{height:52px;width:auto;flex:none}
.scard__for{margin-top:14px !important;font-size:.9rem !important;color:var(--text) !important;font-weight:500}

/* ---------- Resources library: guides ---------- */
.ghead h1{max-width:24ch;font-size:clamp(2.1rem,4.4vw,3.4rem)}
.crumbs{font-size:.86rem;color:var(--text-soft);margin:0 0 18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.crumbs a{color:var(--text-soft);text-decoration:none;border-bottom:1px solid var(--line-strong)}
.crumbs a:hover{color:var(--text);border-color:var(--text)}
.byline{display:flex;align-items:center;gap:14px;margin-top:26px}
.byline img{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;background:var(--shell)}
.byline--org img{padding:5px;border:1px solid var(--line)}
.byline p{margin:0;display:flex;flex-direction:column;font-size:.92rem;line-height:1.4;color:var(--text-soft)}
.byline a{color:var(--text);font-weight:600;text-decoration:none}
.byline a:hover{text-decoration:underline}
.gtop{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;margin:0 0 36px}
.gkey,.gtoc{border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;background:var(--shell)}
.gkey{border-left:4px solid var(--gold)}
.gkey__h,.gtoc__h,.gsrc__h,.dg__h,.callout__h,.gsol__k{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin:0 0 12px;font-weight:600}
.gkey ul{margin:0;padding-left:1.1em;display:grid;gap:9px}
.gkey li{line-height:1.5;color:var(--text)}
.gtoc ol{margin:0;padding-left:1.2em;display:grid;gap:7px}
.gtoc a{color:var(--text);text-decoration:none;line-height:1.4;font-size:.95rem}
.gtoc a:hover{text-decoration:underline}
@media (max-width:860px){.gtop{grid-template-columns:1fr}}
.prose--guide{max-width:none}
.prose--guide > p,.prose--guide > ul,.prose--guide > ol,.prose--guide > h2,.prose--guide > h3{max-width:70ch}
.prose--guide h2{scroll-margin-top:96px}
.prose ul{margin:0 0 1.3em;padding-left:1.25em}
.prose a{color:var(--text);text-decoration-thickness:1px;text-underline-offset:3px}
.callout{margin:1.6em 0;padding:20px 24px;border-radius:var(--r);background:var(--sand);border-left:4px solid var(--sage);max-width:70ch}
.callout p{margin:0;color:var(--text)}
.callout .callout__h{margin-bottom:8px;color:var(--text-soft)}
.dg{margin:2em 0;padding:24px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--shell)}
.dg figcaption{margin-top:16px;font-size:.88rem;color:var(--text-soft);line-height:1.5}
.lad{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lad__r{display:grid;grid-template-columns:110px minmax(0,13em) minmax(0,1fr);gap:16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.lad__r:first-child{border-top:0}
.lad__d{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--coral),var(--gold),var(--sage));width:calc(var(--d) * 20%)}
.lad__n{font-weight:600;color:var(--text)}
.lad__t{color:var(--text-soft);font-size:.95rem;line-height:1.45}
@media (max-width:640px){.lad__r{grid-template-columns:70px minmax(0,1fr)}.lad__t{grid-column:1 / -1}}
.stp{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.stp__s{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 14px;display:flex;flex-direction:column;gap:6px}
.stp__s::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;border-radius:var(--r) var(--r) 0 0;background:var(--gold)}
.stp--sage .stp__s::before{background:var(--sage)}
.stp__n{font-family:var(--serif);font-size:1.35rem;line-height:1;color:var(--text)}
.stp__s b{color:var(--text);font-weight:600}
.stp__s span:last-child{color:var(--text-soft);font-size:.92rem;line-height:1.45}
.dgt{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dgt table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:520px}
.dgt th,.dgt td{text-align:left;vertical-align:top;padding:12px 14px;border-top:1px solid var(--line);line-height:1.45}
.dgt thead th{border-top:0;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);font-weight:600}
.dgt tbody th{color:var(--text);font-weight:600}
.dgt td{color:var(--text-soft)}
.dgt a{color:var(--text)}
.spl{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.spl__p{border:1px solid var(--line);border-radius:var(--r);padding:18px;background:var(--cream)}
.spl__h{font-weight:600;color:var(--text);margin:0 0 6px}
.spl__p ul{margin:10px 0 0;padding-left:1.1em;display:grid;gap:6px;color:var(--text-soft);font-size:.93rem}
@media (max-width:640px){.spl{grid-template-columns:1fr}}
.dgsvg{width:100%;height:auto;display:block;max-width:340px;margin:0 auto}
.dgsvg__l line{stroke:var(--ink);stroke-opacity:.35;stroke-width:1.5}
.dgsvg__l--busy line{stroke:var(--coral-deep);stroke-opacity:.55}
.dgsvg__n circle{fill:var(--blue)}
.spl__p--b .dgsvg__n circle{fill:var(--sage)}
.dgsvg__hub{fill:var(--ink)}
.faq--guide{max-width:70ch}
.gnote{margin:28px 0 0;font-size:.9rem;color:var(--text-soft);max-width:70ch;padding-top:18px;border-top:1px solid var(--line)}
.gsrc{margin-top:28px}
.gsrc ol{margin:0;padding-left:1.3em;display:grid;gap:6px;font-size:.92rem}
.gsrc a{color:var(--text);word-break:break-word}
.gsol{margin-top:44px;padding:28px;border-radius:var(--r-lg);background:var(--ink);color:var(--on-ink)}
.gsol .gsol__k{color:var(--on-ink-soft)}
.gsol__t{font-family:var(--serif);font-size:1.35rem;line-height:1.35;margin:0 0 18px;color:var(--on-ink);max-width:40ch}
.gsol .btn--primary{background:var(--cream);color:var(--ink)}
.gsol .btn--ghost{color:var(--on-ink);border-color:rgba(250,240,227,.4)}
.rchips{display:flex;flex-wrap:wrap;gap:10px}
.rchip{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line-strong);color:var(--text);text-decoration:none;font-weight:500;background:var(--shell)}
.rchip:hover{border-color:var(--text)}
.gcard .card__tag{white-space:normal}
.mm__grid--res{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.05fr);gap:28px}
.mm__links{list-style:none;margin:0;padding:0}
.nav .mm__links .mm__link{padding:9px 2px;font-weight:500}
.mm__h a{color:inherit;text-decoration:none}
.mm__h a:hover{text-decoration:underline}
@media (max-width:1180px){.mm__grid--res{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.mm__grid--res{grid-template-columns:1fr;gap:12px}.nav .mm__links .mm__link{padding:12px;min-height:44px}}
.hdr .btn{white-space:nowrap}
@media (max-width:620px){
  .dgt table{min-width:0}
  .dgt thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .dgt table,.dgt tbody,.dgt tr,.dgt th,.dgt td{display:block;width:100%}
  .dgt tr{border-top:1px solid var(--line);padding:12px 0}
  .dgt tr:first-child{border-top:0;padding-top:0}
  .dgt th,.dgt td{border:0;padding:4px 0}
  .dgt td::before{content:attr(data-label);display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);margin:6px 0 2px}
  .dgt td[data-label=""]::before{display:none}
}
.pmark{display:flex;align-items:center;gap:14px;margin:6px 0 22px}
.pmark__logo{height:48px;width:auto}
.pmark .pcard__logo--word,.pmark__logo.pmark__logo--word{font-family:var(--serif);font-size:1.5rem;color:var(--text)}
.pmark__x{font-size:1.3rem;color:var(--text-soft)}
.pcard__logo{height:40px;width:auto;margin-bottom:14px;display:block}
.pcard__logo--word{font-family:var(--serif);font-size:1.4rem;color:var(--text)}
.works__k--2{margin-left:10px}
a.chip--link{color:var(--text);text-decoration:none;border-color:var(--line-strong)}
a.chip--link:hover{border-color:var(--text)}

/* language switch */
.nav .lang{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:40px;padding:0 10px;margin:0 4px;
  border-radius:999px;border:1px solid var(--line-strong);color:var(--text);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-decoration:none}
.nav .lang:hover{border-color:var(--text)}
.lang__l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:980px){
  .nav.is-open .lang{display:flex;justify-content:flex-start;border:0;border-radius:0;margin:0;padding:14px 12px;min-height:48px;font-size:1rem;letter-spacing:0;font-weight:500}
  .nav.is-open .lang__s{display:none}
  .nav.is-open .lang__l{position:static;width:auto;height:auto;overflow:visible;clip:auto}
}
html[lang^="fr"] .od-wrap::before{content:"Faites glisser le dessin pour suivre toute la séquence"}

/* French labels run longer: tighten the desktop bar so it never overflows */
@media (min-width:981px) and (max-width:1440px){
  html[lang^="fr"] .nav .nav__link,html[lang^="fr"] .mm__top{padding:8px 6px;font-size:.84rem;letter-spacing:-.005em}
  html[lang^="fr"] .mm__chev{display:none}
  html[lang^="fr"] .hdr__in{gap:12px}
  html[lang^="fr"] .hdr .btn{padding-left:14px;padding-right:14px}
}
@media (min-width:981px) and (max-width:1180px){
  html[lang^="fr"] .nav .nav__link,html[lang^="fr"] .mm__top{padding:8px 4px;font-size:.8rem}
  html[lang^="fr"] .hdr__in{padding-left:24px;padding-right:24px}
  html[lang^="fr"] .nav > .nav__link:first-child{white-space:normal;max-width:104px;line-height:1.15;text-align:center}
}

/* ---------- conductor map (homepage + platform page) ---------- */
.cmap{position:relative;margin:44px 0 0;padding:34px clamp(18px,3vw,40px) 40px;border-radius:24px;
  background:radial-gradient(60% 80% at 12% 10%,rgba(254,155,115,.10),transparent 60%),
  radial-gradient(50% 70% at 92% 90%,rgba(136,191,183,.12),transparent 60%),#112944;
  color:#FAF0E3;box-shadow:0 30px 60px -30px rgba(17,41,68,.45);overflow:hidden}
.cmap__heads{display:flex;justify-content:space-between;font-size:.74rem;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(250,240,227,.62);margin:0 0 6px;font-weight:600}
.cmap__h{display:none}
.cmap__stage{position:relative;aspect-ratio:1000/440}
.cmap__wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cmap__w path{fill:none;stroke-width:2.2;opacity:.42;stroke-linecap:round}
.cmap__p path{fill:none;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:7 93;stroke-dashoffset:100;
  opacity:0;animation:cmapflow 4.2s cubic-bezier(.45,.05,.35,1) infinite;animation-delay:var(--d)}
@keyframes cmapflow{0%{stroke-dashoffset:100;opacity:0}12%{opacity:.95}80%{opacity:.95}100%{stroke-dashoffset:0;opacity:0}}
.cmap__col ul{list-style:none;margin:0;padding:0}
.cmap__col li{position:absolute;top:var(--y);transform:translateY(-50%)}
.cmap__col--in li{right:73.8%;left:0;display:flex;justify-content:flex-end}
.cmap__col--out li{left:73.8%;right:0}
.cmap__node{display:inline-flex;align-items:center;gap:10px;padding:9px 16px;border-radius:999px;
  background:rgba(250,240,227,.07);border:1px solid rgba(250,240,227,.16);color:#FAF0E3;
  font-size:.95rem;font-weight:500;line-height:1.25;text-decoration:none;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;backdrop-filter:blur(2px)}
a.cmap__node:hover,a.cmap__node:focus-visible{background:rgba(250,240,227,.14);border-color:rgba(250,240,227,.42);transform:translateX(-3px)}
a.cmap__node:focus-visible{outline:2.5px solid #FCBF53;outline-offset:3px}
.cmap__node--out{border-radius:16px;padding:10px 16px;align-items:flex-start}
.cmap__dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 0 4px rgba(250,240,227,.06),0 0 14px var(--c)}
.cmap__node--out .cmap__dot{margin-top:6px}
.cmap__t{display:block;font-weight:600}
.cmap__s{display:block;font-size:.8rem;color:rgba(250,240,227,.68);font-weight:400;margin-top:2px}
.cmap__hub{position:absolute;left:50%;top:50%;width:16%;aspect-ratio:1;transform:translate(-50%,-50%);
  border-radius:50%;background:#112944;display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 0 0 1.5px rgba(252,191,83,.75),0 0 0 10px rgba(252,191,83,.07),0 0 60px rgba(252,191,83,.18)}
.cmap__hub img{width:46%;height:auto;border-radius:50%}
.cmap__name{position:absolute;top:calc(100% + 14px);white-space:nowrap;font-family:"Playfair Display","Playfair Fallback",Georgia,serif;
  font-size:1.15rem;color:#FAF0E3}
.cmap__ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(252,191,83,.5);animation:cmapring 3.6s ease-out infinite}
@keyframes cmapring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.55);opacity:0}}
@media (prefers-reduced-motion:reduce){.cmap__p{display:none}.cmap__ring{animation:none;opacity:0}}
@media (max-width:1100px) and (min-width:821px){.cmap__node{font-size:.86rem;padding:8px 12px}.cmap__s{font-size:.74rem}}
@media (max-width:820px){
  .cmap__heads,.cmap__wires{display:none}
  .cmap__stage{aspect-ratio:auto;display:flex;flex-direction:column;align-items:stretch;gap:0}
  .cmap__h{display:block;margin:0 0 12px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(250,240,227,.62);font-weight:600}
  .cmap__col li{position:static;transform:none;display:block}
  .cmap__col ul{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .cmap__col--in li,.cmap__col--out li{left:auto;right:auto}
  .cmap__node{width:100%;font-size:.92rem}
  .cmap__hub{position:relative;left:auto;top:auto;transform:none;width:120px;margin:58px auto 76px}
  .cmap__hub::before,.cmap__hub::after{content:"";position:absolute;left:50%;width:2px;height:46px;transform:translateX(-50%);
    background:linear-gradient(rgba(252,191,83,0),rgba(252,191,83,.7))}
  .cmap__hub::before{bottom:calc(100% + 6px)}
  .cmap__hub::after{top:calc(100% + 44px);background:linear-gradient(rgba(252,191,83,.7),rgba(252,191,83,0));height:26px}
}
@media (max-width:420px){.cmap__col ul{grid-template-columns:1fr}}

/* client and partner logos set into the story cards of the Client Stories panel */
.mm__stories--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nav .mm__story{position:relative;overflow:hidden;isolation:isolate;min-height:168px}
.mm__story-logo{position:absolute;right:-6%;bottom:-8%;width:62%;max-height:70%;object-fit:contain;
  object-position:right bottom;opacity:.11;z-index:-1;filter:grayscale(1);transition:opacity .2s ease,filter .2s ease}
.nav .mm__story:hover .mm__story-logo,.nav .mm__story:focus-visible .mm__story-logo{opacity:.22;filter:none}
.mm__story .mm__stat{font-size:2rem}
@media (max-width:980px){
  .mm__stories--3{grid-template-columns:1fr}
  .nav .mm__story{min-height:0}
  .mm__story-logo{width:34%;right:8px;bottom:50%;transform:translateY(50%);max-height:60%}
}
/* homepage band: margins (not gap) so half the track is exactly one set, and no jump on loop */
.band__track{gap:0}
.band__i{flex:none;display:flex;align-items:center;padding-right:64px}
.band__track img{width:auto}
@media (prefers-reduced-motion:reduce){.band__i[aria-hidden]{display:none}.band__i{padding:0}.band__track{gap:30px 48px}}
/* tighter homepage rhythm */
.sect--home{padding-top:clamp(56px,7vw,92px);padding-bottom:clamp(56px,7vw,92px)}
.sect--home .sect-head{margin-bottom:clamp(26px,3.5vw,40px)}
/* getting started */
.start{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1040px;counter-reset:s}
.start__s{position:relative;padding:28px 26px 26px;border-radius:20px;background:#FFFBF5;border:1px solid var(--line);
  box-shadow:0 18px 40px -28px rgba(17,41,68,.35)}
.start__s::before{content:"";position:absolute;left:26px;right:26px;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--coral)}
.start__s:nth-child(2)::before{background:var(--gold)}.start__s:nth-child(3)::before{background:var(--sage)}
.start__n{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ink);color:var(--cream);
  font-family:var(--serif);font-size:1.05rem;margin-bottom:14px}
.start__tag{display:inline-block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--text);
  background:var(--sand);border-radius:999px;padding:5px 10px;margin:0 0 10px 10px;vertical-align:middle}
.start__s h3{margin:0 0 8px}
.start__s p{margin:0;color:var(--text-soft);line-height:1.55}
.cta-row--center{justify-content:center}
@media (max-width:860px){.start{grid-template-columns:1fr;max-width:560px}}
/* founder: an editorial statement rather than a resume */
.founder__line{font-family:var(--serif);font-size:clamp(1.7rem,3.1vw,2.55rem);line-height:1.18;letter-spacing:-.01em;
  color:var(--text);margin:14px 0 22px;max-width:22ch !important}
.founder__line em{display:block;margin-top:.25em}
.founder__name{font-weight:700;font-size:1rem;margin:0 0 20px;padding-top:18px;border-top:1px solid var(--line);max-width:none !important}
.founder__name span{display:block;font-weight:500;color:var(--text-soft);font-size:.92rem;margin-top:2px}
.founder__ph .tm__ph{box-shadow:0 34px 60px -34px rgba(17,41,68,.55)}

/* ---------- privacy responsibilities hub ---------- */
.pmeta{margin:18px 0 0;font-size:.86rem;color:var(--text-soft);font-weight:500}
.pchk{list-style:none;margin:1.2em 0 1.6em;padding:0;counter-reset:pc}
.pchk > li{position:relative;padding:16px 0 16px 46px;border-top:1px solid var(--line);counter-increment:pc}
.pchk > li:last-child{border-bottom:1px solid var(--line)}
.pchk > li::before{content:"\2713";position:absolute;left:0;top:16px;width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;background:var(--ink);color:var(--cream);font-size:.85rem;font-weight:700}
.pchk--q > li::before{content:"?"}
.pchk > li p{margin:0 0 6px}
.pchk__t{font-weight:700;color:var(--text)}
.pchk__w{font-style:italic;color:var(--text-soft)}
.phelps li{margin-bottom:6px}
.rcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:6px 0 28px}
.rcard{position:relative;display:block;padding:20px 48px 20px 22px;border-radius:16px;background:#FFFBF5;border:1px solid var(--line);
  text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .15s ease}
.rcard:hover,.rcard:focus-visible{border-color:var(--line-strong);transform:translateY(-1px)}
.rcard__k{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--text-soft);margin-bottom:4px}
.rcard__t{display:block;font-family:var(--serif);font-size:1.3rem;line-height:1.2}
.rcard__d{display:block;font-size:.92rem;color:var(--text-soft);margin-top:4px}
.rcard__go{position:absolute;right:20px;top:50%;transform:translateY(-50%)}
.pnext{margin:34px 0 8px;padding:24px 26px;border-radius:18px;background:var(--sand);border:1px solid var(--line)}
.pnext__k{margin:0 0 6px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--text-soft)}
.pnext__t{margin:0 0 16px;font-family:var(--serif);font-size:1.25rem;line-height:1.3}
.pnext__s{margin:14px 0 0;font-size:.95rem}
.pmore{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.pmore li{padding:10px 0;border-top:1px solid var(--line)}
.pmore a{font-weight:600;color:var(--text)}
.pmore span{display:block;font-size:.88rem;color:var(--text-soft)}
.pmore__h{font-weight:700;margin:0}
.pmore__s{margin:18px 0 0}
.form--tpl{margin:8px 0 10px}
.dl{margin:18px 0;padding:18px 22px;border-radius:16px;background:#FFFBF5;border:1px solid var(--line)}
.dl__h{margin:0 0 8px;font-weight:700}
.dl ul{list-style:none;margin:0;padding:0}
.dl li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 18px;padding:10px 0;border-top:1px solid var(--line)}
.dl__f{display:flex;gap:16px}
.dl__f a{font-weight:600;color:var(--text)}
@media (max-width:620px){.rcards,.pmore{grid-template-columns:1fr}}

/* ---------- privacy responsibilities hub ---------- */
.pmeta{margin:18px 0 0;font-size:.86rem;color:var(--text-soft)}
.pchk{list-style:none;margin:1.2em 0 1.6em;padding:0;counter-reset:pc}
.pchk > li{position:relative;padding:16px 18px 16px 58px;margin:0 0 10px;border:1px solid var(--line);border-radius:16px;background:#FFFBF5;counter-increment:pc}
.pchk > li::before{content:counter(pc);position:absolute;left:16px;top:15px;width:28px;height:28px;border-radius:50%;
  background:var(--ink);color:var(--cream);display:grid;place-items:center;font-size:.85rem;font-weight:700}
.pchk--q > li::before{content:"?"}
.pchk > li p{margin:0 0 6px}
.pchk > li p:last-child{margin-bottom:0}
.pchk__t{font-weight:700;color:var(--text)}
.pchk__w{font-size:.92rem;color:var(--text-soft)}
.phelps{list-style:none;padding:0}
.phelps li{position:relative;padding-left:26px;margin:0 0 10px}
.phelps li::before{content:"";position:absolute;left:4px;top:.55em;width:10px;height:10px;border-radius:50%;background:var(--sage)}
.pnext{margin:34px 0 0;padding:26px 26px 22px;border-radius:20px;background:var(--sand);border:1px solid var(--line)}
.pnext__k{margin:0 0 6px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--text-soft)}
.pnext__t{margin:0 0 16px;font-family:var(--serif);font-size:1.3rem;line-height:1.3;color:var(--text)}
.pnext__s{margin:14px 0 0;font-size:.92rem}
.pnext .btn{white-space:normal;text-align:left}
.rcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 28px}
.rcard{position:relative;display:flex;flex-direction:column;gap:4px;padding:20px 48px 20px 20px;border-radius:16px;
  border:1px solid var(--line);background:#FFFBF5;text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .15s ease}
.rcard:hover,.rcard:focus-visible{border-color:var(--line-strong);transform:translateY(-1px)}
.rcard__k{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--text-soft)}
.rcard__t{font-family:var(--serif);font-size:1.3rem;line-height:1.2}
.rcard__d{font-size:.92rem;color:var(--text-soft)}
.rcard__go{position:absolute;right:18px;top:50%;transform:translateY(-50%)}
.pmore__h{font-weight:700;margin:0 0 12px}
.pmore{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
.pmore li{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--line)}
.pmore li span{font-size:.88rem;color:var(--text-soft)}
.pmore__s{margin:18px 0 0;font-size:.92rem}
.dl{margin:22px 0 0;padding:20px 22px;border-radius:16px;border:1px solid var(--line);background:#FFFBF5}
.dl__h{margin:0 0 10px;font-weight:700;font-size:1.05rem}
.dl ul{list-style:none;margin:0;padding:0}
.dl li{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.dl__t{font-weight:600}
.dl__n{grid-column:1;font-size:.86rem;color:var(--text-soft)}
.dl__f{grid-column:2;grid-row:1 / span 2;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.dl__f a{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-strong);
  font-size:.86rem;font-weight:600;text-decoration:none;color:var(--text);background:var(--cream)}
.dl__f a:hover{background:var(--sand)}
.dl__how{margin:12px 0 0}
.dl__how summary{cursor:pointer;font-weight:600;font-size:.92rem;padding:8px 0;min-height:44px;display:flex;align-items:center}
.dl__how ol{margin:6px 0 0;padding-left:20px;font-size:.92rem}
.dl__how li{display:list-item;border:0;padding:4px 0}
.form--tpl{margin:8px 0 0}
@media (max-width:620px){
  .rcards,.pmore{grid-template-columns:1fr}
  .dl li{grid-template-columns:1fr}
  .dl__f{grid-column:1;grid-row:auto;justify-content:flex-start}
  .pchk > li{padding:14px 14px 14px 52px}
}
.pvhead{padding-bottom:clamp(18px,3vw,30px)}
.pvbody{padding-top:clamp(18px,3vw,30px)}
.prose .pchk{padding-left:0}
.dl__how summary{list-style:none}
.dl__how summary::-webkit-details-marker{display:none}
.dl__how summary::after{content:"+";margin-left:8px;font-weight:700}
.dl__how[open] summary::after{content:"\2212"}
/* The opportunity: the problem statement that opens the outcome section */
.opp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end;padding-bottom:clamp(36px,5vw,60px);border-bottom:1px solid color-mix(in srgb,currentColor 14%,transparent)}
.opp__head h2{margin:0}
.opp__body{margin:0;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.65;max-width:52ch}
.opp__next{margin-top:clamp(40px,5.5vw,68px)}
@media (max-width:760px){.opp{grid-template-columns:1fr;align-items:start}}
/* Mobile booking bar: kept clear of the chat launcher at bottom right */
.mcta{display:none}
@media (max-width:980px){
  .mcta{display:block;position:fixed;left:12px;right:84px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:55;
    opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .25s ease,transform .25s ease}
  .mcta.is-on{opacity:1;transform:none;pointer-events:auto}
  .mcta .btn{width:100%;justify-content:center;box-shadow:0 10px 28px rgba(10,26,43,.28)}
  html.nav-open .mcta{display:none}
}
@media (prefers-reduced-motion:reduce){.mcta{transition:none}}
.cta-row .tlink{align-self:center}
/* testimonial with a portrait */
.quote__by{display:flex;align-items:center;gap:14px;text-align:left}
.quote--center .quote__by{justify-content:center}
.quote__face{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:0 0 auto;box-shadow:0 0 0 3px var(--cream)}
.quote .role a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* seven advisors: the short last row sits centred */
.team{display:flex;flex-wrap:wrap;justify-content:center}
.team>.tm{flex:0 0 calc((100% - 3 * clamp(18px,2.6vw,32px)) / 4)}
@media (max-width:980px){.team>.tm{flex-basis:calc((100% - clamp(18px,2.6vw,32px)) / 2)}}
/* phones: with the menu open the page is locked, so the header (and its Close button) is pinned */
@media (max-width:980px){html.nav-open .hdr{position:fixed;top:0;left:0;right:0}}
