:root {
  color-scheme: light;
  --pine-950: #101c11;
  --pine-900: #1f321f;
  --pine-800: #293f27;
  --pine-700: #345130;
  --mist: #eef4f1;
  --snow: #f8fbfc;
  --brass: #c59b4b;
  --font-sans: "SF Pro Display", "SF Pro Text", "Segoe UI", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: "SF Mono", "JetBrains Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  --media-vivid: saturate(1.3) contrast(1.22) brightness(0.96);
  --media-vivid-strong: saturate(1.36) contrast(1.22) brightness(1.03);
  --media-vivid-soft: saturate(1.14) contrast(1.08) brightness(1.03);
}

* {
  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%);
  font-family: var(--font-sans);
}

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

code,
kbd,
samp,
pre,
time,
input[type="date"],
input[type="time"],
input[type="number"],
input[type="datetime-local"],
.font-mono {
  font-family: var(--font-mono);
}

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("/assets/media/GroundFloor/FrontHotelView/IMG_6636.webp");
  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("/assets/media/SecondFloor/SecondFloorView/img_6709-poster.webp");
  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("/assets/media/LowerGroundFloor/LowerGroundFloorView/img_6698-poster.webp");
  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;
  text-transform: uppercase;
}

video {
  filter: var(--media-vivid);
}

img[src*="/Seasonal/"],
img[src*="/FrontHotelView/"],
img[src*="/AstehticDoor/"],
img[src*="/LowerGroundFloorView/"],
img[src*="/FirstFloorView/"],
img[src*="/SecondFloorView/"],
img[src*="/Roof/"],
.vivid-media,
.vivid-video-poster,
.season-panel img,
.ambient-video video,
.structure-hero > img,
.structure-visual > img,
.structure-visual > video {
  filter: var(--media-vivid-strong);
}

.room-card img {
  filter: none;
}

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

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

.season-panel {
  isolation: isolate;
}

.season-panel h3,
.season-panel p {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.42);
}

.season-panel::after {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 0.5rem;
  pointer-events: none;
}

.ambient-video video {
  pointer-events: none;
}

.ambient-video::after {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.5rem;
  pointer-events: none;
}

.structure-page {
  background:
    linear-gradient(180deg, #f8fbfc 0%, #eef4f1 44%, #f7f4ee 100%);
}

.structure-hero video,
.structure-visual video {
  pointer-events: none;
}

.structure-map {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.5rem;
}

.structure-map-item {
  border: 1px solid rgba(52, 81, 48, 0.1);
  text-decoration: none;
}

.structure-map-item:hover {
  transform: translateY(-1px);
}

.structure-showcase {
  isolation: isolate;
  position: relative;
}

.structure-showcase::after,
.structure-visual::after {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 0.5rem;
  pointer-events: none;
}

.structure-visual img,
.structure-visual video {
  transition: transform 900ms ease, filter 900ms ease;
}

.structure-showcase:hover .structure-visual img,
.structure-showcase:hover .structure-visual video {
  transform: scale(1.035);
}

.structure-room-pill svg {
  flex: 0 0 auto;
}

.location-page {
  background:
    radial-gradient(circle at 80% 8%, rgba(197, 155, 75, 0.14), transparent 26rem),
    linear-gradient(180deg, #f8fbfc 0%, #eef4f1 48%, #f7f4ee 100%);
}

.location-hero video,
.location-route-card img {
  pointer-events: none;
}

.location-route-card {
  isolation: isolate;
}

.location-route-card img {
  filter: saturate(0.94) contrast(0.92) brightness(0.72);
}

.location-route-card::after {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 2rem;
  pointer-events: none;
}

.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("/assets/media/GroundFloor/FrontHotelView/IMG_6636.webp");
  }

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

  .structure-map {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
    scrollbar-width: none;
  }

  .structure-map::-webkit-scrollbar {
    display: none;
  }

  .structure-map-item {
    min-width: 190px;
  }
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

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