/* Interactive editorial layer. All colours come from the existing Cumbé theme. */
[hidden] { display: none !important; }
:root { --experience-rule: rgba(0, 59, 92, .2); }
button, input, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible {
    outline: 2px solid var(--premium-medium-blue); outline-offset: 5px;
}
.experience-kicker {
    font: 400 .875rem/1.5 'Inconsolata', monospace;
    letter-spacing: .12em; text-transform: uppercase;
}
.editorial-link {
    display: inline-flex; align-items: center; justify-content: space-between; gap: 32px;
    padding: 16px 0; border-bottom: 1px solid currentColor; font-size: .9375rem;
}
.editorial-link span { transition: transform .3s var(--premium-ease); }
.editorial-link:hover span { transform: translate(3px, -3px); }
.reading-progress { position: fixed; top: 0; left: 0; width: 100%; height: 3px; z-index: 800; background: var(--premium-coral); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.desktop-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 48px); margin-left: auto; margin-right: 36px; }
.desktop-nav a { position: relative; color: var(--premium-navy); font-size: .875rem; padding-block: 12px; }
.page-home header:not(.is-scrolled) .desktop-nav a { color: var(--premium-white); }
.desktop-nav a::after { content: ''; position: absolute; left: 0; bottom: 4px; height: 1px; width: 100%; background: var(--premium-coral); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.desktop-nav a:hover::after, .desktop-nav a[aria-current]::after { transform: scaleX(1); }
.main-menu { isolation: isolate; padding-inline: clamp(24px, 6vw, 90px); }
.menu-editorial { display: none; }
.menu-caption { color: var(--premium-blush); font: 400 .875rem/1.5 'Inconsolata', monospace; letter-spacing: .1em; }
.main-menu ul { width: 100%; max-width: 620px; text-align: left; }
.main-menu li { margin: 0; overflow: visible; }
.main-menu li + li { border-top: 1px solid var(--premium-line); }
.main-menu a {
    position: relative; display: flex; align-items: center; justify-content: space-between;
    gap: 20px; width: 100%; min-height: 72px; padding: clamp(15px, 2.5vh, 24px) 0;
    font-size: clamp(2rem, 4vw, 4rem); line-height: 1.15; letter-spacing: -.035em;
    font-style: normal; text-transform: none;
}
.main-menu a:hover { transform: none; }
.main-menu a:focus-visible { outline-color: var(--premium-sky); outline-offset: 7px; }
.menu-link-label { min-width: 0; transition: transform .4s var(--premium-ease); }
.menu-link-arrow {
    display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px;
    font: 400 1.6rem/1 'Source Sans Pro', sans-serif; color: var(--premium-coral);
    opacity: 0; transform: translate(-8px, 8px);
    transition: opacity .3s ease, transform .4s var(--premium-ease);
}
.main-menu a::after {
    content: ''; position: absolute; right: 0; bottom: -1px; left: 0;
    height: 1px; background: var(--premium-coral); transform: scaleX(0); transform-origin: left;
    transition: transform .5s var(--premium-ease);
}
.main-menu a:is(:hover, :focus-visible, [aria-current]) { color: var(--premium-coral); }
.main-menu a:is(:hover, :focus-visible) .menu-link-label { transform: translateX(8px); }
.main-menu a:is(:hover, :focus-visible, [aria-current]) .menu-link-arrow { opacity: 1; transform: none; }
.main-menu a:is(:hover, :focus-visible, [aria-current])::after { transform: scaleX(1); }
.main-menu a[aria-current] .menu-link-label::before {
    content: ''; display: inline-block; width: 5px; height: 5px; margin-right: 14px;
    border-radius: 50%; background: var(--premium-coral); vertical-align: middle;
}
.main-menu .close-menu { background: transparent; }
.main-menu .close-menu:hover { background: var(--premium-coral); }
.main-menu.open li { animation: menu-line .6s var(--premium-ease) both; animation-delay: calc(var(--menu-index, 0) * 55ms); }
@keyframes menu-line { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* First impression: an oversized wordmark behind the real bottle asset. */
.hero.hero--home { min-height: 860px; min-height: max(820px, 100svh); }
.hero-shell { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4vw; }
.hero-copy { padding-block: 60px 90px; }
.hero-copy h1 { font-size: clamp(4rem, 6.8vw, 7.5rem); line-height: .98; }
.hero-copy .eyebrow { font-size: .875rem; letter-spacing: .14em; }
.hero-lede { max-width: 445px; font-size: 1.0625rem; }
.hero-cta { gap: 24px; font-size: .875rem; letter-spacing: .08em; min-height: 58px; }
.hero-note strong { font-size: 1.375rem; }
.hero-note span { font-size: .8125rem; letter-spacing: .09em; }
.hero-visual { min-height: 680px; perspective: 1000px; isolation: isolate; }
.hero-watermark { position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%) rotate(-90deg); color: rgba(255,255,255,.055); font: 400 clamp(8rem, 17vw, 18rem)/1 'Ogg', Georgia, serif; letter-spacing: -.07em; pointer-events: none; z-index: -1; }
.hero-aura { width: min(33vw, 490px); }
.hero-bottle { animation: none; height: clamp(540px, 66svh, 720px); max-height: none; max-width: 95%; transform: translate3d(var(--bottle-x, 0px), var(--bottle-y, 0px), 0) rotate(var(--bottle-rotate, -5deg)); transition: transform .65s var(--premium-ease); }
.hero-seal { right: 0; top: 18%; width: 112px; }
.hero-seal span { font-size: .75rem; }
.hero-scroll { font-size: .8125rem; letter-spacing: .12em; }
.bottle-discover { position: absolute; bottom: 38px; left: 50%; transform: translateX(-50%); z-index: 5; display: flex; align-items: center; gap: 12px; border: 0; color: var(--premium-white); background: none; cursor: pointer; white-space: nowrap; font-size: .875rem; padding: 8px; }
.bottle-discover > span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--premium-coral); border-radius: 50%; font-size: 1.6rem; transition: transform .3s, background .3s; }
.bottle-discover:hover > span { background: var(--premium-coral); color: var(--premium-navy); }
.bottle-discover[aria-expanded="true"] > span { transform: rotate(45deg); }
.bottle-note { position: absolute; bottom: 105px; left: 50%; transform: translateX(-50%); width: min(330px, 95%); padding: 26px; z-index: 6; color: var(--premium-navy); background: var(--premium-blush); box-shadow: var(--premium-shadow); }
.bottle-note > span { font: .875rem 'Inconsolata', monospace; }
.bottle-note p { margin: 16px 0; font: 1.375rem/1.4 'Ogg', Georgia, serif; }
.bottle-note a { font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; }

/* Origin: a photographic spread and a keyboard-accessible tasting notebook. */
.origin-experience { display: grid; grid-template-columns: 1fr 1fr; background: var(--premium-blush); scroll-margin-top: 90px; }
.origin-photo { position: relative; min-height: 750px; overflow: hidden; color: var(--premium-white); isolation: isolate; }
.origin-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,59,92,.08) 25%, rgba(0,59,92,.72)); z-index: -1; }
.origin-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.5s var(--premium-ease); }
.origin-photo:hover > img { transform: scale(1.035); }
.origin-caption { position: absolute; top: 40px; left: 40px; display: flex; gap: 24px; font: .875rem 'Inconsolata', monospace; text-transform: uppercase; letter-spacing: .12em; }
.origin-word { position: absolute; left: clamp(30px, 5vw, 80px); bottom: 60px; font: 400 clamp(3.5rem, 6vw, 6.5rem)/1.02 'Ogg', Georgia, serif; letter-spacing: -.035em; }
.origin-word em { color: var(--premium-blush); }
.origin-editorial { display: flex; flex-direction: column; justify-content: center; padding: clamp(45px, 6vw, 96px); min-width: 0; }
.origin-editorial h2, .ritual-heading h2, .collection-invitation h2 { margin: 35px 0; font: 400 clamp(3.3rem, 4.5vw, 5.6rem)/1.06 'Ogg', Georgia, serif; letter-spacing: -.04em; }
.origin-editorial h2 em, .ritual-heading h2 em { font-weight: 400; }
.experience-tabs { display: flex; gap: 22px; border-bottom: 1px solid var(--experience-rule); }
.experience-tabs button { padding: 14px 0; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--premium-navy); cursor: pointer; font-size: .875rem; }
.experience-tabs button[aria-selected="true"] { border-bottom-color: var(--premium-navy); }
.experience-tabs button:hover { border-bottom-color: var(--premium-coral); }
.origin-panel { min-height: 245px; padding: 32px 0 14px; }
.origin-detail { font: .8125rem/1.6 'Inconsolata', monospace; text-transform: uppercase; letter-spacing: .08em; }
.origin-panel h3 { margin: 12px 0; font: 400 1.8rem/1.2 'Ogg', Georgia, serif; }
.origin-panel p { font-size: 1rem; line-height: 1.8; }
.origin-editorial > .editorial-link { align-self: flex-start; }
.origin-panel:not([hidden]) { animation: panel-arrive .4s var(--premium-ease); }
@keyframes panel-arrive { from { opacity: .3; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Cocktail selection, deliberately manual: the visitor sets the pace. */
.home-ritual { display: grid; grid-template-columns: .85fr 1.65fr; gap: 5vw; padding: clamp(70px, 8vw, 130px) clamp(24px, 5vw, 80px); background: var(--premium-white); }
.ritual-heading { align-self: center; }
.ritual-heading h2 { font-size: clamp(3rem, 4.1vw, 5rem); }
.ritual-showcase { display: grid; grid-template-columns: 1.1fr 1fr; gap: 30px; align-items: center; min-width: 0; }
.ritual-visual { position: relative; overflow: hidden; background: var(--premium-blush); }
.ritual-visual > img { width: 100%; aspect-ratio: 2/3; object-fit: cover; }
.ritual-index { position: absolute; left: 20px; bottom: 20px; background: var(--premium-navy); color: var(--premium-white); padding: 10px 14px; font: .8125rem 'Inconsolata', monospace; }
.ritual-info h3 { margin: 20px 0; font: 400 clamp(2.5rem, 3.2vw, 4rem)/1.05 'Ogg', Georgia, serif; }
.ritual-info > p:not(.experience-kicker):not(.sr-only) { font-size: 1rem; line-height: 1.7; margin-bottom: 20px; }
.ritual-controls { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 40px; }
.ritual-controls > button, .stepper button, .recipe-step-controls button, .gallery-zoom, .dialog-close { display: grid; place-items: center; min-width: 44px; height: 44px; border: 1px solid var(--experience-rule); border-radius: 50%; background: none; color: var(--premium-navy); cursor: pointer; transition: background .2s, transform .2s; }
.ritual-controls > button:hover, .stepper button:hover, .recipe-step-controls button:hover { background: var(--premium-blush); }
.ritual-dots { display: flex; }
.ritual-dots button { width: 25px; height: 44px; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.ritual-dots button::before { content: ''; width: 6px; height: 6px; border: 1px solid var(--premium-navy); border-radius: 50%; transition: transform .2s; }
.ritual-dots button[aria-pressed="true"]::before { background: var(--premium-navy); transform: scale(1.4); }
.collection-invitation { position: relative; isolation: isolate; overflow: hidden; padding: 80px max(24px, 9vw); min-height: 530px; background: var(--premium-coral); }
.collection-invitation h2 { margin-block: 30px; }
.collection-invitation .hero-cta { border-color: var(--premium-navy); color: var(--premium-white); background: var(--premium-navy); }
.collection-invitation > img { position: absolute; height: 120%; width: 48%; right: 6%; top: -10%; object-fit: contain; transform: rotate(9deg); z-index: -1; }

/* Cocktail atelier. */
.page-cocktails .page-header { min-height: 410px; padding-bottom: 58px; }
.page-cocktails .page-header h1 { font-size: clamp(4rem, 8vw, 8rem); }
.page-cocktails .page-header p { max-width: 540px; font-size: 1.0625rem; }
.cocktail-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 42px; }
.cocktail-filter button { padding: 12px 22px; min-height: 44px; border: 1px solid var(--experience-rule); border-radius: 30px; background: none; color: var(--premium-navy); cursor: pointer; font-size: .875rem; }
.cocktail-filter button[aria-pressed="true"] { background: var(--premium-navy); color: var(--premium-white); }
.page-cocktails .cocktails-section { padding-block: 60px 80px; }
.cocktail-card { position: relative; }
.cocktail-card .editorial-link { width: 100%; font-size: .875rem; }
.cocktail-card__meta { font-size: .875rem; }
.cocktail-card__image { display: block; overflow: hidden; }
.cocktail-card__image img { transition: transform .8s var(--premium-ease); }
.cocktail-card:hover .cocktail-card__image img { transform: scale(1.04); }
.cocktail-card.is-selected .editorial-link { border-bottom: 2px solid var(--premium-navy); }
.recipe-section { scroll-margin-top: 100px; }
.recipe-grid { align-items: start; }
.recipe-attribution { font: .875rem/1.5 'Inconsolata', monospace; letter-spacing: .08em; text-transform: uppercase; }
.recipe-content h2 { font-size: clamp(3.5rem, 5.5vw, 6rem); }
.recipe-tools { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding: 24px 0; margin-top: 20px; border-block: 1px solid var(--experience-rule); }
.recipe-tools { border-color: var(--premium-line); }
.recipe-tools .stepper button { color: var(--premium-white); border-color: var(--premium-line); }
.recipe-tools .stepper button:hover { color: var(--premium-navy); }
.stepper { display: flex; align-items: center; gap: 18px; }
.stepper output { min-width: 78px; text-align: center; font-size: .9375rem; }
.unit-toggle { display: inline-flex; border: 1px solid var(--premium-line); border-radius: 24px; padding: 3px; }
.unit-toggle button { border: 0; border-radius: 22px; padding: 9px 14px; min-height: 38px; color: var(--premium-white); background: none; cursor: pointer; font-size: .875rem; }
.unit-toggle button[aria-pressed="true"] { background: var(--premium-coral); color: var(--premium-navy); }
.recipe-content .ingredient-list { padding: 0; margin: 20px 0 30px; list-style: none; }
.ingredient-list li { padding: 0; margin: 0; border-bottom: 1px solid var(--premium-line); }
.ingredient-list label { display: flex; align-items: center; gap: 14px; padding-block: 14px; cursor: pointer; font-size: 1rem; }
.ingredient-list input { width: 19px; height: 19px; flex-shrink: 0; accent-color: var(--premium-coral); }
.ingredient-list input:checked + span { text-decoration: line-through; opacity: .6; }
.ingredient-list strong { font-weight: 600; }
.recipe-content h3 { font: 400 1.65rem/1.2 'Ogg', Georgia, serif; margin-block: 24px 14px; letter-spacing: 0; text-transform: none; }
.recipe-guide { padding: 26px; color: var(--premium-navy); background: var(--premium-blush); border: 1px solid var(--experience-rule); }
.recipe-content .recipe-step-copy { color: var(--premium-navy); }
.recipe-step-top { display: flex; justify-content: space-between; gap: 15px; align-items: center; }
.recipe-step-count { font: .875rem 'Inconsolata', monospace; letter-spacing: .08em; }
.recipe-step-controls { display: flex; gap: 8px; }
.recipe-step-title { font: 400 1.7rem/1.2 'Ogg', Georgia, serif; margin: 18px 0 12px; }
.recipe-step-copy { min-height: 85px; font-size: 1rem; line-height: 1.7; }
.recipe-progress { display: flex; gap: 6px; margin-top: 24px; }
.recipe-progress span { height: 3px; flex: 1; background: var(--premium-white); }
.recipe-progress span.is-complete { background: var(--premium-navy); }
.recipe-copy { width: 100%; margin-top: 18px; cursor: pointer; color: var(--premium-white); background: none; border: 0; border-bottom: 1px solid var(--premium-line); text-align: left; }
.recipe-image { position: sticky; top: 130px; }
.recipe-image img { object-fit: cover; }
.recipe-serving-note { margin-top: 12px; font-size: .875rem; line-height: 1.5; }
.recipe-feedback { font-size: .875rem; min-height: 24px; margin-top: 10px; }
.recipe-print-fallback { width: 100%; margin-top: 12px; padding: 16px; font: 1rem/1.5 'Source Sans Pro', sans-serif; color: var(--premium-navy); border: 1px solid var(--experience-rule); background: var(--premium-white); }

/* Detail view and the same interactions throughout the shop. */
.gallery-zoom { position: absolute; right: 22px; bottom: 22px; z-index: 3; width: auto; padding-inline: 18px; border-radius: 30px; background: var(--premium-white); gap: 10px; display: flex; font-size: .875rem; }
.gallery-zoom:hover { background: var(--premium-coral); }
.product-zoom { margin: auto; width: min(880px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 30px; border: 0; background: var(--premium-blush); overflow: auto; }
.product-zoom::backdrop { background: rgba(0,59,92,.8); backdrop-filter: blur(8px); }
.product-zoom img { width: 100%; height: min(1000px, 150svh); object-fit: contain; }
.dialog-close { position: sticky; top: 0; margin-left: auto; background: var(--premium-white); font-size: 1.5rem; z-index: 2; }
body.dialog-open { overflow: hidden; }
.product-accordion { margin-block: 28px; border-top: 1px solid var(--experience-rule); }
.product-accordion details { border-bottom: 1px solid var(--experience-rule); padding: 18px 0; }
.product-accordion summary { cursor: pointer; font-size: 1rem; }
.product-accordion details p { padding-top: 14px; font-size: 1rem; line-height: 1.7; }
.quantity-selector { min-height: 56px; }
.qty-btn { min-width: 42px; min-height: 44px; }
.purchase-total { margin-top: 16px; display: flex; justify-content: space-between; gap: 20px; font-size: .9375rem; }
.product-subtitle, .spec-label, .product-card__specs, .product-card__price-liter, .info-index, .related-item .price, .form-group label, .contact-block h3, .newsletter-contact { font-size: .875rem; }
.product-card__title a { text-decoration-thickness: 1px; text-underline-offset: 7px; }
.product-card__title a:hover { text-decoration-line: underline; }
.back-to-top { position: fixed; bottom: 24px; right: 24px; z-index: 400; width: 48px; height: 48px; border: 1px solid var(--premium-navy); border-radius: 50%; color: var(--premium-navy); background: var(--premium-blush); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
button:disabled { cursor: default; opacity: .4; }

@media (min-width: 1000px) {
    .main-menu { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(60px, 8vw, 140px); padding-inline: 8vw; }
    .main-menu ul { text-align: left; }
    .menu-editorial { display: block; max-width: 420px; }
    .menu-editorial img { width: 100%; height: min(36vh, 330px); object-fit: cover; margin: 28px 0; }
    .menu-editorial p:last-child { color: var(--premium-white); font: 400 clamp(2rem, 2.8vw, 3rem)/1.15 'Ogg', Georgia, serif; letter-spacing: -.025em; }
    .menu-editorial em { font-style: normal; color: var(--premium-coral); }
    .main-menu.open .menu-editorial { animation: menu-line .8s .1s var(--premium-ease) both; }
}
@media (hover: none) {
    .menu-link-arrow { opacity: .65; transform: none; }
}
@media (max-width: 480px) {
    .main-menu a { gap: 12px; font-size: clamp(1.8rem, 8vw, 2.4rem); }
    .menu-link-arrow { width: 32px; font-size: 1.4rem; }
}
@media (max-height: 600px) {
    .main-menu { align-items: start; padding-top: 90px; padding-bottom: 30px; }
    .main-menu a { min-height: 52px; padding-block: 12px; font-size: clamp(1.6rem, 5vh, 2.3rem); }
    .menu-editorial img { height: 24vh; margin-block: 16px; }
}
@media (max-width: 1100px) {
    .desktop-nav { gap: 24px; margin-right: 24px; }
    .desktop-nav a:nth-child(2) { display: none; }
    .home-ritual { grid-template-columns: 1fr; }
    .ritual-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; }
    .ritual-heading > .experience-kicker { grid-column: 1/-1; }
    .ritual-heading .editorial-link { margin-bottom: 35px; }
    .ritual-showcase { max-width: 850px; width: 100%; margin-inline: auto; gap: 8vw; }
    .origin-editorial { padding: 45px 32px; }
    .experience-tabs { gap: 15px; }
}
@media (max-width: 760px) {
    .desktop-nav { display: none; }
    .hero.hero--home { padding: 100px 24px 24px; min-height: 0; }
    .hero-shell { grid-template-columns: 1fr; grid-template-rows: auto auto; min-height: 0; gap: 0; }
    .hero-copy { padding: 25px 0 10px; }
    .hero-copy h1 { font-size: clamp(3.1rem, 12.3vw, 5.5rem); max-width: 650px; }
    .hero-copy .eyebrow { font-size: .8125rem; }
    .hero-lede { font-size: 1rem; margin-top: 24px; }
    .hero-actions { gap: 10px; flex-direction: row; }
    .hero-cta { flex: 1 1 130px; padding-inline: 16px; font-size: .8125rem; letter-spacing: .03em; }
    .hero-notes { display: flex; margin-top: 26px; justify-content: space-between; }
    .hero-note strong { font-size: 1.125rem; }
    .hero-note span { font-size: .75rem; }
    .hero-visual { min-height: 520px; margin-top: 0; padding: 20px 0 80px; }
    .hero-bottle { height: 440px; max-height: none; max-width: 90%; }
    .hero-aura { width: min(72vw, 370px); top: 47%; }
    .hero-watermark { font-size: 9rem; }
    .hero-seal { top: 13%; right: 2%; width: 90px; }
    .hero-seal span { font-size: .75rem; }
    .bottle-discover { bottom: 15px; }
    .bottle-note { bottom: 78px; }
    .origin-experience { grid-template-columns: 1fr; }
    .origin-photo { min-height: 520px; }
    .origin-caption { left: 26px; top: 26px; }
    .origin-word { bottom: 36px; }
    .origin-editorial { padding: 55px 26px; }
    .origin-editorial h2 { font-size: clamp(3rem, 10vw, 4.5rem); }
    .origin-panel { min-height: 215px; }
    .ritual-heading { display: block; }
    .ritual-heading .editorial-link { margin-bottom: 20px; }
    .home-ritual { padding: 60px 24px; gap: 30px; }
    .ritual-showcase { gap: 24px; }
    .ritual-info h3 { font-size: 2.5rem; }
    .ritual-controls { gap: 4px; }
    .collection-invitation { padding: 50px 26px 370px; min-height: 0; }
    .collection-invitation > img { height: 480px; width: 85%; right: -5%; top: auto; bottom: -90px; }
    .collection-invitation h2 { font-size: 3.6rem; }
    .page-cocktails .page-header { min-height: 360px; padding-top: 140px; }
    .page-cocktails .cocktails-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 18px; }
    .cocktail-card__name { font-size: 1.7rem; }
    .cocktail-card__meta { font-size: .875rem; }
    .cocktail-card .editorial-link { font-size: .8125rem; gap: 8px; }
    .recipe-image { position: static; }
    .recipe-image img { height: auto; max-height: 650px; }
    .recipe-grid { gap: 40px; }
    .recipe-tools { gap: 10px; }
    .recipe-guide { padding: 22px; }
    .product-zoom { padding: 16px; }
    .back-to-top { bottom: 16px; right: 16px; }
}
@media (max-width: 480px) {
    .ritual-showcase { grid-template-columns: 1fr; }
    .ritual-visual > img { aspect-ratio: 4/5; }
    .ritual-info h3 { margin-block: 14px; font-size: 3rem; }
    .ritual-info .editorial-link { width: 100%; }
    .ritual-controls { max-width: 270px; margin-top: 22px; }
    .experience-tabs { justify-content: space-between; gap: 10px; }
    .experience-tabs button { font-size: .8125rem; }
    .origin-panel { min-height: 260px; }
    .cocktail-filter { gap: 8px; }
    .cocktail-filter button { padding-inline: 15px; }
    .stepper { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .hero-bottle { transform: rotate(-5deg); }
    .origin-photo:hover > img, .cocktail-card:hover img { transform: none; }
}
