#trip-booking fieldset[hidden],#trip-booking #tripDepartureWrap[hidden]{display:none!important}
#tripTravelerStep{border:0;padding:0;min-width:0}
#tripTravelerStep h4{font-size:18px;font-weight:700;color:#1e4f6b;margin:0 0 18px}
.trip-traveler-card{background:#f7fafb;border:1px solid #dce8ed;border-radius:16px;padding:16px;margin-bottom:14px}
.trip-traveler-card h5{font-size:14px;font-weight:700;color:#1e4f6b;margin:0 0 12px}
.trip-traveler-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.trip-traveler-grid label{display:grid;gap:6px;min-width:0;color:#567282;font-size:12px}
#trip-booking .trip-traveler-grid input{width:100%;min-width:0;box-sizing:border-box;background:#fff;border:1px solid #d2e2e9;border-radius:10px;padding:11px 12px;color:#1e4f6b;font-size:14px}
#trip-booking .trip-traveler-grid input:focus{outline:2px solid #7baabd;outline-offset:2px}
.trip-traveler-actions{display:flex;gap:10px;margin-top:18px}
.trip-traveler-actions button{flex:1;min-height:46px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer}
#tripTravelerBack{background:#fff;border:1px solid #cbdde6;color:#1e4f6b}
@media(max-width:380px){.trip-traveler-grid{grid-template-columns:1fr}}

#trip-booking .trip-booking-start{padding:22px 0 26px}
.trip-booking-start>span{display:block;font-size:13px;font-weight:600;color:#718693;margin-bottom:9px}
.trip-booking-start>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:9px}
.trip-booking-start strong{font-size:clamp(23px,2vw,28px);font-weight:700;line-height:1.25;letter-spacing:-.05em;color:#1e4f6b}
.trip-booking-start div>span{font-size:13px;color:#8a9ca6}
#trip-booking .trip-booking-date-title{font-size:14px;font-weight:700;color:#294f64;margin:0 0 12px}
#trip-booking #tripDepartureBtn{min-height:52px;background:#fff;padding:14px 15px;border-radius:13px}
#trip-booking #tripDepartureLabel{font-size:13px}
#trip-booking .trip-booking-summary{border-top:1px solid #dce6eb;margin:24px 0 18px;padding-top:19px;display:grid;gap:14px}
.trip-booking-summary>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.trip-booking-deposit{font-size:12px;color:#8195a1}
.trip-booking-deposit strong{font-weight:500;white-space:nowrap}
.trip-booking-total{font-size:17px;font-weight:700;color:#1e4f6b}
.trip-booking-total strong{font-size:20px;white-space:nowrap}
#trip-booking .trip-booking-awaiting-button{width:100%;min-height:48px;border-radius:12px;background:#b3c9d5;color:#fff;font-size:13px;font-weight:700;cursor:not-allowed}
#trip-booking #tripBookingAwaiting[hidden]{display:none!important}
@media(max-width:640px){.trip-booking-start strong{font-size:25px}.trip-booking-total strong{font-size:19px}}

.trip-terms-controls{margin:18px 0}
#trip-booking #tripTermsOpen{display:flex;align-items:center;gap:8px;width:100%;padding:13px;background:#f5f9fa;border:1px solid #d9e6ec;border-radius:12px;color:#21526d;font-size:12px;text-align:left;cursor:pointer}
#tripTermsOpen .material-symbols-outlined{font-size:20px}#tripTermsOpen span:last-child{margin-left:auto}
#tripTermsStatus{color:#30866c;font-size:11px;margin-top:8px}
.trip-terms-dialog{position:fixed;inset:0;margin:auto;overscroll-behavior:contain;width:calc(100% - 32px);max-width:600px;max-height:85dvh;overflow:auto;padding:24px;border:1px solid #dce6ec;border-radius:22px;background:#fff;color:#294f64}
.trip-terms-dialog::backdrop{background:#102c3d99;backdrop-filter:blur(4px)}
.trip-terms-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.trip-terms-head h2{font-size:19px;font-weight:700}.trip-terms-head button{border:0;background:#eef4f7;border-radius:50%;width:32px;height:32px;font-size:23px}
.trip-terms-content{font-size:13px;line-height:1.9;max-height:38dvh;overflow:auto;padding-right:8px;white-space:normal;overflow-wrap:anywhere}
.trip-deposit-note{padding:14px;background:#f0f6f8;border-radius:12px;margin:18px 0;font-size:12px;line-height:1.8}
.trip-terms-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.8}.trip-terms-check input{accent-color:#21526d;width:18px;height:18px;flex-shrink:0;margin-top:2px}
#tripTermsAgree{margin-top:20px;width:100%;padding:13px;border:0;border-radius:12px;background:#21526d;color:#fff;font-size:13px;font-weight:700}#tripTermsAgree:disabled{background:#b3c9d5;cursor:not-allowed}

/* Editable additional travelers. */
.trip-traveler-card{position:relative}
.trip-traveler-card h5{padding-right:32px}
#trip-booking .trip-traveler-remove{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:30px;height:30px;min-height:30px;padding:0;border:1px solid #d5e3eb;border-radius:50%;background:#fff;color:#21526d;font-size:22px;line-height:1;cursor:pointer}
#trip-booking .trip-traveler-remove:hover{background:#e8f1f6}
.trip-traveler-age{display:grid;gap:6px;margin-bottom:12px;font-size:11px;color:#627f91}
#trip-booking .trip-traveler-age select{width:100%;padding:10px 12px;border:1px solid #d2e2e9;border-radius:10px;background:#fff;color:#21526d;font:inherit}
#trip-booking .trip-traveler-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:10px 14px;border:1px dashed #92aebf;border-radius:12px;background:#f0f6f9;color:#21526d;font-size:12px;font-weight:600;cursor:pointer}
.trip-traveler-add span{font-size:22px;line-height:1}
#trip-booking .trip-traveler-add:disabled{opacity:.5;cursor:default}
#trip-booking :is(.trip-traveler-add,.trip-traveler-remove):focus-visible{outline:2px solid #21526d;outline-offset:2px}

/* Keep schedule prices and totals easy to scan. */
#tripDepartureList .trip-dep-option{min-height:70px;padding:14px 16px;gap:12px;border-bottom:1px solid #edf2f5}
#tripDepartureList .trip-dep-option:last-child{border-bottom:0}
#tripDepartureList .trip-dep-option>span:first-child{font-size:14px;line-height:1.65;min-width:0}
#tripDepartureList .trip-dep-option small{margin-top:3px;font-size:12px;line-height:1.6;color:#496e83;white-space:normal}
#tripDepartureList .trip-dep-option small b{color:#23734f}
#tripDepartureList .trip-dep-option:focus-visible{outline:3px solid #83b5ce;outline-offset:-3px;background:#f1f7fa}
#trip-booking .trip-booking-summary>div{flex-wrap:wrap;gap:6px 14px}
#trip-booking .trip-booking-summary strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#trip-booking .trip-booking-deposit{font-size:13px;color:#607888}
@media(max-width:767px){#trip-booking .trip-booking-summary{gap:16px}#trip-booking .trip-traveler-grid input{min-height:46px;font-size:16px}}
