/* Piedmont Pepper Co · Flavor wheel page (loaded only on /flavor) */
html:not(.js) .wheel-grid{display:none}
.wheel-sec{padding-top:0}
.wheel-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px);align-items:start}
.wheel-box{position:relative;width:100%;max-width:700px;margin:0 auto;min-height:240px}
.wheel-box svg{display:block;width:100%;height:auto;overflow:visible}
.wheel-svg .seg{cursor:pointer;stroke:var(--bone);stroke-width:2;transition:opacity .2s}
.wheel-svg .seg:hover{stroke:var(--ink)}
.wheel-svg .seg:focus{outline:none}
.wheel-svg .seg:focus-visible{stroke:var(--ember);stroke-width:3}
.wheel-svg .seg.is-sel{stroke:var(--ink);stroke-width:2.5}
.wheel-svg .is-dim{opacity:.16}
.wheel-svg .is-half{opacity:.45}
.wheel-svg .lbl{pointer-events:none;font-family:var(--sans);font-weight:700;transition:opacity .2s}
.wheel-svg .lbl-note{font-weight:600}
.wheel-svg .hub-a{font-family:var(--sans);font-weight:700;letter-spacing:-.01em}
.wheel-svg .hub-b{font-family:var(--sans);font-weight:500;fill:var(--mut)}
.wheel-svg .dot{cursor:pointer;transition:opacity .2s}
.wheel-svg .dot:focus{outline:none}
.wheel-svg .dot .fr{fill:none;stroke:var(--ember);stroke-width:3;opacity:0}
.wheel-svg .dot:focus-visible .fr{opacity:1}
.wheel-svg .dot:hover .mk{stroke-width:2}
.wheel-svg .dot.is-dim{opacity:.12}
.wheel-svg .dot.is-half{opacity:.4}
.wtip{position:absolute;z-index:5;transform:translate(-50%,calc(-100% - 12px));background:var(--ink);color:var(--bone);padding:7px 10px;border-radius:4px;font-size:13px;line-height:1.3;white-space:nowrap;pointer-events:none;display:flex;flex-direction:column;gap:2px}
.wtip strong{font-weight:700}
.wtip span{color:var(--mut-on-ink);font-size:12px}
.wpanel{display:flex;flex-direction:column;gap:22px;position:sticky;top:calc(var(--nav-h) + 24px)}
.wstatus-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}
.wstatus-row strong{font:700 clamp(20px,2vw,26px)/1.2 var(--sans);letter-spacing:-.02em}
.wshowall{padding:10px 14px;font-size:13.5px}
.wshowall:disabled{opacity:.4;cursor:default}
.wshowall:disabled:hover{background:transparent;color:var(--ink)}
.wchips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1.5px solid var(--line-strong);border-radius:var(--r);background:var(--bone);color:var(--ink);font:600 14px/1 var(--sans);cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed=true]{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.sw{display:inline-block;width:12px;height:12px;border-radius:2px;flex:none;border:1.5px solid rgba(19,18,16,.35);box-sizing:border-box}
.chip[aria-pressed=true] .sw{border-color:rgba(250,247,240,.6)}
.sw-fam{transform:rotate(45deg);border-radius:1px;width:10px;height:10px}
.sw-light{border-radius:50%;background:var(--bone)!important;border-width:2.5px}
.wlegend{list-style:none;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--mut);border-top:1px solid var(--line);padding-top:16px}
.wlegend li{display:flex;align-items:center;gap:10px}
.wlegend svg{width:18px;height:18px;flex:none}
.offwheel{border-top:1px solid var(--line);padding-top:16px}
.offwheel-btn{display:flex;align-items:center;gap:14px;width:100%;margin-top:12px;padding:12px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bone);text-align:left;cursor:pointer;font-family:var(--sans);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.offwheel-btn:hover{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.offwheel-btn img{width:56px;height:56px;border-radius:4px;object-fit:cover;flex:none;border:1px solid var(--line-strong)}
.offwheel-btn b{display:block;font:700 17px/1.2 var(--sans);letter-spacing:-.015em}
.offwheel-btn span span{display:block;font-size:14px;color:var(--mut);margin-top:4px;line-height:1.45}
@media(max-width:900px){.wheel-grid{grid-template-columns:1fr}.wpanel{position:static}}

/* ---------- list by family ---------- */
.fam-groups{display:flex;flex-direction:column;gap:clamp(28px,4vw,48px)}
.fg-head{display:flex;align-items:baseline;gap:10px 20px;flex-wrap:wrap;border-bottom:1.5px solid var(--ink);padding-bottom:12px}
.fg-head h3{display:inline-flex;align-items:center;gap:10px;font-size:20px}
.fg-head h3 .sw{width:14px;height:14px}
.fg-notes{font:600 11.5px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.fg-empty{font-size:15px;color:var(--mut);padding:16px 0 0}
.wtable{width:100%;border-collapse:collapse;font-size:15.5px}
.wtable th{font:600 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);text-align:left;padding:14px 16px 10px 0;border-bottom:1px solid var(--line)}
.wtable td{padding:16px 16px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.wtable td:last-child,.wtable th:last-child{padding-right:0}
.wtable .c-v{width:34%}
.wtable .c-h{width:22%;white-space:nowrap;font-weight:700}
.wtable .c-h.na{font-weight:500;color:var(--mut)}
.wtable .vn{display:inline}
.vbtn{background:none;border:0;padding:0;font:inherit;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-color:var(--ember);text-decoration-thickness:2px;text-underline-offset:3px;text-align:left}
.vbtn:hover{color:var(--ember-text)}
.wtable .badge{margin-left:8px}
.pchip{display:inline-flex;align-items:center;gap:7px;font:600 13px/1.2 var(--sans);color:var(--ink);background:var(--bone-2);border:1px solid var(--line);border-radius:3px;padding:5px 9px;margin:0 6px 6px 0}
.pchip .sw{width:10px;height:10px}
.pchip .sw-fam{width:9px;height:9px}
@media(max-width:760px){
  .wtable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}
  .wtable,.wtable tbody,.wtable tr,.wtable td{display:block}
  .wtable tr{padding:16px 0;border-bottom:1px solid var(--line)}
  .wtable td{padding:0;border:0;width:auto}
  .wtable .c-h,.wtable .c-p{margin-top:8px}
  .wtable .c-h::before,.wtable .c-p::before{content:attr(data-l);display:block;font:600 10px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:3px}
}

/* ---------- how to taste ---------- */
.steps-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps-3 .step p{font-size:17px;line-height:1.55}
.on-ink .posline{margin-top:48px}
@media(max-width:760px){.steps-3{grid-template-columns:1fr}}

/* ---------- tasting card dialog ---------- */
.tcard{border:1px solid var(--line-strong);border-radius:6px;padding:0;background:var(--bone);color:var(--ink);width:min(760px,calc(100vw - 24px));max-width:none;max-height:calc(100vh - 24px);overflow:auto}
.tcard::backdrop{background:rgba(19,18,16,.62)}
.tc-inner{position:relative;display:grid;grid-template-columns:1fr}
.tcard.has-photo .tc-inner{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.tc-close{position:absolute;right:12px;top:12px;z-index:2;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--bone);color:var(--ink);cursor:pointer;padding:0}
.tc-close svg{width:20px;height:20px}
.tc-close:hover{background:var(--ink);color:var(--bone)}
.tc-photo{position:relative;margin:0;background:var(--ink-2);border-right:1px solid var(--line-strong)}
.tc-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.tc-body{padding:clamp(22px,3vw,36px)}
.tc-name{font-size:clamp(26px,3vw,36px);margin-top:14px;padding-right:48px}
.tc-name:focus{outline:none}
.tc-kv{display:flex;flex-direction:column;border-top:1px solid var(--line-strong);margin-top:22px}
.tc-kv>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:6px 20px;padding:14px 0;border-bottom:1px solid var(--line)}
.tc-kv dt{font:600 11px/1.6 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.tc-kv dd{font-weight:500;line-height:1.55}
.tc-kv dd .pchip{margin-top:0}
.tc-ctas{margin-top:24px}
@media(max-width:720px){
  .tcard.has-photo .tc-inner{grid-template-columns:1fr}
  .tc-photo{border-right:0;border-bottom:1px solid var(--line-strong)}
  .tc-photo img{aspect-ratio:3/2;max-height:38vh}
  .tc-kv>div{grid-template-columns:1fr;gap:4px}
  .tc-close{right:10px;top:10px}
}
body:has(dialog[open]){overflow:hidden}
