/* Approved concept 02, 2026-09-10. Reusable controls + homepage/engine adapters.
   Future pages: .gp-hifi, .gp-hifi-gold, .gp-hifi-toggle, .gp-hifi-icon.
   Native text and semantics remain live; materials are decorative only. */
:root{--gp-hifi-metal:url('images/hifi-grain.svg'),linear-gradient(177deg,#2a2b28 0%,#171916 35%,#10120f 65%,#242621 100%);--gp-hifi-gold:url('images/hifi-grain.svg'),linear-gradient(171deg,#ead4ad,#c7a77a 47%,#ddc49d 75%,#ab895d);--gp-hifi-trim:#b8ae98;--gp-hifi-ink:#f1e9dc;--gp-hifi-amber:#ffc36a;--gp-hifi-shadow:inset 0 0 0 1px #080a07,inset 0 0 0 2px #9d968366,inset 0 3px 1px #ffffff14,0 3px 7px #0005}
.gp-hifi,.gp-home :is(.gp-button,.gp-header-shop,.gp-header-cart,.gp-arrow,.gp-mobile-nav>:where(summary),.rc6-explore,.rc6-arrow,.rc6-spin),.gp-cart-drawer :is(.hzo-btn,.hzo-drawer__close,.hzo-minicart__step,.hzo-minicart__remove),.rc6-dialog .rc6-close{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:48px;padding:12px 24px;border:1px solid var(--gp-hifi-trim);border-radius:0!important;background:var(--gp-hifi-metal);background-color:#191b17;color:var(--gp-hifi-ink)!important;box-shadow:var(--gp-hifi-shadow);font-family:Manrope,'GP Manrope',Arial,sans-serif;font-size:12px;font-weight:600;line-height:1.3;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;text-shadow:0 1px 0 #000;cursor:pointer;transition:filter .16s,box-shadow .16s,transform .1s;touch-action:manipulation}
.gp-hifi:hover,.gp-home :is(.gp-button,.gp-header-shop,.gp-header-cart,.gp-arrow,.rc6-explore,.rc6-arrow,.gp-mobile-nav>:where(summary)):hover,.gp-cart-drawer :is(.hzo-btn,.hzo-drawer__close,.hzo-minicart__step,.hzo-minicart__remove):hover{background:var(--gp-hifi-metal);filter:brightness(1.18);transform:none;box-shadow:inset 0 0 0 1px #080a07,inset 0 0 0 2px #e6d2ab88,0 3px 8px #0006}
.gp-hifi:active,.gp-home :is(.gp-button,.gp-header-shop,.gp-header-cart,.gp-arrow,.rc6-explore,.rc6-arrow):active,.gp-cart-drawer .hzo-btn:active{transform:translateY(1px);box-shadow:inset 0 2px 7px #000b,inset 0 0 0 1px #070805}
.gp-hifi:focus-visible,.gp-home :is(button,a,summary):focus-visible,.gp-cart-drawer :is(button,a):focus-visible,.rc6-dialog button:focus-visible{outline:2px solid #ffc36a;outline-offset:4px;filter:brightness(1.1)}
.gp-hifi:disabled,.gp-hifi[aria-disabled=true],.gp-home button:disabled{filter:grayscale(1);opacity:.42;cursor:not-allowed;transform:none}
.gp-hifi-gold,.gp-home :is(.gp-button-primary,.gp-header-shop),.gp-cart-drawer .hzo-btn--primary{background:var(--gp-hifi-gold);color:#17160f!important;text-shadow:0 1px 0 #f9e8cb80;border-color:#d7c8ae;box-shadow:inset 0 0 0 1px #483925,inset 0 0 0 2px #f2e2c078,0 3px 8px #0006}
.gp-hifi-gold:hover,.gp-home :is(.gp-button-primary,.gp-header-shop):hover,.gp-cart-drawer .hzo-btn--primary:hover{background:var(--gp-hifi-gold);color:#17160f!important}
/* Walnut cheeks are reserved for primary actions; etched metal elsewhere. */
.gp-home :is(.gp-button-primary,.gp-header-shop){border-inline:6px solid #64422b;border-image:none;background-origin:padding-box;box-shadow:inset 0 0 0 1px #e9d7b5,inset 0 0 0 2px #635039,0 3px 7px #0008}
.gp-home :is(.gp-button-primary,.gp-header-shop)::before{content:'';position:absolute;inset:-1px -6px;pointer-events:none;background:repeating-linear-gradient(91deg,#e6b27b33 0 1px,#1b110d55 1px 2px,transparent 2px 4px);clip-path:polygon(0 0,6px 0,6px 100%,0 100%,0 0,100% 0,100% 100%,calc(100% - 6px) 100%,calc(100% - 6px) 0)}
.gp-hifi-toggle{padding-left:58px;padding-right:36px;min-height:52px;white-space:nowrap}
.gp-hifi-toggle::before{content:'';position:absolute;width:42px;height:42px;left:7px;top:50%;transform:translateY(-50%);background:url('images/hifi-toggle.svg') center/contain no-repeat;transition:transform .16s}
.gp-hifi-toggle::after{content:'';position:absolute;right:13px;top:50%;width:12px;height:12px;transform:translateY(-50%);border-radius:50%;border:2px solid #16130d;background:radial-gradient(circle at 44% 38%,#fff7c5 0 12%,#ffc55c 25%,#d87614 49%,#633007 67%,#050504 73%);box-shadow:0 0 0 1px #a48348,0 0 7px #ed9f374d}
.gp-hifi-toggle:active::before,.gp-hifi-toggle.is-added::before{transform:translateY(-50%) rotate(-30deg)}
.gp-hifi-toggle.is-loading::after{animation:gp-pilot 750ms ease-in-out infinite alternate}
.gp-hifi .gp-added-label{display:none}.gp-hifi.is-added .gp-add-label{display:none}.gp-hifi.is-added .gp-added-label{display:inline}.gp-hifi.is-loading{cursor:wait;opacity:.7}.gp-hifi.is-loading .gp-add-label{font-size:0}.gp-hifi.is-loading .gp-add-label::after{content:'Adding…';font-size:11px}
@keyframes gp-pilot{to{opacity:.35}}
/* Header keeps its centered geometry and readable labels. */
.gp-home .gp-header-cart{padding:8px 12px;min-height:44px;font-size:13px;letter-spacing:.02em;text-transform:none;gap:8px}
.gp-home .gp-header-shop{min-height:44px;padding:10px 18px;font-size:12px;letter-spacing:.08em}
.gp-home .gp-header-actions{gap:16px}
.gp-home .gp-product-menu>summary{background:var(--gp-hifi-metal);border:1px solid #827b6b;box-shadow:var(--gp-hifi-shadow);padding:0 12px}
.gp-home .gp-precision-header .gp-desktop-nav{gap:24px}
.gp-home .gp-precision-header .gp-desktop-nav>a{text-shadow:0 1px 0 #000;letter-spacing:.01em}
.gp-home .gp-mobile-nav>:where(summary){width:44px;height:44px;min-height:44px;padding:0;gap:7px}
.gp-home .gp-mobile-nav>nav{border-color:#827b6b;background:#121410}
.gp-home .gp-mega-menu,.gp-home .gp-menu-feature{border-radius:0;background-color:#10120f}
/* Carousel: price, purchasing and square transport controls. */
.gp-home .rc6-footer{grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end}
.gp-home .rc6-purchase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;margin-top:14px;max-width:420px}
.gp-home .rc6 .rc6-add{font-size:11px;letter-spacing:.1em;min-width:0;height:48px;min-height:48px;padding:12px 32px 12px 50px}
.gp-home .rc6 .rc6-explore{width:100%;max-width:100%;margin:0;height:48px;min-height:48px;padding:10px 14px;background:var(--gp-hifi-metal);font-size:10px!important;letter-spacing:.1em;gap:12px}
.gp-home .rc6-controls{gap:12px;padding-left:16px;align-items:center}
.gp-home :is(.rc6-arrow,.rc6-spin,.gp-arrow){width:44px;height:44px;min-height:44px;flex-basis:44px;padding:0;font-size:22px;letter-spacing:0}
.gp-home .rc6-card{border-color:#827b6b;box-shadow:inset 0 0 0 1px #11130f,inset 0 0 0 2px #c0b18d33,0 4px 12px #0008;border-radius:0}
.gp-home .rc6-card-label{background:var(--gp-hifi-metal);border-top:1px solid #625d50}
.gp-home .rc6-card-arrow{border-radius:0;border-color:#9c9178;color:#d8c6a3}
.gp-home .rc6-card[aria-pressed=true]{border-color:#dcac62;box-shadow:inset 0 0 0 1px #17190f,0 0 10px #dca85626}
.gp-home .rc6 .rc6-price{margin-top:8px!important;gap:12px}
.gp-home .rc6 .rc6-price strong{font-size:24px;letter-spacing:-.02em}
/* Quiet links stay quiet; the indicator carries the on/off state. */
.gp-home .gp-text-link{letter-spacing:.06em;font-size:12px;text-transform:uppercase;border-bottom:1px solid #ac8f64;transform:none}
.gp-home .gp-text-link:hover{color:#d7ac78;transform:none}
.gp-home .gp-chain-node{border-radius:0!important}
.gp-home .gp-chain-node[aria-pressed=true]{box-shadow:inset 0 -2px #dfa64e;background-color:#191b15}
.gp-home .gp-faq summary>span{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;color:#e6d2b0;background:var(--gp-hifi-metal);border:1px solid #8b806b;box-shadow:var(--gp-hifi-shadow);border-radius:0;line-height:1}
.gp-home .gp-faq summary{gap:24px}
.gp-home .gp-faq details[open] summary>span{color:#ffc36a}
.gp-home .gp-motion-control{color:#dec9a5;text-transform:uppercase;letter-spacing:.1em}
.gp-home .gp-makers .gp-button{border-radius:0;min-height:48px;font-size:12px;letter-spacing:.13em;padding:14px 24px}
/* The engine owns cart I/O, focus trap and state. Its button !important fills
   are fed material variables, with the intentional scoped override below. */
.gp-cart-drawer{--btn-radius:0;--radius-control:0;--btn-primary-bg:#c7a77a;--btn-primary-hover:#dfc49b;--btn-primary-text:#17160f;--btn-primary-hover-text:#17160f}
.gp-cart-drawer .hzo-btn--primary{background:var(--gp-hifi-gold)!important;color:#17160f!important;border-color:#d7c8ae;font-size:12px;letter-spacing:.13em}
.gp-cart-drawer .hzo-btn--primary:hover{background:var(--gp-hifi-gold)!important}
.gp-cart-drawer .hzo-drawer__close,.gp-cart-drawer .hzo-minicart__step,.gp-cart-drawer .hzo-minicart__remove{width:44px;height:44px;min-height:44px;padding:0;font-size:22px;letter-spacing:0}
.gp-cart-drawer .hzo-minicart__remove{color:#e2a087!important;border-color:#8d6550}
.gp-cart-drawer .hzo-minicart__qty{border-radius:0;border:0;gap:0;background:#151712}
.gp-cart-drawer .hzo-minicart__count{min-width:36px;color:#f1e9dc}
.gp-cart-drawer .hzo-drawer__header{background:var(--gp-hifi-metal)}
@media(max-width:1399px) and (min-width:1200px){.gp-home .gp-precision-header .gp-desktop-nav{gap:16px}.gp-home .gp-header-actions{gap:12px}.gp-home .gp-header-shop{padding-inline:12px}}
@media(max-width:1100px) and (min-width:901px){.gp-home .rc6-footer{display:block}.gp-home .rc6-controls{border:0;justify-content:flex-start;padding:16px 0 0}}
@media(max-width:900px){.gp-home .rc6-footer{grid-template-columns:minmax(0,1fr) auto;gap:16px}.gp-home .rc6-meta{display:block}.gp-home .rc6-purchase{gap:8px;margin-top:10px}.gp-home .rc6 .rc6-add{font-size:10px;min-width:0}.gp-home .rc6 .rc6-price strong{font-size:20px}.gp-home .rc6 .rc6-explore{font-size:9px!important}}
@media(max-width:600px){.gp-home .gp-header-actions{gap:8px}.gp-home .gp-header-cart{padding:5px 6px;min-width:36px;gap:3px}.gp-home .gp-header-shop{font-size:10px;padding-inline:9px;border-inline-width:4px;letter-spacing:.05em}.gp-home .gp-header-shop::before{display:none}.gp-home .gp-button{font-size:11px;letter-spacing:.08em;padding:13px 18px}.gp-home .rc6-footer{display:block}.gp-home .rc6-controls{justify-content:center;padding:12px 0 0;max-width:280px;margin:auto}.gp-home .rc6 .rc6-purchase{flex-wrap:nowrap}.gp-home .rc6 .rc6-explore{padding-inline:10px;min-width:0;gap:8px}.gp-home .rc6 .rc6-add{flex:1;min-width:0;max-width:none;min-height:48px;padding-left:43px;padding-right:26px;letter-spacing:.06em}.gp-home .rc6-add::before{width:36px;height:36px;left:3px}.gp-home .rc6-add::after{right:8px;width:10px;height:10px}.gp-home .rc6-summary{font-size:11px;max-width:42ch}.gp-home .rc6 .rc6-price{margin-top:7px!important}.gp-home .rc6 .rc6-price span{font-size:9px}.gp-home .rc6 .rc6-price strong{font-size:20px}.gp-home .rc6-category{font-size:8px!important}.gp-home .rc6-eyebrow{font-size:8px!important}}
@media(max-width:359px){.gp-home .gp-header-actions{gap:4px}.gp-home .gp-header-shop{font-size:9px;padding-inline:6px}.gp-home .rc6 .rc6-add{font-size:9px}.gp-home .rc6 .rc6-explore{font-size:8px!important;padding-inline:7px}.gp-home .rc6 .rc6-explore span:last-child{font-size:16px}}
@media(prefers-reduced-motion:reduce){.gp-hifi,.gp-hifi::before,.gp-hifi::after{animation:none!important;transition:none!important}}
@media(max-width:600px){.gp-home .rc6-board{min-height:760px}}
/* Woo's post-add page link is redundant here: the cart drawer opens on success. */
.gp-home .rc6-purchase>a.added_to_cart{display:none}
.gp-cart-drawer .hzo-minicart__subtotal-value{font-family:Manrope,'GP Manrope',Arial,sans-serif;font-size:22px;font-weight:500}
body.gp-homepage .hzo-toast{background:var(--gp-hifi-metal);color:#f1e9dc;border:1px solid #827b6b;border-left:4px solid #dfa94f;border-radius:0;box-shadow:0 8px 24px #0006;font-family:Manrope,'GP Manrope',Arial,sans-serif}
body.gp-homepage .hzo-toast--error{border-left-color:#d48b6b}
body.gp-homepage .hzo-toast__close{width:44px;height:44px;min-height:44px;display:grid;place-items:center;color:#f1e9dc;border:1px solid #827b6b;border-radius:0;background:var(--gp-hifi-metal);box-shadow:var(--gp-hifi-shadow)}
body.gp-homepage .hzo-toast__action{color:#e9c38b;border-radius:0}

/* Keep transient notices above cart contents and away from the checkout footer.
   Assertive errors retain a separate lane to avoid overlapping success notices. */
body.gp-homepage .hzo-toast-region:not(.hzo-toast-region--assertive){top:calc(env(safe-area-inset-top,0px) + 80px);bottom:auto;max-height:calc(100dvh - 280px);overflow-y:auto}
body.gp-homepage .hzo-toast-region--assertive{left:24px;right:auto;top:calc(env(safe-area-inset-top,0px) + 80px);bottom:auto}
@media(max-width:600px){body.gp-homepage .hzo-toast-region--assertive{top:calc(env(safe-area-inset-top,0px) + 168px);left:16px;right:16px}}

/* Cart notices reserve their own row instead of covering products or actions. */
.gp-cart-drawer .gp-cart-feedback{flex:0 0 auto;max-height:min(28dvh,240px);overflow:auto;overscroll-behavior:contain;background:#11130f;border-bottom:1px solid #514936;padding:16px 24px}
.gp-cart-drawer .gp-cart-feedback[hidden]{display:none}
body.gp-homepage .gp-cart-feedback .hzo-toast-region{position:static;inset:auto;width:auto;max-height:none;overflow:visible;gap:8px}
.gp-cart-feedback .hzo-toast-region:empty{display:none}
.gp-cart-feedback .hzo-toast-region+.hzo-toast-region:not(:empty){margin-top:8px}
body.gp-homepage .gp-cart-feedback .hzo-toast{margin:0;box-shadow:none;align-items:center;background:#1b1e16;padding:8px 16px;min-height:56px}
body.gp-homepage .gp-cart-feedback .hzo-toast__close{width:32px;height:44px;min-height:44px;background:transparent;box-shadow:none;border:0}
@media(max-width:600px){.gp-cart-drawer .gp-cart-feedback{padding:8px 16px}}
