/* ============================================================
   DOLLY SOCIAL — Clean v2.0.1
   new.co.uk-inspired: full-screen video hero, tight clean
   rhythm, centred eyebrows with a rule each side, restrained
   glass accents. Scoped under .dolly-page for WordPress safety.
   ============================================================ */

@font-face{font-family:"Neue Montreal";src:url("fonts/neue-montreal-medium.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:"Neue Montreal";src:url("fonts/neue-montreal-bold.woff2") format("woff2");font-weight:600 800;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Serif Display";src:url("fonts/noto-serif-display.woff2") format("woff2");font-weight:300 600;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Serif Display";src:url("fonts/noto-serif-display-italic.woff2") format("woff2");font-weight:300 600;font-style:italic;font-display:swap}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
/* anchor offset: land below the fixed header so the eyebrow title shows */
.dolly-page section[id]{scroll-margin-top:96px}
.dolly-page{
  --bg:#fcfaf7;
  --bg-2:#f4efe9;
  --panel:#e9ede4;
  --surface:#ffffff;
  --ink:#152422;
  --ink-soft:#33493f;
  --muted:#5f7065;
  --sage:#6e826f;
  --forest:#304842;
  --forest-deep:#162624;
  --clay:#e0a873;
  --clay-deep:#9c5a28;
  --line:rgba(21,36,34,.12);
  --line-soft:rgba(21,36,34,.08);

  --glass-bg:rgba(252,250,247,.72);
  --glass-border:rgba(255,255,255,.6);
  --glass-blur:saturate(160%) blur(16px);
  --glass-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 14px 40px rgba(21,36,34,.1);

  --shadow-sm:0 1px 2px rgba(21,36,34,.04),0 8px 24px rgba(21,36,34,.05);
  --shadow:0 2px 8px rgba(21,36,34,.05),0 24px 56px rgba(21,36,34,.09);
  --radius:20px;
  --radius-lg:28px;
  --radius-sm:13px;
  --radius-pill:999px;

  --maxw:1140px;
  --gutter:clamp(20px,4.2vw,56px);   /* side margins */
  --sp:clamp(20px,2.6vw,40px);        /* section rhythm — tight */

  /* TYPE SCALE — exactly 5 steps, used everywhere. No one-off sizes. */
  --fs-xl:clamp(2.6rem,6vw,5rem);             /* display: page-hero titles */
  --fs-lg:clamp(1.85rem,3.8vw,2.9rem);        /* heading: H2 + statement */
  --fs-md:clamp(1.1rem,1.4vw,1.22rem);        /* subhead: H3, lede, sub */
  --fs-base:clamp(1rem,.97rem+.2vw,1.06rem);  /* body: all running copy */
  --fs-sm:.9rem;                               /* caption: eyebrow, numbers, notes */

  --font-body:"Neue Montreal",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-serif:"Noto Serif Display",Georgia,"Times New Roman",serif;

  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  font-size:clamp(1rem,.97rem+.25vw,1.1rem);
  line-height:1.58;
  letter-spacing:-.006em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.dolly-page img{max-width:100%;display:block}
.dolly-page a{color:inherit;text-decoration:none}
.dolly-page h1,.dolly-page h2,.dolly-page h3,.dolly-page h4{font-family:var(--font-body);font-weight:600;letter-spacing:-.022em;line-height:1.05;margin:0}
.dolly-page em{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:0}

.dolly-page .ds-wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);width:100%}
.dolly-page .ds-section{padding-block:var(--sp)}
.dolly-page .ds-section--tight{padding-block:clamp(32px,4vw,56px)}

.dolly-page .ds-section--sand{background:var(--bg-2)}
.dolly-page .ds-section--panel{background:var(--panel)}
.dolly-page .ds-section--forest{background:var(--forest-deep);color:#eef2ec}
.dolly-page .ds-section--forest .ds-sub{color:rgba(238,242,236,.78)}

/* ---------- eyebrow ---------- */
.dolly-page .ds-eyebrow{display:inline-flex;align-items:center;gap:.7em;font-size:calc(.72rem + 3px);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--clay-deep)}
.dolly-page .ds-eyebrow::before,.dolly-page .ds-eyebrow::after{content:"";width:26px;height:1px;background:currentColor;opacity:.55}
.dolly-page .ds-eyebrow::after{display:none}
/* centred heads: rule on BOTH sides, centred */
.dolly-page .ds-head--center{text-align:center;margin-inline:auto}
.dolly-page .ds-head--center .ds-eyebrow::after{display:block}
.dolly-page .ds-head--center .ds-sub{margin-inline:auto}
.dolly-page .ds-section--forest .ds-eyebrow{color:var(--clay)}

.dolly-page .ds-h2{font-size:clamp(1.85rem,3.6vw,2.9rem);margin-top:.85rem}
.dolly-page .ds-head{max-width:60ch}
.dolly-page .ds-sub{margin-top:1rem;font-size:clamp(1.02rem,1.3vw,1.18rem);color:var(--ink-soft);max-width:58ch}
.dolly-page .ds-pop{color:var(--clay-deep);font-weight:500}
.dolly-page .ds-prose p{margin:0 0 1rem;color:var(--ink-soft)}
.dolly-page .ds-prose p:last-child{margin-bottom:0}

/* ---------- buttons ---------- */
.dolly-page .ds-btn{display:inline-flex;align-items:center;gap:.55em;background:var(--forest);color:#f6f8f3;padding:.9em 1.45em;border-radius:var(--radius-pill);font-weight:500;font-size:.96rem;border:1px solid transparent;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;box-shadow:0 8px 22px rgba(48,72,66,.22)}
.dolly-page .ds-btn:hover{transform:translateY(-2px);background:var(--forest-deep);box-shadow:0 14px 30px rgba(48,72,66,.28)}
.dolly-page .ds-btn--light{background:#fff;color:var(--forest-deep);box-shadow:0 8px 22px rgba(0,0,0,.16)}
.dolly-page .ds-btn--light:hover{background:#fff}
.dolly-page .ds-btn--block{width:100%;justify-content:center}
.dolly-page .ds-arw{transition:transform .25s ease}
.dolly-page .ds-btn:hover .ds-arw{transform:translateX(4px)}
.dolly-page .ds-link{display:inline-flex;align-items:center;gap:.45em;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:2px;opacity:.92;transition:opacity .2s ease}
.dolly-page .ds-link:hover{opacity:1}

/* ---------- header (transparent over hero -> glass on scroll) ---------- */
.dolly-header{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}
.dolly-header .ds-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:14px}
.dolly-page .ds-logo{height:42px;width:auto}
.dolly-page .ds-logo--dark{display:none}
.dolly-header.is-stuck{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 1px 0 var(--line-soft),0 10px 26px rgba(21,36,34,.07)}
.dolly-header.is-stuck .ds-logo--light{display:none}
.dolly-header.is-stuck .ds-logo--dark{display:block}
.dolly-page .ds-nav{display:flex;align-items:center;gap:clamp(14px,1.8vw,28px)}
.dolly-page .ds-navlink{font-size:.95rem;font-weight:500;color:#eef2ec;opacity:.9;transition:opacity .2s ease}
.dolly-page .ds-navlink:hover{opacity:1}
.dolly-header.is-stuck .ds-navlink{color:var(--ink-soft)}
.dolly-header.is-stuck .ds-navlink:hover{color:var(--ink)}
.dolly-page .ds-toggle{display:none;width:44px;height:44px;border:1px solid rgba(255,255,255,.4);border-radius:11px;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;position:relative}
.dolly-header.is-stuck .ds-toggle{border-color:var(--line);background:var(--glass-bg)}
.dolly-page .ds-toggle span,.dolly-page .ds-toggle span::before,.dolly-page .ds-toggle span::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1.7px;background:#fff;transform:translate(-50%,-50%);transition:.25s}
.dolly-header.is-stuck .ds-toggle span,.dolly-header.is-stuck .ds-toggle span::before,.dolly-header.is-stuck .ds-toggle span::after{background:var(--ink)}
.dolly-page .ds-toggle span::before{transform:translate(-50%,-6px)}
.dolly-page .ds-toggle span::after{transform:translate(-50%,6px)}

/* ---------- VIDEO HERO (fills first screen) ---------- */
.dolly-page .ds-hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#fff;isolation:isolate}
.dolly-page .ds-hero-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;background:linear-gradient(135deg,#2b423c,#162624)}
.dolly-page .ds-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,28,26,.62) 0%,rgba(16,28,26,.42) 38%,rgba(16,28,26,.66) 100%)}
.dolly-page .ds-hero-inner{max-width:1060px;padding:120px var(--gutter) 96px}
.dolly-page .ds-fill{line-height:1.04}
.dolly-page .ds-hero .ds-eyebrow{color:#f1ddc7;justify-content:center}
.dolly-page .ds-hero .ds-eyebrow::after{display:block}
.dolly-page .ds-hero h1{font-size:clamp(2.6rem,6.4vw,5rem);font-weight:600;line-height:1;letter-spacing:-.03em;margin-top:1.1rem;text-wrap:balance;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.dolly-page .ds-hero .ds-lede{margin:1.3rem auto 0;font-size:clamp(1.06rem,1.5vw,1.3rem);color:rgba(255,255,255,.92);max-width:none}
.dolly-page .ds-hero .ds-cta-row{margin-top:1.9rem;display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center}
.dolly-page .ds-hero .ds-reassure{margin-top:1.2rem;font-size:.92rem;color:rgba(255,255,255,.78)}
.dolly-page .ds-hero .ds-link{color:#fff}
.dolly-page .ds-scroll{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.dolly-page .ds-scroll span{width:1px;height:34px;background:rgba(255,255,255,.6);animation:ds-drop 1.8s ease-in-out infinite}
@keyframes ds-drop{0%,100%{transform:scaleY(.4);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* ---------- trust strip ---------- */
.dolly-page .ds-trust{border-bottom:1px solid var(--line-soft);background:var(--bg)}
.dolly-page .ds-trust .ds-row{display:flex;flex-wrap:wrap;gap:clamp(16px,3.5vw,48px);justify-content:center;padding-block:18px}
.dolly-page .ds-trust .ds-item{display:inline-flex;align-items:center;gap:.55em;font-size:.93rem;color:var(--ink-soft)}
.dolly-page .ds-pip{width:6px;height:6px;border-radius:50%;background:var(--clay)}

/* ---------- statement ---------- */
.dolly-page .ds-statement{text-align:center}
.dolly-page .ds-statement-line{font-weight:600;font-size:clamp(1.8rem,4.6vw,3.4rem);letter-spacing:-.03em;line-height:1.06}

/* ---------- split ---------- */
.dolly-page .ds-split{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,4.5vw,60px);align-items:center}
.dolly-page .ds-split--rev .ds-media{order:-1}
.dolly-page .ds-media{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/5}
.dolly-page .ds-media img{width:100%;height:100%;object-fit:cover}
.dolly-page .ds-media--square{aspect-ratio:1/1}

/* ---------- glass feature cards ---------- */
.dolly-page .ds-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:clamp(26px,3.5vw,44px)}
.dolly-page .ds-card{padding:26px 24px 28px;border-radius:var(--radius);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:transform .3s ease}
.dolly-page .ds-card:hover{transform:translateY(-4px)}
.dolly-page .ds-card .ds-num{font-weight:700;font-size:.95rem;color:var(--clay-deep);letter-spacing:.04em}
.dolly-page .ds-card h3{margin:.75rem 0 .5rem;font-size:1.25rem}
.dolly-page .ds-card p{color:var(--ink-soft);font-size:.98rem;margin:0}
.dolly-page .ds-section--panel .ds-card{background:rgba(255,255,255,.62)}

/* ladder */
.dolly-page .ds-ladder{display:grid;gap:14px;margin-top:clamp(26px,3.5vw,42px)}
.dolly-page .ds-rung{display:flex;gap:20px;align-items:flex-start;padding:24px clamp(20px,3vw,30px);border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-soft);box-shadow:var(--shadow-sm)}
.dolly-page .ds-rung .ds-tag{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-serif);font-style:italic;font-size:1.1rem;background:var(--panel);color:var(--forest-deep)}
.dolly-page .ds-rung h3{font-size:1.3rem;margin-bottom:.4rem}
.dolly-page .ds-rung p{color:var(--ink-soft);margin:0}

/* marquee */
.dolly-page .ds-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);padding:7px 0}
.dolly-page .ds-track{display:flex;gap:11px;width:max-content;animation:ds-marq 64s linear infinite}
.dolly-page .ds-marquee--rev .ds-track{animation-direction:reverse}
.dolly-page .ds-marquee:hover .ds-track{animation-play-state:paused}
.dolly-page .ds-chip{flex:none;padding:.62em 1.1em;border-radius:var(--radius-pill);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#eef2ec;font-size:.92rem;font-weight:500;transition:background .2s ease}
.dolly-page .ds-chip:hover{background:rgba(255,255,255,.2)}
@keyframes ds-marq{to{transform:translateX(-50%)}}

/* fit */
.dolly-page .ds-fit{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:clamp(26px,3.5vw,42px)}
.dolly-page .ds-fit .ds-card{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--line-soft);box-shadow:var(--shadow-sm)}
.dolly-page .ds-fit h3{font-size:1.25rem;margin-bottom:1rem}
.dolly-page .ds-fit ul{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.dolly-page .ds-fit li{display:flex;gap:.65em;color:var(--ink-soft);font-size:.98rem;line-height:1.45}
.dolly-page .ds-mk{flex:none;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;margin-top:1px}
.dolly-page .ds-mk--yes{background:rgba(110,130,111,.18);color:var(--forest)}
.dolly-page .ds-mk--no{background:rgba(156,90,40,.14);color:var(--clay-deep)}

/* quotes */
.dolly-page .ds-quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:clamp(26px,3.5vw,42px)}
.dolly-page .ds-quote{margin:0;padding:26px 26px 24px;border-radius:var(--radius);background:rgba(255,255,255,.62);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}
.dolly-page .ds-quote .ds-mark{font-family:var(--font-serif);font-size:2.4rem;line-height:.6;color:var(--clay);height:.55em}
.dolly-page .ds-quote p{font-size:1.08rem;color:var(--ink);margin:.6rem 0 1rem}
.dolly-page .ds-quote cite{font-style:normal;font-size:.88rem;color:var(--muted)}

/* band */
.dolly-page .ds-band{position:relative;overflow:hidden;text-align:center;padding:clamp(40px,6vw,72px) clamp(22px,5vw,60px);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--forest) 0%,var(--forest-deep) 100%);color:#eef2ec}
.dolly-page .ds-band::after{content:"";position:absolute;inset:0;background:radial-gradient(40% 80% at 85% 0,rgba(224,168,115,.3),transparent 70%);pointer-events:none}
.dolly-page .ds-band>*{position:relative;z-index:2}
.dolly-page .ds-band h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
.dolly-page .ds-band p{margin:.9rem auto 1.6rem;max-width:54ch;color:rgba(238,242,236,.82)}

/* faq */
.dolly-page .ds-faq{margin-top:clamp(22px,3vw,36px);border-top:1px solid var(--line)}
.dolly-page .ds-faq details{border-bottom:1px solid var(--line)}
.dolly-page .ds-faq summary{cursor:pointer;list-style:none;padding:20px 0;font-size:1.12rem;font-weight:500;display:flex;justify-content:space-between;gap:20px;align-items:center}
.dolly-page .ds-faq summary::-webkit-details-marker{display:none}
.dolly-page .ds-faq summary::after{content:"+";font-size:1.45rem;color:var(--clay-deep);transition:transform .25s ease;line-height:1}
.dolly-page .ds-faq details[open] summary::after{transform:rotate(45deg)}
.dolly-page .ds-faq .ds-ans{padding:0 0 22px;color:var(--ink-soft);max-width:72ch}

/* contact */
.dolly-page .ds-contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.5vw,56px);align-items:start}
.dolly-page .ds-checklist{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:.75rem}
.dolly-page .ds-checklist li{display:flex;gap:.65em;align-items:center;color:var(--ink-soft)}
.dolly-page .ds-form-card{position:relative;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-soft);box-shadow:var(--shadow);overflow:hidden}
.dolly-page .ds-form-body{padding:clamp(24px,3.2vw,36px)}
.dolly-page .ds-field{margin-bottom:.9rem}
.dolly-page .ds-field label{display:block;font-size:.84rem;font-weight:500;color:var(--ink-soft);margin-bottom:.35rem}
.dolly-page .ds-field input,.dolly-page .ds-field textarea{width:100%;padding:.8em .95em;border-radius:11px;border:1px solid var(--line);background:#fff;font:inherit;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease}
.dolly-page .ds-field input:focus,.dolly-page .ds-field textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 4px rgba(110,130,111,.15)}
.dolly-page .ds-field textarea{min-height:90px;resize:vertical}
.dolly-page .ds-form-note{font-size:.82rem;color:var(--muted);margin-top:.9rem;text-align:center}
.dolly-page .ds-hp{position:absolute;left:-9999px}
.dolly-page .ds-form-success{display:none;padding:clamp(28px,4vw,48px);text-align:center}
.dolly-page .ds-form-card.is-sent .ds-form-body{display:none}
.dolly-page .ds-form-card.is-sent .ds-form-success,.dolly-page .ds-form-success.is-show{display:block}
.dolly-page .ds-tick{width:54px;height:54px;border-radius:50%;background:var(--forest);color:#fff;display:grid;place-items:center;font-size:1.4rem;margin:0 auto .9rem}

/* footer */
.dolly-footer{background:var(--forest-deep);color:#cdd6cd;padding:clamp(48px,6vw,76px) 0 36px}
.dolly-footer .ds-foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:clamp(28px,4.5vw,56px)}
.dolly-footer .ds-logo{height:42px}
.dolly-footer h4{color:#fff;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .9rem;font-weight:600}
.dolly-footer a{display:block;color:#cdd6cd;padding:.26rem 0;transition:color .2s ease}
.dolly-footer a:hover{color:#fff}
.dolly-footer .ds-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.dolly-footer .ds-foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:clamp(36px,5vw,56px);padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:.84rem;color:#9fae9f}
.dolly-footer .ds-btn--light{display:inline-flex}

/* reveal */
.dolly-page .ds-reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.dolly-page .ds-reveal.is-in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:940px){
  .dolly-page .ds-split,.dolly-page .ds-contact{grid-template-columns:1fr}
  .dolly-page .ds-split--rev .ds-media{order:0}
  .dolly-page .ds-grid-3,.dolly-page .ds-fit,.dolly-page .ds-quotes{grid-template-columns:1fr}
  .dolly-footer .ds-foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .dolly-page .ds-toggle{display:block;z-index:80}
  .dolly-page .ds-nav{position:fixed;inset:0 0 0 auto;width:min(84vw,330px);flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;padding:36px;background:var(--glass-bg);-webkit-backdrop-filter:saturate(160%) blur(24px);backdrop-filter:saturate(160%) blur(24px);border-left:1px solid var(--glass-border);transform:translateX(100%);transition:transform .35s ease;z-index:70}
  .dolly-page .ds-nav.is-open{transform:none}
  .dolly-page .ds-navlink,.dolly-header.is-stuck .ds-navlink{color:var(--ink);font-size:1.2rem}
  .dolly-page .ds-hero-inner{padding-top:104px;padding-bottom:84px}
}
@media (max-width:430px){
  .dolly-page{--gutter:18px}
}
/* ============================================================
   ENHANCEMENT LAYER — v2.0.2
   Unified motion, cinematic hero texture, iconography,
   richer micro-interactions and accessible focus states.
   ============================================================ */
.dolly-page{--ease:cubic-bezier(.22,.61,.36,1);--dur:.24s}

/* ---- apply the single type scale everywhere ---- */
.dolly-page .ds-hero h1{font-size:var(--fs-xl)}
.dolly-page .ds-statement-line,.dolly-page .ds-h2,.dolly-page .ds-band h2{font-size:var(--fs-lg)}
.dolly-page .ds-hero .ds-lede,.dolly-page .ds-lede,.dolly-page .ds-sub,
.dolly-page .ds-card h3,.dolly-page .ds-rung h3,.dolly-page .ds-fit h3,
.dolly-page .ds-form-body h3,.dolly-page .ds-form-success h3{font-size:var(--fs-md)}
.dolly-page .ds-navlink,.dolly-page .ds-btn,.dolly-page .ds-link,
.dolly-page .ds-trust .ds-item,.dolly-page .ds-chip,.dolly-page .ds-prose p,
.dolly-page .ds-fit li,.dolly-page .ds-checklist li,.dolly-page .ds-faq summary,
.dolly-page .ds-faq .ds-ans,.dolly-page .ds-quote p,.dolly-page .dolly-footer a{font-size:var(--fs-base)}
.dolly-page .ds-reassure,.dolly-page .ds-quote cite,.dolly-page .ds-form-note,
.dolly-page .ds-field label,.dolly-page .ds-card .ds-num,
.dolly-footer .ds-foot-base,.dolly-page .ds-scroll{font-size:var(--fs-sm)}

/* unified, consistent transitions */
.dolly-page .ds-btn,.dolly-page .ds-card,.dolly-page .ds-rung,.dolly-page .ds-chip,.dolly-page .ds-link{transition-duration:var(--dur);transition-timing-function:var(--ease)}

/* accessible focus rings (keyboard only) */
.dolly-page a:focus-visible,.dolly-page button:focus-visible,.dolly-page summary:focus-visible,.dolly-page input:focus-visible,.dolly-page textarea:focus-visible{outline:2px solid var(--sage);outline-offset:3px;border-radius:6px}
.dolly-page .ds-hero a:focus-visible{outline-color:#f1ddc7}

/* ---- hero: grain + vignette + entrance ---- */
.dolly-page .ds-hero-grain{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}
.dolly-page .ds-hero-vignette{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 50% 35%,transparent 45%,rgba(10,18,17,.55) 100%)}
.dolly-page .ds-hero-inner>*{opacity:0;transform:translateY(20px);animation:ds-hero-in .9s var(--ease) forwards}
.dolly-page .ds-hero-inner>*:nth-child(1){animation-delay:.15s}
.dolly-page .ds-hero-inner>*:nth-child(2){animation-delay:.28s}
.dolly-page .ds-hero-inner>*:nth-child(3){animation-delay:.42s}
.dolly-page .ds-hero-inner>*:nth-child(4){animation-delay:.56s}
.dolly-page .ds-hero-inner>*:nth-child(5){animation-delay:.68s}
@keyframes ds-hero-in{to{opacity:1;transform:none}}

/* eyebrow rule grows in on centred heads */
.dolly-page .ds-head--center .ds-eyebrow::before,.dolly-page .ds-head--center .ds-eyebrow::after{transition:width var(--dur) var(--ease)}
.dolly-page .ds-head--center.is-in .ds-eyebrow::before,.dolly-page .ds-head--center.is-in .ds-eyebrow::after{width:32px}

/* ---- method card iconography ---- */
.dolly-page .ds-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(150deg,rgba(110,130,111,.2),rgba(224,168,115,.16));color:var(--forest);margin-bottom:.2rem}
.dolly-page .ds-ic svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.dolly-page .ds-card .ds-num{display:block;margin-top:.7rem;font-size:.78rem;opacity:.85}

/* ---- richer micro-interactions ---- */
.dolly-page .ds-card:hover{transform:translateY(-5px);border-color:rgba(110,130,111,.45);box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 22px 54px rgba(21,36,34,.15)}
.dolly-page .ds-rung{transition-property:transform,box-shadow,border-color}
.dolly-page .ds-rung:hover{transform:translateY(-3px);border-color:rgba(110,130,111,.4);box-shadow:var(--shadow)}
.dolly-page .ds-quote{transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.dolly-page .ds-quote:hover{transform:translateY(-4px)}
/* animated link underline */
.dolly-page .ds-link{border-bottom:none;position:relative}
.dolly-page .ds-link::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;transform:scaleX(.0);transform-origin:left;transition:transform var(--dur) var(--ease)}
.dolly-page .ds-link:hover::after{transform:scaleX(1)}
/* button sheen */
.dolly-page .ds-btn{position:relative;overflow:hidden}
.dolly-page .ds-btn::before{content:"";position:absolute;top:0;left:-120%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);transition:left .55s var(--ease)}
.dolly-page .ds-btn:hover::before{left:140%}
/* nav link hover underline */
.dolly-page .ds-navlink{position:relative}
.dolly-page .ds-navlink::after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}
.dolly-page .ds-navlink:hover::after{transform:scaleX(1)}

/* chips lift slightly */
.dolly-page .ds-chip:hover{transform:translateY(-2px)}

/* ---- Instagram icons (nav + footer) ---- */
.dolly-page .ds-ig{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid currentColor;color:#eef2ec;opacity:.9;transition:opacity var(--dur) var(--ease),background var(--dur) var(--ease)}
.dolly-page .ds-ig svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
.dolly-page .ds-ig:hover{opacity:1;background:rgba(255,255,255,.14)}
.dolly-header.is-stuck .ds-ig{color:var(--ink-soft)}
.dolly-header.is-stuck .ds-ig:hover{background:rgba(21,36,34,.06)}
@media (max-width:760px){.dolly-page .ds-ig{color:var(--ink)}}
.dolly-footer .ds-foot-social{display:flex;gap:10px;margin-top:1.4rem}
.dolly-footer .ds-foot-social a{display:inline-grid;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.25);color:#cdd6cd;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.dolly-footer .ds-foot-social a:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.08)}
.dolly-footer .ds-foot-social svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .dolly-page .ds-track,.dolly-page .ds-scroll span,.dolly-page .ds-hero-inner>*{animation:none;opacity:1;transform:none}
  .dolly-page .ds-reveal{transition:none;opacity:1;transform:none}
  .dolly-page .ds-btn::before{display:none}
}

/* ============================================================
   v2.1.0 — nav CTA contrast + interior (Services/niche) pages
   ============================================================ */
.dolly-page{--font-display:var(--font-body)} /* alias for ported inline styles */

/* nav CTA: white over the dark hero, brand green once header is solid/stuck */
.dolly-header .ds-btn{background:#fff;color:var(--forest-deep);box-shadow:0 8px 22px rgba(0,0,0,.2)}
.dolly-header .ds-btn:hover{background:#fff;color:var(--forest-deep);transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.26)}
.dolly-header.is-stuck .ds-btn,.dolly-header--solid .ds-btn{background:var(--forest);color:#f6f8f3;box-shadow:0 8px 22px rgba(48,72,66,.22)}
.dolly-header.is-stuck .ds-btn:hover,.dolly-header--solid .ds-btn:hover{background:var(--forest-deep);color:#f6f8f3}

/* solid header for interior pages (no dark hero behind it) */
.dolly-header--solid{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 1px 0 var(--line-soft),0 10px 26px rgba(21,36,34,.06)}
.dolly-header--solid .ds-navlink{color:var(--ink-soft)}
.dolly-header--solid .ds-navlink:hover{color:var(--ink)}
.dolly-header--solid .ds-logo--light{display:none}
.dolly-header--solid .ds-logo--dark{display:block}
.dolly-header--solid .ds-ig{color:var(--ink-soft)}
.dolly-header--solid .ds-ig:hover{background:rgba(21,36,34,.06)}
.dolly-header--solid .ds-toggle{border-color:var(--line);background:var(--glass-bg)}
.dolly-header--solid .ds-toggle span,.dolly-header--solid .ds-toggle span::before,.dolly-header--solid .ds-toggle span::after{background:var(--ink)}

/* breadcrumb */
.dolly-page .ds-crumb{padding-top:96px;display:flex;gap:.5em;align-items:center;font-size:var(--fs-sm);color:var(--muted)}
.dolly-page .ds-crumb a{color:var(--muted);border-bottom:1px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.dolly-page .ds-crumb a:hover{color:var(--ink);border-color:var(--line)}
.dolly-page .ds-crumb span{opacity:.5}

/* interior page hero (clean, no video) */
.dolly-page .ds-pagehero{position:relative;padding:clamp(20px,3vw,40px) 0 clamp(40px,5vw,68px);overflow:clip}
.dolly-page .ds-pagehero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(60% 60% at 86% 4%,rgba(224,168,115,.16),transparent 70%),radial-gradient(50% 60% at 4% 100%,rgba(110,130,111,.14),transparent 70%)}
.dolly-page .ds-pagehero>.ds-wrap{position:relative;z-index:2}
.dolly-page .ds-pagehero h1{font-size:var(--fs-xl);font-weight:600;line-height:1;letter-spacing:-.03em;margin-top:1rem}
.dolly-page .ds-pagehero .ds-lede{margin-top:1.3rem;font-size:var(--fs-md);color:var(--ink-soft)}
.dolly-page .ds-pagehero .ds-cta-row{margin-top:1.7rem;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.dolly-page .ds-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,60px);align-items:center}
.dolly-page .ds-media--portrait{aspect-ratio:2/3}
@media (max-width:940px){.dolly-page .ds-hero-grid{grid-template-columns:1fr}.dolly-page .ds-pagehero .ds-media{max-height:480px}}

/* services 4-up grid */
.dolly-page .ds-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:clamp(26px,3.5vw,44px)}
@media (max-width:940px){.dolly-page .ds-grid-4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.dolly-page .ds-grid-4{grid-template-columns:1fr}}

/* ============================================================
   v2.2.0 — tighter rhythm, centred card content, balanced heads
   ============================================================ */
/* statement band: a proper large title, tight padding */
.dolly-page .ds-statement{padding-block:clamp(18px,2.1vw,32px)}
.dolly-page .ds-statement-line{margin-inline:auto;max-width:none;font-size:clamp(1.9rem,4.4vw,3.4rem);line-height:1.06}

/* centre the content of icon/number feature cards (method + services) */
.dolly-page .ds-grid-3 .ds-card,.dolly-page .ds-grid-4 .ds-card{text-align:center;display:flex;flex-direction:column;align-items:center}
.dolly-page .ds-grid-3 .ds-ic{margin-inline:auto}
.dolly-page .ds-grid-3 .ds-card p,.dolly-page .ds-grid-4 .ds-card p{max-width:30ch}

/* section heads: keep heading and lede tidy; consistent reveal */
.dolly-page .ds-head{max-width:none}
.dolly-page .ds-head--center{max-width:none}

/* trim default gaps a touch so sections feel connected */
.dolly-page .ds-head--center .ds-sub{margin-top:.9rem}
.dolly-page .ds-grid-3,.dolly-page .ds-grid-4,.dolly-page .ds-fit,.dolly-page .ds-quotes,.dolly-page .ds-ladder{margin-top:clamp(22px,2.6vw,36px)}

/* fluid headings: avoid layout flash before JS fits them */
.dolly-page .ds-hero h1,.dolly-page .ds-pagehero h1,.dolly-page .ds-h2,.dolly-page .ds-statement-line{transition:none}

/* ============================================================
   v2.2.2 — robust split balance: image fills the column height of
   the text beside it (crops, never towers). Works regardless of the
   .ds-reveal wrapper by making each grid child a flex column.
   ============================================================ */
.dolly-page .ds-split{align-items:stretch}
.dolly-page .ds-split>div{min-width:0}
/* image is taken out of flow so the TEXT defines the row height; the picture
   then fills that height and crops, instead of its portrait ratio forcing a
   tall row and leaving empty space. */
.dolly-page .ds-split .ds-media{position:relative;height:100%;min-height:360px;aspect-ratio:auto;overflow:hidden}
.dolly-page .ds-split .ds-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:940px){
  .dolly-page .ds-split{align-items:start}
  .dolly-page .ds-split .ds-media{height:auto;min-height:0;aspect-ratio:16/11;max-height:420px}
}
/* ============================================================
   v2.2.6 — STRICT 5-STEP TYPE SCALE enforced platform-wide.
   Every text element maps to exactly one of the five tokens.
   This block is last so it overrides every earlier one-off size.
   ============================================================ */
/* 1 — display */
.dolly-page .ds-pagehero h1{font-size:var(--fs-xl)}
/* 2 — heading (H2 + the statement line) */
.dolly-page .ds-h2,.dolly-page .ds-band h2,.dolly-page .ds-statement-line{font-size:var(--fs-lg)}
/* 3 — subhead (H3 titles, lede, sub) */
.dolly-page .ds-hero .ds-lede,.dolly-page .ds-lede,.dolly-page .ds-sub,
.dolly-page .ds-card h3,.dolly-page .ds-rung h3,.dolly-page .ds-fit h3,
.dolly-page .ds-form-body h3,.dolly-page .ds-form-success h3,.dolly-page .ds-rung .ds-tag{font-size:var(--fs-md)}
/* 4 — body (all running copy + controls) */
.dolly-page,.dolly-page .ds-navlink,.dolly-page .ds-btn,.dolly-page .ds-link,
.dolly-page .ds-prose p,.dolly-page .ds-split .ds-prose p,.dolly-page .ds-card p,.dolly-page .ds-rung p,
.dolly-page .ds-fit li,.dolly-page .ds-checklist li,.dolly-page .ds-trust .ds-item,
.dolly-page .ds-chip,.dolly-page .ds-faq summary,.dolly-page .ds-faq .ds-ans,
.dolly-page .ds-quote p,.dolly-footer a,.dolly-page .ds-field input,.dolly-page .ds-field textarea,
.dolly-page .ds-contact>div>p{font-size:var(--fs-base)}
/* 5 — caption (eyebrow, numbers, notes, labels, fine print) */
.dolly-page .ds-eyebrow,.dolly-page .ds-card .ds-num,.dolly-page .ds-quote cite,
.dolly-page .ds-form-note,.dolly-page .ds-field label,.dolly-page .ds-reassure,
.dolly-page .ds-scroll,.dolly-page .ds-crumb,.dolly-footer h4,.dolly-footer .ds-foot-base{font-size:var(--fs-sm)}
/* numbers read as the SAME caption style as the eyebrow */
.dolly-page .ds-card .ds-num{letter-spacing:.16em;text-transform:uppercase;font-weight:600;opacity:1;color:var(--clay-deep)}

/* FOOTER BASE TIDY */
.dolly-footer .ds-foot-base{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;align-items:center}
.dolly-footer .ds-foot-base a{display:inline;border:0}
.dolly-footer .ds-foot-legal{display:inline-flex;gap:.55rem;white-space:nowrap}

/* QA ALIGNMENT v625 */
.dolly-page .ds-faq summary:focus,.dolly-page .ds-faq summary:focus-visible,.dolly-page .ds-faq details:focus,.dolly-page .ds-faq details:focus-within{outline:none!important;box-shadow:none!important}
.dolly-page .ds-faq .ds-ans{max-width:none}

/* MOBILE FOOT v626 */
@media (max-width:560px){
 .dolly-page .dolly-footer .ds-foot-base{flex-direction:column!important;align-items:flex-start!important;gap:14px!important}
 .dolly-page .dolly-footer .ds-foot-base>div{flex-direction:column!important;align-items:flex-start!important;gap:10px!important}
}
