/* Casagrand Kumbalgodu — site-wide stylesheet.
 * Extracted from inline <style> blocks in index.html (base) and the multi-page
 * shell (page-local additions). Keep edits here rather than inline on pages.
 */

/* ===== Base (shared with single-page index) ===== */
@font-face {
      font-family: 'Inter';
      src: url('assets/fonts/inter-300.woff2') format('woff2');
      font-weight: 300;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Inter';
      src: url('assets/fonts/inter-400.woff2') format('woff2');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Inter';
      src: url('assets/fonts/inter-500.woff2') format('woff2');
      font-weight: 500;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Inter';
      src: url('assets/fonts/inter-600.woff2') format('woff2');
      font-weight: 600;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Playfair Display';
      src: url('assets/fonts/playfair-400.woff2') format('woff2');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Playfair Display';
      src: url('assets/fonts/playfair-600.woff2') format('woff2');
      font-weight: 600;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: 'Playfair Display';
      src: url('assets/fonts/playfair-700.woff2') format('woff2');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }
    /* ─── Reset & Base ─── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; font-size: 16px; }
    body {
      font-family: 'Inter', sans-serif;
      color: #1C1C1E;
      background: #FAF7F2;
      line-height: 1.7;
      overflow-x: hidden;
    }
    img { display: block; max-width: 100%; height: auto; }
    a { color: inherit; text-decoration: none; }
    button { cursor: pointer; border: none; background: none; font-family: inherit; }
    .text-link,
    .text-link-light {
      font-weight: 600;
      text-decoration: underline;
      text-decoration-thickness: 1px;
      text-underline-offset: 0.18em;
    }
    .text-link { color: var(--gold-dark); }
    .text-link:hover { color: var(--dark); }
    .text-link-light { color: var(--gold-light); }
    .text-link-light:hover { color: var(--white); }

    /* ─── CSS Variables ─── */
    :root {
      --dark: #1C1C1E;
      --gold: #b88638;
      --gold-light: #f2d9a5;
      --gold-dark: #8b6224;
      --cream: #FAF7F2;
      --cream-dark: #F0EAE0;
      --muted: #6f5123;
      --white: #FFFFFF;
      --text-light: #545454;
      --section-pad: 4rem 1.25rem;
      --max-w: 1160px;
      --radius: 12px;
    }

    /* ─── Typography ─── */
    h1, h2, h3, h4 { font-family: 'Playfair Display', serif; line-height: 1.2; }
    h1 { font-size: clamp(2rem, 7vw, 3.8rem); }
    h2 { font-size: clamp(1.6rem, 5vw, 2.6rem); }
    h3 { font-size: clamp(1.1rem, 3vw, 1.5rem); }
    p { font-size: 1rem; color: #3a3a3a; }

    .section-label {
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold-dark);
      margin-bottom: 0.5rem;
    }
    .section-title { margin-bottom: 1rem; }
    .section-desc { color: var(--text-light); max-width: 620px; margin-bottom: 2.5rem; }
    .container { max-width: var(--max-w); margin: 0 auto; padding: 0 1.25rem; }

    /* ─── Buttons ─── */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      padding: 0.8rem 1.8rem;
      border-radius: 4px;
      font-size: 0.9rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      transition: all 0.25s ease;
    }
    .btn-gold {
      background: var(--gold);
      color: var(--dark);
    }
    .btn-gold:hover { background: var(--gold-light); transform: translateY(-1px); }
    .btn-outline {
      border: 1.5px solid rgba(255,255,255,0.7);
      color: var(--white);
    }
    .btn-outline:hover { background: rgba(255,255,255,0.12); }
    .btn-outline-dark {
      border: 1.5px solid var(--gold-dark);
      color: var(--gold-dark);
    }
    .btn-outline-dark:hover { background: var(--gold-dark); color: var(--white); }

    /* ─── NAV ─── */
    #nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 1000;
      padding: 1rem 1.25rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
    }
    #nav.scrolled {
      background: var(--dark);
      box-shadow: 0 2px 20px rgba(0,0,0,0.3);
      padding: 0.65rem 1.25rem;
    }
    .nav-logo img {
      height: 64px;
      width: auto;
      filter: brightness(0) invert(1) drop-shadow(0 8px 18px rgba(0,0,0,0.35));
    }
    .nav-links {
      display: none;
      gap: 1.15rem;
      list-style: none;
      flex-wrap: wrap;
      justify-content: flex-end;
      max-width: min(52rem, calc(100vw - 22rem));
      row-gap: 0.35rem;
    }
    .nav-links a {
      font-size: 0.85rem;
      font-weight: 500;
      color: rgba(255,255,255,0.85);
      letter-spacing: 0.04em;
      transition: color 0.2s;
    }
    .nav-links a:hover { color: var(--gold); }
    .nav-cta {
      display: none;
      padding: 0.5rem 1.2rem;
      background: var(--gold);
      color: var(--dark);
      border-radius: 4px;
      font-size: 0.82rem;
      font-weight: 600;
      transition: background 0.2s;
    }
    .nav-cta:hover { background: var(--gold-dark); }
    .hamburger {
      display: flex;
      flex-direction: column;
      gap: 5px;
      padding: 4px;
      z-index: 1100;
    }
    .hamburger span {
      display: block;
      width: 24px;
      height: 2px;
      background: #fff;
      border-radius: 2px;
      transition: all 0.3s ease;
    }
    .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    /* Mobile Menu Overlay */
    #mobile-menu {
      position: fixed;
      inset: 0;
      background: var(--dark);
      z-index: 1050;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2.5rem;
      padding: 5.5rem 1.5rem 2rem;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    #mobile-menu.open { opacity: 1; pointer-events: all; }
    #mobile-menu .menu-close {
      position: absolute;
      top: 1.25rem;
      right: 1.25rem;
      width: 48px;
      height: 48px;
      border: 1px solid rgba(255,255,255,0.16);
      border-radius: 999px;
      color: var(--white);
      font-size: 1.8rem;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s ease, border-color 0.2s ease;
    }
    #mobile-menu .menu-close:hover {
      background: rgba(255,255,255,0.08);
      border-color: rgba(255,255,255,0.28);
    }
    #mobile-menu a {
      font-family: 'Playfair Display', serif;
      font-size: 1.8rem;
      color: var(--white);
      transition: color 0.2s;
    }
    #mobile-menu a:hover { color: var(--gold); }
    #mobile-menu .menu-cta {
      margin-top: 1rem;
      padding: 0.9rem 2.5rem;
      background: var(--gold);
      color: var(--dark);
      border-radius: 4px;
      font-size: 1rem;
      font-weight: 600;
      font-family: 'Inter', sans-serif;
    }

    @media (min-width: 1024px) {
      .hamburger { display: none; }
      .nav-links, .nav-cta { display: flex; }
      .nav-links { align-items: center; }
      #mobile-menu { display: none !important; }
    }

    /* ─── HERO ─── */
    #hero {
      position: relative;
      min-height: 680px;
      display: flex;
      overflow: hidden;
    }
    .hero-bg {
      position: absolute;
      inset: 0;
      z-index: 0;
    }
    .hero-bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }
    .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to top,
        rgba(5,4,3,0.99) 0%,
        rgba(5,4,3,0.9) 34%,
        rgba(5,4,3,0.76) 62%,
        rgba(5,4,3,0.58) 100%
      );
      z-index: 1;
    }
    .hero-content {
      position: relative;
      z-index: 2;
      min-height: 100%;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-end;
      padding: clamp(7.5rem, 18vw, 9.5rem) 1.25rem 3.5rem;
      width: 100%;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .hero-content::before {
      content: '';
      position: absolute;
      inset: auto 0 1.5rem;
      width: min(760px, 100%);
      height: min(430px, calc(100% - 6.5rem));
      background: linear-gradient(135deg, rgba(12,10,7,0.74), rgba(12,10,7,0.4));
      border-radius: 28px;
      filter: blur(2px);
      z-index: -1;
    }
    @media (min-width: 768px) {
      .hero-content {
        padding-top: 8.75rem;
        padding-bottom: 4rem;
      }
      .hero-content::before {
        bottom: 1.75rem;
        height: min(460px, calc(100% - 5.5rem));
      }
    }
    .hero-badge {
      display: inline-flex;
      align-items: center;
      align-self: flex-start;
      gap: 0.4rem;
      background: rgba(201,160,96,0.2);
      border: 1px solid rgba(201,160,96,0.4);
      color: var(--gold-light);
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 0.35rem 0.85rem;
      border-radius: 100px;
      margin-bottom: 1.25rem;
    }
    .hero-title {
      color: var(--white);
      margin-bottom: 1rem;
      max-width: 700px;
    }
    .hero-sub {
      color: rgba(255,255,255,0.9);
      font-size: clamp(0.95rem, 2.5vw, 1.15rem);
      max-width: 560px;
      margin-bottom: 1.25rem;
      font-weight: 300;
    }
    .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem 1.5rem;
      margin-bottom: 2rem;
    }
    .hero-date {
      display: flex;
      align-items: center;
      gap: 0.45rem;
      color: rgba(255,255,255,0.92);
      font-size: 0.84rem;
      font-weight: 500;
    }
    .hero-date span {
      color: var(--gold-light);
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }
    .hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
    .hero-stats {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem 1.5rem;
      border-top: 1px solid rgba(255,255,255,0.15);
      padding-top: 1.5rem;
    }
    .hero-stat {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      color: rgba(255,255,255,0.9);
      font-size: 0.82rem;
      font-weight: 500;
    }
    .hero-stat::before {
      content: '';
      display: block;
      width: 6px;
      height: 6px;
      background: var(--gold);
      border-radius: 50%;
      flex-shrink: 0;
    }

    /* ─── HIGHLIGHTS ─── */
    #highlights {
      background: var(--dark);
      padding: 3rem 1.25rem;
    }
    .highlights-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1px;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius);
      overflow: hidden;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .highlight-card {
      background: rgba(255,255,255,0.03);
      padding: 1.75rem 1.5rem;
      text-align: center;
      transition: background 0.2s;
    }
    .highlight-card:hover { background: rgba(201,160,96,0.08); }
    .highlight-num {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 6vw, 3rem);
      font-weight: 700;
      color: var(--gold);
      display: block;
      line-height: 1;
      margin-bottom: 0.4rem;
    }
    .highlight-label {
      font-size: 0.78rem;
      color: rgba(255,255,255,0.74);
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }
    @media (min-width: 768px) {
      .highlights-grid { grid-template-columns: repeat(5, 1fr); }
    }

    /* ─── ABOUT ─── */
    #about {
      padding: var(--section-pad);
      background: var(--cream);
    }
    .about-inner {
      display: grid;
      gap: 3rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .about-image {
      border-radius: var(--radius);
      overflow: hidden;
      aspect-ratio: 4/3;
    }
    .about-image img { width: 100%; height: 100%; object-fit: cover; }
    .about-text p { margin-bottom: 1.2rem; line-height: 1.8; }
    .about-text p:last-child { margin-bottom: 0; }
    @media (min-width: 1024px) {
      .about-inner { grid-template-columns: 1fr 1fr; align-items: center; }
      .about-image {
        position: sticky;
        top: 6.5rem;
        align-self: start;
      }
    }

    /* ─── WHY KUMBALGODU ─── */
    #why {
      padding: var(--section-pad);
      background: var(--dark);
    }
    #why .section-title { color: var(--white); }
    #why .section-label { color: var(--gold); }
    #why .section-desc { color: rgba(255,255,255,0.82); }
    .why-grid {
      display: grid;
      gap: 1.25rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .why-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius);
      padding: 1.5rem;
      transition: border-color 0.25s, background 0.25s;
    }
    .why-card:hover {
      border-color: rgba(201,160,96,0.35);
      background: rgba(201,160,96,0.06);
    }
    .why-icon {
      width: 44px;
      height: 44px;
      background: rgba(201,160,96,0.12);
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 1rem;
    }
    .why-icon svg { width: 22px; height: 22px; stroke: var(--gold); fill: none; stroke-width: 1.8; }
    .why-card h3 { color: var(--white); font-size: 1.05rem; margin-bottom: 0.5rem; }
    .why-card p { color: rgba(255,255,255,0.82); font-size: 0.9rem; line-height: 1.6; }
    @media (min-width: 768px) {
      .why-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .why-grid { grid-template-columns: repeat(3, 1fr); }
    }

    /* ─── CONFIGURATIONS ─── */
    #configurations {
      padding: var(--section-pad);
      background: var(--cream-dark);
    }
    .config-header { max-width: var(--max-w); margin: 0 auto 2rem; }
    .tab-bar {
      display: flex;
      gap: 0;
      overflow-x: auto;
      scrollbar-width: none;
      border-bottom: 2px solid var(--cream-dark);
      margin-bottom: 2rem;
      max-width: var(--max-w);
      margin-left: auto;
      margin-right: auto;
    }
    .tab-bar::-webkit-scrollbar { display: none; }
    .tab-btn {
      padding: 0.8rem 1.4rem;
      font-size: 0.85rem;
      font-weight: 600;
      color: var(--text-light);
      border-bottom: 2px solid transparent;
      margin-bottom: -2px;
      white-space: nowrap;
      transition: color 0.2s, border-color 0.2s;
      flex-shrink: 0;
    }
    .tab-btn.active { color: var(--gold-dark); border-bottom-color: var(--gold-dark); }
    .tab-panel { display: none; max-width: var(--max-w); margin: 0 auto; }
    .tab-panel.active { display: grid; gap: 2rem; }
    @media (min-width: 768px) {
      .tab-panel.active { grid-template-columns: 1fr 1fr; align-items: start; }
    }
    .config-plan {
      border-radius: var(--radius);
      overflow: hidden;
      background: var(--white);
      box-shadow: 0 4px 24px rgba(0,0,0,0.08);
    }
    .config-plan img { width: 100%; }
    .config-info { padding: 0.5rem 0; }
    .config-info h3 { font-size: 1.4rem; margin-bottom: 0.25rem; }
    .config-price {
      font-size: 1.6rem;
      font-family: 'Playfair Display', serif;
      color: var(--gold);
      font-weight: 700;
      margin-bottom: 1rem;
    }
    .config-price span { font-size: 0.9rem; font-family: 'Inter', sans-serif; color: var(--text-light); font-weight: 400; }
    .config-desc { font-size: 0.93rem; line-height: 1.75; margin-bottom: 1.5rem; color: #4a4a4a; }
    .spec-table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
    .spec-table tr { border-bottom: 1px solid var(--cream-dark); }
    .spec-table td { padding: 0.65rem 0; font-size: 0.88rem; }
    .spec-table td:first-child { color: var(--text-light); width: 45%; }
    .spec-table td:last-child { font-weight: 600; color: var(--dark); }

    /* ─── GALLERY ─── */
    #gallery {
      padding: var(--section-pad);
      background: var(--dark);
    }
    #gallery .section-title { color: var(--white); }
    #gallery .section-label { color: var(--gold); }
    #gallery .section-desc { color: rgba(255,255,255,0.82); }
    .gallery-header { max-width: var(--max-w); margin: 0 auto 2rem; }
    .gallery-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 0.75rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .gallery-item {
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 4/3;
      cursor: pointer;
      position: relative;
    }
    .gallery-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.4s ease;
    }
    .gallery-item:hover img { transform: scale(1.05); }
    .gallery-item-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,0);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.3s;
    }
    .gallery-item:hover .gallery-item-overlay { background: rgba(0,0,0,0.3); }
    .gallery-zoom-icon {
      opacity: 0;
      transition: opacity 0.3s;
      color: #fff;
    }
    .gallery-item:hover .gallery-zoom-icon { opacity: 1; }
    .gallery-zoom-icon svg { width: 36px; height: 36px; stroke: #fff; fill: none; stroke-width: 1.5; }
    @media (min-width: 768px) {
      .gallery-grid { grid-template-columns: repeat(4, 1fr); }
      .gallery-item:first-child { grid-column: span 2; aspect-ratio: 16/9; }
    }

    /* Lightbox */
    #lightbox {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.95);
      z-index: 2000;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s;
    }
    #lightbox.open { opacity: 1; pointer-events: all; }
    .lightbox-img {
      max-width: 90vw;
      max-height: 85vh;
      border-radius: 6px;
      object-fit: contain;
    }
    .lightbox-close {
      position: absolute;
      top: 1.25rem; right: 1.25rem;
      color: rgba(255,255,255,0.7);
      font-size: 2rem;
      line-height: 1;
      transition: color 0.2s;
    }
    .lightbox-close:hover { color: #fff; }
    .lightbox-prev, .lightbox-next {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 48px; height: 48px;
      background: rgba(255,255,255,0.1);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-size: 1.3rem;
      transition: background 0.2s;
    }
    .lightbox-prev:hover, .lightbox-next:hover { background: rgba(201,160,96,0.4); }
    .lightbox-prev { left: 1rem; }
    .lightbox-next { right: 1rem; }
    .lightbox-caption {
      position: absolute;
      bottom: 1.5rem;
      left: 50%;
      transform: translateX(-50%);
      color: rgba(255,255,255,0.8);
      font-size: 0.85rem;
      white-space: nowrap;
    }

    /* ─── AMENITIES ─── */
    #amenities {
      padding: var(--section-pad);
      background: var(--cream);
    }
    .amenities-header { max-width: var(--max-w); margin: 0 auto 2rem; }
    .amenities-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .amenity-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 1.25rem;
      display: flex;
      align-items: flex-start;
      gap: 1rem;
      min-width: 0;
      box-shadow: 0 2px 12px rgba(0,0,0,0.05);
      transition: box-shadow 0.25s, transform 0.25s;
    }
    .amenity-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.1); transform: translateY(-2px); }
    .amenity-card > div:last-child { min-width: 0; }
    .amenity-icon {
      width: 42px;
      height: 42px;
      background: rgba(201,160,96,0.1);
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .amenity-icon svg { width: 20px; height: 20px; stroke: var(--gold); fill: none; stroke-width: 1.8; }
    .amenity-name {
      font-weight: 600;
      font-size: 0.88rem;
      margin-bottom: 0.2rem;
      overflow-wrap: anywhere;
    }
    .amenity-desc {
      font-size: 0.78rem;
      color: var(--text-light);
      line-height: 1.5;
      overflow-wrap: anywhere;
    }
    @media (min-width: 520px) {
      .amenities-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 768px) {
      .amenities-grid { grid-template-columns: repeat(3, 1fr); }
    }
    @media (min-width: 1024px) {
      .amenities-grid { grid-template-columns: repeat(4, 1fr); }
    }

    /* ─── MASTER PLAN ─── */
    #masterplan {
      padding: var(--section-pad);
      background: var(--dark);
    }
    #masterplan .section-title { color: var(--white); }
    #masterplan .section-label { color: var(--gold); }
    .masterplan-inner { max-width: var(--max-w); margin: 0 auto; }
    .masterplan-desc {
      color: rgba(255,255,255,0.82);
      max-width: 680px;
      margin-bottom: 2rem;
      line-height: 1.8;
    }
    .masterplan-image {
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: 0 8px 48px rgba(0,0,0,0.4);
    }
    .masterplan-image img { width: 100%; }

    /* ─── LOCATION ─── */
    #location {
      padding: var(--section-pad);
      background: var(--cream);
    }
    .location-inner {
      display: grid;
      gap: 2.5rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .location-map-wrap {
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,0.1);
    }
    .location-map-wrap img { width: 100%; }
    .map-link-btn {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      margin-top: 1rem;
      padding: 0.65rem 1.4rem;
      background: var(--gold);
      color: var(--dark);
      border-radius: 4px;
      font-size: 0.85rem;
      font-weight: 600;
      transition: background 0.2s;
    }
    .map-link-btn:hover { background: var(--gold-dark); }
    .map-link-btn svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; }
    .location-desc { font-size: 0.93rem; line-height: 1.8; margin-bottom: 1.5rem; color: #4a4a4a; }
    .landmarks-list { display: grid; gap: 1rem; }
    #location .section-label { color: var(--gold-dark); }
    .landmark-group h3 {
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--gold-dark);
      margin-bottom: 0.6rem;
    }
    .landmark-group ul { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; }
    .landmark-group li {
      display: flex;
      justify-content: space-between;
      font-size: 0.85rem;
      color: #4a4a4a;
      padding-bottom: 0.4rem;
      border-bottom: 1px solid var(--cream-dark);
    }
    .landmark-group li span { font-weight: 600; color: var(--dark); }
    @media (min-width: 1024px) {
      .location-inner { grid-template-columns: 1fr 1fr; align-items: start; }
    }

    /* ─── PRICING ─── */
    #pricing {
      padding: var(--section-pad);
      background: var(--dark);
    }
    #pricing .section-title { color: var(--white); }
    #pricing .section-label { color: var(--gold-light); }
    .pricing-header { max-width: var(--max-w); margin: 0 auto 2rem; }
    .pricing-desc { color: rgba(255,255,255,0.82); max-width: 560px; }
    .pricing-grid {
      display: grid;
      gap: 1.25rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .pricing-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius);
      padding: 1.75rem;
      transition: border-color 0.25s;
    }
    .pricing-card.featured {
      border-color: var(--gold);
      background: rgba(201,160,96,0.07);
    }
    .pricing-card.featured::before {
      content: 'Most Popular';
      display: inline-block;
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--gold);
      background: rgba(201,160,96,0.15);
      padding: 0.2rem 0.7rem;
      border-radius: 100px;
      margin-bottom: 1rem;
    }
    .pricing-card:not(.featured):hover { border-color: rgba(201,160,96,0.3); }
    #pricing .pricing-card .btn-outline-dark {
      border-color: var(--gold-light);
      color: var(--gold-light);
    }
    #pricing .pricing-card .btn-outline-dark:hover {
      background: var(--gold-light);
      color: var(--dark);
    }
    .pricing-config {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem;
      color: var(--white);
      margin-bottom: 0.25rem;
    }
    .pricing-area {
      font-size: 0.82rem;
      color: rgba(255,255,255,0.76);
      margin-bottom: 1.25rem;
    }
    .pricing-price-main {
      font-family: 'Playfair Display', serif;
      font-size: 1.9rem;
      color: var(--gold);
      font-weight: 700;
      margin-bottom: 0.25rem;
    }
    .pricing-rate {
      font-size: 0.8rem;
      color: rgba(255,255,255,0.78);
      margin-bottom: 1.5rem;
    }
    .pricing-divider { height: 1px; background: rgba(255,255,255,0.08); margin-bottom: 1.25rem; }
    .pricing-detail { display: flex; justify-content: space-between; font-size: 0.83rem; margin-bottom: 0.6rem; }
    .pricing-detail-label { color: rgba(255,255,255,0.76); }
    .pricing-detail-val { color: rgba(255,255,255,0.85); font-weight: 500; }
    .pricing-footnote {
      max-width: var(--max-w);
      margin: 2rem auto 0;
      color: rgba(255,255,255,0.72);
      font-size: 0.8rem;
      line-height: 1.7;
    }
    @media (min-width: 768px) {
      .pricing-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .pricing-grid { grid-template-columns: repeat(4, 1fr); }
    }

    /* ─── FAQ ─── */
    #faq {
      padding: var(--section-pad);
      background: var(--cream);
    }
    .faq-inner { max-width: 760px; margin: 0 auto; }
    .faq-header { margin-bottom: 2rem; }
    .faq-item {
      border-bottom: 1px solid var(--cream-dark);
    }
    .faq-q {
      width: 100%;
      text-align: left;
      padding: 1.1rem 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 1rem;
      font-size: 0.95rem;
      font-weight: 600;
      color: var(--dark);
      transition: color 0.2s;
    }
    .faq-q:hover { color: var(--gold); }
    .faq-q svg {
      width: 18px; height: 18px;
      stroke: currentColor;
      fill: none;
      stroke-width: 2;
      flex-shrink: 0;
      transition: transform 0.3s;
    }
    .faq-item.open .faq-q svg { transform: rotate(180deg); }
    .faq-a {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.35s ease, padding 0.25s ease;
    }
    .faq-item.open .faq-a { max-height: 300px; padding-bottom: 1.1rem; }
    .faq-a p { font-size: 0.9rem; color: #4a4a4a; line-height: 1.8; }

    /* ─── ENQUIRY FORM ─── */
    #contact {
      padding: var(--section-pad);
      background: var(--dark);
    }
    .contact-inner {
      display: grid;
      gap: 3rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .contact-info .section-title { color: var(--white); }
    .contact-info .section-label { color: var(--gold); }
    .contact-pitch {
      color: rgba(255,255,255,0.84);
      font-size: 0.93rem;
      line-height: 1.8;
      margin-top: 1rem;
    }
    .contact-detail {
      margin-top: 2rem;
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }
    .contact-detail-item {
      display: flex;
      align-items: flex-start;
      gap: 0.75rem;
    }
    .contact-detail-icon {
      width: 38px; height: 38px;
      background: rgba(201,160,96,0.12);
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .contact-detail-icon svg { width: 18px; height: 18px; stroke: var(--gold); fill: none; stroke-width: 1.8; }
    .contact-detail-text { font-size: 0.88rem; color: rgba(255,255,255,0.84); padding-top: 0.2rem; }
    .contact-detail-text strong { display: block; color: var(--white); font-size: 0.92rem; margin-bottom: 0.1rem; }
    .form-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius);
      padding: 2rem 1.5rem;
    }
    .form-row { display: grid; gap: 1rem; margin-bottom: 1rem; }
    @media (min-width: 600px) {
      .form-row { grid-template-columns: 1fr 1fr; }
    }
    .form-group { display: flex; flex-direction: column; gap: 0.4rem; }
    .form-group label { font-size: 0.78rem; font-weight: 600; color: rgba(255,255,255,0.82); letter-spacing: 0.05em; }
    .form-group input,
    .form-group select,
    .form-group textarea {
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 6px;
      padding: 0.75rem 1rem;
      font-family: 'Inter', sans-serif;
      font-size: 0.9rem;
      color: var(--white);
      transition: border-color 0.2s;
      outline: none;
      width: 100%;
    }
    .form-group select option { background: var(--dark); color: var(--white); }
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus { border-color: var(--gold); }
    .form-group input.error,
    .form-group select.error,
    .form-group textarea.error { border-color: #e55; }
    .field-error { font-size: 0.75rem; color: #f87; display: none; }
    .field-error.show { display: block; }
    .form-group textarea { resize: vertical; min-height: 90px; }
    .form-submit {
      width: 100%;
      padding: 0.9rem;
      background: var(--gold);
      color: var(--dark);
      border-radius: 6px;
      font-size: 0.95rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      margin-top: 0.5rem;
      transition: background 0.2s, transform 0.2s;
    }
    .form-submit:hover { background: var(--gold-dark); transform: translateY(-1px); }
    .form-submit:disabled {
      opacity: 0.72;
      cursor: not-allowed;
      transform: none;
    }
    .form-status {
      margin-top: 1rem;
      padding: 0.95rem 1rem;
      border-radius: 8px;
      font-size: 0.9rem;
      line-height: 1.6;
      border: 1px solid transparent;
    }
    .form-status[hidden] { display: none; }
    .form-status.success {
      background: rgba(201,160,96,0.16);
      border-color: rgba(201,160,96,0.45);
      color: rgba(255,255,255,0.9);
    }
    .form-status.error {
      background: rgba(229,85,85,0.16);
      border-color: rgba(229,85,85,0.4);
      color: #ffd8d8;
    }
    @media (min-width: 1024px) {
      .contact-inner { grid-template-columns: 1fr 1.4fr; align-items: start; }
    }

    /* ─── FOOTER ─── */
    #footer {
      background: #111012;
      padding: 3rem 1.25rem 1.5rem;
      border-top: 1px solid rgba(255,255,255,0.06);
    }
    .footer-inner {
      display: grid;
      gap: 2.5rem;
      max-width: var(--max-w);
      margin: 0 auto;
    }
    .footer-brand img {
      height: 56px;
      width: auto;
      margin-bottom: 0.75rem;
      filter: brightness(0) invert(1) drop-shadow(0 8px 18px rgba(0,0,0,0.35));
    }
    .footer-tagline { font-size: 0.83rem; color: rgba(255,255,255,0.72); line-height: 1.6; max-width: 260px; }
    .footer-col-title {
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1rem;
    }
    .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 0.55rem; }
    .footer-col ul li a { font-size: 0.83rem; color: rgba(255,255,255,0.78); transition: color 0.2s; }
    .footer-col ul li a:hover { color: var(--gold); }
    .footer-col address { font-style: normal; font-size: 0.83rem; color: rgba(255,255,255,0.76); line-height: 1.8; }
    .footer-disclaimer {
      max-width: var(--max-w);
      margin: 2.5rem auto 0;
      padding-top: 1.5rem;
      border-top: 1px solid rgba(255,255,255,0.06);
      font-size: 0.75rem;
      color: rgba(255,255,255,0.62);
      line-height: 1.7;
    }
    .footer-copy {
      max-width: var(--max-w);
      margin: 1rem auto 0;
      font-size: 0.75rem;
      color: rgba(255,255,255,0.62);
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 0.5rem;
    }
    @media (min-width: 768px) {
      .footer-inner { grid-template-columns: 1.5fr 1fr 1fr 1.5fr; }
    }

    /* ─── Scroll-reveal utility ─── */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.55s ease, transform 0.55s ease;
    }
    .reveal.visible { opacity: 1; transform: none; }

    /* ─── Divider ─── */
    .gold-divider {
      width: 48px;
      height: 3px;
      background: var(--gold);
      border-radius: 2px;
      margin: 1rem 0 1.5rem;
    }

/* ===== Multi-page shell additions (hero, prose, data tables, notices) ===== */
/* Page-local additions for multi-page shell */
    .page-updated { color: rgba(255,255,255,0.72); font-size: 0.85rem; letter-spacing: 0.05em; margin-bottom: 0.75rem; }
    .page-updated time { color: var(--gold-light); font-weight: 600; }
    .page-hero { padding: 8rem 1.25rem 3.5rem; background: var(--dark); color: var(--white); position: relative; overflow: hidden; }
    .page-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(201,160,96,0.08) 0%, rgba(0,0,0,0) 60%); z-index: 0; }
    .page-hero-inner { max-width: var(--max-w); margin: 0 auto; position: relative; z-index: 1; display: grid; gap: 2.5rem; }
    .page-hero h1 { color: var(--white); margin-bottom: 1rem; }
    .page-hero .lead { font-size: 1.05rem; color: rgba(255,255,255,0.85); line-height: 1.85; max-width: 640px; margin-bottom: 1.5rem; }
    .page-hero .lead a { color: var(--gold-light); text-decoration: underline; text-underline-offset: 0.18em; }
    .page-hero-image { border-radius: var(--radius); overflow: hidden; box-shadow: 0 12px 48px rgba(0,0,0,0.4); }
    .page-hero-image img { width: 100%; display: block; }
    .page-hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 2rem 0 2rem; border-top: 1px solid rgba(255,255,255,0.12); border-bottom: 1px solid rgba(255,255,255,0.12); padding: 1.25rem 0; }
    .page-hero-stat .num { font-family: 'Playfair Display', serif; font-size: clamp(1.35rem, 4vw, 1.9rem); color: var(--gold); display: block; line-height: 1.1; }
    .page-hero-stat .lbl { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.66); }
    .page-hero-ctas { display: flex; gap: 0.9rem; flex-wrap: wrap; }
    @media (min-width: 900px) { .page-hero-inner { grid-template-columns: 1.1fr 1fr; align-items: center; } }
    .prose-section { padding: var(--section-pad); }
    .prose-section.bg-light { background: var(--cream); }
    .prose-section.bg-white { background: var(--white); }
    .prose-section.bg-dark { background: var(--dark); color: rgba(255,255,255,0.88); }
    .prose-section.bg-dark h2 { color: var(--white); }
    .prose-section.bg-dark a { color: var(--gold-light); text-decoration: underline; text-underline-offset: 0.18em; }
    .prose-inner { max-width: 780px; margin: 0 auto; }
    .prose-inner.wide { max-width: var(--max-w); }
    .prose-inner h2 { margin-bottom: 1rem; }
    .prose-inner p { font-size: 1rem; line-height: 1.85; margin-bottom: 1.2rem; color: #3a3a3a; }
    .prose-section.bg-dark .prose-inner p { color: rgba(255,255,255,0.82); }
    .prose-inner a { color: var(--gold-dark); text-decoration: underline; text-underline-offset: 0.18em; font-weight: 600; }
    .prose-section.bg-dark .prose-inner a { color: var(--gold-light); }
    .prose-inner ul, .prose-inner ol { margin: 0 0 1.4rem 1.2rem; }
    .prose-inner li { font-size: 0.97rem; line-height: 1.8; margin-bottom: 0.45rem; color: inherit; }
    .data-table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.75rem; font-size: 0.9rem; }
    .data-table th, .data-table td { padding: 0.7rem 0.85rem; text-align: left; border-bottom: 1px solid rgba(0,0,0,0.08); }
    .prose-section.bg-dark .data-table th, .prose-section.bg-dark .data-table td { border-bottom-color: rgba(255,255,255,0.12); }
    .data-table th { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-dark); font-weight: 700; }
    .prose-section.bg-dark .data-table th { color: var(--gold-light); }
    .closing-cta { padding: 4rem 1.25rem; background: var(--dark); color: var(--white); text-align: center; }
    .closing-cta-inner { max-width: 620px; margin: 0 auto; }
    .closing-cta h2 { color: var(--white); margin-bottom: 0.9rem; }
    .closing-cta p { color: rgba(255,255,255,0.78); margin-bottom: 1.75rem; line-height: 1.8; }
    .notice { background: rgba(201,160,96,0.08); border-left: 3px solid var(--gold); padding: 1rem 1.25rem; border-radius: 4px; font-size: 0.9rem; line-height: 1.75; color: #4a4a4a; margin: 1.25rem 0 1.75rem; }
    .prose-section.bg-dark .notice { background: rgba(201,160,96,0.12); color: rgba(255,255,255,0.82); }
