/*
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: #16324F;
    --navy-dark: #0E2438;
    --navy-soft: #274a6e;
    --orange: #D97B29;
    --orange-light: #F0A557;
    --cream: #FAF6EF;
    --cream-dark: #F1E9DA;
    --ink: #20242B;
    --white: #FFFFFF;
    --shadow: 0 20px 50px rgba(14,36,56,0.18);
  }

  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:'Jost', sans-serif;
    color:var(--ink);
    background:var(--cream);
    overflow-x:hidden;
  }
  h1,h2,h3,h4{ font-family:'Playfair Display', 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:'Jost', sans-serif; text-transform:uppercase; letter-spacing:0.22em;
    font-size:0.75rem; color:var(--orange); font-weight:600; 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.05rem; 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(--orange); color:var(--white); }
  .btn-primary:hover{ background:var(--orange-light); transform:translateY(-2px); box-shadow:0 12px 24px rgba(217,123,41,0.35); }
  .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); }

  /* ---------- 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(14,36,56,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:'Cormorant Garamond', serif; font-weight:400; font-size:0.4rem;
    letter-spacing:0.42em; text-transform:uppercase; color:var(--orange-light);
    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(--orange); 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(--orange);
    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; }

  /* ---------- 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(14,36,56,0.55) 0%, rgba(14,36,56,0.35) 45%, rgba(14,36,56,0.75) 100%);
  }
  .hero-content{ position:relative; z-index:2; max-width:820px; padding:8.5vh 24px 0; }
  .hero-content .eyebrow{ color:var(--orange-light); }
  .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(--orange-light);
    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{
    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(--orange); }
  .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.02rem; }

  .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:'Playfair Display', serif; font-size:2.4rem; color:var(--orange-light); display:block; }
  .stat .label{ color:var(--white); opacity:0.85; 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:3px solid var(--orange);
    box-shadow:0 10px 26px rgba(14,36,56,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:0.92rem; 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(--orange); }
  .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; }

  /* ---------- 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(14,36,56,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(--orange); font-family:'Playfair Display', 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:0.92rem; 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 rgba(22,50,79,0.14);
    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(--orange); 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(14,24,36,0.72); }
  .brand-statement blockquote{
    position:relative; z-index:2; max-width:820px; margin:0 auto; font-family:'Playfair Display', serif;
    font-style:italic; font-size:1.6rem; line-height:1.6;
  }
  .brand-statement blockquote::before{ content:'“'; color:var(--orange-light); 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:'Playfair Display', serif; font-size:2rem; color:var(--orange); display:block; }
  .events .mini-stat .num{ color:var(--orange-light); }
  .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:rgba(255,255,255,0.75); }
  .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:'Jost',sans-serif; font-size:0.82rem;
    letter-spacing:0.08em; text-transform:uppercase;
  }
  .stay-card .img .tag{
    position:absolute; top:18px; left:18px; background:var(--orange); color:var(--white);
    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(--orange-light); 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:0.96rem; }
  .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(--orange); }

  /* ---------- 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(--orange); border-color:var(--orange); }
  .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(--orange-light); }
  .event-panel p{ opacity:0.85; line-height:1.8; margin-bottom:14px; }
  .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(14,36,56,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(14,36,56,0.45); opacity:1; }

  .lightbox{
    position:fixed; inset:0; background:rgba(10,20,30,0.94); z-index:2000; display:none;
    align-items:center; justify-content:center;
  }
  .lightbox.open{ display:flex; }
  .lightbox img{
    max-width:88vw; max-height:88vh; border-radius:1px; touch-action:pan-y;
    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:fixed; top:18px; right:18px; color:var(--white); font-size:1.8rem; z-index:2002;
    width:48px; height:48px; display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,0.12); border-radius:50%; transition:background .3s ease;
  }
  .lightbox-close:hover{ background:rgba(255,255,255,0.22); }
  .lightbox-nav{
    position:fixed; inset:0; display:flex; align-items:center; justify-content:space-between;
    padding:0 14px; pointer-events:none; z-index:2001;
  }
  .lightbox-nav button{
    pointer-events:auto; color:var(--white); font-size:1.7rem; opacity:0.9;
    width:52px; height:52px; min-width:52px; border-radius:50%; background:rgba(255,255,255,0.12);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    transition:background .3s ease, opacity .3s ease; -webkit-tap-highlight-color:transparent;
  }
  .lightbox-nav button:hover{ opacity:1; background:rgba(217,123,41,0.85); }
  .lightbox-nav button:active{ background:rgba(217,123,41,0.95); transform:scale(0.94); }

  /* ---------- 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; }
  .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 rgba(22,50,79,0.12); 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(--orange); border-color:var(--orange); }

  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(--orange); }
  .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(--orange-light); font-size:1.6rem; margin-bottom:14px; }
  .form-success p{ opacity:0.85; line-height:1.7; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--navy-dark); 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(--orange-light); }
  .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-dark); 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; }
  }
