/*
Theme Name: Chateau Changeux
Theme URI: https://chateauchangeux.com
Author: Mel & Jean
Author URI: https://chateauchangeux.com
Description: Custom single-page theme for Chateau Changeux, a luxury wedding and event venue in Vouzeron, France.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
License: Unlicense
Text Domain: chateauchangeux
*/

  :root{
    --navy: #16263F;
    --navy-900: #0D1727;
    --navy-soft: #2E4258;
    --navy-200: #D8DCE3;
    --orange: #C4652A;
    --orange-deep: #9C4A18;
    --gold: #D6A247;
    --ember-200: #F6E3D3;
    --cream: #F3F2F2;
    --cream-dark: #EAE9E9;
    --ink: #201F1D;
    --white: #FFFFFF;
    --shadow: 0 20px 50px rgba(13,23,39,0.18);
  }

  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:'Lora', serif;
    color:var(--ink);
    background:var(--cream);
    overflow-x:hidden;
  }
  h1,h2,h3,h4{ font-family:'Cormorant Garamond', serif; font-weight:600; letter-spacing:0.01em; }
  a{ text-decoration:none; color:inherit; }
  img{ display:block; max-width:100%; }
  ul{ list-style:none; }
  button{ font-family:inherit; cursor:pointer; border:none; background:none; }

  .container{ max-width:1180px; margin:0 auto; padding:0 32px; }
  .eyebrow{
    font-family:'Lora', serif; text-transform:uppercase; letter-spacing:0.22em;
    font-size:0.75rem; color:var(--gold); font-weight:400; margin-bottom:14px; display:block;
  }
  .section-head{ max-width:640px; margin:0 auto 56px; text-align:center; }
  .section-head h2{ font-size:2.4rem; color:var(--navy); margin-bottom:16px; }
  .section-head p{ color:#555; font-size:1.0625rem; line-height:1.7; }
  section{ padding:110px 0; position:relative; scroll-margin-top:100px; }

  .btn{
    display:inline-flex; align-items:center; gap:10px; padding:15px 34px;
    font-size:0.82rem; text-transform:uppercase; letter-spacing:0.14em; font-weight:600;
    border-radius:2px; transition:all .35s ease; cursor:pointer; white-space:nowrap;
  }
  .btn-primary{ background:var(--navy); color:var(--white); border:1px solid var(--navy); }
  .btn-primary:hover{ background:var(--navy-soft); border-color:var(--navy-soft); transform:translateY(-2px); box-shadow:0 12px 24px rgba(13,23,39,0.3); }
  .btn-outline{ border:1px solid rgba(255,255,255,0.7); color:var(--white); }
  .btn-outline:hover{ background:rgba(255,255,255,0.12); transform:translateY(-2px); }
  .btn-navy{ background:var(--navy); color:var(--white); }
  .btn-navy:hover{ background:var(--navy-soft); transform:translateY(-2px); }
  /* On solid-navy sections a navy-filled .btn-primary would vanish; give it a gold hairline treatment there instead */
  .events .btn-primary, .history-close .btn-primary, .inquire .btn-primary{
    background:transparent; border:1px solid var(--gold); color:var(--gold);
  }
  .events .btn-primary:hover, .history-close .btn-primary:hover, .inquire .btn-primary:hover{
    background:var(--gold); color:var(--navy-900); box-shadow:none; transform:translateY(-2px);
  }

  /* ---------- NAV ---------- */
  #nav{
    position:fixed; top:0; left:0; width:100%; z-index:1000;
    display:flex; align-items:center; justify-content:space-between;
    padding:26px 48px; transition:all .4s ease;
  }
  #nav.scrolled{ background:rgba(13,23,39,0.96); padding:16px 48px; box-shadow:var(--shadow); backdrop-filter:blur(6px); }
  .logo{ display:flex; align-items:center; gap:14px; font-family:'Cormorant Garamond', serif; color:var(--white); }
  .logo-mark{ height:44px; width:auto; transition:height .4s ease; }
  #nav.scrolled .logo-mark{ height:36px; }
  .logo-text{ display:flex; flex-direction:column; align-items:center; line-height:1; }
  .logo-small{
    font-family:'Lora', serif; font-weight:400; font-size:0.4rem;
    letter-spacing:0.42em; text-transform:uppercase; color:var(--gold);
    margin-bottom:6px; width:100%; text-align:center;
  }
  .logo-divider{ width:62%; height:1px; background:rgba(255,255,255,0.45); margin:0 auto 6px; }
  .logo-main{ font-weight:400; font-size:1.15rem; letter-spacing:0.02em; color:var(--white); }
  .footer-logo{
    display:inline-flex; align-items:center; justify-content:center; background:var(--cream);
    padding:10px 16px; border-radius:6px; margin-bottom:18px; gap:12px;
  }
  .footer-logo img{ height:56px; width:auto; display:block; }
  .footer-logo-text{ display:flex; flex-direction:column; align-items:center; line-height:1; font-family:'Cormorant Garamond', serif; }
  .footer-logo-small{
    font-weight:400; font-size:0.5rem; letter-spacing:0.42em; text-transform:uppercase;
    color:var(--gold); margin-bottom:5px; width:100%; text-align:center;
  }
  .footer-logo-divider{ width:62%; height:1px; background:var(--navy); opacity:0.4; margin:0 auto 5px; }
  .footer-logo-main{ font-weight:400; font-size:1.4rem; letter-spacing:0.02em; color:var(--navy); }
  .nav-links{ display:flex; align-items:center; gap:26px; }
  .nav-links a{
    color:var(--white); font-size:0.82rem; text-transform:uppercase; letter-spacing:0.12em;
    position:relative; padding-bottom:6px; font-weight:500; opacity:0.9; transition:opacity .3s;
  }
  .nav-links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
    transition:width .3s ease;
  }
  .nav-links a:hover, .nav-links a.active{ opacity:1; }
  .nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
  .nav-cta{ display:flex; align-items:center; gap:22px; }
  .burger{ display:none; flex-direction:column; gap:5px; z-index:1100; }
  .burger span{ width:26px; height:2px; background:var(--white); display:block; transition:all .3s; }

  /* ---------- LANGUAGE SWITCHER ---------- */
  .lang-switch{ display:flex; align-items:center; gap:8px; margin-left:4px; padding-left:16px; border-left:1px solid rgba(255,255,255,0.25); }
  .lang-switch button{
    background:none; border:none; cursor:pointer; color:var(--white); font-family:'Lora', serif; font-size:0.72rem;
    letter-spacing:0.08em; text-transform:uppercase; opacity:0.55; padding:2px 3px; transition:opacity .3s, color .3s;
  }
  .lang-switch button:hover{ opacity:0.9; }
  .lang-switch button.active{ opacity:1; color:var(--gold); }
  #nav.mobile-open .lang-switch{ border-left:none; padding-left:0; margin-left:0; margin-top:6px; }

  /* ---------- HERO ---------- */
  .hero{
    height:100vh; height:100dvh; min-height:640px; display:flex; align-items:flex-start; justify-content:center;
    text-align:center; position:relative; color:var(--white); overflow:hidden;
  }
  .hero-bg{
    position:absolute; inset:0; background:url('photos/hero.jpg') center/cover no-repeat;
    transform:scale(1.08); transition:transform 6s ease-out;
  }
  .hero.loaded .hero-bg{ transform:scale(1); }
  .hero-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(13,23,39,0.55) 0%, rgba(13,23,39,0.35) 45%, rgba(13,23,39,0.75) 100%);
  }
  .hero-content{ position:relative; z-index:2; max-width:820px; padding:55px 24px 0; }
  .hero-content .eyebrow{ color:var(--gold); }
  .hero-wordmark{ display:flex; flex-direction:column; align-items:center; margin-bottom:18px; font-family:'Cormorant Garamond', serif; }
  .hero-wordmark-small{
    font-weight:400; text-transform:uppercase; letter-spacing:0.42em; color:var(--gold);
    font-size:clamp(0.8rem, 1.6vw, 1.2rem); margin-bottom:14px;
  }
  .hero-wordmark-divider{ width:62%; height:1px; background:rgba(255,255,255,0.5); margin-bottom:14px; }
  .hero-wordmark-main{ font-weight:400; line-height:1; font-size:clamp(2.4rem, 6vw, 4.2rem); color:var(--white); }
  .hero-content .tagline{ font-style:italic; font-size:1.1rem; letter-spacing:0.08em; color:var(--white); margin-bottom:26px; text-transform:uppercase; }
  .hero-content p{ font-size:1.15rem; font-weight:300; margin-bottom:40px; opacity:0.92; line-height:1.6; }
  .hero-buttons{
    position:absolute; bottom:90px; left:50%; transform:translateX(-50%); z-index:2; width:100%;
    display:flex; gap:18px; justify-content:center; flex-wrap:wrap;
  }
  .hero-buttons .btn{ width:300px; justify-content:center; box-sizing:border-box; }
  .scroll-cue{
    position:absolute; bottom:18px; left:50%; transform:translateX(-50%); z-index:2;
    display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--white); opacity:0.85;
  }
  .scroll-cue .line{ width:1px; height:34px; background:var(--white); animation:scrollPulse 2s infinite; }
  .hero-content p:last-of-type,
  .hero-content .tagline{
    animation: heroFadeOut 1.5s ease forwards;
    animation-delay: 3s;
  }
  @keyframes heroFadeOut{
    from{ opacity:1; }
    to{ opacity:0; visibility:hidden; }
  }
  @keyframes scrollPulse{ 0%{opacity:0.2;} 50%{opacity:1;} 100%{opacity:0.2;} }

  /* ---------- REVEAL ---------- */
  .reveal{ opacity:0; transform:translateY(34px); transition:opacity .8s ease, transform .8s ease; }
  .reveal.visible{ opacity:1; transform:translateY(0); }

  /* ---------- INTRO / CHATEAU ---------- */
  .intro{ background:var(--cream); }
  .intro-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
  .intro-images{ position:relative; }
  .intro-images img{ border-radius:2px; }
  .intro-img-main{ width:100%; height:440px; object-fit:cover; box-shadow:0 0 0 6px var(--cream), 0 0 0 7px var(--navy), var(--shadow); }
  .intro-img-accent{
    position:absolute; bottom:-40px; right:-40px; width:55%; height:220px; object-fit:cover;
    border:8px solid var(--cream); box-shadow:0 0 0 1px var(--navy), var(--shadow);
  }
  .intro-text .eyebrow{ color:var(--gold); }
  .intro-text h2{ font-size:2.2rem; color:var(--navy); margin-bottom:22px; }
  .intro-text p{ color:#555; line-height:1.8; margin-bottom:18px; font-size:1.0625rem; }

  .stats-bar{
    margin-top:100px; display:grid; grid-template-columns:repeat(5,1fr); background:var(--navy);
    border-radius:2px; overflow:hidden; box-shadow:var(--shadow);
  }
  .stat{ text-align:center; padding:42px 16px; border-right:1px solid rgba(255,255,255,0.12); }
  .stat:last-child{ border-right:none; }
  .stat .num{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:2.4rem; color:var(--white); display:block; }
  .stat .label{ color:var(--gold); opacity:0.9; text-transform:uppercase; font-size:0.72rem; letter-spacing:0.1em; margin-top:8px; display:block; }

  /* ---------- SPACES ---------- */
  .spaces{ background:var(--cream-dark); }
  .space-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-bottom:64px; }
  .space-card{
    background:var(--white); padding:28px 24px; border-left:2px solid var(--gold);
    box-shadow:0 10px 26px rgba(13,23,39,0.08); transition:transform .35s ease, box-shadow .35s ease;
  }
  .space-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
  .space-card h4{ color:var(--navy); font-size:1.15rem; margin-bottom:10px; }
  .space-card p{ color:#666; font-size:1.0625rem; line-height:1.6; }
  .grounds-note{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; margin-top:64px; }
  .grounds-note img{ width:100%; height:340px; object-fit:cover; border-radius:2px; box-shadow:0 0 0 6px var(--cream), 0 0 0 7px var(--navy), var(--shadow); }
  .grounds-note .text .eyebrow{ color:var(--gold); }
  .grounds-note .text h3{ color:var(--navy); font-size:1.7rem; margin-bottom:18px; }
  .grounds-note .text p{ color:#555; line-height:1.8; margin-bottom:14px; font-size:1.0625rem; }

  /* ---------- EXPERIENCE ---------- */
  .experience{ background:var(--cream); }
  .indulgence-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
  .indulgence-card{ text-align:center; padding:40px 22px; background:var(--white); border-radius:2px; box-shadow:0 10px 26px rgba(13,23,39,0.08); transition:transform .35s ease; }
  .indulgence-card:hover{ transform:translateY(-6px); }
  .indulgence-card .mark{
    width:46px; height:46px; margin:0 auto 18px; border-radius:50%; background:var(--cream-dark);
    display:flex; align-items:center; justify-content:center; color:var(--gold); font-family:'Cormorant Garamond', serif; font-size:1.2rem;
  }
  .indulgence-card h4{ color:var(--navy); font-size:1.1rem; margin-bottom:10px; }
  .indulgence-card p{ color:#666; font-size:1.0625rem; line-height:1.6; }
  .coming-soon{
    margin-top:54px; text-align:center; padding:28px; background:var(--cream-dark); border-radius:2px;
  }
  .coming-soon .eyebrow{ display:block; margin-bottom:10px; }
  .coming-soon p{ color:#555; font-size:0.92rem; line-height:1.8; }
  .coming-soon-list{
    list-style:none; max-width:560px; margin:20px auto 0; padding:20px 0 0; border-top:1px solid var(--navy-200);
    display:flex; flex-direction:column; gap:12px;
  }
  .coming-soon-list li{
    display:flex; justify-content:space-between; align-items:baseline; gap:16px;
    font-size:0.92rem; text-align:left;
  }
  .coming-soon-list .item{ color:var(--navy); font-weight:500; }
  .coming-soon-list .date{
    color:var(--gold); text-transform:uppercase; letter-spacing:0.06em; font-size:0.78rem; white-space:nowrap;
  }

  /* ---------- BRAND STATEMENT ---------- */
  .brand-statement{
    position:relative; padding:140px 0; color:var(--white); text-align:center; overflow:hidden;
  }
  .brand-statement .bg{
    position:absolute; inset:0; background:url('photos/aerial-mono.jpg') center/cover no-repeat;
  }
  .brand-statement .overlay{ position:absolute; inset:0; background:rgba(13,23,39,0.72); }
  .brand-statement blockquote{
    position:relative; z-index:2; max-width:820px; margin:0 auto; font-family:'Cormorant Garamond', serif;
    font-style:italic; font-weight:600; font-size:1.6rem; line-height:1.6;
  }
  .brand-statement blockquote::before{ content:'“'; color:var(--gold); font-size:2rem; display:block; margin-bottom:10px; font-style:normal; }

  /* ---------- MINI STATS ---------- */
  .mini-stats{ display:flex; justify-content:center; gap:56px; margin:-16px 0 56px; flex-wrap:wrap; }
  .mini-stat{ text-align:center; }
  .mini-stat .num{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:2rem; color:var(--navy); display:block; }
  .events .mini-stat .num{ color:var(--white); }
  .mini-stat .label{ text-transform:uppercase; font-size:0.72rem; letter-spacing:0.1em; color:#666; margin-top:4px; display:block; }
  .events .mini-stat .label{ color:var(--gold); opacity:0.95; }
  .floor-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:36px; }

  /* ---------- STAYS ---------- */
  .stays{ background:var(--cream-dark); }
  .stay-cards{ display:grid; grid-template-columns:1fr 1fr; gap:36px; }
  .stay-card{
    background:var(--white); border-radius:2px; overflow:hidden; box-shadow:var(--shadow);
    transition:transform .4s ease, box-shadow .4s ease;
  }
  .stay-card:hover{ transform:translateY(-8px); }
  .stay-card .img{ height:260px; background-size:cover; background-position:center; position:relative; box-shadow:inset 0 0 0 6px var(--cream), inset 0 0 0 7px var(--navy); }
  .stay-card .img.img-placeholder{
    background:linear-gradient(135deg, var(--navy-soft) 0%, var(--navy) 100%);
    display:flex; align-items:center; justify-content:center;
  }
  .placeholder-note{
    color:rgba(255,255,255,0.65); font-family:'Lora',serif; font-size:0.82rem;
    letter-spacing:0.08em; text-transform:uppercase;
  }
  .stay-card .img .tag{
    position:absolute; top:18px; left:18px; background:var(--navy); color:var(--gold);
    padding:6px 16px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.1em; border-radius:2px;
  }
  .stay-card .img .tag.tag-clickable{
    cursor:pointer; display:inline-flex; align-items:center; gap:6px;
    transition:background .3s ease, transform .3s ease;
  }
  .stay-card .img .tag.tag-clickable:hover{ background:var(--navy-soft); transform:translateY(-2px); }
  .tag-icon{ font-size:0.9rem; line-height:1; }
  .stay-card .body{ padding:32px; }
  .stay-card h3{ color:var(--navy); font-size:1.5rem; margin-bottom:10px; }
  .stay-card p{ color:#666; line-height:1.7; margin-bottom:18px; font-size:1.0625rem; }
  .stay-card ul{ margin-bottom:24px; }
  .stay-card ul li{ color:#555; font-size:0.92rem; padding:6px 0; padding-left:22px; position:relative; }
  .stay-card ul li::before{ content:'•'; position:absolute; left:0; color:var(--gold); }

  /* ---------- EVENTS ---------- */
  .events{ background:var(--navy); color:var(--white); }
  .events .section-head h2, .events .section-head p{ color:var(--white); }
  .events .section-head p{ opacity:0.8; }
  .event-tabs{ display:flex; justify-content:center; gap:14px; margin-bottom:50px; flex-wrap:wrap; }
  .event-tab-btn{
    padding:12px 26px; border:1px solid rgba(255,255,255,0.3); color:var(--white); border-radius:2px;
    font-size:0.82rem; text-transform:uppercase; letter-spacing:0.1em; transition:all .3s;
  }
  .event-tab-btn.active, .event-tab-btn:hover{ background:var(--gold); border-color:var(--gold); color:var(--navy-900); }
  .event-panels{ position:relative; min-height:280px; }
  .event-panel{
    display:none; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
  }
  .event-panel.active{ display:grid; animation:fadeIn .5s ease; }
  @keyframes fadeIn{ from{opacity:0; transform:translateY(12px);} to{opacity:1; transform:translateY(0);} }
  .event-panel img{ width:100%; height:340px; object-fit:cover; border-radius:2px; box-shadow:0 0 0 6px var(--cream), 0 0 0 7px var(--navy); }
  .event-panel h3{ font-size:1.8rem; margin-bottom:16px; color:var(--white); }
  .event-panel p{ opacity:0.85; line-height:1.8; margin-bottom:14px; font-size:1.0625rem; }
  .event-cta{ text-align:center; margin-top:60px; }

  /* ---------- GALLERY ---------- */
  .gallery{ background:var(--cream); }
  .gallery-filters{ display:flex; justify-content:center; gap:12px; margin-bottom:42px; }
  .filter-btn{
    padding:10px 24px; border:1px solid var(--navy); color:var(--navy); border-radius:2px;
    font-size:0.78rem; text-transform:uppercase; letter-spacing:0.1em; transition:all .3s;
  }
  .filter-btn.active, .filter-btn:hover{ background:var(--navy); color:var(--white); }
  .gallery-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }
  .gallery-item{
    height:220px; border-radius:1px; overflow:hidden; cursor:pointer; position:relative;
    background-size:cover; background-position:center; transition:transform .4s ease;
    box-shadow:0 0 0 6px var(--cream), 0 0 0 7px var(--navy);
  }
  .gallery-item:nth-child(4n+1){ grid-row: span 2; height:auto; }
  .gallery-item:hover{ transform:scale(1.02); }
  .gallery-item .overlay{
    position:absolute; inset:0; background:rgba(13,23,39,0.0); display:flex; align-items:center; justify-content:center;
    transition:background .3s; color:var(--white); opacity:0; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase;
  }
  .gallery-item:hover .overlay{ background:rgba(13,23,39,0.45); opacity:1; }

  .lightbox{
    position:fixed; inset:0; background:rgba(10,17,28,0.94); z-index:2000; display:none;
    align-items:center; justify-content:center; flex-direction:column;
  }
  .lightbox.open{ display:flex; }
  .lightbox img{ max-width:82vw; max-height:78vh; border-radius:1px; box-shadow:0 0 0 8px var(--cream), 0 0 0 9px rgba(255,255,255,0.3), 0 30px 80px rgba(0,0,0,0.5); }
  .lightbox-close{ position:absolute; top:30px; right:44px; color:var(--white); font-size:2rem; }
  .lightbox-nav{ display:flex; gap:60px; margin-top:26px; }
  .lightbox-nav button{ color:var(--white); font-size:1.6rem; opacity:0.8; }
  .lightbox-nav button:hover{ opacity:1; color:var(--gold); }

  /* ---------- LOCATION ---------- */
  .location{ background:var(--cream-dark); }
  .location-grid{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:stretch; }
  .location-info h3{ color:var(--navy); font-size:1.5rem; margin-bottom:18px; }
  .location-info p{ color:#555; line-height:1.8; margin-bottom:22px; font-size:1.0625rem; }
  .location-info .addr{ font-size:1.05rem; color:var(--navy); font-weight:500; margin-bottom:26px; }
  .location-info ul li{ padding:10px 0; border-bottom:1px solid var(--navy-200); color:#555; }
  .location-info ul li strong{ color:var(--navy); }
  .map-wrap{ border-radius:2px; overflow:hidden; box-shadow:var(--shadow); min-height:380px; }
  .map-wrap iframe{ width:100%; height:100%; min-height:380px; border:0; }
  .map-wrap img{ width:100%; height:100%; min-height:380px; object-fit:cover; display:block; }
  .map-wrap svg{ width:100%; height:100%; min-height:380px; display:block; }

  /* ---------- INQUIRE ---------- */
  .inquire{ background:var(--navy); color:var(--white); }
  .inquire .section-head h2, .inquire .section-head p{ color:var(--white); }
  .inquire .section-head p{ opacity:0.8; }
  .inquire-toggle{ display:flex; justify-content:center; gap:0; margin-bottom:44px; }
  .toggle-btn{
    padding:14px 38px; background:transparent; border:1px solid rgba(255,255,255,0.35); color:var(--white);
    font-size:0.82rem; text-transform:uppercase; letter-spacing:0.1em; transition:all .3s;
  }
  .toggle-btn:first-child{ border-radius:2px 0 0 2px; }
  .toggle-btn:last-child{ border-radius:0 2px 2px 0; }
  .toggle-btn.active{ background:var(--gold); border-color:var(--gold); color:var(--navy-900); }

  form#inquire-form{ max-width:640px; margin:0 auto; background:rgba(255,255,255,0.05); padding:44px; border-radius:2px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
  .form-group{ margin-bottom:20px; }
  .form-group.full{ grid-column:1 / -1; }
  .form-group label{ display:block; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:8px; opacity:0.8; }
  .form-group input, .form-group select, .form-group textarea{
    width:100%; padding:13px 14px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25);
    color:var(--white); border-radius:2px; font-family:inherit; font-size:0.95rem;
  }
  .form-group input::placeholder, .form-group textarea::placeholder{ color:rgba(255,255,255,0.45); }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus{ outline:none; border-color:var(--gold); }
  .form-group select option{ color:#111; }
  .field-hint{ font-size:0.78rem; opacity:0.6; margin-top:6px; }
  .visually-hidden{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .field-error{
    display:none; font-size:0.78rem; margin-top:6px; color:#FF9A85;
  }
  .form-group.has-error input{ border-color:#FF6B5B; background:rgba(255,107,91,0.08); }
  .form-group.has-error .field-error{ display:block; }
  .form-submit{ text-align:center; margin-top:8px; }
  .form-success{
    display:none; text-align:center; padding:50px 20px;
  }
  .form-success.show{ display:block; }
  .form-success h3{ color:var(--gold); font-size:1.6rem; margin-bottom:14px; }
  .form-success p{ opacity:0.85; line-height:1.7; font-size:1.0625rem; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--navy-900); color:rgba(255,255,255,0.7); padding:60px 0 30px; }
  .footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:50px; margin-bottom:40px; }
  .footer-grid h4{ color:var(--white); font-size:1.05rem; margin-bottom:18px; }
  .footer-grid p{ line-height:1.7; font-size:0.92rem; }
  .footer-grid ul li{ padding:6px 0; font-size:0.92rem; }
  .footer-grid ul li a:hover{ color:var(--gold); }
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,0.1); padding-top:24px; text-align:center; font-size:0.8rem; opacity:0.6;
  }

  @media(max-width:900px){
    .nav-links, .nav-cta .btn{ display:none; }
    .burger{ display:flex; }
    #nav.mobile-open .nav-links{
      display:flex; flex-direction:column; position:fixed; top:0; right:0; width:72%; height:100vh; height:100dvh;
      background:var(--navy-900); padding:100px 40px; gap:28px; align-items:flex-start;
    }
    .hero-buttons .btn{ width:auto; min-width:220px; }
    .intro-grid, .stay-cards, .event-panel, .location-grid, .grounds-note, .floor-grid{ grid-template-columns:1fr; }
    .stats-bar{ grid-template-columns:repeat(2,1fr); }
    .stat{ border-right:none; border-bottom:1px solid rgba(255,255,255,0.12); }
    .space-grid, .indulgence-grid{ grid-template-columns:repeat(2,1fr); }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); }
    .gallery-item:nth-child(4n+1){ grid-row:span 1; height:220px; }
    .form-row{ grid-template-columns:1fr; }
    .footer-grid{ grid-template-columns:1fr; }
    .intro-img-accent{ display:none; }
    .brand-statement blockquote{ font-size:1.3rem; }
  }

  /* ---------- PAGE HERO (subpages, e.g. History) ---------- */
  .page-hero{
    position:relative; height:64vh; min-height:440px; display:flex; align-items:center; justify-content:center;
    text-align:center; color:var(--white); overflow:hidden;
  }
  .page-hero-bg{ position:absolute; inset:0; background-size:cover; background-position:center; }
  #wedding-hero-bg{ background-position:center 38%; }
  .page-hero-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(13,23,39,0.6) 0%, rgba(13,23,39,0.45) 45%, rgba(13,23,39,0.82) 100%);
  }
  .page-hero-content{ position:relative; z-index:2; max-width:740px; padding:0 24px; }
  .page-hero-content .eyebrow{ color:var(--gold); }
  .page-hero-content h1{ font-size:clamp(2rem, 5vw, 3.2rem); color:var(--white); margin-bottom:14px; font-weight:400; }
  .page-hero-content .motto{
    font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:600; font-size:1.25rem; letter-spacing:0.05em;
    color:var(--gold); margin-bottom:20px; display:block;
  }
  .page-hero-content p{ font-size:1.0625rem; line-height:1.75; opacity:0.9; }

  /* ---------- HISTORY PAGE SECTIONS ---------- */
  .alt-bg{ background:var(--cream-dark); }
  .history-copy{ max-width:760px; margin:0 auto; }
  .history-copy .eyebrow{ color:var(--gold); }
  .history-copy h2{ font-size:2.1rem; color:var(--navy); margin-bottom:22px; }
  .history-copy p{ color:#555; line-height:1.85; margin-bottom:18px; font-size:1.0625rem; }

  .history-grid{ display:grid; grid-template-columns:2.1fr 1fr; gap:56px; align-items:start; }
  .history-grid .eyebrow{ color:var(--gold); }
  .history-grid h2{ font-size:2.1rem; color:var(--navy); margin-bottom:22px; }
  .history-grid p{ color:#555; line-height:1.85; margin-bottom:18px; font-size:1.0625rem; }

  .keydates-card{
    background:var(--white); padding:30px 26px; border-left:2px solid var(--gold);
    box-shadow:0 10px 26px rgba(13,23,39,0.08);
  }
  .keydates-card h4{
    color:var(--gold); text-transform:uppercase; letter-spacing:0.16em; font-size:0.72rem; margin-bottom:20px; font-family:'Lora', serif; font-weight:400;
  }
  .keydates-card dl{ display:flex; flex-direction:column; gap:16px; }
  .keydates-card dt{ color:var(--navy); font-family:'Cormorant Garamond', serif; font-size:1.1rem; font-weight:600; }
  .keydates-card dd{ color:#666; font-size:0.86rem; line-height:1.55; margin-top:3px; }

  .figure-caption{
    font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:600; color:#666; font-size:0.88rem;
    margin-top:12px; text-align:center;
  }

  .architect-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:52px; }
  .architect-row h3{
    grid-column:1 / -1; text-align:center; color:var(--navy); font-size:1.1rem; margin:0 0 8px;
    text-transform:uppercase; letter-spacing:0.14em; font-family:'Lora', serif; font-weight:600;
  }
  .architect-card{ text-align:center; }
  .architect-card img{
    width:100%; height:230px; object-fit:cover; border-radius:2px; margin-bottom:16px;
    box-shadow:0 0 0 6px var(--cream), 0 0 0 7px var(--navy), var(--shadow);
  }
  .alt-bg .architect-card img{ box-shadow:0 0 0 6px var(--cream-dark), 0 0 0 7px var(--navy), var(--shadow); }
  .architect-card h4{ color:var(--navy); font-size:1rem; margin-bottom:4px; }
  .architect-card span{ color:var(--gold); font-size:0.76rem; text-transform:uppercase; letter-spacing:0.1em; }

  .legacy-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
  .legacy-photo img{
    width:100%; height:200px; object-fit:cover; border-radius:1px; filter:saturate(0.88);
    box-shadow:0 0 0 6px var(--cream), 0 0 0 7px var(--navy);
  }
  .alt-bg .legacy-photo img{ box-shadow:0 0 0 6px var(--cream-dark), 0 0 0 7px var(--navy); }
  .legacy-photo .caption{
    font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:600; color:#666; font-size:0.86rem;
    margin-top:10px; text-align:center;
  }

  .protection-list{ margin:22px 0 26px; display:flex; flex-direction:column; gap:10px; }
  .protection-list li{
    color:#555; font-size:1.0625rem; padding:4px 0 4px 22px; position:relative; line-height:1.6;
  }
  .protection-list li::before{ content:'—'; position:absolute; left:0; color:var(--gold); }

  .timeline-wrap{ overflow-x:auto; margin-top:8px; }
  .timeline-table{
    width:100%; border-collapse:collapse; box-shadow:var(--shadow); border-radius:2px; overflow:hidden; min-width:560px;
  }
  .timeline-table th{
    background:var(--navy); color:var(--white); text-transform:uppercase; letter-spacing:0.1em;
    font-size:0.72rem; text-align:left; padding:14px 22px; font-weight:600;
  }
  .timeline-table td{
    padding:14px 22px; border-bottom:1px solid var(--navy-200); color:#444; font-size:0.92rem; background:var(--white);
  }
  .timeline-table tr:nth-child(even) td{ background:var(--cream-dark); }
  .timeline-table td:first-child{ color:var(--navy); font-weight:600; white-space:nowrap; width:150px; }

  .history-close{ background:var(--navy); color:var(--white); text-align:center; }
  .history-close h2{ color:var(--white); font-size:2rem; margin-bottom:16px; }
  .history-close p{ color:rgba(255,255,255,0.8); max-width:560px; margin:0 auto 34px; line-height:1.8; font-size:1.0625rem; }
  .history-close .btn-row{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; }

  .doc-links{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-top:30px; }
  .doc-links .btn{ display:inline-flex; align-items:center; gap:10px; }
  .doc-links .btn svg{ width:15px; height:15px; flex-shrink:0; }

  @media(max-width:900px){
    .history-grid{ grid-template-columns:1fr; }
    .architect-row{ grid-template-columns:1fr 1fr; }
    .architect-row h3{ margin-top:6px; }
    .legacy-gallery{ grid-template-columns:repeat(2,1fr); }
  }
  @media(max-width:560px){
    .architect-row{ grid-template-columns:1fr; }
  }

  /* ---------- OCCASION PAGES (Weddings, Vacation, Corporate, Photography) ---------- */
  .mini-stats-pair{ display:flex; gap:48px; margin:26px 0 4px; flex-wrap:wrap; }

  .package-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:30px; }
  .package-card{ background:var(--white); padding:34px 30px; border-top:2px solid var(--gold); box-shadow:0 10px 26px rgba(13,23,39,0.08); }
  .alt-bg .package-card{ box-shadow:0 10px 26px rgba(13,23,39,0.1); }
  .package-card .tag{ color:var(--gold); text-transform:uppercase; letter-spacing:0.14em; font-size:0.72rem; font-weight:400; margin-bottom:10px; display:block; font-family:'Lora', serif; }
  .package-card h3{ color:var(--navy); font-size:1.5rem; margin-bottom:6px; }
  .package-card .sub{ color:#777; font-size:0.88rem; margin-bottom:22px; display:block; }
  .package-card .price{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:2.2rem; color:var(--navy); }
  .package-card .price .from{ font-family:'Lora', serif; font-size:0.85rem; color:#888; font-weight:400; margin-left:8px; }
  .package-card ul{ margin-top:22px; display:flex; flex-direction:column; gap:11px; padding-top:20px; border-top:1px solid var(--navy-200); }
  .package-card ul li{ color:#555; font-size:1.0625rem; padding-left:20px; position:relative; line-height:1.55; }
  .package-card ul li::before{ content:'•'; position:absolute; left:0; color:var(--gold); }
  .package-note{ color:#666; font-style:italic; font-size:1.0625rem; margin-bottom:6px; }
  .package-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
  .package-grid.cols-3 .package-card ul li{ font-size:0.98rem; }

  .price-list-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:10px; }
  .price-list{ list-style:none; display:flex; flex-direction:column; gap:16px; }
  .price-list li{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-bottom:12px; border-bottom:1px solid var(--navy-200); }
  .price-list .item{ color:var(--navy); font-weight:500; font-size:0.98rem; }
  .price-list .item .desc{ display:block; color:#888; font-weight:400; font-size:0.83rem; margin-top:3px; }
  .price-list .price{ color:var(--navy); font-family:'Cormorant Garamond', serif; white-space:nowrap; font-size:1.05rem; font-weight:600; }

  .note-box{ margin-top:34px; padding:26px 28px; background:var(--cream-dark); border-left:2px solid var(--gold); }
  .alt-bg .note-box{ background:var(--white); }
  .note-box .tag{ color:var(--gold); text-transform:uppercase; letter-spacing:0.14em; font-size:0.72rem; font-weight:400; margin-bottom:8px; display:block; font-family:'Lora', serif; }
  .note-box p{ color:#555; line-height:1.7; font-size:1.0625rem; margin:0; }

  .tbd-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:28px; }
  .tbd-card{ border:1.5px dashed var(--navy-200); padding:32px 22px; text-align:center; border-radius:2px; }
  .tbd-card h4{
    color:var(--navy); font-size:0.95rem; margin-bottom:10px; text-transform:uppercase; letter-spacing:0.09em;
    font-family:'Lora', serif; font-weight:600;
  }
  .tbd-card p{ color:#888; font-size:0.88rem; line-height:1.6; font-style:italic; }

  .related-links{ margin-top:32px; font-size:0.85rem; color:rgba(255,255,255,0.7); }
  .related-links a{ text-decoration:underline; text-underline-offset:3px; color:rgba(255,255,255,0.9); }
  .related-links a:hover{ color:var(--gold); }

  @media(max-width:900px){
    .package-grid, .price-list-grid{ grid-template-columns:1fr; }
    .package-grid.cols-3{ grid-template-columns:1fr; }
    .tbd-grid{ grid-template-columns:1fr; }
    .mini-stats-pair{ gap:32px; }
  }

  @media(max-width:1150px) and (min-width:901px){
    .package-grid.cols-3{ grid-template-columns:1fr 1fr; }
  }
