/* ============================================================
   Eminent Tax · site.css
   Loaded on every page: tokens, base, buttons, header, panels,
   section headers, page hero, breadcrumbs, FAQ, contact form,
   footer and the mobile action bar.
   Page modules: plans.css (plans, one-off list, estimator, comparison),
   home.css (homepage only), pricing.css (/pricing/ only).
   Motion: transform and opacity only. No blur filters on moving parts.
   ============================================================ */
/* Self-hosted variable fonts (SIL Open Font License, see assets/fonts/LICENSE-*.txt).
   Bricolage includes the optical size axis, Inter the weight axis. Latin subset. */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/bricolage-grotesque-latin-opsz.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter-latin-wght.woff2) format('woff2')}
:root{
  --canvas:#F4F3F1; --panel:#FFFFFF; --soft:#FAF9F7; --ink:#16130F; --ink-2:#211D18; --body:#3F3A35; --muted:#6F6862; --line:#E8E4DF; --line-2:#DCD5CD;
  --coral:#F94C30; --coral-deep:#C2341C; --coral-50:#FFF0EC; --coral-100:#FFDCD3; --peach:#FFB59E;
  --green:#15803D; --green-50:#EAF7EF;
  --display:'Bricolage Grotesque',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --text:'Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1); --spring:cubic-bezier(.2,.7,.2,1);
  --r-xl:32px; --r-l:24px; --r-lg:20px; --r-md:14px;
  --gut:max(20px,env(safe-area-inset-left)); --gut-r:max(20px,env(safe-area-inset-right));
}
/* Springs: Apple's damping 1 / response .4 (--ease) and damping .8 / response .36 (--spring, only for things that arrive with momentum) */
@supports (transition-timing-function:linear(0,1)){:root{--ease:linear(0,0.125,0.344,0.545,0.699,0.807,0.879,0.926,0.955,0.973,0.984,0.99,0.994,0.997,0.998,0.999,1);--spring:linear(0,0.167,0.457,0.705,0.869,0.96,1.001,1.014,1.014,1.01,1.006,1.003,1.001,1,1,1,1,1,1)}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--canvas);color:var(--body);font:1.03125rem/1.6 var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
@supports (overflow:clip){body{overflow-x:clip}}
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);margin:0;letter-spacing:-.035em;line-height:1.04;text-wrap:balance;font-optical-sizing:auto}
h2{letter-spacing:-.03em;line-height:1.06}
h3,h4{letter-spacing:-.018em;line-height:1.2}
p{margin:0} a{color:inherit;text-decoration:none} ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
img,svg{max-width:100%}
img{display:block;height:auto}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.num{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:10px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px}
.skip:focus{left:12px}
.wrap{max-width:1240px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut-r)}
.flush{margin-top:0}

/* ---------- Buttons ---------- */
a,button,summary,label,select{touch-action:manipulation}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 24px;border-radius:999px;font-weight:600;font-size:1rem;line-height:1.2;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,border-color .2s,color .2s}
.btn-coral{background:var(--coral);color:#1A0E0A;box-shadow:0 8px 22px rgba(249,76,48,.28)}
.btn-ink{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink);border-color:var(--line-2)}
.btn .arr{display:inline-block;transition:transform .2s var(--ease)}
@media (hover:hover){
  .btn:hover{transform:translateY(-2px)}
  .btn-coral:hover{box-shadow:0 14px 30px rgba(249,76,48,.38)}
  .btn-light:hover{border-color:var(--ink)}
  .btn:hover .arr{transform:translateX(3px)}
}
.btn-sm{min-height:40px;padding:9px 18px;font-size:0.9063rem}
.link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink)}
.link span{transition:transform .2s var(--ease)}
@media (hover:hover){.link:hover span{transform:translateX(4px)}}

/* ---------- Shared bits ---------- */
.ic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--coral-50);color:var(--coral-deep);transition:background-color .25s,color .25s}
.ic svg{width:19px;height:19px}
.ic-lg{width:48px;height:48px;border-radius:14px}
.ic-lg svg{width:22px;height:22px}
.hl{padding:0 .04em;margin:0 -.04em;background:linear-gradient(rgba(249,76,48,.28),rgba(249,76,48,.28)) 0 88%/100% .26em no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.ctas{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.micro{margin-top:12px;font-size:0.8438rem;color:var(--muted);text-wrap:balance}
.stars{color:var(--coral);letter-spacing:1px}
/* review cards: the rating sits above the quote, away from the name and the "Google review" line */
.who .rph{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:none}
.rc .stars,.rcard .stars{display:block;font-size:1.0625rem;letter-spacing:3px;line-height:1;margin-bottom:12px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:0.75rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--green-50);color:var(--green);white-space:nowrap}
.pill.coral{background:var(--coral-50);color:var(--coral-deep)}
.pill.dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

@media (prefers-reduced-motion:no-preference){.hl{animation:underline .6s .2s var(--ease) both}}
@keyframes underline{from{background-size:0 .26em}}

/* ---------- Header ---------- */
.nav-shell{position:sticky;top:0;z-index:50;padding:12px var(--gut-r) 0 var(--gut);padding-top:max(12px,env(safe-area-inset-top))}
.nav{position:relative;max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:7px 7px 7px 18px;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid #fff;box-shadow:0 10px 30px rgba(22,19,15,.07)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  @media (min-width:1024px){.nav{background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8)}}
}
.logo{display:flex;align-items:center;min-height:44px;flex:none}
.nav .logo{position:relative;width:148.66px}
.nav .logo img{position:absolute;left:-.29px;bottom:11.96px;width:149.23px;height:37.85px;max-width:none}
/* The cardinal is its own layer (logo-bird.svg over logo-word.svg, same viewBox), so it can fly.
   In flight site.js hides it and flies an inlined logo-fly.svg (same bird, open wings it moves every
   frame; tools/brand/fly.py), positioned and sized by the script. The bird's centre is 117.25px 9.94px
   in the logo box. Mouse hover in the header; the homepage intro uses the same flight. */
.nav .logo .bird{position:absolute;left:-.29px;bottom:11.96px;width:149.23px;height:37.85px;pointer-events:none}
.nav .logo .bird .b-perch{left:0;bottom:0;transform-origin:117.25px 22px}
.fbird{position:absolute;z-index:2;pointer-events:none;will-change:transform,opacity}
.fbird svg{display:block;width:100%;height:100%;overflow:visible}.mainnav{margin:0 auto}
.menu{display:flex;gap:2px;margin:0;font-size:0.9375rem;font-weight:500}
.menu>li{position:relative}
.menu>li.has-mega{position:static}
.menu>li>a{display:flex;align-items:center;gap:6px;padding:9px 13px;white-space:nowrap;border-radius:999px;color:var(--body);transition:background-color .2s,color .2s}
.menu>li>a:hover,.menu>li:focus-within>a,.menu>li>a[aria-current="page"]{background:rgba(22,19,15,.05);color:var(--ink)}
.car{width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.menu>li:hover .car,.menu>li:focus-within .car{transform:rotate(225deg) translateY(-1px)}
.mega{position:absolute;left:50%;top:calc(100% + 10px);width:780px;margin-left:-390px;display:grid;grid-template-columns:1fr 1fr 220px;gap:4px 8px;padding:14px;border-radius:var(--r-l);background:#fff;border:1px solid var(--line);box-shadow:0 30px 70px rgba(22,19,15,.16);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s}
.mega::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.menu>li:hover .mega,.menu>li:focus-within .mega{opacity:1;visibility:visible;transform:none}
.menu>li.shut .mega{opacity:0;visibility:hidden;transform:translateY(8px)}
.mega a{display:flex;gap:12px;align-items:flex-start;padding:11px;border-radius:16px;transition:background-color .15s}
.mega a:hover{background:var(--coral-50)}
.mega b{display:block;color:var(--ink);font-weight:600;font-size:0.9375rem}
.mega small{display:block;color:var(--muted);font-size:0.8125rem;line-height:1.4}
.mega .feat{grid-column:3;grid-row:1/span 5;border-radius:18px;background:var(--ink);color:#C9C2BB;padding:18px;display:flex;flex-direction:column;gap:10px;font-size:0.875rem}
.mega .feat b{color:#fff;font-family:var(--display);font-size:1.1875rem;line-height:1.2;letter-spacing:-.02em}
.mega .feat .btn{margin-top:auto}
.mega.mini{left:0;width:320px;margin-left:0;grid-template-columns:1fr}
.nav-right{display:flex;align-items:center;gap:4px;font-size:0.9063rem;font-weight:600;flex:none}
.nav-right .t-s,.xs-login{display:none}
.phone{display:none;align-items:center;gap:7px;padding:9px 12px;color:var(--ink);font-weight:600;white-space:nowrap}
.phone svg{width:16px;height:16px;color:var(--coral-deep)}
@media (min-width:1360px){.phone{display:inline-flex}}
.burger{display:none}

/* ---------- Page hero (inner pages) ---------- */
.phero{position:relative;padding:40px 0 34px;overflow:hidden}
.phero::before{content:"";position:absolute;inset:-30% -10% auto;height:900px;pointer-events:none;
  background:radial-gradient(520px 420px at 8% 30%,rgba(255,176,152,.5),transparent 70%),radial-gradient(560px 460px at 92% 22%,rgba(255,196,170,.5),transparent 70%)}
.phero .wrap{position:relative;z-index:1}
.phero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center}
.phero-grid.solo{grid-template-columns:minmax(0,1fr)}
.phero-grid.solo>div{max-width:820px}
.phero-grid.solo .lead{max-width:720px}
.phero h1{font-size:clamp(2.25rem,5vw,4rem);font-weight:700;margin:22px 0 20px}
.phero .lead{font-size:clamp(1.0625rem,1.5vw,1.1875rem);max-width:600px;margin-bottom:28px}
.phero .ctas{justify-content:flex-start}
.reviewed{margin-top:6px;font-size:0.8125rem;color:var(--muted)}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:0.8438rem;color:var(--muted)}
.crumbs li{display:flex;align-items:center;gap:8px}
.crumbs li+li::before{content:"/";color:#B3AAA2}
.crumbs a{display:inline-block;padding:6px 0;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px;transition:color .2s,text-decoration-color .2s}
.crumbs a:hover{color:var(--ink);text-decoration-color:var(--coral)}
.crumbs [aria-current]{color:var(--ink);font-weight:600}

.nf-code{font-family:var(--display);font-weight:800;font-size:clamp(5.25rem,14vw,10.5rem);line-height:.9;letter-spacing:-.05em;color:var(--coral-deep)}

/* ---------- Link cards: icon, title, price or detail, arrow ---------- */
.jobs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.job{position:relative;display:flex;flex-direction:column;gap:8px;padding:24px;border-radius:var(--r-lg);background:var(--soft);border:1px solid var(--line);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.job .ic{margin-bottom:6px}
.job h3{font-size:1.25rem;line-height:1.15}
.job-price{font-weight:700;font-size:0.9375rem;color:var(--coral-deep)}
.job p:not(.job-price){font-size:0.9063rem;color:var(--muted)}
.job .go{margin-top:auto;padding-top:8px;font-weight:600;font-size:0.9063rem;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.job .go span{transition:transform .25s var(--ease)}
@media (hover:hover){.job:hover .go span{transform:translateX(4px)}}

/* ---------- Panels ---------- */
.panel-wrap{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
.panel{position:relative;max-width:1320px;margin:24px auto 0;border-radius:var(--r-xl);background:var(--panel);padding:100px 0;overflow:hidden;overflow:clip}
.panel.tint{background:linear-gradient(180deg,#FFF4F0 0%,#FFFFFF 70%)}
.panel.dark{background:var(--ink);color:#C9C2BB}
.panel.dark h2,.panel.dark h3{color:#fff}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:0.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--coral-deep);margin-bottom:16px}
.kicker::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--coral)}
.dark .kicker{color:var(--peach)}

/* ---------- Section header (one pattern for every section) ---------- */
.shead{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:20px 64px;align-items:end;margin-bottom:48px}
.shead h2,.faq-side h2,.cta h2{font-size:clamp(2rem,4.2vw,3.375rem)}
.shead-r{display:grid;gap:18px;justify-items:start}
.shead-r p{font-size:1.125rem;color:var(--muted);max-width:520px}
.dark .shead-r p{color:#A39A92}
.sub-h{font-size:clamp(1.375rem,2.2vw,1.75rem);margin-bottom:18px}

/* ---------- Clickable cards: one shared hover. Add new clickable card classes here. ---------- */
@media (hover:hover){
  .svc:hover,.ind:hover,.oneoff a:hover,.job:hover{transform:translateY(-4px);border-color:rgba(249,76,48,.55);box-shadow:0 0 0 1px rgba(249,76,48,.18),0 18px 40px rgba(249,76,48,.12)}
  .svc:hover .ic,.ind:hover .ic,.job:hover .ic{background:var(--coral);color:#1A0E0A}
}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.faq-side{position:-webkit-sticky;position:sticky;top:110px}
.faq-side h2{margin-bottom:16px}
.faq-side p{color:var(--muted);margin-bottom:24px}
.faq details{border-radius:var(--r-lg);background:var(--soft);border:1px solid var(--line);margin-bottom:10px;transition:background-color .25s,border-color .25s,box-shadow .25s}
.faq details[open]{background:#fff;border-color:var(--line-2);box-shadow:0 10px 30px rgba(22,19,15,.05)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;font-weight:600;font-size:1.0625rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::marker{content:""}
.pm{flex:none;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);position:relative;transition:transform .3s var(--ease),background-color .3s,border-color .3s}
.pm::before,.pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease)}
.pm::after{transform:rotate(90deg)}
.faq details[open] .pm{background:var(--coral);border-color:var(--coral);transform:rotate(180deg)}
.faq details[open] .pm::after{transform:rotate(0)}
.faq details p{padding:0 22px 20px;color:var(--muted)}

@media (prefers-reduced-motion:no-preference){
  .faq details[open] p{animation:faqIn .5s var(--ease)}
  .burger[open] nav{animation:navIn .4s var(--spring) both}
  .burger.closing nav{animation:navOut .16s ease-in both}
  .msub[open]>div{animation:faqIn .3s var(--ease)}
}
@keyframes faqIn{from{opacity:0;transform:translate3d(0,-6px,0)}}

/* ---------- Contact ---------- */
.cta{background:radial-gradient(120% 140% at 0% 0%,#FF7A5E 0%,#F94C30 45%,#D93A20 100%);color:#2A120B}
.cta-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.cta h2{color:#1A0E0A;margin-bottom:16px}
.cta .kicker{color:#1A0E0A}
.cta .kicker::before{background:#1A0E0A}
.cta .lead{font-size:1.1563rem;font-weight:500;color:#2A120B}
.ways{display:grid;gap:10px;margin-top:26px}
.way{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--r-md);background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);color:#1A0E0A;transition:background-color .2s}
.way:hover{background:rgba(255,255,255,.3)}
.way span{flex:none;width:40px;height:40px;border-radius:12px;background:#1A0E0A;color:#fff;display:grid;place-items:center}
.way span svg{width:19px;height:19px}
.way b{display:block;font-size:0.9688rem}
.way small{font-size:0.8438rem;opacity:.85}
.form{padding:28px;border-radius:var(--r-l);background:#fff;display:grid;gap:14px;box-shadow:0 30px 70px rgba(80,20,5,.25)}
.form h3{font-size:1.5rem}
.form .form-note{margin:-4px 0 2px;font-size:0.875rem;color:var(--muted)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.field{display:grid;gap:6px;min-width:0}
.field label{font-size:0.8125rem;font-weight:600;color:var(--ink)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid #D9D2CA;background:#fff;color:var(--ink);font-size:1rem;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:90px;resize:vertical}
.field select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316130F' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 4px rgba(249,76,48,.15)}
.sms{display:flex;gap:10px;font-size:0.75rem;line-height:1.5;color:var(--muted)}
.sms{cursor:pointer}
.sms input{margin:0;accent-color:var(--coral);flex:none;width:24px;height:24px;cursor:pointer}
/* initials avatar (reviewers, sample payroll rows): no faces of real or invented people */
.mono{display:inline-grid;place-items:center;flex:none;border-radius:50%;background:var(--coral-100);color:#8A2210;font-family:var(--text);font-weight:700;font-size:0.8125rem;line-height:1;letter-spacing:.02em}
.field .opt{font-weight:400;color:var(--muted)}
.field .hint{font-size:0.8125rem;line-height:1.45;color:var(--muted)}
/* F-06: coral focus ring vanishes on the coral panel, so focus is ink there */
.cta :focus-visible{outline-color:#1A0E0A}
.legal{font-size:0.75rem;color:var(--muted)} .legal a{text-decoration:underline}
.form .btn{width:100%}
.form .btn:disabled{opacity:.6;cursor:wait;transform:none}
.ts:empty{display:none}
.sent-msg{display:none;padding:12px;border-radius:12px;background:var(--green-50);color:var(--green);font-weight:600;font-size:0.875rem}
.form.sent .sent-msg{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{display:none;padding:10px 12px;border-radius:10px;background:#FDECEA;color:#9B2C1F;font-size:0.875rem;font-weight:600}
.err.show{display:block}
.field input[aria-invalid="true"]{border-color:#C2341C;box-shadow:0 0 0 3px rgba(194,52,28,.12)}

/* ---------- Footer ---------- */
footer{padding:72px 0 64px;color:var(--muted);font-size:0.9063rem}
.fgrid{display:grid;grid-template-columns:1.5fr repeat(4,minmax(0,1fr));gap:28px;margin-bottom:44px}
footer h3{font-family:var(--text);font-size:0.7813rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:12px;font-weight:600}
footer li{padding:4px 0}
footer a:hover{color:var(--ink)}
.mission-line{margin-top:12px;max-width:320px}
.f-contact{margin-top:14px;line-height:1.9}
.f-contact a{color:var(--ink);font-weight:600}
.social{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.social li{padding:0}
.social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--ink);transition:color .2s,border-color .2s,transform .2s var(--ease)}
.social svg{width:19px;height:19px}
@media (hover:hover){.social a:hover{color:var(--coral-deep,#C2341C);border-color:var(--coral);transform:translateY(-2px)}}

footer .logo,.score .link{min-height:44px;display:inline-flex;align-items:center}
/* Software we work in: grey until you hover, then brand color and what we use it for */
.sw{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;border-top:1px solid var(--line);padding:24px 0 22px}
.sw h3{margin:0}
/* Logo strips (homepage software row, footer): one line that drifts left, grey until hovered.
   site.js clones the set so the loop is seamless; without JS or with reduced motion the row just wraps. */
.lmq-row{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 420px}
.lmq{position:relative;flex:1;min-width:0;overflow:hidden;border-radius:12px}
.lmq.on{cursor:pointer}
.lmq:focus-visible{outline:none}
.lmq-row:has(.lmq:focus-visible){outline:3px solid var(--coral);outline-offset:4px;border-radius:12px}
.lmq.on{-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ltrack{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px;margin:0;padding:0;list-style:none}
.lmq.on .ltrack{flex-wrap:nowrap;width:max-content;gap:0}
.lmq.on .ltrack>*{flex:none;margin-right:44px}
.ltrack img{width:auto;filter:grayscale(1);opacity:.55;transition:opacity .25s,filter .25s}
.ltrack>:hover img,.ltrack>img:hover{filter:none;opacity:1}
@media (prefers-reduced-motion:no-preference){
  .lmq.on .ltrack{animation:lmq var(--dur,40s) linear infinite}
  .lmq.paused .ltrack,.lmq.off .ltrack{animation-play-state:paused}
  @media (hover:hover){.lmq:hover .ltrack{animation-play-state:paused}}
}
@keyframes lmq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.sw-list li{position:relative;display:grid;justify-items:center;padding:6px 0 0}
.sw-list img{height:20px}
.sw-list img.qb{height:26px}
.sw-list img.pc{height:16px}
.sw-list img.td{height:24px}
.sw-list span{font-size:0.75rem;font-weight:600;color:var(--muted);margin-top:5px;opacity:0;transition:opacity .25s}
.sw-list li:hover span{opacity:1}
@media (hover:none){.sw-list span{opacity:1}}
.sw-note{flex-basis:100%;font-size:0.75rem;color:var(--muted)}
.disc{border-top:1px solid var(--line);padding-top:22px;font-size:0.7813rem;display:grid;gap:6px}

/* ---------- Mobile action bar ---------- */
.mbar{display:none}

/* ============ Responsive ============ */
@media (max-width:1180px){
  .jobs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fgrid>div:first-child{grid-column:1/-1}
}
@media (min-width:600px) and (max-width:1023px){.msub>div{grid-template-columns:1fr 1fr}.burger nav .msub a.all{grid-column:1/-1}}
@media (max-width:1023px){
  .mainnav{display:none}
  .burger{display:block}
  .nav-right{margin-left:auto}
  .burger>summary{list-style:none;cursor:pointer;width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-content:center;gap:4px}
  .burger summary::-webkit-details-marker{display:none}
  .burger summary::marker{content:""}
  .burger summary i{display:block;width:16px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s var(--ease),opacity .2s}
  .burger[open] summary i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .burger[open] summary i:nth-child(2){opacity:0}
  .burger[open] summary i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .burger nav{transform-origin:calc(100% - 28px) -10px;position:absolute;left:0;right:0;top:calc(100% + 10px);padding:10px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 70px rgba(22,19,15,.16);display:grid;max-height:75vh;overflow:auto;overscroll-behavior:contain}
  .burger nav a{padding:14px 16px;border-radius:14px;font-weight:600;color:var(--ink)}
  .burger nav a:hover,.burger nav a[aria-current="page"]{background:var(--coral-50)}
  .msub summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:14px 22px 14px 16px;border-radius:14px;font-weight:600;color:var(--ink)}
  .msub summary:hover,.msub[open] summary{background:var(--coral-50)}
  .msub[open] .car{transform:rotate(225deg) translateY(-1px)}
  .msub>div{display:grid;padding:4px 0 6px 10px}
  .burger nav .msub a{padding:12px 16px;font-weight:500;font-size:0.9375rem;color:var(--body)}
  .burger nav .msub a.all{font-weight:600;color:var(--ink)}
  .faq-grid,.cta-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .shead{grid-template-columns:minmax(0,1fr);align-items:start}
  .faq-side{position:static}
  .phero-grid{grid-template-columns:minmax(0,1fr);gap:44px}
}
@media (max-width:767px){
  body{font-size:1rem}
  .ctas .btn{flex:1 1 100%}
  .phero{padding:24px 0 18px}
  .phero h1{margin:14px 0 16px}
  .phero .lead{font-size:1.0313rem;margin-bottom:22px}
  .panel{padding:56px 0;border-radius:24px;margin-top:12px}
  .shead{margin-bottom:28px}
  .btn-sm{min-height:44px}
  .jobs{grid-template-columns:minmax(0,1fr)}
  .job{padding:20px}
  .two{grid-template-columns:minmax(0,1fr)}
  .form{padding:22px}
  .faq summary{font-size:1rem;padding:18px}
  .faq details p{padding:0 18px 18px}
  .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  footer{padding-bottom:110px}
  .mbar{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:45;padding:10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:rgba(255,255,255,.97);border-top:1px solid var(--line);transform:translate3d(0,110%,0);transition:transform .3s var(--ease)}
  .mbar.show{transform:none}
  .mbar a{display:grid;place-items:center;min-height:48px;border-radius:999px;font-weight:600;font-size:0.9375rem;border:1px solid var(--line-2);color:var(--ink)}
  .mbar a.go{background:var(--coral);border-color:var(--coral);color:#1A0E0A}
}
@media (max-width:420px){
  :root{--gut:max(16px,env(safe-area-inset-left));--gut-r:max(16px,env(safe-area-inset-right))}
  .panel-wrap{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}
  .phero h1{font-size:2.125rem}
}
/* Keeps hyphenated names like 1040-NR or S-Corp on one line in headings */
.nb{white-space:nowrap}
/* Inline text links outside .prose: underlined, coral on light panels, inherit on dark */
.faq details p a,.card p a,.flow p a,.tline p a,.inc2 p a,.pb-note a,.note2 a,.pnote a,.phero .lead a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s}
.faq details p a,.note2 a,.pnote a,.pb-note a,.phero .lead a,.inc2 p a,.panel:not(.dark) .card p a,.panel:not(.dark) .flow p a,.panel:not(.dark) .tline p a{color:var(--coral-deep)}
@media (hover:hover){.faq details p a:hover,.note2 a:hover,.pnote a:hover,.phero .lead a:hover,.panel:not(.dark) .card p a:hover,.panel:not(.dark) .flow p a:hover{color:var(--ink)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media (max-width:767px){.crumbs a{display:inline-flex;align-items:center;min-height:44px;padding:0}.crumbs{margin-top:-8px}.link{min-height:44px}}
.lead,.shead-r p{text-wrap:pretty}
@keyframes navIn{from{opacity:0;transform:scale(.94) translate3d(0,-6px,0)}}
@keyframes navOut{to{opacity:0;transform:scale(.94) translate3d(0,-6px,0)}}

/* Press feedback lands on pointer-down, then springs back on release */
@media (prefers-reduced-motion:no-preference){
  .btn:active,.svc:active,.ind:active,.job:active,.way:active,a.pc:active,.jt [role="tab"]:active,.w2:active{transform:scale(.97);transition-duration:.08s}
  .toggle button:active,.tl [role="tab"]:active,.sn a:active,.filters button:active,.chips a:active{transform:scale(.96);transition:transform .08s}
}

/* The reader's own settings: less transparency, more contrast */
@media (prefers-reduced-transparency:reduce){.nav{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media (prefers-contrast:more){
  :root{--muted:#4A443E;--body:#26211C;--line:#A89F96;--line-2:#8C8279}
  .nav{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--line-2)}
}


@media (max-width:429px){.nav{gap:8px}.nav-right .btn{padding:9px 11px;font-size:0.8125rem}}
@media (max-width:389px){.nav-right .t-l{display:none}.nav-right .t-s{display:inline}}
@media (max-width:349px){.nav-right .btn{display:none}.burger nav .xs-login{display:block}.ind .nb{white-space:normal}}

/* F-13: the thank-you page already offers a call and a booking link, so the quote form isn't repeated there */
.ty #contact,.ty .mbar{display:none}
