/* ralphlivingstoncpa.com — gallery rlcpa_site_gallery_01 A, hero from gallery 05: I (light, default) and L (dark).
   Theme: <html data-theme="dark"> (saved as localStorage themePreference, same key as the owner's other sites). */
@font-face{font-family:SerifV;src:url(/assets/fonts/SourceSerif4-400.woff2) format("woff2");font-weight:200 900;font-display:swap}
:root{
  --plum:#a12480;--plum-d:#7d1b63;--plum-soft:#d9a9cb;--gray:#8f8a86;--dark:#2b2b31;
  --bg:#fff;--ink:#222;--muted:#5d6470;--line:#e3e0e2;--soft:#f6f4f5;--card:#fff;--card-hover:#faf7f2;
  --r-btn:10px;--r-card:12px;--r-field:8px;   /* shapes: buttons / cards + panels / form fields */
  --paper:url(/assets/paper-grain.svg),#f7eef4;--rule:rgba(60,50,45,.18);--wm:.11;--field:#cfcacd;
}
[data-theme="dark"]{
  --bg:#18141a;--ink:#f3eee6;--muted:#b3abb1;--line:#3a333b;--soft:#1f1a21;--card:#1f1a21;--card-hover:#262028;
  --paper:linear-gradient(rgba(24,20,26,.93),rgba(24,20,26,.93)),url(/assets/paper.svg);--rule:rgba(243,238,230,.16);--wm:.05;--field:#4a424a;
  color-scheme:dark;
}
*{box-sizing:border-box} body{margin:0;font:16px/1.6 "Open Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
img{display:block;max-width:100%;height:auto} a{color:inherit}
p,li{text-wrap:pretty} h1,h2,h3{text-wrap:balance}   /* no one-word last lines */
h1,h2,h3{font-family:SerifV,Georgia,serif;font-weight:400;line-height:1.2;margin:0}
.i{width:18px;height:18px;flex:none} .wrap{max-width:1160px;margin:0 auto;padding:0 28px} .narrow{max-width:820px}

/* header (gallery 17): on the letterhead paper, logo centred, menu panel top-left */
.hd{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20}
.hd .wrap{max-width:none;padding:0 40px;height:104px;display:grid;grid-template-columns:1fr auto 1fr;gap:40px;align-items:center}
.hl,.hr{display:flex;align-items:center;gap:12px} .hl{gap:8px} .hr{justify-content:flex-end}
.logo{flex:none} .logo img{height:76px;width:auto;max-width:none;mix-blend-mode:multiply} [data-theme="dark"] .logo img{mix-blend-mode:normal;filter:brightness(1.35)}
.hamb{width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink);border-radius:10px;cursor:pointer;margin-left:-10px}
.hamb:hover{background:rgba(0,0,0,.05)} .hamb .i{width:24px;height:24px} .btn{white-space:nowrap}
.tel{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;font-size:16px;white-space:nowrap;min-height:44px;padding:0 4px}
.tel .i{width:18px;height:18px;color:var(--muted)} .tel:hover span{text-decoration:underline}
.themebtn{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;flex:none;margin-right:4px}
.themebtn:hover{background:rgba(0,0,0,.05)} [data-theme="dark"] .themebtn:hover,[data-theme="dark"] .hamb:hover{background:rgba(255,255,255,.08)} .themebtn .i{width:20px;height:20px}
.drawer{position:fixed;inset:96px auto auto 16px;margin:0;width:340px;max-height:calc(100vh - 112px);overflow:auto;background:var(--card);color:var(--ink);
  border:1px solid var(--rule);border-radius:var(--r-card);box-shadow:0 12px 32px rgba(0,0,0,.18);padding:12px;font-size:15px}
.drawer details{border-bottom:1px solid var(--line)} .drawer summary{list-style:none;cursor:pointer;padding:12px;font-weight:600;display:flex;justify-content:space-between;align-items:center}
.drawer summary::-webkit-details-marker{display:none} .drawer summary .i{width:16px;height:16px;color:var(--muted)}
.drawer details a{display:block;padding:8px 12px 8px 24px;text-decoration:none;color:var(--muted)} .drawer details a:hover{color:var(--ink)}
.drawer>a.lnk{display:block;padding:12px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)} .drawer .btn{width:100%;margin-top:12px}
@media (max-width:760px){
  .hd .wrap{grid-template-columns:auto auto 1fr auto;height:76px;gap:8px;padding:0 16px}
  .hl{display:contents} .hamb{grid-column:1;grid-row:1;margin-left:-8px} .logo{grid-column:2;grid-row:1} .logo img{height:44px}
  .tel{grid-column:3;grid-row:1;justify-self:center;font-size:14px} .hr{grid-column:4;gap:4px} .hr .hc{display:none}
  .hr .hb{padding:12px} .hb span{display:none} .hb .i{width:20px;height:20px} .themebtn{margin-right:0}
  .drawer{inset:84px 8px auto 8px;width:auto;max-height:calc(100vh - 100px)}
}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r-btn);padding:12px 20px;font-weight:600;text-decoration:none;font-size:15px;font-family:"Open Sans",sans-serif;border:0;cursor:pointer;min-height:44px}
.btn{transition:background-color .15s ease,border-color .15s ease,color .15s ease} .btn.p{background:var(--plum);color:#fff} .btn.p:hover{background:var(--plum-d)} .btn.o{border:1px solid #fff;color:#fff;background:transparent} .btn.d{background:#111;color:#fff} .btn.l{border:1px solid var(--ink);color:var(--ink);background:transparent}

/* home hero: the letterhead (I light / L dark) */
.hero{background:var(--bg);color:var(--ink);padding:84px 0 88px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;right:-60px;top:50%;width:620px;height:620px;transform:translateY(-50%) rotate(-8deg);
  background:url(/assets/logo-400.png) center/contain no-repeat;opacity:var(--wm);filter:grayscale(1);pointer-events:none}
[data-theme="dark"] .hero::before{filter:grayscale(1) brightness(2)}
.hero .grid2{display:grid;grid-template-columns:340px 1fr;align-items:center;position:relative}
.sheet{border-right:1px solid var(--rule);padding:24px 56px 24px 0;text-align:center}
.sheet img{width:260px;margin:0 auto 16px;mix-blend-mode:multiply} [data-theme="dark"] .sheet img{mix-blend-mode:normal;filter:brightness(1.35)}
.sheet p{margin:0;font-size:12px;color:var(--muted)}
.side{padding-left:64px;text-align:center}
.slides{display:grid} .slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .6s} .slide.on{opacity:1;visibility:visible}
.slide h1{font-family:SerifV,Georgia,serif;font-weight:300;font-size:58px;line-height:1.06;letter-spacing:-.015em;margin:0 0 24px}
.hero .btn.o{border-color:var(--ink);color:var(--ink)} [data-theme="dark"] .hero .btn.o{border-color:rgba(243,238,230,.5)}
.dots{display:flex;gap:4px;justify-content:center;margin:20px 0 12px} .dots button{width:40px;height:40px;border:0;background:transparent;padding:0;cursor:pointer;display:grid;place-items:center}
.dots button::after{content:"";width:10px;height:10px;border-radius:50%;border:1px solid var(--ink)} .dots button.on::after{background:var(--ink)}
.herobtns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* "Make an Appointment" band (About, Contact): letterhead paper */
.notice{background:var(--paper);color:var(--ink);text-align:center;padding:56px 0} .notice h2{font-size:32px;margin-bottom:8px} .notice p{margin:0 0 24px;color:var(--muted)}
.notice .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap} .notice .btn.d{background:var(--plum)} .notice .btn.d:hover{background:var(--plum-d)}

/* notice popover on every page (gallery 08 A) */
.fab{position:fixed;right:24px;bottom:24px;z-index:40;display:inline-flex;align-items:center;gap:10px;background:var(--plum);color:#fff;border:0;border-radius:var(--r-btn);
  padding:12px 20px;min-height:48px;font:600 15px "Open Sans",sans-serif;box-shadow:0 4px 12px rgba(0,0,0,.16);cursor:pointer;transition:background-color .15s ease}
.fab:hover{background:var(--plum-d)}
.npop{position:fixed;inset:auto 24px 88px auto;margin:0;width:340px;max-width:calc(100vw - 32px);background:var(--card);color:var(--ink);border:1px solid var(--rule);
  border-radius:var(--r-card);box-shadow:0 12px 32px rgba(0,0,0,.18);padding:24px}
.npop h2{font-size:22px;margin:0 0 4px;padding-right:36px} .npop p{margin:0 0 16px;color:var(--muted)}
.nrow{display:grid;gap:8px} .nrow .btn.o{border-color:var(--ink);color:var(--ink)}
.nx{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;background:transparent;color:var(--muted);border-radius:50%;display:grid;place-items:center;cursor:pointer}
.nx:hover{background:var(--soft)}

/* Calendly pop-up (gallery 20 A). Calendly draws its 680px card with 40px side margins: the frame is 80px wider and clipped to the card, so
   the card (and its "Powered by" ribbon) sits flush with the pop-up's edges. Close button sits outside the corner (desktop) / in a top bar (phone). */
.calpop{width:min(680px,92vw);height:min(var(--ch,780px),88vh);max-width:none;max-height:none;padding:0;border:0;background:transparent;overflow:visible;transition:height .2s ease}
.calpop[data-step="book"]{height:88vh}
.calpop::backdrop{background:rgba(20,10,20,.55)}
.calpop iframe{width:calc(100% + 80px);margin-left:-40px;height:100%;border:0;display:block;clip-path:inset(0 40px round var(--r-card));background:transparent}
.calx{position:absolute;top:0;right:-56px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#222;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2);z-index:1}
[data-theme="dark"] .calpop iframe{filter:invert(.88) hue-rotate(180deg) brightness(1.15) contrast(.85)} [data-theme="dark"] .calx{background:#2b252d;color:#f3eee6}
@media (max-width:760px){.calpop{width:100vw;height:100dvh;max-height:none;background:var(--card)}
  .calpop:not([open]){display:none} .calpop[data-step="book"]{height:100dvh}
  .calx{position:absolute;top:8px;left:8px;right:auto} .calpop iframe{width:100%;margin:0;clip-path:none;height:100%}}   /* × top-left so Calendly's ribbon keeps the top-right corner */

/* tax-season banner (config.ini [banner]); gallery 23 A: plum band, title vertically centred against the notices */
.bnr{background:var(--plum);color:#fff;padding:28px 0} .bnr .wrap{display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:center}
.bnr .h{display:flex;gap:12px;align-items:center} .bnr .h .i{width:28px;height:28px} .bnr h2{font-size:28px;font-weight:400;margin:0}
.bnr ul{margin:0;padding:0;list-style:none;display:grid;gap:8px} .bnr li{padding-left:16px;border-left:2px solid rgba(255,255,255,.5);line-height:1.5}
@media (max-width:760px){.bnr .wrap{grid-template-columns:1fr;gap:12px}}

/* alternating section backgrounds (alternate() in build.py; white hero, gallery 25) */
main>.tint{background:var(--soft)!important;border-top:0!important;border-bottom:0!important} main>.plain{background:var(--bg)!important;border-top:0!important;border-bottom:0!important}
.bnr[hidden]{display:none}

/* service cards */
.serv{padding:80px 0} .serv h2{font-size:36px;text-align:center} .sub2{color:var(--muted);margin:8px 0 40px;text-align:center}
.lead{font-size:18px;color:var(--muted);max-width:820px;margin:0 auto 40px;text-align:center}
.grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);text-align:left} .grid.g3{grid-template-columns:repeat(3,1fr);border-top:0;gap:16px}
.card{padding:28px 24px 32px;text-decoration:none;display:block;border-right:1px solid var(--line);transition:background-color .15s ease} .grid>.card:last-child{border-right:0}
.g3 .card{border:1px solid var(--line);border-radius:var(--r-card);padding:24px}
.card:hover{background:var(--card-hover)}
.card .i{width:24px;height:24px;color:var(--muted)} .card h3{font-size:22px;margin:16px 0 8px} .card p{margin:0;color:var(--muted);font-size:15px}
.card .tag{font-size:13px;color:var(--muted)} .g3 .card h3{margin:4px 0 0}

/* hours / payments / get in touch (gallery 18 A + 19 payment rows, ported from lab/info) */
.iA{background:var(--paper);padding:72px 0;border-top:1px solid var(--rule)} .iA .wrap{display:grid;grid-template-columns:1fr 1fr 1fr}
.iA .c{padding:0 40px;border-left:1px solid var(--rule)} .iA .c:first-child{padding-left:0;border-left:0} .iA .c:last-child{padding-right:0}
.iA h2{font-family:SerifV,serif;font-weight:300;font-size:28px;line-height:1.2;margin:0 0 20px}
.iA table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;margin-bottom:24px} .iA td{padding:8px 0;border-bottom:1px solid var(--rule)} .iA td+td{text-align:right;color:var(--muted)}
.iA tr.today td{font-weight:600;color:var(--ink)} .iA p{margin:0 0 12px;color:var(--muted)} .iA ul{list-style:none;padding:0;margin:0 0 12px} .iA li{padding:8px 0;border-bottom:1px solid var(--rule)}
.iA .note{font-size:14px} @media (max-width:860px){.iA .wrap{grid-template-columns:1fr;gap:40px} .iA .c{padding:0;border:0}} .iA ul.pay{display:grid;margin:0 0 12px} .iA ul.pay li{border:0;border-bottom:1px solid var(--rule);padding:8px 0;display:grid;grid-template-columns:48px 1fr;column-gap:12px;align-items:center}
 .iA ul.pay .i,.iA ul.pay .bi{grid-row:1/3;justify-self:center} .iA ul.pay .i{width:24px;height:24px;color:var(--muted)} .iA ul.pay .bi{width:28px;height:28px}
 .iA ul.pay .bi.wide{width:48px;height:48px;margin:-12px 0} .iA ul.pay b{font-weight:600;font-size:15px} .iA ul.pay small{font-size:13px;color:var(--muted)} .iA ul.pay li:not(:has(small)) b{grid-row:1/3}
 [data-theme=dark] .iA ul.pay .bi{filter:brightness(1.6)}

/* clickable Zelle / Venmo rows + their QR panels (gallery 26) */
.iA ul.pay li.zl{padding:0;display:block} .iA ul.pay li.zl>button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;padding:8px 0;display:grid;grid-template-columns:48px 1fr auto;column-gap:12px;align-items:center;min-height:44px}
.iA ul.pay li.zl>button:hover b{text-decoration:underline} .iA ul.pay li.zl>button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.iA ul.pay li.zl>button>.i:last-child{width:20px;height:20px;color:var(--muted);grid-row:1;grid-column:3;justify-self:end} .iA ul.pay li.zl>button>b{grid-row:1;grid-column:2}
.zpop{position:fixed;inset:auto;margin:0;width:300px;max-width:calc(100vw - 16px);background:var(--card);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-card);
  box-shadow:0 12px 32px rgba(0,0,0,.18);padding:20px;flex-direction:column;gap:12px;align-items:center;text-align:center}
.zpop:popover-open{display:flex} .zpop img{width:180px;height:180px;object-fit:contain;background:#fff;padding:8px;border-radius:8px} .zpop .row a{color:inherit;text-underline-offset:3px}
.zpop p{margin:0;font-size:14px;color:var(--muted)} .zpop .row{font-weight:600;overflow-wrap:anywhere} .zpop .btn{min-height:40px;padding:8px 14px}

/* inner pages: the same letterhead paper as the hero */
.band{background:var(--bg);color:var(--ink);padding:64px 0;text-align:center;position:relative}
.band h1{font-family:SerifV,Georgia,serif;font-weight:300;font-size:46px;line-height:1.1;letter-spacing:-.015em}
.eb{font-size:16px;color:var(--muted);margin:0 0 12px}
.prose{padding:56px 0 72px} .prose p,.prose li{font-size:18px;line-height:1.7} .prose p{margin:0 0 16px}
.prose h2{font-size:28px;margin:32px 0 12px} .prose .eyebrow{font-size:24px;margin:32px 0 8px}
.prose .sub{margin-top:28px} .prose ul,.prose ol{margin:0 0 24px;padding-left:24px} .prose li{margin:4px 0}
.prose a{color:var(--ink);text-underline-offset:3px}

/* structured inner pages (sections, check grids, cards, call-to-action) */
.sx{padding:64px 0 80px} .sx p{font-size:17px;line-height:1.7;margin:0 0 16px}
.sx .lead2{font-family:SerifV,Georgia,serif;font-weight:300;font-size:28px;line-height:1.4;margin:0 0 40px;color:var(--ink)}
.sx .cap{font-weight:600;margin:24px 0 12px}
.checks{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:8px 32px}
.checks.one{grid-template-columns:1fr;margin:16px 0 0;gap:4px}
.checks li{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:16px;line-height:1.5}
.checks.one li{border:0;padding:4px 0;font-size:15px} .checks .i{width:16px;height:16px;flex:none;margin-top:4px;color:var(--muted)}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:24px 0 32px}
.dcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:24px}
.dgrid ~ p,.sbody>.dcard{margin-top:0} .dcard h3{font-size:22px;margin:0 0 8px} .dcard p{font-size:15px;color:var(--muted);margin:0}
.pq{margin:0 0 32px;padding:0 0 0 24px;border-left:2px solid var(--ink)} .pq figcaption{font-size:14px;color:var(--muted);margin-bottom:4px}
.pq blockquote{margin:0;font-family:SerifV,Georgia,serif;font-weight:300;font-size:30px;line-height:1.3}
.sx .closing{margin:40px 0 0;padding-top:32px;border-top:1px solid var(--line);font-family:SerifV,Georgia,serif;font-weight:300;font-size:22px;line-height:1.45}
/* editorial layout (gallery 10 A): section heading in a left column, content on the right */
.sx-a .lead2{max-width:900px} .sx-a .intro-rest{margin-bottom:24px} .sx-a .intro-rest.cols{column-count:2;column-gap:48px} .sx-a .intro-rest.cols>*{break-inside:avoid}
.sx-a .sec{display:grid;grid-template-columns:280px 1fr;gap:48px;padding:40px 0;border-top:1px solid var(--line)}
.sx-a .sec>h2{font-size:30px;line-height:1.2;position:sticky;top:104px;align-self:start}
.sx-a .sbody>:last-child{margin-bottom:0}
@media (max-width:860px){ .sx-a .sec{grid-template-columns:1fr;gap:16px} .sx-a .sec>h2{position:static} .sx-a .intro-rest.cols{column-count:1} .checks{grid-template-columns:1fr} .sx .lead2{font-size:24px} }

/* FAQ links / numbers */
.faql{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)} .faql li{border-bottom:1px solid var(--line);padding:4px 0}
.faql a{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 0;text-decoration:none;font-size:17px;min-height:44px}
.faql a:hover span:first-child{text-decoration:underline} .faql .i{width:16px;height:16px;color:var(--muted);flex:none}
.faql .num{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap} .faql small{display:block;color:var(--muted);font-size:14px;margin:-6px 0 8px}

/* /pay page: Zelle + Venmo cards (same parts as the home panels), then check / card as ruled rows */
.pcs{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:880px;margin:0 auto}
.pc{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:28px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.pc header{display:flex;align-items:center;gap:12px;align-self:stretch;justify-content:center;padding-bottom:12px;border-bottom:1px solid var(--line)}
.pc header .bi{width:28px;height:28px} .pc header .bi.wide{width:64px;height:64px;margin:-18px -6px} .pc h2{font-size:28px}
.pc img{width:200px;height:200px;object-fit:contain;background:#fff;padding:8px;border-radius:8px}
.pc .how{margin:0;color:var(--muted);font-size:15px;max-width:300px} .pc .addr{margin:0;font-weight:600;overflow-wrap:anywhere} .pc .addr a{color:inherit;text-underline-offset:3px}
[data-theme="dark"] .pc .bi{filter:brightness(1.6)}
.payrest{list-style:none;margin:40px auto 0;padding:0;max-width:880px;border-top:1px solid var(--line)}
.payrest li{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.payrest .i{width:24px;height:24px;color:var(--muted);justify-self:center;margin-top:2px} .payrest b{display:block;font-size:17px} .payrest span{color:var(--muted)}
@media (max-width:760px){.pcs{grid-template-columns:1fr}}

/* standard fees (gallery 06 A, lab/fees/gen.py F1c ported 1:1) */
.f1{padding:64px 0 80px} .rate{max-width:860px;margin:0 auto 56px} .big{font-family:SerifV,serif;font-weight:300;font-size:36px;line-height:1.25;text-align:center;margin:0 0 28px}
.big strong{font-weight:500} .rl{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)} .rl li{padding:12px 4px;border-bottom:1px solid var(--line);color:var(--muted)}
.pks{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start} .pk{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:28px 24px}
.pk.mid{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)} .pk h2{font-size:28px;margin-bottom:12px}
.pk .plead{font-family:SerifV,serif;font-weight:300;font-size:22px;line-height:1.3;margin:0 0 8px} .pk .rest{color:var(--muted);font-size:15px;margin:0 0 16px}
.pk ul{list-style:none;padding:16px 0 0;margin:0;border-top:1px solid var(--line)} .pk li{display:flex;gap:8px;padding:4px 0;font-size:15px} .pk li .i{color:var(--muted);width:16px;height:16px;margin-top:4px}
.close{max-width:760px;margin:56px auto 0;text-align:center;color:var(--muted)} @media (max-width:900px){.pks{grid-template-columns:1fr}}

/* contact */
.contact{padding:56px 0 72px} .contact .wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:56px} .contact .lead{margin:0 0 24px;text-align:left}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px} .form label{display:grid;gap:8px;font-size:14px;font-weight:600}
.form label:nth-of-type(n+3){grid-column:1/-1} .form input,.form textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--card);border:1px solid var(--field);border-radius:var(--r-field);padding:12px;min-height:44px}
.form input:focus,.form textarea:focus{outline:2px solid var(--ink);outline-offset:1px;border-color:var(--ink)}
.form .btn{justify-self:start} .form .hp{position:absolute;left:-9999px} .msg{grid-column:1/-1;margin:0;font-weight:600} .msg[data-ok="false"]{color:#b3261e} [data-theme="dark"] .msg[data-ok="false"]{color:#f2b8b5}
.contact aside h2{font-size:24px;margin-bottom:12px} .contact aside p{margin:0 0 12px;color:var(--muted)}
.contact aside a{display:flex;gap:8px;align-items:center;text-decoration:none;margin-bottom:8px}

/* IRS News (gallery 22 B, ported from lab/irs/shot.mjs) */
.irs{padding:72px 0;background:var(--bg);border-top:1px solid var(--line)} .irs h2{font-size:32px;margin-bottom:24px} .irs .g{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
      .irs a.c{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:var(--r-card);padding:20px;text-decoration:none;background:var(--card);min-height:180px} .irs a.c:hover{background:var(--card-hover)}
      .irs .d{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums} .irs .t{font-family:SerifV,serif;font-size:19px;line-height:1.3;flex:1} .irs .s{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)} .irs .s .i{width:14px;height:14px}
      @media (max-width:900px){.irs .g{grid-template-columns:1fr 1fr}} @media (max-width:560px){.irs .g{grid-template-columns:1fr}}

/* footer: letterhead foot (gallery 11 A) */
.fA{background:var(--paper);color:var(--ink);padding:64px 0 96px;border-top:1px solid var(--rule)}   /* bottom room: the floating notice button */
.fA .top{display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:center;padding-bottom:40px;border-bottom:1px solid var(--rule)}
.fA img{height:88px;width:auto;mix-blend-mode:multiply} [data-theme="dark"] .fA img{mix-blend-mode:normal;filter:brightness(1.35)}
.fA .lines p{margin:0;font-family:SerifV,serif;font-weight:300;font-size:22px;line-height:1.5} .fA .lines a{text-decoration:none} .fA .lines a:hover{text-decoration:underline}
.fA .lines span{margin:0 12px;color:var(--muted)} .fA .act{display:flex;gap:12px}
.fA .bot{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:24px;font-size:14px;color:var(--muted);flex-wrap:wrap}
.fA nav{display:flex;gap:24px;flex-wrap:wrap} .fA nav a{text-decoration:none;color:var(--ink);min-height:40px;display:inline-flex;align-items:center} .fA nav a:hover{text-decoration:underline} .fA .bot p{margin:0}
@media (max-width:860px){.fA .top{grid-template-columns:1fr;text-align:center;justify-items:center;gap:24px} .fA .lines p{font-size:18px} .fA .bot{justify-content:center;text-align:center} .fA nav{justify-content:center}}

@media (max-width:960px){ .grid{grid-template-columns:repeat(2,1fr)} .grid>.card:nth-child(2n){border-right:0} .grid>.card{border-bottom:1px solid var(--line)} .grid.g3{grid-template-columns:repeat(2,1fr)} .hero .grid2{grid-template-columns:280px 1fr} .side{padding-left:40px} .slide h1{font-size:44px} }
@media (max-width:760px){
  .hero{padding:40px 0 48px;text-align:center} .hero .grid2{grid-template-columns:1fr} .sheet{border-right:0;border-bottom:1px solid var(--rule);padding:0 0 24px;margin-bottom:24px}
  .sheet img{width:150px} .side{padding-left:0} .slide h1{font-size:34px} 
  .band h1{font-size:32px} .grid,.grid.g3{grid-template-columns:1fr} .grid>.card{border-right:0} .contact .wrap{grid-template-columns:1fr} 
  .form{grid-template-columns:1fr} .form label{grid-column:1/-1} .prose p,.prose li{font-size:17px}
  .fab{right:16px;bottom:16px} .npop{inset:auto 16px 80px 16px;width:auto}
}
@media (prefers-reduced-motion:reduce){ .slide{transition:none} }

/* narrow phones (2026-11-04): nothing may widen the page */
html,body{overflow-x:clip}
.sheet p,.fA .lines p,.contact aside a,.faql a,.prose,.sx p{overflow-wrap:anywhere}
.form .hp{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
.hero .grid2>*,.fA .top>*,.info .wrap>*,.iA .wrap>*{min-width:0}
@media (max-width:400px){
  .hd .wrap{gap:4px;padding:0 12px} .hamb{margin-left:-6px} .logo img{height:40px}
  .tel{font-size:13px;gap:4px;padding:0} .tel .i{width:16px;height:16px} .themebtn{width:40px;height:40px} .hr .hb{padding:10px}
  .fA .lines p{font-size:16px} .fA .lines span{margin:0 6px}
}
@media (max-width:340px){ .tel span{display:none} .tel{justify-self:end} }
.side,.slides,.slide{min-width:0} .slide .btn{white-space:normal;text-align:center} .slide h1{overflow-wrap:break-word}
