/* v8.5 Hampton Sides step: bay sheet (refined C). Everything is scoped to .hps-root / .hps-* so nothing else on the site is affected. */
.hps-root{--hps-g:#123627;--hps-au:#c9a86b;--hps-aud:#7d6230;--hps-cr:#fbf8f1;--hps-ln:#e6dfcf;--hps-mu:#5f5a4f;--hps-mu2:#8a8270;--hps-spring:cubic-bezier(.32,.72,0,1);--hps-t:200ms;font-family:Montserrat,Arial,sans-serif}
.hps-root *,.hps-sheet *,.hps-toast *{box-sizing:border-box}
.hps-root button,.hps-sheet button,.hps-toast button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;margin:0}
.hps-planw{position:relative}
.hps-card{background:var(--hps-cr);border-radius:16px;padding:6px 4px 2px;transition:box-shadow var(--hps-t)}
.hps-plan{width:100%;height:auto;display:block;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
/* fine-line drawing, after the original live plan */
.hps-plan .hps-hit{fill:transparent;stroke:none}
.hps-bay{cursor:pointer;outline:none}
.hps-bay .hps-ln{fill:none;stroke:var(--hps-g);stroke-width:1.3;stroke-linecap:round;transition:stroke var(--hps-t),stroke-width var(--hps-t)}
.hps-bay .hps-tk{stroke-width:.9}
.hps-bay .hps-dsh{stroke-dasharray:3.2 2.6}
.hps-bay .hps-sB,.hps-bay .hps-sF,.hps-bay .hps-sH{opacity:0;transition:opacity var(--hps-t) ease}
.hps-bay[data-t=B] .hps-sB,.hps-bay[data-t=F] .hps-sF,.hps-bay[data-t=H] .hps-sH{opacity:1}
.hps-bay .hps-halo{fill:none;stroke:var(--hps-au);stroke-width:16;stroke-linecap:round;opacity:0;transition:opacity var(--hps-t)}
.hps-bay .hps-bn{font:500 14px Montserrat,Arial,sans-serif;fill:var(--hps-mu2);text-anchor:middle;pointer-events:none;transition:fill var(--hps-t)}
.hps-bay .hps-bnc{fill:none;stroke:var(--hps-au);stroke-width:.8;opacity:0;transition:opacity var(--hps-t)}
.hps-bay:focus-visible .hps-halo{opacity:.22}
@media (hover:hover){.hps-bay:hover .hps-halo{opacity:.14}}
.hps-bay.hps-sel .hps-ln{stroke:var(--hps-au);stroke-width:1.6}
.hps-bay.hps-sel .hps-halo{opacity:.16}
.hps-bay.hps-sel .hps-bn{fill:var(--hps-g);font-weight:600}
.hps-bay.hps-sel .hps-bnc{opacity:1}
.hps-bay.hps-hl .hps-halo{opacity:.2}
.hps-bay .hps-mv{transform-box:fill-box;transform-origin:center}
.hps-bay.hps-pop .hps-mv{animation:hpsPop 220ms var(--hps-spring)}
@keyframes hpsPop{0%{transform:scale(1)}40%{transform:scale(1.045)}100%{transform:scale(1)}}
.hps-plan .hps-post{fill:var(--hps-g)}
.hps-plan .hps-tb{fill:#fff;stroke:var(--hps-g);stroke-opacity:.35;stroke-width:.9}
.hps-plan .hps-tl{font:italic 400 12px Optima,Georgia,serif;fill:var(--hps-mu);text-anchor:middle;pointer-events:none}
.hps-plan .hps-entl{font:500 9.5px Montserrat,Arial,sans-serif;letter-spacing:.2em;fill:var(--hps-g);text-anchor:middle}
.hps-plan .hps-enta{fill:none;stroke:var(--hps-g);stroke-width:.9;stroke-linecap:round;stroke-linejoin:round}
.hps-size{margin:6px 0 0;text-align:center;font-size:14px;color:var(--hps-mu2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* fine-line symbols (legend, sheet) */
.hps-sym{width:44px;height:20px;flex:none;display:block}
.hps-sym path{fill:none;stroke:var(--hps-g);stroke-width:1.3;stroke-linecap:round}
.hps-sym .hps-tk{stroke-width:.9}.hps-sym .hps-dsh{stroke-dasharray:3.2 2.6}
/* legend with live counts: tap to highlight */
.hps-leg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0 0}
.hps-leg button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:56px;padding:6px 4px;border-radius:12px;border:1px solid transparent;text-align:center;transition:background var(--hps-t),border-color var(--hps-t)}
.hps-leg button[aria-pressed=true]{background:var(--hps-cr);border-color:var(--hps-au)}
.hps-leg .hps-nm{font-size:14px;line-height:1.25;color:var(--hps-g);font-weight:500}
.hps-leg .hps-ct{font-size:14px;color:var(--hps-aud);font-weight:600}
.hps-sum{margin:10px 0 0;font-size:14px;color:var(--hps-mu);text-align:center}
.hps-sum b{color:var(--hps-g);font-weight:600}
.hps-acts{display:flex;gap:10px;justify-content:space-between;margin:14px 0 0}
.hps-pill{min-height:44px;padding:0 16px;border-radius:22px;border:1px solid var(--hps-ln)!important;background:#fff!important;font-size:14px!important;font-weight:600!important;color:var(--hps-g)!important;display:inline-flex;align-items:center;gap:6px;transition:opacity var(--hps-t),transform var(--hps-t)}
.hps-pill:active{transform:scale(.97)}
.hps-pill[disabled]{opacity:.4;cursor:default}
.hps-pill svg{width:17px;height:17px}
.hps-pill.hps-pri{background:var(--hps-g)!important;color:#fff!important;border-color:var(--hps-g)!important}
.hps-k{display:block;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--hps-aud);font-weight:600;margin:18px 0 8px}
.hps-pre{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hps-pre button{border:1px solid var(--hps-ln);border-radius:12px;padding:8px 4px 8px;background:#fff;min-height:44px;text-align:center;transition:border-color var(--hps-t),box-shadow var(--hps-t),background var(--hps-t)}
.hps-pre button[aria-pressed=true]{border-color:var(--hps-au);box-shadow:inset 0 0 0 .5px var(--hps-au);background:var(--hps-cr)}
.hps-pre svg{width:100%;height:auto;display:block}
.hps-pre svg path{fill:none;stroke:var(--hps-g);stroke-width:1.6;stroke-linecap:round}
.hps-pre svg .hps-tk{stroke-width:1.1}.hps-pre svg .hps-dsh{stroke-dasharray:4 3}
.hps-pre b{display:block;font-size:14px;font-weight:600;color:var(--hps-g);line-height:1.25;margin-top:4px}
.hps-ok{display:flex;gap:8px;margin:14px 0 0;padding:10px 12px;background:#f7f5f2;border-radius:10px;font-size:14px;color:var(--hps-mu)}
.hps-ok i{font-style:normal;color:var(--hps-g);font-weight:700}
/* open state: pinned, scaled plan above the sheet (no scrim over the plan) */
.hps-scrim{position:fixed;inset:0;background:rgba(13,42,30,.22);opacity:0;pointer-events:none;transition:opacity 350ms var(--hps-spring);z-index:900}
.hps-scrim.hps-on{opacity:1;pointer-events:auto}
.hps-card.hps-pinned{position:fixed;z-index:910;left:6px;right:6px;margin:0 auto;max-width:508px;box-shadow:0 6px 22px rgba(0,0,0,.10);display:flex;align-items:center;justify-content:center;transition:top 350ms var(--hps-spring),height 350ms var(--hps-spring)}
.hps-card.hps-pinned .hps-plan{width:auto;height:100%;max-width:100%}
/* the sheet */
.hps-sheet{--hps-g:#123627;--hps-au:#c9a86b;--hps-aud:#7d6230;--hps-cr:#fbf8f1;--hps-ln:#e6dfcf;--hps-mu:#5f5a4f;--hps-spring:cubic-bezier(.32,.72,0,1);--hps-t:200ms;font-family:Montserrat,Arial,sans-serif;color:#333;
 position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:520px;max-height:66vh;max-height:66dvh;display:flex;flex-direction:column;background:rgba(255,255,255,.97);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
 border-radius:14px 14px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.14);transform:translateY(105%);visibility:hidden;transition:transform 350ms var(--hps-spring),visibility 0s linear 350ms;z-index:920}
.hps-sheet.hps-on{transform:translateY(0);visibility:visible;transition:transform 350ms var(--hps-spring),visibility 0s}
.hps-sheet.hps-drag{transition:none}
.hps-sh-top{flex:none;padding:6px 14px 0;touch-action:none}
.hps-grab{width:36px;height:5px;border-radius:3px;background:#cfc8b8;margin:2px auto 8px}
.hps-hdr{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:6px;text-align:center}
.hps-hdr h2{font-family:Optima,Georgia,serif;font-weight:400;color:var(--hps-g);font-size:20px;line-height:1.2;margin:0}
.hps-hdr p{font-size:14px;color:var(--hps-mu);margin:2px 0 0}
.hps-nav{width:44px;height:44px;border-radius:22px;background:#f4f1ea!important;display:flex;align-items:center;justify-content:center;color:var(--hps-g)!important;transition:transform var(--hps-t)}
.hps-nav:active{transform:scale(.93)}
.hps-nav svg{width:18px;height:18px}
.hps-dots{display:flex;gap:5px;justify-content:center;margin:6px 0 4px}
.hps-dots i{width:6px;height:6px;border-radius:3px;background:#ddd5c4;transition:width var(--hps-t),background var(--hps-t)}
.hps-dots i.hps-on{width:16px;background:var(--hps-au)}
.hps-opts{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 14px 4px;display:grid;gap:8px;align-content:start;touch-action:pan-y}
.hps-opts.hps-still{touch-action:none}
.hps-optsin{display:grid;gap:8px;transition:transform 260ms var(--hps-spring),opacity 200ms}
.hps-opt{display:grid;grid-template-columns:118px 1fr 26px;align-items:center;gap:12px;text-align:left;border:1px solid var(--hps-ln)!important;border-radius:12px;padding:6px 12px 6px 6px!important;min-height:76px;background:#fff!important;transition:border-color var(--hps-t),box-shadow var(--hps-t),background var(--hps-t)}
.hps-opt img{width:118px;height:64px;object-fit:cover;border-radius:8px;display:block}
.hps-opt b{display:block;font:600 16px/1.25 Montserrat,Arial,sans-serif;color:var(--hps-g)}
.hps-opt small{display:block;font-size:14px;color:var(--hps-mu);line-height:1.35;margin-top:2px}
.hps-opt .hps-n{display:block;font-size:14px;color:var(--hps-aud);font-weight:600;margin-top:3px}
.hps-opt .hps-ck{width:24px;height:24px;border-radius:12px;border:1px solid #cfc6b2;display:flex;align-items:center;justify-content:center;transition:background var(--hps-t),border-color var(--hps-t)}
.hps-opt .hps-ck svg{width:13px;height:13px;opacity:0;transition:opacity var(--hps-t)}
.hps-opt[aria-checked=true]{border-color:var(--hps-au)!important;box-shadow:inset 0 0 0 .5px var(--hps-au);background:var(--hps-cr)!important}
.hps-opt[aria-checked=true] .hps-ck{background:var(--hps-g);border-color:var(--hps-g)}
.hps-opt[aria-checked=true] .hps-ck svg{opacity:1}
.hps-opt:focus-visible{outline:2px solid var(--hps-au);outline-offset:2px}
.hps-sh-ft{flex:none;display:grid;grid-template-columns:1.35fr 1fr;gap:10px;padding:10px 14px calc(12px + env(safe-area-inset-bottom));border-top:.5px solid var(--hps-ln);touch-action:none}
.hps-sh-ft .hps-pill{justify-content:center;width:100%;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* toast: one line, 12px above the price bar (or the sheet) */
.hps-toast{position:fixed;left:50%;bottom:calc(var(--hps-tb,16px) + 12px);transform:translate(-50%,14px);opacity:0;pointer-events:none;background:rgba(18,54,39,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;border-radius:14px;padding:4px 4px 4px 16px;display:flex;align-items:center;gap:10px;font:500 14px Montserrat,Arial,sans-serif;height:48px;width:min(358px,calc(100% - 24px));box-shadow:0 8px 24px rgba(0,0,0,.18);transition:opacity 200ms ease,transform 350ms cubic-bezier(.32,.72,0,1);z-index:930}
.hps-toast.hps-on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.hps-toast span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hps-toast button{flex:none;min-height:40px;min-width:64px;border-radius:10px;color:#c9a86b!important;font-weight:700;font-size:14px}
.hps-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){.hps-root *,.hps-sheet,.hps-sheet *,.hps-toast,.hps-scrim,.hps-card{transition-duration:1ms!important;animation:none!important}}
.hps-hide{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity 200ms,visibility 0s linear 200ms}
@media (max-height:720px){.hps-opt{min-height:64px;grid-template-columns:96px 1fr 24px;gap:10px}.hps-opt img{width:96px;height:54px}.hps-opt b{font-size:15px}.hps-opt small{font-size:14px}.hps-hdr h2{font-size:18px}.hps-dots{margin:4px 0 2px}.hps-opts{gap:6px}}
