:root{
  --ink:#241b14;
  --cream:#faf5ec;
  --panel:#fffdf9;
  --maroon:#7c1f2b;
  --maroon-deep:#5c141e;
  --gold:#b3852c;
  --sage:#4d5b47;
  --line: rgba(36,27,20,0.14);
  --radius: 2px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  line-height:1.08;
  letter-spacing:-0.01em;
}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(250,245,236,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 32px;
}
.logo{
  font-family:'Fraunces', serif;
  font-size:22px;
  font-weight:600;
  display:flex; align-items:baseline; gap:8px;
}
.logo em{
  font-style:italic; color:var(--maroon); font-weight:500;
}
.nav-links{display:flex; gap:34px; align-items:center;}
.nav-links a{font-size:14.5px; color:var(--ink); opacity:0.82; transition:opacity .2s;}
.nav-links a:hover{opacity:1;}
.nav-links a.active{opacity:1; border-bottom:1px solid var(--maroon);}
.btn{
  display:inline-block;
  padding:11px 24px;
  background:var(--maroon);
  color:#fff8ef;
  font-size:14px;
  letter-spacing:.01em;
  border-radius:var(--radius);
  border:1px solid var(--maroon);
  transition:background .2s, color .2s;
  cursor:pointer;
}
.btn:hover{background:var(--maroon-deep); border-color:var(--maroon-deep);}
.btn-ghost{
  background:transparent; color:var(--ink); border:1px solid var(--line);
}
.btn-ghost:hover{border-color:var(--ink); background:transparent;}
.menu-toggle{display:none; font-size:24px; background:none; border:none; cursor:pointer;}

@media(max-width:900px){
  .nav-links{display:none;}
  .menu-toggle{display:block;}
}
.nav-links.open{
  display:flex; position:absolute; top:100%; left:0; right:0;
  flex-direction:column; align-items:flex-start; gap:0;
  background:var(--panel); border-bottom:1px solid var(--line);
  padding:8px 32px 20px;
}
.nav-links.open a{padding:12px 0; width:100%; border-bottom:1px solid var(--line);}
.nav-links.open a.btn{width:auto; margin-top:10px; border-bottom:1px solid var(--maroon);}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:92vh;
  display:flex; align-items:flex-end;
  background:
    linear-gradient(180deg, rgba(36,27,20,0.15) 0%, rgba(36,27,20,0.55) 100%),
    url('https://images.unsplash.com/photo-1566073771259-6a8506099945?q=80&w=1800&auto=format&fit=crop') center/cover no-repeat;
}
.hero-inner{
  position:relative;
  padding:70px 0 64px;
  width:100%;
  display:grid;
  grid-template-columns:1.3fr 0.7fr;
  gap:40px;
  align-items:end;
}
.hero-eyebrow{
  color:#f1d9a6;
  font-size:14px;
  letter-spacing:.04em;
  margin-bottom:18px;
}
.hero h1{
  color:#fffaf1;
  font-size:clamp(38px, 5.6vw, 74px);
  max-width:11ch;
}
.hero-sub{
  color:#f4ead9;
  font-size:16.5px;
  max-width:34ch;
  margin-top:22px;
}
.hero-cta{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.hero-numbers{
  background:rgba(250,245,236,0.94);
  padding:28px 26px;
  border-radius:var(--radius);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.stat b{
  font-family:'Fraunces', serif;
  font-size:30px;
  display:block;
  color:var(--maroon);
  font-weight:500;
}
.stat span{font-size:12.5px; letter-spacing:.03em; color:var(--sage); text-transform:uppercase;}
@media(max-width:820px){
  .hero-inner{grid-template-columns:1fr;}
  .hero{min-height:82vh;}
}

/* ---------- Page header (inner pages) ---------- */
.page-header{
  position:relative;
  min-height:46vh;
  display:flex; align-items:flex-end;
  background:
    linear-gradient(180deg, rgba(36,27,20,0.25) 0%, rgba(36,27,20,0.6) 100%),
    var(--page-header-image, url('https://images.unsplash.com/photo-1566073771259-6a8506099945?q=80&w=1800&auto=format&fit=crop')) center/cover no-repeat;
}
.page-header-inner{position:relative; padding:56px 0 48px;}
.page-header .hero-eyebrow{margin-bottom:14px;}
.page-header h1{color:#fffaf1; font-size:clamp(34px,4.6vw,58px); max-width:20ch;}
.page-header p{color:#f4ead9; font-size:16px; max-width:48ch; margin-top:16px;}
.breadcrumb{font-size:13px; color:#f1d9a6; opacity:.9; margin-bottom:22px;}
.breadcrumb a{opacity:.85;}
.breadcrumb a:hover{opacity:1;}

/* ---------- Section shells ---------- */
section{padding:96px 0;}
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:30px; margin-bottom:48px; flex-wrap:wrap;
}
.kicker{
  color:var(--maroon); font-size:14px; font-weight:600; margin-bottom:10px;
}
.section-head h2{font-size:clamp(28px,3.4vw,42px); max-width:14ch;}
.section-head p{max-width:38ch; font-size:15px; opacity:.75; padding-bottom:4px;}

/* ---------- About ---------- */
.about{
  background:var(--panel);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.about-grid{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;
}
.about-grid img{
  border-radius:var(--radius);
  height:460px; width:100%; object-fit:cover;
}
.about p{font-size:16.5px; opacity:.85; margin-bottom:18px; max-width:52ch;}
@media(max-width:820px){
  .about-grid{grid-template-columns:1fr;}
  .about-grid img{height:320px;}
}

/* ---------- About page extras ---------- */
.values-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
@media(max-width:820px){.values-grid{grid-template-columns:1fr;}}
.value-card{
  background:var(--panel); border:1px solid var(--line); padding:32px 28px;
  border-radius:var(--radius);
}
.value-card .kicker{margin-bottom:16px;}
.value-card h3{font-size:20px; margin-bottom:12px;}
.value-card p{font-size:15px; opacity:.8;}

.timeline{border-left:1px solid var(--line); padding-left:36px;}
.timeline-item{position:relative; padding-bottom:40px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{
  content:''; position:absolute; left:-41px; top:4px;
  width:9px; height:9px; border-radius:50%; background:var(--maroon);
}
.timeline-item b{font-family:'Fraunces',serif; color:var(--maroon); font-size:15px; display:block; margin-bottom:6px;}
.timeline-item p{font-size:15.5px; opacity:.82; max-width:56ch;}

/* ---------- Destinations (arch cards) ---------- */
.stay-scroll{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:28px;
}
@media(max-width:980px){.stay-scroll{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.stay-scroll{grid-template-columns:1fr;}}

.stay-card{cursor:pointer;}
.arch{
  position:relative;
  height:280px;
  overflow:hidden;
  border-radius:140px 140px 6px 6px;
  background:#e8ddc9;
}
.arch img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.stay-card:hover .arch img{transform:scale(1.06);}
.stay-meta{padding-top:16px;}
.stay-meta h3{font-size:19px; font-weight:500;}
.stay-meta .loc{
  font-size:13px; color:var(--sage); margin-top:4px; letter-spacing:.02em;
}

/* ---------- Hotels page filters ---------- */
.filter-row{
  display:flex; gap:12px; flex-wrap:wrap; margin-bottom:48px;
}
.filter-chip{
  padding:9px 18px; border:1px solid var(--line); border-radius:20px;
  font-size:13.5px; cursor:pointer; background:var(--panel); transition:.2s;
}
.filter-chip:hover, .filter-chip.active{background:var(--maroon); color:#fff8ef; border-color:var(--maroon);}

/* ---------- Offers ---------- */
.offers{background:var(--maroon-deep); color:#fbf1e2;}
.offers .kicker{color:#f1c98a;}
.offers .section-head p{color:#e9d9c0; opacity:.85;}
.offer-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
  background:rgba(251,241,226,0.16);
}
@media(max-width:820px){.offer-grid{grid-template-columns:1fr;}}
.offer-card{
  background:var(--maroon-deep);
  padding:38px 32px;
  min-height:230px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.offer-tag{font-size:12.5px; letter-spacing:.05em; color:#f1c98a; margin-bottom:14px;}
.offer-card h3{font-size:24px; color:#fffaf1; max-width:16ch;}
.offer-card a{
  font-size:14px; color:#f1c98a; margin-top:20px; display:inline-block;
  border-bottom:1px solid rgba(241,201,138,0.5);
}

/* Offers page: extra fine-print block */
.offers-note{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 32px; margin-top:8px;
}
.offers-note h4{font-size:15px; margin-bottom:10px;}
.offers-note p{font-size:14px; opacity:.75; max-width:64ch;}

/* ---------- Dining ---------- */
.dining-grid{
  display:grid; grid-template-columns:1.1fr 0.9fr 0.9fr; gap:20px; margin-top:48px;
}
.dining-grid img{height:340px; width:100%; object-fit:cover; border-radius:var(--radius);}
.dining-grid > div:first-child img{height:340px;}
@media(max-width:820px){
  .dining-grid{grid-template-columns:1fr;}
  .dining-grid img{height:260px;}
}

/* Dining page: menu list */
.menu-list{display:grid; grid-template-columns:1fr 1fr; gap:0 60px;}
@media(max-width:820px){.menu-list{grid-template-columns:1fr;}}
.menu-item{
  display:flex; justify-content:space-between; gap:20px;
  padding:20px 0; border-bottom:1px solid var(--line);
}
.menu-item h4{font-size:16.5px; font-weight:500; margin-bottom:4px;}
.menu-item p{font-size:13.5px; opacity:.7; max-width:38ch;}
.menu-item .price{font-family:'Fraunces',serif; color:var(--maroon); font-size:15px; white-space:nowrap;}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--panel);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  text-align:center;
  padding:100px 0;
}
.cta-band h2{font-size:clamp(30px,4vw,50px); max-width:20ch; margin:0 auto 28px;}
.cta-band .btn{padding:14px 32px; font-size:15px;}

/* ---------- Contact page ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{
  background:var(--panel); border:1px solid var(--line); padding:28px 26px;
  border-radius:var(--radius); margin-bottom:20px;
}
.contact-card h4{font-size:14px; letter-spacing:.02em; color:var(--maroon); margin-bottom:10px;}
.contact-card p, .contact-card a{font-size:15px; opacity:.85; display:block; margin-bottom:4px;}
.field-group{margin-bottom:20px;}
.field-group label{display:block; font-size:13.5px; margin-bottom:8px; opacity:.8;}
.field-group input, .field-group textarea, .field-group select{
  width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--panel);
  font-family:'Inter',sans-serif; font-size:14.5px; border-radius:var(--radius); color:var(--ink);
}
.field-group textarea{min-height:120px; resize:vertical;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:560px){.field-row{grid-template-columns:1fr;}}

/* ---------- Footer ---------- */
footer{background:var(--ink); color:#e9e1d3; padding:72px 0 30px;}
.foot-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;
  padding-bottom:50px; border-bottom:1px solid rgba(233,225,211,0.15);
}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr;}}
.foot-logo{font-family:'Fraunces',serif; font-size:22px; color:#faf5ec; margin-bottom:16px;}
.foot-grid p{font-size:14px; opacity:.7; max-width:32ch;}
.foot-col h4{font-size:13px; letter-spacing:.04em; color:#c8a35e; margin-bottom:18px; font-weight:600;}
.foot-col a{display:block; font-size:14.5px; opacity:.8; margin-bottom:11px;}
.foot-col a:hover{opacity:1;}
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:26px; font-size:13px; opacity:.55; flex-wrap:wrap; gap:12px;
}
