/* v265 bundle: exact concatenation, same order, of: styles.css, theme-v18.css, theme-v19.css, theme-v20.css, theme-v21.css, theme-v22.css, attractions-v67.css, calbook-v71.css, polish-v94.css, theme-v135.css */

/* ==== styles.css ==== */
:root {
  --forest: #2C5F2D;
  --forest-dark: #1E431F;
  --forest-deep: #142E15;
  --forest-soft: #E9F2E9;
  --wood: #8B5A2B;
  --wood-dark: #6E4720;
  --wood-light: #C69C6D;
  --wood-soft: #F5EBE0;
  --cream: #FAF7F2;
  --sand: #F2ECE1;
  --sand-border: #E2D9C8;
  --surface: #FFFFFF;
  --ink: #1C251E;
  --ink-muted: #526056;
  --ink-light: #7A887E;
  --gold: #D97706;
  --danger: #B91C1C;
  --danger-soft: #FEE2E2;
  --info: #1D4ED8;
  --info-soft: #DBEAFE;
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --shadow-sm: 0 2px 8px rgba(28, 37, 30, 0.06);
  --shadow-md: 0 10px 30px rgba(28, 37, 30, 0.09);
  --shadow-lg: 0 20px 50px rgba(20, 46, 21, 0.16);
  --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'Plus Jakarta Sans', sans-serif;
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background-color: var(--cream);
  color: var(--ink);
  font-family: var(--font-sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 72px; /* Space for mobile sticky bar */
}

@media (min-width: 960px) {
  body {
    padding-bottom: 0;
  }
}

h1, h2, h3, h4, .serif {
  font-family: var(--font-serif);
  color: var(--ink);
  line-height: 1.22;
  margin-top: 0;
}

a {
  color: var(--forest);
  text-decoration: none;
  transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease;
}

img {
  max-width: 100%;
  display: block;
}

.container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Top announcement bar */
.top-ribbon {
  background: var(--forest-deep);
  color: #E9F2E9;
  font-size: 0.82rem;
  padding: 8px 16px;
  text-align: center;
  letter-spacing: 0.01em;
}
.top-ribbon strong {
  color: #FCD34D;
}
.top-ribbon a {
  color: #fff;
  text-decoration: underline;
  margin-left: 8px;
  font-weight: 600;
}

/* Header & Navigation */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(250, 247, 242, 0.95);
  -webkit-backdrop-filter:blur(12px);backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--sand-border);
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 70px;
  padding: 8px 0;
  gap: 12px;
  overflow: hidden;
}
.brand-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}
.brand-logo > div:last-child {
  min-width: 0;
  overflow: hidden;
}
.brand-mark {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--forest), var(--forest-dark));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  box-shadow: 0 4px 12px rgba(44, 95, 45, 0.25);
  flex-shrink: 0;
}
.brand-text-title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.26rem;
  line-height: 1.15;
  color: var(--forest-deep);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.brand-text-sub {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  color: var(--wood-dark);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-links {
  display: none;
  align-items: center;
  gap: 6px;
}
@media (min-width: 960px) {
  .nav-links {
    display: flex;
  }
}
.nav-link {
  padding: 8px 14px;
  border-radius: 999px;
  color: var(--ink-muted);
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
}
.nav-link:hover, .nav-link.active {
  color: var(--forest-dark);
  background: var(--forest-soft);
}
.nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 20px;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 0.92rem;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.18s ease;
  text-decoration: none;
  white-space: nowrap;
}
.btn-primary {
  background: var(--forest);
  color: #fff;
  box-shadow: 0 4px 14px rgba(44, 95, 45, 0.28);
}
.btn-primary:hover {
  background: var(--forest-dark);
  transform: translateY(-1px);
}
.btn-wood {
  background: var(--wood);
  color: #fff;
  box-shadow: 0 4px 14px rgba(139, 90, 43, 0.26);
}
.btn-wood:hover {
  background: var(--wood-dark);
  transform: translateY(-1px);
}
.btn-outline {
  background: transparent;
  color: var(--forest-dark);
  border-color: var(--forest);
}
.btn-outline:hover {
  background: var(--forest-soft);
}
.btn-ghost {
  background: var(--sand);
  color: var(--ink);
  border-color: var(--sand-border);
}
.btn-ghost:hover {
  background: #E7DFD0;
}
.btn-lg {
  padding: 14px 28px;
  font-size: 1rem;
}
.btn-sm {
  padding: 7px 14px;
  font-size: 0.82rem;
}

.mobile-menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  border: 1px solid var(--sand-border);
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
}
@media (min-width: 960px) {
  .mobile-menu-btn {
    display: none;
  }
}

/* Mobile Nav Drawer */
.mobile-drawer {
  display: none;
  background: var(--surface);
  border-bottom: 2px solid var(--sand-border);
  padding: 16px 20px;
}
.mobile-drawer.open {
  display: block;
}
.mobile-drawer-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mobile-drawer-links a {
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 600;
  color: var(--ink);
}
.mobile-drawer-links a.active {
  background: var(--forest-soft);
  color: var(--forest-dark);
}

/* Hero Section */
.hero-section {
  position: relative;
  min-height: 580px;
  display: flex;
  align-items: center;
  background-color: var(--forest-deep);
  background-image: linear-gradient(180deg, rgba(16, 32, 18, 0.52) 0%, rgba(16, 32, 18, 0.76) 100%), url('/images/hero-cabin-stream.jpg?v=72');
  background-size: cover;
  background-position: center;
  color: #fff;
  padding: 64px 0 84px;
}
.hero-content {
  max-width: 820px;
}
.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}
.pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: rgba(255, 255, 255, 0.16);
  -webkit-backdrop-filter:blur(8px);backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
}
.pill-badge.gold {
  background: rgba(217, 119, 6, 0.88);
  border-color: rgba(252, 211, 77, 0.5);
}
.hero-title {
  color: #fff;
  font-size: clamp(2.25rem, 4.6vw, 3.8rem);
  margin-bottom: 14px;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
.hero-subtitle {
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  color: rgba(255, 255, 255, 0.92);
  max-width: 680px;
  margin-bottom: 28px;
}

/* Booking Bar Above the Fold */
.booking-bar-card {
  background: var(--surface);
  color: var(--ink);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--sand-border);
  margin-top: 12px;
}
.booking-bar-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  align-items: end;
}
@media (min-width: 820px) {
  .booking-bar-grid {
    grid-template-columns: 1.2fr 1.2fr 1fr auto;
  }
}
.field-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.field-label {
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wood-dark);
}
.field-input, .field-select, .field-textarea {
  width: 100%;
  padding: 11px 13px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--sand-border);
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 500;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.field-input:focus, .field-select:focus, .field-textarea:focus {
  outline: none;
  border-color: var(--forest);
  box-shadow: 0 0 0 3px rgba(44, 95, 45, 0.16);
  background: #fff;
}

/* Highlights Strip */
.stats-strip {
  background: var(--sand);
  border-bottom: 1px solid var(--sand-border);
  padding: 22px 0;
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (min-width: 768px) {
  .stats-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}
.stat-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--surface);
  padding: 12px 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--sand-border);
}
.stat-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--forest-soft);
  color: var(--forest);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  flex-shrink: 0;
}
.stat-val {
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--ink);
  line-height: 1.2;
}
.stat-lbl {
  font-size: 0.74rem;
  color: var(--ink-muted);
}

/* Sections */
.section {
  padding: 68px 0;
}
.section-alt {
  background: var(--sand);
  border-top: 1px solid var(--sand-border);
  border-bottom: 1px solid var(--sand-border);
}
.section-header {
  max-width: 720px;
  margin-bottom: 36px;
}
.eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--wood);
  margin-bottom: 8px;
}
.section-title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  margin-bottom: 12px;
}
.section-desc {
  color: var(--ink-muted);
  font-size: 1.04rem;
  margin: 0;
}

/* Cards & Grids */
.grid-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
.grid-3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
.grid-4 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 768px) {
  .grid-2 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1040px) {
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
}

.card {
  background: var(--surface);
  border: 1px solid var(--sand-border);
  border-radius: var(--radius-md);
  padding: 24px;
  box-shadow: var(--shadow-sm);
}

/* Photo Gallery & Bento Grid */
.bento-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  border-radius: var(--radius-lg);
  overflow: hidden;
}
@media (min-width: 860px) {
  .bento-gallery {
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 230px 230px;
  }
  .bento-main {
    grid-row: 1 / 3;
  }
}
.bento-item {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  border-radius: var(--radius-sm);
  min-height: 220px;
  background: #222;
}
.bento-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.bento-item:hover img {
  transform: scale(1.04);
}
.bento-caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 14px 16px;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.78));
  color: #fff;
  font-size: 0.86rem;
  font-weight: 600;
}

/* Filter Pills */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.filter-pill {
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid var(--sand-border);
  background: var(--surface);
  color: var(--ink-muted);
  font-weight: 600;
  font-size: 0.86rem;
  cursor: pointer;
  transition: all 0.16s ease;
}
.filter-pill:hover, .filter-pill.active {
  background: var(--forest);
  color: #fff;
  border-color: var(--forest);
}

/* Interactive Availability Calendar Component */
.cal-months-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 760px) {
  .cal-months-wrap.two-up {
    grid-template-columns: 1fr 1fr;
  }
}
.cal-month-card {
  background: var(--surface);
  border: 1px solid var(--sand-border);
  border-radius: var(--radius-md);
  padding: 16px;
}
.cal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.cal-month-title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--forest-deep);
}
.cal-weekdays, .cal-days-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.cal-weekday {
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-light);
  padding: 4px 0;
}
.cal-day {
  min-height: 48px;
  border-radius: 8px;
  border: 1px solid transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4px 2px;
  cursor: pointer;
  user-select: none;
  font-size: 0.84rem;
  font-weight: 600;
  background: var(--cream);
  color: var(--ink);
  transition: all 0.14s ease;
}
.cal-day.empty {
  background: transparent;
  cursor: default;
}
.cal-day .cal-price {
  font-size: 0.65rem;
  color: var(--wood-dark);
  font-weight: 600;
}
.cal-day:hover:not(.empty):not(.unavailable) {
  border-color: var(--forest);
  background: var(--forest-soft);
}
.cal-day.unavailable {
  background: #EFECE6;
  color: #A8A29E;
  text-decoration: line-through;
  cursor: not-allowed;
}
.cal-day.unavailable .cal-price {
  color: #A8A29E;
  text-decoration: none;
}
.cal-day.selected-start, .cal-day.selected-end {
  background: var(--forest) !important;
  color: #fff !important;
  border-color: var(--forest-dark);
}
.cal-day.selected-start .cal-price, .cal-day.selected-end .cal-price {
  color: #E9F2E9 !important;
}
.cal-day.in-range {
  background: var(--forest-soft);
  color: var(--forest-deep);
  border-color: rgba(44, 95, 45, 0.25);
}

/* Two-Column Property & Checkout Layout */
.layout-with-sidebar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  align-items: start;
}
@media (min-width: 980px) {
  .layout-with-sidebar {
    grid-template-columns: 1.65fr 1fr;
  }
}
.sticky-sidebar {
  position: sticky;
  top: 96px;
}

/* Add-on Toggle Switch Cards */
.addon-toggle-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
  border-radius: var(--radius-md);
  border: 1.5px solid var(--sand-border);
  background: var(--surface);
  cursor: pointer;
  transition: all 0.18s ease;
}
.addon-toggle-card:hover {
  border-color: var(--wood);
}
.addon-toggle-card.active {
  border-color: var(--forest);
  background: var(--forest-soft);
}
.switch-pill {
  width: 46px;
  height: 26px;
  border-radius: 999px;
  background: #CBD5E1;
  position: relative;
  flex-shrink: 0;
  transition: background 0.2s ease;
}
.switch-pill::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25);
  transition: transform 0.2s ease;
}
.addon-toggle-card.active .switch-pill {
  background: var(--forest);
}
.addon-toggle-card.active .switch-pill::after {
  transform: translateX(20px);
}

/* Price Breakdown Receipt Table */
.quote-lines {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 16px 0;
  padding: 16px 0;
  border-top: 1px solid var(--sand-border);
  border-bottom: 1px solid var(--sand-border);
}
.quote-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.93rem;
  color: var(--ink);
}
.quote-line.muted {
  color: var(--ink-muted);
  font-size: 0.86rem;
}
.quote-line.addon-highlight {
  color: var(--forest-dark);
  font-weight: 600;
}
.quote-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--forest-deep);
  padding-top: 8px;
}

/* Lightbox Modal */
.lightbox-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2500;
  background: rgba(12, 18, 13, 0.92);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.lightbox-backdrop.open {
  display: flex;
}
.lightbox-content {
  max-width: 1020px;
  width: 100%;
  color: #fff;
  text-align: center;
}
.lightbox-img-wrap {
  max-height: 74vh;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lightbox-img-wrap img {
  max-height: 74vh;
  width: auto;
  margin: 0 auto;
}

/* Leaflet Map Container */
#cabin-leaflet-map {
  width: 100%;
  height: 460px;
  border-radius: var(--radius-lg);
  border: 2px solid var(--sand-border);
  box-shadow: var(--shadow-md);
  z-index: 10;
}

/* Sticky Mobile Booking Bar */
.mobile-sticky-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1200;
  background: var(--surface);
  border-top: 1px solid var(--sand-border);
  padding: 10px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.08);
}
@media (min-width: 960px) {
  .mobile-sticky-bar {
    display: none;
  }
}

/* Footer */
.site-footer {
  background: var(--forest-deep);
  color: #D8E6D8;
  padding: 56px 0 36px;
  margin-top: 64px;
}
.site-footer h4 {
  color: #fff;
  margin-bottom: 14px;
}
.site-footer a {
  color: #B9D4B9;
}
.site-footer a:hover {
  color: #fff;
}

@media print {
  .site-header, .top-ribbon, .mobile-sticky-bar, .site-footer, .no-print {
    display: none !important;
  }
  body {
    background: #fff;
    padding: 0;
  }
}

/* ==========================================================================
   DESIGN RENDER ALIGNMENT: SPLIT PROPERTY LAYOUT, 3-COL CHECKOUT & MOBILE
   ========================================================================== */

.pine-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 10px auto 14px;
  color: var(--forest);
  font-size: 1rem;
}
.pine-divider::before,
.pine-divider::after {
  content: '';
  width: 56px;
  height: 1.5px;
  background: rgba(44, 95, 45, 0.35);
}

/* Split Property Showcase (Render #1: 60% Left Carousel + 40% Right Details) */
.split-property-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  align-items: start;
}
@media (min-width: 980px) {
  .split-property-grid {
    grid-template-columns: 1.42fr 1fr;
    gap: 44px;
  }
}

.carousel-main-wrap {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: #1a241b;
  aspect-ratio: 16 / 10.5;
  box-shadow: var(--shadow-md);
}
.carousel-main-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
  transition: transform 0.35s ease;
}
.carousel-chevron {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  border: 1px solid rgba(0,0,0,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.22);
  transition: all 0.16s ease;
  z-index: 5;
}
.carousel-chevron:hover {
  background: #fff;
  transform: translateY(-50%) scale(1.06);
}
.carousel-chevron.left { left: 16px; }
.carousel-chevron.right { right: 16px; }

.thumb-strip-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-top: 12px;
}
.thumb-item {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  cursor: pointer;
  border: 2px solid transparent;
  background: #222;
}
.thumb-item.active {
  border-color: var(--forest);
}
.thumb-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.thumb-count-pill {
  position: absolute;
  left: 6px;
  bottom: 6px;
  background: rgba(15, 23, 17, 0.82);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* 5 Line-Art Amenity Icons Row (Render #1) */
.amenity-icon-row-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin: 14px 0 22px;
  padding: 14px 10px;
  background: var(--surface);
  border: 1px solid var(--sand-border);
  border-radius: 14px;
}
.amenity-icon-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--ink);
}
.amenity-icon-cell svg {
  width: 24px;
  height: 24px;
  stroke: var(--ink);
  stroke-width: 1.75;
  fill: none;
}

/* Render #1 & #4 Calendar Tile Styles (Available Sage/Green vs Selected vs Booked) */
.cal-day.avail-green {
  background: #CFE0CF;
  color: #16351D;
  font-weight: 700;
}
.cal-day.avail-green .cal-price {
  color: #23472B;
}
.cal-day.avail-green:hover {
  background: #B8D3B8;
  border-color: #23472B;
}
.cal-legend-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 0.78rem;
  color: var(--ink-muted);
  margin-top: 10px;
}
.legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 4px;
  display: inline-block;
  margin-right: 5px;
  vertical-align: middle;
}

/* Desktop 3-Column Checkout Layout (Render #2) */
.checkout-summary-bar {
  background: var(--surface);
  border-bottom: 1px solid var(--sand-border);
  padding: 12px 0;
  margin-bottom: 24px;
}
.checkout-summary-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
}
.checkout-3col-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}
@media (min-width: 1060px) {
  .checkout-3col-grid {
    grid-template-columns: 320px 1fr 330px;
  }
}

.stay-total-banner {
  background: var(--forest-dark);
  color: #fff;
  padding: 14px 20px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  box-shadow: var(--shadow-sm);
}

.card-brand-badges {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.card-brand-pill {
  padding: 3px 8px;
  border-radius: 5px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  border: 1px solid var(--sand-border);
  background: #fff;
  color: #1E293B;
}

/* ==========================================================================
   BATCH 2 RENDER ENHANCEMENTS: FLOATING FROSTED BOOKING BAR, 30/70 MAP, ETC.
   ========================================================================== */

/* Floating Frosted-Glass Horizontal Booking Bar (Render 01M5MTN3PYBYS77BQTRMTMMG2S) */
.frosted-booking-bar {
  background: rgba(247, 245, 238, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: 20px;
  padding: 12px 16px;
  box-shadow: 0 22px 50px rgba(10, 24, 12, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.65);
  color: var(--ink);
  margin-top: 28px;
}
.frosted-bar-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: center;
}
@media (min-width: 860px) {
  .frosted-bar-cols {
    grid-template-columns: 1fr 1fr 0.9fr auto;
    gap: 0;
  }
  .frosted-col {
    padding: 8px 20px;
    border-right: 1px solid rgba(28, 37, 30, 0.14);
  }
  .frosted-col:last-of-type {
    border-right: none;
  }
}
.frosted-col-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--forest-deep);
  margin-bottom: 4px;
}
.frosted-col input,
.frosted-col select {
  width: 100%;
  border: none;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 0.96rem;
  font-weight: 600;
  color: var(--ink);
  padding: 4px 0;
  cursor: pointer;
}
.frosted-col input:focus,
.frosted-col select:focus {
  outline: none;
}

/* Location & Map Page 30% / 70% Split Layout (Render 01M5MTN6A7G87VDHRHPSBSWTG5) */
.location-split-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: stretch;
}
@media (min-width: 980px) {
  .location-split-layout {
    grid-template-columns: 360px 1fr;
    gap: 32px;
  }
}
.location-sidebar-panel {
  background: var(--surface);
  border: 1px solid var(--sand-border);
  border-radius: var(--radius-lg);
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: var(--shadow-sm);
}
.location-map-wrapper {
  position: relative;
  min-height: 540px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 2px solid var(--sand-border);
  box-shadow: var(--shadow-md);
}
.location-map-wrapper #cabin-leaflet-map {
  height: 100%;
  min-height: 540px;
  border: none;
  border-radius: 0;
}
.map-Floating-photo-card {
  position: absolute;
  left: 20px;
  bottom: 20px;
  z-index: 500;
  width: 250px;
  background: var(--surface);
  border-radius: 14px;
  padding: 8px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
  border: 2px solid #fff;
  pointer-events: auto;
}
.map-Floating-photo-card img {
  width: 100%;
  height: 132px;
  object-fit: cover;
  border-radius: 9px;
}

/* Area Guide / Nearby Attractions Top 50/50 Header + Mini-Map Strip (Render 01M5MTN0DG3726XGF379BMERAK) */
.attractions-header-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: center;
  margin-bottom: 32px;
}
@media (min-width: 920px) {
  .attractions-header-split {
    grid-template-columns: 1fr 1.1fr;
  }
}
.mini-topo-strip {
  background: linear-gradient(135deg, #E3ECE2 0%, #D5E2D4 55%, #DFECE0 100%);
  border: 1.5px solid #BDCEBD;
  border-radius: 16px;
  padding: 18px 20px;
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 2px 10px rgba(44, 95, 45, 0.08);
}
.mini-topo-pin {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--forest-deep);
  color: #fff;
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(20, 46, 21, 0.25);
}
.mini-topo-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.88);
  color: var(--forest-deep);
  border: 1px solid rgba(44, 95, 45, 0.22);
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}

/* ==========================================================================
   ATTACHED RENDER 1: HERO ESCAPE & HEADER STYLING
   ========================================================================== */

.brand-trout-svg {
  width: 54px;
  height: 26px;
  color: var(--forest-deep);
  flex-shrink: 0;
}

.nav-caret {
  font-size: 0.72rem;
  opacity: 0.75;
  margin-left: 2px;
}

.btn-book-header {
  background: var(--forest-deep);
  color: #fff;
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  border-radius: 10px;
  padding: 10px 18px;
  font-size: 0.88rem;
  font-weight: 600;
}
.btn-book-header:hover {
  background: var(--forest);
  color: #fff;
}

.hero-escape {
  position: relative;
  min-height: 670px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-color: #102214;
  background-image:
    linear-gradient(180deg, rgba(14, 26, 16, 0.42) 0%, rgba(14, 26, 16, 0.26) 45%, rgba(12, 24, 14, 0.78) 100%),
    url('/images/render-cabin-stream-hero.jpg?v=72');
  background-size: cover;
  background-position: center;
  color: #fff;
  padding: 64px 0 28px;
}

.hero-escape-main {
  margin-top: 28px;
  margin-bottom: 24px;
}

.hero-escape-title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(2.5rem, 5.2vw, 4.35rem);
  line-height: 1.08;
  color: #fff;
  margin: 0 0 16px;
  text-shadow: 0 4px 28px rgba(0, 0, 0, 0.45);
  max-width: 680px;
}

.hero-escape-sub {
  font-size: clamp(1.02rem, 1.6vw, 1.22rem);
  color: rgba(255, 255, 255, 0.94);
  max-width: 490px;
  margin: 0 0 34px;
  line-height: 1.48;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}

.hero-booking-pill {
  background: rgba(244, 242, 236, 0.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: 16px;
  padding: 16px 20px;
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.36);
  border: 1px solid rgba(255, 255, 255, 0.75);
  color: var(--ink);
  max-width: 980px;
}

.hero-booking-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  align-items: center;
}

@media (min-width: 860px) {
  .hero-booking-grid {
    grid-template-columns: 1fr 1fr 0.9fr auto;
    gap: 0;
  }
  .hero-booking-col {
    padding: 4px 22px;
    border-right: 1px solid rgba(28, 37, 30, 0.14);
  }
  .hero-booking-col:first-child {
    padding-left: 8px;
  }
  .hero-booking-col.no-border {
    border-right: none;
  }
}

.hero-col-inner {
  display: flex;
  align-items: center;
  gap: 12px;
}

.hero-col-icon {
  width: 24px;
  height: 24px;
  color: #2A3B2C;
  flex-shrink: 0;
}

.hero-col-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #3B4A3E;
  margin-bottom: 2px;
}

.hero-col-input {
  border: none;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 0.98rem;
  font-weight: 600;
  color: #162218;
  padding: 2px 0;
  width: 100%;
  cursor: pointer;
}
.hero-col-input:focus {
  outline: none;
}

.btn-hero-check {
  background: #1D3B26;
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 16px 28px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.18s ease, transform 0.18s ease;
  width: 100%;
}
.btn-hero-check:hover {
  background: #142B1B;
  transform: translateY(-1px);
}

.hero-bottom-tagline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 28px;
  text-align: left;
  color: rgba(255, 255, 255, 0.94);
  font-size: 0.95rem;
  line-height: 1.45;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}

.hero-mountain-circle {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: rgba(18, 36, 21, 0.35);
}

.hero-escape-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
  padding-top: 14px;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
}
.hero-escape-footer a {
  color: rgba(255, 255, 255, 0.9);
}

/* Form Helpers for Lead Modal & Checkout */
.form-row-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
.form-row-3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
@media (min-width: 640px) {
  .form-row-2 { grid-template-columns: 1fr 1fr; }
  .form-row-3 { grid-template-columns: 1fr 1fr 1fr; }
}
.form-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 12px;
}
.form-label {
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wood-dark);
}
.form-control {
  width: 100%;
  padding: 11px 13px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--sand-border);
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 500;
}
.form-control:focus {
  outline: none;
  border-color: var(--forest);
  box-shadow: 0 0 0 3px rgba(44, 95, 45, 0.16);
  background: #fff;
}


/* ==========================================================================
   IPHONE & MOBILE RESPONSIVE FIXES: HEADER BLEED, FONT HARMONY & CALENDAR FIT
   ========================================================================== */

html, body {
  overflow-x: hidden;
  max-width: 100%;
  -webkit-text-size-adjust: 100%;
}

/* Explicit font-family enforcement so front page fonts match 100% */
body,
button,
input,
select,
textarea,
.btn,
.btn-hero-check,
.btn-book-header,
.nav-link,
.pill-badge,
.eyebrow,
.stat-val,
.stat-lbl,
.cal-weekday,
.cal-day,
.cal-price,
.filter-pill,
.quote-line,
.quote-total,
.form-label,
.form-control {
  font-family: var(--font-sans);
}

.brand-text-title,
.hero-escape-title,
.section-title,
.cal-month-title,
.serif {
  font-family: var(--font-serif);
}

/* Prevent any grid child from expanding wider than the viewport */
.split-property-grid > *,
.layout-with-sidebar > *,
.checkout-3col-grid > *,
.location-split-layout > *,
.attractions-header-split > *,
.cal-months-wrap > *,
.sticky-sidebar,
.card,
.cal-month-card {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* Calendar 7-column strict containment */
.cal-months-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  width: 100%;
  max-width: 100%;
}
.sticky-sidebar .cal-months-wrap.two-up {
  grid-template-columns: 1fr;
}
.cal-month-card {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  padding: 14px;
}
.cal-weekdays,
.cal-days-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
}
.cal-weekday {
  min-width: 0;
  text-align: center;
  font-size: 0.7rem;
  padding: 4px 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-day {
  min-width: 0;
  width: 100%;
  min-height: 46px;
  padding: 4px 1px;
  box-sizing: border-box;
  overflow: hidden;
}
.cal-price {
  font-size: 0.62rem;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* iPhone / Mobile Quick Date Picker Bar above calendar */
.ios-quick-date-bar {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 8px;
  background: var(--cream);
  border: 1px solid var(--sand-border);
  border-radius: 12px;
  padding: 10px 12px;
  margin-bottom: 12px;
  align-items: end;
}
.ios-quick-date-field {
  min-width: 0;
}
.ios-quick-date-field label {
  display: block;
  font-size: 0.66rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wood-dark);
  margin-bottom: 3px;
}
.ios-quick-date-field input,
.ios-quick-date-field select {
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  border-radius: 8px;
  border: 1px solid var(--sand-border);
  background: #fff;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  min-height: 38px;
}

/* Tablet & Mobile Header + Hero + Calendar Adjustments */
@media (max-width: 860px) {
  .top-ribbon {
    font-size: 0.72rem;
    padding: 6px 10px;
    line-height: 1.3;
  }
  .site-header {
    overflow: hidden;
  }
  .nav-inner {
    min-height: 62px;
    height: auto;
    padding: 8px 0;
    gap: 8px;
  }
  /* Hide Ask Host button in top navbar on mobile (it lives in mobile menu drawer) */
  #open-lead-modal-btn {
    display: none !important;
  }
  .nav-actions {
    gap: 8px;
    flex-shrink: 0;
  }
  .btn-book-header {
    padding: 8px 12px;
    font-size: 0.8rem;
    border-radius: 8px;
    min-height: 38px;
  }
  .brand-mark {
    width: 38px !important;
    height: 38px !important;
    border-radius: 10px;
  }
  .brand-text-title {
    font-size: 1.1rem;
    line-height: 1.15;
  }
  .brand-text-sub {
    font-size: 0.64rem;
    letter-spacing: 0.02em;
  }
}

@media (max-width: 640px) {
  .container {
    padding: 0 14px;
  }
  /* Prevent iOS Safari auto-zoom on focus by ensuring 16px font-size on all inputs */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="date"],
  input[type="number"],
  input[type="password"],
  input[type="search"],
  select,
  textarea,
  .form-control,
  .hero-col-input,
  .booking-field input,
  .booking-field select {
    font-size: 16px !important;
  }

  .hero-escape {
    min-height: auto;
    padding: 28px 0 24px;
  }
  .hero-escape-main {
    margin-top: 8px;
    margin-bottom: 16px;
  }
  .hero-badges {
    gap: 6px;
    margin-bottom: 12px;
  }
  .pill-badge {
    font-size: 0.72rem;
    padding: 5px 10px;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .hero-escape-title {
    font-size: clamp(2rem, 8vw, 2.55rem);
    line-height: 1.1;
    margin-bottom: 12px;
  }
  .hero-escape-sub {
    font-size: 0.95rem;
    line-height: 1.45;
    margin-bottom: 20px;
  }
  .hero-booking-pill {
    padding: 14px;
    border-radius: 14px;
  }
  .hero-booking-grid > div:last-child {
    padding-left: 0 !important;
  }
  .btn-hero-check {
    padding: 14px 20px;
    font-size: 0.98rem;
  }
  .hero-bottom-tagline {
    margin-top: 18px;
    font-size: 0.84rem;
    gap: 10px;
  }
  .hero-escape-footer {
    margin-top: 18px;
    padding-top: 12px;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    gap: 6px;
  }

  /* Compact cards & calendar on iPhone screens (375px - 430px) */
  .card,
  .sticky-sidebar > .card {
    padding: 16px 14px !important;
  }
  .amenity-icon-row-5 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 10px 8px;
  }
  .cal-months-wrap,
  .cal-months-wrap.two-up {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .cal-month-card {
    padding: 10px 8px;
  }
  .cal-weekdays,
  .cal-days-grid {
    gap: 3px;
  }
  .cal-weekday {
    font-size: 0.64rem;
    padding: 2px 0;
  }
  .cal-day {
    min-height: 44px;
    padding: 3px 1px;
    font-size: 0.78rem;
    border-radius: 6px;
  }
  .cal-price {
    font-size: 0.56rem;
    letter-spacing: -0.02em;
  }
  .ios-quick-date-bar {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 10px;
  }
  .ios-quick-date-bar .ios-quick-date-field:nth-child(3) {
    grid-column: 1 / -1;
  }
  .mobile-sticky-bar {
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 400px) {
  .brand-text-sub {
    max-width: 155px;
  }
  .btn-book-header {
    padding: 7px 10px;
    font-size: 0.76rem;
  }
}

/* Zero-truncation mobile header & date input containment at 375px */
@media (max-width: 640px) {
  .brand-logo {
    gap: 8px;
  }
  .brand-trout-svg {
    width: 38px !important;
    height: 38px !important;
  }
  .brand-text-title {
    font-size: 1.06rem;
    letter-spacing: -0.01em;
    line-height: 1.15;
  }
  .brand-text-sub {
    font-size: 0.62rem;
    letter-spacing: 0.02em;
    max-width: none !important;
  }
  .nav-actions {
    gap: 6px;
  }
  .btn-book-header {
    padding: 7px 10px;
    font-size: 0.76rem;
    min-height: 36px;
  }
  .mobile-menu-btn {
    width: 36px;
    height: 36px;
    font-size: 1.05rem;
  }
  .ios-quick-date-bar {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    padding: 10px;
    overflow: hidden;
  }
  .ios-quick-date-field {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }
  .ios-quick-date-field input,
  .ios-quick-date-field select {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 6px 6px;
    font-size: 0.88rem !important;
    -webkit-appearance: none;
    appearance: none;
  }
}


/* ==========================================================================
   SYNTHETIC QA SUITE FIXES: MONOSPACE CODE, 42PX TOUCH TARGETS, 320PX FIT,
   AND FULL RESPONSIVE ADMIN BACK-OFFICE DESIGN SYSTEM
   ========================================================================== */

code, pre, kbd, samp, .mono {
  font-family: var(--font-mono) !important;
}

/* Ensure all interactive inputs meet >= 42px touch target height and >= 16px font size */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
select,
.form-control,
.field-input,
.field-select,
.hero-col-input,
.ios-quick-field input,
.ios-quick-field select,
.ios-quick-date-field input,
.ios-quick-date-field select {
  min-height: 44px !important;
  font-size: 16px !important;
  box-sizing: border-box;
}

textarea,
.field-textarea {
  min-height: 76px !important;
  font-size: 16px !important;
  box-sizing: border-box;
}

.ios-quick-field {
  min-width: 0;
  max-width: 100%;
}

/* Mobile & 320px SE Responsive Containment */
@media (max-width: 640px) {
  .container {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .stat-item {
    padding: 10px 8px !important;
    gap: 8px !important;
    min-width: 0 !important;
    overflow: hidden;
  }
  .stat-icon {
    width: 30px !important;
    height: 30px !important;
    flex-shrink: 0;
  }
  .stat-val {
    font-size: 0.78rem !important;
    line-height: 1.2 !important;
    overflow-wrap: anywhere;
  }
  .stat-lbl {
    font-size: 0.68rem !important;
    line-height: 1.2 !important;
    overflow-wrap: anywhere;
  }
  .card,
  .sticky-sidebar > .card,
  .location-sidebar-panel {
    padding: 12px 8px !important;
  }
  .cal-month-card {
    padding: 6px 3px !important;
  }
  .cal-weekdays,
  .cal-days-grid {
    gap: 2px !important;
  }
  .cal-day {
    min-height: 44px !important;
    padding: 3px 1px !important;
    font-size: 0.78rem !important;
  }
  .btn {
    white-space: normal !important;
    text-align: center;
    line-height: 1.25;
    max-width: 100%;
  }
  .ios-quick-date-bar {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 10px !important;
  }
  .ios-quick-field,
  .ios-quick-date-field {
    grid-column: 1 / -1 !important;
  }
  .checkout-summary-inner > div:last-child {
    width: 100%;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .checkout-summary-inner > div:last-child > span {
    display: none;
  }
  #book-checkin-input,
  #book-checkout-input,
  #book-adults-input {
    width: 100% !important;
  }
}

/* ==========================================================================
   ADMIN BACK OFFICE & CALENDAR PORTAL (.admin-*)
   ========================================================================== */

.admin-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  background: var(--cream);
}

.admin-sidebar {
  background: var(--forest-deep);
  color: #E9F2E9;
  padding: 20px 14px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.admin-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 18px;
}

.admin-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border-radius: 10px;
  border: none;
  background: transparent;
  color: #C7DEC7;
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: all 0.15s ease;
}

.admin-nav-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.admin-nav-item.active {
  background: var(--forest);
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.admin-main {
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  background: var(--cream);
}

.admin-topbar {
  background: var(--surface);
  border-bottom: 1px solid var(--sand-border);
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.admin-content {
  padding: 24px;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}

.kpi-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.kpi-card {
  background: var(--surface);
  border: 1px solid var(--sand-border);
  border-radius: var(--radius-md);
  padding: 18px;
  box-shadow: var(--shadow-sm);
  min-width: 0;
}

.kpi-label {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wood-dark);
  margin-bottom: 6px;
}

.kpi-val {
  font-family: var(--font-serif);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--forest-deep);
  line-height: 1.15;
  margin-bottom: 4px;
}

.kpi-sub {
  font-size: 0.78rem;
  color: var(--ink-muted);
  font-weight: 600;
}

.admin-split-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.admin-week-row {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr) 105px;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--cream);
  border: 1px solid var(--sand-border);
}

.admin-cal-grid {
  background: var(--surface);
  border: 1px solid var(--sand-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

.admin-cal-header-row {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: var(--sand);
  border-bottom: 1px solid var(--sand-border);
}

.admin-cal-header-row > div {
  padding: 8px 4px;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--wood-dark);
}

.admin-cal-body {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  width: 100%;
}

.admin-cal-tile {
  min-height: 82px;
  padding: 6px;
  border-right: 1px solid var(--sand-border);
  border-bottom: 1px solid var(--sand-border);
  min-width: 0;
  overflow: hidden;
  cursor: pointer;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: background 0.14s ease;
}

.admin-cal-tile:hover {
  background: var(--forest-soft);
}

.admin-cal-tile.muted {
  background: #F5F2EB;
  cursor: default;
}

.tile-num {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2px;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--ink);
  min-width: 0;
}

.tile-pill {
  font-size: 0.66rem;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  margin-top: 2px;
}

.tile-pill.direct {
  background: var(--forest);
  color: #fff;
}

.tile-pill.airbnb {
  background: #E11D48;
  color: #fff;
}

.tile-pill.vrbo {
  background: #1D4ED8;
  color: #fff;
}

.tile-pill.blocked {
  background: #64748B;
  color: #fff;
}

.admin-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.admin-table th {
  text-align: left;
  padding: 10px 12px;
  background: var(--sand);
  color: var(--wood-dark);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--sand-border);
  white-space: nowrap;
}

.admin-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--sand-border);
  vertical-align: middle;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  white-space: nowrap;
}

.status-pill.confirmed {
  background: var(--forest-soft);
  color: var(--forest-deep);
}

.status-pill.cancelled {
  background: var(--danger-soft);
  color: var(--danger);
}

.status-pill.external {
  background: var(--info-soft);
  color: var(--info);
}

@media (max-width: 1024px) {
  .admin-layout {
    grid-template-columns: 1fr;
  }
  .admin-sidebar {
    position: relative;
    height: auto;
    padding: 12px;
  }
  .admin-nav {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
  }
  .admin-nav-item {
    width: auto;
    padding: 7px 10px;
    font-size: 0.78rem;
    flex: 0 1 auto;
  }
  .admin-split-grid {
    grid-template-columns: 1fr !important;
  }
  .kpi-grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .admin-topbar {
    padding: 10px 12px;
  }
  .admin-content {
    padding: 12px 8px;
  }
  .kpi-grid-4 {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .admin-week-row {
    grid-template-columns: 1fr !important;
    gap: 6px;
  }
  .admin-cal-tile {
    min-height: 52px;
    padding: 3px 2px;
  }
  .tile-num {
    font-size: 0.66rem;
    flex-direction: column;
    align-items: flex-start;
  }
  .tile-pill {
    font-size: 0.56rem;
    padding: 1px 3px;
  }
}

/* ==========================================================================
   MOBILE ADMIN TABLE STACKING & BADGE INLINE-FLEX CONTAINMENT
   ========================================================================== */
.badge {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle;
}

@media (max-width: 768px) {
  .admin-user-pill {
    display: none !important;
  }
  .admin-topbar-actions {
    width: 100% !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }
  .admin-table-wrap {
    overflow-x: hidden !important;
    max-width: 100% !important;
  }
  .admin-table {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
  }
  .admin-table thead {
    display: none !important;
  }
  .admin-table tbody {
    display: block !important;
    width: 100% !important;
  }
  .admin-table tr {
    display: block !important;
    width: 100% !important;
    padding: 10px 12px !important;
    border-bottom: 1px solid var(--sand-border) !important;
    box-sizing: border-box !important;
  }
  .admin-table td {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 4px 0 !important;
    border-bottom: none !important;
    box-sizing: border-box !important;
  }
  .admin-table td > div {
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }
  .admin-table td input.form-control,
  .admin-table td select.form-control {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 140px !important;
  }
}


/* ==========================================================================
   TROUT RUN CABIN — UNIFIED DESIGN SYSTEM (MATCHING ALL 8 RENDERS)
   Fonts: 'Playfair Display' (headings) + 'Plus Jakarta Sans' (body/UI/numbers)
   Palette: Warm Cream (#F8F6F0 / #FAF8F3), Deep Forest Green (#1F3D2B / #163322)
   ========================================================================== */

:root {
  --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: var(--font-sans);

  --bg-cream: #F8F6F0;
  --bg-ivory: #FAF8F3;
  --bg-alabaster: #F2EFE7;
  --surface: #FFFFFF;

  --forest-deep: #163322;
  --forest: #1F3D2B;
  --forest-mid: #2C553C;
  --forest-soft: #E5EFE3;
  --sage-tile: #DDE8D2;
  --booked-tile: #214A33;
  --pending-tile: #E5A93B;
  --blocked-tile: #B2B6B2;

  --wood: #8B5E3C;
  --wood-dark: #6E472B;
  --gold: #C88A2E;

  --ink: #1A281F;
  --ink-muted: #526056;
  --ink-light: #7A867E;

  --border: #E4DFD3;
  --border-strong: #D0C9B8;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --shadow-sm: 0 2px 8px rgba(22, 51, 34, 0.05);
  --shadow-md: 0 8px 26px rgba(22, 51, 34, 0.08);
  --shadow-lg: 0 16px 42px rgba(22, 51, 34, 0.12);
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  background-color: var(--bg-cream);
  color: var(--ink);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .serif {
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--forest-deep);
  letter-spacing: -0.01em;
}

h4, h5, h6 {
  font-family: var(--font-sans);
  font-weight: 700;
  color: var(--forest-deep);
  margin-top: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  display: block;
}

button, input, select, textarea {
  font-family: var(--font-sans);
  font-size: inherit;
}

.num, .price, .cal-day-num, .kpi-value, table td {
  font-variant-numeric: tabular-nums;
}

.container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 28px;
}

/* ==========================================================================
   TOP NAVIGATION BAR (Matches Renders 6, 7 & 8)
   ========================================================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(250, 248, 243, 0.97);
  -webkit-backdrop-filter:blur(10px);backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 76px;
  gap: 20px;
}

.brand-logo {
  display: flex;
  align-items: center;
  gap: 12px;
}

.brand-title {
  font-family: var(--font-serif);
  font-size: 1.42rem;
  font-weight: 600;
  color: var(--forest-deep);
  line-height: 1.1;
}

.brand-subtitle {
  font-family: var(--font-sans);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-top: 2px;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
}

.nav-link {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  padding: 6px 0;
  border-bottom: 2px solid transparent;
  transition: color 0.15s, border-color 0.15s;
}

.nav-link:hover,
.nav-link.active {
  color: var(--forest-deep);
  border-bottom-color: var(--forest-deep);
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 0.92rem;
  padding: 10px 18px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.16s ease;
  white-space: nowrap;
}

.btn-primary {
  background: var(--forest);
  color: #FFFFFF;
  border-color: var(--forest);
}

.btn-primary:hover {
  background: var(--forest-deep);
}

.btn-outline {
  background: #FFFFFF;
  color: var(--forest-deep);
  border-color: var(--border-strong);
}

.btn-outline:hover {
  background: var(--bg-alabaster);
  border-color: var(--forest);
}

.btn-ghost {
  background: transparent;
  color: var(--ink-muted);
  border-color: var(--border);
}

.btn-ghost:hover {
  background: var(--bg-alabaster);
  color: var(--ink);
}

.btn-danger-outline {
  background: #FFFFFF;
  color: #B42318;
  border-color: #FDA29B;
}

.btn-danger-outline:hover {
  background: #FEF3F2;
}

.btn-sm {
  font-size: 0.82rem;
  padding: 7px 13px;
  border-radius: 7px;
}

.btn-lg {
  font-size: 1.05rem;
  padding: 14px 24px;
  border-radius: 10px;
}

.btn-book-header {
  background: var(--forest);
  color: #FFFFFF;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 11px 20px;
  border-radius: 8px;
}

.btn-book-header:hover {
  background: var(--forest-deep);
}

.nav-user-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--border-strong);
  background: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--forest-deep);
  cursor: pointer;
}

.mobile-menu-btn {
  display: none;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #FFFFFF;
  align-items: center;
  justify-content: center;
  color: var(--forest-deep);
  cursor: pointer;
}

.mobile-drawer {
  display: none;
  background: #FFFFFF;
  border-bottom: 1px solid var(--border);
  padding: 14px 24px 20px;
}

.mobile-drawer.open {
  display: block;
}

.mobile-drawer-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mobile-drawer-links a {
  padding: 9px 12px;
  border-radius: 8px;
  font-weight: 600;
  color: var(--forest-deep);
}

.mobile-drawer-links a:hover {
  background: var(--forest-soft);
}

/* ==========================================================================
   PUBLIC SPLIT CABIN SHOWCASE (Matches Renders 4, 6 & 7)
   ========================================================================== */
.showcase-section {
  padding: 28px 0 44px;
  background: var(--bg-ivory);
  border-bottom: 1px solid var(--border);
}

.render-showcase-grid {
  display: grid;
  grid-template-columns: 1.38fr 1fr;
  gap: 36px;
  align-items: start;
}

.showcase-main-stage {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #1B2820;
  box-shadow: var(--shadow-md);
}

.showcase-main-stage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
  transition: transform 0.35s ease;
}

.showcase-nav-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
  transition: transform 0.15s, background 0.15s;
  z-index: 5;
}

.showcase-nav-arrow:hover {
  background: #FFFFFF;
  transform: translateY(-50%) scale(1.05);
}

.showcase-nav-arrow.prev {
  left: 16px;
}

.showcase-nav-arrow.next {
  right: 16px;
}

.showcase-counter-pill {
  position: absolute;
  left: 18px;
  bottom: 18px;
  background: rgba(20, 26, 22, 0.78);
  -webkit-backdrop-filter:blur(6px);backdrop-filter: blur(6px);
  color: #FFFFFF;
  padding: 7px 15px;
  border-radius: 10px;
  font-size: 0.92rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  z-index: 5;
  cursor: pointer;
}

.showcase-mobile-overlay-top {
  display: none;
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
  justify-content: space-between;
  z-index: 6;
}

.showcase-mobile-circle-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(20, 26, 22, 0.64);
  -webkit-backdrop-filter:blur(6px);backdrop-filter: blur(6px);
  color: #FFFFFF;
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.showcase-thumb-strip {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  margin-top: 12px;
}

.showcase-thumb {
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  cursor: pointer;
  border: 2px solid transparent;
  padding: 2px;
  background: transparent;
  transition: all 0.15s ease;
}

.showcase-thumb.active {
  border-color: var(--forest);
  background: #FFFFFF;
}

.showcase-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 7px;
}

/* Right Column Details (Renders 4, 6 & 7) */
.showcase-right-col {
  display: flex;
  flex-direction: column;
}

.showcase-title {
  font-family: var(--font-serif);
  font-size: 2.65rem;
  font-weight: 600;
  color: var(--forest-deep);
  margin: 0 0 6px;
  line-height: 1.1;
}

.showcase-specs {
  font-size: 1.04rem;
  color: var(--ink-muted);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.showcase-rating-row {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 0.98rem;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.showcase-star-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: var(--ink);
}

.showcase-superhost {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--forest);
  font-weight: 600;
  font-size: 0.92rem;
}

.showcase-divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 12px 0 14px;
}

.showcase-amenities-heading {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  color: var(--forest-deep);
  margin: 0 0 12px;
}

.showcase-amenities-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}

.showcase-amenity-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 8px 4px;
  border-radius: 10px;
}

.showcase-amenity-item svg {
  width: 30px;
  height: 30px;
  color: var(--forest-deep);
}

.showcase-amenity-item span {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.2;
}

/* Interactive Calendar Card inside Right Column (Renders 6 & 7) */
.showcase-calendar-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: var(--shadow-sm);
}

.showcase-cal-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.showcase-cal-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
}

.showcase-date-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.showcase-date-box {
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 7px 11px;
  background: var(--bg-ivory);
  display: flex;
  flex-direction: column;
}

.showcase-date-box label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-muted);
}

.showcase-date-box input {
  border: none;
  background: transparent;
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--ink);
  padding: 2px 0 0;
  outline: none;
}

.showcase-month-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.showcase-month-label {
  font-weight: 700;
  font-size: 0.96rem;
  color: var(--ink);
}

.cal-arrow-btn {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  border: 1px solid var(--border);
  background: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ink);
}

.cal-arrow-btn:hover {
  background: var(--bg-alabaster);
}

.showcase-cal-weekdays,
.showcase-cal-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  text-align: center;
}

.showcase-cal-weekdays span {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-muted);
  padding: 4px 0;
}

.showcase-day {
  height: 34px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.86rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  border: none;
  background: transparent;
  color: var(--ink);
  transition: all 0.12s;
}

.showcase-day.empty {
  cursor: default;
}

.showcase-day.avail {
  background: #E7EFE2;
  color: #1A3322;
}

.showcase-day.avail:hover {
  background: #D2E3C8;
}

.showcase-day.selected {
  background: var(--forest);
  color: #FFFFFF;
  font-weight: 700;
}

.showcase-day.in-range {
  background: #C5DBC0;
  color: var(--forest-deep);
  font-weight: 700;
}

.showcase-day.booked {
  background: #E8E5DE;
  color: #9E9B93;
  text-decoration: line-through;
  cursor: not-allowed;
}

.showcase-cal-legend {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: 0.78rem;
  color: var(--ink-muted);
}

.legend-swatch {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  margin-right: 5px;
  vertical-align: -1px;
}

/* Price Summary & CTA Box (Renders 6 & 7) */
.showcase-price-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px 20px;
  margin-top: 12px;
  box-shadow: var(--shadow-sm);
}

.showcase-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.95rem;
  color: var(--ink-muted);
  margin-bottom: 8px;
}

.showcase-price-row strong {
  color: var(--ink);
}

.showcase-price-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 10px;
  margin-top: 8px;
  border-top: 1px solid var(--border);
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--ink);
}

.btn-showcase-book {
  width: 100%;
  height: 52px;
  margin-top: 14px;
  background: var(--forest);
  color: #FFFFFF;
  border: none;
  border-radius: 10px;
  font-size: 1.08rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-showcase-book:hover {
  background: var(--forest-deep);
}

.showcase-secure-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 0.8rem;
  color: var(--ink-muted);
}

/* ==========================================================================
   NEARBY ATTRACTIONS / AREA GUIDE (Matches Render 8)
   ========================================================================== */
.attractions-section {
  padding: 56px 0;
  background: var(--bg-cream);
  border-bottom: 1px solid var(--border);
}

.attractions-header-split {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 32px;
  align-items: center;
  margin-bottom: 32px;
}

.attractions-main-title {
  font-family: var(--font-serif);
  font-size: 2.85rem;
  color: var(--forest-deep);
  margin: 0 0 10px;
  line-height: 1.1;
}

.attractions-subtitle {
  font-size: 1.06rem;
  color: var(--ink-muted);
  margin: 0;
}

.topo-map-card {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: #ECE8DC;
  height: 190px;
  box-shadow: var(--shadow-sm);
}

.topo-map-pill {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255, 255, 255, 0.94);
  padding: 6px 14px;
  border-radius: 99px;
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--forest-deep);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  z-index: 3;
}

.attractions-grid-6 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.attraction-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.attraction-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.attraction-card-img {
  height: 195px;
  overflow: hidden;
  background: #203024;
}

.attraction-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.attraction-card-body {
  padding: 20px 22px 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.attraction-card-title {
  font-family: var(--font-serif);
  font-size: 1.32rem;
  color: var(--forest-deep);
  margin: 0 0 8px;
}

.attraction-card-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 10px;
}

.attraction-card-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.attraction-card-desc {
  font-size: 0.9rem;
  color: var(--ink-muted);
  margin: 0 0 14px;
  flex: 1;
}

.attraction-learn-link {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--forest-deep);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

.attraction-learn-link:hover {
  text-decoration: underline;
}

/* ==========================================================================
   CHECKOUT PAGE / VIEW (Matches Render 3)
   ========================================================================== */
.checkout-top-strip {
  background: var(--bg-ivory);
  border-bottom: 1px solid var(--border);
  padding: 16px 0;
}

.checkout-top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.checkout-strip-center {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 28px;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
}

.checkout-strip-right {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--forest-deep);
}

.checkout-main-wrap {
  padding: 32px 0 64px;
}

.checkout-page-title {
  font-family: var(--font-serif);
  font-size: 2.6rem;
  color: var(--forest-deep);
  margin: 0 0 4px;
}

.checkout-page-sub {
  font-size: 1.02rem;
  color: var(--ink-muted);
  margin: 0 0 24px;
}

.checkout-grid-2 {
  display: grid;
  grid-template-columns: 1.38fr 1fr;
  gap: 28px;
  align-items: start;
}

.checkout-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px 26px;
  margin-bottom: 20px;
  box-shadow: var(--shadow-sm);
}

.checkout-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.checkout-card-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
}

.ssl-pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg-ivory);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--forest-deep);
}

.payment-method-tabs {
  display: inline-flex;
  gap: 8px;
  margin-bottom: 18px;
}

.pay-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 8px;
  border: 1.5px solid var(--border-strong);
  background: var(--bg-ivory);
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ink-muted);
  cursor: pointer;
}

.pay-tab-btn.active {
  background: #FFFFFF;
  border-color: var(--forest);
  color: var(--forest-deep);
  box-shadow: 0 2px 6px rgba(22, 51, 34, 0.08);
}

.btn-confirm-booking {
  width: 100%;
  height: 56px;
  background: var(--forest);
  color: #FFFFFF;
  border: none;
  border-radius: 10px;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  box-shadow: var(--shadow-md);
}

.btn-confirm-booking:hover {
  background: var(--forest-deep);
}

.checkout-charge-caption {
  text-align: center;
  margin-top: 10px;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
}

/* Mini Availability Calendar inside Checkout Right Column (Render 3) */
.checkout-mini-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  text-align: center;
  margin-top: 10px;
}

.checkout-mini-cal-head {
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--ink-muted);
  padding-bottom: 4px;
}

.checkout-mini-day {
  width: 34px;
  height: 34px;
  margin: 0 auto;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--ink);
}

.checkout-mini-day.muted {
  color: #B8B5AC;
}

.checkout-mini-day.booked {
  background: #DCD9D0;
  color: #7D7A72;
}

.checkout-mini-day.selected-start {
  background: var(--forest);
  color: #FFFFFF;
  font-weight: 700;
}

.checkout-mini-day.selected-stay {
  border: 1.5px solid var(--forest);
  background: var(--forest-soft);
  color: var(--forest-deep);
  font-weight: 700;
}

/* ==========================================================================
   GENERAL SECTIONS, CARDS, FORMS & MODALS
   ========================================================================== */
.section {
  padding: 56px 0;
}

.section-alt {
  background: var(--bg-alabaster);
}

.card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 22px;
  box-shadow: var(--shadow-sm);
}

.eyebrow {
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--forest);
  margin-bottom: 6px;
}

.section-title {
  font-family: var(--font-serif);
  font-size: 2.2rem;
  color: var(--forest-deep);
  margin: 0 0 10px;
}

.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }

.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-row-3 { display: grid; grid-template-columns: 1.3fr 1fr 0.8fr; gap: 14px; }

.form-group {
  margin-bottom: 14px;
}

.form-label {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
}

.form-control {
  width: 100%;
  padding: 10px 13px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--bg-ivory);
  color: var(--ink);
  font-size: 0.92rem;
  transition: border-color 0.15s, background 0.15s;
}

.form-control:focus {
  outline: none;
  border-color: var(--forest);
  background: #FFFFFF;
}

/* Lightbox & Modals */
.lightbox-backdrop,
.modal-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 900;
  background: rgba(16, 26, 19, 0.72);
  -webkit-backdrop-filter:blur(4px);backdrop-filter: blur(4px);
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.lightbox-backdrop.open,
.modal-backdrop.open {
  display: flex;
}

.lightbox-content {
  max-width: 980px;
  width: 100%;
  color: #FFFFFF;
}

.lightbox-img-wrap {
  border-radius: 14px;
  overflow: hidden;
  max-height: 74vh;
  background: #0F1711;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox-img-wrap img {
  max-height: 74vh;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

.modal-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 26px;
  max-width: 580px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: var(--shadow-lg);
}

/* Sticky Mobile Booking Card (Matches Render 4 bottom bar!) */
.mobile-sticky-bar {
  display: none;
}

/* Footer (Matches Render 8 bottom bar + full links) */
.site-footer {
  background: var(--forest-deep);
  color: #E5EFE6;
  padding: 52px 0 32px;
}

.site-footer h4 {
  color: #FFFFFF;
  font-family: var(--font-serif);
  font-size: 1.15rem;
  margin-bottom: 12px;
}

.site-footer a:hover {
  text-decoration: underline;
}

/* ==========================================================================
   ADMIN PORTAL LAYOUT & RENDERS 1, 2 & 5
   ========================================================================== */
.admin-body {
  background: var(--bg-cream);
  color: var(--ink);
  min-height: 100vh;
}

.admin-login-gate {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: radial-gradient(circle at top, #ECE7DA 0%, #F8F6F0 70%);
}

.admin-login-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 34px 32px;
  max-width: 440px;
  width: 100%;
  box-shadow: var(--shadow-lg);
}

.admin-login-brand {
  text-align: center;
}

.admin-login-crest {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  background: var(--forest-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.admin-login-divider {
  text-align: center;
  margin: 14px 0;
  font-size: 0.78rem;
  color: var(--ink-light);
}

.admin-login-footer {
  margin-top: 18px;
  text-align: center;
  font-size: 0.84rem;
  color: var(--forest);
  font-weight: 600;
}

.admin-pw-toggle-btn {
  background: none;
  border: none;
  color: var(--forest);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.admin-login-error {
  background: #FEF3F2;
  color: #B42318;
  border: 1px solid #FDA29B;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  margin-bottom: 12px;
}

/* Authenticated Admin Shell */
.admin-shell {
  display: grid;
  grid-template-columns: 248px 1fr;
  min-height: 100vh;
}

.admin-sidebar {
  background: var(--forest-deep);
  color: #FFFFFF;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px 16px;
  position: sticky;
  top: 0;
  height: 100vh;
}

.admin-brand-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 8px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  margin-bottom: 16px;
}

.admin-brand-svg {
  width: 42px;
  height: 38px;
  flex-shrink: 0;
}

.admin-brand-name {
  font-family: var(--font-serif);
  font-size: 1.22rem;
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1.15;
}

.admin-brand-badge {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #A7C9A8;
  margin-top: 2px;
}

.admin-mobile-brand-actions {
  display: none;
}

.admin-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.admin-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 11px 14px;
  border-radius: 10px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.admin-nav-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
}

.admin-nav-item.active {
  background: #3A5F43;
  color: #FFFFFF;
  font-weight: 700;
}

.admin-nav-pill {
  margin-left: auto;
  background: #3E8E57;
  color: #FFFFFF;
  font-size: 0.74rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 99px;
}

.admin-sidebar-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.admin-sidebar-profile {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-sidebar-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  font-weight: 700;
  font-size: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.admin-sidebar-signout-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #E2ECE4;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.admin-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--bg-cream);
}

.admin-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 32px 16px;
  gap: 20px;
  flex-wrap: wrap;
}

.admin-topbar-subtitle {
  font-size: 0.96rem;
  color: var(--ink-muted);
  margin-top: 4px;
}

.admin-topbar-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.admin-date-range-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #FFFFFF;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  padding: 9px 16px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
}

.admin-bell-btn {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  cursor: pointer;
}

.admin-bell-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  background: #236B39;
  color: #FFFFFF;
  font-size: 0.68rem;
  font-weight: 700;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.admin-avatar-photo {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #FFFFFF;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

.admin-content {
  padding: 8px 32px 48px;
}

/* ==========================================================================
   ADMIN TAB 1: DASHBOARD (Matches Render 5)
   ========================================================================== */
.dash-kpi-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 24px;
}

.dash-kpi-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 22px 24px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.dash-kpi-card.action-sage {
  background: #E7EFE6;
  border-color: #CDDFCC;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
}

.dash-kpi-card.action-sage:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.dash-kpi-top {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 12px;
}

.dash-kpi-big {
  font-family: var(--font-sans);
  font-size: 2.75rem;
  font-weight: 700;
  color: var(--forest-deep);
  line-height: 1.05;
  margin-bottom: 10px;
  font-variant-numeric: tabular-nums;
}

.dash-kpi-sub {
  font-size: 0.88rem;
  color: var(--ink-muted);
}

.dash-kpi-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--forest-deep);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.dash-row-2 {
  display: grid;
  grid-template-columns: 1.55fr 1fr;
  gap: 22px;
  align-items: start;
}

.dash-table {
  width: 100%;
  border-collapse: collapse;
}

.dash-table th {
  text-align: left;
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-muted);
  padding: 10px 10px;
  border-bottom: 1px solid var(--border);
}

.dash-table td {
  padding: 14px 10px;
  border-bottom: 1px solid #EFECE4;
  font-size: 0.92rem;
  color: var(--ink);
}

.status-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 7px;
  font-size: 0.8rem;
  font-weight: 700;
}

.status-pill.confirmed {
  background: #DCFCE7;
  color: #166534;
}

.status-pill.pending {
  background: #DBEAFE;
  color: #1E40AF;
}

.status-pill.upcoming {
  background: #EDE9FE;
  color: #5B21B6;
}

/* ==========================================================================
   ADMIN TAB 2: CALENDAR (Matches Render 1 Month Grid & Render 2 Week Grid)
   ========================================================================== */
.admin-cal-layout {
  display: grid;
  grid-template-columns: 1fr 350px;
  gap: 22px;
  align-items: start;
}

.admin-cal-main-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 22px;
  box-shadow: var(--shadow-sm);
}

.admin-cal-legend-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

.admin-month-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}

.admin-month-dow {
  background: #F4F1EA;
  padding: 10px 8px;
  text-align: center;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--ink);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.admin-month-cell {
  min-height: 118px;
  background: #FFFFFF;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-direction: column;
}

.admin-month-cell-num {
  padding: 5px 8px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--ink);
  background: #FFFFFF;
}

.admin-month-tile {
  flex: 1;
  margin: 0 3px 3px;
  border-radius: 5px;
  padding: 8px 9px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  font-size: 0.82rem;
  cursor: pointer;
  transition: filter 0.14s;
}

.admin-month-tile:hover {
  filter: brightness(0.96);
}

.admin-month-tile.avail {
  background: #DFE9D5;
  color: #1A2E22;
}

.admin-month-tile.booked {
  background: #214A33;
  color: #FFFFFF;
}

.admin-month-tile.pending {
  background: #E5A93B;
  color: #241905;
}

.admin-month-tile.blocked {
  background: #B0B4B0;
  color: #FFFFFF;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.admin-month-tile.outside {
  background: #ECEAE4;
  color: #8E8B82;
  align-items: center;
  justify-content: center;
}

/* Week View Timeline Grid (Matches Render 2) */
.admin-week-grid {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: #FFFFFF;
}

.admin-week-header {
  display: grid;
  grid-template-columns: 76px repeat(7, 1fr);
  background: #F7F5EE;
  border-bottom: 1px solid var(--border);
}

.admin-week-header div {
  padding: 10px 6px;
  text-align: center;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--ink);
  border-left: 1px solid #ECE8DF;
}

.admin-week-body {
  position: relative;
}

.admin-week-row {
  display: grid;
  grid-template-columns: 76px repeat(7, 1fr);
  height: 44px;
  border-bottom: 1px solid #F2EFE8;
}

.admin-week-time {
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--ink-muted);
  padding: 10px 10px 0 0;
  text-align: right;
}

.admin-week-slot {
  border-left: 1px solid #F2EFE8;
}

.admin-week-bar {
  position: absolute;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 0.82rem;
  line-height: 1.25;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
  z-index: 4;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.admin-week-bar.confirmed {
  background: #4E8752;
  color: #FFFFFF;
}

.admin-week-bar.pending {
  background: #B8D2EE;
  color: #152C47;
}

.admin-week-bar.blocked {
  background: #C5B6EC;
  color: #281B4A;
}

.admin-week-bar.maintenance {
  background: #DEC296;
  color: #36250B;
}

/* Right Sidebar Cards in Calendar (Render 1 & Render 2) */
.admin-cal-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.admin-side-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: var(--shadow-sm);
}

.admin-side-card-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 12px;
}

/* ==========================================================================
   RESPONSIVE & MOBILE VIEWS (Matches Render 4 Mobile + Mobile Admin Cards)
   ========================================================================== */
@media (max-width: 1080px) {
  .render-showcase-grid,
  .checkout-grid-2,
  .attractions-header-split,
  .dash-row-2,
  .admin-cal-layout {
    grid-template-columns: 1fr;
  }

  .dash-kpi-grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .attractions-grid-6 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 960px) {
  .admin-shell {
    grid-template-columns: 1fr;
  }

  .admin-sidebar {
    position: sticky;
    top: 0;
    z-index: 300;
    height: auto;
    padding: 12px 16px;
  }

  .admin-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .admin-brand-link {
    padding: 0;
    border-bottom: none;
    margin-bottom: 0;
  }

  .admin-mobile-brand-actions {
    display: flex;
    align-items: center;
    gap: 6px;
  }

  .admin-mobile-chip-btn {
    background: rgba(255, 255, 255, 0.14);
    color: #FFFFFF;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 7px;
    padding: 5px 10px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
  }

  .admin-mobile-chip-btn.primary {
    background: #3A7D44;
    border-color: #4E9A59;
  }

  .admin-nav {
    flex-direction: row;
    overflow-x: auto;
    gap: 6px;
    margin-top: 10px;
    padding-bottom: 2px;
  }

  .admin-nav-item {
    width: auto;
    padding: 8px 12px;
    font-size: 0.82rem;
    white-space: nowrap;
  }

  .admin-sidebar-footer {
    display: none;
  }

  .admin-topbar {
    padding: 18px 16px 10px;
  }

  .admin-content {
    padding: 8px 16px 40px;
  }
}

@media (max-width: 768px) {
  .container {
    padding: 0 16px;
  }

  .nav-links,
  .nav-actions .btn-ghost,
  .nav-actions .nav-user-circle {
    display: none;
  }

  .mobile-menu-btn {
    display: inline-flex;
  }

  .showcase-section {
    padding: 12px 0 96px;
  }

  .showcase-mobile-overlay-top {
    display: flex;
  }

  .showcase-thumb-strip {
    grid-template-columns: repeat(5, 1fr);
  }

  .showcase-title {
    font-size: 2.15rem;
  }

  .attractions-grid-6,
  .grid-2,
  .grid-3,
  .grid-4,
  .form-row-2,
  .form-row-3,
  .dash-kpi-grid-4 {
    grid-template-columns: 1fr;
  }

  /* Render 4 Mobile Bottom Booking Card */
  .mobile-sticky-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 400;
    background: #FFFFFF;
    border: 1px solid var(--border-strong);
    border-radius: 16px;
    padding: 12px 16px;
    box-shadow: 0 12px 32px rgba(18, 36, 24, 0.18);
  }
}

/* Home: hide legacy carousel/sidebar inside story section (showcase replaces it) */
#about-cabin .carousel-main-wrap,#about-cabin .thumb-strip-5,#about-cabin .sticky-sidebar{display:none!important}
#about-cabin .split-property-grid{grid-template-columns:1fr!important}
#about-cabin > .container > .split-property-grid > div:first-child > div:first-of-type{margin-top:0!important}
.addon-check{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-ivory);cursor:pointer;font-size:.9rem;font-weight:600}
.addon-check.active{border-color:var(--forest);background:var(--forest-soft)}
.addon-check .box{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border-strong);background:#fff;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:12px}
.addon-check.active .box{background:var(--forest);border-color:var(--forest)}
.pb-row{display:flex;justify-content:space-between;font-size:.95rem;color:var(--ink);padding:7px 0}
.pb-row.muted{color:var(--ink-muted)}
.pb-total{display:flex;justify-content:space-between;font-size:1.45rem;font-weight:800;border-top:1px solid var(--border);margin-top:10px;padding-top:14px}
.nohidden{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-weight:600;font-size:.9rem}
.nohidden i{width:20px;height:20px;border-radius:50%;background:var(--forest);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:12px}
@media (max-width:768px){
 .showcase-section .container{padding:0}
 .showcase-main-stage{border-radius:0 0 18px 18px;aspect-ratio:4/3.4}
 .showcase-nav-arrow{display:none}
 .showcase-thumb-strip{display:none}
 .showcase-right-col{padding:18px 18px 0}
 .showcase-amenities-5 .showcase-amenity-item span{font-size:.72rem}
 .checkout-strip-center{border:none;padding:0}
}

/* Admin month tiles — render palette */
.admin-cal-grid{gap:6px!important;background:transparent!important;border:none!important}
.admin-cal-tile{border-radius:10px!important;border:none!important;min-height:86px;padding:8px 10px!important;font-size:.82rem!important;line-height:1.3}
.admin-cal-tile.available{background:#DDE8D2!important;color:#1F3D2B!important}
.admin-cal-tile.booked{background:#214A33!important;color:#fff!important}
.admin-cal-tile.pending{background:#E5A93B!important;color:#2a1d05!important}
.admin-cal-tile.blocked{background:#B4B7B4!important;color:#1f2420!important}
.admin-cal-tile.empty{background:transparent!important}

/* Area Guide (Render 2) */
.area-guide-section{padding:56px 0;background:var(--bg-cream,#F8F6F0)}
.area-guide-header-split{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:center;margin-bottom:28px}
.area-guide-main-title{font-family:'Playfair Display',serif;font-size:3rem;color:#1F3D2B;margin:0 0 10px;line-height:1.05}
.area-guide-subtitle{color:#5b6660;font-size:1.05rem;max-width:440px}
.area-guide-topo-card{position:relative;display:block;border-radius:18px;overflow:hidden;border:1px solid #E4DFD5;box-shadow:0 10px 30px rgba(31,61,43,.08);background:#EFEBE1;height:260px}
.area-guide-topo-card svg{width:100%;height:100%;display:block}
.topo-cabin-badge{position:absolute;top:14px;left:14px;z-index:2;background:#fff;border-radius:999px;padding:6px 12px;font-weight:700;font-size:.82rem;display:flex;gap:6px;align-items:center;color:#1F3D2B;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.topo-open-map-pill{position:absolute;right:14px;bottom:14px;z-index:2;background:#1F3D2B;color:#fff;border-radius:999px;padding:7px 14px;font-size:.8rem;font-weight:700}
.area-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.area-guide-card{background:#fff;border:1px solid #E4DFD5;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 6px 18px rgba(31,61,43,.05)}
.area-guide-card-img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;max-height:200px}
.area-guide-card-img img{width:100%;height:100%;object-fit:cover}
.area-guide-card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.area-guide-card-title{font-family:'Playfair Display',serif;font-size:1.3rem;color:#1F3D2B;margin:0}
.area-guide-card-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.84rem;color:#5b6660}
.area-guide-meta-item{display:inline-flex;gap:5px;align-items:center}
.area-guide-card-desc{font-size:.9rem;color:#4a544e;line-height:1.5;margin:0}
.area-guide-card-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid #EEE9DF}
.area-guide-learn-more{color:#1F3D2B;font-weight:700;font-size:.9rem;background:none;border:none;cursor:pointer;padding:0}
.area-guide-dir-link{font-size:.84rem;color:#5b6660;font-weight:600}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap}
.filter-pill{border:1px solid #E4DFD5;background:#fff;border-radius:999px;padding:7px 14px;font-size:.84rem;font-weight:600;color:#1F3D2B;cursor:pointer}
.filter-pill.active{background:#1F3D2B;color:#fff;border-color:#1F3D2B}
@media (max-width:960px){.area-guide-header-split{grid-template-columns:1fr}.area-guide-grid{grid-template-columns:repeat(2,1fr)}.area-guide-main-title{font-size:2.3rem}}
@media (max-width:640px){.area-guide-grid{grid-template-columns:1fr}}

/* ===== Render 5 dashboard KPIs ===== */
.kpi-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}
.kpi-card{position:relative;background:#fff;border:1px solid #E7E2D6;border-radius:16px;padding:20px 22px;min-height:118px;box-shadow:0 1px 2px rgba(22,51,34,.05)}
.kpi-card .kpi-icon-box{position:absolute;top:18px;right:18px;width:40px!important;height:40px!important;min-width:0!important;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#EEF3E8;color:#1F3D2B}
.kpi-card .kpi-icon-box svg{width:20px;height:20px}
.kpi-card .kpi-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:.78rem;font-weight:600;color:#6B7468;letter-spacing:.02em;padding-right:52px}
.kpi-card .kpi-val{font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;color:#1F3D2B;margin:8px 0 4px}
.kpi-card .kpi-sub{font-size:.78rem;color:#7A8277}
.kpi-card-sage{background:#DDE8D2!important;border-color:#C9D9BC!important}
.kpi-card-sage .kpi-icon-box{background:#1F3D2B;color:#fff}
.sdt-tag{display:inline-block;font-size:.66rem;font-weight:700;color:#8A5A12;background:#FBEBC9;border-radius:999px;padding:2px 8px;margin-bottom:4px}
@media (max-width:1100px){.kpi-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.kpi-grid-4{grid-template-columns:1fr}}

/* ===== Calendar header ===== */
.adm-cal-header{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.adm-cal-header-left,.adm-cal-header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.adm-seg{display:inline-flex;background:#EFEBE1;border-radius:10px;padding:3px}
.adm-seg button{border:0;background:transparent;padding:7px 16px;border-radius:8px;font:600 .82rem 'Plus Jakarta Sans',sans-serif;color:#4C564A;cursor:pointer}
.adm-seg button.active{background:#1F3D2B;color:#fff}
.adm-arrow,.adm-today{border:1px solid #E1DBCD;background:#fff;border-radius:9px;height:34px;min-width:34px;padding:0 10px;font:600 .85rem 'Plus Jakarta Sans',sans-serif;color:#1F3D2B;cursor:pointer}
.adm-arrow{font-size:1.2rem}
.adm-cal-label{font-family:'Playfair Display',serif;font-size:1.45rem;color:#1F3D2B;margin:0 0 0 6px}
.adm-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #E1DBCD;border-radius:999px;padding:7px 14px;font-size:.8rem;color:#1F3D2B}
.adm-pill .k{color:#6B7468;font-weight:600}
.adm-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.76rem;color:#5E665B;margin-bottom:16px}
.adm-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-2px}

/* ===== Week time grid ===== */
.adm-week-layout{grid-template-columns:minmax(0,1fr) 360px!important;align-items:start}
.wk-card{padding:0!important;overflow:hidden}
.wk-head-row,.wk-tick-row,.wk-cols{display:grid;grid-template-columns:repeat(7,1fr)}
.wk-day-head{padding:14px 10px 8px;text-align:center;border-right:1px solid #EEE9DF;border-bottom:1px solid #EEE9DF}
.wk-day-head span{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;color:#7A8277}
.wk-day-head strong{font-family:'Playfair Display',serif;font-size:1.35rem;color:#1F3D2B}
.wk-day-head.today strong{background:#1F3D2B;color:#fff;border-radius:999px;padding:0 9px}
.wk-ticks{display:flex;justify-content:space-between;padding:4px 6px;font-size:.6rem;color:#A0A69C;border-right:1px solid #EEE9DF;border-bottom:1px solid #EEE9DF;background:#FBFAF6}
.wk-body{position:relative;background:#fff}
.wk-cols{position:absolute;inset:0}
.wk-col{border-right:1px solid #EEE9DF;display:grid;grid-template-columns:repeat(4,1fr)}
.wk-col i{border-right:1px dashed #F2EEE5}
.wk-bar{position:absolute;height:50px;border:0;border-radius:10px;padding:7px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:center;overflow:hidden;box-shadow:0 2px 6px rgba(22,51,34,.15);font-family:'Plus Jakarta Sans',sans-serif}
.wk-bar.booked{background:#214A33;color:#fff}
.wk-bar.pending{background:#E5A93B;color:#2B2110}
.wk-bar.blocked{background:#B4B7B4;color:#222}
.wk-bar.selected{outline:3px solid #E5A93B;outline-offset:2px}
.wk-bar.cont-l{border-top-left-radius:0;border-bottom-left-radius:0}
.wk-bar.cont-r{border-top-right-radius:0;border-bottom-right-radius:0}
.wk-bar-name{font-weight:700;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-bar-sub{font-size:.68rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#7A8277;font-size:.9rem}
.wk-foot{padding:10px 14px;font-size:.72rem;color:#7A8277;border-top:1px solid #EEE9DF;background:#FBFAF6}
@media (max-width:1000px){.adm-week-layout{grid-template-columns:1fr!important}.wk-ticks{display:none}}

/* ===== Mobile public header no-wrap ===== */
@media (max-width:600px){
  .brand-title{white-space:nowrap;font-size:1.05rem!important}
  .brand-subtitle{display:none!important}
  .btn-book-header{padding:8px 12px!important;font-size:.78rem!important;white-space:nowrap}
  .site-header .brand,.brand{min-width:0;flex-shrink:1}
  .brand img,.brand svg{width:34px!important;height:34px!important;flex-shrink:0}
}
.attr-credits{font-size:.7rem;color:#8A9187;margin-top:18px;text-align:center}
@media (max-width:600px){
  .btn-book-header{letter-spacing:.02em!important;padding:8px 10px!important;font-size:.7rem!important}
  .brand-title{font-size:.98rem!important}
  .header-inner,.site-header .container{gap:8px!important}
}
@media (max-width:400px){ .btn-book-header{font-size:0!important} .btn-book-header::after{content:"Book";font-size:.78rem} }

/* ===== Render 6 header + hero ===== */
.site-header{background:#F6F1E4!important;border-bottom:1px solid #E8E1D0}
.brand-r6{display:flex;align-items:center;text-decoration:none}
.brand-r6 .brand-title{font-family:'Playfair Display',serif!important;font-size:1.85rem!important;font-weight:500;color:#1F3D2B!important;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;letter-spacing:-.01em}
.brand-pine{width:20px;height:28px;flex-shrink:0;margin-top:-4px}
.nav-r6{gap:34px!important}
.nav-r6 .nav-link{font-family:'Plus Jakarta Sans',sans-serif;font-size:.8rem!important;font-weight:500!important;letter-spacing:.12em!important;color:#1F3D2B!important;background:none!important;border:0!important}
.nav-r6 .nav-link:hover{opacity:.7}
@media (min-width:901px){.site-header .btn-book-header,.site-header .nav-user-circle{display:none!important}}
.hero-r6{position:relative;width:100%;height:min(86vh,760px);min-height:520px;overflow:hidden;background:#1F3D2B}
.hero-r6-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hero-r6-bar{position:absolute;left:50%;top:62%;transform:translate(-50%,-50%);width:min(92%,880px);display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:0;padding:18px 20px;border-radius:16px;background:rgba(246,241,228,.72);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 40px rgba(0,0,0,.2)}
.hr6-field{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 10px;color:#1F3D2B;cursor:pointer;border-right:1px solid rgba(31,61,43,.18)}
.hr6-field:nth-child(3){border-right:0}
.hr6-ico{color:#1F3D2B;line-height:0}
.hr6-k{font-family:'Plus Jakarta Sans',sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.08em}
.hr6-v{font-family:'Plus Jakarta Sans',sans-serif;font-size:.82rem;color:#4A5248}
.hr6-field input[type=date]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.hr6-sel select{appearance:none;-webkit-appearance:none;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231F3D2B' fill='none' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat left center;padding-left:16px;font:inherit;color:#4A5248;cursor:pointer;text-align:center}
.hr6-btn{margin-left:16px;background:#1F3D2B;color:#fff;border:0;border-radius:10px;padding:18px 26px;font-family:'Plus Jakarta Sans',sans-serif;font-size:.86rem;font-weight:600;letter-spacing:.08em;cursor:pointer;white-space:nowrap}
.hr6-btn:hover{background:#163322}
@media (max-width:900px){
  .nav-r6{display:none!important}
  .brand-r6 .brand-title{font-size:1.35rem!important}
  .hero-r6{height:auto;min-height:0;display:flex;flex-direction:column}
  .hero-r6-img{position:relative;height:300px}
  .hero-r6-bar{position:relative;left:auto;top:auto;transform:none;width:auto;margin:-48px 14px 8px;grid-template-columns:1fr 1fr;row-gap:10px;background:rgba(246,241,228,.94)}
  .hr6-field:nth-child(2){border-right:0}
  .hr6-field:nth-child(3){grid-column:1/-1;border-top:1px solid rgba(31,61,43,.15);padding-top:10px}
  .hr6-btn{grid-column:1/-1;margin:0;padding:15px}
}
.hero-r6-bar{top:74%}
@media (max-width:900px){.hero-r6{background:#F8F6F0;padding-bottom:10px}}
.mobile-sticky-bar{transition:transform .25s ease,opacity .25s ease}
.mobile-sticky-bar.is-hidden{transform:translateY(120%);opacity:0;pointer-events:none}
.checkout-top-inner{justify-content:space-between}
.checkout-top-inner .checkout-strip-center{border-left:0!important;padding-left:0!important;margin-left:0!important}
.checkout-top-inner .checkout-strip-center::before{display:none!important;content:none!important}

/* === Book-direct savings line, min-stay, pictures (v14) === */
picture{display:contents}
.direct-save-line{display:flex;align-items:flex-start;gap:8px;margin:12px 0 0;font-family:var(--font-sans);font-size:.88rem;line-height:1.4;color:var(--forest-dark);font-weight:500}
.direct-save-line svg{flex:0 0 auto;margin-top:2px;color:var(--forest)}
.direct-save-line.on-checkout{padding:10px 12px;border-radius:10px;background:var(--forest-soft);margin-top:14px}
.hero-r6-note{position:absolute;left:50%;top:calc(74% + 62px);transform:translateX(-50%);width:min(92%,880px);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 18px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.55);font-family:var(--font-sans);font-size:.92rem;z-index:2}
.hero-r6-note .direct-save-line{margin:0;color:#fff;font-size:.92rem}
.hero-r6-note .direct-save-line svg{color:#fff}
.hr6-from b{font-family:var(--font-serif);font-size:1.08rem;font-weight:600}
.hr6-err{flex-basis:100%;text-align:center;font-weight:600;color:#fff;background:rgba(185,28,28,.85);border-radius:8px;padding:0;text-shadow:none}
.hr6-err:not(:empty){padding:8px 12px}
.minstay-alert{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 12px;font-weight:600;font-size:.9rem;margin-bottom:10px}
.btn-confirm-booking[disabled]{opacity:.55;cursor:not-allowed}
.pb-discount .num{color:var(--forest)}
@media (max-width:900px){
  .hero-r6-note{position:static;transform:none;width:auto;margin:4px 16px 6px;justify-content:flex-start;color:var(--ink);text-shadow:none;font-size:.86rem}
  .hero-r6-note .direct-save-line{color:var(--forest-dark);font-size:.86rem}
  .hero-r6-note .direct-save-line svg{color:var(--forest)}
  .hr6-err{text-align:left}
}

/* v19 QA */
.admin-login-divider>span{color:#5f6b63!important}
.admin-pw-toggle-btn{min-height:32px}
.v19-back{display:inline-block;padding:8px 4px;min-height:32px}

/* ===== v20 QA: 44px tap targets ===== */
.btn-book-header,.mobile-menu-btn,.v19-edit-dates,.cal-arrow-btn{min-height:44px!important;min-width:44px!important}
.form-control{min-height:44px}
.pay-tab-btn{min-height:48px}
#checkout-error-box:not(:empty){scroll-margin:90px}
.form-control{min-height:46px!important;box-sizing:border-box}
.site-footer a,footer a{display:inline-flex;align-items:center;min-height:44px}
.btn-sm.btn-primary{min-height:44px}

/* ===== v21 admin: badges, actions column, payments/cleaning/guest messages ===== */
.badge{gap:4px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.3;border:1px solid transparent;white-space:nowrap}
.badge-green{background:#E7F3EA;color:#1E5A2E;border-color:#B9DCC2}.badge-wood{background:#FBF1E2;color:#7A4B12;border-color:#EAD3AE}
.badge-gray{background:#F1F1EE;color:#4A524C;border-color:#DCDCD5}.badge-amber{background:#FFF4DC;color:#8A5A00;border-color:#F2D48F}.badge-red{background:#FDECEA;color:#9B1C12;border-color:#F3B9B3}
@media (min-width:769px){.admin-table th:last-child,.admin-table td:last-child{position:sticky;right:0;background:#fff;box-shadow:-6px 0 8px -6px rgba(0,0,0,.12);min-width:150px;z-index:1}.admin-table thead th:last-child{background:inherit;background-color:#FAF7F1}.admin-table-wrap{overflow-x:auto}}
.v21-card{padding:20px;margin-bottom:16px}.v21-h{margin:0 0 4px;font-size:1.3rem}.v21-h4{font-family:'Playfair Display',serif;font-size:1.05rem;color:#1E3F24;margin:0 0 10px}
.v21-mut{color:var(--ink-muted,#5B6B5F);font-size:.82rem}.v21-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.v21-row label{font-size:.82rem}
.v21-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:14px}.v21-stats div{border:1px solid var(--sand-border,#E4DCCB);border-radius:10px;padding:10px 12px;background:#FFFCF7}.v21-stats span{display:block;font-size:.72rem;color:#5B6B5F}.v21-stats b{font-size:1.15rem;color:#1E3F24}
.v21-warn{margin-top:10px;padding:10px 12px;border-radius:10px;background:#FFF4DC;color:#7A4B12;font-size:.82rem}.v21-err{padding:20px;color:#9B1C12}
.v21-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.v21-tw{overflow-x:auto}
.v21-t{width:100%;border-collapse:collapse;font-size:.82rem}.v21-t th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#5B6B5F;padding:8px;border-bottom:1px solid #E4DCCB;white-space:nowrap}.v21-t td{padding:8px;border-bottom:1px solid #F0EADF;vertical-align:top}
.v21-pill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:.7rem;font-weight:700;border:1px solid;white-space:nowrap;margin:1px 2px 1px 0}
.v21-green{background:#E7F3EA;color:#1E5A2E;border-color:#B9DCC2}.v21-amber{background:#FFF4DC;color:#8A5A00;border-color:#F2D48F}.v21-red{background:#FDECEA;color:#9B1C12;border-color:#F3B9B3}.v21-gray{background:#F1F1EE;color:#4A524C;border-color:#DCDCD5}
.v21-tog{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;min-height:36px}.v21-tog input[type=checkbox],.v21-tog input[type=radio]{width:18px;height:18px;accent-color:#1E3F24}
.v21-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-bottom:8px}.v21-grid input,.v21-grid label input,.v21-in{width:100%;padding:9px 10px;border:1px solid #E4DCCB;border-radius:8px;font:inherit}
.v21-ta{width:100%;padding:10px;border:1px solid #E4DCCB;border-radius:8px;font:.85rem/1.45 'Plus Jakarta Sans',sans-serif;margin-top:6px}.v21-in{margin-bottom:4px;font-weight:600}
.v21-pre{white-space:pre-wrap;background:#FAF7F1;border:1px solid #E4DCCB;border-radius:8px;padding:12px;font-size:.8rem;max-height:60vh;overflow:auto}
.v21-modal{position:fixed;inset:0;background:rgba(20,30,22,.55);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}.v21-modal-card{background:#fff;border-radius:14px;max-width:720px;width:100%;max-height:90vh;overflow:auto;padding:22px}
.v21-issue{border:1px solid #E4DCCB;border-left:4px solid #C69C6D;border-radius:10px;padding:12px;margin:10px 0}.v21-thumbs{display:flex;flex-wrap:wrap;gap:6px}.v21-thumbs img{width:92px;height:92px;object-fit:cover;border-radius:8px;border:1px solid #E4DCCB}
.v21-drawer{margin-top:14px;padding-top:12px;border-top:1px solid #E4DCCB}.v21-tl{list-style:none;padding:0;margin:0}.v21-tl li{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #F0EADF;font-size:.82rem}
@media (max-width:768px){.v21-t thead{display:none}.v21-t tr{display:block;border:1px solid #E4DCCB;border-radius:10px;margin-bottom:8px;padding:6px}.v21-t td{display:flex;justify-content:space-between;gap:10px;border:0;padding:4px 6px}.v21-t td::before{content:attr(data-l);font-weight:700;color:#5B6B5F;font-size:.7rem;text-transform:uppercase}}

/* v85: contact-host (lead inquiry) modal - scrollable on phones, submit always reachable */
#lead-inquiry-modal{z-index:10050;align-items:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:max(12px,env(safe-area-inset-top)) 12px max(16px,env(safe-area-inset-bottom));}
#lead-inquiry-modal>.card{margin:auto;max-height:none;padding:20px!important;}
#lead-inquiry-form>div:last-child{position:sticky;bottom:-20px;background:rgb(251,247,239);padding:12px 0 4px;margin-bottom:-4px;z-index:2;}
html:has(#lead-inquiry-modal.open),body:has(#lead-inquiry-modal.open){overflow:hidden!important;overscroll-behavior:none;}
body:has(#lead-inquiry-modal.open) .v71-sb,body:has(#lead-inquiry-modal.open) #trc-chat,body:has(#lead-inquiry-modal.open) #trc-chat-btn{display:none!important;}
@media (max-width:600px){#lead-inquiry-modal .form-row-2,#lead-inquiry-modal .form-row-3{grid-template-columns:1fr!important;}}

/* v86: same fix as v85 for the attraction detail modal, plus a scrollable mobile nav drawer on short/landscape phones */
#attraction-modal{align-items:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:max(12px,env(safe-area-inset-top)) 12px max(16px,env(safe-area-inset-bottom));}
#attraction-modal>*{margin:auto;}
html:has(#attraction-modal.open),body:has(#attraction-modal.open){overflow:hidden!important;overscroll-behavior:none;}
body:has(#attraction-modal.open) .v71-sb,body:has(#attraction-modal.open) #trc-chat-btn{display:none!important;}
.mobile-drawer.open{max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:max(20px,env(safe-area-inset-bottom));}
body:has(.mobile-drawer.open) #trc-chat-btn{display:none!important;}
/* v257c: "After you book" timeline on the cabin page (all themes) */
#getting-here .trc-ab-h{margin:26px 0 12px;font-size:1.25rem}
#getting-here .trc-ab{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
#getting-here .trc-ab-card{display:flex;gap:14px;align-items:flex-start;background:var(--card,#fff);border:1px solid var(--border,#e6dfd2);border-radius:14px;padding:16px;min-width:0;box-sizing:border-box}
#getting-here .trc-ab-card>div{min-width:0}
#getting-here .trc-ab-ic{width:44px;height:44px;border-radius:12px;background:var(--forest-soft,#e8eee6);color:var(--forest,#2f4a3a);display:grid;place-items:center;flex:none}
#getting-here .trc-ab-k{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted,#6b6a63)}
#getting-here .trc-ab-card h3{margin:4px 0 4px;font-size:1.02rem;line-height:1.3}
#getting-here .trc-ab-card p{margin:0;color:var(--ink-muted,#6b6a63);font-size:.92rem;line-height:1.5;overflow-wrap:anywhere}
#getting-here .trc-ab-pdf{margin-top:16px;display:flex;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--border,#e6dfd2);border-radius:14px;background:var(--card,#fff);text-decoration:none;color:inherit;max-width:520px;box-sizing:border-box}
#getting-here .trc-ab-pdf small{display:block;color:var(--ink-muted,#6b6a63)}
#getting-here .trc-ab-sign{margin:16px 0 0;color:var(--ink-muted,#6b6a63)}
#getting-here .trc-ab-sign em{font-style:italic;color:var(--ink,#2b2b28)}
@media (min-width:1024px){#getting-here .trc-ab{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* ==== theme-v18.css ==== */
/* v18 theme layer — Playfair Display + Plus Jakarta Sans only */
.v18-reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.v18-reveal.v18-in{opacity:1;transform:none}
.v18-rv.v18-reveal{transition-duration:.55s}
.hero-r6{overflow:hidden}.hero-r6 picture img{will-change:transform}
@media (prefers-reduced-motion:reduce){.v18-reveal{opacity:1!important;transform:none!important;transition:none!important}.hero-r6 picture img{transform:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}
.v18-noscroll{overflow:hidden}
.v18-h2{font-family:'Playfair Display',serif;color:#1E3F24;font-size:clamp(1.6rem,4vw,2.3rem);margin:4px 0 22px}
/* lightbox */
.v18-lb{position:fixed;inset:0;z-index:10050;background:rgba(12,20,13,.97);display:none;flex-direction:column;align-items:stretch;justify-content:center;overscroll-behavior:contain}
.v18-lb.open{display:flex}
.v18-lb-track{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:calc(max(12px,env(safe-area-inset-top)) + 52px) 0 8px;touch-action:pan-y pinch-zoom;overflow:hidden}
.v18-lb-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center;will-change:transform}
.v18-lb-slide picture{display:contents}.v18-lb-img{width:100%;height:100%;max-width:1400px;object-fit:contain;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;pointer-events:none}
.v18-lb-zone{position:absolute;top:0;bottom:0;width:28%;background:transparent;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:pan-y pinch-zoom}
.v18-lb-zone.l{left:0}.v18-lb-zone.r{right:0}
.v18-lb-x{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.55);color:#fff;font-size:1.9rem;line-height:1;cursor:pointer;z-index:4}
.v18-lb-n{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));height:48px;display:flex;align-items:center;padding:0 14px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font:600 .9rem 'Plus Jakarta Sans',sans-serif;z-index:4}
.v18-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.6);color:#fff;cursor:pointer;z-index:4;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.4)}
.v18-lb-nav:hover,.v18-lb-nav:focus-visible,.v18-lb-x:focus-visible{background:#C69C6D;color:#14301A;outline:2px solid #fff;outline-offset:2px}
.v18-lb-nav.prev{left:max(10px,env(safe-area-inset-left))}.v18-lb-nav.next{right:max(10px,env(safe-area-inset-right))}
@media (max-width:760px){.v18-lb-nav{width:48px;height:48px;top:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 150px);transform:none}}
.v18-lb-cap{position:relative;flex:none;padding:10px 16px max(14px,env(safe-area-inset-bottom));color:#F4EFE6;text-align:center;font-family:'Plus Jakarta Sans',sans-serif}
.v18-lb-thumbs{display:flex;gap:6px;overflow-x:auto;padding:10px 2px 2px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start}
.v18-lb-thumbs::-webkit-scrollbar{display:none}
.v18-lb-thumbs button{flex:none;width:60px;height:46px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#222;opacity:.6;cursor:pointer;scroll-snap-align:center}
.v18-lb-thumbs button.on{border-color:#C69C6D;opacity:1}
.v18-lb-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.v18-lb-t{font-family:'Playfair Display',serif;font-size:1.15rem}.v18-lb-c{font-size:.85rem;opacity:.85;max-width:720px;margin:4px auto 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* mini header */
.v18-mini{position:fixed;top:0;left:0;right:0;z-index:900;background:rgba(250,247,242,.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #E6DCCB;box-shadow:0 4px 18px rgba(20,40,20,.08);transform:translateY(-110%);transition:transform .3s ease;font-family:'Plus Jakarta Sans',sans-serif}
.v18-mini.show{transform:none}
.v18-mini-in{display:flex;align-items:center;gap:16px;height:60px}
.v18-mini-logo{font-family:'Playfair Display',serif;font-weight:700;color:#1E3F24;font-size:1.15rem;text-decoration:none;white-space:nowrap}.v18-mini-logo span{font-weight:500}
.v18-mini-sum{flex:1;border:1px solid #E1D6C3;background:#fff;border-radius:999px;padding:9px 16px;font:600 .82rem 'Plus Jakarta Sans',sans-serif;color:#33402F;text-align:left;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media (max-width:760px){.v18-mini{display:none}}
@media (prefers-reduced-motion:reduce){.v18-mini{transition:none}}
.v18-tagline{position:absolute;left:50%;transform:translateX(-50%);top:18%;color:#fff;font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(1rem,2.4vw,1.4rem);text-shadow:0 2px 12px rgba(0,0,0,.45);text-align:center;width:90%;pointer-events:none}
/* amenities */
.v18-amen-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (min-width:700px){.v18-amen-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1050px){.v18-amen-grid{grid-template-columns:repeat(4,1fr)}}
.v18-amen-cell{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #EAE1D2;border-radius:14px;padding:14px}
.v18-amen-ico{flex:none;width:44px;height:44px;border-radius:12px;background:#EEF3EC;color:#2C5F2D;display:flex;align-items:center;justify-content:center}
.v18-amen-t{font-weight:700;color:#1E3F24;font-size:.9rem}.v18-amen-s{font-size:.76rem;color:#6B6A60;margin-top:2px;line-height:1.35}
/* review carousel */
.v18-quotes{position:relative;margin-bottom:26px}
.v18-q-track{min-height:220px;display:grid}
.v18-q{grid-area:1/1;margin:0;background:#fff;border:1px solid #EAE1D2;border-radius:18px;padding:28px clamp(18px,4vw,44px);text-align:center;box-shadow:0 10px 30px rgba(30,63,36,.06);animation:v18fade .6s ease}
.v18-q[hidden]{display:none}
.v18-stars{color:#C69C6D;letter-spacing:3px;font-size:1.05rem}
.v18-q blockquote{font-family:'Playfair Display',serif;font-style:italic;color:#24331F;font-size:clamp(1rem,2.2vw,1.25rem);line-height:1.55;margin:12px auto;max-width:760px}
.v18-q figcaption{font-weight:700;font-size:.82rem;color:#2C5F2D;letter-spacing:.02em}
.v18-q-ctl{display:flex;justify-content:center;gap:8px;margin-top:12px}
.v18-q-ctl button{width:38px;height:38px;border-radius:50%;border:1px solid #D9CDB8;background:#fff;color:#1E3F24;cursor:pointer;font-size:1rem}
@keyframes v18fade{from{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.v18-q{animation:none}}
/* weather + itinerary */
.v18-wx{display:inline-flex;align-items:center;gap:5px;font:600 .78rem 'Plus Jakarta Sans',sans-serif;color:#1E3F24;background:#F1ECE2;border-radius:999px;padding:6px 11px;white-space:nowrap}
.v18-wx small{font-weight:500;color:#6B6A60}
@media (max-width:520px){.v18-wx small{display:none}.v18-wx{padding:5px 8px}}
.v18-itin{padding:18px!important;margin:0 0 16px;border:1px solid #DCE6D9!important;background:#FBFDF9!important}
.v18-itin-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:6px}
.v18-itin-row>div:last-child{text-align:right}
.v18-itin-l{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#6B6A60;font-weight:700}
.v18-itin-d{font-family:'Playfair Display',serif;font-size:1.1rem;color:#1E3F24}.v18-itin-s{font-size:.8rem;color:#2C5F2D;font-weight:700}
.v18-itin-n{background:#1E3F24;color:#fff;border-radius:999px;padding:5px 12px;font-size:.75rem;font-weight:700}
.v18-itin-wx{margin-top:14px}.v18-wx-days{display:flex;gap:6px;overflow-x:auto;margin-top:6px;padding-bottom:2px}
.v18-wx-day{flex:none;min-width:58px;text-align:center;background:#fff;border:1px solid #EAE1D2;border-radius:10px;padding:6px 4px;font-size:.72rem}.v18-wx-day .ic{font-size:1.15rem}
.v18-itin-drive{margin-top:12px;font-size:.78rem;color:#4F5A4A}
.hero-r6 #v18-itin{max-width:520px;margin:12px auto 0;text-align:left}
/* map */
.v18-map{height:clamp(320px,55vh,480px);border-radius:18px;overflow:hidden;border:1px solid #DCD2BF;box-shadow:0 12px 30px rgba(30,63,36,.08);background:#E9E4D8}
.v18-map .leaflet-tile-pane{filter:saturate(.75) sepia(.12)}
.v18-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#2C5F2D;border:2px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center}
.v18-pin>*,.v18-pin{color:#fff;font:700 .72rem 'Plus Jakarta Sans',sans-serif}
.v18-pin.home{background:#8B5A2B;font-size:1rem}
.v18-map-note{font-size:.82rem;color:#6B6A60;margin-top:10px}
.v18-skel{width:100%;height:100%;background:linear-gradient(90deg,#ECE6DA 25%,#F5F1E9 50%,#ECE6DA 75%);background-size:200% 100%;animation:v18sk 1.4s infinite}
@keyframes v18sk{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.v18-skel{animation:none}}
/* room tour */
.v18-tour-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:22px}
.v18-tour-nav a{flex:none;font-size:.78rem;font-weight:600;color:#1E3F24;background:#F1ECE2;border-radius:999px;padding:7px 13px;text-decoration:none}
.v18-room{display:grid;gap:18px;align-items:center;margin-bottom:34px}
@media (min-width:860px){.v18-room{grid-template-columns:1.5fr 1fr;gap:36px}.v18-room.alt{grid-template-columns:1fr 1.5fr}.v18-room.alt .v18-room-img{order:2}}
.v18-room-img{border:0;padding:0;background:none;cursor:zoom-in;border-radius:18px;overflow:hidden;display:block;aspect-ratio:3/2;width:100%}
.v18-room-img img{width:100%;height:100%;object-fit:cover;display:block}
.v18-room-k{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#8B5A2B;font-weight:700}
.v18-room h3{font-size:1.45rem;color:#1E3F24;margin:6px 0 8px}.v18-room p{color:#4F5A4A;line-height:1.6;margin:0}
/* ask */
.v18-ask-btn{position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:950;display:flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#1E3F24;color:#fff;padding:12px 18px;font:700 .85rem 'Plus Jakarta Sans',sans-serif;box-shadow:0 10px 26px rgba(20,40,20,.3);cursor:pointer}
.v18-ask-btn svg{width:20px;height:20px}
@media (max-width:760px){.v18-ask-btn{bottom:calc(96px + env(safe-area-inset-bottom));padding:12px}.v18-ask-btn span{display:none}}
.v18-ask-wrap{position:fixed;inset:0;z-index:10040;background:rgba(20,30,20,.5);display:flex;align-items:flex-end;justify-content:center;padding:0}
@media (min-width:640px){.v18-ask-wrap{align-items:center;padding:16px}}
.v18-ask{position:relative;width:100%;max-width:460px;max-height:92vh;overflow:auto;padding:24px!important;border-radius:18px 18px 0 0!important;background:#fff;display:flex;flex-direction:column;gap:10px;font-family:'Plus Jakarta Sans',sans-serif}
@media (min-width:640px){.v18-ask{border-radius:18px!important}}
.v18-ask h3{margin:0;color:#1E3F24;font-size:1.4rem}.v18-ask-sub{margin:0 0 4px;color:#6B6A60;font-size:.82rem}
.v18-ask label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:700;color:#33402F}
.v18-ask input,.v18-ask textarea{font:400 16px 'Plus Jakarta Sans',sans-serif;border:1px solid #D9CDB8;border-radius:10px;padding:10px 12px}
.v18-ask-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v18-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.v18-ask-err{color:#A23B2A;font-size:.8rem;min-height:1em}
.v18-ask-x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:1.6rem;cursor:pointer;color:#555}
body:has(.mobile-sticky-bar:not(.is-hidden)) .v18-ask-btn{}
/* footer */
.v18-footer{background:#14301A;color:#D9E6D6;font-family:'Plus Jakarta Sans',sans-serif;padding:52px 0 calc(28px + env(safe-area-inset-bottom))}
.v18-footer a{color:#EAF2E7;text-decoration:none}.v18-footer a:hover{text-decoration:underline}
.v18-foot-grid{display:grid;gap:30px}@media (min-width:860px){.v18-foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.v18-footer h4{font-family:'Playfair Display',serif;color:#fff;font-size:1.05rem;margin:0 0 12px}
.v18-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.88rem}
.v18-trout{width:150px;height:auto;color:#C69C6D;margin:4px 0 12px}
.v18-foot-bot{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:16px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:.78rem;color:#9AB59C}
/* skeleton for first paint */
.v18-boot{padding:0 0 40px}.v18-boot .sk-hero{height:min(78vh,640px);background:#DDD5C6}.v18-boot .sk-line{height:18px;border-radius:9px;margin:18px auto;max-width:900px;width:86%;background:linear-gradient(90deg,#ECE6DA 25%,#F5F1E9 50%,#ECE6DA 75%);background-size:200% 100%;animation:v18sk 1.4s infinite}
/* print */
.v18-print-brand{display:none}
@media print{
  .v18-print-card,.v18-print-card *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .v18-mini,.v18-ask-btn,.v18-wx,.v18-lb,.site-header,.site-footer,.v18-footer,.mobile-sticky-bar,.no-print{display:none!important}
  body{background:#fff!important;padding:0!important}
  .v18-print-card{border:1.5px solid #1E3F24!important;box-shadow:none!important;padding:24px!important}
  .v18-print-brand{display:flex;gap:10px;align-items:center;border-bottom:2px solid #C69C6D;padding-bottom:10px;margin-bottom:16px;font:12px 'Plus Jakarta Sans',sans-serif;color:#1E3F24}
  .v18-print-brand b{font:700 18px 'Playfair Display',serif}
  a[href]:after{content:none!important}
  @page{margin:14mm}
}

/* v19 QA polish */
.leaflet-container,.leaflet-container *{font-family:'Plus Jakarta Sans',sans-serif!important}
.showcase-day.booked,[data-cal-date].booked,[data-cal-date].past,[data-cal-date].booked>span,[data-cal-date].past>span,[data-cal-date].unavailable>span,[data-cal-date].unavailable{color:#57534b!important}
.cal-weekday,.admin-login-divider>span{color:#5f6b63!important}
.checkout-mini-day.muted{color:#767269!important}
.attr-credits{color:#5f665d!important}
a.attr-link,.attr-card a,.attraction-card a{min-height:32px;display:inline-flex;align-items:center}
.area-guide-dir-link,.area-guide-learn-more,.admin-pw-toggle-btn{min-height:32px;display:inline-flex;align-items:center}
.v19-edit-dates{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}

/* v21 About page + tap targets */
.trc-about-hero{position:relative;height:min(62vh,520px);overflow:hidden;background:#1F3D2B}
.trc-about-hero img{width:100%;height:100%;object-fit:cover;display:block}
.trc-about-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(16,32,20,.72))}
.trc-about-hero-txt{position:absolute;left:0;right:0;bottom:28px;z-index:1;color:#fff}
.trc-about-hero-txt .eyebrow{color:#E9D3B4}
.trc-about-hero-txt h1{font-family:'Playfair Display',serif;font-size:clamp(2rem,6vw,3.4rem);margin:4px 0 0;color:#fff}
.trc-about-body{display:grid;grid-template-columns:1.25fr .9fr;gap:48px;padding-top:56px;padding-bottom:72px;align-items:start}
.trc-about-copy p{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.04rem;line-height:1.8;color:var(--ink-muted,#4A5A4E);margin:0 0 18px}
.trc-about-copy p.trc-about-lead{font-size:1.14rem;color:var(--ink,#1E2A22)}
.trc-about-copy p.trc-about-lead::first-letter{font-family:'Playfair Display',serif;float:left;font-size:3.4rem;line-height:.9;padding:6px 10px 0 0;color:#1F3D2B}
.trc-about-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.trc-about-cta .btn{min-height:48px;display:inline-flex;align-items:center}
.trc-about-fig{margin:0;position:sticky;top:96px}
.trc-about-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px;box-shadow:0 18px 40px rgba(20,48,26,.18)}
.trc-about-fig figcaption{font-size:.85rem;color:var(--ink-muted,#5b6b5f);margin-top:10px;text-align:center}
.trc-about-more{font-weight:700;color:var(--forest-dark,#1F3D2B);display:inline-flex;align-items:center;min-height:44px}
@media (max-width:860px){.trc-about-body{grid-template-columns:1fr;gap:28px;padding-top:32px;padding-bottom:48px}.trc-about-fig{position:static}.trc-about-fig img{aspect-ratio:4/3}.trc-about-hero{height:46vh}}
.trc-tap44{min-height:44px;display:inline-flex!important;align-items:center;justify-content:center}
.v18-foot-bot a.trc-tap44{padding:0 6px}
.v18-footer ul li a{display:inline-flex;align-items:center;min-height:44px}

/* v21 hold countdown */
.trc-hold-timer{position:relative;display:flex;gap:10px;align-items:center;padding:12px 14px;margin:0 0 12px;border-radius:12px;background:#EEF4EE;border:1px solid #BFD3C1;color:#1F3D2B;font:500 .92rem/1.4 'Plus Jakarta Sans',sans-serif}
.trc-hold-timer.warn{background:#FFF4E5;border-color:#F0B866;color:#7A4100}
.trc-hold-timer .num{font-variant-numeric:tabular-nums;font-size:1.05rem}
.trc-hold-expired{display:grid;gap:8px;padding:16px;margin:0 0 12px;border-radius:12px;background:#FDF0EF;border:1px solid #E7A39C;color:#7A1F17;font:500 .93rem/1.45 'Plus Jakarta Sans',sans-serif}
.trc-hold-expired .btn{justify-self:start;min-height:44px}

/* v21: full "Trout Run Cabin" brand on one line on phones */
@media (max-width:430px){
  .brand-r6{overflow:visible!important;flex:0 1 auto;min-width:0}
  .brand-r6 .brand-title{font-size:1.12rem!important;gap:4px!important;letter-spacing:-.015em}
  .brand-r6 .brand-pine{width:14px;height:20px;margin-top:-3px}
  .nav-actions{gap:6px!important}
  .nav-actions .v18-wx{padding-left:7px!important;padding-right:7px!important}
}
@media (max-width:359px){ .nav-actions .v18-wx{display:none!important} }
/* v21e calendar colors (WCAG AA) */
.showcase-day.avail,[data-cal-date].avail{background:#E3F2E1!important;color:#14532D!important;border:1.5px solid #4CA35A!important;font-weight:600}
.showcase-day.avail:hover{background:#CDE9CA!important}
.showcase-day.booked,[data-cal-date].showcase-day.booked{background:#FDE2E1!important;color:#8B1A1A!important;border:1.5px solid #E8A3A0!important;text-decoration:line-through!important;text-decoration-thickness:1.5px!important;cursor:not-allowed}
.showcase-day.past{background:#F3F2EF!important;color:#6B6B6B!important;border:1px solid transparent!important;text-decoration:none!important;cursor:default;opacity:1!important}
.showcase-day.selected{background:#1F5A30!important;color:#fff!important;border:1.5px solid #1F5A30!important;text-decoration:none!important}
.showcase-day.in-range{background:#BFE3C4!important;color:#0F3D1E!important;border:1.5px solid #8CCB95!important}
.legend-swatch.lg-av{background:#E3F2E1;border:1.5px solid #4CA35A}
.legend-swatch.lg-bk{background:#FDE2E1;border:1.5px solid #E8A3A0}
.legend-swatch.lg-past{background:#F3F2EF;border:1px solid #D6D3CC}
.legend-swatch.lg-sel{background:#1F5A30}
.showcase-cal-legend s{text-decoration-color:#8B1A1A}
/* v21g About typography: uniform body paragraphs */
.trc-about-copy p,.trc-about-copy p.trc-about-lead{font-family:'Plus Jakarta Sans',sans-serif!important;font-size:1.0625rem!important;line-height:1.75!important;color:var(--ink,#1E2A22)!important;font-weight:400!important;margin:0 0 18px!important}
.trc-about-copy p::first-letter{all:unset}
.trc-about-copy .eyebrow{display:block;margin-bottom:12px}
.trc-about-hero-txt h1,.trc-about-copy h2,.trc-about-copy h3{font-family:'Playfair Display',serif}
@media (max-width:600px){.trc-about-copy p,.trc-about-copy p.trc-about-lead{font-size:1.09rem!important}}
/* v21h mobile side margins (~20px, safe-area aware) */
@media (max-width:600px){
  .container:not(.showcase-section .container):not(.site-header .container){padding-left:max(20px,env(safe-area-inset-left))!important;padding-right:max(20px,env(safe-area-inset-right))!important;box-sizing:border-box;max-width:100%}
  .showcase-right-col{padding-left:max(20px,env(safe-area-inset-left))!important;padding-right:max(20px,env(safe-area-inset-right))!important;box-sizing:border-box}
}
/* v21i lightbox: never stretch small photos */
.v18-lb-img{object-fit:contain!important;max-width:100%;max-height:100%}

/* v21k QA: 44px minimum tap targets on touch/narrow screens */
@media (max-width:1024px),(pointer:coarse){
 .filter-pill,.showcase-day,.area-guide-learn-more,.area-guide-dir-link,.showcase-mobile-circle-btn,
 .btn,button.btn,a.btn,.leaflet-control-zoom a,.leaflet-popup-close-button{min-height:44px!important}
 .showcase-mobile-circle-btn{min-width:44px!important;width:44px!important;height:44px!important}
 .leaflet-control-zoom a{min-width:44px!important;line-height:44px!important}
 .leaflet-popup-close-button{min-width:44px!important;display:flex!important;align-items:center;justify-content:center}
 .filter-pill,.area-guide-learn-more,.area-guide-dir-link,.btn{display:inline-flex;align-items:center;justify-content:center}
 .brand-logo{display:inline-flex;align-items:center;min-height:44px}
}

/* ===== v22 cabin theme upgrade ===== */
:root{--v22-wood:#5A3A22;--v22-wood2:#7A5134;--v22-stone:#E9E4DA;--v22-forest:#1F3A2B;--v22-moss:#2F5A3C;--v22-cream:#FAF7F1;--v22-gold:#B8873B}
html{scroll-behavior:smooth}
body{background-color:var(--v22-cream);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .22 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
/* header + menus */
.site-header{background:rgba(250,247,241,.94)!important;backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid rgba(90,58,34,.14)!important;box-shadow:0 6px 24px -18px rgba(31,58,43,.45)}
.nav-link{position:relative;font-weight:600;letter-spacing:.01em}
.nav-link::after{content:"";position:absolute;left:12%;right:12%;bottom:4px;height:2px;border-radius:2px;background:var(--v22-gold);transform:scaleX(0);transition:transform .25s ease}
.nav-link:hover::after,.nav-link.active::after,.nav-link[aria-current=page]::after{transform:scaleX(1)}
.btn-book-header,.btn-primary{background:linear-gradient(180deg,#2F6B43,#1F4E31)!important;border:1px solid #1A4029!important;color:#fff!important;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 18px -10px rgba(31,78,49,.8);transition:transform .15s ease,box-shadow .2s ease}
.btn-book-header:hover,.btn-primary:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 12px 22px -10px rgba(31,78,49,.9)}
.mobile-drawer{background:linear-gradient(180deg,#203B2C,#16291F)!important;color:#F4EFE6!important}
.mobile-drawer a,.mobile-drawer-links a{color:#F4EFE6!important;font-family:'Playfair Display',serif;font-size:1.35rem;padding:14px 4px;min-height:44px;display:flex;align-items:center;border-bottom:1px solid rgba(244,239,230,.12)}
.mobile-drawer a:hover{color:#E6C98F!important}
/* headlines + photo sections */
h1,h2,.section-title{letter-spacing:-.015em}
main h2,.section-title{font-size:clamp(1.9rem,1.2rem + 2.6vw,3.1rem)!important;line-height:1.12!important;font-weight:700!important}
.eyebrow{color:var(--v22-gold)!important;letter-spacing:.18em!important;font-weight:700!important}
.eyebrow::before{content:"";display:inline-block;width:28px;height:2px;background:currentColor;vertical-align:middle;margin-right:10px}
main img{transition:transform .6s ease,filter .4s ease}
.gallery-grid img:hover,.v18-gal img:hover,[data-open-lightbox]:hover{transform:scale(1.025)}
.gallery-grid,.v18-gal{gap:12px!important}
.gallery-grid>*,.v18-gal>*{border-radius:14px;overflow:hidden;box-shadow:0 14px 30px -20px rgba(31,40,30,.55)}
.card{border-radius:16px!important;border:1px solid rgba(90,58,34,.12)!important;box-shadow:0 18px 40px -30px rgba(40,30,20,.5)!important}
/* booking widget + checkout */
.showcase-calendar-card,.sticky-sidebar,.booking-card,#checkout-booking-form{border-radius:18px!important;border:1px solid rgba(90,58,34,.16)!important;box-shadow:0 24px 50px -32px rgba(40,30,20,.55),0 1px 0 #fff inset!important;background:linear-gradient(180deg,#fff,#FCFAF6)!important}
.showcase-calendar-card{border-top:4px solid var(--v22-moss)!important}
.showcase-price-total,.sticky-sidebar .total,.price-total{font-family:'Playfair Display',serif}
.form-control,#checkout-booking-form input,#checkout-booking-form textarea,#checkout-booking-form select{border-radius:10px!important;border:1px solid #D8D0C2!important;transition:border-color .2s,box-shadow .2s}
.form-control:focus,#checkout-booking-form input:focus,#checkout-booking-form textarea:focus{border-color:var(--v22-moss)!important;box-shadow:0 0 0 3px rgba(47,90,60,.18)!important;outline:none}
#trc-hold-timer{border-radius:12px!important;background:linear-gradient(90deg,#FFF6E5,#FDF0D6)!important;border:1px solid #E8CF9E!important;color:#6B4A12!important;font-weight:700}
#payment-element{padding:14px;border-radius:14px;background:#fff;border:1px solid #E4DCCF}
/* footer: wood + stone */
.v18-footer{position:relative;background:linear-gradient(180deg,rgba(22,41,31,.97),rgba(16,30,23,.99)),repeating-linear-gradient(90deg,#2a3a2f 0 3px,#24332a 3px 7px)!important;color:#EDE6D8!important;border-top:6px solid transparent;border-image:repeating-linear-gradient(90deg,#6E4A2E 0 40px,#5A3A22 40px 80px) 6}
.v18-footer a{color:#E6C98F!important}
.v18-footer a:hover{color:#fff!important}
.v18-foot-bot{border-top:1px solid rgba(237,230,216,.14)!important}
/* fade-ins */
.v22-fade{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.v22-fade.v22-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.v22-fade{opacity:1!important;transform:none!important;transition:none!important}main img,.btn-primary{transition:none!important}.gallery-grid img:hover,[data-open-lightbox]:hover{transform:none}}
/* admin polish */
.admin-shell,.admin-main,#admin-app{background:#F6F3EC}
[data-admin-tab],[data-v21-tab]{border-radius:10px!important;transition:background .2s,color .2s;min-height:44px}
[data-admin-tab].active,[data-v21-tab].active,[data-admin-tab][aria-selected=true]{background:var(--v22-forest)!important;color:#fff!important}
.admin-card,.admin-panel,#admin-app .card{border-radius:14px!important;background:#fff!important;border:1px solid #E6DFD2!important;box-shadow:0 12px 30px -24px rgba(40,30,20,.5)!important}
#admin-app table th,.admin-table th{background:#F1ECE2!important;color:#3B2A1C!important;text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}
#admin-app table tr:hover td,.admin-table tr:hover td{background:#FBF8F2}
@media (max-width:1024px),(pointer:coarse){.v18-q-prev,.v18-q-pause,.v18-q-next{min-width:44px!important;min-height:44px!important}}

/* ===== v22b darker backwoods palette ===== */
:root{--v22-forest:#1B2E22;--v22-walnut:#3B2717;--v22-char:#2B2B29;--v22-amber:#E0A64A;--v22-cream:#F3EBDD}
body{background-color:#EDE4D3!important}
.site-header{background:linear-gradient(180deg,rgba(27,46,34,.97),rgba(22,38,28,.97)),repeating-linear-gradient(90deg,#1d3024 0 2px,#1a2b20 2px 6px)!important;border-bottom:3px solid #3B2717!important}
.site-header .nav-link,.site-header .brand-logo,.site-header .brand-title,.site-header a:not(.btn){color:#F3EBDD!important}
.site-header .nav-link::after{background:var(--v22-amber)}
.site-header .mobile-menu-btn{color:#F3EBDD!important;border-color:rgba(243,235,221,.35)!important}
.site-header .mobile-menu-btn span,.site-header .mobile-menu-btn i{background:#F3EBDD!important}
.btn-book-header{background:linear-gradient(180deg,#E8B25C,#C98A2E)!important;color:#22180D!important;border-color:#A8711F!important}
.eyebrow{color:#9A5F12!important}
main h2,.section-title{color:#2A1C10}
.mobile-drawer{background:linear-gradient(180deg,#1B2E22,#121F17)!important}
.mobile-drawer a:hover{color:var(--v22-amber)!important}
.v18-footer{background:linear-gradient(180deg,rgba(32,22,13,.97),rgba(22,15,9,.99)),repeating-linear-gradient(0deg,#3B2717 0 3px,#33210f 3px 9px)!important;color:#F3EBDD!important;border-image:repeating-linear-gradient(90deg,#2B2B29 0 30px,#3a3a37 30px 60px) 6}
.v18-footer a{color:#E8B25C!important}
.card{background:#FBF7EF!important}
/* forms stay light */
.showcase-calendar-card,.sticky-sidebar,#checkout-booking-form{background:#FFFDF8!important;border-top-color:#1B2E22!important}
#trc-hold-timer{background:#2B2B29!important;color:#F5D08A!important;border-color:#3B2717!important}
/* admin darker chrome */
[data-admin-tab].active,[data-v21-tab].active,[data-admin-tab][aria-selected=true]{background:#1B2E22!important;color:#F3EBDD!important}
#admin-app table th,.admin-table th{background:#3B2717!important;color:#F3EBDD!important}

/* v23 header fix: visible logo, no weather overlap, visible hamburger */
.site-header .brand-pine path{fill:#E0A64A!important}
.site-header .brand-pine{filter:drop-shadow(0 1px 0 rgba(0,0,0,.35))}
.site-header .brand-logo{flex:0 0 auto!important;min-width:max-content;overflow:visible!important}
.site-header .brand-title{white-space:nowrap!important;overflow:visible!important}
.site-header .nav-actions{min-width:0;flex-shrink:1}
.site-header .mobile-menu-btn{background:rgba(243,235,221,.06)!important;border:1.5px solid rgba(243,235,221,.55)!important;color:#F3EBDD!important;width:44px!important;height:44px!important;min-width:44px;border-radius:10px!important;align-items:center;justify-content:center;box-shadow:none!important}
.site-header .mobile-menu-btn svg{stroke:#F3EBDD!important;width:22px;height:22px}
.site-header .v18-wx{background:rgba(243,235,221,.12)!important;color:#F3EBDD!important;border:1px solid rgba(243,235,221,.25)}
@media (max-width:1100px){.site-header .v18-wx small{display:none}}
@media (max-width:600px){
 .site-header #v18-wx,.site-header .v18-wx{display:none!important}
 .site-header .brand-title{font-size:clamp(1.12rem,5.4vw,1.4rem)!important}
 .site-header .brand-pine{height:.95em;width:auto}
 .site-header .nav-actions{gap:8px!important}
 .site-header .btn-book-header{padding:0 12px!important;letter-spacing:.04em;min-height:44px;display:inline-flex!important;align-items:center}
}
@media (max-width:350px){.site-header .brand-title{font-size:1.05rem!important}.site-header .btn-book-header{padding:0 10px!important}.site-header .container{padding-left:14px!important;padding-right:14px!important}}
@media (min-width:769px){.site-header .mobile-menu-btn{display:none!important}}


/* ==== theme-v19.css ==== */
/* theme-v19 — v53 public polish (visual only) */
/* 1. Mobile overflow: gallery + booking card were 444px wide inside a 374px column */
.render-showcase-grid>*{min-width:0!important;max-width:100%}
.showcase-main-stage{max-width:100%!important}
.showcase-main-stage img{max-width:100%}
@media (max-width:900px){.render-showcase-grid{grid-template-columns:minmax(0,1fr)!important}}
html,body{overflow-x:clip}
/* 2. Card + button rhythm */
.render-showcase-grid .card,.booking-card,.price-breakdown{border-radius:18px}
main .btn-primary,main button.btn-primary{background:#1E3F24;border-color:#1E3F24}
main .btn-primary:hover{background:#2A5532;border-color:#2A5532}
main .btn,main button{min-height:44px}
main img{image-rendering:auto}
/* calendar day cells keep green/red semantics; just make them tap-friendly */
@media (max-width:600px){
  main section{scroll-margin-top:72px}
  .container{padding-left:16px;padding-right:16px}
}
/* focus visibility */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #C69C6D;outline-offset:2px}
.showcase-date-box,.showcase-date-box *{min-width:0!important;max-width:100%;box-sizing:border-box}
.showcase-date-box input[type=date]{width:100%!important;font-size:15px}
@media (max-width:600px){.showcase-date-box input[type=date]{font-size:14px;padding-left:8px!important;padding-right:6px!important}}
@media (max-width:600px){.showcase-date-box input[type=date]{font-size:13.5px!important;padding-left:6px!important;padding-right:2px!important;letter-spacing:-.01em}.showcase-date-box input[type=date]::-webkit-calendar-picker-indicator{margin-left:2px;padding:0;width:14px;height:14px}}


/* ==== theme-v20.css ==== */
/* v54 public polish */
/* Scroll fade-ins: never leave sections blank (full-page captures, jumps, slow observers) */
@keyframes trcShow{to{opacity:1;transform:none}}
.v18-reveal:not(.v18-in),.v22-fade:not(.v22-in){animation:trcShow .6s ease 1.8s forwards}
@media (prefers-reduced-motion:reduce){.v18-reveal,.v22-fade{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}}
@media print{.v18-reveal,.v22-fade{opacity:1!important;transform:none!important}}
/* Desktop: keep the photo gallery beside the long booking card instead of an empty gap */
@media (min-width:901px){.render-showcase-grid{align-items:start}.render-showcase-grid>div:first-child{position:sticky;top:84px;align-self:start}}
/* "Ask about the cabin" pill: smaller and tucked into the corner */
@media (min-width:901px){#trc-chat-btn{right:24px!important;bottom:24px!important;min-height:46px!important;padding:0 16px!important;font-size:.9rem!important}}


/* ==== theme-v21.css ==== */
/* v56 public polish — spacing/overflow/typography only */
.v18-footer .v18-foot-bot{align-items:center;gap:10px 18px;flex-wrap:wrap}
.v18-footer .v18-foot-grid h4{margin-bottom:10px;letter-spacing:.01em}
.v18-footer .v18-foot-grid p,.v18-footer address{line-height:1.55;max-width:34ch}
.v18-footer form.v36-su{max-width:560px;margin:28px auto 8px;box-sizing:border-box}
.v18-footer form.v36-su .row{gap:8px}
.v18-footer form.v36-su .row input{min-width:0;flex:1 1 auto}
@media (max-width:640px){
 .v18-footer .v18-foot-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:22px 16px}
 .v18-footer .v18-foot-grid>div:first-child,.v18-footer .v18-foot-grid>div:last-child{grid-column:1/-1}
 .v18-footer .v18-foot-bot{justify-content:center;text-align:center}
 .v18-footer form.v36-su{margin:22px 0 96px}
}
/* checkout */
.checkout-card-header{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-start}
.checkout-card-header>*{min-width:0}
.checkout-card-title{line-height:1.25;overflow-wrap:anywhere}
.addon-check{line-height:1.3;min-height:48px}
.addon-check span{overflow-wrap:anywhere}
@media (max-width:640px){
 .checkout-card{padding-left:16px!important;padding-right:16px!important}
 .checkout-card-header>div:last-child:not(:first-child){margin-left:0}
}
/* attractions/details text rhythm */
.area-guide-card-title{line-height:1.2;overflow-wrap:anywhere}
.area-guide-card p{line-height:1.55}
#mobile-bar-nights-label{line-height:1.3}
img,video,iframe{max-width:100%}


/* ==== theme-v22.css ==== */
/* v57: keep footer/newsletter clear of the chat pill + sticky booking bar on phones.
   Replaces the beige body padding with a footer-coloured spacer. */
@media (max-width:640px){
  body{padding-bottom:0!important}
  body::after{content:"";display:block;height:calc(265px + env(safe-area-inset-bottom,0px));background:#1a140f}
}


/* ==== attractions-v67.css ==== */
/* v67 Nearby Attractions */
.v67-attr{--g:#2F5D3A;--gd:#1F3D2B;--cream:#F7F2E7;--ink:#1E2A21;--mut:#5C665D;background:linear-gradient(180deg,var(--cream),#FBF8F1);padding:clamp(56px,8vw,104px) 0;font-family:'Plus Jakarta Sans',sans-serif;color:var(--ink)}
.v67-attr .container{max-width:1200px}
.v67-attr{overflow-x:clip}
.v67-head>*{min-width:0}
.v67-head{display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(24px,4vw,56px);align-items:center;margin-bottom:clamp(28px,4vw,44px)}
.v67-eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--g);margin-bottom:10px}
.v67-title{font-family:'Playfair Display',serif;font-weight:600;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.05;margin:0 0 14px;color:var(--gd)}
.v67-intro{font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6;color:var(--mut);max-width:34em;margin:0 0 22px}
.v67-chips{display:flex;flex-wrap:wrap;gap:8px}
.v67-chip{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid #CBD3C6;background:#fff;color:var(--gd);font:600 .92rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:background .2s,color .2s,border-color .2s}
.v67-chip span{font-size:.75rem;opacity:.65}
.v67-chip:hover{border-color:var(--g)}
.v67-chip.on{background:var(--g);border-color:var(--g);color:#fff}
.v67-chip:focus-visible,.v67-card-link:focus-visible,.v67-arrow:focus-visible{outline:3px solid #C9A227;outline-offset:3px}
.v67-map{margin:0;background:#EEF1E6;border-radius:22px;padding:14px 14px 12px;box-shadow:0 10px 30px rgba(31,61,43,.10)}
.v67-rings{display:block;width:100%;max-width:340px;margin:0 auto;aspect-ratio:1}
.v67-topo path{fill:none;stroke:#C9D3BF;stroke-width:1}
.v67-ring{fill:none;stroke:var(--g);stroke-opacity:.35;stroke-width:1.2;stroke-dasharray:3 4}
.v67-ring-l{font:600 8px 'Plus Jakarta Sans',sans-serif;fill:var(--g);opacity:.8}
.v67-pin circle{fill:var(--g);stroke:#fff;stroke-width:2;transition:opacity .3s}
.v67-pin text{font:700 9px 'Plus Jakarta Sans',sans-serif;fill:#fff;text-anchor:middle}
.v67-pin.dim{opacity:.18}
.v67-home{fill:#C9A227;stroke:#fff;stroke-width:3}
.v67-home-i{fill:#fff}
.v67-map figcaption{font-size:.78rem;color:var(--mut);text-align:center;line-height:1.45;margin-top:6px}
.v67-feat{display:grid;grid-template-columns:1.1fr 1fr;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 34px rgba(31,61,43,.10);margin-bottom:28px}
.v67-feat .v67-img{aspect-ratio:auto;min-height:280px}
.v67-feat .v67-body{padding:clamp(22px,3vw,36px)}
.v67-feat p{-webkit-line-clamp:unset;display:block}
.v67-tip{margin:14px 0 0;padding:12px 16px;border-left:3px solid #C9A227;background:#FBF6E8;border-radius:0 10px 10px 0;font-size:.92rem;line-height:1.5;color:var(--ink)}
.v67-tip strong{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#8A6D10;margin-bottom:3px}
.v67-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.v67-card{position:relative;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 6px 22px rgba(31,61,43,.08);display:flex;flex-direction:column;transition:transform .35s ease,box-shadow .35s ease,opacity .35s ease}
.v67-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(31,61,43,.16)}
.v67-card-link{position:absolute;inset:0;z-index:3;border-radius:inherit}
.v67-img{position:relative;aspect-ratio:3/2;overflow:hidden;background:#DDE3D6}
.v67-img img,.v67-img picture{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.v67-card:hover .v67-img img{transform:scale(1.05)}
.v67-ph,.v67-ph svg{width:100%;height:100%;display:block}
.v67-num{position:absolute;top:12px;left:12px;width:30px;height:30px;border-radius:50%;background:var(--g);color:#fff;font-weight:700;font-size:.85rem;display:grid;place-items:center;border:2px solid #fff}
.v67-cat{position:absolute;bottom:12px;left:12px;background:rgba(255,255,255,.94);color:var(--gd);font-size:.74rem;font-weight:700;padding:5px 11px;border-radius:999px}
.v67-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.v67-body h3{font-family:'Playfair Display',serif;font-size:1.3rem;line-height:1.2;margin:0 0 10px;color:var(--gd)}
.v67-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.v67-meta span{display:inline-flex;align-items:center;gap:5px;font-size:.84rem;font-weight:600;padding:5px 10px;border-radius:999px}
.v67-meta svg{width:15px;height:15px}
.v67-time{background:var(--g);color:#fff}
.v67-mi{background:#EEF1E6;color:var(--gd)}
.v67-mi svg{fill:var(--g)}
.v67-body p{font-size:.95rem;line-height:1.55;color:var(--mut);margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.v67-more{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--g);font-size:.95rem;min-height:24px}
.v67-more svg{width:16px;height:16px;transition:transform .25s}
.v67-card:hover .v67-more svg{transform:translate(2px,-2px)}
.v67-card.v67-out{display:none}
.v67-card.v67-in{animation:v67fade .35s ease both}
@keyframes v67fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.v67-nav{display:none}
.v67-empty{text-align:center;color:var(--mut)}
.v67-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.v67-reveal.v67-shown{opacity:1;transform:none}
.v67-attr .attr-credits{margin-top:28px}
@media (max-width:1000px){.v67-grid{grid-template-columns:repeat(2,1fr)}.v67-head{grid-template-columns:1fr 300px}}
@media (max-width:760px){
  .v67-head{grid-template-columns:1fr}
  .v67-map{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;padding:10px 14px}
  .v67-map figcaption{text-align:left;margin:0}
  .v67-chips{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;margin:0 -20px;padding:2px 20px 6px;scrollbar-width:none}
  .v67-chips::-webkit-scrollbar{display:none}
  .v67-chip{flex:0 0 auto;scroll-snap-align:start}
  .v67-feat{grid-template-columns:1fr}.v67-feat .v67-img{min-height:0;aspect-ratio:16/9}
  .v67-feat p{display:-webkit-box;-webkit-line-clamp:4}
  .v67-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:4px 20px 18px;scroll-padding:0 20px;scrollbar-width:none;overscroll-behavior-x:contain}
  .v67-grid::-webkit-scrollbar{display:none}
  .v67-card{flex:0 0 84%;scroll-snap-align:start}
  .v67-card:hover{transform:none}
  .v67-nav{display:flex;justify-content:center;gap:12px;margin-top:4px}
  .v67-arrow{width:44px;height:44px;border-radius:50%;border:1.5px solid #CBD3C6;background:#fff;color:var(--gd);font-size:1.6rem;line-height:1;cursor:pointer}
}
@media (prefers-reduced-motion:reduce){.v67-reveal{opacity:1;transform:none;transition:none}.v67-card,.v67-img img,.v67-more svg{transition:none}.v67-card.v67-in{animation:none}.v67-grid{scroll-behavior:auto}}
/* v68: hook + description with Read more */
.v67-body p.v67-hook{color:var(--ink);font-weight:600;font-size:.98rem;-webkit-line-clamp:2;margin-bottom:8px}
.v67-desc{max-height:4.65em;overflow:hidden;position:relative;transition:max-height .35s ease;margin-bottom:4px}
.v67-desc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.6em;background:linear-gradient(rgba(255,255,255,0),#fff)}
.v67-desc p{display:block;-webkit-line-clamp:unset;margin:0 0 8px;font-size:.92rem}
.v67-desc .v68-tip{background:#FBF6E8;border-left:3px solid #C9A227;padding:8px 10px;border-radius:0 8px 8px 0;color:var(--ink)}
.v67-card.v68-open .v67-desc{max-height:60em}
.v67-card.v68-open .v67-desc::after{display:none}
.v68-more{position:relative;z-index:4;align-self:flex-start;background:none;border:0;padding:0 2px;min-height:44px;font:600 .9rem 'Plus Jakarta Sans',sans-serif;color:var(--g);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.v67-card.v68-open .v67-more{position:relative;z-index:4}
.v67-attr .attr-credits a{color:inherit}
@media (prefers-reduced-motion:reduce){.v67-desc{transition:none}}

/* v115: halo so ring labels stay readable over rings and pins */
.v67-ring-l{paint-order:stroke;stroke:rgba(255,255,255,.9);stroke-width:3px;stroke-linejoin:round;opacity:1}


/* ==== calbook-v71.css ==== */
/* v71 guest booking calendar polish */
.showcase-day.v71-d{height:auto;min-height:46px;flex-direction:column;gap:1px;padding:3px 0;position:relative;line-height:1.05;min-width:0;overflow:hidden}
.showcase-cal-days{gap:3px!important}
.v71-d .v71-n{font-size:.86rem;font-weight:700}
.v71-d .v71-p{font-size:.6rem;font-weight:600;color:#5b4a32;letter-spacing:-.02em;white-space:nowrap}
.v71-d .v71-lab,.cal-day.selected-start .cal-price,.cal-day.selected-end .cal-price{font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.showcase-day.selected .v71-lab{color:#fff}
.showcase-day.v71-in{border-radius:10px 4px 4px 10px}
.showcase-day.v71-out{border-radius:4px 10px 10px 4px}
.showcase-day.v71-in::after,.cal-day.selected-start::after{content:"";position:absolute;right:2px;top:50%;margin-top:-4px;border:4px solid transparent;border-left-color:#E5A93B}
.showcase-day.v71-out::before,.cal-day.selected-end::before{content:"";position:absolute;left:2px;top:50%;margin-top:-4px;border:4px solid transparent;border-right-color:#E5A93B}
.cal-day{position:relative}
.v71-min{position:absolute;top:1px;right:1px;font-style:normal;font-size:.5rem;font-weight:800;background:#E5A93B;color:#2a1d05;border-radius:4px;padding:0 2px;line-height:1.3}
.v71-minnote{font-size:.74rem;color:#5b5b55;margin-top:6px;text-align:center}
.v71-cal-msg{font-size:.8rem;font-weight:700;color:#8a3b12;background:#FCEFE3;border-radius:8px;padding:0 10px;max-height:0;overflow:hidden;opacity:0;transition:opacity .2s,max-height .2s,padding .2s}
.v71-cal-msg.on{opacity:1;max-height:80px;padding:8px 10px;margin-top:8px}
@keyframes v71shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
.v71-shake{animation:v71shake .4s ease;outline:2px solid #C2410C;outline-offset:-2px}
#v71-selbar{position:fixed;left:0;right:0;bottom:0;z-index:900;display:none;align-items:center;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dcd6c8;box-shadow:0 -6px 20px rgba(0,0,0,.12);box-sizing:border-box;max-width:100vw}
#v71-selbar.show{display:flex}
.v71-sb-txt{flex:1;min-width:0}
.v71-sb-d{font-weight:800;color:#1F3D2B;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v71-sb-s{font-size:.78rem;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#v71-selbar.blocked .v71-sb-s{color:#B42318;font-weight:700;white-space:normal}
.v71-sb-go{min-height:46px;padding:0 18px;border:0;border-radius:12px;background:#2F5D3A;color:#fff;font-weight:800;font-size:.95rem;cursor:pointer;flex:none}
.v71-sb-go:disabled{background:#b9c2bb;cursor:not-allowed}
.v71-sb-go:focus-visible{outline:3px solid #E5A93B;outline-offset:2px}
@media (min-width:900px){#v71-selbar{left:50%;right:auto;transform:translateX(-50%);bottom:16px;border-radius:16px;border:1px solid #dcd6c8;width:min(640px,92vw)}}
html.v71-bar-on #mobile-sticky-bar{display:none!important}
html.v71-bar-on body{padding-bottom:90px!important}
@media (prefers-reduced-motion:reduce){.v71-shake{animation:none}.v71-cal-msg{transition:none}}
/* /book mini calendar */
.checkout-mini-day.v71-mini{min-height:46px;height:auto;width:100%;aspect-ratio:auto;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 0;font:inherit;line-height:1.05;position:relative;border:1px solid transparent;cursor:pointer;min-width:0;overflow:hidden}
.checkout-mini-day.v71-mini.booked{cursor:not-allowed}
.checkout-mini-day.v71-mini .v71-n{font-size:.88rem;font-weight:700}
.checkout-mini-day.v71-mini .v71-p{font-size:.62rem;font-weight:600;color:#5b4a32;white-space:nowrap}
.checkout-mini-day.v71-mini.selected-start,.checkout-mini-day.v71-mini.selected-end{background:#1F3D2B;color:#fff}
.checkout-mini-day.v71-mini.selected-start{border-radius:10px 4px 4px 10px}
.checkout-mini-day.v71-mini.selected-end{border-radius:4px 10px 10px 4px}
.checkout-mini-day.v71-mini .v71-lab{color:#fff}
.checkout-mini-day.v71-mini.selected-start::after{content:"";position:absolute;right:2px;top:50%;margin-top:-4px;border:4px solid transparent;border-left-color:#E5A93B}
.checkout-mini-day.v71-mini.selected-end::before{content:"";position:absolute;left:2px;top:50%;margin-top:-4px;border:4px solid transparent;border-right-color:#E5A93B}
.checkout-mini-cal-grid{gap:4px!important}
html.v71-bar-on body #trc-chat-btn,html.v71-bar-on body.trc-nobar #trc-chat-btn{bottom:calc(84px + env(safe-area-inset-bottom))!important;transition:bottom .2s}
@media (min-width:900px){html.v71-bar-on body #trc-chat-btn,html.v71-bar-on body.trc-nobar #trc-chat-btn{bottom:24px!important}}
/* v74: no horizontal page pan; no iOS double-tap zoom on calendar taps; 7 columns always fit */
html,body{overflow-x:clip;max-width:100%}
[data-cal-date],.showcase-calendar-card,.checkout-card,.cal-arrow-btn,[data-cal-nav]{touch-action:manipulation}
.checkout-mini-cal-grid,.showcase-calendar-card [class*="grid"]{min-width:0;max-width:100%}
[data-cal-date]{min-width:0}


/* ==== polish-v94.css ==== */
/* v94 polish: focus rings + tap targets */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid #C9822B;outline-offset:2px}
label.ck,label.v75-ck{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:8px 0;cursor:pointer}
label.ck input[type=checkbox],label.v75-ck input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;margin:1px 0 0}
a[href*="creativecommons.org"]{display:inline-block;padding:12px 4px;margin:-12px 0}
.v16-check{display:flex;align-items:flex-start;gap:10px;min-height:44px;cursor:pointer}
.v16-check input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;margin:2px 0 0}
/* amenity cards were clipped at 320-360px wide */
.v18-amen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.v18-amen-cell>div:not(.v18-amen-ico){min-width:0;overflow-wrap:anywhere}
@media (max-width:360px){.v18-amen-cell{flex-direction:column;gap:8px;padding:12px}.v18-amen-ico{width:38px;height:38px}}
@media (min-width:700px){.v18-amen-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1050px){.v18-amen-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* checkout on phones: chat button shrinks to an icon so it does not cover form fields */
@media (max-width:600px){body:has(.checkout-card) #trc-chat-btn{width:52px;height:52px;padding:0;justify-content:center;border-radius:50%}body:has(.checkout-card) #trc-chat-btn span{display:none}}
/* narrow phones: keep the sticky price bar short */
@media (max-width:360px){#mobile-bar-nights-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}

/* v99: chat input shrinks so Send stays on screen at 320px */
#trc-chat form{min-width:0}
#trc-chat form input{min-width:0;flex:1 1 auto}
#trc-chat form button{flex:0 0 auto}

/* v100: tour chips 44px tap target on touch */
@media (pointer:coarse){.v18-tour-nav a{min-height:44px;display:inline-flex;align-items:center}}

/* v101 skip link */
.trc-skip{position:absolute;left:8px;top:-60px;z-index:100000;background:#1E3F24;color:#fff;padding:12px 16px;border-radius:8px;font-weight:600;text-decoration:none}
.trc-skip:focus{top:8px;outline:3px solid #f5c26b}
#app-root:focus{outline:none}

/* v103 hide sticky book bar while mobile menu open */
body.trc-drawer-open #mobile-sticky-bar{display:none!important}

/* v111 hero note legibility over photo (desktop) */
@media (min-width:1024px){#hr6-note{background:rgba(20,32,24,.5);padding:5px 14px;border-radius:999px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);width:max-content;max-width:calc(100% - 32px);margin-left:auto;margin-right:auto}}

/* v117: iOS Safari - stop zoom-on-focus for the small date fields, and size the chat panel to the visible viewport */
@supports (-webkit-touch-callout: none) { #sc-in, #sc-out { font-size: 16px !important; } }
@supports (height: 100dvh) { @media (min-width: 761px) { #trc-chat { height: min(600px, calc(100dvh - 120px)); } } }


/* ==== theme-v135.css ==== */
/* v135 theme tightening: tokens, focus, states, mobile spacing, print. Visual only. */
:root{--t-s1:4px;--t-s2:8px;--t-s3:12px;--t-s4:16px;--t-s5:24px;--t-s6:32px;--t-r-sm:8px;--t-r:12px;--t-r-lg:18px;--t-focus:#C98A2E;--t-ink:#1A281F;--t-muted:#4F5D53;--ink-light:#5F6A5C}
::selection{background:#E8D3A8;color:#1A281F}
/* one consistent keyboard focus ring */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--t-focus)!important;outline-offset:2px!important;box-shadow:none}
/* disabled + busy states */
.btn:disabled,.btn[aria-disabled=true],button:disabled{opacity:.55;cursor:not-allowed!important;transform:none!important;box-shadow:none!important;filter:saturate(.6)}
.btn[aria-busy=true]{cursor:progress}
.btn:active:not(:disabled){transform:translateY(0)!important}
/* readable text */
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
p,li{line-height:1.6}
.v18-q figcaption,.v18-q figcaption *{color:#2C5F2D!important;opacity:1!important}
.v18-stars{color:#A8752F!important}
.site-header .v18-wx small{color:#D9CFBE!important}
/* cards breathe on phones (was 8px side padding) */
@media (max-width:600px){main .container>.card{padding:22px 18px!important}}
/* contact bar above footer: tidy stacking on phones */
.trc-contactbar a{text-decoration:none}
@media (max-width:600px){.trc-contactbar .container{gap:4px!important}.trc-contactbar .container>div{gap:0 18px!important}.trc-contactbar a{min-height:40px!important}}
/* inputs: consistent height + placeholder contrast */
input::placeholder,textarea::placeholder{color:#7A776C;opacity:1}
/* motion: respect reduced motion everywhere */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* print: clean folio/agreement output */
@media print{#trc-chat-btn,#trc-chat,.trc-contactbar,.trc-skip,.mobile-sticky-bar{display:none!important}body{background:#fff!important;color:#000!important}a{color:#000!important;text-decoration:none}.card{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}}
/* v137: checkout line icons (replaced emoji) keep their size inside pay tabs/badges */
.pay-tab-btn svg,.ssl-pill-badge svg,.checkout-card-title svg{flex:none;min-width:16px;min-height:16px}
.pay-tab-btn{gap:6px}
/* v138 price clarity */
.trc-total-note{font-size:.8rem;line-height:1.45;color:var(--ink-muted,#5F6A5C);margin-top:6px}
/* v139 FAQ */
.trc-faq-item{border-top:1px solid var(--border,#E6DFD2)}
.trc-faq-item:last-child{border-bottom:1px solid var(--border,#E6DFD2)}
.trc-faq-item summary{cursor:pointer;list-style:none;padding:14px 28px 14px 0;font-weight:700;color:var(--ink,#1F2A22);position:relative;min-height:44px}
.trc-faq-item summary::-webkit-details-marker{display:none}
.trc-faq-item summary::after{content:"+";position:absolute;right:4px;top:10px;font-size:1.3rem;color:#A8752F;font-weight:400}
.trc-faq-item[open] summary::after{content:"\2212"}
.trc-faq-item p{margin:0 0 14px;color:var(--ink-muted,#5F6A5C);font-size:.93rem}
/* v149: one print button on confirmation */ .card:has(button[onclick="window.print()"]) .v18-print-btn{display:none!important}
@media print{.card:has(#lookup-result-box .trc-confirmed)>*:not(#lookup-result-box){display:none!important}.card:has(#lookup-result-box .trc-confirmed){border:0!important;padding:0!important;background:none!important;box-shadow:none!important}}

/* v275: confirmation print/save-as-PDF: full-width receipt, no on-screen buttons */
@media print{.trc-confirmed{padding:0!important;margin:0!important}.trc-confirmed .container{max-width:none!important;width:auto!important;padding:0!important}.trc-confirmed .v18-print-card{max-width:none!important;width:auto!important;margin:0!important}.trc-confirmed .btn,#trc-chat-btn,.v18-mini{display:none!important}@page{margin:14mm}}
@media print{.trc-confirmed .v18-print-card{padding:16px 20px!important;font-size:92%}.trc-confirmed .v18-print-card>*{break-inside:avoid}}
/* v276: fewer orphans / ragged headings */ :where(h1,h2,h3,h4,.serif){text-wrap:balance}:where(p,li,blockquote,small){text-wrap:pretty}
/* v277: visible keyboard focus on the hero/showcase date fields (inputs are transparent overlays) */
.hr6-field:has(input:focus-visible),.showcase-date-box:has(input:focus-visible){outline:2px solid #2E5A43!important;outline-offset:2px;border-radius:10px}
.showcase-date-box input:focus-visible{outline:none}
/* v279: chat launcher docks as a slim edge tab on checkout at phone widths so it never covers fields or the estimated total (all themes) */
@media (max-width:600px){html body:has(.checkout-card) #trc-chat-btn{right:0!important;left:auto!important;bottom:calc(96px + env(safe-area-inset-bottom))!important;width:34px!important;min-width:0!important;height:46px!important;min-height:0!important;padding:0!important;border-radius:12px 0 0 12px!important;justify-content:center!important;opacity:.92}
html body:has(.checkout-card) #trc-chat-btn :is(span,b):not(:has(svg)){display:none!important}
html body:has(.checkout-card) #trc-chat-btn svg{width:18px!important;height:18px!important}
html body:has(.checkout-card):has(:is(input,select,textarea):focus) #trc-chat-btn{opacity:0!important;pointer-events:none!important}}
/* v280 (v288: phones+tablets ≤1023): on phones the chat launcher is a slim right-edge tab on every page so it never sits on body text; hides while typing */
@media (max-width:1023px){html body #trc-chat-btn,html body:has(#mobile-sticky-bar) #trc-chat-btn{right:0!important;left:auto!important;width:28px!important;min-width:0!important;height:48px!important;min-height:0!important;padding:0!important;border-radius:12px 0 0 12px!important;justify-content:center!important;align-items:center!important}
html body #trc-chat-btn :is(span,b):not(:has(svg)){display:none!important}
html body #trc-chat-btn svg{width:16px!important;height:16px!important}
html body:has(:is(input,select,textarea):focus) #trc-chat-btn{opacity:0!important;pointer-events:none!important}}
/* v283: home boot skeleton shows the (already preloaded) hero photo so LCP fires when the image arrives, not after app.js renders */
@media (max-width:900px){html.trc-boot-home .v18-boot .sk-hero{height:300px;background:#DDD5C6 image-set(url("/images/trc/hero/hero-B-mobile-1600x1200.avif?v=74") type("image/avif"),url("/images/trc/hero/hero-B-800.jpg?v=73") type("image/jpeg")) center 45%/cover no-repeat}}
/* v284: tactile press state for buttons, pills and calendar days (all themes inherit); skipped for reduced motion */
@media (prefers-reduced-motion:no-preference){:where(.btn,.filter-pill,.cal-day,.hr6-cta,button.filter-pill,.mobile-sticky-bar a,.v71-sb button){transition:transform .08s ease,filter .12s ease}
:where(.btn,.filter-pill,.hr6-cta,.mobile-sticky-bar a,.v71-sb button):not(:disabled):active{transform:translateY(1px) scale(.985);filter:brightness(.96)}
:where(.cal-day):not(.disabled):not(.past):active{transform:scale(.94)}}
/* v286: desktop /cabin — compact right-edge chat tab so it never covers the sticky booking card (Bold/Airy) */
@media (min-width:1024px){html body:has(.ac-card) #trc-chat-btn{width:26px!important;min-width:26px!important;height:52px!important;min-height:52px!important;padding:0!important;border-radius:12px 0 0 12px!important;right:0!important;justify-content:center!important;gap:0!important}
html body:has(.ac-card) #trc-chat-btn>span{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}}
@media (min-width:1024px){html body:has(.ac-card) #trc-chat-btn svg{width:16px!important;height:16px!important;flex:none!important}}
/* v289: Classic desktop header shows the Book button (was hidden >=901px); Bold/Airy already show their own and keep their sizing */
@media (min-width:901px){.site-header .nav-actions .btn-book-header{display:inline-flex!important;align-items:center;white-space:nowrap}
.site-header .nav-actions .btn-book-header:focus-visible{outline:3px solid #C98A2E;outline-offset:2px}}
/* v289: Classic only (Bold/Airy load theme-active.css) */
@media (min-width:901px) and (max-width:1279px){html:not(:has(link[href*="theme-active.css"])) .site-header .v18-wx{display:none!important}html:not(:has(link[href*="theme-active.css"])) .site-header .nav-actions .btn-book-header{flex-shrink:0}}
@media (min-width:901px) and (max-width:1099px){html:not(:has(link[href*="theme-active.css"])) .site-header .nav-links{gap:16px!important}html:not(:has(link[href*="theme-active.css"])) .site-header .nav-actions .btn-book-header{font-size:0!important;padding:11px 18px!important}html:not(:has(link[href*="theme-active.css"])) .site-header .nav-actions .btn-book-header::after{content:"Book";font-size:.8rem;letter-spacing:.06em}}
