:root{
    --bg:#F8F4EC; --bg-dark:#EFE6D6; --text:#3A2E22; --wood:#9B7042; --wood-deep:#6E4A2E;
    --panel:#FCFAF5; --line:#E4D9C6; --overlay:rgba(48,34,20,.74); --muted:#6b5c4c;
    font-size:17px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; scroll-padding-top:78px; scroll-padding-top:calc(78px + env(safe-area-inset-top,0px));}
  body{background:var(--bg); color:var(--text); font-family:'Plus Jakarta Sans',-apple-system,sans-serif; line-height:1.65; -webkit-font-smoothing:antialiased; padding-top:env(safe-area-inset-top,0px);}
  h1,h2,h3{font-family:'Cormorant Garamond', Georgia, serif; font-weight:600; color:var(--text);}
  a{color:inherit;} img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  .eyebrow{font-size:.8rem; letter-spacing:.04em; color:var(--wood-deep); margin-bottom:10px; text-transform:uppercase;}
  .tri .en{font-size:1.04rem; color:var(--text);}
  .tri .it{font-style:italic; opacity:.82; margin-top:6px; font-size:.97rem;}
  .tri .de{font-style:italic; opacity:.62; margin-top:5px; font-size:.9rem;}

  header{position:sticky; top:0; z-index:50; background:rgba(248,244,236,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); padding-top:env(safe-area-inset-top,0px);}
  .navbar{display:flex; align-items:center; justify-content:space-between; padding:15px 28px; max-width:1180px; margin:0 auto;}
  .brand{font-family:'Cormorant Garamond', serif; font-size:1.3rem; font-weight:700; letter-spacing:.02em; white-space:nowrap;}
  .brand span{color:var(--wood-deep);}
  nav ul{list-style:none; display:flex; gap:24px;}
  nav a{text-decoration:none; font-size:.88rem; color:var(--text);}
  nav a:hover{color:var(--wood-deep);}
  .nav-toggle{display:none; background:none; border:0; font-size:1.6rem; cursor:pointer; color:var(--text);}
  @media(max-width:900px){
    nav{position:fixed; top:0; right:-100%; height:100vh; width:78%; max-width:320px; background:var(--panel); transition:right .35s ease; box-shadow:-8px 0 30px rgba(0,0,0,.08); padding:100px 32px 32px; padding-top:calc(100px + env(safe-area-inset-top,0px));}
    nav.open{right:0;} nav ul{flex-direction:column; gap:22px;} .nav-toggle{display:block;}
  }

  .hero{position:relative; height:94vh; min-height:600px; display:flex; align-items:flex-end; overflow:hidden;}
  .hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 62%;}
  .hero::after{content:"";position:absolute; inset:0; background:linear-gradient(0deg, var(--overlay) 0%, rgba(48,34,20,.12) 55%, rgba(48,34,20,.32) 100%);}
  .hero-content{position:relative; z-index:2; color:#FBF7EF; padding:0 28px 70px; max-width:1180px; margin:0 auto; width:100%;}
  .badge{display:inline-block; background:rgba(155,112,66,.55); border:1px solid rgba(255,255,255,.3); padding:7px 16px; border-radius:30px; font-size:.78rem; letter-spacing:.04em; margin-bottom:22px;}
  .hero h1{font-size:clamp(2.2rem, 5vw, 3.8rem); color:#fff; line-height:1.12; max-width:820px;}
  .hero .sub{font-size:clamp(1rem,1.8vw,1.2rem); max-width:600px; margin-top:16px; font-weight:400; color:#F1E8D9;}
  .hero-ctas{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
  .btn{display:inline-block; padding:13px 28px; border-radius:2px; text-decoration:none; font-size:.88rem; font-weight:600; letter-spacing:.02em; transition:transform .2s ease, background .2s ease;}
  .btn-primary{background:var(--wood); color:#fff;} .btn-primary:hover{background:var(--wood-deep); transform:translateY(-2px);}
  .btn-outline{border:1.5px solid rgba(255,255,255,.75); color:#fff;} .btn-outline:hover{background:rgba(255,255,255,.14); transform:translateY(-2px);}

  section{padding:88px 0;} section.alt{background:var(--bg-dark);}
  .section-head{max-width:680px; margin-bottom:40px;}
  .section-head h2{font-size:clamp(1.8rem,3vw,2.5rem); margin-bottom:12px;}

  .stats-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px;}
  .stat{background:var(--panel); padding:24px 16px; text-align:center;}
  .stat .num{font-family:'Cormorant Garamond',serif; font-size:1.6rem; color:var(--wood-deep); display:block; margin-bottom:4px;}
  .stat .lbl{font-size:.78rem; color:var(--muted);}
  @media(max-width:860px){.stats-grid{grid-template-columns:repeat(2,1fr);}}

  .amenities-row{display:flex; gap:30px; flex-wrap:wrap; margin-top:32px;}
  .amenity-pill{display:flex; align-items:center; gap:9px; font-size:.9rem; color:#4a3c30;}
  .amenity-pill .dot{width:6px; height:6px; border-radius:50%; background:var(--wood);}

  .gallery{column-count:3; column-gap:18px;}
  .gallery figure{break-inside:avoid; margin-bottom:18px; border-radius:3px; overflow:hidden; border:1px solid var(--line); background:var(--panel);}
  .gallery figure.wide{column-span:all;}
  .gallery img{width:100%; height:auto; display:block;}
  .gallery figcaption{padding:9px 14px; font-size:.8rem; color:var(--muted); border-top:1px solid var(--line);}
  @media(max-width:900px){.gallery{column-count:2;}} @media(max-width:560px){.gallery{column-count:1;}}

  .terrace{display:grid; grid-template-columns:1fr 1fr; gap:38px; align-items:center;}
  .terrace-imgs{display:grid; gap:14px;} .terrace-imgs img{border-radius:3px; border:1px solid var(--line); width:100%; height:auto;}
  .terrace-quote{margin-top:20px; font-style:italic; color:var(--muted); border-left:2px solid var(--wood); padding-left:16px;}
  @media(max-width:860px){.terrace{grid-template-columns:1fr;}}

  .quote-band{position:relative; height:56vh; min-height:400px; display:flex; align-items:center; justify-content:center; overflow:hidden;}
  .quote-band img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
  .quote-band::after{content:"";position:absolute; inset:0; background:var(--overlay);}
  .quote-band .q{position:relative; z-index:2; text-align:center; color:#FBF7EF; max-width:720px; padding:0 28px;}
  .quote-band .q h2{font-size:clamp(1.8rem,4vw,2.7rem); color:#fff; font-style:italic;}
  .quote-band .q p.sub{margin-top:12px; font-size:.95rem; color:#EDE2D0;}

  .season{position:relative; overflow:hidden;}
  .season-bg{position:absolute; inset:0; z-index:0;}
  .season-bg img{width:100%; height:100%; object-fit:cover;}
  .season-bg::after{content:"";position:absolute; inset:0; background:var(--overlay);}
  .season-inner{position:relative; z-index:1;}
  .season .section-head h2, .season .eyebrow{color:#fff;}
  .season .eyebrow{color:#E7D9C1;}
  .season-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px; margin-top:10px;}
  .scard{background:rgba(252,250,245,.96); border-radius:4px; padding:22px; border-top:3px solid var(--wood);}
  .scard h4{font-family:'Cormorant Garamond',serif; font-size:1.25rem; margin-bottom:6px; color:var(--text);}
  .scard .badge2{display:inline-block; background:var(--bg-dark); color:var(--wood-deep); font-size:.74rem; font-weight:700; padding:3px 10px; border-radius:20px; margin-bottom:10px;}
  .scard p{font-size:.85rem; color:var(--muted); margin-bottom:4px;}
  .scard p b{color:var(--text); font-weight:600;}

  .location-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:10px;}
  .lcard{background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:26px; text-align:center;}
  .lcard .num{font-family:'Cormorant Garamond',serif; font-size:1.8rem; color:var(--wood-deep); display:block; margin-bottom:6px;}
  .lcard h4{font-size:1.05rem; margin-bottom:8px;}
  .lcard p{font-size:.82rem; color:var(--muted);}
  @media(max-width:860px){.location-cards{grid-template-columns:1fr;}}

  footer{background:var(--wood-deep); color:#F3E9DA; padding:72px 0 30px;}
  footer h2{color:#fff; font-size:2rem; margin-bottom:10px;}
  .booking-advantage{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); border-radius:4px; padding:20px 22px; margin-top:22px;}
  .booking-advantage p{font-size:.88rem; font-style:italic; color:#EFE4D2; margin-bottom:6px;}
  .booking-advantage a{color:#F3D9AE; font-weight:600; text-decoration:underline;}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:46px; margin-top:34px;}
  .contact-ctas{display:flex; flex-direction:column; gap:12px; margin-top:22px;}
  form{display:grid; gap:12px;}
  form input, form textarea{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); color:#FBF5EA; padding:12px 14px; border-radius:2px; font-family:inherit; font-size:.92rem;}
  form input::placeholder, form textarea::placeholder{color:#DCCBB2;}
  form textarea{min-height:90px; resize:vertical;}
  .legal{margin-top:50px; padding-top:22px; border-top:1px solid rgba(255,255,255,.18); font-size:.8rem; color:#DCCBB2; display:flex; flex-wrap:wrap; gap:8px 22px;}
  @media(max-width:860px){.contact-grid{grid-template-columns:1fr;}}