/* Only loaded on tour detail pages. Mobile-first, WCAG-minded and no framework. */
.kgt-tour-detail { padding-bottom: 75px; }
.kgt-tour-section { scroll-margin-top: 160px; }
.kgt-tour-hero { position:relative; min-height:390px; display:flex; align-items:end; overflow:hidden; background:linear-gradient(120deg,#102f37,#23615f); isolation:isolate; color:#fff; }
.kgt-tour-hero::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(6,34,42,.85),rgba(6,34,42,.5)); }
.kgt-tour-hero-image { position:absolute; z-index:0; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; }
.kgt-tour-hero-content { position:relative; z-index:2; padding-block:4.3rem 3.2rem; }
.kgt-tour-hero h1 { color:#fff; max-width:850px; font-size:clamp(2.5rem,7vw,5.5rem); margin:.4rem 0 .8rem; }
.kgt-tour-tagline { font-size:clamp(1rem,2.5vw,1.3rem); max-width:720px; margin:0; color:#f5ffff; }
.kgt-tour-eyebrow { color:#ffedf0; font-weight:800; letter-spacing:.15em; text-transform:uppercase; font-size:.78rem; }
.kgt-tour-crumbs { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; margin-bottom:2.5rem; color:#fff; font-size:.82rem; }
.kgt-tour-crumbs a { color:#fff; text-decoration:underline; }
.kgt-tour-facts { background:#fff; border-bottom:1px solid var(--kgt-border); }
.kgt-tour-facts-grid { display:flex; gap:.8rem 1.3rem; flex-wrap:wrap; align-items:center; padding-block:1rem; }
.kgt-tour-fact { min-width:100px; flex:1 1 95px; }
.kgt-tour-fact span { display:block; color:var(--kgt-muted); font-size:.77rem; font-weight:650; }
.kgt-tour-fact strong { font-size:1rem; color:var(--kgt-ink); }
.kgt-tour-facts-cta { display:none; white-space:nowrap; }
.kgt-tour-anchor-nav { position:sticky; top:var(--kgt-sticky-nav, 76px); z-index:55; background:#fff; border-bottom:1px solid var(--kgt-border); box-shadow:0 8px 18px rgba(16,47,55,.04); }
.kgt-tour-anchor-links { display:flex; gap:1.4rem; overflow-x:auto; scrollbar-width:thin; white-space:nowrap; overscroll-behavior-x:contain; }
.kgt-tour-anchor-links a { padding:.95rem .05rem; color:var(--kgt-text); font-size:.85rem; font-weight:750; border-bottom:3px solid transparent; text-decoration:none; }
.kgt-tour-anchor-links a:hover, .kgt-tour-anchor-links a.is-active { color:#ae1329; border-bottom-color:var(--kgt-primary); }
.kgt-tour-two-cols, .kgt-tour-booking-grid { display:grid; gap:2rem; }
.kgt-tour-two-cols h2, .kgt-tour-section h2 { margin:.2rem 0 1.5rem; }
.kgt-tour-prose { max-width:76ch; overflow-wrap:anywhere; }
.kgt-tour-prose img, .kgt-tour-prose iframe { max-width:100%; }
.kgt-tour-check-list { padding-left:0; list-style:none; }
.kgt-tour-check-list li { padding:.3rem 0 .3rem 1.7rem; position:relative; }
.kgt-tour-check-list li::before { content:'✓'; color:#0b6665; font-weight:800; position:absolute; left:.2rem; }
.kgt-tour-exclusions li::before { content:'–'; color:#ae1329; }
.kgt-tour-fit { border:1px solid var(--kgt-border); padding:clamp(1.2rem,3vw,2rem); border-radius:16px; background:#fff; box-shadow:var(--kgt-shadow); align-self:start; }
.kgt-tour-fit h3 { margin-top:0; }
.kgt-tour-fit dl > div { border-top:1px solid var(--kgt-border); padding:.75rem 0; }
.kgt-tour-fit dt { font-weight:750; }
.kgt-tour-fit dd { margin:0; }
.kgt-tour-difficulty { display:flex; flex-wrap:wrap; gap:.8rem; justify-content:space-between; }
.kgt-tour-difficulty i { display:inline-block; width:19px; height:10px; border-radius:3px; margin-inline:2px; background:#d6e1df; }
.kgt-tour-difficulty i.is-filled { background:#ad1229; }
.kgt-tour-soft { background:#f0f5f2; }
.kgt-day-tabs { display:flex; gap:.4rem; overflow-x:auto; scrollbar-width:thin; margin-bottom:1rem; padding-bottom:.5rem; }
.kgt-day-tabs button { white-space:nowrap; padding:.62rem 1.1rem; border:1px solid #b6c9c6; background:#fff; border-radius:6px; color:#17333b; font-weight:700; }
.kgt-day-tabs button:hover, .kgt-day-tabs button.is-active { background:#102f37; color:#fff; border-color:#102f37; }
.kgt-route-layout { display:grid; gap:1.3rem; }
.kgt-route-map, .kgt-route-empty { width:100%; height:330px; border-radius:12px; overflow:hidden; background:#dce9e3; display:grid; place-items:center; }
.kgt-route-empty { padding:1.2rem; }
.kgt-route-map .leaflet-control-attribution { font-size:10px; }
.kgt-route-marker { background:#fff; display:grid; place-items:center; width:30px; height:30px; border:2px solid #a2162a; border-radius:50%; box-shadow:0 2px 7px #4558; }
.kgt-route-attribution, .kgt-note { color:#526a70; font-size:.83rem; margin:.7rem 0; }
.kgt-elevation-card { border-radius:12px; padding:1.1rem; background:#fff; border:1px solid var(--kgt-border); min-width:0; }
.kgt-elevation-card h3 { margin:0 0 1rem; }
.kgt-elevation-card svg { display:block; width:100%; height:auto; max-height:290px; }
.kgt-elevation-card [data-kgt-elevation] { min-height:175px; display:grid; place-items:center; font-size:.9rem; }
.kgt-itinerary-list { list-style:none; padding:0; margin:2rem 0 0; }
.kgt-itinerary-list > li { display:grid; grid-template-columns:42px minmax(0,1fr); gap:1rem; padding:1.5rem 0; border-bottom:1px solid #ccd9d6; }
.kgt-itinerary-day-num { border-radius:50%; width:42px; height:42px; color:#fff; background:#102f37; display:grid; place-items:center; font-weight:800; }
.kgt-itinerary-list h3 { margin:0 0 .6rem; }
.kgt-itinerary-facts { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:.8rem; font-size:.78rem; }
.kgt-itinerary-facts span { background:#fff; border:1px solid var(--kgt-border); padding:.15rem .6rem; border-radius:4px; }
.kgt-table-scroll { overflow-x:auto; max-width:100%; border:1px solid var(--kgt-border); border-radius:10px; }
.kgt-tour-table { width:100%; min-width:590px; border-collapse:collapse; background:#fff; }
.kgt-tour-table caption { text-align:left; font-weight:800; padding:1rem; color:#17333b; }
.kgt-tour-table th, .kgt-tour-table td { padding:.85rem 1rem; text-align:left; border-bottom:1px solid #dbe5e3; }
.kgt-tour-table thead { background:#102f37; color:#fff; }
.kgt-tour-table tbody tr:nth-child(even) { background:#f3f7f5; }
.kgt-departure-status { display:inline-block; font-size:.78rem; font-weight:750; border-radius:6px; padding:.3rem .5rem; background:#e8eeee; color:#29444a; white-space:nowrap; }
.kgt-status-available { background:#e1f1e8; color:#195b3d; }
.kgt-status-few_seats { background:#fff0d0; color:#6c4400; }
.kgt-status-cancelled, .kgt-status-full { background:#f4e6e8; color:#8d1829; }
.kgt-tour-inclusions, .kgt-tour-policy-grid, .kgt-tour-good-grid { display:grid; gap:1.5rem; margin-top:2.2rem; }
.kgt-tour-inclusions > div, .kgt-tour-good-grid article, .kgt-tour-policy-grid > div { border:1px solid var(--kgt-border); border-radius:12px; padding:1.4rem; background:#fff; }
.kgt-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
.kgt-photo-thumb { display:block; width:100%; padding:0; background:transparent; border:0; border-radius:8px; overflow:hidden; }
.kgt-photo-thumb img { width:100%; height:160px; object-fit:cover; transition:transform .2s ease; }
.kgt-photo-thumb:hover img { transform:scale(1.035); }
.kgt-lightbox { width:min(95vw,1150px); max-height:96dvh; padding:1rem; border:0; border-radius:12px; background:#102f37; color:#fff; }
.kgt-lightbox::backdrop { background:rgba(3,15,21,.9); }
.kgt-lightbox-inner { display:grid; grid-template-columns:38px minmax(0,1fr) 38px; align-items:center; gap:.4rem; padding-top:1.9rem; }
.kgt-lightbox-inner > button { color:#102f37; background:#fff; border:0; border-radius:6px; min-height:44px; font-size:2rem; }
.kgt-lightbox-inner > .kgt-lightbox-close { position:absolute; top:.35rem; right:.5rem; }
.kgt-lightbox figure { margin:0; min-width:0; }
.kgt-lightbox img { width:100%; max-height:75dvh; object-fit:contain; }
.kgt-lightbox figcaption { text-align:center; color:#fff; font-size:.86rem; }
.kgt-tour-faq-wrap { max-width:900px; }
.kgt-tour-faq details { background:#fff; border:1px solid var(--kgt-border); margin:.6rem 0; padding:1rem 1.3rem; border-radius:8px; }
.kgt-tour-faq summary { cursor:pointer; font-weight:750; color:var(--kgt-ink); }
.kgt-tour-faq details > div { padding-top:1rem; }
.kgt-tour-booking-grid .kgt-inquiry { margin:0; }
.kgt-tour-booking-grid .kgt-inquiry h2 { font-size:1.65rem; }
.kgt-tour-booking-grid .kgt-button-light { background:#fff; border-color:#a2162a; color:#a2162a; }
.kgt-mobile-bookbar { position:fixed; inset:auto 0 0; z-index:85; background:#fff; border-top:1px solid var(--kgt-border); padding:.6rem max(18px,4vw); display:flex; align-items:center; justify-content:space-between; gap:.7rem; box-shadow:0 -5px 18px rgba(16,47,55,.13); }
.kgt-mobile-bookbar small { display:block; color:var(--kgt-muted); font-size:.72rem; }
.kgt-mobile-bookbar strong { font-size:.88rem; white-space:nowrap; }
.kgt-mobile-bookbar .kgt-button { padding:.6rem; font-size:.78rem; min-height:44px; }
@media(min-width:700px){ .kgt-tour-facts-cta {display:inline-flex;} .kgt-tour-hero {min-height:500px;} .kgt-tour-two-cols {grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:3.5rem;} .kgt-route-layout {grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);} .kgt-photo-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;} .kgt-photo-thumb img {height:230px;} .kgt-tour-inclusions,.kgt-tour-policy-grid,.kgt-tour-good-grid {grid-template-columns:repeat(2,minmax(0,1fr));} .kgt-tour-booking-grid {grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:3rem;} .kgt-mobile-bookbar {display:none;} .kgt-tour-detail {padding-bottom:0;} }
@media(min-width:1000px){ .kgt-tour-hero {min-height:575px;} .kgt-route-map {height:400px;} .kgt-photo-grid {grid-template-columns:repeat(4,minmax(0,1fr));} .kgt-photo-thumb:nth-child(5n + 1) {grid-column:span 2;} .kgt-photo-thumb img {height:240px;} }
@media(max-width:390px){ .kgt-tour-fact {flex-basis:80px;} .kgt-photo-grid {grid-template-columns:repeat(2,minmax(0,1fr));} .kgt-lightbox-inner {grid-template-columns:32px minmax(0,1fr) 32px;gap:0;} }
@media(prefers-reduced-motion:reduce){ .kgt-photo-thumb img {transition:none;} .kgt-photo-thumb:hover img {transform:none;} }

.kgt-tour-trust { background:#102f37; color:#fff; }
.kgt-tour-trust .kgt-shell { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; justify-content:center; padding-block:.7rem; font-size:.83rem; font-weight:750; text-align:center; }
.kgt-tour-trust span::before { content:'✓'; margin-inline-end:.45rem; color:#94d7b9; }
@media(max-width:699px){body.single-tour .kgt-floating-whatsapp, body.single-group_tour .kgt-floating-whatsapp {bottom:max(88px, calc(env(safe-area-inset-bottom) + 76px)); }}
