/* ============================================================
   MAGNOLIA PAGES — shared extensions, loaded AFTER style.css
   Multi-page build · July 2026
   ============================================================ */

/* ---- NAV: one line, sleeker links (punch list #1, #3) ---- */
.nav-inner{ flex-wrap:nowrap; }
.nav-logo-text{ white-space:nowrap; font-size:1.35rem; }
.nav-links{ flex-wrap:nowrap; }
.nav-links a{
  font-size:.72rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  color:var(--charcoal); text-decoration:none; padding:.3rem 0; position:relative;
  background:none; border:none;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--sage); transition:width .3s ease;
}
.nav-links a:hover::after{ width:100%; }
.nav-links a.nav-cta{
  border:1px solid var(--forest); color:var(--forest); padding:.55rem 1.3rem;
  transition:background .25s ease, color .25s ease;
}
.nav-links a.nav-cta:hover{ background:var(--forest); color:var(--cream); }
.nav-links a.nav-cta::after{ display:none; }
.nav-links a.active{ color:var(--forest); }
.nav-links a.active::after{ width:100%; }

/* ---- HERO: CTA sits BELOW the video (#2) ---- */
.hero-under-cta{
  background:var(--cream); text-align:center; padding:2.2rem 1rem 2.4rem;
  border-bottom:1px solid rgba(111,162,135,.18);
}
.hero-under-cta .hero-btn{ margin:0 .5rem; }
.hero-under-cta p{
  font-family:var(--font-serif); font-style:italic; color:var(--text-light);
  margin-bottom:1.2rem; font-size:1.05rem;
}

/* ---- Stats bar (#4 — unchanged, kept) ---- */
.stats-bar{ background:var(--forest); color:var(--cream); padding:1.4rem 1rem; }
.stats-inner{ max-width:1000px; margin:0 auto; display:flex; justify-content:space-around; flex-wrap:wrap; gap:1.2rem; text-align:center; }
.stat b{ display:block; font-family:var(--font-serif); font-size:1.7rem; font-weight:600; }
.stat span{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; opacity:.85; }

/* ---- Page hero banner (subpages) ---- */
.page-banner{ position:relative; height:290px; overflow:hidden; display:flex; align-items:flex-end; }
.page-banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-banner::after{ content:""; position:absolute; inset:0; background:linear-gradient(transparent 30%, rgba(45,48,40,.72)); }
.page-banner h1{
  position:relative; z-index:2; color:var(--cream); font-family:var(--font-serif);
  font-weight:600; font-size:clamp(2rem,5vw,3rem); padding:0 2rem 2rem;
  max-width:1200px; margin:0 auto; width:100%;
}

/* ---- Suite mini-carousels ---- */
.suite-carousel{ position:relative; overflow:hidden; aspect-ratio:4/3; }
.suite-carousel img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s ease; }
.suite-carousel img.active{ opacity:1; }
.car-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  background:rgba(250,247,239,.85); color:var(--forest); border:none; cursor:pointer;
  width:34px; height:34px; border-radius:50%; font-size:1rem;
  display:flex; align-items:center; justify-content:center; transition:background .2s;
}
.car-btn:hover{ background:var(--cream); }
.car-prev{ left:10px; } .car-next{ right:10px; }
.car-dots{ position:absolute; bottom:10px; left:0; right:0; display:flex; justify-content:center; gap:6px; z-index:2; }
.car-dots i{ width:7px; height:7px; border-radius:50%; background:rgba(250,247,239,.55); }
.car-dots i.on{ background:var(--cream); }
.suite-price{ font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-light); margin-top:.4rem; }

/* ---- Swipeable photo carousel with arrows (#7) ---- */
.photo-carousel-wrap{ position:relative; }
.photo-carousel{
  display:flex; gap:.6rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -webkit-overflow-scrolling:touch; padding:0;
}
.photo-carousel::-webkit-scrollbar{ display:none; }
.photo-carousel img{
  height:340px; width:auto; flex:0 0 auto; object-fit:cover; scroll-snap-align:center;
}
.strip-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  background:rgba(45,48,40,.65); color:var(--cream); border:none; cursor:pointer;
  width:44px; height:44px; border-radius:50%; font-size:1.3rem;
  display:flex; align-items:center; justify-content:center; transition:background .2s;
}
.strip-btn:hover{ background:var(--forest); }
.strip-prev{ left:14px; } .strip-next{ right:14px; }

/* ---- Review carousel (#8) ---- */
.review-carousel-wrap{ position:relative; max-width:1100px; margin:3rem auto 0; }
.review-carousel{
  display:flex; gap:1.4rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; padding:.5rem .2rem;
}
.review-carousel::-webkit-scrollbar{ display:none; }
.review-card{
  flex:0 0 min(340px, 82vw); scroll-snap-align:center;
  background:var(--cream); border:1px solid rgba(111,162,135,.25); padding:2rem 1.8rem; position:relative;
}
.review-card::before{ content:"\201C"; font-family:var(--font-serif); font-size:3.4rem; color:var(--sage); position:absolute; top:.4rem; left:1.2rem; line-height:1; }
.review-card p{ font-family:var(--font-serif); font-style:italic; font-size:1.02rem; margin-top:1.4rem; }
.review-card cite{ display:block; margin-top:1.1rem; font-style:normal; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--text-light); }
.review-stars{ color:var(--gold); letter-spacing:.15em; }
.reviews-strip{ background:var(--warm-white); }

/* ---- Story / restoration ---- */
.story-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:2rem; margin-top:3rem; }
.story-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.story-card h4{ font-family:var(--font-serif); font-size:1.25rem; color:var(--forest); margin-top:1.1rem; }
.story-card p{ font-size:.92rem; margin-top:.5rem; }
.story-era{ font-size:.72rem; letter-spacing:.26em; text-transform:uppercase; color:var(--sage); }

/* ---- Vision renders ---- */
.vision-thumbs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin-top:1rem; }
.vision-thumbs img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.vision-caption{ text-align:center; font-size:.85rem; color:var(--text-light); font-style:italic; margin-top:.7rem; }

/* ---- Explore cards: clickable (#16) ---- */
.explore-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.4rem; margin-top:3rem; }
a.explore-card{ position:relative; overflow:hidden; aspect-ratio:3/4; display:block; text-decoration:none; }
a.explore-card img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
a.explore-card:hover img{ transform:scale(1.05); }
.explore-label{
  position:absolute; bottom:0; left:0; right:0; padding:1.4rem 1.2rem 1.1rem;
  background:linear-gradient(transparent, rgba(45,48,40,.85)); color:var(--cream);
}
.explore-label h4{ font-family:var(--font-serif); font-size:1.15rem; }
.explore-label span{ font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; opacity:.85; }

/* ---- Gardens gallery ---- */
.garden-gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1rem; margin-top:3rem; }
.garden-gallery img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.garden-gallery img:first-child{ grid-column:1 / -1; aspect-ratio:21/9; }

/* ---- FAQ ---- */
.faq-list{ max-width:760px; margin:3rem auto 0; }
.faq-list details{ border-bottom:1px solid rgba(111,162,135,.3); padding:1.1rem 0; }
.faq-list summary{ font-family:var(--font-serif); font-size:1.1rem; color:var(--forest); cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-list summary::after{ content:"+"; font-size:1.4rem; color:var(--sage); }
.faq-list details[open] summary::after{ content:"\2212"; }
.faq-list details p{ margin-top:.8rem; font-size:.95rem; }
.inquire-btn{
  display:inline-block; margin-top:1rem; background:var(--forest); color:var(--cream);
  text-decoration:none; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.8rem 1.8rem; transition:background .25s;
}
.inquire-btn:hover{ background:var(--sage); }

/* ---- Contact page ---- */
.contact-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:2.5rem; margin-top:3rem; }
.contact-block h3{ font-family:var(--font-serif); color:var(--forest); font-size:1.3rem; margin-bottom:.8rem; }
.contact-block a{ color:var(--forest); }

/* ---- Footer additions (#20–24) ---- */
.footer-logo{ height:88px; width:auto; margin-bottom:1rem; }
.footer-preserved{ font-size:.78rem; color:var(--text-light); margin-top:1.2rem; font-style:italic; }

@media (max-width:900px){
  .nav-links{ flex-wrap:wrap; } /* mobile menu behavior preserved from style.css */
}
@media (max-width:640px){
  .stats-inner{ gap:.8rem; }
  .stat b{ font-size:1.3rem; }
  .photo-carousel img{ height:240px; }
}
