/* ---------- shared inner ---------- */
.ptop{padding-top:clamp(48px,7vw,96px)}
.crumbs.dark{color:var(--muted)}
.phero-short .hero-in{min-height:min(48vh,460px)}
.svc-tools{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between}
.svc-tools .chips{margin:0}
.svc-search{margin:0;width:min(340px,100%)}
.mrow-img a{grid-template-columns:96px 110px minmax(0,1.2fr) minmax(0,1fr) 180px 32px}
.mthumb{width:96px;aspect-ratio:4/3;overflow:hidden;background:var(--rule-2)}
.mthumb img{width:100%;height:100%;object-fit:cover}
.svc-list .ms .mono{color:var(--muted);font-size:.78rem}
@media (max-width:900px){.mrow-img a{grid-template-columns:72px minmax(0,1fr) 28px}.mthumb{width:72px;grid-row:1/5}.mrow-img .mn,.mrow-img .mt,.mrow-img .ms,.mrow-img .mf{grid-column:2}.mrow-img .ic{grid-column:3}}
.svc-aside{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.incl{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px;padding-top:32px;border-top:1px solid var(--ink)}
.incl h3{margin-bottom:16px}
@media (max-width:640px){.incl{grid-template-columns:1fr}}
.who{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.whocard{display:grid;grid-template-columns:140px 1fr;gap:20px;align-items:center;text-decoration:none;border-top:1px solid var(--ink);padding-top:20px}
.whocard>span:last-child{display:flex;flex-direction:column;gap:4px}
.whoimg{aspect-ratio:4/5;overflow:hidden}
.whoimg img{width:100%;height:100%;object-fit:cover}
.whocard .pn{font-family:var(--serif);font-size:1.5rem}
.whocard .pr{color:var(--muted)}
.whocard .pq{font-size:.92rem}
.whocard:hover .pn{color:var(--gold-ink)}
@media (max-width:760px){.who{grid-template-columns:1fr}.whocard{grid-template-columns:96px 1fr}}
.smini-row{border-right:0;margin-right:0;padding-right:0;border-bottom:1px solid var(--rule)}

/* ---------- prices ---------- */
.pp-head{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}
.pp-basis{max-width:70ch;margin:16px 0 34px;color:var(--ink-2)}
.pp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px)}
.pp-sub{margin:32px 0 14px}
.pp-stages{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);margin-top:48px;padding-top:32px;border-top:1px solid var(--ink)}
.pp-stages h3{margin-bottom:12px}
.pp-stages p+h3{margin-top:24px}
@media (max-width:860px){.pp-grid,.pp-stages{grid-template-columns:1fr}}
.numlist{list-style:none;counter-reset:n;display:grid;gap:10px}
.numlist li{counter-increment:n;display:grid;grid-template-columns:34px 1fr}
.numlist li::before{content:counter(n,decimal-leading-zero);font-family:var(--mono);font-size:.8rem;color:var(--gold-ink);padding-top:4px}
.ledger tr.grp th{font-family:var(--mono);font-size:.78rem;font-weight:400;color:var(--gold-ink);padding-top:22px;border-bottom:1px solid var(--rule)}
.ledger tr.tot td{border-top:1px solid var(--ink);border-bottom:0;font-weight:700;font-size:1.05rem}

/* ---------- quote ---------- */
.qgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.qform fieldset{margin-bottom:24px}
.qform legend.h3{margin-bottom:16px}
.qh{margin:28px 0 16px;padding-top:24px;border-top:1px solid var(--rule)}
.qchecks{display:grid;gap:14px;margin:6px 0 10px}
.qres{position:sticky;top:96px}
.qres-in{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:clamp(22px,3vw,34px)}
.qres-top .mono{color:var(--muted)}
.qres-label{margin:18px 0 0;font-weight:600}
.qtotal{display:block;font-family:var(--serif);font-weight:330;font-size:clamp(2.8rem,5.5vw,4.4rem);line-height:1.05;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.02em}
.qsum{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:22px 0 8px;border-top:1px solid var(--ink)}
.qsum div{padding:12px 12px 12px 0;border-bottom:1px solid var(--rule)}
.qsum dt{font-family:var(--mono);font-size:.76rem;color:var(--muted)}
.qsum dd{margin:2px 0 0;font-family:var(--mono);font-size:1rem}
.qitems summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-weight:600;list-style:none}
.qitems summary::-webkit-details-marker{display:none}
.qitems[open] summary .ic{transform:rotate(45deg)}
.qactions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.qsend{margin-top:22px;padding-top:22px;border-top:1px solid var(--rule)}
#q-sent{margin-top:22px}
@media (max-width:960px){.qgrid{grid-template-columns:1fr}.qres{position:static}}
.saved-list{list-style:none}
.saved-list li{display:grid;grid-template-columns:120px 1fr auto auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--rule)}
.saved-list li.empty{display:block}
.saved-acts{display:flex;gap:16px}
.saved-acts .btn-text{background:none;border:0;border-bottom:1px solid currentColor;cursor:pointer;padding:0 0 2px;font-weight:600}
@media (max-width:640px){.saved-list li{grid-template-columns:1fr auto}.saved-list li>.mono:first-child{grid-column:1/3}.saved-acts{grid-column:1/3}}

/* ---------- people ---------- */
.memb{display:grid;gap:0;border-top:1px solid var(--ink)}
.memb div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}
.memb dt{font-family:var(--serif);font-size:1.2rem}
.memb dd{margin:0;color:var(--ink-2)}
@media (max-width:560px){.memb div{grid-template-columns:1fr;gap:4px}}
.pfacts{display:grid;gap:0;margin:20px 0 0;border-top:1px solid var(--rule)}
.pfacts div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:.97rem}
.pfacts dt{font-family:var(--mono);font-size:.76rem;color:var(--muted);padding-top:3px}
.pfacts dd{margin:0}
.dlg-body .h2{font-size:clamp(1.8rem,3vw,2.4rem)}
button.pcard{font:inherit;color:inherit}

/* ---------- stories ---------- */
.stories summary{align-items:center}
.st-sum{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.st-t{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.15}
.stories summary .example-tag{flex:none}
.st-body dl{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 0 18px}
.st-body dt{font-family:var(--mono);font-size:.78rem;color:var(--gold-ink);margin-bottom:6px}
.st-body dd{margin:0}
.acc .st-body{max-width:none}
.st-meta{color:var(--muted)}
@media (max-width:800px){.st-body dl{grid-template-columns:1fr}.stories summary .example-tag{display:none}}

/* ---------- guides + tools ---------- */
.gtools{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;margin-bottom:16px}
.gtools .field{margin:0}
.gtools select{min-width:180px}
.gcards{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;border-top:1px solid var(--ink)}
.gcard{position:relative;border-bottom:1px solid var(--rule)}
.gcard a{display:flex;flex-direction:column;gap:8px;padding:24px 64px 24px 0;text-decoration:none}
.gc-t{font-family:var(--serif);font-size:1.45rem;line-height:1.18}
.gc-s{color:var(--ink-2)}
.gcard a:hover .gc-t{color:var(--gold-ink)}
.gsave{position:absolute;right:0;top:24px}
.gsave[aria-pressed=true]{color:var(--gold-ink);border-color:var(--gold)}
.gcards .empty{grid-column:1/-1;list-style:none}
@media (max-width:760px){.gcards{grid-template-columns:1fr}}
.tool{scroll-margin-top:90px}
.qlist{list-style:none;counter-reset:q;display:grid;gap:4px}
.qlist li{counter-increment:q;border-bottom:1px solid var(--rule);padding:16px 0 4px}
.qlist legend::before{content:counter(q,decimal-leading-zero) " ";font-family:var(--mono);font-size:.8rem;color:var(--gold-ink);margin-right:6px}
.qlist .opt span{min-height:44px;padding:8px 18px}
.wc-out{margin-top:30px;padding:28px;background:var(--chalk);border-top:3px solid var(--gold)}
.meter{height:6px;background:var(--rule);margin:26px 0 10px;border-radius:3px;overflow:hidden}
.meter span{display:block;height:100%;width:0;background:var(--gold);transition:width .4s var(--ease)}
.pc-phase{margin-bottom:26px}
.pc-phase legend{font-family:var(--serif);font-size:1.35rem;padding-top:14px;width:100%;border-top:1px solid var(--ink)}
.pc-phase legend .mono{display:block;color:var(--gold-ink)}
.pc-item{padding:12px 0;border-bottom:1px solid var(--rule)}
.pc-item input:checked+span strong{text-decoration:line-through;text-decoration-color:var(--gold);text-decoration-thickness:2px}
.lpa-form legend{font-weight:600}
.lpa-out{border-top:1px solid var(--ink);padding-top:22px;margin-top:8px}
.narrow .h1{font-size:clamp(2.2rem,4.4vw,3.6rem)}
.g-by{margin-top:26px}
.g-author{display:inline-flex;gap:14px;align-items:center;text-decoration:none}
.g-av{width:56px;height:56px;border-radius:50%;overflow:hidden;flex:none}
.g-av img{width:100%;height:100%;object-fit:cover}
.keybox{background:var(--paper);border-top:3px solid var(--gold);padding:24px 28px;margin-bottom:40px}
.keybox h2{margin-bottom:14px;color:var(--gold-ink)}
.prose h2{font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:400;margin:40px 0 14px}
.prose ul{padding-left:1.2em;margin:0 0 1em;display:grid;gap:8px}
.prose p,.prose li{max-width:66ch}
.g-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.g-actions [aria-pressed=true]{border-color:var(--gold);color:var(--gold-ink)}
.g-cta .hero-cta{margin-top:20px}
.g-nav{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--ink);padding-top:20px}
.g-nav a{display:flex;flex-direction:column;gap:6px;text-decoration:none}
.g-nav a.r{text-align:right}
.g-nav .gl-t{font-family:var(--serif);font-size:1.2rem}
.g-nav a:hover .gl-t{color:var(--gold-ink)}

/* ---------- book ---------- */
.bookgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(28px,5vw,72px);align-items:start}
.bside{position:sticky;top:110px}
@media (max-width:960px){.bookgrid{grid-template-columns:1fr}.bside{position:static}}
.opts-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opts-col .opt span{min-height:56px}
@media (max-width:640px){.opts-col{grid-template-columns:1fr}}
.days{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}
.day{flex:none;width:78px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:1px solid #8E877A;background:#fff;border-radius:var(--r);cursor:pointer;color:var(--ink)}
.day b{font-family:var(--serif);font-size:1.5rem;font-weight:400}
.day[aria-checked=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.slot{min-height:46px;border:1px solid #8E877A;background:#fff;border-radius:var(--r);cursor:pointer;font-family:var(--mono);font-size:.9rem;color:var(--ink)}
.slot[aria-checked=true]{background:var(--gold);border-color:var(--gold);font-weight:500}
.slot:disabled{background:transparent;color:#6F695E;text-decoration:line-through;cursor:not-allowed;border-style:dashed}
.bnav{display:flex;gap:10px;justify-content:space-between;margin-top:30px;padding-top:22px;border-top:1px solid var(--rule)}
.bnav #b-next,.bnav #b-confirm{margin-left:auto}
.review{display:grid;border-top:1px solid var(--ink)}
.review div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}
.review dt{font-family:var(--mono);font-size:.78rem;color:var(--muted);padding-top:3px}
.review dd{margin:0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.review .btn-text{background:none;border:0;border-bottom:1px solid currentColor;cursor:pointer;padding:0;font-weight:600;font-size:.9rem;color:var(--gold-ink)}
@media (max-width:560px){.review div{grid-template-columns:1fr;gap:2px}}
.bstep legend[tabindex],.bstep h2[tabindex]{outline:none}

/* ---------- portal ---------- */
.portal-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.signin{background:var(--paper);border:1px solid var(--rule);padding:clamp(24px,3vw,40px);border-radius:var(--r)}
.signin .h2{margin-bottom:16px}
.pfeat{gap:18px;padding-top:10px}
@media (max-width:860px){.portal-top{grid-template-columns:1fr}}
.demo-head{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-end;margin-bottom:28px}
.demo-head .h2{margin:4px 0 8px}
.demo-prog{text-align:right}
.demo-prog b{display:block;font-family:var(--serif);font-weight:340;font-size:3rem;line-height:1}
.tracker{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--rule);margin-bottom:36px}
.tracker li{padding:14px 12px 0 0;border-top:3px solid transparent;margin-top:-2px;display:flex;flex-direction:column;gap:4px}
.tracker li b{font-family:var(--serif);font-weight:400;font-size:1.05rem;line-height:1.2}
.tracker li.done{border-top-color:var(--ink)}
.tracker li.now{border-top-color:var(--gold)}
.tracker li.next{color:var(--muted)}
.tracker .mono{color:var(--gold-ink)}
@media (max-width:860px){.tracker{grid-template-columns:repeat(2,1fr);gap:0 12px}}
.demo-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
.dpanel{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:24px}
.dpanel .h3{margin-bottom:14px}
@media (max-width:860px){.demo-grid{grid-template-columns:1fr}}
.todo{padding:10px 0;border-bottom:1px solid var(--rule-2)}
.docs{list-style:none}
.docs li{display:grid;grid-template-columns:24px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--rule-2)}
.docs .btn-text{background:none;border:0;border-bottom:1px solid currentColor;cursor:pointer;padding:0;font-weight:600}
.drop{position:relative;margin-top:18px;border:1px dashed #8E877A;border-radius:var(--r);padding:18px;background:var(--chalk)}
.drop.over{border-color:var(--gold);background:var(--gold-soft)}
.drop label{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.drop:focus-within{outline:3px solid var(--gold);outline-offset:2px}
.thread{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow:auto;padding-right:4px;margin-bottom:16px}
.msg{max-width:88%;padding:12px 14px;border-radius:var(--r);background:var(--chalk)}
.msg p{margin:4px 0 0}
.msg .mono{color:var(--muted);font-size:.74rem}
.msg.me{align-self:flex-end;background:var(--ink);color:var(--paper)}
.msg.me .mono{color:var(--on-dark-2)}
.msgf .btn{margin-top:10px}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,96px)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.hours th{font-weight:500}
.hours tr.today th,.hours tr.today td{font-weight:700}
.hours tr.today{background:var(--paper)}
.today-l{font-weight:400;color:var(--gold-ink);margin-left:6px}
.hours .sub{display:block;font-weight:400;color:var(--muted);font-size:.9rem}
.addr{font-style:normal;font-family:var(--serif);font-size:1.5rem;line-height:1.3;margin-top:18px}
.map{margin:0}
.map svg{width:100%;height:auto;border:1px solid var(--rule)}
.map figcaption{margin-top:8px}

/* ---------- legal ---------- */
.legal-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(28px,5vw,80px)}
.legal-nav{display:flex;flex-direction:column;border-top:1px solid var(--ink)}
.legal-nav a{padding:10px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-size:.96rem}
.legal-nav a[aria-current]{color:var(--gold-ink);font-weight:600}
.legal section{scroll-margin-top:100px;padding-bottom:20px}
.legal section h2:first-child{margin-top:0}
.legal section+section{border-top:1px solid var(--rule);padding-top:36px;margin-top:20px}
@media (max-width:860px){.legal-grid{grid-template-columns:1fr}.legal-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:0 16px;border-top:0}.legal-nav a{border-bottom:0;padding:6px 0;color:var(--gold-ink);text-decoration:underline}}
