/* Base and shared components. Tokens are set per site in :root. */
@view-transition { navigation: auto; }
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:140px}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-b);font-size:16px;line-height:1.6;overflow-x:hidden}
img,svg{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3,h4{font-family:var(--font-h);font-weight:400;line-height:1.08;margin:0 0 .5em;letter-spacing:-.01em}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus,var(--accent));outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100000;background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:8px;text-decoration:none}
.skip:focus{top:60px}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 20px}
@media(min-width:900px){.wrap{padding:0 40px}}
.small{font-size:.875rem;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.75em 1.4em;border-radius:var(--btn-r,999px);border:2px solid transparent;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.2;transition:background .2s,color .2s,border-color .2s,transform .25s}
.btn-primary{background:var(--primary);color:var(--on-primary,#fff)}
.btn-primary:hover{background:var(--primary-d,var(--ink))}
.btn-accent{background:var(--accent);color:var(--on-accent,var(--ink))}
.btn-ghost{background:transparent;border-color:currentColor}
.btn-ghost:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.btn svg{width:18px;height:18px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;min-width:0}
.field label,.field legend{font-weight:600;font-size:.95rem}
.field input,.field select,.field textarea{min-height:48px;padding:12px 14px;border:1.5px solid var(--line,color-mix(in srgb,var(--ink) 25%,transparent));border-radius:var(--in-r,10px);background:var(--surface);font-size:16px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 30%,transparent);outline-offset:1px}
.field [aria-invalid="true"]{border-color:#B3261E}
.err{color:#B3261E;font-size:.875rem;margin:0}
fieldset{border:0;margin:0;padding:0;min-width:0}
.grid2{display:grid;gap:0 16px;grid-template-columns:minmax(0,1fr)}
@media(min-width:640px){.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;margin-bottom:16px}
.check input{width:22px;height:22px;margin-top:2px;accent-color:var(--primary);flex:none}
.thanks{padding:28px;border-radius:var(--card-r,16px);background:var(--surface);border:1.5px solid var(--primary);color:var(--ink)}
.thanks-mark{color:var(--primary);display:block;margin-bottom:10px}
.thanks h3{font-size:1.6rem}
/* reveals: visible by default, hidden only after JS adds .reveals */
.reveals [data-reveal]:not([data-stagger]){opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveals [data-reveal].is-in:not([data-stagger]){opacity:1;transform:translateY(0px)}
.reveals [data-stagger]>*{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.reveals [data-stagger].is-in>*{opacity:1;transform:translateY(0px)}
.low-data *,.low-data *::before,.low-data *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
.img{position:relative;overflow:hidden;background:var(--img-bg,var(--muted))}
.img img{width:100%;height:100%;object-fit:cover;color:transparent}
.table-box{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid color-mix(in srgb,var(--ink) 15%,transparent);vertical-align:top}
details summary{cursor:pointer;list-style:none;min-height:44px}
details summary::-webkit-details-marker{display:none}
/* toast */
.toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%,20px);background:var(--ink);color:var(--ground);padding:12px 18px;border-radius:999px;font-size:.9rem;opacity:0;pointer-events:none;transition:.3s;z-index:9000;max-width:calc(100% - 32px)}
.toast.is-on{opacity:1;transform:translate(-50%,0)}
html.modal-open{overflow:hidden}
/* lightbox */
.lightbox{position:fixed;inset:0;z-index:99990;background:rgba(8,10,12,.92);display:flex;align-items:center;justify-content:center;padding:60px 16px}
.lb-inner{position:relative;max-width:1100px;width:100%;text-align:center;color:#fff}
.lb-inner img{max-height:72vh;width:auto;margin:0 auto;border-radius:6px;background:#333;min-width:200px;min-height:160px}
.lb-cap{margin:12px 0 0}.lb-count{font-size:.85rem;opacity:.8}
.lb-btn{position:absolute;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.4);color:#fff;font-size:22px;cursor:pointer}
.lb-prev{left:0;top:40%}.lb-next{right:0;top:40%}.lb-close{right:0;top:-56px}
/* Receivly modal */
.rcv{position:fixed;inset:0;z-index:99980;background:rgba(10,12,16,.62);display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(4px)}
.rcv-card{width:100%;max-width:440px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;color:#14171c;border-radius:20px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.35);font-family:var(--font-b)}
.rcv.is-open .rcv-card{animation:rcvIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes rcvIn{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0px) scale(1)}}
.rcv-top{display:flex;gap:12px;align-items:flex-start}
.rcv-logo{width:40px;height:40px;border-radius:12px;background:#0E5A47;color:#fff;display:grid;place-items:center;flex:none}
.rcv-brand{margin:0;font-size:.8rem;font-weight:700;color:#0E5A47;letter-spacing:.02em}.rcv-brand span{font-weight:500;color:#5a6470}
.rcv-what{font-family:var(--font-b);font-size:1.05rem;font-weight:600;margin:2px 0 0;line-height:1.3}
.rcv-x{margin-left:auto;width:44px;height:44px;border-radius:50%;border:1px solid #d8dde3;background:#fff;font-size:22px;cursor:pointer;flex:none}
.rcv-amt{font-size:2rem;font-weight:700;margin:14px 0 12px;letter-spacing:-.02em}
.rcv-tabs{display:grid;grid-template-columns:1fr 1fr;background:#eef1f4;border-radius:12px;padding:4px;margin-bottom:16px}
.rcv-tabs button{min-height:44px;border:0;border-radius:9px;background:transparent;font-weight:600;cursor:pointer;color:#3c4550}
.rcv-tabs [aria-selected="true"]{background:#fff;color:#14171c;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.rcv .field input{background:#fff;border-color:#c9d0d8;color:#14171c}
.rcv .small{color:#5a6470}
.rcv-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rcv-bank,.rcv-receipt dl{margin:0 0 12px;display:grid;gap:8px}
.rcv-bank div,.rcv-receipt dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed #d8dde3;padding-bottom:8px}
.rcv-bank dt,.rcv-receipt dt{color:#5a6470}.rcv-bank dd,.rcv-receipt dd{margin:0;font-weight:600;text-align:right}
.rcv-go{width:100%;background:#0E5A47;color:#fff;border-radius:12px;margin-top:6px}
.rcv-go:hover{background:#0a4335}
.rcv-ok{display:flex;gap:8px;align-items:center;font-weight:700;color:#0E5A47;font-size:1.1rem;margin:4px 0 14px}
.rcv-acts{display:flex;gap:10px;flex-wrap:wrap}.rcv-acts .btn{flex:1;border-radius:12px}
.rcv-acts .btn-ghost{color:#14171c}.rcv-acts .btn-primary{background:#0E5A47;color:#fff}
/* Vablus chat */
.vb-launch{position:fixed;right:16px;bottom:16px;z-index:9500;display:flex;align-items:center;gap:8px;min-height:52px;padding:0 18px;border-radius:999px;border:0;background:var(--chat-bg,var(--ink));color:var(--chat-fg,var(--ground));font-weight:600;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.vb-panel{position:fixed;right:16px;bottom:80px;z-index:9600;width:min(380px,calc(100vw - 32px));height:min(540px,calc(100vh - 170px));display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border-radius:20px;box-shadow:0 30px 70px rgba(0,0,0,.3);overflow:hidden;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
.vb-panel.is-open{animation:rcvIn .3s cubic-bezier(.2,.8,.2,1)}
.vb-head{display:flex;gap:10px;align-items:center;padding:14px 14px 12px 16px;background:var(--chat-bg,var(--ink));color:var(--chat-fg,var(--ground))}
.vb-dot{width:10px;height:10px;border-radius:50%;background:#3FD38A;box-shadow:0 0 0 4px rgba(63,211,138,.25);flex:none}
.vb-title{margin:0;font-weight:700;font-size:.95rem}.vb-sub{margin:0;font-size:.78rem;opacity:.85}
.vb-x{margin-left:auto;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:inherit;font-size:22px;cursor:pointer;flex:none}
.vb-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.vb-msg{max-width:86%;padding:10px 13px;border-radius:16px;font-size:.92rem;line-height:1.45}
.vb-bot{background:color-mix(in srgb,var(--primary) 9%,var(--surface));border-bottom-left-radius:4px;align-self:flex-start}
.vb-me{background:var(--primary);color:var(--on-primary,#fff);border-bottom-right-radius:4px;align-self:flex-end}
.vb-msg a{font-weight:700}
.vb-typing{display:flex;gap:4px}.vb-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:vbDot 1s infinite}
.vb-typing span:nth-child(2){animation-delay:.15s}.vb-typing span:nth-child(3){animation-delay:.3s}
@keyframes vbDot{0%,100%{opacity:.3}50%{opacity:1}}
.vb-chips{display:flex;gap:6px;overflow-x:auto;padding:0 14px 8px;flex:none}
.vb-chip{flex:none;min-height:40px;padding:0 13px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--primary) 45%,transparent);background:var(--surface);font-size:.85rem;cursor:pointer;white-space:nowrap}
.vb-chip-person{border-style:dashed}
.vb-form{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
.vb-form input{flex:1;min-width:0;min-height:46px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--ink) 22%,transparent);padding:0 16px;background:var(--surface);font-size:16px}
.vb-send{width:46px;height:46px;border-radius:50%;border:0;background:var(--primary);color:var(--on-primary,#fff);display:grid;place-items:center;cursor:pointer;flex:none}
@media print{.vb-launch,.vb-panel,#covorn-ribbon,.site-header,.site-footer,.rcv-acts{display:none!important}.rcv{position:static;background:none}}

/* Ledgerwise: tangerine, bold-modern, map-led */
:root{
  --ground:#FFF6EE; --surface:#FFFFFF; --ink:#1B1410; --primary:#FF6A13; --primary-d:#E2560A; --accent:#3A2BD8; --muted:#6A5A4F;
  --t-safe:#B8460A; --tint-t:#FFE2CC; --tint-i:#E3E0FF; --tint-p:#E6EFD6; --line:#EAD9CB;
  --on-primary:#1B1410; --img-bg:#F2C9A8; --focus:#3A2BD8;
  --font-h:'Unbounded','Arial Black',sans-serif; --font-b:'Albert Sans',system-ui,sans-serif;
  --card-r:24px; --btn-r:14px; --chat-bg:#1B1410; --chat-fg:#FFF6EE;
}
::selection{background:var(--primary);color:var(--ink)}
h1,h2,h3{font-weight:700;letter-spacing:-.025em}
h1{font-size:clamp(2.2rem,5.6vw,4.4rem);line-height:1.02}
h2{font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.08}
h3{font-size:1.15rem;line-height:1.25}
a{color:var(--t-safe)}
.lead{font-size:clamp(1.05rem,1.5vw,1.22rem);color:var(--muted);max-width:60ch}
.kicker{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;color:var(--ink);background:var(--surface);border:2px solid var(--ink);border-radius:999px;padding:6px 12px 6px 8px}
.kdot{width:10px;height:10px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px var(--tint-t)}
.vt-title{view-transition-name:page-title}
.btn{font-weight:700;border-width:2px}
.btn-primary{background:var(--primary);color:var(--ink);border-color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.btn-primary:hover{background:var(--primary);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:var(--surface)}
.btn-ink{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.btn-ink:hover{background:var(--accent);border-color:var(--accent)}
.btn-sm{min-height:44px;padding:.4em 1em;background:var(--ink);color:var(--ground);border-radius:12px;font-size:.9rem}
.btn-sm[aria-pressed="true"]{background:var(--primary);color:var(--ink)}
.flip{transform:scaleX(-1)}
.small{color:var(--muted)}

/* rail (desktop) */
.rail{display:none}
@media(min-width:1100px){
  body{padding-left:96px}
  .rail{display:flex;flex-direction:column;align-items:center;gap:6px;position:fixed;left:0;top:48px;bottom:0;width:96px;background:var(--ink);color:var(--ground);z-index:70;padding:16px 0}
  .rail ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:2px;width:100%}
  .rail a,.rail-more{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;color:#F3E3D6;text-decoration:none;font-size:.7rem;font-weight:600;border-radius:14px;margin:0 8px;min-height:44px;position:relative}
  .rail ul a:hover{background:#2E241E}
  .rail a[aria-current="page"]{background:var(--primary);color:var(--ink)}
  .rail ul a::after{content:"";position:absolute;left:-8px;top:50%;width:4px;height:0;background:var(--primary);border-radius:0 4px 4px 0;transition:height .2s;transform:translateY(-50%)}
  .rail ul a:hover::after{height:24px}
  .rail-more{margin-top:auto;background:none;border:2px solid #4A3B31;cursor:pointer;width:76px}
  .rail-logo{padding:0!important;margin-bottom:6px}
}
/* header */
.site-header{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--ground) 90%,transparent);backdrop-filter:blur(10px);border-bottom:2px solid transparent;transition:border-color .25s}
.site-header.is-condensed{border-bottom-color:var(--ink)}
.hdr{display:flex;align-items:center;gap:16px;min-height:74px;padding:0 20px;max-width:1360px;margin:0 auto;transition:min-height .25s}
.is-condensed .hdr{min-height:62px}
@media(min-width:900px){.hdr{padding:0 40px}}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo-t{font-family:var(--font-h);font-weight:800;font-size:1.15rem;letter-spacing:-.03em}
@media(min-width:1100px){.logo .logo-mark{display:none}}
.hdr-where{margin:0;display:flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--muted);border-left:2px solid var(--line);padding-left:14px}
.hdr-where svg{color:var(--primary)}
.hdr-acts{margin-left:auto;display:flex;align-items:center;gap:10px}
.plan-btn{position:relative;width:46px;height:46px;border-radius:14px;border:2px solid var(--ink);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.plan-n{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;border-radius:11px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center;padding:0 5px}
.hdr-menu{display:none;align-items:center;gap:6px;min-height:46px;padding:0 14px;border-radius:14px;border:2px solid var(--ink);background:var(--ink);color:var(--ground);font-weight:700;cursor:pointer}
@media(max-width:1099px){.hdr-menu{display:inline-flex}}
@media(max-width:1000px){.hdr-calc{display:none}}
@media(max-width:760px){.hdr-where{display:none}.hdr-acts .btn-primary{display:none}.hdr{gap:10px}}
/* overlay map menu */
.menu{position:fixed;inset:0;z-index:9800;background:var(--ground);overflow-y:auto;opacity:0;transition:opacity .25s}
.menu.is-open{opacity:1}
.menu-in{max-width:1180px;margin:0 auto;padding:64px 20px 40px}
.menu-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.menu-k{font-family:var(--font-h);font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;margin:0}
.menu-x{width:52px;height:52px;border-radius:16px;border:2px solid var(--ink);background:var(--surface);cursor:pointer;display:grid;place-items:center}
.menu-map{margin-bottom:22px}
@media(max-width:700px){.menu-map{display:none}}
.menu-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.menu-list a{display:flex;gap:12px;align-items:center;padding:12px 14px;border:2px solid var(--ink);border-radius:16px;background:var(--surface);text-decoration:none;color:var(--ink);min-height:56px}
.menu-list a[aria-current="page"]{background:var(--primary)}
.menu-list a svg{flex:none;color:var(--t-safe)}
.menu-list a[aria-current="page"] svg{color:var(--ink)}
.menu-list b{display:block;font-family:var(--font-h);font-size:.92rem;font-weight:700}
.menu-list small{color:var(--muted);font-size:.82rem}
/* drawer (plan basket) */
.drawer{position:fixed;inset:0;z-index:9700;background:rgba(27,20,16,.45)}
.drawer-in{position:absolute;right:0;top:0;bottom:0;width:min(440px,100%);background:var(--ground);padding:70px 22px 22px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;border-left:2px solid var(--ink)}
.drawer.is-open .drawer-in{animation:drIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes drIn{from{transform:translateX(40px);opacity:0}to{transform:translateX(0px);opacity:1}}
.drawer-top{display:flex;justify-content:space-between;align-items:center}.drawer-top h2{margin:0;font-size:1.5rem}
.drawer-x{width:46px;height:46px;border-radius:14px;border:2px solid var(--ink);background:var(--surface);cursor:pointer;display:grid;place-items:center}
.bk{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;background:var(--surface);border:2px solid var(--ink);border-radius:16px;padding:12px 12px 12px 14px;margin-bottom:8px}
.bk span{display:block;font-size:.84rem;color:var(--muted)}
.bk-x{width:44px;height:44px;border-radius:12px;border:2px solid var(--line);background:none;font-size:20px;cursor:pointer}
.bk-tot{display:grid;gap:6px;margin:6px 0 12px}
.bk-tot div{display:flex;justify-content:space-between}
.bk-due{font-size:1.2rem;border-top:2px solid var(--ink);padding-top:8px}
.drawer-empty{color:var(--muted)}
[data-plan-body] .btn{width:100%}

/* layout */
.wrap{max-width:1320px}
.sec{padding:clamp(56px,8vw,110px) 0}
.sec+.sec:not(.sec-ink):not(.sec-tint){padding-top:0}
.sec-head{max-width:780px;margin-bottom:36px}
.sec-intro{color:var(--muted);font-size:1.08rem}
.sec-ink{background:var(--ink);color:var(--ground)}
.sec-ink .kicker{background:var(--ink);color:var(--ground);border-color:var(--primary)}
.sec-ink .small{color:#CDBBAE}
.sec-tint{background:var(--tint-t)}
.center{text-align:center}
.narrow{max-width:860px}
.split{display:grid;gap:36px;align-items:center;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}.split-rev>:first-child{order:2}}
.card{background:var(--surface);border:2px solid var(--ink);border-radius:var(--card-r);padding:clamp(20px,3vw,32px);box-shadow:6px 6px 0 var(--ink)}
.ticks{list-style:none;padding:0;margin:20px 0;display:grid;gap:10px}
.ticks li{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.ticks svg{flex:none;color:var(--ink);background:var(--primary);border-radius:8px;padding:2px}
.link-ar{display:inline-flex;align-items:center;gap:6px;font-weight:700;min-height:44px;color:var(--t-safe);text-decoration:none}
.link-ar:hover svg{transform:translateX(4px)}.link-ar svg{transition:transform .2s}

/* town map */
.town{width:100%;height:auto;display:block;overflow:visible}
.town-bg{fill:var(--tint-t)}
.rocks ellipse{fill:#F0CDB0}
.rd{stroke:var(--ink);stroke-width:26;fill:none}
.rd-l{stroke:#FFF6EE;stroke-width:2;stroke-dasharray:10 12;fill:none;opacity:.7}
.route{fill:none;stroke:var(--primary);stroke-width:6;stroke-dasharray:2 14;stroke-linecap:round}
.bus{fill:var(--primary);stroke:var(--ground);stroke-width:4}
.blk{cursor:pointer;outline:none}
.blk-shadow{fill:var(--ink)}
.blk-r{stroke:var(--ink);stroke-width:2.5;transition:fill .2s,transform .2s;transform-box:fill-box}
.tone-t .blk-r{fill:#FFD3B0}.tone-i .blk-r{fill:#DCD8FF}.tone-p .blk-r{fill:#E3EED2}.tone-c .blk-r{fill:#FFFFFF}
.blk text.blk-t{font-family:var(--font-h);font-weight:700;font-size:15px;fill:var(--ink)}
.blk-s{font-family:var(--font-b);font-weight:700;font-size:11px;fill:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.blk-ib{fill:var(--ink)}
.blk-ic{color:var(--primary)}
.tree{fill:#A9C98A;stroke:var(--ink);stroke-width:1.5}
.blk:hover .blk-r,.blk:focus-visible .blk-r{fill:var(--primary);transform:translate(-3px,-3px)}
.blk:focus-visible .blk-r{stroke:var(--accent);stroke-width:5}
.blk.is-here .blk-r,.blk.is-lit .blk-r{fill:var(--primary)}
.blk.is-lit .blk-r{transform:translate(-4px,-4px)}
.here circle:first-child{fill:var(--accent);opacity:.3;transform-box:fill-box;transform-origin:center;animation:herePulse 1.8s ease-out infinite}
.here circle:last-child{fill:var(--accent)}
@keyframes herePulse{from{transform:scale(.6);opacity:.6}to{transform:scale(1.6);opacity:0}}
.kiosk circle{fill:var(--accent);stroke:var(--ground);stroke-width:3;transition:fill .2s}
.kiosk svg{color:#fff}
.kiosk:hover circle,.kiosk.is-here circle{fill:var(--primary)}
.kiosk:hover svg,.kiosk.is-here svg{color:var(--ink)}
.kiosk:focus-visible circle{stroke:var(--ink);stroke-width:5}
.town-mini .blk-s{display:none}
.town-mini .blk text.blk-t{font-size:17px}
.map-card{background:var(--surface);border:2px solid var(--ink);border-radius:30px;padding:12px;box-shadow:8px 8px 0 var(--ink)}
.map-tip{margin:16px 0 0;padding:14px 18px;border-radius:18px;background:var(--ink);color:var(--ground);display:grid;gap:2px;min-height:76px}
.map-tip b{font-family:var(--font-h);font-size:1rem}
.map-tip span{color:#E9D6C7;font-size:.92rem}
.map-tip.is-on{animation:tipIn .3s}
@keyframes tipIn{from{transform:translateY(6px);opacity:.4}to{transform:translateY(0px);opacity:1}}

/* home hero */
.hhero{padding:30px 0 30px}
.hh-grid{display:grid;gap:30px;align-items:center;grid-template-columns:minmax(0,1fr)}
@media(min-width:1000px){.hh-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px}}
.hh-title{font-size:clamp(2.8rem,7.4vw,6rem);line-height:.96;margin-bottom:.3em}
.hh-w{display:inline-block}
.hh-o{color:var(--ink);background:var(--primary);padding:0 .18em .04em;border-radius:.2em;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
.hh-btns{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 14px}
.hh-note{display:flex;gap:8px;align-items:center;font-size:.9rem;color:var(--muted);font-weight:600}
.hh-note svg{color:var(--accent)}
/* marquee */
.logos{border-block:2px solid var(--ink);background:var(--surface);padding:16px 0;overflow:hidden}
.logos-k{margin:0 0 10px;text-align:center;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 16px}
.marq{display:flex;width:max-content;animation:marq 36s linear infinite}
.marq ul{list-style:none;margin:0;padding:0;display:flex;gap:40px;padding-right:40px}
.marq li{display:flex;gap:8px;align-items:center;font-family:var(--font-h);font-weight:700;font-size:1rem;white-space:nowrap}
.marq svg{color:var(--primary)}
@keyframes marq{to{transform:translateX(-50%)}}
.logos:hover .marq{animation-play-state:paused}
/* tour */
.tour{display:grid;gap:24px;grid-template-columns:minmax(0,1fr)}
.tour-map{position:relative}
.tour-sticky{position:sticky;top:118px;background:var(--surface);border:2px solid var(--ink);border-radius:26px;padding:10px;box-shadow:6px 6px 0 var(--ink)}
@media(max-width:999px){.tour-map{position:sticky;top:112px;z-index:2}.tour-sticky{position:static}.tour-sticky .blk-s{display:none}}
@media(min-width:1000px){.tour{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px}.tour-map{grid-column:1;grid-row:1}.tour-list{grid-column:2}}
.tour-list{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.tour-step{background:var(--surface);border:2px solid var(--ink);border-radius:22px;padding:22px;transition:background .3s,transform .3s;min-height:46vh}
@media(min-width:1000px){.tour-step{min-height:60vh;display:flex;flex-direction:column;justify-content:center}}
.tour-step.is-on{background:var(--primary);transform:translateX(-6px)}
.tour-n{font-family:var(--font-h);font-weight:800;font-size:2.4rem;line-height:1;display:block;margin-bottom:8px}
.tour-step p{color:var(--ink)}
.tour-step .link-ar{color:var(--ink)}
/* stats */
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
@media(min-width:900px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stats b{display:block;font-family:var(--font-h);font-weight:800;font-size:clamp(2rem,4.4vw,3.4rem);color:var(--primary);line-height:1;letter-spacing:-.04em}
.stats span{color:#E9D6C7}
/* quick calc */
.quick{background:var(--surface);border:2px solid var(--ink);border-radius:var(--card-r);padding:24px;box-shadow:6px 6px 0 var(--ink)}
.quick input[type="range"],.calc input[type="range"],.est input[type="range"],.hours input[type="range"]{accent-color:var(--primary);min-height:44px;padding:0;border:0;background:none}
.q-out{font-family:var(--font-h);font-weight:800;font-size:2rem}
.q-bars{display:grid;gap:12px;margin:12px 0}
.q-bar{position:relative;border:2px solid var(--ink);border-radius:14px;padding:12px 14px;display:flex;justify-content:space-between;overflow:hidden;z-index:0}
.q-bar i{position:absolute;inset:0 auto 0 0;background:var(--tint-i);z-index:-1;transition:width .4s cubic-bezier(.2,.8,.2,1)}
.q-bar-cost i{background:var(--tint-t)}
.q-bar b{font-family:var(--font-h)}
/* bento */
.bento{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){.bento{grid-template-columns:repeat(4,minmax(0,1fr))}.bn-w{grid-column:span 2}}
.bn{background:var(--surface);border:2px solid var(--ink);border-radius:22px;padding:20px;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.bn:hover{box-shadow:6px 6px 0 var(--ink)}
@media(max-width:899px){.bn-w{grid-column:1/-1}}
.bn:nth-child(4n+1){background:var(--tint-t)}.bn:nth-child(4n+3){background:var(--tint-i)}
.bn-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--ink);color:var(--primary);margin-bottom:14px}
.bn p{margin:0;color:var(--muted)}
@media(max-width:560px){.bento{grid-template-columns:minmax(0,1fr)}}
/* mock UIs */
.mock{background:var(--surface);border:2px solid var(--ink);border-radius:22px;padding:18px;box-shadow:8px 8px 0 var(--ink);font-size:.92rem}
.mk-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.mk-dots{display:flex;gap:5px}.mk-dots i{width:10px;height:10px;border-radius:50%;background:var(--line)}.mk-dots i:first-child{background:var(--primary)}
.mk-chip{margin-left:auto;font-size:.72rem;font-weight:700;background:var(--tint-i);color:var(--accent);padding:4px 10px;border-radius:999px}
.mk-prog{height:10px;border-radius:5px;background:var(--line);overflow:hidden}.mk-prog span{display:block;height:100%;width:var(--w);background:var(--primary)}
.mk-small{font-size:.8rem;color:var(--muted);margin:6px 0 10px}
.mk-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mk-list li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:8px;border-radius:12px;background:var(--ground)}
.mk-av{width:36px;height:36px;border-radius:10px;background:var(--ink);color:var(--primary);display:grid;place-items:center;font-weight:700;font-size:.8rem;grid-row:span 2}
.mk-nm b{display:block;font-size:.9rem}.mk-nm small{color:var(--muted)}
.mk-amt{font-weight:700}
.mk-st{grid-column:3;font-size:.72rem;font-weight:700;color:#1F6B3A;justify-self:end}.mk-st.warn{color:var(--t-safe)}
.mk-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap;font-weight:600}
.mk-btn{background:var(--primary);border:2px solid var(--ink);border-radius:12px;padding:8px 12px;font-weight:700}
.mock-slip{background:var(--tint-i);display:grid;place-items:center;padding:28px}
.slip-phone{width:min(300px,100%);background:var(--surface);border:2px solid var(--ink);border-radius:28px;padding:18px;box-shadow:6px 6px 0 var(--ink)}
.slip-bar{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px dashed var(--line);padding-bottom:10px;margin-bottom:10px;font-size:.8rem}
.slip-bar b{font-family:var(--font-h)}
.slip-nm{font-weight:700;margin:0 0 8px}.slip-nm small{display:block;font-weight:500;color:var(--muted)}
.slip-dl{margin:0;display:grid;gap:6px}.slip-dl div{display:flex;justify-content:space-between}.slip-dl dt{color:var(--muted)}.slip-dl dd{margin:0;font-weight:600}
.slip-net{display:flex;justify-content:space-between;align-items:center;background:var(--primary);border:2px solid var(--ink);border-radius:14px;padding:10px 12px;margin:12px 0 8px}
.slip-net b{font-family:var(--font-h);font-size:1.2rem}
.slip-wa{display:flex;gap:6px;align-items:center;font-size:.8rem;color:#1F6B3A;font-weight:700;margin:0}
.mock-remit ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mock-remit li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;background:var(--ground);border-radius:12px}
.mock-remit em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--t-safe)}.mock-remit em.ok{color:#1F6B3A}
.lv-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.lv-d{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:var(--ground);font-size:.8rem;font-weight:600}
.lv-on{background:var(--primary);border:2px solid var(--ink)}.lv-hol{background:var(--tint-i);color:var(--accent)}
.lv-key{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-1px}.lv-key.on{background:var(--primary)}.lv-key.hol{background:var(--tint-i)}
.ck-big{display:flex;align-items:baseline;gap:10px;margin:4px 0 12px}.ck-big b{font-family:var(--font-h);font-size:3rem;font-weight:800;line-height:1}
.ck-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.ck-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;border-radius:12px;background:var(--ground)}
.ck-list em{font-style:normal;font-weight:700;color:#1F6B3A;grid-row:span 2;align-self:center}.ck-list em.warn{color:var(--t-safe)}
.ph-frame{border:2px solid var(--ink);border-radius:var(--card-r);box-shadow:8px 8px 0 var(--ink)}
/* quotes */
.bigquote{margin:0 0 28px;max-width:960px}
.bigquote p{font-family:var(--font-h);font-weight:700;font-size:clamp(1.3rem,2.8vw,2.1rem);line-height:1.25;letter-spacing:-.02em}
.bigquote p::before{content:"\201C";color:var(--primary);margin-right:.05em}
.bigquote figcaption b{display:block}.bigquote figcaption span{color:var(--muted)}
.mini-quotes{display:grid;gap:14px}
@media(min-width:800px){.mini-quotes{grid-template-columns:1fr 1fr}}
.mini-quotes figure{margin:0;background:var(--surface);border:2px solid var(--ink);border-radius:20px;padding:20px}
.mini-quotes blockquote{margin:0}.mini-quotes figcaption{font-weight:700;font-size:.9rem;color:var(--muted)}
/* plans */
.plans-mini{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
@media(min-width:800px){.plans-mini{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pm{display:grid;gap:4px;padding:24px;border:2px solid var(--ink);border-radius:22px;text-decoration:none;color:var(--ink);background:var(--surface);transition:transform .25s,box-shadow .25s}
.pm:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink)}
.pm-hot{background:var(--primary)}
.pm b{font-family:var(--font-h)}.pm-p{font-family:var(--font-h);font-weight:800;font-size:2.4rem;letter-spacing:-.04em}.pm small{color:var(--ink);opacity:.8}
.est{background:var(--ink);color:var(--ground);border-radius:var(--card-r);padding:24px;margin-bottom:26px}
.est label{font-family:var(--font-h);font-weight:700;font-size:1.1rem}.est-out{margin:6px 0 0;color:#F0DCCB}.est-out b{color:var(--primary)}
.plans{list-style:none;margin:0;padding:0;display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.plans{grid-template-columns:repeat(3,minmax(0,1fr))}}
.plan{position:relative;background:var(--surface);border:2px solid var(--ink);border-radius:26px;padding:26px;display:flex;flex-direction:column}
.plan-hot{background:var(--tint-t);box-shadow:8px 8px 0 var(--ink)}
.plan-flag{position:absolute;top:-14px;left:22px;background:var(--accent);color:#fff;font-weight:700;font-size:.78rem;padding:5px 12px;border-radius:999px}
.plan h3{font-size:1.5rem;margin:0}.plan-d{color:var(--muted)}
.plan-p{margin:4px 0}.plan-p b{font-family:var(--font-h);font-weight:800;font-size:2.6rem;letter-spacing:-.04em;display:block;line-height:1.1}.plan-p span{color:var(--muted);font-size:.9rem}
.plan ul{list-style:none;padding:0;margin:16px 0 22px;display:grid;gap:8px}.plan li{display:flex;gap:8px;align-items:flex-start}.plan li svg{color:var(--t-safe);flex:none}
.plan .btn{margin-top:auto}
.addons{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.addon{display:grid;gap:8px;background:var(--surface);border:2px solid var(--ink);border-radius:20px;padding:18px}
.addon span{display:block;color:var(--muted);font-size:.9rem}.addon p{margin:0}
.addon .btn{justify-self:start}
/* table */
.table-box{overflow-x:auto;background:var(--surface);border:2px solid var(--ink);border-radius:20px}
th[scope="col"]{background:var(--ink);color:var(--ground);font-weight:700}
td,th{border-bottom:1px solid var(--line)}
/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.steps li{display:flex;gap:14px;background:var(--surface);border:2px solid var(--ink);border-radius:20px;padding:18px}
.st-n{font-family:var(--font-h);font-weight:800;font-size:1.6rem;color:var(--t-safe);line-height:1}
.steps h3{margin:0 0 6px}.steps p{margin:0;color:var(--muted)}
.sec-ink .steps li{background:#2A201A;border-color:#4A3B31}.sec-ink .steps p{color:#E9D6C7}
/* related */
.rels{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.rel{position:relative;display:grid;gap:4px;padding:20px 52px 20px 20px;border:2px solid var(--ink);border-radius:22px;background:var(--surface);text-decoration:none;color:var(--ink);height:100%;transition:transform .3s}
.rel-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--primary);margin-bottom:8px}
.rel b{font-family:var(--font-h);font-size:1rem}.rel span:not(.rel-ic){color:var(--muted);font-size:.92rem}
.rel-ar{position:absolute;right:18px;top:22px}
/* feature cards on map page */
.sec-bigmap{padding-top:0}
.map-xl{padding:16px}
.fcards{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.fcards a{display:grid;gap:4px;padding:18px;border:2px solid var(--ink);border-radius:20px;text-decoration:none;color:var(--ink);background:var(--surface);height:100%}
.fcard-t a{background:#FFD3B0}.fcard-i a{background:#DCD8FF}.fcard-p a{background:#E3EED2}
.fc-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--ink);color:var(--primary);margin-bottom:6px}
.fcards b{font-family:var(--font-h)}.fcards span:last-child{color:var(--ink);opacity:.8;font-size:.92rem}
/* inner hero */
.phero{padding:30px 0 50px}
.phero-in{display:grid;gap:32px;align-items:center;grid-template-columns:minmax(0,1fr)}
@media(min-width:1000px){.phero-in{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px}}
.mini-map{background:var(--surface);border:2px solid var(--ink);border-radius:26px;padding:10px 10px 12px;box-shadow:6px 6px 0 var(--ink)}
.mini-k{display:flex;gap:6px;align-items:center;margin:4px 8px 10px;font-size:.88rem;font-weight:600;color:var(--muted)}
.mini-k svg{color:var(--accent)}.mini-k b{color:var(--ink)}
.ph-hero .img{max-height:460px}
/* calculator */
.sec-calc{padding-top:0}
.calc{display:grid;gap:22px;grid-template-columns:minmax(0,1fr)}
@media(min-width:1000px){.calc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.calc-out{position:sticky;top:120px}}
.calc-in{background:var(--surface);border:2px solid var(--ink);border-radius:var(--card-r);padding:22px}
.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
.seg label{position:relative}.seg input{position:absolute;opacity:0;inset:0}
.seg span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;border:2px solid var(--ink);border-radius:14px;font-weight:700;cursor:pointer;background:var(--ground);text-align:center;padding:4px}
.seg input:checked+span{background:var(--primary);box-shadow:4px 4px 0 var(--ink)}
.seg input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.money{display:flex;align-items:center;border:1.5px solid color-mix(in srgb,var(--ink) 25%,transparent);border-radius:10px;background:var(--surface)}
.money span{padding:0 4px 0 14px;font-weight:700}.money input{border:0!important;outline:0}
.money:focus-within{border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 30%,transparent)}
.split3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.split3 .field{margin-bottom:6px}
.toggles{display:grid;gap:8px}
.tg{display:flex;gap:12px;align-items:center;padding:10px 12px;border:2px solid var(--line);border-radius:14px;cursor:pointer;min-height:48px}
.tg input{width:22px;height:22px;accent-color:var(--primary);flex:none}
.tg:has(input:checked){border-color:var(--ink);background:var(--tint-t)}
.calc-out{background:var(--ink);color:var(--ground);border-radius:var(--card-r);padding:24px}
.co-tabs{display:inline-flex;gap:4px;background:#2E241E;border-radius:12px;padding:4px;margin-bottom:12px}
.co-tabs button{min-height:40px;padding:0 16px;border:0;border-radius:9px;background:none;color:var(--ground);font-weight:700;cursor:pointer}
.co-tabs [aria-selected="true"]{background:var(--primary);color:var(--ink)}
.co-k{margin:0;font-weight:700;color:#E9D6C7}
.co-big{font-family:var(--font-h);font-weight:800;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.04em;margin:4px 0;line-height:1.05;color:var(--primary);word-break:break-word}
.co-sub{color:#E9D6C7}
.co-bar{display:flex;height:26px;border-radius:9px;overflow:hidden;border:2px solid var(--ground);margin:14px 0}
.co-bar span{display:block;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.b-net{background:#8F86FF}.b-tax{background:var(--primary)}.b-pen{background:#FFC79F}.b-oth{background:#C9E0A9}.b-fee{background:#FFF6EE}
.co-key{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px}
.co-key li{display:flex;align-items:center;gap:10px}.co-key i{width:14px;height:14px;border-radius:4px;flex:none}.co-key b{margin-left:auto}
.co-slip{background:#2A201A;border-radius:16px;padding:4px 14px;margin-bottom:12px}
.co-slip summary{font-weight:700;padding:10px 0}
.co-slip dl{margin:0 0 10px;display:grid;gap:4px}.co-slip div{display:flex;justify-content:space-between;gap:10px;font-size:.92rem}.co-slip dd{margin:0;font-weight:700}
.co-slip .net{border-top:1px dashed #6A5A4F;padding-top:6px;color:var(--primary);font-size:1rem}
.co-hundred{color:#F0DCCB;font-size:.95rem}.co-hundred b{color:var(--primary)}
.co-acts{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.co-acts .btn-ghost{background:transparent;color:var(--ground);border-color:var(--ground)}
.calc-out .small{color:#CDBBAE;margin:12px 0 0}
/* industries tabs */
.itabs-l{display:flex;gap:8px;overflow-x:auto;padding:4px 4px 12px;margin-bottom:12px}
.itabs-l button{flex:none;display:flex;align-items:center;gap:8px;min-height:50px;padding:0 16px;border:2px solid var(--ink);border-radius:14px;background:var(--surface);font-weight:700;cursor:pointer}
.itabs-l [aria-selected="true"]{background:var(--primary);box-shadow:4px 4px 0 var(--ink)}
.ip h3{font-size:1.8rem}
.hours{background:#2A201A;border-radius:var(--card-r);padding:24px;max-width:820px}
.hours label{font-weight:700}.hours-out{font-size:1.2rem}.hours-out b{color:var(--primary)}
/* stories */
.filters{display:grid;gap:14px;margin-bottom:24px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{min-height:44px;padding:0 16px;border-radius:12px;border:2px solid var(--ink);background:var(--surface);font-weight:700;cursor:pointer}
.chips [aria-pressed="true"]{background:var(--ink);color:var(--ground)}
.search{max-width:560px;margin-bottom:0}
.stories{list-style:none;margin:0;padding:0;display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}
.story{background:var(--surface);border:2px solid var(--ink);border-radius:var(--card-r);overflow:hidden}
.story-t{padding:20px 22px 24px}.story-t h3{font-size:1.4rem}.story-t p{color:var(--muted)}
.story-who{font-weight:700;color:var(--ink)!important;margin:0}
/* guides */
.glist{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.glist a{display:grid;gap:8px;height:100%;padding:22px;border:2px solid var(--ink);border-radius:22px;background:var(--surface);text-decoration:none;color:var(--ink);transition:transform .25s,box-shadow .25s}
.glist a:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink)}
.glist b{font-family:var(--font-h);font-size:1.05rem;line-height:1.3}.glist a>span:last-child{color:var(--muted);font-size:.9rem}
.g-tag{justify-self:start;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--tint-i);color:var(--accent);padding:4px 10px;border-radius:999px}
.guides{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.gcard{grid-column:span 1}
@media(min-width:900px){.gcard{grid-column:span 2}}
.gcard a{display:block;border:2px solid var(--ink);border-radius:22px;overflow:hidden;background:var(--surface);text-decoration:none;color:var(--ink);height:100%}
.gc-t{display:grid;gap:8px;padding:18px}.gc-t b{font-family:var(--font-h);font-size:1.2rem;line-height:1.3}.gc-t>span:last-child{color:var(--muted);font-size:.9rem}
.gsm{display:grid;gap:8px;align-content:start;padding:18px;border:2px dashed var(--ink);border-radius:20px}
.gsm b{font-family:var(--font-h);font-size:.98rem;line-height:1.35}
.art{display:grid;gap:32px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.art{grid-template-columns:260px minmax(0,1fr);gap:64px}.art-side{position:sticky;top:130px;align-self:start}}
.art-body{max-width:68ch;font-size:1.08rem}.art-body h2{font-size:1.5rem;margin-top:1.5em}.art-body h2:first-child{margin-top:0}
.toc{padding-left:20px;color:var(--muted);display:grid;gap:6px;font-size:.92rem}
.pull{margin:30px 0;padding:22px 24px;background:var(--primary);border:2px solid var(--ink);border-radius:20px;box-shadow:6px 6px 0 var(--ink);font-family:var(--font-h);font-weight:700;font-size:1.25rem;line-height:1.35}
.pull p{margin:0}
/* timeline (about) */
.tl{list-style:none;margin:0;padding:0;display:grid;gap:0;border-left:4px solid var(--ink);margin-left:8px}
.tl li{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:0 0 26px 26px;position:relative}
.tl li::before{content:"";position:absolute;left:-14px;top:4px;width:20px;height:20px;border-radius:6px;background:var(--primary);border:2px solid var(--ink)}
@media(min-width:800px){.tl li{grid-template-columns:120px minmax(0,1fr);gap:24px}}
.tl-y{font-family:var(--font-h);font-weight:800;font-size:1.5rem}
.tl h3{margin:0 0 4px}.tl p{margin:0;color:var(--muted)}
.team{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
.team li{display:grid;gap:2px;padding:18px;border:2px solid var(--ink);border-radius:20px;background:var(--surface)}
.tm-av{width:56px;height:56px;border-radius:16px;background:var(--primary);border:2px solid var(--ink);display:grid;place-items:center;font-family:var(--font-h);font-weight:800;margin-bottom:8px}
.team span:last-child{color:var(--muted);font-size:.92rem}
/* demo wizard */
.dw{background:var(--surface);border:2px solid var(--ink);border-radius:28px;padding:clamp(18px,3vw,34px);max-width:920px;margin:0 auto;box-shadow:8px 8px 0 var(--ink)}
.dw-steps{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dw-steps li{border-top:6px solid var(--line);padding-top:8px;font-weight:700;color:var(--muted);font-size:.9rem}
.dw-steps li.on{border-color:var(--primary);color:var(--ink)}.dw-steps li.done{border-color:var(--ink);color:var(--ink)}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cal-head h3{margin:0;font-size:1.1rem}
.cal-nav{width:46px;height:46px;border-radius:14px;border:2px solid var(--ink);background:var(--ground);cursor:pointer;display:grid;place-items:center}
.cal-nav:disabled{opacity:.35;cursor:default}
.dw-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}
.dw-day{display:grid;place-items:center;min-height:66px;border:2px solid var(--ink);border-radius:14px;background:var(--ground);cursor:pointer}
.dw-day small{font-size:.75rem;color:var(--muted);font-weight:700}.dw-day b{font-family:var(--font-h);font-size:1.3rem}
.dw-day.is-on{background:var(--ink);color:var(--ground)}.dw-day.is-on small{color:var(--primary)}
.dw-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media(max-width:520px){.dw-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dw-slot{min-height:52px;border:2px solid var(--ink);border-radius:14px;background:var(--surface);font-weight:700;cursor:pointer}
.dw-slot small{display:block;font-weight:600;color:var(--muted);font-size:.72rem}
.dw-slot:disabled{opacity:.45;cursor:not-allowed;border-style:dashed}
.dw-slot.is-on{background:var(--primary);box-shadow:4px 4px 0 var(--ink)}
.dw-chosen{background:var(--ground);border-radius:14px;padding:14px;margin:16px 0}
.dw-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:6px}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}
/* faq */
.faq details{border-bottom:2px solid var(--ink)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;font-weight:700;font-size:1.05rem}
.faq-ico{flex:none;transition:transform .3s}.faq details[open] .faq-ico{transform:rotate(45deg)}
.faq-a p{margin:0 0 18px;color:var(--muted);max-width:70ch}
.faq-g{font-size:1.4rem;margin:34px 0 4px}.faq-g:first-child{margin-top:12px}
.tiles{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:22px;border:2px solid var(--ink);border-radius:22px;background:var(--surface);text-decoration:none;color:var(--ink);cursor:pointer;font-size:1rem;text-align:left}
.tile:hover{background:var(--tint-t)}.tile span{color:var(--muted);font-size:.9rem}
.facts{margin:0;display:grid;border-top:2px solid var(--ink)}
.facts div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.facts dt{font-weight:700}.facts dd{margin:0;color:var(--muted)}
.form-h{font-size:1.4rem}
.addr{font-style:normal;font-size:1.1rem;line-height:1.7}
.map-ph{margin:16px 0}.map-ph svg{width:100%;height:auto}
.mph-bg{fill:var(--tint-t);stroke:var(--ink);stroke-width:2}.mph-road{stroke:var(--ink);stroke-width:16;fill:none}.mph-rock{fill:#F0CDB0;stroke:var(--ink);stroke-width:2}
.mph-pin{fill:var(--primary);stroke:var(--ink);stroke-width:4}.mph-t{font:800 15px var(--font-h);fill:var(--ink)}.mph-s{font:700 12px var(--font-b);fill:var(--muted)}
.thanks{border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
/* CTA */
.cta{background:var(--primary);border-block:2px solid var(--ink);padding:clamp(48px,7vw,90px) 0;overflow:hidden}
.cta-in{position:relative;display:grid;gap:22px;align-items:center;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.cta-in{grid-template-columns:minmax(0,1fr) auto}}
.cta h2{font-size:clamp(1.8rem,4vw,3rem)}.cta p{max-width:56ch;margin:0;font-size:1.08rem}
.cta-btns{display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:1}
.cta-road{position:absolute;right:-40px;bottom:-70px;width:420px;color:var(--ink);opacity:.14;pointer-events:none}
/* footer */
.site-footer{background:var(--ink);color:var(--ground);padding:60px 0 26px}
.ft-wrap{max-width:1320px;margin:0 auto;padding:0 20px}
@media(min-width:900px){.ft-wrap{padding:0 40px}}
.ft-big{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;border-bottom:2px solid #3A2E26;padding-bottom:34px;margin-bottom:34px}
.ft-k{margin:0;color:var(--primary);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;width:100%}
.ft-line{font-family:var(--font-h);font-weight:800;font-size:clamp(2rem,6vw,4.4rem);line-height:1;margin:0;letter-spacing:-.04em}
.ft-big .btn-ink{background:var(--primary);color:var(--ink);border-color:var(--primary)}
.ft-cols{display:grid;gap:26px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){.ft-cols{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ft-h{font-family:var(--font-b);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin-bottom:10px}
.ft-cols ul{list-style:none;margin:0;padding:0}.ft-cols li a{display:inline-flex;min-height:40px;align-items:center;color:#F0DCCB;text-decoration:none}.ft-cols li a:hover{color:var(--primary)}
.ft-cols address{font-style:normal;line-height:1.7;color:#F0DCCB}.ft-cols address a{color:#F0DCCB}
.ft-demo{color:#CDBBAE;font-size:.88rem}
.ft-base{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;border-top:2px solid #3A2E26;margin-top:30px;padding-top:18px;font-size:.88rem;color:#CDBBAE}
.ft-base p{margin:0}
.lowdata{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:12px;border:2px solid #4A3B31;background:none;color:var(--ground);cursor:pointer;font-weight:700}
.lowdata[aria-pressed="true"]{background:var(--primary);color:var(--ink);border-color:var(--primary)}
.low-data .marq{animation:none;flex-wrap:wrap;width:auto}.low-data .marq ul+ul{display:none}
.low-data .here circle:first-child{animation:none}
.vb-launch{border:2px solid var(--primary)}
.rel:hover{background:var(--tint-t)}
.ft-cols address{overflow-wrap:anywhere}
@media(max-width:899px){.ft-cols>div:last-child{grid-column:1/-1}}
.addr{overflow-wrap:anywhere}
@media(max-width:700px){
  .hh-map .map-card{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:8px}
  .town-hero{min-width:640px}
  .hh-map .map-card::after{content:"Swipe the map";display:block;position:sticky;left:0;font-size:.8rem;font-weight:700;color:var(--muted);padding:6px 4px 0}
}
