:root {
  --ink: #1f261f;
  --muted: #667061;
  --paper: #fbfaf5;
  --soft: #f1eee3;
  --sage: #7c8d72;
  --moss: #394634;
  --clay: #b98457;
  --line: #ded8c9;
  --white: #fffdf8;
  --shadow: 0 20px 50px rgba(31, 38, 31, .13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(251, 250, 245, .94);
  border-bottom: 1px solid rgba(222, 216, 201, .8);
  backdrop-filter: blur(18px);
}
.nav {
  max-width: 1180px;
  margin: 0 auto;
  padding: 14px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand { display: flex; align-items: center; gap: 12px; font-weight: 750; }
.brand img { width: 52px; height: 52px; object-fit: contain; }
.brand span { letter-spacing: .02em; }
.nav-links { display: flex; align-items: center; gap: 22px; font-size: 14px; color: #3b4438; }
.nav-links a:hover { color: var(--clay); }
.button, button {
  border: 0;
  border-radius: 6px;
  background: var(--moss);
  color: var(--white);
  padding: 12px 18px;
  font-weight: 750;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
}
.button.secondary { background: var(--white); color: var(--moss); border: 1px solid var(--line); }
.button.gold { background: var(--clay); color: #fff; }

.hero {
  min-height: 82vh;
  display: grid;
  align-items: end;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(20, 26, 19, .26), rgba(20, 26, 19, .77)),
    var(--hero) center / cover no-repeat;
}
.hero .inner {
  max-width: 1180px;
  width: 100%;
  margin: 0 auto;
  padding: 130px 22px 54px;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 12px;
  font-weight: 800;
  color: #ead7bb;
}
h1, h2, h3 { line-height: 1.08; margin: 0; letter-spacing: 0; }
h1 { font-size: clamp(42px, 7vw, 82px); max-width: 980px; }
h2 { font-size: clamp(30px, 4vw, 52px); max-width: 820px; }
h3 { font-size: 23px; }
.lead { font-size: clamp(18px, 2vw, 22px); max-width: 760px; color: rgba(255,255,255,.9); margin: 24px 0 0; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

.trust {
  background: var(--moss);
  color: #eef2e9;
}
.trust-grid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.14);
}
.trust-grid div { background: var(--moss); padding: 18px 20px; }
.trust strong { display: block; font-size: 18px; color: #fff; }
.trust span { font-size: 13px; color: #d9dfd4; }

.section { padding: 86px 22px; }
.section.soft { background: var(--soft); }
.container { max-width: 1180px; margin: 0 auto; }
.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .88fr);
  gap: 48px;
  align-items: center;
}
.split.reverse { grid-template-columns: minmax(340px, .88fr) minmax(0, 1fr); }
.section p { color: var(--muted); font-size: 17px; }
.media {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--shadow);
  background: #ddd;
}
.media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.kicker { color: var(--clay); font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: 12px; }

.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 34px;
}
.card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}
.card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.card-body { padding: 24px; }
.card p { margin-bottom: 0; }

.feature-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.feature-list li {
  background: rgba(255,255,255,.58);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 14px 16px;
  color: #4e594a;
}

.booking-panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 24px;
  box-shadow: var(--shadow);
}
.booking-cta {
  display: grid;
  align-content: center;
  gap: 14px;
}
.booking-cta h3 {
  margin: 0;
  font-size: 28px;
}
.booking-cta p {
  margin: 0;
  color: var(--muted);
}
.booking-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
label { display: grid; gap: 7px; color: #465042; font-weight: 750; font-size: 13px; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 12px;
  font: inherit;
  min-height: 44px;
}
textarea { resize: vertical; min-height: 98px; }
.estimate {
  margin: 18px 0;
  padding: 16px;
  border-radius: 6px;
  background: #eef2e9;
  color: var(--moss);
}
.estimate strong { display: block; font-size: 26px; }
.small { font-size: 13px; color: var(--muted); }

.gallery {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 14px;
}
.gallery img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; border-radius: 8px; }
.gallery img:first-child { grid-row: span 2; }

.testimonial {
  font-size: 20px;
  color: #384234;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 26px;
}
.footer {
  background: #202820;
  color: #edf1e8;
  padding: 56px 22px 28px;
}
.footer-grid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 34px;
}
.footer a, .footer p { color: #cbd4c5; }
.footer small { display: block; max-width: 1180px; margin: 34px auto 0; color: #aeb8aa; }
.mobile-book { display: none; }

@media (max-width: 900px) {
  .nav { align-items: flex-start; }
  .nav-links { display: none; }
  .hero { min-height: 76vh; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .split, .split.reverse { grid-template-columns: 1fr; }
  .cards { grid-template-columns: 1fr; }
  .feature-list { grid-template-columns: 1fr; }
  .booking-grid { grid-template-columns: 1fr; }
  .gallery { grid-template-columns: 1fr; }
  .gallery img:first-child { grid-row: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .mobile-book {
    display: flex;
    position: fixed;
    left: 14px;
    right: 14px;
    bottom: 14px;
    z-index: 30;
    box-shadow: var(--shadow);
  }
}
