:root {
  --wine-950: #19070d;
  --wine-900: #250a12;
  --wine-800: #3a0f1b;
  --wine-700: #561729;
  --gold: #c8a66a;
  --gold-soft: #dbc79f;
  --cream: #f4eee6;
  --cream-2: #ebe0d4;
  --ink: #171210;
  --white: #fffdfa;
  --line: rgba(31, 14, 17, .12);
  --header-h: 76px;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Manrope', system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--wine-950); }
body {
  margin: 0;
  font-family: var(--sans);
  color: var(--ink);
  background: transparent;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--gold); color: var(--wine-950); }

.scene { position: fixed; inset: 0; z-index: -4; overflow: hidden; background: #12080b; }
.scene__image {
  position: absolute; inset: -4%;
  background-image: url('https://images.unsplash.com/photo-1595989787288-e0e5850fd9a9?auto=format&fit=crop&fm=jpg&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&ixlib=rb-4.1.0&q=60&w=3000');
  background-size: cover;
  background-position: 50% 52%;
  transform: scale(1.04);
  animation: breathe 18s ease-in-out infinite alternate;
  will-change: transform;
}
.scene__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,3,7,.45), rgba(14,2,6,.7)); }
.scene__grain {
  position: absolute; inset: 0; opacity: .08; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}
@keyframes breathe { from { transform: scale(1.04) translate3d(0,0,0); } to { transform: scale(1.105) translate3d(-1.4%, -1%, 0); } }

.topbar {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: var(--header-h);
  padding: 0 clamp(20px, 4vw, 64px);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  color: var(--white);
  transition: background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
  border-bottom: 1px solid transparent;
}
.topbar.is-scrolled { background: rgba(25,7,13,.86); backdrop-filter: blur(16px); border-color: rgba(255,255,255,.08); }
.brand { display: inline-flex; flex-direction: column; width: fit-content; line-height: 1; }
.brand__name { font-family: var(--serif); letter-spacing: .085em; font-size: 21px; font-weight: 600; }
.brand__sub { letter-spacing: .36em; font-size: 7px; margin-top: 5px; color: var(--gold-soft); }
.nav { display: flex; align-items: center; gap: 30px; font-size: 12px; letter-spacing: .08em; }
.nav a { position: relative; opacity: .84; transition: opacity .2s; }
.nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: var(--gold); transition: right .25s ease; }
.nav a:hover { opacity: 1; }
.nav a:hover::after { right: 0; }
.nav-cta { justify-self: end; border: 1px solid rgba(223,200,159,.62); padding: 10px 18px; border-radius: 999px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; transition: .25s ease; }
.nav-cta:hover { background: var(--gold); color: var(--wine-950); border-color: var(--gold); }
.menu-toggle { display: none; width: 42px; height: 42px; border: 0; background: transparent; padding: 10px; justify-self: end; }
.menu-toggle span { display: block; height: 1px; background: white; margin: 7px 0; transition: .25s ease; }

.hero { position: relative; min-height: 100svh; display: grid; align-items: center; overflow: hidden; color: var(--white); }
.hero__media {
  position: absolute; inset: 0;
  background-image: url('https://images.unsplash.com/photo-1518645666305-5f5e7469e52a?auto=format&fit=crop&fm=jpg&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&ixlib=rb-4.1.0&q=60&w=3000');
  background-size: cover; background-position: center 47%;
  transform: scale(1.035);
}
.hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,3,6,.88) 0%, rgba(25,5,10,.6) 45%, rgba(21,5,8,.38) 70%, rgba(15,3,6,.64) 100%); }
.hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.22), transparent 35%, rgba(0,0,0,.55)); }
.hero__content { position: relative; z-index: 2; width: min(860px, 90vw); margin-left: clamp(20px, 9vw, 150px); padding-top: var(--header-h); }
.eyebrow { margin: 0 0 22px; font-size: 10px; letter-spacing: .32em; text-transform: uppercase; font-weight: 600; color: rgba(255,255,255,.75); }
.eyebrow--wine { color: var(--wine-700); }
.eyebrow--gold { color: var(--gold-soft); }
.hero h1, h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.02em; }
.hero h1 { font-size: clamp(58px, 7vw, 118px); line-height: .83; margin: 0; max-width: 980px; text-wrap: balance; }
.hero h1 em, h2 em { font-weight: 500; color: var(--gold-soft); }
.hero__lead { margin: 30px 0 0; max-width: 610px; font-size: clamp(15px, 1.35vw, 19px); line-height: 1.7; color: rgba(255,255,255,.78); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 24px; border-radius: 999px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; transition: transform .2s ease, background .2s ease, color .2s ease, border .2s ease; }
.button:hover { transform: translateY(-2px); }
.button--gold { background: var(--gold); color: #24120e; border: 1px solid var(--gold); }
.button--gold:hover { background: #dbc28e; }
.button--ghost { color: white; border: 1px solid rgba(255,255,255,.33); backdrop-filter: blur(7px); }
.button--ghost:hover { border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.07); }
.button--wine { background: var(--wine-800); color: white; }
.scroll-hint { position: absolute; z-index: 3; bottom: 30px; right: clamp(24px, 5vw, 76px); display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.7); font-size: 8px; letter-spacing: .3em; }
.scroll-hint i { display: block; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; position: relative; }
.scroll-hint i::after { content: '↓'; position: absolute; inset: 0; display: grid; place-items: center; font-style: normal; font-size: 14px; animation: arrow 1.7s ease-in-out infinite; }
@keyframes arrow { 50% { transform: translateY(4px); } }

.paper-section { background: var(--cream); position: relative; z-index: 2; }
.paper-section--warm { background: #ede1d5; }
.paper-section__inner { max-width: 1220px; margin: 0 auto; padding: clamp(90px, 11vw, 170px) clamp(22px, 5vw, 74px); }
.split { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(45px, 8vw, 120px); align-items: end; }
.paper-section h2, .dark-section h2, .wine-section h2, .reviews-section h2, .gallery-section h2, .final-window h2 { font-size: clamp(48px, 5.4vw, 84px); line-height: .95; margin: 0; }
.paper-section h2 em, .wine-section h2 em, .reviews-section h2 em { color: var(--wine-700); }
.intro-copy { font-size: 16px; line-height: 1.85; color: #4c3e39; }
.intro-copy p { margin: 0 0 20px; }
.signature-line { display: flex; align-items: center; gap: 16px; margin-top: 36px; color: var(--wine-700); font-size: 9px; letter-spacing: .24em; }
.signature-line span { width: 70px; height: 1px; background: var(--gold); }

.window-section { position: relative; z-index: 1; min-height: min(82svh, 820px); display: grid; place-items: center; color: white; padding: 80px 24px; }
.window-section--first { min-height: 78svh; }
.window-copy { text-align: center; text-shadow: 0 3px 30px rgba(0,0,0,.5); }
.window-copy span { display: block; font-family: var(--serif); font-size: clamp(58px, 7vw, 112px); line-height: .76; letter-spacing: .04em; }
.window-copy span:nth-child(2) { color: var(--gold-soft); }
.window-copy p { margin-top: 32px; letter-spacing: .13em; text-transform: uppercase; font-size: 10px; color: rgba(255,255,255,.72); }

.pillars { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(48,22,27,.17); margin-top: 52px; }
.pillar { padding: 40px 42px 0 0; min-height: 300px; border-right: 1px solid rgba(48,22,27,.17); }
.pillar + .pillar { padding-left: 42px; }
.pillar:last-child { border-right: 0; }
.pillar__number { font-family: var(--serif); color: var(--gold); font-size: 28px; }
.pillar h3 { font-family: var(--serif); font-size: 38px; font-weight: 600; margin: 18px 0 16px; color: var(--wine-800); }
.pillar p { color: #584944; line-height: 1.7; font-size: 14px; min-height: 96px; }
.pillar a { display: inline-flex; gap: 9px; margin-top: 18px; color: var(--wine-700); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }

.dark-section { position: relative; z-index: 2; background: #150c0d; color: var(--cream); }
.dark-section__inner { max-width: 1300px; margin: 0 auto; padding: clamp(90px, 10vw, 160px) clamp(22px, 5vw, 74px); }
.gastronomy-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 86px); align-items: center; }
.gastronomy-copy { padding-right: 2vw; }
.gastronomy-copy h2 { font-size: clamp(48px, 5vw, 78px); }
.gastronomy-copy p:not(.eyebrow) { color: rgba(245,238,230,.68); line-height: 1.8; margin: 28px 0; max-width: 540px; }
.text-link { display: inline-flex; gap: 12px; color: var(--gold-soft); text-transform: uppercase; letter-spacing: .14em; font-size: 10px; border-bottom: 1px solid rgba(218,193,151,.32); padding-bottom: 6px; }
.editorial-shot { margin: 0; position: relative; }
.editorial-shot img { height: clamp(450px, 58vw, 720px); object-fit: cover; filter: saturate(.92) contrast(1.04); }
.editorial-shot figcaption { position: absolute; right: 14px; bottom: 14px; background: rgba(20,10,12,.76); backdrop-filter: blur(8px); padding: 9px 12px; font-size: 8px; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.68); }
.editorial-shot--wide { grid-column: 1 / -1; margin-top: 14px; }
.editorial-shot--wide img { height: clamp(340px, 42vw, 560px); object-position: 50% 56%; }

.window-section--quote { min-height: 72svh; }
.quote-block { text-align: center; max-width: 1000px; padding: 0 20px; }
.quote-block p { font-family: var(--serif); font-size: clamp(52px, 7vw, 108px); line-height: .9; margin: 0; font-style: italic; }
.quote-block span { display: block; margin-top: 30px; font-size: 9px; letter-spacing: .34em; color: var(--gold-soft); }

.wine-section { position: relative; z-index: 2; background: var(--cream); }
.wine-section__inner { max-width: 1240px; margin: 0 auto; padding: clamp(90px, 11vw, 170px) clamp(22px, 5vw, 74px); display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; gap: clamp(50px, 8vw, 110px); }
.wine-copy p:not(.eyebrow) { color: #574945; line-height: 1.85; margin: 28px 0; }
.wine-collage { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 18px; min-height: 580px; }
.wine-collage figure { margin: 0; overflow: hidden; }
.wine-collage img { height: 100%; object-fit: cover; transition: transform .7s ease; }
.wine-collage figure:hover img { transform: scale(1.03); }
.wine-collage__a { height: 560px; }
.wine-collage__b { height: 420px; transform: translateY(-36px); }
.wine-collage__seal { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 150px; aspect-ratio: 1; border-radius: 50%; background: var(--wine-800); color: white; display: grid; place-content: center; text-align: center; box-shadow: 0 20px 50px rgba(36,10,18,.25); border: 1px solid rgba(215,190,147,.5); }
.wine-collage__seal span { font-family: var(--serif); font-size: 21px; letter-spacing: .08em; }
.wine-collage__seal small { margin-top: 6px; font-size: 6px; letter-spacing: .18em; color: var(--gold-soft); }

.gallery-section { position: relative; z-index: 2; background: #171010; color: white; padding: clamp(90px, 10vw, 150px) clamp(16px, 3.4vw, 54px); }
.gallery-heading { max-width: 1180px; margin: 0 auto 56px; }
.gallery-heading h2 em { color: var(--gold-soft); }
.gallery-grid { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr .95fr .95fr; grid-auto-rows: 280px; gap: 12px; }
.gallery-item { margin: 0; overflow: hidden; background: #26191b; }
.gallery-item img { height: 100%; object-fit: cover; filter: saturate(.95) contrast(1.04); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.gallery-item:hover img { transform: scale(1.045); }
.gallery-item--tall { grid-row: span 2; }
.gallery-item--wide { grid-column: span 2; }

.reviews-section { position: relative; z-index: 2; background: #efe5db; }
.reviews-section__inner { max-width: 1220px; margin: 0 auto; padding: clamp(90px, 11vw, 160px) clamp(22px, 5vw, 74px); }
.reviews-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.rating-card { min-width: 190px; border-left: 1px solid rgba(62,27,34,.15); padding-left: 34px; }
.rating-card strong { display: block; font-family: var(--serif); font-size: 72px; line-height: .8; color: var(--wine-700); }
.rating-card span { display: block; color: var(--gold); letter-spacing: .15em; margin: 13px 0 6px; }
.rating-card small { color: #65534d; font-size: 10px; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 70px; }
.review { margin: 0; min-height: 300px; background: rgba(255,255,255,.5); border: 1px solid rgba(60,27,33,.09); padding: 34px; display: flex; flex-direction: column; justify-content: space-between; }
.review__stars { color: var(--gold); letter-spacing: .15em; font-size: 11px; }
.review p { font-family: var(--serif); font-size: 26px; line-height: 1.2; color: #382229; }
.review footer { display: flex; flex-direction: column; gap: 4px; }
.review footer strong { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.review footer span { font-size: 9px; color: #7f6c65; }

.final-window { position: relative; z-index: 1; min-height: 92svh; display: grid; place-items: center; padding: 80px 22px; color: white; }
.final-window__card { width: min(880px, 94vw); text-align: center; padding: clamp(50px, 7vw, 90px) clamp(24px, 7vw, 90px); background: rgba(26,7,13,.72); border: 1px solid rgba(220,193,147,.32); backdrop-filter: blur(15px); box-shadow: 0 30px 100px rgba(0,0,0,.33); }
.final-window h2 em { color: var(--gold-soft); }
.final-window__card > p:not(.eyebrow) { color: rgba(255,255,255,.7); margin-top: 26px; }
.final-window__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

.floating-wa { position: fixed; z-index: 45; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 9px; min-height: 46px; padding: 0 16px; background: rgba(249,244,237,.94); color: var(--wine-800); border-radius: 999px; box-shadow: 0 8px 34px rgba(0,0,0,.22); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; transition: transform .2s ease; }
.floating-wa:hover { transform: translateY(-2px); }
.floating-wa__dot { width: 8px; height: 8px; border-radius: 50%; background: #2aaa64; box-shadow: 0 0 0 5px rgba(42,170,100,.12); }

.footer { position: relative; z-index: 3; background: #100809; color: rgba(255,255,255,.68); min-height: 220px; padding: 56px clamp(22px, 5vw, 74px); display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 30px; border-top: 1px solid rgba(255,255,255,.08); }
.footer__brand { display: flex; flex-direction: column; gap: 8px; }
.footer__brand span { font-family: var(--serif); font-size: 28px; letter-spacing: .09em; color: white; }
.footer__brand small { font-size: 7px; letter-spacing: .26em; color: var(--gold-soft); }
.footer__links { display: flex; gap: 24px; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.footer__links a:hover { color: white; }
.footer__note { grid-column: 1 / -1; margin-top: auto; font-size: 8px; letter-spacing: .08em; opacity: .55; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal--delay { transition-delay: .12s; }
.reveal--delay-2 { transition-delay: .22s; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 980px) {
  .topbar { grid-template-columns: 1fr auto; }
  .nav-cta { display: none; }
  .menu-toggle { display: block; }
  .nav {
    position: fixed; inset: var(--header-h) 0 auto 0;
    background: rgba(25,7,13,.96); backdrop-filter: blur(18px);
    display: grid; gap: 0; padding: 10px 24px 24px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    transform: translateY(-120%); opacity: 0; pointer-events: none;
    transition: .3s ease;
  }
  .nav a { padding: 16px 4px; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 12px; }
  .nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .menu-toggle.is-open span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle.is-open span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .split, .wine-section__inner { grid-template-columns: 1fr; }
  .split { align-items: start; }
  .intro-copy { max-width: 680px; }
  .pillars { grid-template-columns: 1fr; }
  .pillar, .pillar + .pillar { padding: 30px 0; border-right: 0; border-bottom: 1px solid rgba(48,22,27,.17); min-height: auto; }
  .pillar:last-child { border-bottom: 0; }
  .pillar p { min-height: 0; }
  .gastronomy-grid { grid-template-columns: 1fr; }
  .gastronomy-copy { padding: 0 0 20px; }
  .editorial-shot--wide { grid-column: auto; }
  .wine-collage { min-height: 470px; }
  .wine-collage__a { height: 450px; }
  .wine-collage__b { height: 330px; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 260px; }
  .gallery-item--wide { grid-column: span 2; }
  .reviews-heading { align-items: start; }
  .reviews-grid { grid-template-columns: 1fr; }
  .review { min-height: 260px; }
}

@media (max-width: 640px) {
  :root { --header-h: 66px; }
  .topbar { padding: 0 18px; }
  .brand__name { font-size: 19px; }
  .hero__media { background-position: 57% center; }
  .hero__overlay { background: linear-gradient(180deg, rgba(15,3,6,.58), rgba(15,3,6,.72) 50%, rgba(15,3,6,.9)); }
  .hero__content { width: auto; margin: 0; padding: calc(var(--header-h) + 55px) 20px 86px; align-self: center; }
  .hero h1 { font-size: clamp(56px, 17vw, 78px); line-height: .86; }
  .hero__lead { font-size: 14px; line-height: 1.7; max-width: 92%; }
  .hero__actions { flex-direction: column; width: 100%; }
  .hero__actions .button { width: 100%; }
  .scroll-hint { display: none; }
  .paper-section__inner, .dark-section__inner, .wine-section__inner, .reviews-section__inner { padding: 78px 20px; }
  .paper-section h2, .dark-section h2, .wine-section h2, .reviews-section h2, .gallery-section h2, .final-window h2 { font-size: clamp(46px, 14vw, 65px); }
  .window-section { min-height: 66svh; padding: 60px 20px; }
  .window-copy span { font-size: clamp(48px, 15vw, 72px); }
  .pillars { margin-top: 38px; }
  .editorial-shot img, .editorial-shot--wide img { height: 420px; }
  .editorial-shot--wide img { object-position: 58% center; }
  .quote-block p { font-size: clamp(46px, 14vw, 70px); }
  .wine-section__inner { gap: 48px; }
  .wine-collage { min-height: 410px; gap: 10px; }
  .wine-collage__a { height: 390px; }
  .wine-collage__b { height: 285px; transform: translateY(-22px); }
  .wine-collage__seal { width: 118px; }
  .wine-collage__seal span { font-size: 17px; }
  .gallery-section { padding: 78px 12px; }
  .gallery-heading { padding: 0 8px; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 330px; gap: 8px; }
  .gallery-item--tall { grid-row: span 1; }
  .gallery-item--wide { grid-column: span 1; }
  .gallery-item:nth-child(3) { height: 440px; }
  .reviews-heading { flex-direction: column; }
  .rating-card { border-left: 0; border-top: 1px solid rgba(62,27,34,.15); padding: 22px 0 0; width: 100%; }
  .rating-card strong { font-size: 62px; }
  .review { padding: 28px 24px; }
  .review p { font-size: 24px; }
  .final-window { min-height: 85svh; padding: 60px 16px; }
  .final-window__card { backdrop-filter: blur(10px); }
  .final-window__actions { flex-direction: column; }
  .final-window__actions .button { width: 100%; }
  .floating-wa { right: 12px; bottom: 12px; }
  .footer { grid-template-columns: 1fr; padding: 48px 20px 90px; }
  .footer__links { flex-wrap: wrap; gap: 18px; }
  .footer__note { grid-column: auto; }
  .scene__image { background-position: 54% center; }
}

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