    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --forest:       #0e1c10;
      --forest-mid:   #1a2e1c;
      --forest-light: #2d4a2f;
      --amber:        #c4862a;
      --amber-light:  #e0a84a;
      --cream:        #f7f2ea;
      --cream-dark:   #ede6d8;
      --stone:        #8a7d6e;
      --text-dark:    #1a1a18;
      --text-muted:   #6b6258;
    }

    [id] { scroll-margin-top: 104px; }
    body { font-family: 'Inter', sans-serif; color: var(--text-dark); background: var(--cream); overflow-x: hidden; }

    /* ── UTILITIES ── */
    .container        { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
    .container-narrow { max-width: 780px;  margin: 0 auto; padding: 0 2rem; }
    section           { padding: 7rem 2rem; }

    .eyebrow {
      display: block;
      font-size: 0.72rem; font-weight: 600;
      letter-spacing: 0.28em; text-transform: uppercase;
      color: var(--amber); margin-bottom: 1rem;
    }
    .section-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 5vw, 3.4rem);
      font-weight: 600; line-height: 1.15; margin-bottom: 1.4rem;
    }
    .body-text { font-size: 1rem; line-height: 1.85; color: var(--text-muted); }

    .btn-amber {
      display: inline-block; background: var(--amber); color: var(--forest);
      padding: 0.95rem 2.4rem; font-size: 0.8rem; font-weight: 600;
      letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
      border-radius: 2px; transition: background 0.2s, transform 0.15s;
    }
    .btn-amber:hover { background: var(--amber-light); transform: translateY(-2px); }

    .btn-outline-light {
      display: inline-block; border: 1.5px solid rgba(247,242,234,0.55); color: var(--cream);
      padding: 0.95rem 2.4rem; font-size: 0.8rem; font-weight: 500;
      letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
      border-radius: 2px; transition: border-color 0.2s, background 0.2s;
    }
    .btn-outline-light:hover { border-color: var(--cream); background: rgba(247,242,234,0.1); }

    .btn-outline-dark {
      display: inline-block; border: 1.5px solid var(--forest); color: var(--forest);
      padding: 0.85rem 2rem; font-size: 0.78rem; font-weight: 600;
      letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
      border-radius: 2px; transition: background 0.2s, color 0.2s;
    }
    .btn-outline-dark:hover { background: var(--forest); color: var(--cream); }

    .btn-dark {
      display: inline-block; background: var(--forest); color: var(--cream);
      padding: 1.05rem 2.8rem; font-size: 0.82rem; font-weight: 600;
      letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
      border-radius: 2px; transition: background 0.2s, transform 0.15s;
    }
    .btn-dark:hover { background: var(--forest-mid); transform: translateY(-2px); }

    /* ── NAV ── */
    #nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 200;
      display: flex; align-items: center; justify-content: space-between;
      padding: 1.6rem 3rem;
      transition: background 0.35s, padding 0.3s, backdrop-filter 0.35s;
    }
    #nav.scrolled { background: rgba(14,28,16,0.98); padding: 1rem 3rem; }

    .nav-logo { font-family: 'Playfair Display', serif; font-size: 1.45rem; font-weight: 700; color: var(--cream); text-decoration: none; letter-spacing: 0.02em; display: flex; align-items: center; gap: 0.6rem; }
    .nav-logo-word em { font-style: normal; color: var(--amber); }
    .nav-logo-mark { height: 44px; width: auto; display: block; }

    .nav-links { display: flex; align-items: center; gap: 2.2rem; list-style: none; }
    .nav-links a { color: var(--cream); text-decoration: none; font-size: 0.78rem; font-weight: 500; letter-spacing: 0.13em; text-transform: uppercase; opacity: 0.8; transition: opacity 0.2s, color 0.2s; }
    .nav-links a:hover { opacity: 1; color: var(--amber-light); }
    .nav-cta { background: var(--amber) !important; color: var(--forest) !important; padding: 0.5rem 1.3rem; border-radius: 2px; font-weight: 600 !important; opacity: 1 !important; }
    .nav-cta:hover { background: var(--amber-light) !important; }

    /* ── HERO ── */
    .hero { position: relative; min-height: 100vh; min-height: max(680px, 100svh); display: flex; align-items: safe center; justify-content: center; overflow: hidden; padding-top: 104px; }
    .hero-bg {
      position: absolute; inset: 0;
      background-image: url('https://a0.muscache.com/im/pictures/miso/Hosting-1369606948743760150/original/6dcde223-f425-452d-8d59-f07bfbb2e384.jpeg?im_w=1200');
      background-size: cover; background-position: center;
    }
    .hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(8,16,9,0.55) 0%, rgba(8,16,9,0.4) 22%, rgba(8,16,9,0.55) 55%, rgba(8,16,9,0.85) 100%); }
    .hero-content { position: relative; text-align: center; color: var(--cream); max-width: 860px; padding: 0 2rem 3.5rem; }
    .hero-eyebrow { font-size: 0.75rem; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(255,255,255,0.88); margin-bottom: 1.4rem; opacity: 0.9; }
    .hero-title { font-family: 'Playfair Display', serif; font-size: clamp(3.2rem, 9vw, 7rem); font-weight: 700; line-height: 1.02; margin-bottom: 1.6rem; }
    .hero-title em { font-style: italic; color: var(--amber-light); }
    .hero-sub { font-size: clamp(0.95rem, 2vw, 1.15rem); font-weight: 300; line-height: 1.7; opacity: 0.82; max-width: 580px; margin: 0 auto 2.5rem; }
    .hero-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
    .hero-scroll { position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 0.5rem; color: rgba(247,242,234,0.5); font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; }
    .scroll-line { width: 1px; height: 38px; background: linear-gradient(to bottom, rgba(247,242,234,0.55), transparent); animation: pulse 2.2s ease-in-out infinite; }
    @keyframes pulse { 0%,100%{opacity:0.4} 50%{opacity:1} }
    @media (max-height: 850px) { .hero-scroll { display: none; } }

    /* ── OUR CABINS ── */
    .cabins-section { background: var(--cream); padding: 7rem 2rem; }
    .cabins-header { text-align: center; margin-bottom: 5rem; }
    .cabins-header .section-title { max-width: 540px; margin-left: auto; margin-right: auto; margin-bottom: 1rem; }
    .cabins-header .body-text { max-width: 520px; margin: 0 auto; }

    .cabins-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; max-width: 1200px; margin: 0 auto; }

    .cabin-card { background: #fff; border-radius: 3px; overflow: hidden; box-shadow: 0 2px 20px rgba(0,0,0,0.07); transition: transform 0.3s ease, box-shadow 0.3s ease; display: flex; flex-direction: column; }
    .cabin-card:hover { transform: translateY(-6px); box-shadow: 0 12px 40px rgba(0,0,0,0.13); }

    .cabin-card-img { position: relative; aspect-ratio: 4/3; overflow: hidden; }
    .cabin-card-img a { display: block; height: 100%; }
    .cabin-card-name a { color: inherit; text-decoration: none; }
    .cabin-card-name a:hover { color: var(--amber); }
    .cabin-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .cabin-card:hover .cabin-card-img img { transform: scale(1.05); }

    .cabin-status-badge {
      position: absolute; top: 1rem; left: 1rem;
      padding: 0.35rem 0.85rem; border-radius: 50px; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
    }
    .badge-available { background: var(--amber); color: var(--forest); }
    .badge-coming-soon { background: rgba(14,28,16,0.75); color: var(--cream); backdrop-filter: blur(8px); }
    .badge-new { background: var(--forest); color: var(--amber-light); }

    .cabin-card-body { padding: 1.8rem; flex: 1; display: flex; flex-direction: column; }
    .cabin-card-name { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 600; color: var(--forest); margin-bottom: 0.5rem; }
    .cabin-card-tagline { font-size: 0.85rem; color: var(--stone); margin-bottom: 1rem; font-style: italic; }
    .cabin-card-desc { font-size: 0.88rem; line-height: 1.7; color: var(--text-muted); margin-bottom: 1.4rem; }
    .cabin-card-stats { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
    .cabin-stat { font-size: 0.75rem; font-weight: 500; color: var(--forest-mid); display: flex; align-items: center; gap: 0.35rem; }
    .cabin-stat-icon { font-size: 0.85rem; }
    .cabin-card-footer { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; margin-top: auto; }
    .cabin-rating { font-size: 0.82rem; font-weight: 700; color: var(--text-dark); display: flex; align-items: center; gap: 0.3rem; }
    .cabin-rating span { color: #855a0b; }

    /* ── CABIN DIVIDER ── */
    .cabin-divider {
      background: var(--forest);
      padding: 3rem 2rem;
      display: flex; align-items: center; justify-content: center;
      gap: 2rem;
    }
    .divider-line { flex: 1; max-width: 200px; height: 1px; background: rgba(247,242,234,0.15); }
    .divider-name { font-family: 'Playfair Display', serif; font-size: 1rem; font-weight: 600; color: var(--amber-light); letter-spacing: 0.25em; text-transform: uppercase; }

    /* ── INTRO ── */
    .intro { background: var(--cream); }
    .intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5.5rem; align-items: center; }
    .intro-img-wrap { position: relative; }
    .intro-img-wrap img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; border-radius: 2px; }
    .intro-img-accent { position: absolute; bottom: -1.4rem; right: -1.4rem; width: 52%; aspect-ratio: 1; border: 3px solid var(--amber); border-radius: 2px; pointer-events: none; }
    .intro-badges { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2.2rem; }
    .badge { display: inline-flex; align-items: center; gap: 0.45rem; background: var(--cream-dark); padding: 0.45rem 1rem; border-radius: 50px; font-size: 0.78rem; font-weight: 500; color: var(--forest-mid); }

    /* ── STATS BAR ── */
    .stats-bar { background: var(--forest); display: flex; justify-content: center; flex-wrap: wrap; }
    .stat-item { display: flex; flex-direction: column; align-items: center; padding: 1.8rem 2.8rem; border-right: 1px solid rgba(247,242,234,0.1); flex: 1; min-width: 130px; }
    .stat-item:last-child { border-right: none; }
    .stat-value { font-family: 'Playfair Display', serif; font-size: 1.9rem; font-weight: 600; color: var(--amber-light); line-height: 1; margin-bottom: 0.4rem; }
    .stat-label { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(247,242,234,0.5); }

    /* ── THE SPACE ── */
    .space { background: var(--forest); }
    .space-header { text-align: center; margin-bottom: 3.5rem; }
    .space-header .section-title { color: var(--cream); }
    .space-header .eyebrow { color: var(--amber-light); }
    .space-sub { font-size: 0.95rem; color: rgba(247,242,234,0.55); max-width: 480px; margin: 0 auto; line-height: 1.7; }
    .room-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
    .room-card { background: var(--forest-mid); border-radius: 2px; overflow: hidden; }
    .room-card-img { aspect-ratio: 4/3; overflow: hidden; }
    .room-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .room-card:hover .room-card-img img { transform: scale(1.04); }
    .room-card-body { padding: 1.8rem; }
    .room-card-title { font-family: 'Playfair Display', serif; font-size: 1.35rem; font-weight: 600; color: var(--cream); margin-bottom: 0.65rem; }
    .room-card-desc { font-size: 0.88rem; line-height: 1.72; color: rgba(247,242,234,0.6); margin-bottom: 1.2rem; }
    .room-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
    .room-tag { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--amber-light); border: 1px solid rgba(196,134,42,0.35); padding: 0.28rem 0.75rem; border-radius: 50px; }

    /* ── AMENITIES ── */
    .amenities { background: var(--cream-dark); }
    .amenities-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1.8rem; margin-top: 3.5rem; }
    .amenity { display: flex; align-items: flex-start; gap: 1rem; }
    .amenity-icon { font-size: 1.5rem; flex-shrink: 0; margin-top: 0.05rem; }
    .amenity-name { font-size: 0.9rem; font-weight: 500; color: var(--text-dark); line-height: 1.3; }
    .amenity-desc { font-size: 0.77rem; color: var(--stone); margin-top: 0.2rem; line-height: 1.4; }

    /* ── OUTDOOR ── */
    .outdoor { background: var(--forest); }
    .outdoor-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 5rem; align-items: center; }
    .outdoor-img { aspect-ratio: 3/4; overflow: hidden; border-radius: 2px; }
    .outdoor-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .outdoor .section-title { color: var(--cream); }
    .outdoor-list { list-style: none; margin-top: 1.8rem; display: flex; flex-direction: column; gap: 0.9rem; }
    .outdoor-list li { display: flex; align-items: flex-start; gap: 0.8rem; font-size: 0.92rem; line-height: 1.6; color: rgba(247,242,234,0.7); }
    .outdoor-list li::before { content: ''; width: 5px; height: 5px; background: var(--amber); border-radius: 50%; margin-top: 0.55rem; flex-shrink: 0; }

    /* ── ACTIVITIES ── */
    .activities { background: var(--cream); }

    /* Featured three */
    .activities-featured { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 4rem; }
    .activity-featured {
      background: var(--forest); border-radius: 3px; overflow: hidden;
      display: flex; flex-direction: column;
    }
    .activity-featured-img { aspect-ratio: 16/9; overflow: hidden; }
    .activity-featured-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .activity-featured:hover .activity-featured-img img { transform: scale(1.04); }
    .activity-featured-body { padding: 1.8rem; flex: 1; display: flex; flex-direction: column; }
    .activity-featured-tag {
      display: inline-block; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.16em;
      text-transform: uppercase; color: var(--amber); margin-bottom: 0.75rem;
    }
    .activity-featured-title { font-family: 'Playfair Display', serif; font-size: 1.3rem; font-weight: 600; color: var(--cream); margin-bottom: 0.75rem; line-height: 1.25; }
    .activity-featured-desc { font-size: 0.87rem; line-height: 1.72; color: rgba(247,242,234,0.65); flex: 1; }
    .activity-featured-link { display: inline-block; margin-top: 1.2rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--amber-light); text-decoration: none; border-bottom: 1px solid rgba(224,168,74,0.35); padding-bottom: 2px; transition: border-color 0.2s, color 0.2s; }
    .activity-featured-link:hover { color: var(--amber); border-color: var(--amber); }

    /* Bike support callout */
    .bike-callout {
      margin-top: 2.5rem; background: var(--cream-dark);
      border-left: 4px solid var(--amber); border-radius: 0 3px 3px 0;
      padding: 1.5rem 2rem; display: flex; align-items: flex-start; gap: 1.2rem;
    }
    .bike-callout-icon { font-size: 1.8rem; flex-shrink: 0; margin-top: 0.1rem; }
    .bike-callout-title { font-family: 'Playfair Display', serif; font-size: 1rem; font-weight: 600; color: var(--forest); margin-bottom: 0.35rem; }
    .bike-callout-text { font-size: 0.87rem; line-height: 1.7; color: var(--text-muted); }

    /* Gem hunting callout */
    .gem-callout { display: grid; grid-template-columns: 300px 1fr; gap: 0; border-radius: 12px; overflow: hidden; background: var(--forest-mid); margin-top: 2.5rem; }
    .gem-callout-img { overflow: hidden; min-height: 240px; }
    .gem-callout-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .gem-callout:hover .gem-callout-img img { transform: scale(1.04); }
    .gem-callout-body { padding: 2rem 2.2rem; display: flex; flex-direction: column; justify-content: center; }
    .gem-callout-tag { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--amber-light); display: block; margin-bottom: 0.8rem; }
    .gem-callout-title { font-family: 'Playfair Display', serif; font-size: 1.25rem; font-weight: 600; color: var(--cream); margin-bottom: 0.75rem; line-height: 1.25; }
    .gem-callout-desc { font-size: 0.87rem; line-height: 1.72; color: rgba(247,242,234,0.65); }
    .gem-callout-link { display: inline-block; margin-top: 1.2rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--amber-light); text-decoration: none; border-bottom: 1px solid rgba(224,168,74,0.35); padding-bottom: 2px; transition: border-color 0.2s, color 0.2s; }
    .gem-callout-link:hover { color: var(--amber); border-color: var(--amber); }
    @media (max-width: 640px) { .gem-callout { grid-template-columns: 1fr; } .gem-callout-img { min-height: 200px; } }

    /* More activities */
    .activities-more-label { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--stone); margin-top: 4rem; margin-bottom: 1.8rem; display: block; }
    .activities-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 2rem; }
    .activity-card { border-top: 2px solid var(--amber); padding-top: 1.4rem; }
    .activity-icon { font-size: 1.7rem; margin-bottom: 0.6rem; }
    .activity-title { font-family: 'Playfair Display', serif; font-size: 1.1rem; font-weight: 600; margin-bottom: 0.4rem; color: var(--forest); }
    .activity-desc { font-size: 0.85rem; line-height: 1.7; color: var(--text-muted); }

    @media (max-width: 900px) { .activities-featured { grid-template-columns: 1fr; } }
    @media (max-width: 768px) { .activities-featured { grid-template-columns: 1fr; } }

    /* ── GALLERY ── */
    .gallery { background: var(--forest); padding: 5rem 0; }
    .gallery-header { text-align: center; padding: 0 2rem 3rem; }
    .gallery-header .eyebrow { color: var(--amber-light); }
    .gallery-header .section-title { color: var(--cream); }
    .gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
    .g-item { overflow: hidden; cursor: pointer; }
    .g-item.tall { grid-row: span 2; }
    .g-item.wide { grid-column: span 2; }
    .g-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; aspect-ratio: 1; }
    .g-item.tall img { aspect-ratio: auto; }
    .g-item.wide img { aspect-ratio: 2/1; }
    .g-item:hover img { transform: scale(1.05); }

    /* ── REVIEWS ── */
    .reviews { background: var(--cream-dark); }
    .reviews-top { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 2rem; margin-bottom: 3.5rem; }
    .rating-big { font-family: 'Playfair Display', serif; font-size: 4.5rem; font-weight: 700; color: var(--forest); line-height: 1; }
    .rating-row { display: flex; align-items: center; gap: 1.5rem; }
    .rating-stars { color: #855a0b; font-size: 1.15rem; }
    .rating-sub { font-size: 0.82rem; color: var(--stone); margin-top: 0.3rem; }
    .guest-fav { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--forest); color: var(--cream); padding: 0.55rem 1.2rem; border-radius: 50px; font-size: 0.78rem; font-weight: 600; margin-top: 0.6rem; }
    .reviews-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.8rem; }
    .review-card { background: var(--cream); padding: 2rem; border-radius: 2px; }
    .review-stars { color: #855a0b; font-size: 0.95rem; margin-bottom: 0.9rem; letter-spacing: 0.1em; }
    .review-text { font-size: 0.9rem; line-height: 1.78; color: #4a4540; font-style: italic; margin-bottom: 1.2rem; }
    .review-author { font-size: 0.78rem; font-weight: 600; color: var(--forest); letter-spacing: 0.06em; }

    /* ── STARGAZING TEASER ── */
    .stargazing-teaser { background: #0a0e1a; padding: 7rem 2rem; }
    .stargazing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; max-width: 1200px; margin: 0 auto; }
    .stargazing-img { aspect-ratio: 4/3; overflow: hidden; border-radius: 2px; position: relative; }
    .stargazing-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .stargazing-img-overlay { position: absolute; inset: 0; background: rgba(5,8,20,0.35); }
    .stargazing-teaser .eyebrow { color: #9bb3ff; }
    .stargazing-teaser .section-title { color: #e8ecff; }
    .stargazing-teaser .body-text { color: rgba(232,236,255,0.65); }
    .photos-soon { display: inline-flex; align-items: center; gap: 0.6rem; background: rgba(155,179,255,0.12); border: 1px solid rgba(155,179,255,0.25); color: #9bb3ff; padding: 0.55rem 1.1rem; border-radius: 50px; font-size: 0.75rem; font-weight: 500; margin-top: 1.5rem; }

    /* ── STARGAZING GALLERY ── */
    .stargazing-gallery { background: #0a0e1a; padding: 0 0 5rem; }
    .sg-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
    .sg-item { overflow: hidden; cursor: pointer; }
    .sg-item.sg-tall { grid-row: span 2; }
    .sg-item.sg-wide { grid-column: span 2; }
    .sg-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; aspect-ratio: 1; }
    .sg-item.sg-tall img { aspect-ratio: auto; }
    .sg-item.sg-wide img { aspect-ratio: 2/1; }
    .sg-item:hover img { transform: scale(1.05); }
    @media (max-width: 768px) {
      .sg-grid { grid-template-columns: repeat(2, 1fr); }
      .sg-item.sg-wide { grid-column: span 1; }
      .sg-item.sg-wide img { aspect-ratio: 1; }
      .sg-item.sg-tall { grid-row: span 1; }
    }

    /* ── NIGHTFALL COMING SOON ── */
    .nightfall { background: var(--cream-dark); padding: 7rem 2rem; }
    .nightfall-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
    .nightfall-img { aspect-ratio: 4/3; overflow: hidden; border-radius: 2px; position: relative; }
    .nightfall-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .coming-soon-pill { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--forest); color: var(--amber-light); padding: 0.5rem 1.1rem; border-radius: 50px; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1.2rem; }
    .nightfall-features { list-style: none; margin-top: 1.5rem; display: flex; flex-direction: column; gap: 0.7rem; }
    .nightfall-features li { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9rem; color: var(--text-muted); }
    .nightfall-features li::before { content: ''; width: 4px; height: 4px; background: var(--amber); border-radius: 50%; flex-shrink: 0; }
    .nightfall-gallery { background: var(--cream-dark); padding: 0 2rem 5rem; }
    .nf-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; max-width: 1200px; margin: 0 auto; }
    .nf-item { overflow: hidden; border-radius: 2px; }
    .nf-item img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .nf-item:hover img { transform: scale(1.05); }
    @media (max-width: 768px) { .nf-grid { grid-template-columns: repeat(2, 1fr); } }

    /* ── LOCATION ── */
    .location { background: var(--forest); }
    .location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
    .location .section-title { color: var(--cream); }
    .location-list { list-style: none; margin-top: 2rem; display: flex; flex-direction: column; gap: 1.2rem; }
    .location-list li { display: flex; gap: 1rem; font-size: 0.9rem; line-height: 1.65; color: rgba(247,242,234,0.7); }
    .loc-icon { font-size: 1.05rem; flex-shrink: 0; margin-top: 0.05rem; }
    .location-map { aspect-ratio: 4/3; background: var(--forest-mid); border-radius: 2px; overflow: hidden; }
    .location-map img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0.7; }

    /* ── BOOK CTA ── */
    .book-cta { background: var(--amber); padding: 8rem 2rem; text-align: center; }
    .book-cta .eyebrow { color: rgba(14,28,16,0.65); }
    .book-cta-title { font-family: 'Playfair Display', serif; font-size: clamp(2.8rem, 7vw, 5rem); font-weight: 700; color: var(--forest); line-height: 1.08; margin-bottom: 1.4rem; }
    .book-cta-title em { font-style: italic; }
    .book-cta-sub { font-size: 1.02rem; color: rgba(14,28,16,0.7); line-height: 1.65; max-width: 480px; margin: 0 auto 2.5rem; }

    /* ── FOOTER ── */
    footer { background: #070e08; color: rgba(247,242,234,0.45); padding: 3.5rem 2rem; text-align: center; font-size: 0.82rem; line-height: 1.8; }
    .footer-logo { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 700; color: var(--cream); display: block; margin-bottom: 1rem; }
    .footer-logo span { color: var(--amber); }
    footer a { color: var(--amber-light); text-decoration: none; }
    footer a:hover { text-decoration: underline; }

    /* ── MOBILE ── */
    @media (max-width: 900px) {
      .cabins-grid { grid-template-columns: 1fr; max-width: 480px; }
    }
    @media (max-width: 768px) {
      #nav { padding: 1.2rem 1.5rem; }
      #nav.scrolled { padding: 0.8rem 1.5rem; }
      .nav-links { display: none; }
      .hero { align-items: flex-start; }
      .hero-content { padding-top: 2rem; padding-bottom: 4rem; }
      section { padding: 5rem 1.5rem; }
      .intro-grid, .room-grid, .outdoor-grid, .location-grid,
      .stargazing-grid, .nightfall-inner { grid-template-columns: 1fr; gap: 2.5rem; }
      .intro-img-accent { display: none; }
      .outdoor-img { aspect-ratio: 3/2; }
      .gallery-grid { grid-template-columns: repeat(2, 1fr); }
      .g-item.wide { grid-column: span 1; }
      .g-item.wide img { aspect-ratio: 1; }
      .reviews-top { flex-direction: column; align-items: flex-start; }
    }
    @media (max-width: 480px) {
      .gallery-grid { grid-template-columns: 1fr; }
      .g-item.tall { grid-row: span 1; }
    }

    /* ── ATV RENTALS ── */
    .rentals { background: var(--forest); }
    .rentals-header { text-align: center; margin-bottom: 4rem; }
    .rentals-header .section-title { color: var(--cream); }
    .rentals-header .eyebrow { color: var(--amber-light); }
    .rentals-intro { font-size: 1rem; line-height: 1.8; color: rgba(247,242,234,0.65); max-width: 640px; margin: 0 auto; text-align: center; }

    .fleet-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; max-width: 1200px; margin: 0 auto; }
    .fleet-card { background: var(--forest-mid); border-radius: 3px; overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease; }
    .fleet-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.3); }
    .fleet-card-img { position: relative; aspect-ratio: 16/10; overflow: hidden; }
    .fleet-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; transform: scale(1.3); }
    .fleet-card:hover .fleet-card-img img { transform: scale(1.36); }
    .fleet-badge {
      position: absolute; top: 1rem; left: 1rem;
      background: var(--amber); color: var(--forest);
      padding: 0.3rem 0.8rem; border-radius: 50px;
      font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
    }
    .fleet-card-body { padding: 1.8rem; flex: 1; display: flex; flex-direction: column; }
    .fleet-year { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--amber); margin-bottom: 0.4rem; }
    .fleet-name { font-family: 'Playfair Display', serif; font-size: 1.3rem; font-weight: 600; color: var(--cream); margin-bottom: 0.35rem; line-height: 1.2; }
    .fleet-type { font-size: 0.8rem; color: rgba(247,242,234,0.45); margin-bottom: 1rem; font-style: italic; }
    .fleet-specs { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.4rem; flex: 1; }
    .fleet-specs li { font-size: 0.85rem; color: rgba(247,242,234,0.7); display: flex; align-items: center; gap: 0.6rem; }
    .fleet-specs li::before { content: ''; width: 4px; height: 4px; background: var(--amber); border-radius: 50%; flex-shrink: 0; }
    .fleet-color-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; border: 1px solid rgba(255,255,255,0.2); }

    .rentals-cta-box {
      margin-top: 4rem; background: rgba(196,134,42,0.12); border: 1px solid rgba(196,134,42,0.25);
      border-radius: 3px; padding: 2.5rem; text-align: center; max-width: 640px; margin-left: auto; margin-right: auto;
    }
    .rentals-cta-box h3 { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 600; color: var(--cream); margin-bottom: 0.6rem; }
    .rentals-cta-box p { font-size: 0.9rem; color: rgba(247,242,234,0.65); line-height: 1.7; margin-bottom: 1.5rem; }

    @media (max-width: 900px) { .fleet-grid { grid-template-columns: 1fr; max-width: 480px; } }

    /* ── HERO TRUST BADGES ── */
    .hero-trust {
      display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem;
      margin-bottom: 2rem;
    }
    .hero-trust-badge {
      display: inline-flex; align-items: center; gap: 0.4rem;
      background: rgba(247,242,234,0.12); border: 1px solid rgba(247,242,234,0.25);
      backdrop-filter: blur(8px);
      color: var(--cream); padding: 0.38rem 0.9rem; border-radius: 50px;
      font-size: 0.72rem; font-weight: 500; letter-spacing: 0.04em;
    }

    /* ── WHY ARBORIUM STRIP ── */
    .why-strip { background: var(--cream-dark); padding: 4rem 2rem; }
    .why-grid {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem;
      max-width: 1100px; margin: 0 auto;
    }
    .why-item { text-align: center; }
    .why-icon { display: flex; justify-content: center; margin-bottom: 1rem; }
    .why-icon svg { width: 46px; height: 46px; stroke: var(--amber); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
    .why-title { font-family: 'Playfair Display', serif; font-size: 1rem; font-weight: 600; color: var(--forest); margin-bottom: 0.4rem; }
    .why-desc { font-size: 0.82rem; line-height: 1.65; color: var(--text-muted); }
    @media (max-width: 768px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 420px) { .why-grid { grid-template-columns: 1fr; } }

    /* ── INLINE BOOK CTA ── */
    .inline-cta {
      background: var(--forest); color: var(--cream);
      padding: 3rem 2rem; text-align: center;
    }
    .inline-cta-title {
      font-family: 'Playfair Display', serif; font-size: 1.6rem; font-weight: 600;
      margin-bottom: 0.5rem;
    }
    .inline-cta-sub { font-size: 0.88rem; opacity: 0.7; margin-bottom: 1.5rem; line-height: 1.6; }
    .inline-cta-btns { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }

    /* ── FAQ ── */
    .faq { background: var(--cream); padding: 5rem 2rem; }
    .faq-header { text-align: center; margin-bottom: 3rem; }
    .faq-list { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 0; }
    .faq-item { border-bottom: 1px solid var(--cream-dark); }
    .faq-item:first-child { border-top: 1px solid var(--cream-dark); }
    .faq-question {
      width: 100%; background: none; border: none; cursor: pointer;
      display: flex; justify-content: space-between; align-items: center;
      padding: 1.3rem 0; text-align: left;
      font-family: 'Inter', sans-serif; font-size: 0.95rem; font-weight: 500;
      color: var(--text-dark); gap: 1rem;
    }
    .faq-question:hover { color: var(--forest); }
    .faq-chevron { flex-shrink: 0; font-size: 0.7rem; color: var(--amber); transition: transform 0.25s; }
    .faq-item.open .faq-chevron { transform: rotate(180deg); }
    .faq-answer {
      max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.25s ease;
    }
    .faq-item.open .faq-answer { max-height: 400px; }
    .faq-answer-inner { padding-bottom: 1.2rem; font-size: 0.88rem; line-height: 1.78; color: var(--text-muted); }

    /* ── BOOK CTA DUAL BUTTONS ── */
    .book-cta-btns { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; margin-top: 0.5rem; }
    .btn-dark-outline {
      display: inline-block; border: 2px solid var(--forest); color: var(--forest);
      padding: 1.05rem 2.2rem; font-size: 0.82rem; font-weight: 600;
      letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
      border-radius: 2px; transition: background 0.2s, color 0.2s;
    }
    .btn-dark-outline:hover { background: var(--forest); color: var(--cream); }

    /* ── FLOATING BOOK BAR ── */
    .book-float {
      position: fixed; bottom: 0; left: 0; right: 0; z-index: 300;
      background: var(--forest); color: var(--cream);
      padding: 0.9rem 2rem;
      display: flex; align-items: center; justify-content: space-between; gap: 1rem;
      transform: translateY(100%); transition: transform 0.35s ease;
      box-shadow: 0 -4px 30px rgba(0,0,0,0.25);
    }
    .book-float.visible { transform: translateY(0); }
    .book-float-text { font-size: 0.85rem; line-height: 1.4; }
    .book-float-text strong { display: block; font-family: 'Playfair Display', serif; font-size: 1rem; }
    .book-float-btns { display: flex; gap: 0.75rem; flex-shrink: 0; }
    .book-float-close {
      background: none; border: none; cursor: pointer; color: rgba(247,242,234,0.45);
      font-size: 1.1rem; padding: 0.25rem; align-self: flex-start; flex-shrink: 0;
    }
    .book-float-close:hover { color: var(--cream); }
    @media (max-width: 600px) {
      .book-float { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
      .book-float-btns { width: 100%; }
      .book-float-btns .btn-amber { flex: 1; text-align: center; padding: 0.75rem 1rem; }
    }

    /* ── MOBILE NAV HAMBURGER ── */
    .nav-hamburger {
      display: none; background: none; border: none; cursor: pointer;
      padding: 0.4rem; color: var(--cream); flex-direction: column; gap: 5px;
    }
    .nav-hamburger span {
      display: block; width: 22px; height: 2px; background: currentColor;
      border-radius: 2px; transition: transform 0.25s, opacity 0.25s;
    }
    .nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .nav-hamburger.open span:nth-child(2) { opacity: 0; }
    .nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    @media (max-width: 768px) { .nav-hamburger { display: flex; } }

    /* ── MOBILE NAV OVERLAY ── */
    .nav-mobile {
      display: none; position: fixed; inset: 0; z-index: 190;
      background: rgba(14,28,16,0.97); backdrop-filter: blur(12px);
      flex-direction: column; align-items: center; justify-content: center; gap: 2.5rem;
    }
    .nav-mobile.open { display: flex; }
    .nav-mobile a {
      color: var(--cream); text-decoration: none; font-size: 1.4rem;
      font-family: 'Playfair Display', serif; font-weight: 600;
      opacity: 0.85; transition: opacity 0.2s, color 0.2s;
    }
    .nav-mobile a:hover { opacity: 1; color: var(--amber-light); }
    .nav-mobile .nav-mobile-book {
      background: var(--amber); color: var(--forest) !important; opacity: 1 !important;
      padding: 0.85rem 2.5rem; border-radius: 2px;
      font-size: 0.9rem; font-family: 'Inter', sans-serif; font-weight: 600;
      letter-spacing: 0.1em; text-transform: uppercase;
    }

    /* ── LIGHTBOX ── */
    .lightbox { position: fixed; inset: 0; z-index: 400; background: rgba(7,14,8,0.96); display: none; align-items: center; justify-content: center; }
    .lightbox.open { display: flex; }
    .lightbox img { max-width: 90vw; max-height: 84vh; object-fit: contain; border-radius: 2px; }
    .lb-close { position: absolute; top: 1.2rem; right: 1.5rem; background: none; border: none; color: rgba(247,242,234,0.7); font-size: 1.6rem; cursor: pointer; padding: 0.5rem; z-index: 2; }
    .lb-close:hover { color: var(--cream); }
    .lb-arrow {
      position: absolute; top: 50%; transform: translateY(-50%);
      background: rgba(247,242,234,0.08); border: 1px solid rgba(247,242,234,0.25);
      color: var(--cream); font-size: 2rem; line-height: 1;
      width: 52px; height: 52px; border-radius: 50%; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      z-index: 2; transition: background 0.2s;
    }
    .lb-arrow:hover { background: rgba(196,134,42,0.5); }
    .lb-prev { left: 1.2rem; }
    .lb-next { right: 1.2rem; }
    .lb-info { position: absolute; bottom: 1.4rem; left: 50%; transform: translateX(-50%); color: rgba(247,242,234,0.75); font-size: 0.8rem; letter-spacing: 0.08em; text-align: center; white-space: nowrap; }
    @media (max-width: 600px) {
      .lb-arrow { width: 42px; height: 42px; font-size: 1.6rem; }
      .lb-prev { left: 0.5rem; }
      .lb-next { right: 0.5rem; }
      .lightbox img { max-width: 100vw; }
    }

    /* ── CABIN PAGE HERO ── */
    .hero--cabin { min-height: 78vh; min-height: max(560px, 78svh); }
    .hero-back {
      display: inline-flex; align-items: center; gap: 0.4rem;
      color: rgba(247,242,234,0.75); text-decoration: none;
      font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase;
      margin-bottom: 1.4rem;
    }
    .hero-back:hover { color: var(--amber-light); }
    .new-listing-pill {
      display: inline-flex; align-items: center; gap: 0.5rem;
      background: rgba(196,134,42,0.15); border: 1px solid rgba(196,134,42,0.35);
      color: var(--amber); padding: 0.5rem 1.1rem; border-radius: 50px;
      font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em;
    }

    /* ── GROUP STAYS ── */
    .group-stays { background: var(--forest-mid); padding: 6rem 2rem; text-align: center; }
    .group-stays .section-title { color: var(--cream); }
    .group-stays .eyebrow { color: var(--amber-light); }
    .group-sub { font-size: 1rem; line-height: 1.8; color: rgba(247,242,234,0.7); max-width: 620px; margin: 0 auto 2.5rem; }
    .group-chips { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
    .group-chip {
      background: rgba(247,242,234,0.07); border: 1px solid rgba(247,242,234,0.18);
      border-radius: 3px; padding: 1.1rem 1.6rem; min-width: 150px;
    }
    .group-chip a { text-decoration: none; }
    .group-chip-name { font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 600; color: var(--cream); }
    .group-chip-cap { font-size: 0.78rem; color: var(--amber-light); margin-top: 0.3rem; }
    .group-total { font-family: 'Playfair Display', serif; font-size: 1.15rem; color: var(--amber-light); margin-bottom: 2rem; }

    /* ── DESIGN REFINEMENTS ── */
    /* Light badge pills read as glaring white chips on dark sections — use translucent variant */
    .stargazing-teaser .badge, .outdoor .badge, .nightfall-teaser .badge {
      background: rgba(247,242,234,0.1); color: rgba(247,242,234,0.85);
      border: 1px solid rgba(247,242,234,0.18);
    }
    /* Cabin pages have 1–2 reviews; center them instead of leaving empty grid columns */
    .reviews-grid--center { grid-template-columns: repeat(auto-fit, minmax(300px, 460px)); justify-content: center; }
    /* Group-stay pointer link inside the amber book CTA */
    .book-cta-sub a { display: inline-block; margin-top: 0.9rem; font-size: 0.85rem; opacity: 0.85; }
    .book-cta-sub a:hover { opacity: 1; }
    /* Feature lists: align bullets to first line for multi-line items */
    .nightfall-features li { align-items: flex-start; }
    .nightfall-features li::before { margin-top: 0.55em; }
    /* Boxed callout for the new-listing note */
    .note-panel {
      max-width: 620px; margin: 0 auto; text-align: center;
      border: 1px solid rgba(196,134,42,0.35); border-radius: 3px;
      padding: 2.5rem 2rem; background: var(--cream);
    }

    /* ── ICON SYSTEM ── */
    /* Rendering-critical styling lives in SVG attributes; these are enhancements only */
    .icon { display: inline-block; vertical-align: -0.18em; flex-shrink: 0; }
    .amenity-icon { color: var(--amber); }
    .activity-icon { color: var(--amber); }
    .loc-icon { color: var(--amber-light); }
    .hero-trust-badge .icon, .badge .icon, .cabin-stat-icon .icon { vertical-align: -0.22em; }

    /* map embed in location section */
    .location-map iframe { width: 100%; height: 100%; border: 0; display: block; }
    .map-caption { font-size: 0.75rem; color: rgba(247,242,234,0.5); margin-top: 0.7rem; text-align: center; }
