/* Planner introduction and trip details */
.planner-header { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 32px; text-align: left; padding: 36px 38px; margin: 12px 0 28px; background: linear-gradient(115deg, #edf5fb, #f3f6ec 65%, #fff0db); border: 1px solid #e1eaf0; border-radius: 24px; }
.planner-eyebrow { color: #216487; font: 700 11px/1.4 Inter, sans-serif; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 16px; }
.planner-header h1 { font: 500 clamp(32px, 3.8vw, 49px)/1.12 Georgia, serif; letter-spacing: -.035em; color: #102d45; margin: 0 0 5px; white-space: nowrap; }
.planner-title-sub { margin: 0 0 18px; color: #247d8b; font: 500 clamp(23px, 2.5vw, 31px)/1.2 Georgia, serif; letter-spacing: -.025em; white-space: nowrap; }
.planner-header .planner-intro { color: #50677a; font-size: 15px; line-height: 1.8; max-width: 450px; margin: 0 0 22px; }
.planner-steps { display: flex; flex-wrap: wrap; gap: 9px; padding: 0; margin: 0; list-style: none; color: #345466; font-size: 12px; }
.planner-step { display: inline-flex; align-items: center; min-height: 38px; border: 1px solid #d4e1e5; border-radius: 999px; padding: 7px 12px 7px 8px; background: #ffffff78; white-space: nowrap; }
.planner-step-number { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 auto; margin-right: 6px; border: 1px solid #adcbd1; border-radius: 50%; background: #ffffffa8; font-size: 10px; font-weight: 700; }
.planner-postcards { position: relative; height: 238px; width: 100%; max-width: 380px; justify-self: center; }
.planner-postcard { position: absolute; width: 47%; height: 208px; padding: 7px 7px 28px; background: #fff; border-radius: 10px; box-shadow: 0 10px 28px #163e5c20; }
.planner-postcard img { width: 100%; height: 100%; object-fit: cover; border-radius: 5px; display: block; }
.planner-postcard span { display: block; text-align: center; font: 12px/25px Georgia, serif; color: #345466; }
.planner-postcard:first-child { left: 4%; top: 12px; transform: rotate(-8deg); }
.planner-postcard:nth-child(2) { right: 3%; top: 24px; transform: rotate(9deg); }
.planner-postcard-stamp { position: absolute; bottom: -5px; left: 12%; background: #123e55; color: white; border-radius: 30px; padding: 10px 18px; box-shadow: 0 7px 20px #123e5520; font-size: 12px; letter-spacing: .02em; }
.planner-details { padding: 26px 28px; border-radius: 18px; border-color: #dce7ee; box-shadow: 0 8px 26px #163e5c07; }
.planner-details-heading { display: flex; gap: 14px; align-items: center; margin-bottom: 24px; }
.planner-details-icon { width: 44px; height: 44px; display: grid; place-items: center; background: #eaf3f7; color: #267283; border-radius: 12px; flex: 0 0 auto; }
.planner-details-title { font: 500 24px/1.2 Georgia, serif; color: #17364c; margin: 0 0 4px; }
.planner-details-heading p { font-size: 13px; color: #627688; margin: 0; }
.planner-details-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 22px; }
.planner-date-mode-group { grid-column: 1 / -1; min-width: 0; margin: 0; border: 0; padding: 0; }
.planner-date-mode-group legend { margin-bottom: 8px; color: #395368; font-size: 12px; font-weight: 600; }
.planner-date-mode { display: inline-grid; grid-template-columns: repeat(2, minmax(130px, 1fr)); gap: 4px; max-width: 360px; border: 1px solid #dbe5ed; border-radius: 12px; padding: 4px; background: #f3f7f9; }
.planner-date-mode label { margin: 0; cursor: pointer; }
.planner-date-mode input { position: absolute; opacity: 0; pointer-events: none; }
.planner-date-mode span { display: grid; min-height: 40px; place-items: center; border-radius: 8px; padding: 8px 15px; color: #496276; font-size: 13px; font-weight: 650; transition: background .2s, color .2s, box-shadow .2s; }
.planner-date-mode input:checked + span { background: #fff; color: #17364c; box-shadow: 0 2px 8px #183c5517; }
.planner-date-mode input:focus-visible + span { outline: 2px solid #498fba; outline-offset: 1px; }
.planner-flexible-trip-length-group[hidden], #planner-exact-start-group[hidden], #planner-exact-end-group[hidden] { display: none; }
.planner-details label { display: block; font-size: 12px; font-weight: 600; color: #395368; margin-bottom: 8px; }
.planner-budget-currency { color: #6c7f8d; font-weight: 500; }
.planner-details .form-input { width: 100%; background: #f8fafc; border: 1px solid #dbe5ed; border-radius: 9px; min-height: 48px; font-size: 14px; padding: 12px 14px; color: #17364c; transition: border-color .2s, box-shadow .2s; }
.planner-details select.form-input { padding-right: 32px; }
.planner-details .form-input:focus { outline: 2px solid #498fba; outline-offset: 2px; background: white; }
.planner-travelers-control { min-height: 48px; display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; overflow: hidden; border: 1px solid #dbe5ed; border-radius: 9px; background: #f8fafc; }
.planner-travelers-control output { display: grid; place-items: center; min-height: 46px; font-weight: 600; color: #17364c; }
.planner-travelers-button { align-self: stretch; border: 0; background: transparent; color: #17364c; cursor: pointer; font: 600 22px/1 Inter, sans-serif; }
.planner-travelers-button:hover:not(:disabled), .planner-travelers-button:focus-visible { background: #eaf3f7; outline: none; }
.planner-travelers-button:disabled { opacity: .4; cursor: not-allowed; }
.planner-style-heading { font: 500 28px/1.2 Georgia, serif; color: #17364c; margin-bottom: 8px !important; }
.planner-style-intro { font-size: 14px; color: #627688; margin-bottom: 22px; }
@media (max-width: 760px) {
 .planner-header { grid-template-columns: 1fr; padding: 28px; gap: 22px; }
 .planner-postcards { height: 180px; max-width: 300px; }
 .planner-postcard { height: 155px; }
 .planner-postcard-stamp { bottom: -6px; }
 .planner-details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
 .planner-header { padding: 24px 20px; }
 .planner-details { padding: 22px 18px; }
 .planner-details-grid { grid-template-columns: 1fr; gap: 16px; }
 .planner-details-heading { align-items: flex-start; }
 .planner-date-mode { width: 100%; max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .planner-steps { gap: 10px; font-size: 11px; }
}
@media (prefers-reduced-motion: no-preference) {
 .planner-postcards { animation: planner-arrive .7s ease-out both; }
 @keyframes planner-arrive { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
}

.planner-page-notice{position:fixed;left:16px;right:16px;bottom:16px;z-index:3000;padding:12px 16px;border-radius:10px;background:#17364c;color:#fff;box-shadow:0 8px 22px #102d4530}.planner-page-notice[data-type=error]{background:#a02b2b}

/* Fare Scout */
.fare-scout { margin: 20px 0 30px; padding: clamp(21px, 3vw, 30px); border: 1px solid #cfe0e7; border-radius: 20px; background: linear-gradient(140deg, #f7fbfc 0%, #eef7f5 55%, #f7f4e9 100%); box-shadow: 0 12px 32px #123e550b; transition: box-shadow .25s ease, border-color .25s ease; }
.fare-scout.is-expanded { border-color: #b8d2d9; box-shadow: 0 16px 40px #123e5511; }
.fare-scout-heading { margin-bottom: 18px; }
.fare-scout-kicker-row { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.fare-scout-heading .planner-eyebrow { margin: 0; }
.fare-scout-heading h2 { margin: 0 0 8px; color: #102d45; font: 500 clamp(25px, 2.6vw, 34px)/1.1 Georgia, serif; letter-spacing: -.025em; }
.fare-scout-heading p:last-child { max-width: 720px; margin: 0; color: #50677a; font-size: 14px; line-height: 1.6; }
.fare-scout-badge { border-radius: 999px; padding: 4px 8px; color: #54717b; background: #e6eff0; font-size: 10px; font-weight: 700; letter-spacing: .04em; }
.fare-scout-toggle, .fare-scout-submit { min-height: 46px; border-radius: 999px; padding-inline: 22px; }
.fare-scout-toggle { border: 1px solid #91b8c2; background: #e8f2f3; color: #164e61; box-shadow: none; }
.fare-scout-toggle:hover, .fare-scout-toggle:focus-visible { background: #dcecee; color: #123f50; }
.fare-scout-toggle-short { display: none; }
.fare-scout-disclaimer { margin: 11px 0 0; color: #607786; font-size: 13px; line-height: 1.55; }
.fare-scout-panel { max-height: 0; opacity: 0; overflow: hidden; visibility: hidden; transition: max-height .42s ease, opacity .28s ease, visibility 0s linear .42s; }
.fare-scout.is-expanded .fare-scout-panel { max-height: 760px; opacity: 1; visibility: visible; transition-delay: 0s; }
.fare-scout-panel-inner { padding-top: 24px; }
.fare-scout-context { display: grid; gap: 5px; margin-bottom: 20px; border-left: 3px solid #b8df61; border-radius: 0 12px 12px 0; padding: 14px 16px; background: #ffffffb8; }
.fare-scout-context .fare-scout-route { margin: 0; }
.fare-scout-context strong { color: #102d45; font: 600 18px/1.3 Georgia, serif; }
.fare-scout-context .fare-scout-trip-summary { margin: 0; color: #415c6d; font-size: 14px; font-weight: 650; }
.fare-scout-context p { margin: 3px 0 0; color: #617684; font-size: 13px; line-height: 1.5; }
.fare-scout-context.is-ready #fare-scout-guidance { display: none; }
.planner-observed-flight strong { display: block; color: #163e55; }
.planner-observed-flight small { display: block; margin-top: 4px; color: #607786; font-size: 12px; line-height: 1.45; }
.fare-scout-choices { display: grid; grid-template-columns: 1.25fr 1fr .75fr; gap: 16px; margin: 0 0 20px; }
.fare-scout-choices fieldset { min-width: 0; margin: 0; padding: 16px 18px; border: 1px solid #d6e3e7; border-radius: 14px; background: #ffffffad; }
.fare-scout-choices legend, .fare-scout-stops > label { display: block; margin-bottom: 8px; padding: 0 6px; color: #29495d; font-size: 12px; font-weight: 700; }
.fare-scout-choices label { display: inline-flex; align-items: center; gap: 8px; margin: 6px 20px 6px 0; color: #29495d; font-size: 13px; cursor: pointer; }
.fare-scout-choices input { width: 17px; height: 17px; accent-color: #1c7182; }
.fare-scout-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.fare-scout-pills label { margin: 0; }
.fare-scout-pills input { position: absolute; opacity: 0; pointer-events: none; }
.fare-scout-pills span { display: inline-flex; align-items: center; min-height: 38px; border: 1px solid #c9d9df; border-radius: 999px; padding: 7px 12px; background: #fff; transition: border-color .2s, background .2s, color .2s; }
.fare-scout-pills input:checked + span { border-color: #28768b; background: #e2f1f3; color: #174d60; box-shadow: inset 0 0 0 1px #28768b; }
.fare-scout-pills input:focus-visible + span { outline: 3px solid #8fc5d1; outline-offset: 2px; }
.fare-scout-flexibility-control { width: min(100%, 230px); grid-template-columns: 46px minmax(112px, 1fr) 46px; border-color: #c9d9df; background: #fff; }
.fare-scout-flexibility-control output { padding-inline: 8px; color: #17364c; font-size: 14px; white-space: nowrap; }
.fare-scout-flexibility-control button { align-self: stretch; border: 0; background: transparent; color: #17364c; cursor: pointer; font: 600 21px/1 Inter, sans-serif; }
.fare-scout-flexibility-control button:hover:not(:disabled), .fare-scout-flexibility-control button:focus-visible { background: #eaf3f7; outline: none; }
.fare-scout-flexibility-control button:disabled { cursor: not-allowed; opacity: .35; }
.fare-scout-auto-dates { display: flex; align-items: flex-start; gap: 10px; max-width: 620px; margin: 0 0 18px; color: #29495d; cursor: pointer; }
.fare-scout-auto-dates input { width: 18px; height: 18px; margin-top: 2px; accent-color: #1c7182; }
.fare-scout-auto-dates span, .fare-scout-auto-dates small { display: block; }
.fare-scout-auto-dates strong { font-size: 13px; }
.fare-scout-auto-dates small { margin-top: 3px; color: #607786; font-size: 12px; line-height: 1.45; }
.planner-option-timing { margin: 0; border-left: 3px solid #b8df61; padding: 8px 10px; background: #f6faec; color: #29495d; font-size: 13px; }
.planner-option-fare-scout { margin: 0; border: 1px solid #d7e6dd; border-radius: 12px; padding: 12px; background: #f8fbf6; color: #29495d; font-size: 13px; line-height: 1.5; }
.planner-option-fare-scout .planner-result-kicker { margin-bottom: 5px; }
.planner-option-fare-scout p { margin: 3px 0; }
.planner-budget-basis { margin: -6px 0 2px; color: #607786; font-size: 12px; line-height: 1.4; }
.planner-option-match { margin: 0; font-size: 13px; }
.planner-option-date-summary { display: grid; gap: 3px; margin: 12px 0 4px; border-left: 3px solid #87aeb7; border-radius: 0 10px 10px 0; padding: 10px 12px; background: #f4f8f9; color: #29495d; }
.planner-option-date-summary .planner-result-kicker { margin: 0 0 2px; color: #216487; }
.planner-option-date-summary strong { color: #17364c; font-size: 14px; line-height: 1.4; }
.planner-option-date-summary span { color: #607786; font-size: 12px; line-height: 1.4; }
.planner-option-date-summary p:not(.planner-result-kicker) { margin: 5px 0 0; color: #496574; font-size: 12px; line-height: 1.5; }
.planner-option-date-summary p b { color: #29495d; }
.planner-option-date-summary.is-observed { border-left-color: #7da84b; background: #f6faed; }
.planner-option-flight-link { display: inline-flex; align-items: center; min-height: 42px; color: #075f9a; font-size: 13px; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.planner-budget-badge.near { background: #fff4e5; color: #855000; }
.fare-scout-stops { padding: 16px 18px; border: 1px solid #d6e3e7; border-radius: 14px; background: #ffffffad; }
.fare-scout-stops > label { padding: 0; }
.fare-scout-stops .form-input { width: 100%; min-height: 42px; border: 1px solid #c9d9df; border-radius: 9px; padding: 8px 10px; background: #fff; color: #17364c; }
.fare-scout-submit:disabled { cursor: not-allowed; opacity: .52; box-shadow: none; }
.fare-scout-results { margin-top: 30px; border-top: 1px solid #cfdfe4; padding-top: 28px; }
.fare-scout-result-heading { margin-bottom: 20px; }
.fare-scout-result-heading h3 { margin: 0 0 8px; color: #102d45; font: 500 27px/1.2 Georgia, serif; }
.fare-scout-result-heading p { color: #50677a; }
.fare-scout-price-note { max-width: 620px; margin-top: 12px; border-radius: 10px; padding: 10px 12px; background: #ffffffa8; font-size: 13px; line-height: 1.5; }
.fare-scout-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fare-scout-card { position: relative; min-width: 0; padding: 22px; border: 1px solid #d3e0e5; border-radius: 18px; background: #fff; box-shadow: 0 8px 24px #123e5509; }
.fare-scout-card.is-lowest { border-color: #6f9e42; box-shadow: inset 0 4px 0 #b7e85a, 0 10px 28px #5e862218; }
.fare-scout-lowest { display: inline-block; margin: -2px 0 12px; border-radius: 999px; padding: 6px 9px; background: #dffa9f; color: #294b16; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.fare-scout-window { margin: 0 0 7px; color: #216487; font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.fare-scout-card h3 { margin: 0 0 18px; color: #17364c; font: 500 21px/1.25 Georgia, serif; white-space: nowrap; }
.fare-scout-duration { margin: -10px 0 18px; color: #5e7483; font-size: 13px; font-weight: 650; }
.fare-scout-price { margin: 0 0 10px; border-block: 1px solid #e6edef; padding: 14px 0; }
.fare-scout-price span { display: block; color: #102d45; font: 700 clamp(20px, 2vw, 26px)/1.15 Inter, sans-serif; letter-spacing: -.025em; }
.fare-scout-price small { display: block; margin-top: 7px; color: #607786; font-size: 13px; line-height: 1.45; }
.fare-scout-card dl, .fare-scout-card dl div { margin: 0; }
.fare-scout-card dl div { padding: 10px 0; border-bottom: 1px solid #edf1f2; }
.fare-scout-card dt { color: #6b7d88; font-size: 12px; }
.fare-scout-card dd { margin: 3px 0 0; color: #17364c; font-size: 14px; font-weight: 650; overflow-wrap: anywhere; }
.fare-scout-saving { margin: 14px 0 0; border-radius: 10px; padding: 11px 12px; background: #eff8db; color: #37561f; font-size: 13px; font-weight: 650; }
.fare-scout-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 18px; }
.fare-scout-actions button { min-height: 42px; border: 0; border-radius: 999px; padding: 10px 14px; background: #17364c; color: #fff; cursor: pointer; font: 650 13px/1.2 Inter, sans-serif; }
.fare-scout-actions a, .fare-scout-empty a, .fare-scout-state a { display: inline-flex; min-height: 42px; align-items: center; color: #075f9a; font-size: 13px; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.fare-scout-state { border: 1px solid #d8e3e7; border-radius: 14px; padding: 18px; background: #fff; color: #29495d; }
@media (max-width: 1020px) {
 .fare-scout-choices { grid-template-columns: 1fr 1fr; }
 .fare-scout-stops { grid-column: 1 / -1; }
 .fare-scout-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
 .fare-scout { margin-inline: 0; padding: 20px 18px; border-radius: 18px; }
 .fare-scout-kicker-row { flex-wrap: wrap; }
 .fare-scout-toggle, .fare-scout-submit { width: 100%; white-space: normal; }
 .fare-scout-choices { grid-template-columns: 1fr; gap: 14px; }
 .fare-scout-stops { grid-column: auto; }
 .fare-scout-choices label { display: flex; margin-right: 0; min-height: 32px; }
 .fare-scout-flexibility-control { width: 100%; }
 .fare-scout-card { padding: 19px; }
 .fare-scout-card h3 { font-size: 20px; }
 .fare-scout-price span { font-size: 23px; }
 .planner-option-estimates div { display: grid; grid-template-columns: minmax(108px, .9fr) minmax(0, 1.2fr); }
 .planner-option-estimates span { flex: none; overflow-wrap: normal; word-break: normal; }
 .planner-option-estimates strong { max-width: none; overflow-wrap: normal; word-break: normal; }
 .planner-option-estimates .planner-observed-flight small { grid-column: 2; margin-top: 0; }
}
@media (max-width: 400px) {
 .planner-header h1 { font-size: 31px; }
 .planner-title-sub { font-size: 23px; }
 .planner-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
 .planner-step { min-width: 0; padding: 7px 5px; font-size: 10px; white-space: normal; }
 .planner-step-number { width: 20px; height: 20px; }
 .fare-scout-toggle-wide { display: none; }
 .fare-scout-toggle-short { display: inline; }
}
