:root{ color-scheme: light; }
header.site-nav{ top: env(safe-area-inset-top, 0px); }
.page-section[hidden]{ display:none; }
nav.links a.active{ color:var(--gold-300); border-bottom:2px solid var(--gold-500); }

.hero{ min-height:100vh; background:none; }
@media(max-width:640px){ .hero{ min-height:100vh; } }
.hero-bg-layer{
  position:absolute; inset:0; background-size:cover; background-position:center center; background-repeat:no-repeat;
  opacity:0; transition:opacity 1.8s ease-in-out; z-index:0;
}
.hero-bg-layer.active{ opacity:1; }
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(20,16,10,0.80) 0%, rgba(20,16,10,0.28) 55%, rgba(20,16,10,0.45) 100%);
}
.hero-inner{ position:relative; z-index:2; }

.lang-switch{
  display:flex; align-items:center; border:1.5px solid rgba(34,50,31,0.18); border-radius:999px;
  padding:3px; gap:2px; flex-shrink:0; background:var(--cream-100);
  width:fit-content;
}
.lang-btn{
  border:none; background:transparent; color:var(--ink-600); font-family:'Karla',sans-serif;
  font-weight:700; font-size:12.5px; letter-spacing:.04em; padding:6px 12px; border-radius:999px;
  cursor:pointer; transition:background .15s ease, color .15s ease;
}
.lang-btn.active{ background:var(--forest-900); color:var(--cream-100); }
.lang-btn:not(.active):hover{ color:var(--forest-900); }
footer .lang-switch{ border-color:rgba(250,245,234,0.25); background:transparent; }
footer .lang-btn{ color:rgba(250,245,234,0.7); }
footer .lang-btn.active{ background:var(--gold-500); color:var(--forest-900); }

.map-card{
  border-radius:18px; box-shadow:var(--shadow); overflow:hidden;
  background:linear-gradient(135deg, var(--forest-700) 0%, var(--forest-900) 100%);
  min-height:420px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:48px 32px; color:var(--cream-100); position:relative;
}
.map-card::before{
  content:''; position:absolute; inset:0; opacity:0.12;
  background-image: radial-gradient(circle at 20% 30%, var(--gold-300) 0, transparent 40%),
                     radial-gradient(circle at 80% 70%, var(--gold-300) 0, transparent 40%);
}
.map-card .pin{ font-size:44px; margin-bottom:18px; position:relative; }
.map-card h3{ color:var(--cream-100); font-size:24px; font-style:italic; font-weight:500; margin-bottom:10px; position:relative; }
.map-card p{ color:rgba(250,245,234,0.78); max-width:340px; margin:0 auto 26px; position:relative; }
.map-card .btn{ position:relative; }

.copyable{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.copy-btn{
  border:1.5px solid rgba(34,50,31,0.18); background:var(--cream-100); color:var(--forest-900);
  border-radius:8px; width:30px; height:30px; font-size:14px; cursor:pointer; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease;
}
.copy-btn:hover{ background:var(--gold-300); }
.copy-btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
  outline:2px solid var(--gold-600); outline-offset:2px;
}

.nav-right{ display:flex; align-items:center; gap:14px; }

/* ---- mobile hamburger + dropdown menu ---- */
.nav-burger{
  display:none; flex-direction:column; justify-content:center; align-items:center;
  gap:5px; width:36px; height:36px; border:none; background:transparent; cursor:pointer;
  flex-shrink:0; padding:0;
}
.nav-burger span{
  display:block; width:20px; height:2px; background:var(--cream-100); border-radius:2px;
  transition:transform .25s ease, opacity .2s ease;
}
.nav-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

.mobile-nav{ display:none; }

@media(max-width:860px){
  .nav-inner{ flex-wrap:nowrap; gap:8px; }
  .nav-right{ gap:6px; }
  .lang-switch{ padding:2px; gap:1px; }
  .lang-btn{ font-size:10.5px; padding:5px 8px; }
  .nav-right .btn-primary{ padding:8px 14px; font-size:11.5px; }
  .nav-burger{ display:flex; }

  .mobile-nav{
    display:flex; flex-direction:column;
    position:absolute; top:100%; left:0; width:100%;
    background:rgba(34,50,31,0.97); backdrop-filter:blur(6px);
    max-height:0; overflow:hidden; opacity:0; pointer-events:none;
    transition:max-height .3s ease, opacity .25s ease;
    border-bottom:1px solid rgba(250,245,234,0.10);
  }
  header.site-nav.menu-open .mobile-nav{
    max-height:400px; opacity:1; pointer-events:auto;
  }
  .mobile-nav a{
    color:var(--cream-100); font-size:15px; font-weight:600;
    padding:14px 28px; border-top:1px solid rgba(250,245,234,0.08);
  }
  .mobile-nav a:first-child{ border-top:none; }
  .mobile-nav a:hover, .mobile-nav a.active{ color:var(--gold-300); }
}

.room-type-head{ max-width:760px; margin:0 auto 40px; text-align:center; }
.room-type-head .eyebrow{ justify-content:center; }
.room-type-head h2{ font-size:34px; font-weight:500; font-style:italic; margin:14px 0 18px; }
.room-type-head p{ font-size:17px; margin:0 auto 22px; max-width:640px; }
.room-type-head .amenities{
  list-style:none; display:flex; flex-wrap:wrap; justify-content:center;
  gap:10px; padding:0; margin:0 0 28px;
}
.room-type-head .amenities li{
  font-size:13px; background:var(--white); color:var(--ink-600);
  border:1px solid rgba(34,50,31,0.12); padding:7px 14px; border-radius:999px;
}
.room-type-block + .room-type-block{ margin-top:0; }

.reviews-summary{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:10px;
}
.reviews-summary .rs-score{ font-family:'Fraunces',serif; font-weight:600; font-size:26px; color:var(--forest-900); }
.reviews-summary .rs-stars{ color:var(--gold-500); letter-spacing:2px; font-size:16px; }
.reviews-summary .rs-src{ font-size:12.5px; font-weight:700; color:var(--ink-600); text-transform:uppercase; letter-spacing:.06em; }
.reviews-summary .rs-sep{ color:var(--ink-600); opacity:.4; }
.reviews-summary .rs-text{ font-size:13.5px; color:var(--ink-600); }
.reviews-summary a{ font-size:13px; font-weight:700; color:var(--gold-600); text-decoration:underline; }
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; }
@media(max-width:900px){ .review-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .review-grid{ grid-template-columns:1fr; } }
.review-card{
  background:var(--white); border-radius:16px; padding:26px 24px; box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:14px;
}
.review-card .stars{ color:var(--gold-500); font-size:14px; letter-spacing:2px; }
.review-card p.review-text{ font-size:14.5px; color:var(--ink-600); margin:0; flex:1; line-height:1.65; }
.review-card .reviewer{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.review-card .reviewer .name{ font-weight:700; color:var(--forest-900); font-size:13.5px; }
.review-card .reviewer .src{ color:var(--ink-600); font-size:12px; white-space:nowrap; }

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
