/* Shared travel language for the local checkout and confirmation concepts. */
[data-page=checkout],[data-page=confirmation]{background:#f5f9fb}
.checkout-intro{margin-bottom:30px}.checkout-intro h1{font-size:44px;line-height:1.12;letter-spacing:-1.8px}
.journey-steps{font-size:12px;gap:38px}.journey-steps li>span{width:28px;height:28px;font-size:11px}.journey-steps .current>span{background:#dceffc;color:#176ca2;border-color:#b7d8ed}.journey-steps li:nth-child(2)>span{background:#fff0e6;border-color:#ecd0bb;color:#a35a36}.journey-steps li:nth-child(3)>span{background:#e7f5ed;border-color:#c9e5d5;color:#26744f}
.checkout-layout{gap:40px;grid-template-columns:minmax(0,1fr) 365px}
#trip-form{background:white;border:1px solid #d6e3eb;border-radius:20px;box-shadow:0 14px 40px -30px #17354a40;overflow:hidden}
.form-block{position:relative;margin:0;padding:28px 28px 30px 68px;border:0;border-bottom:1px solid #e5edf2;border-radius:0;background:transparent;transition:background 180ms ease}
.form-block:focus-within{background:#fcfeff}
.form-block:not(:last-of-type)::after{content:'';position:absolute;left:37px;top:72px;bottom:0;border-left:1px dashed #c8dae6;pointer-events:none}
.form-block legend{font-size:19px;gap:14px;margin-bottom:22px;line-height:32px}
.block-number{width:32px;height:32px;margin-left:-46px;background:#dceffc;border-color:#b8d8ee;color:#176ca2;font-size:12px;font-weight:650}
#tier-block .block-number{background:#ffe6d7;border-color:#efc6af;color:#a4412c}
#traveler-block .block-number{background:#e8e1fa;border-color:#d6c9ee;color:#7050a3}
#contact-step{background:#dff2e7;border-color:#c2dfce;color:#24704c}
.product-selector{grid-template-columns:repeat(3,minmax(0,1fr));padding:0;gap:12px;background:transparent}
.product-selector label>span{position:relative;flex-direction:column;gap:8px;min-height:126px;padding:14px 8px;border:1.5px solid #d9e7ef;border-radius:13px;background:#f8fbfd;color:var(--ink);box-shadow:none;transition:background 200ms ease,border-color 200ms ease}
.product-choice img{width:64px;height:56px;object-fit:contain;transition:transform 220ms var(--ease)}
.product-choice strong{font-size:13px;font-weight:600;line-height:1.35;text-align:center}
.product-selector input:checked+span{background:#e9f5fc;border-color:#4488b3;box-shadow:0 0 0 1px #4488b3}
.product-selector label:nth-child(2) input:checked+span{background:#fff3df;border-color:#ba8b35;box-shadow:0 0 0 1px #ba8b35}
.product-selector label:nth-child(3) input:checked+span{background:#e8f6ee;border-color:#38896b;box-shadow:0 0 0 1px #38896b}
.product-selector input:checked+span img{transform:translateY(-2px) rotate(-4deg)}
.product-choice-check{position:absolute;right:6px;top:6px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:white;opacity:0}
.product-choice-check .icon{width:11px;height:11px}.product-selector input:checked+span .product-choice-check{opacity:1}
.trip-type{display:inline-flex;padding:4px;background:#edf3f7;border:1px solid #e0e9ef;border-radius:10px;gap:3px;margin:24px 0}
.trip-type label{position:relative;display:block}.trip-type input{position:absolute;opacity:0;width:1px;height:1px}
.trip-type label>span{display:flex;align-items:center;justify-content:center;min-height:40px;min-width:108px;padding:8px 18px;border-radius:7px;font-size:13px;font-weight:550;transition:background 180ms ease,color 180ms ease}
.trip-type input:checked+span{background:white;box-shadow:0 2px 5px #17354a12;color:var(--ink)}
.trip-type input:focus-visible+span{outline:3px solid #bc4a31;outline-offset:2px}
.field>label{font-size:12px}.field input,.field select{font-size:15px;min-height:49px;border-radius:9px;background:#fcfdff}
.field input:focus,.field select:focus{background:white;border-color:#4c91b9;box-shadow:0 0 0 3px #e2f1fc}
.form-helper{font-size:13px;line-height:1.7}.form-block>.small{font-size:10px;line-height:1.7}.field>small{font-size:11px}
.swap-button{background:#eaf5fc;border-color:#c4dfea;color:#26779e;min-height:32px}
.tier-options{grid-template-columns:1fr 1fr;gap:16px;padding-top:12px}
.tier-card.tier-summary{min-height:188px;padding:23px 18px 42px;border-radius:13px}
.tier-summary .tier-heading{gap:9px}.tier-summary .tier-heading>strong{font-size:17px;flex:1}
.tier-symbol{display:grid;place-items:center;width:30px;height:34px;border-radius:8px;background:#e4f1fa;color:#277aab;flex-shrink:0}.tier-symbol .icon{width:19px;height:19px}
.premium .tier-symbol{background:#ffe5d5;color:#b6492e}
.tier-summary .tier-price{font-size:25px}.tier-summary .tier-subtitle{font-size:13px;line-height:1.75;margin-top:16px}
.tier-option input:checked+.tier-card{background:#f0f8fd;box-shadow:0 0 0 1px #5388a3}
.tier-option input:checked+.tier-card.premium{background:#fff1e8;box-shadow:0 0 0 1px #bc4a31}
.selection-mark{width:23px;height:23px;right:15px;bottom:14px}.selection-mark .icon{width:14px;height:14px}
.tier-badge{right:12px;top:-11px;font-size:10px;padding:4px 9px}
#add-traveler{padding:10px 15px;margin:0 0 12px;background:#f1ecfc;border:1px solid #e0d6f0;border-radius:8px;color:#654591;font-size:12px}
.checkout-submit{padding:24px 28px 27px 68px;background:#f8fbfd}.checkout-submit .button{min-height:54px;font-size:14px}.checkout-submit>p:last-child{font-size:10px;line-height:1.7;margin-top:12px}
#form-error{margin:18px 28px 0 68px}
.summary-body{border-radius:18px;border-color:#cbdfea;box-shadow:0 12px 32px -22px #24597540}
.itinerary[data-product]{--travel-color:#227ba8;--travel-wash:#eaf5fc}
.itinerary[data-product=hotel]{--travel-color:#a67827;--travel-wash:#fff3df}
.itinerary[data-product=combo]{--travel-color:#237955;--travel-wash:#e6f4ec}
.itinerary[data-product] .ticket-top{background:var(--travel-wash);border-top:3px solid var(--travel-color);padding:15px 23px}
.ticket-travel-art{width:52px;height:48px;object-fit:contain}
.itinerary[data-product] .airport-code{color:var(--travel-color)}
.price-breakdown{background:#f9fcfe}.price-breakdown .total-row>strong:last-child{color:#176a93;font-size:29px}
.summary-reassurance{background:#edf7f1}.summary-mobile-price{color:#176a93}
.mobile-plan-label>span{display:grid;gap:2px}.mobile-plan-label strong{font-size:12px}.mobile-plan-label small{font-size:11px;color:var(--muted);font-weight:450}
.preview-state-control{margin-bottom:28px;padding-bottom:16px}
.confirmation-layout{grid-template-columns:minmax(0,1fr) 380px;gap:44px;padding-top:0}
#order-status{position:relative;padding:28px 30px;background:#edf7f1;border:1px solid #d7e9df;border-radius:18px}
[data-status=preparing] #order-status{background:#ebf5fc;border-color:#d2e5f3}
[data-status=failed] #order-status{background:#fff0e6;border-color:#efd5c5}
.status-emblem{position:absolute;right:24px;top:18px;width:88px;height:80px;background:none!important;margin:0}
.status-emblem>img{width:88px;height:80px;object-fit:contain;rotate:5deg}
.status-seal{position:absolute;right:-1px;bottom:-1px;display:grid;place-items:center;width:33px;height:31px;background:#def0e5;color:#24724f;border:1px solid #b7d7c4;border-radius:8px;rotate:-7deg;box-shadow:0 4px 9px -5px #17354a35}
.status-seal .icon{width:18px;height:18px}
.preparing .status-seal{background:#dceffc;border-color:#b5d8ec;color:#246f99}
.failed .status-seal{background:#ffe0cd;border-color:#e6b095;color:#aa442c}
.status-kicker{min-height:43px;max-width:calc(100% - 95px);margin-bottom:14px;font-size:12px}
.confirmation-content h1{font-size:40px;line-height:1.12;letter-spacing:-1.5px;max-width:540px}
.status-description{font-size:13px;line-height:1.85;margin-top:18px;max-width:510px}
.status-description strong{color:#614799}.order-reference{font-size:11px;margin-top:18px}
.document-panel{padding:0;border:0;border-radius:0;background:transparent;margin-top:27px}
.document-panel h2{font-size:24px}.document-panel>p{font-size:12px;line-height:1.75}
.document-buttons{display:grid;grid-template-columns:1fr;gap:12px;margin-top:17px}
.document-buttons .document-download{display:grid;grid-template-columns:52px minmax(0,1fr) 24px;gap:15px;justify-content:stretch;text-align:left;background:#eaf5fc;border:1px solid #c7e2f1;color:var(--ink);padding:15px 19px;min-height:84px;font-size:15px;white-space:normal}
.document-download img{width:52px;height:48px;object-fit:contain}.document-download>.icon{width:21px;height:21px;color:#237aa6}
.document-buttons .hotel-download{background:#fff4e3;border-color:#efdbb5}.hotel-download>.icon{color:#967027}
.document-buttons .document-download:hover{background:#dff0fb;border-color:#7db8d8;transform:translateY(-1px)}
.document-buttons .hotel-download:hover{background:#ffedce;border-color:#d3b26e}
.verification-row{padding:18px;background:#fff0e5;border:1px solid #ebcbb5;border-radius:12px;margin-top:19px}
.reference-value{font-size:23px;margin-top:5px;color:#a53f29}.verification-row div>span{font-size:11px}.verification-row>.text-button{font-size:12px;color:#a53f29}
.reference-value button{background:#ffe0cc;width:32px;height:32px}.expiry-note{font-size:11px;line-height:1.75}
.order-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;margin:28px 0 0;padding-top:25px;border-top:1px solid #d7e4eb}
.order-timeline li{display:block;padding:0}.order-timeline li:not(:last-child)::after{left:40px;right:-10px;top:16px;bottom:auto;width:auto;height:1px;background:#c8dae5}
.timeline-symbol{width:33px;height:33px;margin-bottom:12px}.timeline-symbol .icon{width:15px;height:15px}
.order-timeline li:nth-child(1) .timeline-symbol{background:#e2f0fb;border-color:#bddbef;color:#2878a4}
.order-timeline li:nth-child(2) .timeline-symbol{background:#ffe9dc;border-color:#efcab3;color:#a44d2e}
.order-timeline li:nth-child(3).complete .timeline-symbol{background:#def2e6;border-color:#bbddca;color:#25744f}
.order-timeline strong{font-size:12px;line-height:1.5}.order-timeline p{font-size:11px;line-height:1.65;margin-top:6px}
.confirmation-aside{position:sticky;top:24px;padding:20px;background:#e8f3fa;border:1px solid #d9e8f1;border-radius:21px}
.confirmation-aside .itinerary{transform:rotate(1deg);box-shadow:0 14px 25px -18px #17354a45}
.receipt{margin-top:20px}.receipt summary{min-height:50px;font-size:12px}
.confirmation-help{padding:20px;background:#f0ecfa;border:1px solid #ddd5ed;border-radius:12px;margin-top:25px}
.confirmation-help>.icon{background:#e1d7f4;color:#7250a4;box-sizing:content-box;padding:9px;border-radius:10px;margin:0;flex-shrink:0}
.confirmation-help h3{font-size:15px}.confirmation-help p,.confirmation-help .text-button{font-size:12px}
.processing-panel,.failure-panel{padding:23px;margin-top:23px;border-radius:13px}.processing-panel p,.failure-panel p{font-size:13px;line-height:1.8}
@media(max-width:1100px){.checkout-layout{grid-template-columns:minmax(0,1fr) 315px;gap:25px}.tier-options{grid-template-columns:1fr}.confirmation-layout{grid-template-columns:minmax(0,1fr) 325px;gap:30px}.confirmation-aside{padding:14px}.status-emblem{right:18px}.confirmation-content h1{font-size:36px}}
@media(max-width:850px) and (min-width:681px){.checkout-layout{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.form-block{padding:25px 20px 27px 52px}.block-number{margin-left:-38px}.form-block:not(:last-of-type)::after{left:27px}.form-block legend{font-size:17px;gap:6px}.product-selector{gap:7px}.product-selector label>span{min-height:112px;padding:12px 3px}.product-choice img{width:48px;height:48px}.product-choice strong{font-size:11px}.trip-type label>span{min-width:86px;padding-inline:10px}.route-fields{grid-template-columns:1fr}.swap-button{margin:0;justify-self:center;transform:rotate(90deg)}.field-row{grid-template-columns:1fr}.checkout-submit{padding-left:52px}.traveler-row{grid-template-columns:1fr}.traveler-row .remove-traveler{margin:0}.confirmation-layout{grid-template-columns:1fr 290px;gap:23px}.confirmation-content h1{font-size:32px}#order-status{padding:23px}.status-emblem{width:65px;height:65px;right:15px}.status-emblem>img{width:65px;height:65px}}
@media(max-width:680px){
 .checkout-intro{margin:22px 0 25px}.checkout-intro h1{font-size:34px;line-height:1.12;letter-spacing:-1.4px}.checkout-intro>div>p{font-size:13px;max-width:300px;line-height:1.8}
 .journey-steps{font-size:10px;gap:22px}.journey-steps li>span{width:23px;height:23px;font-size:10px}
 .checkout-layout{display:flex;gap:18px}.checkout-summary{position:sticky;top:8px;z-index:10;order:-1}.checkout-summary:has(details[open]){position:relative;top:auto}
 .checkout-summary details>summary{padding:12px 15px;min-height:66px;border-radius:13px;box-shadow:0 5px 17px -12px #17354a50}
 .checkout-summary details>summary>span:first-child>.icon{box-sizing:content-box;padding:9px;background:#e2f1fb;color:#267da8;border-radius:9px;width:19px;height:19px}
 .summary-mobile-price{font-size:22px}.summary-body{border-radius:0 0 13px 13px}.checkout-summary .ticket-top{display:none}
 #trip-form{border-radius:15px}.form-block{padding:24px 18px 26px 48px}.form-block legend{font-size:18px;line-height:28px;margin-bottom:20px;gap:8px}
 .block-number{width:28px;height:28px;margin-left:-36px;font-size:11px}.form-block:not(:last-of-type)::after{left:25px;top:66px}
 .product-selector{gap:8px}.product-selector label>span{min-height:116px;padding:13px 4px 10px;gap:9px;border-radius:10px}.product-choice img{width:52px;height:48px}.product-choice strong{font-size:11px}.product-choice-check{width:15px;height:15px;right:4px;top:4px}.product-choice-check .icon{width:9px;height:9px}
 .trip-type{margin:22px 0;max-width:100%}.trip-type label>span{min-width:94px;min-height:42px;font-size:13px;padding-inline:12px}
 .route-fields{grid-template-columns:1fr;gap:8px}.swap-button{margin:0;justify-self:center;transform:rotate(90deg);width:32px;height:32px}
 .field input,.field select,.route-fields input,.traveler-row input,.traveler-row select{font-size:16px;min-height:49px;padding:11px 12px}
 .field>label{font-size:12px}.field>small{font-size:10px}.form-helper{font-size:12px}.form-block>.small{font-size:10px}
 .tier-options{grid-template-columns:1fr;gap:22px}.tier-card.tier-summary{min-height:0;padding:21px 15px 42px}.tier-summary .tier-heading>strong{font-size:17px}.tier-summary .tier-price{font-size:25px}.tier-summary .tier-subtitle{font-size:12px;line-height:1.8}.tier-symbol{width:27px;height:30px}.tier-symbol .icon{width:17px;height:17px}
 .tier-shared-note{font-size:10px;line-height:1.8}.tier-badge{font-size:9px}
 .traveler-row{grid-template-columns:1fr;gap:0}.traveler-row .remove-traveler{margin:0 0 15px auto;width:32px;height:32px}.traveler-row .field{margin-bottom:12px}
 .checkout-submit{padding:22px 18px 24px}.checkout-submit>p:first-child{font-size:11px}.checkout-submit .button{min-height:53px;font-size:14px}#form-error{margin:15px 18px 0}
 .confirmation-main{padding-top:20px}.preview-state-control{margin-bottom:24px;padding-bottom:16px}.preview-state-control select{font-size:12px}.preview-state-control label{font-size:10px}
 .confirmation-layout{display:flex;flex-direction:column;gap:28px;padding-bottom:30px}
 #order-status{padding:22px;border-radius:15px}.status-emblem,.status-emblem>img{width:65px;height:65px}.status-emblem{right:15px;top:17px}.status-seal{width:27px;height:26px}.status-seal .icon{width:16px;height:16px}
 .status-kicker{font-size:11px;min-height:40px;max-width:calc(100% - 62px);margin-bottom:16px}.confirmation-content h1{font-size:32px;letter-spacing:-1.1px;line-height:1.14}.status-description{font-size:12px;line-height:1.85;margin-top:16px}.order-reference{font-size:10px}
 .document-panel{margin-top:24px}.document-panel h2{font-size:23px}.document-panel>p{font-size:12px;line-height:1.8}.document-buttons .document-download{grid-template-columns:45px minmax(0,1fr) 20px;gap:12px;padding:14px 16px;font-size:14px;min-height:78px}.document-download img{width:45px;height:44px}
 .verification-row{padding:16px;gap:10px}.reference-value{font-size:22px}.verification-row>.text-button{font-size:11px}.expiry-note{font-size:10px}
 .order-timeline{display:block;margin-top:25px;padding-top:24px}.order-timeline li{display:flex;gap:14px;padding-bottom:22px}.order-timeline li:not(:last-child)::after{left:16px;right:auto;top:37px;bottom:4px;width:1px;height:auto}.timeline-symbol{margin:0;flex-shrink:0}.order-timeline strong{font-size:13px}.order-timeline p{font-size:11px;margin-top:4px}
 .confirmation-aside{position:static;width:100%;padding:17px;border-radius:17px}.confirmation-aside .itinerary{transform:rotate(1deg)}.confirmation-help{padding:17px;gap:12px}.confirmation-help h3{font-size:14px}.confirmation-help p,.confirmation-help .text-button{font-size:12px}
}
@media(max-width:440px){.field-row{grid-template-columns:1fr}.field input[type=date]{font-size:16px}.form-block{padding-right:16px}.product-selector{gap:6px}.product-selector label>span{padding-inline:2px}.product-choice img{width:46px;height:45px}.product-choice strong{font-size:10px}.product-choice-check{right:3px;top:3px}.trip-type label>span{min-width:88px}.tier-summary .tier-heading{gap:6px}.tier-summary .tier-heading>strong{font-size:16px}.tier-summary .tier-price{font-size:24px}.tier-symbol{width:23px}.form-block .optional{display:block;margin:4px 0 0}.confirmation-content h1{font-size:30px}}

.mobile-plan-label>img{width:38px;height:36px;object-fit:contain;flex-shrink:0}
@keyframes journey-content-in{from{opacity:.7;translate:0 4px}to{opacity:1;translate:0 0}}
[data-page=checkout] .hotel-fields:not([hidden]),[data-page=checkout] #return-field:not([hidden]){animation:journey-content-in 240ms var(--ease) both}
.mobile-plan-label,.mobile-plan-label>span{min-width:0}
.mobile-plan-label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-page=checkout] .ticket-fields dd,[data-page=confirmation] .ticket-fields dd{overflow-wrap:anywhere}
/* Focus covers the visible choice instead of an off-screen one-pixel target. */
/* Conditional trip fields must expand below the choice without browser scroll anchoring. */
body[data-page=checkout]{overflow-anchor:none}
.product-selector label>input,.tier-option>input,.trip-type label>input,.traveler-type-options input{inset:0;margin:0;width:100%;height:100%;opacity:0;position:absolute;z-index:1;cursor:pointer}
.traveler-row{grid-template-columns:minmax(0,1fr) 212px 32px;gap:12px}
.traveler-type-field{max-width:none!important;min-width:0}.field-label{font-size:12px;font-weight:550;display:block;margin-bottom:7px}
.traveler-type-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;border:1px solid #ded7ec;background:#f6f2fc;border-radius:9px}
.traveler-type-options label{position:relative;min-width:0;cursor:pointer}
.traveler-type-options label>span{display:flex;align-items:center;justify-content:center;min-height:43px;border-radius:6px;font-size:12px;font-weight:550;transition:background 180ms ease;color:#65498a}
.traveler-type-options input:checked+span{background:white;color:#593d84;box-shadow:0 1px 4px #4222641c}
.traveler-type-options input:focus-visible+span{outline:3px solid var(--coral);outline-offset:2px}
.date-input-wrap{position:relative}.date-input-wrap input{padding-right:49px}
.date-input-wrap input::-webkit-calendar-picker-indicator{display:none}
.date-trigger{position:absolute;right:3px;top:3px;display:grid;place-items:center;width:43px;height:43px;border:0;border-radius:7px;background:#e9f3fb;color:#277da6}
.date-trigger:hover{background:#dceefa}.date-trigger .icon{width:20px;height:20px;pointer-events:none}
.date-dialog{width:360px;max-width:calc(100% - 28px);padding:23px;border:1px solid #cbdde8;border-radius:18px;box-shadow:0 22px 70px #17354a35}
.date-dialog::backdrop{background:#17354a55}
.date-dialog .dialog-heading{margin-bottom:20px;align-items:center}.date-dialog .dialog-heading h2{font-size:23px;letter-spacing:-.6px}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.calendar-heading h3{font-size:17px;letter-spacing:-.3px}
.calendar-heading>button{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:#edf6fc;color:#28789e;border:1px solid #d8e8f2;border-radius:9px}
.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.calendar-week{color:var(--muted);font-size:11px;text-align:center;margin-bottom:8px}
.calendar-grid>button{border:0;border-radius:8px;min-height:40px;padding:4px;background:transparent;color:var(--ink);font-size:14px}
.calendar-grid>button:hover:not(:disabled){background:#e5f1fa}.calendar-grid>button[aria-pressed=true]{background:var(--coral);color:white}
.calendar-grid>button:disabled{color:#b5c1c8;cursor:default}.calendar-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:17px;padding-top:9px}
@media(max-width:850px){.traveler-row{grid-template-columns:1fr}}
@media(max-width:680px){
 .checkout-summary{top:0;padding:8px 0;isolation:isolate;background:#f5f9fb}
 .checkout-summary:has(details[open]){position:sticky;top:0}
 .checkout-summary details[open] .summary-body{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
 .checkout-summary::before{content:'';position:absolute;z-index:-1;inset:0 calc((100% - 100vw)/2);background:#f5f9fb;border-bottom:1px solid #e0e9ee}
 .checkout-summary:has(details[open])::before{border-bottom:0}
 .traveler-row{grid-template-columns:1fr}.traveler-row>.field{grid-column:1 / -1}.traveler-type-options label>span{font-size:13px;min-height:44px}
 .date-dialog{padding:21px}.calendar-grid>button{min-height:42px}
}
