:root {
    --shop-wine: #2a0b0f;
    --shop-deep: #150507;
    --shop-paper: #efe2c5;
    --shop-ink: #261012;
    --shop-gold: var(--gold);
    --shop-gold-light: var(--gold-light);
    --shop-cream: var(--cream);
    --shop-line: rgba(212, 175, 55, .26);
    --shop-shell: 1240px;
}

.shop-field small[data-field-error] {
    display: block;
    min-height: 1.1em;
    margin-top: 5px;
    color: #9e2938;
    font-size: 12px;
}

.shop-reservation-form [aria-invalid="true"] {
    border-color: #a53b49;
    box-shadow: 0 0 0 2px rgb(165 59 73 / 12%);
}

#reservation-status.is-pending {
    color: #765e31;
}

#reservation-status.is-success {
    color: #2b6d50;
}

#reservation-status.is-invalid,
#reservation-status.is-offline {
    color: #922d3b;
}

html { scroll-behavior: smooth; }
body.shop-page { margin: 0; overflow-x: hidden; color: var(--shop-cream); background: var(--shop-wine) var(--brand-bg-desktop) center top / cover fixed; font-family: var(--font-display); }
.shop-page *, .shop-page *::before, .shop-page *::after { box-sizing: border-box; }
.shop-page img { max-width: 100%; }
.shop-page a { color: inherit; }
.shop-page button { font: inherit; }
.shop-shell { width: min(var(--shop-shell), calc(100% - 40px)); margin-inline: auto; }

.shop-header { position: sticky; z-index: 100; top: 0; display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 70px; padding: 13px clamp(20px,4vw,58px); background: rgba(21,5,7,.86); border-bottom: 1px solid var(--shop-line); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.shop-header__brand { color: var(--shop-gold-light); font-size: clamp(21px,2vw,28px); font-weight: 700; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.shop-header__back { color: rgba(255,249,237,.75); border-bottom: 1px solid rgba(255,249,237,.38); font-size: 14px; font-weight: 600; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; transition: color .25s ease; }
.shop-header__back:hover { color: var(--shop-gold-light); }
.shop-page a:focus-visible, .shop-page button:focus-visible, .shop-button:focus-visible { outline: 3px solid #fff7e6; outline-offset: 4px; }

.shop-hero { position: relative; display: flex; align-items: center; min-height: clamp(430px,61svh,650px); padding-block: clamp(82px,10vw,132px); overflow: hidden; background: linear-gradient(105deg,rgba(21,5,7,.98),rgba(42,11,15,.86) 60%,rgba(21,5,7,.94)); }
.shop-hero::before { content: ''; position: absolute; inset: 0; opacity: .2; pointer-events: none; background: var(--brand-bg-desktop) center / cover; }
.shop-hero__copy, .shop-hero__media { position: relative; z-index: 1; }
.shop-hero__copy { margin-inline: auto; }
.shop-kicker, .shop-eyebrow { margin: 0 0 14px; color: var(--shop-gold-light); font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.shop-hero h1 { margin: 0; font-size: clamp(58px,7vw,94px); font-weight: 500; line-height: .84; letter-spacing: -.05em; }
.shop-hero h1 em { color: var(--shop-gold-light); font-weight: 400; }
.shop-hero__lead { max-width: 660px; margin: 30px 0 28px; color: rgba(255,249,237,.75); font-size: clamp(19px,1.8vw,25px); line-height: 1.5; }
.shop-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.shop-button { display: inline-flex; min-height: 56px; align-items: center; justify-content: center; padding: 0 30px; border: 1px solid transparent; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease; }
.shop-button:hover { transform: translateY(-2px); }
.shop-button--gold { color: #24130c !important; background: var(--shop-gold-light); box-shadow: 0 14px 35px rgba(212,175,55,.18); }
.shop-button--gold:hover { background: #f7e5ad; box-shadow: 0 17px 42px rgba(212,175,55,.26); }
.shop-button--ghost { border-color: rgba(255,255,255,.38); color: #fff9ed; background: rgba(255,255,255,.025); }
.shop-button--ghost:hover { border-color: var(--shop-gold-light); background: rgba(243,217,139,.07); }
.shop-hero__facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 590px; margin: 38px 0 0; border-block: 1px solid var(--shop-line); }
.shop-hero__facts div { padding: 19px 20px 19px 0; }
.shop-hero__facts div + div { padding-left: 26px; border-left: 1px solid var(--shop-line); }
.shop-hero__facts dt { color: var(--shop-gold-light); font-size: 27px; line-height: 1; }
.shop-hero__facts dd { margin: 5px 0 0; color: rgba(255,249,237,.55); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.shop-hero__media { justify-self: end; width: min(100%,690px); margin: 0; padding: 16px; border: 1px solid rgba(243,217,139,.35); background: rgba(21,5,7,.72); box-shadow: 0 40px 100px rgba(0,0,0,.42); }
.shop-hero__media img { display: block; width: 100%; height: min(66vh,690px); object-fit: contain; background: #110305; }
.shop-hero__media figcaption, .shop-gallery figcaption { margin: 12px 5px 0; color: rgba(255,249,237,.58); font-size: 13px; font-style: italic; text-align: center; }
.shop-hero__scroll { position: absolute; z-index: 2; bottom: 25px; left: 50%; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.55); font-size: 11px; letter-spacing: .15em; text-decoration: none; text-transform: uppercase; transform: translateX(-50%); }
.shop-hero__scroll i { width: 38px; height: 1px; background: var(--shop-gold); }

.shop-intro { padding-block: clamp(105px,12vw,175px); }
.shop-section-heading { display: grid; grid-template-columns: 78px 1fr; }
.shop-index, .shop-product__number { margin: 7px 0 0; color: var(--shop-gold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.shop-section-heading h2 { margin: 0; font-size: clamp(54px,7vw,90px); font-weight: 500; line-height: .88; letter-spacing: -.045em; }
.shop-intro__text { max-width: 800px; margin: clamp(42px,6vw,78px) 0 0 78px; color: rgba(255,249,237,.7); font-size: clamp(21px,2.4vw,31px); line-height: 1.52; }

.shop-product--journal { padding-block: clamp(80px,10vw,140px); color: var(--shop-ink); background: var(--shop-paper); }
.shop-product__inner { display: grid; grid-template-columns: minmax(0,1.02fr) minmax(390px,.98fr); align-items: center; gap: clamp(48px,8vw,112px); }
.shop-gallery { min-width: 0; }
.shop-gallery__main { margin: 0; padding: 12px; overflow: hidden; border: 1px solid rgba(212,175,55,.32); background: rgba(21,5,7,.74); box-shadow: 0 28px 70px rgba(0,0,0,.2); }
.shop-gallery__main img { display: block; width: 100%; height: min(66vh,740px); object-fit: contain; transition: opacity .2s ease,transform .35s ease; }
.shop-gallery__main img.is-changing { opacity: .35; transform: scale(.985); }
.shop-gallery__main--paper { background: #f8f3e8; }
.shop-gallery__main--paper figcaption { color: rgba(38,16,18,.63); }
.shop-gallery__main--dark img, .shop-gallery__main--studio img { background: #110305; }
.shop-gallery__main--studio { background: #1a080a; }
.shop-gallery__main--studio figcaption { color: rgba(255,249,237,.68); }
.shop-gallery__thumbs { display: grid; grid-template-columns: repeat(auto-fit,minmax(82px,1fr)); gap: 9px; margin-top: 13px; }
.shop-gallery__thumbs--compact { grid-template-columns: repeat(auto-fit,minmax(110px,1fr)); }
.shop-thumb { min-width: 0; padding: 4px; border: 1px solid transparent; cursor: pointer; background: rgba(21,5,7,.24); transition: border-color .2s ease,transform .2s ease,opacity .2s ease; }
.shop-thumb:hover { transform: translateY(-2px); }
.shop-thumb[aria-pressed='true'] { border-color: var(--shop-gold); }
.shop-thumb img { display: block; width: 100%; height: 82px; object-fit: cover; opacity: .64; }
.shop-thumb[aria-pressed='true'] img { opacity: 1; }
.shop-product__copy h2, .shop-card-copy h2 { margin: 0 0 30px; font-size: clamp(48px,5.8vw,76px); font-weight: 500; line-height: .88; letter-spacing: -.04em; }
.shop-product__copy h2 em, .shop-card-copy h2 em { color: #8b3a32; font-weight: 400; }
.shop-product__copy .shop-eyebrow { margin-top: 24px; color: #8b3a32; }
.shop-product__standfirst { margin: 0 0 22px; font-size: clamp(23px,2.4vw,31px); line-height: 1.36; }
.shop-product__copy > p:not(.shop-eyebrow,.shop-product__number,.shop-product__standfirst) { color: rgba(38,16,18,.73); font-size: 18px; line-height: 1.7; }
.shop-specs { margin: 35px 0 0; padding: 0; border-block: 1px solid rgba(38,16,18,.2); list-style: none; }
.shop-specs li { display: flex; justify-content: space-between; gap: 24px; padding: 14px 0; border-bottom: 1px solid rgba(38,16,18,.12); }
.shop-specs li:last-child { border-bottom: 0; }
.shop-specs span { color: rgba(38,16,18,.55); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.shop-specs strong { font-weight: 600; text-align: right; }
.shop-status { display: grid; grid-template-columns: 9px 1fr; gap: 2px 13px; margin-top: 32px; align-items: center; }
.shop-status > span { grid-row: 1 / 3; width: 9px; height: 9px; background: #9a473e; transform: rotate(45deg); }
.shop-status strong { font-size: 16px; letter-spacing: .08em; text-transform: uppercase; }
.shop-status small { color: rgba(38,16,18,.58); }

.shop-pair { padding-block: clamp(110px,13vw,190px); }
.shop-product-card { display: grid; grid-template-columns: minmax(0,.96fr) minmax(380px,1.04fr); align-items: center; gap: clamp(46px,8vw,105px); padding-block: clamp(60px,8vw,105px); border-bottom: 1px solid var(--shop-line); }
.shop-product-card:first-child { padding-top: 0; }
.shop-product-card--reverse .shop-gallery { order: 2; }
.shop-product-card--reverse .shop-card-copy { order: 1; }
.shop-card-copy .shop-eyebrow { margin-top: 22px; }
.shop-card-copy h2 { color: #fff8ea; }
.shop-card-copy h2 em { color: var(--shop-gold-light); }
.shop-card-copy > p:not(.shop-eyebrow,.shop-product__number) { color: rgba(255,249,237,.7); font-size: clamp(18px,1.7vw,21px); line-height: 1.68; }
.shop-specs--dark { border-color: var(--shop-line); }
.shop-specs--dark li { border-color: rgba(212,175,55,.14); }
.shop-specs--dark span { color: rgba(255,249,237,.48); }
.shop-specs--dark strong { color: #fff8ea; }
.shop-status--dark > span { background: var(--shop-gold-light); }
.shop-status--dark small { color: rgba(255,249,237,.5); }

.shop-purchase { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-top: 32px; }
.shop-price { display: flex; flex-direction: column; gap: 3px; margin: 0; }
.shop-price span { color: rgba(38,16,18,.55); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.shop-price strong { color: var(--shop-ink); font-size: clamp(34px,3.6vw,48px); font-weight: 600; line-height: 1; }
.shop-button--wine { color: #fff8ea !important; background: #702b2c; }
.shop-button--wine:hover { background: #852f31; box-shadow: 0 15px 34px rgba(112,43,44,.22); }
.shop-purchase--dark .shop-price span { color: rgba(255,249,237,.52); }
.shop-purchase--dark .shop-price strong { color: #fff8ea; }

.shop-reservation { padding-block: clamp(90px,11vw,150px); color: var(--shop-ink); background: var(--shop-paper); }
.shop-reservation__inner { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); align-items: start; gap: clamp(50px,8vw,112px); }
.shop-reservation__copy { position: sticky; top: 112px; }
.shop-reservation__copy .shop-eyebrow { color: #8b3a32; }
.shop-reservation__copy h2, .shop-legal h2 { margin: 0; font-size: clamp(42px,5.5vw,68px); font-weight: 500; line-height: .92; letter-spacing: -.04em; }
.shop-reservation__copy > p:not(.shop-eyebrow) { color: rgba(38,16,18,.72); font-size: 19px; line-height: 1.6; }
.shop-reservation__note { padding-top: 22px; border-top: 1px solid rgba(38,16,18,.18); font-size: 15px !important; }
.shop-reservation-form { display: grid; min-width: 0; grid-template-columns: minmax(120px,.38fr) minmax(220px,.62fr); gap: 18px; padding: clamp(24px,3.5vw,42px); border: 1px solid rgba(38,16,18,.18); background: rgba(255,255,255,.34); box-shadow: 0 24px 70px rgba(38,16,18,.08); }
.shop-field { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.shop-field--wide { grid-column: 1 / -1; }
.shop-field label { color: rgba(38,16,18,.78); font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.shop-field label span { color: rgba(38,16,18,.48); font-size: 11px; font-weight: 500; }
.shop-field input, .shop-field select, .shop-field textarea { width: 100%; border: 1px solid rgba(38,16,18,.25); border-radius: 0; color: var(--shop-ink); background: rgba(255,255,255,.62); font: 18px/1.35 var(--font-display); font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "lnum" 1, "tnum" 1; letter-spacing: 0; }
.shop-field input[type="number"] { font-family: var(--font-numerals); }
.shop-field input, .shop-field select { min-height: 52px; padding: 0 14px; }
.shop-field textarea { min-height: 104px; padding: 13px 14px; resize: vertical; }
.shop-field input:focus, .shop-field select:focus, .shop-field textarea:focus { outline: 3px solid rgba(139,58,50,.24); border-color: #8b3a32; }
.shop-reservation-form__actions { display: flex; align-items: center; gap: 20px; margin-top: 6px; }
.shop-reservation-form__actions .shop-button { flex: 0 0 auto; border: 0; cursor: pointer; }
.shop-reservation-form__actions p { margin: 0; color: rgba(38,16,18,.6); font-size: 14px; line-height: 1.45; }
.shop-reservation-form__actions a { color: #702b2c; font-weight: 600; }

.shop-legal { padding-block: clamp(70px,8vw,105px); background: rgba(21,5,7,.94); }
.shop-legal__inner { display: grid; grid-template-columns: minmax(250px,.72fr) minmax(420px,1.28fr); gap: clamp(46px,8vw,112px); }
.shop-legal h2 { color: #fff8ea; font-size: clamp(36px,4.5vw,56px); }
.shop-legal__text { color: rgba(255,249,237,.66); font-size: 15px; line-height: 1.7; }
.shop-legal__text > p:first-child { margin-top: 0; }
.shop-seller { display: grid; gap: 4px; margin-top: 28px; padding: 18px 20px; border: 1px solid rgba(212,175,55,.16); color: rgba(255,249,237,.5); font-size: 13px; font-style: normal; line-height: 1.45; }
.shop-seller strong { color: rgba(255,248,234,.72); font-size: 15px; font-weight: 600; }
.shop-seller a { color: var(--shop-gold-light); }

.shop-finale { padding: clamp(110px,14vw,200px) 20px; text-align: center; background: linear-gradient(rgba(21,5,7,.75),rgba(21,5,7,.95)),var(--brand-bg-desktop) center / cover; }
.shop-finale__inner { max-width: 900px; margin-inline: auto; }
.shop-finale h2 { margin: 0; color: #fff8ea; font-size: clamp(55px,7vw,96px); font-weight: 500; line-height: .88; letter-spacing: -.04em; }
.shop-finale p:not(.shop-eyebrow) { max-width: 700px; margin: 34px auto; color: rgba(255,249,237,.68); font-size: clamp(19px,2vw,25px); line-height: 1.55; }
.shop-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 92px; padding: 20px clamp(20px,4vw,58px); border-top: 1px solid var(--shop-line); background: var(--shop-deep); }
.shop-footer a { color: var(--shop-gold-light); font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.shop-footer p { margin: 0; color: rgba(255,249,237,.5); font-size: 13px; letter-spacing: .08em; }

.shop-reveal { opacity: 1; transform: none; }
.shop-motion .shop-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease,transform .8s ease; }
.shop-motion .shop-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 980px) {
    .shop-product__inner, .shop-product-card { grid-template-columns: 1fr; }
    .shop-product__copy, .shop-card-copy { max-width: 760px; }
    .shop-product-card--reverse .shop-gallery, .shop-product-card--reverse .shop-card-copy { order: initial; }
    .shop-gallery__main img { height: min(72vh,760px); }
    .shop-reservation__inner, .shop-legal__inner { grid-template-columns: 1fr; }
    .shop-reservation__copy { position: static; max-width: 680px; }
}

@media (max-width: 900px) {
    .shop-header { min-height: 62px; }
}

@media (max-width: 760px) {
    body.shop-page { background-image: var(--brand-bg-mobile); background-attachment: scroll; }
    .shop-header { grid-template-columns: 1fr auto; min-height: 62px; padding: 11px 18px; }
    .shop-header__brand { font-size: 21px; }
    .shop-header__back { font-size: 12px; }
    .shop-shell { width: min(100% - 24px,var(--shop-shell)); }
    .shop-hero { min-height: 440px; padding-block: 72px 78px; }
    .shop-hero h1 { font-size: clamp(51px,15vw,70px); }
    .shop-hero__lead { margin-top: 28px; font-size: 20px; }
    .shop-hero__actions { flex-direction: column; }
    .shop-button { width: 100%; }
    .shop-hero__facts { grid-template-columns: 1fr; }
    .shop-hero__facts div + div { padding-left: 0; border-top: 1px solid var(--shop-line); border-left: 0; }
    .shop-hero__media { width: 100%; padding: 10px; }
    .shop-hero__media img { height: 58vh; max-height: 600px; }
    .shop-hero__scroll { display: none; }
    .shop-intro { padding-block: 90px; }
    .shop-section-heading { grid-template-columns: 34px 1fr; }
    .shop-section-heading h2 { font-size: clamp(47px,14vw,64px); }
    .shop-intro__text { margin: 38px 0 0 34px; font-size: 20px; }
    .shop-product--journal { padding-block: 72px; }
    .shop-product__inner { gap: 55px; }
    .shop-product__copy h2, .shop-card-copy h2 { font-size: clamp(45px,13.4vw,62px); }
    .shop-gallery__main { padding: 8px; }
    .shop-gallery__main img { height: 58vh; max-height: 610px; }
    .shop-gallery__thumbs { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .shop-thumb img { height: 70px; }
    .shop-specs li { align-items: flex-start; flex-direction: column; gap: 3px; }
    .shop-specs strong { text-align: left; }
    .shop-pair { padding-block: 90px; }
    .shop-product-card { gap: 52px; padding-block: 82px; }
    .shop-purchase { align-items: stretch; flex-direction: column; }
    .shop-purchase .shop-button { width: 100%; }
    .shop-reservation { padding-block: 78px; }
    .shop-reservation__inner, .shop-legal__inner { gap: 38px; }
    .shop-reservation-form { grid-template-columns: 1fr; padding: 20px 16px; }
    .shop-field--wide { grid-column: auto; }
    .shop-reservation-form__actions { align-items: stretch; flex-direction: column; }
    .shop-reservation-form__actions .shop-button { width: 100%; }
    .shop-legal { padding-block: 70px; }
    .shop-finale { padding-block: 105px; }
    .shop-finale h2 { font-size: clamp(48px,14vw,67px); }
    .shop-footer { align-items: flex-start; flex-direction: column; padding-block: 27px; }
}

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

@media (min-width: 1500px) {
    :root { --shop-shell: 1600px; }
    .shop-shell { width: min(var(--shop-shell), calc(100% - var(--site-gutter) - var(--site-gutter))); }
    .shop-hero { min-height: calc(100svh - var(--site-header-height)); }
    .shop-hero h1 { font-size: clamp(92px, 6vw, 124px); }
    .shop-hero__lead { max-width: 760px; font-size: clamp(23px, 1.4vw, 30px); }
    .shop-product__inner { grid-template-columns: minmax(0, 1.12fr) minmax(470px, .88fr); }
    .shop-gallery__main img { height: min(72vh, 900px); }
}
