/* Tourist Lodge Dandeli — Premium Public Website UI
   Public/client-facing presentation only. Booking/admin/business logic is unchanged. */

body.tl-public {
  --tl-forest: #123f34;
  --tl-forest-2: #0b2f27;
  --tl-forest-3: #08241e;
  --tl-sage: #dfe9e3;
  --tl-ivory: #f7f3ea;
  --tl-paper: #fffdf8;
  --tl-brass: #b98d43;
  --tl-brass-2: #d2ad6b;
  --tl-charcoal: #192822;
  --tl-muted: #6b766f;
  --tl-line: rgba(18,63,52,.14);
  --tl-line-light: rgba(255,255,255,.16);
  --tl-shadow: 0 22px 64px rgba(9,40,31,.10);
  --tl-shadow-soft: 0 10px 34px rgba(9,40,31,.075);
  --tl-radius: 24px;
  color: var(--tl-charcoal);
  background: var(--tl-ivory);
}

body.tl-public .wrap { width:min(1240px, calc(100% - 48px)); }
body.tl-public h1,
body.tl-public h2,
body.tl-public h3 { font-family: Georgia, "Times New Roman", serif; color:var(--tl-charcoal); }
body.tl-public a { transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease; }

/* Header */
.tl-topbar {
  color:rgba(255,255,255,.86);
  background:var(--tl-forest-3);
  border-bottom:1px solid rgba(255,255,255,.07);
  font-size:.76rem;
  letter-spacing:.02em;
}
.tl-topbar .wrap { min-height:38px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.tl-topbar-left,.tl-topbar-right { display:flex; align-items:center; gap:18px; }
.tl-topbar a { color:#fff; font-weight:700; }
.tl-topbar-dot { width:4px; height:4px; border-radius:50%; background:var(--tl-brass-2); }

body.tl-public .site-header {
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,253,248,.96);
  border-bottom:1px solid rgba(18,63,52,.09);
  box-shadow:0 8px 30px rgba(8,36,30,.045);
  backdrop-filter:blur(18px);
}
body.tl-public .nav { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:34px; }
body.tl-public .brand { display:flex; align-items:center; min-width:0; color:var(--tl-forest-2); font-family:Georgia,"Times New Roman",serif; font-weight:700; font-size:1.35rem; }
body.tl-public .site-logo { max-width:210px; max-height:62px; width:auto; height:auto; object-fit:contain; }
.tl-nav-shell { display:flex; align-items:center; gap:28px; }
body.tl-public .site-header nav { display:flex; align-items:center; gap:27px; }
body.tl-public .site-header nav > a:not(.btn) { position:relative; padding:29px 0 27px; color:#32453d; font-size:.84rem; font-weight:800; letter-spacing:.025em; }
body.tl-public .site-header nav > a:not(.btn)::after { position:absolute; left:0; right:100%; bottom:20px; height:2px; content:""; background:var(--tl-brass); transition:right .2s ease; }
body.tl-public .site-header nav > a:not(.btn):hover::after,
body.tl-public .site-header nav > a:not(.btn):focus-visible::after { right:0; }
body.tl-public .site-header nav > a:not(.btn):hover { color:var(--tl-forest); }
body.tl-public .nav-book { min-height:44px; padding:11px 18px; border-radius:12px; }
.tl-nav-toggle { display:none; width:46px; height:46px; align-items:center; justify-content:center; border:1px solid var(--tl-line); border-radius:13px; background:#fff; color:var(--tl-forest); }
.tl-nav-toggle-lines,.tl-nav-toggle-lines::before,.tl-nav-toggle-lines::after { width:20px; height:2px; border-radius:10px; background:currentColor; display:block; position:relative; content:""; }
.tl-nav-toggle-lines::before { position:absolute; top:-6px; }
.tl-nav-toggle-lines::after { position:absolute; top:6px; }

/* Buttons */
body.tl-public .btn { min-height:50px; padding:14px 22px; border-radius:12px; background:linear-gradient(135deg,var(--tl-forest),var(--tl-forest-2)); box-shadow:0 12px 26px rgba(18,63,52,.16); font-size:.84rem; font-weight:850; letter-spacing:.025em; }
body.tl-public .btn:hover { box-shadow:0 16px 32px rgba(18,63,52,.22); transform:translateY(-2px); }
body.tl-public .btn.alt { color:#2f2514; background:linear-gradient(135deg,#e2c17f,var(--tl-brass-2)); box-shadow:0 12px 26px rgba(185,141,67,.18); }
.tl-text-link { display:inline-flex; align-items:center; gap:8px; color:var(--tl-forest); font-weight:850; font-size:.86rem; }
.tl-text-link::after { content:"→"; transition:transform .2s ease; }
.tl-text-link:hover::after { transform:translateX(3px); }

/* Hero */
body.tl-public .hero {
  min-height:710px;
  padding:88px 0 104px;
  display:flex;
  align-items:center;
  background:linear-gradient(135deg,var(--tl-forest-3),var(--tl-forest));
}
body.tl-public .hero.has-photo {
  background-image:
    linear-gradient(90deg, rgba(5,28,23,.94) 0%, rgba(5,28,23,.84) 46%, rgba(5,28,23,.48) 100%),
    linear-gradient(180deg, rgba(5,28,23,.05), rgba(5,28,23,.42)),
    var(--hero-image);
  background-position:center;
  background-size:cover;
}
body.tl-public .hero-grid { grid-template-columns:minmax(0,1.05fr) minmax(360px,.65fr); gap:clamp(42px,7vw,92px); }
body.tl-public .hero-copy { max-width:760px; }
.tl-hero-location { display:inline-flex; align-items:center; gap:9px; margin-bottom:13px; color:#f0d49e; font-size:.76rem; font-weight:850; letter-spacing:.18em; text-transform:uppercase; }
.tl-hero-location::before { width:28px; height:1px; background:var(--tl-brass-2); content:""; }
body.tl-public .hero h1 { max-width:760px; margin:7px 0 25px; color:#fff; font-size:clamp(3.25rem,6.2vw,6rem); font-weight:500; line-height:.94; letter-spacing:-.055em; }
body.tl-public .hero-copy > p:not(.tl-hero-actions) { max-width:650px; color:rgba(255,255,255,.82); font-size:clamp(1rem,1.6vw,1.15rem); line-height:1.78; }
.tl-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin:30px 0 0 !important; }
.tl-hero-actions .btn { margin:0 !important; }
body.tl-public .hero-assurance { margin-top:34px; padding-top:23px; gap:12px 24px; border-top:1px solid rgba(255,255,255,.17); }
body.tl-public .hero-assurance span { padding-left:18px; color:rgba(255,255,255,.74); font-size:.75rem; font-weight:750; }
body.tl-public .hero-assurance span::before { width:7px; height:7px; top:.45em; background:var(--tl-brass-2); }

/* Hero booking card */
body.tl-public .hero .booking-card { padding:30px; border:1px solid rgba(255,255,255,.56); border-radius:22px; background:rgba(255,253,248,.97); box-shadow:0 32px 80px rgba(2,22,16,.35); }
body.tl-public .booking-card-heading { margin-bottom:22px; padding-bottom:17px; }
body.tl-public .booking-card-heading h2 { margin:5px 0 6px; font-size:2rem; }
body.tl-public .booking-card-heading p { font-size:.85rem; }
body.tl-public .form-grid { gap:15px; }
body.tl-public label { color:#42534c; font-size:.69rem; letter-spacing:.085em; }
body.tl-public input,body.tl-public select,body.tl-public textarea { min-height:52px; border:1px solid #d8d7cf; border-radius:11px; background:#fff; }
body.tl-public input:focus,body.tl-public select:focus,body.tl-public textarea:focus { border-color:var(--tl-forest); box-shadow:0 0 0 4px rgba(18,63,52,.09); }

/* Trust strip */
.tl-trust-strip { position:relative; z-index:3; margin-top:-36px; }
.tl-trust-grid { display:grid; grid-template-columns:repeat(4,1fr); overflow:hidden; border:1px solid var(--tl-line); border-radius:20px; background:var(--tl-paper); box-shadow:var(--tl-shadow-soft); }
.tl-trust-item { min-height:104px; padding:22px 24px; display:flex; align-items:center; gap:15px; border-right:1px solid var(--tl-line); }
.tl-trust-item:last-child { border-right:0; }
.tl-trust-icon { flex:0 0 40px; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; color:var(--tl-forest); background:var(--tl-sage); font-size:1rem; font-weight:950; }
.tl-trust-item strong { display:block; margin-bottom:2px; color:var(--tl-charcoal); font-size:.88rem; }
.tl-trust-item span { display:block; color:var(--tl-muted); font-size:.75rem; line-height:1.4; }

/* Sections */
body.tl-public .section { padding-block:clamp(68px,7vw,104px); }
body.tl-public .section.compact { padding-block:clamp(54px,5.5vw,76px); }
body.tl-public .section-heading { margin-bottom:40px; align-items:end; }
body.tl-public .section-heading h2 { margin-top:8px; font-size:clamp(2.2rem,4vw,3.65rem); font-weight:500; line-height:1.02; }
body.tl-public .section-heading > p { max-width:480px; color:var(--tl-muted); }
body.tl-public .eyebrow { color:var(--tl-brass); font-size:.68rem; font-weight:900; letter-spacing:.18em; }
.tl-section-note { max-width:720px; color:var(--tl-muted); }

.tl-intro-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(36px,7vw,96px); align-items:center; }
.tl-intro-kicker { color:var(--tl-brass); font-size:.7rem; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.tl-intro-grid h2 { margin:12px 0 20px; font-size:clamp(2.35rem,4.5vw,4.35rem); font-weight:500; line-height:1.01; }
.tl-intro-copy > p { max-width:620px; color:var(--tl-muted); font-size:1rem; line-height:1.85; }
.tl-intro-facts { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.tl-intro-fact { min-height:136px; padding:24px; border:1px solid var(--tl-line); border-radius:20px; background:rgba(255,253,248,.82); box-shadow:var(--tl-shadow-soft); }
.tl-intro-fact span { display:block; margin-bottom:11px; color:var(--tl-brass); font-size:.67rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.tl-intro-fact strong { display:block; color:var(--tl-charcoal); font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; font-weight:600; line-height:1.15; }
.tl-intro-fact p { margin:7px 0 0; color:var(--tl-muted); font-size:.78rem; line-height:1.5; }

/* Room cards */
body.tl-public .cards.tl-room-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
body.tl-public .room-card { border:1px solid var(--tl-line); border-radius:22px; background:var(--tl-paper); box-shadow:0 14px 42px rgba(9,40,31,.07); }
body.tl-public .room-card:hover { box-shadow:0 24px 58px rgba(9,40,31,.13); transform:translateY(-6px); }
body.tl-public .room-cover { height:286px; }
body.tl-public .room-badge { right:auto; left:16px; bottom:16px; padding:7px 11px; border:1px solid rgba(255,255,255,.42); background:rgba(9,39,31,.58); font-size:.64rem; }
body.tl-public .room-card-body { padding:26px; }
.tl-room-meta { display:flex; gap:9px; flex-wrap:wrap; margin:0 0 13px; }
.tl-room-meta span { padding:6px 9px; border-radius:999px; color:#496057; background:#edf3ef; font-size:.68rem; font-weight:800; }
body.tl-public .room-card-body h3 { margin:0 0 11px; font-size:1.75rem; font-weight:600; }
.tl-room-description { min-height:48px; color:var(--tl-muted); font-size:.86rem; line-height:1.6; }
.tl-room-price-row { display:flex; align-items:end; justify-content:space-between; gap:14px; margin:18px 0 20px; padding-top:16px; border-top:1px solid var(--tl-line); }
body.tl-public .room-card-body .price { margin:0; color:var(--tl-forest); font-size:1.9rem; }
body.tl-public .room-card-body .price small { margin-top:1px; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:.68rem; }
.tl-room-card-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; }
.tl-room-card-actions .btn { min-height:44px; padding:11px 15px; }

/* Direct-booking feature band */
body.tl-public .section.tl-dark-section { color:#fff; background:var(--tl-forest-2); }
body.tl-public .tl-dark-section h2,body.tl-public .tl-dark-section h3 { color:#fff; }
body.tl-public .tl-dark-section .section-heading > p { color:rgba(255,255,255,.68); }
body.tl-public .tl-dark-section .eyebrow { color:#e0bf7e; }
.tl-benefits-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:22px; background:rgba(255,255,255,.13); }
.tl-benefit { min-height:240px; padding:34px; background:var(--tl-forest-2); }
.tl-benefit-number { display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center; margin-bottom:34px; border:1px solid rgba(224,191,126,.5); border-radius:50%; color:#e0bf7e; font-family:Georgia,"Times New Roman",serif; }
.tl-benefit h3 { font-size:1.55rem; }
.tl-benefit p { color:rgba(255,255,255,.66); font-size:.87rem; line-height:1.7; }

/* Amenities */
body.tl-public .feature-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
body.tl-public .feature { min-height:76px; padding:23px 20px 22px 58px; border:1px solid var(--tl-line); border-radius:16px; background:var(--tl-paper); box-shadow:none; }
body.tl-public .feature::before { top:25px; left:21px; width:24px; height:24px; background:var(--tl-sage); color:var(--tl-forest); }

/* FAQ */
body.tl-public .compact-light { background:#eee8dc; }
body.tl-public .faq-grid { gap:16px; }
body.tl-public .faq-card { padding:28px; border-radius:18px; border-color:rgba(18,63,52,.11); box-shadow:none; background:rgba(255,253,248,.82); }
body.tl-public .faq-card h3 { font-size:1.35rem; }
body.tl-public .faq-card p { color:var(--tl-muted); font-size:.88rem; }

/* Page mastheads */
body.tl-public .page-masthead { position:relative; overflow:hidden; padding:72px 0 78px; color:#fff; background:linear-gradient(135deg,var(--tl-forest-3),var(--tl-forest)); }
body.tl-public .page-masthead::after { position:absolute; width:380px; height:380px; right:-120px; top:-170px; border:1px solid rgba(255,255,255,.09); border-radius:50%; content:""; box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.018); }
body.tl-public .page-masthead h1 { max-width:800px; margin:9px 0 15px; color:#fff; font-size:clamp(2.8rem,5vw,5rem); font-weight:500; }
body.tl-public .page-masthead p { max-width:720px; color:rgba(255,255,255,.72); font-size:1rem; }
body.tl-public .page-masthead .eyebrow { color:#e0bf7e; }

/* Room listing page */
body.tl-public .room-list { gap:28px; }
body.tl-public .room-detail { padding:0; overflow:hidden; gap:0; border-radius:22px; }
body.tl-public .room-gallery { padding:20px; background:#ede8dd; }
body.tl-public .room-main-image { height:390px; border-radius:15px; object-fit:cover; }
body.tl-public .room-thumbs { gap:8px; margin-top:8px; }
body.tl-public .room-thumbs img { height:82px; border-radius:10px; object-fit:cover; }
body.tl-public .room-info { padding:clamp(28px,4vw,48px); }
body.tl-public .room-info h2 { font-size:2.2rem; font-weight:600; }
body.tl-public .room-info > p { color:var(--tl-muted); }
.tl-room-detail-facts { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:20px 0; }
.tl-room-detail-fact { padding:13px 14px; border:1px solid var(--tl-line); border-radius:12px; background:#fbfaf6; }
.tl-room-detail-fact span { display:block; color:var(--tl-muted); font-size:.65rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.tl-room-detail-fact strong { display:block; margin-top:2px; color:var(--tl-charcoal); font-size:.86rem; }

/* Generic cards/forms/public booking */
body.tl-public .card,body.tl-public .booking-card { border-color:var(--tl-line); border-radius:20px; box-shadow:var(--tl-shadow-soft); }
body.tl-public .booking-page-intro { max-width:720px; margin-bottom:32px; }
body.tl-public .booking-page-intro h1 { margin:8px 0 14px; font-size:clamp(2.5rem,4.5vw,4rem); font-weight:500; }
body.tl-public .booking-page-intro p { font-size:1rem; }
body.tl-public .page-section { background:var(--tl-ivory); }
body.tl-public .section-soft { background:#eee9df; }
body.tl-public .notice { border-radius:12px; }

/* Gallery */
body.tl-public .photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
body.tl-public .photo-grid a { overflow:hidden; border-radius:16px; background:#e8e4da; }
body.tl-public .photo-grid img { width:100%; height:300px; object-fit:cover; transition:transform .35s ease; }
body.tl-public .photo-grid a:nth-child(5n+1) img { height:390px; }
body.tl-public .photo-grid a:hover img { transform:scale(1.035); }

/* Contact */
body.tl-public .contact-layout { gap:48px; align-items:start; }
body.tl-public .contact-card { padding:30px; }
body.tl-public .contact-item { padding:17px 0; border-bottom:1px solid var(--tl-line); }
body.tl-public .contact-item span { color:var(--tl-brass); font-size:.66rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
body.tl-public .contact-actions { margin-top:22px; }

/* Footer */
body.tl-public .site-footer { padding:70px 0 0; color:rgba(255,255,255,.72); background:var(--tl-forest-3); }
.tl-footer-head { display:flex; justify-content:space-between; gap:32px; align-items:end; padding-bottom:42px; border-bottom:1px solid var(--tl-line-light); }
.tl-footer-head h2 { max-width:660px; margin:8px 0 0; color:#fff; font-size:clamp(2rem,4vw,3.5rem); font-weight:500; }
.tl-footer-actions { display:flex; gap:10px; flex-wrap:wrap; }
body.tl-public .footer-grid { grid-template-columns:1.35fr .8fr .8fr; gap:56px; padding-top:44px; }
body.tl-public .footer-intro strong { color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.45rem; }
body.tl-public .footer-intro p { max-width:430px; color:rgba(255,255,255,.61); }
body.tl-public .footer-links span,body.tl-public .footer-contact span { color:#e0bf7e; font-size:.66rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
body.tl-public .footer-links a,body.tl-public .footer-contact a { color:rgba(255,255,255,.8); }
body.tl-public .footer-links a:hover,body.tl-public .footer-contact a:hover { color:#fff; }
body.tl-public .footer-bottom { margin-top:44px; padding:22px 0; border-top:1px solid var(--tl-line-light); color:rgba(255,255,255,.48); font-size:.73rem; }
body.tl-public .wa { right:18px; bottom:18px; min-height:48px; padding:12px 18px; border-radius:999px; background:#1c8c5c; box-shadow:0 14px 35px rgba(4,34,23,.23); font-size:.8rem; }
.tl-mobile-dock { display:none; }

@media (max-width: 1020px) {
  body.tl-public .wrap { width:min(100% - 36px, 1240px); }
  .tl-topbar-left .tl-hide-tablet { display:none; }
  body.tl-public .nav { min-height:74px; }
  .tl-nav-toggle { display:inline-flex; }
  .tl-nav-shell { gap:12px; }
  body.tl-public .site-header nav {
    position:absolute;
    top:100%;
    left:18px;
    right:18px;
    display:none;
    align-items:stretch;
    flex-direction:column;
    gap:0;
    padding:12px;
    border:1px solid var(--tl-line);
    border-radius:18px;
    background:#fffdf8;
    box-shadow:0 26px 70px rgba(8,36,30,.16);
  }
  body.tl-public .site-header nav.is-open { display:flex; }
  body.tl-public .site-header nav > a:not(.btn) { padding:13px 14px; border-bottom:1px solid var(--tl-line); }
  body.tl-public .site-header nav > a:not(.btn)::after { display:none; }
  body.tl-public .site-header nav .btn { width:100%; margin-top:10px; }
  body.tl-public .hero { min-height:0; padding:70px 0 78px; }
  body.tl-public .hero-grid { grid-template-columns:1fr; gap:42px; }
  body.tl-public .hero .booking-card { max-width:720px; }
  .tl-trust-grid { grid-template-columns:repeat(2,1fr); }
  .tl-trust-item:nth-child(2) { border-right:0; }
  .tl-trust-item:nth-child(-n+2) { border-bottom:1px solid var(--tl-line); }
  .tl-intro-grid { grid-template-columns:1fr; gap:34px; }
  body.tl-public .cards.tl-room-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.tl-public .feature-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.tl-public .room-detail { grid-template-columns:1fr; }
  body.tl-public .room-main-image { height:440px; }
}

@media (max-width: 700px) {
  body.tl-public { padding-bottom:66px; }
  body.tl-public .wrap { width:calc(100% - 28px); }
  .tl-topbar .wrap { min-height:34px; justify-content:center; }
  .tl-topbar-left { width:100%; justify-content:center; }
  .tl-topbar-right,.tl-hide-mobile { display:none; }
  body.tl-public .nav { min-height:68px; }
  body.tl-public .site-logo { max-width:160px; max-height:54px; }
  body.tl-public .brand { font-size:1.08rem; }
  .tl-nav-shell > .nav-book { display:none; }
  body.tl-public .hero { padding:54px 0 58px; }
  body.tl-public .hero.has-photo { background-image:linear-gradient(180deg,rgba(5,28,23,.91) 0%,rgba(5,28,23,.79) 100%),var(--hero-image); background-position:center; }
  body.tl-public .hero h1 { font-size:clamp(2.75rem,13vw,4.15rem); line-height:.97; }
  .tl-hero-actions { display:grid; grid-template-columns:1fr 1fr; }
  .tl-hero-actions .btn { width:100%; padding-inline:12px; }
  body.tl-public .hero .booking-card { padding:22px; border-radius:18px; }
  body.tl-public .hero .form-grid { grid-template-columns:1fr 1fr; }
  .tl-trust-strip { margin-top:0; padding-top:14px; background:var(--tl-ivory); }
  .tl-trust-grid { grid-template-columns:1fr 1fr; border-radius:16px; }
  .tl-trust-item { min-height:100px; padding:17px 15px; gap:10px; align-items:flex-start; }
  .tl-trust-icon { width:34px; height:34px; flex-basis:34px; }
  .tl-trust-item strong { font-size:.78rem; }
  .tl-trust-item span { font-size:.68rem; }
  body.tl-public .section { padding-block:54px; }
  body.tl-public .section-heading { display:block; margin-bottom:28px; }
  body.tl-public .section-heading > p { margin-top:13px; }
  .tl-intro-facts { grid-template-columns:1fr 1fr; gap:10px; }
  .tl-intro-fact { min-height:122px; padding:18px; }
  .tl-intro-fact strong { font-size:1.12rem; }
  body.tl-public .cards.tl-room-grid { grid-template-columns:1fr; }
  body.tl-public .room-cover { height:270px; }
  .tl-benefits-grid { grid-template-columns:1fr; }
  .tl-benefit { min-height:0; padding:28px; }
  .tl-benefit-number { margin-bottom:20px; }
  body.tl-public .feature-list { grid-template-columns:1fr; }
  body.tl-public .page-masthead { padding:54px 0 58px; }
  body.tl-public .page-masthead h1 { font-size:clamp(2.6rem,12vw,4rem); }
  body.tl-public .room-gallery { padding:12px; }
  body.tl-public .room-main-image { height:300px; }
  body.tl-public .room-info { padding:25px 22px 28px; }
  .tl-room-detail-facts { grid-template-columns:1fr 1fr; }
  body.tl-public .photo-grid { grid-template-columns:1fr 1fr; gap:9px; }
  body.tl-public .photo-grid img,body.tl-public .photo-grid a:nth-child(5n+1) img { height:210px; }
  .tl-footer-head { display:block; padding-bottom:34px; }
  .tl-footer-actions { margin-top:22px; }
  body.tl-public .footer-grid { grid-template-columns:1fr; gap:30px; padding-top:34px; }
  body.tl-public .site-footer { padding-top:52px; }
  body.tl-public .wa { display:none; }
  .tl-mobile-dock { position:fixed; z-index:1200; left:0; right:0; bottom:0; height:66px; display:grid; grid-template-columns:.8fr 1.2fr; gap:9px; padding:8px 12px calc(8px + env(safe-area-inset-bottom)); border-top:1px solid var(--tl-line); background:rgba(255,253,248,.97); box-shadow:0 -12px 32px rgba(8,36,30,.10); backdrop-filter:blur(15px); }
  .tl-mobile-dock a { display:flex; align-items:center; justify-content:center; border-radius:11px; font-size:.78rem; font-weight:900; }
  .tl-mobile-call { color:var(--tl-forest); border:1px solid var(--tl-line); background:#fff; }
  .tl-mobile-book { color:#fff; background:var(--tl-forest); }
}

@media (max-width: 440px) {
  body.tl-public .hero .form-grid { grid-template-columns:1fr; }
  .tl-hero-actions { grid-template-columns:1fr; }
  .tl-trust-grid { grid-template-columns:1fr; }
  .tl-trust-item { border-right:0 !important; border-bottom:1px solid var(--tl-line); }
  .tl-trust-item:last-child { border-bottom:0; }
  .tl-intro-facts { grid-template-columns:1fr; }
  .tl-room-detail-facts { grid-template-columns:1fr; }
  body.tl-public .photo-grid { grid-template-columns:1fr; }
  body.tl-public .photo-grid img,body.tl-public .photo-grid a:nth-child(5n+1) img { height:260px; }
}

@media (prefers-reduced-motion: reduce) {
  body.tl-public * { scroll-behavior:auto !important; }
  body.tl-public .room-card,body.tl-public .room-cover,body.tl-public .btn,body.tl-public .photo-grid img { transition:none !important; }
}


/* Mobile header/menu professional refinement patch */
body.tl-public .tl-nav-toggle { transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; }
body.tl-public .tl-nav-toggle:hover,
body.tl-public .tl-nav-toggle:focus-visible { box-shadow:0 10px 24px rgba(8,36,30,.12); border-color:rgba(18,63,52,.22); }
body.tl-public .tl-nav-toggle.is-active { background:var(--tl-forest); color:#fff; border-color:var(--tl-forest); box-shadow:0 14px 28px rgba(8,36,30,.18); }
body.tl-public .tl-nav-toggle.is-active .tl-nav-toggle-lines { background:transparent; }
body.tl-public .tl-nav-toggle.is-active .tl-nav-toggle-lines::before { top:0; transform:rotate(45deg); background:currentColor; }
body.tl-public .tl-nav-toggle.is-active .tl-nav-toggle-lines::after { top:0; transform:rotate(-45deg); background:currentColor; }
body.tl-public .tl-nav-toggle-lines,
body.tl-public .tl-nav-toggle-lines::before,
body.tl-public .tl-nav-toggle-lines::after { transition:transform .2s ease, top .2s ease, opacity .2s ease, background .2s ease; }

@media (max-width: 1020px) {
  body.tl-public .site-header .nav {
    position:relative;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;
    min-height:74px !important;
    padding-block:12px !important;
  }
  body.tl-public .site-header .brand {
    flex:1 1 auto;
    justify-content:flex-start;
    margin:0 !important;
  }
  body.tl-public .site-header .site-logo {
    max-width:170px;
    max-height:56px;
  }
  body.tl-public .site-header .tl-nav-shell {
    flex:0 0 auto;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
  }
  body.tl-public .site-header nav[data-primary-nav] {
    position:absolute !important;
    top:calc(100% + 10px);
    left:0;
    right:0;
    display:none !important;
    align-items:stretch !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    gap:0 !important;
    width:auto !important;
    padding:12px !important;
    border:1px solid rgba(18,63,52,.12);
    border-radius:18px;
    background:#fffdf8;
    box-shadow:0 24px 70px rgba(8,36,30,.16);
  }
  body.tl-public .site-header nav[data-primary-nav].is-open {
    display:flex !important;
  }
  body.tl-public .site-header nav[data-primary-nav] > a:not(.btn) {
    width:100%;
    padding:14px 16px !important;
    border-bottom:1px solid var(--tl-line);
    font-size:.9rem !important;
    font-weight:800;
  }
  body.tl-public .site-header nav[data-primary-nav] > a:last-of-type:not(.btn) {
    border-bottom:1px solid var(--tl-line);
  }
  body.tl-public .site-header nav[data-primary-nav] > a:not(.btn)::after { display:none !important; }
  body.tl-public .site-header nav[data-primary-nav] .btn {
    width:100%;
    min-height:48px;
    margin-top:12px;
    justify-content:center;
  }
}

@media (max-width: 700px) {
  body.tl-public { padding-bottom:66px; }
  body.tl-public .tl-topbar {
    font-size:.72rem;
  }
  body.tl-public .tl-topbar .wrap {
    min-height:36px;
    justify-content:center;
    padding-block:0;
  }
  body.tl-public .tl-topbar-left {
    width:100%;
    justify-content:center;
    gap:10px;
    text-align:center;
  }
  body.tl-public .site-header {
    box-shadow:0 8px 24px rgba(8,36,30,.05);
  }
  body.tl-public .site-header .nav {
    min-height:68px !important;
    padding-block:10px !important;
  }
  body.tl-public .site-header .brand {
    justify-content:flex-start !important;
  }
  body.tl-public .site-header .site-logo {
    max-width:148px !important;
    max-height:48px !important;
  }
  body.tl-public .site-header .tl-nav-shell > .nav-book {
    display:none !important;
  }
  body.tl-public .tl-nav-toggle {
    width:44px;
    height:44px;
    border-radius:14px;
  }
  body.tl-public .site-header nav[data-primary-nav] {
    left:0;
    right:0;
    top:calc(100% + 8px);
    border-radius:16px;
  }
}

@media (max-width: 440px) {
  body.tl-public .wrap { width:calc(100% - 24px); }
  body.tl-public .site-header .site-logo {
    max-width:136px !important;
    max-height:44px !important;
  }
  body.tl-public .site-header nav[data-primary-nav] > a:not(.btn) {
    font-size:.86rem !important;
  }
}

/* Fix trust-strip number badges and compact mobile layout */
body.tl-public .tl-trust-item > .tl-trust-icon {
  flex:0 0 40px !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  display:grid !important;
  place-items:center !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:50% !important;
  background:var(--tl-sage) !important;
  color:var(--tl-forest) !important;
  font-size:.72rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-align:center !important;
}
body.tl-public .tl-trust-item > div > span {
  display:block;
  color:var(--tl-muted);
  font-size:.75rem;
  line-height:1.4;
}

@media (max-width:700px) {
  body.tl-public .tl-trust-strip { padding-top:12px; }
  body.tl-public .tl-trust-grid {
    border-radius:18px;
  }
  body.tl-public .tl-trust-item {
    min-height:88px !important;
    padding:16px 18px !important;
    align-items:center !important;
    gap:14px !important;
  }
  body.tl-public .tl-trust-item > .tl-trust-icon {
    flex-basis:38px !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    font-size:.7rem !important;
  }
  body.tl-public .tl-trust-item strong {
    margin-bottom:3px;
    font-size:.84rem !important;
    line-height:1.25;
  }
  body.tl-public .tl-trust-item > div > span {
    font-size:.72rem !important;
    line-height:1.35;
  }
}


/* Booking page professional redesign + room type / availability clarity */
body.tl-public .tl-booking-shell {
  padding:clamp(18px, 3vw, 34px);
  border:1px solid var(--tl-line);
  border-radius:26px;
  background:linear-gradient(180deg, rgba(255,253,248,.95), rgba(251,249,243,.98));
  box-shadow:0 18px 48px rgba(9,40,31,.08);
}
body.tl-public .tl-booking-form {
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}
body.tl-public .tl-booking-form > div:not(.full):not(.website-field) {
  padding:18px;
  border:1px solid var(--tl-line);
  border-radius:18px;
  background:var(--tl-paper);
  box-shadow:0 10px 22px rgba(9,40,31,.04);
}
body.tl-public .tl-booking-form > .full {
  grid-column:1 / -1;
}
body.tl-public .tl-booking-form label {
  display:grid;
  gap:10px;
  color:#42534c;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
body.tl-public .tl-booking-form input,
body.tl-public .tl-booking-form select,
body.tl-public .tl-booking-form textarea {
  min-height:58px;
  border:1px solid #d8d7cf;
  border-radius:14px;
  background:#fff;
  font-size:1rem;
  font-weight:700;
  color:var(--tl-charcoal);
}
body.tl-public .tl-booking-form textarea {
  min-height:120px;
  resize:vertical;
}
body.tl-public .tl-booking-form .muted {
  display:block;
  margin-top:10px;
  color:var(--tl-muted);
  font-size:.83rem;
  line-height:1.6;
}
body.tl-public .tl-booking-form #roomType,
body.tl-public .tl-booking-form #paymentPercent {
  font-size:1rem;
  font-weight:800;
}
body.tl-public .tl-room-overview {
  margin-top:14px;
}
body.tl-public .tl-room-overview-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
}
body.tl-public .tl-room-overview-item {
  padding:14px 15px;
  border:1px solid rgba(18,63,52,.1);
  border-radius:14px;
  background:#f7f8f3;
}
body.tl-public .tl-room-overview-item span {
  display:block;
  margin-bottom:6px;
  color:var(--tl-brass);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
body.tl-public .tl-room-overview-item strong {
  display:block;
  color:var(--tl-charcoal);
  font-size:.92rem;
  line-height:1.45;
}
body.tl-public .tl-availability-card {
  margin-top:12px;
  padding:14px 16px;
  border:1px solid rgba(18,63,52,.1);
  border-radius:14px;
  background:#eff5f1;
  color:#285544;
  font-size:.86rem;
  font-weight:800;
}
body.tl-public .availability-loading {
  background:#f1f4f5;
  color:#53625d;
}
body.tl-public .availability-ok {
  border-color:rgba(24,118,70,.16);
  background:#ecf9f1;
  color:#17613d;
}
body.tl-public .availability-error {
  border-color:rgba(177,39,39,.16);
  background:#fff2f2;
  color:#a02d2d !important;
}
body.tl-public .tl-booking-form .card,
body.tl-public #priceSummary,
body.tl-public .tl-payment-split-card,
body.tl-public .booking-policy-card {
  padding:22px;
  border:1px solid var(--tl-line);
  border-radius:20px;
  background:#fffdf8;
  box-shadow:0 12px 30px rgba(9,40,31,.05);
}
body.tl-public #priceSummary {
  margin-top:10px !important;
  background:linear-gradient(180deg, #fbfaf6, #f5f2eb);
}
body.tl-public #priceSummary h3,
body.tl-public .tl-payment-split-card h3,
body.tl-public .booking-policy-card h3 {
  margin:0 0 8px;
  font-size:1.55rem;
}
body.tl-public #dailyRateMessage {
  margin-bottom:16px;
  padding:12px 14px;
  border-radius:12px;
  background:#fff;
  border:1px dashed rgba(18,63,52,.16);
}
body.tl-public #priceSummary > div[style],
body.tl-public .tl-payment-split-card > div[style] {
  align-items:center;
  padding:10px 0;
  margin-bottom:0 !important;
}
body.tl-public #priceSummary hr {
  margin:12px 0;
  border:none;
  border-top:1px solid var(--tl-line);
}
body.tl-public .tl-payment-split-card {
  margin-top:12px;
  background:linear-gradient(180deg, #fffefb, #f7f3ea);
}
body.tl-public .booking-policy-card {
  background:linear-gradient(180deg, #fffefb, #f8f5ef);
}
body.tl-public .terms-acceptance {
  display:flex;
  gap:12px;
  align-items:flex-start;
}
body.tl-public .terms-acceptance input {
  min-height:18px;
  width:18px;
  height:18px;
  margin-top:2px;
}
body.tl-public .tl-booking-submit {
  min-height:56px;
  font-size:.95rem;
  letter-spacing:.03em;
}
body.tl-public .booking-page-intro p {
  max-width:760px;
}

@media (max-width: 860px) {
  body.tl-public .tl-booking-form {
    grid-template-columns:1fr;
  }
}

@media (max-width: 700px) {
  body.tl-public .tl-booking-shell {
    padding:16px;
    border-radius:22px;
  }
  body.tl-public .tl-booking-form {
    gap:14px;
  }
  body.tl-public .tl-booking-form > div:not(.full):not(.website-field) {
    padding:14px;
    border-radius:16px;
  }
  body.tl-public .tl-booking-form input,
  body.tl-public .tl-booking-form select,
  body.tl-public .tl-booking-form textarea {
    min-height:54px;
    font-size:.94rem;
  }
  body.tl-public .tl-booking-form #roomType {
    font-size:.9rem;
    line-height:1.35;
  }
  body.tl-public .tl-room-overview-grid {
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  body.tl-public .tl-room-overview-item {
    padding:12px;
  }
  body.tl-public .tl-room-overview-item strong {
    font-size:.85rem;
  }
  body.tl-public .tl-availability-card {
    padding:12px 13px;
    font-size:.82rem;
  }
  body.tl-public #priceSummary,
  body.tl-public .tl-payment-split-card,
  body.tl-public .booking-policy-card {
    padding:18px;
    border-radius:18px;
  }
  body.tl-public #priceSummary h3,
  body.tl-public .tl-payment-split-card h3,
  body.tl-public .booking-policy-card h3 {
    font-size:1.35rem;
  }
}

@media (max-width: 430px) {
  body.tl-public .tl-room-overview-grid {
    grid-template-columns:1fr;
  }
}

/* Footer mobile headline contrast + text selection fix */
body.tl-public .site-footer .tl-footer-head h2 {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff;
  opacity:1;
}
body.tl-public .site-footer .tl-footer-head .footer-kicker {
  color:#e0bf7e;
}
body.tl-public .site-footer .footer-intro strong {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff;
}
body.tl-public .site-footer ::selection {
  color:#ffffff;
  background:#1b6b56;
}
body.tl-public .site-footer ::-moz-selection {
  color:#ffffff;
  background:#1b6b56;
}

@media (max-width:700px) {
  body.tl-public .site-footer .tl-footer-head h2 {
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff;
    font-size:clamp(2.35rem,10vw,3.15rem);
    line-height:1.02;
    letter-spacing:-.025em;
  }
  body.tl-public .site-footer .tl-footer-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  body.tl-public .site-footer .tl-footer-actions .btn {
    width:100%;
    min-height:50px;
    justify-content:center;
    padding-inline:12px;
  }
}

@media (max-width:430px) {
  body.tl-public .site-footer .tl-footer-actions {
    grid-template-columns:1fr;
  }
}


/* Desktop footer compact professional layout */
@media (min-width:701px) {
  body.tl-public .site-footer {
    padding-top:40px;
  }

  body.tl-public .site-footer .tl-footer-head {
    align-items:center;
    gap:28px;
    padding-bottom:26px;
  }

  body.tl-public .site-footer .tl-footer-head h2 {
    max-width:570px;
    margin-top:5px;
    font-size:clamp(1.9rem,2.8vw,2.75rem);
    line-height:1.02;
    letter-spacing:-.025em;
  }

  body.tl-public .site-footer .tl-footer-actions {
    gap:9px;
  }

  body.tl-public .site-footer .tl-footer-actions .btn {
    min-height:44px;
    padding:11px 18px;
    font-size:.8rem;
  }

  body.tl-public .site-footer .footer-grid {
    gap:42px;
    padding-top:30px;
  }

  body.tl-public .site-footer .footer-intro strong {
    font-size:1.28rem;
  }

  body.tl-public .site-footer .footer-intro p {
    margin-top:10px;
    line-height:1.55;
  }

  body.tl-public .site-footer .footer-links a,
  body.tl-public .site-footer .footer-contact a {
    line-height:1.55;
  }

  body.tl-public .site-footer .footer-bottom {
    margin-top:28px;
    padding:16px 0;
  }
}

@media (min-width:1200px) {
  body.tl-public .site-footer .tl-footer-head h2 {
    font-size:2.55rem;
  }
}

/* 2026-10-03 comprehensive public-site content upgrade */
body.tl-public .tl-btn-ghost {
  color:#fff;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.08);
  box-shadow:none;
}
body.tl-public .tl-btn-ghost:hover {
  color:#fff;
  border-color:rgba(255,255,255,.58);
  background:rgba(255,255,255,.14);
  box-shadow:none;
}

.tl-inline-links {
  display:flex;
  flex-wrap:wrap;
  gap:18px 26px;
  margin-top:22px;
}

.tl-services-section {
  background:#fbfaf6;
}
.tl-service-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.tl-service-card {
  min-height:280px;
  padding:28px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--tl-line);
  border-radius:20px;
  background:var(--tl-paper);
  box-shadow:0 12px 30px rgba(9,40,31,.055);
}
.tl-service-icon {
  width:42px;
  height:42px;
  margin-bottom:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:var(--tl-forest);
  background:var(--tl-sage);
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
}
.tl-service-card h3 {
  margin:0 0 12px;
  font-size:1.45rem;
  line-height:1.12;
}
.tl-service-card p {
  margin:0 0 22px;
  color:var(--tl-muted);
  font-size:.87rem;
  line-height:1.7;
}
.tl-service-card .tl-text-link {
  margin-top:auto;
}

.tl-dandeli-guide {
  overflow:hidden;
  background:#eee8dc;
}
.tl-guide-layout {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(38px,7vw,90px);
  align-items:center;
}
.tl-guide-copy h2 {
  max-width:650px;
  margin:10px 0 18px;
  font-size:clamp(2.3rem,4vw,3.75rem);
  font-weight:500;
  line-height:1.02;
}
.tl-guide-copy > p {
  max-width:620px;
  color:var(--tl-muted);
  line-height:1.8;
}
.tl-guide-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}
.tl-guide-points {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.tl-guide-points > div {
  min-height:180px;
  padding:22px;
  border:1px solid rgba(18,63,52,.12);
  border-radius:18px;
  background:rgba(255,253,248,.82);
}
.tl-guide-points span {
  display:inline-grid;
  width:34px;
  height:34px;
  place-items:center;
  margin-bottom:24px;
  border:1px solid rgba(18,63,52,.16);
  border-radius:50%;
  color:var(--tl-brass);
  font-size:.72rem;
  font-weight:900;
}
.tl-guide-points strong {
  display:block;
  color:var(--tl-charcoal);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.25rem;
  line-height:1.12;
}
.tl-guide-points p {
  margin:8px 0 0;
  color:var(--tl-muted);
  font-size:.79rem;
  line-height:1.55;
}

body.tl-public .tl-faq-grid-extended {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.tl-final-cta-section {
  padding-block:48px !important;
  background:var(--tl-forest-2);
}
.tl-final-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
}
.tl-final-cta h2 {
  max-width:720px;
  margin:8px 0 10px;
  color:#fff !important;
  font-size:clamp(2rem,3.5vw,3.25rem);
  font-weight:500;
  line-height:1.02;
}
.tl-final-cta p {
  max-width:680px;
  margin:0;
  color:rgba(255,255,255,.68);
}
.tl-final-cta .eyebrow {
  color:#e0bf7e;
}
.tl-final-cta-actions {
  display:flex;
  flex:0 0 auto;
  flex-wrap:wrap;
  gap:10px;
}

body.tl-public .site-footer .tl-footer-grid-4 {
  grid-template-columns:1.2fr .72fr .86fr .9fr;
  gap:36px;
}

@media (max-width:1180px) and (min-width:1021px) {
  body.tl-public .site-header nav {
    gap:16px;
  }
  body.tl-public .site-header nav > a:not(.btn) {
    font-size:.78rem;
  }
  body.tl-public .nav-book {
    padding-inline:14px;
  }
}

@media (max-width:1020px) {
  .tl-service-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .tl-guide-layout {
    grid-template-columns:1fr;
    gap:34px;
  }
  body.tl-public .tl-faq-grid-extended {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.tl-public .site-footer .tl-footer-grid-4 {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:700px) {
  .tl-inline-links {
    gap:12px 20px;
  }
  .tl-service-grid {
    grid-template-columns:1fr;
  }
  .tl-service-card {
    min-height:0;
    padding:23px;
  }
  .tl-service-icon {
    margin-bottom:20px;
  }
  .tl-guide-points {
    grid-template-columns:1fr;
  }
  .tl-guide-points > div {
    min-height:0;
  }
  body.tl-public .tl-faq-grid-extended {
    grid-template-columns:1fr;
  }
  .tl-final-cta {
    display:block;
  }
  .tl-final-cta-actions {
    margin-top:22px;
  }
  .tl-final-cta-actions .btn {
    flex:1 1 180px;
    justify-content:center;
  }
  body.tl-public .site-footer .tl-footer-grid-4 {
    grid-template-columns:1fr;
  }
}


/* Adventure Information & Safety */
.tl-adventure-safety-section {
  background:#f7f3ea;
}
.tl-adventure-safety-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.tl-adventure-safety-card {
  min-height:245px;
  padding:28px;
  border:1px solid var(--tl-line);
  border-radius:20px;
  background:var(--tl-paper);
  box-shadow:0 12px 30px rgba(9,40,31,.05);
}
.tl-adventure-safety-number {
  display:grid;
  width:40px;
  height:40px;
  place-items:center;
  margin-bottom:24px;
  border:1px solid rgba(18,63,52,.16);
  border-radius:50%;
  color:var(--tl-brass);
  background:#fbfaf6;
  font-size:.72rem;
  font-weight:900;
}
.tl-adventure-safety-card h3 {
  margin:0 0 10px;
  font-size:1.45rem;
  line-height:1.14;
}
.tl-adventure-safety-card p {
  margin:0;
  color:var(--tl-muted);
  font-size:.86rem;
  line-height:1.7;
}
.tl-adventure-safety-note {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin-top:18px;
  padding:26px 28px;
  border:1px solid rgba(18,63,52,.15);
  border-radius:20px;
  background:linear-gradient(135deg,#123f34,#0b2f27);
  color:#fff;
}
.tl-adventure-safety-note strong {
  display:block;
  margin:5px 0 8px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.45rem;
  font-weight:600;
}
.tl-adventure-safety-note p {
  max-width:820px;
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:.86rem;
  line-height:1.7;
}
.tl-adventure-safety-note .eyebrow {
  color:#e0bf7e;
}
.tl-adventure-safety-note .btn {
  flex:0 0 auto;
  background:linear-gradient(135deg,#e2c17f,#d2ad6b);
  color:#2f2514;
  box-shadow:none;
}

@media (max-width:1020px) {
  .tl-adventure-safety-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:700px) {
  .tl-adventure-safety-grid {
    grid-template-columns:1fr;
  }
  .tl-adventure-safety-card {
    min-height:0;
    padding:23px;
  }
  .tl-adventure-safety-number {
    margin-bottom:18px;
  }
  .tl-adventure-safety-note {
    display:block;
    padding:22px;
  }
  .tl-adventure-safety-note .btn {
    width:100%;
    margin-top:18px;
    justify-content:center;
  }
}

/* 2026-10-03 competitor-reference inspired information architecture upgrade
   Original Tourist Lodge presentation; no third-party visual/content copying. */

/* Explicitly keep the Adventure Information CTA aligned with the gold accent. */
body.tl-public .tl-adventure-safety-note .btn,
body.tl-public .tl-adventure-safety-note .btn.alt,
body.tl-public .tl-activity-info-btn {
  color:#2f2514 !important;
  border-color:#d2ad6b !important;
  background:linear-gradient(135deg,#e2c17f,#d2ad6b) !important;
  box-shadow:0 12px 28px rgba(185,141,67,.16) !important;
}
body.tl-public .tl-adventure-safety-note .btn:hover,
body.tl-public .tl-activity-info-btn:hover {
  color:#241b0e !important;
  background:linear-gradient(135deg,#ecd49f,#d9b978) !important;
  transform:translateY(-2px);
}

/* Complete-information navigation grid */
.tl-property-details-section {
  background:#f2eee5;
}
.tl-property-details-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.tl-property-details-grid a {
  min-height:220px;
  padding:26px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--tl-line);
  border-radius:20px;
  color:var(--tl-charcoal);
  background:var(--tl-paper);
  box-shadow:0 12px 30px rgba(9,40,31,.05);
}
.tl-property-details-grid a:hover {
  border-color:rgba(18,63,52,.25);
  box-shadow:0 20px 45px rgba(9,40,31,.09);
  transform:translateY(-4px);
}
.tl-property-details-grid span {
  color:var(--tl-brass);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.tl-property-details-grid strong {
  display:block;
  margin:26px 0 auto;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.35rem;
  font-weight:600;
  line-height:1.25;
}
.tl-property-details-grid em {
  margin-top:20px;
  color:var(--tl-forest);
  font-size:.8rem;
  font-style:normal;
  font-weight:900;
}

/* Detailed room/facility information cards */
.tl-detail-category-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.tl-detail-category-card {
  min-height:270px;
  padding:27px;
  border:1px solid var(--tl-line);
  border-radius:20px;
  background:var(--tl-paper);
  box-shadow:0 12px 30px rgba(9,40,31,.05);
}
.tl-detail-category-icon {
  display:grid;
  width:40px;
  height:40px;
  place-items:center;
  margin-bottom:25px;
  border:1px solid rgba(18,63,52,.15);
  border-radius:50%;
  color:var(--tl-brass);
  background:#f8f4ea;
  font-size:.7rem;
  font-weight:900;
}
.tl-detail-category-card h3 {
  margin:0 0 14px;
  font-size:1.42rem;
  line-height:1.16;
}
.tl-clean-list {
  margin:0;
  padding:0;
  list-style:none;
}
.tl-clean-list li {
  position:relative;
  padding:10px 0 10px 20px;
  border-bottom:1px solid var(--tl-line);
  color:var(--tl-muted);
  font-size:.84rem;
  line-height:1.55;
}
.tl-clean-list li:last-child { border-bottom:0; }
.tl-clean-list li::before {
  position:absolute;
  left:0;
  top:16px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--tl-brass-2);
  content:"";
}
.tl-stay-info-section { background:var(--tl-forest-2); color:#fff; }
.tl-stay-info-layout {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) auto;
  align-items:center;
  gap:40px;
}
.tl-stay-info-layout h2 {
  max-width:720px;
  margin:8px 0 12px;
  color:#fff !important;
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:500;
}
.tl-stay-info-layout p {
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.72);
  line-height:1.7;
}
.tl-stay-info-layout .eyebrow { color:#e0bf7e; }
.tl-stay-info-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }

/* Professional supplemental blocks on content pages */
.tl-page-support-grid,
.tl-contact-help-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:15px;
}
.tl-page-support-grid article,
.tl-contact-help-grid article {
  min-height:205px;
  padding:25px;
  border:1px solid var(--tl-line);
  border-radius:19px;
  background:var(--tl-paper);
  box-shadow:0 10px 28px rgba(9,40,31,.05);
}
.tl-page-support-grid article > span,
.tl-contact-help-grid article > span {
  display:inline-grid;
  width:36px;
  height:36px;
  place-items:center;
  margin-bottom:24px;
  border-radius:50%;
  color:var(--tl-forest);
  background:var(--tl-sage);
  font-size:.7rem;
  font-weight:900;
}
.tl-page-support-grid h3,
.tl-contact-help-grid h3 {
  margin:0 0 10px;
  font-size:1.35rem;
}
.tl-page-support-grid p,
.tl-contact-help-grid p {
  margin:0;
  color:var(--tl-muted);
  font-size:.84rem;
  line-height:1.65;
}

/* Dandeli Guide */
.tl-guide-masthead {
  background:linear-gradient(135deg,#08241e,#123f34);
}
.tl-guide-intro-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(380px,.8fr);
  gap:clamp(34px,7vw,90px);
  align-items:center;
}
.tl-guide-intro-layout h2 {
  margin:8px 0 18px;
  font-size:clamp(2.25rem,4.5vw,4rem);
  font-weight:500;
  line-height:1.02;
}
.tl-guide-intro-layout p {
  color:var(--tl-muted);
  line-height:1.8;
}
.tl-guide-quickfacts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.tl-guide-quickfacts div {
  min-height:120px;
  padding:20px;
  border:1px solid var(--tl-line);
  border-radius:18px;
  background:var(--tl-paper);
  box-shadow:0 10px 28px rgba(9,40,31,.05);
}
.tl-guide-quickfacts span {
  display:block;
  margin-bottom:12px;
  color:var(--tl-brass);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.tl-guide-quickfacts strong {
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.15rem;
  line-height:1.22;
}
.tl-guide-place-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.tl-guide-place-grid article {
  min-height:230px;
  padding:25px;
  border-radius:20px;
  color:#fff;
  background:linear-gradient(150deg,#123f34,#0b2f27);
}
.tl-guide-place-grid article > span {
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  margin-bottom:36px;
  border:1px solid rgba(224,191,126,.48);
  border-radius:50%;
  color:#e0bf7e;
  font-size:.69rem;
  font-weight:900;
}
.tl-guide-place-grid h3 {
  margin:0 0 10px;
  color:#fff !important;
  font-size:1.42rem;
}
.tl-guide-place-grid p {
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:.84rem;
  line-height:1.65;
}
.tl-guide-more-link { margin:24px 0 0; }
.tl-guide-contact-panel {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
}
.tl-guide-contact-panel h2 {
  margin:7px 0 10px;
  color:#fff !important;
  font-size:clamp(2rem,4vw,3.4rem);
  font-weight:500;
}
.tl-guide-contact-panel p {
  max-width:700px;
  color:rgba(255,255,255,.7);
}
.tl-guide-contact-panel .eyebrow { color:#e0bf7e; }
.tl-guide-actions { display:flex; gap:10px; flex-wrap:wrap; }

/* Contact help cards */
.tl-contact-help-section { background:#f7f3ea; }

/* Compact content-page presentation */
body.tl-public .content-page-layout { max-width:980px; }
body.tl-public .content-page-body { padding:clamp(26px,4vw,48px); }
body.tl-public .content-page-body h2 {
  margin:34px 0 12px;
  font-size:clamp(1.7rem,3vw,2.3rem);
  font-weight:600;
}
body.tl-public .content-page-body p,
body.tl-public .content-page-body li {
  color:var(--tl-muted);
  line-height:1.75;
}

/* Keep expanded navigation usable at common laptop widths. */
@media (max-width:1180px) and (min-width:1021px) {
  body.tl-public .site-header nav { gap:16px; }
  body.tl-public .site-header nav > a:not(.btn) { font-size:.78rem; }
  body.tl-public .nav-book { padding-inline:14px; }
}

@media (max-width:1020px) {
  .tl-property-details-grid,
  .tl-detail-category-grid,
  .tl-page-support-grid,
  .tl-contact-help-grid,
  .tl-guide-place-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tl-guide-intro-layout { grid-template-columns:1fr; }
  .tl-guide-quickfacts { max-width:720px; }
  .tl-stay-info-layout { grid-template-columns:1fr; }
  .tl-stay-info-actions { justify-content:flex-start; }
  .tl-guide-contact-panel { display:block; }
  .tl-guide-contact-panel .tl-guide-actions { margin-top:24px; }
}

@media (max-width:700px) {
  .tl-property-details-grid,
  .tl-detail-category-grid,
  .tl-page-support-grid,
  .tl-contact-help-grid,
  .tl-guide-place-grid { grid-template-columns:1fr; }
  .tl-property-details-grid a,
  .tl-detail-category-card,
  .tl-page-support-grid article,
  .tl-contact-help-grid article,
  .tl-guide-place-grid article { min-height:0; }
  .tl-guide-quickfacts { grid-template-columns:1fr 1fr; }
  .tl-stay-info-actions,
  .tl-guide-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .tl-stay-info-actions .btn,
  .tl-guide-actions .btn { width:100%; justify-content:center; }
}

@media (max-width:430px) {
  .tl-guide-quickfacts { grid-template-columns:1fr; }
}


/* Contact page – professional structure */
body.tl-public .tl-contact-masthead {
  padding-bottom:66px;
}
.tl-contact-masthead-note {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin-top:24px;
}
.tl-contact-masthead-note span {
  position:relative;
  padding-left:15px;
  color:rgba(255,255,255,.72);
  font-size:.76rem;
  font-weight:800;
}
.tl-contact-masthead-note span::before {
  position:absolute;
  left:0;
  top:.45em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#e0bf7e;
  content:"";
}

.tl-contact-main {
  background:#f7f3ea;
}
.tl-contact-quick-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:28px;
}
.tl-contact-quick-card {
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:16px;
  align-items:center;
  min-height:142px;
  padding:22px;
  border:1px solid var(--tl-line);
  border-radius:19px;
  background:var(--tl-paper);
  box-shadow:0 10px 30px rgba(9,40,31,.05);
  color:var(--tl-charcoal);
}
a.tl-contact-quick-card:hover {
  transform:translateY(-3px);
  border-color:rgba(18,63,52,.22);
  box-shadow:0 18px 38px rgba(9,40,31,.09);
}
.tl-contact-quick-icon {
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border-radius:50%;
  background:var(--tl-sage);
  color:var(--tl-forest);
  font-size:.7rem;
  font-weight:900;
}
.tl-contact-quick-card small {
  display:block;
  margin-bottom:4px;
  color:var(--tl-brass);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tl-contact-quick-card h2 {
  margin:0 0 5px;
  font-size:1.3rem;
  font-weight:600;
}
.tl-contact-quick-card p {
  margin:0;
  color:var(--tl-muted);
  font-size:.8rem;
  line-height:1.5;
}
.tl-contact-quick-card > strong {
  color:var(--tl-forest);
  font-size:1.25rem;
}

.tl-contact-main-grid {
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(340px,.72fr);
  gap:26px;
  align-items:start;
}
.tl-contact-form-panel,
.tl-contact-location-card {
  border:1px solid var(--tl-line);
  border-radius:24px;
  background:var(--tl-paper);
  box-shadow:0 14px 40px rgba(9,40,31,.06);
}
.tl-contact-form-panel {
  padding:clamp(24px,3vw,38px);
}
.tl-contact-panel-heading {
  margin-bottom:26px;
  padding-bottom:22px;
  border-bottom:1px solid var(--tl-line);
}
.tl-contact-panel-heading h2,
.tl-contact-location-head h2 {
  margin:7px 0 10px;
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:500;
}
.tl-contact-panel-heading p,
.tl-contact-location-head p {
  margin:0;
  color:var(--tl-muted);
  line-height:1.7;
}

.tl-contact-enquiry-form {
  display:grid;
  gap:22px;
}
.tl-contact-form-section {
  padding:20px;
  border:1px solid rgba(18,63,52,.1);
  border-radius:17px;
  background:#fbfaf6;
}
.tl-contact-form-section-title {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:17px;
}
.tl-contact-form-section-title > span {
  display:grid;
  width:34px;
  height:34px;
  flex:0 0 34px;
  place-items:center;
  border-radius:50%;
  background:var(--tl-sage);
  color:var(--tl-forest);
  font-size:.66rem;
  font-weight:900;
}
.tl-contact-form-section-title strong {
  display:block;
  color:var(--tl-charcoal);
  font-size:.9rem;
}
.tl-contact-form-section-title small {
  display:block;
  margin-top:2px;
  color:var(--tl-muted);
  font-size:.72rem;
}
body.tl-public .tl-contact-enquiry-form .form-grid {
  gap:14px;
}
body.tl-public .tl-contact-enquiry-form label,
.tl-contact-message-label {
  display:grid;
  gap:8px;
  color:#42534c;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body.tl-public .tl-contact-enquiry-form input,
body.tl-public .tl-contact-enquiry-form textarea {
  min-height:52px;
  border-radius:12px;
  font-size:.94rem;
  font-weight:650;
  text-transform:none;
  letter-spacing:0;
}
body.tl-public .tl-contact-enquiry-form textarea {
  min-height:130px;
}
.tl-contact-submit-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.tl-contact-submit-row .btn {
  flex:0 0 auto;
}
.tl-contact-submit-row p {
  max-width:390px;
  margin:0;
  color:var(--tl-muted);
  font-size:.72rem;
  line-height:1.55;
  text-align:right;
}

.tl-contact-side-column {
  display:grid;
  gap:18px;
}
.tl-contact-location-card {
  overflow:hidden;
}
.tl-contact-location-head {
  padding:26px 26px 20px;
}
.tl-contact-location-head h2 {
  font-size:2rem;
}
.tl-contact-map-frame {
  margin:0 18px;
  overflow:hidden;
  border-radius:16px;
  background:#e9e6dd;
}
.tl-contact-map-frame iframe {
  display:block;
  width:100%;
  height:275px;
  border:0;
}
.tl-contact-detail-list {
  padding:18px 26px 4px;
}
.tl-contact-detail-list > div {
  padding:15px 0;
  border-bottom:1px solid var(--tl-line);
}
.tl-contact-detail-list > div:last-child {
  border-bottom:0;
}
.tl-contact-detail-list span {
  display:block;
  margin-bottom:5px;
  color:var(--tl-brass);
  font-size:.63rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.tl-contact-detail-list strong,
.tl-contact-detail-list a {
  color:var(--tl-charcoal);
  font-size:.9rem;
  font-weight:800;
  overflow-wrap:anywhere;
}
.tl-contact-detail-list p {
  margin:4px 0 0;
  color:var(--tl-muted);
  font-size:.78rem;
}
.tl-contact-location-actions {
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  padding:18px 26px 26px;
}
.tl-contact-location-actions .btn {
  width:100%;
  justify-content:center;
}

.tl-contact-direct-note {
  padding:24px;
  border-radius:20px;
  background:var(--tl-forest-2);
  color:#fff;
}
.tl-contact-direct-note > span {
  color:#e0bf7e;
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tl-contact-direct-note h3 {
  margin:8px 0 18px;
  color:#fff !important;
  font-size:1.45rem;
  font-weight:500;
}
.tl-contact-direct-note > div {
  display:flex;
  gap:8px;
}
.tl-contact-direct-note a {
  flex:1;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:11px;
  color:#fff;
  background:rgba(255,255,255,.06);
  font-size:.76rem;
  font-weight:900;
  text-align:center;
}
.tl-contact-direct-note a:hover {
  background:rgba(255,255,255,.12);
}

@media (max-width:1020px) {
  .tl-contact-quick-grid {
    grid-template-columns:1fr 1fr;
  }
  .tl-contact-quick-grid > :last-child {
    grid-column:1 / -1;
  }
  .tl-contact-main-grid {
    grid-template-columns:1fr;
  }
  .tl-contact-side-column {
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
}

@media (max-width:700px) {
  body.tl-public .tl-contact-masthead {
    padding-bottom:52px;
  }
  .tl-contact-masthead-note {
    display:grid;
    gap:8px;
  }
  .tl-contact-quick-grid {
    grid-template-columns:1fr;
    gap:10px;
    margin-bottom:18px;
  }
  .tl-contact-quick-grid > :last-child {
    grid-column:auto;
  }
  .tl-contact-quick-card {
    min-height:0;
    padding:17px;
    border-radius:16px;
  }
  .tl-contact-form-panel {
    padding:18px;
    border-radius:19px;
  }
  .tl-contact-panel-heading {
    margin-bottom:18px;
    padding-bottom:17px;
  }
  .tl-contact-form-section {
    padding:15px;
    border-radius:15px;
  }
  .tl-contact-enquiry-form {
    gap:14px;
  }
  body.tl-public .tl-contact-enquiry-form .form-grid {
    grid-template-columns:1fr;
  }
  .tl-contact-submit-row {
    display:grid;
    gap:12px;
  }
  .tl-contact-submit-row .btn {
    width:100%;
    justify-content:center;
  }
  .tl-contact-submit-row p {
    max-width:none;
    text-align:left;
  }
  .tl-contact-side-column {
    grid-template-columns:1fr;
  }
  .tl-contact-location-head {
    padding:22px 20px 16px;
  }
  .tl-contact-map-frame {
    margin:0 12px;
  }
  .tl-contact-map-frame iframe {
    height:240px;
  }
  .tl-contact-detail-list {
    padding:14px 20px 2px;
  }
  .tl-contact-location-actions {
    padding:16px 20px 20px;
  }
  .tl-contact-direct-note {
    padding:20px;
  }
}

/* FINAL PUBLIC POLISH — booking live-rate clarity, nearby places, gallery and policies */
body.tl-public .tl-room-rate-note {
  margin:10px 0 0;
  color:var(--tl-muted);
  font-size:.78rem;
  line-height:1.55;
}
body.tl-public #roomInfoRate {
  color:var(--tl-forest);
}
body.tl-public #bookingSubmitButton:disabled {
  cursor:not-allowed;
  opacity:.55;
  transform:none;
  box-shadow:none;
}
body.tl-public #priceSummary strong[id] {
  font-variant-numeric:tabular-nums;
}
body.tl-public .availability-message {
  min-height:48px;
}

.tl-nearby-place-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-bottom:26px;
}
.tl-nearby-place-grid article {
  position:relative;
  min-height:230px;
  padding:28px;
  border:1px solid var(--tl-line);
  border-radius:20px;
  background:var(--tl-paper);
  box-shadow:0 10px 30px rgba(9,40,31,.05);
}
.tl-nearby-place-grid article > span {
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  margin-bottom:28px;
  border-radius:50%;
  background:var(--tl-sage);
  color:var(--tl-forest);
  font-size:.68rem;
  font-weight:900;
}
.tl-nearby-place-grid h3 {
  margin:0 0 10px;
  font-size:1.55rem;
  font-weight:600;
}
.tl-nearby-place-grid p {
  margin:0 0 18px;
  color:var(--tl-muted);
  line-height:1.7;
}
.tl-nearby-place-grid a {
  color:var(--tl-forest);
  font-size:.8rem;
  font-weight:900;
}
.tl-nearby-assist-panel {
  padding:30px;
  border-radius:22px;
  background:#fffdf8;
  border:1px solid var(--tl-line);
}

body.tl-public .tl-gallery-pro-grid .tl-gallery-item {
  position:relative;
  display:block;
}
body.tl-public .tl-gallery-pro-grid .tl-gallery-item::after {
  position:absolute;
  inset:auto 0 0;
  height:46%;
  background:linear-gradient(to top,rgba(5,28,23,.72),transparent);
  content:"";
  pointer-events:none;
}
body.tl-public .tl-gallery-pro-grid .tl-gallery-item > span {
  position:absolute;
  z-index:2;
  left:15px;
  right:15px;
  bottom:14px;
  overflow:hidden;
  color:#fff;
  font-size:.76rem;
  font-weight:800;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tl-gallery-booking-section {
  border-top:1px solid var(--tl-line);
}

.tl-policy-links-section {
  border-top:1px solid var(--tl-line);
}
.tl-policy-link-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.tl-policy-link-grid a {
  min-height:140px;
  padding:22px;
  border:1px solid var(--tl-line);
  border-radius:17px;
  background:var(--tl-paper);
  box-shadow:0 8px 24px rgba(9,40,31,.04);
}
.tl-policy-link-grid a:hover {
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(9,40,31,.08);
}
.tl-policy-link-grid span {
  display:block;
  margin-bottom:10px;
  color:var(--tl-brass);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tl-policy-link-grid strong {
  display:block;
  color:var(--tl-charcoal);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.08rem;
  line-height:1.35;
}

body.tl-public .content-page-body {
  max-width:980px;
  margin-inline:auto;
}
body.tl-public .content-page-body h2 {
  margin-top:30px;
  font-size:1.8rem;
}
body.tl-public .content-page-body h3 {
  margin-top:24px;
  font-size:1.35rem;
}
body.tl-public .content-page-body p,
body.tl-public .content-page-body li {
  color:var(--tl-muted);
  line-height:1.75;
}
body.tl-public .content-page-body ul,
body.tl-public .content-page-body ol {
  padding-left:1.25rem;
}

body.tl-public .site-footer .tl-footer-grid-4 {
  grid-template-columns:1.15fr .9fr .9fr .9fr;
}
body.tl-public .site-footer .footer-links a,
body.tl-public .site-footer .footer-contact a {
  display:block;
  margin-top:7px;
}

@media (max-width:1020px) {
  .tl-policy-link-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.tl-public .site-footer .tl-footer-grid-4 {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:700px) {
  .tl-nearby-place-grid {
    grid-template-columns:1fr;
  }
  .tl-nearby-place-grid article {
    min-height:0;
    padding:22px;
  }
  .tl-nearby-place-grid article > span {
    margin-bottom:18px;
  }
  .tl-nearby-assist-panel {
    padding:22px;
  }
  .tl-policy-link-grid {
    grid-template-columns:1fr;
  }
  .tl-policy-link-grid a {
    min-height:0;
  }
  body.tl-public .site-footer .tl-footer-grid-4 {
    grid-template-columns:1fr;
  }
}


/* FINAL 2026-10-03 PUBLIC VISUAL CONSISTENCY PASS
   One typography scale + consistent action colours across all public pages. */
body.tl-public {
  --tl-muted:#606c65;
  font-size:16px;
  line-height:1.65;
}

/* Readability and typography hierarchy */
body.tl-public p,
body.tl-public li {
  text-rendering:optimizeLegibility;
}
body.tl-public .page-masthead h1 {
  font-size:clamp(2.45rem,4vw,3.75rem);
  line-height:1.02;
  letter-spacing:-.04em;
}
body.tl-public .page-masthead p {
  font-size:.98rem;
  line-height:1.7;
}
body.tl-public .section-heading h2,
body.tl-public .tl-guide-copy h2,
body.tl-public .tl-guide-intro-layout h2,
body.tl-public .tl-stay-info-layout h2,
body.tl-public .tl-guide-contact-panel h2 {
  font-size:clamp(2rem,3.25vw,3rem);
  line-height:1.06;
  letter-spacing:-.035em;
}
body.tl-public .hero h1 {
  font-size:clamp(3rem,5.2vw,4.8rem);
  line-height:.99;
}
body.tl-public .hero-copy > p:not(.tl-hero-actions) {
  font-size:1.04rem;
  line-height:1.72;
}
body.tl-public .room-card-body h3,
body.tl-public .room-info h2,
body.tl-public .tl-service-card h3,
body.tl-public .tl-adventure-safety-card h3,
body.tl-public .tl-detail-category-card h3,
body.tl-public .tl-page-support-grid h3,
body.tl-public .tl-contact-help-grid h3,
body.tl-public .tl-nearby-place-grid h3,
body.tl-public .tl-guide-place-grid h3 {
  letter-spacing:-.025em;
}
body.tl-public .room-card-body h3 { font-size:1.55rem; }
body.tl-public .room-info h2 { font-size:2rem; }
body.tl-public .faq-card h3,
body.tl-public .tl-page-support-grid h3,
body.tl-public .tl-contact-help-grid h3 { font-size:1.28rem; }
body.tl-public .tl-service-card h3,
body.tl-public .tl-adventure-safety-card h3,
body.tl-public .tl-detail-category-card h3,
body.tl-public .tl-guide-place-grid h3 { font-size:1.34rem; }

/* Never use very faint grey for normal explanatory text. */
body.tl-public .muted,
body.tl-public .section-heading > p,
body.tl-public .tl-room-description,
body.tl-public .faq-card p,
body.tl-public .tl-service-card p,
body.tl-public .tl-guide-copy > p,
body.tl-public .tl-guide-points p,
body.tl-public .tl-adventure-safety-card p,
body.tl-public .tl-clean-list li,
body.tl-public .tl-page-support-grid p,
body.tl-public .tl-contact-help-grid p,
body.tl-public .tl-contact-panel-heading p,
body.tl-public .tl-contact-location-head p,
body.tl-public .tl-nearby-place-grid p,
body.tl-public .content-page-body p,
body.tl-public .content-page-body li {
  color:var(--tl-muted);
}
body.tl-public .room-card-body p,
body.tl-public .tl-service-card p,
body.tl-public .tl-adventure-safety-card p,
body.tl-public .tl-page-support-grid p,
body.tl-public .tl-contact-help-grid p,
body.tl-public .tl-guide-place-grid p,
body.tl-public .tl-nearby-place-grid p {
  font-size:.88rem;
  line-height:1.65;
}

/* Form text should stay readable on desktop and mobile. */
body.tl-public label,
body.tl-public .tl-booking-form label,
body.tl-public .tl-contact-enquiry-form label,
body.tl-public .tl-contact-message-label {
  font-size:.72rem;
}
body.tl-public input,
body.tl-public select,
body.tl-public textarea {
  color:var(--tl-charcoal);
}
body.tl-public input::placeholder,
body.tl-public textarea::placeholder {
  color:#7a847e;
  opacity:1;
}

/* Consistent button system */
body.tl-public .btn {
  min-height:48px;
  padding:13px 20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:11px;
  color:#fff;
  background:linear-gradient(135deg,var(--tl-forest),var(--tl-forest-2));
  box-shadow:0 10px 24px rgba(18,63,52,.14);
  font-size:.84rem;
  font-weight:850;
  line-height:1.2;
  letter-spacing:.015em;
}
body.tl-public .btn:hover {
  color:#fff;
  background:linear-gradient(135deg,#174b3e,#0d382e);
  box-shadow:0 14px 28px rgba(18,63,52,.2);
}

/* Gold = reservation / availability action everywhere. */
body.tl-public .btn.alt,
body.tl-public a.btn[href^="/booking.php"],
body.tl-public a.nav-book,
body.tl-public #bookingSubmitButton,
body.tl-public .hero .booking-card button[type="submit"] {
  color:#2f2514 !important;
  border-color:#d2ad6b !important;
  background:linear-gradient(135deg,#e3c17c,#d2ad6b) !important;
  box-shadow:0 10px 24px rgba(185,141,67,.18) !important;
}
body.tl-public .btn.alt:hover,
body.tl-public a.btn[href^="/booking.php"]:hover,
body.tl-public a.nav-book:hover,
body.tl-public #bookingSubmitButton:hover:not(:disabled),
body.tl-public .hero .booking-card button[type="submit"]:hover {
  color:#241b0e !important;
  border-color:#d9b978 !important;
  background:linear-gradient(135deg,#ecd49f,#d9b978) !important;
}

/* Ghost actions are only for dark photography/dark bands. */
body.tl-public .tl-btn-ghost {
  color:#fff !important;
  border-color:rgba(255,255,255,.42) !important;
  background:rgba(255,255,255,.08) !important;
  box-shadow:none !important;
}
body.tl-public .tl-btn-ghost:hover {
  color:#fff !important;
  border-color:rgba(255,255,255,.68) !important;
  background:rgba(255,255,255,.15) !important;
}

/* Non-booking actions on dark sections need visible contrast. */
body.tl-public .tl-stay-info-section .btn:not(.alt):not([href^="/booking.php"]),
body.tl-public .tl-final-cta-section .btn:not(.alt):not([href^="/booking.php"]),
body.tl-public .tl-dark-section .btn:not(.alt):not(.tl-btn-ghost):not([href^="/booking.php"]) {
  color:var(--tl-forest-2) !important;
  border-color:rgba(255,255,255,.78) !important;
  background:#fffdf8 !important;
  box-shadow:none !important;
}
body.tl-public .tl-stay-info-section .btn:not(.alt):not([href^="/booking.php"]):hover,
body.tl-public .tl-final-cta-section .btn:not(.alt):not([href^="/booking.php"]):hover,
body.tl-public .tl-dark-section .btn:not(.alt):not(.tl-btn-ghost):not([href^="/booking.php"]):hover {
  background:#f1eadc !important;
}

/* WhatsApp has one recognisable colour everywhere it is presented as a button. */
body.tl-public .site-footer a.btn[href*="wa.me"],
body.tl-public .wa {
  color:#fff !important;
  border-color:#1c8c5c !important;
  background:#1c8c5c !important;
  box-shadow:0 10px 24px rgba(15,108,68,.2) !important;
}
body.tl-public .site-footer a.btn[href*="wa.me"]:hover,
body.tl-public .wa:hover {
  color:#fff !important;
  background:#17794f !important;
}

/* Cards and small UI text */
body.tl-public .eyebrow,
body.tl-public .tl-intro-kicker,
body.tl-public .footer-links span,
body.tl-public .footer-contact span {
  font-size:.69rem;
  font-weight:900;
  letter-spacing:.15em;
}
body.tl-public .tl-room-meta span,
body.tl-public .tl-room-detail-fact span,
body.tl-public .tl-room-overview-item span,
body.tl-public .tl-contact-detail-list span {
  font-size:.68rem;
}
body.tl-public .tl-room-detail-fact strong,
body.tl-public .tl-room-overview-item strong {
  font-size:.9rem;
}
body.tl-public .price small,
body.tl-public .room-card-body .price small {
  color:var(--tl-muted);
  font-size:.72rem;
  line-height:1.45;
}

/* Footer readable without becoming oversized. */
body.tl-public .site-footer .tl-footer-head h2 {
  max-width:620px;
  font-size:clamp(1.9rem,2.55vw,2.45rem);
  line-height:1.06;
}
body.tl-public .site-footer .footer-intro p,
body.tl-public .site-footer .footer-links a,
body.tl-public .site-footer .footer-contact a {
  font-size:.82rem;
  line-height:1.55;
}
body.tl-public .site-footer .footer-bottom {
  font-size:.72rem;
}

/* Laptop widths: keep the long navigation compact. */
@media (max-width:1180px) and (min-width:1021px) {
  body.tl-public .site-header nav { gap:14px; }
  body.tl-public .site-header nav > a:not(.btn) { font-size:.76rem; }
  body.tl-public .nav-book { min-height:42px; padding:10px 13px; font-size:.77rem; }
}

@media (max-width:700px) {
  body.tl-public .page-masthead {
    padding:46px 0 50px;
  }
  body.tl-public .page-masthead h1 {
    font-size:clamp(2.15rem,9vw,2.75rem);
    line-height:1.04;
  }
  body.tl-public .page-masthead p {
    font-size:.94rem;
  }
  body.tl-public .hero h1 {
    font-size:clamp(2.65rem,11vw,3.45rem);
    line-height:1;
  }
  body.tl-public .hero-copy > p:not(.tl-hero-actions) {
    font-size:.96rem;
    line-height:1.65;
  }
  body.tl-public .section-heading h2,
  body.tl-public .tl-guide-copy h2,
  body.tl-public .tl-guide-intro-layout h2,
  body.tl-public .tl-stay-info-layout h2,
  body.tl-public .tl-guide-contact-panel h2 {
    font-size:clamp(1.85rem,8vw,2.35rem);
    line-height:1.08;
  }
  body.tl-public .room-info h2 { font-size:1.75rem; }
  body.tl-public .room-card-body h3 { font-size:1.45rem; }
  body.tl-public .site-footer .tl-footer-head h2 {
    font-size:clamp(1.9rem,8vw,2.35rem);
    line-height:1.06;
  }
  body.tl-public .btn {
    min-height:48px;
    padding:13px 16px;
    font-size:.82rem;
  }
  body.tl-public .tl-mobile-dock a {
    font-size:.78rem;
  }
}


/* =========================================================
   FINAL LIGHT-SECTION TEXT CONTRAST FIX
   tl-stay-info-layout is reused on both dark and light bands.
   Keep light sections dark/readable; reserve white text for
   actual dark-green sections only.
   ========================================================= */

/* Light / cream usages: Nearby Places CTA, Gallery CTA and any
   future section-soft block using this shared layout. */
body.tl-public .section-soft .tl-stay-info-layout h2,
body.tl-public .tl-nearby-assist-panel h2,
body.tl-public .tl-gallery-booking-section .tl-stay-info-layout h2 {
  color:var(--tl-charcoal) !important;
  -webkit-text-fill-color:var(--tl-charcoal) !important;
  opacity:1 !important;
}

body.tl-public .section-soft .tl-stay-info-layout p,
body.tl-public .tl-nearby-assist-panel p,
body.tl-public .tl-gallery-booking-section .tl-stay-info-layout p {
  color:var(--tl-muted) !important;
  -webkit-text-fill-color:var(--tl-muted) !important;
  opacity:1 !important;
}

body.tl-public .section-soft .tl-stay-info-layout .eyebrow,
body.tl-public .tl-nearby-assist-panel .eyebrow,
body.tl-public .tl-gallery-booking-section .tl-stay-info-layout .eyebrow {
  color:var(--tl-brass) !important;
  -webkit-text-fill-color:var(--tl-brass) !important;
}

/* Explicit dark-section override: Rooms stay-information band and
   any other true dark-green section must stay white. */
body.tl-public .tl-stay-info-section .tl-stay-info-layout h2,
body.tl-public .tl-dark-section .tl-stay-info-layout h2 {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

body.tl-public .tl-stay-info-section .tl-stay-info-layout p,
body.tl-public .tl-dark-section .tl-stay-info-layout p {
  color:rgba(255,255,255,.76) !important;
  -webkit-text-fill-color:rgba(255,255,255,.76) !important;
}

body.tl-public .tl-stay-info-section .tl-stay-info-layout .eyebrow,
body.tl-public .tl-dark-section .tl-stay-info-layout .eyebrow {
  color:#e0bf7e !important;
  -webkit-text-fill-color:#e0bf7e !important;
}

/* Keep text selection branded but never required for readability. */
body.tl-public .tl-nearby-assist-panel ::selection,
body.tl-public .tl-gallery-booking-section ::selection {
  color:#ffffff;
  background:#1b6b56;
}
body.tl-public .tl-nearby-assist-panel ::-moz-selection,
body.tl-public .tl-gallery-booking-section ::-moz-selection {
  color:#ffffff;
  background:#1b6b56;
}


/* =========================================================
   CTA / FOOTER VISUAL SEPARATION
   Keep both premium green, but create a clear hierarchy:
   CTA = lighter emerald forest
   Footer = deepest lodge green
   ========================================================= */
body.tl-public .tl-final-cta-section {
  position:relative;
  background:linear-gradient(135deg,#185847 0%,#134a3c 100%) !important;
  border-top:1px solid rgba(224,191,126,.18);
  border-bottom:1px solid rgba(224,191,126,.20);
}

body.tl-public .tl-final-cta-section::after {
  position:absolute;
  left:50%;
  bottom:-1px;
  width:min(1060px,calc(100% - 48px));
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(224,191,126,.42),transparent);
  content:"";
}

body.tl-public .tl-final-cta h2 {
  color:#fffdf8 !important;
  -webkit-text-fill-color:#fffdf8 !important;
}
body.tl-public .tl-final-cta p {
  color:rgba(255,255,255,.82) !important;
  -webkit-text-fill-color:rgba(255,255,255,.82) !important;
}
body.tl-public .tl-final-cta .eyebrow {
  color:#f0cf8e !important;
  -webkit-text-fill-color:#f0cf8e !important;
}

/* Footer intentionally darker than the CTA band. */
body.tl-public .site-footer {
  background:#06271f !important;
  border-top:0 !important;
}

body.tl-public .site-footer .tl-footer-head {
  border-bottom-color:rgba(255,255,255,.14) !important;
}

@media (max-width:700px) {
  body.tl-public .tl-final-cta-section {
    background:linear-gradient(160deg,#185847 0%,#12463a 100%) !important;
  }
  body.tl-public .tl-final-cta-section::after {
    width:calc(100% - 28px);
  }
}


/* =========================================================
   FINAL CTA SIMPLIFICATION + FOOTER SEPARATION
   One primary conversion action per final CTA.
   Footer is informational/contact-focused, not another CTA bar.
   ========================================================= */

/* Header has one booking button only. */
body.tl-public .tl-nav-shell > .nav-book {
  white-space:nowrap;
}

/* Footer head no longer carries duplicate booking buttons. */
body.tl-public .site-footer .tl-footer-head {
  display:block !important;
}
body.tl-public .site-footer .tl-footer-head h2 {
  max-width:760px !important;
}

/* Final dark CTA on every page is clearly lighter than the footer. */
body.tl-public > section.tl-stay-info-section:last-of-type,
body.tl-public > section.tl-dark-section:last-of-type,
body.tl-public > section.tl-final-cta-section:last-of-type {
  position:relative;
  background:linear-gradient(135deg,#2a745e 0%,#1e5d4c 100%) !important;
  border-top:1px solid rgba(240,207,142,.22) !important;
  border-bottom:0 !important;
}

/* Warm divider makes the CTA/footer boundary unmistakable. */
body.tl-public > section.tl-stay-info-section:last-of-type::after,
body.tl-public > section.tl-dark-section:last-of-type::after,
body.tl-public > section.tl-final-cta-section:last-of-type::after {
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:6px;
  background:linear-gradient(90deg,#cda45f 0%,#efd391 50%,#cda45f 100%);
  content:"";
  z-index:3;
}

body.tl-public > section.tl-stay-info-section:last-of-type h2,
body.tl-public > section.tl-dark-section:last-of-type h2,
body.tl-public > section.tl-final-cta-section:last-of-type h2,
body.tl-public > section.tl-stay-info-section:last-of-type h3,
body.tl-public > section.tl-dark-section:last-of-type h3 {
  color:#fffdf8 !important;
  -webkit-text-fill-color:#fffdf8 !important;
}
body.tl-public > section.tl-stay-info-section:last-of-type p,
body.tl-public > section.tl-dark-section:last-of-type p,
body.tl-public > section.tl-final-cta-section:last-of-type p {
  color:rgba(255,255,255,.86) !important;
  -webkit-text-fill-color:rgba(255,255,255,.86) !important;
}
body.tl-public > section.tl-stay-info-section:last-of-type .eyebrow,
body.tl-public > section.tl-dark-section:last-of-type .eyebrow,
body.tl-public > section.tl-final-cta-section:last-of-type .eyebrow {
  color:#f3d89d !important;
  -webkit-text-fill-color:#f3d89d !important;
}

/* Footer is deliberately the darkest band. */
body.tl-public .site-footer {
  position:relative;
  margin-top:6px !important;
  background:#041e18 !important;
  border-top:0 !important;
}

/* Single-action CTA groups stay clean and compact. */
body.tl-public .tl-final-cta-actions,
body.tl-public .tl-stay-info-actions,
body.tl-public .tl-guide-actions {
  justify-content:flex-end;
}
body.tl-public .tl-final-cta-actions .btn,
body.tl-public .tl-stay-info-actions .btn,
body.tl-public .tl-guide-actions .btn {
  min-width:180px;
  justify-content:center;
}

@media (max-width:700px) {
  body.tl-public > section.tl-stay-info-section:last-of-type,
  body.tl-public > section.tl-dark-section:last-of-type,
  body.tl-public > section.tl-final-cta-section:last-of-type {
    background:linear-gradient(160deg,#276d59 0%,#1b5546 100%) !important;
  }
  body.tl-public > section.tl-stay-info-section:last-of-type::after,
  body.tl-public > section.tl-dark-section:last-of-type::after,
  body.tl-public > section.tl-final-cta-section:last-of-type::after {
    bottom:-4px;
    height:4px;
  }
  body.tl-public .site-footer {
    margin-top:4px !important;
  }
  body.tl-public .tl-final-cta-actions,
  body.tl-public .tl-stay-info-actions,
  body.tl-public .tl-guide-actions {
    justify-content:stretch;
  }
  body.tl-public .tl-final-cta-actions .btn,
  body.tl-public .tl-stay-info-actions .btn,
  body.tl-public .tl-guide-actions .btn {
    width:100%;
    min-width:0;
  }
}


/* =========================================================
   FINAL MOBILE MENU VISIBILITY FIX
   Overrides legacy style.css rule at <=760px that hides
   .site-header nav > a:not(.btn).
   ========================================================= */
@media (max-width:1020px) {
  body.tl-public .site-header {
    position:sticky;
    top:0;
    z-index:1400;
    overflow:visible !important;
  }

  body.tl-public .site-header .nav,
  body.tl-public .site-header .tl-nav-shell {
    overflow:visible !important;
  }

  body.tl-public .site-header nav[data-primary-nav] {
    z-index:1500 !important;
    box-sizing:border-box;
    max-height:calc(100vh - 132px);
    overflow-y:auto !important;
    overscroll-behavior:contain;
  }

  body.tl-public .site-header nav[data-primary-nav].is-open {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  body.tl-public .site-header nav[data-primary-nav].is-open > a:not(.btn) {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    align-items:center;
    width:100% !important;
    min-height:48px;
    padding:13px 16px !important;
    margin:0 !important;
    color:#173f34 !important;
    -webkit-text-fill-color:#173f34 !important;
    background:transparent !important;
    border-bottom:1px solid rgba(18,63,52,.10) !important;
    font-size:.9rem !important;
    font-weight:800 !important;
    line-height:1.35 !important;
    text-align:left !important;
    text-decoration:none !important;
  }

  body.tl-public .site-header nav[data-primary-nav].is-open > a:not(.btn):last-child {
    border-bottom:0 !important;
  }

  body.tl-public .site-header nav[data-primary-nav].is-open > a:not(.btn):hover,
  body.tl-public .site-header nav[data-primary-nav].is-open > a:not(.btn):focus-visible {
    color:#0b392d !important;
    -webkit-text-fill-color:#0b392d !important;
    background:#eef4f0 !important;
  }
}

@media (max-width:700px) {
  body.tl-public .site-header nav[data-primary-nav] {
    top:calc(100% + 8px) !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    padding:8px !important;
    border-radius:16px !important;
    background:#fffdf8 !important;
    box-shadow:0 22px 55px rgba(8,36,30,.20) !important;
  }

  body.tl-public .site-header nav[data-primary-nav].is-open > a:not(.btn) {
    min-height:46px;
    padding:12px 14px !important;
    border-radius:9px;
    font-size:.88rem !important;
  }
}
