/* Made with ♥ by Mister Topdesign */
:root {
  --wine: #741c2b;
  --wine-dark: #4d101b;
  --orange: #ed6b2d;
  --cream: #f5e9d8;
  --paper: #fbf7ef;
  --ink: #201c19;
  --muted: #70665e;
  --line: rgba(32, 28, 25, 0.16);
  --display: "Avenir Next Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --sans: "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --shadow: 0 30px 80px rgba(59, 27, 22, 0.14);
  --mt-header-logo-height: 54px;
  --mt-header-logo-height-scrolled: 46px;
  --mt-header-logo-height-tablet: 46px;
  --mt-header-logo-height-mobile: 43px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); overflow-x: hidden; }
body.menu-open { position: fixed; inset-inline: 0; top: var(--mt-menu-scroll-offset, 0); width: 100%; overflow: hidden; }
body.cart-open:not(.menu-open) { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.skip-link { position: fixed; top: 0; left: 1rem; z-index: 1000; padding: .8rem 1rem; background: var(--ink); color: white; transform: translateY(-120%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; display: flex; align-items: center; justify-content: space-between; height: 94px; padding: 0 clamp(1.25rem, 5vw, 5rem); background: rgba(251,247,239,.97); border-bottom: 1px solid transparent; transition: .3s ease; }
.site-header.scrolled { height: 76px; background: rgba(251,247,239,.94); backdrop-filter: blur(14px); border-color: var(--line); }
.brand { display: flex; align-items: center; position: relative; z-index: 2; }
.brand-logo { width: auto; height: var(--mt-header-logo-height); object-fit: contain; transition: height .25s ease; }
.site-header.scrolled .brand-logo { height: var(--mt-header-logo-height-scrolled); }
.navigation { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2.4rem); }
.navigation a { font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.navigation a:not(.nav-cta) { position: relative; }
.navigation a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.35rem; height: 1px; background: currentColor; transition: .25s; }
.navigation a:hover::after { right: 0; }
.navigation a.is-current::after { right: 0; }
.nav-cta { padding: .75rem 1.1rem; border: 1px solid var(--ink); font-weight: 600 !important; }
.cart-trigger { display: inline-flex; align-items: center; gap: .55rem; min-height: 42px; padding: .65rem .75rem; border: 0; background: var(--orange); color: white; cursor: pointer; text-transform: uppercase; letter-spacing: .1em; }
.mt-cart-icon { display: block; flex: 0 0 auto; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cart-trigger span { font-size: .61rem; font-weight: 600; }
.cart-trigger strong { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 22px; height: 22px; padding: .08em .3em 0; border-radius: 999px; background: white; color: var(--wine); font-size: .63rem; line-height: 1; font-variant-numeric: tabular-nums; }
.mobile-cart-trigger { display: none; }
.menu-toggle { display: none; border: 0; background: none; padding: 10px; }
.menu-toggle > span:not(.sr-only) { display: block; width: 25px; height: 1px; margin: 6px 0; background: var(--ink); transition: .3s; }

.promo-slider { position: fixed; z-index: 99; inset: 76px 0 auto; display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 62px; margin: 0; padding: 0 clamp(1.25rem, 5vw, 5rem); background: var(--wine); color: white; overflow: hidden; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-110%); transition: opacity .28s ease, transform .35s ease, visibility .35s; }
.promo-slider.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.promo-slider::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 36px; background: conic-gradient(from 90deg at 50% 50%, white 25%, var(--orange) 0 50%, var(--wine) 0 75%, var(--orange) 0); background-size: 18px 18px; opacity: .94; }
.promo-slides { position: relative; min-width: 0; height: 62px; margin-left: 0; }
.promo-slide { position: absolute; inset: 0; display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.8rem); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .4s ease, transform .4s ease, visibility .4s; }
.promo-slide.is-active { opacity: 1; visibility: visible; transform: translateY(0); }
.promo-kicker { flex: 0 0 auto; padding: .42rem .62rem; background: var(--orange); color: white; font-size: .59rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.promo-slide p { min-width: 0; margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .83rem; letter-spacing: .01em; }
.promo-slide p strong { font-weight: 700; }
.promo-slide > a { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .4rem; color: white; font-size: .62rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,.55); }
.promo-controls { display: flex; align-items: center; gap: .35rem; padding-left: 1.5rem; }
.promo-dots { display: flex; gap: .38rem; margin-right: .8rem; }
.promo-dots button { width: 6px; height: 6px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.35); cursor: pointer; transition: .25s; }
.promo-dots button.is-active { width: 18px; border-radius: 5px; background: var(--orange); }
.promo-arrow { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid rgba(255,255,255,.3); background: transparent; color: white; cursor: pointer; transition: .2s; }
.promo-arrow:hover, .promo-arrow:focus-visible { background: white; color: var(--wine); }

.hero { position: relative; height: clamp(560px, calc(100vh - 94px), 880px); min-height: 560px; margin-top: 94px; padding: 0; scroll-margin-top: 76px; background: var(--ink); color: white; overflow: hidden; }
.hero::after { content: ""; position: absolute; z-index: 5; right: 0; top: 0; width: min(22vw, 280px); height: 18px; background: conic-gradient(from 90deg at 50% 50%, var(--orange) 25%, transparent 0 50%, var(--wine) 0 75%, transparent 0); background-size: 18px 18px; pointer-events: none; }
.eyebrow, .section-label { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.5rem; font-size: .67rem; line-height: 1; letter-spacing: .18em; font-weight: 700; text-transform: uppercase; }
.eyebrow > span { width: 34px; height: 1px; background: currentColor; }
h1, h2 { margin: 0; font: 700 clamp(2.9rem, 5.6vw, 6.5rem)/.89 var(--display); letter-spacing: -.04em; text-transform: uppercase; }
h1 em, h2 em { color: var(--wine); font-style: normal; font-weight: 400; }
.hero-intro { max-width: 610px; margin: 2rem 0; color: var(--muted); font: 500 clamp(1.03rem, 1.4vw, 1.26rem)/1.6 var(--sans); }
.hero-actions { display: flex; align-items: center; gap: 2rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .95rem 1.4rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; border: 1px solid transparent; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--wine); color: white; }
.button-primary:hover { background: var(--wine-dark); }
.button-cream { background: var(--cream); color: var(--wine-dark); }
.text-link { display: inline-flex; gap: .55rem; align-items: center; padding: .5rem 0; border-bottom: 1px solid currentColor; color: var(--wine); font-size: .76rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translate(3px, -3px); }
.text-link.dark { color: var(--ink); margin-top: 1.4rem; }
.hero-actions .hero-text-link, .self-actions .text-link, .self-page-actionbar .text-link { min-height: 52px; margin-top: 0; }
.hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .75s ease, visibility .75s; }
.hero-slide.is-active { opacity: 1; visibility: visible; }
.hero-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 51%; filter: saturate(.87) contrast(1.04); transform: scale(1.01); transition: transform 8s ease-out; }
.hero-slide.is-active .hero-background { transform: scale(1.055); }
.hero-background-handwerk { object-position: center top; transform-origin: center top; }
.hero-background-self { object-position: center 47%; }
.hero-background-grill { object-position: center 49%; }
.hero-background-shop { object-position: center 54%; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(25,12,13,.9) 0%, rgba(35,17,18,.72) 41%, rgba(35,17,18,.22) 72%, rgba(25,12,13,.3) 100%), linear-gradient(0deg, rgba(20,10,10,.6), transparent 45%); }
.hero-slide-content { position: absolute; z-index: 2; top: 50%; left: clamp(1.25rem, 7vw, 8rem); width: min(820px, calc(100% - 2.5rem)); transform: translateY(calc(-50% + 22px)); opacity: 0; transition: opacity .55s .18s ease, transform .65s .18s ease; }
.hero-slide.is-active .hero-slide-content { opacity: 1; transform: translateY(-50%); }
.hero-carousel .eyebrow { color: rgba(255,255,255,.72); }
.hero-carousel h1, .hero-carousel h2 { max-width: 820px; color: white; font-size: clamp(3.05rem, 4.8vw, 5.2rem); line-height: .91; text-wrap: balance; }
.hero-carousel h1 em, .hero-carousel h2 em { color: var(--orange); }
.hero-carousel .hero-intro { max-width: 680px; color: rgba(255,255,255,.78); }
.hero-text-link { display: inline-flex; align-items: center; gap: .55rem; padding: .5rem 0; border-bottom: 1px solid rgba(255,255,255,.7); color: white; font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.hero-text-link span { transition: transform .2s; }
.hero-text-link:hover span { transform: translate(3px,-3px); }
.hero-meta { display: flex; align-items: center; gap: 1rem; margin-top: clamp(2.3rem, 5vh, 4.5rem); color: rgba(255,255,255,.64); font-size: .62rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.hero-meta i { width: 4px; height: 4px; border-radius: 50%; background: var(--orange); }
.hero-slider-controls { position: absolute; z-index: 6; right: clamp(1.25rem, 5vw, 5rem); bottom: 34px; display: flex; align-items: center; gap: 1.5rem; color: white; }
.hero-counter { display: flex; align-items: baseline; gap: .3rem; font-size: .65rem; color: rgba(255,255,255,.55); }
.hero-counter strong { min-width: 1.5rem; color: white; font: 700 1.35rem var(--display); }
.hero-progress { display: flex; align-items: center; gap: .5rem; }
.hero-progress button { position: relative; width: 54px; height: 18px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.hero-progress button::before { content: ""; position: absolute; top: 8px; left: 0; width: 100%; height: 2px; background: rgba(255,255,255,.28); }
.hero-progress button span { position: absolute; top: 8px; left: 0; width: 0; height: 2px; background: var(--orange); }
.hero-carousel:not(.is-paused) .hero-progress button.is-active span { animation: heroTimer 7s linear forwards; }
.hero-arrows { display: flex; gap: .4rem; }
.hero-arrows button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(255,255,255,.42); background: rgba(20,10,10,.18); color: white; font-size: 1rem; cursor: pointer; transition: .2s; }
.hero-arrows button:hover, .hero-arrows button:focus-visible { background: white; color: var(--wine); }
@keyframes heroTimer { to { width: 100%; } }

.marquee { position: relative; overflow: hidden; padding: .9rem 0 .9rem 48px; background: var(--orange); color: white; }
.marquee::before { content: ""; position: absolute; z-index: 2; inset: 0 auto 0 0; width: 36px; background: conic-gradient(from 90deg at 50% 50%, var(--cream) 25%, var(--wine-dark) 0 50%, var(--orange) 0 75%, var(--wine-dark) 0); background-size: 18px 18px; box-shadow: 8px 0 18px rgba(32,28,25,.18); }
.marquee-track { display: flex; width: max-content; animation: marquee 70s linear infinite; will-change: transform; }
.marquee-group, .marquee-set { display: flex; flex: 0 0 auto; align-items: center; gap: clamp(1.4rem, 3vw, 2.2rem); }
.marquee-group { padding-right: clamp(1.4rem, 3vw, 2.2rem); }
.marquee span { font: 700 .75rem var(--sans); letter-spacing: .15em; }
.marquee i { font-style: normal; color: white; }
@keyframes marquee { to { transform: translateX(-50%); } }

.section { padding: clamp(5.5rem, 11vw, 10rem) clamp(1.25rem, 7vw, 8rem); scroll-margin-top: 154px; }
.section-label { margin-bottom: clamp(2.5rem, 5vw, 5rem); color: var(--muted); }
.section-label span { color: var(--wine); }
.section-label.light { color: rgba(255,255,255,.58); }
.section-label.light span { color: var(--orange); }
.intro { position: relative; background: var(--cream); }
.intro::before { content: ""; position: absolute; top: 0; right: clamp(1.25rem, 7vw, 8rem); width: 108px; height: 36px; background: conic-gradient(from 90deg at 50% 50%, var(--wine) 25%, transparent 0 50%, var(--orange) 0 75%, transparent 0); background-size: 18px 18px; }
.intro-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(3rem, 8vw, 9rem); align-items: start; }
.intro h2 { font-size: clamp(2.8rem, 4.8vw, 5.7rem); }
.intro-copy { max-width: 570px; padding-top: .8rem; color: var(--muted); font-size: 1rem; line-height: 1.8; }
.lead { color: var(--ink); font: 500 clamp(1.08rem, 1.55vw, 1.4rem)/1.58 var(--sans); }
.value-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: clamp(4rem, 9vw, 9rem); background: rgba(116,28,43,.2); border: 1px solid rgba(116,28,43,.2); }
.value-card { position: relative; min-height: 430px; background: var(--cream); overflow: hidden; }
.value-card::after { content: ""; position: absolute; right: -1px; bottom: -1px; width: 54px; height: 54px; background: conic-gradient(from 90deg at 50% 50%, rgba(116,28,43,.12) 25%, transparent 0 50%, rgba(237,107,45,.38) 0 75%, transparent 0); background-size: 18px 18px; opacity: 0; transform: translate(12px,12px); transition: .3s ease; }
.value-card:hover::after { opacity: 1; transform: translate(0,0); }
.value-number { position: absolute; z-index: 3; top: 1rem; right: 1rem; padding: .45rem .55rem; background: var(--cream); color: var(--wine); font-size: .66rem; font-weight: 800; }
.value-image { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--wine-dark); }
.value-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(32,28,25,.28), transparent 55%); }
.value-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) contrast(1.04); transition: transform .65s ease, filter .65s ease; }
.value-card:hover .value-image img { transform: scale(1.045); filter: saturate(1) contrast(1.04); }
.value-body { padding: 0 clamp(1.6rem, 2.7vw, 2.7rem) clamp(1.8rem, 3vw, 2.8rem); }
.value-icon { position: relative; z-index: 2; display: grid; place-items: center; width: 68px; height: 68px; margin: -34px 0 1.8rem; border: 1px solid var(--wine); border-radius: 50%; background: var(--cream); color: var(--wine); font-size: 1.65rem; box-shadow: 0 8px 20px rgba(59,27,22,.1); }
.value-card h3 { margin: 0 0 .8rem; font: 700 1.6rem/1.05 var(--display); text-transform: uppercase; }
.value-card p { max-width: 300px; margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.7; }

.products { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(4rem, 8vw, 10rem); background: var(--wine-dark); color: white; }
.products h2 { font-size: clamp(2.9rem, 4.7vw, 5.6rem); }
.products h2 em { color: var(--orange); }
.section-heading > p { max-width: 470px; margin-top: 2rem; color: rgba(255,255,255,.63); line-height: 1.7; }
.product-list { border-top: 1px solid rgba(255,255,255,.18); }
.product-row { display: grid; grid-template-columns: 45px 1fr; gap: 1.2rem; align-items: start; padding: 1.8rem 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.product-index { padding-top: .4rem; color: var(--orange); font-size: .65rem; }
.product-row h3 { margin: 0 0 .45rem; font: 700 clamp(1.45rem, 1.9vw, 2rem)/1.05 var(--display); text-transform: uppercase; }
.product-row p { max-width: 550px; margin: 0; color: rgba(255,255,255,.58); font-size: .86rem; line-height: 1.6; }

.shop { position: relative; background: var(--paper); overflow: hidden; }
.shop::before { content: ""; position: absolute; top: 0; right: clamp(1.25rem, 7vw, 8rem); width: 144px; height: 36px; background: conic-gradient(from 90deg at 50% 50%, var(--wine) 25%, transparent 0 50%, var(--orange) 0 75%, transparent 0); background-size: 18px 18px; }
.shop-heading { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem, 8vw, 9rem); align-items: end; }
.shop-heading .section-label { margin-bottom: 2.1rem; }
.shop-heading h2 { font-size: clamp(3rem, 5.1vw, 5.9rem); }
.shop-heading h2 em { color: var(--wine); }
.shop-note { display: inline-flex; margin: 0 0 1.1rem; padding: .45rem .65rem; background: var(--orange); color: white; font-size: .57rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.shop-heading-copy { max-width: 610px; padding-bottom: .4rem; }
.shop-heading-copy > p:not(.lead) { color: var(--muted); line-height: 1.75; }
.shop-heading-copy small { display: block; margin-top: 1.4rem; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.shop-categories { display: flex; gap: .55rem; flex-wrap: wrap; margin: clamp(3.5rem, 6vw, 6rem) 0 1.6rem; }
.shop-categories span { padding: .62rem .9rem; border: 1px solid var(--line); color: var(--muted); font-size: .61rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.shop-categories .is-active { border-color: var(--wine); background: var(--wine); color: white; }
.shop-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.shop-card { min-width: 0; background: var(--paper); }
.shop-card-image { position: relative; aspect-ratio: 4 / 3.2; overflow: hidden; background: var(--cream); }
.shop-card-image::after { content: ""; position: absolute; inset: auto 0 0; height: 35%; background: linear-gradient(transparent, rgba(32,28,25,.17)); pointer-events: none; }
.shop-card-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(1.03); transition: transform .55s ease, filter .55s ease; }
.shop-card:nth-child(2) .shop-card-image img { object-position: 25% center; }
.shop-card:nth-child(3) .shop-card-image img { object-position: 76% center; }
.shop-card:hover .shop-card-image img { transform: scale(1.04); filter: saturate(1) contrast(1.03); }
.fulfilment-badge { position: absolute; z-index: 2; top: .8rem; left: .8rem; padding: .48rem .62rem; background: var(--orange); color: white; font-size: .55rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.fulfilment-badge.pickup { background: var(--wine); }
.shop-card-body { padding: clamp(1.2rem, 2vw, 1.8rem); }
.shop-card-category { margin: 0 0 .65rem; color: var(--wine); font-size: .58rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.shop-card h3 { min-height: 2.05em; margin: 0 0 .75rem; font: 700 clamp(1.35rem, 1.7vw, 1.8rem)/1.02 var(--display); text-transform: uppercase; }
.shop-card-description { min-height: 4.8em; margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.6; }
.shop-card-meta { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; margin: 1.3rem 0 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.shop-card-meta span { color: var(--muted); font-size: .7rem; }
.shop-card-meta strong { font: 650 1.1rem var(--sans); white-space: nowrap; }
.shop-add { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 45px; padding: .75rem .9rem; border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; font-size: .62rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; transition: .22s ease; }
.shop-add span { font-size: 1.05rem; font-weight: 400; }
.shop-add:hover, .shop-add:focus-visible { border-color: var(--wine); background: var(--wine); color: white; }
.shop-add.is-added { border-color: var(--orange); background: var(--orange); color: white; }
.shop-service { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 1px; margin-top: clamp(3.5rem, 7vw, 7rem); scroll-margin-top: 154px; background: rgba(255,255,255,.18); color: white; }
.shop-service > div { min-height: 260px; padding: clamp(1.8rem, 3vw, 3.2rem); background: var(--wine); }
.shop-service-intro { position: relative; overflow: hidden; background: var(--wine-dark) !important; }
.shop-service-intro::after { content: ""; position: absolute; right: -18px; bottom: -18px; width: 108px; height: 108px; background: conic-gradient(from 90deg at 50% 50%, var(--orange) 25%, transparent 0 50%, rgba(245,233,216,.22) 0 75%, transparent 0); background-size: 18px 18px; }
.shop-service-intro > span { color: var(--orange); font-size: .6rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.shop-service h3 { margin: 2.5rem 0 0; font: 700 clamp(2rem, 3vw, 3.2rem)/.96 var(--display); text-transform: uppercase; }
.shop-service-number { color: var(--orange); font-size: .64rem; }
.shop-service h4 { margin: 2.6rem 0 .8rem; font: 700 1.55rem var(--display); text-transform: uppercase; }
.shop-service p { max-width: 330px; margin: 0; color: rgba(255,255,255,.66); font-size: .82rem; line-height: 1.65; }

.mt-shop-teaser { position: relative; padding: clamp(5.5rem, 9vw, 8rem) clamp(1.25rem, 7vw, 8rem); scroll-margin-top: 154px; background: var(--cream); overflow: hidden; }
.mt-shop-teaser::after { content: ""; position: absolute; z-index: 3; top: 0; right: clamp(1.25rem, 7vw, 8rem); width: 126px; height: 18px; background: conic-gradient(from 90deg at 50% 50%, var(--wine) 25%, transparent 0 50%, var(--orange) 0 75%, transparent 0); background-size: 18px 18px; pointer-events: none; }
.mt-shop-teaser-heading { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem, 8vw, 9rem); align-items: end; margin-bottom: clamp(2.8rem, 5vw, 4.5rem); }
.mt-shop-teaser-title-block { max-width: 720px; }
.mt-shop-teaser-content { align-self: end; max-width: 580px; padding-bottom: .35rem; }
.mt-shop-teaser-label { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.8rem; color: var(--muted); font-size: .67rem; font-weight: 700; letter-spacing: .18em; line-height: 1; text-transform: uppercase; }
.mt-shop-teaser-label span { color: var(--wine); }
.mt-shop-teaser-kicker { display: inline-flex; margin-bottom: 1rem; padding: .5rem .7rem; background: var(--orange); color: white; font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.mt-shop-teaser-title { font-size: clamp(3rem, 5vw, 5.7rem); line-height: .9; }
.mt-shop-teaser-accent { color: var(--wine); }
.mt-shop-teaser-lead { margin: 0; color: var(--muted); font-size: clamp(.96rem, 1.3vw, 1.12rem); line-height: 1.7; }
.mt-shop-teaser-facts { display: flex; flex-wrap: wrap; gap: .65rem 1.4rem; margin: 1.4rem 0 1.7rem; }
.mt-shop-teaser-facts span { position: relative; padding-left: 1rem; color: var(--wine); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.mt-shop-teaser-facts span::before { content: ""; position: absolute; left: 0; top: .34em; width: 5px; height: 5px; background: var(--orange); transform: rotate(45deg); }
.mt-shop-teaser-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .95rem 1.4rem; border: 1px solid transparent; background: var(--wine); color: white; font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; transition: transform .2s, background .2s; }
.mt-shop-teaser-button:hover { background: var(--wine-dark); transform: translateY(-2px); }
.mt-shop-teaser-products { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1px; border: 1px solid rgba(116,28,43,.2); background: rgba(116,28,43,.2); }
.mt-shop-product-card { display: flex; flex-direction: column; min-width: 0; background: var(--paper); }
.mt-shop-product-image-link { display: block; }
.mt-shop-product-image-wrap { position: relative; aspect-ratio: 4 / 2.75; background: #e4d9ca; overflow: hidden; }
.mt-shop-product-image { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(1.03); transition: transform .5s ease, filter .5s ease; }
.mt-shop-product-card:hover .mt-shop-product-image { transform: scale(1.035); filter: saturate(1) contrast(1.03); }
.mt-shop-product-stock { position: absolute; z-index: 2; top: .85rem; left: .85rem; padding: .48rem .62rem; background: var(--orange); color: white; font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.mt-shop-product-stock.mt-is-low, .mt-shop-product-stock.mt-is-sold-out { background: var(--wine); }
.mt-shop-product-body { display: flex; flex: 1; flex-direction: column; padding: clamp(1.25rem, 2.2vw, 1.8rem); }
.mt-shop-product-category { margin: 0 0 .65rem; color: var(--wine); font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mt-shop-product-title { min-height: 2em; margin: 0; font: 700 clamp(1.45rem, 1.9vw, 1.9rem)/1 var(--display); text-transform: uppercase; }
.mt-shop-product-title-link:hover { color: var(--wine); }
.mt-shop-product-description { min-height: 3.3em; margin: .85rem 0 1.2rem; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.mt-shop-product-meta { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; margin-top: auto; padding: 1rem 0; border-top: 1px solid var(--line); }
.mt-shop-product-content { color: var(--muted); font-size: .7rem; }
.mt-shop-product-price { font-size: 1.08rem; font-weight: 650; white-space: nowrap; }
.mt-shop-product-button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: .8rem .9rem; border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; font-size: .62rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; transition: .22s ease; }
.mt-shop-product-button:hover, .mt-shop-product-button:focus-visible { border-color: var(--wine); background: var(--wine); color: white; }
.mt-shop-product-button:disabled { cursor: not-allowed; opacity: .58; }
.mt-shop-product-button.mt-is-added { border-color: var(--orange); background: var(--orange); color: white; }
.mt-shop-product-button-icon { font-size: 1rem; font-weight: 400; }
.mt-shop-teaser-loading, .mt-shop-teaser-empty { grid-column: 1 / -1; display: grid; justify-items: center; align-content: center; min-height: 320px; padding: 3rem; background: var(--paper); text-align: center; }
.mt-shop-teaser-loading-mark { width: 42px; height: 42px; border: 1px solid var(--wine); border-radius: 50%; border-top-color: var(--orange); animation: mt-shop-loading .9s linear infinite; }
.mt-shop-teaser-loading-copy, .mt-shop-teaser-empty-copy { margin: 1rem 0 0; color: var(--muted); font-size: .82rem; }
.mt-shop-teaser-empty-title { margin: 0; font: 700 2rem var(--display); text-transform: uppercase; }
.mt-shop-coming-placeholder { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); min-height: 280px; background: var(--paper); }
.mt-shop-coming-placeholder-copy { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(2rem, 4.5vw, 4.5rem); }
.mt-shop-coming-placeholder-label { display: inline-flex; margin-bottom: 1.2rem; padding: .48rem .65rem; background: var(--orange); color: white; font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.mt-shop-coming-placeholder-title { max-width: 620px; margin: 0; font: 700 clamp(2.25rem, 3.6vw, 4rem)/.94 var(--display); letter-spacing: -.035em; text-transform: uppercase; }
.mt-shop-coming-placeholder-text { max-width: 600px; margin: 1.25rem 0 0; color: var(--muted); font-size: .88rem; line-height: 1.7; }
@keyframes mt-shop-loading { to { transform: rotate(360deg); } }

.cart-backdrop { position: fixed; z-index: 198; inset: 0; background: rgba(32,28,25,.62); opacity: 0; visibility: hidden; transition: .3s ease; backdrop-filter: blur(3px); }
.cart-drawer { position: fixed; z-index: 199; inset: 0 0 0 auto; display: flex; flex-direction: column; width: min(470px, 100%); padding: 0; background: var(--paper); box-shadow: -30px 0 80px rgba(32,28,25,.22); transform: translateX(102%); visibility: hidden; transition: transform .38s ease, visibility .38s; }
.cart-open .cart-backdrop { opacity: 1; visibility: visible; }
.cart-open .cart-drawer { transform: translateX(0); visibility: visible; }
.cart-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.6rem; border-bottom: 1px solid var(--line); }
.cart-header span { color: var(--wine); font-size: .58rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.cart-header h2 { margin-top: .35rem; font-size: 2.25rem; }
.cart-header button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line); background: transparent; cursor: pointer; color: var(--ink); font-size: 1.5rem; font-weight: 300; line-height: 1; }
.cart-items { flex: 1; overflow-y: auto; padding: 0 1.6rem; }
.cart-empty { display: grid; place-items: center; align-content: center; min-height: 55vh; text-align: center; color: var(--muted); }
.cart-empty > span { color: var(--wine); font-size: 2rem; }
.cart-empty p { margin: 1rem 0; font-size: .88rem; }
.cart-empty a { padding-bottom: .3rem; border-bottom: 1px solid var(--wine); color: var(--wine); font-size: .62rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.cart-item { display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.cart-item h3 { margin: 0; font: 700 1.25rem var(--display); text-transform: uppercase; }
.cart-item-price { font-size: .8rem; font-weight: 650; }
.cart-item-detail { color: var(--muted); font-size: .68rem; }
.cart-item-controls { display: flex; align-items: center; gap: .65rem; margin-top: .6rem; }
.cart-item-controls button { display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 1px solid var(--line); background: transparent; cursor: pointer; }
.cart-item-controls span { min-width: 1rem; text-align: center; font-size: .72rem; }
.cart-remove { align-self: end; border: 0 !important; width: auto !important; color: var(--muted); font-size: .6rem; text-decoration: underline; }
.cart-footer { padding: 1.4rem 1.6rem 1.6rem; border-top: 1px solid var(--line); background: var(--cream); }
.cart-total { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.cart-total span { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.cart-total strong { font: 650 1.3rem var(--sans); }
.cart-footer p { color: var(--muted); font-size: .68rem; line-height: 1.5; }
.cart-checkout { width: 100%; border: 0; cursor: pointer; }
.cart-footer small { display: block; margin-top: .7rem; color: var(--muted); font-size: .61rem; line-height: 1.45; text-align: center; }
.cart-footer small.is-visible { color: var(--wine); }

.self-service { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; background: var(--paper); }
.self-image { position: relative; }
.self-image img { aspect-ratio: 4 / 5; object-fit: cover; box-shadow: var(--shadow); }
.open-badge { position: absolute; right: -34px; bottom: 45px; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 150px; height: 150px; border-radius: 50%; background: var(--orange); color: white; text-transform: uppercase; transform: rotate(-7deg); box-shadow: 0 15px 40px rgba(32,28,25,.2); }
.open-badge span { font-size: .61rem; letter-spacing: .13em; font-weight: 800; }
.open-badge strong { font: 900 2.5rem var(--display); }
.self-copy h2 { font-size: clamp(2.8rem, 4.6vw, 5.3rem); }
.self-copy .section-label { margin-bottom: 2.3rem; }
.self-copy > p { max-width: 610px; }
.check-list { margin: 2rem 0 2.4rem; padding: 0; list-style: none; }
.check-list li { display: flex; gap: .8rem; padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.check-list span { color: var(--wine); font-weight: 800; }
.self-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }

.self-page .section { scroll-margin-top: 94px; }
.self-page-hero { position: relative; display: grid; grid-template-columns: .86fr 1.14fr; grid-template-rows: minmax(0, 1fr) auto; height: clamp(640px, calc(100vh - 94px), 880px); min-height: 640px; margin-top: 94px; background: var(--paper); color: white; overflow: hidden; }
.self-page-hero::after { content: ""; position: absolute; z-index: 4; top: 0; bottom: 104px; left: calc(43% - 9px); width: 18px; background: conic-gradient(from 90deg at 50% 50%, var(--cream) 25%, var(--orange) 0 50%, var(--wine-dark) 0 75%, var(--orange) 0); background-size: 18px 18px; pointer-events: none; }
.self-page-hero-panel { display: flex; align-items: flex-start; min-width: 0; padding: clamp(2.8rem, 6vh, 4.5rem) clamp(2rem, 5vw, 5.5rem) clamp(2.5rem, 4vw, 4rem); background: var(--wine-dark); }
.self-page-hero-content { width: min(100%, 650px); }
.self-page-kicker { margin: 0 0 clamp(1.1rem, 2vh, 1.7rem); color: var(--orange); font-size: .63rem; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; }
.self-page-hero h1 { color: white; font-size: clamp(3.1rem, 4.7vw, 5.2rem); line-height: .9; }
.self-page-hero h1 em { color: var(--orange); }
.self-page-availability { display: flex; align-items: baseline; gap: 1.1rem; margin: clamp(1.4rem, 2.5vh, 2rem) 0; padding: .9rem 0; border-top: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.self-page-availability strong { color: white; font: 700 clamp(1.8rem, 2.5vw, 2.6rem)/1 var(--display); text-transform: uppercase; }
.self-page-availability span { color: rgba(255,255,255,.56); font-size: .58rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.self-page-hero .hero-intro { max-width: 500px; margin: 0; color: rgba(255,255,255,.68); font-size: clamp(.88rem, 1.05vw, 1rem); }
.self-page-hero-visual { position: relative; min-width: 0; overflow: hidden; background: var(--wine); }
.self-page-hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; filter: saturate(.84) contrast(1.05); transition: transform 1.2s ease; }
.self-page-hero-visual:hover .self-page-hero-image { transform: scale(1.018); }
.self-page-hero-caption { position: absolute; right: 0; bottom: 0; display: flex; flex-direction: column; gap: .3rem; width: min(340px, 70%); padding: 1.2rem 1.5rem; background: var(--orange); color: white; }
.self-page-hero-caption span { font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.self-page-hero-caption strong { font: 650 1.15rem var(--display); text-transform: uppercase; }
.self-page-actionbar { z-index: 3; grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 104px; padding: 1.2rem clamp(1.5rem, 5vw, 5.5rem); border-top: 4px solid var(--orange); background: var(--paper); color: var(--ink); }
.self-page-actionbar p { margin: 0; color: var(--muted); font-size: .77rem; }
.self-page-actionbar p span { display: block; margin-bottom: .25rem; color: var(--wine); font: 700 1.3rem var(--display); text-transform: uppercase; }
.self-page-actionbar > div { display: flex; align-items: center; gap: 1.5rem; flex: 0 0 auto; }
.back-link { display: inline-flex; align-items: center; gap: .55rem; margin-bottom: clamp(2rem, 5vh, 4rem); color: rgba(255,255,255,.65); font-size: .62rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.back-link span { color: var(--orange); font-size: 1rem; }
.self-page-hero .back-link { margin-bottom: clamp(1.4rem, 2.6vh, 2.2rem); }
.self-facts { position: relative; display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 2.5vw, 2.5rem); min-height: 58px; padding: .9rem 3rem; background: var(--orange); color: white; overflow: hidden; }
.self-facts::before, .self-facts::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 36px; background: conic-gradient(from 90deg at 50% 50%, var(--cream) 25%, var(--wine-dark) 0 50%, var(--orange) 0 75%, var(--wine-dark) 0); background-size: 18px 18px; }
.self-facts::after { inset: 0 0 0 auto; }
.self-facts span { font-size: .65rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.self-facts i { color: white; font-style: normal; }

.self-story { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(3.5rem, 8vw, 9rem); align-items: center; background: var(--cream); }
.self-story h2 { font-size: clamp(3rem, 4.8vw, 5.7rem); }
.self-story-copy > p:not(.lead) { color: var(--muted); line-height: 1.75; }
.self-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.self-gallery figure { position: relative; margin: 0; overflow: hidden; background: var(--wine-dark); }
.self-gallery figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(32,28,25,.24), transparent 55%); }
.self-gallery img { width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; filter: saturate(.84) contrast(1.04); transition: transform .6s ease; }
.self-gallery figure:hover img { transform: scale(1.035); }

.self-selection { background: var(--wine-dark); color: white; }
.self-selection-heading { display: grid; grid-template-columns: 1fr .7fr; gap: clamp(3rem, 9vw, 10rem); align-items: end; }
.self-selection h2 { font-size: clamp(3rem, 5vw, 5.8rem); }
.self-selection h2 em { color: var(--orange); }
.self-selection-heading > p { max-width: 520px; color: rgba(255,255,255,.64); line-height: 1.75; }
.self-selection-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: clamp(3.5rem, 7vw, 7rem); background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.2); }
.self-selection-card { position: relative; min-height: 330px; padding: clamp(1.5rem, 2.7vw, 2.7rem); background: var(--wine); overflow: hidden; }
.self-selection-card::after { content: ""; position: absolute; right: -18px; bottom: -18px; width: 90px; height: 90px; background: conic-gradient(from 90deg at 50% 50%, rgba(237,107,45,.5) 25%, transparent 0 50%, rgba(245,233,216,.16) 0 75%, transparent 0); background-size: 18px 18px; opacity: 0; transition: .3s; }
.self-selection-card:hover::after { opacity: 1; }
.self-selection-card > span { color: var(--orange); font-size: .62rem; }
.self-selection-card > div { display: grid; place-items: center; width: 58px; height: 58px; margin: 2rem 0; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: var(--orange); font-size: 1.35rem; }
.self-selection-card h3 { margin: 0 0 .9rem; font: 700 clamp(1.35rem, 1.8vw, 1.8rem)/1.05 var(--display); text-transform: uppercase; }
.self-selection-card p { margin: 0; color: rgba(255,255,255,.63); font-size: .82rem; line-height: 1.65; }

.self-how { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 9vw, 10rem); background: var(--paper); }
.self-how-intro h2 { position: sticky; top: 120px; font-size: clamp(3rem, 4.7vw, 5.5rem); }
.self-steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.self-steps li { display: grid; grid-template-columns: 75px 1fr; gap: 1.2rem; padding: clamp(2rem, 4vw, 3.5rem) 0; border-bottom: 1px solid var(--line); }
.self-steps li > span { color: var(--wine); font-size: .65rem; }
.self-steps h3 { margin: 0 0 .65rem; font: 700 clamp(1.7rem, 2.5vw, 2.6rem)/1 var(--display); text-transform: uppercase; }
.self-steps p { max-width: 600px; margin: 0; color: var(--muted); line-height: 1.7; }

.self-shop-teaser { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; padding: 0; background: var(--wine); color: white; }
.self-shop-image { position: relative; min-height: clamp(620px, calc(42vw + 100px), 750px); overflow: hidden; }
.self-shop-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 18%; filter: saturate(.85) contrast(1.04); }
.self-shop-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 4.5vw, 5.5rem); }
.self-shop-copy .section-label { margin-bottom: clamp(1.4rem, 1.8vw, 1.8rem); }
.self-shop-copy h2 { font-size: clamp(2.75rem, 3.6vw, 4.25rem); }
.self-shop-copy h2 em { color: var(--orange); }
.self-shop-copy .lead { max-width: 640px; margin: 1.3rem 0 1.7rem; color: rgba(255,255,255,.72); }
.self-shop-copy .button { align-self: flex-start; }

.self-location { display: grid; grid-template-columns: 1fr .8fr; gap: clamp(3.5rem, 9vw, 10rem); align-items: center; background: var(--cream); }
.self-location h2 { font-size: clamp(3rem, 4.8vw, 5.7rem); }
.self-location-copy .lead { max-width: 670px; }
.self-location address { margin: 2rem 0; color: var(--muted); font-style: normal; line-height: 1.7; }
.self-location-card { position: relative; min-height: 500px; padding: clamp(2rem, 4vw, 4rem); background: var(--wine-dark); color: white; overflow: hidden; }
.self-location-card > p { margin: 0 0 2.5rem; color: var(--orange); font-size: .65rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.self-location-card > strong { display: block; font: 700 clamp(3rem, 5vw, 5.5rem)/.92 var(--display); text-transform: uppercase; }
.self-location-card > span { display: block; margin-top: 1.5rem; color: rgba(255,255,255,.62); font-size: .78rem; }
.self-location-pattern { position: absolute; right: -18px; top: -18px; width: 126px; height: 126px; background: conic-gradient(from 90deg at 50% 50%, var(--orange) 25%, transparent 0 50%, rgba(245,233,216,.2) 0 75%, transparent 0); background-size: 18px 18px; }
.self-location-contact { display: flex; flex-direction: column; gap: .55rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.18); }
.self-location-contact a { font-size: .8rem; }

.mt-preorder { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; padding: clamp(4rem, 6vw, 6.5rem) clamp(1.25rem, 7vw, 8rem); background: var(--cream); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; }
.mt-preorder::after { content: ""; position: absolute; top: 0; right: clamp(1.25rem, 7vw, 8rem); width: 126px; height: 27px; background: conic-gradient(from 90deg at 50% 50%, var(--wine) 25%, transparent 0 50%, var(--orange) 0 75%, transparent 0); background-size: 18px 18px; }
.mt-preorder-heading { max-width: 680px; }
.mt-preorder-label { display: flex; gap: .8rem; margin: 0 0 2rem; color: var(--muted); font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.mt-preorder-label span { color: var(--wine); }
.mt-preorder h2 { margin: 0; font: 700 clamp(2.7rem, 4.2vw, 4.9rem)/.94 var(--display); letter-spacing: -.025em; text-transform: uppercase; }
.mt-preorder h2 em { color: var(--wine); font-style: normal; font-weight: 400; }
.mt-preorder-copy { max-width: 680px; }
.mt-preorder-copy p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.75; }
.mt-preorder-copy .mt-preorder-lead { margin-bottom: 1rem; color: var(--ink); font-size: 1.04rem; font-weight: 550; }
.mt-preorder-link { display: inline-flex; align-items: center; gap: .55rem; min-height: 48px; margin-top: 1.8rem; border-bottom: 1px solid var(--ink); color: var(--ink); font-size: .67rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.mt-preorder-link span { transition: transform .2s ease; }
.mt-preorder-link:hover span { transform: translate(2px, -2px); }

.mt-social-feed { background: var(--paper); border-top: 1px solid var(--line); }
.mt-social-heading { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; margin-bottom: 3.2rem; }
.mt-social-label { display: flex; gap: .8rem; margin: 0 0 2rem; color: var(--muted); font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.mt-social-label span { color: var(--wine); }
.mt-social-heading h2 { margin: 0; font: 700 clamp(2.9rem, 4.7vw, 5.5rem)/.92 var(--display); letter-spacing: -.035em; text-transform: uppercase; }
.mt-social-heading h2 em { color: var(--wine); font-style: normal; font-weight: 400; }
.mt-social-intro > p { margin: 0 0 1.5rem; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.mt-social-actions { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.mt-social-network-link { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 1px solid var(--ink); color: var(--ink); font-size: .67rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.mt-social-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.mt-social-card { display: flex; flex-direction: column; min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.mt-social-card-image { display: block; width: 100%; aspect-ratio: 4 / 2.8; object-fit: cover; }
.mt-social-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.5rem; }
.mt-social-card-meta { margin: 0 0 .8rem; color: var(--wine); font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.mt-social-card-title { margin: 0 0 .8rem; font: 700 1.55rem/.98 var(--display); text-transform: uppercase; }
.mt-social-card-copy { margin: 0 0 1.3rem; color: var(--muted); font-size: .84rem; line-height: 1.65; }
.mt-social-card-link { display: inline-flex; align-items: center; min-height: 42px; margin-top: auto; border-bottom: 1px solid var(--ink); font-size: .65rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.mt-social-card-preview { display: inline-flex; align-items: center; min-height: 42px; margin-top: auto; color: var(--muted); font-size: .61rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }

.history { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 10rem); align-items: center; background: var(--cream); }
.history h2 { font-size: clamp(2.9rem, 4.7vw, 5.5rem); }
.history-copy > p { max-width: 660px; color: var(--muted); line-height: 1.8; }
.history-copy .lead { color: var(--ink); }
.history-image { margin: 0; padding: .7rem; background: var(--paper); box-shadow: var(--shadow); transform: rotate(1deg); }
.history-image img { aspect-ratio: 4 / 3; object-fit: cover; filter: sepia(.25) contrast(.93); }
.history-image figcaption { display: flex; align-items: center; gap: 1rem; padding: 1rem .4rem .4rem; color: var(--muted); font: 600 .76rem var(--sans); text-transform: uppercase; letter-spacing: .06em; }
.history-image figcaption span { color: var(--wine); font: 900 1.4rem var(--display); }

.visit { display: grid; grid-template-columns: 1.05fr .85fr .75fr; gap: 1px; background: rgba(255,255,255,.18); color: white; padding-top: 0; padding-bottom: 0; padding-right: 0; padding-left: 0; }
.visit > div { min-height: 560px; padding: clamp(3rem, 6vw, 6.5rem) clamp(1.7rem, 4vw, 4.5rem); background: var(--wine-dark); }
.visit-intro h2 { font-size: clamp(2.8rem, 4.3vw, 4.9rem); }
.visit-intro h2 em { color: var(--orange); }
.visit-intro > p:not(.eyebrow) { margin: 2rem 0; color: rgba(255,255,255,.7); font: 600 1.08rem/1.6 var(--sans); }
.hours-card { background: var(--wine) !important; }
.hours-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.hours-title h3 { margin: 0; font: 700 1.65rem var(--display); text-transform: uppercase; }
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: #94c966; box-shadow: 0 0 0 5px rgba(148,201,102,.15); }
.hours-card dl { margin: 0; }
.hours-card dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .64rem 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: .82rem; }
.hours-card dt { color: rgba(255,255,255,.63); }
.hours-card dd { margin: 0; font-weight: 700; }
.self-hours { position: relative; display: flex; flex-direction: column; gap: .35rem; margin-top: 1.5rem; padding: 1rem 4.1rem 1rem 1rem; background: var(--orange); color: white; overflow: hidden; }
.self-hours::after { content: ""; position: absolute; inset: 0 0 0 auto; width: 54px; background: conic-gradient(from 90deg at 50% 50%, var(--cream) 25%, var(--wine-dark) 0 50%, var(--orange) 0 75%, var(--wine-dark) 0); background-size: 18px 18px; }
.self-hours span { font-size: .62rem; text-transform: uppercase; letter-spacing: .13em; }
.self-hours strong { font: 850 1.25rem var(--display); }
.contact-card { display: flex; flex-direction: column; }
.contact-card p { color: rgba(255,255,255,.5); font-size: .63rem; text-transform: uppercase; letter-spacing: .15em; }
.contact-card > a { margin-bottom: 1rem; font: 700 1.08rem/1.25 var(--sans); overflow-wrap: anywhere; }
.contact-divider { height: 1px; margin: 1.7rem 0; background: rgba(255,255,255,.17); }
.social-link { display: flex; justify-content: space-between; }

.legal-modal { width: min(760px, calc(100% - 2rem)); max-height: 85vh; padding: clamp(1.5rem, 4vw, 3rem); border: 0; background: var(--paper); color: var(--ink); box-shadow: 0 40px 100px rgba(0,0,0,.35); }
.legal-modal::backdrop { background: rgba(32,28,25,.72); backdrop-filter: blur(4px); }
.modal-close { position: absolute; top: 1rem; right: 1rem; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); background: none; font-size: 1.7rem; line-height: 1; cursor: pointer; }
.legal-modal h2 { margin: 0 3rem 2rem 0; font-size: clamp(2.5rem, 5vw, 4rem); }
.legal-modal h3 { margin-top: 2rem; font: 800 1.15rem var(--display); text-transform: uppercase; }
.legal-modal p { color: var(--muted); line-height: 1.7; font-size: .88rem; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
.reveal-delay { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .24s; }
.reveal.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1050px) {
  .site-header { height: 76px; background: rgba(251,247,239,.94); }
  .brand-logo, .site-header.scrolled .brand-logo { height: var(--mt-header-logo-height-tablet); }
  .menu-toggle { display: block; z-index: 2; cursor: pointer; }
  .mobile-cart-trigger { position: relative; z-index: 2; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 44px; height: 44px; margin-left: auto; margin-right: .35rem; padding: 0; border: 0; background: var(--orange); color: white; cursor: pointer; }
  .mobile-cart-trigger .mt-cart-icon { width: 21px; height: 21px; }
  .mobile-cart-trigger .mt-mobile-cart-label { display: none; }
  .mobile-cart-trigger strong { position: absolute; top: -5px; right: -5px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 19px; height: 19px; padding: .08em .25em 0; border: 2px solid var(--paper); border-radius: 999px; background: white; color: var(--wine); font-size: .54rem; line-height: 1; font-variant-numeric: tabular-nums; }
  .navigation { position: fixed; inset: 0; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1.5rem; width: 100%; height: 100dvh; max-height: 100dvh; padding: max(6rem, calc(env(safe-area-inset-top) + 4rem)) 2rem max(3rem, env(safe-area-inset-bottom)); background: var(--cream); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; opacity: 0; visibility: hidden; transition: .3s; }
  .navigation a { font: 800 2.3rem/1 var(--display); text-transform: uppercase; letter-spacing: -.02em; }
  .navigation .nav-cta { padding: 0; border: 0; color: var(--wine); }
  .navigation .cart-trigger { margin-top: .5rem; }
  .menu-open .navigation { opacity: 1; visibility: visible; }
  .menu-open .promo-slider { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-110%); }
  .menu-open .menu-toggle > span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-open .menu-toggle > span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }
  .hero { height: clamp(620px, calc(100vh - 76px), 820px); min-height: 620px; margin-top: 76px; padding: 0; }
  .hero-slide-content { left: clamp(1.5rem, 6vw, 4rem); }
  .hero-carousel h1, .hero-carousel h2 { font-size: clamp(2.8rem, 5.6vw, 4.2rem); }
  .intro-grid, .products, .shop-heading, .self-service, .history { gap: 4rem; }
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mt-shop-teaser-heading { gap: clamp(2.5rem, 6vw, 5rem); }
  .visit { grid-template-columns: 1fr 1fr; }
  .contact-card { grid-column: 1 / -1; min-height: 320px !important; }
  .self-page .section { scroll-margin-top: 76px; }
  .self-page-hero { grid-template-columns: .95fr 1.05fr; height: clamp(640px, calc(100vh - 76px), 820px); margin-top: 76px; }
  .self-page-hero::after { left: calc(47.5% - 9px); }
  .self-page-hero-panel { padding: 3rem clamp(1.5rem, 4vw, 3.5rem); }
  .self-selection-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1050px) and (max-height: 650px) {
  .navigation { justify-content: flex-start; }
}

@media (max-width: 900px) {
  .mt-social-heading { grid-template-columns: 1fr; gap: 2rem; }
  .mt-social-grid { grid-auto-columns: min(78vw, 340px); grid-auto-flow: column; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x proximity; }
  .mt-social-card { scroll-snap-align: start; }
  .mt-shop-teaser-heading { grid-template-columns: 1fr; gap: 2rem; }
  .mt-shop-teaser-content { max-width: 680px; }
  .mt-shop-teaser-products { grid-template-columns: repeat(3, minmax(260px, 1fr)); overflow-x: auto; scroll-snap-type: x proximity; }
  .mt-shop-product-card { scroll-snap-align: start; }
  .self-shop-teaser { grid-template-columns: 1fr; gap: 0; }
  .self-shop-image { min-height: 0; height: clamp(300px, 42vw, 360px); }
  .self-shop-copy { padding: clamp(3.5rem, 7vw, 4.5rem) clamp(1.5rem, 7vw, 3.5rem); }
  .self-shop-copy .section-label { margin-bottom: 1.8rem; }
  .self-shop-copy h2 { font-size: clamp(3rem, 7vw, 4rem); }
  .self-shop-copy .lead { max-width: 680px; margin: 1.4rem 0 1.8rem; }
}

@media (max-width: 760px) {
  .brand-logo, .site-header.scrolled .brand-logo { height: var(--mt-header-logo-height-mobile); }
  .promo-slider { grid-template-columns: 1fr auto; min-height: 94px; margin: 0; padding: 0 1rem 0 1.35rem; }
  .promo-slider::before { width: 9px; background-size: 12px 12px; }
  .promo-slides { height: 94px; margin-left: 0; }
  .promo-slide { align-items: flex-start; justify-content: center; flex-direction: column; gap: .28rem; padding: .8rem 0; }
  .promo-kicker { padding: .25rem .45rem; font-size: .52rem; }
  .promo-slide p { width: 100%; font-size: .75rem; line-height: 1.25; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .promo-slide > a { font-size: .53rem; }
  .promo-controls { padding-left: .7rem; }
  .promo-dots { display: none; }
  .promo-arrow { width: 30px; height: 30px; }
  .hero { height: max(620px, calc(100svh - 76px)); min-height: 620px; padding: 0; }
  h1 { font-size: clamp(2.85rem, 13vw, 4.25rem); }
  .hero-slide-content { top: 46%; left: 1.25rem; width: calc(100% - 2.5rem); }
  .hero-carousel h1, .hero-carousel h2 { font-size: clamp(2.45rem, 10.5vw, 3.25rem); }
  .hero-carousel .hero-intro { max-width: 94%; margin: 1.35rem 0; font-size: .94rem; line-height: 1.5; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: .7rem; }
  .hero-carousel .button { min-height: 46px; padding: .8rem 1rem; }
  .hero-actions .hero-text-link { min-height: 46px; }
  .hero-meta { display: none; }
  .hero-slider-controls { right: 1.25rem; left: 1.25rem; bottom: 20px; justify-content: space-between; gap: .7rem; }
  .hero-progress { flex: 1; }
  .hero-progress button { width: 100%; }
  .hero-arrows button { width: 36px; height: 36px; }
  .hero-shade { background: linear-gradient(90deg, rgba(25,12,13,.9), rgba(35,17,18,.48)), linear-gradient(0deg, rgba(20,10,10,.72), transparent 52%); }
  .hero-background { object-position: 58% center; }
  .hero-background-handwerk { object-position: 58% top; }
  .hero-background-self { object-position: 61% center; }
  .hero-background-grill { object-position: 53% center; }
  .hero-background-shop { object-position: 56% center; }
  .self-page-hero { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 390px auto; height: auto; min-height: 0; }
  .self-page-hero::after { display: none; }
  .self-page-hero-panel { position: relative; min-height: 0; padding: 2.2rem 1.25rem 3.2rem; }
  .self-page-hero-panel::after { content: ""; position: absolute; z-index: 4; right: 0; bottom: -9px; width: 150px; height: 18px; background: conic-gradient(from 90deg at 50% 50%, var(--cream) 25%, var(--orange) 0 50%, var(--wine-dark) 0 75%, var(--orange) 0); background-size: 18px 18px; }
  .self-page-hero-content { width: 100%; }
  .self-page-hero h1 { font-size: clamp(3.4rem, 16vw, 4.8rem); }
  .self-page-hero .hero-intro { max-width: 100%; font-size: .9rem; }
  .self-page-availability { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .self-page-availability strong { font-size: 2.15rem; }
  .back-link { margin-bottom: 2.3rem; }
  .self-page-hero-image { object-position: 59% center; }
  .self-page-hero-caption { width: calc(100% - 2.5rem); }
  .self-page-actionbar { grid-column: auto; align-items: flex-start; flex-direction: column; gap: 1.2rem; min-height: 0; padding: 1.5rem 1.25rem 1.8rem; }
  .self-page-actionbar > div { align-items: flex-start; flex-direction: column; gap: .7rem; width: 100%; }
  .self-page-actionbar .button { width: 100%; }
  .self-facts { display: grid; grid-template-columns: 1fr 1fr; justify-items: center; gap: .7rem 1rem; min-height: 100px; padding: 1rem 1.6rem; text-align: center; }
  .self-facts i { display: none; }
  .self-facts span { font-size: .53rem; }
  .section { padding: 5.5rem 1.25rem; scroll-margin-top: 186px; }
  .mt-social-heading h2 { font-size: clamp(2.65rem, 11.5vw, 3.9rem); }
  .mt-social-grid { margin-right: -1.25rem; padding-right: 1.25rem; border-right: 0; }
  .shop-service { scroll-margin-top: 186px; }
  .section-label { margin-bottom: 2.7rem; }
  .intro-grid, .products, .shop-heading, .self-service, .history { grid-template-columns: 1fr; gap: 3.5rem; }
  .self-story, .self-selection-heading, .self-how, .self-shop-teaser, .self-location { grid-template-columns: 1fr; gap: 3.5rem; }
  .intro h2, .products h2, .shop-heading h2, .self-copy h2, .history h2 { font-size: clamp(2.65rem, 11.5vw, 3.9rem); }
  .mt-preorder { grid-template-columns: 1fr; gap: 2.2rem; padding: 4.5rem 1.25rem; }
  .mt-preorder::after { right: 1.25rem; width: 90px; height: 18px; background-size: 12px 12px; }
  .mt-preorder h2 { font-size: clamp(2.55rem, 11vw, 3.7rem); }
  .value-cards { grid-template-columns: 1fr; }
  .value-card { min-height: 280px; }
  .products .section-heading { position: static; }
  .product-row { grid-template-columns: 30px 1fr; }
  .shop-categories { flex-wrap: nowrap; margin-right: -1.25rem; padding-right: 1.25rem; overflow-x: auto; }
  .shop-categories span { flex: 0 0 auto; }
  .shop-grid { grid-template-columns: 1fr; }
  .shop-card-image { aspect-ratio: 4 / 2.8; }
  .shop-card h3, .shop-card-description { min-height: 0; }
  .shop-service { grid-template-columns: 1fr; }
  .shop-service > div { min-height: 220px; }
  .mt-shop-teaser { padding: 4.8rem 1.25rem 5.2rem; }
  .mt-shop-teaser::after { right: 1.25rem; width: 90px; }
  .mt-shop-teaser-heading { margin-bottom: 2.4rem; }
  .mt-shop-teaser-label { margin-bottom: 1.6rem; }
  .mt-shop-teaser-title { font-size: clamp(2.8rem, 12vw, 3.8rem); }
  .mt-shop-teaser-facts { align-items: flex-start; flex-direction: column; margin: 1.25rem 0 1.6rem; }
  .mt-shop-teaser-products { grid-auto-columns: min(82vw, 320px); grid-auto-flow: column; grid-template-columns: none; margin-right: -1.25rem; padding-right: 1.25rem; border-right: 0; }
  .mt-shop-teaser-is-coming .mt-shop-teaser-products { display: block; margin-right: 0; padding-right: 0; border-right: 1px solid rgba(116,28,43,.2); }
  .mt-shop-coming-placeholder { grid-template-columns: 1fr; min-height: 0; }
  .mt-shop-coming-placeholder-copy { padding: 2.4rem 1.4rem 2.7rem; }
  .mt-shop-coming-placeholder-title { font-size: clamp(2.15rem, 10vw, 3rem); }
  .mt-shop-product-title { min-height: 0; }
  .mt-shop-product-description { min-height: 0; }
  .self-story h2, .self-selection h2, .self-how-intro h2, .self-shop-copy h2, .self-location h2 { font-size: clamp(2.65rem, 11.5vw, 3.9rem); }
  .self-gallery { gap: .45rem; }
  .self-selection-grid { grid-template-columns: 1fr; }
  .self-selection-card { min-height: 275px; }
  .self-how-intro h2 { position: static; }
  .self-steps li { grid-template-columns: 45px 1fr; }
  .self-shop-teaser { gap: 0; padding: 0; }
  .self-shop-image { height: clamp(250px, 72vw, 320px); }
  .self-shop-copy { padding: 3.5rem 1.25rem 4rem; }
  .self-shop-copy .section-label { margin-bottom: 1.8rem; }
  .self-shop-copy .lead { margin: 1.35rem 0 1.7rem; }
  .self-location-card { min-height: 440px; }
  .self-image { order: 2; width: calc(100% - 1.3rem); }
  .self-copy { order: 1; }
  .open-badge { right: -24px; width: 125px; height: 125px; }
  .visit { grid-template-columns: 1fr; }
  .visit > div { min-height: auto; padding: 4.5rem 1.25rem; }
  .contact-card { grid-column: auto; }
}

@media (max-width: 480px) {
  .mobile-cart-trigger .mt-mobile-cart-label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
