:root {
  --bg: #101215;
  --bg-2: #161a20;
  --card: #191f28;
  --line: #2b333f;
  --text: #f3f5f7;
  --muted: #a7b0bc;
  --accent: #cf8f2f;
  --accent-soft: #f1c47d;
  --focus: #ffd79a;
  --max: 1160px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  background: radial-gradient(circle at 20% -10%, #1b2230 0%, var(--bg) 50%);
  color: var(--text);
  line-height: 1.6;
}
h1, h2, h3 { font-family: "Oswald", sans-serif; letter-spacing: 0.01em; margin: 0; line-height: 1.1; }
h1 { font-size: clamp(2rem, 6vw, 4.4rem); }
h2 { font-size: clamp(1.55rem, 4vw, 2.8rem); }
h3 { font-size: clamp(1.1rem, 2.4vw, 1.45rem); }
p { margin: 0; color: var(--muted); }
a { color: inherit; }

.container { width: min(100% - 2rem, var(--max)); margin-inline: auto; }
.section { padding: clamp(3rem, 8vw, 6rem) 0; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .74rem; color: var(--accent-soft); margin-bottom: .55rem; }

.skip-link { position: absolute; left: -999px; top: 0; background: #000; color:#fff; padding:.6rem .9rem; z-index: 50; }
.skip-link:focus { left:1rem; top:1rem; }

.site-header {
  position: sticky; top: 0; z-index: 30;
  background: rgba(16,18,21,.84);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #1f2732;
}
.nav-wrap { min-height: 4.7rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { text-decoration:none; font-family:"Oswald",sans-serif; font-size:1.2rem; }
.brand span { display:block; color:var(--muted); font-size:.72rem; letter-spacing:.1em; }
nav { display:none; gap:1rem; }
nav a { text-decoration:none; color:var(--muted); font-size:.92rem; }
nav a:hover { color:var(--text); }

.btn {
  min-height: 46px; padding:.72rem 1.1rem; border-radius:999px; border:1px solid transparent;
  display:inline-flex; align-items:center; justify-content:center; text-decoration:none; font-weight:600;
  transition: all .16s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: linear-gradient(135deg, #d7a14b, #b97a26); color:#1b1307; box-shadow:0 10px 20px rgba(207,143,47,.25); }
.btn-outline, .btn-ghost { border-color: var(--line); background: rgba(26,32,41,.78); color:var(--text); }
.block { width:100%; }

.hero { position: relative; overflow:hidden; }
.hero-bg {
  position:absolute; inset:0;
  background-image:
    linear-gradient(180deg, rgba(16,18,21,.45), rgba(16,18,21,.9)),
    url('https://images.unsplash.com/photo-1622287162716-f311baa1a2b8?auto=format&fit=crop&w=1800&q=80');
  background-size: cover; background-position: center;
  transform: scale(1.04);
}
.hero-grid { position:relative; z-index:1; display:grid; gap:1.2rem; padding-block: clamp(3.5rem, 10vw, 8rem); }
.lead { max-width: 58ch; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin:1.1rem 0; }
.hero-points { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.hero-points li { border:1px solid rgba(241,196,125,.35); background: rgba(20,25,31,.8); border-radius:999px; padding:.35rem .7rem; font-size:.82rem; color:var(--accent-soft); }
.booking-card { border:1px solid var(--line); border-radius:18px; background:linear-gradient(180deg, rgba(24,31,40,.92), rgba(18,24,32,.95)); padding:1rem; max-width: 420px; }
.booking-card h2 { margin-bottom: .35rem; }
.booking-card .small { font-size: .83rem; margin-top:.6rem; }

.section-head { margin-bottom:1rem; }
.cards { display:grid; gap:1rem; }
.card {
  border:1px solid var(--line);
  border-radius:16px;
  background: linear-gradient(180deg, rgba(27,33,42,.92), rgba(20,25,33,.95));
  padding:1rem;
}
.card strong { display:block; color:var(--accent-soft); margin-top:.45rem; }

.gallery-grid { display:grid; gap:.8rem; }
.gallery-grid img { width:100%; aspect-ratio: 4 / 3; object-fit:cover; border-radius:16px; border:1px solid var(--line); }

.visit-grid { display:grid; gap:1rem; }

.site-footer { border-top:1px solid #1f2732; padding:1rem 0; }
.footer-wrap { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.footer-wrap p { font-size:.9rem; }
.footer-wrap a { color: var(--accent-soft); text-decoration:none; }

.reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .22s ease, transform .22s ease;
}
.reveal.visible { opacity:1; transform: translateY(0); }

:focus-visible {
  outline:2px solid var(--focus);
  outline-offset: 3px;
  border-radius:.5rem;
}

@media (min-width: 760px) {
  nav { display:flex; }
  .three-col { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .hero-grid { grid-template-columns: 1.2fr .8fr; align-items:end; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
