/*
 * Generated from frozen PDP-001 prototype.
 * Source SHA-256: 717EB10E4636B2CFA43017911D5651ED5A2F45346F1EA85FF6B406B2B4D45F10
 * Demo product data is intentionally not copied into the child theme.
 */
:root { --ink:#1f2023; --muted:#676b70; --line:#e5e6e8; --page:#fff; --warm:#f7f7f5; --accent:#c8102e; }
    * { box-sizing:border-box; }
    body { margin:0; color:var(--ink); background:#fff; font:16px/1.5 Arial,Helvetica,sans-serif; }
    button { font:inherit; cursor:pointer; }
    button:focus-visible, a:focus-visible { outline:3px solid #9d7950; outline-offset:3px; }
    .skip { position:absolute; left:12px; top:8px; z-index:20; padding:8px 12px; color:#fff; background:#222; transform:translateY(-180%); }
    .skip:focus { transform:none; }
    .top { padding:13px 20px; color:#fff; background:#202124; border-bottom:3px solid var(--accent); }
    .top__inner, main { width:min(1160px, calc(100% - 32px)); margin:auto; }
    .top__inner { display:flex; align-items:center; justify-content:space-between; gap:18px; }
    .top a { color:#fff; text-decoration:none; font-weight:700; }
    .crumb { color:#ddd; font-size:14px; }
    .shopbar { border-bottom:1px solid #e5e6e8; background:#fff; }
    .shopbar__top { display:flex; align-items:center; justify-content:center; min-height:34px; padding:6px 16px; color:#fff; background:#202124; font-size:13px; }
    .shopbar__top strong { color:#f3d8a2; }
    .shopbar__main { display:grid; grid-template-columns:auto minmax(180px,240px) minmax(260px,1fr) auto; align-items:center; gap:20px; width:min(1160px,calc(100% - 32px)); min-height:92px; margin:auto; }
    .shopbar__menu { display:none; width:44px; height:44px; padding:8px; background:#fff; border:1px solid #dfe1e4; border-radius:8px; }
    .shopbar__menu svg,.shopbar__icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .shopbar__logo { display:block; width:220px; height:auto; }
    .shopbar__search { display:flex; align-items:center; height:46px; border:1px solid #b9bbc0; border-radius:4px; }
    .shopbar__search input { min-width:0; flex:1; height:100%; padding:0 14px; border:0; outline:0; font:inherit; }
    .shopbar__search button { width:48px; height:100%; padding:11px; background:#fff; border:0; }
    .shopbar__search svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
    .shopbar__actions { display:flex; gap:16px; }
    .shopbar__icon { position:relative; display:grid; justify-items:center; gap:2px; min-width:48px; color:#202124; text-decoration:none; font-size:11px; }
    .shopbar__icon svg { width:28px; height:28px; }
    .shopbar__badge { position:absolute; top:-4px; right:1px; display:grid; width:17px; height:17px; place-items:center; color:#fff; background:var(--accent); border-radius:50%; font-size:10px; }
    .shopbar__nav { display:flex; gap:24px; width:min(1160px,calc(100% - 32px)); margin:auto; padding:0 0 12px; }
    .shopbar__nav a { color:#202124; text-decoration:none; font-size:14px; font-weight:700; }
    .shopbar__drawer { position:fixed; inset:0 0 0 auto; z-index:40; display:none; width:min(360px,88vw); padding:72px 20px 24px; overflow:auto; background:#fff; box-shadow:-12px 0 30px rgba(0,0,0,.18); }
    .shopbar__drawer.is-open { display:grid; align-content:start; gap:0; }
    body#product.pdp-menu-open { overflow:hidden; }
    .shopbar__backdrop { position:fixed; inset:0; z-index:39; display:none; background:rgba(0,0,0,.42); }
    .shopbar__backdrop.is-open { display:block; }
    .shopbar__close { position:absolute; top:16px; right:16px; width:40px; height:40px; color:#202124; background:#fff; border:1px solid #dfe1e4; border-radius:50%; font-size:24px; }
    .pdp-footer { margin-top:48px; padding:36px 0 24px; color:#fff; background:#202124; }
    .pdp-footer__inner { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:28px; width:min(1160px,calc(100% - 32px)); margin:auto; }
    .pdp-footer h2,.pdp-footer h3 { margin:0 0 10px; font-size:15px; }
    .pdp-footer p,.pdp-footer a { color:#d9dade; font-size:13px; }
    .pdp-footer a { display:block; margin:6px 0; text-decoration:none; }
    .pdp-footer__bottom { width:min(1160px,calc(100% - 32px)); margin:26px auto 0; padding-top:16px; border-top:1px solid #404247; color:#b9bbc0; font-size:12px; }
    @media (max-width:720px) {
      .shopbar__top { justify-content:center; min-height:32px; padding:5px 8px; overflow:hidden; white-space:nowrap; font-size:11px; }
      .shopbar__main { grid-template-columns:auto 1fr auto; gap:10px; width:100%; min-height:76px; padding:10px 14px; }
      .shopbar__menu { display:block; }
      .shopbar__logo { width:170px; max-width:100%; }
      .shopbar__search { grid-column:1/-1; grid-row:2; height:44px; }
      .shopbar__actions { gap:5px; }
      .shopbar__icon { min-width:35px; font-size:0; }
      .shopbar__icon svg { width:27px; height:27px; }
      .shopbar__nav { display:none; }
      .shopbar__drawer { width:min(360px,88vw); padding:72px 20px 20px; }
      .shopbar__drawer a { padding:11px 4px; color:#202124; border-bottom:1px solid #ececee; text-decoration:none; font-weight:700; }
      .pdp-footer { margin-top:28px; padding:28px 0 20px; }
      .pdp-footer__inner { grid-template-columns:1fr 1fr; gap:20px 16px; }
      .pdp-footer__inner > div:first-child { grid-column:1/-1; }
    }
    main { padding:12px 0 80px; }
    .breadcrumbs { margin:0 0 9px; color:var(--muted); font-size:13px; }
    .product { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr); gap:clamp(30px,6vw,80px); align-items:start; }
    .gallery { position:sticky; top:24px; overflow:hidden; background:#fff; border:1px solid #e5e6e8; box-shadow:0 18px 45px rgba(20,25,30,.08); }
    .gallery__stage { position:relative; background:#f6f6f6; touch-action:pan-y; }
    .gallery img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }
    .gallery__stage > img[data-gallery-main] { object-fit:contain; transform:none; }
    .gallery img[hidden] { display:none !important; }
    .gallery__zoom { position:absolute; right:14px; bottom:14px; width:48px; height:48px; padding:12px; color:#202124; background:rgba(255,255,255,.94); border:1px solid #d9dadd; border-radius:50%; }
    .gallery__zoom svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
    .gallery__nav { position:absolute; inset:50% 12px auto; display:flex; justify-content:space-between; transform:translateY(-50%); pointer-events:none; }
    .gallery__nav button { width:48px; height:48px; color:#202124; background:rgba(255,255,255,.92); border:1px solid #d9dadd; border-radius:50%; font-size:26px; line-height:1; pointer-events:auto; }
    .gallery__thumbs { display:flex; gap:9px; padding:10px 12px 10px; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#c9cace transparent; }
    .gallery__thumbs::-webkit-scrollbar { height:6px; }
    .gallery__thumbs::-webkit-scrollbar-thumb { background:#c9cace; border-radius:999px; }
    .gallery__thumbs::-webkit-scrollbar-track { background:transparent; }
    .gallery__thumb { flex:0 0 62px; padding:0; overflow:hidden; background:#fff; border:2px solid var(--line); border-radius:8px; box-shadow:0 1px 3px rgba(20,25,30,.08); transition:border-color 150ms ease, box-shadow 150ms ease; }
    .gallery__thumb:hover { border-color:#c9cace; }
    .gallery__thumb[aria-current="true"] { border-color:var(--accent); box-shadow:0 2px 8px rgba(200,16,46,.22); }
    .gallery__thumb img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
    .gallery__thumb--video { position:relative; display:grid; place-items:center; background:#202124; }
    .gallery__thumb--video svg { width:22px; height:22px; fill:#fff; }
    .gallery__video { display:block; width:100%; aspect-ratio:4/5; object-fit:contain; background:#202124; }
    .gallery__video[hidden] { display:none !important; }
    .gallery__stage.is-video { background:#202124; }
    .gallery__video-note { position:static; padding:9px 12px; color:#fff; background:#202124; font-size:12px; text-align:center; }
    .lightbox { position:fixed; inset:0; z-index:2147483000; isolation:isolate; display:none; place-items:center; padding:16px; background:rgba(0,0,0,.92); }
    .lightbox.is-open { display:grid; }
    .lightbox__panel { position:relative; display:grid; width:100%; height:100%; max-height:none; place-items:center; pointer-events:none; }
    .lightbox__panel > * { pointer-events:auto; }
    .lightbox__image { display:block; margin:auto; width:min(92vw,1000px); height:min(82vh,820px); max-width:92vw; max-height:82vh; object-fit:contain; background:#fff; transform:translate3d(0,0,0) scale(1); transform-origin:center center; cursor:zoom-in; touch-action:none; user-select:none; -webkit-user-drag:none; will-change:transform; }
    @supports (height:100dvh) { .lightbox__image { height:min(82dvh,820px); max-height:82dvh; } }
    .lightbox__image.is-zoomed { cursor:grab; }
    .lightbox__image.is-zoomed:active { cursor:grabbing; }
    .lightbox__video { display:block; width:min(100%,560px); max-height:calc(100vh - 100px); aspect-ratio:4/5; object-fit:contain; background:#202124; }
    .lightbox__video[hidden], .lightbox__image[hidden] { display:none !important; }
    .lightbox__close { position:fixed; top:max(14px,env(safe-area-inset-top)); right:14px; left:auto; z-index:2147483647; display:grid; width:50px; height:50px; padding:0; place-items:center; color:#fff; background:#202124; border:2px solid #fff; border-radius:50%; font:700 30px/1 system-ui,sans-serif; cursor:pointer; }
    .lightbox__zoom { position:fixed; right:18px; bottom:max(70px,calc(env(safe-area-inset-bottom) + 58px)); z-index:4; width:50px; height:50px; color:#202124; background:#fff; border:2px solid #202124; border-radius:50%; font-size:26px; line-height:1; }
    .lightbox__nav { position:fixed; inset:50% 12px auto; z-index:4; display:flex; justify-content:space-between; transform:translateY(-50%); pointer-events:none; }
    .lightbox__nav button { width:52px; height:52px; color:#202124; background:#fff; border:2px solid #202124; border-radius:50%; font-size:32px; line-height:1; pointer-events:auto; }
    .lightbox__caption { position:fixed; left:0; right:0; bottom:max(18px,env(safe-area-inset-bottom)); z-index:3; margin:0; color:#fff; font-size:14px; text-align:center; }
    .gallery__meta { display:flex; align-items:center; justify-content:space-between; padding:10px 14px 12px; color:var(--muted); border-top:1px solid var(--line); font-size:13px; }
    .gallery__meta strong { font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
    .gallery__notice { margin:0; padding:8px 14px 12px; color:var(--muted); font-size:12px; }
    .eyebrow { margin:0 0 12px; color:#666b72; font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
    body#product .product-info h1 { margin:0 0 10px; font:600 clamp(24px,2.4vw,28px)/1.15 Georgia,"Times New Roman",serif; }
    .sku { color:var(--muted); font-size:14px; }
    .product-info { padding:clamp(20px,3vw,34px); background:#fff; border:1px solid #e5e6e8; box-shadow:0 18px 45px rgba(20,25,30,.07); }
    .price-row { display:flex; align-items:end; justify-content:space-between; gap:16px; padding:18px 0; border-block:1px solid var(--line); }
    body#product .product-info .price { margin:0; color:var(--accent); font-size:24px; font-weight:800; letter-spacing:-.04em; }
    .availability { margin:0; padding:5px 9px; color:#28613d; background:#edf7ef; border-radius:999px; font-size:13px; font-weight:800; }
    .lead { margin:20px 0 10px; color:#363a3f; font:600 15px/1.5 system-ui,sans-serif; }
    .facts { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; padding:0; list-style:none; }
    .facts li { padding:5px 9px; color:#3f454b; background:#f1f2f3; border-radius:999px; font-size:12px; font-weight:700; }
    .facts .fact-link { color:inherit; text-decoration:underline; text-underline-offset:3px; }
    .facts .fact-link:hover, .facts .fact-link:focus-visible { color:var(--accent); }
    .variants { margin-top:24px; padding:24px; background:#fafafa; border:1px solid #e5e6e8; }
    .variant-group + .variant-group { margin-top:24px; }
    .variant-title { display:flex; justify-content:space-between; gap:12px; margin-bottom:12px; font-size:14px; font-weight:800; }
    .selected-value { color:var(--muted); font-weight:500; }
    .swatches, .sizes { display:flex; flex-wrap:wrap; gap:10px; }
    .swatch { position:relative; width:34px; height:34px; padding:0; background:var(--swatch); border:2px solid transparent; border-radius:50%; box-shadow:0 0 0 1px #bbb; }
    .swatch[aria-pressed="true"] { border-color:#fff; box-shadow:0 0 0 3px #222; }
    .size { position:relative; min-width:40px; min-height:32px; padding:0 8px; color:#222; background:#fff; border:1px solid #222; font-size:13px; }
    .size[aria-pressed="true"] { color:#fff; background:#222; }
    .add { display:flex; width:100%; min-height:56px; align-items:center; justify-content:center; gap:10px; margin-top:26px; padding:12px 18px; color:#fff; background:var(--accent); border:2px solid var(--accent); box-shadow:0 8px 16px rgba(200,16,46,.22); font-weight:800; letter-spacing:.06em; text-transform:uppercase; transition:background-color 150ms ease, box-shadow 150ms ease; }
    .add svg { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .add:not(:disabled):hover, .add:not(:disabled):focus-visible { background:#a90d27; border-color:#a90d27; box-shadow:0 10px 22px rgba(200,16,46,.32); }
    .add:disabled { color:#757575; background:#e5e3df; border-color:#e5e3df; cursor:not-allowed; box-shadow:none; }
    .status { min-height:1.5em; margin:12px 0 0; color:var(--muted); font-size:14px; }
    .purchase-notes { display:grid; grid-template-columns:repeat(3,1fr); align-items:stretch; gap:8px; margin-top:18px; }
    .trust-badge { display:flex; flex-direction:column; padding:10px 7px; background:#fafafa; border:1px solid #e5e6e8; }
    .trust-badge summary { display:flex; flex:1; align-items:center; justify-content:center; gap:4px; min-height:24px; color:#4d5258; cursor:pointer; list-style:none; font-size:12px; font-weight:700; text-align:center; }
    .trust-badge summary::-webkit-details-marker { display:none; }
    .trust-badge summary::after { content:'▾'; color:var(--muted); font-size:9px; }
    .trust-badge[open] summary::after { content:'▴'; }
    .trust-badge p { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.5; text-align:left; }
    summary.details__toggle { display:flex; min-height:44px; align-items:center; padding:10px 0; cursor:pointer; list-style:none; color:var(--accent); font-size:13px; font-weight:800; }
    summary.details__toggle::-webkit-details-marker { display:none; }
    .details__toggle-less { display:none; }
    details[open] > summary.details__toggle .details__toggle-more { display:none; }
    details[open] > summary.details__toggle .details__toggle-less { display:inline; }
    .lead-more { margin:0 0 6px; }
    .lead-more > p { max-width:56ch; margin:0 0 8px; color:#555; font:400 14px/1.6 Arial,Helvetica,sans-serif; }
    /* GGF-DESC-NODUP-20261025: expanded = the full text replaces the plain-text start (short and main description). */
    .lead__intro:has(+ details.lead-more[open]),
    .description__intro:has(+ details.description__more[open]) { display:none; }
    .size-guide { margin-top:6px; }
    .size-guide__tabs { display:flex; gap:8px; margin:2px 0 10px; }
    .size-guide__tab { min-height:36px; padding:6px 14px; color:#222; background:#fff; border:1px solid #222; font-size:13px; font-weight:700; }
    .size-guide__tab[aria-pressed="true"] { color:#fff; background:#222; }
    .size-guide__layout { display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; }
    .size-guide__scroll { overflow-x:auto; flex:1 1 300px; min-width:0; }
    .size-guide__figure { flex:1 1 100%; max-width:420px; margin:14px auto 0; padding:14px; background:#fafafa; border:1px solid var(--line); }
    .size-guide__figure[hidden] { display:none !important; }
    .size-guide__figure-toggle { display:flex; gap:6px; margin-bottom:10px; }
    .size-guide__figure-toggle button { flex:1; min-height:34px; padding:4px 8px; color:#222; background:#fff; border:1px solid #222; font-size:12px; font-weight:700; }
    .size-guide__figure-toggle button[aria-pressed="true"] { color:#fff; background:#222; }
    .size-guide__figure img { display:block; width:100%; height:auto; margin:0 auto; }
    .size-guide__figure img[hidden] { display:none !important; }
    .size-guide table { width:100%; margin:2px 0 10px; border-collapse:collapse; font-size:13px; }
    .size-guide th, .size-guide td { white-space:nowrap; }
    .size-guide th, .size-guide td { padding:7px 9px; border:1px solid var(--line); text-align:left; }
    .size-guide th { background:#f6f6f6; font-weight:700; }
    .contact-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
    .contact-actions > .ask-question { min-width:0; margin-top:0; }
    .contact-actions > .ask-question[open] ~ .whatsapp-button { align-self:start; }
    .ask-question summary.details__toggle { position:relative; display:flex; width:100%; min-height:38px; align-items:center; justify-content:center; gap:6px; padding:7px 12px; color:#202124; background:#fff; border:1.5px solid #202124; border-radius:999px; font-size:12px; font-weight:800; letter-spacing:.02em; text-transform:none; }
    .ask-question summary.details__toggle svg { width:15px; height:15px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .ask-question summary.details__toggle:hover, .ask-question summary.details__toggle:focus-visible { color:#fff; background:#202124; }
    .ask-question[open] summary.details__toggle { border-radius:8px 8px 0 0; }
    .whatsapp-button { position:relative; display:flex; min-width:0; min-height:38px; align-items:center; justify-content:center; gap:6px; padding:7px 12px; color:#fff; background:#25d366; border:1.5px solid #25d366; border-radius:999px; font-size:12px; font-weight:800; letter-spacing:.02em; text-decoration:none; transition:background-color 150ms ease, border-color 150ms ease; }
    .whatsapp-button:hover, .whatsapp-button:focus-visible { background:#1ebd5a; border-color:#1ebd5a; }
    .whatsapp-button svg { width:15px; height:15px; flex:none; fill:currentColor; }
    @media (prefers-reduced-motion:reduce) { .whatsapp-button { transition:none; } }
    .ask-question__form { display:grid; gap:12px; max-width:480px; margin-top:6px; }
    .ask-question__row label { display:block; color:#3f454b; font-size:13px; font-weight:700; }
    .ask-question__row input, .ask-question__row textarea { display:block; box-sizing:border-box; width:100%; margin-top:5px; padding:9px 10px; border:1px solid #c7c9cc; font:400 14px/1.4 Arial,Helvetica,sans-serif; }
    .ask-question__row textarea { resize:vertical; min-height:84px; }
    .ask-question__consent { display:flex; align-items:flex-start; gap:8px; color:#4d5258; font-size:12px; font-weight:400; }
    .ask-question__consent input { flex:none; width:16px; height:16px; margin-top:3px; }
    .ask-question__consent a { color:var(--accent); }
    .ask-question__honeypot { display:none; }
    .ask-question__recaptcha { padding:10px; color:var(--muted); background:#f6f6f6; border:1px dashed #c7c9cc; font-size:11px; text-align:center; }
    .ask-question__submit { align-self:start; min-height:44px; padding:10px 22px; color:#202124; background:#fff; border:2px solid #202124; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
    .ask-question__submit:hover, .ask-question__submit:focus-visible { color:#fff; background:#202124; }
    .ask-question__submit:disabled { color:#9a9da1; border-color:#c7c9cc; cursor:not-allowed; }
    .ask-question__status { min-height:1.4em; margin:0; color:var(--muted); font-size:13px; }
    .ask-question__status[data-state="success"] { color:#28613d; font-weight:700; }
    .ask-question__status[data-state="error"] { color:var(--accent); font-weight:700; }
    .d24fbt-preview { margin-top:28px; padding:22px; background:#fff; border:1px solid var(--line); }
    .d24fbt-preview__header { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 18px; margin-bottom:18px; }
    .d24fbt-preview__title { margin:0; color:#202124; font-size:22px; font-weight:800; }
    .d24fbt-preview__lead { margin:0; color:var(--muted); font-size:13px; }
    .d24fbt-preview__helper { flex:1 1 100%; margin:0; padding:8px 10px; color:#46515b; background:#f6f8f9; border-left:3px solid #0c7a59; font-size:12px; line-height:1.4; }
    .d24fbt-preview__selection { display:inline-flex; align-items:center; gap:5px; min-height:28px; padding:4px 6px; color:#46515b; background:rgba(255,255,255,.94); font-size:11px; font-weight:700; line-height:1.1; }
    .d24fbt-preview__items { display:grid; grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr) 28px minmax(0,1fr); gap:8px; align-items:stretch; }
    .d24fbt-preview__plus { align-self:center; color:#202124; font-size:25px; font-weight:400; text-align:center; }
    .d24fbt-preview__item { min-width:0; padding:12px; background:#fff; border:1px solid #e5e6e8; }
    .d24fbt-preview__product-row { display:flex; gap:10px; align-items:flex-start; }
    .d24fbt-preview__check { flex:none; width:17px; height:17px; margin:3px 0 0; accent-color:var(--accent); }
    .d24fbt-preview__image { display:block; width:100%; max-width:150px; height:150px; margin:0 auto; object-fit:cover; background:#f6f6f6; }
    .d24fbt-preview__details { padding-top:10px; }
    .d24fbt-preview__name { display:block; min-height:2.6em; color:#202124; font-size:14px; font-weight:800; line-height:1.3; }
    .d24fbt-preview__price { display:block; margin-top:5px; color:var(--accent); font-size:16px; font-weight:800; }
    .d24fbt-preview__variants { display:grid; gap:8px; margin-top:12px; }
    .d24fbt-preview__variant { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px; align-items:center; color:#4d5258; font-size:12px; }
    .d24fbt-preview__variant select { min-width:0; min-height:34px; padding:5px 8px; color:#202124; background:#fff; border:1px solid #c7c9cc; font:inherit; }
    .d24fbt-preview__footer { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
    .d24fbt-preview__summary { display:flex; gap:8px; align-items:baseline; margin:0; color:#4d5258; font-size:14px; }
    .d24fbt-preview__summary strong { color:#202124; font-size:19px; }
    .d24fbt-preview__submit { min-height:42px; margin-left:auto; padding:9px 16px; color:#fff; background:var(--accent); border:1px solid var(--accent); font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
    .d24fbt-preview__submit:disabled { color:#777; background:#e5e3df; border-color:#e5e3df; }
    .d24fbt-preview__status { flex:1 1 100%; min-height:1.4em; margin:0; color:var(--muted); font-size:12px; }
    .description { margin-top:22px; padding:16px 0 6px; border-block:1px solid var(--line); }
    .description h2 { margin:0 0 10px; font-size:17px; font-weight:800; }
    .description p { max-width:56ch; margin:0; color:#555; line-height:1.6; }
    .description p + p { margin-top:10px; }
    .mobile-buybar { display:none; }
    @media (min-width:721px) {
      body#product .topbar { min-height:30px; }
      body#product .topbar__inner { min-height:30px; }
      body#product .topbar__message { gap:7px; font-size:12px; }
      body#product .topbar__anniversary { font-size:11.5px; line-height:1.2; }
      body#product .topbar__phone { font-size:12px; }
      body#product .topbar__social a { width:24px; height:24px; }
      body#product .main-header__inner { min-height:76px; gap:24px; }
      body#product .brand__logo { width:190px; }
      body#product .search-form input[type="search"] { height:42px; }
      body#product .search-form button { top:4px; right:5px; width:34px; height:34px; }
      body#product .header-actions { gap:6px; }
      body#product .header-action { min-width:54px; min-height:46px; padding:4px 6px; }
      body#product .category-nav { min-height:44px; }
      body#product .category-nav__inner { min-height:44px; }
      body#product .nav-link { min-height:41px; }
      body#product .nav-toggle { height:41px; }
    }
    @media (min-width:721px) and (max-width:1100px) {
      body#product .topbar__inner { min-height:30px; }
      body#product .topbar__message,
      body#product .topbar__phone,
      body#product .topbar__social { grid-row:1; }
      body#product .topbar__message,
      body#product .topbar__phone { font-size:11px; }
      body#product .topbar__anniversary { font-size:11px; }
      body#product .main-header__inner { min-height:102px; gap:6px 12px; padding-block:4px; }
      body#product .brand__logo { width:180px; }
      body#product .header-action { min-width:52px; }
    }
    @media (max-width:720px) {
      main { width:min(100% - 28px, 560px); padding-top:12px; }
      .top { padding:11px 14px; }
      .top__inner { width:100%; }
      .product { display:block; }
      .breadcrumbs { margin-bottom:8px; }
      .gallery { position:static; margin-bottom:18px; }
      body#product .product-info h1 { font-size:22px; }
      body#product .product-info .price { font-size:20px; }
      .swatch::after { content:''; position:absolute; inset:-5px; }
      .size::after { content:''; position:absolute; inset:-6px; }
      .ask-question summary.details__toggle::after, .whatsapp-button::after { content:''; position:absolute; inset:-3px; }
      .product-info { padding:20px; }
      .variants { padding:18px; }
      .purchase-notes { grid-template-columns:1fr; gap:5px; }
      .d24fbt-preview { padding:16px; }
      .d24fbt-preview__items { display:block; }
      .d24fbt-preview__item + .d24fbt-preview__plus { margin:9px 0; }
      .d24fbt-preview__plus { display:block; }
      .d24fbt-preview__image { max-width:180px; height:180px; }
      .d24fbt-preview__submit { width:100%; margin-left:0; }
      .trust-badge summary { justify-content:space-between; min-height:40px; text-align:left; }
      .mobile-buybar { position:fixed; right:0; bottom:0; left:0; z-index:110; display:grid; grid-template-columns:1fr 1fr; gap:0; padding:5px 10px max(5px, env(safe-area-inset-bottom)); background:#202124; box-shadow:0 -8px 26px rgba(20,25,30,.2); transform:translateY(110%); transition:transform 180ms ease; }
      .mobile-buybar.is-visible { transform:translateY(0); }
      body#product.buybar-visible { padding-bottom:calc(108px + env(safe-area-inset-bottom)); }
      .mobile-choice { display:block; min-width:0; height:40px; padding:3px 10px; overflow:hidden; color:#fff; border:1px solid rgba(255,255,255,.65); }
      .mobile-choice + .mobile-choice { border-left:0; }
      .mobile-choice strong, .mobile-choice span { display:block; overflow:hidden; text-overflow:ellipsis; }
      .mobile-choice strong { font-size:10px; letter-spacing:.08em; text-transform:uppercase; opacity:.75; }
      .mobile-choice select { display:block; width:100%; min-width:0; padding:0; color:#fff; background:#202124; border:0; font:inherit; font-size:13px; font-weight:700; outline:0; }
      .mobile-choice option { color:#222; background:#fff; }
      .mobile-add { grid-column:1/-1; min-height:44px; margin-top:5px; color:#fff; background:var(--accent); border:0; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
      .mobile-add:disabled { color:#777; background:#b9b9b9; }
      body#product .topbar { min-height:25px; }
      body#product .topbar__inner { min-height:25px; }
      body#product .topbar__message,
      body#product .topbar__phone { font-size:10.5px; line-height:1.2; }
      body#product .topbar__anniversary { font-size:10.5px; line-height:1.2; }
      body#product .main-header__inner { min-height:92px; gap:4px 10px; padding-block:3px; }
      body#product .brand__logo { width:138px; }
      body#product .search-form input[type="search"] { height:38px; }
      body#product .search-form button { top:2px; right:4px; width:34px; height:34px; }
    }
    @media (prefers-reduced-motion:reduce) { .mobile-buybar { transition:none; } .add { transition:none; } }

:root {
      color-scheme: light;
      --page: #f7f6f3;
      --surface: #ffffff;
      --surface-soft: #f1efeb;
      --ink: #222222;
      --muted: #626262;
      --line: #dedbd5;
      --brand-red: #c91f28;
      --brand-red-dark: #a9161e;
      --champagne: #e4cdaa;
      --champagne-strong: #d2ad78;
      --bronze: #805c35;
      --warm-surface: #f5f1eb;
      --charcoal: #222222;
      --focus: #c8102e;
      --shadow: 0 16px 42px rgba(24, 24, 24, 0.09);
      --radius: 20px;
      --content: 1180px;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--page);
      font-family: Arial, Helvetica, sans-serif;
      font-size: 16px;
      line-height: 1.55;
    }

    img,
    svg {
      display: block;
      max-width: 100%;
    }

    a {
      color: inherit;
    }

    a:focus-visible,
    button:focus-visible {
      outline: 3px solid var(--focus);
      outline-offset: 4px;
    }

    .skip-link {
      position: fixed;
      top: 12px;
      left: 12px;
      z-index: 20;
      padding: 10px 16px;
      color: #ffffff;
      background: var(--ink);
      border-radius: 6px;
      transform: translateY(-160%);
    }

    .skip-link:focus {
      transform: translateY(0);
    }

    .shell {
      width: min(var(--content), calc(100% - 40px));
      margin-inline: auto;
    }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      white-space: nowrap;
    }

    .section {
      padding-block: 64px;
    }

    .section--compact {
      padding-top: 0;
    }

    .section--surface {
      background: var(--surface);
    }

    .section--soft {
      background: var(--surface-soft);
    }

    main section[id] {
      scroll-margin-top: 190px;
    }

    .section-heading {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 32px;
      margin-bottom: 30px;
    }

    .section-heading--center {
      display: grid;
      max-width: 780px;
      justify-items: center;
      margin-right: auto;
      margin-left: auto;
      text-align: center;
    }

    .eyebrow {
      margin: 0 0 8px;
      color: var(--bronze);
      font-size: 13px;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    h1,
    h2,
    h3,
    p {
      margin-top: 0;
    }

    h1,
    h2,
    h3 {
      text-wrap: balance;
    }

    h1 {
      max-width: 650px;
      margin-bottom: 18px;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(42px, 5vw, 72px);
      font-weight: 500;
      letter-spacing: -0.035em;
      line-height: 1.02;
    }

    h2 {
      margin-bottom: 0;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(28px, 2.45vw, 38px);
      font-weight: 500;
      letter-spacing: -0.025em;
      line-height: 1.12;
    }

    h3 {
      font-size: 20px;
      line-height: 1.3;
    }

    .heading-note {
      max-width: 440px;
      margin: 0;
      color: var(--muted);
    }

    .section-heading--center .heading-note {
      max-width: 620px;
      margin: 10px auto 0;
      font-size: 16px;
      line-height: 1.5;
    }

    .section-heading__action {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      justify-self: end;
      color: var(--charcoal);
      font-weight: 750;
      text-underline-offset: 5px;
    }

    .section-heading__action::after {
      color: var(--bronze);
      content: "→";
      font-size: 20px;
    }

    .script-kicker {
      display: block;
      margin: 0 0 -8px;
      color: var(--bronze);
      font-family: "Segoe Script", "Snell Roundhand", "Brush Script MT", cursive;
      font-size: clamp(36px, 4.1vw, 54px);
      font-weight: 400;
      letter-spacing: -0.035em;
      line-height: 1;
      text-transform: none;
      transform: rotate(-2deg);
      transform-origin: left center;
    }

    .button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      padding: 0 24px;
      color: #ffffff;
      background: var(--charcoal);
      border: 2px solid var(--charcoal);
      border-radius: 999px;
      font-weight: 800;
      text-decoration: none;
      transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
    }

    .button:hover {
      color: var(--charcoal);
      background: #ffffff;
      transform: translateY(-2px);
    }

    .text-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--charcoal);
      font-weight: 800;
      text-underline-offset: 5px;
    }

    .text-link::after {
      content: "→";
      font-size: 20px;
      text-decoration: none;
    }

    .shop-header {
      position: relative;
      z-index: 200;
      background: var(--surface);
      font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    }

    .topbar {
      min-height: 36px;
      color: rgba(255, 255, 255, 0.86);
      background: var(--charcoal);
      font-size: 13px;
    }

    .topbar__links,
    .topbar__message,
    .topbar__right,
    .topbar__phone,
    .topbar__social {
      display: flex;
      align-items: center;
    }

    .topbar__inner {
      display: grid;
      min-height: 36px;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      gap: 20px;
    }

    .topbar__links {
      justify-self: start;
      gap: 20px;
    }

    .topbar__links a {
      color: rgba(255, 255, 255, 0.78);
      text-decoration: none;
    }

    .topbar__links a:hover {
      color: #ffffff;
      text-decoration: underline;
      text-decoration-color: var(--champagne);
      text-underline-offset: 4px;
    }

    .topbar__message {
      justify-self: center;
      gap: 9px;
      margin: 0;
      color: var(--champagne);
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.025em;
      white-space: nowrap;
    }

    .topbar__anniversary {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 0;
      color: inherit;
      background: transparent;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.02em;
      line-height: 1.5;
      text-transform: none;
    }

    .topbar__promise {
      color: inherit;
      font-weight: 500;
    }

    .topbar__separator {
      width: auto;
      height: auto;
      color: rgba(228, 205, 170, 0.7);
    }

    .topbar__right {
      justify-self: end;
      gap: 8px;
    }

    .topbar__phone {
      gap: 7px;
      padding-right: 12px;
      color: #ffffff;
      border-right: 1px solid rgba(255, 255, 255, 0.2);
      font-weight: 700;
      letter-spacing: 0.02em;
      text-decoration: none;
      white-space: nowrap;
    }

    .topbar__phone:hover {
      color: #ffffff;
      text-decoration: underline;
      text-decoration-color: var(--champagne);
      text-underline-offset: 4px;
    }

    .topbar__phone svg {
      width: 15px;
      height: 15px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 1.8;
    }

    .topbar__social {
      gap: 5px;
    }

    .topbar__social a {
      display: grid;
      width: 28px;
      height: 28px;
      color: rgba(255, 255, 255, 0.82);
      border-radius: 50%;
      text-decoration: none;
      place-items: center;
    }

    .topbar__social a:hover {
      color: var(--charcoal);
      background: var(--champagne);
    }

    .topbar__social svg {
      width: 16px;
      height: 16px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 1.8;
    }

    .topbar__social .social-icon--facebook {
      fill: currentColor;
      stroke: none;
    }

    .header-sticky {
      position: sticky;
      top: 0;
      z-index: 250;
      width: 100%;
      margin: 0;
      overflow: visible;
      background: #ffffff;
      border-bottom: 1px solid rgba(34, 34, 34, 0.12);
      box-shadow: 0 8px 22px rgba(24, 24, 24, 0.12);
    }

    .main-header {
      border-bottom: 1px solid #e7e7e7;
    }

    .main-header__inner {
      display: grid;
      min-height: 94px;
      grid-template-columns: 240px minmax(320px, 1fr) auto;
      align-items: center;
      gap: 36px;
    }

    .brand {
      display: inline-flex;
      width: max-content;
      text-decoration: none;
    }

    .brand__logo {
      width: 224px;
      height: auto;
    }

    .search-form {
      position: relative;
      width: 100%;
    }

    .search-form label {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      white-space: nowrap;
    }

    .search-form input[type="search"] {
      width: 100%;
      height: 48px;
      padding: 0 58px 0 18px;
      color: var(--ink);
      background: #ffffff;
      border: 1px solid #b9b9b9;
      border-radius: 3px;
      font: inherit;
      outline: none;
      transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
    }

    .search-form input[type="search"]::placeholder {
      color: #8a8d84;
    }

    .search-form input[type="search"]:focus {
      background: #ffffff;
      border-color: var(--bronze);
      box-shadow: 0 0 0 3px rgba(128, 92, 53, 0.14);
    }

    .search-form button {
      position: absolute;
      top: 5px;
      right: 6px;
      display: grid;
      width: 38px;
      height: 38px;
      padding: 0;
      color: #222222;
      background: transparent;
      border: 0;
      border-radius: 2px;
      cursor: pointer;
      place-items: center;
    }

    .search-form button:hover {
      color: var(--bronze);
      background: #f6f6f6;
    }

    .search-form button svg {
      width: 19px;
      height: 19px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-width: 2;
    }

    .header-actions {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .header-action {
      position: relative;
      display: grid;
      min-width: 58px;
      min-height: 54px;
      padding: 7px 8px;
      color: #252525;
      border-radius: 4px;
      font-size: 11px;
      font-weight: 700;
      text-align: center;
      text-decoration: none;
      place-items: center;
    }

    .header-action:hover {
      color: var(--bronze);
      background: #f7f7f7;
    }

    .header-action svg {
      width: 23px;
      height: 23px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 1.7;
    }

    .header-action__badge {
      position: absolute;
      top: 3px;
      right: 5px;
      display: grid;
      min-width: 17px;
      height: 17px;
      padding-inline: 4px;
      color: #ffffff;
      background: var(--brand-red);
      border: 2px solid #ffffff;
      border-radius: 999px;
      font-size: 9px;
      line-height: 1;
      place-items: center;
    }

    .mobile-menu-trigger {
      display: none;
      width: 44px;
      height: 44px;
      padding: 0;
      color: var(--ink);
      background: transparent;
      border: 1px solid var(--line);
      border-radius: 11px;
      cursor: pointer;
      place-items: center;
    }

    .mobile-menu-trigger svg {
      width: 23px;
      height: 23px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-width: 2;
    }

    .category-nav {
      position: relative;
      min-height: 54px;
      background: #ffffff;
    }

    .category-nav__inner {
      position: relative;
      display: flex;
      min-height: 54px;
      align-items: stretch;
      justify-content: space-between;
      gap: 2px;
    }

    .nav-item {
      position: static;
      display: flex;
      min-width: 0;
      align-items: stretch;
    }

    .nav-entry {
      display: flex;
      align-items: center;
      border-bottom: 3px solid transparent;
    }

    .nav-item:hover .nav-entry,
    .nav-item[data-open="true"] .nav-entry {
      border-bottom-color: var(--brand-red);
    }

    .nav-link {
      display: flex;
      min-height: 51px;
      align-items: center;
      padding: 0 7px 0 10px;
      color: #242424;
      font-size: 13px;
      font-weight: 650;
      letter-spacing: 0.025em;
      text-decoration: none;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .nav-link:hover {
      color: var(--brand-red);
    }

    .nav-link--accent {
      color: var(--brand-red);
    }

    .nav-toggle {
      display: grid;
      width: 24px;
      height: 51px;
      padding: 0;
      color: #565656;
      background: transparent;
      border: 0;
      cursor: pointer;
      place-items: center;
    }

    .nav-toggle svg {
      width: 12px;
      height: 12px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 2;
      transition: transform 160ms ease;
    }

    .nav-item[data-open="true"] .nav-toggle svg {
      transform: rotate(180deg);
    }

    .mega-menu {
      position: absolute;
      top: 100%;
      right: 0;
      left: 0;
      z-index: 220;
      max-height: min(66vh, 600px);
      overflow-y: auto;
      overscroll-behavior: contain;
      padding: 24px;
      visibility: hidden;
      opacity: 0;
      background: #ffffff;
      border: 1px solid #e1e1e1;
      border-top: 0;
      border-radius: 0 0 8px 8px;
      box-shadow: 0 24px 46px rgba(0, 0, 0, 0.15);
      transform: translateY(-8px);
      transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
      pointer-events: none;
      scrollbar-color: #9d7950 #eeeeee;
      scrollbar-gutter: stable;
      scrollbar-width: thin;
    }

    .mega-menu::-webkit-scrollbar {
      width: 12px;
    }

    .mega-menu::-webkit-scrollbar-track {
      background: #eeeeee;
      border-left: 1px solid #dddddd;
    }

    .mega-menu::-webkit-scrollbar-thumb {
      background: #9d7950;
      border: 3px solid #eeeeee;
      border-radius: 999px;
    }

    #mega-wall {
      overflow-y: scroll;
      scrollbar-width: auto;
    }

    #mega-wall .mega-menu__layout {
      grid-template-columns: minmax(200px, 0.85fr) repeat(4, minmax(125px, 1fr));
    }

    #mega-wall .mega-menu__wall-side {
      display: grid;
      align-content: start;
      gap: 14px;
    }

    #mega-wall .mega-menu__intro {
      align-self: stretch;
    }

    #mega-wall .mega-menu__wall-banner {
      display: block;
      overflow: hidden;
      color: var(--charcoal);
      background: #ffffff;
      border: 1px solid var(--line);
      border-radius: 8px;
      text-decoration: none;
    }

    #mega-wall .mega-menu__wall-banner img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 9;
      object-fit: cover;
      object-position: center;
    }

    #mega-wall .mega-menu__wall-banner-copy {
      display: grid;
      gap: 4px;
      padding: 11px 12px 13px;
    }

    #mega-wall .mega-menu__wall-banner-copy small {
      color: var(--accent);
      font-size: 9px;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
    }

    #mega-wall .mega-menu__wall-banner-copy strong {
      margin: 0;
      font-size: 13px;
      line-height: 1.35;
    }

    .nav-item[data-open="true"] .mega-menu {
      visibility: visible;
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }

    @media (min-width: 1101px) {
      .nav-item:not([data-hover-suppressed="true"]):hover .mega-menu {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
      }

      .nav-item:not([data-hover-suppressed="true"]):hover .nav-toggle svg {
        transform: rotate(180deg);
      }
    }

    .mega-menu__layout {
      display: grid;
      grid-template-columns: minmax(200px, 0.85fr) repeat(3, minmax(135px, 1fr)) minmax(190px, 0.85fr);
      gap: 18px;
    }

    .mega-menu__intro {
      padding: 22px;
      background: var(--warm-surface);
      border-left: 3px solid var(--champagne-strong);
      border-radius: 3px;
    }

    .mega-menu__eyebrow {
      display: block;
      margin-bottom: 8px;
      color: var(--bronze);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }

    .mega-menu__intro strong {
      display: block;
      margin-bottom: 10px;
      color: #202020;
      font-family: "Segoe UI", Arial, Helvetica, sans-serif;
      font-size: 22px;
      font-weight: 650;
      letter-spacing: -0.02em;
      line-height: 1.2;
    }

    .mega-menu__intro p {
      margin-bottom: 16px;
      color: #606060;
      font-size: 14px;
    }

    .mega-menu__all {
      color: var(--charcoal);
      font-size: 14px;
      font-weight: 700;
      text-underline-offset: 4px;
    }

    .mega-menu__group-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 12px;
      color: #1f1f1f;
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 0.005em;
    }

    .mega-menu__count {
      display: inline-grid;
      min-width: 24px;
      height: 20px;
      padding-inline: 6px;
      color: #6a6a6a;
      background: #f1f1f1;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 700;
      line-height: 1;
      place-items: center;
    }

    .mega-menu__links {
      display: grid;
      gap: 9px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .mega-menu__links a {
      color: #5e5e5e;
      font-size: 14.5px;
      line-height: 1.4;
      text-decoration: none;
    }

    .mega-menu__links a:hover {
      color: var(--bronze);
      text-decoration: underline;
      text-underline-offset: 4px;
    }

    .mega-menu__group {
      display: flex;
      min-width: 0;
      flex-direction: column;
    }

    .mega-menu__pick {
      display: grid;
      min-height: 76px;
      grid-template-columns: 70px minmax(0, 1fr);
      align-items: center;
      gap: 11px;
      margin-top: auto;
      padding: 7px;
      color: #252525;
      background: var(--warm-surface);
      border: 1px solid #ebe5dd;
      border-radius: 8px;
      box-shadow: 0 5px 16px rgba(39, 35, 30, 0.05);
      text-decoration: none;
      transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
    }

    .mega-menu__pick:hover {
      color: #252525;
      background: #ffffff;
      border-color: #cfc3b5;
      transform: translateY(-1px);
    }

    .mega-menu__pick small {
      color: var(--bronze);
      font-size: 9px;
      font-weight: 750;
      letter-spacing: 0.09em;
      text-transform: uppercase;
    }

    .mega-menu__pick-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      font-size: 12.5px;
      font-weight: 700;
      line-height: 1.3;
    }

    .mega-menu__pick-title span {
      color: var(--bronze);
      transition: transform 160ms ease;
    }

    .mega-menu__pick:hover .mega-menu__pick-title span {
      transform: translateX(2px);
    }

    .mega-menu__pick-image {
      display: block;
      width: 70px;
      height: 60px;
      object-fit: cover;
      border-radius: 6px;
    }

    .mega-menu__pick-copy {
      display: grid;
      min-width: 0;
      gap: 3px;
    }

    .mega-menu__pick-image--left {
      object-position: 24% center;
    }

    .mega-menu__pick-image--right {
      object-position: 76% center;
    }

    .mega-menu__visual {
      position: static;
      align-self: start;
      overflow: hidden;
      color: #222222;
      background: #f7f6f3;
      border: 1px solid #dedbd5;
      border-radius: 5px;
      text-decoration: none;
      transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
    }

    .mega-menu__visual:hover {
      color: var(--bronze);
      border-color: #b8b4ad;
      box-shadow: 0 12px 26px rgba(24, 24, 24, 0.11);
      transform: translateY(-2px);
    }

    .mega-menu__visual img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 4 / 5;
      object-fit: cover;
    }

    .mega-menu__visual-copy {
      display: grid;
      gap: 4px;
      padding: 14px 15px 16px;
    }

    .mega-menu__visual-copy small {
      color: var(--bronze);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }

    .mega-menu__visual-copy strong {
      font-size: 15px;
      line-height: 1.3;
    }

    .mobile-nav {
      position: fixed;
      inset: 0;
      z-index: 400;
      visibility: hidden;
      opacity: 0;
      font-family: "Segoe UI", Arial, Helvetica, sans-serif;
      transition: opacity 180ms ease, visibility 180ms ease;
      pointer-events: none;
    }

    .mobile-nav.is-open {
      visibility: visible;
      opacity: 1;
      pointer-events: auto;
    }

    .mobile-nav__backdrop {
      position: absolute;
      inset: 0;
      padding: 0;
      background: rgba(0, 0, 0, 0.58);
      border: 0;
      cursor: pointer;
    }

    .mobile-nav__dialog {
      position: relative;
      width: min(430px, 100%);
      height: 100%;
      overflow: hidden;
      background: #ffffff;
      box-shadow: 22px 0 50px rgba(0, 0, 0, 0.24);
      transform: translateX(-100%);
      transition: transform 220ms ease;
    }

    .mobile-nav.is-open .mobile-nav__dialog {
      transform: translateX(0);
    }

    .mobile-nav__header {
      display: flex;
      min-height: 70px;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 12px 18px;
      border-bottom: 1px solid var(--line);
    }

    .mobile-nav__title {
      margin: 0;
      font-family: "Segoe UI", Arial, Helvetica, sans-serif;
      font-size: 22px;
      font-weight: 650;
    }

    .mobile-nav__close,
    .mobile-nav__back {
      display: grid;
      width: 44px;
      height: 44px;
      padding: 0;
      color: var(--ink);
      background: #f1f1f1;
      border: 0;
      border-radius: 11px;
      cursor: pointer;
      place-items: center;
    }

    .mobile-nav__close svg,
    .mobile-nav__back svg {
      width: 22px;
      height: 22px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 2;
    }

    .mobile-nav__body {
      position: relative;
      height: calc(100% - 70px);
      overflow: hidden;
    }

    .mobile-panel {
      position: absolute;
      inset: 0;
      overflow-y: auto;
      padding: 16px 18px 30px;
      visibility: hidden;
      opacity: 0;
      transform: translateX(32px);
      transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
      pointer-events: none;
    }

    .mobile-panel.is-active {
      visibility: visible;
      opacity: 1;
      transform: translateX(0);
      pointer-events: auto;
    }

    .mobile-panel__heading {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 12px;
    }

    .mobile-panel__heading strong {
      font-size: 18px;
    }

    .mobile-menu-list,
    .mobile-submenu-list {
      display: grid;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .mobile-menu-list > li,
    .mobile-submenu-list > li {
      border-bottom: 1px solid var(--line);
    }

    .mobile-menu-link,
    .mobile-menu-next {
      display: flex;
      width: 100%;
      min-height: 54px;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 0 4px;
      color: var(--ink);
      background: transparent;
      border: 0;
      font: inherit;
      font-size: 15px;
      font-weight: 750;
      text-align: left;
      text-decoration: none;
      cursor: pointer;
    }

    .mobile-menu-next::after {
      content: "→";
      color: var(--bronze);
      font-size: 20px;
    }

    .mobile-menu-link--accent {
      color: var(--brand-red);
    }

    .mobile-menu-contact {
      display: grid;
      gap: 8px;
      margin-top: 26px;
      padding: 18px;
      background: #f3f3f3;
      border-radius: 14px;
    }

    .mobile-menu-contact span {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .mobile-menu-contact a {
      color: var(--bronze);
      font-size: 19px;
      font-weight: 800;
      text-decoration: none;
    }

    body.mobile-nav-open {
      overflow: hidden;
    }

    .hero {
      position: relative;
      min-height: 610px;
      overflow: hidden;
      background: #e8e1d6;
    }

    .hero picture,
    .hero-media {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
    }

    .hero-media {
      object-fit: cover;
      object-position: center;
    }

    .hero::after {
      position: absolute;
      inset: 0;
      content: "";
      background: linear-gradient(90deg, rgba(247, 245, 240, 0.97) 0%, rgba(247, 245, 240, 0.88) 28%, rgba(247, 245, 240, 0.13) 58%, rgba(247, 245, 240, 0) 100%);
      pointer-events: none;
    }

    .hero-inner {
      position: relative;
      z-index: 1;
      display: flex;
      min-height: 610px;
      align-items: center;
      padding-block: 72px;
    }

    .hero-copy {
      width: min(55%, 650px);
    }

    .hero-copy > p:not(.eyebrow) {
      max-width: 520px;
      margin-bottom: 28px;
      color: #50544c;
      font-size: 18px;
    }

    .category-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
    }

    .category-card {
      position: relative;
      min-width: 0;
      overflow: hidden;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: 0 0 0 rgba(36, 39, 32, 0);
      text-decoration: none;
      transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
    }

    .category-card:hover {
      border-color: #bcbcbc;
      box-shadow: var(--shadow);
      transform: translateY(-4px);
    }

    .category-card img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 10;
      object-fit: cover;
      transition: transform 350ms ease;
    }

    .category-card:hover img {
      transform: scale(1.025);
    }

    .category-copy {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px 20px 20px;
    }

    .category-copy h3 {
      margin: 0;
    }

    .category-arrow {
      display: grid;
      flex: 0 0 36px;
      width: 36px;
      height: 36px;
      place-items: center;
      color: var(--charcoal);
      background: transparent;
      border: 1px solid #d5d5d5;
      border-radius: 3px;
      font-size: 20px;
      transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
    }

    .category-card:hover .category-arrow {
      color: #ffffff;
      background: var(--charcoal);
      border-color: var(--charcoal);
    }

    .promo-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
    }

    .promo-heading {
      margin-bottom: 0;
    }

    .promo-card {
      display: grid;
      min-width: 0;
      overflow: hidden;
      color: var(--ink);
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: 14px;
      text-decoration: none;
    }

    .promo-card img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 7;
      object-fit: cover;
      transition: transform 450ms ease;
    }

    .promo-card:hover img {
      transform: scale(1.03);
    }

    .promo-copy {
      display: grid;
      min-height: 82px;
      align-content: center;
      gap: 3px;
      padding: 10px 15px 12px;
      background: var(--surface);
    }

    .promo-copy p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.35;
    }

    .promo-copy h3 {
      margin: 0;
      color: var(--ink);
      font-family: inherit;
      font-size: 16px;
      font-weight: 750;
      line-height: 1.25;
    }

    .product-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 22px;
    }

    .product-card {
      display: flex;
      min-width: 0;
      flex-direction: column;
      overflow: hidden;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: 16px;
    }

    .product-image-link {
      display: block;
      overflow: hidden;
      background: #ffffff;
    }

    .product-card img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 1 / 1;
      object-fit: contain;
      transition: transform 300ms ease;
    }

    .product-card:hover img {
      transform: scale(1.035);
    }

    .product-copy {
      display: flex;
      flex: 1;
      flex-direction: column;
      padding: 18px;
    }

    .product-copy h3 {
      margin-bottom: 14px;
      font-size: 17px;
      font-weight: 600;
    }

    .product-copy h3 a {
      text-decoration-thickness: 1px;
      text-decoration-color: transparent;
      text-underline-offset: 4px;
    }

    .product-copy h3 a:hover {
      text-decoration-color: currentColor;
    }

    .price {
      margin-top: auto;
      margin-bottom: 0;
      font-size: 20px;
      font-weight: 800;
    }

    .guide-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
    }

    .guide-carousel {
      position: relative;
    }

    .guide-viewport {
      overflow: visible;
    }

    .guide-action,
    .guide-position {
      display: none;
    }

    .guide-card {
      display: grid;
      min-width: 0;
      overflow: hidden;
      color: var(--ink);
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      text-decoration: none;
      transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
    }

    .guide-card:hover {
      border-color: #bcbcbc;
      box-shadow: var(--shadow);
      transform: translateY(-4px);
    }

    .guide-card__media {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 9;
      object-fit: cover;
      transition: transform 350ms ease;
    }

    .guide-card:hover .guide-card__media {
      transform: scale(1.025);
    }

    .guide-card__body {
      display: flex;
      min-height: 235px;
      flex-direction: column;
      padding: 24px;
    }

    .guide-card__label {
      display: inline-flex;
      width: fit-content;
      margin-bottom: 18px;
      color: var(--bronze);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .guide-card h3 {
      margin-bottom: 12px;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 25px;
      font-weight: 500;
    }

    .guide-card p {
      margin-bottom: 0;
      color: var(--muted);
    }

    .reviews-section {
      overflow: hidden;
      background: #f2f1ee;
    }

    .reviews-heading {
      margin-bottom: 30px;
      text-align: center;
    }

    .reviews-heading .heading-note {
      margin: 12px auto 0;
    }

    .review-carousel {
      position: relative;
    }

    .review-viewport {
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      padding: 8px 0 22px;
      scroll-snap-type: inline mandatory;
      scrollbar-width: none;
    }

    .review-viewport::-webkit-scrollbar {
      display: none;
    }

    .review-track {
      display: grid;
      grid-auto-columns: calc((100% - 44px) / 3);
      grid-auto-flow: column;
      gap: 22px;
    }

    .review-card {
      display: flex;
      min-height: 450px;
      flex-direction: column;
      justify-content: center;
      padding: 38px 32px;
      background: var(--surface);
      border: 1px solid #e8e8e8;
      border-radius: 24px;
      box-shadow: var(--shadow);
      scroll-snap-align: start;
      text-align: center;
    }

    .review-card__author {
      margin-bottom: 0;
      font-size: 21px;
      font-weight: 700;
    }

    .review-card__divider {
      width: 54px;
      height: 1px;
      margin: 14px auto 22px;
      background: #2d302b;
    }

    .review-card__rating {
      min-height: 34px;
      margin-bottom: 10px;
      color: #e59d23;
      font-size: 28px;
      letter-spacing: 0.08em;
      line-height: 1;
    }

    .review-card__recommendation {
      color: #1877f2;
      font-size: 18px;
      font-weight: 800;
      letter-spacing: 0;
    }

    .review-card__meta {
      margin-bottom: 22px;
      color: #8a8a8a;
      font-size: 13px;
      font-weight: 700;
    }

    .review-card blockquote,
    .review-card__summary {
      margin: 0 0 28px;
      color: #383838;
      font-size: 17px;
      line-height: 1.55;
    }

    .review-card__source {
      display: flex;
      min-height: 34px;
      align-items: center;
      justify-content: center;
      margin: auto auto 0;
    }

    .review-card__source-logo {
      display: block;
      width: auto;
      height: 24px;
    }

    .review-card__facebook-logo {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      color: #1877f2;
      font-size: 20px;
      font-weight: 700;
      letter-spacing: -0.02em;
    }

    .review-card__facebook-logo svg {
      width: 25px;
      height: 25px;
      fill: currentColor;
    }

    .review-action {
      position: absolute;
      top: 50%;
      z-index: 2;
      display: grid;
      width: 48px;
      height: 48px;
      padding: 0 0 4px;
      place-items: center;
      color: var(--ink);
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: 50%;
      box-shadow: 0 6px 20px rgba(36, 39, 32, 0.16);
      cursor: pointer;
      font-size: 30px;
      line-height: 1;
      transform: translateY(-50%);
    }

    .review-action--previous {
      left: 0;
    }

    .review-action--next {
      right: 0;
    }

    .review-action:hover {
      color: #ffffff;
      background: var(--charcoal);
    }

    .review-action:disabled {
      color: #8a8a8a;
      background: #f4f4f4;
      border-color: #e1e1e1;
      box-shadow: none;
      cursor: not-allowed;
      opacity: 0.7;
    }

    .review-position {
      min-height: 1.55em;
      margin: 12px 0 0;
      color: var(--muted);
      font-size: 14px;
      font-weight: 700;
    }

    .gcr-panel {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 34px;
      padding: 38px 42px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: 0 10px 30px rgba(36, 39, 32, 0.06);
    }

    .gcr-mark {
      display: flex;
      flex: 0 0 128px;
      align-items: center;
      justify-content: center;
      padding: 22px 16px;
      background: #ffffff;
      border: 1px solid #e4e4e4;
      border-radius: 14px;
    }

    .gcr-mark img {
      width: 92px;
      height: 30px;
      object-fit: contain;
    }

    .gcr-copy {
      flex: 1;
    }

    .gcr-copy h2 {
      margin-bottom: 10px;
      font-size: clamp(26px, 3vw, 38px);
    }

    .gcr-copy p {
      margin-bottom: 0;
      color: var(--muted);
    }

    .benefit-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 18px;
    }

    .benefit-card {
      position: relative;
      overflow: hidden;
      padding: 24px;
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: 16px;
    }

    .benefit-icon {
      display: grid;
      width: 54px;
      height: 54px;
      margin-bottom: 22px;
      place-items: center;
      color: var(--bronze);
      background: var(--warm-surface);
      border: 1px solid #e2e2e2;
      border-radius: 50%;
    }

    .benefit-icon svg {
      width: 28px;
      height: 28px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 1.8;
    }

    .benefit-card h3 {
      margin-bottom: 8px;
      font-size: 18px;
    }

    .benefit-card p {
      margin-bottom: 0;
      color: var(--muted);
      font-size: 15px;
    }

    .faq-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
    }

    .faq-card {
      min-width: 0;
      min-height: 0;
      padding: 0;
      background: #ffffff;
      border: 1px solid #dedede;
      border-radius: 12px;
      transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
    }

    .faq-card:hover {
      border-color: #c9b18f;
      box-shadow: 0 10px 22px rgba(36, 32, 27, 0.06);
      transform: translateY(-2px);
    }

    .faq-card summary {
      display: flex;
      min-height: 68px;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 19px 20px;
      cursor: pointer;
      list-style: none;
    }

    .faq-card summary::-webkit-details-marker {
      display: none;
    }

    .faq-card summary::after {
      flex: 0 0 auto;
      color: var(--charcoal);
      content: "+";
      font-size: 30px;
      font-weight: 400;
      line-height: 1;
    }

    .faq-card[open] summary::after {
      content: "−";
    }

    .faq-card summary h3 {
      margin: 0;
      color: #222222;
      font-family: "Segoe UI", Arial, Helvetica, sans-serif;
      font-size: 16px;
      font-weight: 650;
      line-height: 1.35;
    }

    .faq-card p {
      margin: 0 20px 12px;
      color: #5e5e5e;
      font-size: 14px;
    }

    .faq-card p:last-child {
      margin-bottom: 0;
    }

    .faq-card a {
      display: inline-block;
      margin: 0 20px 20px;
      color: var(--charcoal);
      font-size: 13px;
      font-weight: 700;
      text-underline-offset: 4px;
    }

    .newsletter {
      color: #ffffff;
      background: var(--charcoal);
      border-top: 1px solid var(--champagne-strong);
    }

    .newsletter__inner {
      display: grid;
      grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1.15fr);
      align-items: center;
      gap: 48px;
      padding-block: 46px;
    }

    .newsletter .eyebrow {
      color: var(--champagne);
    }

    .newsletter h2 {
      max-width: 580px;
      color: #ffffff;
      font-size: clamp(28px, 2.7vw, 36px);
    }

    .newsletter__copy > p:last-child {
      max-width: 570px;
      margin: 14px 0 0;
      color: rgba(255, 255, 255, 0.72);
    }

    .newsletter__form {
      display: grid;
      gap: 13px;
    }

    .newsletter__field {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      padding: 5px;
      background: #ffffff;
      border-radius: 4px;
    }

    .newsletter__field input {
      min-width: 0;
      height: 48px;
      padding: 0 16px;
      color: var(--ink);
      background: transparent;
      border: 0;
      font: inherit;
      outline: none;
    }

    .newsletter__field:focus-within {
      box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.22), 0 0 0 5px var(--champagne-strong);
    }

    .newsletter__field button {
      min-height: 48px;
      padding: 0 22px;
      color: #ffffff;
      background: #2b2b2b;
      border: 1px solid #2b2b2b;
      border-radius: 3px;
      cursor: pointer;
      font: inherit;
      font-size: 15px;
      font-weight: 700;
    }

    .newsletter__field button:hover {
      background: #111111;
    }

    .newsletter__consent {
      display: flex;
      align-items: flex-start;
      gap: 9px;
      color: rgba(255, 255, 255, 0.7);
      font-size: 12px;
      line-height: 1.5;
    }

    .newsletter__consent input {
      flex: 0 0 auto;
      margin-top: 3px;
      accent-color: var(--champagne-strong);
    }

    .newsletter__consent a {
      color: #ffffff;
      text-underline-offset: 3px;
    }

    .site-footer {
      color: var(--ink);
      background: #ffffff;
      font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.35fr repeat(3, minmax(0, 1fr));
      gap: 48px;
      padding-block: 48px 40px;
    }

    .footer-brand {
      max-width: 300px;
    }

    .footer-logo {
      display: inline-flex;
      margin-bottom: 18px;
      text-decoration: none;
    }

    .footer-logo img {
      width: 194px;
      height: auto;
    }

    .footer-brand p {
      margin-bottom: 14px;
      color: var(--muted);
      font-size: 15px;
    }

    .footer-company {
      display: block;
      margin-bottom: 16px;
      color: #777777;
      font-size: 12px;
      line-height: 1.55;
    }

    .footer-contact {
      display: grid;
      gap: 8px;
      font-style: normal;
    }

    .footer-social {
      display: flex;
      gap: 10px;
      margin-top: 18px;
    }

    .footer-social a {
      display: grid;
      width: 36px;
      height: 36px;
      color: var(--ink);
      border: 1px solid #d2d2d2;
      border-radius: 50%;
      font-size: 12px;
      font-weight: 800;
      text-decoration: none;
      place-items: center;
    }

    .footer-social svg {
      width: 16px;
      height: 16px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 1.8;
    }

    .footer-social .social-icon--facebook {
      fill: currentColor;
      stroke: none;
    }

    .footer-social a:hover {
      color: #ffffff;
      background: var(--charcoal);
      border-color: var(--charcoal);
    }

    .footer-column h2 {
      margin-bottom: 18px;
      color: var(--ink);
      font-family: inherit;
      font-size: 16px;
      font-weight: 650;
      letter-spacing: 0.01em;
    }

    .footer-column h2::after {
      display: block;
      width: 32px;
      height: 2px;
      margin-top: 9px;
      background: var(--champagne-strong);
      content: "";
    }

    .footer-links {
      display: grid;
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .footer-contact a,
    .footer-links a {
      color: #5d5d5d;
      text-decoration: none;
      text-underline-offset: 4px;
    }

    .footer-contact a:hover,
    .footer-links a:hover {
      color: var(--ink);
      text-decoration: underline;
      text-decoration-color: var(--bronze);
    }

    .footer-bottom {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      padding-block: 22px;
      color: #777777;
      border-top: 1px solid #e3e3e3;
      font-size: 13px;
    }

    .footer-bottom p {
      margin: 0;
    }

    @media (max-width: 1024px) {
      .section {
        padding-block: 60px;
      }

      .hero,
      .hero-inner {
        min-height: 560px;
      }

      .hero-copy {
        width: 62%;
      }

      .category-grid,
      .promo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .guide-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .review-track {
        grid-auto-columns: calc((100% - 22px) / 2);
      }

      .product-grid,
      .benefit-grid,
      .faq-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .newsletter__inner {
        grid-template-columns: 1fr;
        gap: 30px;
      }

    }

    @media (min-width: 901px) and (max-width: 1024px) {
      .category-grid,
      .promo-grid,
      .guide-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .product-grid,
      .benefit-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }
    }

    @media (max-width: 1100px) {
      .header-sticky {
        top: 0;
        width: 100%;
        margin-top: 0;
        box-shadow: 0 5px 18px rgba(24, 24, 24, 0.1);
      }

      .topbar__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        gap: 12px;
      }

      .topbar__links {
        display: none;
      }

      .topbar__message {
        grid-column: 2;
        justify-self: center;
      }

      .topbar__right {
        grid-column: 3;
        justify-self: end;
        margin-left: 0;
      }

      .topbar__phone {
        padding-right: 0;
        border-right: 0;
      }

      .main-header__inner {
        min-height: 124px;
        grid-template-columns: auto 1fr auto;
        gap: 16px;
        padding-block: 10px 12px;
      }

      .mobile-menu-trigger {
        display: grid;
      }

      .brand {
        justify-self: start;
      }

      .search-form {
        grid-column: 1 / -1;
        grid-row: 2;
      }

      .header-actions .header-action.header-action--wishlist {
        display: none;
      }

      .category-nav {
        display: none;
      }
    }

    @media (min-width: 721px) and (max-width: 1100px) {
      .topbar__right {
        display: contents;
      }

      .topbar__phone {
        grid-column: 1;
        justify-self: start;
      }

      .topbar__social {
        grid-column: 3;
        justify-self: end;
      }
    }

    @media (max-width: 720px) {
      .shell {
        width: min(100% - 28px, var(--content));
      }

      .section {
        padding-block: 48px;
      }

      .section-heading {
        align-items: start;
        flex-direction: column;
        gap: 12px;
        margin-bottom: 24px;
      }

      .section-heading--center {
        align-items: center;
        justify-items: center;
        text-align: center;
      }

      .section-heading--center .heading-note {
        font-size: 15px;
      }

      .section-heading__action {
        justify-self: start;
      }

      .script-kicker {
        margin-bottom: -4px;
        font-size: 38px;
      }

      .topbar__inner {
        display: grid;
        min-height: 34px;
        grid-template-columns: 100px minmax(0, 1fr) 100px;
        grid-template-rows: auto;
        gap: 0;
        padding-block: 0;
      }

      .topbar__message {
        grid-column: 2;
        grid-row: 1;
        justify-self: center;
        font-size: 11.5px;
        letter-spacing: 0.015em;
      }

      .topbar__promise,
      .topbar__separator {
        display: none;
      }

      .topbar__right {
        display: contents;
      }

      .topbar__phone {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        padding-right: 0;
        border-right: 0;
        font-size: 11.5px;
      }

      .topbar__social {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
      }

      .topbar__social a {
        width: 24px;
        height: 24px;
      }

      .main-header__inner {
        min-height: 116px;
        grid-template-columns: auto 1fr auto;
        gap: 10px;
      }

      .brand__logo {
        width: 158px;
      }

      .header-actions {
        gap: 2px;
      }

      .header-action {
        min-width: 42px;
        min-height: 44px;
        padding: 5px;
      }

      .header-action span:not(.header-action__badge) {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
      }

      .header-action__badge {
        top: -1px;
        right: -1px;
      }

      .search-form input[type="search"] {
        height: 44px;
      }

      .search-form button {
        top: 4px;
        width: 36px;
        height: 36px;
      }

      .hero,
      .hero-inner {
        min-height: 720px;
      }

      .hero-media {
        object-position: center bottom;
      }

      .hero::after {
        background: linear-gradient(180deg, rgba(247, 245, 240, 0.96) 0%, rgba(247, 245, 240, 0.87) 30%, rgba(247, 245, 240, 0.08) 58%, rgba(247, 245, 240, 0.02) 100%);
      }

      .hero-inner {
        align-items: start;
        padding-top: 46px;
      }

      .hero-copy {
        width: 100%;
      }

      h1 {
        max-width: 530px;
        font-size: clamp(39px, 12vw, 55px);
      }

      .hero-copy > p:not(.eyebrow) {
        max-width: 480px;
        font-size: 16px;
      }

      .category-grid,
      .promo-grid,
      .product-grid,
      .benefit-grid {
        grid-template-columns: 1fr;
      }

      .guide-viewport {
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        padding: 4px 0 20px;
        scroll-snap-type: inline mandatory;
        scrollbar-width: none;
      }

      .guide-viewport::-webkit-scrollbar {
        display: none;
      }

      .guide-grid {
        grid-auto-columns: 86%;
        grid-auto-flow: column;
        grid-template-columns: none;
        gap: 14px;
      }

      .guide-card {
        scroll-snap-align: start;
      }

      .guide-action {
        position: absolute;
        top: 50%;
        z-index: 2;
        display: grid;
        width: 42px;
        height: 42px;
        padding: 0 0 4px;
        place-items: center;
        color: var(--ink);
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: 50%;
        box-shadow: 0 6px 20px rgba(36, 39, 32, 0.16);
        cursor: pointer;
        font-size: 28px;
        line-height: 1;
        transform: translateY(-50%);
      }

      .guide-action--previous {
        left: -5px;
      }

      .guide-action--next {
        right: -5px;
      }

      .guide-action:disabled {
        color: #8a8a8a;
        background: #f4f4f4;
        border-color: #e1e1e1;
        box-shadow: none;
        cursor: not-allowed;
        opacity: 0.7;
      }

      .guide-position {
        display: block;
        min-height: 1.55em;
        margin: 0;
        color: var(--muted);
        font-size: 14px;
        font-weight: 700;
        text-align: center;
      }

      .category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
      }

      .category-card img {
        aspect-ratio: 16 / 10;
      }

      .category-copy {
        align-items: start;
        min-height: 82px;
        padding: 14px;
      }

      .category-copy h3 {
        font-size: 16px;
      }

      .category-arrow {
        flex-basis: 30px;
        width: 30px;
        height: 30px;
      }

      .product-card {
        display: grid;
        grid-template-columns: 42% 1fr;
      }

      .product-copy {
        min-width: 0;
      }

      .review-viewport {
        padding-inline: 12px;
      }

      .review-track {
        grid-auto-columns: 88%;
        gap: 14px;
      }

      .review-card {
        min-height: 410px;
        padding: 32px 24px;
      }

      .review-action {
        width: 42px;
        height: 42px;
      }

      .review-action--previous {
        left: -4px;
      }

      .review-action--next {
        right: -4px;
      }

      .gcr-panel {
        align-items: flex-start;
        flex-direction: column;
        padding: 26px;
      }

      .promo-grid {
        gap: 14px;
      }

      .promo-copy {
        min-height: 78px;
      }

      .footer-grid {
        grid-template-columns: 1fr;
        gap: 34px;
        padding-block: 46px 38px;
      }

      .newsletter__inner {
        padding-block: 44px;
      }

      .newsletter__field {
        grid-template-columns: 1fr;
        gap: 5px;
        background: transparent;
      }

      .newsletter__field input {
        background: #ffffff;
        border-radius: 3px;
      }

      .faq-grid {
        grid-template-columns: 1fr;
        gap: 0;
        border-top: 1px solid var(--line);
      }

      .faq-card {
        min-height: 0;
        background: transparent;
        border: 0;
        border-bottom: 1px solid var(--line);
        border-radius: 0;
      }

      .faq-card:hover {
        border-color: var(--line);
        box-shadow: none;
        transform: none;
      }

      .faq-card summary {
        min-height: 74px;
        padding: 18px 0;
      }

      .faq-card summary h3 {
        font-size: 15px;
        letter-spacing: 0.04em;
        text-transform: uppercase;
      }

      .faq-card p {
        margin-inline: 0;
      }

      .faq-card a {
        margin-inline: 0;
      }

      .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
      }
    }

    @media (max-width: 900px) and (max-height: 540px) and (orientation: landscape) {
      .topbar__inner {
        display: grid;
        min-height: 34px;
        grid-template-columns: 100px minmax(0, 1fr) 100px;
        grid-template-rows: auto;
        gap: 0;
      }

      .topbar__message {
        grid-column: 2;
        grid-row: 1;
        justify-self: center;
        font-size: 11.5px;
        letter-spacing: 0.015em;
      }

      .topbar__right {
        display: contents;
      }

      .topbar__phone {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        padding-right: 0;
        border-right: 0;
        font-size: 11.5px;
      }

      .topbar__social {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
      }

      .topbar__social a {
        width: 24px;
        height: 24px;
      }

      .main-header__inner {
        min-height: 88px;
        gap: 10px;
        padding-block: 6px 8px;
      }

      .brand__logo {
        width: 170px;
      }

      .header-actions {
        gap: 2px;
      }

      .header-action {
        min-width: 42px;
        min-height: 42px;
        padding: 5px;
      }

      .header-action span:not(.header-action__badge) {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
      }

      .search-form input[type="search"] {
        height: 42px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
      }
    }

    @media print {
      .skip-link {
        display: none;
      }

      .hero {
        min-height: 520px;
      }
    }

.d24-floating-search { position:absolute; top:50%; right:0; z-index:6; display:none; transform:translateY(-50%); }
    @media (min-width:1101px) { .header-sticky.d24-is-floating .main-header { display:none; } }
    .header-sticky.d24-is-floating .category-nav { box-shadow:0 8px 24px rgba(28,31,34,.13); }
    .header-sticky.d24-is-floating .category-nav__inner { padding-right:58px; }
    .header-sticky.d24-is-floating .d24-floating-search { display:block; }
    .d24-floating-search__toggle { display:grid; width:42px; height:42px; padding:0; place-items:center; color:#222; background:#fff; border:1px solid #d9d5ce; border-radius:50%; cursor:pointer; }
    .d24-floating-search__toggle:hover,.d24-floating-search__toggle:focus-visible { color:#c8102e; border-color:#c8102e; }
    .d24-floating-search__toggle svg,.d24-floating-search__submit svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:2; }
    .d24-floating-search__panel { position:absolute; top:calc(100% + 10px); right:0; display:grid; grid-template-columns:minmax(240px,380px) 46px; width:min(430px,calc(100vw - 32px)); padding:10px; background:#fff; border:1px solid #ded9d1; border-radius:12px; box-shadow:0 16px 40px rgba(28,31,34,.18); }
    .d24-floating-search__panel[hidden] { display:none !important; }
    .d24-floating-search__panel input { min-width:0; height:44px; padding:0 14px; color:#222; background:#fff; border:1px solid #bdb8af; border-radius:8px 0 0 8px; font:inherit; }
    .d24-floating-search__panel input:focus { border-color:#c8102e; box-shadow:0 0 0 3px rgba(200,16,46,.16); outline:0; }
    .d24-floating-search__submit { display:grid; height:44px; padding:0; place-items:center; color:#fff; background:#c8102e; border:1px solid #c8102e; border-radius:0 8px 8px 0; cursor:pointer; }
    @media (max-width:1100px) { .d24-floating-search { display:none !important; } }

/* Thin PrestaShop integration layer. Layout, typography and responsive
 * behavior above remain the frozen PDP-001 contract. */
body#product #wrapper { width:100%; max-width:none; margin:0; padding:0; background:#fff; }
body#product #wrapper > .columns-container { width:100%; max-width:none; padding:0; }
body#product #center-column { width:100%; min-width:0; }
body#product .d24-pdp-main { width:100%; margin:0; padding:0; }
body#product .d24-pdp-main > .d24-pdp-shell { width:min(1480px, calc(100% - 32px)); margin:auto; padding:12px 0 80px; }
body#product .d24-pdp-main .product { margin:0; }
body#product .product-info .product__prices { margin:0; }
body#product .product-info .product__price { color:inherit; font:inherit; letter-spacing:inherit; }
body#product .product-info .product__tax-infos { font-size:12px; }
body#product .product-info .product__actions { margin:0; }
body#product .product-info .product__add-to-cart-container { margin:0; }
body#product .product-info .product__availability { margin-top:12px; }
body#product .product-info .rich-text { color:#363a3f; font-size:14px; line-height:1.6; }
body#product .swatch > input,
body#product .size > input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
body#product .swatch { width:44px; height:44px; border:0; box-shadow:0 0 0 1px #b8bcc0; }
body#product .swatch__color { position:absolute; inset:3px; display:block; background:var(--swatch,#ddd) center/cover no-repeat; border-radius:50%; }
body#product .swatch.is-selected { border:0; box-shadow:0 0 0 2px #fff,0 0 0 4px #222; }
body#product .swatch,
body#product .swatch > input { outline:0 !important; }
html.d24-keyboard-input body#product .swatch:has(input:focus-visible) { outline:3px solid #222 !important; outline-offset:5px; }
body#product .size { display:grid; min-width:64px; min-height:42px; padding:6px 14px; place-items:center; border:1px solid #222; background:#fff; }
body#product .size.is-selected { color:#fff; background:#222; }
body#product .variant-select select { width:100%; min-height:42px; }
body#product .pdp-fbt-slot { margin-top:48px; }
body#product .whatsapp-button[aria-disabled="true"] { cursor:not-allowed; }
body#product .ask-question__submit[disabled] { cursor:not-allowed; opacity:.62; }
body#product .purchase-notes { align-items:start; }
body#product .trust-badge { width:100%; align-self:start; }
body#product .trust-badge summary { flex:0 0 auto; }
body#product .trust-badge[open] p { max-height:92px; padding-inline-end:6px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
body#product #footer { margin:0; padding:0; }
body#product .gallery img { display:block; width:100%; height:100%; aspect-ratio:auto; object-fit:contain; }
/* V27M — the stage may no longer own a hard desktop height, so the active medium
 * can no longer size itself with a percentage: a percentage height against an
 * auto-height grid area resolves to auto and a 600x1800 photo escaped the stage
 * by ~988px. Positioning the medium against the stage's padding box makes the
 * fit deterministic at every breakpoint while keeping object-fit:contain, so
 * nothing is ever stretched. The zoom, nav and video note keep painting above it
 * because they come later in the DOM and carry their own stacking. */
body#product .gallery { --d24-gallery-min:clamp(520px,62vh,720px); --d24-gallery-max:1180px; }
body#product .gallery__stage { display:grid; min-width:0; height:clamp(520px,62vh,720px); place-items:center; overflow:hidden; background:#fff; }
body#product .gallery__stage > img[data-gallery-main],
body#product .gallery__video { position:absolute; inset:0; grid-area:1/1; width:100%; height:100%; object-fit:contain !important; transform:none !important; }
body#product .gallery__stage.is-video { background:#202124; }
body#product .gallery__stage.is-video .gallery__zoom { display:none !important; }
body#product .gallery__zoom[hidden] { display:none !important; }
body#product .gallery__thumb img { display:block; width:100%; height:100%; object-fit:contain; background:#fff; }
body#product .gallery__thumb--video { position:relative; isolation:isolate; background:#202124; }
body#product .gallery__thumb--video .gallery__thumb-video-poster { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; background:#202124; opacity:.56; }
body#product .gallery__thumb-video-play { position:relative; z-index:1; display:grid; width:32px; height:32px; place-items:center; color:#fff; background:rgba(20,22,24,.78); border:1px solid rgba(255,255,255,.82); border-radius:50%; box-shadow:0 5px 14px rgba(0,0,0,.3); }
body#product .gallery__thumb-video-play svg { width:17px; height:17px; margin-left:2px; fill:currentColor; }
body#product .gallery__thumb-video-label { position:absolute; right:3px; bottom:3px; left:3px; z-index:1; padding:2px 3px; color:#fff; background:rgba(20,22,24,.8); border-radius:3px; font-size:8px; font-weight:850; line-height:1.1; letter-spacing:.08em; text-align:center; text-transform:uppercase; }
body#product .gallery__thumbs-shell { position:relative; min-width:0; background:#fff; isolation:isolate; }
body#product .gallery__thumbs { scroll-behavior:smooth; overscroll-behavior:contain; scrollbar-width:none; -ms-overflow-style:none; }
body#product .gallery__thumbs::-webkit-scrollbar { display:none; width:0; height:0; }
body#product .gallery__thumb-nav { position:absolute; z-index:3; display:grid; width:34px; height:34px; padding:8px; place-items:center; color:#332d27; background:rgba(255,253,249,.92); border:1px solid rgba(157,121,80,.34); border-radius:50%; box-shadow:0 8px 22px rgba(40,32,25,.18); backdrop-filter:blur(8px); transition:opacity 140ms ease, transform 140ms ease, border-color 140ms ease; }
body#product .gallery__thumb-nav svg { display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
body#product .gallery__thumb-nav:hover { border-color:#9d7950; transform:scale(1.04); }
body#product .gallery__thumb-nav[hidden] { display:none !important; }
body#product .gallery__thumb-nav:disabled { visibility:hidden; opacity:0; cursor:default; pointer-events:none; }
body#product .gallery__thumb-nav--previous { left:9px; top:50%; transform:translateY(-50%) rotate(-90deg); }
body#product .gallery__thumb-nav--previous:hover { transform:translateY(-50%) rotate(-90deg) scale(1.04); }
body#product .gallery__thumb-nav--next { right:9px; top:50%; transform:translateY(-50%) rotate(-90deg); }
body#product .gallery__thumb-nav--next:hover { transform:translateY(-50%) rotate(-90deg) scale(1.04); }
@media (min-width:1101px) {
  /* V27M — desktop gallery height.
   *
   * The frozen prototype sets .product { align-items:start }, so the gallery was
   * start-aligned in a row whose height comes from the taller product-info
   * column. Combined with a hard height:clamp(520px,62vh,720px) on the stage
   * that left the large empty band under the gallery reported on product 386.
   * The gallery item now stretches to the row and the stage fills it, bounded by
   * --d24-gallery-min / --d24-gallery-max so an extremely long info column can
   * never produce an unbounded stage. The medium keeps object-fit:contain, so
   * nothing is stretched; the rail stays centred and bounded by the real stage.
   * Nothing below 1101px is touched: the rejected tall tablet layout stays out. */
  body#product .d24-pdp-main .product { grid-template-columns:minmax(0,56fr) minmax(420px,44fr); gap:clamp(24px,3vw,44px); align-items:stretch; }
  body#product .gallery { display:grid; grid-template-columns:minmax(0,1fr) 72px; grid-template-areas:'stage thumbs'; column-gap:8px; align-items:stretch; align-self:stretch; min-height:var(--d24-gallery-min); max-height:var(--d24-gallery-max); background:#fff; }
  body#product .gallery__stage { grid-area:stage; min-width:0; height:auto; align-self:stretch; }
  body#product .gallery__thumbs-shell { grid-area:thumbs; width:72px; height:max-content; max-height:calc(var(--d24-gallery-min) - 24px); align-self:center; justify-self:center; overflow:hidden; border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 28px rgba(20,25,30,.14); }
  body#product .gallery__thumbs-shell.has-overflow::before,
  body#product .gallery__thumbs-shell.has-overflow::after { content:''; position:absolute; z-index:2; left:0; right:0; height:42px; pointer-events:none; }
  body#product .gallery__thumbs-shell.has-overflow::before { top:0; background:linear-gradient(#fff 18%,rgba(255,255,255,0)); }
  body#product .gallery__thumbs-shell.has-overflow::after { bottom:0; background:linear-gradient(rgba(255,255,255,0),#fff 82%); }
  /* The rail stays centred and bounded by the guaranteed minimum stage height,
   * so it can never be taller than the real stage even when the stage grows to
   * match a long product-info column. */
  body#product .gallery__thumbs { height:max-content; max-height:calc(var(--d24-gallery-min) - 24px); flex-direction:column; padding:4px; overflow-x:hidden; overflow-y:auto; scroll-snap-type:y proximity; }
  body#product .gallery__thumb-nav--previous { left:50%; top:3px; transform:translateX(-50%); }
  body#product .gallery__thumb-nav--previous:hover { transform:translateX(-50%) scale(1.04); }
  body#product .gallery__thumb-nav--next { left:50%; right:auto; top:auto; bottom:3px; transform:translateX(-50%); }
  body#product .gallery__thumb-nav--next:hover { transform:translateX(-50%) scale(1.04); }
  body#product .gallery__thumb { width:62px; min-height:62px; flex:0 0 62px; scroll-snap-align:center; }
}
body#product .review-carousel--pending { grid-template-columns:1fr; }
body#product .review-track--pending { grid-template-columns:minmax(0,420px); justify-content:center; }
body#product .description__intro,
body#product .description__body,
body#product .description__body * { font-size:14px !important; line-height:1.6 !important; }
body#product .d24-native-product-details { margin-top:14px; padding-top:0; border-top:0; }
body#product .d24-product-details__section { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; }
body#product .d24-product-details__summary { display:flex; min-height:34px; align-items:center; justify-content:space-between; gap:8px; padding:7px 10px; cursor:pointer; list-style:none; color:#383532; font:400 11px/1.25 Arial,Helvetica,sans-serif; }
body#product .d24-product-details__summary::-webkit-details-marker { display:none; }
body#product .d24-product-details__summary::after { content:'+'; flex:none; color:var(--accent); font-size:15px; font-weight:500; line-height:1; }
body#product .d24-product-details__section[open] .d24-product-details__summary { border-bottom:1px solid var(--line); }
body#product .d24-product-details__section[open] .d24-product-details__summary::after { content:'−'; }
body#product .d24-product-details__scroll { max-height:232px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; background:#fff; }
body#product .d24-product-details__list { display:grid; margin:0; }
body#product .d24-product-details__row { display:grid; grid-template-columns:minmax(100px,34%) minmax(0,1fr); margin:0; padding:8px 12px; border-bottom:1px solid var(--line); }
body#product .d24-product-details__row:last-child { border-bottom:0; }
body#product .d24-product-details__term { margin:0; color:#383532; font-size:11px; font-weight:400; }
body#product .d24-product-details__value { min-width:0; margin:0; color:#444; font-size:11px; font-weight:400; overflow-wrap:anywhere; }
body#product .d24-product-details__value a { color:inherit; text-decoration:underline; text-decoration-color:#cfc8bd; text-underline-offset:3px; }
body#product .d24-internal-links { margin-top:10px; padding-top:0; border-top:0; }
body#product .d24-internal-links .facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; margin:0; padding:0; list-style:none; }
body#product .d24-internal-links .facts li { margin:0; }
body#product .d24-internal-links .fact-link { display:flex; width:100%; min-height:26px; align-items:center; justify-content:center; padding:4px 5px; color:#34312e; background:#f7f5f1; border:1px solid #ddd7ce; border-radius:999px; font-size:9px; font-weight:400; line-height:1.15; text-align:center; text-decoration:none; }
body#product .d24-internal-links .fact-link:hover,
body#product .d24-internal-links .fact-link:focus-visible { color:var(--accent); border-color:var(--accent); }
body#product .product__add-to-cart-button { color:var(--d24-cta-color) !important; background:var(--d24-cta-bg) !important; border-color:var(--d24-cta-border) !important; box-shadow:var(--d24-cta-shadow) !important; text-shadow:0 1px 1px rgba(140,35,10,.28); transition:background .18s ease,box-shadow .18s ease,transform .18s ease; }
body#product .product__add-to-cart-button:active { box-shadow:var(--d24-cta-shadow-active) !important; transform:translateY(1px); }
body#product .product__add-to-cart-button:focus-visible { box-shadow:var(--d24-cta-shadow),var(--d24-cta-ring) !important; outline:0 !important; }
@media (hover:hover) {
  body#product .product__add-to-cart-button:hover { color:var(--d24-cta-color) !important; background:var(--d24-cta-bg-hover) !important; border-color:var(--d24-cta-border) !important; box-shadow:var(--d24-cta-shadow-hover) !important; transform:translateY(-1px); }
}
@media (prefers-reduced-motion:reduce) {
  body#product .product__add-to-cart-button { transition:none; }
  body#product .product__add-to-cart-button:active,body#product .product__add-to-cart-button:hover { transform:none; }
}
@media (max-width:1100px) {
  body#product .d24-pdp-main > .d24-pdp-shell { width:min(100% - 24px, 960px); padding-top:10px; }
  body#product .d24-pdp-main .product { display:block; }
  body#product .gallery { position:static; margin-bottom:18px; }
  body#product .gallery__stage { width:100%; height:clamp(520px,72vw,720px); aspect-ratio:auto; }
  body#product .gallery__thumbs-shell { border-top:1px solid var(--line); }
  body#product .gallery__thumbs-shell.has-overflow::before,
  body#product .gallery__thumbs-shell.has-overflow::after { content:''; position:absolute; z-index:2; top:0; bottom:0; width:50px; pointer-events:none; }
  body#product .gallery__thumbs-shell.has-overflow::before { left:0; background:linear-gradient(90deg,#fff 18%,rgba(255,255,255,0)); }
  body#product .gallery__thumbs-shell.has-overflow::after { right:0; background:linear-gradient(90deg,rgba(255,255,255,0),#fff 82%); }
  body#product .gallery__thumbs { padding:8px 10px; scroll-snap-type:x proximity; }
  body#product .gallery__thumb { scroll-snap-align:center; }
  body#product .d24-product-details__summary { font-size:11px; }
  body#product .d24-product-details__scroll { max-height:210px; }
  body#product .d24-product-details__row { grid-template-columns:minmax(88px,36%) minmax(0,1fr); padding:8px 10px; }
}
@media (max-width:720px) {
  body#product .gallery__stage { height:auto; aspect-ratio:4/5; }
}

/* GGF-FBT-GRAPHITE-20261026: "Acquistati spesso insieme" (AS-Bought Together) — the add-selected button uses the
 * shop's graphite buy-action tokens like the add-to-cart button and the cart recommendations; the module's seafoam
 * and green accents (checkboxes, set price, focus outline) become graphite. Module CSS (shared with Decoart24) unchanged. */
body#product .d24fbt__submit { color:var(--d24-cta-color); background:var(--d24-cta-bg); border:1px solid var(--d24-cta-border); box-shadow:var(--d24-cta-shadow); text-shadow:0 1px 1px rgba(140,35,10,.28); transition:background .18s ease,box-shadow .18s ease,transform .18s ease; }
/* state order: hover < active < keyboard focus (ring kept while hovered or pressed) < disabled */
@media (hover:hover) {
  body#product .d24fbt__submit:hover { color:var(--d24-cta-color); background:var(--d24-cta-bg-hover); border-color:var(--d24-cta-border); box-shadow:var(--d24-cta-shadow-hover); }
}
body#product .d24fbt__submit:active { box-shadow:var(--d24-cta-shadow-active); }
body#product .d24fbt__submit:focus-visible { box-shadow:var(--d24-cta-shadow),var(--d24-cta-ring); outline:0; }
body#product .d24fbt__submit:disabled { color:#777; background:#e5e3df; border-color:#e5e3df; box-shadow:none; text-shadow:none; }
body#product .d24fbt__check, body#product .d24fbt__checkbox { accent-color:#171917; }
body#product .d24fbt__price { color:#171917; }
body#product .d24fbt a:focus-visible, body#product .d24fbt input:focus-visible, body#product .d24fbt select:focus-visible { outline-color:#5a5a5a; }

/* GGF-WHATSAPP-20261026: WhatsApp chat link on the product page — dark label and icon on the WhatsApp green for
 * readable contrast, visible keyboard focus ring. */
body#product .whatsapp-button, body#product .whatsapp-button:hover { color:#0b2e1a; }
body#product .whatsapp-button:focus-visible { color:#0b2e1a; outline:2px solid #0b2e1a; outline-offset:2px; }

/* GGF-PAGES-FIXES-20261029: sold-out product ("Esaurito" panel instead of empty variants and a disabled button). */
body#product .availability.availability--sold-out { color:#5f5850; background:#f1eeea; }
body#product .ggf-sold-out { display:grid; gap:8px; margin:4px 0 18px; padding:18px 20px; border:1px solid #e3ded6; border-radius:14px; background:#fbfaf7; }
body#product .ggf-sold-out__title { margin:0; color:#222; font-family:Georgia,"Times New Roman",serif; font-size:22px; line-height:1.2; }
body#product .ggf-sold-out__text { margin:0; color:#4a4845; font-size:14px; line-height:1.5; }
body#product .ggf-sold-out__link { justify-self:start; display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; color:var(--d24-cta-color); background:var(--d24-cta-bg); border:1px solid var(--d24-cta-border); border-radius:999px; box-shadow:var(--d24-cta-shadow); font-size:14px; font-weight:800; text-decoration:none; }
body#product .ggf-sold-out__link:hover { background:var(--d24-cta-bg-hover); }
body#product .ggf-sold-out__link:focus-visible { box-shadow:var(--d24-cta-shadow),var(--d24-cta-ring); outline:0; }
