/* ==========================================================================
   Malhar Bhoomi - The Green Pavilion
   Shared stylesheet for index.html + availability.html
   ========================================================================== */

:root{
  --ivory:#FAF6EC;
  --ivory-2:#F1EADA;
  --pine:#1E3628;
  --pine-2:#16281D;
  --moss:#5C7A5E;
  --gold:#C9A45C;          /* retuned to the logo gold */
  --brown:#6B5744;         /* logo wordmark brown */
  --terracotta:#A85B3D;
  --ink:#1B2A20;
  --line: rgba(30,54,40,0.14);
  --radius: 2px;
}
*{box-sizing:border-box;}
[hidden]{display:none !important;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  margin:0;
  color:var(--pine);
  letter-spacing:0.01em;
}
.eyebrow{
  font-family:'Jost', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.22em;
  font-size:16px;
  font-weight:500;
  color:var(--gold);
}
a{color:inherit;}
img{display:block;max-width:100%;}

/* ---------- signature vine divider ---------- */
.vine{
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  max-width:280px;
}
.vine svg{flex:0 0 auto;}
.vine.center{margin-left:auto;margin-right:auto;}

/* ---------- nav ---------- */
header.nav{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 6vw;
  background:rgba(250,246,236,0.92);
  backdrop-filter: blur(6px);
  border-bottom:1px solid var(--line);
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:'Cormorant Garamond', serif;
  font-size:26px;
  color:var(--pine);
  text-decoration:none;
}
.brand img{height:38px;width:auto;flex:0 0 auto;}
nav.links{
  display:flex;
  gap:36px;
  font-size:18px;
  letter-spacing:0.03em;
}
nav.links a{
  text-decoration:none;
  color:var(--ink);
  position:relative;
  padding-bottom:4px;
}
nav.links a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0%;
  height:1px;
  background:var(--gold);
  transition:width .3s ease;
}
nav.links a:hover::after{width:100%;}
.btn{
  display:inline-block;
  padding:12px 26px;
  border:1px solid var(--pine);
  color:var(--pine);
  background:transparent;
  cursor:pointer;
  text-decoration:none;
  font-family:'Jost', sans-serif;
  font-size:17px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  border-radius:var(--radius);
  transition:background .25s ease, color .25s ease;
}
.btn:hover{background:var(--pine); color:var(--ivory);}
.btn.solid{
  background:var(--pine);
  color:var(--ivory);
  border:1px solid var(--pine);
}
.btn.solid:hover{background:var(--pine-2);}
.btn.gold{
  border:1px solid var(--gold);
  color:var(--brown);
}
.btn.gold:hover{background:var(--gold); color:var(--pine-2);}
.btn:disabled{opacity:0.4; cursor:not-allowed;}
.btn:disabled:hover{background:transparent; color:var(--pine);}

@media(max-width:860px){
  nav.links{display:none;}
}
/* compact nav on phones: keep brand + button on one line, no overlap */
@media(max-width:600px){
  header.nav{padding:12px 3vw; gap:10px;}
  .brand{font-size:18px; gap:7px; white-space:nowrap;}
  .brand img{height:26px;}
  header.nav .btn{padding:8px 10px; font-size:12px; letter-spacing:0.03em; white-space:nowrap;}
  section{padding:72px 5vw;}
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  height:92vh;
  min-height:560px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  padding:0;
}
.hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(1.02);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(20,36,25,0.05) 0%, rgba(16,28,19,0.55) 78%, rgba(16,28,19,0.78) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  color:var(--ivory);
  padding:0 6vw 64px;
  max-width:900px;
}
.hero-content .eyebrow{color:var(--gold); margin-bottom:18px; display:block;}
.hero-content h1{
  color:var(--ivory);
  font-size:clamp(46px, 6.4vw, 96px);
  line-height:1.02;
  font-style:italic;
  font-weight:500;
}
.hero-content p{
  font-size:21px;
  max-width:520px;
  margin:22px 0 32px;
  color:rgba(250,246,236,0.86);
  line-height:1.6;
}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
.hero-stats{
  position:absolute;
  right:6vw;
  bottom:64px;
  z-index:2;
  display:flex;
  gap:44px;
}
.hero-stats div{text-align:right;}
.hero-stats .num{
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-size:38px;
  color:var(--ivory);
}
.hero-stats .lbl{
  display:block;
  font-size:15px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(250,246,236,0.7);
}
/* hidden wherever they would collide with the hero copy/buttons
   (bottom-left content + bottom-right stats need ~1160px to coexist) */
@media(max-width:1180px){ .hero-stats{display:none;} }

/* ---------- section shell ---------- */
section{padding:110px 6vw;}
.section-head{
  max-width:640px;
  margin:0 auto 64px;
  text-align:center;
}
.section-head .eyebrow{display:block; margin-bottom:16px;}
.section-head h2{
  font-size:clamp(34px, 3.6vw, 50px);
  font-style:italic;
}
.section-head p{
  margin-top:18px;
  color:var(--moss);
  font-size:19px;
  line-height:1.7;
}

/* ---------- intro strip ---------- */
.intro{
  background:var(--ivory);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.intro .tag{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:clamp(30px, 3vw, 42px);
  color:var(--pine);
  line-height:1.35;
}
.intro .tag .gold-word{color:var(--gold);}
.intro-copy p{
  color:#3E4F41;
  font-size:19px;
  line-height:1.8;
  margin:0 0 22px;
}
.intro-copy .meta{
  display:flex;
  gap:40px;
  margin-top:34px;
}
.intro-copy .meta div .num{
  font-family:'Cormorant Garamond', serif;
  font-size:34px;
  color:var(--pine);
  display:block;
}
.intro-copy .meta div .lbl{
  font-size:15px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--moss);
}
@media(max-width:860px){
  .intro{grid-template-columns:1fr; gap:36px;}
}

/* ---------- spaces grid ---------- */
.spaces{background:var(--ivory-2);}
.space-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:28px;
  max-width:1240px;
  margin:0 auto;
}
.space-card{
  flex:1 1 320px;
  max-width:390px;
  background:var(--ivory);
  border:1px solid var(--line);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.space-card .thumb{
  position:relative;
  overflow:hidden;          /* contains the hover zoom */
  aspect-ratio:900/1478;    /* uniform block, matched to the photo set */
}
.space-card .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;         /* absorbs the small ratio differences */
  transition:transform .6s ease;
}
.space-card:hover .thumb img{transform:scale(1.06);}
.space-card .thumb .cap{
  position:absolute;
  left:16px; bottom:16px;
  background:rgba(20,36,25,0.72);
  color:var(--ivory);
  font-size:15px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:7px 12px;
}
.space-card .body{padding:26px 26px 30px; display:flex; flex-direction:column; flex:1;}
.space-card h3{font-size:28px; font-style:italic;}
.space-card p{
  font-size:18px;
  line-height:1.7;
  color:#4A5A4C;
  margin:12px 0 18px;
}
.space-card .specs{
  display:flex;
  gap:18px;
  font-size:16px;
  color:var(--moss);
  letter-spacing:0.02em;
  border-top:1px solid var(--line);
  padding-top:16px;
}
.space-card .space-tag{
  margin:0;
  margin-top:auto;          /* keep the tagline pinned to the card foot */
  border-top:1px solid var(--line);
  padding-top:16px;
  font-size:16px;
  font-style:italic;
  color:var(--gold);
  letter-spacing:0.01em;
}
@media(max-width:980px){
  .space-card{flex-basis:100%; max-width:460px;}
}

/* ---------- amenities ---------- */
.amenities{
  background:var(--pine);
  color:var(--ivory);
}
.amenities .section-head h2, .amenities .section-head .eyebrow{color:var(--ivory);}
.amenities .section-head .eyebrow{color:var(--gold);}
.amenities .section-head p{color:rgba(250,246,236,0.68);}
.amen-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  background:rgba(250,246,236,0.14);
  max-width:1180px;
  margin:0 auto;
}
.amen-item{
  background:var(--pine);
  padding:38px 28px;
  text-align:center;
}
.amen-item svg{margin:0 auto 18px;}
.amen-item h4{
  font-family:'Cormorant Garamond', serif;
  font-size:23px;
  font-weight:500;
  color:var(--ivory);
  margin-bottom:8px;
}
.amen-item p{
  font-size:17px;
  color:rgba(250,246,236,0.62);
  line-height:1.6;
  margin:0;
}
@media(max-width:860px){
  .amen-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:520px){
  .amen-grid{grid-template-columns:1fr;}
}

/* ---------- gallery strip ---------- */
.gallery{
  background:var(--ivory);
  padding-bottom:0;
}
.gallery-strip{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:22px;
  max-width:1240px;
  margin:0 auto;
}
.gallery-strip img{
  width:100%;
  height:420px;
  object-fit:cover;
}
.gallery-strip .col{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.gallery-strip .col img{height:199px;}
@media(max-width:860px){
  .gallery-strip{grid-template-columns:1fr;}
  .gallery-strip img, .gallery-strip .col img{height:260px;}
}

/* ---------- enquiry / CTA ---------- */
.cta{
  background:var(--ivory-2);
  position:relative;
}
.cta-inner{
  max-width:900px;
  margin:0 auto;
  text-align:center;
}
.cta h2{
  font-size:clamp(36px, 4.4vw, 58px);
  font-style:italic;
}
.cta p{
  max-width:480px;
  margin:20px auto 36px;
  color:var(--moss);
  font-size:19px;
  line-height:1.7;
}
.cta-actions{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}

/* ---------- footer ---------- */
footer{
  background:var(--pine-2);
  color:rgba(250,246,236,0.7);
  padding:64px 6vw 30px;
}
.foot-top{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:40px;
  padding-bottom:44px;
  border-bottom:1px solid rgba(250,246,236,0.14);
}
.foot-brand{
  font-family:'Cormorant Garamond', serif;
  font-size:28px;
  color:var(--ivory);
  max-width:280px;
}
.foot-brand img{height:34px;width:auto;margin-bottom:14px;}
.foot-brand p{
  font-family:'Jost', sans-serif;
  font-size:17px;
  color:rgba(250,246,236,0.55);
  margin-top:14px;
  line-height:1.7;
}
.foot-cols{display:flex; gap:64px; flex-wrap:wrap;}
.foot-col .eyebrow{color:var(--gold); margin-bottom:16px; display:block;}
.foot-col a, .foot-col span{
  display:block;
  font-size:17.5px;
  color:rgba(250,246,236,0.68);
  text-decoration:none;
  margin-bottom:10px;
}
.foot-col a:hover{color:var(--ivory);}
.foot-bottom{
  display:flex;
  justify-content:space-between;
  padding-top:26px;
  font-size:16px;
  color:rgba(250,246,236,0.4);
  flex-wrap:wrap;
  gap:10px;
}

::selection{background:var(--gold); color:var(--pine-2);}

/* ==========================================================================
   Availability request page
   ========================================================================== */

.page-head{
  background:var(--pine);
  color:var(--ivory);
  padding:72px 6vw 60px;
  text-align:center;
}
.page-head .eyebrow{color:var(--gold); display:block; margin-bottom:16px;}
.page-head h1{
  color:var(--ivory);
  font-size:clamp(38px, 5vw, 62px);
  font-style:italic;
}
.page-head p{
  margin:18px auto 0;
  max-width:520px;
  color:rgba(250,246,236,0.72);
  font-size:19px;
  line-height:1.7;
}

.availability{
  display:grid;
  grid-template-columns:1fr 340px;
  gap:56px;
  max-width:1180px;
  margin:0 auto;
  padding:80px 6vw 110px;
  align-items:start;
}
.availability > *{min-width:0;}  /* let the 1fr column shrink below content min-width on phones */
@media(max-width:960px){
  .availability{grid-template-columns:1fr; gap:40px;}
}

/* ---- steps ---- */
.step{
  border-top:1px solid var(--line);
  padding:38px 0;
}
.step:first-child{border-top:0; padding-top:0;}
.step[hidden]{display:none;}
.step-label{
  display:flex;
  align-items:baseline;
  gap:14px;
  margin-bottom:22px;
}
.step-label .num{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:26px;
  color:var(--gold);
}
.step-label h2{font-size:clamp(26px, 2.6vw, 34px); font-style:italic;}

/* ---- choice buttons (purpose + space) ---- */
.choice-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}
.choice{
  flex:1 1 220px;
  text-align:left;
  padding:20px 22px;
  border:0;
  background:var(--ivory);
  border-radius:16px;
  box-shadow:inset 0 0 0 1px rgba(30,54,40,0.14), 0 1px 3px rgba(30,54,40,0.05);
  cursor:pointer;
  font-family:'Jost', sans-serif;
  transition:box-shadow .2s ease, background .2s ease, color .2s ease;
}
.choice:hover{box-shadow:inset 0 0 0 1px var(--gold), 0 2px 10px rgba(30,54,40,0.08);}
.choice .t{
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-size:24px;
  font-style:italic;
  color:var(--pine);
  margin-bottom:4px;
  transition:color .2s ease;
}
.choice .d{
  display:block;
  font-size:16.5px;
  color:var(--moss);
  line-height:1.5;
  transition:color .2s ease;
}
.choice[aria-pressed="true"]{
  background:var(--pine);
  box-shadow:0 6px 20px rgba(30,54,40,0.22), inset 0 0 0 1px var(--pine);
}
.choice[aria-pressed="true"] .t{color:var(--ivory);}
.choice[aria-pressed="true"] .d{color:rgba(250,246,236,0.72);}
.hint{
  margin:14px 0 0;
  font-size:17px;
  font-style:italic;
  color:var(--terracotta);
}
.hint[hidden]{display:none;}

/* ---- date & time ---- */
.datetime{
  display:flex;
  flex-wrap:wrap;
  gap:36px;
}

.calendar{
  width:100%;
  max-width:328px;
  border:0;
  background:var(--ivory);
  padding:22px;
  border-radius:24px;
  box-shadow:
    0 10px 34px rgba(30,54,40,0.12),
    0 2px 8px rgba(30,54,40,0.06),
    inset 0 0 0 1px rgba(30,54,40,0.05);
}
.cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
}
.cal-head .m{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:23px;
  color:var(--pine);
}
.cal-nav{
  border:0;
  background:var(--ivory);
  width:32px;height:32px;
  cursor:pointer;
  border-radius:50%;
  color:var(--pine);
  font-size:18px;
  line-height:1;
  box-shadow:0 2px 8px rgba(30,54,40,0.12), inset 0 0 0 1px rgba(30,54,40,0.06);
  transition:box-shadow .2s ease, transform .1s ease;
}
.cal-nav:hover:not(:disabled){box-shadow:0 3px 12px rgba(30,54,40,0.18), inset 0 0 0 1px rgba(30,54,40,0.06);}
.cal-nav:active:not(:disabled){transform:translateY(1px);}
.cal-nav:disabled{opacity:0.3; cursor:not-allowed;}
.cal-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:3px;
}
.cal-grid .dow{
  text-align:center;
  font-size:14.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--moss);
  padding:6px 0 10px;
}
.cal-grid button{
  border:0;
  background:transparent;
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Jost', sans-serif;
  font-size:17px;
  color:var(--ink);
  cursor:pointer;
  border-radius:50%;
  transition:background .18s ease, box-shadow .18s ease, color .18s ease;
}
.cal-grid button:hover:not(:disabled):not(.selected){
  background:var(--ivory-2);
  box-shadow:inset 0 0 0 1px rgba(30,54,40,0.12);
}
.cal-grid button:disabled{color:rgba(27,42,32,0.25); cursor:not-allowed;}
.cal-grid button.selected{
  background:var(--pine);
  color:var(--ivory);
  box-shadow:0 4px 14px rgba(30,54,40,0.28);
}
.cal-grid .pad{visibility:hidden;}

/* ---- wheel pickers ---- */
.wheel-group{margin-bottom:22px;}
.wheel-group > .lbl{
  display:block;
  font-size:14.5px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--moss);
  margin-bottom:8px;
}
.wheel-set{display:flex; gap:12px; align-items:flex-start;}
.wheel-set--unit{align-items:center;}
.wheel-unit{
  align-self:center;
  font-family:'Cormorant Garamond', serif;
  font-size:20px;
  color:var(--moss);
  padding-top:2px;
}
.wheel{
  width:64px;
  text-align:center;
  position:relative;
}
.wheel--wide{width:172px;}
.wheel-range{
  display:block;
  margin-top:12px;
  font-size:15px;
  font-style:italic;
  color:var(--moss);
}
/* soft halo behind the wheel - sits over the viewport (arrow height 24 above it) */
.wheel::before{
  content:"";
  position:absolute;
  left:0; right:0;
  top:24px;
  height:108px;               /* 3 rows * 36px */
  border-radius:18px;
  background:var(--ivory);
  box-shadow:
    0 8px 26px rgba(30,54,40,0.12),
    0 2px 6px rgba(30,54,40,0.06),
    inset 0 0 0 1px rgba(30,54,40,0.05);
  z-index:0;
}
/* highlighted selected row */
.wheel::after{
  content:"";
  position:absolute;
  left:5px; right:5px;
  top:60px;                   /* arrow(24) + one blank row(36) */
  height:36px;
  border-radius:12px;
  background:var(--pine);
  box-shadow:0 4px 12px rgba(30,54,40,0.28);
  z-index:1;
  pointer-events:none;
}
.wheel .arrow{
  position:relative;
  z-index:3;
  width:100%;
  border:0;
  background:transparent;
  color:var(--moss);
  height:24px;
  cursor:pointer;
  font-size:15px;
  line-height:1;
  transition:color .15s ease;
}
.wheel .arrow:hover{color:var(--pine);}
.wheel .viewport{
  position:relative;
  z-index:2;
  height:108px;              /* 3 rows * 36px */
  overflow-y:scroll;
  scroll-snap-type:y mandatory;
  scrollbar-width:none;
  background:transparent;
}
.wheel .viewport::-webkit-scrollbar{display:none;}
.wheel .track{padding:36px 0;}   /* one blank row top & bottom so first/last can centre */
.wheel .cell{
  height:36px;
  line-height:36px;
  scroll-snap-align:center;
  font-family:'Cormorant Garamond', serif;
  font-size:25px;
  color:rgba(27,42,32,0.4);
  transition:color .15s ease, font-size .15s ease;
  user-select:none;
}
.wheel .cell.active{color:var(--ivory); font-size:29px;}
.wheel .cell input{
  width:52px;
  text-align:center;
  font-family:'Cormorant Garamond', serif;
  font-size:25px;
  border:0;
  background:var(--ivory);
  color:var(--pine);
  border-radius:8px;
  box-shadow:inset 0 0 0 1.5px var(--gold);
  outline:0;
}

/* ---- book button + notice ---- */
.book-block{margin-top:10px;}
.book-note{
  margin:16px 0 0;
  font-weight:600;
  font-style:italic;
  color:var(--pine);
  font-size:14px;
}

/* ---- details form ---- */
.field{margin-bottom:20px;}
.field label{
  display:block;
  font-size:16px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--moss);
  margin-bottom:8px;
}
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field select{
  width:100%;
  max-width:420px;
  padding:13px 16px;
  border:0;
  background:var(--ivory);
  border-radius:12px;
  box-shadow:inset 0 0 0 1px rgba(30,54,40,0.14), 0 1px 3px rgba(30,54,40,0.05);
  font-family:'Jost', sans-serif;
  font-size:18px;
  color:var(--ink);
  transition:box-shadow .18s ease;
}
.field input:focus,
.field select:focus{
  outline:0;
  box-shadow:inset 0 0 0 1.5px var(--gold), 0 2px 10px rgba(30,54,40,0.10);
}
.field select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:42px;
  cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%231E3628' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  background-size:12px 8px;
}
.field .sub{
  margin:6px 0 0;
  font-size:16px;
  color:var(--moss);
}

.otp-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.otp-row input{max-width:160px; letter-spacing:0.3em;}
.otp-status{font-size:17px; font-style:italic;}
.otp-status.ok{color:var(--moss);}
.otp-status.err{color:var(--terracotta);}

.summary-out{
  margin-top:24px;
  padding:22px;
  border:1px solid var(--pine);
  background:var(--ivory-2);
  border-radius:var(--radius);
}
.summary-out[hidden]{display:none;}
.summary-out h3{font-style:italic; margin-bottom:12px; font-size:26px;}
.summary-out dl{display:grid; grid-template-columns:auto 1fr; gap:6px 18px; margin:0; font-size:18px;}
.summary-out dt{color:var(--moss); text-transform:uppercase; font-size:15px; letter-spacing:0.08em; align-self:center;}
.summary-out dd{margin:0; overflow-wrap:anywhere;}  /* long emails can't push the layout */

/* ---- our-details rail ---- */
.rail{
  border:1px solid var(--line);
  background:var(--ivory);
  border-radius:var(--radius);
  padding:28px;
  position:sticky;
  top:96px;
}
.rail h3{font-style:italic; font-size:26px; margin-bottom:18px;}
.rail .eyebrow{display:block; margin:18px 0 6px;}
.rail p, .rail a{
  font-size:17.5px;
  line-height:1.7;
  color:#3E4F41;
  text-decoration:none;
  margin:0;
}
.rail a:hover{color:var(--pine);}
.rail .map{
  margin-top:18px;
  width:100%;
  height:180px;
  border:0;
  border-radius:14px;
  box-shadow:0 4px 16px rgba(30,54,40,0.12), inset 0 0 0 1px rgba(30,54,40,0.06);
}
.rail .map-link{
  display:inline-block;
  margin-top:12px;
  font-size:16.5px;
  color:var(--gold);
  letter-spacing:0.02em;
}
.rail .map-link:hover{color:var(--pine);}
@media(max-width:960px){
  .rail{position:static;}
}

/* ======================================================================
   WordPress theme and expanded site
   ====================================================================== */
:root{
  --cream:#f9f5e9;
  --sage:#d8dfca;
  --shadow:0 20px 50px rgba(24,48,34,.12);
}
body{background:var(--cream);}
.skip-link{position:absolute;left:10px;top:-100px;z-index:1000;background:var(--pine);color:var(--ivory);padding:12px 18px;}
.skip-link:focus{top:10px;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
header.nav{padding:14px 4vw;background:rgba(249,245,233,.97);gap:28px;}
.brand{font-size:25px;line-height:1.05;min-width:max-content;}
.brand span{display:block;}
.brand small{display:block;font-family:'Jost',sans-serif;font-size:10px;line-height:1.5;letter-spacing:.21em;text-transform:uppercase;color:var(--moss);margin-top:3px;}
nav.links{font-size:14px;letter-spacing:.08em;text-transform:uppercase;gap:22px;align-items:center;}
nav.links .menu{list-style:none;display:flex;align-items:center;gap:22px;margin:0;padding:0;}
nav.links a{white-space:nowrap;}
.nav-cta{font-size:13px;white-space:nowrap;padding:11px 16px;}
.nav-cta span{font-size:17px;vertical-align:-1px;margin-left:5px;}
.mobile-menu{display:none;}
.hero{min-height:650px;height:min(880px,92vh);}
.hero::after{background:linear-gradient(90deg,rgba(11,30,19,.76),rgba(11,30,19,.25) 70%),linear-gradient(0deg,rgba(11,30,19,.43),transparent 55%);}
.hero-content{padding:0 6vw 90px;max-width:800px;}
.hero-content h1{max-width:740px;font-size:clamp(58px,7.5vw,112px);line-height:.95;}
.hero-content p{font-size:20px;max-width:570px;}
.hero::before{content:"";position:absolute;z-index:2;inset:24px;border:1px solid rgba(250,246,236,.28);pointer-events:none;}
.hero-stats{bottom:96px;right:6vw;gap:24px;padding:18px 0 18px 24px;border-left:1px solid rgba(250,246,236,.38);}
.hero-stats .num{font-size:42px;line-height:1;}
.hero-stats .lbl{font-size:11px;margin-top:9px;}
.intro{background:var(--cream);}
.intro .tag{font-size:clamp(38px,4.2vw,64px);line-height:1.1;}
.intro-copy{border-left:1px solid var(--line);padding-left:5vw;}
.space-card{border-radius:12px;box-shadow:0 4px 16px rgba(30,54,40,.04);transition:transform .25s ease,box-shadow .25s ease;}
.space-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);}
.space-card .thumb{aspect-ratio:4/5;}
.spaces{background:#eae6d8;}
.amenities{background:#1b3024;}
.gallery-strip img{border-radius:5px;}
.section-outro{text-align:center;margin:42px 0 0;}
.text-link{text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:13px;font-weight:600;color:var(--pine);border-bottom:1px solid var(--gold);padding-bottom:6px;display:inline-flex;gap:16px;align-items:center;}
.text-link:hover{color:var(--terracotta);}
.discover-section{background:var(--cream);display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:start;}
.home-editorial{background:var(--cream);padding:0 6vw;}
.discover-section__intro h2{font-size:clamp(42px,4vw,64px);line-height:1.08;margin:18px 0;}
.discover-section__intro h2 em{color:var(--moss);font-weight:400;}
.discover-section__intro p{font-size:19px;line-height:1.7;color:var(--moss);max-width:440px;}
.discover-grid{border-top:1px solid var(--line);}
.discover-grid a{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:27px 5px;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .2s ease,background .2s ease;}
.discover-grid a:hover{padding-left:16px;background:rgba(216,223,202,.25);}
.discover-grid span{grid-column:1/-1;color:var(--moss);font-size:12px;letter-spacing:.16em;text-transform:uppercase;}
.discover-grid strong{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:500;color:var(--pine);}
.discover-grid em{font-style:normal;font-size:26px;color:var(--gold);}
.cta{background:#eae6d8;}
.cta--interior{padding:95px 6vw;}
.cta--interior h2{margin-top:16px;}
.cta .btn:not(.solid){border-color:var(--pine);color:var(--pine);}
.foot-brand{max-width:300px;}
footer{padding:70px 6vw 28px;}

/* Interior page mastheads */
.interior-hero{min-height:560px;background:var(--pine);display:grid;grid-template-columns:1fr 48%;padding:0;overflow:hidden;}
.interior-hero__copy{padding:90px 6vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:820px;}
.interior-hero h1{color:var(--ivory);font-size:clamp(52px,5.7vw,88px);line-height:1.02;font-style:italic;margin:17px 0 22px;}
.interior-hero p{font-size:20px;line-height:1.7;color:rgba(250,246,236,.75);max-width:560px;margin:0;}
.interior-hero>img{height:100%;width:100%;object-fit:cover;max-height:670px;}
.interior-hero--compact{display:block;min-height:0;background:#e8eadc;}
.interior-hero--compact .interior-hero__copy{padding:90px 6vw 100px;max-width:1000px;}
.interior-hero--compact h1{color:var(--pine);}
.interior-hero--compact p{color:var(--moss);}
.interior-hero--journal>img{object-position:center 55%;}
.interior-hero--amenities>img{object-position:center 37%;}
.editorial-split{display:grid;grid-template-columns:1fr 1fr;gap:8vw;background:var(--cream);}
.editorial-split h2{font-size:clamp(42px,4.4vw,70px);line-height:1.07;margin-top:20px;}
.editorial-split h2 em{font-weight:400;color:var(--moss);}
.editorial-split__body{border-left:1px solid var(--line);padding-left:5vw;}
.editorial-split__body p{font-size:20px;line-height:1.8;color:#3e4f41;margin:0 0 25px;}
.image-story{display:grid;grid-template-columns:52% 48%;padding:0;background:#e8eadc;}
.image-story>img{width:100%;height:600px;object-fit:cover;}
.image-story__copy{padding:70px 7vw;align-self:center;}
.image-story h2{font-size:clamp(42px,4.4vw,70px);line-height:1.05;font-style:italic;margin:20px 0;}
.image-story p{font-size:19px;line-height:1.7;color:var(--moss);}
.feature-intro{text-align:center;max-width:950px;margin:0 auto;padding-bottom:35px;}
.feature-intro h2{font-size:clamp(40px,4.5vw,66px);font-style:italic;margin:16px auto;}
.feature-intro p{font-size:20px;line-height:1.7;color:var(--moss);max-width:650px;margin:0 auto;}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);padding:0 6vw 110px;}
.feature-card{background:var(--cream);padding:44px 35px;min-height:245px;}
.feature-card__number{font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--gold);}
.feature-card h3{font-size:30px;font-style:italic;margin:14px 0;}
.feature-card p{font-size:18px;line-height:1.7;color:var(--moss);margin:0;}
.wide-image{height:470px;position:relative;padding:0;overflow:hidden;}
.wide-image img{width:100%;height:100%;object-fit:cover;}
.wide-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,39,25,.75),transparent 70%);}
.wide-image>div{position:absolute;z-index:1;left:7vw;top:50%;transform:translateY(-50%);}
.wide-image h2{color:var(--ivory);font-size:clamp(44px,5vw,76px);font-style:italic;max-width:620px;margin-top:18px;}
.gallery-page{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:85px 6vw 110px;background:var(--cream);}
.gallery-tile{margin:0;min-width:0;}
.gallery-tile:nth-child(1),.gallery-tile:nth-child(6){grid-column:span 2;}
.gallery-tile a{display:block;position:relative;overflow:hidden;background:#e3e4d7;border-radius:8px;}
.gallery-tile img{width:100%;height:390px;object-fit:cover;transition:transform .45s ease;}
.gallery-tile:nth-child(1) img,.gallery-tile:nth-child(6) img{height:500px;}
.gallery-tile a:hover img{transform:scale(1.035);}
.gallery-tile__view{position:absolute;right:18px;bottom:18px;background:var(--cream);color:var(--pine);font-size:12px;text-transform:uppercase;letter-spacing:.12em;padding:12px 15px;}
.gallery-tile figcaption{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--pine);padding-top:12px;}
.contact-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:7vw;background:var(--cream);}
.contact-layout__intro h2{font-size:clamp(42px,4vw,62px);font-style:italic;margin:18px 0;}
.contact-layout__intro p{font-size:19px;color:var(--moss);line-height:1.7;margin-bottom:30px;max-width:390px;}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.contact-card{border:1px solid var(--line);padding:32px;background:#fffdf6;min-width:0;}
.contact-card--wide{grid-column:1/-1;}
.contact-card__icon{font-size:28px;color:var(--gold);display:block;margin-bottom:20px;}
.contact-card h3{font-size:clamp(22px,2.3vw,34px);font-style:italic;margin:14px 0;overflow-wrap:anywhere;}
.contact-card h3 a{text-decoration:none;}
.contact-card p{font-size:17px;line-height:1.65;color:var(--moss);}
.contact-card .text-link{margin-top:12px;}
.contact-map{padding:0;background:var(--pine);height:440px;}
.contact-map iframe{width:100%;height:100%;border:0;}
.prose-layout,.article-body{max-width:850px;padding:80px 24px;margin:0 auto;font-size:19px;line-height:1.8;overflow-wrap:anywhere;}
.entry-content h2{font-size:46px;margin:45px 0 15px;}
.entry-content h3{font-size:34px;margin:35px 0 12px;}
.entry-content p{margin:0 0 24px;}
.entry-content img{height:auto;}
.entry-content a{color:var(--pine);text-decoration-color:var(--gold);}
.entry-content .alignwide{max-width:1100px;}
.entry-content blockquote{border-left:3px solid var(--gold);margin:35px 0;padding:8px 30px;font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--pine);}
.journal-list{background:var(--cream);}
.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1300px;margin:0 auto;}
.journal-card{min-width:0;background:#fffdf6;border:1px solid var(--line);}
.journal-card__image{display:block;overflow:hidden;aspect-ratio:4/3;}
.journal-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.journal-card:hover img{transform:scale(1.04);}
.journal-card__body{padding:26px;}
.journal-card__meta{display:flex;justify-content:space-between;gap:14px;color:var(--moss);font-size:12px;letter-spacing:.13em;text-transform:uppercase;}
.journal-card h2{font-size:32px;font-style:italic;line-height:1.15;margin:18px 0 12px;}
.journal-card h2 a{text-decoration:none;}
.journal-card p{font-size:17px;color:var(--moss);line-height:1.6;}
.journal-card .text-link{margin-top:8px;}
.pagination{text-align:center;margin:45px auto 0;}
.pagination a,.pagination .current{display:inline-block;margin:4px;padding:8px 12px;text-decoration:none;border:1px solid var(--line);color:var(--pine);}
.pagination .current{background:var(--pine);color:var(--ivory);}
.empty-journal{text-align:center;background:var(--cream);}
.empty-journal h2{font-size:clamp(40px,4vw,60px);font-style:italic;margin:20px 0;}
.empty-journal p{font-size:19px;color:var(--moss);}
.article-head{padding:90px 24px 70px;max-width:980px;margin:0 auto;text-align:center;}
.article-head .eyebrow{display:block;margin:35px 0 14px;}
.article-head h1{font-size:clamp(48px,6vw,86px);font-style:italic;line-height:1.08;}
.article-head p{color:var(--moss);font-size:16px;}
.article-image{max-width:1300px;margin:0 auto;}
.article-image img{width:100%;height:auto;max-height:650px;object-fit:cover;}
.article-foot{max-width:850px;padding:0 24px 90px;margin:0 auto;}
.request-notice{max-width:1000px;margin:32px auto 0;padding:20px 24px;background:var(--sage);color:var(--pine);border-left:4px solid var(--gold);font-size:18px;}
.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}

@media(max-width:1160px){
  nav.links{display:none;}
  .mobile-menu{display:block;margin-left:auto;position:relative;font-size:14px;text-transform:uppercase;letter-spacing:.08em;}
  .mobile-menu summary{cursor:pointer;list-style:none;padding:12px 5px;color:var(--pine);white-space:nowrap;}
  .mobile-menu summary::-webkit-details-marker{display:none;}
  .mobile-menu summary span{margin-left:7px;font-size:18px;vertical-align:-2px;}
  .mobile-menu nav{position:absolute;right:-20px;top:45px;width:min(320px,90vw);padding:13px;background:var(--cream);border:1px solid var(--line);box-shadow:var(--shadow);z-index:70;display:flex;flex-direction:column;}
  .mobile-menu nav a{display:block;text-decoration:none;padding:11px 12px;border-bottom:1px solid var(--line);color:var(--pine);}
  .mobile-menu nav a:last-child{border:0;}
}
@media(max-width:860px){
  .intro-copy{border-left:0;padding-left:0;}
  .discover-section,.editorial-split,.contact-layout{grid-template-columns:1fr;gap:35px;}
  .editorial-split__body{border-left:0;padding-left:0;}
  .interior-hero{grid-template-columns:1fr 43%;min-height:450px;}
  .interior-hero__copy{padding:65px 5vw;}
  .interior-hero h1{font-size:clamp(44px,6vw,65px);}
  .interior-hero--compact{display:block;min-height:0;}
  .image-story{grid-template-columns:1fr;}
  .image-story>img{height:430px;}
  .feature-grid,.journal-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-page{grid-template-columns:repeat(2,1fr);}
  .gallery-tile:nth-child(1),.gallery-tile:nth-child(6){grid-column:span 1;}
  .gallery-tile img,.gallery-tile:nth-child(1) img,.gallery-tile:nth-child(6) img{height:360px;}
}
@media(max-width:600px){
  header.nav{padding:11px 4vw;gap:8px;}
  .brand{font-size:20px;gap:8px;}
  .brand small{font-size:8px;letter-spacing:.12em;}
  .brand img{height:30px;width:30px;}
  .nav-cta{display:none;}
  .mobile-menu summary{font-size:0;}
  .mobile-menu summary span{font-size:24px;margin:0;}
  .hero{min-height:620px;height:85vh;}
  .hero::before{inset:12px;}
  .hero-content{padding:0 7vw 70px;}
  .hero-content h1{font-size:clamp(50px,12vw,72px);}
  .hero-content p{font-size:17px;line-height:1.55;}
  .hero-actions{gap:10px;}
  .hero-actions .btn{font-size:12px;padding:12px 15px;}
  .intro .tag{font-size:41px;}
  .intro-copy p{font-size:17px;}
  .intro-copy .meta{gap:20px;}
  .intro-copy .meta div .lbl{font-size:10px;}
  .interior-hero{display:flex;flex-direction:column-reverse;min-height:0;}
  .interior-hero>img{height:260px;}
  .interior-hero__copy{padding:56px 6vw 65px;}
  .interior-hero h1{font-size:52px;}
  .interior-hero p{font-size:17px;}
  .interior-hero--compact{display:block;}
  .interior-hero--compact .interior-hero__copy{padding:65px 6vw;}
  .editorial-split,.feature-intro,.contact-layout{padding:70px 6vw;}
  .image-story>img{height:320px;}
  .image-story__copy{padding:60px 6vw;}
  .feature-grid{grid-template-columns:1fr;padding:0 6vw 70px;}
  .feature-card{padding:30px 10px;min-height:0;}
  .wide-image{height:370px;}
  .gallery-page{grid-template-columns:1fr;padding:55px 6vw;gap:30px;}
  .gallery-tile img,.gallery-tile:nth-child(1) img,.gallery-tile:nth-child(6) img{height:390px;}
  .contact-cards{grid-template-columns:1fr;}
  .contact-card--wide{grid-column:auto;}
  .contact-map{height:330px;}
  .journal-grid{grid-template-columns:1fr;}
  .journal-list{padding:70px 6vw;}
  .cta--interior{padding:75px 6vw;}
  .discover-section{padding:75px 6vw;}
  .article-head{padding:65px 20px 45px;}
  .article-head h1{font-size:50px;}
  .request-notice{margin:20px 5vw 0;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;}}
