:root {
  color-scheme: light;
  --pine-950: #101c11;
  --pine-900: #1f321f;
  --pine-800: #293f27;
  --pine-700: #345130;
  --mist: #eef4f1;
  --snow: #f8fbfc;
  --brass: #c59b4b;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 15% 0%, rgba(197, 155, 75, 0.13), transparent 28rem),
    linear-gradient(180deg, #f8fbfc 0%, #eef4f1 48%, #f7f4ee 100%);
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

.page-shell {
  min-height: 100vh;
}

.bg-pine-50 {
  background-color: #f4f8f2;
}

.bg-pine-100 {
  background-color: #e7f0e3;
}

.bg-pine-800 {
  background-color: #293f27;
}

.bg-pine-900 {
  background-color: #1f321f;
}

.bg-pine-950,
.page-hero {
  background-color: var(--pine-950);
}

.bg-mist {
  background-color: var(--mist);
}

.bg-snow {
  background-color: var(--snow);
}

.bg-brass {
  background-color: var(--brass);
}

.text-pine-600 {
  color: #43663c;
}

.text-pine-700 {
  color: #345130;
}

.text-pine-800 {
  color: #293f27;
}

.text-pine-900 {
  color: var(--pine-900);
}

.text-pine-950 {
  color: var(--pine-950);
}

.text-stone {
  color: #66756c;
}

.text-brass {
  color: var(--brass);
}

.border-pine-100 {
  border-color: #e7f0e3;
}

.border-pine-200 {
  border-color: #cfe0c8;
}

.border-brass {
  border-color: var(--brass);
}

.hero-stage,
.hero-inner {
  min-height: 80svh;
}

.hero-image {
  background-image:
    linear-gradient(90deg, rgba(16, 28, 17, 0.82), rgba(16, 28, 17, 0.56), rgba(16, 28, 17, 0.18)),
    url("https://images.unsplash.com/photo-1448375240586-882707db888b?auto=format&fit=crop&w=2200&q=78");
  background-position: center;
  background-size: cover;
}

.winter-panel {
  background-image:
    linear-gradient(180deg, rgba(16, 28, 17, 0.38), rgba(16, 28, 17, 0.64)),
    url("https://images.unsplash.com/photo-1483664852095-d6cc6870702d?auto=format&fit=crop&w=1800&q=75");
  background-position: center;
  background-size: cover;
}

.forest-panel {
  background-image:
    linear-gradient(180deg, rgba(16, 28, 17, 0.1), rgba(16, 28, 17, 0.72)),
    url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1800&q=75");
  background-position: center;
  background-size: cover;
}

.glass-nav {
  background: rgba(248, 251, 252, 0.9);
  border-bottom: 1px solid rgba(52, 81, 48, 0.12);
  backdrop-filter: blur(18px);
}

.section-band {
  border-top: 1px solid rgba(52, 81, 48, 0.08);
  border-bottom: 1px solid rgba(52, 81, 48, 0.08);
}

.small-caps {
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.room-card img,
.gallery-tile img {
  transition: transform 700ms ease;
}

.room-card:hover img,
.gallery-tile:hover img {
  transform: scale(1.05);
}

.hide-scrollbar {
  scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

.route-enter {
  animation: routeEnter 420ms ease both;
}

@keyframes routeEnter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.wa-float {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 60;
  touch-action: none;
  user-select: none;
}

.focus-ring:focus-visible {
  outline: 3px solid rgba(197, 155, 75, 0.7);
  outline-offset: 3px;
}

.calendar-cell {
  min-height: 92px;
}

@media (max-width: 768px) {
  .hero-stage,
  .hero-inner {
    min-height: 68svh;
  }

  .hero-image {
    background-image:
      linear-gradient(180deg, rgba(16, 28, 17, 0.28), rgba(16, 28, 17, 0.86)),
      url("https://images.unsplash.com/photo-1448375240586-882707db888b?auto=format&fit=crop&w=1200&q=76");
  }

  .calendar-cell {
    min-height: 74px;
  }
}

@media (max-width: 640px) {
  .wa-float {
    height: 52px;
    width: 52px;
    justify-content: center;
    padding: 0 !important;
  }
}
