.age-gate { --lienzo:#F4F1EA; --exito:#C5A87C; --exito-soft:#E4D6BC; --negro:#16140F; --serif:"IvyPresto Display","Playfair Display",Georgia,serif; --sans:"Neue Haas Grotesk Display Pro","Helvetica Neue",Arial,sans-serif; font-family:var(--sans); }
body.age-gate-open { overflow:hidden; }
        /* ============ AGE GATE ============ */
        .age-gate {
            position: fixed;
            inset: 0;
            z-index: 12000;
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100svh;
            padding: 32px;
            color: var(--lienzo);
            background:
                linear-gradient(180deg, rgba(22,20,15,0.82), rgba(22,20,15,0.96)),
                radial-gradient(circle at 50% 18%, rgba(197,168,124,0.16), transparent 32%),
                var(--negro);
        }
        .age-gate.is-hidden { display: none; }
        .age-gate-panel {
            width: min(100%, 520px);
            text-align: center;
        }
        .age-gate-logo {
            width: 86px;
            height: auto;
            margin: 0 auto 34px;
            display: block;
        }
        .age-gate h2 {
            font-family: var(--serif);
            font-size: clamp(34px, 6vw, 56px);
            font-weight: 400;
            line-height: 1.08;
            margin-bottom: 18px;
        }
        .age-gate h2 em { color: var(--exito); font-style: italic; }
        .age-gate p {
            max-width: 430px;
            margin: 0 auto;
            font-size: 15px;
            font-weight: 300;
            line-height: 1.8;
            opacity: 0.78;
        }
        .age-gate-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
            margin: 34px auto 18px;
            max-width: 430px;
        }
        .age-gate-btn {
            min-height: 48px;
            border: 1px solid rgba(244,241,234,0.42);
            background: transparent;
            color: var(--lienzo);
            cursor: pointer;
            font-family: var(--sans);
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            transition: background .3s ease, border-color .3s ease, color .3s ease;
        }
        .age-gate-btn.primary {
            border-color: var(--exito);
            background: var(--exito);
            color: var(--negro);
        }
        .age-gate-btn:hover {
            border-color: var(--exito-soft);
            background: var(--exito-soft);
            color: var(--negro);
        }
        .age-gate-legal {
            font-size: 11px;
            line-height: 1.6;
            opacity: 0.48;
        }
        .age-gate-denied {
            display: none;
            margin-top: 22px;
            color: var(--exito-soft);
            font-size: 13px;
            line-height: 1.6;
        }
        .age-gate.is-denied .age-gate-actions { display: none; }
        .age-gate.is-denied .age-gate-denied { display: block; }
        .age-gate-lang {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            margin-top: 28px;
            font-size: 11px;
            letter-spacing: 1px;
            font-weight: 500;
        }
        .age-gate-lang button {
            appearance: none;
            background: transparent;
            border: 0;
            color: var(--lienzo);
            cursor: pointer;
            font: inherit;
            opacity: 0.4;
            padding: 4px;
            transition: opacity 0.3s ease, color 0.3s ease;
        }
        .age-gate-lang button.active {
            color: var(--exito);
            font-weight: 600;
            opacity: 1;
        }
        .age-gate-eyebrow {
            color: var(--exito);
            display: block;
            margin-bottom: 18px;
        }


/* Preserve palette; restore readability by reducing transparency. */
.age-gate { overflow-y:auto; align-items:safe center; min-height:0; }
.age-gate-panel { margin-block:auto; flex-shrink:0; }
.age-gate .age-gate-eyebrow { font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; opacity:.75; }
.age-gate .age-gate-legal { opacity:.65; }
.age-gate-lang button, .lang-selector button { opacity:.7; }
.age-gate-legal-links { display:flex; justify-content:center; gap:20px; margin-top:12px; font-size:11px; }
.age-gate-legal-links a { color:var(--lienzo); text-underline-offset:3px; }
.age-gate noscript p { margin-top:20px; }
body .locator-filter-row label, body .results-meta { opacity:.75; }
body .footer-nav-box h5, body .footer-newsletter-box h5, body .footer-awards-box h5, body .footer-nav-box h2, body .footer-newsletter-box h2, body .footer-awards-box h2 { opacity:.65; }
body .footer-bottom-bar { opacity:.65; }
/* Higher specificity than the existing input outline resets. Contextual brand inks. */
body :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline:2px solid #F4F1EA; outline-offset:4px; box-shadow:0 0 0 4px #16140F; }
.skip-link { position:fixed; top:12px; left:12px; z-index:13000; padding:12px 18px; color:#F4F1EA; background:#16140F; transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.motion-toggle { position:fixed; left:16px; bottom:16px; z-index:80; padding:10px 14px; border:1px solid #C5A87C; color:#F4F1EA; background:#16140F; font:11px "Neue Haas Grotesk Display Pro","Helvetica Neue",Arial,sans-serif; cursor:pointer; }
body.modal-open .motion-toggle { visibility:hidden; }
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto !important; }
 *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

.canvas-content-side { overflow-y:auto; }
.canvas-content-side > * { flex-shrink:0; }

/* Contrast adjustments approved after visual review, 2026-11-09. */
[data-i18n="history.eyebrow"] { opacity:1; }
.bottle-card p.short-desc { opacity:.9; }
.dist-item .index { color:var(--origen); }
.article-count { color:rgba(48,44,36,.75); }
.article-meta { color:rgba(48,44,36,.75); }
.article-hero .article-meta { color:rgba(244,241,234,.82); }
.article-aside-label { color:rgba(48,44,36,.75); }

/* Keep the approved brand inks readable in translated and hover states. */
#hero > .eyebrow { opacity:.85; }
body .close-canvas-btn:hover { opacity:1; }
