:root { color-scheme:light; }
body:has(dialog[open]) { overflow:hidden; }
.content-width { width:min(1200px,calc(100% - 80px));margin-inline:auto; }
.nalo-header { height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;gap:24px;background:var(--primary);color:white; }
.nalo-header .brand { color:white;gap:10px;flex-shrink:0; }
.nalo-nz-mark { width:52px;height:58px;flex-shrink:0; }
.nalo-wordmark { font-family:'General Sans',Arial,sans-serif;font-size:32px;line-height:1;letter-spacing:-1.4px; }
.nalo-wordmark>span { display:block;font-family:Inter,Arial,sans-serif;font-size:10px;letter-spacing:5.2px;margin-top:8px;text-align:center; }
.nalo-header nav { display:flex;gap:32px;margin-left:auto;margin-right:46px;font-size:13px; }
.nalo-header a { text-decoration:none;color:inherit; }
.nalo-header a:hover { text-decoration:underline;text-underline-offset:5px; }
.header-phone { text-align:center;display:grid;gap:5px; }
.header-phone span { font-size:15px;line-height:1.4; }.header-phone strong { font-size:19px;letter-spacing:.4px; }
#site-page { outline:none; }.nalo-hero { position:relative;height:clamp(500px,calc(100svh - 230px),690px);background:#29445b;color:white; }
.hero-image-wrap,.hero-image-wrap img,.hero-shade { position:absolute;inset:0;width:100%;height:100%; }
.hero-image-wrap { overflow:hidden; }.hero-image-wrap img { object-fit:cover;object-position:center 49%; }
.hero-shade { background:linear-gradient(180deg,rgba(12,27,40,.05) 10%,rgba(12,27,40,.15) 32%,rgba(12,27,40,.69) 100%); }
.hero-caption { position:absolute;left:28px;top:22px;font-size:9px;letter-spacing:1.7px;color:white;text-shadow:0 1px 5px #102b48; }
.hero-copy { position:absolute;width:100%;padding:0 24px;text-align:center;bottom:calc(10% + 86px);text-shadow:0 2px 16px #17283e80; }
.hero-kicker { font-size:10px;letter-spacing:2.5px;margin-bottom:16px;font-weight:600; }.hero-copy h1 { font-family:Arial,sans-serif;font-size:clamp(32px,3.5vw,50px);font-weight:700;letter-spacing:-2.4px;line-height:1.04; }.hero-copy>p:last-child { margin-top:18px;font-size:15px; }
.hero-actions { position:absolute;bottom:10%;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:1fr 1fr;gap:12px;width:min(520px,calc(100% - 40px)); }
.hero-actions>button { min-width:0; }
.hero-actions>p { position:absolute;top:calc(100% + 13px);width:100%;text-align:center;font-size:11px;color:#f2f5fa; }
.primary-button,.secondary-button { font-family:Inter,Arial,sans-serif;font-size:14px;font-weight:600;border-radius:6px;min-height:54px; }
.primary-button:hover:not(:disabled) { background:#2c4b72; }
.secondary-button { display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid var(--line);padding:13px 23px;background:white;color:var(--primary);cursor:pointer;text-decoration:none; }
.secondary-button:hover { background:var(--pale);border-color:var(--primary); }.hero-actions .secondary-button { background:#ffffffed;border-color:transparent; }
.selected-section { padding:44px 0 54px;scroll-margin-top:24px; }.section-heading { display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px; }.eyebrow { font-size:10px;letter-spacing:2px; }.section-heading .eyebrow { margin-bottom:9px; }.section-heading h2,.about-inner h2 { font:bold 32px/1.13 Arial,sans-serif;letter-spacing:-1px; }.section-heading>p { font-size:13px;color:var(--muted);padding-bottom:3px; }
.catalogue-grid { display:grid;grid-template-columns:1fr;gap:24px; }.sailing-card { display:flex;flex-direction:column;background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;color:var(--ink);text-decoration:none;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s; }.sailing-card:hover { transform:translateY(-3px);box-shadow:var(--shadow-popover); }.sailing-card>img,.card-photo-placeholder { width:100%;aspect-ratio:1.65;object-fit:cover;background:var(--pale); }.card-photo-placeholder { display:grid;place-items:center;color:var(--muted); }.sailing-card-copy { padding:22px;display:flex;flex:1;flex-direction:column; }.sailing-card h3 { font:bold 22px/1.15 Arial,sans-serif;letter-spacing:-.5px; }.sailing-card .route-title { margin:10px 0 17px;font-size:14px;line-height:1.5; }.sailing-meta { font-size:12px;color:var(--muted);line-height:1.8; }.card-price { padding-top:20px;margin-top:auto; }.card-price strong { font-size:24px;letter-spacing:-.8px; }.card-price small { display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5; }.card-link-label { margin-top:19px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--primary); }.more-row { text-align:center;margin-top:28px; }
.about-section { background:var(--primary);color:white;padding:60px 0; }.about-inner { display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px; }.about-inner>div>p:not(.eyebrow) { color:var(--muted);font-size:15px;line-height:1.8; }.credential-marks { display:flex;gap:36px;margin-top:20px; }.credential-marks>span { font-size:23px;letter-spacing:1px;font-weight:700;color:var(--primary); }.credential-marks small { display:block;font-size:8px;letter-spacing:1.4px;margin-top:5px; }.nalo-footer { display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:30px; }.nalo-footer>span { font-family:'General Sans',Arial,sans-serif;font-weight:700;font-size:18px; }.nalo-footer p { font-size:10px;line-height:1.7;color:var(--muted); }.nalo-footer>a { font-size:13px;white-space:nowrap; }
dialog { color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:0;box-shadow:0 25px 90px #0d21385c; }dialog::backdrop { background:#102b48a8;backdrop-filter:blur(4px); }.dialog-top { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 26px;border-bottom:1px solid var(--line);background:white; }.dialog-top>span { font-size:10px;letter-spacing:1.7px;color:var(--primary);font-weight:600; }.close-button { border:0;background:none;font-size:29px;line-height:1;width:36px;height:36px;border-radius:5px; }.close-button:hover { background:var(--pale); }
.choice-tile,.year-group,.ship-card { background:white; }.schedule-dialog { width:min(640px,calc(100% - 32px));max-height:90svh; }#schedule-body { padding:28px; }.schedule-dialog h2 { font:bold 32px/1.1 Arial,sans-serif;letter-spacing:-1px;margin-bottom:13px; }.schedule-intro { color:var(--muted);font-size:14px;line-height:1.6; }.schedule-context { background:var(--pale);padding:12px;border-radius:6px;margin-top:16px;font-size:13px;line-height:1.6; }.schedule-dialog fieldset { border:0;padding:0;margin:23px 0; }.schedule-dialog legend,.form-label { display:block;font-size:12px;font-weight:600;margin-bottom:10px; }.method-options { display:grid;grid-template-columns:repeat(3,1fr);gap:8px; }.radio-choice { border:1px solid var(--line);padding:13px 8px;border-radius:6px;font-size:12px;cursor:pointer;background:white;display:flex;align-items:center;gap:6px; }.radio-choice:has(input:checked) { background:var(--pale);border-color:var(--primary); }.radio-choice input { accent-color:var(--primary);margin:0; }.schedule-grid { display:grid;grid-template-columns:1fr 1fr;gap:15px; }.schedule-dialog input:not([type=radio]),.schedule-dialog select { width:100%;border:1px solid var(--line);border-radius:6px;padding:12px;min-height:46px;background:white;color:var(--ink); }.schedule-dialog .primary-button { width:100%;margin-top:22px; }.demo-note { font-size:11px;color:var(--muted);line-height:1.6;margin-top:15px; }.schedule-success { padding:20px 0; }.schedule-success .success-mark { display:grid;place-items:center;width:55px;height:55px;background:var(--pale);color:var(--primary);border-radius:50%;font-size:28px;margin-bottom:22px; }
#sailing-page { padding-block:30px 60px; }.back-link { display:inline-block;color:var(--primary);font-size:13px;margin-bottom:26px;text-decoration:none; }.detail-heading h1 { font:bold clamp(32px,4vw,49px)/1.1 Arial,sans-serif;letter-spacing:-1.5px;margin:10px 0 16px;max-width:950px; }.detail-heading>p { color:var(--muted);font-size:14px;line-height:1.7; }.detail-layout { display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:32px;margin-top:28px;align-items:start; }.detail-media { aspect-ratio:3/2;border-radius:10px;overflow:hidden; }.detail-summary { padding:28px;background:white;border:1px solid var(--line);border-radius:10px; }.detail-summary h2 { font-size:24px;margin-bottom:16px; }.detail-summary .primary-button { width:100%;margin-top:24px; }.detail-summary .secondary-button { width:100%;margin-top:10px; }.detail-price { font-size:34px;font-weight:700;letter-spacing:-1px; }.detail-summary p { font-size:13px;line-height:1.8;color:var(--muted); }.detail-content { max-width:800px; }.detail-section { padding-top:38px; }.detail-section h2 { font-size:26px;letter-spacing:-.5px;margin-bottom:20px; }.detail-stops { list-style:none;padding:0; }.detail-stops li { display:flex;gap:25px;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px; }.detail-stops span { width:70px;flex-shrink:0;color:var(--muted);font-size:12px; }.fare-table { width:100%;border-collapse:collapse;background:white; }.fare-table th,.fare-table td { text-align:left;padding:15px;border-bottom:1px solid var(--line);font-size:13px; }.fare-table th { color:var(--muted);font-size:11px; }.fare-table th:last-child,.fare-table td:last-child { text-align:right; }.detail-section .editorial-copy { font-size:14px;line-height:1.8; }.detail-section .editorial-copy h2 { font-size:22px;margin-top:25px; }.detail-section .editorial-copy h1 { font-size:25px; }.detail-content details>summary { color:var(--primary);font-weight:600;padding-block:14px; }
#recommendation-page { max-width:900px; }#recommendation-page #cruise-main { padding-block:40px 50px; }
@media(max-width:800px) { .content-width { width:calc(100% - 40px); }.nalo-header { padding-inline:22px; }.nalo-header nav { display:none; }.catalogue-grid { gap:14px; }.sailing-card-copy { padding:16px; }.sailing-card h3 { font-size:20px; }.about-inner { gap:30px; }.section-heading>p { display:none; }.detail-layout { gap:20px; }.hero-copy h1 { letter-spacing:-1.5px; } }
@media(max-width:600px) { .nalo-header { height:82px;padding:0 20px;gap:12px; }.nalo-wordmark { font-size:27px; }.nalo-wordmark>span { font-size:8px;letter-spacing:4.4px; }.header-phone span { font-size:13px; }.header-phone strong { font-size:16px; }.nalo-hero { height:auto;display:flex;flex-direction:column;background:var(--paper);color:var(--ink); }.hero-image-wrap { position:relative;height:330px; }.hero-image-wrap img { object-position:50% 50%; }.hero-copy { bottom:auto;top:230px;padding:0 20px;color:white; }.hero-copy h1 { font-size:clamp(25px,7vw,29px);letter-spacing:-1.2px; }.hero-copy>p:last-child { font-size:12px;line-height:1.6;margin-top:12px; }.hero-kicker { font-size:8px;margin-bottom:12px; }.hero-caption { font-size:8px;top:16px;left:16px; }.hero-actions { position:static;transform:none;width:min(360px,calc(100% - 40px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:28px auto 0;gap:10px; }.hero-actions>p { position:static;font-size:10px;color:var(--muted);margin-top:3px; }.hero-actions>button { padding:10px 8px;font-size:13px;gap:7px; }.hero-actions .secondary-button { background:white;border-color:var(--line); }.selected-section { padding-top:32px; }.section-heading h2,.about-inner h2 { font-size:28px; }.catalogue-grid { grid-template-columns:1fr;gap:24px; }.sailing-card-copy { padding:22px; }.about-section { padding:40px 0; }.about-inner { grid-template-columns:1fr;gap:22px; }.nalo-footer { align-items:start;flex-wrap:wrap; }.nalo-footer p { order:3;width:100%; }.schedule-dialog { max-height:95dvh; }#schedule-body { padding:22px; }.method-options { grid-template-columns:1fr; }.radio-choice { padding:13px; }.detail-layout { grid-template-columns:1fr; }.detail-heading h1 { font-size:34px; }.schedule-grid { gap:10px; }.detail-summary { padding:22px; } }
.ship-name { font-weight:700; }
.schedule-dialog[open] { display:flex;flex-direction:column; }
.schedule-dialog .dialog-top { flex-shrink:0; }
#schedule-body { overflow-y:auto; }

@media(min-width:601px) {
  .sailing-card { display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
  .sailing-card>img,.sailing-card>.card-photo-placeholder { height:100%;min-height:290px;aspect-ratio:auto;object-fit:cover; }
  .sailing-card-copy { padding:28px 32px; }
}

.selected-section { padding-top:24px; }

/* Nalo galleries share the catalogue photo behaviour, with hotel-style side arrows. */
.sailing-card-copy { color:inherit;text-decoration:none; }
.sailing-card-copy:focus-visible { outline:3px solid var(--primary);outline-offset:-3px; }
.sailing-card,.sailing-card-copy,.detail-layout>* { min-width:0; }
.sailing-card>.sailing-card-gallery { width:100%;max-width:100%;min-width:0;height:auto;flex:none;aspect-ratio:1.65;max-height:none; }
.ship-gallery .ship-gallery-photo { max-width:100%;max-height:100%; }
.ship-gallery .ship-gallery-controls { inset:0;transform:none;border:0;border-radius:0;background:transparent;pointer-events:none; }
.ship-gallery .ship-gallery-arrow { position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;border:1px solid var(--line);background:rgb(255 255 255 / 88%);color:var(--muted);box-shadow:var(--shadow);backdrop-filter:blur(3px);pointer-events:auto;transition:background .12s,color .12s; }
.ship-gallery .ship-gallery-arrow.previous { left:12px; }
.ship-gallery .ship-gallery-arrow.next { right:12px; }
.ship-gallery .ship-gallery-arrow:hover { background:var(--primary);border-color:var(--primary);color:white; }
.ship-gallery .ship-gallery-counter { position:absolute;bottom:12px;right:12px;padding:5px 9px;min-width:0;border-radius:20px;background:rgb(0 0 0 / 55%);color:white; }
@media(min-width:601px) { .sailing-card>.sailing-card-gallery { height:100%;min-height:290px;aspect-ratio:auto; } }
@media(max-width:600px) {
  .detail-layout { grid-template-columns:minmax(0,1fr); }
  .sailing-card>.sailing-card-gallery,.detail-media { max-width:100%;height:auto;min-height:0; }
}

.sailing-tags { display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0;list-style:none; }
.sailing-tag { padding:4px 12px;border-radius:999px;background:var(--accent-soft,#e8f0fa);color:var(--accent,#3b608f);font-size:12px;font-weight:600;line-height:1.5;max-width:100%;overflow-wrap:anywhere; }

/* The finder grows into the homepage; it is not a dialog or an overlay. */
.nalo-hero.is-finding { height:auto;min-height:calc(100svh - 92px);padding-top:84px;background:var(--paper);color:var(--ink); }
.is-finding .hero-image-wrap { height:180px; }
.finder-panel { position:relative;background:var(--paper);padding-top:24px; }
#finder-content { max-width:760px;padding:0 32px;margin:auto; }
#finder-content #cruise-main { padding:20px 0 24px; }
.finder-panel .step-title { font-weight:700;font-size:36px;margin-bottom:24px; }
.finder-panel .step-caption { margin:15px 0; }
.finder-panel .region-grid>.choice-tile { min-height:98px;padding:12px 16px;gap:4px; }
.finder-panel .action-dock { position:sticky;bottom:0;padding:14px 32px;background:var(--paper); }
.finder-panel .action-inner { max-width:696px; }
.finder-panel .action-hint { font-size:11px; }
.finder-panel .year-label { font-weight:700; }
@media(max-width:600px) {
  .nalo-hero.is-finding { min-height:calc(100svh - 82px);padding-top:48px; }
  .is-finding .hero-image-wrap { position:absolute;height:130px; }
  .finder-panel { padding-top:20px; }
  #finder-content { padding-inline:20px; }
  .finder-panel .step-title { font-size:32px; }
  .finder-panel .action-dock { padding:12px 20px calc(16px + env(safe-area-inset-bottom)); }
}

html { overflow-anchor:none; }
.results-title { font-weight:700;font-size:38px; }

.region-symbol { display:block;width:40px;height:40px;object-fit:contain;flex-shrink:0; }

/* Balance the denser globe and polar silhouettes with the other region icons. */
.region-symbol[src$="/pacific_islands.svg"],
.region-symbol[src$="/rest_of_world.svg"] { transform:scale(.9);transform-origin:center; }

.departure-any { max-width:350px;grid-template-columns:1fr; }
.departure-heading { font-size:18px;margin:28px 0 16px; }
.departure-regions .choice-tile { min-height:76px;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;column-gap:10px; }
.departure-any .choice-tile { min-height:0;padding:12px;gap:5px 10px;display:grid;grid-template-columns:minmax(0,1fr) 18px;align-content:center;column-gap:10px; }
.departure-any .tile-top { grid-column:2;grid-row:1;width:18px;align-self:center; }
.departure-any .tile-label { grid-column:1;grid-row:1; }
.departure-any .tile-description { grid-column:1 / -1; }

.month-grid .choice-tile { min-height:70px;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) 18px;align-content:center;column-gap:10px;gap:6px 10px; }
.month-grid .tile-top { grid-column:2;grid-row:1;width:18px;align-self:center; }
.month-grid .tile-label { grid-column:1;grid-row:1; }
.month-grid .tile-description { grid-column:1 / -1; }

.year-count { font-size:13px;color:var(--muted);white-space:nowrap; }
.year-toggle { gap:12px; }
.year-toggle .chevron { margin-left:auto; }
.year-toggle .year-summary { font-size:11px;white-space:nowrap; }
@media (max-width:380px) { .year-toggle { padding-inline:14px;gap:8px; }.year-label { font-size:26px; }.year-count { font-size:12px; } }

.duration-grid .choice-tile { min-height:76px;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-content:center;align-items:center;gap:5px 10px; }
.duration-grid .tile-top { grid-column:3;grid-row:1;width:18px;align-self:center; }
.duration-grid .tile-label { grid-column:1;grid-row:1; }
.duration-grid .tile-description { grid-column:1 / -1;grid-row:2; }
.duration-grid .duration-count { grid-column:2;grid-row:1;font-size:13px;color:var(--muted);white-space:nowrap; }
@media (max-width:700px) { .duration-grid { grid-template-columns:1fr; } }

.filter-reset-notice { margin-bottom:16px; }

#cruise-next { flex-direction:column;gap:3px;padding-block:10px; }
.next-label { display:flex;align-items:center;justify-content:center;gap:12px; }
.next-subtext { font-size:11px;line-height:1.2;font-weight:400; }

/* Preference tiles keep the selection control beside the title on every screen. */
.rich-grid .choice-tile { min-height:100px;display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:8px 12px;align-content:center;padding:16px; }
.rich-grid .tile-top { grid-column:2;grid-row:1;align-self:center; }
.rich-grid .tile-label { grid-column:1;grid-row:1; }
.rich-grid .tile-description { grid-column:1 / -1; }
.step-helper { margin:0 0 18px;color:var(--muted);font-size:15px; }
.results-toolbar { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:24px 0 16px; }
.market-filter { border:0;padding:0;margin:0;min-width:0;width:min(420px,100%); }
.market-filter legend { font-size:14px;font-weight:600;margin-bottom:9px; }
.market-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px; }
.page-button,.edit-search { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--blue);padding:10px 14px;font-size:14px; }
.market-option.choice-tile { display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:48px;padding:12px; }
.market-option .tile-label { grid-column:1;grid-row:1; }
.market-option .tile-top { grid-column:2;grid-row:1; }
.result-count { font-size:16px;margin:18px 0 10px; }
.price-note { color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:20px; }
.ship-meta { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;font-size:12px;color:var(--muted); }
.market-badge { background:var(--pale);border-radius:4px;padding:4px 8px;color:var(--blue); }
.ship-price { font-size:18px;font-weight:600;margin:10px 0 18px; }
.benefit-heading { font-size:14px;font-weight:600;margin-top:16px; }
.fit-bullets { margin-top:8px; }
.know-bullets { margin:0;padding:0 28px 20px 40px;font-size:14px;line-height:1.65; }
.know-bullets li { margin:7px 0; }
.child-policy-note { background:var(--pale);padding:12px 22px;font-size:13px;line-height:1.6; }
.route-heading { display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:14px;font-weight:600; }
.route-heading small { flex-shrink:0;font-weight:400;color:var(--muted); }
.results-pagination { display:flex;justify-content:center;align-items:center;gap:18px;margin:28px 0;font-size:14px; }
.page-button:disabled { opacity:.45;cursor:default; }
@media(max-width:600px) {
  .rich-grid .choice-tile { min-height:110px;padding:12px;gap:7px 8px; }
  .market-option.choice-tile { padding:10px 6px;gap:4px; }
  .results-pagination { gap:10px;font-size:12px; }
  .page-button { padding:10px;font-size:13px; }
  .ship-line { font-size:11px; }
  .fit-bullets { font-size:14px; }
}

@media(max-width:600px) { .nalo-header .brand { gap:7px; }.nalo-nz-mark { width:37px;height:46px; } }

/* Consumer results reuse the B2B card layout and its styling. */
.consumer-recommendations .cruise-results { padding:0; width:100%; }
.retained-results > .consumer-recommendations + .consumer-recommendations { margin-top:24px; }
.recommendation-intro { margin:8px 0 24px; line-height:1.65; color:var(--muted); }
#booking-demo-body { padding:24px; display:grid; gap:18px; line-height:1.6; }
.cruise-booking-actions .primary-button,.cruise-booking-actions .secondary-button { min-height:42px; padding:10px 14px; font-size:13px; }

#retained-recommendations { max-width:836px; margin:0 auto; }

/* Keep retained results close to the actual finder content, rather than a full viewport. */
.nalo-hero.is-finding.has-recommendations { min-height:0; }
.recommendation-heading { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px; }
.recommendation-heading .results-title { min-width:0;margin:0; }
.recommendation-heading .edit-search { flex:0 0 auto;white-space:nowrap; }
@media(max-width:600px) {
  .recommendation-heading { gap:12px; }
  .recommendation-heading .results-title { font-size:28px; }
  .recommendation-heading .edit-search { padding:10px 12px;font-size:12px; }
}

/* Each stage keeps its questions and results on the same page. */
.nalo-hero.has-recommendations:not(.is-finding) { height:180px;min-height:0; }
.nalo-hero.has-recommendations:not(.is-finding) .hero-copy { display:none; }
.nalo-hero.has-recommendations:not(.is-finding) .hero-actions { bottom:22px; }
.finder-stage-header { display:flex;align-items:center;gap:12px;margin-bottom:18px; }
.finder-stage-header .eyebrow { margin-right:auto; }
.finder-stage-header .edit-search { min-height:36px;padding:8px 10px; }
.cruise-line-list { display:grid;gap:24px; }
.line-summary { margin:12px 0 24px;line-height:1.7;color:var(--muted); }
.line-sailing-button { margin-top:20px; }
.find-my-sailing { margin:0 0 24px; }
.cruise-line-list + .find-my-sailing { margin:24px 0 0; }
.recommendation-actions { display:flex;flex-wrap:wrap;gap:14px;margin-top:22px; }
.cruise-departure-dates { margin-top:16px; }
.cruise-departure-dates>summary { color:var(--blue);font-size:14px;font-weight:600;cursor:pointer;padding:10px 0; }
.cruise-more-dates { margin-top:12px;min-height:40px; }
#retained-recommendations { scroll-margin-top:24px; }
@media(max-width:600px) {
  .finder-stage-header { flex-wrap:wrap;gap:8px; }
  .finder-stage-header .eyebrow { flex-basis:100%; }
  .line-sailing-button { width:100%; }
  .nalo-hero.has-recommendations:not(.is-finding) { height:175px; }
}

.cruise-line-card .ship-gallery-caption { position:absolute;left:12px;bottom:12px;max-width:calc(100% - 88px);margin:0;padding:6px 10px;border-radius:5px;background:rgb(0 0 0 / 68%);color:white;font-size:12px;line-height:1.45;pointer-events:none; }

/* Only the photographs fade; copy and primary actions retain their layout. */
.hero-image-wrap img { transition:opacity 900ms ease;opacity:1; }
.hero-image-wrap img.hero-photo-inactive { opacity:0; }
.hero-shade { pointer-events:none; }
.hero-rotation { position:absolute;right:20px;top:16px;width:36px;height:36px;border:1px solid #ffffff80;border-radius:50%;background:#102b4866;color:white;cursor:pointer;z-index:1; }
.hero-rotation:focus-visible { outline:2px solid white;outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .hero-image-wrap img { transition:none; } }

/* Completed finder navigation and transactional question editor. */
.question-navigation {display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:16px;}
.question-icons {display:flex;gap:8px;}
.question-link {position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:12px;border:0;padding:8px 0 12px;background:none;color:var(--muted);min-width:36px;}
.question-bar {width:100%;height:5px;border-radius:8px;background:var(--line);}
.question-link.has-selection {color:var(--primary);}
.has-selection .question-bar {background:var(--primary);opacity:.6;}
.question-link:focus-visible .question-bar,.question-link:hover .question-bar {opacity:1;}
.question-editor { margin:0 0 24px; border:1px solid var(--line); border-radius:12px; background:var(--paper); color:var(--ink); }
.question-editor[hidden] { display:none; }
.question-editor #cruise-main { padding:20px 24px; }
.question-editor .action-dock { position:static; padding:12px 24px; background:transparent; border-top:1px solid var(--line); }
.question-editor .action-inner { padding:0; }
.question-editor .step-title { font-size:28px; }
@media(max-width:600px) {.question-navigation{gap:16px;grid-template-columns:1fr;}.question-editor #cruise-main{padding:18px;}.question-editor .action-dock{padding:12px 18px;}.question-editor .action-hint{display:none;}}

.question-link.is-current {outline:2px solid var(--primary);outline-offset:2px;border-radius:6px;}

/* Compact itinerary summaries keep routes and dates available without tall cards. */
.cruise-itinerary-card.cruise-itinerary-compact { padding:10px 12px; border-radius:10px; background:#fff; color:#171717; }
.cruise-itinerary-compact .cruise-itinerary-header { align-items:center; gap:10px; }
.cruise-itinerary-compact .cruise-itinerary-header h4 { min-width:0; font-size:14px; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cruise-route-text { margin-top:5px; color:#171717; font-size:12px; line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
.cruise-itinerary-compact .cruise-departure-dates { margin:10px -12px -10px; border-top:1px solid var(--line); background:var(--surface); border-radius:0 0 9px 9px; }
.cruise-itinerary-compact .cruise-departure-dates>summary { display:flex; align-items:center; gap:8px; min-height:42px; padding:10px 12px; color:var(--muted); font-size:13px; list-style:none; }
.cruise-itinerary-compact .cruise-departure-dates>summary::-webkit-details-marker { display:none; }
.cruise-itinerary-compact .cruise-departure-label::after { content:" +"; }
.cruise-itinerary-compact .cruise-departure-dates[open] .cruise-departure-label::after { content:" −"; }
.cruise-departure-label { white-space:nowrap; }
.cruise-itinerary-from { margin-left:auto; font-size:14px; text-align:right; color:var(--text); white-space:nowrap; }
.cruise-itinerary-compact .cruise-sailings { margin:0 12px; padding-bottom:10px; }
.cruise-itinerary-compact .cruise-more-dates { margin:0 12px 12px; }

.cruise-itinerary-compact .cruise-sailing-copy { width:100%; }
.cruise-itinerary-compact .cruise-categories { margin:3px 0 0; }
.cruise-itinerary-compact .cruise-categories>summary { min-height:0; padding:3px 0; color:var(--muted); font-size:12px; font-weight:600; list-style:none; }
.cruise-itinerary-compact .cruise-categories>summary::after { content:" +"; }
.cruise-itinerary-compact .cruise-categories[open]>summary::after { content:" −"; }
.cruise-itinerary-compact .cruise-category { padding:3px 0; font-size:12px; line-height:1.5; }
.cruise-itinerary-compact .cruise-category span { font-size:12px; }
.cruise-itinerary-compact .cruise-category strong { font-size:12px; color:var(--text); }

.cruise-more-itineraries { display:block; width:100%; margin-top:12px; padding:12px; border:0; border-top:1px solid var(--line); background:var(--surface); color:var(--muted); text-align:left; font:600 13px/1.4 Inter,sans-serif; cursor:pointer; }
.cruise-more-itineraries:disabled { opacity:.6; cursor:wait; }

.cruise-itinerary-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; margin-left:auto; }
.cruise-itinerary-book { border:0; border-radius:5px; background:var(--blue); color:white; padding:6px 9px; min-height:28px; font:600 12px/1.2 Inter,sans-serif; cursor:pointer; }
.cruise-itinerary-book:hover { filter:brightness(.9); }
@media(max-width:420px) { .cruise-itinerary-compact .cruise-departure-dates>summary { flex-wrap:wrap; } .cruise-departure-label { font-size:12px; } }

.question-link.question-link-text { gap:6px; padding:4px 0; }
.question-label { display:inline-flex; align-items:center; gap:4px; font:bold 18px/1.2 Arial,sans-serif; letter-spacing:-.3px; white-space:nowrap; }

.cruise-departure-copy { display:flex; flex-direction:column; gap:2px; min-width:0; }
.cruise-departure-starting { font-size:11px; line-height:1.3; font-weight:400; }
.cruise-departure-starting strong { color:#171717; font-weight:700; }
.cruise-departure-dates[open] .cruise-departure-starting { display:none; }
.cruise-itinerary-compact .cruise-departure-dates>summary { padding-top:7px; padding-bottom:7px; }

.cruise-more-categories { display:block; margin:5px 0 0 12px; padding:3px 0; border:0; background:none; color:var(--muted); font:600 12px/1.4 Arial,sans-serif; cursor:pointer; text-align:left; }

.cruise-itineraries > h3 { font-size:18px; }

.cruise-itineraries-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.cruise-ship-body .cruise-itineraries-heading h3 { margin:0; font-size:28.8px; }
.ship-filter-links { width:360px; max-width:100%; margin-left:auto; }
.ship-filter-link:disabled { opacity:.5; cursor:wait; }
.cruise-itineraries .question-editor { width:100%; margin:8px 0; }

.ship-filter-links { width:auto; gap:8px; flex-wrap:wrap; }
.ship-filter-link.question-link { flex:0 0 auto; flex-direction:row; align-items:center; justify-content:center; gap:10px; padding:8px 12px; border:2px solid var(--line); border-radius:9px; color:#171717; }
.ship-filter-link.question-link.has-selection { border-color:var(--blue); }
.ship-filter-link.question-link.is-current { outline:none; background:var(--pale); }
.ship-filter-link.question-link:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.ship-filter-arrow { font-size:18px; line-height:1; }

.consumer-recommendations .cruise-itineraries { background:color-mix(in srgb,var(--pale) 45%,var(--surface)); padding:12px; border-radius:12px; }
.ship-filter-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:100%; margin:0; }
.ship-filter-link.question-link { min-width:0; padding:9px 10px; justify-content:space-between; background:var(--surface); }
.ship-filter-link .question-label { display:flex; flex-direction:column; align-items:flex-start; min-width:0; overflow:hidden; }
.ship-filter-value { display:block; width:100%; overflow:hidden; text-overflow:ellipsis; font:400 13px/1.3 Inter,sans-serif; letter-spacing:normal; text-align:left; }
.itinerary-match-count { margin:0; font-size:13px; color:#171717; }
@media(max-width:600px) { .ship-filter-links { grid-template-columns:repeat(2,minmax(0,1fr)); } .consumer-recommendations .cruise-itineraries { padding:12px; } }

.ship-filter-link .question-label,.ship-filter-link .ship-filter-value,.ship-filter-arrow { color:#171717; }

.cruise-itinerary-scroll { display:grid; gap:12px; max-height:340px; overflow-y:auto; overscroll-behavior-y:auto; scrollbar-gutter:stable; margin-inline:-12px; padding:12px 18px 0 12px; background:transparent; border:0; border-top:1px solid color-mix(in srgb,var(--blue) 30%,transparent); border-radius:0; }
.cruise-itinerary-scroll > .quiet-note:empty { display:none; }
.cruise-itinerary-scroll:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
@media(max-width:600px) { .cruise-itinerary-scroll { max-height:min(400px,65dvh); } }

.cruise-itineraries-toggle { border:0; padding:0; background:none; color:var(--blue); font:400 13px/1.4 Inter,sans-serif; text-decoration:underline; text-underline-offset:2px; text-align:left; cursor:pointer; margin-left:10px; }
.cruise-itineraries-toggle:focus-visible { outline:2px solid var(--blue); outline-offset:4px; border-radius:4px; }
.cruise-itineraries.is-collapsed > :not(.cruise-itineraries-heading) { display:none; }

/* One shared starting-place picker for the finder and inline filters. */
.departure-choices { align-items:start;grid-template-columns:minmax(0,1fr); }
.departure-choices > .choice-tile { min-height:110px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:8px; }
.departure-choices .tile-top { grid-column:2;grid-row:1; }
.departure-choices .tile-label { grid-column:1;grid-row:1; }
.departure-choices .tile-description { grid-column:1 / -1; }
.departure-choices > .departure-specific { display:flex;position:relative;cursor:default; }
.departure-specific .tile-label { cursor:text; }
.departure-input { width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;padding:9px;background:white;color:var(--ink);font:inherit;font-size:16px; }
.departure-input:focus { outline:2px solid var(--blue);outline-offset:1px; }
.departure-selected { display:flex;gap:5px;flex-wrap:wrap; }
.departure-selected:empty { display:none; }
.departure-chip { background:white;border:1px solid var(--blue);color:var(--ink);border-radius:6px;padding:6px 8px;font-size:13px;text-align:left; }
.departure-suggestions { position:absolute;left:0;right:0;top:100%;z-index:20;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #0002;max-height:280px;overflow:auto; }
.departure-suggestion { padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:3px;color:var(--ink);text-align:left; }
.departure-suggestion:not([aria-disabled="true"]):hover,.departure-suggestion.is-active { background:var(--pale); }
.departure-suggestion small { color:var(--muted);font-size:12px; }
.departure-suggestions .quiet-note { padding:12px;margin:0;font-size:13px; }

.departure-suggestion[aria-disabled="true"] { opacity:.5;cursor:not-allowed; }

.departure-total { font-size:14px;color:var(--muted); }

.destination-wishlist-title { margin:24px 0 8px;font-size:22px; }
.destination-wishlist { display:flex;flex-direction:column;gap:8px;cursor:default;padding:14px; }

.nalo-hero.is-finding .hero-rotation { display:none; }

.refinement-controls .question-icons {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));}
.refinement-controls .question-group[aria-label="Filtering"] .question-icons {grid-template-columns:repeat(4,minmax(0,1fr));}
@media(max-width:600px) {
  .refinement-controls .question-icons {grid-template-columns:repeat(2,minmax(0,1fr));}
  .refinement-controls .question-group[aria-label="Filtering"] .question-icons {grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* Founder profiles share the storefront's typography and restrained surfaces. */
.header-about { display:inline-flex;align-items:center;gap:10px;font-family:'General Sans',Arial,sans-serif;font-size:17px;font-weight:600;padding:12px 0;white-space:nowrap; }
.nalo-about-page { max-width:1080px;padding-block:42px 70px; }
.nalo-about-intro { max-width:760px;margin-inline:auto; }
.nalo-about-intro h1 { font:bold clamp(32px,4vw,48px)/1.1 Arial,sans-serif;letter-spacing:-1.2px;margin:14px 0 24px; }
.nalo-about-page p { font-size:16px;line-height:1.8;margin-bottom:18px; }
.nalo-about-page a,.about-section p a { color:var(--primary);text-underline-offset:4px; }
.nalo-about-page .eyebrow { font-size:11px;margin-bottom:0; }
.nalo-launch-note { padding:20px 24px;background:var(--pale);border-radius:8px;margin-top:28px; }
.nalo-founders { max-width:960px;margin:54px auto 0; }
.nalo-founders h2 { font:bold 30px/1.2 Arial,sans-serif;margin-bottom:26px; }
.nalo-founders-grid { display:grid;grid-template-columns:1fr;gap:48px; }
.nalo-founder { min-width:0;display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:center;gap:38px; }
.founder-photo { width:100%;height:auto;aspect-ratio:1;max-width:340px;object-fit:cover;border-radius:10px;display:block;margin-bottom:0; }
.nalo-founder h3 { font:bold 26px/1.2 Arial,sans-serif;margin-bottom:8px; }
.nalo-founder .founder-role { color:var(--primary);font-size:14px;font-weight:600;margin-bottom:20px; }
.founder-links { display:flex;gap:10px;flex-wrap:wrap; }
.founder-links a { display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:6px;text-decoration:none; }
.founder-links a:hover { background:var(--pale); }
.founder-links a:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }
.nalo-about-credentials { padding:32px 0;background:var(--primary);color:white; }
.nalo-credential-section { text-align:center; }
.nalo-credential-section .credential-copy { color:#ffffffb3;font-size:12px;line-height:1.7;margin:0; }
.nalo-credentials { display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:36px;margin:16px 0 14px; }
.nalo-credentials a { color:var(--primary);text-decoration:none;font-size:23px;letter-spacing:1px;font-weight:700; }
.nalo-credentials a:hover { text-decoration:underline;text-underline-offset:4px; }
@media(max-width:600px) {
 .nalo-about-page { padding-block:28px 44px; }
 .nalo-founders-grid { grid-template-columns:1fr;gap:42px; }
 .nalo-founder { grid-template-columns:1fr;gap:24px; }
 .founder-photo { max-width:320px;margin-inline:auto; }
 .nalo-launch-note { padding:16px; }
 .nalo-credentials { gap:20px; }
}


.about-inner .nalo-credential-section .credential-copy { font-size:12px; }
.nalo-approach { text-align:center; }
.nalo-approach h2 { margin:12px 0 20px; }

.about-inner .nalo-credential-section .credential-copy { color:#ffffffb3; }
.about-section .nalo-approach p,.about-section .nalo-approach a { color:white; }
.nalo-credentials img { display:block;max-width:100%;height:auto; }
.nalo-credentials a:first-child { flex:0 1 130px; }
.nalo-credentials a:has(.taanz-logo) { flex:0 1 210px; }
.nalo-credentials .clia-credential { flex:0 1 140px; }
.nalo-credentials a { min-width:0;display:flex;align-items:center;justify-content:center;height:84px; }
.nalo-credentials .iata-logo { transform:translateY(-7px); }
.nalo-credentials { flex-wrap:nowrap; }

/* Three-step appointment booking, sharing the finder tile styling. */
#schedule-dialog { width:min(760px,calc(100% - 32px)); }
.call-progress { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:28px; }
.call-progress-step { border:0;border-top:4px solid var(--line);background:none;padding:10px 0;color:var(--muted);font:inherit;font-size:12px;cursor:pointer; }
.call-progress-step.is-complete { border-color:#8bb3cc; }
.call-progress-step[aria-current] { border-color:var(--primary);color:var(--primary);font-weight:700; }
.call-progress-step:disabled { cursor:default;opacity:.6; }
.call-choices { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0; }
.call-choice { padding:20px;display:flex;flex-direction:column;gap:12px;text-align:left;cursor:pointer; }
.call-choice-head { display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%; }
.call-check { width:19px;height:19px;border:1px solid var(--line);border-radius:4px;flex:none;text-align:center; }
.call-choice[aria-checked=true] { border-color:var(--primary);background:var(--pale); }
.call-choice[aria-checked=true] .call-check { background:var(--primary);color:white;border-color:var(--primary); }
.call-actions { display:flex;gap:12px;justify-content:space-between;margin-top:24px; }
.call-actions .primary-button { width:auto;min-width:130px;margin:0 0 0 auto; }
.call-calendar-layout { display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:24px; }
.call-month { display:flex;justify-content:space-between;align-items:center;margin-bottom:16px; }
.call-month button { padding:6px 12px; }
.call-days { display:grid;grid-template-columns:repeat(7,1fr);gap:4px; }
.call-weekday { text-align:center;font-size:12px;padding:8px 0;color:var(--muted); }
.call-day,.call-time { background:white;border:1px solid var(--line);border-radius:8px;min-height:38px;color:var(--primary);cursor:pointer;font:inherit;font-size:13px; }
.call-day:disabled { opacity:.3;cursor:default; }
.call-day[aria-pressed=true],.call-time[aria-pressed=true] { background:var(--primary);color:white;border-color:var(--primary); }
.call-slots h3 { font-size:14px;margin-bottom:14px; }
.call-times { display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:290px;overflow-y:auto;padding:2px; }
.call-platforms { display:flex;flex-wrap:wrap;gap:8px;margin-top:12px; }
.call-platform-icon { display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;color:white;font-weight:bold; }
.call-platform-logo { width:24px;height:24px;object-fit:contain; }
.call-form .schedule-context { margin-bottom:20px; }
@media(max-width:600px) { .call-calendar-layout { grid-template-columns:1fr;gap:20px; }.call-choice { padding:14px; }.call-choice .tile-label { font-size:16px; }.call-choices { gap:10px; }.call-platforms .radio-choice { flex:1 1 100%; }.call-times { max-height:180px; } }

#schedule-dialog .dialog-top > span, #booking-dialog .dialog-top > span { font-size:20px;font-weight:600;letter-spacing:0;text-transform:none; }

.call-progress-step { font-size:15px;min-height:44px; }
.call-field-error { display:block;color:var(--danger);font-size:12px;font-weight:500;margin:6px 0; }
.call-field-error[hidden] { display:none; }
.call-required { color:var(--muted);font-size:12px; }
#schedule-dialog input[aria-invalid="true"] { border-color:var(--danger); }
.call-platforms[aria-invalid="true"] .radio-choice { border-color:var(--danger); }

.homepage-recommendations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.homepage-ship { min-width:0; }
.homepage-recommendations .cruise-reason-list { grid-template-columns:1fr; }
.homepage-recommendations .ship-filter-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:900px) { .homepage-recommendations { grid-template-columns:minmax(0,1fr); } }
.homepage-sticky-actions { position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%); display: flex; gap: 12px; padding: 10px; border-radius: 16px; background: white; box-shadow: 0 4px 24px #0003; z-index: 30; width: max-content; max-width: calc(100% - 24px); }
.homepage-sticky-actions[hidden] { display: none; }
.homepage-sticky-actions button { white-space: nowrap; }

.cruise-itineraries.filters-hidden > .ship-filter-links { display: none; }

.finder-close { position:absolute; top:-44px; right:20px; z-index:2; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:var(--paper); color:var(--ink); font:28px/1 Arial,sans-serif; cursor:pointer; }
.finder-close:hover { background:var(--pale); }

.nalo-hero.has-recommendations .hero-actions { display:none; }
.results-toolbar { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:16px; background:var(--paper); padding:16px 0; margin:0 0 20px; }
.results-toolbar .results-title { font-size:24px; margin:0; }
.filter-ships { display:flex; align-items:center; gap:8px; border:2px solid var(--blue); border-radius:9px; padding:10px 14px; color:var(--blue); background:var(--paper); font:600 16px Inter,sans-serif; cursor:pointer; white-space:nowrap; text-decoration:none; }
.filter-ships svg,.cruise-itineraries-toggle svg { width:18px; height:18px; }
.cruise-itineraries-toggle:not(.filter-ships) { display:flex; align-items:center; gap:6px; }
.ship-search-modal { width:min(840px,calc(100vw - 24px)); max-height:90dvh; padding:0; border:0; border-radius:16px; color:var(--ink); background:var(--paper); }
.ship-search-modal[open] { display:flex; flex-direction:column; }
.ship-search-modal::backdrop { background:#10223880; }
.ship-search-modal-header,.ship-search-modal-footer { padding:16px 24px; flex-shrink:0; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.ship-search-modal-header { border-bottom:1px solid var(--line); }
.ship-search-modal-footer { border-top:1px solid var(--line); justify-content:flex-end; }
.ship-search-modal-body { overflow-y:auto; padding:0 24px; }
.ship-search-tabs { display:flex; gap:16px; }
.ship-search-tab { background:none; border:0; border-bottom:3px solid transparent; padding:8px 4px; font:600 18px Inter,sans-serif; cursor:pointer; }
.ship-search-tab[aria-selected=true] { color:var(--blue); border-bottom-color:var(--blue); }
.modal-close { border:0; background:none; font-size:28px; cursor:pointer; }
.modal-question { padding:24px 0; border-bottom:1px solid var(--line); }
.modal-question:last-child { border:0; }
.modal-question .step-title { font-size:26px; }
@media(max-width:600px) {
 .results-toolbar .results-title { font-size:18px; }
 .filter-ships { font-size:14px; padding:8px; }
 .ship-search-modal-header,.ship-search-modal-footer { padding:12px 16px; }
 .ship-search-modal-body { padding:0 16px; }
}

/* Replace stale itineraries with a loading indicator while filters update. */
.sailings-updating .cruise-itinerary-scroll > * { display:none; }
.sailings-updating .cruise-itinerary-scroll { min-height:120px; place-items:center; }
.sailings-updating .cruise-itinerary-scroll::after {
  content:""; display:block; width:24px; height:24px;
  border:3px solid #c8d8e5; border-top-color:var(--blue, #24628a);
  border-radius:50%; animation:orbit .8s linear infinite;
}
@media (prefers-reduced-motion:reduce) {
  .sailings-updating .cruise-itinerary-scroll::after {animation:none;}
}

#booking-body { padding:0 24px 24px;overflow-y:auto; }

#booking-dialog { width:min(760px,calc(100% - 24px));padding:0; }
#booking-body { padding:24px;min-height:0; }
.booking-step { font-size:24px;margin:18px 0;outline:none; }
.booking-context,.booking-explanation { font-size:16px;line-height:1.5;margin:0 0 16px; }
.booking-departure { display:flex;justify-content:space-between;gap:16px;width:100%;background:white;border:1px solid var(--line);border-radius:10px;padding:20px;margin:12px 0;text-align:left;font-size:20px;color:var(--ink);cursor:pointer; }
.booking-departure:hover { border-color:var(--primary);background:var(--pale); }
.booking-back { border:0;background:none;color:var(--primary);padding:0;margin-bottom:18px;font-size:16px;cursor:pointer; }
.booking-cabin { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line); }
.booking-cabin h4 { font-size:21px;margin:0 0 8px; }
.booking-cabin p { font-size:16px;margin:0 0 6px; }
.booking-cabin strong { font-size:18px; }
.booking-quantity { display:flex;align-items:center;gap:12px;flex-shrink:0; }
.booking-quantity button { width:42px;height:42px;border:1px solid var(--primary);border-radius:8px;background:white;color:var(--primary);font-size:24px;cursor:pointer; }
.booking-quantity button:disabled { opacity:.35;cursor:default; }
.booking-quantity output { min-width:22px;text-align:center;font-size:20px; }
#booking-footer:not([hidden]) { display:flex;gap:24px;align-items:center;justify-content:space-between;padding:20px 24px;border-top:1px solid var(--line);flex-shrink:0; }
#booking-footer .primary-button { margin:0;width:auto; }
.booking-total { display:grid;gap:4px;font-size:18px; }
.booking-total strong { font-size:24px; }
@media(max-width:480px) { .booking-cabin { flex-wrap:wrap;gap:12px; }.booking-departure { font-size:17px; }#booking-footer:not([hidden]) { gap:12px;padding:16px; }.booking-total strong { font-size:20px; } }

.booking-progress { grid-template-columns:repeat(2,1fr); }
.booking-departure[aria-pressed="true"] { border:2px solid var(--primary);background:var(--pale); }
#booking-footer .booking-total { margin-left:auto;text-align:right; }
#booking-footer button:disabled { background:#e3e5e8;color:#777;border-color:#e3e5e8;cursor:default; }
#booking-footer .secondary-button { margin:0;width:auto; }
