
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@300;400;500&display=swap');
:root{
  --warm:#FDFBF7; --oak:#C8AD8B; --charcoal:#2B2B2B; --olive:#3D4435; --brass:#B48E5C; --burgundy:#6B1D23;
  --serif:'Cormorant Garamond', serif; --sans:'Inter', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--warm); color:var(--charcoal); font-family:var(--sans); line-height:1.6; -webkit-font-smoothing:antialiased}
.home-page{scroll-snap-type:y mandatory}
a{color:inherit; text-decoration:none}
img{display:block; max-width:100%}
.serif{font-family:var(--serif)}
/* NAV */
.nav{position:fixed; top:0; left:0; right:0; z-index:100; display:flex; justify-content:space-between; align-items:center; padding:22px 40px; background:rgba(253,251,247,0.92); backdrop-filter:blur(12px); border-bottom:1px solid rgba(180,142,92,0.18); transition:opacity .62s ease-in-out}
.nav.hidden{opacity:0; pointer-events:none}
.nav-logo{font-family:var(--serif); letter-spacing:0.22em; font-size:18px; font-weight:600}
.nav-links{display:flex; gap:28px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; font-weight:500}
.nav-links a{position:relative; padding-bottom:2px}
.nav-links a:after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--brass); transition:width .3s}
.nav-links a:hover:after,.nav-links a.active:after{width:100%}
.mobile-toggle{display:none}
/* HERO */
.hero{position:relative; height:100vh; width:100%; overflow:hidden; display:flex; align-items:center; justify-content:center; background:#111}
.hero-img{position:absolute; inset:0; object-fit:cover; width:100%; height:100%; opacity:0.92}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.12) 50%, rgba(0,0,0,0.28) 100%)}
.hero-content{position:relative; z-index:2; text-align:center; color:#fff; padding:0 24px}
.hero-content h1{font-family:var(--serif); font-size: clamp(36px, 6vw, 72px); letter-spacing:0.28em; font-weight:400; margin-bottom:18px}
.hero-content p{font-size:13px; letter-spacing:0.12em; font-weight:300; opacity:0.92; max-width:420px; margin:0 auto; line-height:1.8}
.scroll-ind{position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:10px; color:#fff; opacity:0.8}
.scroll-ind .line{width:1px; height:48px; background:rgba(255,255,255,0.4); position:relative; overflow:hidden}
.scroll-ind .dot{position:absolute; top:0; left:0; width:100%; height:40%; background:#fff; animation:scrollDot 2.2s infinite cubic-bezier(.16,1,.3,1)}
@keyframes scrollDot{0%{transform:translateY(-100%)} 100%{transform:translateY(250%)}}
.scroll-ind span{font-size:9px; letter-spacing:0.22em; text-transform:uppercase}
/* TRIFOLD */
.home-page .hero{height:100vh; min-height:100vh; scroll-snap-align:start; scroll-snap-stop:always}
.home-page .trifold-wrap{scroll-snap-align:start; scroll-snap-stop:always}
.trifold-wrap{position:relative; height:280vh; background:#f2ede5}
.trifold-wrap:before{content:''; position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(130% 90% at 8% 20%, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0) 58%), radial-gradient(110% 80% at 88% 74%, rgba(125,98,67,0.06) 0%, rgba(125,98,67,0) 54%), linear-gradient(105deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0) 46%, rgba(87,63,39,0.03) 100%); opacity:.6}
.trifold-sticky{position:sticky; top:0; z-index:1; height:100vh; display:flex; align-items:center; justify-content:center; overflow:hidden}
.trifold-inner{width:100%; max-width:1080px; margin:0 auto; padding:0 42px; display:grid; grid-template-columns:repeat(3,1fr); gap:42px; height:62vh; transform:translateY(50px)}
.panel{position:relative; border-radius:11px; overflow:hidden; background:#131313; box-shadow:0 4px 0 rgba(0,0,0,0.35), 0 18px 38px rgba(0,0,0,0.24), inset 0 0 0 1px rgba(180,142,92,0.55); cursor:pointer; transform:translateZ(0); transition:box-shadow .32s ease}
.card-image-stack{position:absolute; inset:0}
.card-image{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.card-image--busy{opacity:1}
.card-image--neat{opacity:0; pointer-events:none; transition:opacity 800ms ease-in-out}
.trifold-wrap.cards-revealed .card-image--neat{opacity:1}
.panel-content{position:absolute; inset:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:0 28px 26px; pointer-events:none}
.panel-label{font-family:var(--serif); letter-spacing:0.04em; font-size:clamp(32px,3.1vw,44px); line-height:1; font-weight:500; color:#efe8da; text-shadow:0 10px 26px rgba(0,0,0,0.58)}
.panel:hover{box-shadow:0 4px 0 rgba(0,0,0,0.38), 0 24px 46px rgba(0,0,0,0.3), inset 0 0 0 1px rgba(180,142,92,0.62)}
.panel:focus-visible{outline:2px solid var(--brass); outline-offset:3px}
@media(max-width:900px){.trifold-inner{grid-template-columns:1fr; height:auto; padding:80px 20px; gap:16px; transform:none} .trifold-wrap{height:auto} .trifold-sticky{position:relative; height:auto} .panel{height:58vh}}

/* PAGES */
.page-head{padding:160px 40px 80px; max-width:1240px; margin:0 auto}
.page-head h1{font-family:var(--serif); font-size: clamp(32px,5vw,56px); font-weight:400; letter-spacing:0.02em; margin-bottom:12px}
.page-head p{font-size:14px; color:#6b6b6b; max-width:520px}
.menu-grid{display:grid; grid-template-columns:1fr 1fr; gap:80px; max-width:1240px; margin:0 auto; padding:0 40px 120px}
.menu-section{margin-bottom:56px}
.menu-section h2{font-family:var(--serif); font-size:22px; font-weight:500; letter-spacing:0.08em; margin-bottom:24px; padding-bottom:12px; border-bottom:1px solid rgba(180,142,92,0.25)}
.menu-item{display:flex; justify-content:space-between; gap:20px; margin-bottom:22px}
.menu-item h3{font-size:13px; font-weight:500; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:4px}
.menu-item p{font-size:13px; color:#6b6b6b; font-weight:300; line-height:1.6}
.menu-item .price{font-size:12px; letter-spacing:0.06em; white-space:nowrap; margin-top:2px}
.symbol{font-size:10px; color:var(--brass); margin-left:6px; letter-spacing:0.1em}
.meet{max-width:900px; margin:0 auto; padding:80px 40px; display:grid; grid-template-columns:180px 1fr; gap:48px; border-top:1px solid rgba(0,0,0,0.08)}
.meet img{width:180px; height:180px; border-radius:50%; object-fit:cover}
.sign-wrap{max-width:1240px; margin:0 auto; padding:0 40px 120px; display:grid; grid-template-columns:1fr 1fr; gap:80px}
.input{width:100%; padding:14px 16px; border:1px solid rgba(0,0,0,0.12); background:#fff; font-family:var(--sans); font-size:13px; margin-bottom:16px; border-radius:2px}
.btn{background:var(--burgundy); color:#fff; border:0; padding:14px 28px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; cursor:pointer; transition:background .3s}
.btn:hover{background:#5a1820}
.faq-item{border-bottom:1px solid rgba(0,0,0,0.08); padding:16px 0}
.faq-q{font-size:13px; font-weight:500; cursor:pointer; display:flex; justify-content:space-between}
.reviews{max-width:900px; margin:0 auto; padding:0 40px 120px; display:grid; gap:28px}
.review-card{border:1px solid rgba(0,0,0,0.07); padding:28px; background:#fff; border-radius:2px}
.review-card .quote{font-family:var(--serif); font-size:18px; line-height:1.6; margin-bottom:16px}
.avatar{width:32px; height:32px; border-radius:50%; background:var(--brass); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:11px; margin-right:10px}

/* WINE EDITORIAL */
.wine-page .nav-links{gap:32px}
.wine-hero{
  max-width:1280px;
  margin:0 auto;
  padding:154px 40px 30px;
}
.wine-hero-media{margin:0 0 28px}
.wine-hero-media img{
  width:100%;
  height:clamp(260px,38vh,420px);
  object-fit:cover;
  border-radius:6px;
  box-shadow:0 20px 42px rgba(49,35,22,0.12);
}
.wine-hero-copy{max-width:760px}
.wine-kicker{
  font-size:11px;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:#7b6852;
  margin-bottom:10px;
}
.wine-hero-copy h1{
  font-size:clamp(42px,6vw,78px);
  font-weight:400;
  letter-spacing:0.03em;
  margin-bottom:14px;
  color:#2f2a25;
}
.wine-lede{
  max-width:360px;
  font-size:15px;
  line-height:1.9;
  color:#5f584f;
}
.wine-philosophy{
  max-width:1280px;
  margin:0 auto;
  padding:10px 40px 92px;
}
.wine-philosophy p{
  max-width:720px;
  font-size:clamp(28px,3.4vw,46px);
  line-height:1.24;
  color:#2f2a25;
}
.wine-archive{
  max-width:1280px;
  margin:0 auto;
  padding:0 40px 124px;
}
.wine-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0 72px;
  align-items:start;
}
.wine-column--right{margin-top:82px}
.wine-cat{margin-bottom:64px}
.wine-cat h2{
  font-family:var(--serif);
  font-size:clamp(28px,2.6vw,38px);
  font-weight:500;
  letter-spacing:0.03em;
  color:#2f2a25;
  margin-bottom:20px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(126,98,70,0.22);
}
.wine-cat--offset{margin-top:54px}
.wine-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:24px;
  row-gap:4px;
  padding:13px 0 14px;
  border-bottom:1px solid rgba(126,98,70,0.11);
}
.wine-row > .name{
  grid-column:1;
  font-size:13px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.07em;
  line-height:1.35;
  color:#2f2a25;
}
.wine-row > .meta{
  grid-column:1;
  font-size:11px;
  color:#7d766f;
  letter-spacing:0.04em;
  line-height:1.5;
}
.wine-row > .note{
  grid-column:1;
  font-size:12px;
  font-style:italic;
  color:#6c6660;
  line-height:1.6;
}
.wine-row > .meta:last-child{
  grid-column:2;
  grid-row:1 / span 3;
  align-self:end;
  justify-self:end;
  text-align:right;
  font-size:12px;
  color:#40362e;
  letter-spacing:0.08em;
  white-space:nowrap;
}
.wine-callout{
  max-width:760px;
  margin:0 0 0 auto;
  padding-top:8px;
}
.wine-rule{
  width:100%;
  height:1px;
  background:linear-gradient(90deg, rgba(130,103,73,0) 0%, rgba(130,103,73,0.2) 20%, rgba(130,103,73,0.2) 80%, rgba(130,103,73,0) 100%);
  margin-bottom:24px;
}
.wine-callout-copy h2{
  font-size:32px;
  letter-spacing:0.02em;
  color:#2f2a25;
  margin-bottom:10px;
}
.wine-callout-copy p{
  font-size:15px;
  line-height:1.9;
  color:#5f584f;
}
.wine-links{
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:28px;
}
.wine-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  position:relative;
  padding-bottom:2px;
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--burgundy);
  transition:opacity .2s ease, transform .2s ease;
}
.wine-link:after{
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:1px;
  background:rgba(107,29,35,0.3);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .22s ease;
}
.wine-link:hover{
  opacity:0.72;
  transform:translateX(2px);
}
.wine-link:hover:after{transform:scaleX(1)}

/* DINE EDITORIAL */
.dine-page,
.wine-page{
  background-color:#F2EEE8;
  background-image:
    radial-gradient(120% 110% at 12% 10%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 58%),
    radial-gradient(95% 70% at 86% 14%, rgba(182,146,102,0.08) 0%, rgba(182,146,102,0) 62%),
    radial-gradient(80% 88% at 36% 86%, rgba(122,98,72,0.05) 0%, rgba(122,98,72,0) 70%),
    linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0) 22%, rgba(108,82,56,0.03) 100%);
  background-attachment:fixed;
}
.dine-page .nav,
.wine-page .nav{
  background:rgba(242,238,232,0.9);
  border-bottom:1px solid rgba(136,108,77,0.13);
}
.dine-head{padding:166px 40px 62px; max-width:1280px}
.dine-head h1{font-size:clamp(36px,5.2vw,62px); letter-spacing:0.03em; margin-bottom:14px}
.dine-head p{max-width:620px; color:#59534c; line-height:1.95}

.dine-layout{
  max-width:1280px;
  margin:0 auto;
  padding:0 40px 112px;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,0.95fr);
  gap:68px;
  align-items:start;
}
.dine-page .menu-grid{
  max-width:none;
  margin:0;
  padding:0;
  gap:56px;
}
.dine-page .menu-section{margin-bottom:54px}
.dine-page .menu-section h2{
  font-size:34px;
  letter-spacing:0.03em;
  font-weight:500;
  margin-bottom:22px;
  padding-bottom:12px;
  color:#2f2a25;
  border-bottom:1px solid rgba(126,98,70,0.22);
}
.dine-page .menu-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:26px;
  margin-bottom:0;
  padding:12px 0 14px;
  border-bottom:1px solid rgba(126,98,70,0.11);
}
.dine-page .menu-item h3{
  font-size:12px;
  letter-spacing:0.09em;
  margin-bottom:5px;
  color:#2f2a25;
}
.dine-page .menu-item p{
  font-size:13px;
  line-height:1.82;
  color:#6c6660;
}
.dine-page .menu-item .price{
  min-width:26px;
  text-align:right;
  font-size:12px;
  letter-spacing:0.08em;
  color:#3f372f;
}
.dine-page .symbol{letter-spacing:0.15em}

.dine-feature{
  margin:10px 0 0;
  padding:20px 0 0;
}
.dine-feature img{
  width:100%;
  border-radius:6px;
  aspect-ratio:4/5;
  object-fit:cover;
  box-shadow:0 22px 45px rgba(49,35,22,0.14);
}

.dine-story{
  max-width:1280px;
  margin:0 auto;
  padding:18px 40px 150px;
}
.dine-rule{
  width:100%;
  height:1px;
  background:linear-gradient(90deg, rgba(130,103,73,0) 0%, rgba(130,103,73,0.2) 20%, rgba(130,103,73,0.2) 80%, rgba(130,103,73,0) 100%);
  margin:0 0 72px;
}
.meet-editorial{
  max-width:none;
  margin:0;
  padding:0;
  border-top:0;
  grid-template-columns:minmax(260px,360px) minmax(0,1fr);
  gap:58px;
  align-items:start;
}
.meet-editorial .meet-photo{
  width:100%;
  max-width:360px;
  height:auto;
  aspect-ratio:4/5;
  border-radius:18px;
  object-fit:cover;
  box-shadow:0 18px 36px rgba(53,38,23,0.13);
}
.meet-editorial .meet-copy{
  max-width:700px;
  padding-top:8px;
}
.meet-editorial .meet-copy h2{
  font-size:40px;
  letter-spacing:0.02em;
  margin-bottom:22px;
  color:#2f2a25;
}
.meet-editorial .meet-copy p{
  font-size:15px;
  line-height:2;
  color:#56514a;
}
.meet-editorial .signature{
  margin-top:26px;
  font-size:26px;
  line-height:1;
  letter-spacing:0.03em;
  color:#6b4e39;
  opacity:0.72;
}

.fade-in{
  opacity:0;
  transform:scale(0.965);
  transform-origin:center center;
  animation:softFadeGrow 1400ms ease-in-out forwards;
  will-change:opacity, transform;
}
@keyframes softFadeGrow{
  from{opacity:0; transform:scale(0.965)}
  to{opacity:1; transform:scale(1)}
}

.fade-up{
  opacity:0;
  transform:translateY(14px);
  animation:softFadeUp 900ms ease-out forwards;
  animation-delay:var(--delay, 0ms);
  will-change:opacity, transform;
}
@keyframes softFadeUp{
  from{opacity:0; transform:translateY(14px)}
  to{opacity:1; transform:translateY(0)}
}

@media(max-width:900px){.menu-grid,.sign-wrap,.meet{grid-template-columns:1fr} .nav-links{display:none} .mobile-toggle{display:block}}
@media(max-width:1100px){
  .dine-layout{grid-template-columns:1fr; gap:40px; padding-bottom:86px}
  .dine-feature{max-width:620px}
  .dine-story{padding-top:6px}
  .meet-editorial{grid-template-columns:1fr; gap:34px}
  .meet-editorial .meet-photo{max-width:430px}
  .wine-grid{grid-template-columns:1fr; gap:0}
  .wine-column--right{margin-top:0}
  .wine-cat--offset{margin-top:0}
  .wine-callout{margin:0; max-width:720px}
}
@media(max-width:900px){
  .dine-page .nav{padding:20px 22px}
  .wine-page .nav{padding:20px 22px}
  .dine-head{padding:140px 22px 44px}
  .dine-layout{padding:0 22px 68px}
  .dine-page .menu-grid{gap:42px}
  .dine-page .menu-section h2{font-size:30px; margin-bottom:18px}
  .dine-page .menu-item{padding:11px 0 13px}
  .dine-story{padding:6px 22px 90px}
  .dine-rule{margin-bottom:52px}
  .meet-editorial .meet-copy h2{font-size:34px}
  .meet-editorial .meet-copy p{font-size:14px; line-height:1.9}
  .wine-hero{padding:132px 22px 24px}
  .wine-hero-media img{height:300px}
  .wine-philosophy{padding:8px 22px 70px}
  .wine-philosophy p{font-size:clamp(24px,7vw,34px)}
  .wine-archive{padding:0 22px 92px}
  .wine-cat{margin-bottom:48px}
  .wine-cat h2{font-size:28px; margin-bottom:16px}
  .wine-row{padding:12px 0 13px}
  .wine-callout{padding-top:2px}
  .wine-callout-copy h2{font-size:28px}
  .wine-links{gap:20px}
}
@media (prefers-reduced-motion: reduce){
  .card-image--neat{transition:none}
  .nav{transition:none}
  .fade-in{opacity:1; transform:none; animation:none}
  .fade-up{opacity:1; transform:none; animation:none}
}
