/* Tour detail: one responsive layout, sized from its available container. */
.tour-detail-page{--td-accent:#d51c50;--td-header-height:80px;--td-nav-height:64px;--td-border:#e8e9ed;--td-muted:#687181;--td-surface:#f7f8fa;color:#202632;background:var(--td-surface);font-size:14px;line-height:1.75;min-width:0;width:auto}
.tour-detail-page *,.tour-detail-page *::before,.tour-detail-page *::after,.td-mobile-booking,.td-mobile-booking *{box-sizing:border-box}
.tour-detail-page :is(header,section,article,aside,figure,nav,div){min-width:0}
.tour-detail-page .container{width:100%;max-width:1200px;min-width:0;margin-inline:auto;padding-inline:28px}
.tour-detail-page .tour-detail{position:relative;padding:30px 0 36px;background:#fff;overflow:visible}
.tour-detail-page .tour-detail::before{display:none}
.tour-detail-page .breadcrumb{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 24px;font-size:12px;line-height:1.6;color:var(--td-muted);overflow-wrap:anywhere}
.tour-detail-page .breadcrumb>span:last-child{display:none}
.tour-detail-page .breadcrumb>span:nth-last-child(2){display:none}
.td-heading-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;color:var(--td-muted);font-size:13px}
.tour-detail-page .td-heading-meta .badge{position:static;display:inline-flex;align-items:center;padding:5px 12px;background:#fff0f4;border:1px solid #fbdbe5;border-radius:999px;box-shadow:none;color:var(--td-accent);font-size:11px;max-width:100%;white-space:normal}
.td-destination{display:inline-flex;align-items:center;gap:5px}
.td-destination .material-icons{font-size:17px;color:var(--td-accent)}
.td-package-code{margin-left:auto;font-size:12px}
.tour-detail-page .td-heading h1{max-width:1030px;margin:16px 0 14px;font-size:clamp(24px,3vw,36px);font-weight:700;line-height:1.5;letter-spacing:-.4px;overflow-wrap:anywhere}
.td-trip-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;color:#515c6a;font-size:13px}
.td-trip-tags>span{display:inline-flex;align-items:center;gap:7px;max-width:100%;overflow-wrap:anywhere}
.td-trip-tags .material-icons{font-size:18px;color:#7e8895;flex:none}
.td-heading-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 24px}
.td-social-proof,.td-social-proof a,.td-heading-actions{display:flex;align-items:center;gap:10px;min-width:0}
.td-social-proof{flex-wrap:wrap;font-size:12px;color:var(--td-muted)}
.td-social-proof a{gap:5px;min-height:44px;text-decoration:underline;text-underline-offset:4px;color:#303744}
.td-social-proof .material-icons{font-size:19px;color:#db9b14}
.td-heading-actions{flex:none;gap:8px}
.td-heading-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:44px;padding:8px 13px;border:1px solid var(--td-border);border-radius:12px;background:#fff;font-size:12px;color:#374151;cursor:pointer}
.td-heading-actions button[data-favorite-tour]{font-size:24px}
.td-heading-actions .material-icons{font-size:18px}
.td-heading-actions button.saved{background:#fff0f4;color:var(--td-accent);border-color:#f6c6d5}
.td-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:28px}
.td-gallery{position:relative;margin:0;min-width:0}
.td-cover-button{position:relative;display:block;width:100%;padding:0;border:1px solid var(--td-border);border-radius:22px;background:#f2f4f6;overflow:hidden;cursor:zoom-in}
.tour-detail-page .detail-cover{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;border-radius:0;box-shadow:none}
.td-image-expand{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:7px 12px;background:#fffffff2;border:1px solid #ffffff;border-radius:10px;color:#344051;font-size:12px;box-shadow:0 2px 12px #0001}
.td-image-expand .material-icons{font-size:17px}
.td-gallery figcaption{display:flex;align-items:flex-start;gap:6px;margin-top:12px;font-size:12px;line-height:1.6;color:var(--td-muted)}
.td-gallery figcaption .material-icons{font-size:17px;flex:none;margin-top:1px}
.tour-detail-page .td-sold-out-note{position:absolute;left:16px;top:16px;display:grid;gap:2px;padding:12px 16px;background:#253043eb;border-radius:12px;color:#fff;pointer-events:none}
.tour-detail-page .td-sold-out-note::before{display:none}
.tour-detail-page .td-sold-out-note strong{font-size:19px}
.tour-detail-page .td-sold-out-note span{font-size:12px;margin:0}
.td-booking-card{padding:28px;border:1px solid var(--td-border);border-radius:22px;background:#fff;box-shadow:0 8px 30px #20263208}
.td-card-eyebrow{display:flex;align-items:center;gap:7px;margin-bottom:18px;color:var(--td-accent);font-size:12px;font-weight:600}
.td-card-eyebrow .material-icons{font-size:19px}
.td-hero-price{margin:0}
.td-hero-price small{font-size:13px;color:var(--td-muted)}
.td-hero-price>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;margin:3px 0}
.td-hero-price strong{font-size:42px;line-height:1.4;letter-spacing:-1px;color:var(--td-accent);overflow-wrap:anywhere}
.td-hero-price del{color:var(--td-muted);font-size:14px}
.td-hero-price p{margin:4px 0 0;font-size:12px;line-height:1.7;color:var(--td-muted)}
.td-facts{display:grid;gap:16px;margin:22px 0;padding-top:22px;border-top:1px solid var(--td-border)}
.td-facts>div{display:grid;grid-template-columns:22px minmax(0,.8fr) minmax(0,1.3fr);align-items:start;gap:10px;line-height:1.6;font-size:13px}
.td-facts .material-icons{font-size:20px;color:#8390a1;margin-top:1px}
.td-facts dt{color:var(--td-muted)}
.td-facts dd{margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}
.td-airline-logo{display:inline-block;width:auto;height:28px;max-width:120px;object-fit:contain;vertical-align:middle}
.td-facts .td-airline-logo{height:36px;max-width:min(140px,100%)}
.td-next-departure{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:13px;border:1px solid #d9eee3;border-radius:12px;background:#f3fbf6;color:#276946}
.td-availability-dot{width:7px;height:7px;border-radius:50%;background:#29965c;flex:none}
.td-next-departure>div{display:grid;gap:3px}
.td-next-departure small{font-size:11px}
.td-next-departure strong{font-size:14px}
.td-next-departure>span:last-child{margin-left:auto;flex:none;font-size:12px}
.tour-detail-page .primary-link-button,.td-mobile-booking .primary-link-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:12px 18px;border:1px solid var(--td-accent,#d51c50);border-radius:12px;background:var(--td-accent,#d51c50);color:#fff;font-size:14px;font-weight:600;line-height:1.5;cursor:pointer}
.tour-detail-page .primary-link-button:hover,.td-mobile-booking .primary-link-button:hover{background:#b91744;border-color:#b91744}
.tour-detail-page .td-main-cta{display:flex;width:100%;justify-content:space-between;margin:0}
.td-main-cta .material-icons{font-size:20px}
.tour-detail-page .detail-secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;margin:10px 0 0;padding:10px 14px;border:1px solid var(--td-border);border-radius:12px;background:#fff;font-size:13px;color:#3f4b5c;line-height:1.5;white-space:normal}
.tour-detail-page .detail-secondary-button:hover{background:var(--td-surface);border-color:#cad0d9}
.tour-detail-page .detail-secondary-button .material-icons{font-size:19px}
.td-pdf-link{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;margin-top:5px;color:var(--td-accent);font-size:12px;text-decoration:underline;text-underline-offset:4px}
.td-pdf-link .material-icons{font-size:18px}
.td-booking-hint{font-size:11px;line-height:1.7;color:var(--td-muted);text-align:center;margin:12px 0 0}
.td-unavailable{margin:0 0 16px;padding:14px;border-radius:12px;background:#fff8ec;color:#84561f;font-size:13px;line-height:1.8}
.td-highlights{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:12px;margin-top:26px;padding:22px 24px;background:#fff8f4;border:1px solid #fae8dd;border-radius:18px}
.td-highlights>.material-icons{font-size:25px;color:#bc7145;margin-top:1px}
.td-highlights strong{font-size:15px;color:#66472f}
.td-highlights p{margin:7px 0 0;color:#68594e;font-size:14px;line-height:1.9;overflow-wrap:anywhere;white-space:normal}
.td-highlights.is-collapsible:not(.is-expanded) p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.td-highlights-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:4px;padding:0;border:0;background:none;font-size:12px;font-weight:600;color:#9c5935;cursor:pointer}
.td-highlights-toggle[hidden]{display:none}
.td-section-nav{position:sticky;top:var(--td-header-height);z-index:29;background:#fff;border-top:1px solid var(--td-border);border-bottom:1px solid var(--td-border)}
.td-section-nav .container{display:flex;align-items:center;gap:26px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}
.td-section-nav .container::-webkit-scrollbar{display:none}
.td-section-nav a{display:flex;align-items:center;flex:none;min-height:62px;border-bottom:3px solid transparent;padding-top:3px;color:var(--td-muted);font-size:13px;font-weight:600;white-space:nowrap}
.td-section-nav a[aria-current]{color:var(--td-accent);border-bottom-color:var(--td-accent)}
.tour-detail-page section[id],.tour-detail-page #tour-itinerary{scroll-margin-top:calc(var(--td-header-height) + var(--td-nav-height) + 20px)}
.tour-detail-page .section{padding:36px 0 0;overflow:visible;background:transparent}
.tour-detail-page .section-kicker{color:var(--td-accent);font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:none}
.tour-detail-page :is(.departure-panel,.detail-content,.detail-action-card){min-width:0;border:1px solid var(--td-border);border-radius:20px;background:#fff;box-shadow:none}
.tour-detail-page .departure-panel{padding:0;overflow:visible}
.tour-detail-page .departure-panel-head{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:16px;padding:24px;background:transparent;border-bottom:1px solid var(--td-border);margin:0}
.tour-detail-page .departure-panel-head h2{font-size:25px;margin:4px 0 0;line-height:1.5;letter-spacing:-.3px}
.tour-detail-page .departure-panel-head p{font-size:12px;color:var(--td-muted);font-weight:400;line-height:1.7;margin:5px 0 0}
.tour-detail-page .departure-panel-head .detail-secondary-button{display:none}
.tour-detail-page .departure-view-toggle{display:flex;gap:4px;flex:none;margin-left:auto;padding:4px;border:1px solid var(--td-border);border-radius:12px;background:var(--td-surface)}
.tour-detail-page .departure-view-button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;height:auto;padding:8px 12px;background:transparent;border:0;border-radius:8px;font-size:12px;font-weight:600;color:var(--td-muted);cursor:pointer}
.tour-detail-page .departure-view-button.is-active{color:var(--td-accent);background:#fff;box-shadow:0 2px 6px #2026320b}
.departure-view-button .material-icons{font-size:18px}
.td-departure-filter{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:14px 24px 0;font-size:12px;color:var(--td-muted)}
.td-departure-filter label{display:flex;align-items:center;gap:9px;min-height:44px;cursor:pointer;color:#424d5b}
.td-departure-filter input{width:18px;height:18px;flex:none;accent-color:var(--td-accent)}
.tour-detail-page .departure-month-tabs{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;margin:10px 24px 20px;padding-bottom:6px}
.tour-detail-page .departure-month-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;min-height:44px;padding:8px 14px;border:1px solid var(--td-border);border-radius:10px;background:#fff;color:#525f70;font-size:12px;font-weight:600;white-space:nowrap}
.tour-detail-page .departure-month-tab.is-active{background:#fff0f4;border-color:#f2bacb;color:var(--td-accent)}
.tour-detail-page .departure-month-tab small{font-size:10px;border-radius:5px;padding:1px 5px;background:#f0f2f5}
.tour-detail-page .departure-month-tab.is-active small{background:#fce1e9;color:var(--td-accent)}
.tour-detail-page .departure-month-list{padding:0 24px 24px}
.tour-detail-page .departure-month-group h3{margin:0 0 14px;font-size:14px;font-weight:600;color:#616d7c}
.tour-detail-page .departure-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
.tour-detail-page .departure-row{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:12px;min-width:0;padding:14px;border:1px solid var(--td-border);border-radius:14px;background:#fff;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.tour-detail-page .departure-row:hover{transform:none;border-color:#efacbf;box-shadow:0 4px 14px #20263208}
.tour-detail-page [data-departure-status][hidden],.tour-detail-page .departure-view[hidden]{display:none!important}
.tour-detail-page .departure-row:is([data-departure-status=sold_out],[data-departure-status=closed],[data-departure-status=waiting_seat]){background:#f7f8fa}
.td-period-date{display:grid;gap:5px;min-width:0}
.tour-detail-page .td-period-topline{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 8px;margin-bottom:3px}
.tour-detail-page .td-period-date-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:var(--td-muted)}
.tour-detail-page .td-period-date-label .material-icons{font-size:16px;color:#7e8895;font-weight:400}
.tour-detail-page .td-period-topline em{max-width:100%;padding:3px 7px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.6;white-space:normal;text-align:center}
.td-period-date strong{font-size:16px;line-height:1.5;color:#283241;overflow-wrap:anywhere}
.tour-detail-page .departure-prices{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:4px;padding:10px;border:1px solid #f9e4eb;border-radius:10px;background:#fff8fa}
.tour-detail-page .td-adult-price{display:grid;gap:3px;min-width:0}
.tour-detail-page .td-adult-price strong{font-size:25px;line-height:1.4;color:var(--td-accent);overflow-wrap:anywhere}
.tour-detail-page .departure-row small{font-size:11px;line-height:1.7;color:var(--td-muted)}
.tour-detail-page .departure-price-stack{display:grid;gap:2px}
.tour-detail-page .td-adult-price .departure-price-stack{display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:2px 6px}
.tour-detail-page .td-adult-price .departure-price-stack strong{order:0}
.tour-detail-page .td-adult-price .departure-price-stack del{order:1;font-size:11px;color:var(--td-muted);font-weight:400}
.tour-detail-page .departure-price-stack strong{color:var(--td-accent)}
.td-other-prices{grid-column:1/-1;border-top:1px dashed #efdce3;padding-top:2px}
.td-other-prices summary{display:flex;justify-content:space-between;align-items:center;gap:6px;min-height:44px;font-size:12px;color:#536174;cursor:pointer;list-style:none}
.td-other-prices summary::-webkit-details-marker{display:none}
.tour-detail-page .td-other-prices summary .material-icons{font-size:18px;font-weight:400;color:var(--td-muted)}
.td-other-prices[open] summary .material-icons{transform:rotate(180deg)}
.td-other-prices>div{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:6px 0;font-size:13px}
.td-other-prices>div span{display:grid;gap:2px}
.tour-detail-page .departure-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:center}
.tour-detail-page .departure-actions em{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 5px;border-radius:9px;font-size:11px;font-style:normal;white-space:normal;text-align:center}
.tour-detail-page .detail-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:auto;padding:10px;border-radius:9px;font-size:12px;line-height:1.6;text-align:center;white-space:normal}
.tour-detail-page .departure-actions .detail-button:not(:disabled){background:var(--td-accent);border-color:var(--td-accent);color:#fff}
.tour-detail-page .departure-actions .detail-button{gap:8px}
.tour-detail-page .departure-actions .detail-button .material-icons{font-size:17px;font-weight:400;color:inherit}
.tour-detail-page .departure-actions .detail-button:not(:disabled):hover{background:#b91744;border-color:#b91744}
.tour-detail-page .departure-actions .detail-button:disabled{color:#7b8290;background:#eaecef;border-color:#eaecef}
.tour-detail-page em.status-available{background:#edf8f0;color:#287044}
.tour-detail-page em.status-few_seats{background:#fff5dc;color:#916618}
.tour-detail-page em.status-waiting_seat{background:#edf1ff;color:#586b9d}
.tour-detail-page em.status-sold_out,.tour-detail-page em.status-closed{background:#eceef1;color:#6b7280}
.td-price-note{display:flex;align-items:flex-start;gap:8px;margin:0;padding:16px 24px;border-top:1px solid var(--td-border);border-radius:0 0 20px 20px;background:#fcfcfd;color:var(--td-muted);font-size:12px;line-height:1.8}
.td-price-note .material-icons{font-size:18px;flex:none;margin-top:2px}
.td-filter-empty{margin:0;padding:20px 24px;color:var(--td-muted);font-size:14px}
.tour-detail-page .departure-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;margin:0 24px 24px;border:1px solid var(--td-border);border-radius:12px}
.tour-detail-page .departure-table{min-width:760px;width:100%}
.tour-detail-page .departure-calendar{display:grid;gap:20px;padding:0 24px 24px}
.tour-detail-page .departure-calendar-month{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.tour-detail-page .departure-calendar-weekdays,.tour-detail-page .departure-calendar-days{min-width:700px}
.tour-detail-page .departure-copy-toolbar{position:static;display:flex;flex-wrap:wrap;margin:16px 24px;padding:12px;border-radius:12px;box-shadow:none}
.tour-detail-page .staff-tour-tools{margin:0 0 20px;overflow-wrap:anywhere}
.tour-detail-page .staff-tour-tools span{max-width:100%;white-space:normal}
.tour-detail-page .content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);align-items:start;gap:24px}
.tour-detail-page .detail-content{padding:28px;min-width:0}
.tour-detail-page .detail-content h2{font-size:25px;line-height:1.5;letter-spacing:-.3px;margin:0 0 20px}
.tour-detail-page .detail-content p{font-size:14px;line-height:1.9;color:#596476;overflow-wrap:anywhere}
.tour-detail-page .detail-action-panel{position:sticky;top:calc(var(--td-header-height) + var(--td-nav-height) + 20px)}
.tour-detail-page .td-help-card{padding:24px;gap:10px}
.td-help-icon{display:grid;place-items:center;width:48px;height:48px;background:#fff0f4;border-radius:14px;color:var(--td-accent);font-size:26px}
.tour-detail-page .td-help-card h2{font-size:20px;line-height:1.5;margin:5px 0 0}
.td-help-card p{margin:0;font-size:13px;line-height:1.8;color:var(--td-muted)}
.td-itinerary-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin:26px 0 20px}
.tour-detail-page .td-itinerary-head h2{margin:5px 0 0}
.td-itinerary-head button{min-height:44px;padding:9px 12px;border:1px solid var(--td-border);border-radius:10px;background:#fff;font-size:12px;color:#536174;cursor:pointer}
.tour-detail-page .itinerary-day{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px}
.tour-detail-page .itinerary-day-marker{width:48px;height:58px;background:#fff0f4;color:var(--td-accent);border-radius:12px}
.tour-detail-page .itinerary-day-marker strong{font-size:24px;line-height:1.3}
.tour-detail-page .itinerary-day:not(:last-child)::before{left:23px;top:64px;background:#eee3e8}
.tour-detail-page .itinerary-day-body{padding:0;border:1px solid var(--td-border);border-radius:12px;background:#fff;min-width:0}
.itinerary-day-body summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:16px;cursor:pointer;list-style:none}
.itinerary-day-body summary::-webkit-details-marker{display:none}
.tour-detail-page .itinerary-day-body h3{margin:0;font-size:15px;line-height:1.7;overflow-wrap:anywhere}
.itinerary-day-body summary>.material-icons{flex:none;font-size:21px;color:#8390a1;transition:transform .15s}
.itinerary-day-body[open] summary>.material-icons{transform:rotate(180deg)}
.tour-detail-page .itinerary-day-body>p{margin:0;padding:0 16px 12px}
.tour-detail-page .itinerary-meal-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:5px 16px 16px}
.tour-detail-page .itinerary-meal{display:flex;align-items:center;gap:5px;padding:8px;border-radius:8px;font-size:10px;font-weight:500;white-space:normal}
.tour-detail-page .itinerary-meal .material-icons{font-size:17px;flex:none}
.tour-detail-page .itinerary-hotel-line{margin:0 16px 16px;font-size:12px;flex-wrap:wrap}
.tour-detail-page .tour-review-section .content-grid{grid-template-columns:minmax(0,1fr) minmax(0,300px)}
.tour-detail-page .tour-review-section .section-head.compact{display:grid;gap:12px}
.tour-detail-page .tour-review-list{min-width:0}
.tour-detail-page .tour-review-item{overflow-wrap:anywhere}
.tour-detail-page .review-form-card{padding:24px}
.tour-detail-page .review-form-card h2{font-size:21px}
.tour-detail-page .review-form-card p{font-size:13px;line-height:1.8}
.tour-detail-page .td-faq-section{padding-bottom:36px}
.td-faq-section .section-head{margin-bottom:18px}
.td-faq-section h2{font-size:27px;line-height:1.5}
.td-faq-list{display:grid;border:1px solid var(--td-border);border-radius:18px;background:#fff;overflow:hidden}
.td-faq-list details+details{border-top:1px solid var(--td-border)}
.td-faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:18px 24px;font-size:14px;font-weight:600;list-style:none;cursor:pointer}
.td-faq-list summary::-webkit-details-marker{display:none}
.td-faq-list summary .material-icons{font-size:22px;flex:none;color:#8390a1}
.td-faq-list details[open] summary .material-icons{transform:rotate(180deg)}
.td-faq-list p{margin:0;padding:0 24px 22px;font-size:14px;line-height:1.9;color:var(--td-muted);overflow-wrap:anywhere}
.tour-detail-page .soft-section{padding:0 0 40px}
.tour-detail-page .soft-section .section-head h2{font-size:27px;line-height:1.5}
.tour-detail-page .tour-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.tour-detail-page .tour-card{min-width:0}
.td-pdf-card{margin:0 0 24px;padding:20px;border:1px solid #f1dbe3;border-radius:14px;background:#fff9fb}
.td-pdf-card [hidden]{display:none!important}
.td-pdf-card-head{display:flex;align-items:center;gap:12px;min-width:0}
.td-pdf-icon{display:grid;place-items:center;width:44px;height:48px;border-radius:12px;background:#ffeaf0;font-size:26px;color:var(--td-accent);flex:none}
.td-pdf-card-head h3{margin:0;font-size:17px;line-height:1.6}
.tour-detail-page .td-pdf-card-head p{margin:3px 0 0;font-size:12px;line-height:1.7}
.td-pdf-type{margin-left:auto;flex:none;padding:3px 7px;border:1px solid #eed7df;border-radius:6px;color:var(--td-accent);font-size:10px}
.td-pdf-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.td-pdf-actions a,.td-pdf-preview-head button,.td-pdf-error button{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 12px;border:1px solid #e9dce1;border-radius:10px;background:#fff;font-size:12px;font-weight:600;color:#536174;cursor:pointer}
.td-pdf-actions .td-pdf-read{background:var(--td-accent);border-color:var(--td-accent);color:#fff}
.td-pdf-actions .material-icons,.td-pdf-preview-head .material-icons{font-size:18px}
.tour-detail-page .td-pdf-hint{margin:10px 0 0;font-size:11px;color:var(--td-muted)}
.td-pdf-preview{margin-top:18px;border:1px solid var(--td-border);border-radius:12px;background:#fff;overflow:hidden}
.td-pdf-preview-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px;border-bottom:1px solid var(--td-border);font-size:12px}
.td-pdf-preview-head>div{display:flex;flex-wrap:wrap;gap:6px}
.td-pdf-frame iframe{display:block;width:100%;height:700px;border:0;background:#f5f5f5}
.td-pdf-loading,.td-pdf-error{padding:18px;font-size:13px}
.td-pdf-error>div{display:flex;flex-wrap:wrap;gap:8px}
.td-pdf-fallback{padding:0 12px 12px;font-size:11px!important}
.td-pdf-fallback a{color:var(--td-accent);text-decoration:underline}
.td-pdf-preview:fullscreen{display:flex;flex-direction:column;border:0;border-radius:0;background:#fff}
.td-pdf-preview:fullscreen .td-pdf-frame{flex:1;min-height:0}
.td-pdf-preview:fullscreen iframe{height:100%}
.td-mobile-booking{display:none;--td-accent:#d51c50}
.td-image-dialog{position:fixed;margin:auto;padding:58px 16px 16px;border:0;border-radius:18px;width:max-content;max-width:calc(100% - 24px);max-height:92dvh;background:#fff;overflow:auto}
.td-image-dialog::backdrop{background:#142033c9;backdrop-filter:blur(4px)}
.td-image-dialog>button{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #e4e7ed;border-radius:50%;background:#fff;font-size:25px;cursor:pointer}
.td-image-dialog img{display:block;max-width:100%;max-height:calc(92dvh - 80px);height:auto;object-fit:contain;margin:auto}
.td-image-open{overflow:hidden}
.tour-detail-page :is(a,button,input,summary):focus-visible,.td-mobile-booking :is(a,button):focus-visible,.td-image-dialog button:focus-visible{outline:3px solid #d51c50;outline-offset:3px}
.tour-detail-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.td-booking-steps[hidden],#booking-modal [hidden]{display:none!important}
.td-room-guide{margin:0 0 14px;color:#687181;font-size:12px;line-height:1.8}
#booking-modal{--td-accent:#d51c50}
#booking-modal :is(button,input,select,textarea):focus-visible{outline:3px solid #d51c50;outline-offset:2px}
body.tour-detail-body #tour-modal .modal-dialog{max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
body.tour-detail-body #tour-modal input{font-size:16px}
@media(max-width:1100px){
  .td-hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px}
  .td-booking-card{padding:24px}
}
@media(max-width:1023px){.tour-detail-page .departure-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.tour-detail-page .departure-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:960px){
  .td-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
  .td-booking-card{padding:20px}
  .td-hero-price strong{font-size:34px}
  .td-facts>div{grid-template-columns:20px minmax(0,1fr);gap:5px 8px}
  .td-facts dd{grid-column:2;text-align:left}
  .tour-detail-page .content-grid,.tour-detail-page .tour-review-section .content-grid{grid-template-columns:minmax(0,1fr)}
  .tour-detail-page .detail-action-panel{position:static}
  .tour-detail-page .td-help-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:6px 14px}
  .td-help-icon{grid-row:1/3}
  .td-help-card button,.td-help-card .td-pdf-link{grid-column:1/-1}
  .tour-detail-page .tour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  body.tour-detail-body{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
  body.tour-detail-body #toast{bottom:calc(98px + env(safe-area-inset-bottom,0px))}
  .tour-detail-page{--td-nav-height:54px}
  .tour-detail-page .container{padding-inline:20px}
  .tour-detail-page .tour-detail{padding:20px 0 24px}
  .tour-detail-page .breadcrumb{margin-bottom:16px;font-size:11px}
  .td-heading-meta{gap:8px;font-size:12px}
  .td-package-code{margin-left:0;font-size:11px}
  .tour-detail-page .td-heading h1{font-size:25px;line-height:1.5;margin:12px 0}
  .td-trip-tags{gap:6px 14px;font-size:12px}
  .td-trip-tags .material-icons{font-size:17px}
  .td-trip-tags>span:last-child{display:none}
  .td-heading-bottom{margin:14px 0 20px;gap:8px}
  .td-social-proof>span{display:none}
  .td-heading-actions button{padding:8px 11px}
  .td-hero-grid{grid-template-columns:minmax(0,1fr);gap:20px}
  .td-cover-button{border-radius:18px}
  .td-booking-card{padding:22px;border-radius:18px;box-shadow:none}
  .td-card-eyebrow{margin-bottom:10px}
  .td-hero-price strong{font-size:36px}
  .td-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin:18px 0;padding-top:18px}
  .td-facts>div{font-size:12px}
  .td-facts dd{font-size:13px}
  .td-next-departure{padding:12px}
  .td-highlights{margin-top:20px;padding:18px;gap:10px;grid-template-columns:24px minmax(0,1fr);border-radius:16px}
  .td-highlights p{font-size:13px}
  .td-section-nav .container{gap:22px}
  .td-section-nav a{min-height:52px;font-size:12px}
  .tour-detail-page .section{padding-top:24px}
  .tour-detail-page .departure-panel-head{padding:20px;gap:16px}
  .tour-detail-page .departure-panel-head h2{font-size:22px}
  .tour-detail-page .departure-view-toggle{width:100%;margin:0}
  .tour-detail-page .departure-view-button{flex:1;min-width:0;min-height:44px;padding:8px 5px}
  .td-departure-filter{padding:12px 20px 0;font-size:12px}
  .td-departure-filter>span{font-size:11px}
  .tour-detail-page .departure-month-tabs{margin:10px 20px 18px}
  .tour-detail-page .departure-month-list{padding:0 20px 20px}
  .tour-detail-page .departure-list{grid-template-columns:minmax(0,1fr);gap:12px}
  .tour-detail-page .departure-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;gap:12px;padding:14px}
  .td-period-date{align-content:start;padding-top:2px}
  .td-period-date strong{font-size:16px}
  .tour-detail-page .departure-prices{padding:10px;border:1px solid #f9e4eb}
  .tour-detail-page .td-adult-price strong{font-size:25px}
  .td-other-prices>div{grid-template-columns:minmax(0,1fr)}
  .td-other-prices summary{font-size:11px}
  .tour-detail-page .departure-actions{grid-column:1/-1;grid-template-columns:minmax(0,1fr);padding-top:0;border-top:0}
  .tour-detail-page .departure-actions .detail-button{font-size:13px;min-height:46px}
  .td-price-note{padding:16px 20px;font-size:11px}
  .tour-detail-page .departure-table-wrap{margin:0 20px 20px}
  .tour-detail-page .departure-calendar{padding:0 20px 20px}
  .tour-detail-page .departure-copy-toolbar{margin:12px 20px}
  .tour-detail-page .detail-content{padding:22px 20px;border-radius:18px}
  .tour-detail-page .detail-content h2{font-size:22px}
  .tour-detail-page .itinerary-day{grid-template-columns:38px minmax(0,1fr);gap:10px}
  .tour-detail-page .itinerary-day-marker{width:38px;height:50px;border-radius:9px}
  .tour-detail-page .itinerary-day-marker strong{font-size:21px}
  .tour-detail-page .itinerary-day:not(:last-child)::before{left:18px;top:56px}
  .itinerary-day-body summary{padding:12px;gap:8px}
  .tour-detail-page .itinerary-day-body h3{font-size:14px}
  .tour-detail-page .itinerary-day-body>p{font-size:13px;padding:0 12px 12px}
  .tour-detail-page .itinerary-meal-list{grid-template-columns:minmax(0,1fr);margin:0 12px 12px}
  .tour-detail-page .itinerary-meal{font-size:11px}
  .tour-detail-page .itinerary-hotel-line{margin:0 12px 12px;padding:10px;font-size:11px}
  .td-pdf-card{padding:16px}
  .td-pdf-card-head{gap:9px}
  .td-pdf-card-head h3{font-size:15px}
  .td-pdf-icon{width:36px;height:42px;font-size:23px}
  .td-pdf-type{display:none}
  .td-pdf-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .td-pdf-actions .td-pdf-read{grid-column:1/-1}
  .td-pdf-actions a{font-size:11px;padding:10px 8px}
  .td-pdf-frame iframe{height:520px}
  .tour-detail-page .td-faq-section{padding-bottom:28px}
  .td-faq-section h2,.tour-detail-page .soft-section .section-head h2{font-size:24px}
  .td-faq-list summary{padding:17px 20px;font-size:13px;min-height:64px}
  .td-faq-list p{padding:0 20px 18px;font-size:13px}
  .tour-detail-page .tour-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .tour-detail-page .soft-section{padding-bottom:28px}
  .td-mobile-booking{position:fixed;inset:auto 0 0;z-index:40;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:auto;margin:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid #e8e9ed;background:#fffffff7;box-shadow:0 -4px 20px #20263208;backdrop-filter:blur(12px)}
  .td-mobile-booking>div{display:grid;gap:2px;min-width:0}
  .td-mobile-booking small{font-size:11px;color:#687181;line-height:1.5}
  .td-mobile-booking strong{font-size:25px;line-height:1.4;color:#d51c50;overflow-wrap:anywhere;letter-spacing:-.5px}
  .td-mobile-booking .primary-link-button{width:auto;margin:0;min-height:48px;padding:12px 16px;font-size:13px}
}
@media(max-width:360px){
  .tour-detail-page .container{padding-inline:14px}
  .tour-detail-page .td-heading h1{font-size:22px}
  .td-heading-actions button{padding:8px}
  .tour-detail-page .departure-panel-head,.tour-detail-page .detail-content{padding:18px 14px}
  .tour-detail-page .departure-month-list{padding:0 14px 18px}
  .tour-detail-page .departure-month-tabs{margin-inline:14px}
  .td-departure-filter{padding-inline:14px}
  .tour-detail-page .departure-row{padding:14px;gap:10px}
  .tour-detail-page .departure-prices{padding-left:10px}
  .tour-detail-page .td-adult-price strong{font-size:23px}
  .td-period-date strong{font-size:15px}
  .td-mobile-booking{padding-inline:14px;gap:8px}
  .td-mobile-booking strong{font-size:23px}
  .td-mobile-booking .primary-link-button{padding-inline:12px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.tour-detail-page *{scroll-behavior:auto!important;transition:none!important}}
/* Booking steps retain the existing validation and price calculation flow. */
@media(max-width:600px){
  #booking-modal{padding:0;height:var(--td-booking-viewport,100dvh);place-items:stretch;--td-accent:#c51c46}
  #booking-modal .booking-dialog{width:100%;height:100%;max-height:100%;border-radius:0;box-shadow:none}
  #booking-modal .modal-close{width:44px;height:44px;right:10px;top:10px;background:#f6f6f6}
  #booking-modal .booking-header{padding:14px 62px 12px 16px;flex:none}
  #booking-modal .booking-eyebrow{font-size:11px;letter-spacing:0;margin-bottom:5px;color:var(--td-accent)}
  #booking-modal .booking-header h2{font-size:16px;line-height:1.5}
  #booking-modal .booking-meta{gap:4px;margin-top:6px}
  #booking-modal .booking-meta span{font-size:10px;padding:3px 6px}
  #booking-modal .booking-meta span:has(+ #booking-selected-period){display:none}
  #booking-modal .td-booking-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line-soft);background:white;flex:none}
  #booking-modal .td-booking-steps button{display:flex;align-items:center;justify-content:center;gap:6px;height:auto;min-height:44px;padding:5px 4px;background:#f4f4f4;color:var(--muted);font-size:11px;font-weight:600;border:1px solid transparent;border-radius:10px}
  #booking-modal .td-booking-steps button span{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:#e8e8e8;font-size:11px}
  #booking-modal .td-booking-steps button[aria-current]{background:#fff1f5;border-color:#f4c7d4;color:var(--td-accent)}
  #booking-modal .td-booking-steps button[aria-current] span{color:white;background:var(--td-accent)}
  #booking-modal .booking-content{flex:1;display:block;overflow-y:auto;overscroll-behavior:contain;padding:14px 12px;scroll-behavior:auto}
  #booking-modal .booking-main{gap:12px}
  #booking-modal .booking-card,#booking-modal .booking-summary-card{padding:16px 12px;border-radius:12px}
  #booking-modal .booking-card h3,#booking-modal .booking-summary-card h3{font-size:16px;line-height:1.5}
  #booking-modal .booking-contact-grid{gap:14px}
  #booking-modal label{font-size:13px;font-weight:600;line-height:1.7}
  #booking-modal :is(input,select,textarea){font-size:16px;font-weight:400;min-height:48px}
  #booking-modal .booking-period-field{margin-bottom:16px}
  #booking-modal .booking-traveller-row,#booking-modal .booking-room-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px 10px;align-items:center}
  #booking-modal .booking-row-copy strong{font-size:13px;line-height:1.6}
  #booking-modal .booking-row-copy small{font-size:11px;line-height:1.6}
  #booking-modal .booking-stepper{grid-column:2;grid-row:1;grid-template-columns:44px 30px 44px;width:120px;border-radius:9px}
  #booking-modal .booking-stepper button{height:44px;min-height:44px;background:#fff;color:var(--ink);border-radius:0;font-size:21px;padding:0}
  #booking-modal .booking-stepper button:disabled{color:#bbb;cursor:default}
  #booking-modal .booking-stepper output{height:44px;font-size:15px}
  #booking-modal .booking-row-price{grid-column:1;align-items:flex-start;text-align:left}
  #booking-modal .booking-row-total{grid-column:2;align-items:flex-end;text-align:right}
  #booking-modal .booking-row-price span,#booking-modal .booking-row-total strong{font-size:14px}
  #booking-modal .booking-price-stack{align-items:flex-start}
  #booking-modal .booking-room-badge{justify-self:start;min-width:0;padding:4px 8px;font-size:10px}
  #booking-modal .booking-room-alert{line-height:1.8;font-weight:500}
  #booking-modal .booking-note-field + .booking-note-field{margin-top:16px}
  #booking-modal #affiliate-check{height:auto;min-height:44px;font-size:12px;padding:8px 12px;margin:10px 0 16px}
  #booking-modal .booking-summary{margin-top:12px}
  #booking-modal .booking-summary-card{position:static}
  #booking-modal .booking-summary-card dt{font-size:12px;line-height:1.7}
  #booking-modal .booking-summary-card dd{flex:none}
  #booking-modal .booking-footer{position:static;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px #00000006}
  #booking-modal .td-booking-footer-total{display:grid;gap:3px;min-width:0}
  #booking-modal .td-booking-footer-total small{font-size:11px;color:var(--muted)}
  #booking-modal .td-booking-footer-total strong{font-size:21px;line-height:1.4;color:var(--td-accent);overflow-wrap:anywhere}
  #booking-modal .booking-footer :is(button){width:auto;height:auto;min-height:48px;padding:10px 14px;font-size:13px;border-radius:10px;line-height:1.6}
  #booking-modal .booking-footer .td-booking-next{grid-column:2/-1;min-width:124px;background:var(--td-accent)}
  #booking-modal .booking-footer .td-booking-back{color:var(--muted);background:#f5f5f5;padding-inline:10px;font-size:12px}
  #booking-modal .booking-footer .booking-submit-button{background:var(--td-accent)}
  #booking-modal .booking-footer :is(.td-booking-next,.booking-submit-button):disabled{background:#e5e5e5;color:#777;cursor:not-allowed}
  #booking-modal .td-booking-validation{grid-column:1/-1;margin:0;color:#875311;font-size:12px;line-height:1.6}
}
@media(max-width:360px){
  #booking-modal .booking-footer{gap:6px;padding-inline:10px}
  #booking-modal .td-booking-footer-total strong{font-size:18px}
  #booking-modal .booking-footer .booking-submit-button{font-size:12px;padding-inline:10px}
  #booking-modal .td-booking-steps{padding-inline:10px;gap:6px}
  #booking-modal .td-booking-steps button{font-size:10px;gap:4px}
  #booking-modal .booking-traveller-row,#booking-modal .booking-room-row{padding-inline:8px;gap:8px}
}
