@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Work+Sans:wght@400;500;600&display=swap');

:root{
  --cream:#F3EEE3;
  --paper:#FAF7F1;
  --pine:#2E3D33;
  --pine-dark:#1E2921;
  --slate:#48586A;
  --wine:#7C2C34;
  --wine-dark:#5E2129;
  --wood:#A9773F;
  --ink:#211D17;
  --line:rgba(33,29,23,0.14);
  --radius:2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-size:16px;
  line-height:1.6;
}
img{max-width:100%;display:block;}
a{color:inherit;}

h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  line-height:1.08;
  margin:0;
  color:var(--pine-dark);
}

.wrap{
  max-width:1080px;
  margin:0 auto;
  padding:0 28px;
}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-top:16px;
  padding-bottom:16px;
}
.brand{
  display:flex;
  align-items:baseline;
  gap:10px;
  text-decoration:none;
}
.brand-mark{
  font-family:'Fraunces', serif;
  font-size:1.3rem;
  color:var(--pine-dark);
  letter-spacing:0.01em;
}
.brand-sub{
  display:none;
  font-size:0.72rem;
  color:var(--slate);
  letter-spacing:0.03em;
}
@media(min-width:640px){
  .brand-sub{display:inline;}
}

nav.main-nav{
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
}
nav.main-nav a{
  text-decoration:none;
  font-size:0.92rem;
  color:var(--ink);
  padding:6px 0;
  border-bottom:2px solid transparent;
}
nav.main-nav a:hover,
nav.main-nav a.active{
  border-bottom-color:var(--wood);
}

.lang-switch{
  display:flex;
  gap:6px;
  margin-left:8px;
}
.lang-switch button{
  font-family:'Work Sans', sans-serif;
  font-size:0.78rem;
  background:none;
  border:1px solid var(--line);
  color:var(--slate);
  padding:4px 8px;
  border-radius:var(--radius);
  cursor:pointer;
}
.lang-switch button.active{
  background:var(--pine-dark);
  color:var(--paper);
  border-color:var(--pine-dark);
}

.header-row{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  width:100%;
  justify-content:space-between;
}

/* Hero */
.hero{
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  background:var(--pine-dark);
  color:var(--paper);
  overflow:hidden;
}
@media(min-width:860px){
  .hero{grid-template-columns:1.05fr 1fr;min-height:520px;}
}
.hero-media{
  position:relative;
  min-height:280px;
}
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:280px;
}
.hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:48px 28px;
  gap:18px;
}
.hero-eyebrow{
  font-size:0.82rem;
  color:#C9B79A;
  letter-spacing:0.02em;
}
.hero h1{
  color:var(--paper);
  font-size:clamp(2.2rem,5vw,3.4rem);
}
.hero p{
  max-width:38em;
  color:#E7E0D2;
  font-size:1.05rem;
}
.hero-actions{
  margin-top:8px;
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.btn{
  display:inline-block;
  text-decoration:none;
  font-size:0.95rem;
  padding:12px 22px;
  border-radius:var(--radius);
  border:1px solid transparent;
}
.btn-primary{
  background:var(--wine);
  color:var(--paper);
}
.btn-primary:hover{background:var(--wine-dark);}
.btn-ghost{
  border-color:rgba(250,247,241,0.5);
  color:var(--paper);
}
.btn-ghost:hover{border-color:var(--paper);}

/* Sections */
section{
  padding:64px 0;
}
section.tight{padding:44px 0;}
.section-head{
  max-width:44em;
  margin-bottom:36px;
}
.section-head .kicker{
  color:var(--wood);
  font-size:0.85rem;
  margin-bottom:8px;
  display:block;
}
.section-head h2{
  font-size:clamp(1.6rem,3vw,2.2rem);
  margin-bottom:12px;
}
.section-head p{
  color:var(--slate);
  margin:0;
}

.divider{
  border:none;
  border-top:1px solid var(--line);
  margin:0;
}

/* Intro two-col */
.intro-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
}
@media(min-width:800px){
  .intro-grid{grid-template-columns:1fr 1fr;}
}
.intro-grid p{margin:0 0 16px 0;}
.intro-grid p:last-child{margin-bottom:0;}

/* Highlights */
.highlights{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
@media(min-width:760px){
  .highlights{grid-template-columns:repeat(4,1fr);}
}
.highlight{
  background:var(--paper);
  padding:26px 22px;
}
.highlight .num{
  font-family:'Fraunces', serif;
  font-size:1.5rem;
  color:var(--pine-dark);
  display:block;
  margin-bottom:6px;
}
.highlight .sub{
  color:var(--slate);
  font-size:0.88rem;
}

/* Gallery */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}
@media(min-width:640px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
}
figure{margin:0;}
.gallery-grid figure img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:var(--radius);
}
.gallery-grid figcaption{
  margin-top:8px;
  font-size:0.85rem;
  color:var(--slate);
}
.gallery-grid .tall img{height:340px;}
@media(min-width:640px){
  .gallery-grid .span-2{grid-column:span 2;}
}

/* Amenities */
.amenities-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border-top:1px solid var(--line);
}
@media(min-width:760px){
  .amenities-grid{grid-template-columns:1fr 1fr;}
}
.amenity-block{
  padding:28px 0;
  border-bottom:1px solid var(--line);
}
@media(min-width:760px){
  .amenity-block{padding:28px 32px 28px 0;}
  .amenity-block:nth-child(even){padding-left:32px;padding-right:0;border-left:1px solid var(--line);}
}
.amenity-block h3{
  font-size:1.15rem;
  margin-bottom:14px;
}
.amenity-block ul{
  margin:0;
  padding:0;
  list-style:none;
}
.amenity-block li{
  padding:7px 0;
  border-top:1px solid var(--line);
  color:var(--ink);
  font-size:0.95rem;
}
.amenity-block li:first-child{border-top:none;}

.times-row{
  display:flex;
  flex-wrap:wrap;
  gap:32px;
  margin-top:8px;
}
.times-row div{
  font-family:'Fraunces', serif;
  font-size:1.05rem;
  color:var(--pine-dark);
}
.times-row span{
  display:block;
  font-family:'Work Sans', sans-serif;
  font-size:0.8rem;
  color:var(--slate);
  margin-bottom:4px;
}

/* Region */
.distance-list{
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
}
.distance-list li{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  font-size:0.96rem;
}
.distance-list li span:last-child{
  color:var(--slate);
  white-space:nowrap;
}

.seasons{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}
@media(min-width:760px){
  .seasons{grid-template-columns:1fr 1fr;}
}
.season-card{
  background:var(--paper);
  border:1px solid var(--line);
  padding:26px;
}
.season-card h3{
  font-size:1.1rem;
  margin-bottom:10px;
}
.season-card p{margin:0;color:var(--ink);}

/* CTA band */
.cta-band{
  background:var(--pine-dark);
  color:var(--paper);
}
.cta-band .wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:44px 28px;
}
.cta-band h2{
  color:var(--paper);
  font-size:1.6rem;
}
.cta-band p{
  color:#D9D0BE;
  margin:6px 0 0 0;
}

/* Footer */
footer{
  background:var(--paper);
  border-top:1px solid var(--line);
  padding:32px 0;
  font-size:0.85rem;
  color:var(--slate);
}
footer .wrap{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}

:focus-visible{
  outline:2px solid var(--wine);
  outline-offset:2px;
}
