*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  /* Phoenix Advisory brand palette */
  --alabaster:#FFFFFF;          /* White: clean whitespace, text on navy */
  --navh:79px;                  /* content-page nav bar */
  --navy:#0B1F33;               /* Deep Navy: primary brand color */
  --navy-light:#16293e;
  --navy-mid:rgba(11,31,51,.85);
  --cinnamon:#B87333;           /* Warm Copper: accents, dividers, large emphasis only */
  --cinnamon2:#d09a64;          /* Copper tint: small copper text on navy (6.7:1) */
  --cinnamon-text:#8a5626;      /* Deep copper: small copper text on light (6.1:1) */
  --btn:#9c5f27;                /* Button copper: white text passes at 5.1:1 */
  --btn-hover:#7a4c22;
  --cinnamon-light:rgba(184,115,51,.15);
  --cinnamon-border:rgba(184,115,51,.3);
  --frost:#E5E7EB;              /* Soft Grey: section backgrounds, cards, tables */
  --frost-dark:#d8dbe0;
  --text-muted:#1F2933;         /* Charcoal: primary body text (13:1 on white) */
  --muted:#6B7280;              /* Muted Grey: captions, metadata (4.8:1 on white) */
  --text-light:rgba(255,255,255,.78);  /* secondary text on navy (10:1) */
  --border-light:rgba(11,31,51,.08);
  --border-med:rgba(11,31,51,.14);
  /* Type scale */
  --fs-xs:.65rem;      /* uppercase micro-labels */
  --fs-sm:.75rem;      /* small labels */
  --fs-sec:.9375rem;   /* secondary body, card copy */
  --fs-base:1rem;      /* body */
  --fs-lead:1.125rem;  /* lead paragraphs */
  --fs-md:1.375rem;    /* small headings */
  --fs-lg:1.6rem;      /* sub-headings */
  --serif:'Playfair Display',Georgia,serif;
  --sans:'DM Sans',sans-serif;
}
html{background:var(--alabaster);scroll-behavior:smooth;}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--cinnamon);outline-offset:3px;}
.skip-link{position:fixed;top:-100px;left:16px;z-index:10001;background:var(--navy);color:#fff;font-family:var(--sans);font-size:var(--fs-sm);letter-spacing:.15em;text-transform:uppercase;padding:12px 20px;text-decoration:none;transition:top .2s;}
.skip-link:focus{top:16px;}
body{background:var(--alabaster);color:var(--text-muted);font-family:var(--sans);font-weight:400;overflow-x:hidden;line-height:1.6;}
#cur{display:none;}
#cur-ring{position:fixed;left:0;top:0;z-index:9999;width:32px;height:32px;border:1px solid rgba(184,115,51,.45);border-radius:50%;pointer-events:none;will-change:transform;transition:width .3s,height .3s,border-color .3s,background .3s;}
#cur-glow{position:fixed;left:0;top:0;z-index:9998;width:240px;height:240px;border-radius:50%;pointer-events:none;will-change:transform;background:radial-gradient(circle,rgba(184,115,51,.055) 0%,transparent 70%);}
.chov #cur{width:3px;height:3px;}
.chov #cur-ring{width:52px;height:52px;border-color:var(--cinnamon);}
.clink #cur-ring{width:18px;height:18px;border-color:var(--cinnamon2);background:rgba(184,115,51,.1);}
#progress-bar{position:fixed;left:0;top:0;z-index:600;height:2px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(to right,var(--cinnamon),var(--cinnamon2));will-change:transform;}
#sdots{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:600;display:flex;flex-direction:column;gap:12px;}
.sdot{width:5px;height:5px;border-radius:50%;background:rgba(184,115,51,.2);transition:all .4s;cursor:pointer;}
.sdot.active{background:var(--cinnamon);transform:scale(1.6);}
.sdot:hover{background:var(--cinnamon2);}

/* === LOADER === */
#loader{position:fixed;inset:0;z-index:9998;background:var(--navy);display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .5s ease,visibility .5s;}
#loader.gone{opacity:0;visibility:hidden;}
.l-logo{width:170px;opacity:0;transform:scale(.95);animation:lLogo .45s var(--ease-out) forwards;}
.l-line{width:0;height:1px;background:linear-gradient(to right,transparent,var(--cinnamon),transparent);margin-top:28px;animation:lLine .5s ease .2s forwards;}
.l-txt{font-family:var(--serif);font-size:var(--fs-sm);letter-spacing:.35em;text-transform:uppercase;color:var(--cinnamon2);margin-top:20px;opacity:0;animation:fadeIn .4s ease .3s forwards;}
@keyframes lLogo{to{opacity:1;transform:scale(1);}}
@keyframes lLine{to{width:140px;}}
@keyframes fadeIn{to{opacity:1;}}

/* === NAV === */
#nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;flex-direction:column;transition:background .5s,box-shadow .5s;}
.nav-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:28px 64px;transition:padding .5s cubic-bezier(.25,.46,.45,.94);}
#nav.compact{background:rgba(255,255,255,.96);border-bottom:1px solid var(--border-light);box-shadow:0 1px 20px rgba(11,31,51,.04);}
#nav.compact .nav-row{padding:16px 64px;}
/* A panel opened over the transparent hero needs its own field. */
#nav .mm-panel{background:#fff;}
#nav:has(.mm-panel:not([hidden])){background:rgba(255,255,255,.98);}
#nav .mm-inner{padding-left:64px;padding-right:64px;}
/* Compact row inside the full-screen menu: the display type used by the
   primary links would not fit seven more. */
.mobile-menu .mm-svc{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;max-width:330px;}
.mobile-menu .mm-svc a{font-family:var(--sans);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);padding:9px 0;}
.nav-logo img{height:72px;width:auto;transition:height .5s;filter:brightness(0) saturate(100%) invert(10%) sepia(30%) saturate(1200%) hue-rotate(175deg);}
#nav.compact .nav-logo img{height:52px;}
.nav-right{display:flex;align-items:center;gap:20px;}
.nav-socials{display:flex;gap:10px;}
.nav-soc{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-med);color:var(--text-muted);text-decoration:none;transition:all .35s;position:relative;overflow:hidden;}
.nav-soc::before{content:'';position:absolute;inset:0;background:var(--btn);transform:translateY(101%);transition:transform .35s cubic-bezier(.76,0,.24,1);}
.nav-soc:hover::before{transform:translateY(0);}
.nav-soc:hover{border-color:var(--cinnamon);color:#fff;}
.nav-soc svg{position:relative;z-index:1;width:13px;height:13px;}
.nav-engage{font-size:var(--fs-xs);font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--navy);text-decoration:none;padding:12px 28px;border:1px solid var(--navy);position:relative;overflow:hidden;transition:color .4s;}
.nav-engage::before{content:'';position:absolute;inset:0;background:var(--btn);transform:translateX(-101%) skewX(-8deg);transition:transform .45s cubic-bezier(.76,0,.24,1);}
.nav-engage:hover::before{transform:translateX(0) skewX(-8deg);}
.nav-engage:hover{color:#fff;border-color:var(--btn);}
.nav-engage span{position:relative;z-index:1;}

/* === HAMBURGER MENU === */
.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;background:none;border:1px solid var(--border-med);cursor:pointer;z-index:700;padding:0;transition:border-color .3s;}
.hamburger:hover{border-color:var(--cinnamon);}
.hamburger span{display:block;width:18px;height:1.5px;background:var(--navy);transition:transform .35s cubic-bezier(.76,0,.24,1),opacity .25s;}
.hamburger.active span{background:var(--cinnamon);}
.hamburger.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-menu{position:fixed;inset:0;z-index:550;background:rgba(255,255,255,.97);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;opacity:0;visibility:hidden;transition:opacity .5s cubic-bezier(.76,0,.24,1),visibility .5s;}
.mobile-menu.open{opacity:1;visibility:visible;}
.mobile-menu a{font-family:var(--serif);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400;color:var(--navy);text-decoration:none;padding:14px 0;display:block;opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease,color .3s;}
.mobile-menu.open a{opacity:1;transform:translateY(0);}
.mobile-menu a:nth-child(1){transition-delay:.1s;}
.mobile-menu a:nth-child(2){transition-delay:.15s;}
.mobile-menu a:nth-child(3){transition-delay:.2s;}
.mobile-menu a:nth-child(4){transition-delay:.25s;}
.mobile-menu a:nth-child(5){transition-delay:.3s;}
.mobile-menu a:nth-child(6){transition-delay:.35s;}
.mobile-menu a:nth-child(7){transition-delay:.4s;}
.mobile-menu a:hover{color:var(--cinnamon);}
.mobile-menu .mm-divider{width:40px;height:1px;background:var(--cinnamon);margin:20px 0;opacity:0;transition:opacity .5s ease .4s;}
.mobile-menu.open .mm-divider{opacity:1;}
.mobile-menu .mm-socials{display:flex;gap:12px;margin-top:8px;opacity:0;transition:opacity .5s ease .5s;}
.mobile-menu.open .mm-socials{opacity:1;}
.mobile-menu .mm-socials a{font-size:var(--fs-sm);padding:8px 12px;font-family:var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border-med);display:flex;align-items:center;gap:8px;}
.mobile-menu .mm-socials a svg{width:14px;height:14px;}

/* === HERO === */
#hero{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-rows:1fr auto;padding:0 64px 56px;overflow:hidden;}
/* The photograph is shown at a strength you can actually see, then washed
   out from the left so the headline and body copy keep a clean field. */
#hero::before{content:'';position:absolute;inset:0;background:none;opacity:.5;pointer-events:none;z-index:0;}
#hero::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,#fff 26%,rgba(255,255,255,.82) 48%,rgba(255,255,255,.5) 72%,rgba(255,255,255,.34) 100%);pointer-events:none;z-index:0;}
.hero-content{align-self:end;padding-top:150px;position:relative;z-index:1;}
.h-kicker{display:flex;align-items:center;gap:20px;font-size:var(--fs-xs);font-weight:300;letter-spacing:.45em;text-transform:uppercase;color:var(--cinnamon-text);margin-bottom:44px;overflow:hidden;}
.h-kicker::before{content:'';display:block;width:52px;height:1px;background:var(--cinnamon);flex-shrink:0;}
.h-kicker-inner{transform:translateY(100%);opacity:0;}
.h-title{font-family:var(--serif);font-size:clamp(5.5rem,11vw,12rem);font-weight:400;line-height:.85;letter-spacing:-.025em;color:var(--navy);margin-bottom:44px;}
.h-title .word{display:inline-block;overflow:hidden;margin-right:.25em;}
.h-title .word.ig{color:var(--cinnamon);font-style:italic;}
.h-title .char{display:inline-block;transform:translateY(110%);opacity:0;}
.h-sub{display:grid;grid-template-columns:1fr 1fr;gap:60px;opacity:0;transform:translateY(24px);}
.h-desc{max-width:460px;font-size:var(--fs-base);line-height:1.85;color:var(--text-muted);border-left:1px solid var(--cinnamon-border);padding-left:24px;}
.h-acts{display:flex;flex-direction:column;gap:18px;justify-content:flex-end;align-items:flex-start;}
.mag-wrap{display:inline-block;}
.btn-gold{display:inline-flex;align-items:center;gap:14px;background:var(--btn);color:#fff;font-family:var(--sans);font-size:var(--fs-sm);font-weight:400;letter-spacing:.2em;text-transform:uppercase;padding:18px 44px;text-decoration:none;position:relative;overflow:hidden;transition:box-shadow .3s;}
.btn-gold::after{content:'';position:absolute;inset:0;background:var(--btn-hover);transform:translateX(-101%);transition:transform .45s cubic-bezier(.76,0,.24,1);}
.btn-gold:hover{box-shadow:0 0 40px rgba(184,115,51,.2);}
.btn-gold:hover::after{transform:translateX(0);}
.btn-gold span{position:relative;z-index:1;display:flex;align-items:center;gap:14px;}
.btn-ghost{font-size:var(--fs-sm);font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--navy);text-decoration:none;display:inline-flex;align-items:center;gap:12px;padding:18px 40px;transition:background .35s,gap .3s;}
.btn-ghost:hover{background:var(--navy-light);color:#fff;gap:18px;}
.h-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:36px;border-top:1px solid var(--border-light);opacity:0;transform:translateY(16px);position:relative;z-index:1;}
.h-loc{font-size:var(--fs-xs);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);}
/* Sits at the far right of the hero, where the facade shows through most,
   so it needs the darker text colour rather than the muted one. */
.h-scroll{font-size:var(--fs-xs);letter-spacing:.3em;text-transform:uppercase;color:var(--text-muted);display:flex;align-items:center;gap:14px;}
.h-scroll::after{content:'';width:1px;height:52px;background:linear-gradient(to bottom,var(--cinnamon),transparent);animation:scrollP 2.5s ease-in-out infinite;}
@keyframes scrollP{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}
.h-ghost{position:absolute;right:-.02em;bottom:-.08em;font-family:var(--serif);font-size:clamp(16rem,28vw,36rem);font-weight:400;color:transparent;-webkit-text-stroke:1px rgba(11,31,51,.04);line-height:.8;pointer-events:none;user-select:none;letter-spacing:-.06em;}
.h-ambient{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(184,115,51,.06) 0%,transparent 65%);pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .5s;}

/* === MARQUEE === */
.mq-wrap{position:relative;z-index:1;overflow:hidden;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);padding:16px 0;background:var(--navy);}
.mq-track{display:flex;animation:MQ 24s linear infinite;width:max-content;}
.mq-track:hover{animation-play-state:paused;}
.mq-item{font-family:var(--serif);font-size:var(--fs-sec);font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.6);padding:0 52px;white-space:nowrap;display:flex;align-items:center;gap:52px;transition:color .3s;}
.mq-item:hover{color:var(--cinnamon2);}
.mq-item::after{content:'◆';font-size:.35rem;color:var(--cinnamon);}
@keyframes MQ{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* === STATS === */
#stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);background:var(--navy);}
.s-cell{padding:72px 52px;border-right:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden;transition:background .5s;}
.s-cell:last-child{border-right:none;}
.s-cell::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--cinnamon),var(--cinnamon2));transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.76,0,.24,1);}
.s-cell:hover{background:var(--navy-light);}
.s-cell:hover::after{transform:scaleX(1);}
/* nowrap keeps the longest figure on one line, so every label in the row
   shares a baseline instead of one cell dropping below the others. */
.s-num{font-family:var(--serif);font-size:clamp(2.6rem,4vw,4.8rem);font-weight:400;color:#fff;line-height:1;margin-bottom:10px;letter-spacing:-.025em;white-space:nowrap;}
.s-num .ac{color:var(--cinnamon2);}
.s-lbl{font-size:var(--fs-xs);font-weight:300;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.72);}

/* === SECTIONS === */
.sec{position:relative;z-index:1;padding:160px 64px;}
.eyebrow{font-size:var(--fs-xs);letter-spacing:.4em;text-transform:uppercase;color:var(--cinnamon-text);display:flex;align-items:center;gap:16px;margin-bottom:28px;}
.eyebrow::before{content:'';display:block;width:32px;height:1px;background:var(--cinnamon);flex-shrink:0;}
.sec-title{font-family:var(--serif);font-size:clamp(2.8rem,4.5vw,5rem);font-weight:400;line-height:1.02;color:var(--navy);}
.sec-title em{font-style:italic;color:var(--cinnamon);}

/* === MANIFESTO === */
#manifesto{background:var(--alabaster);display:grid;grid-template-columns:1fr 1fr;gap:120px;align-items:start;position:relative;overflow:hidden;}
#manifesto::after{content:'';position:absolute;right:-5%;bottom:-10%;width:55%;height:80%;background:none;opacity:.5;pointer-events:none;mask-image:linear-gradient(to left,#000,transparent 78%);-webkit-mask-image:linear-gradient(to left,#000,transparent 78%);}
.mf-right{padding-top:72px;position:relative;z-index:1;}
.big-quote{font-family:var(--serif);font-size:clamp(1.4rem,1.9vw,1.9rem);font-weight:400;font-style:italic;color:var(--navy);line-height:1.45;margin-bottom:44px;padding-left:32px;border-left:2px solid var(--cinnamon);}
.mf-right p{font-size:var(--fs-base);line-height:1.85;color:var(--text-muted);margin-bottom:24px;}

/* === METRICS === */
#metrics{background:var(--alabaster);padding-top:0;}
.met-hdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:56px;padding-bottom:28px;border-bottom:1px solid var(--border-light);}
.met-hdr h3{font-family:var(--serif);font-size:clamp(1.4rem,2vw,2.2rem);font-weight:400;color:var(--navy);}
.met-hdr p{font-size:var(--fs-sec);color:var(--text-muted);max-width:340px;text-align:right;line-height:1.75;}
.met-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border-light);border:1px solid var(--border-light);}
.met-cell{background:var(--frost);padding:52px 44px;position:relative;overflow:hidden;transition:background .4s;}
.met-cell::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--cinnamon),transparent);transform:scaleX(0);transition:transform .5s;}
.met-cell:hover{background:var(--frost-dark);}
.met-cell:hover::before{transform:scaleX(1);}
.met-fig{font-family:var(--serif);font-size:clamp(2.5rem,3.5vw,4.2rem);font-weight:400;color:var(--cinnamon);line-height:1;margin-bottom:14px;letter-spacing:-.02em;}
.met-lbl{font-size:var(--fs-sm);font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);margin-bottom:10px;}
.met-desc{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.7;}

/* === APPROACH === */
#approach{background:var(--frost);position:relative;overflow:hidden;}
#approach::before{content:'';position:absolute;inset:0;background:none;opacity:.42;pointer-events:none;}
/* Copper on white only carries ~3.8:1, so the eyebrow and italic heading
   have no headroom to spare. Scrim the top band where they sit. */
#approach::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--frost) 0%,var(--frost) 20%,rgba(229,231,235,.82) 40%,rgba(229,231,235,.28) 66%,transparent 100%);pointer-events:none;}
#approach > *{position:relative;z-index:1;}
.ap-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:80px;align-items:end;}
.ap-intro p{font-size:var(--fs-base);line-height:1.9;color:var(--text-muted);}
.step-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.step-card{padding:60px 44px;border-top:1px solid var(--border-light);border-right:1px solid var(--border-light);position:relative;overflow:hidden;transition:background .5s;}
.step-card:last-child{border-right:none;}
.step-card:hover{background:rgba(184,115,51,.03);}
.step-hl{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--cinnamon);transform:scaleY(0);transform-origin:top;transition:transform .5s cubic-bezier(.76,0,.24,1);}
.step-card:hover .step-hl{transform:scaleY(1);}
.step-n{font-family:var(--serif);font-size:5.5rem;font-weight:400;color:rgba(184,115,51,.1);line-height:1;display:block;margin-bottom:28px;letter-spacing:-.04em;transition:color .5s;}
.step-card:hover .step-n{color:rgba(184,115,51,.2);}
.step-title{font-family:var(--serif);font-size:var(--fs-lg);font-weight:400;color:var(--navy);margin-bottom:16px;}
.step-body{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.85;}
.ap-callout{max-width:1000px;margin-top:56px;display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center;padding:40px 52px;background:rgba(184,115,51,.04);border:1px solid var(--cinnamon-border);}
.ap-icon{font-family:var(--serif);font-size:2.8rem;color:var(--cinnamon);font-style:italic;line-height:1;}
.ap-text p{font-size:var(--fs-base);color:var(--text-muted);line-height:1.85;}
.ap-text strong{color:var(--navy);font-weight:400;}

/* === SERVICES === */
#services{background:var(--alabaster);}
.svc-intro{padding:160px 64px 72px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;}
.svc-intro p{font-size:var(--fs-base);line-height:1.9;color:var(--text-muted);}
.svc-tag{font-size:var(--fs-xs);letter-spacing:.32em;text-transform:uppercase;color:var(--cinnamon-text);margin-bottom:28px;display:block;}
/* Service index: one row per service, each a link to its own page. Reads as
   a practice-area index rather than two columns of bullets. */
.svc-index{list-style:none;margin:0;padding:0 64px 24px;border-top:1px solid var(--border-light);}
.svc-row{border-bottom:1px solid var(--border-light);}
.svc-row a{display:grid;grid-template-columns:76px minmax(210px,1fr) 2fr 44px;align-items:baseline;gap:24px;padding:30px 0;text-decoration:none;transition:background .35s,padding .35s;}
.svc-row a:hover{background:rgba(184,115,51,.045);padding-left:18px;padding-right:18px;}
.svc-row a:focus-visible{outline:2px solid var(--cinnamon);outline-offset:-2px;}
.svc-n{font-family:var(--serif);font-size:var(--fs-base);color:var(--cinnamon);letter-spacing:.04em;}
.svc-name{font-family:var(--serif);font-size:clamp(1.35rem,1.9vw,1.85rem);font-weight:400;color:var(--navy);line-height:1.15;}
.svc-desc{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.8;}
.svc-go{justify-self:end;font-size:var(--fs-md);color:var(--cinnamon);opacity:0;transform:translateX(-10px);transition:opacity .35s,transform .35s;}
.svc-row a:hover .svc-go{opacity:1;transform:translateX(0);}
/* Governance closes the section on its own terms instead of competing with
   the tax services as a second column. */
/* Its own tonal band, so it closes the section rather than floating after
   the index. Centred, because the heading column is half the height of the
   text column and aligning to the top left a 206px void beneath it. */
.svc-gov{display:grid;grid-template-columns:1fr 1.3fr;gap:72px;align-items:center;margin-top:64px;padding:72px 64px;background:var(--frost);border-top:1px solid var(--border-light);}
.svc-gov-h{font-family:var(--serif);font-size:clamp(1.7rem,2.3vw,2.35rem);font-weight:400;color:var(--navy);line-height:1.12;}
.svc-gov-h em{font-style:italic;color:var(--cinnamon);}
.svc-gov-head .svc-tag{margin-bottom:18px;}
.svc-gov-body p{font-size:var(--fs-base);line-height:1.9;color:var(--text-muted);}
.svc-gov-body .svc-pledge{margin-top:28px;background:#fff;}
.svc-pledge{margin-top:40px;padding:30px 32px;background:var(--frost);border-left:2px solid var(--cinnamon);}
.pledge-lbl{font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon-text);display:block;margin-bottom:10px;}
.svc-pledge p{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.8;}

/* === TECHNOLOGY === */
#technology{background:var(--navy);position:relative;overflow:hidden;}
#technology::before{content:'';position:absolute;inset:0;background:none;opacity:.5;pointer-events:none;}
/* The heading and lead sit directly on the photograph, whose lit vellum
   edges are bright enough to fail contrast unscrimmed. Heavier at the top
   where that text is, lighter over the cards, which carry their own field. */
#technology::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,31,51,.9) 0%,rgba(11,31,51,.78) 34%,rgba(11,31,51,.45) 100%);pointer-events:none;}
#technology .eyebrow,#technology .sec-title,#technology .sec-title em{position:relative;z-index:1;}
#technology .eyebrow{color:var(--cinnamon2);}
#technology .sec-title{color:var(--alabaster);}
#technology .sec-title em{color:var(--cinnamon);}
.tc-lead{position:relative;z-index:1;margin-top:28px;max-width:640px;font-size:var(--fs-base);line-height:1.85;color:rgba(255,255,255,.78);}
.tc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);margin-top:56px;position:relative;z-index:1;}
.tc-card{background:rgba(11,31,51,.92);padding:64px 52px;position:relative;overflow:hidden;transition:background .4s;}
.tc-card:hover{background:rgba(11,31,51,.92);}
.tc-ghost{position:absolute;bottom:-16px;right:-8px;font-family:var(--serif);font-size:9rem;font-weight:400;color:rgba(184,115,51,.1);line-height:1;pointer-events:none;user-select:none;transition:color .5s,transform .5s;letter-spacing:-.05em;}
.tc-card:hover .tc-ghost{color:rgba(184,115,51,.2);transform:scale(1.05);}
.tc-tag{font-size:var(--fs-xs);letter-spacing:.3em;text-transform:uppercase;color:var(--cinnamon2);display:block;margin-bottom:28px;}
.tc-title{font-family:var(--serif);font-size:clamp(1.6rem,2vw,2.3rem);font-weight:400;color:var(--alabaster);margin-bottom:18px;line-height:1.15;}
.tc-body{font-size:var(--fs-sec);color:rgba(255,255,255,.78);line-height:1.85;position:relative;z-index:1;}
.tc-conf{position:relative;z-index:1;margin-top:32px;max-width:900px;font-size:var(--fs-sec);line-height:1.85;color:rgba(255,255,255,.72);border-left:2px solid var(--cinnamon);padding-left:22px;}
.tc-conf strong{color:var(--alabaster);font-weight:400;}
.tc-conf a{color:var(--cinnamon2);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);}
.tc-conf a:hover{border-bottom-color:var(--cinnamon2);}

/* === TESTIMONIALS === */
#testimonials{background:var(--alabaster);position:relative;z-index:1;padding:160px 64px;}
.tst-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:72px;align-items:end;}
.tst-intro p{font-size:var(--fs-base);line-height:1.9;color:var(--text-muted);}
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-light);border:1px solid var(--border-light);}
.tst-card{background:var(--frost);padding:52px 44px;position:relative;overflow:hidden;transition:background .4s;}
.tst-card:hover{background:var(--frost-dark);}
.tst-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--cinnamon),var(--cinnamon2));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.76,0,.24,1);}
.tst-card:hover::before{transform:scaleX(1);}
.tst-quote-mark{font-family:var(--serif);font-size:4rem;color:rgba(184,115,51,.2);line-height:1;margin-bottom:16px;font-style:italic;}
.tst-quote{font-family:var(--serif);font-size:clamp(1rem,1.3vw,1.25rem);font-weight:400;font-style:italic;color:var(--navy);line-height:1.6;margin-bottom:32px;}
.tst-divider{width:32px;height:1px;background:var(--cinnamon);margin-bottom:20px;}
.tst-type{font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon-text);margin-bottom:6px;}
.tst-detail{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.7;}

/* === LEADERSHIP === */
#leadership{background:var(--alabaster);display:grid;grid-template-columns:1fr 1fr;gap:120px;align-items:start;}
.ld-left p{font-size:var(--fs-base);line-height:1.95;color:var(--text-muted);margin-bottom:22px;}
.ld-left .sec-title{margin-bottom:32px;}
.etags{display:flex;flex-wrap:wrap;gap:8px;margin-top:44px;padding-top:44px;border-top:1px solid var(--border-light);}
.etag{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);padding:8px 16px;border:1px solid var(--border-light);transition:all .3s;}
.etag:hover{border-color:var(--cinnamon-border);color:var(--cinnamon-text);}
.founder-card{border:1px solid var(--border-light);padding:52px 48px;background:var(--frost);margin-bottom:1px;position:relative;overflow:hidden;transition:background .4s;}
.founder-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--cinnamon),transparent);opacity:0;transition:opacity .4s;}
.founder-card:hover{background:var(--frost-dark);}
.founder-card:hover::after{opacity:1;}
.f-num{font-family:var(--serif);font-size:4.5rem;font-weight:400;color:rgba(184,115,51,.1);line-height:1;margin-bottom:20px;letter-spacing:-.04em;}
.f-name{font-family:var(--serif);font-size:var(--fs-lg);font-weight:400;color:var(--navy);margin-bottom:8px;}
.f-role{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--cinnamon-text);}
.f-bar{padding:30px 48px;background:rgba(184,115,51,.04);border:1px solid var(--border-light);border-top:none;display:flex;align-items:center;gap:24px;}
.f-line{width:2px;height:44px;background:var(--cinnamon);flex-shrink:0;}
.f-bar p{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.7;}

/* === FAQ === */
#faq{background:var(--frost);}
/* Cap the question rows so they do not stretch the full viewport while the
   answers sit at reading width. Left-aligned, matching the other sections. */
#faq .faq-intro,#faq .faq-list{max-width:900px;}
.faq-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:64px;align-items:end;}
.faq-intro p{font-size:var(--fs-base);line-height:1.9;color:var(--text-muted);}
.faq-list{border-top:1px solid var(--border-med);}
.faq-item{border-bottom:1px solid var(--border-med);}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;justify-content:space-between;gap:32px;padding:30px 8px;font-family:var(--serif);font-size:clamp(1.05rem,1.5vw,1.45rem);color:var(--navy);transition:color .3s,padding-left .3s;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-family:var(--serif);color:var(--cinnamon);font-size:var(--fs-lg);line-height:1;flex-shrink:0;transition:transform .35s cubic-bezier(.76,0,.24,1);}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item summary:hover{color:var(--cinnamon-text);padding-left:6px;}
.faq-a{padding:0 8px 34px;}
.faq-a p{font-size:var(--fs-base);line-height:1.85;color:var(--text-muted);}
.faq-a a{color:var(--cinnamon-text);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);transition:border-color .3s;}
.faq-a a:hover{border-color:var(--cinnamon);}

/* === LEADERSHIP DISCRETION NOTE === */
.ld-discretion{padding:24px 28px;background:rgba(184,115,51,.04);border-left:2px solid var(--cinnamon);}
.ld-discretion strong{color:var(--navy);font-weight:400;}

/* === CTA === */
#cta{position:relative;z-index:1;background:var(--navy);padding:200px 64px;text-align:center;overflow:hidden;}
#cta::before{content:'';position:absolute;inset:0;background:none;opacity:.32;pointer-events:none;}
#cta::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,var(--navy) 0%,rgba(11,31,51,.7) 50%,var(--navy) 100%);pointer-events:none;}
.cta-ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:clamp(12rem,22vw,28rem);font-weight:400;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.04);pointer-events:none;user-select:none;white-space:nowrap;letter-spacing:-.06em;line-height:1;}
.cta-inner{position:relative;z-index:1;}
.cta-kicker{font-size:var(--fs-xs);letter-spacing:.42em;text-transform:uppercase;color:var(--cinnamon2);margin-bottom:32px;display:flex;align-items:center;justify-content:center;gap:20px;}
.cta-kicker::before,.cta-kicker::after{content:'';width:36px;height:1px;background:var(--cinnamon);}
#cta h2{font-family:var(--serif);font-size:clamp(3.2rem,6.5vw,7rem);font-weight:400;line-height:.95;color:var(--alabaster);margin-bottom:28px;}
#cta h2 em{font-style:italic;color:var(--cinnamon);}
#cta > .cta-inner > p{font-size:var(--fs-sec);color:var(--text-light);line-height:1.9;max-width:480px;margin:0 auto 60px;}
.cta-btns{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;}
.cta-contacts{display:flex;justify-content:center;gap:60px;margin-top:80px;padding-top:60px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap;}
.cc-item{text-align:center;}
.cc-lbl{font-size:var(--fs-xs);letter-spacing:.3em;text-transform:uppercase;color:var(--cinnamon2);display:block;margin-bottom:10px;}
.cc-item a,.cc-item span.cc-val{font-family:var(--serif);font-size:var(--fs-lead);font-weight:400;color:var(--alabaster);text-decoration:none;transition:color .3s;}
.cc-item a:hover{color:var(--cinnamon2);}
.cta-social-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:44px;padding-top:36px;border-top:1px solid rgba(255,255,255,.1);}
.cta-soc{display:flex;align-items:center;gap:10px;font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);text-decoration:none;padding:10px 20px;border:1px solid rgba(255,255,255,.12);transition:all .35s;position:relative;overflow:hidden;}
.cta-soc::before{content:'';position:absolute;inset:0;background:rgba(184,115,51,.1);transform:translateX(-101%);transition:transform .4s cubic-bezier(.76,0,.24,1);}
.cta-soc:hover::before{transform:translateX(0);}
.cta-soc:hover{border-color:var(--cinnamon-border);color:var(--cinnamon2);}
.cta-soc svg{width:12px;height:12px;flex-shrink:0;}

/* === CTA FORM === */
.cta-form{max-width:640px;margin:0 auto 8px;text-align:left;position:relative;}
.cf-hp{position:absolute;left:-9999px;top:-9999px;opacity:0;}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.cf-field{display:block;margin-bottom:20px;}
.cf-field span{display:block;font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon2);margin-bottom:10px;}
.cf-field em{color:var(--text-light);font-style:normal;}
.cf-field input,.cf-field textarea{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:var(--alabaster);font-family:var(--sans);font-weight:400;font-size:var(--fs-base);padding:14px 16px;transition:border-color .3s,background .3s;resize:vertical;}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:rgba(255,255,255,.5);}
.cf-field input:focus,.cf-field textarea:focus{border-color:var(--cinnamon);background:rgba(255,255,255,.08);}
.cf-field input:focus-visible,.cf-field textarea:focus-visible{outline:2px solid var(--cinnamon2);outline-offset:2px;}
.cf-submit{border:none;cursor:pointer;width:100%;justify-content:center;margin-top:6px;}
.cf-submit:active{transform:translateY(1px);}
.cf-submit:disabled{opacity:.65;cursor:wait;}
.cf-field input:user-invalid,.cf-field textarea:user-invalid{border-color:#e06c5a;}
.cf-status{margin-top:14px;font-size:var(--fs-sec);color:var(--cinnamon2);text-align:center;min-height:1px;}
.cf-alt{margin-top:22px;font-size:var(--fs-sec);color:var(--text-light);text-align:center;}
.cf-alt a{color:var(--cinnamon2);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);transition:border-color .3s;}
.cf-alt a:hover{border-color:var(--cinnamon);}

/* === SUBPAGES (legal / thanks / 404) === */
body.subpage{cursor:auto;}
/* One bar, four panels. Every page on the site is reachable in one click
   from here, and --navh keeps banners and the contents rail in step. */
.pg-nav{position:fixed;top:0;left:0;right:0;z-index:500;background:rgba(255,255,255,.97);border-bottom:1px solid var(--border-light);}
.pg-nav-top{display:flex;align-items:center;justify-content:space-between;padding:12px 40px;}
.pg-nav img{height:46px;filter:brightness(0) saturate(100%) invert(10%) sepia(30%) saturate(1200%) hue-rotate(175deg);}
.mm-bar{display:flex;align-items:center;gap:34px;list-style:none;margin:0;}
.mm-btn,.mm-link{font-family:var(--sans);font-size:var(--fs-xs);font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);background:none;border:0;padding:6px 0;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:color .25s;}
.mm-btn::after{content:'';width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s;}
.mm-btn:hover,.mm-link:hover,.mm-btn[aria-expanded="true"]{color:var(--cinnamon-text);}
.mm-btn[aria-expanded="true"]::after{transform:translateY(1px) rotate(225deg);}
.mm-btn:focus-visible,.mm-link:focus-visible{outline:2px solid var(--cinnamon);outline-offset:4px;}
.mm-panel{border-top:1px solid var(--border-light);background:#fff;box-shadow:0 20px 44px rgba(11,31,51,.10);}
.mm-panel[hidden]{display:none;}
.mm-inner{max-width:var(--maxw);margin:0 auto;display:flex;gap:56px;flex-wrap:wrap;padding:30px 40px 34px;}
.mm-col{min-width:190px;}
.mm-col h4{font-size:var(--fs-xs);font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon-text);margin:0 0 14px;}
.mm-col a{display:block;font-size:var(--fs-sec);color:var(--text-muted);text-decoration:none;padding:7px 0;border-bottom:1px solid transparent;transition:color .2s;}
.mm-col a:hover{color:var(--cinnamon-text);}
.mm-col a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--cinnamon);display:inline-block;}
/* The menu path. Same trail as the BreadcrumbList, so they cannot diverge. */
.crumbs{margin-bottom:26px;}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:9px;list-style:none;margin:0;padding:0;}
.crumbs li{display:flex;align-items:center;gap:9px;font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;}
.crumbs li+li::before{content:'/';color:var(--border-med);}
.crumbs a{color:var(--muted);text-decoration:none;transition:color .2s;}
.crumbs a:hover{color:var(--cinnamon-text);}
.crumbs [aria-current="page"]{color:var(--navy);}
.pg-nav .back{font-size:var(--fs-xs);letter-spacing:.26em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;transition:color .3s;}
.pg-nav .back:hover{color:var(--cinnamon-text);}
/* One column width for everything, so the page has a single right edge.
   Tables and boards sharing the prose measure is what keeps it clean;
   the contents list fills the left margin instead. */
/* Full-bleed banner under the fixed nav. Nothing is set over the image, so
   there is no contrast question and the title keeps a clean field below. */
.pg-banner{margin-top:var(--navh);height:clamp(120px,13vw,190px);overflow:hidden;background:var(--frost);border-bottom:1px solid var(--border-light);}
.pg-banner img{width:100%;height:100%;object-fit:cover;display:block;}
.pg-banner + .pg-wrap{padding-top:64px;}
@media(max-width:1100px){.pg-banner{height:clamp(96px,15vw,140px);}.pg-banner + .pg-wrap{padding-top:48px;}}
.pg-wrap{max-width:780px;margin:0 auto;padding:calc(var(--navh) + 46px) 40px 100px;position:relative;}
@media(max-width:900px){.pg-wrap{padding:130px 28px 80px;}}

/* On-this-page contents: only appears where the margin is genuinely spare. */
.pg-toc{display:none;}
@media(min-width:1360px){
  .pg-toc{display:block;position:fixed;top:calc(var(--navh) + 40px);left:calc(50% - 520px);width:200px;max-height:calc(100vh - var(--navh) - 90px);overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .3s,transform .3s,visibility .3s;}
  .pg-toc.show{opacity:1;visibility:visible;transform:none;}
  .pg-wrap.has-toc{margin-left:calc(50% - 260px);margin-right:auto;}
  .pg-toc h4{font-family:var(--sans);font-size:var(--fs-xs);font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--cinnamon-text);margin:0 0 12px 14px;}
  .pg-toc a{display:block;font-size:var(--fs-sm);line-height:1.5;color:var(--muted);text-decoration:none;padding:7px 14px;border-left:2px solid var(--border-light);transition:color .2s,border-color .2s;}
  .pg-toc a:hover{color:var(--navy);border-left-color:var(--cinnamon-border);}
  .pg-toc a.on{color:var(--navy);border-left-color:var(--cinnamon);}
}
.pg-wrap .eyebrow{margin-bottom:20px;}
.pg-wrap h1{font-family:var(--serif);font-size:clamp(2.4rem,5vw,4rem);font-weight:400;color:var(--navy);margin-bottom:14px;line-height:1.05;}
.pg-wrap h1 em{font-style:italic;color:var(--cinnamon);}
.pg-updated{font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:52px;}
.pg-wrap h2{font-family:var(--serif);font-size:var(--fs-lg);font-weight:400;color:var(--navy);margin:44px 0 14px;}
.pg-wrap h3{font-family:var(--serif);font-size:var(--fs-lead);font-weight:400;color:var(--navy);margin:30px 0 8px;scroll-margin-top:120px;}
.pg-wrap p,.pg-wrap li{font-size:var(--fs-base);line-height:1.85;color:var(--text-muted);margin-bottom:14px;}
.pg-wrap ul{padding-left:20px;margin-bottom:14px;}
.pg-wrap a{color:var(--cinnamon-text);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);transition:border-color .3s;}
.pg-wrap a:hover{border-color:var(--cinnamon);}
.pg-wrap .btn-gold,.pg-wrap .btn-gold:hover{color:#fff;border-bottom:none;}
.pg-wrap .btn-ghost,.pg-wrap .btn-ghost:hover{color:#fff;border-bottom:none;}
.pg-footer{padding:30px 40px;border-top:1px solid var(--border-light);text-align:center;font-size:var(--fs-xs);letter-spacing:.1em;color:var(--muted);}
.pg-footer a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--border-med);}
.pg-footer a:hover{color:var(--cinnamon-text);}

/* === CONTENT PAGES === */
.pg-nav-links{display:flex;gap:26px;flex-wrap:wrap;list-style:none;align-items:center;margin:0;}
.pg-nav-links a{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;transition:color .3s;}
.pg-nav-links a:hover,.pg-nav-links a[aria-current="page"]{color:var(--cinnamon-text);}
@media(max-width:860px){
  :root{--navh:104px;}
  /* Logo on its own line so all five menu items stay on screen. A bar that
     scrolls sideways hides Contact, which is the problem it was meant to fix. */
  .pg-nav-top{flex-wrap:wrap;padding:8px 18px 0;row-gap:0;}
  .pg-nav img{height:32px;}
  .mm-bar{order:3;width:100%;gap:0;justify-content:space-between;padding:6px 0 8px;margin-top:6px;border-top:1px solid var(--border-light);}
  .mm-btn,.mm-link{letter-spacing:.08em;gap:5px;padding:9px 0;}
  .mm-btn::after{width:4px;height:4px;}
  /* The logo is already a home link, and the extra one crowds the bar. */
  .pg-nav .back{display:none;}
  /* Panels scroll inside the viewport rather than running off the bottom. */
  .mm-panel{max-height:calc(100vh - var(--navh));overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .mm-inner{flex-direction:column;gap:22px;padding:20px 20px 26px;}
  .mm-col a{padding:10px 0;}
}
.pg-wrap p.pg-lead{font-size:var(--fs-lead);line-height:1.8;color:var(--text-muted);margin-bottom:40px;}
.art-meta{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:48px;display:flex;gap:12px;flex-wrap:wrap;}
.pg-table-wrap{overflow-x:auto;margin:24px 0 32px;}
.pg-table{width:100%;border-collapse:collapse;font-size:var(--fs-base);color:var(--text-muted);}
.pg-table th{font-family:var(--sans);font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--cinnamon-text);text-align:left;padding:12px 16px;border-bottom:1px solid var(--border-med);}
.pg-table td{padding:12px 16px;border-bottom:1px solid var(--border-light);line-height:1.7;}
.pg-table td:first-child{color:var(--navy);}
/* Topic series: every page in the e-invoicing cluster links to every other,
   so authority pools instead of scattering across seven near-orphans. */
.series{margin-top:56px;padding:26px 30px 22px;border:1px solid var(--border-light);border-left:2px solid var(--cinnamon);}
.series-lbl{display:block;font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon-text);margin-bottom:12px;}
.series ol{list-style:none;margin:0;padding:0;counter-reset:s;}
.series li{counter-increment:s;font-size:var(--fs-sec);line-height:1.7;padding:6px 0 6px 34px;position:relative;}
.series li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;font-family:var(--serif);color:var(--cinnamon);}
.series a{color:var(--text-muted);text-decoration:none;border-bottom:1px solid var(--border-med);transition:color .25s,border-color .25s;}
.series a:hover{color:var(--cinnamon-text);border-bottom-color:var(--cinnamon);}
.series a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--cinnamon);}
.pg-code{background:var(--navy);color:rgba(255,255,255,.88);font-family:ui-monospace,Consolas,"Courier New",monospace;font-size:.82rem;line-height:1.65;padding:22px 24px;margin:24px 0 28px;overflow-x:auto;border-left:2px solid var(--cinnamon);}
.pg-code .c{color:var(--cinnamon2);}
/* Currency and citations. A practice selling current regulatory judgement
   has to show when it last checked and against what. */
.src{margin-top:64px;padding:28px 30px;background:var(--frost);border:1px solid var(--border-light);border-left:2px solid var(--cinnamon);}
.src-lbl{display:block;font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon-text);margin-bottom:14px;}
.src-date{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.8;margin-bottom:14px;}
.src-date time{font-variant-numeric:tabular-nums;color:var(--navy);}
.src ul{list-style:none;padding:0;margin:0 0 14px;}
.src li{font-size:var(--fs-sec);line-height:1.7;padding:5px 0 5px 20px;position:relative;}
.src li::before{content:'\2192';position:absolute;left:0;color:var(--cinnamon);}
.src li a{color:var(--text-muted);text-decoration:none;border-bottom:1px solid var(--border-med);transition:color .25s,border-color .25s;}
.src li a:hover{color:var(--cinnamon-text);border-bottom-color:var(--cinnamon);}
.src-note{font-size:var(--fs-sm);color:var(--muted);line-height:1.7;}
@media(max-width:1100px){.src{padding:24px 22px;}}
.pg-cta{margin-top:72px;padding:52px 44px;background:var(--navy);text-align:center;}
.pg-cta h3{font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:400;color:var(--alabaster);margin-bottom:14px;}
.pg-cta p{font-size:var(--fs-sec);color:var(--text-light);line-height:1.85;max-width:520px;margin:0 auto 32px;}
.pg-cta .btn-gold{border:none;}
.pg-svc-list{list-style:none;padding:0;margin:24px 0 8px;}
/* Not flex: a list item mixing <strong> with text would split into columns. */
.pg-svc-list li{font-size:var(--fs-base);color:var(--text-muted);line-height:1.75;padding:11px 0 11px 28px;border-bottom:1px solid var(--border-light);position:relative;}
.pg-svc-list li::before{content:'\2192';position:absolute;left:0;top:11px;line-height:1.75;color:var(--cinnamon);font-size:var(--fs-sm);}
.pg-svc-list li strong{color:var(--navy);font-weight:500;}
.pg-faq{margin-top:8px;}

/* === EDITORIAL COMPONENTS === */
.rb{border:1px solid var(--border-med);margin:30px 0;}
.rb-q,.rb-a,.rb-v{padding:22px 28px;}
.rb-q{background:var(--frost);border-bottom:1px solid var(--border-light);font-family:var(--serif);font-size:var(--fs-lead);color:var(--navy);line-height:1.6;}
.rb-a{border-bottom:1px solid var(--border-light);font-size:var(--fs-base);color:var(--text-muted);line-height:1.85;}
.rb-v{background:rgba(184,115,51,.05);font-size:var(--fs-base);color:var(--text-muted);line-height:1.85;border-left:2px solid var(--cinnamon);}
.rb-lbl{display:block;font-family:var(--sans);font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon-text);margin-bottom:10px;}
.rb p{margin-bottom:12px;}
.rb p:last-child{margin-bottom:0;}
.wx{background:var(--navy);padding:36px 40px;margin:34px 0;}
.wx .rb-lbl{color:var(--cinnamon2);}
.wx p,.wx li{color:rgba(255,255,255,.86);font-size:var(--fs-base);line-height:1.85;margin-bottom:12px;}
.wx p:last-child{margin-bottom:0;}
.wx strong{color:var(--alabaster);font-weight:400;}
.wx .wx-fig{font-family:var(--serif);color:var(--cinnamon2);}
.oq{border-top:1px solid var(--border-med);margin-top:48px;padding-top:12px;}
.pullq{font-family:var(--serif);font-size:clamp(1.25rem,1.8vw,1.6rem);font-style:italic;color:var(--navy);line-height:1.5;border-left:2px solid var(--cinnamon);padding:6px 0 6px 28px;margin:38px 0;}

/* === DIAGNOSTIC TOOLS === */
.pg-wrap.wide{max-width:1120px;}
.tools-shell{display:grid;grid-template-columns:250px 1fr;gap:44px;align-items:start;margin:36px 0 8px;}
.tools-rail{position:sticky;top:140px;}
.rail-group{margin-bottom:24px;}
.rail-group h3{font-family:var(--sans);font-size:var(--fs-xs);font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--cinnamon-text);margin:0 0 8px 14px;}
.rail-btn{display:block;width:100%;text-align:left;background:none;border:0;border-left:2px solid var(--border-med);padding:10px 14px;font-family:var(--sans);font-size:var(--fs-sec);color:var(--text-muted);cursor:pointer;transition:border-color .2s,background .2s,color .2s;}
.rail-btn:hover{border-left-color:var(--cinnamon);color:var(--navy);}
.rail-btn[aria-selected="true"]{border-left-color:var(--cinnamon);background:var(--frost);color:var(--navy);font-weight:500;}
/* Deep links land on a panel, so it has to clear the fixed nav. */
.tools-stage .tool{margin:0;scroll-margin-top:calc(var(--navh) + 24px);}
.tools-stage .tool[hidden]{display:none;}
@media(max-width:900px){
  .pg-wrap.wide{max-width:820px;}
  .tools-shell{grid-template-columns:1fr;gap:20px;}
  .tools-rail{position:static;display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;-webkit-overflow-scrolling:touch;}
  .rail-group{margin:0;display:flex;align-items:center;gap:8px;flex:0 0 auto;}
  .rail-group h3{margin:0 4px 0 0;white-space:nowrap;}
  .rail-btn{width:auto;white-space:nowrap;border:1px solid var(--border-med);padding:9px 15px;font-size:var(--fs-sm);}
  .rail-btn[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff;}
}
.tq-date input{padding:10px 12px;border:1px solid var(--border-med);font-family:var(--sans);font-size:var(--fs-base);color:var(--navy);background:#fff;}
.tq-date input:focus{outline:none;border-color:var(--cinnamon);}
.tool{border:1px solid var(--border-med);margin:36px 0;}
.tool-hd{padding:24px 28px;background:var(--frost);border-bottom:1px solid var(--border-med);}
.tool-hd h3{font-family:var(--serif);font-size:var(--fs-md);color:var(--navy);margin:0 0 6px;line-height:1.3;}
.tool-hd p{font-size:var(--fs-sec);color:var(--muted);margin:0;line-height:1.6;}
.tool-body{padding:26px 28px;}
.tq{margin-bottom:22px;}
.tq:last-child{margin-bottom:0;}
.tq-label{display:block;font-size:var(--fs-sec);color:var(--navy);margin-bottom:10px;line-height:1.55;}
.tq-opts{display:flex;gap:8px;flex-wrap:wrap;}
.tq-opts input{position:absolute;opacity:0;width:0;height:0;}
.tq-opts span{display:inline-block;padding:9px 18px;border:1px solid var(--border-med);font-size:var(--fs-sm);letter-spacing:.05em;color:var(--text-muted);cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.tq-opts span:hover{border-color:var(--cinnamon-border);}
.tq-opts input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff;}
.tq-opts input:focus-visible+span{outline:2px solid var(--cinnamon);outline-offset:2px;}
.tq-num{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.tq-num input{width:190px;padding:10px 12px;border:1px solid var(--border-med);font-family:var(--sans);font-size:var(--fs-base);color:var(--navy);background:#fff;}
.tq-num input:focus{outline:none;border-color:var(--cinnamon);}
.tq-pre{font-size:var(--fs-sm);color:var(--muted);}
.tool-out{background:var(--navy);padding:26px 28px;}
.tool-out .rb-lbl{color:var(--cinnamon2);}
.tool-out h4{font-family:var(--serif);font-size:var(--fs-md);color:#fff;margin:0 0 10px;line-height:1.35;}
.tool-out p{font-size:var(--fs-sec);color:rgba(255,255,255,.8);line-height:1.7;margin:0 0 10px;}
.tool-out p:last-child{margin-bottom:0;}
.tool-out strong{color:#fff;font-weight:500;}
.tool-out .fig{font-family:var(--serif);color:var(--cinnamon2);}
.tool-flags{list-style:none;padding:0;margin:16px 0 0;}
.tool-flags li{font-size:var(--fs-sec);color:rgba(255,255,255,.85);padding:10px 0 10px 26px;position:relative;border-top:1px solid rgba(255,255,255,.1);line-height:1.6;}
.tool-flags li::before{position:absolute;left:0;top:10px;font-size:var(--fs-sm);}
.tool-flags li.ok::before{content:'\2713';color:#8fbf98;}
.tool-flags li.risk::before{content:'!';color:var(--cinnamon2);font-weight:700;}
.tool-flags li.wait::before{content:'?';color:rgba(255,255,255,.5);}
.tool-out a{color:var(--cinnamon2);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);}
.tool-out a:hover{border-bottom-color:var(--cinnamon2);}
.tool-note{font-size:var(--fs-sm);color:var(--muted);margin-top:16px;line-height:1.65;}
/* Call to action inside a result panel */
.tool-cta{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);}
.tool-ask{border:none;cursor:pointer;font-family:var(--sans);}
.tool-cta-note{display:block;margin-top:12px;font-size:var(--fs-sm);color:rgba(255,255,255,.6);line-height:1.6;}

/* Enquiry form, opened from a result */
.tool-enquiry{border:1px solid var(--cinnamon-border);margin-top:32px;scroll-margin-top:130px;}
.tool-enquiry .tool-hd{background:var(--frost);border-bottom:1px solid var(--border-med);}
.tool-enquiry .tool-body{padding-bottom:30px;}
.enq-context{margin:0 0 24px;padding:16px 20px;background:var(--frost);border-left:2px solid var(--cinnamon);font-size:var(--fs-sm);color:var(--muted);line-height:1.7;}
.enq-context strong{color:var(--navy);font-weight:500;}
.enq-context dl{margin:8px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;}
.enq-context dt{color:var(--navy);}
.enq-context dd{margin:0;}
.enq-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.enq-field{display:block;margin-bottom:18px;}
.enq-field span{display:block;font-size:var(--fs-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--cinnamon-text);margin-bottom:8px;}
.enq-field input,.enq-field textarea{width:100%;padding:11px 14px;border:1px solid var(--border-med);background:#fff;font-family:var(--sans);font-size:var(--fs-sec);color:var(--navy);resize:vertical;}
.enq-field input:focus,.enq-field textarea:focus{outline:none;border-color:var(--cinnamon);}
.enq-submit{width:100%;justify-content:center;border:none;cursor:pointer;margin-top:4px;}
.enq-submit:disabled{opacity:.65;cursor:wait;}
.enq-privacy{margin-top:14px;font-size:var(--fs-sm);color:var(--muted);line-height:1.65;}
@media(max-width:600px){.enq-row{grid-template-columns:1fr;gap:0;}}

.tool-disclaimer{margin:44px 0 0;padding:26px 30px;border:1px solid var(--border-med);background:var(--frost);}
.tool-disclaimer h4{font-family:var(--sans);font-size:var(--fs-xs);font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--cinnamon-text);margin:0 0 14px;}
.tool-disclaimer p{font-size:var(--fs-sm);color:var(--muted);line-height:1.8;margin:0 0 12px;}
.tool-disclaimer p:last-child{margin-bottom:0;}
.tool-disclaimer strong{color:var(--navy);font-weight:500;}
.tool-disclaimer a{color:var(--cinnamon-text);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);}
.tool-disclaimer a:hover{border-bottom-color:var(--cinnamon);}
@media(max-width:600px){.tool-disclaimer{padding:20px;}}
@media(max-width:600px){.tool-hd,.tool-body,.tool-out{padding:20px;}.tq-num input{width:100%;}}

/* === COMPLIANCE STATUS BOARD === */
.csb{background:var(--navy);padding:34px 38px;margin:36px 0;}
.csb-hd{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.12);}
.csb-hd .rb-lbl{color:var(--cinnamon2);margin-bottom:0;}
.csb-note{font-size:var(--fs-xs);letter-spacing:.05em;color:rgba(255,255,255,.55);}
.csb-list{list-style:none;padding:0;margin:0;}
.csb-item{display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:baseline;padding:15px 16px;border-left:2px solid transparent;border-bottom:1px solid rgba(255,255,255,.07);}
.csb-item:last-child{border-bottom:none;}
.csb-date{font-family:var(--serif);font-size:var(--fs-base);color:#fff;white-space:nowrap;}
.csb-what{font-size:var(--fs-sec);color:rgba(255,255,255,.75);line-height:1.6;}
.csb-state{font-size:var(--fs-xs);letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.5);white-space:nowrap;}
.csb-item.passed .csb-date,.csb-item.passed .csb-what{opacity:.42;}
.csb-item.passed .csb-state{opacity:.6;}
.csb-item.next{border-left-color:var(--cinnamon);background:rgba(184,115,51,.1);}
.csb-item.next .csb-state{color:var(--cinnamon2);}
@media(max-width:700px){
  .csb{padding:26px 20px;}
  .csb-item{grid-template-columns:1fr;gap:6px;padding:14px;}
  .csb-state{order:-1;}
}

/* === INSIGHTS INDEX === */
.ins-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1px;background:var(--border-light);border:1px solid var(--border-light);margin-top:48px;}
.ins-card{background:var(--frost);padding:44px 38px;display:block;text-decoration:none;transition:background .4s;position:relative;overflow:hidden;}
/* Pulled out to the card edges by the padding, so no wrapper is needed. */
.ins-cover{display:block;width:calc(100% + 76px);height:154px;object-fit:cover;margin:-44px -38px 26px;background:var(--soft-grey);transition:opacity .4s;}
.ins-card:hover .ins-cover{opacity:.88;}
@media(max-width:1100px){.ins-cover{height:132px;}}
.ins-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--cinnamon),var(--cinnamon2));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.76,0,.24,1);}
.ins-card:hover{background:var(--frost-dark);}
.ins-card:hover::before{transform:scaleX(1);}
.ins-tag{font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnamon-text);display:block;margin-bottom:18px;}
.ins-title{font-family:var(--serif);font-size:var(--fs-md);font-weight:400;color:var(--navy);line-height:1.3;margin-bottom:14px;}
.ins-desc{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.8;margin-bottom:20px;}
.ins-more{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--cinnamon-text);}

.ins-all{margin-top:40px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}
#commentary .tst-intro{margin-bottom:24px;}

/* === HOMEPAGE SERVICE DEEP-DIVE LINKS === */
.pg-404{position:relative;}
.pg-404::before{content:'';position:absolute;inset:0;background:none;opacity:.45;pointer-events:none;}
.pg-404 > *{position:relative;z-index:1;}
.pg-center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 32px;}
.pg-code{font-family:var(--serif);font-size:clamp(6rem,18vw,12rem);font-weight:400;color:var(--navy);line-height:1;letter-spacing:-.04em;}
.pg-code em{font-style:italic;color:var(--cinnamon);}
.pg-center h1{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400;color:var(--navy);margin:18px 0 12px;}
.pg-center p{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.9;max-width:440px;margin-bottom:36px;}

/* === FOOTER === */
footer{position:relative;z-index:1;background:var(--navy);border-top:none;}
.ft-main{display:grid;grid-template-columns:1.3fr 1fr 1.1fr 1fr;gap:48px;padding:64px 64px 48px;}
.ft-brand{max-width:320px;display:flex;flex-direction:column;align-items:flex-start;}
.ft-brand img{height:140px;margin-bottom:32px;opacity:.9;}
.ft-brand p{font-size:var(--fs-sec);color:rgba(255,255,255,.7);line-height:1.8;margin-bottom:20px;}
.ft-tagline{font-family:var(--serif);font-size:var(--fs-base);font-style:italic;color:var(--cinnamon2);}
.ft-col h3{font-size:var(--fs-xs);font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--cinnamon2);margin-bottom:24px;}
.ft-col ul{list-style:none;}
.ft-col ul li{margin-bottom:12px;}
.ft-col ul li a{font-size:var(--fs-sec);color:rgba(255,255,255,.7);text-decoration:none;transition:color .3s;}
.ft-col ul li a:hover{color:var(--alabaster);}
.ft-col address{font-style:normal;font-size:var(--fs-sec);color:rgba(255,255,255,.7);line-height:1.8;}
.ft-col address a{color:var(--alabaster);text-decoration:none;transition:color .3s;}
.ft-col address a:hover{color:var(--cinnamon2);}
.ft-bottom{display:flex;align-items:center;justify-content:space-between;padding:20px 64px;border-top:1px solid rgba(255,255,255,.08);}
.ft-bottom p{font-size:var(--fs-xs);letter-spacing:.1em;color:rgba(255,255,255,.72);}
.ft-socials{display:flex;gap:10px;}
.ft-soc{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);text-decoration:none;transition:all .35s;position:relative;overflow:hidden;}
.ft-soc::before{content:'';position:absolute;inset:0;background:var(--btn);transform:translateY(101%);transition:transform .35s cubic-bezier(.76,0,.24,1);}
.ft-soc:hover::before{transform:translateY(0);}
.ft-soc:hover{border-color:var(--cinnamon);color:#fff;}
.ft-soc svg{position:relative;z-index:1;width:12px;height:12px;}
.ft-bottom .ft-r{font-size:var(--fs-xs);letter-spacing:.1em;color:rgba(255,255,255,.72);}
.ft-bottom .ft-r a{color:var(--alabaster);text-decoration:none;transition:color .3s;}
.ft-bottom .ft-r a:hover{color:var(--cinnamon2);}

/* === COOKIE CONSENT ===
   Quiet by design: a low bar, not a wall. Sits above the nav (500) but
   below nothing it should hide, and the modal above that. */
.ck{position:fixed;left:0;right:0;bottom:0;z-index:600;background:rgba(11,31,51,.98);border-top:1px solid rgba(184,115,51,.35);opacity:1;transition:opacity .3s,transform .3s;}
.ck.gone{opacity:0;transform:translateY(8px);pointer-events:none;}
.ck-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:32px;padding:18px 40px;}
.ck-text{flex:1;font-size:var(--fs-sec);line-height:1.7;color:rgba(255,255,255,.85);margin:0;}
.ck-text a{color:var(--cinnamon2);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);}
.ck-text a:hover{border-bottom-color:var(--cinnamon2);}
.ck-actions{display:flex;align-items:center;gap:14px;flex-shrink:0;flex-wrap:wrap;}
.ck-btn{font-family:var(--sans);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;padding:12px 20px;cursor:pointer;transition:background .25s,color .25s,border-color .25s;}
.ck-accept,.ck-accept2{background:var(--btn);border:1px solid var(--btn);color:#fff;}
.ck-accept:hover,.ck-accept2:hover{background:var(--cinnamon);border-color:var(--cinnamon);}
.ck-reject,.ck-save{background:none;border:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.9);}
.ck-reject:hover,.ck-save:hover{border-color:#fff;color:#fff;}
.ck-manage{background:none;border:0;font-family:var(--sans);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--cinnamon2);cursor:pointer;padding:12px 4px;border-bottom:1px solid transparent;}
.ck-manage:hover{border-bottom-color:var(--cinnamon2);}
.ck-btn:focus-visible,.ck-manage:focus-visible{outline:2px solid var(--cinnamon2);outline-offset:3px;}
.ck-overlay{position:fixed;inset:0;z-index:650;background:rgba(11,31,51,.55);display:none;align-items:center;justify-content:center;padding:24px;}
.ck-overlay.open{display:flex;}
.ck-modal{background:#fff;max-width:560px;width:100%;max-height:calc(100vh - 48px);overflow-y:auto;padding:40px 44px;border-top:2px solid var(--cinnamon);}
.ck-modal h2{font-family:var(--serif);font-size:var(--fs-md);font-weight:400;color:var(--navy);margin:0 0 8px;}
.ck-sub{font-size:var(--fs-sec);color:var(--text-muted);line-height:1.7;margin:0 0 26px;}
.ck-row{padding:16px 0;border-top:1px solid var(--border-light);}
.ck-row-head{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.ck-row-label{font-size:var(--fs-base);color:var(--navy);}
.ck-locked{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--cinnamon-text);}
.ck-switch{display:inline-flex;align-items:center;cursor:pointer;}
.ck-switch input{width:38px;height:20px;accent-color:var(--cinnamon);cursor:pointer;}
.ck-switch input:focus-visible{outline:2px solid var(--cinnamon);outline-offset:3px;}
.ck-switch span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.ck-row-desc{font-size:var(--fs-sm);color:var(--muted);line-height:1.7;margin:8px 0 0;}
.ck-modal .ck-actions{margin-top:26px;justify-content:flex-end;}
.ck-modal .ck-save{border-color:var(--border-med);color:var(--text-muted);}
.ck-modal .ck-save:hover{border-color:var(--navy);color:var(--navy);}
.ck-links{margin:22px 0 0;font-size:var(--fs-sm);color:var(--muted);text-align:right;}
.ck-links a{color:var(--cinnamon-text);text-decoration:none;border-bottom:1px solid var(--cinnamon-border);}
.ck-open{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
@media(max-width:860px){
  .ck-inner{flex-direction:column;align-items:stretch;gap:14px;padding:16px 20px;}
  .ck-actions{justify-content:flex-start;}
  .ck-btn{padding:14px 20px;}  /* 44px tap target on touch */
  .ck-manage{padding:14px 4px;}
  .ck-modal{padding:28px 22px;}
}
@media(prefers-reduced-motion:reduce){.ck{transition:none;}}

/* === ANIMATIONS ===
   One shared easing curve, so every motion on the site feels related. */
:root{--ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);}
.rx{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);}
.rx.on{opacity:1;transform:none;}
.d1{transition-delay:.07s;}.d2{transition-delay:.14s;}.d3{transition-delay:.21s;}.d4{transition-delay:.28s;}.d5{transition-delay:.35s;}

/* Hero entrance: driven by a body class rather than inline styles */
.h-kicker-inner{transition:transform .8s var(--ease-out),opacity .8s ease;}
.h-title .char{transition:transform .8s var(--ease-out),opacity .6s ease;}
.h-sub,.h-bottom,.h-clock{transition:transform .9s var(--ease-out) .25s,opacity .9s ease .25s;}
.hero-in .h-kicker-inner,.hero-in .h-sub,.hero-in .h-bottom,.hero-in .h-clock{transform:none;opacity:1;}
.hero-in .h-title .char{transform:none;opacity:1;}

/* === RESPONSIVE === */
@media(max-width:1100px){
  #nav .nav-row{padding-left:32px;padding-right:32px;}
  /* On the homepage the hamburger takes over; the full-screen menu it opens
     already carries the services. Content pages keep their bar, which is
     their only navigation. */
  #nav .mm-bar{display:none;}
  .hamburger{display:flex;}
  #hero,.sec,.svc-intro,#testimonials{padding-left:32px;padding-right:32px;}
  .s-cell{padding:56px 32px;}
  #manifesto,#leadership{grid-template-columns:1fr;gap:48px;}
  .ap-intro{grid-template-columns:1fr;gap:32px;}
  .step-grid{grid-template-columns:1fr 1fr;}
  .met-grid{grid-template-columns:1fr 1fr;}
  .svc-intro{padding-bottom:48px;grid-template-columns:1fr;}
  .svc-index{padding:0 32px 16px;}
  /* Number and name on one line, description under, arrow dropped: at this
     width four columns would leave each one too narrow to read. */
  .svc-row a{grid-template-columns:44px 1fr;gap:6px 14px;padding:22px 0;}
  .svc-row a:hover{padding-left:0;padding-right:0;background:none;}
  .svc-desc{grid-column:2;}
  .svc-go{display:none;}
  .svc-gov{grid-template-columns:1fr;gap:26px;margin-top:40px;padding:44px 32px;}
  .tc-grid{grid-template-columns:1fr;}
  .tst-grid{grid-template-columns:1fr;}
  .tst-intro{grid-template-columns:1fr;gap:32px;}
  #cta{padding:120px 32px;}
  .cta-contacts{gap:36px;}
  .ft-main{grid-template-columns:1fr;gap:40px;padding:48px 32px 36px;}
  .ft-bottom{padding:20px 32px;flex-direction:column;gap:14px;align-items:center;text-align:center;}
  #sdots{display:none;}
  .met-hdr{flex-direction:column;align-items:flex-start;gap:16px;}
  .met-hdr p{text-align:left;max-width:100%;}
  .h-sub{grid-template-columns:1fr;}
  .ap-callout{grid-template-columns:1fr;}
  .faq-intro{grid-template-columns:1fr;gap:32px;}
}
@media(max-width:600px){
  .h-title{font-size:clamp(3.5rem,13vw,5.5rem);}
  .cf-row{grid-template-columns:1fr;gap:0;}
  .step-grid{grid-template-columns:1fr;}
  .met-grid{grid-template-columns:1fr;}
  /* Stacked, so the cell divider has to move from the side to the bottom. */
  #stats{grid-template-columns:1fr;}
  .s-cell{border-right:none;border-bottom:1px solid rgba(255,255,255,.08);}
  .s-cell:last-child{border-bottom:none;}
  .h-ghost{display:none;}
  .cta-social-row{flex-direction:column;gap:8px;}
}

/* === TOUCH DEVICE CURSOR FIX === */
@media(hover:none),(pointer:coarse){
  body{cursor:auto;}
  #cur,#cur-ring,#cur-glow{display:none!important;}
}

/* === REDUCED MOTION === */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;}
  .rx{opacity:1;transform:none;}
  .h-title .char{transform:none!important;opacity:1!important;}
  .h-kicker-inner,.h-sub,.h-bottom,.h-clock{transform:none!important;opacity:1!important;}

  .mq-track{animation:none!important;}
}

/* === PAGE CONTAINER ===
   Section backgrounds stay full-bleed while their content is capped and
   centred, so a wide screen gets symmetric margins rather than content
   hugging the left with the leftover space piled on the right. Below the
   threshold nothing changes: sections still run to the 64px gutter. */
:root{--maxw:1400px;}
@media(min-width:1528px){
  #hero,.sec,#testimonials,.svc-intro,#cta,
  #stats,.svc-index,.svc-gov,.ft-main,.ft-bottom{
    padding-left:calc((100% - var(--maxw)) / 2);
    padding-right:calc((100% - var(--maxw)) / 2);
  }
}
/* Blocks narrower than the container centre themselves, so their spare
   space is split evenly instead of forming a gap on one side. */
#faq .faq-intro,#faq .faq-list,.ap-callout{margin-left:auto;margin-right:auto;}

/* === MANAGED E-INVOICING === */
/* Hero deadline strip: the counts are filled from data-until by script.js. */
.h-clock{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:44px;padding-top:26px;border-top:1px solid var(--border-light);position:relative;z-index:1;opacity:0;transform:translateY(16px);}
.h-clk{display:flex;flex-direction:column;gap:9px;}
.h-clk-l{font-size:var(--fs-xs);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);}
.h-clk-v{font-family:var(--serif);font-size:var(--fs-md);line-height:1.3;color:var(--navy);}
.h-clk-v [data-until]{color:var(--cinnamon-text);}
@media(max-width:900px){.h-clock{grid-template-columns:1fr;gap:22px;margin-top:40px;}}
/* Series footer: the pointer from every guide to the managed service. */
.series .series-more{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--border-light);font-size:var(--fs-sec);color:var(--text-muted);}
/* The enquiry block on the service page reuses the homepage form on navy. */
.pg-enquire{margin-top:72px;padding:52px 44px;background:var(--navy);scroll-margin-top:calc(var(--navh) + 30px);}
.pg-wrap .pg-enquire h2{font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:400;color:var(--alabaster);margin:0 0 12px;text-align:center;}
.pg-wrap .pg-enquire > p{font-size:var(--fs-sec);color:var(--text-light);line-height:1.85;max-width:560px;margin:0 auto 36px;text-align:center;}
.pg-enquire .cta-form{max-width:none;}
.pg-enquire .cf-row{align-items:end;}
.pg-wrap .pg-enquire .cf-status,.pg-wrap .pg-enquire .cf-alt{color:var(--text-light);margin-bottom:0;}
.pg-wrap .pg-enquire .cf-alt a{color:var(--cinnamon2);border-bottom:1px solid var(--cinnamon-border);}
.pg-wrap .pg-enquire .cf-alt a:hover{border-bottom-color:var(--cinnamon);}
.cf-field select{width:100%;background-color:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:var(--alabaster);font-family:var(--sans);font-weight:400;font-size:var(--fs-base);padding:14px 44px 14px 16px;appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color .3s,background-color .3s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23d09a64' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;}
.cf-field select:focus{border-color:var(--cinnamon);background-color:rgba(255,255,255,.08);}
.cf-field select:focus-visible{outline:2px solid var(--cinnamon2);outline-offset:2px;}
.cf-field select option{color:var(--navy);background:#fff;}
@media(max-width:600px){.pg-enquire{padding:40px 24px;}}
