/* Bloemet v2 — minimalist. Forest green + blush pink on warm snow white.
   Light Inter headlines, pill controls, 16px cards, flat (no shadows, no gradients, no motion). */
@font-face{font-family:"Inter";font-style:normal;font-weight:300 600;font-display:swap;src:url(/assets/fonts/inter-var.woff2) format("woff2")}
@font-face{font-family:"Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plexmono-400.woff2) format("woff2")}
@font-face{font-family:"Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plexmono-500.woff2) format("woff2")}

:root{
  --forest:#1c3a13; --forest-2:#24481a; --snow:#fcfcf7; --stone:#eeeee9; --pink:#f5c6cf; --pink-wash:#fbe9ec; --pink-deep:#b4506a;
  --sage:#5c6347; --euc:#698e79; --olive:#9f995b; --pewter:#666666;
  /* aliases used by the shared tool/invoice/print styles */
  --fern:var(--forest); --fern-deep:#142b0d; --cream:var(--snow); --paper:var(--stone); --pollen:var(--pink); --ink:var(--forest);
  --muted:#545a50; --faint:#666666;
  --rule:rgba(28,58,19,.16); --rule-soft:rgba(28,58,19,.09); --rule-strong:rgba(28,58,19,.4);
  --on-fern:var(--snow); --on-fern-muted:#c6cfc0; --rule-fern:rgba(252,252,247,.18);
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --serif:var(--sans);
  --mono:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --pad:24px; --head-h:72px; --max:1200px; --r:16px; --r-lg:32px; --r-in:8px; --pill:1000px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-feature-settings:"cv11","ss01"}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--snow);color:var(--forest);font:400 17px/1.6 var(--sans);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
::selection{background:var(--pink);color:var(--forest)}
:focus-visible{outline:2px solid var(--forest);outline-offset:3px;border-radius:4px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--forest);color:var(--snow);padding:10px 16px;border-radius:var(--pill)}
.skip:focus{left:16px}
.wrap{max-width:calc(var(--max) + var(--pad)*2);margin:0 auto;padding:0 var(--pad)}
.wrap.narrow{max-width:820px}
.section{padding:clamp(56px,7vw,104px) 0}
.on-fern{background:var(--forest);color:var(--snow)}
.on-paper{background:var(--stone)}

/* hide the classic site's decorative layer entirely */
.preloader,.dither,.stairs,.marquee,.hero-water,.hero-glow,.contact-badge,.to-top,.head-strip,.author-box .av,.foot-mark,.report,.intro-doc,.svc-media,
.head-grid .hr,.split-title,.pending,.creds{display:none!important}

/* ---------- type */
h1,h2,h3,h4{margin:0;font-family:var(--sans);color:inherit}
h1{font-weight:300;font-size:clamp(40px,5.6vw,76px);line-height:1.02;letter-spacing:-.04em}
h2{font-weight:300;font-size:clamp(28px,3.2vw,44px);line-height:1.1;letter-spacing:-.03em}
h3{font-weight:400;font-size:clamp(19px,1.6vw,22px);line-height:1.25;letter-spacing:-.015em}
.display,.mega{font-weight:300;font-size:clamp(36px,4.8vw,64px);line-height:1.05;letter-spacing:-.04em}
.lede{font-size:clamp(18px,1.5vw,21px);line-height:1.5;font-weight:300;color:var(--muted);max-width:40em;margin:20px 0 0;letter-spacing:-.012em}
.on-fern .lede{color:var(--on-fern-muted)}
.eyebrow,.mono{display:block;font:500 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--sage);margin:0 0 14px}
.on-fern .eyebrow{color:var(--pink)}
.small{font-size:14px;color:var(--faint)}
.on-fern .small{color:var(--on-fern-muted)}
.big-text,.statement{font-weight:300;font-size:clamp(22px,2.2vw,30px);line-height:1.35;letter-spacing:-.02em}
.serif-i{font-style:normal}

/* ---------- buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:400 15px/1 var(--sans);padding:15px 24px;border-radius:var(--pill);border:1.5px solid var(--forest);background:var(--forest);color:var(--snow);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn:hover{background:var(--forest-2)}
.btn.ghost{background:transparent;color:var(--forest)}
.btn.ghost:hover{background:var(--forest);color:var(--snow)}
.btn.light{background:var(--snow);color:var(--forest);border-color:var(--snow)}
.btn.light:hover{background:var(--pink);border-color:var(--pink)}
.btn.pink{background:var(--pink);border-color:var(--pink);color:var(--forest)}
.btn.block{width:100%}
.on-fern .btn.ghost{color:var(--snow);border-color:var(--snow)}
.on-fern .btn.ghost:hover{background:var(--snow);color:var(--forest)}
.bracket{display:inline-flex;gap:8px;align-items:center;font:400 15px/1.3 var(--sans);color:inherit;text-decoration:none;border-bottom:1.5px solid currentColor;padding:2px 0;white-space:nowrap}
.bracket .arr{transition:transform .2s}
.bracket:hover .arr{transform:translateX(3px)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:28px}
.linkish{border:0;background:none;padding:8px 0;font:400 14px/1.3 var(--sans);color:var(--faint);text-decoration:underline;cursor:pointer}

/* status pill */
.status{display:inline-flex;align-items:center;gap:8px;font:500 12px/1 var(--sans);letter-spacing:.02em;padding:8px 12px;border-radius:var(--pill);background:var(--pink-wash);color:var(--forest)}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pink-deep)}
.on-fern .status{background:rgba(245,198,207,.14);color:var(--pink)}
.on-fern .status::before{background:var(--pink)}

/* ---------- announcement bar + header */
.announce{background:var(--pink);color:var(--forest);font:500 13px/1.3 var(--sans);text-align:center;padding:10px var(--pad)}
.announce a{font-weight:500;text-underline-offset:3px}
.mh{position:sticky;top:0;z-index:100;background:rgba(252,252,247,.94);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--rule-soft)}
.mh .in{max-width:calc(var(--max) + var(--pad)*2);margin:0 auto;padding:0 var(--pad);height:var(--head-h);display:flex;align-items:center;gap:24px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--forest);margin-right:auto}
.logo svg{width:30px;height:20px}
.logo .petals{fill:var(--forest)}
.logo .dome{fill:var(--pink-deep)}
.logo b{font:400 22px/1 var(--sans);letter-spacing:-.035em}
.mh nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.mh nav a{display:block;padding:8px 14px;border-radius:var(--pill);font:400 15px/1 var(--sans);text-decoration:none;color:var(--forest)}
.mh nav a:hover,.mh nav a[aria-current="page"]{background:var(--stone)}
.mh .btn{padding:12px 20px;font-size:14.5px}
.menu-btn{display:none;height:42px;padding:0 18px;border-radius:var(--pill);border:1.5px solid var(--forest);background:transparent;color:var(--forest);font:400 15px/1 var(--sans);cursor:pointer}
.menu{position:fixed;inset:0;z-index:150;background:var(--forest);color:var(--snow);padding:24px;display:none;flex-direction:column}
body.menu-open .menu{display:flex}
.menu .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}
.menu .top .logo{color:var(--snow)}.menu .logo .petals{fill:var(--snow)}.menu .logo .dome{fill:var(--pink)}
.menu .close{height:42px;padding:0 18px;border-radius:var(--pill);border:1.5px solid var(--snow);background:none;color:var(--snow);font:400 15px/1 var(--sans);cursor:pointer}
.menu ol{list-style:none;margin:0;padding:0}
.menu ol a{display:block;font:300 36px/1.25 var(--sans);letter-spacing:-.03em;text-decoration:none;padding:6px 0;border-bottom:1px solid var(--rule-fern)}
.menu .menu-foot{margin-top:auto;display:grid;gap:8px;font-size:14px;color:var(--on-fern-muted)}
@media (max-width:900px){.mh nav,.mh .in>.btn{display:none}.menu-btn{display:inline-flex;align-items:center}}

/* ---------- page head */
.page-head{padding:clamp(40px,6vw,88px) 0 clamp(32px,4vw,56px);border-bottom:1px solid var(--rule-soft)}
.page-head h1{max-width:16em}
.crumbs{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-wrap:wrap;gap:8px;font:400 13.5px/1.4 var(--sans);color:var(--faint)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--rule-strong)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.head-grid{display:block}
.byline{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:24px;font-size:14px;color:var(--faint)}
.byline a{color:var(--forest)}

/* ---------- prose + toc */
.doc-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:clamp(32px,5vw,80px);align-items:start}
@media (max-width:980px){.doc-layout{grid-template-columns:minmax(0,1fr)}.toc{position:static!important}}
.prose{max-width:720px}
.prose>h2{margin:56px 0 16px;font-size:clamp(26px,2.6vw,34px)}
.prose>h2:first-child{margin-top:0}
.prose h3{margin:28px 0 10px}
.prose p,.prose li{color:#2b3a26}
.prose ul,.prose ol{padding-left:22px;margin:0 0 1.1em}
.prose li{margin-bottom:8px}
.prose a{color:var(--forest);text-decoration-color:var(--pink-deep);text-underline-offset:3px;text-decoration-thickness:1.5px}
.prose strong{font-weight:600}
.callout{background:var(--pink-wash);border-radius:var(--r);padding:18px 20px;color:var(--forest)!important}
dl.def{margin:24px 0;padding:20px;border-radius:var(--r);background:var(--stone)}
dl.def dt{font-weight:500;margin-bottom:6px}
dl.def dd{margin:0;color:var(--muted)}
.glance{background:var(--stone);border-radius:var(--r);padding:24px;margin:0 0 32px}
.glance ul{margin:0;padding-left:20px}
.glance li{margin:0 0 8px}
.glance li:last-child{margin:0}
ol.numbered{list-style:none;padding:0;counter-reset:n;margin:0 0 1.2em}
ol.numbered li{counter-increment:n;display:grid;grid-template-columns:44px 1fr;gap:4px 12px;padding:16px 0;border-top:1px solid var(--rule-soft)}
ol.numbered li::before{content:counter(n,decimal-leading-zero);grid-row:1/3;font:400 13px/1.9 var(--mono);color:var(--sage)}
ol.numbered b{font-weight:500}
ol.numbered span{color:var(--muted)}
.table-wrap{overflow-x:auto;margin:0 0 24px;border:1px solid var(--rule);border-radius:var(--r)}
.table-wrap table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.table-wrap caption{caption-side:top;text-align:left;padding:14px 16px 0;font:500 12px/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--sage)}
.table-wrap th,.table-wrap td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--rule-soft);vertical-align:top}
.table-wrap thead th{font-weight:500;font-size:13px;color:var(--faint)}
.table-wrap tbody th{font-weight:500}
.table-wrap tr:last-child>*{border-bottom:0}
.toc{position:sticky;top:calc(var(--head-h) + 24px);padding:24px;border-radius:var(--r);background:var(--stone)}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc ol a{display:block;padding:7px 0;font-size:14.5px;text-decoration:none;color:var(--muted);border-bottom:1px solid var(--rule-soft)}
.toc ol a:hover{color:var(--forest)}
.toc .btn{width:100%;margin-top:20px}
.toc .status{margin-top:12px}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:18px 36px 18px 0;position:relative;font-weight:400;font-size:17.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:14px;font:300 26px/1 var(--sans);color:var(--sage)}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 18px}
.faq .a p{color:var(--muted);margin:0}
.author-box{display:block;margin-top:48px;padding:24px;border-radius:var(--r);background:var(--pink-wash)}
.author-box p{color:var(--muted);margin:6px 0 0}
.fit{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fit>div{padding:22px;border-radius:var(--r);background:var(--stone)}
.fit .yes{background:var(--pink-wash)}
.fit h3{margin:0 0 10px}
.fit ul{margin:0}
@media (max-width:700px){.fit{grid-template-columns:1fr}}
.included{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 1.2em}
.included>div{padding:18px;border-radius:var(--r);border:1px solid var(--rule)}
.included b{display:block;font-weight:500;margin-bottom:4px}
.included span{color:var(--muted);font-size:15.5px}
@media (max-width:700px){.included{grid-template-columns:1fr}}

/* ---------- section heads, cards, lists */
.row-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0 0 28px;padding-bottom:14px;border-bottom:1px solid var(--rule);font:500 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--sage)}
.on-fern .row-head{border-color:var(--rule-fern);color:var(--pink)}
.row-head .bracket{text-transform:none;letter-spacing:0;font-size:14.5px;color:var(--forest)}
.on-fern .row-head .bracket{color:var(--snow)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:900px){.cards{grid-template-columns:1fr}}
.card{display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:var(--r);background:var(--stone);text-decoration:none;color:var(--forest);transition:background .2s}
.card:hover{background:var(--pink-wash)}
.card .meta{display:flex;justify-content:space-between;gap:12px;font:500 12px/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--sage)}
.card h3{font-weight:400}
.card p{color:var(--muted);font-size:15.5px;margin:0}
.card .bracket{margin-top:auto;align-self:flex-start}
.cta-band{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,4vw,64px);align-items:end;padding:clamp(32px,5vw,64px);border-radius:var(--r-lg);background:var(--forest);color:var(--snow)}
.cta-band h2{color:var(--snow)}
.cta-band p{color:var(--on-fern-muted)}
.cta-band .right{display:grid;gap:16px;justify-items:start}
.cta-band .status{background:rgba(245,198,207,.14);color:var(--pink)}
.cta-band .status::before{background:var(--pink)}
.cta-band .btn{background:var(--pink);border-color:var(--pink);color:var(--forest)}
@media (max-width:820px){.cta-band{grid-template-columns:1fr}}
.notice{padding:24px;border-radius:var(--r);background:var(--stone)}
.notice.warn{background:var(--pink-wash)}
.notice h2{font-size:clamp(24px,2.4vw,32px);margin-bottom:10px}
.open-note{display:flex;gap:12px;align-items:flex-start;margin-top:28px;padding:16px 20px;border-radius:var(--r);background:var(--pink-wash);max-width:46em}
.open-note .dot{flex:none;width:8px;height:8px;margin-top:9px;border-radius:50%;background:var(--pink-deep)}
.open-note p{margin:0;font-size:15.5px;color:var(--forest)}
.open-note b{font-weight:500}

/* services hub index */
ol.index{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
ol.index a{display:grid;grid-template-columns:48px 1fr 1.4fr 24px;gap:16px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--rule);text-decoration:none}
ol.index .n{font:400 13px/1 var(--mono);color:var(--sage)}
ol.index .t{font:300 clamp(24px,2.4vw,32px)/1.1 var(--sans);letter-spacing:-.03em}
ol.index .d{color:var(--muted)}
ol.index a:hover .t{color:var(--pink-deep)}
@media (max-width:760px){ol.index a{grid-template-columns:32px 1fr 20px}ol.index .d{grid-column:2/3}}

/* insights list */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filters button{padding:9px 16px;border-radius:var(--pill);border:1.5px solid var(--rule-strong);background:none;color:var(--forest);font:400 14.5px/1 var(--sans);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--forest);color:var(--snow);border-color:var(--forest)}
.post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.post-list a{display:grid;grid-template-columns:90px 130px 1fr 150px;gap:16px;padding:22px 0;border-bottom:1px solid var(--rule);text-decoration:none;align-items:baseline}
.post-list .num{font:400 13px/1.5 var(--mono);color:var(--sage)}
.post-list .cat{font:500 12px/1.5 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--sage)}
.post-list h2{font:400 clamp(19px,1.7vw,23px)/1.25 var(--sans);letter-spacing:-.015em}
.post-list p{margin:6px 0 0;color:var(--muted);font-size:15.5px}
.post-list .by{font-size:13.5px;color:var(--faint);text-align:right}
.post-list a:hover h2{color:var(--pink-deep)}
@media (max-width:820px){.post-list a{grid-template-columns:1fr}.post-list .by{text-align:left}}

/* FAQ page */
.faq-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.faq-nav a{padding:9px 16px;border-radius:var(--pill);border:1.5px solid var(--rule-strong);text-decoration:none;font-size:14.5px}
.faq-nav a:hover{background:var(--forest);color:var(--snow);border-color:var(--forest)}
.faq-group{padding:56px 0 8px;scroll-margin-top:calc(var(--head-h) + 20px)}
.faq-group>h2{margin-bottom:20px}
.qa{display:grid;grid-template-columns:1fr 1.3fr;gap:24px;padding:22px 0;border-top:1px solid var(--rule)}
.qa h3{font-size:18.5px}
.qa p{color:var(--muted)}
@media (max-width:760px){.qa{grid-template-columns:1fr;gap:8px}}

/* about */
.acts{display:grid;gap:0;border-top:1px solid var(--rule)}
.act{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:36px 0;border-bottom:1px solid var(--rule)}
.act .n{font:500 12px/1.6 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--sage)}
.act h2{margin-bottom:14px}
.act p{color:var(--muted);max-width:44em}
@media (max-width:760px){.act{grid-template-columns:1fr;gap:8px}}
.bio{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(24px,4vw,64px);padding:48px 0;border-top:1px solid var(--rule)}
.bio dl{margin:24px 0 0;display:grid}
.bio dl>div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--rule-soft)}
.bio dt{font-size:13.5px;color:var(--faint)}
.bio dd{margin:0}
@media (max-width:760px){.bio{grid-template-columns:1fr}.bio dl>div{grid-template-columns:1fr;gap:2px}}
.steps-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.steps-row li{padding:22px;border-radius:var(--r);background:rgba(252,252,247,.06)}
.steps-row h3{color:var(--pink);margin-bottom:8px}
.steps-row p{color:var(--on-fern-muted);margin:0;font-size:15.5px}
@media (max-width:820px){.steps-row{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps-row{grid-template-columns:1fr}}

/* request form */
.req{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
@media (max-width:900px){.req{grid-template-columns:1fr}}
.form{display:grid;gap:28px}
.form fieldset{border:0;margin:0;padding:0;display:grid;gap:16px}
.form legend{font:300 24px/1.2 var(--sans);letter-spacing:-.02em;margin-bottom:12px;padding:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){.row2{grid-template-columns:1fr}}
.field{display:grid;gap:7px}
.field label,.field .lab{font:500 13.5px/1.3 var(--sans);color:var(--forest)}
.field .opt{color:var(--faint);font-weight:400}
.field input:not([type=checkbox]):not([type=radio]):not([type=range]),.field select,.field textarea{font:400 16px/1.4 var(--sans);color:var(--forest);background:var(--snow);border:1.5px solid var(--rule-strong);border-radius:var(--r-in);padding:13px 14px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--forest) 50%),linear-gradient(135deg,var(--forest) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--pink);outline-offset:1px;border-color:var(--forest)}
.field .err{font-size:13px;color:#a12f2f;display:none}
.field.bad .err{display:block}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#a12f2f}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.checks.one{grid-template-columns:1fr}
@media (max-width:640px){.checks{grid-template-columns:1fr}}
.check{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:var(--r-in);background:var(--stone);cursor:pointer;font-size:15px;line-height:1.4}
.check input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--forest);flex:none}
.check:has(input:checked){background:var(--forest);color:var(--snow)}
.field.bad .checks{outline:1.5px solid #a12f2f;border-radius:var(--r-in)}
.hp{position:absolute!important;left:-5000px!important;width:1px;height:1px;overflow:hidden}
.form-foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.form-foot .small{max-width:30em;margin:0}
.aside-box{padding:24px;border-radius:var(--r);background:var(--stone);margin-bottom:16px}
.aside-box h2{font-size:24px;margin-bottom:12px}

/* ---------- footer */
.mf{background:var(--forest);color:var(--snow);padding:64px 0 28px;margin-top:0}
.mf .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.mf .name{font:300 32px/1 var(--sans);letter-spacing:-.04em;margin:0 0 14px}
.mf p{color:var(--on-fern-muted);font-size:14.5px;max-width:30em}
.mf h2{font:500 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--pink);margin:0 0 14px}
.mf ul{list-style:none;margin:0;padding:0}
.mf li{margin:0 0 8px}
.mf a{text-decoration:none;color:var(--snow);font-size:15px}
.mf a:hover{color:var(--pink)}
.mf .base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:48px;padding-top:20px;border-top:1px solid var(--rule-fern);font-size:13.5px;color:var(--on-fern-muted)}
@media (max-width:900px){.mf .grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.mf .grid{grid-template-columns:1fr}}

/* ===================================================== v6 — toolkit, opening notice, pro tools, print */
.open-note{display:flex;gap:14px;align-items:flex-start;margin-top:28px;padding:16px 18px;background:var(--paper);border-left:2px solid var(--pollen);max-width:46em}
.open-note .dot{flex:none;width:8px;height:8px;margin-top:9px;background:var(--pollen);animation:blink 2.4s steps(1) infinite}
.open-note p{margin:0;font-size:15.5px;color:var(--muted)}
.open-note b{color:var(--fern);font-weight:600}
.open-note a{color:var(--fern)}
.closing-p{max-width:36em;color:var(--muted);margin:28px 0 0;font-size:18px}
.tool-jump{margin-top:32px}
.tool-jump ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tool-jump a{display:inline-flex;gap:12px;align-items:center;padding:12px 16px;border:1px solid var(--rule);font:500 11.5px/1.2 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--fern);text-decoration:none;transition:background .25s,color .25s}
.tool-jump a span{color:var(--faint)}
.tool-jump a:hover{background:var(--fern);color:var(--cream)}
.tool-jump a:hover span{color:var(--on-fern-muted)}
.tool-group{scroll-margin-top:calc(var(--head-h) + 40px)}
.tool-group+.tool-group{margin-top:clamp(56px,7vw,104px)}
.tool-group .row-head{margin-bottom:18px}
.tg-desc{color:var(--muted);max-width:40em;margin:0 0 clamp(24px,3vw,36px)}

/* inputs */
.rng{-webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;margin:2px 0 0;cursor:pointer}
.rng::-webkit-slider-runnable-track{height:2px;background:var(--rule)}
.rng::-moz-range-track{height:2px;background:var(--rule)}
.rng::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-8px;background:var(--fern);border:3px solid var(--cream);box-shadow:0 0 0 1px var(--fern)}
.rng::-moz-range-thumb{width:14px;height:14px;background:var(--fern);border:3px solid var(--cream);border-radius:0;box-shadow:0 0 0 1px var(--fern)}
.rng:focus-visible{outline:2px solid var(--pollen);outline-offset:2px}
.in-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.in-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:640px){.in-row,.in-row.three{grid-template-columns:1fr}}
.tool .field .check{font-size:15px}
.tool.wide .tool-in,.tool.wide .tool-out{grid-column:1/-1}
.tool.wide .tool-out{position:relative;top:0;padding:clamp(20px,3vw,40px)}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin:8px 0 12px}
@media (max-width:760px){.opts{grid-template-columns:1fr}}
.opt{position:relative;padding:20px;border:1px solid var(--rule-fern);transition:border-color .3s,background .3s}
.opt-h{font:500 11.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--cream)}
.win-b{position:absolute;top:16px;right:16px;padding:6px 9px;font:500 10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--pollen);color:var(--fern);opacity:0;transform:translateY(-4px);transition:opacity .3s,transform .3s}
.opt.win{border-color:var(--pollen);background:rgba(201,163,91,.08)}
.opt.win .win-b{opacity:1;transform:none}
.bars{display:flex;height:14px;margin:10px 0 8px;background:rgba(244,239,226,.08);overflow:hidden}
.bars .seg,.legend .seg{display:block;height:100%;transition:width .45s cubic-bezier(.2,.7,.2,1)}
.seg.net{background:var(--pollen)}.seg.tax{background:#E7DDC4}.seg.corp{background:#8FA596}.seg.cpp{background:#5E7E6C}.seg.live{background:#B9A27A}
.legend{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font:500 10.5px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--on-fern-muted)}
.legend li{display:flex;gap:7px;align-items:center}
.legend .seg{width:10px;height:10px}
.ro-sub{margin:-8px 0 6px;font:500 11px/1.4 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--on-fern-muted)}
.ro-head{margin:18px 0 0;font:500 clamp(20px,1.8vw,24px)/1.25 var(--serif);color:var(--cream)}
.advice{margin:20px 0 4px;padding:18px 18px 16px;border-left:2px solid var(--pollen);background:rgba(244,239,226,.06)}
.advice .eyebrow{margin-bottom:8px}
.advice p{margin:0;color:var(--cream);font-size:15.5px;line-height:1.55}
.advice a{color:var(--pollen)}
.report-btn{margin-top:18px;align-self:flex-start;white-space:normal;text-align:left}
.tool.wide .ro{max-width:none}
.ro output small{font-size:.4em;color:var(--on-fern-muted);font-family:var(--mono)}

/* audit */
.aq{border:0;margin:0;padding:0 0 22px;border-bottom:1px solid var(--rule-soft)}
.aq legend{display:flex;gap:14px;font:500 clamp(19px,1.6vw,22px)/1.3 var(--sans);color:var(--fern);margin:0 0 12px;padding:0}
.aq legend .n{font:500 11.5px/2 var(--mono);color:var(--faint)}
.aq .check{padding:11px 13px;font-size:14.5px}
.tips{margin:0 0 4px;padding-left:18px;color:var(--cream);font-size:15px}
.tips li{margin-bottom:10px}
.audit-result .ro.big output{color:var(--pollen)}

/* modal */
.modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;background:rgba(30,42,35,.62);backdrop-filter:blur(3px)}
.modal[hidden]{display:none}
.modal-box{position:relative;width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--cream);padding:clamp(24px,4vw,40px);border-top:2px solid var(--pollen)}
.modal-box h2{font-size:clamp(28px,3vw,38px);margin-bottom:10px}
.modal-box>p{color:var(--muted);margin:0 0 18px}
.modal-box form{display:grid;gap:14px}
.modal-box .err{color:#8C2F1F;font:500 11.5px/1.4 var(--mono);text-transform:uppercase;margin:0}
.modal-box .cta-row{margin-top:6px;align-items:center}
.modal-x{position:absolute;top:10px;right:12px;width:40px;height:40px;border:0;background:none;font-size:26px;color:var(--fern);cursor:pointer}
.linkish{border:0;background:none;padding:8px 0;font:500 11.5px/1.3 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--faint);text-decoration:underline;cursor:pointer}

/* invoice */
.inv{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,48px);border-top:1px solid var(--fern);padding-top:24px}
@media (max-width:980px){.inv{grid-template-columns:1fr}}
.inv-ed{display:grid;gap:22px;align-content:start}
.inv-ed fieldset{border:0;margin:0;padding:0;display:grid;gap:14px}
.inv-ed legend{font:500 11.5px/1.3 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin-bottom:12px;padding:0}
.inv-ed .field input,.inv-ed .field textarea,.inv-ed .field select{font-size:16px;padding:11px 10px}
.inv-ed .field textarea{min-height:76px}
.inv-bar{display:flex;flex-wrap:wrap;gap:8px}
.inv-bar .btn{padding:14px 16px}
.inv-head,.inv-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 96px 36px;gap:6px;align-items:center}
.inv-head{color:var(--faint);font-size:10.5px}
.inv-row input{font:400 16px/1.3 var(--sans);color:var(--ink);background:var(--paper);border:0;border-bottom:1px solid var(--fern);padding:10px 8px;width:100%;min-width:0;border-radius:0}
.inv-row input:focus{outline:none;box-shadow:inset 0 -2px 0 var(--pollen)}
.inv-row .x{height:40px;border:1px solid var(--rule);background:none;color:var(--fern);font-size:20px;cursor:pointer}
[data-items]{display:grid;gap:6px}
.inv-ed .add{justify-self:start;padding:12px 14px}
.custom-rate[hidden]{display:none}
.inv-saved ul{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.inv-saved li{display:flex;gap:6px}
.inv-saved li.none{color:var(--faint);font-size:15px}
.inv-saved [data-load]{flex:1;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;text-align:left;padding:12px;background:var(--paper);border:1px solid transparent;color:var(--ink);font:400 15px/1.3 var(--sans);cursor:pointer}
.inv-saved [data-load]:hover{border-color:var(--fern)}
.inv-saved [data-load] span{margin-left:auto;font:500 11px/1.3 var(--mono);color:var(--faint)}
.inv-saved .del{width:44px;border:1px solid var(--rule);background:none;color:var(--fern);font-size:20px;cursor:pointer}
.inv-pv{align-self:start;position:sticky;top:calc(var(--head-h) + 16px)}
@media (max-width:980px){.inv-pv{position:relative;top:0}}
.howto{margin-top:20px;padding:18px;background:var(--paper)}
.howto ul{margin:0;padding-left:18px;font-size:14.5px;color:var(--muted)}
.howto li{margin-bottom:6px}
.inv-sheet{background:#fff;color:#1E2A23;padding:clamp(20px,4vw,44px);box-shadow:0 1px 0 var(--rule),0 18px 40px -24px rgba(30,42,35,.35);font:400 13.5px/1.45 var(--sans);min-height:420px}
.inv-sheet table{border-collapse:collapse;width:100%}
.is-top{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid #d9d4c6}
.is-from{font:600 20px/1.2 var(--sans);color:#1E2A23;margin-bottom:6px}
.is-addr{color:#4F5A53}
.is-title{font:600 30px/1 var(--serif);color:#2B4A3A;text-align:right;margin-bottom:10px}
.is-meta table{width:auto;margin-left:auto}
.is-meta th{text-align:left;font-weight:500;color:#5A615B;padding:2px 14px 2px 0;font-size:12px}
.is-meta td{text-align:right;padding:2px 0}
.is-to{padding:18px 0;display:grid;gap:2px}
.is-to span{font:500 10.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#5A615B}
.is-items th{font:500 10.5px/1.3 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:#5A615B;text-align:right;border-bottom:1px solid #2B4A3A;padding:8px 0 8px 10px}
.is-items th:first-child,.is-items td:first-child{text-align:left;padding-left:0}
.is-items td{text-align:right;padding:9px 0 9px 10px;border-bottom:1px solid #ece7da;vertical-align:top}
.is-items td.empty{text-align:left;color:#8a8f88;font-style:italic}
.is-tot{width:min(300px,100%)!important;margin:14px 0 0 auto}
.is-tot th{text-align:left;font-weight:500;color:#4F5A53;padding:5px 0}
.is-tot td{text-align:right;padding:5px 0}
.is-tot .grand th,.is-tot .grand td{border-top:1px solid #2B4A3A;padding-top:10px;font-weight:600;color:#2B4A3A;font-size:16px}
.is-notes{margin-top:26px;padding-top:14px;border-top:1px solid #ece7da;color:#4F5A53}
.is-notes span{display:block;font:500 10.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#5A615B;margin-bottom:6px}

/* printable report */
.print-doc{display:none}
#print-report{font:400 12.5pt/1.5 var(--sans);color:#1E2A23}
.pd-h{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1.5px solid #2B4A3A}
.pd-h svg{width:44px;height:30px;fill:#2B4A3A}
.pd-h b{display:block;font:600 22pt/1 var(--serif);color:#2B4A3A}
.pd-h div span{font:500 8pt/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#5A615B}
.pd-d{margin-left:auto;font:500 9pt/1 var(--mono);color:#5A615B}
#print-report .pd-title{font:600 26pt/1.1 var(--serif);color:#2B4A3A;margin:22px 0 14px}
#print-report h2{font:600 15pt/1.2 var(--serif);color:#2B4A3A;margin:22px 0 6px}
.pd-t{border-collapse:collapse;width:100%}
.pd-t th{text-align:left;font-weight:500;color:#4F5A53;padding:7px 12px 7px 0;border-bottom:1px solid #e3ddcd;width:58%}
.pd-t td{text-align:right;padding:7px 0;border-bottom:1px solid #e3ddcd;font-weight:600}
.pd-disc{margin-top:22px;font-size:9pt;color:#5A615B}
.pd-f{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:28px;padding-top:10px;border-top:1px solid #2B4A3A;font:500 8.5pt/1.3 var(--mono);color:#5A615B}

.is-wm{margin-top:36px;text-align:center;font:500 9px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#c9ccc6}
#print-report{padding:16mm 17mm 14mm}
@media print{
  @page{margin:0}
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  body.printing-report>*:not(#print-report){display:none!important}
  body.printing-report #print-report{display:block!important}
  body.inv-page>*:not(#print-invoice){display:none!important}
  body.inv-page #print-invoice{display:block!important}
  .pi-wrap{width:100%;border-collapse:collapse}
  .pi-wrap>thead td,.pi-wrap>tfoot td,.pi-wrap>tbody>tr>td{padding:0 17mm}
  .pi-top{height:16mm}.pi-bot{height:18mm}
  #print-invoice .inv-sheet{box-shadow:none;padding:0;min-height:0;font-size:10.5pt}
  #print-invoice .is-wm{position:fixed;left:0;right:0;bottom:7mm;margin:0;font-size:6.5pt;color:#c4c8c2}
  .pd-t tr,.is-items tr,.is-tot,.is-notes{break-inside:avoid}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

html,body{overflow-x:clip}
@media (min-width:1101px){.tool-grid.n4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:901px) and (max-width:1100px){.tool-grid.n4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.in-row .field,.tool-in .field{align-content:start}
.field label.check,.modal-box label.check{font:400 15px/1.4 var(--sans);text-transform:none;letter-spacing:0;color:var(--ink)}
.field label.check:has(input:checked){color:var(--cream)}
.year-f select{max-width:260px}
.ratenote{margin:18px 0 0;font-size:13px;line-height:1.5;color:var(--on-fern-muted)}
.st{display:inline-block;padding:4px 8px;font:500 10px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.st.off{background:var(--fern);color:var(--cream)}
.st.prj{background:#EDE3CA;color:#5b4a22;border:1px dashed var(--pollen)}
.st.prp{background:transparent;color:var(--fern);border:1px solid var(--fern)}
.legend-st{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:24px;font-size:14px;color:var(--muted)}
.legend-st span{display:inline-flex;gap:8px;align-items:center}
table.rates td:nth-child(2),table.rates td:nth-child(3){white-space:nowrap;font-variant-numeric:tabular-nums}
table.rates td:nth-child(3){font-weight:600;color:var(--fern)}
.log{padding-left:18px}.log time{font-family:var(--mono);font-size:13px;color:var(--faint)}
.hero-new{display:inline-flex;gap:10px;align-items:center;margin:0 auto 26px;padding:8px 14px;border:1px solid var(--rule-fern);color:var(--cream);text-decoration:none;font-size:11px;letter-spacing:.05em;text-transform:uppercase;transition:background .25s,border-color .25s}
.hero-new b{background:var(--pollen);color:var(--fern);padding:3px 7px;font-weight:500}
.hero-new:hover{border-color:var(--pollen);background:rgba(201,163,91,.1)}
.hub-faq{margin-top:clamp(56px,7vw,104px);max-width:860px}.hub-faq .row-head{margin-bottom:12px}
[data-off]{display:none!important}
.news .tiles{gap:1px;background:var(--rule);border-top:1px solid var(--rule)}
.news .tiles .tile{border:0!important;background:var(--cream)}
.news .tiles .tile:hover{background:var(--fern)}
.feats{display:contents}
@media (max-width:640px){
  table.rates{min-width:0!important;width:100%}
  table.rates thead{display:none}
  table.rates tr{display:grid;grid-template-columns:1fr 1fr auto;gap:6px 12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--rule-soft)}
  table.rates th[scope=row]{grid-column:1/-1;padding:0!important;border:0!important}
  table.rates td{padding:0!important;border:0!important}
  table.rates td:nth-child(2)::before,table.rates td:nth-child(3)::before{display:block;font:500 9.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--faint);font-weight:500}
  table.rates td:nth-child(2)::before{content:"2026"}
  table.rates td:nth-child(3)::before{content:"2027"}
}
/* capabilities + partners (classic theme) */
.sec-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--pad);align-items:end;margin-bottom:40px}
.sec-h p{color:var(--muted);margin:0}
@media (max-width:820px){.sec-h{grid-template-columns:1fr}}
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pad)}
@media (max-width:900px){.cap-grid{grid-template-columns:1fr}}
.cap-card{padding:24px;background:var(--paper);border-top:1px solid var(--fern)}
.cap-card .n{display:block;font:500 11.5px/1 var(--mono);color:var(--faint);margin-bottom:18px}
.cap-card h3{font-size:clamp(20px,1.7vw,24px);margin-bottom:8px}
.cap-card p{color:var(--muted);font-size:15.5px;margin:0}
.partners{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad)}
@media (max-width:760px){.partners{grid-template-columns:1fr}}
.partner{padding:28px;background:var(--paper);border-top:1px solid var(--fern);scroll-margin-top:120px}
.partner h3{font-size:clamp(24px,2.2vw,32px);margin-bottom:10px}
.partner p{color:var(--muted)}
ul.ind{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
ul.ind li{padding:8px 12px;border:1px solid var(--rule);font-size:15px}
/* pre-launch (classic) */
.btn.is-off,.box.is-off{background:transparent!important;color:var(--muted)!important;border:1px dashed var(--rule)!important;cursor:not-allowed}
.on-fern .btn.is-off,.on-fern .box.is-off{color:var(--on-fern-muted)!important;border-color:var(--rule-fern)!important}
.contact-badge.gone,.req-btn{display:none!important}
.info-fab{position:fixed;right:var(--pad);bottom:var(--pad);z-index:96}
.info-fab summary{list-style:none;width:52px;height:52px;background:var(--fern);color:var(--cream);display:grid;place-items:center;cursor:pointer;font:italic 500 20px/1 var(--serif)}
.info-fab summary::-webkit-details-marker{display:none}
.info-fab[open] summary{background:var(--pollen);color:var(--fern)}
.info-panel{position:absolute;right:0;bottom:62px;width:min(300px,calc(100vw - 40px));padding:20px;background:var(--cream);border:1px solid var(--rule);display:grid;gap:4px}
.info-panel b{font-weight:500}
.info-panel p{font-size:14px;color:var(--muted);margin:2px 0 8px}
.info-panel a{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--rule);text-decoration:none;font:500 11.5px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--fern)}
.mail-cta{padding:28px;background:var(--paper);border-top:1px solid var(--fern)}
.mail-big{display:inline-block;font:500 clamp(26px,3.6vw,44px)/1.1 var(--sans);color:var(--fern);margin:4px 0 20px;word-break:break-all}
@media print{.info-fab{display:none}}
/* AI-powered insights (classic) */
.ai-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--pad)}
@media (max-width:1000px){.ai-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ai-grid{grid-template-columns:1fr}}
.ai-card{padding:24px;background:var(--paper);border-top:1px solid var(--pollen)}
.ai-card .n{display:block;font:500 11.5px/1 var(--mono);color:var(--faint);margin-bottom:16px}
.ai-card h3{font-size:clamp(19px,1.6vw,22px);margin-bottom:8px}
.ai-card p{color:var(--muted);font-size:15.5px;margin:0}
.ai-note{margin:20px 0 0;font-size:14.5px;color:var(--muted)}
.ai-wf-h{margin:48px 0 20px}
.ai-card.wf{border-top-color:var(--fern)}

/* v9 — salary pages, reference tables, embeds, data downloads (shared by both themes; v2 restyles in min-over) */
.num-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:4px 0 40px}
.num-strip>div{background:var(--paper);padding:18px 18px 16px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}
.num-strip .k{font:500 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.num-strip b{font:500 clamp(22px,2.4vw,30px)/1.1 var(--sans);letter-spacing:-.02em;color:var(--fern);font-variant-numeric:tabular-nums}
.num-strip>div:first-child{background:var(--fern)}
.num-strip>div:first-child .k{color:var(--on-fern-muted)}
.num-strip>div:first-child b{color:var(--cream)}
@media (max-width:760px){.num-strip{grid-template-columns:1fr 1fr}}
.near{list-style:none;padding:0!important;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:8px}
.near li{margin:0!important;padding:0!important}
.near li::before{display:none!important}
.near a{display:inline-block;padding:8px 14px;border:1px solid var(--rule);text-decoration:none;font-size:15px;transition:background .2s,color .2s,border-color .2s}
.near a:hover{background:var(--fern);color:var(--cream);border-color:var(--fern)}
.th-table th,.th-table td{font-variant-numeric:tabular-nums;white-space:nowrap}
.th-table tbody tr{transition:background .2s}
.th-table tbody tr:hover{background:var(--rule-soft)}
.th-table tbody th a{font-weight:500}
.embed-code{position:relative;margin:0 0 28px}
.embed-code pre{margin:0;padding:16px 16px 68px;background:var(--fern);color:var(--cream);font:400 13px/1.6 var(--mono);white-space:pre-wrap;word-break:break-all;overflow:auto}
.embed-code .copy-btn{position:absolute;left:16px;bottom:14px;color:var(--cream);border-color:var(--rule-fern);background:transparent}
.embed-code .copy-btn:hover{background:var(--cream);color:var(--fern)}
.dl-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.chip-link{display:inline-flex;align-items:center;padding:6px 14px;border:1px solid var(--fern);font:500 13px/1.2 var(--mono);text-decoration:none;transition:background .2s,color .2s}
.chip-link:hover{background:var(--fern);color:var(--cream)}
body.embed{background:var(--cream);margin:0;padding:0;min-height:0}
.embed-wrap{padding:12px}
.embed-wrap .tool{margin:0}
.embed-by{margin:14px 2px 0;font-size:13px;color:var(--muted)}
.embed-by a{color:inherit}

/* v9 — request confirmation: a progress tracker instead of a thank-you page */
.tracker{list-style:none;padding:0!important;margin:18px 0 20px;counter-reset:none}
.tracker li{position:relative;display:grid;grid-template-columns:36px 1fr;gap:14px;padding:0 0 22px!important;margin:0!important;border:0!important}
.tracker li::before{display:none!important}
.tracker li:not(:last-child)::after{content:"";position:absolute;left:17px;top:40px;bottom:4px;width:2px;background:var(--rule);transform-origin:50% 0}
.tracker .dot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--rule);background:var(--paper);font:500 14px/1 var(--mono);color:var(--muted);position:relative}
.tracker b{display:inline-block;font-weight:500;margin-top:7px}
.tracker p{margin:2px 0 0!important;color:var(--muted);font-size:15px;line-height:1.5}
.tracker .st{display:inline-block;margin-left:10px;padding:3px 9px;font:500 10.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;vertical-align:2px}
.tracker .is-done .dot{background:var(--fern);border-color:var(--fern);color:var(--cream)}
.tracker .is-done::after{background:var(--fern)!important}
.tracker .is-done .st{background:var(--fern);color:var(--cream)}
.tracker .is-next .dot{background:var(--pollen);border-color:var(--pollen);color:var(--ink)}
.tracker .is-next .st{background:var(--pollen);color:var(--ink)}
.tracker .is-next b{font-weight:600}
.req-done{padding:clamp(24px,4vw,44px);border:1px solid var(--rule);background:var(--paper)}
.req-done:focus{outline:none}
.req-done h2{margin:8px 0 6px}
.req-done .sub{color:var(--muted);margin-bottom:8px}
.promise{display:flex;align-items:center;gap:10px;font-weight:500;margin:0 0 14px}
.pdot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--pollen);box-shadow:0 0 0 0 var(--pollen)}
.req-clients{margin:0;padding-top:14px;border-top:1px solid var(--rule-soft)}
.list-state{margin:14px 0 18px;padding-left:1.2em}
.list-state li{margin:0 0 6px}
@media (prefers-reduced-motion:no-preference){
  .tracker.live li{animation:trk-in .7s cubic-bezier(.2,.7,.1,1) both;animation-delay:calc(.15s + var(--s) * .14s)}
  .tracker.live .is-done .dot{animation:trk-pop .6s cubic-bezier(.3,1.6,.5,1) .3s both}
  .tracker.live .is-done::after{animation:trk-line .9s cubic-bezier(.7,0,.2,1) .55s both}
  .tracker .is-next .dot::after{content:"";position:absolute;inset:-1.5px;border-radius:50%;border:2px solid var(--pollen);animation:trk-ping 2.2s ease-out 1.1s infinite}
  .pdot{animation:trk-glow 2.2s ease-out 1.1s infinite}
  .req-done:not([hidden]) h2,.req-done:not([hidden]) .sub,.req-done:not([hidden]) .eyebrow{animation:trk-in .6s cubic-bezier(.2,.7,.1,1) both}
  .req-done:not([hidden]) .sub{animation-delay:.08s}
}
@keyframes trk-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes trk-pop{0%{transform:scale(.4);opacity:0}100%{transform:none;opacity:1}}
@keyframes trk-line{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes trk-ping{0%{transform:scale(1);opacity:.9}80%,100%{transform:scale(1.7);opacity:0}}
@keyframes trk-glow{0%{box-shadow:0 0 0 0 var(--pollen)}70%,100%{box-shadow:0 0 0 9px transparent}}
.foot-base > :nth-child(3){grid-column:10/13}
.foot-base > .credit{grid-column:10/13!important;margin-top:14px;opacity:.85}
@media (max-width:900px){.foot-base > .credit{grid-column:1/-1!important}}

/* v9 — income tax calculator: pay period, period table, real tax rate, province comparison (both themes) */
.pay-row{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:10px;align-items:stretch}
.pay-row select{height:100%}
.tool-out details.more{margin:16px 0 0;border-top:1px solid var(--rule-fern)}
.tool-out details.more summary{cursor:pointer;padding:12px 0;font-weight:500;list-style:none;display:flex;justify-content:space-between;align-items:center}
.tool-out details.more summary::-webkit-details-marker{display:none}
.tool-out details.more summary::after{content:"+";font-size:20px;line-height:1;opacity:.8}
.tool-out details.more[open] summary::after{content:"–"}
.mini-table{overflow-x:auto}
.mini-table table{width:100%;border-collapse:collapse;font-size:13.5px}
.mini-table th,.mini-table td{padding:7px 0;text-align:left;border-bottom:1px solid var(--rule-fern);font-weight:400;white-space:nowrap}
.mini-table td,.mini-table thead th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.mini-table thead th{color:var(--on-fern-muted);font-size:12px}
.mini-table tr.on th,.mini-table tr.on td{color:var(--pollen);font-weight:600}
.mini-table .rk,.cmp-table .rk{display:inline-block;width:24px;opacity:.7;font-size:12px;font-variant-numeric:tabular-nums}
.taxberg{margin-top:16px;padding:14px 16px 6px;border:1px solid var(--rule-fern)}
.taxberg .eyebrow{display:block;margin-bottom:4px}
.prov-links{margin-top:18px;font-size:14.5px;line-height:1.9}
.table-wrap table.tfit{min-width:0}
@media (max-width:640px){.table-wrap table.tfit th,.table-wrap table.tfit td{padding-left:10px;padding-right:10px;font-size:14px}}
.row-head h2.rh-h{font:inherit;letter-spacing:inherit;text-transform:inherit;margin:0;color:inherit}
.tool-out .btn{white-space:normal;max-width:100%;height:auto;line-height:1.3;text-align:left}
.mini-table th[scope=row]{white-space:normal}
.mini-table td{padding-left:8px}
@media (max-width:480px){.mini-table table{font-size:12.5px}}

/* ===================== v2 minimal: tools, cards, homepage (after the shared tool/invoice/print block) */
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (min-width:1101px){.tool-grid.n4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:900px){.tool-grid{grid-template-columns:1fr!important}}
.tool-card{display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:var(--r);background:var(--stone);text-decoration:none;color:var(--forest);min-height:200px;transition:background .2s;border:0}
.tool-card .mono{font:500 11.5px/1.4 var(--sans);letter-spacing:.07em;color:var(--sage);margin:0}
.tool-card h3{font-weight:400;font-size:clamp(20px,1.7vw,23px)}
.tool-card p{color:var(--muted);font-size:15.5px;margin:0}
.tool-card .bracket{margin-top:auto;align-self:flex-start}
.tool-card:hover{background:var(--pink-wash)}
.tool-card:hover h3,.tool-card:hover .bracket{color:var(--forest)}
.tool-card:hover p,.tool-card:hover .mono{color:var(--muted)}
.tool-group+.tool-group{margin-top:clamp(48px,6vw,88px)}
.tg-desc{color:var(--muted);margin:0 0 20px;max-width:40em}
.tool-jump a{border-radius:var(--pill);border:1.5px solid var(--rule-strong);font:400 14.5px/1 var(--sans)!important;letter-spacing:0;text-transform:none;padding:10px 16px}
.tool-jump a span{font-family:var(--mono);font-size:12px}
.tool-jump a:hover{background:var(--forest);color:var(--snow);border-color:var(--forest)}

.tool{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start}
.tool-in{grid-column:1/8;display:grid;gap:18px;align-content:start}
.tool-in .btn{justify-self:start}
.tool-out{grid-column:8/13;padding:28px;border-radius:var(--r);background:var(--forest);color:var(--snow);display:flex;flex-direction:column;position:sticky;top:calc(var(--head-h) + 20px)}
.tool.wide .tool-in,.tool.wide .tool-out{grid-column:1/-1}
.tool.wide .tool-out{position:relative;top:0;margin-top:8px}
@media (max-width:900px){.tool-in,.tool-out{grid-column:1/-1}.tool-out{position:relative;top:0;margin-top:16px}}
.tool .num{display:flex;align-items:stretch;background:var(--snow);border:1.5px solid var(--rule-strong);border-radius:var(--r-in)}
.tool .num:focus-within{border-color:var(--forest);outline:2px solid var(--pink);outline-offset:1px}
.tool .num input{border:0!important;outline:0!important;background:transparent!important;font:400 19px/1.2 var(--sans)!important;padding:12px 12px!important;flex:1;min-width:0}
.tool .affix{display:grid;place-items:center;padding:0 0 0 14px;font:400 14px/1 var(--mono);color:var(--sage)}
.tool .num .affix:last-child{padding:0 14px 0 0}
.tool .hint{font-size:13.5px;color:var(--faint)}
.rng::-webkit-slider-thumb{border-radius:50%!important;background:var(--forest)!important}
.rng::-moz-range-thumb{border-radius:50%!important}
.ro{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;border-bottom:1px solid var(--rule-fern)}
.ro .rl{font:400 13.5px/1.4 var(--sans);color:var(--on-fern-muted);letter-spacing:0;text-transform:none}
.ro output{font:400 19px/1.2 var(--sans);font-variant-numeric:tabular-nums;color:var(--snow);text-align:right}
.ro.big{flex-direction:column;align-items:flex-start;gap:6px;padding:16px 0}
.ro.big output{font:300 clamp(40px,4.2vw,60px)/1 var(--sans);letter-spacing:-.04em;color:var(--pink);text-align:left}
.ro output small{font-size:.4em;color:var(--on-fern-muted)}
.ro-sub{margin:-6px 0 6px;font:400 13px/1.4 var(--sans)!important;letter-spacing:0!important;text-transform:none!important;color:var(--on-fern-muted)}
.ro-head{font:300 22px/1.3 var(--sans)!important;letter-spacing:-.02em;color:var(--snow)}
.tnote{font:400 12.5px/1.5 var(--sans)!important;letter-spacing:0!important;text-transform:none!important;color:var(--on-fern-muted);margin:14px 0 0}
.ratenote{font-size:13px;color:var(--on-fern-muted);margin:16px 0 0}
.res-t{font:300 clamp(26px,2.4vw,34px)/1.1 var(--sans)!important;letter-spacing:-.03em;color:var(--pink)!important;margin:16px 0 8px}
.res-p{color:var(--on-fern-muted);margin:0 0 18px}
.tool-out .eyebrow{color:var(--pink)}
.tool-out .btn.light{align-self:flex-start}
.check-result .btn{align-self:flex-start}
.bars{border-radius:var(--pill);background:rgba(252,252,247,.1);height:10px}
.legend{font:400 12.5px/1.3 var(--sans)!important;letter-spacing:0!important;text-transform:none!important}
.legend .seg{border-radius:50%}
.seg.net{background:var(--pink)}.seg.tax{background:#e7e9dc}.seg.corp{background:var(--euc)}.seg.cpp{background:var(--sage)}.seg.live{background:var(--olive)}
.advice{border-left:0!important;border-radius:12px;background:rgba(252,252,247,.07)}
.advice a{color:var(--pink)}
.opt{border-radius:var(--r);border:1px solid var(--rule-fern)}
.opt-h{font:500 12px/1.3 var(--sans)!important;letter-spacing:.06em;color:var(--snow)}
.win-b{border-radius:var(--pill);background:var(--pink);color:var(--forest);font-family:var(--sans)!important}
.opt.win{border-color:var(--pink);background:rgba(245,198,207,.07)}
.aq legend{font-weight:400}
.aq legend .n{font-family:var(--mono)}
.tips{color:var(--snow)}
.st{border-radius:var(--pill)!important;font:500 11px/1.2 var(--sans)!important;letter-spacing:.04em!important;padding:5px 10px!important}
.st.off{background:var(--forest);color:var(--snow)}
.st.prj{background:var(--pink);color:var(--forest);border:0}
.st.prp{background:transparent;border:1.5px solid var(--forest);color:var(--forest)}
.legend-st{color:var(--muted)}
table.rates td:nth-child(3){font-weight:500}
.year-f select{max-width:240px}
.modal{background:rgba(28,58,19,.5)}
.modal-box{border-radius:var(--r-lg);border-top:0;background:var(--snow)}
.modal-box h2{font-weight:300}
.inv-sheet{border-radius:var(--r);border:1px solid var(--rule);box-shadow:none}
.inv-row input{border:1.5px solid var(--rule-strong)!important;border-radius:var(--r-in)!important;background:var(--snow)!important}
.inv-row .x,.inv-saved .del{border-radius:var(--r-in)}
.inv-saved [data-load]{border-radius:var(--r-in)}
.howto{border-radius:var(--r);background:var(--pink-wash)}
.inv-bar .btn{padding:13px 18px}
.inv-ed legend{font:500 12px/1.3 var(--sans)!important;letter-spacing:.07em;color:var(--sage)}
.hub-faq{margin-top:clamp(48px,6vw,88px);max-width:820px}
.is-title,.pd-h b,#print-report .pd-title,#print-report h2{font-family:var(--sans)!important;font-weight:300!important;letter-spacing:-.02em;color:#1c3a13!important}

/* ===================== homepage */
.mhero{padding:clamp(48px,7vw,104px) 0 clamp(48px,6vw,88px)}
.mhero .wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.mhero h1{font-size:clamp(46px,6.8vw,96px);line-height:.98;letter-spacing:-.05em;max-width:9em}
.mhero h1 em{font-style:normal;color:var(--pink-deep)}
.mhero .sub{font:300 clamp(18px,1.6vw,22px)/1.5 var(--sans);color:var(--muted);max-width:30em;margin:24px 0 0;letter-spacing:-.012em}
.mhero .where{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--pill);border:1px solid var(--rule);font:400 13px/1 var(--sans);color:var(--muted)}
@media (max-width:900px){.mhero .wrap{grid-template-columns:1fr}}
.rates-card{background:var(--pink);border-radius:var(--r-lg);padding:28px;color:var(--forest);text-decoration:none;display:block;transition:transform .2s}
.rates-card:hover{transform:translateY(-2px)}
.rates-card .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.rates-card .new{background:var(--forest);color:var(--snow);border-radius:var(--pill);padding:5px 10px;font:500 11.5px/1 var(--sans);letter-spacing:.04em}
.rates-card h2{font-size:clamp(24px,2.2vw,30px);margin:0 0 18px}
.rates-card dl{margin:0;display:grid}
.rates-card dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;border-top:1px solid rgba(28,58,19,.16)}
.rates-card dt{font-size:14.5px}
.rates-card dd{margin:0;font:400 20px/1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-align:right}
.rates-card dd small{display:block;font:500 10.5px/1.6 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:rgba(28,58,19,.86)}
.rates-card .go{display:inline-flex;gap:8px;margin-top:16px;font-size:15px;border-bottom:1.5px solid currentColor;padding-bottom:2px}
.proof{border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}
.proof ul{list-style:none;margin:0 auto;padding:0 var(--pad);max-width:calc(var(--max) + var(--pad)*2);display:grid;grid-template-columns:repeat(4,1fr)}
.proof li{padding:24px 20px 24px 0;font-size:14.5px;color:var(--muted)}
.proof li+li{padding-left:20px;border-left:1px solid var(--rule-soft)}
.proof b{display:block;font:300 22px/1.2 var(--sans);letter-spacing:-.02em;color:var(--forest);margin-bottom:4px}
@media (max-width:900px){.proof ul{grid-template-columns:1fr 1fr}.proof li:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:520px){.proof ul{grid-template-columns:1fr}.proof li{padding-left:0!important;border-left:0!important;border-top:1px solid var(--rule-soft)}.proof li:first-child{border-top:0}}
.sec-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:end;margin-bottom:36px}
.sec-h p{color:var(--muted);margin:0;max-width:34em}
.on-fern .sec-h p{color:var(--on-fern-muted)}
@media (max-width:820px){.sec-h{grid-template-columns:1fr}}
.kit{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:900px){.kit{grid-template-columns:1fr}}
.kit-col{border-radius:var(--r);background:var(--stone);padding:24px}
.kit-col h3{font:500 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--sage);margin:0 0 8px}
.kit-col ul{list-style:none;margin:0;padding:0}
.kit-col a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule-soft);text-decoration:none;font-size:16px}
.kit-col li:last-child a{border-bottom:0}
.kit-col a .ar{color:var(--sage);transition:transform .2s}
.kit-col a:hover .ar{transform:translateX(3px);color:var(--pink-deep)}
.kit-col a .tag{font-style:normal;font:500 10.5px/1.6 var(--sans);letter-spacing:.05em;text-transform:uppercase;background:var(--pink);color:var(--forest);border-radius:var(--pill);padding:1px 8px;margin-left:8px}
.svc-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-fern)}
.svc-list a{display:grid;grid-template-columns:1fr 1.3fr 24px;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--rule-fern);text-decoration:none;color:var(--snow)}
.svc-list b{font:300 clamp(22px,2.2vw,30px)/1.15 var(--sans);letter-spacing:-.03em}
.svc-list span{color:var(--on-fern-muted);font-size:15.5px}
.svc-list i{font-style:normal;color:var(--pink)}
.svc-list a:hover b{color:var(--pink)}
@media (max-width:760px){.svc-list a{grid-template-columns:1fr 20px}.svc-list span{grid-column:1/2}}
.team{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}
.team>div{padding:24px;border-radius:var(--r);background:rgba(252,252,247,.06)}
.team .role{font:500 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--pink);margin-bottom:10px;display:block}
.team p{color:var(--on-fern-muted);margin:0;font-size:15.5px}
.team b{display:block;font:300 22px/1.3 var(--sans);letter-spacing:-.02em;color:var(--snow);margin-bottom:8px}
@media (max-width:760px){.team{grid-template-columns:1fr}}
.offices{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.offices a,.offices div{display:block;padding:24px;border-radius:var(--r);border:1px solid var(--rule);text-decoration:none}
.offices b{display:block;font:300 26px/1.1 var(--sans);letter-spacing:-.03em;margin-bottom:8px}
.offices span{color:var(--muted);font-size:15px}
.offices a:hover{background:var(--pink-wash);border-color:var(--pink)}
@media (max-width:820px){.offices{grid-template-columns:1fr}}
.closer{background:var(--pink);border-radius:var(--r-lg);padding:clamp(32px,5vw,72px);display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:end}
.closer h2{font-size:clamp(32px,4vw,56px)}
.closer p{margin:0 0 20px;color:#30452a}
@media (max-width:820px){.closer{grid-template-columns:1fr}}
[data-off]{display:none!important}

/* capabilities + partners (about, homepage) */
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:900px){.cap-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cap-grid{grid-template-columns:1fr}}
.cap-card{padding:24px;border-radius:var(--r);background:var(--stone)}
.cap-card .n{display:block;font:400 13px/1 var(--mono);color:var(--sage);margin-bottom:18px}
.cap-card h3{font-weight:400;margin-bottom:8px}
.cap-card p{color:var(--muted);font-size:15.5px;margin:0}
.cap-grid.on-dark .cap-card{background:rgba(252,252,247,.06)}
.cap-grid.on-dark .cap-card .n{color:var(--pink)}
.cap-grid.on-dark .cap-card h3{color:var(--snow)}
.cap-grid.on-dark .cap-card p{color:var(--on-fern-muted)}
.partners{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:760px){.partners{grid-template-columns:1fr}}
.partner{padding:28px;border-radius:var(--r);background:var(--pink-wash);scroll-margin-top:calc(var(--head-h) + 20px)}
.partner h3{font:300 clamp(24px,2.2vw,30px)/1.15 var(--sans);letter-spacing:-.03em;margin-bottom:10px}
.partner p{color:var(--muted)}
.partner .small{margin:0}
ul.ind{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
ul.ind li{padding:9px 14px;border-radius:var(--pill);border:1px solid var(--rule-strong);font-size:15px}
.cap-card,.partner{border-top:0}
.logo .desc{font:400 13px/1 var(--sans);color:var(--sage);padding-left:12px;margin-left:2px;border-left:1px solid var(--rule)}
.menu .logo .desc{color:var(--on-fern-muted);border-color:var(--rule-fern)}
@media (max-width:520px){.logo .desc{display:none}}
.announce b{font-weight:600}

/* pre-launch: CTA shown but not pressable */
.btn.is-off,.box.is-off{background:transparent!important;color:var(--muted)!important;border:1.5px dashed var(--rule-strong)!important;cursor:not-allowed;user-select:none;transform:none!important}
.on-fern .btn.is-off,.cta-band .btn.is-off{color:var(--on-fern-muted)!important;border-color:var(--rule-fern)!important}
.closer .btn.is-off{border-color:rgba(28,58,19,.35)!important;color:#30452a!important}
.mh .btn.is-off{font-size:13.5px;padding:11px 16px}
@media (max-width:1100px){.mh .btn.is-off{display:none}}

/* floating info button */
.info-fab{position:fixed;right:20px;bottom:20px;z-index:110}
.info-fab summary{list-style:none;width:52px;height:52px;border-radius:50%;background:var(--forest);color:var(--snow);display:grid;place-items:center;cursor:pointer;font:500 20px/1 var(--sans);font-style:italic;transition:transform .3s var(--ease,ease),background .2s}
.info-fab summary::-webkit-details-marker{display:none}
.info-fab summary:hover{transform:scale(1.06)}
.info-fab[open] summary{background:var(--pink);color:var(--forest)}
.info-fab[open] summary span{font-style:normal}
.info-panel{position:absolute;right:0;bottom:64px;width:min(300px,calc(100vw - 40px));padding:20px;border-radius:var(--r);background:var(--snow);border:1px solid var(--rule);display:grid;gap:4px;animation:fadeup .35s var(--ease,ease) both}
.info-panel b{font-weight:500;font-size:16px}
.info-panel p{font-size:14px;color:var(--muted);margin:2px 0 8px}
.info-panel a{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--rule-soft);text-decoration:none;font-size:15px}
.info-panel a:hover{color:var(--pink-deep)}
.mail-cta{padding:clamp(24px,4vw,40px);border-radius:var(--r-lg);background:var(--pink-wash)}
.mail-big{display:inline-block;font:300 clamp(28px,4vw,48px)/1.1 var(--sans);letter-spacing:-.03em;color:var(--forest);text-decoration:none;border-bottom:2px solid var(--pink-deep);margin:4px 0 24px;word-break:break-all}
.mail-cta ul{padding-left:20px;color:var(--muted)}
@media print{.info-fab{display:none}}
.info-panel{border-radius:var(--r)}
.info-panel a{font:400 15px/1.3 var(--sans)!important;text-transform:none!important;letter-spacing:0!important;color:var(--forest)}
.info-fab summary{font:italic 500 20px/1 var(--sans)!important;border-radius:50%}
.mail-cta{border-top:0!important}
.mail-big{font-weight:300!important}

/* AI-powered insights */
.ai .sec-h .eyebrow{color:var(--pink-deep)}
.ai-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:1000px){.ai-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ai-grid{grid-template-columns:1fr}}
.ai-card{padding:24px;border-radius:var(--r);background:var(--pink-wash);border:0}
.ai-card .n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--forest);color:var(--pink);font:400 12px/1 var(--mono);margin-bottom:18px}
.ai-card h3{font-weight:400;margin-bottom:8px}
.ai-card p{color:var(--muted);font-size:15.5px;margin:0}
.ai-note{display:flex;gap:10px;align-items:center;margin:20px 0 0;font-size:14.5px;color:var(--muted)}
.ai-note .dot{width:8px;height:8px;border-radius:50%;background:var(--pink-deep);flex:none}
.hero-status{margin-top:22px}
.hero-status:empty{display:none}
.closer .status{margin-top:18px;background:rgba(252,252,247,.55)}
@media (prefers-reduced-motion:no-preference){.hero-status{animation:fadeup .9s var(--ease) .65s both}}
.ai-wf-h{margin:48px 0 20px}
.ai-wf-h h3{font:300 clamp(24px,2.4vw,32px)/1.15 var(--sans);letter-spacing:-.03em}
.ai-card.wf{background:var(--stone)}
.ai-card.wf .n{background:var(--pink);color:var(--forest)}

/* v9 — salary pages, tables, embeds, back to top */
.num-strip{gap:12px;background:none;border:0}
.num-strip>div{background:var(--stone);border-radius:var(--r);padding:20px 20px 22px}
.num-strip .k{font:500 12px/1.3 var(--sans);letter-spacing:.04em;color:var(--sage)}
.num-strip b{font-weight:300;font-size:clamp(24px,2.6vw,34px);letter-spacing:-.03em}
.num-strip>div:first-child{background:var(--forest)}
.num-strip>div:first-child .k{color:var(--on-fern-muted)}
.num-strip>div:first-child b{color:var(--pink)}
.num-strip>div::after{content:"";position:absolute;left:20px;right:20px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--pink);transform-origin:0 50%}
.near a{border-radius:var(--pill);padding:9px 16px;font-size:14.5px}
.near a:hover{background:var(--forest);color:var(--snow);border-color:var(--forest)}
.th-table tbody tr:hover{background:var(--pink-wash)}
.th-table tbody th a{text-decoration-color:var(--pink-deep);text-underline-offset:3px}
.embed-code pre{border-radius:var(--r);font-size:12.5px}
.embed-code .copy-btn{border-radius:var(--pill)}
.chip-link{border-radius:var(--pill);border-color:var(--forest);font-family:var(--sans)}
body.embed{background:var(--snow)}
.embed-by a b{font-weight:600}
.btt{position:fixed;left:20px;bottom:20px;z-index:105;display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 20px 0 16px;border-radius:var(--pill);
  background:var(--snow);color:var(--forest);border:1px solid var(--rule);text-decoration:none;font:500 14px/1 var(--sans);overflow:hidden;isolation:isolate;
  opacity:0;transform:translateY(18px) scale(.94);pointer-events:none;transition:opacity .35s var(--ease,ease),transform .5s var(--ease,ease),background .25s,color .25s,border-color .25s}
.btt svg{width:18px;height:18px;transition:transform .35s var(--ease,ease)}
.btt.show{opacity:1;transform:none;pointer-events:auto}
.btt:hover{background:var(--forest);color:var(--snow);border-color:var(--forest)}
.btt:hover svg{transform:translateY(-3px)}
.btt::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--pink);transform-origin:0 50%;transform:scaleX(0);z-index:-1}
@supports (animation-timeline:scroll()){.btt::after{animation:progress linear both;animation-timeline:scroll(root)}}
body.menu-open .btt{opacity:0;pointer-events:none}
@media (max-width:560px){.btt{height:48px;padding:0 14px;left:16px;bottom:16px}.btt span{display:none}}
@media print{.btt{display:none}}
/* request tracker, v2 */
.tracker .dot{font-family:var(--sans);border-color:var(--rule);background:var(--snow)}
.tracker .st{border-radius:var(--pill);font-family:var(--sans);letter-spacing:.05em}
.tracker .is-next .dot,.tracker .is-next .st{background:var(--pink);border-color:var(--pink);color:var(--forest)}
.tracker .is-next .dot::after{border-color:var(--pink-deep)}
.aside-box .tracker{margin:8px 0 6px}
.aside-box .tracker li{padding-bottom:16px!important}
.aside-box .tracker .dot{background:var(--snow)}
.req-done{border-radius:var(--r-lg);background:var(--stone);border:0}
.req-done h2{font-size:clamp(30px,4vw,44px);font-weight:300;letter-spacing:-.03em}
.req-done .eyebrow{color:var(--pink-deep)}
.pdot{background:var(--pink-deep)}
.promise{color:var(--forest)}
.mf .base .credit a{color:var(--snow);text-underline-offset:3px;text-decoration-color:var(--pink)}
.mf .base .credit a:hover{color:var(--pink)}
.taxberg{border-radius:14px;background:rgba(252,252,247,.06);border-color:rgba(252,252,247,.12)}
.mini-table tr.on th,.mini-table tr.on td{color:var(--pink)}
.pay-row select{border-radius:var(--r-in)}

/* ===================== glass desktop (v2): wallpaper, app windows, launchpad */
.desk{position:relative;isolation:isolate}
.desk::before{content:"";position:absolute;inset:-24px -4vw 0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(36% 52% at 10% 22%,rgba(245,198,207,.95),transparent 70%),
    radial-gradient(32% 48% at 90% 14%,rgba(105,142,121,.55),transparent 72%),
    radial-gradient(38% 50% at 72% 88%,rgba(245,198,207,.7),transparent 70%),
    radial-gradient(30% 44% at 28% 92%,rgba(159,153,91,.35),transparent 70%);
  -webkit-mask-image:linear-gradient(transparent,#000 14%,#000 76%,transparent),linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(transparent,#000 14%,#000 76%,transparent),linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-composite:intersect}
section.desk{padding-top:clamp(28px,4vw,56px)}
.desk-home::before,.desk-hub::before{inset:-40px -6vw -40px}

@keyframes wall{0%{background-position:0% 0%,100% 0%,80% 100%,20% 100%}100%{background-position:12% 10%,86% 16%,62% 84%,34% 86%}}
.win{position:relative;border-radius:24px;background:rgba(252,252,247,.52);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 44px 90px -44px rgba(28,58,19,.5),0 14px 32px -20px rgba(28,58,19,.3);overflow:hidden}
.win-bar{display:grid;grid-template-columns:72px 1fr 72px;align-items:center;gap:12px;height:46px;padding:0 18px;background:linear-gradient(rgba(255,255,255,.6),rgba(255,255,255,.22));border-bottom:1px solid rgba(28,58,19,.08)}
.win-dots{display:flex;gap:8px}
.win-dots i{width:12px;height:12px;border-radius:50%;background:#f0a3b3;box-shadow:inset 0 0 0 .5px rgba(28,58,19,.18)}
.win-dots i:nth-child(2){background:#dcd38f}.win-dots i:nth-child(3){background:#8fb59f}
.win-title{text-align:center;font:500 13.5px/1 var(--sans);color:var(--forest);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.win-meta{font:500 11.5px/1.2 var(--sans);color:var(--sage);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.win:has(.win-meta:not(:empty)) .win-bar{grid-template-columns:72px 1fr minmax(72px,auto)}
.win-body{padding:clamp(18px,2.6vw,34px)}
.win .tool{margin:0}
.win .tool-out{background:rgba(28,58,19,.9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(252,252,247,.1);box-shadow:0 24px 60px -30px rgba(28,58,19,.7)}
.win .field input:not([type=checkbox]):not([type=radio]):not([type=range]),.win .field select,.win .tool .num{background:rgba(255,255,255,.72)}
.win .tool .num input{background:transparent!important}
@media (max-width:640px){.win{border-radius:18px}.win-bar{grid-template-columns:60px 1fr;padding:0 14px}.win-meta{display:none}.win-body{padding:14px}.desk::before{inset:-16px -16px 0}}

.launch{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:20px 8px;padding:6px 2px}
.app{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;color:var(--forest);text-align:center;padding:12px 4px 10px;border-radius:18px;transition:background .25s}
.app:hover,.app:focus-visible{background:rgba(255,255,255,.6)}
.app-ic{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 12px 24px -12px rgba(28,58,19,.6);transition:transform .45s cubic-bezier(.3,1.5,.5,1)}
.app:hover .app-ic{transform:translateY(-5px) scale(1.07)}
.app:active .app-ic{transform:scale(.94)}
.app-ic svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.t-forest{background:linear-gradient(150deg,#336628,#1c3a13);color:#f5c6cf}
.t-pink{background:linear-gradient(150deg,#fbdde3,#eba6b6);color:#1c3a13}
.t-euc{background:linear-gradient(150deg,#9dc2ad,#5d8870);color:#fcfcf7}
.t-olive{background:linear-gradient(150deg,#e2dbab,#a69f5e);color:#1c3a13}
.app-nm{font:500 13px/1.25 var(--sans);max-width:13ch}
@media (prefers-reduced-motion:no-preference){
  .win-launch .app{animation:appin .7s cubic-bezier(.2,.7,.1,1) both;animation-delay:calc(var(--i) * 40ms)}
}
@keyframes appin{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}
@media (max-width:560px){.launch{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 2px}.app{padding:8px 0}.app-ic{width:54px;height:54px;border-radius:15px}.app-ic svg{width:25px;height:25px}.app-nm{font-size:11.5px}}

/* salary pages: glass number cards */
.num-strip>div:not(:first-child){background:linear-gradient(160deg,rgba(251,233,236,.9),rgba(238,238,233,.9))}
@media (max-width:640px){.desk::before,.desk-home::before,.desk-hub::before{left:-12px;right:-12px}}
section.desk::before{left:0!important;right:0!important}
.row-head h2.rh-h{font:inherit;letter-spacing:inherit;text-transform:inherit;margin:0;color:inherit}
.tool-out .btn{white-space:normal;max-width:100%;height:auto;min-height:48px;line-height:1.3;padding-top:12px;padding-bottom:12px;text-align:left}

/* speed: glass blur is costly on phones, so use solid panels there; skip offscreen rendering of long tables */
@media (max-width:760px),(prefers-reduced-transparency:reduce){
  .win{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(252,252,247,.94)}
  .win .tool-out{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--forest)}
}
.th-table{content-visibility:auto;contain-intrinsic-size:auto 1200px}

/* ===================== mega-menu (desktop dropdowns + phone menu) */
.mh .in{position:relative}
.mh nav>ul{gap:2px}
.mh nav .dd{position:static}
.dd-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:0;border-radius:var(--pill);background:transparent;color:var(--forest);font:400 15px/1 var(--sans);cursor:pointer;transition:background .2s}
.dd-btn:hover,.dd-btn[aria-expanded="true"],.dd-btn[data-cur]{background:var(--stone)}
.chev{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease,ease)}
.dd-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.dd-panel{position:absolute;left:50%;top:calc(100% + 10px);width:min(720px,calc(100vw - 48px));transform:translate(-50%,8px);opacity:0;visibility:hidden;pointer-events:none;
  background:#fff;border:1px solid var(--rule-soft);border-radius:28px;padding:22px 22px 16px;box-shadow:0 30px 70px -30px rgba(28,58,19,.35),0 8px 22px -14px rgba(28,58,19,.18);
  transition:opacity .18s ease,transform .22s var(--ease,ease),visibility 0s linear .22s;z-index:120}
.dd-panel.wide{width:min(820px,calc(100vw - 48px))}
.dd-panel::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.dd.open .dd-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition:opacity .18s ease,transform .22s var(--ease,ease),visibility 0s}
.mh nav ul.dd-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 18px}
.mh nav .dd-grid a{display:flex;align-items:center;gap:14px;padding:9px 10px;border-radius:16px;text-decoration:none;color:var(--forest);font:400 16px/1.25 var(--sans);transition:background .18s}
.mh nav .dd-grid a:hover,.mh nav .dd-grid a:focus-visible{background:var(--pink-wash)}
.ni{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--stone);color:var(--forest);transition:background .2s,color .2s,transform .3s var(--ease,ease)}
.ni svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.mh nav .dd-grid a:hover .ni{background:var(--forest);color:var(--pink);transform:scale(1.05)}
.mh nav .dd-all{display:inline-flex;gap:6px;margin:10px 10px 0;padding-top:12px;font:500 14px/1 var(--sans);color:var(--pink-deep);text-decoration:none}
.mh nav .dd-all:hover{background:none;text-decoration:underline;text-underline-offset:3px}
@media (prefers-reduced-motion:no-preference){.dd.open .dd-grid li{animation:ddin .3s var(--ease,ease) both}.dd.open .dd-grid li:nth-child(n+3){animation-delay:30ms}.dd.open .dd-grid li:nth-child(n+5){animation-delay:60ms}.dd.open .dd-grid li:nth-child(n+7){animation-delay:90ms}.dd.open .dd-grid li:nth-child(n+9){animation-delay:120ms}}
@keyframes ddin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* phone menu: same icon rows */
.menu{overflow-y:auto}
.menu nav{display:grid;gap:26px;padding-bottom:24px}
.m-sec h2{font:500 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--pink);margin:0 0 8px}
.m-sec ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.m-sec a{display:flex;align-items:center;gap:14px;padding:8px 0;color:var(--snow);text-decoration:none;font:400 18px/1.25 var(--sans)}
.m-sec .ni{width:40px;height:40px;background:rgba(252,252,247,.08);color:var(--pink)}
.m-sec a:active .ni{background:var(--pink);color:var(--forest)}
@media (min-width:600px){.m-sec ul{grid-template-columns:1fr 1fr;column-gap:20px}}

/* ===================== v2 motion layer — native CSS + a few lines of JS, no libraries.
   Everything is visible without JS; everything stops for prefers-reduced-motion. */
:root{--ease:cubic-bezier(.2,.7,.1,1);--ease-io:cubic-bezier(.7,0,.2,1)}

/* cross-page transitions (Chrome, Edge, Safari 18+) */
@view-transition{navigation:auto}
.mh{view-transition-name:site-header}
.announce{view-transition-name:announce}
::view-transition-old(root){animation:vt-out .12s ease both}
::view-transition-new(root){animation:vt-in .26s var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(14px)}}

/* reading progress bar (scroll-driven, no JS) */
.progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:120;background:var(--pink-deep);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
@supports (animation-timeline:scroll()){.progress{animation:progress linear both;animation-timeline:scroll(root)}}
@keyframes progress{to{transform:scaleX(1)}}

/* header condenses after scrolling */
.mh .in{transition:height .35s var(--ease)}
body.scrolled .mh .in{height:60px}
body.scrolled .mh{border-bottom-color:var(--rule)}

/* hero entrance */
.rise .w{display:inline-block;will-change:transform}
.mhero .where,.mhero .sub,.mhero .cta-row,.rates-card{will-change:transform}
.swash{position:absolute;left:-2%;right:-2%;bottom:-.12em;width:104%;height:.28em;overflow:visible;pointer-events:none}
.swash path{fill:none;stroke:var(--forest);stroke-width:5;stroke-linecap:round;stroke-dasharray:240;stroke-dashoffset:0}
.mhero h1 em{position:relative;display:inline-block}

/* scroll reveal (class added by JS only to elements below the fold) */
.rv{opacity:0;transform:translateY(14px)}
.rv.in{opacity:1;transform:none;transition:opacity .55s var(--ease),transform .55s var(--ease);transition-delay:var(--d,0ms)}
.wordsplit .wd{display:inline-block;opacity:0;transform:translateY(.45em)}
.wordsplit.in .wd{opacity:1;transform:none;transition:opacity .45s var(--ease),transform .45s var(--ease);transition-delay:calc(var(--wi) * 25ms)}

/* cursor spotlight on cards */
.spot{position:relative;isolation:isolate}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;opacity:0;transition:opacity .35s;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(245,198,207,.55),transparent 60%)}
.spot:hover::after{opacity:1}
.on-fern .spot::after{background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(245,198,207,.14),transparent 60%)}

/* buttons: arrow nudge + magnetic offset (set by JS) */
.btn{transform:translate(var(--bx,0),var(--by,0));transition:background .2s,color .2s,border-color .2s,transform .35s var(--ease)}
.btn:active{transform:translate(var(--bx,0),var(--by,0)) scale(.97)}

/* row hovers */
.svc-list a{position:relative}
.svc-list a::before{content:"";position:absolute;left:-16px;right:-16px;top:0;bottom:0;border-radius:12px;background:rgba(252,252,247,.05);transform:scaleX(.96);opacity:0;transition:opacity .3s,transform .4s var(--ease);z-index:0}
.svc-list a>*{position:relative;z-index:1}
.svc-list a:hover::before{opacity:1;transform:none}
.svc-list i{transition:transform .3s var(--ease)}
.svc-list a:hover i{transform:translateX(6px)}
.kit-col a{transition:padding .3s var(--ease),color .2s}
.kit-col a:hover{padding-left:6px}
.card,.tool-card,.offices a,.rates-card{transition:background .25s,transform .45s var(--ease)}
.card:hover,.tool-card:hover,.offices a:hover{transform:translateY(-3px)}
.rates-card:hover{transform:translateY(-4px) rotate(-.4deg)}

/* calculator outputs pulse when they change */
.tick{animation:tick .5s var(--ease)}
@keyframes tick{0%{opacity:.35;transform:translateY(4px)}100%{opacity:1;transform:none}}
.ro output{display:inline-block}

@media (prefers-reduced-motion:no-preference){
  .rise .w{animation:rise .7s var(--ease) both;animation-delay:calc(60ms + var(--i) * 50ms)}
  .mhero .where{animation:fadeup .8s var(--ease) both}
  .mhero .sub{animation:fadeup .9s var(--ease) .45s both}
  .mhero .cta-row{animation:fadeup .9s var(--ease) .55s both}
  .rates-card{animation:cardin 1.1s var(--ease) .35s both}
  .swash path{stroke-dashoffset:240;animation:draw 1.1s var(--ease-io) .9s forwards}
  .announce{animation:fadein .6s ease both}
  .page-head .eyebrow,.page-head .crumbs{animation:fadeup .7s var(--ease) both}
  .page-head .lede,.page-head .cta-row,.page-head .open-note,.page-head .tool-jump,.page-head .byline{animation:fadeup .9s var(--ease) .25s both}
}
@keyframes rise{from{opacity:0;transform:translateY(.55em) rotate(2deg)}to{opacity:1;transform:none}}
@keyframes fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes cardin{from{opacity:0;transform:translateY(40px) rotate(2deg) scale(.97)}to{opacity:1;transform:none}}
@keyframes draw{to{stroke-dashoffset:0}}

@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  .rv,.wordsplit .wd{opacity:1!important;transform:none!important}
  .progress{display:none}
  .btn{transform:none!important}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
@media print{.progress{display:none}}

/* v9 — everything moves a little more */
.page-head h1.rise .w{display:inline-block}
.num-strip>div::after{transform:scaleX(1)}
.th-table tbody th a,.prose a:not(.btn):not(.chip-link){background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease),color .2s}
.prose a:not(.btn):not(.chip-link):hover,.th-table tbody th a:hover{background-size:100% 1px}
.tool-card .arr,.bracket .arr{display:inline-block;transition:transform .35s var(--ease)}
.tool-card:hover .arr,.bracket:hover .arr{transform:translateX(5px)}
.near a{transition:background .2s,color .2s,border-color .2s,transform .35s var(--ease)}
.near a:hover{transform:translateY(-2px)}
.chip-link{transition:background .2s,color .2s,transform .35s var(--ease)}
.chip-link:hover{transform:translateY(-2px)}
.faq details[open]>:not(summary){animation:fadeup .5s var(--ease) both}
.faq summary{transition:color .2s}
.faq summary::after{transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:rotate(180deg)}
@supports selector(::details-content){
  @media (prefers-reduced-motion:no-preference){
    :root{interpolate-size:allow-keywords}
    .faq details::details-content{block-size:0;overflow:clip;transition:block-size .45s var(--ease),content-visibility .45s allow-discrete}
    .faq details[open]::details-content{block-size:auto}
  }
}
.table-wrap tbody tr{transition:background .2s}
.table-wrap tbody tr:hover{background:var(--pink-wash)}
@media (prefers-reduced-motion:no-preference){
  .page-head h1.rise .w{animation:rise .6s var(--ease) both;animation-delay:calc(var(--i) * 35ms)}
  .num-strip>div::after{animation:grow 1.2s var(--ease) .5s both}
  .rv.in.num-strip>div::after,.num-strip>div.rv.in::after{animation-delay:calc(var(--d,0ms) + .35s)}
  .btt.show svg{animation:nudge 2.4s var(--ease) 1s 2}
}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes nudge{0%,100%{transform:none}50%{transform:translateY(-3px)}}

/* ===================== opening animation (home, first visit per session) */
.intro{display:none}
@media (prefers-reduced-motion:no-preference){
  html.js:not(.no-intro) .intro{display:grid;place-items:center;position:fixed;inset:0;z-index:400;background:var(--forest);color:var(--snow);
    clip-path:inset(0 0 0 0);animation:intro-out .5s var(--ease-io) .75s forwards;pointer-events:none}
  html.js:not(.no-intro):has(.intro){--intro:.85s}
  .intro-in{display:flex;align-items:center;gap:18px}
  .intro-mk{width:84px;height:56px;overflow:visible}
  .intro-mk path{fill:var(--pink);stroke:var(--forest);stroke-width:1.2;stroke-linejoin:round;transform-box:fill-box;transform-origin:50% 100%;
    animation:petal .45s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(.03s + var(--p) * 30ms)}
  .intro-mk .dome{fill:var(--snow);stroke:var(--forest);stroke-width:1.2;transform-box:fill-box;transform-origin:50% 50%;animation:dome .4s cubic-bezier(.3,1.6,.5,1) .25s both}
  .intro-txt{display:flex;flex-direction:column;overflow:hidden}
  .intro-txt .iw{font:300 46px/1 var(--sans);letter-spacing:-.03em;animation:intro-up .5s var(--ease) .2s both}
  .intro-txt .id{font:500 12px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--on-fern-muted);margin-top:10px;animation:intro-up .5s var(--ease) .3s both}
  .intro-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--pink);transform-origin:0 50%;animation:loadbar .75s var(--ease-io) 0s both}
  /* the hero waits for the curtain */
  .rise .w{animation-delay:calc(var(--intro,0s) + 60ms + var(--i) * 50ms)}
  .mhero .where{animation-delay:var(--intro,0s)}
  .mhero .sub{animation-delay:calc(var(--intro,0s) + .22s)}
  .mhero .cta-row{animation-delay:calc(var(--intro,0s) + .3s)}
  .rates-card{animation-delay:calc(var(--intro,0s) + .18s)}
  .swash path{animation-delay:calc(var(--intro,0s) + .5s)}
}
@keyframes intro-out{0%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 100% 0);visibility:hidden}}
@keyframes petal{from{transform:scale(0) rotate(-25deg);opacity:0}to{transform:none;opacity:1}}
@keyframes dome{from{transform:scale(0)}to{transform:none}}
@keyframes intro-up{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}
@keyframes loadbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ===================== loading states */
/* page-to-page: thin indeterminate bar while the next page loads */
.navload{position:fixed;left:0;top:0;height:3px;width:100%;z-index:130;pointer-events:none;opacity:0;overflow:hidden}
.navload::before{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,var(--pink-deep),transparent)}
html.leaving .navload{opacity:1}
@media (prefers-reduced-motion:no-preference){html.leaving .navload::before{animation:navslide 1s var(--ease-io) infinite}}
@keyframes navslide{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
/* calculators: results shimmer until the numbers are in */
.js .tool[data-tool]:not(.ready) .tool-out output{color:transparent!important;border-radius:6px;
  background:linear-gradient(90deg,rgba(252,252,247,.08) 25%,rgba(252,252,247,.22) 50%,rgba(252,252,247,.08) 75%) 0 0/200% 100%;animation:shimmer 1.2s linear infinite}
.tool.ready .tool-out{animation:fadein .5s ease both}
@keyframes shimmer{to{background-position:-200% 0}}
/* buttons that are working */
.btn[disabled]{opacity:.75;cursor:progress}
.btn[disabled]::after{content:"";width:14px;height:14px;margin-left:10px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;display:inline-block;vertical-align:-2px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* logo mark turns gently on hover */
.logo svg{transition:transform .6s cubic-bezier(.3,1.5,.5,1)}
.logo:hover svg{transform:rotate(-10deg) scale(1.1)}
@media (prefers-reduced-motion:reduce){.intro{display:none!important}.navload{display:none}}
@media print{.intro,.navload{display:none!important}}
