/* Leon Legal — site styles
   Layout: editorial 12-column rhythm, generous whitespace; light paper ground with deep-ink "chapters"
   (approach, scenario, CTA) for contrast. One accent: a civic, ink-blue. */

/* ---------------------------------------------------------------- fonts (self-hosted, GDPR-friendly) */
@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 300 600; font-display: swap; src: url(../fonts/fraunces-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 300 600; font-display: swap; src: url(../fonts/fraunces-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fonts/fraunces-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fonts/fraunces-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/manrope-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/manrope-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------------------------------------------------------------- tokens */
:root{
  /* colour: navy ground, warm-white text, one gold accent (Leon's palette) */
  --bg:var(--navy);        /* page navy */
  --deep:var(--navy);      /* darker chapters, footer */
  --surface:var(--navy-card);   /* cards */
  --text:#f4f0e8;      /* warm white: 13:1 on --bg */
  --muted:#b3bccb;     /* secondary text: 8:1 on --bg */
  --accent:#d2a250;    /* gold: 7:1 on --bg */
  --line:rgba(255,255,255,.13);
  --on-ink:#f4f0e8;
  --on-ink-muted:rgba(244,240,232,.74);
  --accent-on-ink:var(--gold);
  --on-accent:var(--navy);

  /* type */
  --serif:'Fraunces','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --sans:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --fs-body:clamp(1.125rem,1.06rem + .25vw,1.25rem);     /* 18 → 20px */
  --fs-small:1rem;
  --fs-lede:clamp(1.25rem,1.1rem + .6vw,1.5rem);
  --fs-h3:clamp(1.5rem,1.3rem + .8vw,2rem);
  --fs-h2:clamp(2.3rem,1.5rem + 3vw,4.25rem);
  --fs-display:clamp(3rem,1.6rem + 5.6vw,7.2rem);

  /* shape + rhythm: crisp corners, like a printed letterhead */
  --r-sm:3px; --r:6px; --r-lg:8px; --r-pill:2px;
  --gutter:clamp(1.25rem,4vw,3rem);
  --maxw:1320px;
  --section:clamp(5rem,4rem + 6vw,10rem);
  --header-h:84px;
  --topbar-h:0px;
  --ease:cubic-bezier(.22,1,.36,1);
  color-scheme:dark;
}

/* ---------------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--fs-body);line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,picture,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
p{margin:0}
h1,h2,h3{margin:0;font-weight:400;text-wrap:balance}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
::selection{background:var(--accent);color:var(--on-ink)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
.approach :focus-visible,.scenario :focus-visible,.cta-band :focus-visible,.site-footer :focus-visible{outline-color:var(--accent-on-ink)}
main:focus{outline:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:1rem;top:-4rem;z-index:200;background:var(--deep);color:var(--on-ink);padding:.75rem 1.25rem;border-radius:var(--r-sm);text-decoration:none;transition:top .2s}
.skip-link:focus{top:calc(env(safe-area-inset-top,0px) + 1rem)}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.wrap.narrow{max-width:860px}
.i{width:1.15em;height:1.15em;flex:none}
.muted{color:var(--muted)}

/* placeholder facts: visible but calm */
.ph{background:rgba(210,162,80,.09);color:inherit;border-radius:4px;padding:0 .18em;box-decoration-break:clone;-webkit-box-decoration-break:clone;
  outline:1px dashed rgba(210,162,80,.35);outline-offset:-1px}
.approach .ph,.scenario .ph,.cta-band .ph,.site-footer .ph{background:rgba(210,162,80,.16);outline-color:rgba(210,162,80,.45)}

/* ---------------------------------------------------------------- type */
.display{font-family:var(--serif);font-size:var(--fs-display);font-weight:340;line-height:.98;letter-spacing:-.025em;font-optical-sizing:auto}
.display--page{font-size:clamp(2.6rem,1.6rem + 4.4vw,6rem);line-height:1.02}
.h2{font-family:var(--serif);font-size:var(--fs-h2);font-weight:350;line-height:1.04;letter-spacing:-.02em}
.h3{font-family:var(--serif);font-size:var(--fs-h3);font-weight:420;line-height:1.2;letter-spacing:-.01em}
.lede{font-size:var(--fs-lede);line-height:1.55;color:var(--muted);max-width:36em}
.lede--serif{font-family:var(--serif);font-style:italic;color:var(--text);font-size:clamp(1.4rem,1.1rem + 1.2vw,2.1rem);line-height:1.3;max-width:28em}
.eyebrow{font-family:var(--sans);font-size:.9375rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem}
.eyebrow::before{content:"";width:2rem;height:1px;background:currentColor;flex:none}
.eyebrow--light{color:var(--accent-on-ink)}
.mono-mark{letter-spacing:.08em}
.prose p+p{margin-top:1.25em}
.prose{max-width:40em}
.prose--lg{font-size:clamp(1.2rem,1.1rem + .4vw,1.4rem);max-width:none}
.split-word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split-word>span{display:inline-block;will-change:transform}

/* ---------------------------------------------------------------- buttons + links */
.btn{--bh:3.5rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:var(--bh);padding:0 1.6rem;border-radius:var(--r-pill);
  font-family:var(--sans);font-size:1.0625rem;font-weight:600;letter-spacing:.005em;text-decoration:none;white-space:nowrap;
  transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease);border:1.5px solid transparent;position:relative;will-change:transform}
.btn .i{transition:transform .4s var(--ease)}
.btn:hover .i{transform:translateX(3px)}
.btn-sm{--bh:2.75rem;padding:0 1.15rem;font-size:1rem}
.btn-lg{--bh:3.875rem;padding:0 1.9rem;font-size:1.125rem}
.btn-primary{background:var(--deep);color:var(--on-ink)}
.btn-primary:hover{background:var(--accent)}
.btn-ghost{border-color:var(--text);color:var(--text)}
.btn-ghost:hover{background:var(--deep);color:var(--on-ink)}
.btn-light{background:var(--on-ink);color:var(--text)}
.btn-light:hover{background:var(--accent-on-ink)}
.btn-outline-light{border-color:rgba(252,251,248,.5);color:var(--on-ink)}
.btn-outline-light:hover{border-color:var(--on-ink);background:rgba(252,251,248,.08)}
.btn-row{display:flex;flex-wrap:wrap;gap:.875rem;align-items:center}
.link-arrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:.15rem}
.link-arrow .i{transition:transform .4s var(--ease)}
.link-arrow:hover .i{transform:translateX(4px)}
.linklike{color:inherit;text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.tags{display:flex;flex-wrap:wrap;gap:.4rem}
.tag{font-size:.875rem;font-weight:600;letter-spacing:.04em;padding:.2rem .7rem;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--muted);background:var(--bg)}

/* ---------------------------------------------------------------- header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;padding-top:env(safe-area-inset-top,0px);transition:background-color .4s var(--ease),box-shadow .4s var(--ease),transform .5s var(--ease)}
.site-header.is-solid{background:rgba(14,25,36,.92);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--line)}
.site-header.is-hidden{transform:translateY(-100%)}
.header-inner{height:var(--header-h);display:flex;align-items:center;gap:1.5rem}
.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--text);margin-right:auto}
.brand-mark{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--deep);color:var(--on-ink);display:grid;place-items:center;font-family:var(--serif);font-size:1.45rem;font-style:italic;line-height:1;padding-bottom:.1rem}
.brand-name{font-family:var(--serif);font-size:1.6rem;font-weight:450;letter-spacing:-.01em}
.brand--light{color:var(--on-ink)}
.brand--light .brand-mark{background:var(--on-ink);color:var(--text)}
.main-nav>ul{display:flex;gap:.25rem;align-items:center}
.nav-link{display:inline-flex;align-items:center;gap:.3rem;padding:.6rem .9rem;border-radius:var(--r-pill);text-decoration:none;font-size:1.0625rem;font-weight:500;transition:background-color .3s}
.nav-link:hover,.nav-link[aria-expanded="true"]{background:rgba(255,255,255,.06)}
.nav-link[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}
.i-chev{width:1rem;height:1rem;transition:transform .3s var(--ease)}
[aria-expanded="true"] .i-chev{transform:rotate(180deg)}
.has-panel{position:relative}
.nav-panel{position:absolute;top:calc(100% + .75rem);left:50%;transform:translateX(-40%);width:min(860px,80vw);background:var(--bg);border-radius:var(--r);
  box-shadow:0 30px 80px -20px rgba(255,255,255,.25),0 0 0 1px var(--line);padding:1rem}
.nav-panel:not([hidden]){animation:panelIn .35s var(--ease)}
@keyframes panelIn{from{opacity:0;transform:translate(-40%,-8px)}}
.np-grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem}
.np-grid a{display:grid;gap:.15rem;padding:1rem 1.1rem;border-radius:var(--r-sm);text-decoration:none;transition:background-color .25s}
.np-grid a:hover{background:var(--surface)}
.np-mark{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:.95rem}
.np-title{font-weight:600}
.np-text{font-size:.95rem;color:var(--muted);line-height:1.45}
.np-all{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem;padding:1rem 1.1rem;border-top:1px solid var(--line);font-weight:600;text-decoration:none;color:var(--accent)}
.header-tools{display:flex;align-items:center;gap:1rem}
.lang-switch{display:flex;border:1px solid var(--line);border-radius:var(--r-pill);padding:3px}
.lang-switch a{display:grid;place-items:center;min-width:2.5rem;height:2.25rem;padding:0 .5rem;border-radius:var(--r-pill);font-size:.875rem;font-weight:600;letter-spacing:.06em;text-decoration:none;color:var(--muted);transition:background-color .25s,color .25s}
.lang-switch a:hover{color:var(--text)}
.lang-switch a[aria-current="true"]{background:var(--deep);color:var(--on-ink)}
.lang-switch--light{border-color:rgba(252,251,248,.25);width:max-content;margin-top:1.5rem}
.lang-switch--light a{color:var(--on-ink-muted)}
.lang-switch--light a:hover{color:var(--on-ink)}
.lang-switch--light a[aria-current="true"]{background:var(--on-ink);color:var(--text)}
.lang-switch--lg a{min-width:3.25rem;height:2.75rem;font-size:1rem}
.menu-toggle{display:none;align-items:center;gap:.6rem;height:2.75rem;padding:0 .4rem 0 1rem;border-radius:var(--r-pill);border:1.5px solid var(--text);font-weight:600;font-size:1rem}
.menu-toggle-icon{width:2rem;height:2rem;border-radius:50%;background:var(--deep);display:grid;place-content:center;gap:5px}
.menu-toggle-icon i{display:block;width:14px;height:1.5px;background:var(--on-ink);transition:transform .4s var(--ease)}
.menu-open .menu-toggle-icon i:first-child{transform:translateY(3.25px) rotate(45deg)}
.menu-open .menu-toggle-icon i:last-child{transform:translateY(-3.25px) rotate(-45deg)}

.mobile-menu{position:fixed;inset:0;z-index:90;background:var(--bg);overflow-y:auto;padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
.mobile-menu:not([hidden]){animation:menuIn .5s var(--ease)}
@keyframes menuIn{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.mobile-menu-inner{display:flex;flex-direction:column;gap:2rem;padding-block:1.5rem 2.5rem;min-height:100%}
.mm-main a{display:block;font-family:var(--serif);font-size:clamp(2.2rem,8vw,3.2rem);line-height:1.2;text-decoration:none;padding:.15rem 0}
.mm-services{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line);display:grid;gap:.35rem}
.mm-services a{color:var(--muted);text-decoration:none;font-size:1.125rem;display:block;padding:.3rem 0}
.mm-foot{margin-top:auto;display:grid;gap:1.25rem;justify-items:start}
.mm-contact{display:grid;gap:.5rem}
.mm-contact a{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-weight:500}

/* ---------------------------------------------------------------- hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-block:calc(var(--header-h) + 2rem) 5rem;overflow:hidden}
.hero-media{position:absolute;top:calc(var(--header-h) + env(safe-area-inset-top,0px) + .75rem);right:var(--gutter);bottom:1.5rem;width:min(44vw,640px);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.hero-img{position:absolute;inset:0;transform-origin:50% 40%}
.hero-img picture,.hero-img img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.hero-caption{position:absolute;left:1.25rem;bottom:1.25rem;background:rgba(14,25,36,.82);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text);font-size:.9375rem;font-weight:500;padding:.5rem 1rem;border-radius:var(--r-pill)}
.hero-content{position:relative;z-index:2}
.hero-content{padding-right:calc((min(100vw,var(--maxw)) - 100vw) / 2 + min(44vw,640px) + 4rem)}
.hero-content>*{max-width:48rem}
.hero .display{font-size:min(var(--fs-display),7.2vw)}
.hero .lede{margin-top:2rem}
.hero .btn-row{margin-top:2.5rem}
.scroll-cue{position:absolute;left:max(var(--gutter),calc((100vw - var(--maxw)) / 2 + var(--gutter)));bottom:2rem;display:flex;align-items:center;gap:.75rem;font-size:.875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.scroll-cue i{width:3.5rem;height:1px;background:var(--line);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--deep);transform:translateX(-100%);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{60%,100%{transform:translateX(100%)}}

/* ---------------------------------------------------------------- statement + stats */
.statement{padding-block:var(--section)}
.statement-text{font-family:var(--serif);font-size:clamp(1.9rem,1.2rem + 2.6vw,3.6rem);line-height:1.18;letter-spacing:-.015em;font-weight:350;max-width:22em}
.word{transition:none}
.stats{margin-top:clamp(4rem,8vw,7rem);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.stat{padding:2rem 1.5rem 0 0}
.stat+.stat{padding-left:1.5rem;border-left:1px solid var(--line)}
.stat-num{font-family:var(--serif);font-size:clamp(3rem,2rem + 3vw,5rem);line-height:1;font-weight:330;letter-spacing:-.02em;font-variant-numeric:tabular-nums lining-nums}
.stat-label{margin-top:.75rem;color:var(--muted);font-size:1.0625rem;line-height:1.45;max-width:14em}

/* ---------------------------------------------------------------- services track */
.services{padding-block:var(--section) calc(var(--section) * .6);overflow:hidden}
.services-head{display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4rem)}
.services-intro{display:grid;gap:1.25rem;justify-items:start;color:var(--muted)}
.track-viewport{padding-inline:var(--gutter);max-width:calc(var(--maxw) + 0px);margin-inline:auto}
.track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.svc-card{position:relative;display:flex;flex-direction:column;height:100%;min-height:26rem;padding:2rem;border-radius:var(--r);background:var(--surface);text-decoration:none;overflow:hidden;
  transition:background-color .5s var(--ease),color .5s var(--ease),transform .6s var(--ease)}
.svc-card::after{content:"";position:absolute;inset:auto -20% -60% auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(210,162,80,.16),transparent 70%);transition:transform .8s var(--ease);transform:scale(.6)}
.svc-card:hover{background:var(--deep);color:var(--on-ink);transform:translateY(-6px)}
.svc-card:hover::after{transform:scale(1.4)}
.svc-mark{font-family:var(--serif);font-style:italic;font-size:clamp(1.9rem,1.5rem + 1.2vw,2.6rem);line-height:1.05;color:var(--accent);letter-spacing:-.01em;transition:color .5s}
.svc-card:hover .svc-mark{color:var(--accent-on-ink)}
.svc-card .tags{margin-top:1.25rem}
.svc-card:hover .tag{background:transparent;color:var(--on-ink-muted);border-color:rgba(252,251,248,.25)}
.svc-title{margin-top:auto;padding-top:3rem;font-family:var(--serif);font-size:var(--fs-h3);line-height:1.15;letter-spacing:-.01em}
.svc-text{margin-top:.75rem;color:var(--muted);font-size:1.0625rem;line-height:1.55;transition:color .5s}
.svc-card:hover .svc-text{color:var(--on-ink-muted)}
.svc-more{margin-top:1.5rem;display:inline-flex;align-items:center;gap:.5rem;font-weight:600}
.svc-more .i{transition:transform .4s var(--ease)}
.svc-card:hover .svc-more .i{transform:translateX(5px)}
.track-progress{display:none}

/* horizontal mode (desktop + motion, set by JS) */
.is-hscroll .services{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-block:calc(var(--header-h) + 1.5rem) 2.5rem}
.is-hscroll .services-head{margin-bottom:2.5rem}
.is-hscroll .track-viewport{max-width:none;padding-inline:0;overflow:visible}
.is-hscroll .track{display:flex;gap:1.5rem;width:max-content;padding-inline:max(var(--gutter),calc((100vw - var(--maxw)) / 2 + var(--gutter)))}
.is-hscroll .svc-card-wrap{width:clamp(22rem,30vw,27rem)}
.is-hscroll .svc-card{min-height:min(28rem,54vh)}
.is-hscroll .track-progress{display:block;margin-top:2.5rem}
.track-progress{height:2px;position:relative}
.track-progress::before{content:"";position:absolute;inset:0 var(--gutter);background:var(--line)}
.track-progress span{position:absolute;left:var(--gutter);top:0;height:2px;width:calc(100% - var(--gutter) * 2);background:var(--deep);transform-origin:left;transform:scaleX(0)}

/* ---------------------------------------------------------------- approach (pinned) */
.approach{background:var(--deep);color:var(--on-ink);padding-block:var(--section);position:relative;overflow:hidden}
.approach-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,6rem)}
.approach-counter{margin-top:2.5rem;font-family:var(--serif);font-size:clamp(4rem,3rem + 4vw,8rem);line-height:1;font-weight:300;display:flex;align-items:baseline;gap:.75rem;font-variant-numeric:tabular-nums lining-nums}
.approach-counter .of{font-size:.3em;color:var(--on-ink-muted)}
.approach-bar{margin-top:1.5rem;height:2px;background:rgba(252,251,248,.18);max-width:18rem}
.approach-bar span{display:block;height:100%;background:var(--accent-on-ink);transform-origin:left;transform:scaleX(.25)}
.steps{display:grid;gap:0}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;padding:2.25rem 0;border-top:1px solid rgba(252,251,248,.16)}
.step:last-child{border-bottom:1px solid rgba(252,251,248,.16)}
.step-num{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--accent-on-ink);line-height:1.4;min-width:2.5rem}
.step-title{font-family:var(--serif);font-size:var(--fs-h3);line-height:1.2}
.step-text{margin-top:.75rem;color:var(--on-ink-muted);max-width:34em}
/* pinned mode */
.is-pinned .approach{min-height:100vh;display:flex;align-items:center;padding-block:calc(var(--header-h) + 2rem) 3rem}
.is-pinned .approach-counter,.is-pinned .approach-bar{display:flex}
.is-pinned .steps{position:relative;align-self:center;min-height:22rem}
.is-pinned .step{position:absolute;inset:0 0 auto 0;border:0;padding:0;grid-template-columns:1fr;opacity:0;visibility:hidden}
.is-pinned .step-num{display:none}
.is-pinned .step-title{font-size:clamp(2.6rem,1.8rem + 3vw,5rem);line-height:1.02;letter-spacing:-.02em;font-weight:330}
.is-pinned .step-text{font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem);line-height:1.5;margin-top:1.5rem}
.is-pinned .step:first-child{opacity:1;visibility:visible}
.approach-counter,.approach-bar{display:none}

/* ---------------------------------------------------------------- who */
.who{padding-block:var(--section)}
.who-grid{margin-top:clamp(2.5rem,5vw,4rem);display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.who-card{padding:clamp(1.75rem,3vw,3rem);border-radius:var(--r);border:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;gap:1.25rem}
.who-card .eyebrow{margin-bottom:0}
.who-moment{font-family:var(--serif);font-style:italic;font-size:clamp(1.8rem,1.4rem + 1.4vw,2.6rem);line-height:1.1}
.who-story{font-size:1.1875rem}
.who-turn{padding-left:1.25rem;border-left:2px solid var(--accent);color:var(--muted)}
.who-card .link-arrow{margin-top:auto;align-self:flex-start}

/* ---------------------------------------------------------------- about teaser */
.about-teaser{padding-block:var(--section);background:var(--surface)}
.about-grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2.5rem,7vw,7rem);align-items:center}
.about-media{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;max-width:100%;position:relative}
.about-img{position:absolute;inset:-10% 0;height:120%}
.about-img picture,.about-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.about-copy{display:grid;gap:1.25rem;justify-items:start}
.about-copy .h2{margin-bottom:.75rem}
.about-copy>p{color:var(--muted);max-width:34em}
.pull-quote{margin:1.25rem 0 1rem;padding:0}
.pull-quote p{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem);line-height:1.2;letter-spacing:-.01em}
.pull-quote footer{margin-top:.75rem;font-size:1rem;color:var(--muted)}
.pull-quote--xl{margin-block:3rem 0;padding-top:2.5rem;border-top:1px solid var(--line)}
.pull-quote--xl p{font-size:clamp(2rem,1.4rem + 2.4vw,3.4rem)}

/* ---------------------------------------------------------------- trust */
.trust{padding-block:var(--section)}
.guarantees{margin-top:clamp(2.5rem,5vw,4rem);display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.guarantee{padding:1.75rem;border-radius:var(--r);background:var(--surface);display:grid;gap:.6rem;align-content:start}
.g-icon{width:3rem;height:3rem;border-radius:50%;background:var(--bg);display:grid;place-items:center;color:var(--accent);margin-bottom:.5rem}
.g-icon .i{width:1.5rem;height:1.5rem}
.guarantee h3{font-family:var(--serif);font-size:1.5rem;line-height:1.2}
.guarantee p{color:var(--muted);font-size:1.0625rem;line-height:1.55}
.reviews{margin-top:1.25rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.review{margin:0;padding:2rem;border-radius:var(--r);border:1px solid var(--line);display:flex;flex-direction:column;gap:1.25rem}
.review-badge{align-self:flex-start;font-size:.8125rem;font-weight:600;letter-spacing:.04em;padding:.25rem .7rem;border-radius:var(--r-pill);border:1px dashed var(--accent);color:var(--accent);line-height:1.4}
.review blockquote{margin:0}
.review blockquote p{font-family:var(--serif);font-size:1.4rem;line-height:1.35}
.review figcaption{margin-top:auto;color:var(--muted);font-size:1rem}

/* ---------------------------------------------------------------- faq */
.faq{padding-block:var(--section);border-top:1px solid var(--line)}
.faq-grid{display:grid;grid-template-columns:4fr 7fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{font-size:inherit;font-family:var(--sans);font-weight:600}
.faq-q button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;text-align:left;padding:1.6rem 0;font-size:clamp(1.15rem,1.05rem + .35vw,1.35rem);font-weight:600;line-height:1.35}
.faq-q button:hover{color:var(--accent)}
.i-plus{width:1.75rem;height:1.75rem;padding:.3rem;border-radius:50%;border:1px solid var(--line);transition:transform .45s var(--ease),background-color .3s}
[aria-expanded="true"] .i-plus{transform:rotate(45deg);background:var(--deep);color:var(--on-ink);border-color:var(--text)}
.faq-a{overflow:hidden}
.faq-a p{padding:0 3rem 1.75rem 0;color:var(--muted);max-width:42em}

/* ---------------------------------------------------------------- CTA band */
.cta-band{padding-block:0 var(--section)}
.cta-inner{background:var(--deep);color:var(--on-ink);border-radius:var(--r-lg);padding:clamp(2.5rem,7vw,7rem);position:relative;overflow:hidden;isolation:isolate}
.cta-inner::before{content:"";position:absolute;z-index:-1;right:-10%;top:-40%;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(210,162,80,.22),transparent 65%)}
.cta-inner .h2{max-width:14em}
.cta-text{margin-top:1.5rem;color:var(--on-ink-muted);font-size:var(--fs-lede);max-width:30em}
.cta-inner .btn-row{margin-top:2.5rem}

/* ---------------------------------------------------------------- footer + newsletter */
.site-footer{background:var(--deep);color:var(--on-ink);padding-block:clamp(4rem,8vw,7rem) 2rem;padding-bottom:calc(2rem + env(safe-area-inset-bottom,0px))}
.newsletter{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 4rem;padding-bottom:clamp(3rem,6vw,5rem);border-bottom:1px solid rgba(252,251,248,.14)}
.nl-title{font-family:var(--serif);font-size:clamp(2rem,1.5rem + 2vw,3.2rem);line-height:1.08;letter-spacing:-.015em;grid-row:span 2}
.nl-text{color:var(--on-ink-muted)}
.nl-row{display:flex;gap:.6rem;flex-wrap:wrap}
.nl-row input{flex:1 1 15rem;min-width:0;height:3.5rem;padding:0 1.25rem;border-radius:var(--r-pill);border:1.5px solid rgba(252,251,248,.3);background:transparent;color:var(--on-ink)}
.nl-row input::placeholder{color:rgba(252,251,248,.55)}
.nl-row input:focus{outline:none;border-color:var(--on-ink);box-shadow:0 0 0 3px rgba(210,162,80,.4)}
.nl-row input[aria-invalid="true"]{border-color:#f0a3a3}
.nl-msg{margin-top:.75rem;font-size:1rem;color:var(--on-ink-muted)}
.nl-msg.is-error{color:#f6c0c0}
.nl-success{display:flex;gap:.6rem;align-items:center;font-size:1.125rem;padding:1rem 1.25rem;border-radius:var(--r);background:rgba(252,251,248,.08)}
.nl-success:focus{outline:none}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:2.5rem;padding-block:clamp(3rem,6vw,5rem)}
.footer-brand p{margin-top:1rem;color:var(--on-ink-muted);max-width:20em}
.footer-col h2{font-family:var(--sans);font-size:.875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-on-ink);margin-bottom:1.25rem}
.footer-col ul{display:grid;gap:.55rem}
.footer-col a{text-decoration:none;color:var(--on-ink-muted);transition:color .2s}
.footer-col a:hover{color:var(--on-ink);text-decoration:underline}
.footer-contact li{display:flex;gap:.65rem;align-items:flex-start;color:var(--on-ink-muted)}
.footer-contact li .i{margin-top:.3em}
.footer-contact a{display:inline-flex;gap:.65rem;align-items:flex-start;overflow-wrap:anywhere}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;padding-top:2rem;border-top:1px solid rgba(252,251,248,.14);font-size:1rem;color:var(--on-ink-muted)}
.footer-bottom ul{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
.footer-bottom a,.footer-bottom .linklike{color:var(--on-ink-muted);text-decoration:none}
.footer-bottom a:hover,.footer-bottom .linklike:hover{color:var(--on-ink);text-decoration:underline}

/* ---------------------------------------------------------------- cookie banner */
.cookie{position:fixed;z-index:120;left:max(1rem,env(safe-area-inset-left,0px));bottom:calc(1rem + env(safe-area-inset-bottom,0px));width:min(30rem,calc(100% - 2rem));
  background:var(--bg);color:var(--text);border-radius:var(--r);padding:1.5rem;box-shadow:0 30px 70px -20px rgba(255,255,255,.35),0 0 0 1px var(--line)}
.cookie:not([hidden]){animation:cookieIn .6s var(--ease) .6s both}
@keyframes cookieIn{from{opacity:0;transform:translateY(16px)}}
.cookie-title{font-family:var(--serif);font-size:1.5rem;margin-bottom:.4rem}
.cookie-text{font-size:1rem;line-height:1.55;color:var(--muted)}
.cookie-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}
.cookie-actions .btn{flex:1 1 auto}

/* ---------------------------------------------------------------- inner pages */
.page-hero{position:relative;padding-block:calc(var(--header-h) + clamp(3rem,8vw,7rem)) clamp(3rem,6vw,5rem);overflow:hidden}
.page-hero .lede{margin-top:1.75rem}
.page-hero .display{max-width:15em}
.breadcrumb{margin-bottom:2.5rem;font-size:1rem;color:var(--muted)}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:.4rem}
.breadcrumb li+li::before{content:"/";margin-right:.4rem;color:var(--line)}
.breadcrumb a{text-decoration:none}
.breadcrumb a:hover{text-decoration:underline;color:var(--text)}
.tags--hero{margin-top:2rem}
.page-hero--service .wrap,.page-services .page-hero .wrap{position:relative;z-index:1}
/* glass façade: echoes the architecture photography of the original site */
.facade{position:absolute;top:0;right:0;width:min(42vw,560px);height:130%;opacity:.9;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 35%);mask-image:linear-gradient(90deg,transparent,#000 35%)}
.facade i{position:absolute;inset:0;
  background:
    linear-gradient(115deg,transparent 30%,rgba(252,251,248,.55) 42%,transparent 52%,transparent 62%,rgba(252,251,248,.35) 68%,transparent 74%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.22) 0 2px,transparent 2px 78px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.16) 0 2px,transparent 2px 110px),
    linear-gradient(180deg,var(--navy-card),var(--navy) 45%,var(--navy))}
.svc-body{padding-block:clamp(2rem,5vw,4rem) var(--section)}
.svc-grid{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:clamp(2.5rem,7vw,7rem);align-items:start}
.svc-grid .prose{font-size:clamp(1.15rem,1.08rem + .3vw,1.3rem)}
.svc-grid .h3{margin-top:3.5rem;margin-bottom:1.5rem}
.help-list{display:grid;border-top:1px solid var(--line)}
.help-list li{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.help-list .i{color:var(--accent);margin-top:.3em;width:1.3rem;height:1.3rem}
.svc-aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.aside-card{background:var(--surface);border-radius:var(--r);padding:1.75rem;display:grid;gap:.9rem}
.aside-title{font-family:var(--serif);font-size:1.5rem;line-height:1.2}
.aside-person{display:flex;align-items:center;gap:.9rem;font-weight:600;padding-bottom:.4rem}
.avatar{width:3.5rem;height:3.5rem;border-radius:50%;overflow:hidden;flex:none}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.aside-line{display:flex;gap:.65rem;align-items:center;text-decoration:none;color:var(--text);overflow-wrap:anywhere}
.aside-line:hover{color:var(--accent);text-decoration:underline}
.aside-card .btn{margin-top:.5rem;white-space:normal;text-align:center}
.scenario{background:var(--deep);color:var(--on-ink);padding-block:var(--section)}
.scenario-text{font-family:var(--serif);font-size:clamp(1.7rem,1.2rem + 2vw,3rem);line-height:1.25;font-weight:350;letter-spacing:-.01em;max-width:26em}
.faq--compact{border-top:0}
.next-svc{padding-block:0 var(--section)}
.next-link{display:grid;gap:.5rem;padding-block:3rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none}
.next-link .eyebrow{margin:0}
.next-title{display:flex;align-items:center;gap:1.5rem;font-family:var(--serif);font-size:clamp(2.2rem,1.4rem + 4vw,5.5rem);line-height:1.05;letter-spacing:-.02em}
.next-title .i{width:.7em;height:.7em;transition:transform .6s var(--ease)}
.next-link:hover .next-title .i{transform:translateX(.3em)}
.next-link:hover .next-title{color:var(--accent)}

.svc-list-section{padding-block:0 var(--section)}
.svc-list{border-top:1px solid var(--text)}
.svc-row a{display:grid;grid-template-columns:14rem minmax(0,1fr) auto 3rem;gap:2rem;align-items:center;padding:2.25rem 0;border-bottom:1px solid var(--line);text-decoration:none;position:relative;transition:padding .5s var(--ease)}
.svc-row a::before{content:"";position:absolute;inset:0 calc(var(--gutter) * -1);background:var(--surface);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease)}
.svc-row{position:relative;z-index:0}
.svc-row a:hover::before{transform:scaleY(1)}
.svc-row-mark{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:1.35rem}
.svc-row-main{display:grid;gap:.35rem}
.svc-row-title{font-family:var(--serif);font-size:clamp(1.7rem,1.3rem + 1.4vw,2.6rem);line-height:1.1}
.svc-row-text{color:var(--muted)}
.svc-row-arrow{width:3rem;height:3rem;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background-color .4s,color .4s,transform .5s var(--ease)}
.svc-row a:hover .svc-row-arrow{background:var(--deep);color:var(--on-ink);transform:rotate(-45deg)}

.about-hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,6vw,6rem);align-items:end}
.about-hero-img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;position:relative;max-width:100%}
.about-hero-img>div{position:absolute;inset:-8% 0;height:116%}
.about-hero-img picture,.about-hero-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.about-body{padding-block:clamp(3rem,6vw,5rem) var(--section)}
.principles{padding-block:var(--section);background:var(--surface)}
.principle-grid{margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.principle-grid li{background:var(--bg);border-radius:var(--r);padding:2rem;display:grid;gap:.75rem;align-content:start}
.principle-grid h3{font-family:var(--serif);font-size:var(--fs-h3);line-height:1.15}
.principle-grid p{color:var(--muted)}
.timeline-section{padding-block:var(--section)}
.timeline{margin-top:3rem;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.timeline::before{content:"";position:absolute;left:0;right:0;top:.55rem;height:1px;background:var(--line)}
.timeline li{position:relative;padding:2.25rem 1.5rem 0 0}
.timeline li::before{content:"";position:absolute;top:.2rem;left:0;width:.75rem;height:.75rem;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.tl-year{font-family:var(--serif);font-size:2.4rem;line-height:1}
.tl-text{margin-top:.75rem;color:var(--muted)}
.memberships{margin-top:3rem;color:var(--muted)}

.contact-section{padding-block:0 var(--section)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) 24rem;gap:clamp(2rem,6vw,5rem);align-items:start}
.form-card{background:var(--surface);border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,3rem)}
.contact-form{display:grid;gap:1.5rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.field{display:grid;gap:.5rem;align-content:start;min-width:0}
.field label{font-weight:600;font-size:1.0625rem}
.req{color:var(--accent);margin-left:.15rem}
.field input,.field select,.field textarea{width:100%;min-height:3.5rem;padding:.85rem 1.1rem;border-radius:var(--r-sm);border:1.5px solid rgba(255,255,255,.28);background:var(--bg);color:var(--text);font-size:1.125rem;transition:border-color .2s,box-shadow .2s}
.field textarea{resize:vertical;min-height:10rem;line-height:1.55}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(255,255,255,.5)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(210,162,80,.18)}
.field [aria-invalid="true"]{border-color:#ff9a8f;box-shadow:0 0 0 3px rgba(163,36,30,.12)}
.field-hint{font-size:1rem;color:var(--muted)}
.field-err{font-size:1rem;font-weight:600;color:#ff9a8f}
.field-err:empty{display:none}
.select-wrap{position:relative}
.select-wrap select{appearance:none;-webkit-appearance:none;padding-right:3rem}
.select-wrap .i{position:absolute;right:1rem;top:50%;transform:translateY(-50%);pointer-events:none}
.field--check{grid-template-columns:auto 1fr;align-items:start;column-gap:.85rem}
.field--check input{width:1.5rem;height:1.5rem;min-height:0;margin:.15rem 0 0;accent-color:var(--text);padding:0}
.field--check label{font-weight:400;font-size:1.0625rem;line-height:1.5}
.field--check .field-err{grid-column:2}
.form-error{padding:1rem 1.25rem;border-radius:var(--r-sm);background:rgba(255,154,143,.12);color:#ffd2cc;font-weight:600;border-left:4px solid #ff9a8f}
.form-error:focus{outline:none}
.contact-form .btn{justify-self:start}
.thanks{display:grid;gap:1rem;justify-items:start}
.thanks:focus{outline:none}
.thanks-icon{width:4rem;height:4rem;border-radius:50%;background:var(--deep);color:var(--on-ink);display:grid;place-items:center;animation:pop .7s var(--ease)}
.thanks-icon .i{width:2rem;height:2rem}
@keyframes pop{from{transform:scale(.4);opacity:0}}
.thanks-sub{font-family:var(--sans);font-size:1rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:1rem}
.thanks-steps{counter-reset:s;display:grid;gap:.75rem}
.thanks-steps li{counter-increment:s;display:grid;grid-template-columns:2.25rem 1fr;gap:.75rem;align-items:baseline}
.thanks-steps li::before{content:counter(s);width:2rem;height:2rem;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:.95rem;font-weight:600;color:var(--accent)}
.thanks .btn{margin-top:1rem}
.contact-aside{display:grid;gap:2rem;position:sticky;top:calc(var(--header-h) + 1.5rem)}
.contact-list{margin:1rem 0 0;display:grid;gap:1.4rem}
.contact-list div{display:grid;gap:.25rem}
.contact-list dt{display:flex;gap:.5rem;align-items:center;font-size:.875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.contact-list dd{margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;font-size:1.25rem;overflow-wrap:anywhere}
.contact-list dd a{text-decoration:none;font-weight:600}
.contact-list dd a:hover{text-decoration:underline;color:var(--accent)}
.copy-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.9375rem;font-weight:600;color:var(--accent);padding:.35rem .7rem;border-radius:var(--r-pill);border:1px solid var(--line)}
.copy-btn:hover{background:var(--surface)}
.copy-btn .i{width:1rem;height:1rem}
.aside-next{padding-top:2rem;border-top:1px solid var(--line);display:grid;gap:1rem}

.text-body{padding-block:0 var(--section)}
.text-body section{padding-block:1.75rem;border-top:1px solid var(--line)}
.text-body .h3{margin-bottom:.75rem}
.page-hero--text .muted{margin-top:1.5rem}
.notfound-links{margin-top:2.5rem;display:grid;gap:1rem;justify-items:start}
.page-hero--404 .muted{margin-top:3rem}

/* ---------------------------------------------------------------- cursor (desktop, fine pointer only) */
.cursor{display:none}
.has-cursor .cursor{display:block;position:fixed;inset:0;pointer-events:none;z-index:300}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor [data-cursor]{cursor:none}
.has-cursor input,.has-cursor textarea,.has-cursor select{cursor:auto}
.has-cursor label{cursor:pointer}
.cursor-dot,.cursor-ring{position:absolute;left:0;top:0;border-radius:50%;will-change:transform}
.cursor-dot{width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--deep)}
.cursor-ring{width:44px;height:44px;margin:-22px 0 0 -22px;border:1px solid rgba(255,255,255,.45);display:grid;place-items:center;
  transition:width .4s var(--ease),height .4s var(--ease),margin .4s var(--ease),background-color .4s,border-color .4s,opacity .3s}
.cursor-label{font-size:.8125rem;font-weight:600;letter-spacing:.06em;color:var(--on-ink);opacity:0;transition:opacity .3s;white-space:nowrap}
.cursor.is-hover .cursor-ring{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(210,162,80,.1);border-color:var(--accent)}
.cursor.is-label .cursor-ring{width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--deep);border-color:var(--text)}
.cursor.is-label .cursor-label{opacity:1}
.cursor.is-label .cursor-dot{opacity:0}
.cursor.is-dark .cursor-dot{background:var(--on-ink)}
.cursor.is-dark .cursor-ring{border-color:rgba(252,251,248,.55)}
.cursor.is-dark.is-label .cursor-ring{background:var(--on-ink)}
.cursor.is-dark.is-label .cursor-label{color:var(--text)}
.cursor.is-hidden .cursor-dot,.cursor.is-hidden .cursor-ring{opacity:0}

/* ---------------------------------------------------------------- responsive */
@media (max-width:1180px){
  .main-nav,.header-cta{display:none}
  .menu-toggle{display:inline-flex}
  .header-tools .lang-switch{display:none}
  .guarantees{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .svc-row a{grid-template-columns:11rem minmax(0,1fr) 3rem}
  .svc-row .tags{display:none}
}
@media (max-width:959px){
  :root{--header-h:68px}
  .hero{min-height:0;display:block;padding-block:calc(var(--header-h) + env(safe-area-inset-top,0px) + .5rem) 4rem}
  .hero-media{position:relative;top:auto;right:auto;bottom:auto;width:auto;margin-inline:var(--gutter);aspect-ratio:4/4.4;max-height:64svh;border-radius:var(--r-lg)}
  .hero-content{margin-top:2rem}
  .hero-content{padding-right:var(--gutter)}
  .hero-content>*,.hero .display{max-width:none}
  .hero .display{font-size:var(--fs-display)}
  .scroll-cue{display:none}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:1.75rem 1rem 1.75rem 0}
  .stat+.stat{padding-left:0;border-left:0}
  .stat:nth-child(even){padding-left:1.25rem;border-left:1px solid var(--line)}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .services-head{grid-template-columns:1fr;gap:1.5rem}
  .track{grid-template-columns:1fr 1fr}
  .approach-grid,.about-grid,.faq-grid,.svc-grid,.contact-grid,.about-hero-grid{grid-template-columns:1fr}
  .who-grid,.reviews{grid-template-columns:1fr}
  .about-media{max-width:34rem}
  .newsletter{grid-template-columns:1fr}
  .nl-title{grid-row:auto}
  .svc-aside,.contact-aside{position:static}
  .principle-grid{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr;gap:0}
  .timeline::before{left:.35rem;right:auto;top:0;bottom:0;width:1px;height:auto}
  .timeline li{padding:0 0 2rem 2.5rem}
  .timeline li::before{top:.6rem}
  .facade{width:60vw;opacity:.45}
  .about-hero-img{max-width:30rem}
}
@media (max-width:640px){
  .track{grid-template-columns:1fr}
  .svc-card{min-height:0}
  .svc-title{padding-top:2rem}
  .guarantees{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .svc-row a{grid-template-columns:1fr auto;gap:.75rem 1rem;padding:1.75rem 0}
  .svc-row-mark{grid-column:1/-1}
  .header-tools{gap:.5rem}
  .brand-name{font-size:1.4rem}
  .btn{white-space:normal;text-align:center}
  .btn-lg{padding:.9rem 1.5rem}
  .hero .btn-row .btn,.cta-inner .btn-row .btn{width:100%}
  .faq-a p{padding-right:0}
  .next-title{gap:.75rem}
  .cookie{left:.75rem;right:.75rem;width:auto;bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}
  .footer-bottom{flex-direction:column}
  .contact-list dd{font-size:1.125rem}
}

/* ---------------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* hide load-animated hero text until JS has split it; reveal anyway after 2.5s if scripts fail */
.js:not(.motion-ready) [data-split="load"],.js:not(.motion-ready) [data-hero-fade]{visibility:hidden;animation:failsafe 0s 2.5s forwards}
@keyframes failsafe{to{visibility:visible}}

/* ================================================================ navy + gold theme (Leon's reference) */
:root{--topbar-h:40px}
.gold{font-style:italic;color:var(--accent);font-weight:inherit;letter-spacing:-.01em}
.display{font-weight:400;letter-spacing:-.02em}
.h2,.statement-text,.stat-num{font-weight:380}
.eyebrow{font-size:.8125rem;letter-spacing:.2em}
.eyebrow::before{width:1.5rem;background:var(--accent)}
::selection{background:var(--accent);color:var(--on-accent)}

/* buttons: solid gold, crisp corners */
.btn{letter-spacing:.02em}
.btn-primary,.btn-light{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn-primary:hover,.btn-light:hover{background:var(--gold);border-color:var(--gold);color:var(--on-accent);box-shadow:0 12px 30px -12px rgba(210,162,80,.6)}
.btn-ghost{border-color:rgba(244,240,232,.45);color:var(--text)}
.btn-ghost:hover{background:rgba(244,240,232,.06);border-color:var(--accent);color:var(--accent)}
.btn-outline-light{border-color:rgba(244,240,232,.4)}
.btn-outline-light:hover{border-color:var(--accent);color:var(--accent);background:transparent}

/* top bar with contact details */
.topbar{background:var(--deep);border-bottom:1px solid var(--line);font-size:.875rem;color:var(--muted);overflow:hidden;max-height:var(--topbar-h);transition:max-height .45s var(--ease),opacity .3s}
.topbar-inner{height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.topbar p{display:flex;gap:1.75rem;align-items:center;white-space:nowrap}
.topbar a,.topbar span{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none}
.topbar a:hover{color:var(--accent)}
.topbar .i{width:1rem;height:1rem;color:var(--accent)}
.site-header.is-solid .topbar{max-height:0;opacity:0;border-bottom-color:transparent}

/* wordmark: serif with a gold full stop */
.brand-name{font-size:1.75rem;font-weight:500;letter-spacing:-.015em;display:inline-flex;align-items:baseline}
.brand-dot{display:inline-block;width:.32em;height:.32em;border-radius:50%;background:var(--accent);margin-left:.08em;transform:translateY(-.02em)}
.brand-mark{display:none}

.nav-link[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--accent)}
.nav-panel{background:var(--surface);box-shadow:0 30px 80px -20px rgba(0,0,0,.6),0 0 0 1px var(--line)}
.np-grid a:hover{background:rgba(255,255,255,.05)}
.lang-switch a[aria-current="true"],.lang-switch--light a[aria-current="true"]{background:var(--accent);color:var(--on-accent)}
.menu-toggle{border-color:rgba(244,240,232,.45)}
.menu-toggle-icon{background:var(--accent)}
.menu-toggle-icon i{background:var(--on-accent)}
.mobile-menu{background:var(--deep)}
.mm-main a:hover{color:var(--accent)}

/* hero: portrait fades into the navy, headline on the left */
.hero{padding-top:calc(var(--header-h) + var(--topbar-h) + 2rem);background:radial-gradient(120% 90% at 85% 30%,var(--navy) 0%,var(--bg) 55%,var(--deep) 100%)}
.hero-media{top:0;right:0;bottom:0;width:min(52vw,820px);border-radius:0;background:transparent;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 38%);mask-image:linear-gradient(90deg,transparent 0%,#000 38%)}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,25,36,.15) 0%,rgba(14,25,36,0) 40%,rgba(14,25,36,.7) 100%);pointer-events:none}
.hero-img img{object-position:50% 18%;filter:saturate(.85) contrast(1.02)}
.hero-caption{left:auto;right:var(--gutter);bottom:2rem;z-index:2;background:rgba(14,25,36,.7);border:1px solid var(--line);font-size:.875rem;letter-spacing:.02em}
.hero-content{padding-right:calc((min(100vw,var(--maxw)) - 100vw) / 2 + min(40vw,620px) + 2rem)}
.hero .display{font-size:min(var(--fs-display),6.6vw)}
.hero .display .gold{display:inline}
.scroll-cue i::after{background:var(--accent)}

.track-progress span{background:var(--accent)}
.svc-card{border:1px solid var(--line)}
.svc-card:hover{border-color:rgba(210,162,80,.4)}
.tag{background:transparent}
.svc-list{border-top-color:rgba(210,162,80,.5)}
.svc-row a:hover .svc-row-arrow{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.who-card{background:var(--surface)}
.about-teaser,.principles{background:var(--deep)}
.g-icon{background:rgba(210,162,80,.1)}
.guarantee,.principle-grid li{border:1px solid var(--line)}
.principle-grid li{background:var(--surface)}
.approach{background:linear-gradient(180deg,var(--deep),var(--navy))}
.cta-inner{background:linear-gradient(135deg,var(--navy-card),var(--deep));border:1px solid rgba(210,162,80,.25)}
[aria-expanded="true"] .i-plus{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.thanks-icon{background:var(--accent);color:var(--on-accent)}
.field--check input{accent-color:var(--accent)}
.lang-switch--light{border-color:var(--line)}
.page-hero{padding-top:calc(var(--header-h) + var(--topbar-h) + clamp(3rem,8vw,7rem));background:radial-gradient(90% 120% at 90% 0%,var(--navy) 0%,var(--bg) 60%)}
.breadcrumb li+li::before{color:var(--accent)}
.cursor-dot{background:var(--accent)}
.cursor.is-label .cursor-ring{background:var(--accent);border-color:var(--accent)}
.cursor-label{color:var(--on-accent)}
.cursor.is-dark .cursor-dot{background:var(--accent)}
.cursor.is-dark.is-label .cursor-ring{background:var(--accent)}
.cursor.is-dark.is-label .cursor-label{color:var(--on-accent)}
.cookie{background:var(--surface);box-shadow:0 30px 70px -20px rgba(0,0,0,.7),0 0 0 1px var(--line)}

/* footer: business line + map */
.footer-grid{grid-template-columns:1.25fr .95fr .8fr 1.15fr 1.35fr;gap:2.25rem}
.footer-biz{display:flex;flex-wrap:wrap;gap:.5rem 0;padding-bottom:1.5rem;font-size:.9375rem;color:var(--on-ink-muted)}
.footer-biz li{display:inline-flex;align-items:center}
.footer-biz li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--accent);margin:0 .9rem}
.map-card{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.map-art{width:100%;height:auto;aspect-ratio:16/10;display:block}
.map-art .m-bg{fill:var(--navy-card)}
.map-art .m-water{fill:var(--navy)}
.map-art .m-park{fill:rgba(210,162,80,.07)}
.map-art .m-road path{stroke:rgba(244,240,232,.22);stroke-width:5;fill:none}
.map-art .m-street path{stroke:rgba(244,240,232,.1);stroke-width:2;fill:none}
.map-art .m-dot{fill:var(--accent);stroke:var(--deep);stroke-width:3}
.map-art .m-pulse{fill:rgba(210,162,80,.18);transform-origin:center;animation:mapPulse 2.6s var(--ease) infinite}
@keyframes mapPulse{0%{transform:scale(.4);opacity:1}100%{transform:scale(1.6);opacity:0}}
.map-frame{position:absolute;inset:0 0 auto 0;aspect-ratio:16/10}
.map-frame:empty{display:none}
.map-frame iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.3) invert(.9) hue-rotate(180deg) contrast(.9)}
.map-meta{padding:1rem 1.1rem 1.15rem;display:grid;gap:.45rem;font-size:.9375rem}
.map-addr{display:flex;gap:.55rem;color:var(--on-ink);line-height:1.4}
.map-addr .i{color:var(--accent);margin-top:.15em}
.map-note{color:var(--on-ink-muted);font-size:.875rem}
.map-actions{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center;margin-top:.35rem}
.map-actions .link-arrow{font-size:.9375rem;color:var(--accent);text-decoration:none}
.footer-col .map-actions .link-arrow:hover{text-decoration:none;color:var(--gold)}
.map-load{font-size:.875rem;color:var(--on-ink-muted)}
.map-load:hover{color:var(--on-ink)}

/* privacy + terms documents */
.text-body--doc{padding-top:clamp(1rem,3vw,2rem)}
.doc-grid{display:grid;grid-template-columns:17rem minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.doc-toc{position:sticky;top:calc(var(--header-h) + 1.5rem);font-size:.9375rem;border-left:1px solid var(--line);padding-left:1.25rem}
.doc-toc ol{display:grid;gap:.5rem}
.doc-toc a{color:var(--muted);text-decoration:none;line-height:1.4;display:block}
.doc-toc a:hover{color:var(--accent)}
.doc-body{max-width:44em}
.doc-intro{font-family:var(--serif);font-size:clamp(1.3rem,1.1rem + .7vw,1.7rem);line-height:1.4;color:var(--text);padding-bottom:2rem}
.text-body .clause{padding-block:2rem;border-top:1px solid var(--line)}
.clause .h3{color:var(--text);margin-bottom:1rem}
.clause p{color:var(--muted)}
.clause p+p{margin-top:.85em}
.doc-also{margin-top:2.5rem}

@media (max-width:1180px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-map{grid-column:1/-1;max-width:34rem}
  .hero-content{padding-right:calc(min(40vw,620px) + 1rem)}
}
@media (max-width:959px){
  :root{--topbar-h:0px}
  .topbar{display:none}
  .hero{padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px));background:var(--bg)}
  .hero-media{position:relative;width:auto;margin-inline:0;aspect-ratio:4/4.2;max-height:70svh;
    -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 100%);mask-image:linear-gradient(180deg,#000 55%,transparent 100%)}
  .hero-media::after{display:none}
  .hero-caption{right:auto;left:var(--gutter);bottom:auto;top:1rem;font-size:.8125rem}
  .hero-content{margin-top:-2.5rem;padding-right:var(--gutter)}
  .hero .display{font-size:var(--fs-display)}
  .doc-grid{grid-template-columns:1fr}
  .doc-toc{position:static;border-left:0;padding:1.25rem 1.25rem;background:var(--surface);border-radius:var(--r)}
}
@media (max-width:640px){
  .footer-biz{flex-direction:column;gap:.35rem}
  .footer-biz li+li::before{display:none}
  .brand-name{font-size:1.5rem}
}

/* ================================================================ ivory chapters: navy and ivory alternate */
:root{--gold:#d2a250}
.btn-primary,.btn-light{background:var(--gold);border-color:var(--gold)}
.statement,.approach,.about-teaser,.faq,.cta-band,.svc-body,.next-svc,.svc-list-section,.about-body,.timeline-section,.contact-section,.text-body{
  --bg:#faf8f4;--surface:var(--white);--text:var(--navy);--muted:#566074;--line:rgba(14,25,36,.14);--accent:#8c6a22;
  background:var(--bg);color:var(--text);color-scheme:light}
.who,.trust,.principles{background:var(--bg)}
.trust{background:linear-gradient(180deg,var(--bg),var(--deep))}
.faq{border-top:0}
.cta-band{padding-top:clamp(1rem,3vw,2rem)}
.cta-inner{--accent:var(--gold);color:var(--on-ink)}
.cta-inner .ph{background:rgba(210,162,80,.16)}
.statement .ph,.approach .ph,.faq .ph,.text-body .ph,.contact-section .ph,.svc-body .ph,.about-body .ph,.timeline-section .ph,.about-teaser .ph{background:rgba(140,106,34,.08);outline-color:rgba(140,106,34,.4)}
::selection{background:var(--gold);color:var(--on-accent)}
.btn-ghost{border-color:currentColor}
.statement .btn-ghost:hover,.faq .btn-ghost:hover{color:var(--accent);background:transparent}
.link-arrow{color:var(--accent)}

/* light approach with the meeting-room photo */
.approach{background:var(--bg);color:var(--text)}
.approach-grid{grid-template-columns:7fr 5fr;column-gap:clamp(2rem,6vw,6rem);row-gap:2.5rem;align-items:start}
.approach-head{grid-column:1;grid-row:1}
.approach .steps{grid-column:1;grid-row:2}
.approach-media{grid-column:2;grid-row:1/span 2;align-self:center}
.approach-head .h2{max-width:12em}
.is-pinned .approach-counter{margin-top:1.5rem;font-size:clamp(2.6rem,1.8rem + 2.4vw,4.5rem)}
.is-pinned .steps{min-height:clamp(13rem,30vh,18rem)}
.is-pinned .step-title{font-size:clamp(2.2rem,1.5rem + 2.2vw,3.8rem)}
.is-pinned .step-text{font-size:clamp(1.15rem,1.05rem + .4vw,1.4rem);margin-top:1rem}
.approach-head .eyebrow{color:var(--accent)}
.approach-counter .of{color:var(--muted)}
.approach-bar{background:var(--line)}
.approach-bar span{background:var(--gold)}
.step{border-top-color:var(--line)}
.step:last-child{border-bottom-color:var(--line)}
.step-num{color:var(--accent);font-style:normal}
.step-text{color:var(--muted)}
.approach-media{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:806/953;box-shadow:0 30px 60px -30px rgba(14,25,36,.35)}
.approach-media picture,.approach-media img{width:100%;height:100%;object-fit:cover}
.is-pinned .approach-grid{align-items:center}
.is-pinned .approach-media{max-height:calc(100vh - var(--header-h) - 6rem);aspect-ratio:auto;height:calc(100vh - var(--header-h) - 6rem);max-width:100%}

/* light forms, cards and lists */
.contact-section .form-card,.svc-aside .aside-card{background:#fff;border:1px solid var(--line);box-shadow:0 20px 50px -30px rgba(14,25,36,.25)}
.contact-section .field input,.contact-section .field select,.contact-section .field textarea{background:#fff;border-color:rgba(14,25,36,.22);color:var(--text)}
.contact-section .field input:hover,.contact-section .field select:hover,.contact-section .field textarea:hover{border-color:rgba(14,25,36,.45)}
.contact-section .field [aria-invalid="true"]{border-color:#b3261e}
.contact-section .field-err{color:#b3261e}
.contact-section .form-error{background:rgba(179,38,30,.08);color:#7a1610;border-left-color:#b3261e}
.copy-btn:hover{background:var(--surface)}
.svc-list{border-top-color:var(--text)}
.svc-row a:hover .svc-row-arrow{color:var(--on-accent)}
.timeline li::before{background:var(--bg)}
.about-teaser .about-copy>p{color:var(--muted)}
.doc-toc{border-left-color:var(--line)}
.clause .h3{color:var(--text)}
.statement .stats{border-top-color:var(--line)}

@media (max-width:959px){
  .approach-grid{grid-template-columns:1fr}
  .approach-head,.approach .steps,.approach-media{grid-column:1;grid-row:auto}
  .approach-media{max-width:34rem}
  .doc-toc{background:var(--surface)}
}


/* sentences that start on their own line */
.sl{display:block}
p,li,blockquote,figcaption,dd{text-wrap:pretty}

/* portraits: never crop the head */
.about-img,.about-hero-img>div{inset:0;height:100%}
.about-img img,.about-hero-img img,.avatar img{object-position:50% 0}
.about-media,.about-hero-img{aspect-ratio:1024/1280}

@media (max-width:959px){
  .hero{background:var(--deep)}
  .hero-media{width:auto;aspect-ratio:842/860;max-height:72svh;-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent 100%);mask-image:linear-gradient(180deg,#000 60%,transparent 100%)}
  .hero-img img{object-position:55% 0}
  .hero::after{display:none}
}
.sl{text-wrap:balance}
.footer-grid>*{min-width:0}
.map-actions .link-arrow{white-space:normal}
@media (max-width:640px){.footer-grid{grid-template-columns:1fr}.footer-map{max-width:none}}

/* ================================================================ hero: full-bleed library photo, exactly as the reference */
.hero{background:var(--deep);align-items:center;padding-top:calc(var(--header-h) + var(--topbar-h) + 1rem)}
.hero-media{position:absolute;inset:0;width:auto;top:0;right:0;bottom:0;border-radius:0;-webkit-mask-image:none;mask-image:none;background:var(--deep)}
.hero-media::after{display:block;content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(14,25,36,.55) 0%,rgba(14,25,36,.25) 45%,rgba(14,25,36,0) 65%),linear-gradient(180deg,rgba(14,25,36,.35) 0%,rgba(14,25,36,0) 22%)}
.hero-img{transform-origin:72% 30%}
.hero-img img{object-position:70% 0;filter:none}
.hero-content{padding-right:calc((min(100vw,var(--maxw)) - 100vw) / 2 + 46vw)}
.hero-content>*{max-width:44rem}
.hero .display{font-size:clamp(2.6rem,1.2rem + 4.6vw,5.9rem);line-height:1}
.hero .lede{margin-top:1.5rem;color:rgba(244,240,232,.86);font-size:clamp(1.1rem,1rem + .45vw,1.4rem)}
.hero .btn-row{margin-top:2.25rem}
.topbar{background:rgba(14,25,36,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@media (max-width:959px){
  .hero{padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px))}
  .hero-media{position:relative;inset:auto;aspect-ratio:4/4.1;max-height:70svh;
    -webkit-mask-image:linear-gradient(180deg,#000 62%,transparent 100%);mask-image:linear-gradient(180deg,#000 62%,transparent 100%)}
  .hero-media::after{display:none}
  .hero-img img{object-position:74% 0}
  .hero-content{margin-top:-2.5rem;padding-right:var(--gutter)}
  .hero .display{font-size:clamp(2.5rem,1.6rem + 4vw,3.6rem)}
}

/* ================================================================ tighter type scale */
:root{
  --fs-body:clamp(1rem,.97rem + .15vw,1.0625rem);
  --fs-small:.9375rem;
  --fs-lede:clamp(1.0625rem,1rem + .35vw,1.25rem);
  --fs-h3:clamp(1.25rem,1.12rem + .5vw,1.6rem);
  --fs-h2:clamp(1.9rem,1.35rem + 2vw,3.2rem);
  --fs-display:clamp(2.5rem,1.5rem + 3.8vw,5.2rem);
}
.display--page{font-size:clamp(2.3rem,1.5rem + 3vw,4.4rem)}
.statement-text{font-size:clamp(1.5rem,1.05rem + 1.6vw,2.6rem)}
.stat-num{font-size:clamp(2.4rem,1.7rem + 2.2vw,3.8rem)}
.stat-label,.svc-text,.guarantee p,.who-story,.faq-a p,.np-text{font-size:.9875rem}
.svc-mark{font-size:clamp(1.5rem,1.25rem + .9vw,2.1rem)}
.svc-card{min-height:22rem}
.who-moment{font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem)}
.who-story{font-size:1rem}
.pull-quote p{font-size:clamp(1.35rem,1.1rem + 1vw,1.95rem)}
.pull-quote--xl p{font-size:clamp(1.6rem,1.2rem + 1.7vw,2.7rem)}
.scenario-text{font-size:clamp(1.4rem,1.1rem + 1.4vw,2.4rem)}
.next-title{font-size:clamp(1.9rem,1.3rem + 2.8vw,4.2rem)}
.svc-row-title{font-size:clamp(1.45rem,1.2rem + 1vw,2.1rem)}
.nl-title{font-size:clamp(1.7rem,1.35rem + 1.4vw,2.6rem)}
.faq-q button{font-size:clamp(1.02rem,.98rem + .2vw,1.15rem);padding:1.3rem 0}
.review blockquote p{font-size:1.2rem}
.guarantee h3{font-size:1.3rem}
.principle-grid h3{font-size:var(--fs-h3)}
.tl-year{font-size:2rem}
.approach-counter{font-size:clamp(3rem,2.4rem + 3vw,6rem)}
.is-pinned .approach-counter{font-size:clamp(2.2rem,1.6rem + 2vw,3.6rem)}
.is-pinned .step-title{font-size:clamp(1.9rem,1.4rem + 1.8vw,3.1rem)}
.is-pinned .step-text{font-size:clamp(1.05rem,1rem + .3vw,1.25rem)}
.lede--serif{font-size:clamp(1.25rem,1.05rem + .9vw,1.75rem)}
.svc-grid .prose{font-size:clamp(1.05rem,1rem + .2vw,1.15rem)}
.prose--lg{font-size:clamp(1.1rem,1.03rem + .3vw,1.25rem)}
.doc-intro{font-size:clamp(1.2rem,1.05rem + .5vw,1.5rem)}
.nav-link{font-size:1rem}
.btn{font-size:1rem}
.btn-lg{--bh:3.5rem;font-size:1.0625rem}
.mm-main a{font-size:clamp(1.9rem,7vw,2.6rem)}
.contact-list dd{font-size:1.125rem}
.field label{font-size:1rem}
.field input,.field select,.field textarea{font-size:1.0625rem}
.brand-name{font-size:1.6rem}
.statement-text{max-width:34em}

/* services: the article reference is a small label, the service name leads */
.svc-mark{font-size:.9375rem;letter-spacing:.02em;line-height:1.3;opacity:.9}
.svc-title{font-size:clamp(1.65rem,1.35rem + 1.1vw,2.35rem);line-height:1.1;letter-spacing:-.015em;padding-top:2.25rem}
.svc-row-mark{font-size:.9375rem}
.svc-row a{grid-template-columns:10rem minmax(0,1fr) auto 3rem}
.svc-row-title{font-size:clamp(1.6rem,1.3rem + 1.2vw,2.4rem)}
.np-mark{font-size:.8125rem}
@media (max-width:1180px){.svc-row a{grid-template-columns:9rem minmax(0,1fr) 3rem}}
@media (max-width:640px){.svc-row a{grid-template-columns:1fr auto}}

/* ================================================================ Over Leon: extended page */
.about-hero-grid .btn-row{margin-top:2.25rem}
.about-facts{background:var(--deep);padding-block:clamp(2rem,4vw,3rem);border-block:1px solid var(--line)}
.facts-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.5rem 2rem}
.facts-grid>div{display:grid;gap:.35rem;align-content:start;padding-left:1rem;border-left:2px solid var(--accent)}
.facts-grid dt{font-size:.8125rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.facts-grid dd{margin:0;font-size:1rem;line-height:1.45;color:var(--text)}
.about-body{padding-block:var(--section)}
.story-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.story-head{position:sticky;top:calc(var(--header-h) + 2rem)}
.story-grid .prose p+p{margin-top:1.25rem}
.expertise{padding-block:var(--section)}
.section-head{display:grid;grid-template-columns:5fr 7fr;gap:clamp(1.5rem,5vw,5rem);align-items:end}
.section-head .lede{color:var(--muted);max-width:34em}
.ex-grid{margin-top:3rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.ex-grid li{background:var(--bg)}
.ex-grid a{position:relative;display:grid;gap:.6rem;align-content:start;height:100%;padding:clamp(1.5rem,3vw,2.25rem);text-decoration:none;color:var(--text);transition:background .35s var(--ease)}
.ex-grid a:hover{background:var(--surface)}
.ex-mark{font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ex-title{font-family:var(--serif);font-size:var(--fs-h3);line-height:1.15;letter-spacing:-.01em;padding-right:2.5rem}
.ex-text{color:var(--muted);font-size:1rem;line-height:1.55}
.ex-arrow{position:absolute;top:clamp(1.5rem,3vw,2.25rem);right:clamp(1.5rem,3vw,2.25rem);color:var(--accent);transition:transform .35s var(--ease)}
.ex-grid a:hover .ex-arrow{transform:translateX(.3rem)}
.page-about .principles{--bg:#faf8f4;--surface:var(--white);--text:var(--navy);--muted:#566074;--line:rgba(14,25,36,.14);--accent:#8c6a22;background:var(--bg);color:var(--text);color-scheme:light}
.principle-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.page-about .principle-grid li{background:#fff;border:1px solid var(--line)}
.pr-num{font-family:var(--serif);font-size:1.5rem;color:var(--accent);line-height:1}
.page-about .principle-grid h3{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem)}
.page-about .timeline-section{--bg:var(--navy);--surface:var(--navy-card);--text:#f4f0e8;--muted:#b3bccb;--accent:#d2a250;--line:rgba(255,255,255,.13);background:var(--bg);color:var(--text);color-scheme:dark}
.timeline--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.tl-year{font-family:var(--serif);font-size:1.5rem;color:var(--accent);line-height:1.1}
.tl-text{margin-top:.5rem;color:var(--muted);font-size:1rem;line-height:1.55}
.memberships{max-width:46em;line-height:1.6}
.memberships .link-arrow{margin-left:.35rem;white-space:nowrap}
.memberships .link-arrow .i{width:1rem;height:1rem}

/* ================================================================ Snel contact */
.quick-section{padding-block:clamp(3rem,6vw,5rem) var(--section)}
.quick-grid{display:grid;grid-template-columns:4fr 7fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}
.wa-card{position:sticky;top:calc(var(--header-h) + 2rem);display:grid;gap:1rem;justify-items:start;padding:clamp(1.75rem,4vw,2.75rem);border-radius:var(--r-lg);background:var(--deep);color:var(--on-ink)}
.wa-card p{color:var(--on-ink-muted)}
.wa-icon{width:3.5rem;height:3.5rem;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center}
.wa-icon .i{width:1.75rem;height:1.75rem}
.wa-btn{margin-top:.5rem;width:100%;justify-content:center}
.wa-btn .i{width:1.25rem;height:1.25rem}
.wa-number{font-family:var(--serif);font-size:1.5rem;color:var(--on-ink)!important;letter-spacing:.01em}
.wa-call{font-size:.9375rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.13);width:100%}
.wa-call a{color:var(--accent-on-ink)}
.quick-title{margin-bottom:1.75rem}
.quick-form{display:grid;gap:1.75rem}
.chips-field{border:0;padding:0;margin:0;min-width:0}
.chips-field legend{font-weight:600;font-size:1.0625rem;margin-bottom:.75rem;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.chip span{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1.05rem;border:1.5px solid var(--line);border-radius:999px;background:var(--bg);font-size:.9375rem;font-weight:600;line-height:1.25;transition:background .2s,border-color .2s,color .2s}
.chip:hover span{border-color:var(--text)}
.chip input:checked+span{background:var(--text);border-color:var(--text);color:var(--bg)}
.chip input:checked+span::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--gold);margin-right:.55rem}
.chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}
.chips-field[aria-invalid="true"] .chip span{border-color:#b3261e}
.opt{font-weight:400;color:var(--muted);font-size:.9375rem}
.field-row[data-reach] .reach-hint,.field-row[data-reach] .reach-err{grid-column:1/-1;margin-top:-.75rem}
.field-row[data-reach] .reach-err{margin-top:-1rem}
.quick-actions{display:flex;flex-wrap:wrap;gap:.875rem}
.quick-actions .btn .i{width:1.2rem;height:1.2rem}
.form-note{padding:1rem 1.25rem;border-radius:var(--r-sm);background:var(--surface);border-left:4px solid var(--accent);font-weight:600}
.contact-section .field-err{color:#b3261e}
.contact-section .form-error{background:rgba(179,38,30,.08);color:#8a1c16;border-left-color:#b3261e}
.cta-band .btn .i{flex:none}

@media (max-width:1180px){
  .facts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .principle-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .timeline--5{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:1rem}
  .timeline--5::before{display:none}
}
@media (max-width:960px){
  .story-grid,.section-head,.quick-grid{grid-template-columns:1fr}
  .story-head,.wa-card{position:static}
}
@media (max-width:640px){
  .facts-grid{grid-template-columns:1fr 1fr}
  .ex-grid,.principle-grid--4{grid-template-columns:1fr}
  .timeline--5{grid-template-columns:1fr}
  .timeline--5::before{display:block}
  .quick-actions .btn{width:100%;justify-content:center}
  .field-row[data-reach] .reach-hint{margin-top:-.5rem}
}
.thanks-icon{animation:none}
.contact-section .thanks-icon{background:var(--gold);color:var(--on-accent)}
/* footer map: Google Maps embedded by default */
.map-frame{position:relative;inset:auto;aspect-ratio:auto;height:clamp(240px,22vw,300px);background:var(--ivory)}
.map-frame iframe{filter:none;width:100%;height:100%}
.map-frame--preview{display:block;height:auto;background:none;text-decoration:none;color:var(--on-ink)}
.map-frame--preview .map-art{aspect-ratio:auto;height:clamp(240px,22vw,300px);width:100%}
.map-badge{position:absolute;top:.75rem;left:.75rem;right:.75rem;display:flex;gap:.45rem;align-items:center;padding:.55rem .7rem;border-radius:var(--r-sm);background:#fff;color:var(--navy);font-size:.8125rem;font-weight:700;box-shadow:0 6px 18px -8px rgba(0,0,0,.5)}
.map-badge .i{color:#b3261e;width:1rem;height:1rem;flex:none}
.map-preview-note{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;font-size:.75rem;line-height:1.4;color:var(--on-ink-muted)}
.map-reviews{font-size:.875rem;color:var(--on-ink-muted)}
.map-reviews:hover{color:var(--on-ink)}

/* ================================================================ mobile hero: photo runs full-bleed behind the transparent header */
@media (max-width:959px){
  .hero{padding-top:0}
  .hero-media{position:relative;inset:auto;aspect-ratio:auto;height:min(84svh,700px);max-height:none;margin:0;
    -webkit-mask-image:linear-gradient(180deg,#000 66%,transparent 100%);mask-image:linear-gradient(180deg,#000 66%,transparent 100%)}
  .hero-media::after{display:block;background:linear-gradient(180deg,rgba(14,25,36,.6) 0%,rgba(14,25,36,0) 26%)}
  .hero-img img{object-position:72% 0}
  .hero-content{margin-top:-8.5rem}
  .site-header:not(.is-solid){background:transparent;box-shadow:none}
}

/* ================================================================ high-end finish: finer type, champagne gold, hairlines */
:root{--champagne:var(--gold)}
.display,.h2{font-weight:320;letter-spacing:-.028em;font-variant-numeric:oldstyle-nums proportional-nums}
.display .gold,.h2 .gold,em.gold{font-weight:300;color:var(--champagne)}
.statement .gold,.approach .gold,.faq .gold,.about-body .gold,.contact-section .gold,.text-body .gold,.svc-body .gold{color:var(--gold-text)}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.3em}
.eyebrow::before{width:2.5rem;background:linear-gradient(90deg,currentColor,transparent)}
.btn{font-weight:600;letter-spacing:.035em}
.btn-primary,.btn-light{background:linear-gradient(180deg,var(--gold) 0%,var(--gold) 100%);border-color:var(--gold);box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}
.btn-primary:hover,.btn-light:hover{background:linear-gradient(180deg,var(--gold) 0%,var(--gold) 100%);border-color:var(--gold)}
.tl-year,.pr-num,.wa-number{font-variant-numeric:oldstyle-nums}
.form-card,.principle-grid li,.ex-grid,.cta-inner,.map-card,.wa-card{border-color:rgba(210,162,80,.22)}
.wa-card,.cta-inner{border:1px solid rgba(210,162,80,.22)}
.facts-grid>div{border-left-width:1px}
.lede{font-weight:400;letter-spacing:.003em}
.footer-social{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.25rem;color:var(--on-ink-muted);font-size:.9375rem;text-decoration:none}
.footer-social .i{width:1.15rem;height:1.15rem;color:var(--accent-on-ink)}
.footer-social:hover{color:var(--on-ink)}
.footer-brand .lang-switch{display:flex;width:max-content}


/* ================================================================ fine gold line pattern, kept in the section padding (never behind text) */
main>section{position:relative;isolation:isolate}
main>section>.wrap{position:relative;z-index:1}
.deco{position:absolute;z-index:0;pointer-events:none;right:0;top:0;width:min(60vw,900px);height:calc(var(--section) * .72);
  background:var(--accent);opacity:.42;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20800%20200%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221%22%3E%3Cpath%20d%3D%22M800%204%20C%20620%2070%20420%20150%200%20196%22/%3E%3Cpath%20d%3D%22M800%2040%20C%20660%2090%20520%20140%20230%20200%22%20stroke-opacity%3D%22.55%22/%3E%3Cpath%20d%3D%22M640%200%20C%20600%2060%20560%20110%20470%20200%22%20stroke-opacity%3D%22.4%22/%3E%3C/g%3E%3Cg%20fill%3D%22%23000%22%3E%3Ccircle%20cx%3D%22560%22%20cy%3D%2299%22%20r%3D%224%22/%3E%3Ccircle%20cx%3D%22356%22%20cy%3D%22160%22%20r%3D%222.5%22/%3E%3Ccircle%20cx%3D%22704%22%20cy%3D%2258%22%20r%3D%222%22%20fill-opacity%3D%22.7%22/%3E%3C/g%3E%3C/svg%3E") no-repeat 100% 0/100% 100%;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20800%20200%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221%22%3E%3Cpath%20d%3D%22M800%204%20C%20620%2070%20420%20150%200%20196%22/%3E%3Cpath%20d%3D%22M800%2040%20C%20660%2090%20520%20140%20230%20200%22%20stroke-opacity%3D%22.55%22/%3E%3Cpath%20d%3D%22M640%200%20C%20600%2060%20560%20110%20470%20200%22%20stroke-opacity%3D%22.4%22/%3E%3C/g%3E%3Cg%20fill%3D%22%23000%22%3E%3Ccircle%20cx%3D%22560%22%20cy%3D%2299%22%20r%3D%224%22/%3E%3Ccircle%20cx%3D%22356%22%20cy%3D%22160%22%20r%3D%222.5%22/%3E%3Ccircle%20cx%3D%22704%22%20cy%3D%2258%22%20r%3D%222%22%20fill-opacity%3D%22.7%22/%3E%3C/g%3E%3C/svg%3E") no-repeat 100% 0/100% 100%}
main>section:nth-of-type(even)>.deco{right:auto;left:0;top:auto;bottom:0;transform:scale(-1,-1)}
.page-hero>.deco{top:auto;bottom:0;height:clamp(3rem,6vw,5rem);transform:none;right:0;left:auto}
@media (max-width:640px){.deco{width:92vw;height:calc(var(--section) * .6);opacity:.32}}

/* ================================================================ info cards: more depth and contrast on navy */
.guarantee,.who-card,.svc-card,.aside-card,.wa-card,.principle-grid li,.facts-grid>div{--card-hi:rgba(255,255,255,.06)}
.guarantee,.who-card,.svc-card,body:not(.page-about) .principle-grid li{
  background:linear-gradient(180deg,var(--navy-card) 0%,var(--navy-card) 100%);border:1px solid rgba(210,162,80,.2);border-radius:var(--r-lg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 30px 60px -36px rgba(0,0,0,.75)}
.guarantee{position:relative;padding:2rem 1.75rem 2.25rem}
.guarantee h3{margin-top:.25rem}
.guarantee h3::after{content:"";display:block;width:2rem;height:1px;background:var(--gold);margin-top:1rem}
.guarantee p{color:var(--muted-light)}
.g-icon{width:3.5rem;height:3.5rem;background:rgba(210,162,80,.06);border:1px solid rgba(210,162,80,.55);color:var(--champagne);margin-bottom:1rem}
.g-icon .i{width:1.4rem;height:1.4rem}
.svc-card:hover{background:linear-gradient(180deg,var(--navy),var(--navy));border-color:rgba(210,162,80,.5)}
.ex-grid{background:rgba(210,162,80,.18);border-color:rgba(210,162,80,.2)}
.ex-grid li{background:linear-gradient(180deg,var(--navy-card),var(--navy-card))}
.ex-grid a:hover{background:var(--navy-card)}
.facts-grid>div{border-left-color:var(--gold)}

/* ================================================================ Google reviews */
.grev{margin-top:clamp(3.5rem,7vw,6rem);padding-top:clamp(2.5rem,5vw,4rem);border-top:1px solid rgba(210,162,80,.2)}
.grev[hidden]{display:none}
.grev-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem}
.grev-head .eyebrow{margin-bottom:.75rem}
.grev-summary{display:inline-grid;grid-template-columns:auto auto;grid-template-areas:"g score" "g stars" "g count";column-gap:1rem;align-items:center;padding:1rem 1.4rem;border:1px solid rgba(210,162,80,.3);border-radius:var(--r-lg);background:rgba(255,255,255,.03);text-decoration:none;color:var(--text)}
.grev-summary:hover{border-color:rgba(210,162,80,.6)}
.grev-g{grid-area:g;width:2.75rem;height:2.75rem;border-radius:50%;background:#fff;color:#4285f4;font:700 1.35rem/2.75rem var(--sans);text-align:center}
.grev-score{grid-area:score;font-family:var(--serif);font-size:1.75rem;line-height:1}
.grev-score:empty{display:none}
.grev-stars{grid-area:stars;display:inline-flex;gap:2px;--fill:100%;
  -webkit-mask:linear-gradient(90deg,#000 var(--fill),rgba(0,0,0,.25) var(--fill));mask:linear-gradient(90deg,#000 var(--fill),rgba(0,0,0,.25) var(--fill))}
.grev:not(.is-loaded) .grev-stars{opacity:.5}
.grev-stars svg,.grev-stars-sm svg{width:1rem;height:1rem;fill:var(--gold)}
.grev-count{grid-area:count;font-size:.8125rem;color:var(--muted)}
.grev-preview{margin-top:1.5rem;padding:1rem 1.25rem;border:1px dashed rgba(210,162,80,.4);border-radius:var(--r);color:var(--muted);font-size:.9375rem;max-width:44em}
.grev-list{margin-top:2.5rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.grev-list:empty{display:none}
.grev-card{margin:0;display:flex;flex-direction:column;gap:1rem;padding:1.75rem;border-radius:var(--r-lg);background:linear-gradient(180deg,var(--navy-card),var(--navy-card));border:1px solid rgba(210,162,80,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.grev-stars-sm{display:flex;gap:2px}
.grev-card blockquote{margin:0}
.grev-card blockquote p{font-family:var(--serif);font-size:1.125rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.grev-card figcaption{margin-top:auto;display:flex;gap:.75rem;align-items:center;font-size:.9375rem}
.grev-card figcaption a{color:var(--text);font-weight:600;text-decoration:none}
.grev-card small{display:block;color:var(--muted);font-size:.8125rem}
.grev-avatar{width:2.75rem;height:2.75rem;border-radius:50%;overflow:hidden;background:var(--gold);color:var(--on-accent);display:grid;place-items:center;font-weight:700;flex:none}
.grev-avatar img{width:100%;height:100%;object-fit:cover}
.grev-all{margin-top:2rem}
@media (max-width:960px){.grev-list{grid-template-columns:1fr}}
.deco{opacity:.62}@media (max-width:640px){.deco{opacity:.45}}
.grev-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
.site-footer{background:var(--navy)}
.grev-summary{grid-template-areas:"g score" "g stars"}
.skip-link:not(:focus){top:-10rem}

/* ================================================================ hero photo tinted to the brand navy so it flows into the site */
.hero{background:var(--navy)}
.hero-media{background:var(--navy)}
.hero-img::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:var(--navy);mix-blend-mode:lighten;opacity:.55}
.hero-media::after{background:linear-gradient(90deg,rgba(14,25,36,.7) 0%,rgba(14,25,36,.3) 45%,rgba(14,25,36,0) 65%),linear-gradient(180deg,rgba(14,25,36,.45) 0%,rgba(14,25,36,0) 22%),linear-gradient(0deg,rgba(14,25,36,.85) 0%,rgba(14,25,36,0) 18%)}
@media (max-width:959px){
  .hero-media::after{background:linear-gradient(180deg,rgba(14,25,36,.6) 0%,rgba(14,25,36,0) 26%)}
}

/* ================================================================ service cards: a clearly lighter blue than the page */
.svc-card{background:linear-gradient(180deg,var(--navy-card) 0%,var(--navy-card) 100%);border-color:rgba(210,162,80,.28)}
.svc-card:hover{background:linear-gradient(180deg,var(--navy-card) 0%,var(--navy-card) 100%);transform:none}
@media (hover:hover){
  .svc-card:hover{background:linear-gradient(180deg,var(--navy-card) 0%,var(--navy-card) 100%);border-color:rgba(210,162,80,.6);transform:translateY(-6px)}
}
.svc-card .svc-text{color:var(--muted-light)}
.svc-card .tag{border-color:rgba(244,240,232,.28);color:var(--text-light)}
.svc-card .svc-mark{color:var(--champagne)}

/* ================================================================ premium scroll layer */
/* scroll progress */
.scroll-progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:150;transform-origin:0 50%;transform:scaleX(0);pointer-events:none;
  background:linear-gradient(90deg,rgba(210,162,80,0),#d2a250 30%,var(--gold));opacity:0;transition:opacity .4s var(--ease)}
.scroll-progress.is-on{opacity:1}

/* pointer light on cards */
.has-spot{position:relative;overflow:hidden}
.spot-glow{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s var(--ease);z-index:0;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(210,162,80,.16),transparent 60%)}
.has-spot:hover .spot-glow{opacity:1}
.has-spot>*:not(.spot-glow){position:relative;z-index:1}
.svc-card.has-spot::after{z-index:0}
.ex-grid a.has-spot>.ex-arrow{position:absolute}
.principle-grid li.has-spot .spot-glow{background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(140,106,34,.1),transparent 60%)}

/* buttons: a quiet sheen and a soft lift */
.btn{position:relative;overflow:hidden;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease)}
.btn-primary::after,.btn-light::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-18deg);transition:left .8s var(--ease)}
.btn-primary:hover::after,.btn-light:hover::after{left:120%}
.btn:active{transform:translateY(1px) scale(.99)}
.btn .i{transition:transform .4s var(--ease)}
.btn:hover .i{transform:translateX(3px)}
.link-arrow{background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;border-bottom-color:rgba(210,162,80,.35);transition:background-size .5s var(--ease),color .3s}
.link-arrow:hover{background-size:100% 1.5px}

/* eyebrow rule draws in */
.motion-ready .eyebrow.draw::before{transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease)}
.motion-ready .eyebrow.draw.is-in::before{transform:scaleX(1)}

/* sticky storytelling */
@media (min-width:960px){
  .about-teaser .about-grid{align-items:start}
  .about-teaser .about-media{position:sticky;top:calc(var(--header-h) + 2rem)}
}
.story-prose{position:relative}
.story-line{display:none}
@media (min-width:960px){
  .story-line{display:block;position:absolute;left:calc(clamp(1rem,2.5vw,2.5rem) * -1);top:.4rem;bottom:.4rem;width:1px;background:var(--line)}
  .story-line i{position:absolute;inset:0;background:var(--accent);transform-origin:50% 0}
}

@media (prefers-reduced-motion:reduce){
  .btn-primary::after,.btn-light::after{display:none}
  .spot-glow{transition:none}
}

/* sticky frames for the scroll-driven Diensten and Werkwijze (replaces JS pinning) */
.is-hscroll .services{overflow:clip;padding:0;min-height:0;display:block}
.is-hscroll .services>.pin-inner{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:calc(var(--header-h) + 1.5rem) 2.5rem;overflow:hidden}
.is-pinned .approach{overflow:clip;padding:0;min-height:0;display:block}
.is-pinned .approach>.pin-inner{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;padding-block:calc(var(--header-h) + 2rem) 3rem;overflow:hidden}
.pin-inner>.wrap{width:100%}
.approach .approach-bar{background:var(--line)}.approach .approach-bar span{background:var(--gold)}


/* ================================================================ palette lock: one exact value per role */
:root{
  --navy:#0e1924;        /* every dark background: hero, sections, header, footer */
  --navy-card:#1a2a3d;   /* cards and panels on navy */
  --ivory:#faf8f4;       /* every light background */
  --white:#ffffff;       /* cards and fields on ivory */
  --gold:#d2a250;        /* accents, buttons, gold type on navy */
  --gold-text:#8c6a22;   /* gold type on ivory (readable) */
  --text-light:#f4f0e8; --muted-light:#b3bccb; --muted-dark:#566074;
  --bg:var(--navy);--deep:var(--navy);--surface:var(--navy-card);
  --text:var(--text-light);--muted:var(--muted-light);--accent:var(--gold);--accent-on-ink:var(--gold);--champagne:var(--gold);
  --on-ink:var(--text-light);--on-accent:var(--navy)
}
.statement,.approach,.about-teaser,.faq,.cta-band,.svc-body,.next-svc,.svc-list-section,.about-body,.timeline-section,.contact-section,.text-body,.page-about .principles{
  --bg:var(--ivory);--surface:var(--white);--text:var(--navy);--muted:var(--muted-dark);--accent:var(--gold-text)}
.page-about .timeline-section{--bg:var(--navy);--surface:var(--navy-card);--text:var(--text-light);--muted:var(--muted-light);--accent:var(--gold)}
.cta-inner{--accent:var(--gold);background:var(--navy)}
.btn-primary,.btn-light{background:var(--gold);border-color:var(--gold);color:var(--navy);box-shadow:none}
.btn-primary:hover,.btn-light:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);filter:brightness(1.08)}
.site-header.is-solid{background:rgba(14,25,36,.94)}
.scroll-progress{background:var(--gold)}

/* scroll performance: no live blur behind the header while content scrolls under it */
.site-header.is-solid{background:rgba(14,25,36,.97);-webkit-backdrop-filter:none;backdrop-filter:none}
.topbar{-webkit-backdrop-filter:none;backdrop-filter:none}
.hero-caption{-webkit-backdrop-filter:none;backdrop-filter:none}
.deco{will-change:auto}

/* ================================================================ v2 (Leon's feedback, Nov 2026): calmer, simpler, flatter */
/* hero: the glass building instead of the large portrait */
.hero-img img{object-position:60% 40%;filter:none}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,26,43,.82) 0%,rgba(16,26,43,.55) 45%,rgba(16,26,43,.25) 100%);pointer-events:none}
.scroll-cue{display:none}
@media (min-width:960px){.hero{min-height:min(100svh,52rem)}}
/* stats: as many columns as there are figures */
.statement .stats{grid-template-columns:repeat(auto-fit,minmax(12rem,16rem))}
/* services on home: a clean list, no filled blocks */
.services .track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2.5rem;border-top:1px solid var(--line)}
.services .svc-card{background:none!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0;box-shadow:none!important;min-height:0;padding:1.75rem 0 2rem;transform:none!important}
.services .svc-card::after,.services .svc-card::before{display:none}
.services .svc-card .tags{display:none}
.services .svc-card .svc-title{margin-top:.5rem}
.services .svc-card:hover .svc-title{color:var(--gold)}
/* werkwijze: one compact row */
.approach--compact{padding-block:clamp(3rem,6vw,4.5rem)}
.approach--compact .approach-head{display:flex;align-items:baseline;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.75rem}
.approach--compact .approach-head .eyebrow{margin:0}
.steps--row{display:grid;grid-template-columns:repeat(4,1fr);gap:0 2rem;border-top:1px solid var(--line)}
.steps--row .step{display:block;padding:1.25rem 0 0;border:0!important}
.steps--row .step-num{font-size:1rem;min-width:0;margin-bottom:.35rem}
.steps--row .step-title{font-size:1.2rem}
.steps--row .step-text{margin-top:.35rem;font-size:.95rem}
/* about teaser: smaller portrait */
.about-teaser .about-grid{grid-template-columns:minmax(0,22rem) 1fr;align-items:center}
.about-teaser .about-media{max-width:22rem}
/* guarantees: hairline columns instead of filled cards */
.guarantee{background:none!important;border:0!important;border-top:1px solid var(--gold)!important;border-radius:0;box-shadow:none!important;padding:1.5rem 0 0!important}
.guarantee .g-icon{display:none}
.guarantee h3::after{display:none}
.guarantees{gap:2rem}
.spot-glow{display:none}
@media (max-width:959px){
  .services .track{grid-template-columns:1fr 1fr}
  .steps--row{grid-template-columns:1fr 1fr;gap:0 1.5rem}
  .steps--row .step{padding-bottom:1rem}
  .about-teaser .about-grid{grid-template-columns:1fr}
  .about-teaser .about-media{max-width:16rem}
}
@media (max-width:640px){
  .services .track{grid-template-columns:1fr}
  .steps--row{grid-template-columns:1fr}
  .steps--row .step{display:grid;grid-template-columns:2rem 1fr;padding:1rem 0;border-bottom:1px solid var(--line)!important}
  .steps--row .step-num{margin:0}
  .statement .stats{grid-template-columns:1fr 1fr}
}
.hero-img::before{display:none}
.hero-media::after{background:linear-gradient(90deg,rgba(16,26,43,.78) 0%,rgba(16,26,43,.45) 50%,rgba(16,26,43,.1) 100%)!important;display:block!important}
@media (max-width:959px){
  .hero{position:relative;padding-block:calc(var(--header-h) + var(--topbar-h,0px) + 3rem) 3.5rem!important;min-height:0}
  .hero-media{position:absolute!important;inset:0!important;height:auto!important;max-height:none!important;aspect-ratio:auto!important;margin:0!important;-webkit-mask-image:none!important;mask-image:none!important}
  .hero-media::after{background:linear-gradient(180deg,rgba(16,26,43,.55) 0%,rgba(16,26,43,.8) 100%)!important}
  .hero-img img{object-position:60% 40%!important}
  .hero-content{position:relative;z-index:1}
}
@media (max-width:959px){
  .hero{padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + 2.5rem)!important;padding-bottom:3.5rem!important}
  .hero-content{margin-top:0!important}
}
/* about: practice areas and principles as hairline lists, no filled blocks */
.ex-grid{background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;border-top:1px solid var(--line)!important;gap:0 2.5rem!important}
.ex-grid li,.ex-grid a{background:none!important;border-radius:0!important;box-shadow:none!important}
.ex-grid a{border:0!important;border-bottom:1px solid var(--line)!important;padding:1.5rem 0!important}
.principle-grid li{background:none!important;border:0!important;border-top:1px solid var(--accent)!important;border-radius:0!important;box-shadow:none!important;padding:1.25rem 0 0!important}
.services .svc-card{gap:.4rem}
.services .svc-card .svc-title{margin-top:.35rem!important}

/* ================================================================ round 2 (Nov 2026): Lovable hero photo, its navy and gold, calmer footer */
.hero-img img{object-position:62% 50%!important}
.hero-media::after{background:linear-gradient(90deg,rgba(14,25,36,.85) 0%,rgba(14,25,36,.55) 42%,rgba(14,25,36,.05) 75%),linear-gradient(0deg,rgba(14,25,36,.6) 0%,rgba(14,25,36,0) 30%)!important}
@media (max-width:959px){.hero-media::after{background:linear-gradient(180deg,rgba(14,25,36,.6) 0%,rgba(14,25,36,.82) 100%)!important}.hero-img img{object-position:66% 50%!important}}
/* stats: three equal columns across the full width */
.statement .stats{grid-template-columns:repeat(3,1fr)!important}
@media (max-width:640px){.statement .stats{grid-template-columns:1fr 1fr 1fr!important}.statement .stat{padding-right:.5rem}.statement .stat-num{font-size:2.4rem}}
/* werkwijze heading: eyebrow above the title, like every other section */
.approach--compact .approach-head{display:block;margin-bottom:2rem}
.approach--compact .approach-head .eyebrow{margin-bottom:.9rem}
.approach--compact .approach-head .h3{font-size:clamp(1.9rem,1.4rem + 1.6vw,2.75rem);line-height:1.12}
/* over leon: the same building photo behind the intro */
.page-hero--about{background:var(--navy)}
.page-hero-bg{position:absolute;inset:0;z-index:0}
.page-hero-bg picture,.page-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.page-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,25,36,.88) 0%,rgba(14,25,36,.6) 50%,rgba(14,25,36,.3) 100%)}
.page-hero--about>.wrap{position:relative;z-index:1}
.page-hero--about .facade,.page-hero--about .deco{display:none}
/* footer: smaller */
.site-footer{padding-block:clamp(2.5rem,5vw,3.5rem) 1.5rem!important;font-size:.9375rem}
.footer-grid{grid-template-columns:1.3fr 1fr .9fr 1fr 1fr!important;gap:2rem!important;padding-block:0 clamp(2rem,4vw,2.75rem)!important}
.footer-col h2{font-size:.75rem!important;margin-bottom:.9rem!important}
.footer-col ul{gap:.4rem!important}
.footer-col a,.footer-col li,.footer-brand p{font-size:.9375rem}
.footer-brand p{margin-top:.6rem!important}
.footer-biz{font-size:.8125rem!important;padding-bottom:1rem!important}
.footer-bottom{font-size:.8125rem!important;padding-top:1.25rem!important}
.footer-map .map-addr{color:var(--on-ink);line-height:1.5}
.footer-map .map-note{color:var(--on-ink-muted);margin:.35rem 0 .75rem;font-size:.875rem}
.site-footer .deco{display:none}
@media (max-width:959px){.footer-grid{grid-template-columns:1fr 1fr!important}.footer-map{grid-column:auto!important;max-width:none!important}}
@media (max-width:640px){.footer-grid{grid-template-columns:1fr 1fr!important;gap:1.75rem 1.25rem!important}.footer-brand{grid-column:1/-1}}
.hero-media::after{background:linear-gradient(90deg,rgba(14,25,36,.62) 0%,rgba(14,25,36,.35) 40%,rgba(14,25,36,0) 65%),linear-gradient(0deg,rgba(14,25,36,.45) 0%,rgba(14,25,36,0) 25%)!important}
.hero-img img{object-position:50% 50%!important}
@media (max-width:959px){.hero-media::after{background:linear-gradient(180deg,rgba(14,25,36,.45) 0%,rgba(14,25,36,.7) 100%)!important}}

/* ================================================================ round 4: photo heroes, contact page, footer map */
.page-hero--photo{background:var(--navy)}
.page-hero--photo>.wrap{position:relative;z-index:1}
.page-hero--photo .facade,.page-hero--photo .deco{display:none}
.page-hero--contact{padding-bottom:clamp(3.5rem,7vw,5.5rem)}
.hero-lines{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin-top:1.75rem}
.hero-lines a{display:inline-flex;align-items:center;gap:.6rem;color:var(--text-light);text-decoration:none;font-size:1.0625rem;border-bottom:1px solid rgba(210,162,80,.5);padding-bottom:.2rem}
.hero-lines a:hover{color:var(--gold);border-color:var(--gold)}
.hero-lines svg{color:var(--gold);width:1.1rem;height:1.1rem}
.contact-section{padding-top:clamp(3rem,6vw,5rem)!important}
.contact-grid{grid-template-columns:minmax(0,1fr) 25rem;align-items:start}
.contact-section .form-card{border-radius:var(--r);box-shadow:0 30px 60px -40px rgba(14,25,36,.35)}
.contact-aside{gap:1.5rem}
.contact-card{background:var(--navy);color:var(--text-light);border-radius:var(--r);padding:2rem}
.contact-card .aside-title{color:var(--text-light);font-family:var(--serif);font-size:1.6rem;line-height:1.2}
.contact-card .aside-person{display:flex;align-items:center;gap:.9rem;margin:1.25rem 0 1.5rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.12)}
.contact-card .aside-person .avatar img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 10%}
.contact-card .aside-person span{display:grid;font-weight:600}
.contact-card .aside-person small{font-weight:400;color:var(--muted-light);font-size:.875rem}
.contact-card .contact-list{display:grid;gap:1.1rem}
.contact-card dt{color:var(--gold);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem}
.contact-card dd{color:var(--text-light);margin-top:.3rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.contact-card dd a{color:var(--text-light);text-decoration:none}
.contact-card dd a:hover{color:var(--gold)}
.contact-card .copy-btn{border:1px solid rgba(255,255,255,.2);color:var(--muted-light);background:transparent;font-size:.75rem;padding:.2rem .55rem}
.contact-card .copy-btn:hover{border-color:var(--gold);color:var(--gold)}
.aside-next{padding:0 .25rem}
.aside-next .aside-title{font-family:var(--serif);font-size:1.25rem}
@media (max-width:959px){.contact-grid{grid-template-columns:1fr}}
/* footer map */
.footer-map .map-frame{display:block;position:relative;aspect-ratio:16/10;border-radius:var(--r-sm,6px);overflow:hidden;border:1px solid rgba(255,255,255,.12);margin-bottom:.75rem;background:var(--navy-card)}
.footer-map .map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.2)}
.footer-map .map-frame .map-art{position:absolute;inset:0;width:100%;height:100%}
.footer-map .map-badge{top:.5rem;left:.5rem;right:auto;font-size:.75rem;padding:.35rem .55rem}
.footer-map .map-preview-note{display:none}
.footer-map .map-addr{font-size:.875rem;color:var(--on-ink-muted);margin-bottom:.4rem}
/* ================================================================ round 5: phone fixes */
.aside-next{padding:1.5rem .25rem 0}
@media (max-width:640px){
  .statement .stats{grid-template-columns:1fr!important;border-top:1px solid var(--line)}
  .statement .stat,.statement .stat+.stat,.statement .stat:nth-child(even),.statement .stat:nth-child(n+3){display:flex;align-items:baseline;gap:1.25rem;padding:1.25rem 0!important;border-left:0!important;border-top:0!important;border-bottom:1px solid var(--line)}
  .statement .stat-num{font-size:2.6rem;min-width:3.6rem}
  .statement .stat-label{margin-top:0;max-width:none}
  .footer-map{grid-column:1/-1!important}
  .footer-map .map-frame{aspect-ratio:16/8}
  .footer-biz{display:flex!important;flex-wrap:wrap;gap:.35rem 1.25rem}
}
