  :root{
    --forest-900:#0c2e1e;
    --forest-800:#153c28;
    --forest-700:#1f4c34;
    --cream:#eee7da;
    --cream-2:#e4dac5;
    --paper:#f7f2e6;
    --gold:#c2a877;
    --gold-bright:#ab8f61;
    --gold-soft:rgba(19,32,24,0.18);
    --ink:#132018;
    --stone:#7d735f;
    --rule:rgba(19,32,24,0.16);
    --rule-dark:rgba(247,242,230,0.2);
    --maxw:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{ margin:0; background:var(--cream); color:var(--ink); font-family:'Jost',ui-sans-serif,system-ui,sans-serif; font-weight:300; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
  img{max-width:100%;display:block;}
  :focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
  h1,h2,h3,.serif{ font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif; font-weight:500; margin:0; text-wrap:balance; letter-spacing:0.005em; }
  .eyebrow{ font-family:'Jost',sans-serif; font-size:0.74rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink); font-weight:500; }
  .section-dark .eyebrow{ color:var(--paper); }
  .eyebrow-row{ display:flex; align-items:center; gap:16px; margin-bottom:20px; }
  .eyebrow-row.center{ justify-content:center; }
  .eb-line{ width:88px; height:1px; background:var(--ink); opacity:0.35; flex:none; }
  .section-dark .eb-line{ background:var(--paper); opacity:0.35; }
  .eb-chip{ width:44px; height:32px; background:var(--gold); flex:none; margin-left:-3px; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px,5vw,64px); }
  a{color:inherit;}
  .btn{ display:inline-flex; align-items:center; justify-content:center; gap:0.5em; padding:0.95em 2em; font-family:'Jost',sans-serif; font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase; text-decoration:none; border-radius:2px; border:1px solid transparent; cursor:pointer; transition:background 0.25s ease, color 0.25s ease, border-color 0.25s ease; white-space:nowrap; }
  .btn-gold{ background:var(--gold); color:var(--paper); }
  .btn-gold:hover{ background:var(--gold-bright); }
  .btn-line-dark{ border-color:var(--ink); color:var(--ink); }
  .btn-line-dark:hover{ background:var(--ink); color:var(--paper); }
  .btn-line-light{ border-color:var(--rule-dark); color:var(--paper); }
  .btn-line-light:hover{ background:var(--paper); color:var(--forest-900); }

  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
  .reveal.in-view{ opacity:1; transform:none; }
  .reveal-delay-1{ transition-delay:.1s; }
  .reveal-delay-2{ transition-delay:.22s; }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

  header{ position:fixed; top:0; left:0; right:0; z-index:50; padding:22px 0; background:rgba(238,231,218,0.9); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--rule); }
  header .header-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:none; padding:0 clamp(20px,3vw,48px); }
  .burger{ position:relative; width:30px; height:16px; cursor:pointer; background:none; border:none; padding:0; flex:none; }
  .burger span{ position:absolute; left:0; width:100%; height:2px; background:var(--ink); display:block; }
  .burger span:first-child{ top:0; }
  .burger span:last-child{ top:14px; width:60%; }
  .header-logo img{ height:30px; }
  .header-actions{ display:flex; align-items:center; gap:12px; }
  .header-actions .btn-line-light{ border-color:var(--ink); color:var(--ink); }
  .header-actions .btn-line-light:hover{ background:var(--ink); color:var(--paper); }
  @media (max-width:640px){ .header-actions .btn{ padding:0.8em 1.3em; font-size:0.72rem; } }

  /* ---------- Language switch ---------- */
  .lang-switch{ position:relative; }
  .lang-btn{ display:flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer; padding:0.5em 0.2em; font-family:'Cormorant Garamond',serif; font-size:1.05rem; color:var(--ink); }
  .lang-caret{ transition:transform .2s ease; flex:none; }
  .lang-switch.open .lang-caret{ transform:rotate(180deg); }
  .lang-menu{ position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:10px; opacity:0; pointer-events:none; transition:opacity .2s ease; }
  .lang-switch.open .lang-menu{ opacity:1; pointer-events:auto; }
  .lang-option{ display:block; background:var(--forest-900); color:var(--paper); text-decoration:none; font-family:'Jost',sans-serif; font-size:0.85rem; letter-spacing:0.04em; padding:0.6em 1.4em; border-radius:4px; white-space:nowrap; text-align:center; }
  .lang-option:hover{ background:var(--forest-700); }
  @media (max-width:640px){ .lang-btn{ font-size:0.92rem; } }

  section{ padding:clamp(76px,10vw,132px) 0; }
  .section-dark{ background:var(--forest-900); color:var(--paper); }
  .section-cream2{ background:var(--cream-2); }

  /* ---------- Page band (photo, no color overlay) ---------- */
  .page-band{ position:relative; overflow:hidden; min-height:clamp(520px,82vh,820px); display:flex; align-items:center; padding-top:100px; padding-bottom:0; }
  .page-band-bg{ position:absolute; inset:0; background-image:var(--band-photo); background-size:cover; background-position:center; }
  .page-band-fade{ position:absolute; left:0; right:0; bottom:0; height:18%; background:linear-gradient(180deg, rgba(238,231,218,0) 0%, rgba(238,231,218,0.5) 60%, var(--cream) 100%); }
  .page-band .wrap{ position:relative; z-index:1; text-align:center; }
  .page-band h1{ font-family:'Cormorant Garamond',Georgia,serif; font-weight:400; font-size:clamp(2.2rem,4.2vw,3.4rem); color:#fff; letter-spacing:0.01em; filter:drop-shadow(0 4px 16px rgba(0,0,0,0.55)); }

  /* ---------- Split block (photo + copy) ---------- */
  .split-block{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:clamp(36px,6vw,80px); align-items:center; }
  .split-media img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
  .split-copy h2{ margin-top:8px; font-size:clamp(2.1rem,4vw,3rem); }
  .split-copy p{ margin-top:20px; font-size:1.04rem; line-height:1.75; color:var(--ink); max-width:48ch; }
  @media (max-width:820px){ .split-block{ grid-template-columns:1fr; } }
  @media (max-width:600px){ .split-media img{ aspect-ratio:16/10; max-height:260px; object-position:center 88%; } }

  /* ---------- Contact details ---------- */
  .contact-list{ margin-top:28px; display:flex; flex-direction:column; gap:16px; }
  .contact-row{ display:flex; align-items:center; gap:14px; font-size:1.02rem; line-height:1.5; }
  .contact-row svg{ flex:none; color:var(--gold); }
  .contact-row a{ text-decoration:none; }
  .contact-row a:hover{ text-decoration:underline; }
  .split-copy .btn{ margin-top:30px; }

  /* ---------- Map ---------- */
  .map-embed{ overflow:hidden; border:1px solid var(--rule); }
  .map-embed iframe{ display:block; width:100%; height:420px; }

  /* ---------- Mobile menu ---------- */
  .mobile-menu{ position:fixed; inset:0; color:var(--paper); overflow:hidden; z-index:100; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:30px; opacity:0; pointer-events:none; transition:opacity .35s ease; }
  .mobile-menu.open{ opacity:1; pointer-events:auto; }
  .mobile-menu-bg{ position:absolute; inset:-4%; z-index:0; background-image:var(--menu-photo); background-size:cover; background-position:center; }
  .mobile-menu-scrim{ position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, rgba(12,46,30,0.5) 0%, rgba(12,46,30,0.75) 55%, rgba(12,46,30,0.94) 100%); }
  .mobile-menu-close{ position:absolute; top:26px; right:clamp(20px,5vw,64px); background:none; border:none; color:var(--paper); font-size:2.1rem; line-height:1; cursor:pointer; padding:6px; z-index:1; }
  .mobile-menu-nav{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:22px; }
  .mobile-menu-nav a{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:2rem; text-decoration:none; color:var(--paper); transition:color .2s ease; }
  .mobile-menu-nav a:hover{ color:var(--gold-bright); }
  .mobile-menu-nav a.active{ color:var(--gold-bright); font-weight:600; }
  .mobile-menu-social{ position:relative; z-index:1; display:flex; gap:22px; margin-top:10px; }
  .mobile-menu-social a{ font-family:'Jost',sans-serif; font-size:0.76rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--paper); opacity:0.75; text-decoration:none; }
  .mobile-menu-social a:hover{ opacity:1; }

  /* ---------- Footer ---------- */
  footer{ background:var(--cream); color:var(--ink); padding:64px 0 32px; border-top:1px solid var(--rule); }
  .footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--rule); }
  .footer-grid h5{ font-family:'Jost',sans-serif; font-weight:500; font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin:0 0 18px; }
  .footer-grid p, .footer-grid a{ font-size:0.9rem; line-height:1.9; opacity:0.85; text-decoration:none; }
  .footer-grid a:hover{ opacity:1; text-decoration:underline; }
  .footer-logo img{ height:30px; margin-bottom:16px; }
  .footer-grid .tagline{ font-size:0.85rem; opacity:0.6; max-width:26ch; line-height:1.7; }
  .footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:28px; font-size:0.76rem; opacity:0.55; letter-spacing:0.03em; }
  @media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }

  .note-banner{ background:var(--gold); color:var(--paper); text-align:center; font-family:'Jost',sans-serif; font-size:0.78rem; letter-spacing:0.06em; padding:10px 16px; }
