    @font-face {
      font-family: 'Authenia';
      src: url('../fonts/authenia.woff2') format('woff2');
      font-weight: normal; font-style: normal; font-display: swap;
    }
    @font-face {
      font-family: 'AlQuds';
      src: url('../fonts/alquds.woff2') format('woff2');
      font-weight: normal; font-style: normal; font-display: swap;
    }

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

    :root {
      --paper:   #f8f3e8;
      --cream:   #ede6d3;
      --stone:   #d9c99a;
      --beige:   #c8b07a;
      --slate:   #5e6e7d;
      --slate-dk:#3a4a57;
      --sage:    #6b9e76;
      --sage-dk: #677b52;
      --pool:    #7ecad0;
      --terracotta: #ab6c0d;
      --rose:    #c2788a;
      --text:    #2e2519;
      --text-m:  #6b5c42;
      --vh: 1vh;
    }

    html { scroll-behavior: smooth; }
    body {
      font-family: 'Jost', sans-serif;
      background: var(--paper);
      color: var(--text);
      overflow-x: hidden;
      -webkit-text-size-adjust: 100%;
    }

    /* Watercolor paper texture overlay */
    body::before {
      content:'';
      position:fixed; top:0;left:0;right:0;bottom:0;
      background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23noise)' opacity='0.035'/%3E%3C/svg%3E");
      pointer-events: none; z-index: 9999;
      opacity: 0.6;
    }

    /* NAV */
    nav {
      position: fixed; top:0;left:0;right:0; z-index:200;
      display:-webkit-flex; display:flex;
      -webkit-align-items:center; align-items:center;
      -webkit-justify-content:space-between; justify-content:space-between;
      padding: 0 52px; height: 110px;
      background: #fefefe;
      border-bottom: 1px solid #e5e5e5;
    }
    .nav-logo {
      text-decoration: none; -webkit-tap-highlight-color: transparent;
      display:flex; align-items:center;
    }
    .nav-logo-img { height:100px; width:auto; }
    .nav-logo span { color: var(--sage-dk); font-style: normal; }
    .nav-links { display:-webkit-flex; display:flex; gap:28px; list-style:none; }
    .nav-links a {
      font-family: 'EB Garamond', serif;
      font-size: 14px; letter-spacing:0.08em;
      color: var(--text-m); text-decoration:none;
      -webkit-tap-highlight-color: transparent;
    }
    .nav-links a:hover { color: var(--sage-dk); }
    .nav-cta {
      background: var(--sage-dk); color: #fff !important;
      padding: 9px 20px; border-radius: 20px;
      font-family: 'Jost', sans-serif !important;
      font-size: 12px !important; letter-spacing:0.1em;
    }
    .nav-burger {
      display:none; background:none; border:none; cursor:pointer;
      padding:8px; -webkit-flex-direction:column; flex-direction:column; gap:5px;
      -webkit-tap-highlight-color:transparent;
    }
    .nav-burger span { display:block; width:24px; height:2px; background:var(--sage-dk); border-radius:2px; }
    .nav-drawer {
      display:none; position:fixed; top:110px; left:0; right:0;
      background:var(--paper); border-bottom:1px solid rgba(200,176,122,.3);
      padding:20px 24px; z-index:199;
      box-shadow:0 8px 24px rgba(60,40,20,.1);
    }
    .nav-drawer.open { display:block; }
    .nav-drawer ul { list-style:none; }
    .nav-drawer li { border-bottom:1px solid rgba(200,176,122,.2); }
    .nav-drawer li:last-child { border:none; }
    .nav-drawer a {
      display:block; padding:13px 0;
      font-family:'EB Garamond',serif; font-size:16px;
      color:var(--text-m); text-decoration:none;
      -webkit-tap-highlight-color:transparent;
    }
    .nav-drawer a.cta-m { color:var(--sage-dk); font-weight:500; }

    /* HERO */
    .hero {
      height:100vh; height:calc(var(--vh,1vh)*100);
      min-height:580px; position:relative; overflow:hidden;
      display:-webkit-flex; display:flex;
      -webkit-align-items:flex-end; align-items:flex-end;
    }
    .hero-illustration {
      position:absolute; top:0;left:0;right:0;bottom:0;
    }
    .hero-illustration img {
      width:100%; height:100%;
      -webkit-object-fit:cover; object-fit:cover;
      -webkit-object-position:center; object-position:center;
      display:block;
    }
    /* Soft vignette over illustration */
    .hero-illustration::after {
      content:''; position:absolute; top:0;left:0;right:0;bottom:0;
      background:
        radial-gradient(ellipse at center, transparent 30%, rgba(46,37,25,.22) 100%),
        linear-gradient(to bottom, transparent 40%, rgba(46,37,25,.65) 100%);
    }
    .hero-content {
      position:relative; z-index:2;
      width:100%; padding:0 64px 64px;
      display:-webkit-flex; display:flex;
      -webkit-align-items:flex-end; align-items:flex-end;
      -webkit-justify-content:space-between; justify-content:space-between;
      gap:32px;
    }
    .hero-text {
      color:#fff;
      -webkit-animation: fadeUp 1.2s .3s both; animation: fadeUp 1.2s .3s both;
    }
    .hero-eyebrow {
      font-family:'EB Garamond',serif;
      font-size:14px; font-style:italic; letter-spacing:.08em;
      color:rgba(255,255,255,.75); margin-bottom:10px;
    }
    .hero-title {
      font-family:'Authenia','Playfair Display',serif;
      font-size:clamp(44px,7vw,88px); font-weight:400; line-height:1.08;
      text-shadow:0 2px 24px rgba(0,0,0,.25);
    }
    .hero-title em { font-style:normal; color:#e8d08a; }
    .hero-tagline {
      font-family:'AlQuds','EB Garamond',serif;
      font-size:20px; font-style:normal;
      color:rgba(255,255,255,.8); margin-top:10px; line-height:1.5;
      letter-spacing:0.03em;
    }
    .hero-cta {
      -webkit-animation: fadeUp 1.2s .6s both; animation: fadeUp 1.2s .6s both;
      display:-webkit-flex; display:flex; -webkit-flex-direction:column; flex-direction:column;
      -webkit-align-items:flex-end; align-items:flex-end; gap:12px;
    }
    .btn-sage {
      background:var(--sage-dk); color:#fff;
      padding:15px 32px; font-family:'Jost',sans-serif;
      font-size:12px; letter-spacing:.15em; text-transform:uppercase;
      text-decoration:none; border-radius:30px; display:inline-block;
      -webkit-tap-highlight-color:transparent;
      box-shadow: 0 4px 20px rgba(61,107,74,.35);
    }
    .btn-ghost {
      border:1px solid rgba(255,255,255,.6); color:#fff;
      padding:14px 32px; font-family:'Jost',sans-serif;
      font-size:12px; letter-spacing:.15em; text-transform:uppercase;
      text-decoration:none; border-radius:30px; display:inline-block;
      -webkit-tap-highlight-color:transparent;
    }
    .hero-scroll-hint {
      position:absolute; bottom:24px; left:50%;
      -webkit-transform:translateX(-50%); transform:translateX(-50%);
      z-index:3; text-align:center; color:rgba(255,255,255,.55);
      font-family:'EB Garamond',serif; font-size:13px; font-style:italic;
    }
    .hero-scroll-hint::before {
      content:''; display:block; width:1px; height:40px;
      background:linear-gradient(transparent,rgba(255,255,255,.5));
      margin:0 auto 8px;
      -webkit-animation:scrollPulse 2s infinite; animation:scrollPulse 2s infinite;
    }

    /* RIBBON */
    .ribbon {
      background:var(--sage-dk); color:#fff;
      display:-webkit-flex; display:flex; -webkit-flex-wrap:wrap; flex-wrap:wrap;
    }
    .ribbon-item {
      -webkit-flex:1 1 25%; flex:1 1 25%;
      text-align:center; padding:28px 20px;
      border-right:1px solid rgba(255,255,255,.12);
    }
    .ribbon-item:last-child { border-right:none; }
    .ribbon-val {
      font-family:'Playfair Display',serif;
      font-size:44px; font-weight:400; line-height:1;
      color:#e8d08a;
    }
    .ribbon-label {
      font-size:11px; letter-spacing:.15em; text-transform:uppercase;
      color:rgba(255,255,255,.6); margin-top:8px;
    }

    /* TÉMOIGNAGES CAROUSEL */
    .testimonials { background:var(--cream); padding:64px 80px; }
    .testi-header { text-align:center; margin-bottom:40px; }
    .testi-carousel { position:relative; overflow:hidden; }
    .testi-track {
      display:-webkit-flex; display:flex; gap:24px;
      overflow-x:auto; scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none; padding:8px 0 16px;
    }
    .testi-track::-webkit-scrollbar { display:none; }
    .testi-card {
      -webkit-flex:0 0 340px; flex:0 0 340px;
      scroll-snap-align:center;
      background:var(--paper); border:1px solid var(--stone);
      border-radius:4px; padding:32px 28px;
      box-shadow:0 4px 16px rgba(60,40,20,.08);
    }
    .testi-stars { color:#e8a048; font-size:18px; letter-spacing:2px; margin-bottom:14px; }
    .testi-text {
      font-family:'EB Garamond',serif; font-size:16px; line-height:1.8;
      color:var(--text-m); font-style:italic;
    }
    .testi-author {
      margin-top:16px; font-family:'Jost',sans-serif;
      font-size:12px; letter-spacing:.1em; text-transform:uppercase;
      color:var(--sage-dk);
    }
    .testi-nav {
      display:-webkit-flex; display:flex;
      -webkit-align-items:center; align-items:center;
      -webkit-justify-content:center; justify-content:center;
      gap:16px; margin-top:24px;
    }
    .testi-btn {
      width:40px; height:40px; border-radius:50%;
      border:1px solid var(--stone); background:var(--paper);
      font-size:22px; color:var(--sage-dk); cursor:pointer;
      display:-webkit-flex; display:flex;
      -webkit-align-items:center; align-items:center;
      -webkit-justify-content:center; justify-content:center;
      -webkit-tap-highlight-color:transparent;
    }
    .testi-btn:hover { background:var(--sage-dk); color:#fff; }
    .testi-dots { display:-webkit-flex; display:flex; gap:8px; }
    .testi-dot {
      width:8px; height:8px; border-radius:50%;
      background:var(--stone); border:none; cursor:pointer;
      -webkit-transition:background .3s; transition:background .3s;
      padding:0; -webkit-tap-highlight-color:transparent;
    }
    .testi-dot.active { background:var(--sage-dk); }

    /* SECTION BASE */
    section { padding:96px 80px; }
    .s-tag {
      font-family:'EB Garamond',serif; font-style:italic;
      font-size:15px; letter-spacing:.06em;
      color:var(--terracotta); margin-bottom:10px; display:block;
    }
    .s-title {
      font-family:'Playfair Display',serif;
      font-size:clamp(30px,3.5vw,52px); font-weight:400; line-height:1.2;
      color:var(--slate-dk); margin-bottom:16px;
    }
    .s-title em { font-style:italic; color:var(--sage-dk); }
    .s-body {
      font-family:'EB Garamond',serif;
      font-size:17px; line-height:1.85; color:var(--text-m); max-width:520px;
    }
    .divider {
      width:60px; height:2px;
      background:linear-gradient(to right,var(--terracotta),var(--stone));
      margin:20px 0; border-radius:2px;
    }

    /* INTRO */
    .intro { display:-webkit-flex; display:flex; gap:80px; -webkit-align-items:center; align-items:center; }
    .intro-col { -webkit-flex:1; flex:1; }
    .intro-frame {
      position:relative;
      /* Watercolor-style border effect */
    }
    .intro-frame img {
      width:100%; height:460px; -webkit-object-fit:cover; object-fit:cover;
      display:block; border-radius:2px;
      box-shadow: 8px 12px 40px rgba(60,40,20,.18);
    }
    .intro-frame::before {
      content:''; position:absolute; top:-14px; left:-14px;
      width:70%; height:70%;
      border:2px solid var(--stone);
      border-radius:2px; z-index:-1;
    }
    .intro-badge {
      position:absolute; bottom:-20px; right:-20px;
      background:var(--sage-dk); color:#fff;
      padding:22px 28px; text-align:center; border-radius:2px;
      box-shadow:4px 6px 20px rgba(0,0,0,.2);
    }
    .intro-badge-val { font-family:'Playfair Display',serif; font-size:34px; font-weight:400; color:#e8d08a; }
    .intro-badge-txt { font-size:10px; letter-spacing:.1em; text-transform:uppercase; opacity:.7; margin-top:4px; }

    /* ILLUSTRATION FEATURE */
    .illus-section { background:var(--cream); }
    .illus-layout { display:-webkit-flex; display:flex; gap:64px; -webkit-align-items:center; align-items:center; }
    .illus-col { -webkit-flex:1; flex:1; }
    .illus-frame {
      border-radius:4px; overflow:hidden;
      box-shadow:12px 16px 48px rgba(60,40,20,.2);
      position:relative;
    }
    .illus-frame img { width:100%; display:block; }
    .illus-caption {
      position:absolute; bottom:0; left:0; right:0;
      background:linear-gradient(transparent,rgba(46,37,25,.7));
      padding:32px 20px 16px;
      font-family:'EB Garamond',serif; font-style:italic;
      font-size:14px; color:#e8d08a; text-align:center;
    }
    .highlights { display:-webkit-flex; display:flex; -webkit-flex-direction:column; flex-direction:column; gap:20px; margin-top:32px; }
    .highlight-item { display:-webkit-flex; display:flex; gap:16px; -webkit-align-items:flex-start; align-items:flex-start; }
    .h-dot {
      width:10px; height:10px; border-radius:50%;
      background:var(--terracotta); -webkit-flex-shrink:0; flex-shrink:0;
      margin-top:7px;
    }
    .h-text { font-family:'EB Garamond',serif; font-size:17px; line-height:1.7; color:var(--text-m); }
    .h-text strong { color:var(--slate-dk); font-weight:600; }

    /* ESPACES */
    .espaces-hd { text-align:center; max-width:580px; margin:0 auto 52px; }
    .espaces-grid { display:-webkit-flex; display:flex; -webkit-flex-wrap:wrap; flex-wrap:wrap; gap:4px; }
    .e-card { position:relative; overflow:hidden; -webkit-flex:1 1 30%; flex:1 1 30%; min-width:220px; cursor:pointer; border-radius:2px; }
    .e-card.wide { -webkit-flex:2 1 58%; flex:2 1 58%; }
    .e-card img { width:100%; height:340px; -webkit-object-fit:cover; object-fit:cover; display:block; -webkit-transition:-webkit-transform .6s ease; transition:transform .6s ease; }
    .e-card:hover img { -webkit-transform:scale(1.05); transform:scale(1.05); }
    .e-overlay {
      position:absolute; top:0;left:0;right:0;bottom:0;
      background:linear-gradient(to top,rgba(46,37,25,.82) 0%,transparent 52%);
      display:-webkit-flex; display:flex; -webkit-flex-direction:column; flex-direction:column;
      -webkit-justify-content:flex-end; justify-content:flex-end; padding:22px; color:#fff;
    }
    .e-title { font-family:'Playfair Display',serif; font-size:22px; font-weight:400; margin-bottom:4px; }
    .e-sub { font-size:11px; letter-spacing:.1em; text-transform:uppercase; opacity:.7; }

    /* ÉQUIPEMENTS */
    .equip-grid { display:-webkit-flex; display:flex; gap:72px; -webkit-align-items:flex-start; align-items:flex-start; margin-top:48px; }
    .equip-col { -webkit-flex:1; flex:1; }
    .equip-list { display:-webkit-flex; display:flex; -webkit-flex-wrap:wrap; flex-wrap:wrap; gap:18px; margin-top:32px; }
    .equip-item { display:-webkit-flex; display:flex; -webkit-align-items:flex-start; align-items:flex-start; gap:12px; width:calc(50% - 9px); }
    .equip-icon {
      width:42px; height:42px;
      background:var(--cream); border:1px solid var(--stone);
      border-radius:50%;
      display:-webkit-flex; display:flex; -webkit-align-items:center; align-items:center; -webkit-justify-content:center; justify-content:center;
      font-size:18px; -webkit-flex-shrink:0; flex-shrink:0;
    }
    .equip-name { font-family:'EB Garamond',serif; font-size:16px; font-weight:500; color:var(--slate-dk); margin-bottom:2px; }
    .equip-desc { font-size:12px; color:var(--text-m); line-height:1.4; }
    .equip-img img { width:100%; max-height:440px; -webkit-object-fit:cover; object-fit:cover; display:block; border-radius:2px; box-shadow:8px 12px 36px rgba(60,40,20,.15); }

    /* SÉMINAIRES */
    #seminaires { background:var(--slate-dk); }
    #seminaires .s-tag { color:#c8d8e8; }
    #seminaires .s-title { color:#f0ece0; }
    #seminaires .s-title em { color:#e8d08a; }
    #seminaires .s-body { color:rgba(240,236,224,.65); }
    #seminaires .divider { background:linear-gradient(to right,#e8d08a,rgba(200,176,120,.3)); }
    .sem-layout { display:-webkit-flex; display:flex; gap:72px; -webkit-align-items:center; align-items:center; }
    .sem-col { -webkit-flex:1; flex:1; }
    .sem-features { display:-webkit-flex; display:flex; -webkit-flex-direction:column; flex-direction:column; gap:14px; margin-top:28px; }
    .sem-feat { display:-webkit-flex; display:flex; gap:14px; -webkit-align-items:flex-start; align-items:flex-start; padding:16px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); border-radius:2px; }
    .sem-feat-icon { font-size:20px; width:36px; -webkit-flex-shrink:0; flex-shrink:0; }
    .sem-feat-name { font-family:'EB Garamond',serif; font-size:17px; font-weight:500; color:#e8d08a; margin-bottom:3px; }
    .sem-feat-desc { font-size:13px; color:rgba(240,236,224,.55); line-height:1.55; }
    .sem-img img { width:100%; height:460px; -webkit-object-fit:cover; object-fit:cover; display:block; border-radius:2px; }
    .btn-gold {
      background:linear-gradient(135deg,#c8a048,#e8d08a);
      color:var(--slate-dk); padding:15px 32px;
      font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.15em;
      text-transform:uppercase; text-decoration:none; border-radius:30px;
      display:inline-block; margin-top:28px; font-weight:500;
      box-shadow:0 4px 16px rgba(200,160,72,.3);
      -webkit-tap-highlight-color:transparent;
    }

    /* ÉVÉNEMENTS */
    .ev-layout { display:-webkit-flex; display:flex; gap:72px; -webkit-align-items:center; align-items:center; }
    .ev-col { -webkit-flex:1; flex:1; }
    .ev-gallery { display:-webkit-flex; display:flex; -webkit-flex-wrap:wrap; flex-wrap:wrap; gap:4px; }
    .ev-gallery img { -webkit-flex:1 1 45%; flex:1 1 45%; height:200px; -webkit-object-fit:cover; object-fit:cover; display:block; border-radius:2px; }
    .ev-gallery img:first-child { -webkit-flex:1 1 100%; flex:1 1 100%; height:240px; }
    .ev-types { display:-webkit-flex; display:flex; -webkit-flex-wrap:wrap; flex-wrap:wrap; gap:8px; margin-top:24px; }
    .ev-type {
      padding:8px 18px;
      border:1px solid var(--stone); border-radius:20px;
      font-family:'EB Garamond',serif; font-size:15px; font-style:italic;
      color:var(--sage-dk);
    }

    /* ACTIVITÉS */
    #activites { background:var(--cream); }
    .act-intro { display:-webkit-flex; display:flex; gap:64px; margin-bottom:48px; }
    .act-intro > div { -webkit-flex:1; flex:1; }
    .act-grid { display:-webkit-flex; display:flex; -webkit-flex-wrap:wrap; flex-wrap:wrap; gap:4px; }
    .act-card { position:relative; overflow:hidden; -webkit-flex:1 1 18%; flex:1 1 18%; min-width:150px; border-radius:2px; }
    .act-card img { width:100%; height:230px; -webkit-object-fit:cover; object-fit:cover; display:block; }
    .act-name { position:absolute; bottom:0;left:0;right:0; background:linear-gradient(transparent,rgba(46,37,25,.85)); padding:28px 14px 12px; color:#fff; font-family:'EB Garamond',serif; font-size:15px; font-style:italic; }

    /* GALERIE — Visite pièce par pièce */
    .gal-title { text-align:center; margin-bottom:40px; }
    .room-section { max-width:1200px; margin:0 auto 48px; padding:0 24px; }
    .room-cat { font-family:'Playfair Display',serif; font-size:22px; font-weight:500; color:var(--sage-dk); border-bottom:2px solid var(--stone); padding-bottom:8px; margin-bottom:20px; }
    .room-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:20px; }
    .room-card { background:#fff; border-radius:8px; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.08); transition:transform .2s, box-shadow .2s; cursor:pointer; }
    .room-card:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(0,0,0,.12); }
    .room-card img { width:100%; height:200px; object-fit:cover; display:block; }
    .room-caption { padding:12px 14px; font-size:14px; line-height:1.5; color:var(--text-m); }
    .room-caption strong { color:var(--text); font-weight:600; }

    /* CONTACT */
    #contact { background:var(--paper); border-top:1px solid var(--stone); }
    .contact-grid { display:-webkit-flex; display:flex; gap:64px; margin-top:48px; }
    .contact-info { -webkit-flex:1; flex:1; display:-webkit-flex; display:flex; -webkit-flex-direction:column; flex-direction:column; gap:22px; }
    .contact-form-col { -webkit-flex:1; flex:1; }
    .c-item { display:-webkit-flex; display:flex; -webkit-align-items:flex-start; align-items:flex-start; gap:14px; }
    .c-icon { font-size:18px; width:44px; height:44px; background:var(--cream); border:1px solid var(--stone); border-radius:50%; display:-webkit-flex; display:flex; -webkit-align-items:center; align-items:center; -webkit-justify-content:center; justify-content:center; -webkit-flex-shrink:0; flex-shrink:0; }
    .c-label { font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--terracotta); margin-bottom:4px; }
    .c-val { font-family:'EB Garamond',serif; font-size:16px; color:var(--text); line-height:1.6; }
    .c-val a { color:inherit; text-decoration:none; }
    .contact-form { display:-webkit-flex; display:flex; -webkit-flex-direction:column; flex-direction:column; gap:14px; }
    .form-row { display:-webkit-flex; display:flex; gap:14px; }
    .form-row .f-field { -webkit-flex:1; flex:1; }
    .f-field label { display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-m); margin-bottom:7px; }
    .f-field input, .f-field textarea {
      width:100%; background:var(--cream); border:1px solid var(--stone); color:var(--text);
      padding:12px 16px; font-family:'EB Garamond',serif; font-size:16px; outline:none;
      border-radius:2px; -webkit-appearance:none; appearance:none;
      -webkit-transition:border-color .2s; transition:border-color .2s;
    }
    .f-field input:focus, .f-field textarea:focus { border-color:var(--sage-dk); }
    .f-field input::-webkit-input-placeholder, .f-field textarea::-webkit-input-placeholder { color:rgba(107,92,66,.4); }
    .f-field textarea { resize:vertical; min-height:110px; }
    .btn-submit {
      background:var(--sage-dk); color:#fff; border:none;
      padding:15px 32px; font-family:'Jost',sans-serif;
      font-size:12px; letter-spacing:.15em; text-transform:uppercase;
      cursor:pointer; border-radius:30px; min-height:48px;
      -webkit-appearance:none; -webkit-tap-highlight-color:transparent;
      box-shadow:0 4px 16px rgba(61,107,74,.3);
    }

    /* FOOTER */
    footer {
      background:#fefefe; padding:36px 80px;
      display:-webkit-flex; display:flex; -webkit-align-items:center; align-items:center;
      -webkit-justify-content:space-between; justify-content:space-between;
      -webkit-flex-wrap:wrap; flex-wrap:wrap; gap:12px;
      color:#999; font-size:12px; border-top:1px solid #e5e5e5;
    }
    footer a { color:#888; text-decoration:none; }
    .footer-logo { text-align:center; }
    .footer-logo-img { height:120px; width:auto; }

    /* LIGHTBOX */
    .lightbox { display:none; position:fixed; top:0;left:0;right:0;bottom:0; background:rgba(46,37,25,.95); z-index:500; -webkit-align-items:center; align-items:center; -webkit-justify-content:center; justify-content:center; }
    .lightbox.open { display:-webkit-flex; display:flex; }
    .lightbox img { max-width:92vw; max-height:88vh; -webkit-object-fit:contain; object-fit:contain; border-radius:2px; }
    .lb-close { position:absolute; top:20px; right:20px; background:rgba(255,255,255,.15); border:none; color:#fff; font-size:26px; width:44px; height:44px; border-radius:50%; cursor:pointer; display:-webkit-flex; display:flex; -webkit-align-items:center; align-items:center; -webkit-justify-content:center; justify-content:center; -webkit-tap-highlight-color:transparent; }

    /* ANIMATIONS */
    @-webkit-keyframes fadeUp { from{opacity:0;-webkit-transform:translateY(24px);} to{opacity:1;-webkit-transform:translateY(0);} }
    @keyframes fadeUp { from{opacity:0;transform:translateY(24px);} to{opacity:1;transform:translateY(0);} }
    @-webkit-keyframes scrollPulse { 0%,100%{opacity:.3} 50%{opacity:.8} }
    @keyframes scrollPulse { 0%,100%{opacity:.3} 50%{opacity:.8} }
    .reveal { opacity:0; -webkit-transform:translateY(28px); transform:translateY(28px); -webkit-transition:opacity .8s ease,-webkit-transform .8s ease; transition:opacity .8s ease,transform .8s ease; }
    .reveal.visible { opacity:1; -webkit-transform:translateY(0); transform:translateY(0); }

    /* TABLET */
    @media(max-width:1024px){
      nav{padding:0 24px;}
      .nav-links{display:none;}
      .nav-burger{display:-webkit-flex;display:flex;}
      section{padding:72px 32px;}
      .ribbon{padding:0 32px;}
      .ribbon-item{-webkit-flex:1 1 50%;flex:1 1 50%;}
      .ribbon-item:nth-child(2){border-right:none;}
      .ribbon-item:nth-child(3),.ribbon-item:nth-child(4){border-top:1px solid rgba(255,255,255,.12);}
      .intro,.illus-layout,.equip-grid,.sem-layout,.ev-layout,.act-intro,.contact-grid{-webkit-flex-direction:column;flex-direction:column;gap:44px;}
      .intro-col,.illus-col,.equip-col,.sem-col,.ev-col,.contact-info,.contact-form-col{width:100%;}
      .intro-frame img{height:360px;}
      .e-card{-webkit-flex:1 1 46%;flex:1 1 46%;}
      .e-card.wide{-webkit-flex:1 1 100%;flex:1 1 100%;}
      .act-grid .act-card{-webkit-flex:1 1 30%;flex:1 1 30%;}
      .room-grid{grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:16px;}
      footer{padding:28px 32px;}
      .hero-content{padding:0 32px 48px;}
      .hero-cta{-webkit-align-items:flex-start;align-items:flex-start;}
      .testimonials{padding:52px 32px;}
      .testi-card{-webkit-flex:0 0 300px;flex:0 0 300px;}
    }
    /* MOBILE */
    @media(max-width:640px){
      nav{padding:0 16px;height:90px;}
      .nav-logo-img{height:76px;}
      .nav-drawer{top:90px;}
      section{padding:52px 20px;}
      .hero-content{-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;align-items:flex-start;padding:0 20px 44px;gap:20px;}
      .hero-illustration img{-webkit-object-position:35% center;object-position:35% center;}
      .hero-title{font-size:clamp(38px,11vw,60px);}
      .hero-tagline{display:none;}
      .hero-cta{-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;}
      .btn-sage,.btn-ghost,.btn-gold{padding:13px 20px;}
      .ribbon-item{-webkit-flex:1 1 50%;flex:1 1 50%;}
      .e-card,.e-card.wide{-webkit-flex:1 1 100%;flex:1 1 100%;}
      .e-card img{height:240px;}
      .equip-item{width:100%;}
      .ev-gallery img,.ev-gallery img:first-child{-webkit-flex:1 1 100%;flex:1 1 100%;height:200px;}
      .act-grid .act-card{-webkit-flex:1 1 46%;flex:1 1 46%;}
      .room-grid{grid-template-columns:repeat(2, 1fr);gap:12px;}
      .room-card img{height:160px;}
      .room-caption{padding:8px 10px;font-size:13px;}
      .room-section{padding:0 16px;margin-bottom:36px;}
      .form-row{-webkit-flex-direction:column;flex-direction:column;}
      footer{padding:24px 20px;-webkit-flex-direction:column;flex-direction:column;text-align:center;gap:8px;}
      .hero-scroll-hint{display:none;}
      .sem-img{display:none;}
      .testimonials{padding:40px 20px;}
      .testi-card{-webkit-flex:0 0 280px;flex:0 0 280px;padding:24px 20px;}
    }