/* ==========================================================================
   Liv Retreats theme (Oct 2026): forest green, warm orange calls to action,
   rounded cards, pill buttons and roomy sections. Loaded after the old
   stylesheets so it wins; new components use the lt- prefix.
   ========================================================================== */
:root {
  --lt-green-900: #05382f;
  --lt-green: #0b4d40;
  --lt-green-600: #006354;
  --lt-green-100: #e7f1ed;
  --lt-accent: #e85d2a;
  --lt-accent-dark: #c4461a;
  --lt-yellow: #f6d65a;
  --lt-sand: #f7f4ee;
  --lt-ink: #262b29;
  --lt-muted: #66716d;
  --lt-line: #e2e8e5;
  --lt-radius: 14px;
  --lt-radius-sm: 10px;
  --lt-shadow: 0 6px 24px rgba(5, 56, 47, 0.08);
  --lt-shadow-lg: 0 14px 40px rgba(5, 56, 47, 0.14);
  --lt-font: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --lt-display: 'Zilla Slab', Georgia, serif;
}

/* ---------- Base ---------- */
body { font-family: var(--lt-font); color: var(--lt-ink); background: #fff; font-size: 16px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--lt-font); color: var(--lt-ink); font-weight: 600; letter-spacing: -0.01em; }
p, li { font-family: var(--lt-font); }
a { color: var(--lt-green-600); }
a:hover { color: var(--lt-accent-dark); }
::selection { background: var(--lt-yellow); color: var(--lt-ink); }

.section-title { margin-bottom: 36px; }
.section-title h2 { font-family: var(--lt-display); font-weight: 700; font-size: clamp(28px, 3.4vw, 40px); color: var(--lt-green-900); text-transform: none; line-height: 1.15; }
.section-title h2 span { color: var(--lt-accent); }
.section-title p { color: var(--lt-muted); font-size: 17px; }
.section-title:before, .section-title:after { display: none; }

/* ---------- Buttons ---------- */
.btn-orange, a.btn-orange, button.btn-orange, input.btn-orange,
.lt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--lt-accent) !important; border: 2px solid var(--lt-accent) !important; color: #fff !important;
  border-radius: 999px !important; padding: 12px 26px; font-weight: 600; font-size: 15px; letter-spacing: 0.01em;
  text-transform: none; text-decoration: none; transition: background .2s, border-color .2s, transform .2s; line-height: 1.2;
}
.btn-orange:hover, .lt-btn:hover { background: var(--lt-accent-dark) !important; border-color: var(--lt-accent-dark) !important; color: #fff !important; transform: translateY(-1px); }
.btn-orange:before, .btn-orange:after { display: none !important; }
.lt-btn--green { background: var(--lt-green-600) !important; border-color: var(--lt-green-600) !important; }
.lt-btn--green:hover { background: var(--lt-green-900) !important; border-color: var(--lt-green-900) !important; }
.lt-btn--ghost { background: transparent !important; color: var(--lt-green-600) !important; border-color: var(--lt-green-600) !important; }
.lt-btn--ghost:hover { background: var(--lt-green-600) !important; color: #fff !important; }
.lt-btn--light { background: #fff !important; border-color: #fff !important; color: var(--lt-green-900) !important; }
.lt-btn--light:hover { background: var(--lt-yellow) !important; border-color: var(--lt-yellow) !important; color: var(--lt-ink) !important; }

/* ---------- Offer strip ---------- */
.lt-offer { background: var(--lt-green-900); color: #fff; font-size: 14px; }
.lt-offer .container { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; padding-top: 6px; padding-bottom: 6px; }
.lt-offer-msg { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lt-offer-msg strong { color: var(--lt-yellow); }
.lt-offer-code { background: var(--lt-yellow); color: var(--lt-ink); border-radius: 6px; padding: 1px 8px; font-weight: 700; letter-spacing: 0.05em; user-select: all; }
.lt-offer a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.lt-offer-contact { display: flex; gap: 18px; white-space: nowrap; }
.lt-offer-contact a { text-decoration: none; opacity: .9; }
.lt-offer-contact a:hover { opacity: 1; color: var(--lt-yellow); }
@media (max-width: 767px) { .lt-offer-contact { display: none; } .lt-offer .container { justify-content: center; text-align: center; } }

/* ---------- Header + mega menu ---------- */
.lt-header { position: sticky; top: 0; z-index: 1030; background: #fff; box-shadow: 0 1px 0 var(--lt-line); }
.lt-header.is-scrolled { box-shadow: 0 4px 20px rgba(5, 56, 47, 0.10); }
.lt-bar { display: flex; align-items: center; gap: 20px; min-height: 76px; }
.lt-logo img { height: 52px; width: auto; display: block; }
.lt-menu { display: flex; align-items: center; gap: 2px; margin: 0 0 0 12px; padding: 0; list-style: none; flex: 1; }
.lt-menu > li { position: static; margin: 0; }
.lt-menu > li > a, .lt-menu > li > button {
  display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; border: 0; background: none; border-radius: 999px;
  font-family: var(--lt-font); font-weight: 500; font-size: 16px; color: var(--lt-ink); text-decoration: none; cursor: pointer;
}
.lt-menu > li > a:hover, .lt-menu > li > button:hover, .lt-menu > li.is-open > button, .lt-menu > li > a[aria-current="page"] { background: var(--lt-green-100); color: var(--lt-green-900); }
.lt-menu > li > button i { font-size: 12px; transition: transform .2s; }
.lt-menu > li.is-open > button i { transform: rotate(180deg); }
.lt-mega {
  position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid var(--lt-line);
  box-shadow: var(--lt-shadow-lg); padding: 28px 0 32px; opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s, transform .18s, visibility .18s; z-index: 1040;
}
.lt-menu > li.is-open .lt-mega { opacity: 1; visibility: visible; transform: none; }
.lt-mega-grid { display: grid; grid-template-columns: repeat(3, 1fr) 1.2fr; gap: 28px; }
.lt-mega h6 { font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: var(--lt-muted); margin: 0 0 12px; font-weight: 600; }
.lt-mega ul { list-style: none; margin: 0; padding: 0; }
.lt-mega li { margin: 0; }
.lt-mega li a { display: flex; align-items: center; gap: 10px; padding: 7px 0; color: var(--lt-ink); text-decoration: none; font-size: 15px; }
.lt-mega li a i { width: 20px; color: var(--lt-green-600); text-align: center; }
.lt-mega li a small { display: block; color: var(--lt-muted); font-size: 13px; }
.lt-mega li a:hover { color: var(--lt-accent-dark); }
.lt-mega-promo { background: var(--lt-green-900); color: #fff; border-radius: var(--lt-radius); padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.lt-mega-promo h5 { color: #fff; font-family: var(--lt-display); font-size: 24px; margin: 0; }
.lt-mega-promo p { color: rgba(255,255,255,.85); margin: 0 0 6px; font-size: 15px; }
.lt-bar-cta { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.lt-bar-cta .lt-phone { color: var(--lt-green-900); font-weight: 600; text-decoration: none; white-space: nowrap; }
.lt-bar-cta .lt-btn { padding: 11px 22px; }
.lt-burger { display: none; margin-left: auto; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--lt-line); background: #fff; color: var(--lt-green-900); font-size: 18px; }
@media (max-width: 1199px) { .lt-bar-cta .lt-phone { display: none; } .lt-menu > li > a, .lt-menu > li > button { padding: 10px 10px; font-size: 15px; } }
@media (max-width: 991px) {
  .lt-menu, .lt-bar-cta { display: none; }
  .lt-burger { display: inline-flex; align-items: center; justify-content: center; }
  .lt-bar { min-height: 64px; }
  .lt-logo img { height: 44px; }
}

/* Mobile drawer */
.lt-drawer { position: fixed; inset: 0; z-index: 2000; visibility: hidden; }
.lt-drawer.is-open { visibility: visible; }
.lt-drawer-bg { position: absolute; inset: 0; background: rgba(5, 56, 47, .45); opacity: 0; transition: opacity .25s; }
.lt-drawer.is-open .lt-drawer-bg { opacity: 1; }
.lt-drawer-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 88vw); background: #fff; overflow-y: auto; transform: translateX(100%); transition: transform .28s ease; display: flex; flex-direction: column; }
.lt-drawer.is-open .lt-drawer-panel { transform: none; }
.lt-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--lt-line); }
.lt-drawer-head img { height: 40px; }
.lt-drawer-close { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--lt-line); background: #fff; font-size: 18px; }
.lt-drawer details { border-bottom: 1px solid var(--lt-line); }
.lt-drawer summary { list-style: none; cursor: pointer; padding: 16px 20px; font-weight: 600; font-size: 17px; display: flex; justify-content: space-between; align-items: center; }
.lt-drawer summary::-webkit-details-marker { display: none; }
.lt-drawer summary:after { content: '+'; font-size: 22px; color: var(--lt-green-600); font-weight: 400; }
.lt-drawer details[open] summary:after { content: '–'; }
.lt-drawer details ul { list-style: none; margin: 0; padding: 0 20px 12px; }
.lt-drawer details li { margin: 0; }
.lt-drawer details li a { display: flex; align-items: center; gap: 10px; padding: 9px 0; color: var(--lt-ink); text-decoration: none; }
.lt-drawer details li a i { width: 20px; color: var(--lt-green-600); text-align: center; }
.lt-drawer-link { display: block; padding: 16px 20px; font-weight: 600; font-size: 17px; color: var(--lt-ink); text-decoration: none; border-bottom: 1px solid var(--lt-line); }
.lt-drawer-foot { margin-top: auto; padding: 20px; display: grid; gap: 10px; background: var(--lt-sand); }
.lt-drawer-foot a.lt-phone-big { text-align: center; color: var(--lt-green-900); font-weight: 600; text-decoration: none; }
body.lt-no-scroll { overflow: hidden; }

/* ---------- Page header band (breadcrumb-outer on inner pages) ---------- */
section.breadcrumb-outer { background: var(--lt-green-900) !important; padding: 64px 0 56px !important; border-radius: 0 0 28px 28px; margin-bottom: 8px; }
section.breadcrumb-outer:before { background: radial-gradient(circle at 85% 20%, rgba(246,214,90,.14), transparent 45%), linear-gradient(135deg, rgba(0,99,84,.35), rgba(5,56,47,0)) !important; opacity: 1 !important; }
.breadcrumb-content h1, .breadcrumb-content h2 { font-family: var(--lt-display) !important; text-transform: none !important; font-size: clamp(30px, 4vw, 48px) !important; font-weight: 700; color: #fff !important; }
.breadcrumb-content .breadcrumb { background: none; }
.breadcrumb-content .breadcrumb li, .breadcrumb-content .breadcrumb li a { color: rgba(255,255,255,.85) !important; font-size: 14px; }

/* ---------- Cards ---------- */
.card { border-radius: var(--lt-radius) !important; overflow: hidden; border: 1px solid var(--lt-line) !important; box-shadow: var(--lt-shadow) !important; transition: transform .2s, box-shadow .2s; }
.card:hover { transform: translateY(-3px); box-shadow: var(--lt-shadow-lg) !important; }
.card .card-img-top { border-radius: 0 !important; }
.card-title { font-weight: 600; font-size: 20px; }

/* ---------- Home hero ---------- */
.hero-bg { border-radius: 0 0 32px 32px; }
.hero-bg h1.lt-hero-title { font-family: var(--lt-display) !important; font-weight: 700 !important; font-size: clamp(34px, 5.2vw, 64px) !important; line-height: 1.05 !important; letter-spacing: -0.01em !important; text-transform: none !important; opacity: 1 !important; color: #fff !important; margin: 18px 0 10px !important; }
.lt-hero-sub { color: rgba(255,255,255,.9); font-size: clamp(16px, 1.6vw, 19px); margin: 0 auto 28px; max-width: 640px; }
.hero-bg .search-bar-container { border-radius: 999px !important; padding: 8px 8px 8px 14px !important; box-shadow: var(--lt-shadow-lg) !important; }
.hero-bg .search-btn { background: var(--lt-accent) !important; border-radius: 999px !important; padding: 14px 32px !important; font-size: 16px; }
.hero-bg .search-btn:hover { background: var(--lt-accent-dark) !important; }
.hero-bg .search-input-group i { color: var(--lt-green-600) !important; }
@media (max-width: 991px) { .hero-bg .search-bar-container { border-radius: 22px !important; padding: 14px !important; } }
.lt-usps { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin-top: 22px; color: #fff; font-size: 15px; }
.lt-usps span { display: inline-flex; align-items: center; gap: 8px; }
.lt-usps i { color: var(--lt-yellow); }

/* ---------- Sections ---------- */
.lt-section { padding: 72px 0; }
section.lt-section--sand, section.lt-section--sand:nth-child(odd) { background: var(--lt-sand); }
section.lt-section, section.lt-section:nth-child(odd) { background-color: #fff; }
section.lt-section.lt-section--sand { background-color: var(--lt-sand); }
section.lt-section.lt-section--green { background: var(--lt-green-900); color: #fff; }
.lt-section--green .section-title h2 { color: #fff; }
.lt-section--green .section-title p { color: rgba(255,255,255,.8); }
@media (max-width: 767px) { .lt-section { padding: 52px 0; } }

/* ---------- Upcoming breaks ---------- */
.ub-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 1199px) { .ub-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .ub-grid { grid-template-columns: 1fr; } }
.ub-card { background: #fff; border-radius: var(--lt-radius); box-shadow: var(--lt-shadow); padding: 22px; display: flex; flex-direction: column; gap: 14px; border: 1px solid var(--lt-line); }
.ub-card-head h3 { font-family: var(--lt-display); font-size: 24px; margin: 6px 0 2px; color: var(--lt-green-900); }
.ub-kind { display: inline-block; background: var(--lt-yellow); color: var(--lt-ink); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; padding: 3px 10px; border-radius: 999px; }
.ub-nights { color: var(--lt-muted); font-size: 14px; }
.ub-parks { list-style: none; margin: 0; padding: 0; flex: 1; }
.ub-parks li { margin: 0 !important; border-top: 1px solid var(--lt-line); }
.ub-parks li a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 0; color: var(--lt-ink); text-decoration: none; }
.ub-parks li a:hover .ub-park { color: var(--lt-accent-dark); }
.ub-park { font-weight: 600; line-height: 1.25; }
.ub-park small { display: block; font-weight: 400; color: var(--lt-muted); font-size: 13px; }
.ub-price { font-weight: 700; color: var(--lt-green-600); white-space: nowrap; font-size: 18px; }
.ub-price small { font-weight: 400; color: var(--lt-muted); font-size: 12px; }
.ub-note { text-align: center; color: var(--lt-muted); font-size: 14px; margin: 22px 0 0; }
.ub-empty { text-align: center; color: var(--lt-muted); }
.ub-skeleton { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ub-skeleton div { height: 330px; border-radius: var(--lt-radius); background: linear-gradient(90deg, #eef2f0 25%, #f7f9f8 50%, #eef2f0 75%); background-size: 200% 100%; animation: lt-shimmer 1.4s infinite; }
@media (max-width: 1199px) { .ub-skeleton { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .ub-skeleton { grid-template-columns: 1fr; } .ub-skeleton div:nth-child(n+2) { display: none; } }
@keyframes lt-shimmer { to { background-position: -200% 0; } }

/* Last minute page */
.late-window { background: #fff; border-radius: var(--lt-radius); box-shadow: var(--lt-shadow); border: 1px solid var(--lt-line); padding: 24px; margin-bottom: 22px; }
.late-window-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 14px; }
.late-window-head h2 { font-family: var(--lt-display); font-size: 28px; margin: 6px 0 2px; color: var(--lt-green-900); }
.late-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 28px; }
@media (max-width: 767px) { .late-list { grid-template-columns: 1fr; } .late-window-head { flex-direction: column; align-items: flex-start; } }
.late-item { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 12px 0; border-top: 1px solid var(--lt-line); color: var(--lt-ink); text-decoration: none; }
.late-item:hover .late-name { color: var(--lt-accent-dark); }
.late-name { font-weight: 600; }
.late-meta { grid-column: 1; color: var(--lt-muted); font-size: 14px; }
.late-price { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-weight: 700; font-size: 19px; color: var(--lt-green-600); text-align: right; }
.late-price small { display: block; font-size: 12px; font-weight: 400; color: var(--lt-muted); }

/* ---------- Holiday types strip ---------- */
.lt-types { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
@media (max-width: 991px) { .lt-types { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px) { .lt-types { grid-template-columns: repeat(2, 1fr); } }
.lt-type { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 22px; border-radius: var(--lt-radius); background: #fff; border: 1px solid var(--lt-line); color: var(--lt-ink); text-decoration: none; transition: border-color .2s, transform .2s, box-shadow .2s; }
.lt-type i { font-size: 26px; color: var(--lt-green-600); }
.lt-type strong { font-size: 17px; }
.lt-type span { color: var(--lt-muted); font-size: 14px; }
.lt-type:hover { border-color: var(--lt-green-600); transform: translateY(-2px); box-shadow: var(--lt-shadow); color: var(--lt-ink); }

/* ---------- Need help ---------- */
section.lt-help, section.lt-help:nth-child(odd) { background: var(--lt-sand); padding: 56px 0; }
.lt-help-inner { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 22px; align-items: center; }
.lt-help h2 { font-family: var(--lt-display); font-size: 34px; color: var(--lt-green-900); margin: 0 0 6px; }
.lt-help p { color: var(--lt-muted); margin: 0; }
.lt-help-item { display: flex; gap: 14px; align-items: center; background: #fff; border-radius: var(--lt-radius); padding: 18px; border: 1px solid var(--lt-line); color: var(--lt-ink); text-decoration: none; height: 100%; }
.lt-help-item i { font-size: 22px; color: #fff; background: var(--lt-green-600); width: 46px; height: 46px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 46px; }
.lt-help-item strong { display: block; }
.lt-help-item small { color: var(--lt-muted); }
a.lt-help-item:hover { border-color: var(--lt-green-600); color: var(--lt-ink); }
@media (max-width: 991px) { .lt-help-inner { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.lt-footer { background: var(--lt-green-900); color: rgba(255,255,255,.85); padding: 64px 0 0; }
.lt-footer h4 { color: #fff; font-size: 15px; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 16px; font-weight: 600; }
.lt-footer ul { list-style: none; margin: 0; padding: 0; }
.lt-footer li { margin: 0; line-height: 1.5; padding: 4px 0; }
.lt-footer a { color: rgba(255,255,255,.85); text-decoration: none; font-size: 15px; }
.lt-footer a:hover { color: var(--lt-yellow); }
.lt-footer p { color: rgba(255,255,255,.75); font-size: 15px; }
.lt-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr; gap: 32px; }
@media (max-width: 1199px) { .lt-footer-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) { .lt-footer-grid { grid-template-columns: 1fr 1fr; } .lt-footer-brand { grid-column: 1 / -1; } }
.lt-footer-brand img { height: 64px; margin-bottom: 14px; }
.lt-footer-social { display: flex; gap: 10px; margin-top: 14px; }
.lt-footer-social a { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); display: inline-flex; align-items: center; justify-content: center; }
.lt-footer-social a:hover { background: var(--lt-yellow); color: var(--lt-ink); border-color: var(--lt-yellow); }
.lt-footer-partner { background: rgba(255,255,255,.07); border-radius: var(--lt-radius); padding: 18px; }
.lt-footer-partner p { margin: 0 0 12px; font-size: 14px; }
.lt-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 48px; padding: 20px 0; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: 14px; }
.lt-footer-bottom ul { display: flex; gap: 18px; flex-wrap: wrap; }
.lt-footer-bottom a, .lt-footer-bottom span { font-size: 14px; color: rgba(255,255,255,.7); }

/* ---------- Search page ---------- */
section.room-list, section.room-list:nth-child(odd) { background: var(--lt-sand); padding-top: 28px; }
.room-list .list-results, .room-list .list-sidebar-item { border-radius: var(--lt-radius); }
.room-list .list-results { background: transparent !important; box-shadow: none; }
.room-list .list-results-sort { background: #fff; border-radius: var(--lt-radius); padding: 16px 18px !important; box-shadow: var(--lt-shadow); margin-bottom: 18px; border: 1px solid var(--lt-line); }
.room-grid { background: #fff; border-radius: var(--lt-radius) !important; overflow: hidden; box-shadow: var(--lt-shadow) !important; border: 1px solid var(--lt-line); margin-bottom: 22px !important; transition: box-shadow .2s, transform .2s; }
.room-grid:hover { box-shadow: var(--lt-shadow-lg) !important; transform: translateY(-2px); }
.room-grid .grid-image img { border-radius: 0 !important; }
.room-grid h3, .room-grid h3 a, .room-grid h4, .room-grid h4 a { font-weight: 600; color: var(--lt-green-900) !important; }
.room-grid .room-services i { color: var(--lt-green-600); }
.room-list .sidebar .list-sidebar-item { background: #fff; border: 1px solid var(--lt-line); box-shadow: var(--lt-shadow); padding: 22px !important; margin-bottom: 18px; }
.room-list .sidebar h4 { font-size: 18px; font-weight: 600; }
.room-list .sidebar .form-check-input:checked { background-color: var(--lt-green-600); border-color: var(--lt-green-600); }
.search-filter-bar { border-radius: var(--lt-radius) !important; border: 1px solid var(--lt-line); }
.search-filter-bar .sfb-submit { background: var(--lt-accent) !important; border-color: var(--lt-accent) !important; border-radius: 999px !important; }
.search-filter-bar .sfb-submit:hover { background: var(--lt-accent-dark) !important; border-color: var(--lt-accent-dark) !important; }
.search-filter-bar .sfb-field .form-select, .search-filter-bar .sfb-field .form-control { border-radius: 999px !important; }
.filter-chip.is-on { background: var(--lt-green-900) !important; border-color: var(--lt-green-900) !important; }
.room-list .pagination .page-link { border-radius: 999px !important; margin: 0 3px; border: 1px solid var(--lt-line); color: var(--lt-green-900); }
.room-list .pagination .page-item.active .page-link { background: var(--lt-green-600); border-color: var(--lt-green-600); color: #fff; }
.lt-landing-intro { background: #fff; border-radius: var(--lt-radius); border: 1px solid var(--lt-line); box-shadow: var(--lt-shadow); padding: 18px 22px; margin-bottom: 18px; display: flex; gap: 16px; align-items: center; }
.lt-landing-intro i { font-size: 26px; color: #fff; background: var(--lt-green-600); width: 54px; height: 54px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 54px; }
.lt-landing-intro p { margin: 0; color: var(--lt-muted); }

/* Back to top */
#back-to-top a { border-radius: 50% !important; background: var(--lt-green-600) !important; }

/* ---------- Search results: lodge cards (Oct 2026) ---------- */
.lc-head { display: grid; gap: 14px; }
.lc-head-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; }
.lc-title { font-family: var(--lt-display); font-size: clamp(24px, 3vw, 30px); color: var(--lt-green-900); margin: 0; }
.lc-title span { font-family: var(--lt-font); font-size: 16px; font-weight: 500; color: var(--lt-muted); margin-left: 6px; }
.lc-summary { margin: 0; color: var(--lt-muted); font-size: 15px; }
.lc-tools { display: none; grid-template-columns: 1fr 1fr; gap: 12px; }
.lc-tool { position: relative; display: flex; align-items: center; justify-content: space-between; height: 52px; padding: 0 16px; border: 1.5px solid #c9d3cf; border-radius: 10px; background: #fff; color: var(--lt-ink); font-size: 16px; font-weight: 500; margin: 0; cursor: pointer; }
.lc-tool i { font-size: 18px; }
.lc-sort select { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0 44px 0 16px; border: 0; background: transparent; appearance: none; -webkit-appearance: none; font: inherit; color: inherit; cursor: pointer; }
.lc-sort i { position: absolute; right: 16px; pointer-events: none; }
.lc-filter-btn b { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; margin-left: 6px; border-radius: 999px; background: var(--lt-green-600); color: #fff; font-size: 12px; }
@media (max-width: 991px) { .lc-tools { display: grid; } .lc-head .filter-chips { display: none; } }
@media (min-width: 992px) { .lc-head-top { order: 0; } }

.lc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 767px) { .lc-grid { grid-template-columns: 1fr; gap: 18px; } }
.lc-grid > :not(.lc) { grid-column: 1 / -1; }
.room-grid.lc { display: flex; flex-direction: column; margin: 0 !important; padding: 0; }
.room-grid.lc:hover { transform: none; }
.lc-media { position: relative; aspect-ratio: 16 / 11; background: #e9eeec; }
.lc-track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.lc-track::-webkit-scrollbar { display: none; }
.lc-slide { flex: 0 0 100%; height: 100%; scroll-snap-align: start; display: block; }
.lc-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lc-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--lt-ink); display: inline-flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .2s; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.lc-prev { left: 10px; } .lc-next { right: 10px; }
.lc-media:hover .lc-nav, .lc-nav:focus-visible { opacity: 1; }
@media (hover: none) { .lc-nav { display: none; } }
.lc-dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.lc-dots span { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.55); transition: background .2s, transform .2s; }
.lc-dots span.on { background: #fff; transform: scale(1.2); }
.lc-expand { position: absolute; right: 12px; bottom: 12px; width: 40px; height: 40px; border-radius: 8px; background: rgba(38,43,41,.45); color: #fff !important; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; }
.lc-expand:hover { background: rgba(38,43,41,.7); }
.lc-body { padding: 20px 22px 16px; flex: 1; }
.lc-name { font-size: 20px; margin: 0 0 6px; line-height: 1.3; }
.lc-name a { color: var(--lt-ink) !important; text-decoration: none; }
.lc-name a:hover { color: var(--lt-accent-dark) !important; }
.lc-park { color: var(--lt-muted); margin: 0 0 14px; font-size: 15px; }
.lc-feats { display: flex; flex-wrap: wrap; gap: 10px 20px; list-style: none; margin: 0; padding: 0; }
.lc-feats li { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; font-size: 15px; color: var(--lt-ink); }
.lc-feats i { font-size: 19px; color: var(--lt-ink); width: 22px; text-align: center; }
.lc-links { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--lt-line); border-bottom: 1px solid var(--lt-line); }
.lc-links a { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 10px; font-weight: 600; color: var(--lt-ink) !important; text-decoration: underline; text-underline-offset: 3px; }
.lc-links a + a { border-left: 1px solid var(--lt-line); }
.lc-links a:hover { color: var(--lt-accent-dark) !important; }
.lc-book { padding: 16px 22px 22px; }
.lc-price-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 10px; }
.lc-dates { color: var(--lt-muted); font-size: 15px; line-height: 1.3; }
.lc-dates small { display: block; font-size: 13px; }
.lc-price { text-align: right; line-height: 1.15; }
.lc-price strong { font-size: 26px; color: var(--lt-ink); font-weight: 700; }
.lc-price s { color: var(--lt-muted); font-size: 15px; margin-right: 4px; }
.lc-price small { display: block; color: var(--lt-muted); font-size: 13px; }
.lc-price .lc-save { color: var(--lt-green-600); font-weight: 600; }
.lc-book .stay-lengths { margin: 0 0 12px; }
.lc-cta { width: 100%; border-radius: 10px !important; padding: 15px 20px; font-size: 17px; }

/* Mobile filter sheet */
.lc-sheet { position: fixed; inset: 0; z-index: 2000; visibility: hidden; }
.lc-sheet.is-open { visibility: visible; }
.lc-sheet-bg { position: absolute; inset: 0; background: rgba(5,56,47,.45); opacity: 0; transition: opacity .25s; }
.lc-sheet.is-open .lc-sheet-bg { opacity: 1; }
.lc-sheet-panel { position: absolute; left: 0; right: 0; bottom: 0; max-height: 85vh; overflow-y: auto; background: #fff; border-radius: 20px 20px 0 0; transform: translateY(100%); transition: transform .28s ease; }
.lc-sheet.is-open .lc-sheet-panel { transform: none; }
.lc-sheet-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--lt-line); }
.lc-sheet-head h3 { margin: 0; font-size: 20px; }
.lc-sheet-list { list-style: none; margin: 0; padding: 6px 20px; }
.lc-sheet-list li { margin: 0 !important; border-bottom: 1px solid var(--lt-line); }
.lc-sheet-list a { display: flex; align-items: center; gap: 12px; padding: 15px 0; color: var(--lt-ink) !important; font-size: 16px; text-decoration: none; }
.lc-sheet-list a i { width: 24px; font-size: 19px; color: var(--lt-green-600); text-align: center; }
.lc-check { margin-left: auto; width: 24px; height: 24px; border-radius: 6px; border: 1.5px solid #b9c5c0; }
.lc-sheet-list a.is-on .lc-check { background: var(--lt-green-600) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/16px no-repeat; border-color: var(--lt-green-600); }
.lc-sheet-foot { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px 20px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--lt-line); position: sticky; bottom: 0; background: #fff; }

/* ---------- Park pages (Oct 2026) ---------- */
.park-hero { border-radius: 0 0 32px 32px; overflow: hidden; }
.park-hero__content { max-width: 860px; }
.pk-crumbs { font-size: 14px; color: rgba(255,255,255,.85); margin-bottom: 10px; }
.pk-crumbs a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.pk-crumbs span { margin: 0 6px; opacity: .6; }
.park-hero__title { font-family: var(--lt-display) !important; font-weight: 700 !important; font-size: clamp(34px, 5vw, 60px) !important; text-transform: none !important; }
.pk-facts { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 16px 0 22px; padding: 0; }
.pk-facts li { display: inline-flex; align-items: center; gap: 7px; margin: 0 !important; padding: 7px 14px; border-radius: 999px; background: rgba(5,56,47,.55); backdrop-filter: blur(4px); color: #fff; font-size: 14px; }
.pk-facts i { color: var(--lt-yellow); }
.pk-search { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 8px; background: #fff; padding: 8px; border-radius: 999px; box-shadow: var(--lt-shadow-lg); max-width: 720px; }
.pk-field { position: relative; margin: 0; }
.pk-field i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--lt-green-600); pointer-events: none; z-index: 1; }
.pk-field input, .pk-field select { width: 100%; height: 50px; border: 0; border-radius: 999px; padding: 0 16px 0 44px; font-size: 16px; background: var(--lt-sand); color: var(--lt-ink); cursor: pointer; }
.pk-search .lt-btn { height: 50px; padding: 0 28px; }
@media (max-width: 767px) { .pk-search { grid-template-columns: 1fr; border-radius: 20px; padding: 12px; } .pk-search .lt-btn { width: 100%; } }

.pk-subnav { position: sticky; top: 76px; z-index: 1020; background: #fff; border-bottom: 1px solid var(--lt-line); }
@media (max-width: 991px) { .pk-subnav { top: 64px; } }
.pk-subnav .container { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding-top: 8px; padding-bottom: 8px; }
.pk-subnav .container::-webkit-scrollbar { display: none; }
.pk-subnav a { flex: 0 0 auto; padding: 8px 14px; border-radius: 999px; color: var(--lt-ink); font-weight: 500; text-decoration: none; white-space: nowrap; }
.pk-subnav a:hover { background: var(--lt-green-100); color: var(--lt-green-900); }
.pk-lodges, #breaks, .details .tab-pane, #getting-here { scroll-margin-top: 140px; }

.pk-section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 22px; }
.pk-section-head h2 { font-family: var(--lt-display); font-size: clamp(26px, 3vw, 36px); color: var(--lt-green-900); margin: 0; }
.pk-filters button.filter-chip { cursor: pointer; font-family: inherit; }
.pk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 991px) { .pk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .pk-grid { grid-template-columns: 1fr; } }
.pk-card .lc-media { aspect-ratio: 4 / 3; overflow: hidden; }
.pk-book { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--lt-line); padding-top: 16px; }
.pk-book .lc-price { text-align: left; }
.pk-book .lc-price strong { font-size: 22px; }
.pk-book .lc-price small { display: inline; }
.pk-book .lc-price small:last-child { display: block; }
.pk-book .lt-btn { padding: 11px 20px; }
.pk-empty { text-align: center; color: var(--lt-muted); margin-top: 18px; }

.pk-breaks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 991px) { .pk-breaks { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .pk-breaks { grid-template-columns: 1fr; } }
.pk-break { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 20px; border-radius: var(--lt-radius); border: 1px solid var(--lt-line); background: #fff; box-shadow: var(--lt-shadow); color: var(--lt-ink); text-decoration: none; transition: transform .2s, border-color .2s; }
.pk-break strong { font-family: var(--lt-display); font-size: 22px; color: var(--lt-green-900); }
.pk-break-meta { color: var(--lt-muted); font-size: 14px; }
.pk-break .ub-price { margin-top: auto; }
.pk-break:hover { border-color: var(--lt-green-600); transform: translateY(-2px); color: var(--lt-ink); }

/* Park details: every tab shown as its own section so FAQs, events and the site map are not hidden */
.details #pills-tab { display: none; }
.details .tab-content > .tab-pane { display: block !important; opacity: 1 !important; margin-bottom: 34px; }
.details .detail-box h4 { font-family: var(--lt-display); font-size: 28px; color: var(--lt-green-900); }
.details .sidebar-card { border-radius: var(--lt-radius); border: 1px solid var(--lt-line); box-shadow: var(--lt-shadow); }

/* ===== Lodge page (/prop/...) ===== */
section.lp-top, section.lp-top:nth-child(odd) { background: #fff; padding: 22px 0 18px; }
.lp-crumbs { font-size: 14px; color: var(--lt-muted); margin-bottom: 10px; }
.lp-crumbs a { color: var(--lt-green-600); text-decoration: underline; text-underline-offset: 3px; }
.lp-crumbs span[aria-hidden] { margin: 0 6px; opacity: .6; }
.lp-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.lp-head h1 { font-family: var(--lt-display); font-weight: 700; font-size: clamp(30px, 4vw, 46px); color: var(--lt-green-900); margin: 0 0 6px; line-height: 1.1; }
.lp-where { margin: 0; font-size: 17px; color: var(--lt-muted); }
.lp-where i { color: var(--lt-green-600); margin-right: 6px; }
.lp-where a { color: var(--lt-ink); font-weight: 600; }
.lp-head-price { display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--lt-ink); flex: 0 0 auto; }
.lp-head-price > span:first-child { text-align: right; line-height: 1.15; }
.lp-head-price small { display: block; color: var(--lt-muted); font-size: 13px; }
.lp-head-price strong { font-size: 28px; font-weight: 700; color: var(--lt-ink); }
.lp-head-price .lt-btn { padding: 13px 26px; }
@media (max-width: 991px) { .lp-head-price { display: none; } }
.lp-keys { display: flex; flex-wrap: wrap; gap: 10px 22px; list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--lt-line); }
.lp-keys li { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; font-size: 16px; color: var(--lt-ink); }
.lp-keys i { font-size: 20px; color: var(--lt-green-600); width: 24px; text-align: center; }

section.lp-details, section.lp-details:nth-child(odd) { background: #fff; padding: 0 0 40px !important; }
.lp-details .photo-grid { margin-bottom: 0; }
.lp-mgal { position: relative; }
.lp-mtrack { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.lp-mtrack::-webkit-scrollbar { display: none; }
.lp-mtrack a { flex: 0 0 100%; scroll-snap-align: start; display: block; }
.lp-mtrack img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.lp-mcount { position: absolute; left: 14px; bottom: 14px; background: rgba(0,0,0,.6); color: #fff; font-size: 13px; padding: 5px 10px; border-radius: 999px; font-variant-numeric: tabular-nums; }

.lp-subnav { margin: 22px 0 0; }
.lp-body { padding-top: 30px; }
.lp-block { padding: 0 0 30px; margin: 0 0 30px; border-bottom: 1px solid var(--lt-line); scroll-margin-top: 140px; }
.lp-block:last-child { border-bottom: 0; }
.lp-block h2 { font-family: var(--lt-display); font-weight: 700; font-size: clamp(24px, 2.6vw, 30px); color: var(--lt-green-900); margin: 0 0 16px; }
.lp-clamp { max-height: 15em; overflow: hidden; position: relative; font-size: 17px; line-height: 1.65; }
.lp-clamp:not(.is-open)::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4em; background: linear-gradient(rgba(255,255,255,0), #fff); }
.lp-clamp.is-open { max-height: none; }
.lp-more { background: none; border: 0; padding: 8px 0 0; color: var(--lt-green-600); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.lp-incl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 767px) { .lp-incl { grid-template-columns: 1fr; gap: 18px; } }
.lp-incl h3 { font-size: 15px; text-transform: uppercase; letter-spacing: .06em; color: var(--lt-muted); margin: 0 0 10px; }
.lp-incl ul { list-style: none; margin: 0; padding: 0; }
.lp-incl li { display: flex; align-items: center; gap: 10px; margin: 0 0 10px !important; font-size: 16px; }
.lp-incl i { font-size: 19px; color: var(--lt-green-600); width: 24px; text-align: center; }
.lp-rooms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 575px) { .lp-rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lp-room-link { display: block; position: relative; border-radius: var(--lt-radius-sm); overflow: hidden; aspect-ratio: 4 / 3; background: #e9eeec; }
.lp-room-link img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.lp-room-link:hover img { transform: scale(1.04); }
.lp-room-label { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 10px; background: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,.65)); color: #fff; font-weight: 600; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lp-room-label small { font-weight: 400; opacity: .85; margin-left: auto; }
.lp-tour { display: flex; align-items: center; gap: 18px; background: var(--lt-green-100); border-radius: var(--lt-radius); padding: 20px 22px; border: 0; }
.lp-tour > i { font-size: 34px; color: var(--lt-green-600); }
.lp-tour h2 { font-size: 22px; margin: 0 0 2px; }
.lp-tour p { margin: 0; color: var(--lt-muted); }
.lp-tour .lt-btn { margin-left: auto; white-space: nowrap; }
@media (max-width: 575px) { .lp-tour { flex-wrap: wrap; } .lp-tour .lt-btn { margin-left: 0; width: 100%; } }

.lp-book { background: #fff !important; border: 1px solid var(--lt-line); border-radius: var(--lt-radius); box-shadow: var(--lt-shadow-lg); padding: 22px !important; scroll-margin-top: 140px; }
.lp-book-head h2 { font-size: 22px; margin: 0 0 8px; color: var(--lt-green-900); }
.lp-book-head .stay-summary { margin: 0 0 6px; font-size: 15px; color: var(--lt-ink); }
.lp-book-price { margin: 0 0 12px; line-height: 1.2; }
.lp-book-price strong { font-size: 28px; color: var(--lt-ink); }
.lp-book-price s { color: var(--lt-muted); }
.lp-book-price small { color: var(--lt-muted); font-size: 14px; }
.lp-promo { background: var(--lt-green-900); color: #fff; border-radius: var(--lt-radius-sm); padding: 12px 14px; margin: 14px 0 0; font-size: 15px; text-align: center; }
.lp-promo div { color: #fff; }
.lp-promo .promo-code { background: var(--lt-yellow); color: var(--lt-ink); padding: 2px 8px; border-radius: 6px; letter-spacing: .05em; }
.lp-promo-ends { font-size: 13px; opacity: .85; margin-top: 4px; }
.lp-promo .liv10-countdown { color: #fff !important; font-weight: 700; font-variant-numeric: tabular-nums; }
.lp-assure { list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--lt-line); font-size: 14px; color: var(--lt-muted); }
.lp-assure li { display: flex; gap: 10px; margin: 0 0 8px !important; }
.lp-assure i { color: var(--lt-green-600); margin-top: 3px; }
.lp-assure a { font-weight: 600; }

.lp-park h2 { font-family: var(--lt-display); font-weight: 700; font-size: clamp(26px, 3vw, 36px); color: var(--lt-green-900); margin: 6px 0 14px; }
.lp-park-text { font-size: 16px; line-height: 1.65; color: var(--lt-ink); }
.lp-address { margin: 14px 0 0; color: var(--lt-muted); }
.lp-address i { color: var(--lt-green-600); margin-right: 8px; }
.lp-park-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.lp-map { border-radius: var(--lt-radius); overflow: hidden; box-shadow: var(--lt-shadow); aspect-ratio: 4 / 3; background: #e9eeec; }
.lp-map iframe { width: 100%; height: 100%; border: 0; display: block; }
section.lp-more-lodges, section.lp-more-lodges:nth-child(odd) { background: #fff; }
#the-park, #more-lodges { scroll-margin-top: 130px; }

/* default.css colours every <span> dark green; on dark backgrounds spans take the light text colour of their container */
.lt-offer span, .lt-mega-promo span, section.breadcrumb-outer span, .lt-section--green span, .lt-footer span,
.lt-btn span, .btn-orange span, .filter-chip.is-on span, .pk-facts span, .park-hero span, .lp-promo span, .lp-room-label span,
.lt-help-item i + span strong { color: inherit; }
.lt-offer-code { color: var(--lt-ink) !important; }
.lp-head-price > span:first-child { color: var(--lt-ink); }
