
/* ---------- handbook (2025 booklet style) ---------- */
.hb-page{background:var(--ink) url(/assets/handbook/contour.webp) 0 0/1100px 1100px}
.hb-cover{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hb-cover .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(20px,4vw,48px);align-items:center;padding-top:clamp(28px,5vw,56px);padding-bottom:clamp(28px,5vw,56px)}
.hb-cover h1{font-family:var(--display);font-weight:400;font-size:clamp(52px,8vw,104px);line-height:.9;margin:8px 0 14px}
.hb-cover h1 b{font-weight:400;color:var(--orange);display:block}
.hb-cover .lede{margin:0 0 20px}
.hb-cover-img{border-radius:18px;overflow:hidden;transform:rotate(1.2deg);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.hb-cover-img img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.hb-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hb-quick a{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border-radius:14px;border:2px solid #4a4a4a;text-decoration:none;font-family:var(--label);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:14px;text-align:center;transition:border-color .15s,transform .15s}
.hb-quick a:hover{border-color:var(--orange);transform:translateY(-2px);color:var(--cream)}
.hb-quick svg{width:38px;height:38px;color:var(--orange)}
.hb-tile{position:relative}
.hb-tile .hb-badge{position:absolute;left:14px;top:14px;width:48px;height:48px;border-radius:50%;background:var(--orange);color:var(--ink);display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.4)}
.hb-tile .hb-badge svg{width:28px;height:28px}
.hb-gi{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:2px solid var(--orange);color:var(--orange);display:grid!important;place-items:center;margin-right:2px}
.hb-gi svg{width:24px;height:24px}
details.guide summary{align-items:center;gap:12px}
details.guide[open]>summary .hb-gi{background:var(--orange);color:var(--ink)}
.hb-chips a{display:inline-flex;align-items:center;gap:8px;line-height:1.1}
.hb-chips svg,.hb-tablist svg,.hb-quick svg{flex:0 0 auto;display:block}
.hb-chips svg{width:20px;height:20px}
.hb-openall{margin:14px 0 0;text-align:right}
.hb-hero h1{display:flex;align-items:center;gap:14px}
.hb-hero h1 svg{width:.8em;height:.8em;color:var(--orange);flex:0 0 auto}
/* icon tiles on cream cards */
.hb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:0 0 16px}
.hb-t{background:var(--cream);color:#33302c;border-radius:14px;padding:16px 16px 18px;border:2px solid #e9c9b6}
.hb-t h4{margin:10px 0 4px;font-family:var(--display);font-weight:400;font-size:25px;line-height:1;color:var(--rust);letter-spacing:.01em}
.hb-t p{margin:0;font-size:15.5px;line-height:1.45;color:#33302c}
.hb-ti{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:2px solid var(--orange);color:var(--orange);display:grid;place-items:center}
.hb-ti svg{width:26px;height:26px}
.hb-t a{color:var(--rust)}
/* Mav's top tip */
.hb-tip{position:relative;display:flex;gap:14px;align-items:flex-start;border:2px solid var(--orange);border-radius:14px;padding:16px 44px 16px 16px;margin:6px 0 16px;background:#2b241f}
.hb-tip-i{flex:0 0 auto;color:var(--orange)}.hb-tip-i svg{width:38px;height:38px}
.hb-tip b{font-family:var(--display);font-weight:400;font-size:26px;line-height:1;color:var(--orange-hi);letter-spacing:.02em}
.hb-tip p{margin:4px 0 0;color:var(--cream)}
.hb-paw{position:absolute;right:-6px;bottom:-10px;color:var(--orange);transform:rotate(-18deg)}
.hb-paw svg{width:40px;height:40px;fill:currentColor;stroke:none}
.hb-important{display:flex;gap:12px;align-items:flex-start;background:#fbe3d6;color:#5a1f08;border:2px solid var(--orange);border-radius:14px;padding:14px 16px;margin:0 0 16px}
.hb-important svg{flex:0 0 auto;width:30px;height:30px;color:var(--rust)}
.hb-important p{margin:0}
details.faq .a .hb-important strong,details.faq .a .hb-t strong,details.faq .a .hb-hot-list strong{color:inherit}
.hb-hot-nav .btn.ghost,.hb-track .btn.ghost,.hb-mav .btn.ghost{background:none;border-color:var(--cream);color:var(--cream)}
.hb-hot-nav .btn.ghost:hover,.hb-track .btn.ghost:hover,.hb-mav .btn.ghost:hover{background:var(--cream);color:var(--ink)}
.hb-badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.hb-badges span{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--orange);border-radius:999px;padding:7px 14px 7px 10px;font-family:var(--label);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:15px}
.hb-badges svg{width:22px;height:22px;color:var(--orange)}
.hb-intro{display:flex;gap:18px;align-items:center;margin:0 0 14px}
.hb-intro p{margin:0;flex:1 1 0}
.hb-side{flex:0 0 auto;width:clamp(110px,26%,190px);height:auto;border-radius:14px;background:var(--cream)}
.hb-pics2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 16px}
.hb-pics2 figure{margin:0;background:var(--panel);border-radius:12px;overflow:hidden}
.hb-pics2 img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.hb-pics2 figcaption{padding:8px 12px 10px;font-size:14.5px;color:var(--muted)}
/* tap-the-photo checks */
.hb-hot{margin:0 0 16px}
.hb-hot-img{position:relative;border-radius:16px;overflow:hidden;background:#1f1f1f;border:1px solid var(--line)}
.hb-hot-img img{display:block;width:100%;height:auto}
.hb-pin{position:absolute;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;border:3px solid #fff;background:var(--orange);color:var(--ink);font:700 18px var(--label);cursor:pointer;padding:0;box-shadow:0 2px 10px rgba(0,0,0,.6);transition:transform .15s,background .15s}
.hb-pin::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--orange);opacity:.7;animation:hbpulse 2.2s infinite}
.hb-pin.on{background:#fff;transform:translate(-50%,-50%) scale(1.2);z-index:2}.hb-pin.on::after{animation:none;opacity:0}
.hb-pin.seen:not(.on){background:#7a3a1c;color:#fff}.hb-pin.seen::after{display:none}
@keyframes hbpulse{0%{transform:scale(.7);opacity:.8}100%{transform:scale(1.35);opacity:0}}
@media (prefers-reduced-motion:reduce){.hb-pin::after{animation:none}}
.hb-hot-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.hb-hot-list li{display:flex;gap:12px;align-items:flex-start;background:var(--cream);color:#33302c;border:2px solid #e9c9b6;border-radius:14px;padding:14px}
.hb-hot-list h4{margin:0 0 4px;font-family:var(--display);font-weight:400;font-size:25px;line-height:1;color:var(--rust);display:flex;align-items:center;gap:8px}
.hb-hot-list h4 .n{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--orange);color:var(--ink);font:700 14px var(--label);display:grid;place-items:center}
.hb-hot-list p{margin:0;font-size:15.5px;line-height:1.45}
.hb-hot.js .hb-hot-list{display:block}
.hb-hot.js .hb-hot-list li{display:none}.hb-hot.js .hb-hot-list li.on{display:flex}
.hb-hot-nav{display:flex;align-items:center;gap:10px;margin-top:10px}
.hb-hot-nav .count{font-family:var(--label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:15px;color:var(--orange-hi);margin-right:auto}
/* tabs */
.hb-tablist{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.hb-tablist button{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.1;min-height:46px;font:inherit;font-family:var(--label);font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:16px;color:var(--cream);background:#1f1f1f;border:2px solid #4a4a4a;border-radius:999px;padding:10px 16px;cursor:pointer}
.hb-tablist button svg{width:20px;height:20px}
.hb-tablist button[aria-selected="true"]{background:var(--orange);border-color:var(--orange);color:var(--ink)}
.hb-tabs:not(.js) .hb-tablist{display:none}
.hb-tabs.js .hb-tabtitle{display:none}
.hb-tabtitle{font-family:var(--display);font-weight:400;font-size:28px;margin:14px 0 8px;color:var(--orange-hi)}
.hb-tabpanel{margin-bottom:6px}
/* schedule and tracker */
.hb-sched{width:100%;border-collapse:collapse;margin:0 0 16px;background:var(--cream);color:#33302c;border-radius:14px;overflow:hidden}
.hb-sched th{text-align:left;font-family:var(--label);letter-spacing:.1em;text-transform:uppercase;font-size:14px;padding:10px 14px;background:#e9c9b6;color:#5a1f08}
.hb-sched td{padding:10px 14px;border-top:1px solid #e3ddd2;font-size:16px}
.hb-si{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:10px;vertical-align:middle;color:var(--rust)}.hb-si svg{width:22px;height:22px}
.hb-chip{display:inline-block;font-family:var(--label);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:13px;padding:3px 10px;border-radius:999px;background:#ddd6c9;color:#33302c;white-space:nowrap}
.hb-chip.f-monthly{background:var(--orange);color:var(--ink)}.hb-chip.f-yearly{background:#33302c;color:var(--cream)}.hb-chip.f-months{background:#a33e12;color:#fff}
.hb-track{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.hb-track li{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.hb-track-t{flex:1 1 auto;min-width:0}.hb-track-t b{display:block;font-size:17px;line-height:1.25}
.hb-track-t small{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:5px;color:var(--soft);font-size:14px}
.hb-track li.ok{border-color:#3f7a4a}.hb-track li.ok .hb-ti{border-color:#7fc98b;color:#7fc98b}
.hb-track li.due{border-color:var(--orange)}.hb-track li.due .hb-when{color:var(--orange-hi);font-weight:600}
.hb-track .btn{flex:0 0 auto;white-space:nowrap}
.hb-mav{display:flex;gap:14px;align-items:center;border:2px dashed var(--orange);border-radius:14px;padding:14px 16px;margin:18px 0 0}
.hb-mav svg{flex:0 0 auto;width:40px;height:40px;color:var(--orange);fill:currentColor;stroke:none}
.hb-mav b{font-family:var(--display);font-weight:400;font-size:24px;color:var(--orange-hi);display:block;line-height:1}
.hb-mav p{margin:3px 0 0}
.hb-mav button{margin-left:auto;flex:0 0 auto}
ol.stepper li img{aspect-ratio:4/3;object-fit:cover}
@media (max-width:760px){
  .hb-cover .wrap{grid-template-columns:1fr}.hb-cover-img{order:-1;transform:none}
  .hb-quick a{font-size:12px;letter-spacing:.04em;padding:12px 2px}.hb-quick svg{width:32px;height:32px}
  .hb-pin{width:30px;height:30px;font-size:15px;border-width:2px}.hb-hero h1 svg{display:none}
  .hb-track li{flex-wrap:wrap}.hb-track .btn{margin-left:58px}
  .hb-intro{align-items:flex-start}
}
/* cream boxes for all handbook text, so every guide reads the same way */
.hb-box,.hb-why,details.guide .a .hb-note,details.guide ul.checks,details.guide ol.stepper.one li,details.guide ol.stepper:not(.one){background:var(--cream);color:#33302c;border:2px solid #e9c9b6;border-radius:14px}
.hb-box,.hb-why{display:flex;gap:14px;align-items:flex-start;padding:16px;margin:0 0 16px}
.hb-box p,.hb-why p{margin:0;color:#33302c}
.hb-why .kicker{color:var(--rust)}.hb-why p{margin-top:4px}
details.guide .a .hb-note{border-left:6px solid var(--orange);padding:14px 16px;margin:0 0 16px}
details.guide ul.checks{padding:4px 16px;margin:0 0 16px}
details.guide ul.checks li{border-top-color:#e3ddd2}
details.guide ul.checks input:checked+span{color:#8a8479}
details.guide ol.stepper:not(.one){padding:16px 16px 16px 2.4em}
details.guide ol.stepper.one li{color:#33302c}
details.guide .a .hb-box strong,details.guide .a .hb-why strong,details.guide .a .hb-note strong,details.guide .a ul.checks strong,details.guide .a ol.stepper strong{color:#1b1b1b}
details.guide .a .hb-box a,details.guide .a .hb-why a,details.guide .a .hb-note a,details.guide .a ul.checks a,details.guide .a ol.stepper a,.hb-tip a{color:var(--rust)}
.hb-tip a{color:var(--orange-hi)}
.hb-lead{margin:0 0 14px;font-size:1.05em}
details.guide .a{padding-top:4px}
/* access: clear focus rings and comfortable tap sizes */
.hb-pin:focus-visible,.hb-tablist button:focus-visible,.hb-track button:focus-visible,.hb-quick a:focus-visible{outline:3px solid #fff;outline-offset:3px}
.hb-pin::before{content:"";position:absolute;inset:-7px;border-radius:50%}
.hb-tabpanel:focus-visible{outline:3px solid var(--orange-hi);outline-offset:6px;border-radius:8px}
.hb-hot-nav .btn,.stepper-nav .btn,.hb-track .btn{min-height:44px}
details.guide summary{min-height:48px}
