/* Components. Reads tokens.css; nothing here is a literal colour. */

/* ---------- utilities ---------- */
.lg-hidden { display: inline-flex; }
@media (min-width: 64rem) { .lg-hidden { display: none !important; } }
.sm-only-hidden { display: none; }
@media (min-width: 40rem) { .sm-only-hidden { display: inline-flex; } }
.btn-block { width: 100%; }
.is-disabled { opacity: .55; pointer-events: none; }
.is-gold { color: var(--color-gold-bright) !important; }
.mt { margin-top: 1.25rem; }
.count { font-size: var(--text-xs); color: var(--fg-muted); }
.link-btn { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; font-size: inherit; }

/* ---------- announce ---------- */
.announce { font-size: .8125rem; }
.announce__row { display: flex; gap: 1.5rem; justify-content: center; align-items: center; min-height: 36px; }
.announce p { margin: 0; display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.announce { overflow: hidden; }
.announce p.announce__secondary { display: none; color: var(--fg-muted); }
@media (min-width: 48rem) { .announce p.announce__secondary { display: inline-flex; } }

/* ---------- header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--header-bg); color: var(--header-fg); backdrop-filter: blur(var(--blur-md)); border-bottom: 1px solid var(--line); }
.site-header__row { display: flex; align-items: center; gap: 1rem; height: var(--header-h); }
.brand { display: inline-flex; align-items: center; gap: .6rem; flex-shrink: 0; }
.brand:hover { color: inherit; opacity: .85; }
.brand__img { height: clamp(48px, 6vw, 68px); width: auto; }
.brand--footer { display: inline-block; }
.brand__img--footer { height: auto; width: clamp(160px, 22vw, 210px); margin-bottom: .25rem; }
.brand__mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--color-ink); color: var(--color-gold-bright); font-family: var(--font-display); font-weight: 800; letter-spacing: -.04em; }
.dark-surface .brand__mark { background: var(--color-gold-bright); color: var(--color-ink); }
.brand__text { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; letter-spacing: -.02em; line-height: 1.1; }
.primary-nav { display: none; align-items: center; gap: .15rem; margin-left: 1.25rem; }
@media (min-width: 64rem) { .primary-nav { display: flex; } }
.primary-nav__link { display: inline-flex; align-items: center; gap: .25rem; padding: .5rem .85rem; border-radius: var(--radius-pill); font-family: var(--font-display); font-size: .875rem; font-weight: 600; color: var(--fg); transition: background-color var(--dur), color var(--dur); }
.primary-nav__link:hover, .mega:hover > .primary-nav__link, .mega:focus-within > .primary-nav__link { background: var(--bg-sunken); color: var(--accent); }
.site-header__actions { margin-left: auto; display: flex; align-items: center; gap: .15rem; }
.cart-btn { position: relative; }
.cart-count { position: absolute; top: 0; right: 0; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--color-ink); color: #fff; font-family: var(--font-display); font-size: 11px; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.cart-count[data-n="0"] { display: none; }
.dark-surface .cart-count { background: var(--color-gold-bright); color: var(--color-ink); }

/* ---------- mega menu ---------- */
.mega { position: relative; }
.mega__panel { position: absolute; left: 0; top: 100%; z-index: 40; width: min(58rem, calc(100vw - 4rem)); padding-top: .75rem; visibility: hidden; opacity: 0; transform: translateY(.5rem); transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), visibility 0s linear var(--dur); }
.mega:hover .mega__panel, .mega:focus-within .mega__panel, .mega.is-open .mega__panel { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.mega__grid { display: grid; grid-template-columns: repeat(3, 1fr) 15rem; border: 1px solid var(--line); border-radius: var(--radius-2xl); background: var(--bg-raised); box-shadow: var(--shadow-lift); overflow: hidden; }
.mega__col { padding: 1.25rem; border-right: 1px solid var(--line); }
.mega__col:last-child { border-right: 0; }
.mega__col ul { list-style: none; margin: .6rem 0 0; padding: 0; display: grid; gap: .1rem; }
.mega__col li a { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .4rem .6rem; border-radius: var(--radius-lg); font-size: .845rem; color: var(--fg); }
.mega__col li a:hover { background: var(--bg-sunken); color: var(--accent); }
.mega__col li a.is-accent { color: var(--accent); font-weight: 600; }
.mega__sizes { display: flex !important; flex-wrap: wrap; gap: .35rem !important; }
.mega__sizes li a { padding: .25rem .6rem; border: 1px solid var(--line); border-radius: var(--radius-pill); font-size: .78rem; }
.mega__featured { display: flex; flex-direction: column; gap: .6rem; align-items: flex-start; }
.mega__featured-title { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; line-height: 1.2; margin: 0; }
.mega__featured .muted { font-size: .845rem; margin: 0; }
.mega__featured-link { display: inline-flex; align-items: center; gap: .3rem; font-size: .845rem; color: var(--accent); margin-top: auto; }

/* ---------- drawers (mobile nav, cart) ---------- */
.drawer { position: fixed; inset: 0; z-index: 70; }
.drawer[hidden] { display: none; }
.drawer__overlay { position: absolute; inset: 0; background: rgb(0 0 0 / .55); backdrop-filter: blur(2px); opacity: 0; transition: opacity var(--dur-slow); }
.drawer.is-open .drawer__overlay { opacity: 1; }
.drawer__panel { position: absolute; top: 0; bottom: 0; display: flex; flex-direction: column; background: var(--bg-raised); color: var(--fg); box-shadow: var(--shadow-drawer); }
.drawer--left .drawer__panel { left: 0; width: min(21rem, 88vw); translate: -100% 0; }
.drawer--right .drawer__panel { right: 0; width: min(28rem, 100vw); translate: 100% 0; }
.drawer.is-open .drawer__panel { translate: 0 0; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; height: var(--header-h); padding: 0 1rem 0 1.25rem; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.drawer__head .h3 { margin: 0; }
.drawer__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 1rem .75rem; }
.drawer__foot { flex-shrink: 0; padding: 1rem; border-top: 1px solid var(--line); }
.mnav__top { display: block; padding: .65rem .75rem; border-radius: var(--radius-xl); font-family: var(--font-display); font-weight: 700; font-size: .95rem; }
.mnav__top:hover { background: var(--bg-sunken); }
.drawer__body .eyebrow { margin: 1.1rem .75rem .35rem; }
.mnav__list { list-style: none; margin: 0; padding: 0; }
.mnav__list a { display: flex; justify-content: space-between; align-items: center; padding: .6rem .75rem; border-radius: var(--radius-xl); font-size: .875rem; }
.mnav__list a:hover { background: var(--bg-sunken); color: var(--accent); }
.mnav__list--muted a { color: var(--fg-muted); }

/* cart drawer */
.cart-drawer__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.cart-drawer__foot { flex-shrink: 0; padding: 1.1rem 1.25rem; border-top: 1px solid var(--line); display: grid; gap: .5rem; }
.cart-empty { padding: 3rem 1.5rem; text-align: center; display: grid; gap: .75rem; justify-items: center; }
.cart-lines { list-style: none; margin: 0; padding: 0; }
.cart-line { display: flex; gap: .9rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--line); position: relative; }
.cart-line__img { width: 76px; height: 76px; flex-shrink: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-sunken); overflow: hidden; display: grid; place-items: center; }
.cart-line__img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.cart-line__main { min-width: 0; flex: 1; }
.cart-line__name { display: block; font-family: var(--font-display); font-weight: 600; font-size: .875rem; line-height: 1.3; padding-right: 1.5rem; }
.cart-line__variant { margin: .15rem 0 0; font-size: .78rem; color: var(--fg-muted); }
.cart-line__row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .6rem; }
.cart-line__price { font-family: var(--font-display); font-weight: 700; font-size: .9rem; }
.cart-line__remove { position: absolute; top: .9rem; right: 1rem; color: var(--fg-muted); padding: .25rem; border-radius: var(--radius-pill); }
.cart-line__remove:hover { color: var(--color-sale); background: var(--bg-sunken); }
.qty { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-pill); }
.qty button { width: 30px; height: 30px; display: grid; place-items: center; color: var(--fg-muted); border-radius: var(--radius-pill); font-size: 1rem; }
.qty button:hover { color: var(--fg); background: var(--bg-sunken); }
.qty span { min-width: 28px; text-align: center; font-family: var(--font-display); font-weight: 600; font-size: .85rem; }
.cart-progress { padding: 0 0 .5rem; }
.cart-progress__label { margin: 0 0 .4rem; font-size: .8rem; color: var(--fg-muted); }
.cart-progress__bar { height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; }
.cart-progress__bar span { display: block; height: 100%; background: var(--accent); transition: width .5s var(--ease-out); }
.cart-totals { margin: 0; display: grid; gap: .3rem; }
.cart-totals div { display: flex; justify-content: space-between; font-size: .9rem; }
.cart-totals dt { color: var(--fg-muted); }
.cart-totals dd { margin: 0; font-family: var(--font-display); font-weight: 700; }
.cart-note { margin: .25rem 0 0; display: flex; justify-content: center; align-items: center; gap: .35rem; font-size: .72rem; color: var(--fg-muted); text-align: center; }
body.drawer-open { overflow: hidden; }

/* ---------- search overlay ---------- */
.overlay { position: fixed; inset: 0; z-index: 80; }
.overlay[hidden] { display: none; }
.overlay__scrim { position: absolute; inset: 0; background: rgb(0 0 0 / .55); backdrop-filter: blur(4px); opacity: 0; transition: opacity var(--dur); }
.overlay.is-open .overlay__scrim { opacity: 1; }
.overlay__panel { position: absolute; inset-inline: 0; top: 0; margin: 0 auto; width: 100%; max-width: 42rem; max-height: 86vh; display: flex; flex-direction: column; background: var(--bg-raised); border-radius: 0 0 var(--radius-2xl) var(--radius-2xl); box-shadow: var(--shadow-lift); transform: translateY(-.5rem); opacity: 0; transition: transform var(--dur) var(--ease-out), opacity var(--dur); }
.overlay.is-open .overlay__panel { transform: none; opacity: 1; }
@media (min-width: 48rem) { .overlay__panel { top: 4rem; border-radius: var(--radius-2xl); } }
.search-bar { display: flex; align-items: center; gap: .75rem; padding: 0 1rem; height: 60px; border-bottom: 1px solid var(--line); color: var(--fg-muted); }
.search-bar input { flex: 1; border: 0; background: none; font-size: 1rem; color: var(--fg); height: 100%; outline: none; }
.search-bar kbd { display: none; border: 1px solid var(--line); border-radius: 6px; padding: 2px 6px; font-family: var(--font-display); font-size: .7rem; }
@media (min-width: 48rem) { .search-bar kbd { display: inline; } }
.search-results { overflow-y: auto; overscroll-behavior: contain; padding: .75rem; }
.search-results .eyebrow { padding: .5rem .5rem .4rem; }
.search-chips { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0 .5rem .75rem; }
.search-cats { list-style: none; margin: 0; padding: 0 .25rem .25rem; display: grid; grid-template-columns: 1fr 1fr; gap: .15rem; }
.search-cats a { display: flex; justify-content: space-between; padding: .5rem .65rem; border-radius: var(--radius-lg); font-size: .82rem; }
.search-cats a:hover { background: var(--bg-sunken); }
.search-hit { display: flex; align-items: center; gap: .75rem; padding: .5rem; border-radius: var(--radius-xl); }
.search-hit:hover { background: var(--bg-sunken); }
.search-hit img { width: 48px; height: 48px; object-fit: contain; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--bg-sunken); padding: 2px; }
.search-hit__name { font-family: var(--font-display); font-weight: 600; font-size: .85rem; line-height: 1.3; }
.search-hit__meta { font-size: .75rem; color: var(--fg-muted); }
.search-hit__price { margin-left: auto; font-family: var(--font-display); font-weight: 700; font-size: .85rem; white-space: nowrap; }
.search-empty { padding: 1.5rem .5rem; color: var(--fg-muted); font-size: .875rem; }

/* ---------- footer ---------- */
.site-footer { margin-top: 6rem; border-top: 1px solid var(--line); }
.footer-news { border-bottom: 1px solid var(--line); }
.footer-news__grid { display: grid; gap: 2rem; padding-block: 3.5rem; align-items: center; }
@media (min-width: 64rem) { .footer-news__grid { grid-template-columns: 1.1fr 1fr; } }
.footer-news .h2 { color: #fff; margin: .6rem 0 .5rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.footer-news .muted { margin: 0; font-size: .9rem; }
.footer-news__form { display: grid; gap: .6rem; grid-template-columns: 1fr auto; align-items: start; }
.footer-news__form .input { background: var(--bg-sunken); border-color: var(--line); color: var(--fg); }
.footer-news__form .help { grid-column: 1 / -1; margin: 0; }
.footer-main { display: grid; gap: 2.5rem; padding-block: 3.5rem; }
@media (min-width: 48rem) { .footer-main { grid-template-columns: 1fr 1fr; } }
@media (min-width: 64rem) { .footer-main { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer-brand .muted { max-width: 22rem; font-size: .85rem; margin: 1rem 0; }
.footer-contact, .footer-main nav ul { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .55rem; font-size: .85rem; color: var(--fg-muted); }
.footer-main nav a:hover { color: #fff; }
.footer-main nav a.is-accent { color: var(--accent); font-weight: 600; }
.footer-social { display: flex; gap: .5rem; margin-top: 1.25rem; }
.footer-social a { padding: .35rem .75rem; border: 1px solid var(--line); border-radius: var(--radius-pill); font-size: .8rem; }
.footer-notice { border-top: 1px solid var(--line); padding-block: 1.5rem; }
.footer-notice__box { margin: 0; display: flex; gap: .6rem; align-items: flex-start; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--bg-raised); font-size: .8rem; line-height: 1.55; color: var(--fg-muted); }
.footer-notice__box strong { color: #fff; }
.footer-notice__box a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.footer-bottom { border-top: 1px solid var(--line); }
.footer-bottom__row { display: flex; flex-direction: column; gap: 1rem; padding-block: 1.5rem; }
@media (min-width: 40rem) { .footer-bottom__row { flex-direction: row; align-items: center; justify-content: space-between; } }
.footer-legal { margin: 0; font-size: .78rem; color: var(--fg-muted); }
.footer-pay { list-style: none; margin: 0; padding: 0; display: flex; gap: .4rem; flex-wrap: wrap; }
.footer-pay .badge { background: var(--bg-raised); color: var(--fg-muted); border: 1px solid var(--line); }

/* ---------- cookie banner ---------- */
.cookie { position: fixed; inset-inline: 0; bottom: 0; z-index: 75; padding: .75rem; }
.cookie[hidden] { display: none; }
.cookie__card { margin: 0 auto; max-width: 48rem; padding: 1.25rem; box-shadow: var(--shadow-lift); display: flex; gap: 1rem; align-items: flex-start; }
.cookie__icon { display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; border-radius: var(--radius-pill); background: var(--bg-sunken); }
.cookie__main { flex: 1; }
.cookie__title { margin: 0 0 .35rem; font-family: var(--font-display); font-weight: 700; font-size: .95rem; }
.cookie__main .muted { margin: 0; font-size: .82rem; }
.cookie__detail { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); display: grid; gap: .5rem; font-size: .82rem; }
.cookie__detail label { display: flex; gap: .5rem; align-items: flex-start; }
.cookie__actions { margin-top: 1.1rem; display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---------- whatsapp widget ---------- */
.wa { position: fixed; right: 1rem; bottom: 1.25rem; z-index: 68; display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; transition: translate var(--dur-slow) var(--ease-out), opacity var(--dur-slow); }
.wa.is-hidden { translate: 0 120%; opacity: 0; pointer-events: none; }
body.cookie-visible .wa { bottom: 9rem; }
.wa__launcher { width: 56px; height: 56px; border-radius: var(--radius-pill); background: #25d366; color: #fff; display: grid; place-items: center; box-shadow: var(--shadow-lift); transition: transform .18s var(--ease-out); }
.wa__launcher:hover { transform: scale(1.05); }
.wa__panel { width: min(21rem, calc(100vw - 2rem)); overflow: hidden; transform-origin: bottom right; }
.wa__panel[hidden] { display: none; }
.wa__head { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; background: #075e54; color: #fff; }
.wa__avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--radius-pill); background: #25d366; flex-shrink: 0; }
.wa__title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: .875rem; }
.wa__title .muted { color: rgb(255 255 255 / .6); font-weight: 400; }
.wa__status { margin: .1rem 0 0; display: flex; align-items: center; gap: .35rem; font-size: .75rem; color: rgb(255 255 255 / .75); }
.wa__dot { width: 7px; height: 7px; border-radius: 50%; background: rgb(255 255 255 / .4); }
.wa__dot.is-online { background: #4ade80; }
.wa__head .btn { margin-left: auto; color: rgb(255 255 255 / .8); }
.wa__canvas { padding: 1.1rem 1rem; background: #efeae2 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' opacity='.06'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/svg%3E"); color: #111; }
.wa__bubble { max-width: 16rem; background: #fff; border-radius: 12px 12px 12px 4px; padding: .65rem .8rem; box-shadow: 0 1px 1.5px rgb(0 0 0 / .08); }
.wa__bubble p { margin: 0; font-size: .82rem; line-height: 1.5; }
.wa__time { display: block; text-align: right; font-size: .65rem; color: rgb(0 0 0 / .4); margin-top: .25rem; }
.wa__context { margin: .5rem 0 0; font-size: .72rem; color: rgb(0 0 0 / .55); }
.wa__pick { margin: 1rem 0 .4rem; font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: rgb(0 0 0 / .4); }
.wa__chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.wa__chips .chip { background: #fff; border-color: rgb(0 0 0 / .1); font-size: .78rem; }
.wa__form { display: flex; gap: .5rem; padding: .75rem; border-top: 1px solid var(--line); background: var(--bg-raised); }

/* ---------- product card (shared by home, shop, search) ---------- */
.product-card { position: relative; display: flex; flex-direction: column; }
.product-card__media { position: relative; aspect-ratio: 1; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--bg-raised); }
.product-card__media img { width: 100%; height: 100%; object-fit: contain; padding: 1.25rem; transition: opacity .5s var(--ease-out), transform .5s var(--ease-out); }
.product-card__media img.is-alt { position: absolute; inset: 0; opacity: 0; transform: scale(1.05); }
@media (hover: hover) { .product-card:hover .product-card__media img.is-alt { opacity: 1; } .product-card:hover .product-card__media img.is-main { opacity: 0; } }
.product-card__badges { position: absolute; left: .6rem; top: .6rem; display: flex; flex-direction: column; gap: .35rem; pointer-events: none; }
.product-card__quick { position: absolute; inset-inline: .6rem; bottom: .6rem; transform: translateY(.5rem); opacity: 0; transition: opacity var(--dur), transform var(--dur); }
.product-card:hover .product-card__quick, .product-card:focus-within .product-card__quick { transform: none; opacity: 1; }
@media (hover: none) { .product-card__quick { transform: none; opacity: 1; } }
.product-card__body { padding-top: .75rem; display: flex; flex-direction: column; flex: 1; }
.product-card__eyebrow { font-size: .69rem; }
.product-card__title { margin: .35rem 0 0; font-family: var(--font-display); font-weight: 600; font-size: .875rem; line-height: 1.35; letter-spacing: -.01em; }
.product-card__title a::after { content: ""; position: absolute; inset: 0; }
.product-card__price { margin-top: .5rem; display: flex; align-items: baseline; gap: .5rem; font-family: var(--font-display); font-weight: 700; font-size: .95rem; }
.product-card__price del { color: var(--fg-muted); font-weight: 500; font-size: .8rem; }
.product-card__per { font-size: .72rem; color: var(--fg-muted); font-weight: 500; }
.product-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem 1rem; }
@media (min-width: 48rem) { .product-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem 1.25rem; } }
@media (min-width: 80rem) { .product-grid { grid-template-columns: repeat(4, 1fr); } }

/* ---------- toast ---------- */
.toast { position: fixed; left: 50%; bottom: 1.5rem; translate: -50% 0; z-index: 90; padding: .7rem 1rem; border-radius: var(--radius-pill); background: var(--color-ink); color: #fff; font-size: .85rem; box-shadow: var(--shadow-lift); opacity: 0; transition: opacity var(--dur); pointer-events: none; }
.toast.is-on { opacity: 1; }

/* ---------- very small phones ---------- */
@media (max-width: 22.5rem) {
  .brand__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .site-header__row { gap: .5rem; }
  .announce p { white-space: normal; text-align: center; font-size: .75rem; }
}

/* ---------- breadcrumbs ---------- */
.crumbs { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .78rem; color: var(--fg-muted); padding-top: 1.25rem; }
.crumbs a:hover { color: var(--accent); }

/* ---------- archive ---------- */
.archive__head { padding-bottom: 1.5rem; }
.archive__title { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.archive__title h1 { margin-bottom: .25rem; }
.archive__title .lede { font-size: 1rem; }
.archive__title .muted { margin: 0; white-space: nowrap; }
.archive__layout { display: grid; gap: 2rem; align-items: start; padding-bottom: 3rem; }
@media (min-width: 64rem) { .archive__layout { grid-template-columns: 15rem 1fr; } }
.archive__filter-toggle { justify-self: start; }
@media (min-width: 64rem) { .archive__filter-toggle { display: none; } }
.archive__filters { display: none; }
@media (min-width: 64rem) { .archive__filters { display: block; position: sticky; top: calc(var(--header-h) + 1rem); } }
.archive__filters.is-open { display: block; position: fixed; inset: 0; z-index: 70; background: var(--bg-raised); overflow-y: auto; padding: 1rem 1.25rem 2rem; }
.archive__filters-head { display: flex; align-items: center; gap: .75rem; margin-bottom: .5rem; }
.archive__filters-head .eyebrow { margin: 0; flex: 1; }
.archive__filters-close { display: none; }
.archive__filters.is-open .archive__filters-close { display: inline-flex; }
.facet { border: 0; margin: 0 0 1.25rem; padding: 0 0 1.25rem; border-bottom: 1px solid var(--line); min-width: 0; }
.facet legend { font-family: var(--font-display); font-weight: 700; font-size: .85rem; padding: 0; margin-bottom: .5rem; }
.facet ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.facet__opt { display: flex; align-items: center; gap: .55rem; padding: .35rem .4rem; border-radius: var(--radius-md); font-size: .84rem; color: var(--fg); }
.facet__opt:hover { background: var(--bg-sunken); color: var(--fg); }
.facet__opt .count { margin-left: auto; }
.facet__box { width: 16px; height: 16px; border: 1.5px solid var(--line); border-radius: 4px; display: grid; place-items: center; background: var(--bg-raised); color: #fff; flex-shrink: 0; }
.facet__opt.is-on .facet__box { background: var(--color-ink); border-color: var(--color-ink); }
.facet__radio { width: 16px; height: 16px; border: 1.5px solid var(--line); border-radius: 50%; flex-shrink: 0; }
.facet__opt.is-on .facet__radio { border: 5px solid var(--color-ink); }
.chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.25rem; }
.chips .chip svg { opacity: .7; }
.pager { margin-top: 2.5rem; }
.pager .nav-links { display: flex; justify-content: center; gap: .35rem; flex-wrap: wrap; }
.pager .page-numbers { display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 .75rem; border: 1px solid var(--line); border-radius: var(--radius-pill); font-family: var(--font-display); font-weight: 600; font-size: .85rem; }
.pager .page-numbers.current { background: var(--color-ink); color: #fff; border-color: var(--color-ink); }
.pager .page-numbers.prev svg { transform: rotate(180deg); }
.archive__body { padding-block: 2rem 3rem; display: grid; gap: 2.5rem; }
@media (min-width: 64rem) { .archive__body { grid-template-columns: 1.2fr 1fr; } }
.faq h2 { font-size: var(--text-h3); }
.acc { border-top: 1px solid var(--line); }
.acc:last-of-type { border-bottom: 1px solid var(--line); }
.acc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; font-family: var(--font-display); font-weight: 600; font-size: .95rem; }
.acc summary::-webkit-details-marker { display: none; }
.acc__icon { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--line); border-radius: 50%; font-weight: 500; flex-shrink: 0; transition: transform var(--dur); }
.acc[open] .acc__icon { transform: rotate(45deg); }
.acc__body { padding: 0 2.5rem 1.25rem 0; font-size: .9rem; color: var(--fg-muted); }
.acc__body p:last-child { margin: 0; }

/* ---------- homepage ---------- */
.pt-0 { padding-top: 0 !important; }
.small { font-size: .8rem; }
.is-accent { color: var(--accent) !important; }
.hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero__glow { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .35; pointer-events: none; }
.hero__glow--a { left: -8rem; top: -10rem; width: 32rem; height: 32rem; background: var(--color-gold); }
.hero__glow--b { right: -10rem; top: 30%; width: 34rem; height: 34rem; background: #c9a22c; opacity: .18; }
.hero__grid { position: relative; display: grid; gap: 2.5rem; padding-block: 2.5rem 3rem; align-items: center; }
@media (min-width: 64rem) { .hero__grid { grid-template-columns: 1.05fr 1fr; gap: 4rem; padding-block: 3.5rem 4rem; } }
.pill { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .8rem; border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--bg-raised); font-size: .78rem; font-weight: 500; }
.pill__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--color-success); box-shadow: 0 0 0 4px rgb(30 122 75 / .25); }
.hero__title { font-size: clamp(2.25rem, 5.5vw, 4rem); margin: 1.25rem 0 0; letter-spacing: -.03em; }
.hero__lede { margin-top: 1.25rem; max-width: 32rem; font-size: 1.05rem; color: var(--fg-muted); }
.hero__cta { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.btn-lg { padding: 1rem 1.5rem; font-size: 1rem; }
.hero__trust { list-style: none; margin: 1.75rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .82rem; color: var(--fg-muted); }
.hero__trust li { display: inline-flex; align-items: center; gap: .4rem; }
.hero__showcase { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.hero__tile { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-raised); transition: transform var(--dur) var(--ease-out), box-shadow var(--dur); }
.hero__tile:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); color: inherit; }
.hero__tile--lead { grid-column: 1 / -1; border-radius: 20px; }
.hero__tile-img { aspect-ratio: 1; background: var(--bg-sunken); display: grid; place-items: center; }
.hero__tile--lead .hero__tile-img { aspect-ratio: 4 / 3; }
.hero__tile-img img { width: 100%; height: 100%; object-fit: contain; padding: 1.25rem; }
.hero__tile-meta { display: flex; justify-content: space-between; gap: .75rem; align-items: center; padding: .75rem 1rem; border-top: 1px solid var(--line); font-size: .82rem; }
.hero__tile-meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hero__tile-meta strong { font-family: var(--font-display); }
.why__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }
@media (min-width: 40rem) { .why__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 64rem) { .why__grid { grid-template-columns: repeat(4, 1fr); } }
.why__grid li { display: flex; gap: .9rem; align-items: flex-start; padding: 1.5rem 1rem; }
.why__grid strong { display: block; font-family: var(--font-display); font-size: .875rem; }
.why__grid small { display: block; margin-top: .25rem; font-size: .8rem; line-height: 1.5; color: var(--fg-muted); }
.why__icon { display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; background: var(--bg-sunken); color: var(--accent); }
.section-head .muted { margin: .25rem 0 0; font-size: .9rem; max-width: 36rem; }
.cat-grid { display: grid; gap: 1.25rem; }
@media (min-width: 40rem) { .cat-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 64rem) { .cat-grid { grid-template-columns: repeat(3, 1fr); } }
.cat-card { display: flex; flex-direction: column; overflow: hidden; }
.cat-card:hover { color: inherit; }
.cat-card__img { aspect-ratio: 4 / 3; background: var(--bg-sunken); display: grid; place-items: center; }
.cat-card__img img { width: 100%; height: 100%; object-fit: contain; padding: 1.5rem; }
.cat-card__body { padding: 1.25rem; display: flex; flex-direction: column; flex: 1; }
.cat-card__body h3 { margin: .4rem 0 .35rem; font-size: 1.2rem; }
.cat-card__body .muted { font-size: .85rem; flex: 1; margin: 0; }
.cat-card__cta { margin-top: 1rem; display: inline-flex; align-items: center; gap: .35rem; font-family: var(--font-display); font-weight: 600; font-size: .85rem; color: var(--accent); }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-raised); }
.size-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .9rem; text-align: left; }
.size-table thead th { background: var(--bg-sunken); padding: .85rem 1.25rem; font-family: var(--font-display); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--fg-muted); }
.size-table td, .size-table tbody th { padding: 1rem 1.25rem; border-top: 1px solid var(--line); }
.size-table tbody th { font-family: var(--font-display); font-weight: 600; white-space: nowrap; }
.size-table td { color: var(--fg-muted); }
.use-grid { display: grid; gap: 1.25rem; }
@media (min-width: 40rem) { .use-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 64rem) { .use-grid { grid-template-columns: repeat(3, 1fr); } }
.use-card { padding: 1.5rem; display: flex; flex-direction: column; }
.use-card:hover { color: inherit; }
.use-card h3 { font-size: 1.05rem; margin-bottom: .5rem; }
.use-card .muted { flex: 1; font-size: .88rem; }
.guide-grid { display: grid; gap: 1.25rem 3.5rem; }
@media (min-width: 48rem) { .guide-grid { grid-template-columns: 1fr 1fr; } }
.guide-grid p { font-size: .97rem; color: var(--fg-muted); margin: 0; }
.guide-grid strong { color: var(--fg); }
.guide-grid a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.brand-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 40rem) { .brand-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 64rem) { .brand-grid { grid-template-columns: repeat(3, 1fr); } }
.brand-card { display: flex; flex-direction: column; gap: .3rem; padding: 1.25rem; height: 100%; }
.brand-card:hover { color: inherit; }
.brand-card strong { font-family: var(--font-display); font-size: 1rem; }
.brand-card .muted { font-size: .82rem; margin: 0; }
.delivery-card { padding: 1.5rem; }
.delivery-card h3 { font-size: 1rem; }
.delivery-card .muted { margin: 0; font-size: .88rem; }
.trade { display: grid; gap: 2rem; padding: 2rem; }
@media (min-width: 48rem) { .trade { grid-template-columns: 1.3fr 1fr; padding: 3rem; align-items: center; } }
.trade h2 { margin-top: .5rem; }
.trade .muted { max-width: 32rem; }
.trade__list { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: .5rem; font-size: .88rem; }
@media (min-width: 40rem) { .trade__list { grid-template-columns: 1fr 1fr; } }
.trade__list li { display: flex; align-items: center; gap: .5rem; }
.trade__list svg { color: var(--color-success); }
.trade .hero__cta { margin-top: 1.5rem; }
.trade__box { padding: 1.5rem; border-radius: 16px; background: var(--bg-sunken); }
.trade__tiers { list-style: none; margin: 1rem 0 0; padding: 0; }
.trade__tiers li { display: flex; justify-content: space-between; padding: .65rem 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.trade__tiers strong { font-family: var(--font-display); }
.faq-section { display: grid; gap: 2rem; }
@media (min-width: 64rem) { .faq-section { grid-template-columns: 1fr 1.4fr; gap: 4rem; } .faq-section > div:first-child { position: sticky; top: calc(var(--header-h) + 2rem); align-self: start; } }
.faq-section .btn { margin-top: 1rem; }

/* ---------- product page ---------- */
.pdp__grid { display: grid; gap: 2.5rem; padding-block: 1.5rem 3rem; }
@media (min-width: 64rem) { .pdp__grid { grid-template-columns: 1.1fr 1fr; gap: 3.5rem; } .pdp__gallery { position: sticky; top: calc(var(--header-h) + 1rem); align-self: start; } }
.pdp__stage { aspect-ratio: 1; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--bg-raised); overflow: hidden; display: grid; place-items: center; }
.pdp__stage img { width: 100%; height: 100%; object-fit: contain; padding: 2rem; }
.pdp__noimg { color: var(--fg-muted); font-size: .9rem; }
.pdp__thumbs { list-style: none; margin: .75rem 0 0; padding: 0; display: flex; gap: .6rem; overflow-x: auto; }
.pdp__thumb { width: 80px; height: 80px; border: 2px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-raised); overflow: hidden; padding: 0; flex-shrink: 0; }
.pdp__thumb.is-on { border-color: var(--color-ink); }
.pdp__thumb img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.pdp__title { font-size: clamp(1.5rem, 3.6vw, 2.25rem); margin: .6rem 0 0; }
.pdp__price { margin-top: 1rem; font-family: var(--font-display); font-size: 1.75rem; font-weight: 800; }
.pdp__price .price del { color: var(--fg-muted); font-weight: 500; font-size: 1.1rem; }
.pdp__price .price ins { text-decoration: none; }
.pdp__price-note { margin: .35rem 0 0; font-size: .8rem; color: var(--fg-muted); }
.pdp__stock { margin: 1rem 0 0; display: inline-flex; align-items: center; gap: .5rem; font-size: .85rem; font-weight: 600; }
.pdp__stock .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-success); }
.pdp__stock.is-out .dot { background: var(--color-sale); }
.pdp__lede { margin-top: 1.25rem; color: var(--fg-muted); font-size: .95rem; }
.pdp__facts { list-style: none; margin: 1.25rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--line); display: grid; gap: .5rem; font-size: .85rem; color: var(--fg-muted); }
.pdp__facts li { display: flex; gap: .6rem; align-items: flex-start; }
.pdp__facts svg { color: var(--color-success); flex-shrink: 0; margin-top: 2px; }
.pdp__form { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.pdp__form .variations { width: 100%; border-collapse: collapse; margin-bottom: 1rem; }
.pdp__form .variations td, .pdp__form .variations th { display: block; padding: 0; border: 0; text-align: left; }
.pdp__form .variations tr { display: block; margin-bottom: 1.1rem; }
.pdp__form .variations label { font-family: var(--font-display); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
.pdp__form .variations select { margin-top: .5rem; }
.pdp__form .variations select.is-pilled { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.pills button { min-width: 2.75rem; padding: .55rem .9rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-raised); font-family: var(--font-display); font-size: .82rem; font-weight: 600; color: var(--fg); transition: border-color var(--dur), background var(--dur); }
.pills button:hover { border-color: var(--fg-muted); }
.pills button[aria-pressed="true"] { background: var(--color-ink); color: #fff; border-color: var(--color-ink); }
.pills button[disabled] { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
.pdp__form .reset_variations { font-size: .78rem; color: var(--fg-muted); }
.pdp__form .single_variation_wrap .woocommerce-variation-price { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; margin-bottom: .75rem; }
.pdp__form .woocommerce-variation-description { font-size: .85rem; color: var(--fg-muted); }
.pdp__form .woocommerce-variation-availability { font-size: .82rem; color: var(--fg-muted); margin-bottom: .5rem; }
.pdp__form .cart, .pdp__form .woocommerce-variation-add-to-cart { display: flex; gap: .75rem; align-items: stretch; }
.pdp__form .quantity { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-pill); }
.pdp__form .quantity input { width: 3rem; height: 48px; text-align: center; border: 0; background: none; font-family: var(--font-display); font-weight: 600; -moz-appearance: textfield; }
.pdp__form .quantity input::-webkit-inner-spin-button { -webkit-appearance: none; }
.pdp__form .quantity button { width: 44px; height: 48px; display: grid; place-items: center; color: var(--fg-muted); border-radius: var(--radius-pill); font-size: 1.1rem; }
.pdp__form .quantity button:hover { background: var(--bg-sunken); color: var(--fg); }
.pdp__form .single_add_to_cart_button { flex: 1; }
.pdp__form .single_add_to_cart_button.disabled { opacity: .5; }
.pdp__form .stock.out-of-stock { color: var(--color-sale); font-size: .85rem; }
.pdp__trust { list-style: none; margin: 1.5rem 0 0; padding: 1rem; border-radius: var(--radius-xl); background: var(--bg-sunken); display: grid; gap: .6rem; font-size: .8rem; color: var(--fg-muted); }
@media (min-width: 40rem) { .pdp__trust { grid-template-columns: 1fr 1fr; } }
.pdp__trust li { display: flex; align-items: center; gap: .5rem; }
.pdp__culinary { margin: 1.25rem 0 0; display: flex; gap: .6rem; align-items: flex-start; padding: .9rem 1rem; border: 1px solid color-mix(in srgb, var(--color-gold) 40%, transparent); border-radius: var(--radius-xl); font-size: .8rem; color: var(--fg-muted); line-height: 1.5; }
.pdp__culinary strong { color: var(--fg); }
.pdp__culinary a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.pdp__culinary svg { flex-shrink: 0; margin-top: 2px; }
.pdp__accs { margin-top: 1.75rem; }
.pdp__details-grid { display: grid; gap: 2.5rem; }
@media (min-width: 64rem) { .pdp__details-grid { grid-template-columns: 18rem 1fr; gap: 4rem; } }
.specs { margin: 0; border-top: 1px solid var(--line); }
.specs div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--line); font-size: .875rem; }
.specs dt { color: var(--fg-muted); }
.specs dd { margin: 0; font-weight: 500; text-align: right; }
.pdp__prose { max-width: 68ch; }
.pdp__prose h3 { margin-top: 1.75rem; }
.pdp__prose p { color: var(--fg-muted); }
.sticky-buy { position: fixed; inset-inline: 0; bottom: 0; z-index: 60; background: var(--bg-raised); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -12px rgb(0 0 0 / .2); transform: translateY(100%); transition: transform var(--dur-slow) var(--ease-out); }
.sticky-buy.is-on { transform: none; }
.sticky-buy[hidden] { display: none; }
.sticky-buy__row { display: flex; align-items: center; gap: .75rem; height: 64px; }
.sticky-buy__name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--font-display); font-weight: 600; font-size: .85rem; }
.sticky-buy__price { font-family: var(--font-display); font-weight: 700; }
@media (min-width: 64rem) { .sticky-buy { display: none; } }
body.sticky-buy-on .wa { bottom: 5.5rem; }
.woocommerce-Reviews { margin-top: 2rem; }
.woocommerce-notices-wrapper .woocommerce-message, .woocommerce-error, .woocommerce-info, .woocommerce-message { list-style: none; margin: 0 0 1rem; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-raised); font-size: .9rem; }
.woocommerce-error { border-color: var(--color-sale); }
.pdp__form .single_add_to_cart_button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button { font-family: var(--font-display); font-weight: 600; font-size: .9375rem; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .85rem 1.25rem; border-radius: var(--radius-pill); border: 1px solid transparent; background: var(--color-ink); color: #fff; cursor: pointer; transition: transform .18s var(--ease-out), background-color .18s; }
.pdp__form .single_add_to_cart_button:hover, .woocommerce button.button:hover { background: #000; color: #fff; }
.pdp__form .single_add_to_cart_button { min-height: 48px; }
.pdp__form .single_variation_wrap { margin-top: .5rem; }
.pdp__form .woocommerce-variation-add-to-cart { flex-wrap: wrap; }

/* ---------- classic cart / checkout / account ---------- */
.woocommerce-cart main, .woocommerce-checkout main, .woocommerce-account main { padding-block: 1.5rem 3rem; }
.page-title { margin-top: 1rem; }
.shop_table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.shop_table th { text-align: left; padding: .75rem .5rem; font-family: var(--font-display); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--fg-muted); border-bottom: 1px solid var(--line); }
.shop_table td { padding: 1rem .5rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.shop_table .product-thumbnail img { width: 72px; height: 72px; object-fit: contain; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-raised); padding: 4px; }
.shop_table .product-name a { font-family: var(--font-display); font-weight: 600; }
.shop_table .variation { font-size: .78rem; color: var(--fg-muted); margin: .2rem 0 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.shop_table .variation dt, .shop_table .variation dd { margin: 0; display: inline; }
.shop_table .product-remove a { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--fg-muted); text-decoration: none; }
.shop_table .product-remove a:hover { background: var(--bg-sunken); color: var(--color-sale); }
.shop_table .quantity { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-pill); }
.shop_table .quantity input { width: 3rem; height: 40px; text-align: center; border: 0; background: none; -moz-appearance: textfield; }
.shop_table .quantity input::-webkit-inner-spin-button { -webkit-appearance: none; }
.shop_table .quantity button { width: 36px; height: 40px; display: grid; place-items: center; color: var(--fg-muted); border-radius: var(--radius-pill); }
.shop_table .product-subtotal, .shop_table .product-price { font-family: var(--font-display); font-weight: 600; white-space: nowrap; }
.cart-grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 64rem) { .cart-grid { grid-template-columns: 1fr 22rem; } }
.woocommerce-cart-form .actions { padding-top: 1.25rem; display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.woocommerce-cart-form .coupon { display: flex; gap: .5rem; flex: 1; }
.woocommerce-cart-form .coupon .input-text { max-width: 16rem; }
.cart_totals, .woocommerce-checkout-review-order { padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--bg-raised); }
.cart_totals h2, .woocommerce-checkout-review-order h3 { font-size: 1.1rem; }
.cart_totals table th, .cart_totals table td { border-bottom: 1px solid var(--line); padding: .8rem 0; }
.cart_totals table th { text-transform: none; letter-spacing: 0; font-size: .9rem; color: var(--fg); font-weight: 500; }
.cart_totals .order-total td, .order-total td { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; }
.wc-proceed-to-checkout { margin-top: 1.25rem; }
.wc-proceed-to-checkout a { width: 100%; }
.woocommerce-shipping-destination { font-size: .8rem; color: var(--fg-muted); }
ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; font-size: .85rem; }
.checkout-grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 64rem) { .checkout-grid { grid-template-columns: 1.2fr 1fr; gap: 3rem; } }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { font-size: 1.1rem; margin: 1.5rem 0 .75rem; }
.form-row { display: grid; gap: .3rem; margin: 0 0 .9rem; }
.form-row label { font-size: .82rem; font-weight: 500; }
.form-row label .required { color: var(--color-sale); text-decoration: none; }
.form-row .optional { color: var(--fg-muted); font-weight: 400; }
.form-row-first, .form-row-last { display: inline-grid; width: calc(50% - .4rem); }
.form-row-first { margin-right: .8rem; }
.woocommerce-input-wrapper { display: block; }
.select2-container .select2-selection--single { height: 46px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-raised); }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: .95rem; color: var(--fg); }
.select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }
.select2-dropdown { border-color: var(--line); border-radius: var(--radius-lg); }
#ship-to-different-address label { display: inline-flex; gap: .5rem; align-items: center; font-size: .95rem; cursor: pointer; }
.woocommerce-checkout-review-order-table td, .woocommerce-checkout-review-order-table th { padding: .7rem 0; font-size: .9rem; }
.woocommerce-checkout-review-order-table .product-name { font-weight: 500; }
.woocommerce-checkout-review-order-table .product-quantity { color: var(--fg-muted); font-weight: 400; }
.wc_payment_methods { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .5rem; }
.wc_payment_method { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: .9rem 1rem; }
.wc_payment_method > label { display: flex; align-items: center; gap: .6rem; font-weight: 600; font-family: var(--font-display); font-size: .95rem; cursor: pointer; }
.wc_payment_method .payment_box { margin: .6rem 0 0 1.6rem; font-size: .85rem; color: var(--fg-muted); }
.wc_payment_method .payment_box p:last-child { margin: 0; }
.woocommerce-terms-and-conditions-wrapper { margin-top: 1rem; font-size: .85rem; }
.woocommerce-privacy-policy-text { color: var(--fg-muted); }
#place_order { width: 100%; margin-top: 1rem; min-height: 52px; font-size: 1rem; }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { display: flex; gap: .5rem; flex-wrap: wrap; }
.checkout_coupon, .woocommerce-form-login { padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); margin-bottom: 1rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: end; }
.woocommerce-order { display: grid; gap: 2rem; }
.woocommerce-thankyou-order-received { font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; }
.woocommerce-order-overview { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1rem; }
.woocommerce-order-overview li { padding: .9rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-raised); font-size: .8rem; color: var(--fg-muted); }
.woocommerce-order-overview li strong { display: block; color: var(--fg); font-family: var(--font-display); font-size: 1rem; margin-top: .2rem; }
.pay-box { padding: 1.5rem; border: 1px solid color-mix(in srgb, var(--color-gold) 50%, transparent); border-radius: var(--radius-card); background: var(--bg-raised); }
.pay-box h2 { font-size: 1.2rem; }
.woocommerce-customer-details address { font-style: normal; line-height: 1.6; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: .6rem .8rem; border-radius: var(--radius-lg); font-size: .9rem; }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--bg-sunken); color: var(--fg); }
.account-grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 64rem) { .account-grid { grid-template-columns: 14rem 1fr; } }
.woocommerce-form-login, .woocommerce-form-register { display: grid; gap: .5rem; max-width: 26rem; }
.u-columns { display: grid; gap: 2rem; }
@media (min-width: 48rem) { .u-columns { grid-template-columns: 1fr 1fr; } }
.woocommerce-orders-table .button { padding: .5rem .8rem; font-size: .8rem; margin-right: .25rem; }
.cart-empty.woocommerce-info { text-align: center; padding: 3rem 1rem; }
.return-to-shop { text-align: center; }
/* quick-add must sit above the card's stretched title link */
.product-card__title a::after { z-index: 1; }
.product-card__quick { z-index: 2; }
.product-card__badges { z-index: 2; }
/* cart + checkout two-column layouts (classic WooCommerce markup) */
.woocommerce-cart .woocommerce, .woocommerce-checkout form.checkout { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 64rem) { .woocommerce-cart .woocommerce { grid-template-columns: 1fr 24rem; } .woocommerce-checkout form.checkout { grid-template-columns: 1.15fr 1fr; gap: 3rem; } }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce > .cart-empty, .woocommerce-cart .woocommerce > .return-to-shop { grid-column: 1 / -1; }
.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 2; }
.woocommerce-checkout #order_review_heading { margin: 0 0 -1rem; font-size: 1.1rem; }
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.woocommerce-checkout .woocommerce-notices-wrapper, .woocommerce-checkout .woocommerce-form-login-toggle, .woocommerce-checkout .woocommerce-form-coupon-toggle, .woocommerce-checkout .checkout_coupon, .woocommerce-checkout .woocommerce-form-login { max-width: 40rem; }
.shop_table .product-thumbnail { width: 88px; }
.shop_table .product-thumbnail img { width: 80px; height: 80px; }
.shop_table .product-remove { width: 36px; }
.woocommerce-message .button { margin-left: .75rem; }
.woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 64rem) { .woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1fr) 24rem; } }
.woocommerce-cart .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-cart .woocommerce > .woocommerce-cart-form { grid-column: 1; min-width: 0; }
@media (min-width: 64rem) { .woocommerce-cart .woocommerce > .cart-collaterals { grid-column: 2; grid-row: span 2; } }
.shop_table td.product-thumbnail a img { width: 80px; height: 80px; max-width: none; }
.shop_table td.product-name { min-width: 14rem; }
.woocommerce-cart-form .coupon .input-text { min-width: 12rem; }

/* ---------- pages / policies / forms ---------- */
.page__head { padding-block: 1.25rem 1.5rem; }
.page__head h1 { margin: .5rem 0 .4rem; }
.page__layout { display: grid; gap: 2.5rem; padding-bottom: 4rem; align-items: start; }
@media (min-width: 64rem) { .page__layout--policy { grid-template-columns: 16rem 1fr; gap: 4rem; } }
.page__side { position: sticky; top: calc(var(--header-h) + 1rem); display: grid; gap: 1.25rem; }
.page__sidenav { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.page__sidenav a { display: block; padding: .45rem .6rem; border-radius: var(--radius-md); font-size: .875rem; }
.page__sidenav .is-on a, .page__sidenav a:hover { background: var(--bg-sunken); color: var(--fg); }
.page__help { padding: 1.1rem; display: grid; gap: .35rem; justify-items: start; }
.page__help .muted { margin: 0; font-size: .85rem; }
.page__content { max-width: 72ch; }
.page__content h2 { font-size: 1.35rem; margin-top: 2.25rem; }
.page__content h3 { font-size: 1.1rem; margin-top: 1.5rem; }
.page__content p, .page__content li { color: var(--fg-muted); }
.page__content li { margin-bottom: .35rem; }
.page__content strong { color: var(--fg); }
.page__content a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.page__content .btn { text-decoration: none; }
.page__content .not-prose p, .page__content .not-prose li { color: inherit; }
.page--wide .page__content { max-width: none; }
.ccc-form { display: grid; gap: .25rem; max-width: 40rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--bg-raised); margin: 1rem 0 2rem; }
.ccc-form .field label { color: var(--fg); }
.ccc-form .field--check label { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; color: var(--fg-muted); }
.ccc-form .btn { justify-self: start; margin-top: .5rem; }
.ccc-form .help { margin: .75rem 0 0; }
.hp { position: absolute; left: -9999px; }
.notice--ok { border-color: var(--color-success); }
.contact-details { display: grid; gap: 1rem; margin: 0; }
.contact-details div { padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-raised); }
.contact-details dt { font-family: var(--font-display); font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--fg-muted); }
.contact-details dd { margin: .25rem 0 0; color: var(--fg); }
.tiers { display: grid; gap: 1rem; margin: 1.5rem 0; }
@media (min-width: 48rem) { .tiers { grid-template-columns: repeat(3, 1fr); } }
.tier { padding: 1.5rem; display: flex; flex-direction: column; gap: .5rem; }
.tier--hi { border-color: var(--color-gold); box-shadow: var(--shadow-card); }
.tier h3 { margin: 0; }
.tier .tier__vol { font-family: var(--font-display); font-weight: 800; font-size: 1.5rem; color: var(--fg); }
.tier ul { margin: .5rem 0 1rem; padding-left: 1.1rem; font-size: .9rem; }
.tier .btn { margin-top: auto; align-self: start; }
.steps { counter-reset: s; list-style: none; padding: 0; display: grid; gap: .75rem; }
.steps li { counter-increment: s; display: flex; gap: .9rem; align-items: flex-start; }
.steps li::before { content: counter(s); display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; background: var(--color-ink); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: .8rem; }
.kv { width: 100%; border-collapse: collapse; font-size: .9rem; }
.kv th, .kv td { text-align: left; padding: .65rem .75rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.kv th { font-family: var(--font-display); font-weight: 600; color: var(--fg); white-space: nowrap; }
.page__content .faq-toc { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 2rem; }
.page__content a.btn-primary, .page__content .tier--hi a.btn-primary { color: #fff; }
.page__content a.btn-secondary, .page__content a.btn-ghost { color: var(--fg); }
.page__content a.btn-accent { color: var(--color-ink); }

/* ---------- language switcher ---------- */
.lang-switch { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--line); border-radius: var(--radius-pill); padding: 2px; }
.lang-switch__opt { display: inline-grid; place-items: center; min-width: 32px; height: 28px; padding: 0 .4rem; border-radius: var(--radius-pill); font-family: var(--font-display); font-weight: 700; font-size: .72rem; color: var(--fg-muted); letter-spacing: .02em; }
.lang-switch__opt:hover { color: var(--fg); }
.lang-switch__opt.is-on { background: var(--color-ink); color: #fff; }
.dark-surface .lang-switch__opt.is-on { background: var(--color-gold-bright); color: var(--color-ink); }
.lang-switch--header { margin-right: .25rem; }
.lang-switch--mobile { margin: 0 .75rem 1rem; }
@media (max-width: 24rem) { .lang-switch--header { display: none; } }
