:root{
  --ink:#161B17;
  --ivory:#F5F1E8;
  --brass:#8A6D3B;
  --brass-light:#B99A64;
  --moss:#3A4A3E;
  --stone:#C9C2B0;
  --line: rgba(245,241,232,0.16);
  --serif: "Fraunces", Georgia, serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --max: 1240px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  background:var(--ivory);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:-0.01em;}
p{margin:0;line-height:1.6;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 28px;
  font-family:var(--sans);
  font-size:0.85rem;
  letter-spacing:0.06em;
  border-radius:2px;
  cursor:pointer;
  border:1px solid transparent;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
.btn-outline{
  border-color: rgba(245,241,232,0.55);
  color:var(--ivory);
  background:transparent;
}
.btn-outline:hover{background:var(--ivory);color:var(--ink);}
.btn-solid{
  background:var(--brass);
  color:var(--ivory);
}
.btn-solid:hover{background:var(--brass-light);}
.btn-full{width:100%;}
.text-link a{
  margin-bottom:15px;
}
.text-link{
  display:inline-block;
  margin-top:22px;
  font-size:0.95rem;
  border-bottom:1px solid var(--brass);
  padding-bottom:2px;
}

.nav{
  position:fixed;
  top:40px; left:12.0rem; right:0;
  z-index:100;
  width:68%;
  padding:22px 32px;
  transition:background-color .35s ease, padding .35s ease;
}
.nav.scrolled{
  top:20px;
  background:rgba(22, 27, 23, 0.463);
  backdrop-filter:blur(6px);
  padding:14px 32px;
}
.nav-inner{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto;
  align-items:center;
  gap:24px;
}
.nav-links{display:flex;gap:28px;}
.nav-links--right{justify-content:flex-end;}
.nav-links a{
  color:var(--ivory);
  font-weight:800;
  font-size:0.82rem;
  letter-spacing:0.04em;
  white-space:nowrap;
  position:relative;
  padding-bottom:4px;
}
.nav-links a::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:0%;height:1px;
  background:var(--brass-light);
  transition:width .25s ease;
}
.nav-links a:hover::after{width:100%;}
.brand{
  font-family:var(--serif);
  font-size:1.6rem;
  color:var(--ivory);
  text-align:center;
  line-height:1;
  justify-self:center;
}
.brand span{
  display:block;
  font-family:var(--sans);
  font-size:0.55rem;
  letter-spacing:0.32em;
  margin-right:1.0em;
  color:var(--brass-light);
  margin-top:5px;
}
.nav-toggle{display:none;}
.nav-cta{white-space:nowrap;}

@media (max-width: 980px){
  .nav-inner{grid-template-columns:auto 1fr auto;}
  .nav-links--left, .nav-links--right, .nav-cta{display:none;}
  .nav-toggle{
    display:flex;flex-direction:column;gap:5px;
    background:none;border:none;cursor:pointer;padding:6px;
  }
  .nav-toggle span{width:22px;height:1px;background:var(--ivory);}
  .wordmark{font-size:1.3rem;}
}

/* mobile drawer */
.nav-drawer{
  position:fixed;inset:0;
  background:var(--ink);
  z-index:99;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:28px;
  opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.nav-drawer.open{opacity:1;pointer-events:auto;}
.nav-drawer a{color:var(--ivory);font-family:var(--serif);font-size:1.6rem;}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  height:100svh;
  min-height:560px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.hero-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(22,27,23,0.75) 0%, rgba(22,27,23,0.1) 42%, rgba(22,27,23,0.35) 100%);
}
.hero-line{
  position:relative;
  color:var(--ivory);
  font-size:clamp(2.6rem, 7vw, 5.2rem);
  font-weight:300;
  font-style:italic;
  margin-bottom:120px;
  text-align:center;
  padding:0 20px;
}
.hero-line span{
  display:block;
  font-family:var(--serif);
  font-weight:600;
  font-size:1.2rem;
  letter-spacing:0.32em;
  margin-right:1.0em;
  color:white;
  margin-top:5px;
}
.scroll-cue{
  position:absolute;
  left:50%;
  bottom:44px;
  transform:translateX(-50%);
  background:none;border:none;cursor:pointer;
  padding:6px;
}
.scroll-cue-track{
  display:block;
  width:1px;height:52px;
  background:rgba(245,241,232,0.35);
  position:relative;
  overflow:hidden;
}
.scroll-cue-dot{
  position:absolute;
  top:-20%;left:-2px;
  width:5px;height:20px;
  background:var(--brass-light);
  animation:cue-drop 2.2s ease-in-out infinite;
}
@keyframes cue-drop{
  0%{top:-20%;}
  60%{top:90%;}
  100%{top:90%;opacity:0;}
}
.rating-chip{
  position:absolute;
  left:24px; bottom:28px;
  width:240px;
  background:var(--moss);
  color:var(--ivory);
  padding:10px 22px;
  display:flex;
  justify-content:flex-start;
  flex-direction:row;
  align-items:center;
  gap:12px;
  border-radius:100px;
}
.rating-cover{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  width:48px;height:48px;
  z-index:3;
  border-radius:50%;
  background-color:white;
  padding:6px 12px;
  border-radius:100px;
}
.rating-score{
  color:black;
  font-size:1.2rem;
}
.rating-max{font-size:0.75rem;color:black;}
.rating-copy{font-size:0.8rem;line-height:1.4;color:var(--stone);}
.rating-copy small{color:var(--stone);}

/* ---------- Intro ---------- */
.intro{
  max-width:var(--max);
  margin:0 auto;
  padding:120px 32px 90px;
}
.intro-grid{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:48px;
  align-items:start;
}
.eyebrow-serif{
  font-family:var(--serif);
  font-style:italic;
  color:var(--brass);
  font-size:1rem;
  margin:0;
}
.intro h2{
  font-size:clamp(1.6rem, 3vw, 2.4rem);
  line-height:1.35;
  max-width:640px;
}
.intro-copy{
  grid-column:2;
  max-width:520px;
  color:var(--moss);
  font-size:1.02rem;
}
@media (max-width:760px){
  .intro-grid{grid-template-columns:1fr;}
  .intro-copy{grid-column:1;}
}

/* ---------- Rooms rail ---------- */
.rooms{padding:0 0 100px;}
.section-head{
  max-width:var(--max);
  margin:0 auto;
  padding:0 32px 36px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  flex-wrap:wrap;
}
.section-head h2{font-size:clamp(1.6rem,3vw,2.2rem);}
.section-head p{color:var(--moss);max-width:320px;}
.room-rail{
  display:flex;
  gap:80px;
  overflow-x:auto;
  padding:0 32px 12px;
  align-items: center;
  justify-content:center;
  position:relative;
  width:100%;
  scroll-snap-type:x proximity;
  scroll-behavior: smooth;
  scrollbar-width:thin;
}
.room-rail img{
  translate: 50px;
}
.room-rail img:hover{
  transition:3s ease;
}
.room-card{
  flex:0 0 300px;
  scroll-snap-align:start;
}
.room-card img{
  width:100%;height:380px;object-fit:cover;
  border-radius:2px;
}
.room-card-body{padding:16px 2px;}
.room-card-body h3{font-size:1.15rem;margin-bottom:4px;}
.room-card-body p{color:white;font-size:1.2rem;display: flex;
  background-color:black;
  width:40%;
  align-items:center;
  text-align:center;
  height:30px;
  font-size:0.95rem;
  margin-top:6px;
justify-self:flex-end;
justify-content: center;}
.booking-btn{
  margin-top:12px;
  background-color:var(--brass);
  color:var(--ivory);
  border:none;
  padding:8px 16px;
  font-size:1.2rem;
  cursor:pointer;
  width:100%;
  text-align:center;
  transition:background-color .3s ease;
}
.booking-btn:hover{
  background-color:var(--brass);
}
.view-rooms{
  margin-top:24px;
  margin-left:auto;
  margin-right:14%;
  background-color:var(--brass);
  color:var(--ivory);
  display:flex;
  width:200px;
  align-items:center;
  justify-content:center;
  padding:12px 24px;
  font-size:1.2rem;
  cursor:pointer;
  text-align:center;
}

/* ---------- Dine ---------- */
.dine{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  min-height:640px;
}
.dine-media{overflow:hidden;}
.dine-media img{width:100%;height:100%;object-fit:cover;min-height:420px;}
.dine-copy{
  background:var(--ink);
  color:var(--ivory);
  display:flex;flex-direction:column;
  justify-content:center;
  padding:60px;
}
.dine-copy .eyebrow-serif{color:var(--brass-light);}
.dine-copy h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:10px 0 22px;}
.dine-copy p{color:var(--stone);max-width:440px;}
@media (max-width:860px){
  .dine{grid-template-columns:1fr;}
  .dine-media img{min-height:320px;}
  .dine-copy{padding:48px 28px;}
}

/* ---------- Split band (events / spa) ---------- */
.meetings{
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
}
.confrence{position:relative;min-height:460px;width:100%;overflow:hidden;}
.confrence img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(0.55);
}
.confrence-copy{
  position:relative;
  height:100%;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:44px;
  color:var(--ivory);
}
.confrence-copy .eyebrow-serif{color:var(--brass-light);}
.confrence-copy h3{font-size:1.7rem;margin:8px 0 12px;}
.confrence-copy p{max-width:340px;color:var(--stone);font-size:0.92rem;}
@media (max-width:760px){
  .meetings{grid-template-columns:1fr;}
}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--moss);
  color:var(--ivory);
  text-align:center;
  padding:110px 32px;
}
.cta-band h2{font-size:clamp(2rem,4vw,3rem);line-height:1.25;margin-bottom:18px;}
.cta-band p{color:var(--stone);margin-bottom:34px;}

/* ---------- Contact ---------- */
.contact{
  max-width:var(--max);
  margin:0 auto;
  padding:110px 32px;
}
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}
.contact h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:8px 0 20px;}
.contact-detail{color:var(--moss);line-height:1.9;}
.contact-form{
  display:flex;flex-direction:column;gap:16px;
  border:1px solid rgba(22,27,23,0.14);
  padding:32px;
  border-radius:2px;
}
.contact-form label{
  display:flex;flex-direction:column;
  font-size:0.8rem;
  letter-spacing:0.03em;
  color:var(--moss);
  gap:6px;
}
.contact-form input,.contact-form select{
  font-family:var(--sans);
  font-size:0.95rem;
  padding:11px 12px;
  border:1px solid rgba(22,27,23,0.2);
  border-radius:2px;
  background:var(--ivory);
  color:var(--ink);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-note{font-size:0.85rem;color:var(--brass);min-height:1.2em;}
@media (max-width:760px){
  .contact-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}

/* ---------- Footer ---------- */
.footer{
  background:var(--ink);
  color:var(--stone);
  padding:36px 32px;
}
.footer-inner{
  max-width:var(--max);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
}
.wordmark--small{font-size:1.15rem;}
.footer p{font-size:0.8rem;}

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:2px;
}