/* ===========================================================
   Stateline Campground — shared stylesheet
   Design: warm editorial lodge, "dusk at the campground"
   =========================================================== */
:root {
  /* Stateline brand palette: Pine, Sage, Sand, Cedar, Lake, Cream */
  --forest: #1F3D2B;        /* Pine (primary) */
  --forest-deep: #142a1d;
  --forest-mid: #2c5039;
  --sage: #58745A;          /* Sage */
  --cream: #F4F0E6;         /* Cream */
  --warm-white: #faf7ef;
  --paper: #fffdf7;
  --bark: #5c4326;          /* deep cedar */
  --sunset: #7A5A3A;        /* Cedar (warm accent / CTA) */
  --sunset-soft: #DCC6A1;   /* Sand (light accent) */
  --ember: #604528;         /* deep cedar (hover) */
  --charcoal: #232a20;
  --stone: #5f6358;
  --dust: #9a9486;
  --sky: #47606B;           /* Lake */
  --sand: #DCC6A1;
  --lake: #47606B;
  --line: rgba(31,61,43,0.12);
  --shadow-sm: 0 2px 10px rgba(20,15,10,0.05);
  --shadow-md: 0 14px 40px rgba(20,15,10,0.10);
  --shadow-lg: 0 30px 70px rgba(20,15,10,0.16);
  --r: 14px;
  --r-sm: 8px;
  --maxw: 1240px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:'Montserrat',system-ui,sans-serif;
  color:var(--charcoal);
  background:var(--warm-white);
  line-height:1.6;
  overflow-x:hidden;
}
img,svg { max-width:100%; display:block; }
a { color:inherit; }
h1,h2,h3,h4 { font-family:'Zilla Slab',Georgia,serif; font-weight:700; line-height:1.12; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 40px; }
.skip-link {
  position:absolute; left:-999px; top:0; z-index:300;
  background:var(--sunset); color:#fff; padding:12px 20px; border-radius:0 0 var(--r-sm) 0;
}
.skip-link:focus { left:0; }
.eyebrow {
  display:inline-block; color:var(--sunset);
  font-size:12px; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; margin-bottom:18px;
}
.eyebrow.light { color:var(--sunset-soft); }
.lead { font-size:18px; line-height:1.75; color:var(--stone); }

/* ---------- buttons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 30px; border-radius:50px;
  text-decoration:none; font-weight:600; font-size:15px;
  transition:transform .25s var(--ease), background .25s, box-shadow .25s, color .25s, border-color .25s;
  border:1px solid transparent; cursor:pointer;
}
.btn-primary { background:var(--sunset); color:#fff; box-shadow:0 8px 20px rgba(122,90,58,0.28); }
.btn-primary:hover { background:var(--ember); transform:translateY(-2px); box-shadow:0 12px 26px rgba(96,69,40,0.34); }
.btn-ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,0.4); }
.btn-ghost:hover { background:rgba(255,255,255,0.12); border-color:#fff; }
.btn-dark { background:var(--forest); color:#fff; }
.btn-dark:hover { background:var(--forest-deep); transform:translateY(-2px); }
.btn svg { width:18px; height:18px; }

/* ---------- nav ---------- */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:120;
  transition:background .4s, padding .4s, box-shadow .4s;
}
.nav-inner {
  max-width:var(--maxw); margin:0 auto; padding:22px 40px;
  display:flex; align-items:center; justify-content:space-between;
}
.nav.scrolled { background:rgba(15,35,24,0.97); backdrop-filter:blur(14px); box-shadow:0 1px 0 rgba(255,255,255,0.06); }
.nav.scrolled .nav-inner { padding:13px 40px; }
.nav.solid { background:var(--forest-deep); }
.brand { display:flex; align-items:center; gap:11px; text-decoration:none; }
.brand-mark { width:34px; height:34px; flex:0 0 34px; }
.brand-name { font-family:'Zilla Slab',serif; font-size:20px; font-weight:700; color:#fff; letter-spacing:.2px; }
.nav-links { display:flex; gap:30px; align-items:center; }
.nav-links a {
  color:rgba(255,255,255,0.82); text-decoration:none;
  font-size:13.5px; font-weight:500; letter-spacing:.6px; text-transform:uppercase;
  transition:color .25s;
}
.nav-links a:hover { color:var(--sunset-soft); }
.nav-call {
  background:var(--sunset); color:#fff !important;
  padding:9px 20px; border-radius:50px; font-weight:600 !important;
  letter-spacing:.3px !important; text-transform:none !important; font-size:14px !important;
  display:inline-flex; align-items:center; gap:8px; transition:background .25s;
}
.nav-call:hover { background:var(--ember); }
.nav-call svg { width:15px; height:15px; }
.nav-toggle {
  display:none; background:none; border:0; cursor:pointer; padding:8px;
  flex-direction:column; gap:5px;
}
.nav-toggle span { width:24px; height:2px; background:#fff; border-radius:2px; transition:.3s; }
.mobile-menu {
  display:none; position:fixed; inset:0 0 0 auto; width:min(320px,82vw); z-index:130;
  background:var(--forest-deep); padding:90px 32px 32px;
  transform:translateX(100%); transition:transform .35s var(--ease);
  flex-direction:column; gap:6px;
}
.mobile-menu.open { transform:translateX(0); }
.mobile-menu a { color:rgba(255,255,255,0.85); text-decoration:none; font-size:17px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.08); }
.mobile-menu .btn { margin-top:18px; justify-content:center; }
.scrim { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:125; opacity:0; transition:opacity .35s; }
.scrim.show { display:block; opacity:1; }

/* ---------- hero (home) ---------- */
.hero { position:relative; min-height:94vh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,35,24,0.32) 0%, rgba(15,35,24,0.40) 34%, rgba(15,35,24,0.62) 58%, rgba(15,35,24,0.82) 80%, rgba(15,35,24,0.95) 100%);
}
.hero-content { position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; width:100%; padding:0 40px 92px; }
.hero-badges { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:24px; }
.pill {
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(255,255,255,0.10); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.18); border-radius:50px;
  padding:7px 16px; color:#fff; font-size:12.5px; font-weight:500; letter-spacing:.4px;
}
.pill .dot { width:7px; height:7px; border-radius:50%; background:var(--sunset-soft); }
.hero h1 { font-size:clamp(40px,6.2vw,82px); font-weight:700; color:#fff; max-width:14ch; margin-bottom:22px; text-shadow:0 1px 2px rgba(15,35,24,0.45), 0 3px 24px rgba(15,35,24,0.40); }
.hero h1 em { color:var(--sunset-soft); font-style:italic; }
.hero-sub { font-size:19px; color:rgba(255,255,255,0.90); line-height:1.6; max-width:600px; margin-bottom:34px; font-weight:300; text-shadow:0 1px 12px rgba(15,35,24,0.5); }
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; }
.hero-rating { margin-top:26px; display:flex; align-items:center; gap:12px; color:rgba(255,255,255,0.85); font-size:14.5px; }
.stars { color:var(--sunset-soft); letter-spacing:2px; }

/* ---------- trust strip ---------- */
.facts { background:var(--forest); }
.facts-inner { max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); }
.fact { padding:40px 28px; text-align:center; border-right:1px solid rgba(255,255,255,0.07); }
.fact:last-child { border-right:none; }
.fact-num { font-family:'Zilla Slab',serif; font-size:34px; font-weight:700; color:var(--sunset-soft); }
.fact-label { color:rgba(255,255,255,0.72); font-size:13.5px; letter-spacing:.3px; margin-top:2px; }

/* ---------- generic section ---------- */
.section { padding:110px 0; }
.section-head { max-width:680px; }
.section-head.center { margin:0 auto; text-align:center; }
h2.title { font-size:clamp(30px,3.8vw,50px); color:var(--charcoal); margin-bottom:18px; }
h2.title em { color:var(--sunset); font-style:italic; }
.title.light { color:#fff; }
.title.light em { color:var(--sunset-soft); }

/* ---------- about / split with photos ---------- */
.split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.mosaic { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.mosaic img { width:100%; height:100%; object-fit:cover; border-radius:var(--r); box-shadow:var(--shadow-sm); }
.mosaic figure:nth-child(1) { margin-top:30px; }
.mosaic figure:nth-child(4) { margin-top:30px; }
.about-block p { font-size:17px; line-height:1.85; color:var(--stone); margin-bottom:18px; }
.pullquote {
  font-family:'Zilla Slab',serif; font-size:22px; font-style:italic;
  color:var(--bark); line-height:1.55; border-left:3px solid var(--sunset);
  padding-left:24px; margin:26px 0;
}
.sig { display:flex; align-items:center; gap:14px; margin-top:8px; }
.sig-mark { width:46px; height:46px; border-radius:50%; background:var(--cream); display:flex; align-items:center; justify-content:center; color:var(--sunset); font-family:'Zilla Slab',serif; font-weight:700; }
.sig small { display:block; color:var(--dust); font-size:13px; }
.sig b { font-family:'Zilla Slab',serif; color:var(--charcoal); font-weight:600; }

/* ---------- amenities (icon grid) ---------- */
.amenities { background:var(--cream); }
.am-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:54px; }
.am-card {
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:30px 26px; transition:transform .3s var(--ease), box-shadow .3s, border-color .3s;
}
.am-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:transparent; }
.am-ico {
  width:52px; height:52px; border-radius:12px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(88,116,90,0.18), rgba(31,61,43,0.06));
  color:var(--forest);
}
.am-ico svg { width:26px; height:26px; }
.am-card h3 { font-size:18px; color:var(--charcoal); margin-bottom:6px; }
.am-card p { font-size:14px; color:var(--stone); line-height:1.55; }
.am-note { margin-top:36px; font-size:15px; color:var(--stone); display:flex; align-items:center; gap:10px; }
.am-note svg { width:20px; height:20px; color:var(--sunset); flex:0 0 20px; }

/* ---------- full-width image band ---------- */
.band { position:relative; min-height:440px; display:flex; align-items:center; overflow:hidden; }
.band img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.band::after { content:''; position:absolute; inset:0; background:rgba(15,35,24,0.56); }
.band-inner { position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:0 40px; color:#fff; }
.band-inner h2 { font-size:clamp(28px,4vw,46px); margin-bottom:14px; max-width:18ch; }
.band-inner p { font-size:18px; color:rgba(255,255,255,0.85); max-width:48ch; font-weight:300; }

/* ---------- pricing ---------- */
.pricing { background:var(--warm-white); }
.price-wrap { display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:center; margin-top:48px; }
.price-info p { font-size:17px; line-height:1.85; color:var(--stone); margin-bottom:18px; }
.price-cards { display:flex; flex-direction:column; gap:14px; }
.price-card {
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:26px 30px; display:flex; justify-content:space-between; align-items:center;
  transition:transform .3s var(--ease), box-shadow .3s;
}
.price-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.price-card.featured { border:2px solid var(--sunset); position:relative; }
.price-card.featured::after {
  content:'Best value'; position:absolute; top:-11px; left:30px;
  background:var(--sunset); color:#fff; font-size:11px; font-weight:600; letter-spacing:1px;
  text-transform:uppercase; padding:3px 12px; border-radius:50px;
}
.price-card h3 { font-size:21px; color:var(--charcoal); }
.price-card .det { font-size:13.5px; color:var(--dust); margin-top:3px; }
.price-card .rate { font-family:'Zilla Slab',serif; font-size:26px; font-weight:700; color:var(--sunset); text-align:right; }
.price-card .rate span { display:block; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:400; color:var(--dust); }
.pays { margin-top:26px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.pays > span:first-child { font-size:14px; color:var(--dust); font-weight:500; }
.pay-badge { background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:6px 13px; font-size:13px; font-weight:600; color:var(--stone); }

/* ---------- FAQ accordion ---------- */
.faq-list { margin-top:46px; max-width:840px; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary {
  list-style:none; cursor:pointer; padding:26px 48px 26px 0; position:relative;
  font-family:'Zilla Slab',serif; font-size:clamp(18px,2.1vw,23px); font-weight:600; color:var(--charcoal);
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after {
  content:'+'; position:absolute; right:6px; top:50%; transform:translateY(-50%);
  font-family:'Montserrat',sans-serif; font-size:26px; font-weight:300; color:var(--sunset); transition:transform .3s;
}
.faq-item[open] summary::after { content:'\2013'; }
.faq-item .a { padding:0 48px 26px 0; font-size:16.5px; line-height:1.8; color:var(--stone); }

/* ---------- testimonials ---------- */
.reviews { position:relative; overflow:hidden; background:var(--forest-deep); }
.reviews::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 50% at 85% 85%, rgba(122,90,58,0.08), transparent 60%),
             radial-gradient(ellipse 55% 40% at 8% 12%, rgba(88,116,90,0.10), transparent 55%);
}
.reviews .wrap { position:relative; z-index:2; }
.rev-top { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.rev-rating { color:rgba(255,255,255,0.82); font-size:15px; display:flex; align-items:center; gap:10px; }
.rev-rating .stars { font-size:18px; }
.rev-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:46px; }
.rev-card {
  background:rgba(255,255,255,0.05); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.10); border-radius:var(--r); padding:34px 30px;
  transition:background .3s, transform .3s var(--ease);
}
.rev-card:hover { background:rgba(255,255,255,0.08); transform:translateY(-4px); }
.rev-card .stars { font-size:15px; margin-bottom:16px; }
.rev-card blockquote { color:rgba(255,255,255,0.88); font-size:16px; line-height:1.75; font-style:italic; border:0; padding:0; margin-bottom:22px; }
.rev-card figcaption { color:var(--sunset-soft); font-weight:600; font-size:14px; }

/* ---------- bento gallery (things to do) ---------- */
.bento { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:280px 280px; gap:16px; margin-top:54px; }
.tile { position:relative; border-radius:var(--r); overflow:hidden; }
.tile:first-child { grid-row:1/3; }
.tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.tile:hover img { transform:scale(1.05); }
.tile figcaption { position:absolute; inset:auto 0 0 0; z-index:2; padding:74px 22px 20px; background:linear-gradient(to top, rgba(15,35,24,0.95) 0%, rgba(15,35,24,0.86) 32%, rgba(15,35,24,0.46) 64%, transparent 100%); }
.tile figcaption h3 { font-size:20px; color:#fff; margin-bottom:4px; text-shadow:0 1px 6px rgba(15,35,24,0.6); }
.tile figcaption p { font-size:13px; color:rgba(255,255,255,0.90); line-height:1.5; text-shadow:0 1px 6px rgba(15,35,24,0.55); }

/* ---------- location ---------- */
.location { background:var(--cream); }
.loc-wrap { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; margin-top:46px; }
.loc-info p { font-size:17px; line-height:1.85; color:var(--stone); margin-bottom:18px; }
.loc-info address { font-style:normal; font-size:17px; line-height:1.9; color:var(--charcoal); margin:22px 0; padding-left:20px; border-left:3px solid var(--sunset); }
.loc-info address b { font-family:'Zilla Slab',serif; font-size:19px; }
.dist { list-style:none; margin:22px 0; }
.dist li { display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--line); font-size:16px; color:var(--stone); }
.dist li b { color:var(--charcoal); }
.map { border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-md); min-height:430px; }
.map iframe { width:100%; height:100%; min-height:430px; border:0; display:block; }

/* ---------- CTA ---------- */
.cta { position:relative; padding:130px 0; text-align:center; overflow:hidden; background:linear-gradient(135deg, #1a3c2a, #0f2318 45%, #1a2a20); }
.cta::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 90% 50% at 50% 45%, rgba(122,90,58,0.12), transparent 60%); }
.cta .wrap { position:relative; z-index:2; max-width:760px; }
.cta h2 { font-size:clamp(34px,5vw,58px); color:#fff; font-weight:700; margin-bottom:18px; }
.cta h2 em { color:var(--sunset-soft); font-style:italic; }
.cta > .wrap > p { font-size:19px; color:rgba(255,255,255,0.72); margin-bottom:34px; font-weight:300; }
.cta-phone { font-family:'Zilla Slab',serif; font-size:clamp(32px,4vw,52px); font-weight:700; color:var(--sunset-soft); text-decoration:none; display:inline-block; margin-bottom:22px; transition:color .25s; }
.cta-phone:hover { color:var(--sunset); }
.cta-or { display:block; color:rgba(255,255,255,0.45); font-size:12.5px; letter-spacing:2px; text-transform:uppercase; margin-bottom:22px; }

/* ---------- footer ---------- */
footer { background:var(--forest-deep); color:#fff; }
.foot { max-width:var(--maxw); margin:0 auto; padding:64px 40px 36px; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:54px; }
.foot .brand { margin-bottom:14px; }
.foot-desc { color:rgba(255,255,255,0.52); font-size:14px; line-height:1.7; max-width:320px; }
.foot address { font-style:normal; color:rgba(255,255,255,0.62); font-size:14px; margin-top:14px; line-height:1.7; }
.foot address a { color:var(--sunset-soft); text-decoration:none; }
.foot-col h2 { font-family:'Montserrat',sans-serif; color:var(--sunset-soft); font-size:12px; font-weight:600; letter-spacing:2px; text-transform:uppercase; margin-bottom:18px; }
.foot-col a, .foot-col p { display:block; color:rgba(255,255,255,0.62); text-decoration:none; font-size:14px; margin-bottom:9px; }
.foot-col a:hover { color:var(--sunset-soft); }
.foot-bottom { grid-column:1/-1; border-top:1px solid rgba(255,255,255,0.08); padding-top:26px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; color:rgba(255,255,255,0.32); font-size:13px; }

/* ---------- subpage hero + breadcrumb ---------- */
.subhero { position:relative; padding:150px 0 70px; overflow:hidden; background:linear-gradient(135deg, #1e3a2b, #0f2318); }
.subhero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 80% 20%, rgba(122,90,58,0.12), transparent 60%); }
.subhero .wrap { position:relative; z-index:2; }
.subhero h1 { font-size:clamp(34px,5vw,58px); color:#fff; max-width:18ch; margin-bottom:16px; }
.subhero h1 em { color:var(--sunset-soft); font-style:italic; }
.subhero p { font-size:18px; color:rgba(255,255,255,0.8); max-width:62ch; font-weight:300; }
.crumbs { display:flex; gap:8px; align-items:center; font-size:13px; color:rgba(255,255,255,0.55); margin-bottom:20px; flex-wrap:wrap; }
.crumbs a { color:rgba(255,255,255,0.7); text-decoration:none; }
.crumbs a:hover { color:var(--sunset-soft); }
.crumbs span { color:rgba(255,255,255,0.35); }

/* ---------- prose (article body for local pages) ---------- */
.prose { max-width:760px; }
.prose h2 { font-size:clamp(26px,3vw,38px); color:var(--charcoal); margin:48px 0 16px; }
.prose h3 { font-size:22px; color:var(--charcoal); margin:32px 0 12px; }
.prose p { font-size:17px; line-height:1.85; color:var(--stone); margin-bottom:18px; }
.prose ul { margin:0 0 20px 22px; }
.prose li { font-size:17px; line-height:1.8; color:var(--stone); margin-bottom:8px; }
.prose a { color:var(--sunset); text-decoration:underline; text-underline-offset:3px; }
.callout {
  background:var(--cream); border:1px solid var(--line); border-left:4px solid var(--sunset);
  border-radius:var(--r-sm); padding:24px 26px; margin:30px 0;
}
.callout p { margin:0; color:var(--charcoal); font-size:16.5px; }
.related { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-top:46px; }
.related a {
  display:block; background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:24px; text-decoration:none; transition:transform .3s var(--ease), box-shadow .3s;
}
.related a:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.related h3 { font-size:18px; color:var(--charcoal); margin-bottom:6px; }
.related p { font-size:14px; color:var(--stone); }

/* ---------- sticky mobile call bar ---------- */
.callbar {
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:115;
  background:var(--forest-deep); border-top:1px solid rgba(255,255,255,0.08);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  gap:10px;
}
.callbar a { flex:1; justify-content:center; }
.callbar .btn { width:100%; padding:13px; }

/* ---------- reveal ---------- */
.reveal { opacity:0; transform:translateY(34px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
  * { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal { opacity:1; transform:none; }
}

/* ---------- responsive ---------- */
@media (max-width:1024px) {
  .wrap, .nav-inner, .hero-content, .facts-inner, .foot, .band-inner { padding-left:28px; padding-right:28px; }
  .split, .price-wrap, .loc-wrap { grid-template-columns:1fr; gap:40px; }
  .am-grid { grid-template-columns:repeat(2,1fr); }
  .rev-grid { grid-template-columns:1fr; }
  .bento { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .bento .tile:first-child { grid-row:auto; aspect-ratio:16/10; }
  .bento .tile { aspect-ratio:4/3; }
  .foot { grid-template-columns:1fr 1fr; }
  .facts-inner { grid-template-columns:repeat(2,1fr); }
  .mosaic figure { margin-top:0 !important; }
}
@media (max-width:720px) {
  .nav-links { display:none; }
  .nav-toggle { display:flex; }
  .mobile-menu { display:flex; }
  .section { padding:72px 0; }
  .hero-content { padding-bottom:76px; }
  .hero-btns { flex-direction:column; align-items:stretch; }
  .hero-btns .btn { justify-content:center; }
  .am-grid { grid-template-columns:1fr; }
  .bento { grid-template-columns:1fr; }
  .foot { grid-template-columns:1fr; gap:34px; }
  .facts-inner { grid-template-columns:1fr 1fr; }
  .callbar { display:flex; }
  body { padding-bottom:68px; }
  .callbar ~ * { }
}

/* ===========================================================
   Vibe refresh: centered composition, softer detail, texture
   =========================================================== */
.section-head { max-width:780px; margin-left:auto; margin-right:auto; text-align:center; }
.section-head .lead { margin-left:auto; margin-right:auto; }

/* centered eyebrow with flanking rules */
.section-head .eyebrow::before, .section-head .eyebrow::after,
.cta .eyebrow::before, .cta .eyebrow::after,
.subhero .eyebrow::before, .subhero .eyebrow::after {
  content:''; display:inline-block; width:26px; height:1px;
  background:currentColor; opacity:.55; vertical-align:middle; margin:0 12px;
}

/* drop the dated italic emphasis; keep the accent color */
.title em, .hero h1 em, .cta h2 em, .subhero h1 em { font-style:normal; }

/* hero centered */
.hero { align-items:center; }
.hero-content { text-align:center; padding:124px 40px 92px; }
.hero-badges, .hero-btns, .hero-rating { justify-content:center; }
.hero h1 { max-width:20ch; margin-left:auto; margin-right:auto; }
.hero-sub { margin-left:auto; margin-right:auto; }

/* subhero centered */
.subhero { text-align:center; }
.subhero .crumbs { justify-content:center; }
.subhero h1, .subhero p { margin-left:auto; margin-right:auto; }

/* reviews header centered */
.rev-top { flex-direction:column; align-items:center; text-align:center; gap:12px; }

/* amenity note centered */
.am-note { justify-content:center; text-align:center; }

/* FAQ: centered, contained card */
.faq-list { max-width:860px; margin:46px auto 0; background:var(--paper);
  border:1px solid var(--line); border-radius:var(--r); padding:8px 36px;
  box-shadow:var(--shadow-md); }
.faq-item:last-child { border-bottom:none; }

/* prose: centered container + centered headings */
.prose { margin-left:auto; margin-right:auto; }
.prose h2, .prose h3 { text-align:center; }
.related a { text-align:center; }

/* subtle topographic texture on the dark bands */
.subhero::after, .cta::after {
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.14;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cg fill='none' stroke='%23DCC6A1' stroke-width='1'%3E%3Cpath d='M0 24 Q35 6 70 24 T140 24'/%3E%3Cpath d='M0 58 Q35 40 70 58 T140 58'/%3E%3Cpath d='M0 92 Q35 74 70 92 T140 92'/%3E%3Cpath d='M0 126 Q35 108 70 126 T140 126'/%3E%3C/g%3E%3C/svg%3E");
  background-size:280px; z-index:1;
}
.subhero .wrap, .cta .wrap { position:relative; z-index:2; }
