/* Bluebird: a compact travel desk with room for the places themselves. */
:root { color-scheme:light; --ocean:#173e4b; --ocean-raised:#294f5b; --bird-blue:#2d6283; --bird-sky:#e4eff2; --canvas:#f3f0e8; --paper:#fbfaf6; --parchment:#eee5cf; --ink:#172b33; --muted:#526870; --line:#cbd1cd; --gold:#8b692f; --go:#315e50; --hold:#806334; --no:#87524d; --display:"Libre Baskerville",Georgia,serif; --body:"Manrope",Arial,sans-serif; }
* { box-sizing:border-box; } [hidden] { display:none!important; }
body { margin:0; min-width:320px; color:var(--ink); background:linear-gradient(125deg,#edf2f1 0%,#f3f0e8 45%,#eaf0ef 100%); font:500 14px/1.5 var(--body); }
button,input,select,textarea { font:inherit; } button,select { cursor:pointer; } button { color:inherit; }
a { color:inherit; text-underline-offset:3px; } img { display:block; max-width:100%; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
button:disabled,input:disabled,select:disabled { cursor:wait; opacity:.58; } h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--display); font-weight:400; line-height:1.2; text-wrap:balance; }
h1 { font-size:28px; letter-spacing:-.025em; } h2 { font-size:21px; } h3 { font-size:24px; }
.skip-link { position:absolute; top:-80px; left:20px; z-index:100; background:var(--paper); padding:12px; } .skip-link:focus { top:12px; }

/* Brand stays prominent; navigation takes only the space its labels need. */
.site-header { min-height:64px; display:flex; align-items:center; gap:28px; padding:8px 28px; border-bottom:1px solid #bccdd1; background:linear-gradient(115deg,#fcfbf7,#e5eef1); }
.brand { display:flex; align-items:center; gap:8px; text-decoration:none; font:24px var(--display); color:var(--bird-blue); white-space:nowrap; }
.brand-orbit { width:19px; height:19px; } .brand-bird { width:43px; height:43px; object-fit:contain; margin-left:1px; }
.mode-nav { display:flex; align-items:center; gap:4px; padding:3px; border:1px solid #bac8c9; border-radius:7px; background:linear-gradient(145deg,#dbe5e6,#f1eee2); }
.mode-nav a { display:flex; align-items:center; min-height:32px; padding:5px 11px; border:1px solid transparent; border-radius:4px; text-decoration:none; font-size:12px; font-weight:700; white-space:nowrap; }
.mode-nav a[aria-current=page] { color:#234f6c; background:linear-gradient(145deg,#fcfdfb,#d9e8ee); border-color:#9bb5c0; box-shadow:inset 0 1px 0 #fff,0 1px 2px #244e6612; }
.mode-nav a:hover { color:var(--bird-blue); background-color:#e1ebec; }
.header-actions { display:flex; align-items:center; gap:20px; margin-left:auto; font-size:12px; } .header-actions>a { text-decoration:none; } .header-actions>a:hover { text-decoration:underline; }
#savedCount { font-size:11px; margin-left:4px; color:var(--muted); }
.canvas { width:100%; max-width:none; margin:0; padding:24px 28px 28px; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:18px; }
.page-heading h1 { color:var(--bird-blue); } .page-heading p { color:var(--muted); font-size:13px; margin-top:6px; }
body[data-travel-mode=vacation] .canvas { padding-top:14px; }
body[data-travel-mode=vacation] .page-heading { margin-bottom:9px; }
body[data-travel-mode=vacation] .page-heading h1 { font-size:23px; max-width:none; }
body[data-travel-mode=vacation] .page-heading p { display:none; }
body[data-travel-mode=vacation] .travel-desk { margin-bottom:12px; padding-bottom:4px; }
.edition-label { font-size:11px; color:var(--muted); white-space:nowrap; }

/* Essentials are direct inputs, with intrinsic widths instead of equal-sized tiles. */
.travel-desk { position:relative; margin-bottom:20px; padding-bottom:9px; border-bottom:1px solid #b8c9cd; }
.desk-main { display:flex; align-items:flex-end; flex-wrap:wrap; gap:10px 14px; padding-bottom:8px; }
.request-summary { display:contents; }
.desk-main>#findButton { flex:none; white-space:nowrap; }
.desk-field { display:flex; flex:0 1 auto; flex-direction:column; gap:4px; min-width:0; max-width:100%; }
.desk-field>span { color:var(--muted); font-size:10px; line-height:1.3; }
.desk-field input,.desk-field select,.field input,.field select,.question-fields>input,.question-fields>select,#refinementTopic { min-height:34px; max-width:100%; min-width:0; padding:5px 9px; border:1px solid #b6c7cc; border-radius:5px; color:#254e65; background:linear-gradient(140deg,#fffef9,#e8f0f1); box-shadow:inset 0 1px 0 #fff; font-size:12px; line-height:1.4; }
.desk-field input,.desk-field select { font-weight:600; }
.desk-field input:hover,.desk-field select:hover,.field input:hover,.field select:hover,.question-fields>input:hover,.question-fields>select:hover,#refinementTopic:hover { border-color:#7e9fad; }
.desk-field input::placeholder,.field input::placeholder { color:#607781; opacity:1; }
.field-origin { position:relative; width:190px; } .field-geography { width:auto; } .field-duration { width:108px; } .field-date { width:147px; } .field-reach { width:168px; } .field-purpose { width:170px; }
.desk-inline { display:flex; align-items:center; flex-wrap:wrap; gap:6px; max-width:100%; }
.desk-inline>select,.desk-inline>input { width:auto; max-width:215px; } .desk-inline>input[type=text] { width:170px; }
.field-origin .desk-inline { flex-wrap:nowrap; } .field-origin .desk-inline>select { width:100%; } .field-origin .desk-inline>input { flex:1; width:150px; } .desk-field input[type=date] { cursor:pointer; }
.field-focus { width:265px; } .field-focus .desk-inline { flex-wrap:nowrap; }
.field-focus .desk-inline>input { flex:1; width:0; }
.field-focus .desk-inline>select { flex:none; width:59px; padding-inline:4px; }
.desk-inline .checkbox-line { min-height:34px; margin-left:4px; font-size:11px; }
.desk-utilities { display:flex; align-items:center; flex-wrap:wrap; gap:4px 20px; }
.text-button { border:0; background:transparent; padding:5px 0; min-height:32px; font-size:12px; font-weight:700; text-align:left; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; }
.text-button:hover { text-decoration-color:currentColor; } .desk-state { color:var(--muted); font-size:11px; }
.primary,.secondary { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:34px; padding:6px 13px; border-radius:5px; font-size:12px; font-weight:700; text-decoration:none; }
.primary { color:var(--paper); background:linear-gradient(145deg,#406e88,#214c67 80%); border:1px solid #23485d; box-shadow:inset 0 1px 0 #a8c3cc80,0 2px 3px #173e4b1a; }
.primary:hover { background:linear-gradient(145deg,#49778f,#2b5d78 80%); } .primary:active { box-shadow:inset 0 2px 3px #071e3040; }
.secondary { color:var(--ink); background:linear-gradient(145deg,#faf5e7,#e7dfca); border:1px solid #c4bda8; box-shadow:inset 0 1px 0 #fff; } .secondary:hover { background:#e5dac2; }

.desk-notice { margin-top:7px; padding:7px 10px; font-size:12px; color:var(--ocean); background:#e4ece5; border-radius:4px; }

.destination-picker { position:relative; display:flex; align-items:center; gap:7px; width:270px; max-width:100%; }
.destination-picker>#destinationInput { flex:1; width:0; min-width:0; }
.destination-picker>#destinationBrowse { flex:none; padding-inline:4px; }
.destination-hint { position:absolute; top:calc(100% + 5px); left:0; z-index:5; padding:5px 8px; width:max-content; max-width:290px; border:1px solid #c6d2d2; border-radius:4px; background:#f7f7ee; color:#405961; font-size:11px; box-shadow:0 3px 8px #173e4b12; }
.destination-picker:not(:focus-within)>.destination-hint { display:none; }
.destination-popover { position:absolute; top:calc(100% + 6px); left:0; z-index:40; width:310px; max-width:calc(100vw - 32px); padding:13px; border:1px solid #adc2c9; border-radius:8px; background:linear-gradient(125deg,#fffdf6,#e6eff1); box-shadow:0 9px 25px #173e4b26; }
.destination-popover:not([hidden])~.destination-hint { display:none; }
.destination-popover-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; font-size:12px; color:#254e65; }
.destination-popover-heading>button { border:0; border-radius:4px; background:transparent; font-size:20px; width:32px; min-height:32px; }
.destination-popover>label { display:flex; flex-direction:column; gap:4px; margin-bottom:9px; font-size:11px; color:var(--muted); }
.destination-popover>label>select { width:100%; }
.destination-context-note { font-size:11px; line-height:1.5; color:#405961; margin-bottom:9px; }
.destination-popover-footer { display:flex; align-items:center; justify-content:space-between; gap:9px; font-size:11px; color:var(--muted); }
.destination-matches { display:flex; flex-direction:column; gap:5px; }
.destination-matches>button { text-align:left; padding:8px; border:1px solid #b6c7cc; border-radius:4px; background:#f8fbf7; font-size:12px; }
.destination-matches>button>span { display:block; font-size:11px; color:var(--muted); }
.scope-extras:empty { display:none; }
.origin-popover { position:absolute; top:calc(100% + 6px); left:0; z-index:45; width:300px; max-width:calc(100vw - 32px); max-height:min(360px,60vh); overflow:auto; padding:10px; border:1px solid #adc2c9; border-radius:8px; background:linear-gradient(125deg,#fffdf6,#e6eff1); box-shadow:0 9px 25px #173e4b26; }
.origin-popover p { font-size:12px; margin:0 0 7px; color:var(--muted); }
.origin-popover button { display:block; width:100%; min-height:36px; padding:8px; margin-top:4px; text-align:left; border:1px solid #bacdd1; border-radius:4px; background:#fafcf7; font-size:12px; line-height:1.4; }
.origin-popover button:hover { background:#dfecef; }
.field-origin #chooseOrigin { min-width:36px; text-align:center; }
.international-scope-note { display:block; max-width:185px; line-height:1.35; padding-left:4px; }
.scope-extras input:disabled { cursor:not-allowed; }

/* Visible in-page choices also work in embedded browsers without native popups. */
.travel-choice-menu { position:fixed; z-index:10000; padding:4px; overflow-y:auto; overscroll-behavior:contain; border:1px solid #a7bec7; border-radius:7px; background:#f8faf5; box-shadow:0 8px 24px #173e4b29; }
.travel-choice-option { display:block; width:100%; min-height:34px; padding:7px 10px; border:0; border-radius:3px; background:transparent; color:#254e65; text-align:left; white-space:normal; font:500 12px/1.4 var(--body); }
.travel-choice-option:hover,.travel-choice-option[data-active=true] { background:#dceaf0; }
.travel-choice-option[aria-selected=true] { background:#cee1e9; font-weight:800; }
.travel-choice-option:disabled { cursor:not-allowed; }

/* Optional preferences float beside their trigger and leave the ideas in place. */
.question-panel { position:absolute; top:calc(100% + 3px); left:0; z-index:30; width:min(380px,100%); max-height:min(560px,70vh); overflow:auto; padding:16px; border-radius:10px; background:linear-gradient(115deg,#fafbf7,#e6eff1); box-shadow:0 8px 30px #173e4b29; }
.question-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:12px; } .question-heading h2 { flex:1; font:700 13px/1.4 var(--body); color:#254e65; }
.question-heading>span { font-size:11px; color:var(--muted); } .question-heading>.text-button,.question-heading>button { margin-left:auto; }
.question-copy { font-size:12px; color:var(--muted); margin-bottom:12px; max-width:60ch; }
#questionForm { margin-top:10px; } .question-fields>select { width:100%; } .question-fields>input { flex:1; }
.required-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:12px; width:100%; } .refinement-note,.scope-note { font-size:11px; color:var(--muted); }
.question-fields { display:flex; align-items:flex-end; flex-wrap:wrap; gap:10px; }
.field { display:flex; flex-direction:column; gap:5px; min-width:0; max-width:100%; flex:1 1 180px; } .field label,.field>span { font-size:11px; color:var(--muted); }
.field input,.field select { width:100%; } .field input[type=number] { width:100px; } .field.small { flex:0 1 110px; }
.question-actions { display:flex; align-items:center; gap:6px 15px; margin-top:12px; flex-wrap:wrap; } .question-actions .text-button { font-size:11px; }
.activity-preference-fields { display:flex; flex-wrap:wrap; gap:12px; padding:14px 0; margin:0; border:0; border-top:1px solid var(--line); min-width:0; width:100%; }
.activity-preference-fields legend { padding-block:8px; font-weight:700; }
.activity-preference-fields .field { flex-basis:140px; }
.decision-evidence { margin-block:12px 20px; max-width:72ch; }
.decision-evidence summary { cursor:pointer; font-weight:700; padding-block:8px; }
.decision-evidence ul { padding-inline-start:22px; }
.decision-evidence li,.decision-evidence p { margin-block:8px; overflow-wrap:anywhere; }
@media(max-width:600px) { .activity-preference-fields select,.question-fields input,.question-fields select { font-size:16px; min-height:44px; } }
.choice-options { display:flex; gap:5px 10px; flex-wrap:wrap; } .option { border:1px solid #a1b4b8; border-radius:5px; background:var(--paper); min-height:32px; padding:5px 10px; font-size:12px; text-align:left; }
.option[aria-pressed=true] { background:linear-gradient(140deg,#d8e9ee,#e8ebdd); border-color:#799dac; color:#254e65; } .option:hover { border-color:var(--ocean); }
.checkbox-line { display:flex; align-items:center; gap:7px; font-size:12px; min-height:32px; } .checkbox-line input { flex:0 0 15px; accent-color:var(--bird-blue); width:15px; height:15px; min-height:15px; padding:0; box-shadow:none; }

/* Photography owns the page width; prose keeps a readable measure. */
.result-heading { display:flex; align-items:baseline; gap:20px; justify-content:space-between; margin-bottom:13px; } .result-heading h2 { font-size:20px; color:#285469; } .result-heading>span { font-size:12px; color:var(--muted); text-align:right; }
.status-message:empty { display:none; } .status-message { font-size:13px; color:var(--muted); margin-bottom:12px; }
.results { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(320px,1fr); gap:18px; align-items:stretch; } .results.single { grid-template-columns:minmax(0,1fr); }
.alternatives { display:flex; flex-direction:column; gap:18px; }
.idea { background:linear-gradient(120deg,#fffefa,#f1eee4); border-radius:12px; overflow:hidden; min-width:0; box-shadow:0 2px 7px #173e4b12; }
.idea.lead { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr); }
.idea.lead .idea-visual { min-height:clamp(330px,28vw,540px); }
.idea-visual { position:relative; min-height:330px; background:#d8dfd7; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.idea-visual>img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; opacity:0; transition:opacity .4s; } .idea-visual.has-photo>img { opacity:1; }
.photo-fallback { font:italic 29px/1.35 var(--display); color:var(--ocean); padding:28px; max-width:13ch; text-align:center; } .has-photo>.photo-fallback { visibility:hidden; }
.photo-credit { position:absolute; bottom:0; left:0; right:0; background:rgba(10,34,39,.76); color:#fff; font-size:9px; line-height:1.4; padding:5px 9px; opacity:0; } .has-photo>.photo-credit { opacity:1; } .photo-credit a { color:#fff; }
.idea-body { padding:23px; display:flex; flex-direction:column; align-items:flex-start; min-width:0; } .idea.lead .idea-body { justify-content:center; } .idea-body>p { max-width:60ch; } .idea.lead .idea-actions { margin-top:0; }
.idea-place { color:var(--muted); font-size:12px; margin-bottom:7px; }
.idea h3 { color:#244e66; font-size:clamp(23px,1.65vw,31px); letter-spacing:-.025em; margin-bottom:12px; overflow-wrap:anywhere; }
.idea-description { font-size:13px; line-height:1.65; margin-bottom:14px; } .idea-timing { font-size:11px; color:var(--muted); margin-bottom:12px; }
.idea-body .research-credit,.empty-answer .research-credit,.detail-summary .research-credit { font-size:10px; line-height:1.55; color:var(--muted); margin-top:-7px; margin-bottom:12px; }
.research-credit a { color:inherit; text-underline-offset:2px; }
.signal { display:inline-flex; gap:7px; align-items:center; font-size:11px; font-weight:700; margin-bottom:12px; color:var(--hold); } .signal::before { content:""; height:6px; width:6px; border-radius:50%; background:currentColor; }
.signal.go { color:var(--go); } .signal.no { color:var(--no); }
.idea-fit { font-size:11px; color:#315e50; margin-bottom:12px; }
.idea-tradeoff { font-size:11px; line-height:1.55; color:var(--muted); border-top:1px solid var(--line); padding-top:12px; margin-bottom:16px; }
.idea-actions { display:flex; align-items:center; gap:14px; margin-top:auto; flex-wrap:wrap; }
.idea.alt { display:grid; grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr); flex:1; } .idea.alt .idea-visual { min-height:160px; } .idea.alt .idea-body { justify-content:center; padding:18px; }
.idea.alt h3 { font-size:20px; margin-bottom:7px; } .idea.alt .idea-description { font-size:12px; line-height:1.5; margin-bottom:8px; } .idea.alt .idea-place { font-size:11px; margin-bottom:4px; }
.idea.alt .idea-timing,.idea.alt .idea-tradeoff { display:none; } .idea.alt .idea-actions { gap:12px; margin-top:0; }
.idea.alt .primary { border:0; box-shadow:none; background:transparent; color:var(--ocean); padding:0; min-height:30px; text-decoration:underline; text-underline-offset:4px; font-size:12px; }
.idea.alt .text-button { min-height:30px; padding:0; font-size:12px; } .idea.alt .photo-credit { font-size:8px; }
.idea.alt .photo-fallback { font-size:18px; line-height:1.3; padding:12px; max-width:100%; overflow-wrap:anywhere; }
.results.single .idea.lead { grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); } .results.single .idea-body { max-width:560px; }
.empty-answer { grid-column:1/-1; align-self:start; background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:28px; min-height:0; }
.empty-answer:not(.has-place-picture):not(.loading-answer) { width:min(100%,760px); padding:20px; }
.empty-answer.has-place-picture { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(230px,1fr); align-self:stretch; padding:0; overflow:hidden; }
.empty-answer-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; min-width:0; } .empty-answer.has-place-picture .empty-answer-copy { padding:24px; }
.empty-answer h3 { margin-bottom:12px; } .empty-answer p { max-width:75ch; font-size:14px; color:var(--muted); margin-bottom:18px; } .empty-actions { display:flex; gap:12px; flex-wrap:wrap; }
.loading-answer { min-height:230px; display:flex; flex-direction:column; justify-content:center; }
.loading-line { height:3px; width:80px; overflow:hidden; background:var(--line); margin-bottom:18px; } .loading-line::after { content:""; display:block; width:35px; height:3px; background:var(--ocean); animation:progress 1.2s ease-in-out infinite; }
@keyframes progress { from { transform:translateX(-35px); } to { transform:translateX(80px); } }
body.viewing-detail :is(#answerLayout,.result-heading,#statusMessage,#avoidSection,#coverageDetails) { display:none; }
body.viewing-detail .selected-detail { margin-top:0; border-top:0; padding-top:0; }
.selected-detail { margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:17px; } .section-heading h2 { font-size:24px; color:#285469; }
.detail-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:30px; } .detail-block { margin-bottom:22px; } .detail-block h3 { font:700 14px var(--body); margin-bottom:8px; }
.detail-block p,.detail-block li { font-size:14px; line-height:1.65; max-width:75ch; } .detail-block ul { padding-left:18px; margin:8px 0; } .detail-block li+li { margin-top:6px; }
.detail-meta { font-size:12px; color:var(--muted); } .stop-list { list-style:none; margin:0; padding:0; }
.stop-list li { display:grid; grid-template-columns:28px 1fr; gap:10px; padding:12px 0; border-bottom:1px solid var(--line); } .stop-order { font:20px var(--display); color:var(--gold); }
.stop-list strong { display:block; font-size:14px; } .stop-list p { font-size:13px; color:var(--muted); margin-top:3px; }
.source-links { list-style:none; padding:0; margin:5px 0; } .source-links li { font-size:12px; line-height:1.5; margin-bottom:7px; } .source-links a { color:var(--ocean); }
.map-panel { height:240px; margin:14px 0; border-radius:10px; z-index:0; background:#dce6e3; } .map-caption { font-size:12px; color:var(--muted); }
/* An immediate sense of place: an inviting view, a useful map, a short reason to go. */
.answer-layout { min-width:0; }
.answer-layout:has(>.idea-map-section:not([hidden])) { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.answer-layout:has(>.idea-map-section:not([hidden]))>.results { display:contents; }
.answer-layout:has(>.idea-map-section:not([hidden])) .idea.lead,
.answer-layout:has(>.idea-map-section:not([hidden])) .empty-answer { grid-column:1; grid-row:1; }
.answer-layout:has(>.idea-map-section:not([hidden])) .idea-map-section { grid-column:1; grid-row:2; margin-top:0; }
.answer-layout:has(>.idea-map-section:not([hidden])) .alternatives { grid-column:1; grid-row:3; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.idea-map-section { display:flex; flex-direction:column; gap:10px; min-width:0; margin-top:20px; }
.idea-map-section h2 { font-size:20px; color:#285469; }
.travel-map-toolbar { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; }
.travel-map-toolbar label { display:flex; flex:1 1 160px; flex-direction:column; gap:4px; min-width:0; font-size:11px; color:var(--muted); }
.travel-map-toolbar input,.travel-map-toolbar select { min-height:34px; min-width:0; width:100%; padding:5px 9px; border:1px solid #b6c7cc; border-radius:5px; color:#254e65; background:var(--paper); font-size:12px; }
.travel-map-toolbar button,.travel-map-places button { min-height:32px; padding:5px 8px; border:1px solid #b6c7cc; border-radius:5px; color:#254e65; background:#f7f9f5; font-size:11px; }
.travel-map-toolbar button:hover,.travel-map-places button:hover { background:#e0ecee; border-color:#7e9fad; }
.travel-map-canvas { height:280px; min-height:260px; width:100%; border-radius:10px; z-index:0; overflow:hidden; background:#dce6e3; }
.travel-map-places { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr)); align-items:start; gap:7px 12px; }
.travel-map-place { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:2px 8px; min-width:0; }
.travel-map-places .travel-map-place-name { grid-column:1/-1; border:0; border-radius:0; min-height:26px; padding:0; background:transparent; line-height:1.4; text-align:left; }
.travel-map-places .travel-map-place-name:hover { background:transparent; text-decoration-color:currentColor; }
.travel-map-assessment,.travel-map-external { font-size:10px; color:var(--muted); }
.travel-map-external { white-space:nowrap; }
.travel-map-popup { display:flex; align-items:flex-start; flex-direction:column; gap:6px; }
.travel-map-popup .travel-map-place-name { min-height:26px; padding:0; font-size:12px; }
.travel-map-popup .travel-map-reason { font-size:11px; line-height:1.5; }
.travel-map-popup .travel-map-external { color:var(--bird-blue); }
.travel-map-label { max-width:190px; white-space:normal; font:600 10px/1.35 var(--body); color:var(--ocean); }
.travel-map-caption,.travel-map-status { color:var(--muted); font-size:11px; line-height:1.5; max-width:75ch; }
.travel-map-status:empty { display:none; }
.travel-map-canvas .leaflet-control-attribution { font-size:9px; }
.travel-map-canvas .leaflet-popup-content { font:500 12px/1.5 var(--body); color:var(--ink); }
.travel-map-fallback { display:flex; align-items:center; justify-content:center; height:100%; min-height:240px; padding:24px; color:var(--ocean); font-size:13px; }
.detail-overview { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); gap:22px; align-items:stretch; }
.detail-feature { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr); overflow:hidden; border-radius:12px; background:var(--paper); }
.detail-photo { min-height:360px; }
.detail-summary { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:14px; min-width:0; padding:22px; }
.detail-summary p { max-width:55ch; }
.detail-location,.detail-dates { color:var(--muted); font-size:11px; } .detail-location { margin-top:5px; } .detail-transfer { display:block; color:var(--muted); font-size:11px; margin-top:3px; }
.detail-intro { color:var(--ink); font-size:14px; line-height:1.65; }
.detail-season { color:var(--muted); font-size:12px; line-height:1.6; }
.detail-journey { color:#254e65; font-size:12px; line-height:1.6; }
.detail-journey small,.detail-journey .detail-meta { display:block; color:var(--muted); font-size:11px; margin-top:4px; }
.detail-tradeoff { padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.6; }
.detail-map-wrap { display:flex; flex-direction:column; gap:8px; min-width:0; }
.detail-map-wrap>.map-panel { display:flex; flex-direction:column; gap:10px; height:auto; flex:1; margin:0; background:transparent; }
.detail-map-wrap .travel-map-canvas { flex:1; height:320px; }
.detail-map-wrap .map-caption { font-size:11px; }
.detail-plan { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr); gap:28px; margin-top:22px; }
.detail-plan h3 { font:700 13px/1.5 var(--body); color:#254e65; margin-bottom:6px; }
.detail-plan p,.detail-plan li { max-width:70ch; font-size:12px; }
.detail-activity { margin-top:14px; max-width:85ch; font-size:12px; }
.detail-activity h3 { font:700 13px/1.5 var(--body); color:#254e65; margin-bottom:4px; }
.detail-activity .detail-meta { margin-top:4px; font-size:11px; }
.detail-plan .stop-list li { padding:9px 0; }
.detail-plan .stop-list strong { font-size:12px; }
.detail-plan .stop-order { font-size:18px; }
.detail-evidence { margin-top:18px; border-top:1px solid var(--line); padding-top:10px; }
.detail-evidence>summary { min-height:32px; cursor:pointer; font-size:12px; color:var(--muted); }
.detail-evidence-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding-top:14px; }
.detail-evidence .detail-block p,.detail-evidence .detail-block li { font-size:12px; }
.detail-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:20px; border-top:1px solid var(--line); padding-top:16px; } .detail-actions p { font-size:12px; color:var(--muted); align-self:center; }
.avoid-section { margin-top:22px; padding-top:20px; border-top:1px solid var(--line); display:grid; grid-template-columns:230px 1fr; gap:28px; }
.avoid-section h2 { color:#285469; font-size:18px; margin-bottom:6px; } .avoid-section>div>p { font-size:12px; color:var(--muted); }
.avoid-row { padding:8px 0; border-bottom:1px solid var(--line); } .avoid-row:last-child { border:0; } .avoid-row summary { font-size:13px; cursor:pointer; min-height:30px; color:var(--ink); }
.avoid-row p { font-size:13px; color:var(--muted); margin:5px 0 8px; max-width:85ch; }
.coverage-details { border-top:1px solid var(--line); margin-top:22px; padding:13px 0; color:var(--muted); font-size:12px; } .coverage-details summary { cursor:pointer; min-height:28px; }
.coverage-details p { margin:6px 0; max-width:100ch; } .coverage-details ul { padding-left:18px; }
.saved-section { margin-top:22px; border-top:1px solid var(--line); padding-top:20px; } .saved-section>p { font-size:12px; color:var(--muted); margin-bottom:12px; }
.saved-row { display:flex; gap:18px; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); } .saved-row>div { flex:1; } .saved-row h3 { font-size:18px; } .saved-row p { font-size:12px; color:var(--muted); margin-top:4px; }
.site-footer { width:100%; margin:0; padding:18px 28px 24px; border-top:1px solid var(--line); display:flex; align-items:center; gap:24px; flex-wrap:wrap; font-size:11px; color:var(--muted); }
.site-footer>div { display:flex; gap:18px; flex-wrap:wrap; } .site-footer a { text-decoration:none; } .site-footer a:hover { text-decoration:underline; } .release-note { margin-left:auto; } .noscript { padding:30px; color:var(--no); }

@media(min-width:1200px) {
  .answer-layout:has(>.idea-map-section:not([hidden])) { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(350px,1fr); gap:18px 22px; }
  .answer-layout:has(>.idea-map-section:not([hidden]))>.results { display:contents; }
  .answer-layout:has(>.idea-map-section:not([hidden])) .idea.lead,
  .answer-layout:has(>.idea-map-section:not([hidden])) .empty-answer { grid-column:1; grid-row:1; }
  .answer-layout:has(>.idea-map-section:not([hidden])) .alternatives { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  .answer-layout:has(>.idea-map-section:not([hidden])) .idea-map-section { grid-column:2; grid-row:1; margin-top:0; }
  .answer-layout:has(>.idea-map-section:not([hidden])) .travel-map-canvas { flex:1; height:300px; }
  .answer-layout:has(>.idea-map-section:not([hidden])) .idea.alt { grid-template-columns:34% minmax(0,1fr); }
  .answer-layout:has(>.idea-map-section:not([hidden])) .idea.alt .idea-visual { min-height:170px; }
}
@media(min-width:1800px) {
  .canvas,.site-header,.site-footer { padding-inline:32px; } .idea-body { padding:32px; } .idea.alt .idea-body { padding:24px; } .idea-description { font-size:14px; } .idea.alt h3 { font-size:23px; }
}
@media(max-width:1100px) {
  .site-header { padding-inline:20px; gap:20px; } .canvas,.site-footer { padding-inline:20px; } .desk-state { display:none; }
  .results { grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr); gap:14px; } .idea.lead { grid-template-columns:minmax(0,1fr) minmax(220px,1fr); }
  .idea-body { padding:19px; } .idea h3 { font-size:23px; } .idea.alt { grid-template-columns:minmax(80px,.65fr) minmax(0,1.35fr); } .idea.alt .idea-body { padding:14px; } .idea.alt h3 { font-size:18px; } .alternatives { gap:14px; }
  .detail-overview { grid-template-columns:1fr; gap:18px; } .detail-feature { grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr); } .detail-photo { min-height:330px; } .detail-map-wrap .travel-map-canvas { height:280px; }
}
@media(max-width:760px) {
  .site-header { flex-wrap:wrap; min-height:0; padding:9px 16px; gap:9px 16px; } .mode-nav { order:3; flex:0 1 auto; } .header-actions { gap:14px; font-size:11px; } .header-actions .text-button { font-size:11px; }
  .canvas { padding:20px 16px; } .page-heading { margin-bottom:18px; } .page-heading h1 { font-size:25px; max-width:24ch; } .page-heading p { font-size:12px; max-width:44ch; } .edition-label { display:none; }
  .desk-main { gap:10px; } .desk-field>span { font-size:11px; }
  .desk-field input,.desk-field select,.field input,.field select,.question-fields>input,.question-fields>select,#refinementTopic { min-height:44px; font-size:14px; }
  .field-origin { flex:1 1 155px; } .field-geography { flex:1 1 100%; } .field-date { flex:1 1 145px; } .field-duration { flex:0 1 105px; } .field-reach,.field-purpose { flex:1 1 160px; }
  .desk-inline>select,.desk-inline>input { max-width:100%; } .desk-inline>select { flex:1 1 auto; } .desk-inline .checkbox-line { flex-basis:100%; margin-left:0; }
  .destination-picker { width:100%; }
  .destination-popover { width:min(340px,calc(100vw - 32px)); }
  .desk-utilities { gap:2px 14px; } .desk-utilities .text-button { font-size:11px; } .desk-utilities #defaultsButton { display:none; }
  .question-panel { padding:15px; max-height:65vh; } .question-heading h2 { font-size:14px; }
  .result-heading { gap:12px; align-items:flex-start; } .result-heading h2 { font-size:19px; } .result-heading>span { font-size:10px; max-width:125px; }
  .results { display:block; } .idea.lead,.results.single .idea.lead { grid-template-columns:minmax(0,1.15fr) minmax(240px,1fr); margin-bottom:14px; } .idea.lead .idea-visual { min-height:340px; }
  .answer-layout:has(>.idea-map-section:not([hidden])) .alternatives { grid-template-columns:minmax(0,1fr); }
  .idea-body { padding:19px; } .idea h3 { font-size:23px; } .idea-description { font-size:13px; } .idea-actions { gap:10px; }
  .idea.alt { grid-template-columns:minmax(125px,.75fr) minmax(0,1.25fr); } .idea.alt .idea-visual { min-height:160px; } .idea.alt h3 { font-size:20px; } .idea.alt .idea-body { padding:17px; } .results.single .idea-body { max-width:none; }
  .selected-detail { padding-top:20px; } .detail-grid { grid-template-columns:1fr; gap:0; } .section-heading h2 { font-size:21px; } .section-heading .text-button { font-size:11px; }
  .detail-feature { grid-template-columns:minmax(0,1fr) minmax(220px,1fr); } .detail-summary { padding:18px; gap:12px; } .detail-intro { font-size:13px; }
  .detail-plan,.detail-evidence-grid { grid-template-columns:1fr; gap:16px; } .detail-map-wrap .travel-map-canvas,.travel-map-canvas { height:260px; } .idea-map-section { gap:9px; }
  .avoid-section { grid-template-columns:1fr; gap:8px; margin-top:18px; padding-top:17px; } .avoid-section>div:first-child { display:flex; gap:13px; align-items:baseline; } .avoid-section h2 { font-size:18px; white-space:nowrap; } .avoid-section>div>p { font-size:11px; }
  .empty-answer { padding:23px 20px; } .empty-answer h3 { font-size:22px; } .site-footer { padding:18px 16px; gap:14px; } .release-note { margin-left:0; }
  .saved-row { gap:12px; flex-wrap:wrap; } .saved-row>div { min-width:180px; } .saved-row .text-button { font-size:11px; }
}
@media(max-width:540px) {
  .idea.lead,.results.single .idea.lead { display:flex; flex-direction:column; } .idea.lead .idea-visual { height:240px; min-height:240px; }
  .idea.lead .idea-body { padding:21px; } .idea.lead h3 { font-size:25px; } .idea.alt { grid-template-columns:36% minmax(0,1fr); } .idea.alt h3 { font-size:18px; } .idea.alt .idea-body { padding:14px; }
  .desk-utilities>.primary { margin-left:0; }
  .detail-feature { display:flex; flex-direction:column; } .detail-photo { height:240px; min-height:240px; } .detail-summary { padding:20px; } .detail-map-wrap .travel-map-canvas { height:270px; }
  .empty-answer.has-place-picture { grid-template-columns:1fr; } .empty-answer.has-place-picture .idea-visual { height:220px; min-height:220px; } .empty-answer.has-place-picture .empty-answer-copy { padding:20px; }
}
@media(pointer:coarse),(max-width:760px) {
  .mode-nav a,.header-actions>a,.text-button,.primary,.secondary,.desk-utilities>.primary,.option,.checkbox-line,.desk-inline .checkbox-line,.idea.alt .primary,.idea.alt .text-button,.coverage-details summary,.avoid-row summary { min-height:44px; }
  .origin-popover button,.destination-popover button { min-height:44px; }
  .travel-choice-option,.field-origin #chooseOrigin { min-height:44px; }
  .field-origin #chooseOrigin { min-width:44px; }
  .header-actions>a { display:inline-flex; align-items:center; } .desk-field input,.desk-field select,.field input,.field select,.question-fields>input,.question-fields>select,#refinementTopic { min-height:44px; } .checkbox-line input { min-height:17px; width:17px; height:17px; }
  .travel-map-toolbar input,.travel-map-toolbar select,.travel-map-toolbar button,.travel-map-places button,.travel-map-places .travel-map-place-name,.detail-evidence>summary { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
@media print {
  .site-header,.travel-desk,.answer-layout,.results,.result-heading,.status-message,.avoid-section,.coverage-details,.site-footer,.detail-actions,.saved-section,.page-heading { display:none!important; }
  .canvas { padding:0; max-width:none; } .selected-detail { display:block!important; border:0; padding:0; } .selected-detail .text-button { display:none; } .detail-grid { display:block; } .map-panel { display:none; } .source-links a { overflow-wrap:anywhere; }
  .detail-overview,.detail-feature,.detail-plan,.detail-evidence-grid { display:block; } .detail-photo,.detail-map-wrap { display:none; } .detail-summary { padding:0; } .detail-evidence::details-content { content-visibility:visible; display:block; }
}

.activity-weather { margin-top:12px; max-width:65ch; }
.activity-weather h4 { margin:0 0 5px; font:700 13px var(--body); color:var(--ocean); }
.activity-weather p,.activity-weather li { font-size:12px; line-height:1.55; }
.activity-weather p+p { margin-top:5px; }
.activity-weather ul { margin:8px 0; padding-left:18px; }
