:root{
  --charcoal:#2F3138;
  --charcoal-2:#26282E;
  --gold:#C7A248;
  --gold-2:#E0C27B;
  --cream:#EDE7DA;
  --cream-2:#E3DBC9;
  --espresso:#4B382C;
  --espresso-2:#3A2B21;
  --ivory:#EDEAE2;
  --ink:#2A2B27;
  --line-dark:rgba(199,162,72,0.35);
  --line-light:rgba(47,49,56,0.16);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--charcoal);
  color:var(--ivory);
  font-family:'EB Garamond', serif;
  font-size:1.05rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Cinzel', serif; font-weight:500; letter-spacing:0.06em;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1100px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

.gold-rule{width:64px; height:1px; background:var(--gold); margin:22px 0 26px; border:none;}
.gold-rule.center{margin-left:auto; margin-right:auto;}
.gold-rule.dark{background:var(--espresso);}
.eyebrow{
  font-family:'Cinzel', serif; font-size:0.72rem; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--gold); display:block; margin-bottom:14px;
}

.btn{
  display:inline-block; font-family:'Cinzel', serif; font-size:0.74rem; letter-spacing:0.22em;
  text-transform:uppercase; padding:15px 32px; transition:background .25s, color .25s, border-color .25s;
  text-align:center;
}
.btn-espresso{background:var(--espresso); color:var(--ivory); border:1px solid var(--espresso);}
.btn-espresso:hover{background:var(--espresso-2); border-color:var(--espresso-2);}
.btn-outline-gold{border:1px solid var(--gold); color:var(--gold); background:transparent;}
.btn-outline-gold:hover{background:var(--gold); color:var(--charcoal-2);}
.btn-outline-dark{border:1px solid var(--espresso); color:var(--espresso); background:transparent;}
.btn-outline-dark:hover{background:var(--espresso); color:var(--ivory);}

/* ---------- HEADER ---------- */
header.masthead{
  background:var(--charcoal-2);
  padding:32px 0 0;
  text-align:center;
  border-bottom:1px solid var(--line-dark);
}
.logo-link{display:inline-block;}
.logo-img{height:120px; width:auto; display:block; margin:0 auto 20px;}
@media(max-width:640px){.logo-img{height:92px;}}
.logo-mark{width:80px; height:auto; display:block; margin:0 auto 10px;}
.logo-name{
  font-family:'Cinzel', serif; font-size:0.82rem; letter-spacing:0.42em; color:var(--gold);
  text-transform:uppercase; display:block; margin-bottom:22px;
}
nav.main{
  display:flex; justify-content:center; align-items:center; flex-wrap:wrap;
  padding:0 16px 20px;
}
nav.main a{
  font-family:'Cinzel', serif; font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ivory); padding:6px 20px; position:relative; transition:color .2s;
}
nav.main a:not(:last-child)::after{
  content:'|'; position:absolute; right:-4px; color:var(--gold); opacity:0.6;
}
nav.main a:hover{color:var(--gold-2);}
nav.main a.active{color:var(--gold);}
nav.main a.nav-book{color:var(--gold);}
@media(max-width:760px){
  nav.main a{padding:6px 11px; font-size:0.66rem;}
  nav.main a:not(:last-child)::after{right:-3px;}
}

/* ---------- PAGE BANNER ---------- */
.page-banner{
  background:
    linear-gradient(rgba(38,40,46,0.55), rgba(38,40,46,0.72)),
    linear-gradient(170deg, #55606C 0%, #6E7F62 60%, #3E4A38 100%);
  background-size:cover; background-position:center;
  text-align:center; padding:120px 24px;
  border-bottom:1px solid var(--line-dark);
}
/* ---- BANNER FRAMING ----
   To move a banner photo up or down, change the SECOND percentage after 'center'.
   Lower number (e.g. 20%) shows MORE OF THE TOP of the photo.
   Higher number (e.g. 70%) shows MORE OF THE BOTTOM.
   Only edit that one number; leave the rest of the line as is. */
.page-banner.cellar{background:linear-gradient(rgba(38,40,46,0.5), rgba(38,40,46,0.68)), url('images/banner-cellar.jpg'); background-size:cover; background-position:center 42%;}
.page-banner.dine{background:linear-gradient(rgba(38,40,46,0.5), rgba(38,40,46,0.68)), url('images/banner-dine-rotated.jpg'); background-size:cover; background-position:center 50%;}
.page-banner.events{background:linear-gradient(rgba(38,40,46,0.5), rgba(38,40,46,0.68)), url('images/banner-events.jpg'); background-size:cover; background-position:center 55%;}
.page-banner.about{background:linear-gradient(rgba(38,40,46,0.5), rgba(38,40,46,0.68)), url('images/banner-about.jpg'); background-size:cover; background-position:center 71%;}
.split-hero.cellar .split-media{background-image:url('images/split-cellar.jpg'); background-position:center 91%;}
.split-hero.dine .split-media{background-image:url('images/split-dine.jpg');}
.split-hero.events .split-media{background-image:url('images/split-events.jpg'); background-position:center 75%;}
.page-banner h1{
  color:var(--ivory); font-size:clamp(1.7rem, 4vw, 2.5rem); letter-spacing:0.16em; text-transform:uppercase;
}
.page-banner .tagline{color:var(--gold-2); font-style:italic; font-size:1.12rem; margin-top:14px;}

/* ---- SPLIT HERO (for pages whose photos are portrait or square) ----
   Image on one side shown in full (no crop), title panel on the other. */
.split-hero{
  display:grid; grid-template-columns:1fr 1fr; min-height:520px;
  border-bottom:1px solid var(--line-dark);
}
.split-hero .split-media{
  background-size:cover; background-position:center;
}
.split-hero .split-panel{
  background:var(--charcoal-2);
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; padding:70px 48px;
}
.split-hero .split-panel h1{
  color:var(--ivory); font-size:clamp(1.6rem,3vw,2.4rem); letter-spacing:0.16em; text-transform:uppercase;
}
.split-hero .split-panel .tagline{color:var(--gold-2); font-style:italic; font-size:1.12rem; margin-top:16px; max-width:34ch;}
.split-hero.flip .split-media{order:2;}
.split-hero.flip .split-panel{order:1;}
@media(max-width:760px){
  .split-hero{grid-template-columns:1fr; min-height:0;}
  .split-hero .split-media{min-height:360px; order:1 !important;}
  .split-hero .split-panel{order:2 !important; padding:52px 28px;}
}
.photo-note{
  display:block; margin-top:26px;
  font-family:'Cinzel', serif; font-size:0.58rem; letter-spacing:0.22em; text-transform:uppercase;
  color:rgba(255,255,255,0.55);
}

/* ---------- SECTIONS ---------- */
section{padding:90px 0;}
section.dark{background:var(--charcoal);}
section.darker{background:var(--charcoal-2); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);}
section.cream{background:var(--cream); color:var(--ink);}
section h2{font-size:clamp(1.4rem, 3vw, 1.9rem); text-transform:uppercase; letter-spacing:0.14em; color:var(--gold);}
section.cream h2{color:var(--espresso);}
section.cream .eyebrow{color:var(--espresso);}
.lead{max-width:64ch;}
.center{text-align:center;}
.center .lead{margin-left:auto; margin-right:auto;}

.two-col{display:grid; grid-template-columns:1.15fr 0.85fr; gap:70px; align-items:start;}
@media(max-width:860px){.two-col{grid-template-columns:1fr; gap:40px;}}

/* ---------- HOME: HERO ---------- */
.hero-media{
  height:min(64vh, 580px);
  background:
    linear-gradient(rgba(38,40,46,0.15), rgba(38,40,46,0.4)),
    url('images/hero.jpg');
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end; justify-content:center;
}
.hero-panel{
  background:var(--charcoal-2); text-align:center; padding:58px 24px 66px;
  border-bottom:1px solid var(--line-dark);
}
.hero-panel .welcome-line{
  color:var(--gold-2); font-size:clamp(1.1rem, 2.4vw, 1.35rem); font-style:italic; max-width:64ch; margin:0 auto 30px;
}
.hero-panel h1{
  color:var(--ivory); font-size:clamp(1.6rem, 3.6vw, 2.4rem); letter-spacing:0.14em;
  text-transform:uppercase; margin-bottom:26px;
}
.hero-cta{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}

/* ---------- HOME: FEATURE TILES ---------- */
.tile-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line-dark);}
@media(max-width:860px){.tile-grid{grid-template-columns:1fr;}}
.tile{background:var(--charcoal); display:flex; flex-direction:column;}
.tile-media{
  aspect-ratio:4/3;
  background:linear-gradient(160deg, #4A4F58, #33363E);
  background-size:cover; background-position:center;
  border-bottom:1px solid var(--line-dark);
  display:flex; align-items:center; justify-content:center;
}
.tile-media.cellar{background:url('images/tile-cellar.jpg'); background-size:cover; background-position:center;}
.tile-media.dine{background:url('images/tile-dine.jpg'); background-size:cover; background-position:center;}
.tile-media.story{background:url('images/tile-story.jpg'); background-size:cover; background-position:center;}
.tile-media span{
  font-family:'Cinzel',serif; font-size:0.56rem; letter-spacing:0.2em; text-transform:uppercase;
  color:rgba(224,194,123,0.45); text-align:center; padding:10px;
}
.tile-body{padding:34px 30px 40px; flex:1; display:flex; flex-direction:column;}
.tile-body h3{font-size:1rem; color:var(--gold); letter-spacing:0.18em; text-transform:uppercase; margin-bottom:16px;}
.tile-body p{font-size:1rem; margin-bottom:24px; flex:1;}
.tile-body .btn{align-self:flex-start;}

/* ---------- HOURS CARD ---------- */
.hours-card{
  border:1px solid var(--line-dark); padding:34px;
  background:linear-gradient(180deg, rgba(199,162,72,0.06), rgba(199,162,72,0.0));
}
.hours-card .eyebrow{margin-bottom:18px;}
.hours-line{display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid rgba(199,162,72,0.18);}
.hours-line:last-child{border-bottom:none;}
.hours-line span:last-child{color:var(--gold-2);}

/* ---------- LISTS / NOTES ---------- */
.food-list{list-style:none; margin:22px 0 26px;}
.food-list li{padding:12px 0 12px 26px; border-bottom:1px solid rgba(199,162,72,0.16); position:relative;}
.food-list li::before{
  content:''; position:absolute; left:2px; top:50%; transform:translateY(-50%) rotate(45deg);
  width:7px; height:7px; background:var(--gold);
}
section.cream .food-list li{border-bottom-color:var(--line-light);}
section.cream .food-list li::before{background:var(--espresso);}
.note-box{
  border-left:2px solid var(--gold); padding:14px 20px; background:rgba(199,162,72,0.07);
  font-size:0.98rem; font-style:italic; color:var(--gold-2); max-width:58ch;
}
section.cream .note-box{border-left-color:var(--espresso); background:rgba(75,56,44,0.06); color:var(--espresso);}

/* ---------- WINES ---------- */
.wine-table{max-width:640px; margin:40px 0;}
.wine-row{
  display:flex; justify-content:space-between; align-items:baseline; gap:18px;
  padding:18px 0; border-bottom:1px solid var(--line-light);
}
.wine-row:first-child{border-top:1px solid var(--line-light);}
.wine-row .vintage{font-family:'Cinzel', serif; font-size:0.7rem; letter-spacing:0.18em; color:var(--espresso); display:block; margin-bottom:2px;}
.wine-row .name{font-size:1.15rem; font-weight:500;}
.wine-row .dots{flex:1; border-bottom:1px dotted rgba(75,56,44,0.4); transform:translateY(-6px);}
.wine-row .price{font-family:'Cinzel', serif; font-size:0.95rem; color:var(--espresso); white-space:nowrap;}

/* ---------- WINE CLUB ---------- */
.club-panel{background:var(--cream-2); border:1px solid rgba(75,56,44,0.2); padding:44px;}
@media(max-width:640px){.club-panel{padding:28px 22px;}}
.benefit-list{list-style:none; margin:24px 0 30px;}
.benefit-list li{padding:12px 0 12px 30px; position:relative; font-size:1.08rem;}
.benefit-list li::before{
  content:''; position:absolute; left:0; top:50%; transform:translateY(-50%) rotate(45deg);
  width:8px; height:8px; background:var(--espresso);
}
.club-form{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:26px;}
.club-form .full{grid-column:1/-1;}
@media(max-width:560px){.club-form{grid-template-columns:1fr;}}
.club-form input{
  padding:14px 16px; border:1px solid rgba(75,56,44,0.35); background:#FAF7F0;
  font-family:'EB Garamond'; font-size:1rem; color:var(--ink); width:100%;
}
.club-form input:focus{outline:2px solid var(--espresso); outline-offset:1px;}
.club-fineprint{font-size:0.92rem; font-style:italic; color:#5C5347; margin-top:22px; max-width:62ch;}

/* ---------- HOME: CLUB BANNER ---------- */
.club-banner{
  background:
    linear-gradient(rgba(38,40,46,0.78), rgba(38,40,46,0.86)),
    url('images/wine-club.jpg');
  background-size:cover; background-position:center;
  text-align:center; padding:96px 24px;
  border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);
}
.club-banner h2{color:var(--gold); margin-bottom:16px;}
.club-banner p{max-width:56ch; margin:0 auto 30px; color:var(--ivory);}

/* ---------- DINE GRID ---------- */
.dine-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:50px; background:var(--line-dark);}
@media(max-width:860px){.dine-grid{grid-template-columns:1fr;}}
.dine-cell{background:var(--charcoal); padding:38px 30px;}
.dine-cell h3{font-size:0.95rem; color:var(--gold); letter-spacing:0.16em; text-transform:uppercase; margin-bottom:16px;}
.dine-cell p{font-size:1rem; margin-bottom:14px;}
.dine-cell p:last-child{margin-bottom:0;}

/* ---------- PROSE PAGES ---------- */
.prose{max-width:760px; margin:0 auto;}
.prose p{margin-bottom:20px;}
.prose .sign-off{
  font-family:'Cinzel', serif; letter-spacing:0.18em; text-transform:uppercase; font-size:0.85rem;
  color:var(--gold); margin-top:34px; text-align:center;
}
.center-note{text-align:center; font-style:italic; color:var(--gold-2); margin:28px 0;}

/* ---------- SOCIALS ---------- */
.social-icons{display:flex; gap:22px; justify-content:center; margin:30px 0 44px;}
.social-icons a{
  width:52px; height:52px; border:1px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition:background .25s;
}
.social-icons a:hover{background:var(--gold);}
.social-icons svg{width:22px; height:22px; fill:var(--gold); transition:fill .25s;}
.social-icons a:hover svg{fill:var(--charcoal-2);}
.feed-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:8px; max-width:900px; margin:0 auto;}
@media(max-width:760px){.feed-grid{grid-template-columns:repeat(3,1fr);}}
.feed-tile{
  aspect-ratio:1/1; background:linear-gradient(150deg, #3A3D45, #2A2C32);
  border:1px solid rgba(199,162,72,0.2); display:flex; align-items:center; justify-content:center;
}
.feed-tile span{font-family:'Cinzel',serif; font-size:0.55rem; letter-spacing:0.2em; color:rgba(224,194,123,0.5); text-transform:uppercase; text-align:center; padding:8px;}

/* ---------- FOOTER ---------- */
footer.site{
  background:var(--charcoal-2); border-top:1px solid var(--line-dark);
  padding:64px 0 30px;
}
.footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:44px; margin-bottom:54px;
}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr; row-gap:36px;}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr;}}
footer.site .logo-name{margin-bottom:10px; text-align:left;}
.footer-logo{height:90px; width:auto; display:block; margin-bottom:16px;}
footer.site .brand-col p{font-size:0.95rem; color:rgba(237,234,226,0.75); margin-bottom:6px; max-width:32ch;}
footer.site h4{
  font-family:'Cinzel',serif; font-size:0.68rem; letter-spacing:0.24em; text-transform:uppercase;
  color:var(--gold); margin-bottom:18px;
}
footer.site ul{list-style:none;}
footer.site li{margin-bottom:11px; font-size:0.95rem;}
footer.site li a{color:rgba(237,234,226,0.8); transition:color .2s;}
footer.site li a:hover{color:var(--gold-2);}
.footer-bottom{
  border-top:1px solid rgba(199,162,72,0.2); padding-top:26px; text-align:center;
}
.footer-bottom p{font-size:0.82rem; color:rgba(237,234,226,0.5); margin-bottom:8px; max-width:90ch; margin-left:auto; margin-right:auto;}
