.offer-detail-header .nav-wrap { min-height: 78px; }
.offer-detail-header .brand { display: inline-flex; flex: 0 0 136px; width: 136px; }
.offer-detail-header .brand img { display: block; height: auto; max-width: 100%; width: 136px; }
.offer-back { color: var(--ink); font-size: .82rem; font-weight: 800; text-decoration: none; }
.offer-back:hover { color: var(--orange-deep); }
.offer-loading, .offer-not-found { margin: 0 auto; max-width: 640px; padding: 130px 24px; text-align: center; }
.offer-not-found h1 { margin: 0; }
.offer-not-found p { color: #655e59; line-height: 1.6; margin: 16px 0 24px; }
.offer-detail-hero { background: #f4f0eb; padding: 16px 0; }
.offer-detail-hero-grid { align-items: center; display: grid; gap: clamp(22px, 3vw, 40px); grid-template-columns: minmax(250px, .62fr) minmax(0, 1fr); }
.detail-photo { aspect-ratio: 2.05; background: #224858; max-height: 190px; overflow: hidden; }
.detail-photo img { display: block; height: 100%; object-fit: cover; width: 100%; }
.detail-photo-placeholder { align-items: center; color: rgba(255,255,255,.9); display: flex; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.2rem, 5vw, 4.5rem); font-style: italic; height: 100%; justify-content: center; background: linear-gradient(135deg, #315d73, #1b3340); }
.detail-photo-credit { margin: 8px 0 0; color: #776e67; font-size: .65rem; line-height: 1.35; }
.detail-photo-credit a { color: inherit; text-decoration: underline; }
.detail-title .eyebrow { margin-bottom: 7px; }
.detail-title h1 { color: var(--ink); font-size: clamp(1.65rem, 2.8vw, 2.7rem); line-height: .98; margin: 0; max-width: 620px; }
.detail-facts { border-top: 1px solid #d8d0c8; display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; padding-top: 10px; }
.detail-facts div { display: grid; gap: 4px; }
.detail-facts span { color: #786f68; font-size: .66rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.detail-facts strong { color: var(--ink); font-size: .84rem; line-height: 1.3; }
.detail-price-label { color: #645b55; font-size: .76rem; margin: 11px 0 0; }
.detail-price-label strong { color: var(--orange-deep); font-size: 1.12rem; letter-spacing: -.04em; }
.offer-detail-content { padding: 24px 0 72px; }
.offer-detail-layout { align-items: start; display: grid; gap: clamp(35px, 7vw, 100px); grid-template-columns: minmax(0, 1fr) minmax(330px, .73fr); }
.offer-description { max-width: 670px; }
.offer-description h2 { color: var(--ink); font-size: clamp(2rem, 3vw, 3.2rem); line-height: 1; margin: 0; }
.offer-description > p:not(.eyebrow) { color: #554e49; font-size: 1.07rem; line-height: 1.72; margin: 25px 0 0; white-space: pre-line; }
.offer-description .detail-disclaimer { border-top: 1px solid var(--line); color: #7b716a; font-size: .78rem; line-height: 1.45; margin-top: 32px; padding-top: 18px; }
.reservation-card { background: var(--ink); color: #fff; grid-column: 1 / -1; padding: clamp(25px, 3vw, 38px); }
.reservation-card .reservation-kicker { color: #ffc18d; font-size: .67rem; font-weight: 900; letter-spacing: .12em; margin: 0 0 10px; text-transform: uppercase; }
.reservation-card h2 { font-size: clamp(1.7rem, 2.5vw, 2.35rem); line-height: 1; margin: 0; }
.reservation-card > p:not(.reservation-kicker), .reservation-note { color: rgba(255,255,255,.78); font-size: .86rem; line-height: 1.5; }
.reservation-form { display: grid; gap: 13px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 23px; }
.reservation-form fieldset { border: 0; margin: 0; padding: 0; }
.reservation-form legend { font-size: .73rem; font-weight: 800; margin-bottom: 9px; }
.date-choice { align-items: center; background: rgba(255,255,255,.1); cursor: pointer; display: flex; gap: 10px; margin-top: 7px; padding: 10px; }
.date-choice:has(input:checked) { background: var(--orange); }
.date-choice input { accent-color: var(--ink); height: 17px; margin: 0; width: 17px; }
.date-choice span { display: grid; gap: 2px; }
.date-choice strong { font-size: .83rem; text-transform: capitalize; }
.date-choice small { color: rgba(255,255,255,.76); font-size: .68rem; }
.reservation-form > label { display: grid; font-size: .73rem; font-weight: 800; gap: 6px; }
.reservation-form input:not([type="radio"]):not([type="checkbox"]), .reservation-form select, .reservation-form textarea { border: 0; border-radius: 0; color: var(--ink); font: inherit; padding: 10px; }
.reservation-form .button, .reservation-form .reservation-note, .reservation-form .departure-calendar, .reservation-form .reservation-search-context, .reservation-form .reservation-simulation-actions, .reservation-form .reservation-contact-step { grid-column: 1 / -1; }
.reservation-form .button { border: 0; margin-top: 6px; width: 100%; }
.reservation-note { margin: 0; }
.reservation-search-context { display: grid; gap: 4px; padding: 11px 12px; border-left: 3px solid #ffc18d; color: rgba(255,255,255,.82); background: rgba(255,255,255,.1); font-size: .76rem; line-height: 1.4; }
.reservation-search-context strong { color: #ffc18d; font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }
.reservation-simulation-actions { display: grid; gap: 10px; margin-top: 4px; }
.reservation-simulation-actions .button { margin: 0; }
.reservation-simulation-actions .button:disabled { cursor: wait; opacity: .72; }
.reservation-simulation-status { min-height: 1.35em; margin: 0; color: rgba(255,255,255,.78); font-size: .78rem; line-height: 1.45; text-align: center; }
.reservation-simulation-status strong { color: #ffc18d; }
.reservation-simulation-status[data-state="error"] { color: #ffe0dc; }
.reservation-contact-step { display: grid; gap: 15px; margin-top: 10px; padding: 20px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); }
.reservation-contact-step h3 { margin: 0; font-size: 1.35rem; line-height: 1; }
.reservation-contact-step > div > .reservation-kicker { margin-bottom: 7px; }
.reservation-contact-step > div > p:last-child { margin: 9px 0 0; color: rgba(255,255,255,.76); font-size: .78rem; line-height: 1.45; }
.reservation-contact-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.reservation-contact-fields label { display: grid; gap: 6px; font-size: .73rem; font-weight: 800; }
.reservation-contact-fields input { border: 0; border-radius: 0; color: var(--ink); font: inherit; padding: 10px; }
.reservation-contact-step .button { margin: 0; }
.reservation-traveller-counts, .reservation-passengers, .reservation-billing, .reservation-message, .reservation-acknowledgement, .reservation-request-result { grid-column: 1 / -1; }
.reservation-form .reservation-traveller-counts { padding: 15px; border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.06); }
.reservation-traveller-counts legend { padding: 0; }
.reservation-traveller-counts > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.reservation-traveller-counts label, .reservation-billing-fields label, .reservation-message { display: grid; gap: 6px; color: #fff; font-size: .73rem; font-weight: 800; }
.reservation-traveller-counts select, .reservation-billing-fields input, .reservation-billing-fields select, .reservation-message textarea { width: 100%; }
.reservation-passengers { display: grid; gap: 13px; padding-top: 2px; }
.reservation-passengers h4 { margin: 0; font-size: 1.03rem; }
.reservation-passengers > div > .reservation-kicker { margin-bottom: 6px; }
.reservation-passengers [data-passengers] { display: grid; gap: 12px; }
.reservation-form .reservation-passenger-card { padding: 15px; border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.06); }
.reservation-passenger-card legend { padding: 0; color: #ffc18d; font-size: .76rem; font-weight: 850; }
.reservation-passenger-fields, .reservation-billing-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.reservation-passenger-fields label { display: grid; gap: 6px; color: #fff; font-size: .73rem; font-weight: 800; }
.reservation-passenger-fields label:nth-child(4), .reservation-passenger-fields label:nth-child(5) { grid-column: span 1; }
.reservation-billing { padding: 15px; border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.06); }
.reservation-check { display: flex; align-items: flex-start; gap: 9px; color: #fff; font-size: .76rem; font-weight: 750; line-height: 1.4; }
.reservation-check input { flex: 0 0 auto; accent-color: var(--orange); margin: 2px 0 0; }
.reservation-billing [data-billing-fields] > p { margin: 12px 0 13px; color: rgba(255,255,255,.76); font-size: .75rem; line-height: 1.45; }
.reservation-message textarea { min-height: 82px; resize: vertical; }
.reservation-acknowledgement { padding: 13px; border-left: 3px solid #ffc18d; background: rgba(255,255,255,.09); }
.reservation-request-result { display: grid; gap: 7px; margin: 0; padding: 13px; font-size: .8rem; line-height: 1.45; background: rgba(255,255,255,.1); }
.reservation-request-result strong { color: #ffc18d; }
.reservation-request-result[data-state="success"] { border-left: 3px solid #77d8a6; }
.reservation-request-result[data-state="success"] strong { color: #a9f1ca; }
.reservation-request-result[data-state="error"] { border-left: 3px solid #ff9a8d; color: #ffe0dc; }
.reservation-request-result[data-state="loading"] { border-left: 3px solid #ffc18d; }
.reservation-unavailable .button { margin-top: 17px; }
.departure-calendar { border-top: 1px solid rgba(255,255,255,.22); margin-top: 8px; padding-top: 24px; }
.departure-calendar-top { align-items: end; display: flex; gap: 18px; justify-content: space-between; }
.departure-calendar-top .reservation-kicker { margin-bottom: 7px; }
.departure-calendar h3 { font-size: clamp(1.25rem, 2.2vw, 1.8rem); line-height: 1; margin: 0; }
.departure-calendar-controls { align-items: center; display: flex; gap: 10px; }
.departure-calendar-controls strong { font-size: .76rem; min-width: 110px; text-align: center; }
.departure-calendar-controls button { align-items: center; background: transparent; border: 1px solid rgba(255,255,255,.55); color: #fff; cursor: pointer; display: inline-flex; font-size: 1rem; height: 32px; justify-content: center; width: 32px; }
.departure-calendar-controls button:hover:not(:disabled) { background: var(--orange); border-color: var(--orange); }
.departure-calendar-controls button:disabled { cursor: not-allowed; opacity: .32; }
.departure-calendar-controls-above { justify-content: space-between; max-width: 455px; margin: 2px 0 12px; }
.departure-calendar-controls-above strong { flex: 1; font-size: .95rem; min-width: 0; }
.departure-calendar-copy { color: rgba(255,255,255,.75); font-size: .78rem; line-height: 1.45; margin: 15px 0 0; max-width: 620px; }
.departure-calendar-legend { display: flex; flex-wrap: wrap; gap: 10px 15px; margin-top: 12px; color: rgba(255,255,255,.84); font-size: .65rem; font-weight: 750; }
.departure-calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.departure-calendar-legend i, .departure-calendar-legend b { display: inline-block; width: 11px; height: 11px; border: 1px solid transparent; }
.departure-calendar-legend i.is-price-best { background: #1f9267; border-color: #8de1bd; }
.departure-calendar-legend i.is-price-higher { background: #d79a20; border-color: #ffdb8d; }
.departure-calendar-legend i.is-direct { background: transparent; border-color: #8de1bd; }
.departure-calendar-legend b { background: var(--orange); border-color: #fff; }
.departure-calendar-status { background: rgba(255,255,255,.09); color: #fff; font-size: .8rem; line-height: 1.45; margin: 16px 0 0; padding: 10px 12px; }
.departure-calendar-status strong { color: #ffc18d; }
.departure-calendar-grid { display: grid; gap: 15px; grid-template-columns: minmax(0, 455px); margin-top: 18px; max-width: 455px; }
.departure-calendar-loading { background: rgba(255,255,255,.07); color: rgba(255,255,255,.78); font-size: .86rem; grid-column: 1 / -1; margin: 0; padding: 28px 16px; text-align: center; }
.departure-calendar-month { background: rgba(255,255,255,.07); min-width: 0; padding: 12px; }
.departure-calendar-month h4 { color: #fff; font-size: .87rem; margin: 0 0 10px; text-transform: capitalize; }
.departure-calendar-month h4 span { color: rgba(255,255,255,.62); font-size: .72rem; font-weight: 600; margin-left: 3px; }
.departure-calendar-weekdays, .departure-calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.departure-calendar-weekdays { color: rgba(255,255,255,.58); font-size: .58rem; font-weight: 900; margin-bottom: 5px; text-align: center; }
.departure-calendar-days { gap: 3px; }
.departure-calendar-empty { min-height: 42px; }
.departure-calendar-day { align-items: center; background: rgba(255,255,255,.08); border: 1px solid transparent; color: #fff; display: flex; flex-direction: column; font: inherit; justify-content: center; min-height: 45px; min-width: 0; padding: 3px 1px; text-align: center; }
.departure-calendar-day strong { font-size: .68rem; line-height: 1; }
.departure-calendar-day small { color: rgba(255,255,255,.72); font-size: .43rem; line-height: 1.1; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; }
.departure-calendar-day.is-selectable { cursor: pointer; }
.departure-calendar-day.is-selectable:hover { border-color: #ffc18d; background: rgba(255,122,0,.22); }
.departure-calendar-day.has-direct { border-color: #6bcda0; }
.departure-calendar-day.has-direct small { color: #c3f0d7; }
.departure-calendar-day.is-price-best { color: #e9fff4; background: #1f9267; }
.departure-calendar-day.is-price-best small { color: #d2f8e3; }
.departure-calendar-day.is-price-best:hover { border-color: #b9f3d4; background: #157450; }
.departure-calendar-day.is-price-higher { color: #fff7df; background: #b97812; }
.departure-calendar-day.is-price-higher small { color: #fff0c1; }
.departure-calendar-day.is-price-higher:hover { border-color: #ffdc83; background: #96600d; }
.departure-calendar-day.is-selected { background: var(--orange); border-color: #fff; }
.departure-calendar-day.is-selected small { color: rgba(255,255,255,.9); }
.departure-calendar-day.is-unavailable { color: rgba(255,255,255,.32); cursor: not-allowed; opacity: .65; }
.departure-calendar-day.is-unavailable small { color: rgba(255,255,255,.3); }
.dynamic-party, .dynamic-configuration, .dynamic-options, .dynamic-summary { grid-column: 1 / -1; }
.dynamic-party, .dynamic-configuration, .dynamic-options { display: grid; gap: 15px; margin-top: 8px; padding: 20px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.07); }
.dynamic-party h3, .dynamic-configuration h3, .dynamic-options h3, .dynamic-summary h3 { margin: 0; font-size: 1.35rem; line-height: 1; }
.dynamic-party > div > p:last-child, .dynamic-configuration > div > p:last-child, .dynamic-options > div > p:last-child { color: rgba(255,255,255,.76); font-size: .78rem; line-height: 1.45; margin: 8px 0 0; }
.dynamic-party-fields, .dynamic-config-fields, .dynamic-hotel-fields { display: grid; gap: 13px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dynamic-party-fields label, .dynamic-config-fields label, .dynamic-hotel-fields label, .dynamic-child-ages label, .dynamic-base-locals label, .dynamic-itinerary > label { color: #fff; display: grid; font-size: .73rem; font-weight: 800; gap: 6px; }
.dynamic-party-fields select, .dynamic-config-fields select, .dynamic-hotel-fields select, .dynamic-child-ages select, .dynamic-base-locals input, .dynamic-itinerary select { border: 0; border-radius: 0; color: var(--ink); font: inherit; padding: 10px; width: 100%; }
.dynamic-child-ages { display: grid; gap: 13px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dynamic-base-locals { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dynamic-base-locals > p { color: #ffc18d; font-size: .73rem; font-weight: 850; grid-column: 1 / -1; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.dynamic-base-locals label { position: relative; }
.dynamic-base-locals label span { bottom: 11px; color: #645b55; font-size: .67rem; font-weight: 800; position: absolute; right: 10px; }
.dynamic-base-locals input { padding-right: 60px; }
.dynamic-choices-intro { border-bottom: 1px solid rgba(255,255,255,.18); padding-bottom: 16px; }
.dynamic-choice-step { display: grid; gap: 14px; }
.dynamic-step-heading { align-items: start; display: grid; gap: 11px; grid-template-columns: 32px minmax(0, 1fr); }
.dynamic-step-heading .reservation-kicker { margin-bottom: 4px; }
.dynamic-step-heading h3 { font-size: 1.2rem; }
.dynamic-step-heading p:last-child { color: rgba(255,255,255,.73); font-size: .76rem; line-height: 1.45; margin: 6px 0 0; }
.dynamic-step-number { align-items: center; background: var(--orange); border-radius: 50%; color: #fff; display: flex; font-size: .78rem; font-weight: 900; height: 27px; justify-content: center; line-height: 1; margin-top: 1px; width: 27px; }
.dynamic-flight-options, .dynamic-extra-options, .dynamic-itinerary { border: 1px solid rgba(255,255,255,.25); margin: 0; padding: 15px; }
.dynamic-flight-options { background: rgba(0,0,0,.12); }
.dynamic-flight-options legend, .dynamic-extra-options legend, .dynamic-itinerary legend { color: #ffc18d; font-size: .72rem; font-weight: 850; letter-spacing: .08em; padding: 0 5px; text-transform: uppercase; }
.dynamic-flight-explainer { color: rgba(255,255,255,.76); font-size: .73rem; line-height: 1.45; margin: 0 0 13px; max-width: 760px; }
.dynamic-flight-special { background: rgba(255,193,141,.14); border-left: 3px solid #ffc18d; color: #fff4ea; font-size: .78rem; line-height: 1.45; margin: 0 0 13px; padding: 10px 12px; }
.dynamic-flight-special strong { color: #ffc18d; }
.dynamic-show-more-flights { background: transparent; border: 1px solid rgba(255,193,141,.7); color: #fff; margin-top: 13px; width: 100%; }
.dynamic-show-more-flights:hover { background: rgba(255,122,0,.14); }
.dynamic-choice { align-items: flex-start; border-top: 1px solid rgba(255,255,255,.18); color: #fff; cursor: pointer; display: flex; gap: 10px; padding: 11px 0; }
.dynamic-choice:first-of-type { border-top: 0; }
.dynamic-choice input { accent-color: var(--orange); flex: 0 0 auto; height: 17px; margin: 2px 0 0; width: 17px; }
.dynamic-choice span { display: grid; gap: 4px; }
.dynamic-choice strong { font-size: .8rem; line-height: 1.35; }
.dynamic-choice small { color: rgba(255,255,255,.72); font-size: .7rem; line-height: 1.35; }
.dynamic-flight-choice { background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.23); color: #fff; cursor: pointer; display: block; margin-top: 10px; padding: 14px; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.dynamic-flight-choice:first-of-type { margin-top: 0; }
.dynamic-flight-choice:hover { border-color: rgba(255,193,141,.8); transform: translateY(-1px); }
.dynamic-flight-choice:has(input:checked) { border-color: #ffc18d; box-shadow: inset 3px 0 0 var(--orange); background: rgba(255,122,0,.12); }
.dynamic-flight-choice > input { accent-color: var(--orange); height: 18px; margin: 3px 10px 0 0; vertical-align: top; width: 18px; }
.flight-choice-body { align-items: center; display: flex; gap: 16px; justify-content: space-between; vertical-align: top; width: calc(100% - 34px); }
.flight-choice-journeys { display: grid; flex: 1 1 auto; gap: 12px; min-width: 0; }
.flight-choice-price { color: #ffc18d; font-size: .92rem; font-weight: 800; }
.flight-choice-price.is-base { color: #a9f1ca; }
.flight-choice-price.is-pending { color: rgba(255,255,255,.75); font-size: .74rem; font-weight: 700; }
.flight-choice-aside { align-items: end; display: grid; flex: 0 0 auto; gap: 8px; justify-items: end; text-align: right; }
.flight-choice-select { border: 1px solid rgba(255,255,255,.4); border-radius: 999px; color: #fff; font-size: .68rem; font-weight: 800; padding: 7px 16px; }
.dynamic-flight-choice:has(input:checked) .flight-choice-select { background: var(--orange); border-color: var(--orange); }
.flight-journey { display: grid; gap: 6px; min-width: 0; }
.flight-journey-label { background: #16262a; border-radius: 3px; color: #fff; display: inline-block; font-size: .6rem; font-weight: 900; letter-spacing: .08em; padding: 3px 8px; text-transform: uppercase; width: fit-content; }
.flight-journey-row { align-items: center; display: flex; gap: 10px; }
.flight-journey-carrier-logo { background: #fff; border-radius: 3px; flex: 0 0 auto; height: 22px; object-fit: contain; padding: 2px 4px; width: auto; }
.flight-journey-point { display: grid; gap: 1px; min-width: 0; max-width: 130px; }
.flight-journey-point b { color: #fff; font-size: .86rem; font-weight: 800; line-height: 1.2; }
.flight-journey-point span { color: rgba(255,255,255,.82); font-size: .72rem; }
.flight-journey-point small { color: rgba(255,255,255,.6); font-size: .64rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flight-journey-point.is-arrival { text-align: right; }
.flight-journey-connector { align-items: center; color: #ffc18d; display: flex; flex: 1 1 30px; gap: 5px; min-width: 30px; }
.flight-journey-connector i { background: currentColor; display: block; flex: 1 1 auto; height: 1px; opacity: .5; }
.flight-journey-connector small { font-size: .6rem; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.flight-journey-meta { color: rgba(255,255,255,.62); font-size: .68rem; line-height: 1.3; }
.flight-choice-tax { border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.72); display: block; font-size: .69rem; line-height: 1.35; margin-top: 12px; padding-top: 9px; }
.dynamic-hotel-options { display: grid; gap: 14px; }
.dynamic-itinerary { background: rgba(0,0,0,.12); display: grid; gap: 12px; }
.dynamic-itinerary-intro { color: rgba(255,255,255,.74); font-size: .76rem; line-height: 1.4; margin: -2px 0 0; }
.dynamic-hotel-choice-list { display: grid; gap: 10px; grid-template-columns: 1fr; max-height: 520px; overflow: auto; padding: 2px 4px 2px 1px; }
.dynamic-hotel-choice { background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.2); color: #fff; cursor: pointer; display: block; min-width: 0; position: relative; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.dynamic-hotel-choice:hover { border-color: rgba(255,193,141,.8); transform: translateY(-1px); }
.dynamic-hotel-choice:has(input:checked) { border-color: #ffc18d; box-shadow: inset 3px 0 0 var(--orange); background: rgba(255,122,0,.11); }
.dynamic-hotel-choice > input { accent-color: var(--orange); height: 17px; margin: 12px 0 0 10px; position: absolute; width: 17px; z-index: 1; }
.dynamic-hotel-choice-body { align-items: center; display: grid; gap: 14px; grid-template-columns: 128px minmax(0, 1fr) auto; min-height: 96px; padding: 10px 14px 10px 35px; }
.dynamic-hotel-image { background: #264957; border-radius: 3px; display: block; height: 88px; overflow: hidden; position: relative; }
.dynamic-hotel-image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.dynamic-hotel-image-placeholder { align-items: center; color: rgba(255,255,255,.82); display: flex; font-family: Georgia, 'Times New Roman', serif; font-size: .9rem; font-style: italic; height: 100%; justify-content: center; }
.dynamic-hotel-badge { background: var(--orange); bottom: 6px; color: #fff; font-size: .58rem; font-weight: 900; left: 6px; letter-spacing: .04em; padding: 2px 6px; position: absolute; text-transform: uppercase; }
.dynamic-hotel-choice-copy { display: grid; gap: 6px; min-width: 0; }
.dynamic-hotel-choice-copy strong { font-size: .92rem; line-height: 1.25; }
.dynamic-hotel-stars { color: #ffc18d; font-size: .78rem; letter-spacing: 1px; }
.dynamic-hotel-aside { display: grid; gap: 8px; justify-items: end; text-align: right; }
.dynamic-hotel-select { border: 1px solid rgba(255,255,255,.4); border-radius: 999px; color: #fff; flex: 0 0 auto; font-size: .68rem; font-weight: 800; padding: 7px 16px; text-transform: none; }
.dynamic-hotel-choice:has(input:checked) .dynamic-hotel-select { background: var(--orange); border-color: var(--orange); color: #fff; }
.dynamic-hotel-price { display: grid; gap: 2px; text-align: right; }
.dynamic-hotel-price small { color: rgba(255,255,255,.58); font-size: .6rem; text-transform: uppercase; letter-spacing: .04em; }
.dynamic-hotel-price b { color: #ffc18d; font-size: 1.02rem; line-height: 1; }
.dynamic-hotel-price em { color: rgba(255,255,255,.73); font-size: .64rem; font-style: normal; }
.dynamic-hotel-price.is-pending small { color: rgba(255,255,255,.75); }
.dynamic-hotel-detail { border-left: 3px solid #ffc18d; display: grid; gap: 12px; padding-left: 12px; }
.dynamic-hotel-detail > p { color: rgba(255,255,255,.82); font-size: .78rem; line-height: 1.45; margin: 0; }
.dynamic-included-board { align-content: center; background: rgba(63,153,108,.2); border-left: 3px solid #7fd4a9; display: grid; gap: 4px; min-height: 44px; padding: 9px 11px; }
.dynamic-included-board span { color: #a9f1ca; font-size: .64rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.dynamic-included-board strong { color: #fff; font-size: .79rem; line-height: 1.3; }
.dynamic-room-recommended { align-items: center; background: rgba(255,193,141,.14); border-left: 3px solid #ffc18d; display: flex; gap: 10px; padding: 9px 11px; }
.dynamic-room-recommended-label { color: #ffc18d; display: block; font-size: .64rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.dynamic-room-recommended strong { color: #fff; display: block; font-size: .82rem; line-height: 1.3; margin-top: 2px; }
.dynamic-room-recommended-board { color: rgba(255,255,255,.75); display: block; font-size: .72rem; margin-top: 2px; }
.dynamic-room-options { margin-top: 2px; }
.dynamic-room-options > summary { color: rgba(255,255,255,.82); cursor: pointer; font-size: .74rem; font-weight: 700; list-style: none; padding: 4px 0; }
.dynamic-room-options > summary::-webkit-details-marker { display: none; }
.dynamic-room-options[open] > summary { color: #fff; }
.dynamic-room-options .dynamic-hotel-fields { margin-top: 10px; }
.dynamic-empty, .dynamic-insurance { border-left: 3px solid #ffc18d; color: rgba(255,255,255,.79); font-size: .78rem; line-height: 1.45; margin: 0; padding: 10px 12px; background: rgba(255,255,255,.07); }
.dynamic-insurance { border-left-color: #7fd4a9; display: grid; gap: 3px; }
.dynamic-insurance strong { color: #a9f1ca; font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.dynamic-final-step { align-items: center; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.22); display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr) minmax(240px, .72fr); padding: 17px; }
.dynamic-final-step .reservation-kicker { margin-bottom: 5px; }
.dynamic-final-step h3 { font-size: 1.12rem; }
.dynamic-final-step p:last-child { color: rgba(255,255,255,.72); font-size: .74rem; line-height: 1.4; margin: 6px 0 0; }
.dynamic-final-step .button { margin: 0; }
.button.is-loading { cursor: progress; }
.button-spinner { border: 2px solid rgba(255,255,255,.4); border-radius: 50%; border-top-color: #fff; display: inline-block; height: 14px; width: 14px; vertical-align: -2px; margin-right: 2px; animation: dynamic-spin .7s linear infinite; }
@keyframes dynamic-spin { to { transform: rotate(360deg); } }
.dynamic-summary { background: #fffaf5; color: var(--ink); display: grid; gap: 14px; margin-top: 4px; padding: 21px; }
.dynamic-summary .reservation-kicker { color: var(--orange-deep); margin-bottom: -4px; }
.dynamic-summary-top { align-items: start; display: flex; gap: 16px; justify-content: space-between; }
.dynamic-summary-top h3 { color: var(--ink); }
.dynamic-summary-top p { color: #675e58; font-size: .76rem; line-height: 1.4; margin: 8px 0 0; }
.dynamic-summary-top > strong { color: var(--orange-deep); font-size: 1.55rem; letter-spacing: -.04em; white-space: nowrap; }
.dynamic-service-list, .dynamic-breakdown { display: grid; gap: 7px; list-style: none; margin: 0; padding: 0; }
.dynamic-service-list { border-top: 1px solid #dfd2c5; padding-top: 13px; }
.dynamic-service-list li { display: grid; gap: 3px; }
.dynamic-service-list strong { color: #254554; font-size: .72rem; text-transform: uppercase; }
.dynamic-service-list span, .dynamic-remarks, .dynamic-summary details { color: #615853; font-size: .77rem; line-height: 1.45; }
.dynamic-breakdown { background: #f3ede7; padding: 11px 12px; }
.dynamic-breakdown li { align-items: baseline; display: flex; gap: 12px; justify-content: space-between; font-size: .78rem; }
.dynamic-breakdown strong { color: var(--ink); white-space: nowrap; }
.dynamic-remarks { border-left: 3px solid #d79a20; margin: 0; padding-left: 10px; }
.dynamic-summary details { border-top: 1px solid #dfd2c5; padding-top: 12px; }
.dynamic-summary details summary { color: #254554; cursor: pointer; font-weight: 800; }
.dynamic-summary details p { margin: 10px 0 0; white-space: pre-line; }

/* Checkout de férias: uma página clara, com o resumo da viagem sempre visível. */
.offer-detail-content { background: #f7f7f5; }
.offer-detail-layout { display: block; }
.reservation-card-dynamic { color: #25343a; background: transparent; padding: 0; }
.reservation-card-dynamic .reservation-intro { max-width: 760px; margin: 0 0 26px; }
.reservation-card-dynamic .reservation-kicker { color: #d96500; }
.reservation-card-dynamic h2, .reservation-card-dynamic h3, .reservation-card-dynamic h4 { color: #173e49; }
.reservation-card-dynamic > .reservation-intro > p:last-child { color: #627078; font-size: .93rem; line-height: 1.55; margin: 12px 0 0; }
.reservation-card-dynamic .reservation-form { display: block; margin: 0; }
.booking-layout { align-items: start; display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr) minmax(290px, .4fr); }
.booking-steps { display: grid; gap: 18px; min-width: 0; }
.booking-summary { position: sticky; top: 20px; z-index: 4; overflow: hidden; border: 1px solid #dedcd6; border-radius: 14px; color: #26363d; background: #fff; box-shadow: 0 13px 30px rgba(25, 45, 49, .09); }
.booking-summary-heading { padding: 20px 21px 14px; color: #fff; background: linear-gradient(135deg, #173e49, #225c63); }
.booking-summary .reservation-kicker { margin: 0 0 7px; color: #ffbd82; font-size: .64rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.booking-summary h3 { margin: 0; color: #fff; font-size: 1.24rem; line-height: 1; }
.booking-summary-total { display: grid; gap: 4px; padding: 19px 21px 17px; border-bottom: 1px solid #ebe8e3; background: #fffaf5; }
.booking-summary-total > span { color: #6b6c67; font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.booking-summary-total strong { color: #d85d00; font-size: clamp(1.65rem, 2.5vw, 2.1rem); letter-spacing: -.055em; line-height: 1; }
.booking-summary-total small { color: #776e66; font-size: .72rem; line-height: 1.35; }
.booking-summary.has-confirmed-total .booking-summary-total { background: #edf8f2; }
.booking-summary.has-confirmed-total .booking-summary-total strong { color: #17714f; }
.booking-summary-lines { display: grid; gap: 0; margin: 0; padding: 5px 21px 10px; }
.booking-summary-lines > div { display: grid; gap: 4px; padding: 12px 0; border-bottom: 1px solid #eeeae5; }
.booking-summary-lines > div:last-child { border-bottom: 0; }
.booking-summary-lines dt { color: #6e7675; font-size: .63rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.booking-summary-lines dd { margin: 0; color: #2a373b; font-size: .78rem; font-weight: 750; line-height: 1.38; }
.booking-summary-footnote { margin: 0; padding: 13px 21px 16px; border-top: 1px solid #eeeae5; color: #6d706b; background: #fbfaf8; font-size: .7rem; line-height: 1.4; }
.reservation-card-dynamic .reservation-search-context { border-left-color: #e56d0a; color: #2f4a50; background: #eef4f2; }
.reservation-card-dynamic .reservation-search-context strong { color: #d96500; }
.reservation-card-dynamic .departure-calendar { margin: 0; padding: 24px; border: 1px solid #dedcd6; border-top: 3px solid #e96d0b; background: #fff; }
.reservation-card-dynamic .departure-calendar-copy { color: #667278; }
.reservation-card-dynamic .departure-calendar-controls button { border-color: #c5cecb; color: #1b4b55; }
.reservation-card-dynamic .departure-calendar-controls button:hover:not(:disabled) { border-color: var(--orange); color: #fff; }
.reservation-card-dynamic .departure-calendar-legend { color: #536266; }
.reservation-card-dynamic .departure-calendar-status { align-items: center; color: #315057; background: #f2f6f4; display: flex; gap: 12px; justify-content: space-between; }
.reservation-card-dynamic .departure-calendar-status strong { color: #d76300; }
.departure-calendar-edit { flex: 0 0 auto; border: 1px solid #b9c9c5; border-radius: 5px; color: #1c4d58; background: #fff; cursor: pointer; font: inherit; font-size: .7rem; font-weight: 800; padding: 7px 9px; }
.departure-calendar-edit:hover { border-color: #d96500; color: #c65d00; }
.reservation-card-dynamic .departure-calendar.is-compact { padding: 18px 24px; }
.departure-calendar.is-compact .departure-calendar-controls, .departure-calendar.is-compact .departure-calendar-copy, .departure-calendar.is-compact .departure-calendar-legend, .departure-calendar.is-compact .departure-calendar-grid { display: none; }
.departure-calendar.is-compact .departure-calendar-top { align-items: center; }
.departure-calendar.is-compact .departure-calendar-status { margin-top: 10px; }
.reservation-card-dynamic .departure-calendar-loading, .reservation-card-dynamic .departure-calendar-month { background: #f5f6f5; }
.reservation-card-dynamic .departure-calendar-month h4 { color: #1d3840; }
.reservation-card-dynamic .departure-calendar-month h4 span, .reservation-card-dynamic .departure-calendar-weekdays { color: #71807e; }
.reservation-card-dynamic .departure-calendar-day { border-color: #e3e5e2; color: #2b3f44; background: #fff; }
.reservation-card-dynamic .departure-calendar-day small { color: #6e7776; }
.reservation-card-dynamic .departure-calendar-day.is-unavailable { color: #a7ada9; background: #f5f5f3; opacity: 1; }
.reservation-card-dynamic .departure-calendar-day.is-unavailable small { color: #a7ada9; }
.reservation-card-dynamic .departure-calendar-day.has-direct { border-color: #75bc99; }
.reservation-card-dynamic .departure-calendar-day.has-direct small { color: #207858; }
.reservation-card-dynamic .departure-calendar-day.is-price-best { color: #0f563c; background: #dff3e8; }
.reservation-card-dynamic .departure-calendar-day.is-price-best small { color: #16704b; }
.reservation-card-dynamic .departure-calendar-day.is-price-higher { color: #78530c; background: #fff0cd; }
.reservation-card-dynamic .departure-calendar-day.is-price-higher small { color: #9e7016; }
.reservation-card-dynamic .departure-calendar-day.is-selected { color: #fff; border-color: #d76300; background: var(--orange); }
.reservation-card-dynamic .departure-calendar-day.is-selected small { color: rgba(255,255,255,.9); }
.reservation-card-dynamic .dynamic-party, .reservation-card-dynamic .dynamic-configuration, .reservation-card-dynamic .dynamic-options, .reservation-card-dynamic .reservation-contact-step { margin: 0; padding: 23px; border: 1px solid #dedcd6; background: #fff; }
.reservation-card-dynamic .dynamic-party > div > p:last-child, .reservation-card-dynamic .dynamic-configuration > div > p:last-child, .reservation-card-dynamic .dynamic-options > div > p:last-child, .reservation-card-dynamic .reservation-contact-step > div > p:last-child { color: #667278; }
.dynamic-party-edit { margin: 0; border-top: 1px solid #e5e7e3; padding-top: 14px; }
.dynamic-party-edit summary { color: #1b4b55; cursor: pointer; font-size: .78rem; font-weight: 850; list-style: none; }
.dynamic-party-edit summary::-webkit-details-marker { display: none; }
.dynamic-party-edit summary::after { content: '⌄'; display: inline-block; margin-left: 7px; color: #d96500; transition: transform .2s ease; }
.dynamic-party-edit[open] summary { margin-bottom: 14px; }
.dynamic-party-edit[open] summary::after { transform: rotate(180deg); }
.dynamic-party-edit [data-dynamic-child-age-holder] { margin-top: 13px; }
.dynamic-party-edit .button { margin-top: 14px; }
.dynamic-configuration-edit { margin: 0; border-top: 1px solid #e5e7e3; padding-top: 14px; }
.dynamic-configuration-edit summary { color: #1b4b55; cursor: pointer; font-size: .78rem; font-weight: 850; list-style: none; }
.dynamic-configuration-edit summary::-webkit-details-marker { display: none; }
.dynamic-configuration-edit summary::after { content: '⌄'; display: inline-block; margin-left: 7px; color: #d96500; transition: transform .2s ease; }
.dynamic-configuration-edit[open] summary { margin-bottom: 14px; }
.dynamic-configuration-edit[open] summary::after { transform: rotate(180deg); }
.dynamic-configuration-edit .dynamic-config-fields { margin-top: 14px; }
.dynamic-configuration-edit .dynamic-base-locals { margin-top: 14px; }
.reservation-card-dynamic .dynamic-party-fields label, .reservation-card-dynamic .dynamic-config-fields label, .reservation-card-dynamic .dynamic-hotel-fields label, .reservation-card-dynamic .dynamic-child-ages label, .reservation-card-dynamic .dynamic-base-locals label, .reservation-card-dynamic .dynamic-itinerary > label, .reservation-card-dynamic .reservation-contact-fields label, .reservation-card-dynamic .reservation-passenger-fields label, .reservation-card-dynamic .reservation-billing-fields label, .reservation-card-dynamic .reservation-message { color: #30474d; }
.reservation-card-dynamic input:not([type="radio"]):not([type="checkbox"]), .reservation-card-dynamic select, .reservation-card-dynamic textarea { border: 1px solid #cfd6d2; border-radius: 6px; background: #fff; color: #27393f; }
.reservation-card-dynamic input:focus, .reservation-card-dynamic select:focus, .reservation-card-dynamic textarea:focus { border-color: #e56d0a; outline: 3px solid rgba(229,109,10,.12); }
.reservation-card-dynamic .reservation-simulation-status { color: #667278; text-align: left; }
.reservation-card-dynamic .reservation-simulation-status strong { color: #c95900; }
.reservation-card-dynamic .reservation-simulation-status[data-state="error"] { color: #c23b2c; }
.reservation-card-dynamic .dynamic-base-locals > p { color: #d76300; }
.reservation-card-dynamic .dynamic-choices-intro { border-color: #e6e5e1; }
.reservation-card-dynamic .dynamic-step-number { background: #e56d0a; }
.reservation-card-dynamic .dynamic-step-heading p:last-child { color: #667278; }
.reservation-card-dynamic .dynamic-flight-options, .reservation-card-dynamic .dynamic-extra-options, .reservation-card-dynamic .dynamic-itinerary { border-color: #dfe1de; background: #fbfcfb; }
.reservation-card-dynamic .dynamic-flight-options legend, .reservation-card-dynamic .dynamic-extra-options legend, .reservation-card-dynamic .dynamic-itinerary legend { color: #d76300; }
.reservation-card-dynamic .dynamic-choice { border-color: #e2e5e2; color: #30464c; }
.reservation-card-dynamic .dynamic-choice small { color: #687678; }
.reservation-card-dynamic .dynamic-flight-choice, .reservation-card-dynamic .dynamic-hotel-choice { border-color: #dce1de; color: #27393f; background: #fff; }
.reservation-card-dynamic .dynamic-flight-choice:hover, .reservation-card-dynamic .dynamic-hotel-choice:hover { border-color: #e59a5e; }
.reservation-card-dynamic .dynamic-flight-choice:has(input:checked), .reservation-card-dynamic .dynamic-hotel-choice:has(input:checked) { border-color: #e56d0a; box-shadow: inset 3px 0 0 #e56d0a; background: #fff8f1; }
.reservation-card-dynamic .flight-journey-point b { color: #22383f; }
.reservation-card-dynamic .flight-journey-point span { color: #45585c; }
.reservation-card-dynamic .flight-journey-point small { color: #8a9a97; }
.reservation-card-dynamic .flight-choice-price { color: #d76300; }
.reservation-card-dynamic .flight-choice-price.is-base { color: #1e7a4c; }
.reservation-card-dynamic .flight-choice-price.is-pending { color: #687678; }
.reservation-card-dynamic .flight-choice-select { border-color: #cbd2cf; color: #587076; }
.reservation-card-dynamic .dynamic-flight-choice:has(input:checked) .flight-choice-select { color: #fff; }
.reservation-card-dynamic .flight-journey-connector { color: #d76300; }
.reservation-card-dynamic .flight-journey-meta, .reservation-card-dynamic .flight-choice-tax { color: #687678; border-color: #e5e5e1; }
.reservation-card-dynamic .dynamic-flight-explainer { color: #5f6d70; }
.reservation-card-dynamic .dynamic-flight-special { background: #fff4ea; color: #6b4a2b; }
.reservation-card-dynamic .dynamic-flight-special strong { color: #c95900; }
.reservation-card-dynamic .dynamic-show-more-flights { border-color: #d98c4e; color: #8f480d; }
.reservation-card-dynamic .dynamic-show-more-flights:hover { background: #fff4ea; }
.reservation-card-dynamic .dynamic-itinerary-intro, .reservation-card-dynamic .dynamic-hotel-price em { color: #687678; }
.reservation-card-dynamic .dynamic-hotel-select { border-color: #cbd2cf; color: #587076; }
.reservation-card-dynamic .dynamic-hotel-choice:has(input:checked) .dynamic-hotel-select { color: #fff; }
.reservation-card-dynamic .dynamic-hotel-price small { color: #70807d; }
.reservation-card-dynamic .dynamic-hotel-price b { color: #d76300; }
.reservation-card-dynamic .dynamic-hotel-stars { color: #e58a42; }
.reservation-card-dynamic .dynamic-hotel-detail { border-color: #e58a42; }
.reservation-card-dynamic .dynamic-included-board { background: #eaf7ef; border-color: #55a87c; }
.reservation-card-dynamic .dynamic-included-board span { color: #17724e; }
.reservation-card-dynamic .dynamic-included-board strong { color: #23463a; }
.reservation-card-dynamic .dynamic-room-recommended { background: #fff3e8; border-color: #e58a42; }
.reservation-card-dynamic .dynamic-room-recommended-label { color: #b6631c; }
.reservation-card-dynamic .dynamic-room-recommended strong { color: #30474d; }
.reservation-card-dynamic .dynamic-room-recommended-board { color: #5a6b70; }
.reservation-card-dynamic .dynamic-room-options > summary { color: #30474d; }
.reservation-card-dynamic .dynamic-room-options[open] > summary { color: #16262a; }
.reservation-card-dynamic .dynamic-empty, .reservation-card-dynamic .dynamic-insurance { color: #506166; border-color: #e58a42; background: #f5f7f5; }
.reservation-card-dynamic .dynamic-insurance { border-color: #55a87c; }
.reservation-card-dynamic .dynamic-insurance strong { color: #17724e; }
.reservation-card-dynamic .dynamic-final-step { border-color: #d9dfdb; background: #eff5f2; }
.reservation-card-dynamic .dynamic-final-step p:last-child { color: #687678; }
.reservation-card-dynamic .reservation-passenger-card, .reservation-card-dynamic .reservation-billing { border-color: #dbe0dc; background: #fbfcfb; }
.reservation-card-dynamic .reservation-passenger-card legend { color: #d76300; }
.reservation-card-dynamic .reservation-check { color: #40565b; }
.reservation-card-dynamic .reservation-billing [data-billing-fields] > p { color: #687678; }
.reservation-card-dynamic .reservation-acknowledgement { border-color: #e58a42; background: #fff8f1; }
.reservation-card-dynamic .reservation-note { margin: 0; color: #687678; font-size: .73rem; }
.reservation-card-dynamic .dynamic-summary { border: 1px solid #bcdcc9; background: #f2faf5; }
.reservation-card-dynamic .dynamic-summary-top h3, .reservation-card-dynamic .dynamic-service-list strong { color: #1e5944; }
.reservation-card-dynamic .dynamic-summary-top p, .reservation-card-dynamic .dynamic-service-list span, .reservation-card-dynamic .dynamic-remarks, .reservation-card-dynamic .dynamic-summary details { color: #52645d; }

.offer-detail-footer { padding: 34px 0; }
.offer-detail-footer .container { align-items: center; display: flex; gap: 18px; }
.offer-detail-footer img { filter: brightness(0) invert(1); height: auto; width: 126px; }
.offer-detail-footer p { margin: 0; }

.dynamic-loading-overlay { align-items: center; background: rgba(246,243,240,.94); bottom: 0; display: flex; justify-content: center; left: 0; position: fixed; right: 0; top: 0; z-index: 60; }
.dynamic-loading-box { display: grid; gap: 18px; justify-items: center; max-width: 340px; padding: 0 24px; text-align: center; }
.dynamic-loading-box .dynamic-loading-spinner { animation: dynamic-spin .8s linear infinite; border: 3px solid rgba(22,38,42,.15); border-radius: 50%; border-top-color: var(--orange); height: 34px; width: 34px; }
.dynamic-loading-box p { color: #30474d; font-size: .92rem; font-weight: 700; line-height: 1.45; margin: 0; }

@media (max-width: 760px) {
  .offer-detail-header .nav-wrap { min-height: 68px; }
  .offer-detail-header .brand, .offer-detail-header .brand img { flex-basis: 118px; width: 118px; }
  .offer-detail-hero { padding: 16px 0 20px; }
  .offer-detail-hero-grid, .offer-detail-layout { grid-template-columns: 1fr; }
  .detail-photo { aspect-ratio: 1.8; max-height: none; }
  .detail-facts { gap: 16px; }
  .offer-detail-content { padding: 52px 0 64px; }
  .reservation-form { grid-template-columns: 1fr; }
  .reservation-contact-fields, .reservation-traveller-counts > div, .reservation-passenger-fields, .reservation-billing-fields { grid-template-columns: 1fr; }
  .dynamic-party-fields, .dynamic-config-fields, .dynamic-hotel-fields, .dynamic-child-ages, .dynamic-base-locals, .dynamic-hotel-choice-list { grid-template-columns: 1fr; }
  .dynamic-hotel-choice-list { max-height: 420px; }
  .dynamic-hotel-choice-body { grid-template-columns: 90px minmax(0, 1fr); padding: 10px 12px 10px 30px; }
  .dynamic-hotel-aside { align-items: end; grid-column: 1 / -1; grid-row: 2; grid-template-columns: 1fr auto; justify-items: stretch; }
  .dynamic-hotel-price { text-align: left; }
  .dynamic-final-step { grid-template-columns: 1fr; }
  .booking-layout { grid-template-columns: 1fr; }
  .booking-summary { position: static; order: -1; }
  .reservation-card-dynamic .departure-calendar, .reservation-card-dynamic .dynamic-party, .reservation-card-dynamic .dynamic-configuration, .reservation-card-dynamic .dynamic-options, .reservation-card-dynamic .reservation-contact-step { padding: 18px; }
  .flight-choice-body { align-items: stretch; flex-direction: column; }
  .flight-choice-aside { justify-items: stretch; text-align: left; }
  .flight-journey-row { flex-wrap: wrap; }
  .departure-calendar-top { align-items: flex-start; flex-direction: column; }
  .departure-calendar-grid { grid-template-columns: 1fr; max-width: none; }
  .departure-calendar-day, .departure-calendar-empty { min-height: 50px; }
  .departure-calendar-day strong { font-size: .76rem; }
  .departure-calendar-day small { font-size: .52rem; }
  .offer-detail-footer .container { align-items: flex-start; flex-direction: column; gap: 10px; }
}
