/* ============================================================
   THE CLUBHOUSE — styles.css
   Shared stylesheet for all pages.
   Requires: Bootstrap 5.3.3
             Google Fonts: Playfair Display + Nunito Sans
   ============================================================ */


/* ─────────────────────────────────────────────────────────────
   1. DESIGN TOKENS
───────────────────────────────────────────────────────────── */
:root {
  /*--ch-forest:   #223524; LIGHTER GREEN*/
  --ch-forest:   #1c2b1e;
  --ch-pine:     #2d4a30;
  --ch-green:    #3d6b40;
  --ch-sage:     #7a9e7e;
  --ch-gold:     #c8922a;
  --ch-amber:    #e8b84b;
  --ch-cream:    #f5f0e8;
  --ch-sand:     #e8dfc8;
  --ch-white:    #fdfaf5;
  --ch-charcoal: #1a1a18;
  --ch-text:     #2e2e2a;
  --ch-muted:    #6b6b60;

  --font-serif: 'Playfair Display', Georgia, serif;
  --font-sans:  'Nunito Sans', system-ui, sans-serif;

  --nav-height:  72px;
  --subnav-h:    52px;
  --transition:  0.3s ease;
}

/* ─────────────────────────────────────────────────────────────
   2. BASE RESET & GLOBALS
───────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-sans); background: var(--ch-white); color: var(--ch-text); font-size: 1rem; line-height: 1.7; overflow-x: hidden; }
h1, h2, h3, h4 { font-family: var(--font-serif); }
a { color: inherit; text-decoration: none; transition: color var(--transition); }
img { display: block; max-width: 100%; }

/* ─────────────────────────────────────────────────────────────
   3. UTILITY CLASSES
───────────────────────────────────────────────────────────── */
.text-gold { color: var(--ch-gold); }
.text-sage { color: var(--ch-sage); }
.text-cream { color: var(--ch-cream); }
.bg-forest { background-color: var(--ch-forest); }
.bg-pine { background-color: var(--ch-pine); }
.bg-cream { background-color: var(--ch-cream); }
.bg-sand { background-color: var(--ch-sand); }
.bg-charcoal { background-color: var(--ch-charcoal); }
.section-label { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ch-gold); }
.divider-gold { width: 48px; height: 2px; background: var(--ch-gold); margin: 1rem 0 1.5rem; }
.divider-gold.center { margin-left: auto; margin-right: auto; }
.divider-treeline { margin-top: 6rem }
.divider-treeline svg { fill: var(--ch-white); width: 100%; position: absolute; bottom: -2px; left: 0px; right: 0px; }

/* Fade-up scroll animation */
.fade-up { opacity: 0; transform: translateY(26px); transition: opacity .65s ease, transform .65s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.fade-up.delay-1 { transition-delay: .1s; }
.fade-up.delay-2 { transition-delay: .2s; }
.fade-up.delay-3 { transition-delay: .3s; }
.fade-up.delay-4 { transition-delay: .4s; }

/* ─────────────────────────────────────────────────────────────
   4. BUTTONS
───────────────────────────────────────────────────────────── */
.btn-ch-primary { background: var(--ch-gold); color: var(--ch-forest); font-family: var(--font-sans); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .8rem 2rem; border: 2px solid var(--ch-gold); border-radius: 0; transition: all var(--transition); cursor: pointer; display: inline-block; }
.btn-ch-primary:hover, .btn-ch-primary:focus { background: transparent; border: 2px solid var(--ch-gold); color: var(--ch-gold); }
.btn-ch-primary:disabled { opacity: .5; cursor: not-allowed; }
.btn-ch-outline { background: transparent; color: var(--ch-cream); font-family: var(--font-sans); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .8rem 2rem; border: 2px solid var(--ch-cream); border-radius: 0; transition: all var(--transition); display: inline-block; }
.btn-ch-outline:hover { background: var(--ch-cream); color: var(--ch-forest); }
.btn-ch-outline-dark { background: transparent; color: var(--ch-forest); font-family: var(--font-sans); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .8rem 2rem; border: 2px solid var(--ch-forest); border-radius: 0; transition: all var(--transition); display: inline-block; }
.btn-ch-outline-dark:hover { background: var(--ch-forest); color: var(--ch-cream); }

/* ─────────────────────────────────────────────────────────────
   5. NAVBAR
───────────────────────────────────────────────────────────── */
#mainNav { height: var(--nav-height); position: fixed; top: 0; left: 0; right: 0; z-index: 1000; }

/* Transparent variant — used on Home page hero */
#mainNav.nav-transparent { background: transparent; transition: background var(--transition), box-shadow var(--transition); }
#mainNav.nav-transparent.nav-scrolled { background: var(--ch-forest); box-shadow: 0 2px 20px rgba(0, 0, 0, .35); }

/* Solid variant — used on all interior pages */
#mainNav.nav-solid { background: var(--ch-forest); box-shadow: 0 2px 20px rgba(0, 0, 0, .3); }
.navbar-brand img { width: 250px }
.nav-link-ch { font-family: var(--font-sans); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ch-cream) !important; padding: .4rem .8rem !important; transition: color var(--transition); }
.nav-link-ch:hover { color: var(--ch-amber) !important; }
.nav-link-ch.active-page { color: var(--ch-amber) !important; }
.nav-cta { background: var(--ch-gold); color: var(--ch-forest) !important; padding: .5rem 1.25rem !important; font-weight: 700; text-align: center; }
.nav-cta:hover { background: var(--ch-amber); color: var(--ch-forest) !important; }
.navbar-toggler { border: none; font-size: 1.4rem; }
.navbar-toggler:focus { box-shadow: none; }
.navbar-collapse.show { background: var(--ch-forest); padding: 1rem }
.navbar-collapse.show ul li a { text-align: center; }
.dropdown-menu { background: var(--ch-white); border: 1px solid var(--ch-sand); box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .12); border-radius: 0px }
.dropdown-menu .dropdown-item { color: var(--ch-text); transition: all .15s ease; }
.dropdown-menu .dropdown-item:hover, .dropdown-menu .dropdown-item:focus { background-color: var(--ch-cream); color: var(--ch-forest); }
.dropdown-menu .dropdown-item.active, .dropdown-menu .dropdown-item:active { background-color: var(--ch-cream); color: var(--ch-forest); }
.dropdown-menu .dropdown-divider { border-top-color: var(--ch-sand); }

/* ─────────────────────────────────────────────────────────────
   6. PAGE HERO (interior pages)
───────────────────────────────────────────────────────────── */
#page-hero { margin-top: var(--nav-height); position: relative; display: flex; align-items: flex-end; overflow: hidden; }
.page-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.page-hero-content { position: relative; z-index: 2; padding-bottom: 3rem; }
.page-hero-content h1 { font-size: clamp(2rem, 5vw, 3.6rem); color: var(--ch-white); font-weight: 700; line-height: 1.1; }
.page-hero-content p { color: rgba(253, 250, 245, .8); font-size: .95rem; margin: .4rem 0 0; }

/* ─────────────────────────────────────────────────────────────
   7. FOOTER
───────────────────────────────────────────────────────────── */
#footer { background: var(--ch-charcoal); color: var(--ch-cream); padding: 4rem 0 2rem; }
.footer-brand img { width: 200px; margin-bottom: 1rem }

/*.footer-brand {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ch-cream);
  margin-bottom: .5rem;
}
.footer-brand span { color: var(--ch-gold); }*/
.footer-tagline { font-size: .8rem; opacity: .55; margin-bottom: 1.5rem; }
.footer-ai-notice { font-size: .8rem; padding: 1rem; opacity: .55; margin-top: 2rem; margin-bottom: 0rem; background: rgba(255, 255, 255, .05); border: 1px solid color-mix(in srgb, var(--ch-sand) 40%, transparent); }
.footer-nav-label { font-size: .65rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ch-gold); margin-bottom: .75rem; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: .4rem; }
.footer-links a { font-size: .85rem; color: rgba(245, 240, 232, .65); transition: color var(--transition); }
.footer-links a:hover { color: var(--ch-cream); }
.footer-contact-item { display: flex; align-items: flex-start; gap: .6rem; font-size: .85rem; color: rgba(245, 240, 232, .65); margin-bottom: .6rem; }
.footer-contact-item i { color: var(--ch-gold); margin-top: .15rem; width: 1.25rem; text-align: center; }
.footer-bottom { border-top: 1px solid rgba(245, 240, 232, .1); margin-top: 3rem; padding-top: 1.5rem; font-size: .75rem; color: rgba(245, 240, 232, .35); }

/* ─────────────────────────────────────────────────────────────
   8. CTA STRIP (shared across pages)
───────────────────────────────────────────────────────────── */
#cta-strip { background: linear-gradient(to right, rgba(28, 43, 30, .93) 0%, rgba(28, 43, 30, .78) 100%), url('https://images.unsplash.com/photo-1593111774240-d529f12cf4d5?w=1600&q=80') center/cover no-repeat; padding: 5rem 0; text-align: center; }
#cta-strip h2 { color: var(--ch-white); font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
#cta-strip p { color: rgba(253, 250, 245, .75); max-width: 480px; margin: 0 auto 2rem; }

/* ─────────────────────────────────────────────────────────────
   9. HOME PAGE
───────────────────────────────────────────────────────────── */

/* Hero */
#hero { min-height: 100svh; position: relative; display: flex; align-items: flex-end; overflow: hidden; background: var(--ch-forest); padding-bottom: 6rem; }
#hero .btn:focus, #hero .btn:active { background: transparent; border: 2px solid var(--ch-gold); color: var(--ch-gold); }
.hero-bg { position: absolute; inset: 0; transform: scale(1.04); transition: transform 8s ease-out; }
#hero.loaded .hero-bg { transform: scale(1); }
.hero-content { position: relative; z-index: 2; padding-bottom: 7rem; }
.hero-eyebrow { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--ch-amber); margin-bottom: 1rem; }
.hero-title { font-size: clamp(2.8rem, 6vw, 5rem); font-weight: 700; color: var(--ch-white); line-height: 1.1; margin-bottom: 1.25rem; }
.hero-sub { font-size: 1.1rem; color: rgba(253, 250, 245, .85); font-weight: 300; max-width: 480px; margin-bottom: 2.5rem; line-height: 1.6; }
.hero-scroll-hint { position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%); z-index: 2; display: flex; flex-direction: column; align-items: center; gap: .4rem; color: rgba(253, 250, 245, .55); font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.scroll-arrow { position: relative; width: 1px; height: 42px; background: rgba(253, 250, 245, .35); animation: arrowPulse 2s ease-in-out infinite; }

/*.scroll-arrow::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid rgba(253,250,245,.55);
}*/
@keyframes arrowPulse {
  0%, 100% { opacity: .35; transform: scaleY(1); }
  50% { opacity: .8; transform: scaleY(1.1); }
}

/* Overview section */
#overview { padding: 7rem 0; background: var(--ch-white); }
.overview-headline { font-size: clamp(1.8rem, 3.5vw, 2.6rem); line-height: 1.25; color: var(--ch-forest); }
.highlight-list { list-style: none; padding: 0; margin: 0; }
.highlight-list li { font-size: .85rem; font-weight: 600; letter-spacing: .04em; padding: .5rem 0; border-bottom: 1px solid var(--ch-sand); display: flex; align-items: center; gap: .6rem; color: var(--ch-text); }
.highlight-list li:last-child { border-bottom: none; }
.highlight-list i { color: var(--ch-gold); font-size: 1rem; text-align: center; width: 1.3rem }
.location-card { background: var(--ch-forest); color: var(--ch-cream); padding: 2rem; height: 100%; }
.location-card h5 { font-family: var(--font-serif); font-size: 1.1rem; color: var(--ch-amber); margin-bottom: .75rem; }
.location-card p { font-size: .85rem; line-height: 1.7; opacity: .85; }
.location-card .loc-item { font-size: .8rem; display: flex; align-items: flex-start; gap: .5rem; margin-bottom: .4rem; opacity: .85; }
.location-card .loc-item i { color: var(--ch-gold); margin-top: .15rem; width: 1.25rem; text-align: center; }
.gallery-strip { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: .5rem; margin-top: 3.5rem; }
.gallery-strip .g-main { grid-row: 1 / 3; }
.gallery-strip .g-item { overflow: hidden; aspect-ratio: 4/3; background: var(--ch-sand); }
.gallery-strip .g-main { aspect-ratio: auto; }
.gallery-strip img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gallery-strip .g-item:hover img { transform: scale(1.04); }
@media (max-width:767px) {
  .gallery-strip { grid-template-columns: 1fr 1fr; }
  .gallery-strip .g-main { grid-column: 1 / -1; grid-row: auto; }
}

/* Book Direct section */
#book-direct { position: relative; overflow: hidden; padding: 6rem 0; background: linear-gradient(to right, rgba(28, 43, 30, .92) 0%, rgba(28, 43, 30, .75) 100%), url('https://images.unsplash.com/photo-1592190108698-1ebbbf0e2afe?w=1600&q=80') center/cover no-repeat; }
#book-direct h2 { font-size: clamp(2rem, 4vw, 3rem); color: var(--ch-white); margin-bottom: .5rem; }
#book-direct p { color: rgba(253, 250, 245, .8); font-size: 1.05rem; max-width: 540px; margin: 0 auto 2rem; }
.book-direct-badges { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center; margin-top: 2.5rem; }
.bd-badge { display: flex; align-items: center; gap: .6rem; color: rgba(253, 250, 245, .75); font-size: .8rem; font-weight: 600; letter-spacing: .06em; }
.bd-badge i { color: var(--ch-gold); font-size: 1.3rem; }

/* Amenities teaser */
#amenities-teaser { padding: 7rem 0; background: var(--ch-cream); }
.amenity-img-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 240px 240px; gap: .5rem; }
.amenity-img-grid .a-tall { grid-row: 1 / 3; height: 100%; }
.amenity-img-grid .a-img { overflow: hidden; background: var(--ch-pine); }
.amenity-img-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.amenity-img-grid .a-img:hover img { transform: scale(1.05); }
#amenities-teaser h2 { font-size: clamp(2rem, 4vw, 2.8rem); color: var(--ch-forest); line-height: 1.2; }
#amenities-teaser .lead-text { font-size: 1.05rem; color: var(--ch-muted); max-width: 400px; }

/* Awards bar */
#awards-bar { background: var(--ch-forest); padding: 3rem 0; border-top: 1px solid rgba(200, 146, 42, .25); border-bottom: 1px solid rgba(200, 146, 42, .25); }
.award-item { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 1rem 0; }
.award-icon { font-size: 2rem; color: var(--ch-gold); }
.award-label { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ch-cream); text-align: center; }
.award-stars { display: flex; gap: 2px; color: var(--ch-amber); font-size: .85rem; }
.award-divider { width: 1px; background: rgba(200, 146, 42, .3); align-self: stretch; }
@media (max-width:767px) {
  .award-divider { display: none; }
  .award-item { border-bottom: 1px solid rgba(200, 146, 42, .15); }
}

/* Testimonials */
#testimonials { padding: 7rem 0; background: var(--ch-white); }
#testimonials h2 { font-size: clamp(2rem, 4vw, 2.6rem); color: var(--ch-forest); }
.review-card { background: var(--ch-white); border: 1px solid var(--ch-sand); padding: 2rem; height: 100%; position: relative; transition: box-shadow var(--transition), transform var(--transition); }
.review-card:hover { box-shadow: 0 8px 32px rgba(28, 43, 30, .1); transform: translateY(-4px); }
.review-stars { display: flex; gap: 3px; color: var(--ch-gold); font-size: .95rem; margin-bottom: 1rem; }
.review-quote-mark { font-family: var(--font-serif); font-size: 4rem; line-height: .5; color: var(--ch-sand); position: absolute; top: 1.25rem; right: 1.5rem; }
.review-text { font-size: .9rem; line-height: 1.75; color: var(--ch-text); margin-bottom: 1.25rem; }
.review-author { font-weight: 700; font-size: .8rem; letter-spacing: .05em; color: var(--ch-forest); }
.review-date { font-size: .75rem; color: var(--ch-muted); }

/* ─────────────────────────────────────────────────────────────
   10. CLUBHOUSE PAGE
───────────────────────────────────────────────────────────── */

/* Sticky sub-nav */
#subnav { position: sticky; top: var(--nav-height); z-index: 900; background: var(--ch-charcoal); height: var(--subnav-h); display: flex; align-items: center; border-bottom: 1px solid rgba(200, 146, 42, .2); }
.subnav-inner { display: flex; align-items: center; overflow-x: auto; scrollbar-width: none; }
.subnav-inner::-webkit-scrollbar { display: none; }
.subnav-link { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(245, 240, 232, .55); padding: 1rem 1.25rem; white-space: nowrap; border-bottom: 2px solid transparent; transition: color var(--transition), border-color var(--transition); }
.subnav-link:hover, .subnav-link.active { color: var(--ch-amber); border-bottom-color: var(--ch-gold); }

/* Hero slider */
#hero.clubhouse-hero { margin-top: var(--nav-height); min-height: auto; height: 80vh; min-height: 520px; align-items: stretch; }
.slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; }
.slide.active { opacity: 1; }
.slide-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.04); transition: transform 8s ease-out; }
.slide.active .slide-bg { transform: scale(1); }
.slide-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, .5) 100%); }
.slide-caption { position: absolute; bottom: 3.5rem; left: 0; right: 0; z-index: 2; text-align: center; color: var(--ch-white); }
.slide-caption h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 700; line-height: 1.1; text-shadow: 0 2px 20px rgba(0, 0, 0, .4); }
.slide-caption p { font-size: 1rem; opacity: .85; letter-spacing: .06em; font-weight: 300; }
.slider-controls { position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%); z-index: 5; display: flex; gap: .6rem; }
.slider-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(253, 250, 245, .35); border: none; cursor: pointer; transition: background var(--transition), transform var(--transition); }
.slider-dot.active { background: var(--ch-gold); transform: scale(1.3); }
.slider-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; background: rgba(28, 43, 30, .5); border: 1px solid rgba(200, 146, 42, .4); color: var(--ch-cream); width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 1.2rem; transition: background var(--transition); }
.slider-arrow:hover { background: var(--ch-gold); color: var(--ch-forest); }
.slider-arrow.prev { left: 1.5rem; }
.slider-arrow.next { right: 1.5rem; }

/* Section scaffold */
.ch-section { padding: 6rem 0; scroll-margin-top: calc(var(--nav-height) + var(--subnav-h)); }
.ch-section-alt { background: var(--ch-cream); }
.ch-section-dark { background: var(--ch-forest); }
.section-intro { max-width: 680px; }
.section-intro h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); color: var(--ch-forest); line-height: 1.2; }
.section-intro p { color: var(--ch-muted); font-size: .95rem; }

/* Feature blocks */
.feature-block { padding: 3rem 0; border-bottom: 1px solid var(--ch-sand); }
.feature-block:last-child { border-bottom: none; }
.feature-block h3 { font-size: 1.6rem; color: var(--ch-forest); margin-bottom: .75rem; }
.feature-block .feature-desc { color: var(--ch-muted); font-size: .92rem; margin-bottom: 1.25rem; }
.feature-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.feature-tag { display: inline-flex; align-items: center; gap: .4rem; background: var(--ch-sand); color: var(--ch-forest); font-size: .85rem; font-weight: 600; letter-spacing: .04em; padding: .3rem .75rem; }
.feature-tag i { color: var(--ch-gold); }

/* Mini carousels */
.mini-carousel { position: relative; overflow: hidden; background: var(--ch-sand); }
.mini-carousel-track { display: flex; transition: transform .5s ease; }
.mini-carousel-track img { min-width: 100%; height: 360px; object-fit: cover; cursor: pointer; }
.mini-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(28, 43, 30, .55); border: 1px solid rgba(200, 146, 42, .3); color: var(--ch-cream); width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 1rem; transition: background var(--transition); z-index: 2; }
.mini-arrow:hover { background: var(--ch-gold); color: var(--ch-forest); }
.mini-arrow.prev { left: .75rem; }
.mini-arrow.next { right: .75rem; }
.mini-dots { position: absolute; bottom: .75rem; left: 50%; transform: translateX(-50%); display: flex; gap: .4rem; }
.mini-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(253, 250, 245, .4); border: none; cursor: pointer; transition: background var(--transition); }
.mini-dot.active { background: var(--ch-gold); }
.enlarge-hint { position: absolute; bottom: .7rem; right: .75rem; font-size: .65rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(253, 250, 245, .6); display: flex; align-items: center; gap: .3rem; }
.enlarge-hint i { font-size: .8rem; }

/* Bedroom cards */
.bedroom-card { background: var(--ch-white); border: 1px solid var(--ch-sand); overflow: hidden; transition: box-shadow var(--transition), transform var(--transition); }
.bedroom-card:hover { box-shadow: 0 8px 32px rgba(28, 43, 30, .1); transform: translateY(-4px); }
.bedroom-card img { width: 100%; height: 220px; object-fit: cover; }
.bedroom-card-body { padding: 1.25rem 1.5rem 1.5rem; }
.bedroom-card h4 { font-size: 1.1rem; color: var(--ch-forest); margin-bottom: .5rem; }
.bedroom-specs { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .75rem; }
.bed-spec { display: flex; align-items: center; gap: .4rem; font-size: .78rem; font-weight: 600; color: var(--ch-muted); }
.bed-spec i { color: var(--ch-gold); }

/* Outdoor grid */
.outdoor-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: 280px 280px; gap: .5rem; }
.outdoor-grid .og-wide { grid-column: 1 / -1; }
.og-cell { position: relative; overflow: hidden; background: var(--ch-pine); }
.og-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.og-cell:hover img { transform: scale(1.04); }
.og-label { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.25rem 1.25rem .75rem; background: linear-gradient(to top, rgba(0, 0, 0, .7) 0%, transparent 100%); color: var(--ch-cream); font-family: var(--font-serif); font-size: 1rem; font-weight: 600; }
.og-label small { display: block; font-family: var(--font-sans); font-size: .7rem; font-weight: 500; letter-spacing: .08em; opacity: .75; margin-top: .15rem; }
@media (max-width:575px) {
  .outdoor-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .outdoor-grid .og-wide { grid-column: auto; }
}

/* Recreation cards */
.rec-card { background: var(--ch-forest); color: var(--ch-cream); padding: 2rem 1.75rem; display: flex; flex-direction: column; gap: .75rem; height: 100%; transition: background var(--transition); }
.rec-card:hover { background: var(--ch-pine); }
.rec-icon { font-size: 2.2rem; color: var(--ch-gold); }
.rec-card h4 { font-size: 1.15rem; color: var(--ch-cream); margin: 0; }
.rec-card p { font-size: .85rem; opacity: .75; margin: 0; }

/* Lightbox */
#lightbox { display: none; position: fixed; inset: 0; z-index: 9999; background: rgba(0, 0, 0, .92); align-items: center; justify-content: center; }
#lightbox.open { display: flex; }
#lightbox img { max-width: 90vw; max-height: 88vh; object-fit: contain; border: 1px solid rgba(200, 146, 42, .2); }
#lightbox-close { position: absolute; top: 1.5rem; right: 1.5rem; font-size: 1.8rem; color: var(--ch-cream); cursor: pointer; line-height: 1; opacity: .75; transition: opacity var(--transition); }
#lightbox-close:hover { opacity: 1; }

/* ─────────────────────────────────────────────────────────────
   11. AMENITIES PAGE
───────────────────────────────────────────────────────────── */

/* Quote banner */
#quote-banner { background: var(--ch-charcoal); padding: 2.5rem 0; border-bottom: 1px solid rgba(200, 146, 42, .2); }
.quote-text { font-family: var(--font-serif); font-size: clamp(1.25rem, 2.5vw, 1.75rem); color: var(--ch-cream); font-style: italic; line-height: 1.5; }
.quote-text .quote-mark { color: var(--ch-gold); font-size: 1.4em; line-height: 0; vertical-align: -.2em; }
.quote-source { font-size: .75rem; font-weight: 700; letter-spacing: .1em; color: var(--ch-sage); text-transform: uppercase; margin-top: .5rem; }

/* Category sticky nav */
#cat-nav { position: sticky; top: var(--nav-height); z-index: 900; background: var(--ch-white); height: var(--subnav-h); border-bottom: 2px solid var(--ch-sand); }
.cat-nav-inner { display: flex; overflow-x: auto; scrollbar-width: none; }
.cat-nav-inner::-webkit-scrollbar { display: none; }
.cat-link { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--ch-muted); padding: .95rem 1.25rem; white-space: nowrap; border-bottom: 2px solid transparent;  /*margin-bottom: -2px;*/ transition: color var(--transition), border-color var(--transition); }
.cat-link:hover, .cat-link.active { color: var(--ch-forest); border-bottom-color: var(--ch-gold); }

/* Amenity body */
#amenities-body { padding: 5rem 0 4rem; }
.amenity-category { padding: 3.5rem 0; border-bottom: 1px solid var(--ch-sand); scroll-margin-top: calc(var(--nav-height) + 52px + 16px); }
.amenity-category:last-child { border-bottom: none; }
.cat-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; }
.cat-icon-wrap { width: 52px; height: 52px; background: var(--ch-forest); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cat-icon-wrap i { font-size: 1.4rem; color: var(--ch-gold); }
.cat-header h2 { font-size: 1.5rem; color: var(--ch-forest); margin: 0; line-height: 1.2; }
.cat-header p { font-size: .8rem; color: var(--ch-muted); margin: .15rem 0 0; }
.amenity-item { display: flex; align-items: flex-start; gap: .75rem; padding: .65rem 0; border-bottom: 1px solid rgba(232, 223, 200, .6); transition: background var(--transition), padding var(--transition), margin var(--transition); }
.amenity-item:last-child { border-bottom: none; }
.amenity-item i { color: var(--ch-gold); font-size: 1.2rem; width: 1.5rem; text-align: center; flex-shrink: 0; margin-top: .25rem; }
.amenity-name { font-size: .88rem; font-weight: 600; color: var(--ch-text); line-height: 1.4; }
.amenity-note { font-size: .75rem; color: var(--ch-muted); font-weight: 400; display: block; }

/* Location section */
#location-section { background: var(--ch-cream); padding: 5rem 0; scroll-margin-top: calc(var(--nav-height) + 52px + 16px); }
.nearby-card { background: var(--ch-white); border: 1px solid var(--ch-sand); padding: 1.5rem; height: 100%; transition: box-shadow var(--transition), transform var(--transition); }
.nearby-card:hover { box-shadow: 0 6px 24px rgba(28, 43, 30, .08); transform: translateY(-3px); }
.nearby-card-icon { width: 40px; height: 40px; background: var(--ch-forest); display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
.nearby-card-icon i { color: var(--ch-gold); font-size: 1.1rem; }
.nearby-card h4 { font-size: 1rem; color: var(--ch-forest); margin-bottom: .75rem; }
.nearby-row { display: flex; justify-content: space-between; align-items: center; padding: .4rem 0; border-bottom: 1px solid var(--ch-sand); font-size: .82rem; }
.nearby-row:last-child { border-bottom: none; }
.nearby-name { font-weight: 600; color: var(--ch-text); }
.nearby-dist { font-size: .75rem; color: var(--ch-muted); font-weight: 500; white-space: nowrap; }
.nearby-dist i { color: var(--ch-gold); margin-right: .2rem; }
.map-placeholder { background: var(--ch-sand); border: 1px solid var(--ch-sand); height: 320px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .75rem; color: var(--ch-muted); }
.map-placeholder i { font-size: 2.5rem; color: var(--ch-sage); }
.map-placeholder p { font-size: .85rem; margin: 0; }

/* Services strip */
#services-strip { background: var(--ch-forest); padding: 4rem 0; }
.service-item { text-align: center; padding: 1.5rem 1rem; }
.service-item i { font-size: 2rem; color: var(--ch-gold); display: block; margin-bottom: .75rem; }
.service-item h5 { font-family: var(--font-serif); font-size: 1rem; color: var(--ch-cream); margin-bottom: .35rem; }
.service-item p { font-size: .8rem; color: rgba(245, 240, 232, .6); margin: 0; }

/* ─────────────────────────────────────────────────────────────
   12. CONTACT / INQUIRY PAGE
───────────────────────────────────────────────────────────── */

/* Tab bar */
#tab-bar { background: var(--ch-charcoal); border-bottom: 1px solid rgba(200, 146, 42, .2); }
.tab-btn { font-family: var(--font-sans); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(245, 240, 232, .5); background: none; border: none; padding: 1.1rem 1.75rem; border-bottom: 2px solid transparent; cursor: pointer; transition: color var(--transition), border-color var(--transition); }
.tab-btn:hover { color: var(--ch-cream); }
.tab-btn.active { color: var(--ch-amber); border-bottom-color: var(--ch-gold); display: inline-block; }
#main-content { padding: 4.5rem 0 5rem; }

/* Form labels & inputs */
.form-section-title { font-family: var(--font-sans); font-size: .65rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ch-gold); margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 1px solid var(--ch-sand); }
.ch-label { font-family: var(--font-sans); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ch-forest); margin-bottom: .4rem; display: block; }
.ch-input { width: 100%; background: var(--ch-white); border: 1px solid var(--ch-sand); border-radius: 0; padding: .7rem 1rem; font-family: var(--font-sans); font-size: .9rem; color: var(--ch-text); transition: border-color var(--transition), box-shadow var(--transition); appearance: none; }
.ch-input:focus { outline: none; border-color: var(--ch-gold); box-shadow: 0 0 0 3px rgba(200, 146, 42, .12); }
.ch-input::placeholder { color: var(--ch-muted); opacity: .7; }
select.ch-input {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' stroke='%23666' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 14px;
    padding-right: 2.5rem;
    appearance: none;
}
textarea.ch-input { resize: vertical; min-height: 110px; }
.input-group-ch { display: flex; border: 1px solid var(--ch-sand); transition: border-color var(--transition), box-shadow var(--transition); }
.input-group-ch:focus-within { border-color: var(--ch-gold); box-shadow: 0 0 0 3px rgba(200, 146, 42, .12); }
.input-group-ch .ch-input { border: none; flex: 1; }
.input-group-ch .ch-input:focus { box-shadow: none; }
.input-group-ch .ig-addon { padding: .7rem .9rem; background: var(--ch-sand); color: var(--ch-muted); font-size: .85rem; display: flex; align-items: center; }
.promo-row { display: flex; gap: .75rem; align-items: flex-end; }
.promo-row .ch-input { flex: 1; }
.promo-apply { padding: .7rem 1.25rem; background: var(--ch-sand); border: 1px solid var(--ch-sand); font-family: var(--font-sans); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ch-forest); cursor: pointer; transition: background var(--transition); white-space: nowrap; }
.promo-apply:hover { background: var(--ch-forest); color: var(--ch-cream); }
.text-phone {display: block; font-size: .9rem; margin-top: .5rem}

/* Form error state */
.error { color: var(--bs-danger); font-size: .8rem; display: block; background: var(--bs-danger-bg-subtle); padding: .25rem .5rem; }
.input-group-ch:has(+ .error), .ch-input:has(+ .error), select:has(+ .error) { border-color: #dc3545; box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .15);
}

/* Form success state */
.form-success { text-align: center; padding: 3rem 2rem; }
.form-success.show { display: block; }
.form-success .success-icon { width: 64px; height: 64px; background: var(--ch-forest); display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; }
.form-success .success-icon i { font-size: 1.8rem; color: var(--ch-gold); }
.form-success h3 { font-size: 1.5rem; color: var(--ch-forest); }
.form-success p { color: var(--ch-muted); font-size: .9rem; }

/* Sidebar */
.sidebar-card { background: var(--ch-forest); color: var(--ch-cream); padding: 2rem; margin-bottom: 1.5rem; }
.sidebar-card h4 { font-family: var(--font-serif); font-size: 1.1rem; color: var(--ch-amber); margin-bottom: 1rem; }
.sidebar-card.light { background: var(--ch-cream); color: var(--ch-forest); border: 1px solid rgba(28, 43, 30, .12); box-shadow: 0 18px 45px rgba(28, 43, 30, .08); }
.sidebar-card.light h4 { color: var(--ch-forest); }

/* Availability calendar */
.cal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.cal-title { font-family: var(--font-serif); font-size: 1rem; color: var(--ch-cream); }
.cal-nav-btn { background: none; border: 1px solid rgba(200, 146, 42, .3); color: var(--ch-cream); width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: .85rem; transition: background var(--transition), border-color var(--transition); }
.cal-nav-btn:hover { background: var(--ch-gold); border-color: var(--ch-gold); color: var(--ch-forest); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal-dow { font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(245, 240, 232, .45); text-align: center; padding: .25rem 0 .4rem; }
.cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 600; cursor: default; border-radius: 2px; transition: background var(--transition); position: relative; overflow: hidden; z-index: 0; }
.cal-day span { position: relative; z-index: 2; text-align: center; }
.cal-day span small { font-size: .6rem; opacity: .75 }
.cal-day.past { opacity: .35; cursor: not-allowed; pointer-events: none; }
.cal-day.half-start { background: linear-gradient(135deg, rgba(245, 240, 232, .06) 0%, rgba(245, 240, 232, .06) 50%, rgba(245, 240, 232, .03) 50%, rgba(245, 240, 232, .03) 100%); color: var(--ch-cream); }
.cal-day.half-end { background: linear-gradient(135deg, rgba(245, 240, 232, .03) 0%, rgba(245, 240, 232, .03) 50%, rgba(245, 240, 232, .06) 50%, rgba(245, 240, 232, .06) 100%); color: var(--ch-cream); }
.cal-day.half-start::after, .cal-day.half-end::after { content:''; position: absolute; inset: 0; border-radius: 2px; pointer-events: none; }
.cal-day.half-start::after { background: linear-gradient(135deg, transparent 0%, transparent calc(50% - 1px), rgba(200, 146, 42, .35) 50%, transparent calc(50% + 1px), transparent 100%); }
.cal-day.half-end::after { background: linear-gradient(135deg, transparent 0%, transparent calc(50% - 1px), rgba(200, 146, 42, .35) 50%, transparent calc(50% + 1px), transparent 100%); }
.cal-day.half-start, .cal-day.half-end { cursor: pointer; }
.cal-day.half-start:hover, .cal-day.half-end:hover { filter: brightness(1.25); }
.cal-day.selected-start, .cal-day.selected-end { background: rgba(200, 146, 42, .18) !important; color: var(--ch-amber); }
.cal-day.selected-range { background: rgba(200, 146, 42, .18) !important; }
.cal-error { display: none; margin-top: .75rem; padding: .65rem .75rem; border: 1px solid rgba(200, 146, 42, .35); color: var(--ch-cream); background: rgba(90, 30, 20, .35); font-size: .75rem; }
.cal-error.show { display: block; }
.cal-day.empty { background: transparent; }
.cal-day.available { color: var(--ch-cream); background: rgba(245, 240, 232, .06); }
.cal-day.available:hover { background: rgba(200, 146, 42, .2); cursor: pointer; }
.cal-day.booked { color: rgba(245, 240, 232, .2); background: rgba(245, 240, 232, .03); }
.cal-day.today { outline: 1px solid var(--ch-gold); color: var(--ch-amber); }
.cal-legend { display: flex; gap: 1.25rem; margin-top: .75rem; padding-top: .75rem; border-top: 1px solid rgba(200, 146, 42, .15); }
.cal-legend-item { display: flex; align-items: center; gap: .4rem; font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; color: rgba(245, 240, 232, .5); }
.legend-dot { width: 8px; height: 8px; border-radius: 50%; }
.legend-dot.available { background: rgba(245, 240, 232, .35); }
.legend-dot.booked { background: rgba(245, 240, 232, .1); }

/* Trust items */
.trust-item { display: flex; align-items: flex-start; gap: .75rem; padding: .65rem 0; border-bottom: 1px solid rgba(200, 146, 42, .12); }
.trust-item:last-child { border-bottom: none; }
.trust-item i { color: var(--ch-gold); font-size: 1rem; flex-shrink: 0; margin-top: .2rem; }
.trust-item-text { font-size: .82rem; opacity: .85; line-height: 1.5; }
.trust-item-title { font-weight: 700; display: block; opacity: 1; }

/* Contact tab */
.contact-method-card { background: var(--ch-cream); border: 1px solid var(--ch-sand); padding: 1.75rem; display: flex; gap: 1.25rem; align-items: flex-start; transition: box-shadow var(--transition), transform var(--transition); }
.contact-method-card:hover { box-shadow: 0 6px 24px rgba(28, 43, 30, .09); transform: translateY(-2px); }
.contact-icon-wrap { width: 46px; height: 46px; background: var(--ch-forest); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-icon-wrap i { color: var(--ch-gold); font-size: 1.2rem; }
.contact-method-card h5 { font-size: .95rem; color: var(--ch-forest); margin-bottom: .2rem; }
.contact-method-card p { font-size: .83rem; color: var(--ch-muted); margin: 0; }
.contact-method-card a { color: var(--ch-gold); font-weight: 600; font-size: .85rem; }
.contact-method-card a:hover { color: var(--ch-forest); }
.reason-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.reason-pill { padding: .35rem .9rem; border: 1px solid var(--ch-sand); font-size: .75rem; font-weight: 600; letter-spacing: .04em; color: var(--ch-muted); cursor: pointer; transition: all var(--transition); background: var(--ch-white); }
.reason-pill:hover, .reason-pill.selected { border-color: var(--ch-gold); color: var(--ch-forest); background: rgba(200, 146, 42, .08); }

/* ─────────────────────────────────────────────────────────────
   13. LAKE PAGE
───────────────────────────────────────────────────────────── */

/* Stats bar */
#lake-stats-bar { background: var(--ch-charcoal); border-bottom: 1px solid rgba(200, 146, 42, .2); padding: 0; }
.lake-stats-inner { display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none; }
.lake-stats-inner::-webkit-scrollbar { display: none; }
.lake-stat { flex: 1; min-width: 120px; text-align: center; padding: 1.5rem 1rem; }
.lake-stat-value { font-family: var(--font-serif); font-size: 1.4rem; font-weight: 700; color: var(--ch-amber); line-height: 1.1; }
.lake-stat-label { font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(245, 240, 232, .45); margin-top: .3rem; }
.lake-stat-divider { width: 1px; background: rgba(200, 146, 42, .2); align-self: stretch; }

/* Section scaffold */
.lake-section { padding: 6rem 0; }
.lake-section-alt { background: var(--ch-cream); }
.lake-headline { font-size: clamp(1.8rem, 3.5vw, 2.6rem); color: var(--ch-forest); line-height: 1.2; margin-bottom: .75rem; }
.lake-body { font-size: .95rem; color: var(--ch-muted); line-height: 1.8; margin-bottom: .75rem; }
.lake-full-img { width: 100%; display: block; object-fit: cover; }

/* Lake feature list */
.lake-feature-list { margin-top: 1.75rem; }
.lake-feature-item { display: flex; align-items: center; gap: .75rem; font-size: .88rem; font-weight: 600; color: var(--ch-text); padding: .55rem 0; border-bottom: 1px solid var(--ch-sand); }
.lake-feature-item:last-child { border-bottom: none; }
.lake-feature-item i { color: var(--ch-gold); font-size: .95rem; flex-shrink: 0; width: 1.25rem; text-align: center; }

/* Lake image stack */
.lake-img-stack { position: relative; }
.lake-img-main { width: 85%; aspect-ratio: 4/3; overflow: hidden; }
.lake-img-main img { width: 100%; height: 100%; object-fit: cover; }
.lake-img-secondary { position: absolute; bottom: -2rem; right: 0; width: 48%; aspect-ratio: 1; overflow: hidden; border: 4px solid var(--ch-white); box-shadow: 0 8px 32px rgba(0, 0, 0, .15); }
.lake-img-secondary img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width:767px) {
  .lake-img-stack { margin-bottom: 1rem; }
  .lake-img-secondary { display: none; }
  .lake-img-main { width: 100%; }
}

/* Dock feature cards */
.dock-features { display: flex; flex-direction: column; gap: .75rem; margin-top: 1.75rem; }
.dock-feature-card { display: flex; align-items: flex-start; gap: 1rem; padding: 1rem 1.25rem; background: var(--ch-white); border: 1px solid var(--ch-sand); transition: box-shadow var(--transition), transform var(--transition); }
.dock-feature-card:hover { box-shadow: 0 4px 20px rgba(28, 43, 30, .08); transform: translateX(4px); }
.dock-feature-icon { width: 40px; height: 40px; background: var(--ch-forest); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dock-feature-icon i { color: var(--ch-gold); font-size: 1rem; }
.dock-feature-title { font-weight: 700; font-size: .88rem; color: var(--ch-forest); margin-bottom: .1rem; }
.dock-feature-desc { font-size: .8rem; color: var(--ch-muted); }

/* Fish cards */
.fish-card { background: var(--ch-white); border: 1px solid var(--ch-sand); padding: 1.75rem; height: 100%; transition: box-shadow var(--transition), transform var(--transition); }
.fish-card:hover { box-shadow: 0 6px 24px rgba(28, 43, 30, .09); transform: translateY(-3px); }
.fish-icon { font-size: 2rem; color: var(--ch-gold); margin-bottom: 1rem; }
.fish-card h4 { font-size: 1.1rem; color: var(--ch-forest); margin-bottom: .5rem; }
.fish-desc { font-size: .85rem; color: var(--ch-muted); line-height: 1.7; margin-bottom: 1rem; }
.fish-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.fish-tag { font-size: .7rem; font-weight: 600; letter-spacing: .04em; background: var(--ch-sand); color: var(--ch-forest); padding: .25rem .65rem; }

/* Fishing tip cards */
.lake-tip-card { background: var(--ch-forest); color: var(--ch-cream); padding: 1.75rem; height: 100%; }
.lake-tip-icon { font-size: 1.5rem; color: var(--ch-gold); margin-bottom: .75rem; }
.lake-tip-card h5 { font-family: var(--font-serif); font-size: 1rem; color: var(--ch-amber); margin-bottom: .5rem; }
.lake-tip-card p { font-size: .83rem; opacity: .8; line-height: 1.7; margin: 0; }
.lake-tip-card strong { color: var(--ch-cream); opacity: 1; }

/* Boating numbered list */
.boating-feature-list { display: flex; flex-direction: column; gap: 0; }
.boating-item { display: flex; gap: 1.5rem; align-items: flex-start; padding: 1.5rem 0; border-bottom: 1px solid var(--ch-sand); }
.boating-item:last-child { border-bottom: none; }
.boating-item-num { font-family: var(--font-serif); font-size: 1.8rem; font-weight: 700; color: var(--ch-gold); opacity: .4; line-height: 1; flex-shrink: 0; width: 2.5rem; padding-top: .15rem; }
.boating-item h5 { font-family: var(--font-serif); font-size: 1rem; color: var(--ch-forest); margin-bottom: .35rem; }
.boating-item p { font-size: .85rem; color: var(--ch-muted); line-height: 1.7; margin: 0; }

/* Nearby section label */
.nearby-section-label { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ch-forest); padding-bottom: .75rem; border-bottom: 2px solid var(--ch-gold); display: flex; align-items: center; gap: .6rem; margin-bottom: .25rem; }
.nearby-section-label i { color: var(--ch-gold); }

/* Nearby business cards */
.nearby-business-card { background: var(--ch-white); border: 1px solid var(--ch-sand); padding: 1.5rem; height: 100%; transition: box-shadow var(--transition), transform var(--transition); }
.nearby-business-card:hover { box-shadow: 0 6px 24px rgba(28, 43, 30, .09); transform: translateY(-3px); }
.nbc-header { display: flex; align-items: center; gap: .85rem; margin-bottom: .85rem; }
.nbc-icon { width: 42px; height: 42px; background: var(--ch-forest); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.nbc-icon i { color: var(--ch-gold); font-size: 1.1rem; }
.nbc-name { font-weight: 700; font-size: .95rem; color: var(--ch-forest); line-height: 1.2; }
.nbc-dist { font-size: .75rem; color: var(--ch-muted); margin-top: .1rem; }
.nbc-dist i { color: var(--ch-gold); margin-right: .2rem; }
.nbc-desc { font-size: .83rem; color: var(--ch-muted); line-height: 1.7; margin-bottom: 1rem; }
.nbc-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.nbc-tag { display: inline-flex; align-items: center; gap: .35rem; font-size: .7rem; font-weight: 600; letter-spacing: .04em; background: var(--ch-sand); color: var(--ch-forest); padding: .25rem .65rem; }
.nbc-tag i { color: var(--ch-gold); font-size: .7rem; }

/* ─────────────────────────────────────────────────────────────
   LOGIN
───────────────────────────────────────────────────────────── */
.account-login-page { background: var(--ch-cream); min-height: calc(100vh - 160px); padding-top: 120px !important }
.account-login-page .account-card { background: var(--ch-white); border: 1px solid var(--ch-sand); box-shadow: 0 12px 30px rgba(26, 26, 24, .08); }
.account-login-page .account-card-header { background: var(--ch-forest); color: var(--ch-white); padding: 2rem; text-align: center; }
.account-login-page .account-card-header h1 { font-family: var(--font-serif); font-size: clamp(1.8rem, 4vw, 2.4rem); margin: 0 0 .75rem; }
.account-login-page .account-card-header p { color: rgba(253, 250, 245, .75); margin: 0; font-size: .95rem; line-height: 1.6; }
.account-login-page .account-eyebrow { color: var(--ch-gold) !important; font-size: .7rem !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin-bottom: .75rem !important; }
.account-login-page .account-login-form { padding: 2rem; }
.account-login-page .account-login-form .form-label { color: var(--ch-forest); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.account-login-page .ch-form-control { border: 1px solid var(--ch-sand); border-radius: 0; padding: .85rem 1rem; color: var(--ch-text); background-color: var(--ch-white); }
.account-login-page .ch-form-control:focus { border-color: var(--ch-gold); box-shadow: 0 0 0 .2rem rgba(200, 146, 42, .18); }
.account-login-page .ch-btn-primary { background: var(--ch-forest); border: 2px solid var(--ch-forest); color: var(--ch-white); border-radius: 0; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .85rem 1.5rem; }
.account-login-page .ch-btn-primary:hover, .ch-btn-primary:focus { background: var(--ch-gold); border-color: var(--ch-gold); color: var(--ch-forest); }
.account-login-page .account-card-footer { border-top: 1px solid var(--ch-sand); padding: 1rem 2rem 1.25rem; text-align: center; background: var(--ch-cream); }
.account-login-page .account-card-footer a { color: var(--ch-forest); font-size: .85rem; font-weight: 700; text-decoration: none; }
.account-login-page .account-card-footer a:hover { color: var(--ch-gold); }

/* ─────────────────────────────────────────────────────────────
    MY ACCOUNT
───────────────────────────────────────────────────────────── */
.account-card { background: #fff; border: 1px solid rgba(28, 43, 30, .12); box-shadow: 0 18px 45px rgba(28, 43, 30, .08); }
.account-table { font-size: .88rem; }
.account-table thead th { color: var(--ch-forest); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; background: var(--ch-cream); border-bottom: 1px solid rgba(28, 43, 30, .12); padding: .5rem 1rem; }
.account-table tbody td { padding: 1rem; color: var(--ch-muted); border-bottom: 1px solid rgba(28, 43, 30, .08); }
.account-table tbody tr:last-child td { border-bottom: 0; }
.account-table a { color: var(--ch-forest); font-weight: 700; text-decoration: none; }
.account-table a:hover { color: var(--ch-gold); }
.booking-status { display: inline-flex; align-items: center; padding: .3rem .65rem; border-radius: 999px; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.booking-status.pending { color: #8a5a00; background: rgba(200, 146, 42, .18); }
.booking-status.booked { color: var(--ch-cream); background: var(--ch-sage); }
.empty-account-card { padding: 2rem; text-align: center; color: var(--ch-muted); }
.empty-icon { width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1rem; border-radius: 50%; color: var(--ch-gold); background: var(--ch-sand); font-size: 1.4rem; }
.account-notice { padding: 1.25rem 1.5rem; color: var(--ch-muted); background: var(--ch-cream); }
.account-notice a, .detail-value a, .account-actions a { color: var(--ch-forest); font-weight: 700; text-decoration: none; }
.account-notice a:hover, .detail-value a:hover, .account-actions a:hover { color: var(--ch-gold); }
.account-card-header { padding: 1.1rem 1.25rem; border-bottom: 1px solid rgba(28, 43, 30, .1); background: var(--ch-sand); }
.account-card-header h3 { margin: 0; color: var(--ch-forest); font-family: var(--font-serif); font-size: 1.25rem; }
.account-card-header .btn-sm.btn-ch-primary { padding: 0.25rem 0.5rem; font-size: 0.65rem; }
.account-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; padding: 1.25rem; }
.detail-label { margin-bottom: .25rem; color: var(--ch-muted); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.detail-value { color: var(--ch-forest); font-size: .95rem; font-weight: 700; }
.account-actions { color: var(--ch-muted); font-size: .8rem; white-space: nowrap; }
.account-actions span { margin: 0 .35rem; }
.guest-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; padding: 1.25rem; }
.guest-grid div { padding: .75rem; color: var(--ch-forest); font-size: .9rem; font-weight: 700; background: rgba(28, 43, 30, .05); }
.account-copy { padding: 1.25rem; color: var(--ch-muted); font-size: .9rem; line-height: 1.7; }
.account-copy p:last-child { margin-bottom: 0; }
.cost-row, .cost-total, .cost-deposit { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; color: var(--ch-muted); font-size: .9rem; border-bottom: 1px solid rgba(28, 43, 30, .1); }
.cost-row strong, .cost-total strong, .cost-deposit strong { color: var(--ch-forest); }
.cost-total { margin-top: .5rem; color: var(--ch-forest); font-weight: 800; font-size: 1rem; }
.cost-deposit { margin-top: .75rem; padding: 1rem; color: var(--ch-forest); background: var(--ch-sand); border-bottom: 0; }
.account-tab-shell { background: #fff; border: 1px solid rgba(28, 43, 30, .12); box-shadow: 0 18px 45px rgba(28, 43, 30, .08); }
.account-tabs { display: flex; flex-wrap: wrap; gap: 0; padding: 0; background: var(--ch-sand); border-bottom: 0 }
.account-tab { border: 0; border-right: 1px solid rgba(28, 43, 30, .08); padding: 1.25rem 1.5rem; color: var(--ch-forest); background: transparent; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.account-tab:hover, .account-tab.active { color: var(--ch-cream); background: var(--ch-forest); }
.account-tab-content { padding: 1.5rem; background: #fff; border: 1px solid rgba(28, 43, 30, .12); box-shadow: 0 18px 45px rgba(28, 43, 30, .08); border-top: 0px }
.account-tab-panel { display: none; }
.account-tab-panel.active { display: block; }
.account-tab-panel > .account-card { border: 0; box-shadow: none; }
.account-tab-panel > .account-card + .account-card { margin-top: 1.5rem; }
.account-tab-panel .account-card-header { background: transparent; border-bottom: 1px solid rgba(28, 43, 30, .12); padding: 0 0 1rem; margin-bottom: 0rem; }
.account-tab-panel .account-card-header h3 { color: var(--ch-gold); }
.account-tab-panel .account-copy, .account-tab-panel .account-detail-grid, .account-tab-panel .resource-list { padding-left: 0; padding-right: 0; }
.empty-account-card h3 { color: var(--ch-forest); font-family: var(--font-serif); font-size: 1.35rem; margin-bottom: .5rem; }
.resource-list { padding: 1rem; }
.resource-link { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(28, 43, 30, .08); color: var(--ch-forest); text-decoration: none; }
.resource-link:last-child { border-bottom: 0; }
.resource-link:hover { color: var(--ch-gold); }
.resource-link strong { display: block; margin-bottom: .2rem; }
.resource-link small { display: block; color: var(--ch-muted); }
.resource-link i { font-size: 1.25rem; flex-shrink: 0; }
.map-wrap { overflow: hidden; border-top: 1px solid rgba(28, 43, 30, .08); }
.map-wrap iframe { display: block; width: 100%; min-height: 650px; border: 0; }
.account-header-link { color: var(--ch-forest); font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.account-header-link:hover { color: var(--ch-gold); }
.settings-check, .settings-options label { display: inline-flex; align-items: center; gap: .45rem; color: var(--ch-forest); font-size: .9rem; font-weight: 700; }
.settings-check input, .settings-options input { accent-color: var(--ch-gold); }
.settings-list { padding: 1.25rem; }
.settings-row { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(28, 43, 30, .08); }
.settings-row:first-child { padding-top: 0; }
.settings-row:last-child { padding-bottom: 0; border-bottom: 0; }
.settings-row strong { display: block; color: var(--ch-forest); margin-bottom: .2rem; }
.settings-row small { display: block; color: var(--ch-muted); font-size: .8rem; }
.settings-options { display: flex; align-items: center; gap: 1rem; flex-shrink: 0; }
.payment-type-options { display: flex; flex-wrap: wrap; gap: .75rem; }
.payment-type-options label { display: flex; align-items: center; gap: .45rem; padding: .75rem 1rem; color: var(--ch-forest); background: var(--ch-sand); font-size: .85rem; font-weight: 700; cursor: pointer; }
.payment-type-options input { accent-color: var(--ch-gold); }
.payment-card-fields, .payment-ach-fields { padding-top: 1rem; border-top: 1px solid rgba(28, 43, 30, .1); }

.account-card .ch-form-control, .account-card .form-select { min-height: 52px; padding: .85rem 1rem; color: var(--ch-text); border: 1px solid var(--ch-sand); border-radius: 0; box-shadow: none; }
.account-card .ch-form-control:focus, .account-card .form-select:focus { color: var(--ch-text); border-color: var(--ch-gold); outline: none; box-shadow: none; }
.account-card .form-label { margin-bottom: .4rem; color: var(--ch-forest); font-size: .85rem; font-weight: 700; }
.account-card .form-text { color: var(--ch-muted); font-size: .75rem; }
.payment-type-options { display: flex; flex-wrap: wrap; gap: .75rem; }
.payment-type-options label { display: flex; align-items: center; gap: .5rem; padding: .85rem 1rem; color: var(--ch-forest); background: var(--ch-white); border: 1px solid var(--ch-sand); font-size: .85rem; font-weight: 700; cursor: pointer; }
.payment-type-options label:hover { border-color: var(--ch-gold); }
.payment-type-options input[type="radio"] { accent-color: var(--ch-gold); }
.payment-card-fields, .payment-ach-fields { padding-top: 1.25rem; margin-top: 1.25rem; border-top: 1px solid rgba(28, 43, 30, .1); }
.account-form-note { color: var(--ch-muted); font-size: .78rem; line-height: 1.5; margin: 1rem 0 0; }
#newPaymentMethod .account-card-header h4 { color: var(--ch-forest); font-family: var(--font-serif); font-size: 1.15rem; }
.terms-box { max-height: 220px; overflow-y: auto; padding: 1rem; background: var(--ch-cream); border: 1px solid rgba(28, 43, 30, .12); color: var(--ch-muted); font-size: .85rem; line-height: 1.6; }
.account-legal-content { padding: 2rem; }
.account-legal-content h3 { margin: 2rem 0 .75rem; color: var(--ch-forest); font-family: var(--font-serif); font-size: 1.35rem; }
.account-legal-content h3:first-child { margin-top: 0; }
.account-legal-content p { color: var(--ch-text); line-height: 1.8; margin-bottom: 1rem; }
.account-legal-content a { color: var(--ch-gold); text-decoration: none; }
.account-legal-content a:hover { text-decoration: underline; }

@media (min-width:992px) {
   .navbar .dropdown:hover > .dropdown-menu { display: block; }
   .navbar .dropdown-menu { margin-top: 0px; right: 0; left: auto; }
}

@media (max-width:767.98px) {
  .map-wrap iframe { min-height: 450px; }
  .account-tabs { display: grid; grid-template-columns: 1fr; }
  .account-tab { width: 100%; text-align: left; }
  .account-detail-grid, .guest-grid { grid-template-columns: 1fr; }
  .account-table { min-width: 720px; }
  .settings-row { display: block; }
  .settings-options { margin-top: .75rem; }
}


/* JP SHIT - TIM, CLEAN PLEASE... */
.form-error {
  margin-top: 2px;
  padding: 3px 6px;
  background-color: #ffe8e6;
  color: #c53030;
  border: 1px solid #ffb3b0;
  border-radius: 2px;
  font-size: 0.8rem;
  width: fit-content;
}