:root{--paper:#eee9df;--ink:#161817;--muted:#62645f;--line:rgba(22,24,23,.19);--coral:#ff6b5f;--white:#faf8f3;--green:#123d37;--soft:#e3ded4;--accent:var(--coral)}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{cursor:pointer}
button{border-radius:0}
a{color:inherit}
button:disabled{opacity:.35;cursor:default}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #175bd3;outline-offset:4px}
button:hover:not(:disabled){filter:brightness(.96)}
[hidden]{display:none!important}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-weight:740}
h1,h2{letter-spacing:-.065em}
p{line-height:1.5}
::selection{background:var(--coral);color:var(--ink)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--ink);color:white;padding:14px}
.skip:focus{top:10px}
.mono,.eyebrow{font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
.eyebrow{text-transform:uppercase;display:block;color:var(--muted);margin-bottom:18px}
.muted{color:var(--muted)}
.small{font-size:12px;line-height:1.5}
.site-header{height:78px;display:flex;align-items:center;gap:30px;padding:0 3vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(238,233,223,.97);z-index:20}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;letter-spacing:-.04em;font-weight:850;font-size:21px;white-space:nowrap}
.brand-mark{border:1.5px solid currentColor;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-size:20px;line-height:1}
.brand small{font-size:10px;letter-spacing:.08em;border-left:1px solid var(--line);padding-left:13px;margin-left:4px;font-weight:600}
.variant-nav{display:flex;gap:5px;margin-left:auto}
.variant-nav a{font-size:12px;text-decoration:none;padding:9px 12px;white-space:nowrap;border-radius:30px;transition:background .2s}
.variant-nav a[aria-current=page]{background:var(--ink);color:var(--paper)}
.variant-nav a:hover{background:var(--soft)}
.variant-nav a[aria-current=page]:hover{background:var(--green)}
.header-back{font-size:12px;text-underline-offset:5px;white-space:nowrap}
.primary,.secondary,.text-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 20px;border:1px solid var(--ink);text-decoration:none;font-size:13px;font-weight:700;transition:background .2s,transform .2s}
.primary{background:var(--ink);color:var(--paper)}
.primary.coral{background:var(--coral);color:var(--ink);border-color:var(--coral)}
.primary:hover{transform:translateY(-2px)}
.secondary{background:transparent}
.text-button{padding:8px 0;background:transparent;border:0;border-bottom:1px solid currentColor;min-height:40px}
.circle-button{border:1px solid var(--line);background:transparent;border-radius:50%;width:44px;height:44px;flex-shrink:0;font-size:21px;display:inline-grid;place-items:center}
.pill{display:inline-flex;padding:6px 10px;font-size:11px;border:1px solid var(--line);border-radius:20px}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.site-footer{margin:0 3vw;padding:26px 0;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
.site-footer a{text-underline-offset:3px}
.page-enter{animation:enter .5s both}
@keyframes enter{from{opacity:0;transform:translateY(16px)}
to{opacity:1;transform:none}
}

/* Project entry: the same project opens four distinct guides. */
.project-page{padding:44px 3vw 64px}
.breadcrumb{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted);margin-bottom:46px}
.breadcrumb a{text-decoration:none}
.project-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:7vw}
.project-copy h1{font-size:clamp(46px,6.8vw,104px);line-height:.94;max-width:850px;margin-bottom:28px;overflow-wrap:break-word}
.project-copy>.description{max-width:630px;font-size:18px;color:var(--muted)}
.project-phases{display:flex;margin:36px 0 28px;padding:0;list-style:none;border-top:1px solid var(--line)}
.project-phases li{flex:1;padding:14px 8px 0 0;border-top:3px solid transparent;margin-top:-2px;font-size:11px;color:var(--muted)}
.project-phases li.active{border-color:var(--coral);color:var(--ink);font-weight:700}
.project-phases small{display:block;margin-bottom:8px;font:10px ui-monospace,monospace}
.project-form{border-top:1px solid var(--line);padding-top:22px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:11px;font-weight:650}
.field.wide{grid-column:1/-1}
.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid #96978f;background:transparent;padding:10px 0;font-size:14px;font-weight:450;min-height:44px}
.field textarea{resize:vertical;min-height:75px}
.form-note{margin-top:15px;font-size:11px;color:var(--muted)}
.connect-panel{align-self:start;background:var(--green);color:var(--paper);padding:32px;position:sticky;top:112px;overflow:hidden}
.connect-panel .eyebrow{color:#b8c9c0}
.connect-word{font-size:clamp(40px,4.7vw,72px);letter-spacing:-.07em;font-weight:760;line-height:1;margin:0 0 10px}
.connect-panel p{color:#c4d0c8;max-width:360px;font-size:14px}
.connect-art{display:block;width:100%;height:210px;margin:0 0 25px;overflow:visible}
.connect-art .network-link{stroke:#54736a;stroke-width:1;stroke-dasharray:4 5}
.connect-art circle{fill:var(--green);stroke:#8eaaa0;stroke-width:1}
.connect-art text{fill:var(--paper);font:700 11px ui-monospace,monospace;text-anchor:middle;dominant-baseline:middle}
.connect-art .center{fill:var(--coral);stroke:var(--coral)}
.connect-art .center-label{fill:var(--ink);font-size:21px}
.connect-panel .primary{width:100%;justify-content:space-between}
.connect-panel .panel-bottom{display:flex;justify-content:space-between;margin-top:22px;color:#b8c9c0;font:10px ui-monospace,monospace}

/* Shared guide chrome and offer profiles. */
.context-bar{display:flex;align-items:center;gap:16px;padding:13px 3vw;border-bottom:1px solid var(--line);font-size:12px;background:#e5e0d6}
.context-bar .context-project{font-weight:650;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.context-bar .context-meta{color:var(--muted);font-size:11px}
.context-bar button{margin-left:auto;background:transparent;border:0;text-decoration:underline;text-underline-offset:4px;font-size:11px;min-height:30px}
.guide-page{padding:38px 3vw 56px}
.guide-title{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px}
.guide-title h1{font-size:clamp(42px,5.4vw,80px);line-height:.97;margin:0}
.guide-title .eyebrow{margin-bottom:13px}
.guide-title p{font-size:14px;color:var(--muted);margin:15px 0 0;max-width:560px}
.guide-title .actions{flex-shrink:0}
.saved-count{display:inline-grid;place-items:center;min-width:21px;height:21px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:10px}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
.section-heading h2{font-size:32px;margin:0;line-height:1.1}
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px}
.filter-field{min-width:180px;flex:1}
.filter-field input,.filter-field select{width:100%;min-height:46px;border:1px solid var(--line);padding:11px 13px;background:transparent;font-size:12px}
.filter-field label{display:block;font-size:10px;margin-bottom:7px;color:var(--muted)}
.filter-bar .reset{align-self:flex-end}
.category-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px}
.category-tabs button{padding:10px 13px;background:transparent;border:1px solid var(--line);font-size:11px;min-height:40px;transition:background .2s}
.category-tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.offer-list{border-top:1px solid var(--line)}
.offer-row{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);position:relative}
.offer-main{border:0;background:transparent;flex:1;text-align:left;padding:20px 0;min-width:0;transition:padding .2s}
.offer-main:hover{padding-left:7px}
.offer-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--muted);font-size:10px;margin-bottom:9px}
.uni-dot{width:6px;height:6px;border-radius:50%;background:var(--uni-color);display:inline-block}
.offer-main h3{font-size:21px;line-height:1.12;letter-spacing:-.045em;margin:0 0 8px}
.offer-main p{font-size:12px;color:var(--muted);margin:0;max-width:570px}
.offer-main .offer-arrow{display:inline-block;margin-top:12px;font-size:12px;font-weight:700}
.save-button{flex-shrink:0;border:1px solid var(--line);background:transparent;border-radius:50%;width:38px;height:38px;font-size:20px;transition:background .2s}
.save-button[aria-pressed=true]{background:var(--coral);border-color:var(--coral)}
.empty{padding:40px 0;color:var(--muted);font-size:14px}
.empty h3{color:var(--ink)}
.source-note{font-size:10px;color:var(--muted);line-height:1.5;margin:18px 0 0}
.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);padding:13px 20px;background:var(--ink);color:var(--paper);font-size:12px;z-index:90;opacity:0;pointer-events:none;transition:.2s;max-width:90vw}
.toast.visible{opacity:1;transform:translate(-50%,0)}

/* Geography, directly on the supplied ConnectMe map. */
.atlas-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:32px}
.atlas-main{min-width:0;align-self:start;position:sticky;top:100px}
.map-panel{background:#fff;border:1px solid var(--line);position:relative}
.map-tools{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line);gap:10px}
.map-tools .mono{font-size:10px;color:#62645f}
.map-tools .actions{gap:5px}
.map-tools button{background:transparent;border:1px solid var(--line);min-width:34px;min-height:34px;font-size:16px}
.map-tools button.fit{font-size:10px;padding:0 10px}
.map-viewport{overflow:auto;max-height:650px;scrollbar-width:thin}
.map-canvas{width:100%;min-width:100%;position:relative;transition:width .35s}
.map-canvas img{display:block;width:100%;height:auto}
.map-hotspot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border:2px solid white;border-radius:50%;background:var(--ink);color:#fff;font:700 13px ui-monospace,monospace;box-shadow:0 0 0 7px rgba(255,255,255,.25);transition:box-shadow .2s,background .2s}
.map-hotspot:hover,.map-hotspot[aria-pressed=true]{background:var(--coral);color:var(--ink);box-shadow:0 0 0 10px rgba(255,107,95,.3)}
.map-hotspot[aria-pressed=true]::after{content:'✓';position:absolute;right:-7px;top:-7px;width:19px;height:19px;background:white;color:var(--ink);border-radius:50%;display:grid;place-items:center;font-size:11px}
.map-legend{display:flex;flex-wrap:wrap;gap:5px;padding:12px;border-top:1px solid var(--line)}
.map-legend button{border:0;background:transparent;display:flex;align-items:center;gap:7px;font-size:10px;padding:9px 7px;min-height:35px}
.map-legend button[aria-pressed=true]{background:var(--ink);color:white}
.map-legend b{font:10px ui-monospace,monospace}
.map-caption{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted);margin:12px 0 0}
.atlas-results{min-width:0}
.result-heading{border-top:3px solid var(--ink);padding-top:15px}
.result-heading h2{font-size:29px;margin:9px 0;line-height:1.08;letter-spacing:-.05em}
.result-heading p{font-size:12px;color:var(--muted);margin-bottom:20px}
.result-heading .mono{font-size:10px}
.atlas-results .offer-list{max-height:625px;overflow:auto;padding-right:9px;scrollbar-width:thin}
.atlas-results .offer-main h3{font-size:20px}

/* Three recommendations lead into a second discovery layer. */
.recommendation-intro{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:15px 0 22px;border-top:1px solid var(--line);font-size:12px}
.recommendation-intro p{margin:0;color:var(--muted);max-width:720px}
.recommendations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:42px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.recommendation{position:relative;padding:24px 28px 26px 0;display:flex;flex-direction:column;min-height:350px}
.recommendation+.recommendation{border-left:1px solid var(--line);padding-left:28px}
.rec-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}
.rec-number{font-size:42px;letter-spacing:-.07em;line-height:1;color:var(--coral)}
.recommendation .offer-meta{margin-bottom:14px}
.recommendation h2{font-size:clamp(25px,2.6vw,39px);line-height:1.03;margin-bottom:14px;letter-spacing:-.05em}
.recommendation>p{color:var(--muted);font-size:13px;margin-bottom:22px}
.recommendation .reason{padding-top:14px;border-top:1px solid var(--line);font-size:11px;margin-top:auto;color:var(--green)}
.recommendation .text-button{align-self:flex-start;margin-top:15px}
.discover-banner{display:flex;justify-content:space-between;align-items:center;padding:27px 30px;background:var(--green);color:var(--paper);gap:30px}
.discover-banner h2{margin:0 0 7px;font-size:31px;line-height:1.05}
.discover-banner p{margin:0;color:#c3d0c8;font-size:13px}
.discover-banner .secondary{border-color:#9db3a8;color:var(--paper);white-space:nowrap}
.discovery{margin-top:34px;scroll-margin-top:100px}
.discovery h2{font-size:36px;margin-bottom:22px}

/* A real binary decision tree with revisable history. */
.question-layout{display:grid;grid-template-columns:230px minmax(0,1fr);border-top:1px solid var(--line);gap:6vw;padding-top:38px}
.question-rail{border-right:1px solid var(--line);padding-right:25px}
.question-rail .eyebrow{font-size:10px}
.question-progress{display:flex;gap:8px;margin:20px 0 32px}
.question-progress span{width:33px;height:3px;background:#cec9bf}
.question-progress span.done{background:var(--coral)}
.answer-history{padding:0;list-style:none;counter-reset:answer}
.answer-history li{margin-bottom:23px}
.answer-history button{background:transparent;border:0;text-align:left;padding:0;font-size:12px;line-height:1.5;color:var(--muted);min-height:38px}
.answer-history button::before{counter-increment:answer;content:'0' counter(answer);display:block;font:10px ui-monospace,monospace;color:var(--muted);margin-bottom:7px}
.question-stage{max-width:950px;padding-bottom:50px;min-width:0}
.question-stage h2{font-size:clamp(37px,4.5vw,68px);line-height:1.02;max-width:800px;margin:15px 0 18px}
.question-stage>.muted{font-size:15px;max-width:600px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px}
.choice{border:1px solid var(--ink);background:transparent;padding:27px;text-align:left;min-height:225px;display:flex;flex-direction:column;transition:background .25s,transform .25s}
.choice:hover{background:var(--coral);transform:translateY(-4px)}
.choice .mono{margin-bottom:25px;color:var(--muted)}
.choice strong{font-size:29px;line-height:1.05;letter-spacing:-.05em;margin-bottom:14px}
.choice small{font-size:12px;line-height:1.4;color:var(--muted)}
.choice .choice-arrow{margin-top:auto;align-self:flex-end;font-size:27px;padding-top:18px}
.question-controls{margin-top:25px;display:flex;gap:20px}
.question-results .offer-main h3{font-size:26px}
.answer-summary{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0}
.question-result-copy{font-size:13px;color:var(--muted)}

/* Themed itinerary: users collect, order and export their own stops. */
.route-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);gap:44px;border-top:1px solid var(--line)}
.route-main{min-width:0}
.stage-nav{display:flex;border-bottom:1px solid var(--line);margin-bottom:36px}
.stage-nav button{background:transparent;border:0;border-bottom:3px solid transparent;flex:1;text-align:left;padding:19px 6px 16px;min-width:0}
.stage-nav button[aria-current=step]{border-color:var(--coral)}
.stage-nav b{display:block;font:11px ui-monospace,monospace;margin-bottom:8px;color:var(--muted)}
.stage-nav span{font-size:11px}
.stage-nav button[aria-current=step] b{color:var(--ink);font-weight:bold}
.stage-heading{display:flex;gap:24px;margin-bottom:30px}
.stage-number{font-size:100px;font-weight:760;letter-spacing:-.085em;line-height:.9;color:var(--coral)}
.stage-heading h2{font-size:42px;line-height:1;margin-bottom:15px}
.stage-heading p{max-width:500px;font-size:14px;color:var(--muted);margin-bottom:0}
.route-offers .offer-main h3{font-size:25px}
.stage-controls{display:flex;justify-content:space-between;gap:20px;margin-top:22px}
.itinerary{border-left:1px solid var(--line);padding:28px 0 20px 26px;position:sticky;top:95px;align-self:start;min-width:0}
.itinerary h2{font-size:31px;line-height:1;margin-bottom:13px}
.itinerary-intro{font-size:12px;color:var(--muted)}
.itinerary-list{list-style:none;margin:25px 0;padding:0}
.itinerary-stop{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:17px 0;border-top:1px solid var(--line)}
.itinerary-stop .stop-number{font:11px ui-monospace,monospace;color:var(--muted);padding-top:3px}
.itinerary-stop .stop-name{font-size:14px;font-weight:650;line-height:1.2;background:none;border:0;text-align:left;padding:0}
.itinerary-stop small{display:block;margin-top:7px;font-size:10px;color:var(--muted)}
.stop-controls{display:flex;gap:5px;margin-top:10px}
.stop-controls button{min-width:32px;min-height:32px;background:transparent;border:1px solid var(--line);font-size:12px}
.stop-controls button:last-child{margin-left:auto;padding-inline:8px;font-size:10px}
.itinerary-empty{margin:28px 0;padding:26px 0;border-top:1px dashed #9c9d94;border-bottom:1px dashed #9c9d94;font-size:13px;color:var(--muted)}
.itinerary-empty b{font-size:40px;font-weight:300;color:var(--ink);display:block;margin-bottom:14px}
.itinerary .primary{width:100%;margin-top:8px}

/* Native dialogs provide focus trapping, Escape and focus restoration. */
dialog{border:0;padding:0;background:var(--white);color:var(--ink);width:min(720px,calc(100% - 32px));max-height:calc(100svh - 40px);overflow:auto;box-shadow:0 30px 100px #0004}
dialog::backdrop{background:rgba(18,28,24,.55);backdrop-filter:blur(4px)}
dialog[open]{animation:enter .25s both}
.dialog-top{padding:20px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}
.dialog-body{padding:34px}
.dialog-body h2{font-size:clamp(33px,4vw,56px);line-height:.99;margin-bottom:20px;letter-spacing:-.05em}
.dialog-description{font-size:18px;line-height:1.5;color:#50574f;margin-bottom:28px}
.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 26px}
.detail-facts dt{font-size:10px;color:var(--muted);margin-bottom:9px}
.detail-facts dd{font-size:13px;margin:0;line-height:1.4}
.detail-note{font-size:12px;background:var(--paper);padding:15px;line-height:1.5}
.dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}
.dialog-actions [aria-pressed=true]{background:var(--coral)}
.dialog-body .source-note{overflow-wrap:anywhere}
.saved-dialog .itinerary{position:static;padding:0;border:0}
.dialog-body .itinerary .itinerary-intro{font-size:14px}
.related{margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.related h3{font-size:14px}
.related button{display:block;padding:8px 0;min-height:40px;text-align:left;background:none;border:0;text-decoration:underline;font-size:13px;text-underline-offset:4px}

/* Overview takes its editorial rows and scale from the existing index. */
.overview{padding:6vw 3vw 3vw}
.overview-intro{display:grid;grid-template-columns:1.35fr .65fr;gap:5vw;align-items:end;margin-bottom:5.5vw}
.overview-intro h1{font-size:clamp(55px,8.8vw,132px);line-height:.86;margin:0;letter-spacing:-.075em}
.overview-intro p{font-size:clamp(16px,1.5vw,22px);line-height:1.4;margin:0 0 6px;max-width:510px}
.overview-meta{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px;gap:15px}
.concept{display:grid;grid-template-columns:70px minmax(230px,.9fr) minmax(280px,1fr) 35px;gap:25px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;position:relative;isolation:isolate}
.concept::before{position:absolute;content:'';inset:0;background:#ded9ce;z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .35s}
.concept:hover::before,.concept:focus-visible::before{transform:scaleY(1)}
.concept .number{font:10px ui-monospace,monospace;align-self:start;padding-top:8px;color:var(--muted)}
.concept h2{font-size:clamp(31px,4.2vw,63px);line-height:.92;margin-bottom:15px}
.concept p{font-size:13px;line-height:1.45;color:var(--muted);max-width:480px;margin:0}
.concept .arrow{font-size:33px;transition:transform .2s}
.concept:hover .arrow{transform:translate(5px,-5px)}
.preview{height:180px;overflow:hidden;position:relative;border:1px solid var(--line);background:var(--white)}
.map-preview img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.rec-preview{display:flex;gap:12px;padding:25px 20px;background:var(--green)}
.rec-preview i{display:flex;flex:1;flex-direction:column;border-top:1px solid #9cb8aa;color:var(--paper);padding-top:10px;font-style:normal;font-size:12px;line-height:1.2}
.rec-preview b{color:var(--coral);font-size:30px;letter-spacing:-.06em;margin-bottom:23px}
.question-preview{background:var(--coral);display:flex;align-items:center;justify-content:center;gap:14px;padding:22px}
.question-preview b{font-size:40px;font-weight:500;letter-spacing:-.04em}
.question-preview i{width:32%;border:1px solid var(--ink);padding:20px 8px;font-size:12px;text-align:center;font-style:normal}
.route-preview{display:flex;align-items:center;justify-content:center;gap:0;padding:25px}
.route-preview b{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--ink);background:var(--paper);border-radius:50%;font:12px ui-monospace,monospace}
.route-preview b:first-child{background:var(--coral)}
.route-preview i{height:1px;flex:1;background:var(--ink);max-width:50px}
.overview-bottom{padding-top:35px;display:flex;justify-content:space-between;gap:25px;font-size:12px;color:var(--muted)}

@media(min-width:1600px){.guide-page,.project-page,.overview{max-width:1800px;margin-inline:auto}
.atlas-results .offer-list{max-height:800px}
}

@media(max-width:1100px){.site-header{gap:14px}
.brand small{display:none}
.variant-nav a{font-size:11px;padding:8px}
.project-layout{gap:4vw;grid-template-columns:1.1fr .9fr}
.connect-panel{padding:25px}
.atlas-layout{grid-template-columns:1.3fr 1fr;gap:23px}
.map-hotspot{width:38px;height:38px;font-size:11px}
.atlas-results .offer-list{max-height:500px}
.route-layout{gap:25px;grid-template-columns:1.35fr .8fr}
.stage-heading h2{font-size:35px}
.stage-number{font-size:75px}
.concept{grid-template-columns:50px .95fr 1fr 30px;gap:20px}
.context-meta{max-width:380px}
.guide-title .actions .secondary{padding-inline:12px}
}

@media(max-width:800px){.site-header{height:auto;min-height:72px;flex-wrap:wrap;padding:17px 20px 12px;gap:15px}
.brand{font-size:20px}
.header-back{margin-left:auto}
.variant-nav{order:3;width:100%;justify-content:space-between;margin:0}
.variant-nav a{padding:7px 9px}
.project-page,.guide-page{padding:28px 20px 45px}
.breadcrumb{margin-bottom:28px}
.project-layout{grid-template-columns:1fr;gap:30px}
.project-copy h1{font-size:clamp(45px,9vw,72px)}
.project-copy>.description{font-size:16px}
.connect-panel{position:static;display:grid;grid-template-columns:1fr 1fr;gap:10px 25px}
.connect-panel .connect-art{grid-column:2;grid-row:1/5;height:190px;margin:0}
.connect-word{font-size:48px}
.connect-panel .primary,.connect-panel .panel-bottom{grid-column:1/-1}
.connect-panel .eyebrow{margin-bottom:4px}
.connect-panel p{margin-bottom:8px}
.context-bar{padding:12px 20px;flex-wrap:wrap;gap:8px 14px}
.context-meta{order:3;width:100%;max-width:none}
.context-project{max-width:70%!important}
.guide-title{align-items:flex-start;flex-wrap:wrap;gap:20px}
.guide-title h1{font-size:52px}
.guide-title .actions{width:100%}
.guide-title .secondary{font-size:11px}
.atlas-layout{grid-template-columns:1fr;gap:24px}
.atlas-main{position:static}
.map-hotspot{width:44px;height:44px}
.atlas-results .offer-list{max-height:none;overflow:visible;padding:0}
.map-viewport{max-height:650px}
.recommendation{padding-right:17px}
.recommendation+.recommendation{padding-left:17px}
.recommendation h2{font-size:28px}
.rec-top{margin-bottom:23px}
.recommendation>p{font-size:12px}
.discover-banner{padding:25px;gap:20px}
.discover-banner h2{font-size:27px}
.discover-banner .secondary{font-size:11px;padding-inline:12px}
.question-layout{grid-template-columns:1fr;padding-top:24px;gap:15px}
.question-rail{padding:0;border:0}
.question-rail>.eyebrow{display:none}
.question-progress{margin:0 0 14px}
.answer-history{display:flex;gap:14px;flex-wrap:wrap;margin:0}
.answer-history li{margin-bottom:10px}
.answer-history button::before{display:inline;margin-right:7px}
.question-stage h2{font-size:43px;margin-top:15px}
.choices{margin-top:26px}
.choice{padding:23px;min-height:200px}
.choice strong{font-size:26px}
.route-layout{grid-template-columns:1fr;gap:30px}
.itinerary{position:static;border-left:0;border-top:1px solid var(--ink);padding:28px 0 0}
.stage-nav{margin-bottom:27px}
.overview{padding:50px 20px 30px}
.overview-intro{grid-template-columns:1fr;gap:30px;margin-bottom:45px}
.overview-intro h1{font-size:clamp(59px,11vw,88px)}
.overview-intro p{max-width:550px}
.concept{grid-template-columns:38px 1fr 25px;gap:15px;min-height:0}
.concept .preview{grid-column:2/-1;width:100%;height:170px;grid-row:2}
.concept .arrow{grid-row:1;grid-column:3;align-self:start}
.concept h2{font-size:42px}
.concept .number{font-size:9px}
.site-footer{margin-inline:20px;flex-wrap:wrap}
.overview-meta{font-size:10px}
.overview-bottom{flex-direction:column;gap:12px}
}

@media(max-width:520px){.variant-nav a{font-size:10px;padding:7px}
.brand{font-size:18px}
.header-back{font-size:10px}
.form-grid{gap:15px}
.field{font-size:10px}
.field input,.field select{font-size:12px}
.project-phases li{font-size:9px}
.project-copy h1{font-size:44px}
.connect-panel{display:block;padding:25px}
.connect-art{height:170px!important;margin:0!important}
.connect-panel .eyebrow{margin-bottom:18px}
.connect-word{font-size:52px}
.connect-panel p{margin:15px 0 24px}
.guide-title h1{font-size:43px}
.guide-title p{font-size:13px}
.guide-title .actions{gap:8px}
.guide-title .secondary{padding:9px 12px;min-height:40px}
.category-tabs{gap:5px}
.category-tabs button{font-size:10px;padding:9px 11px;min-height:38px}
.filter-bar{gap:12px}
.filter-field{min-width:130px}
.filter-bar .reset{font-size:11px}
.map-tools{padding:9px;gap:5px}
.map-tools .mono{font-size:8px;max-width:140px}
.map-hotspot{width:38px;height:38px;font-size:11px;box-shadow:0 0 0 4px #fff4}
.map-legend{gap:2px;padding:7px}
.map-legend button{font-size:9px;padding:6px}
.map-caption{display:block;font-size:9px}
.map-caption span{display:block;margin-bottom:5px}
.recommendation-intro{display:block}
.recommendation-intro .pill{margin-top:13px}
.recommendations{grid-template-columns:1fr;margin-bottom:28px}
.recommendation{min-height:0;padding:24px 0}
.recommendation+.recommendation{padding:24px 0;border-left:0;border-top:1px solid var(--line)}
.rec-top{margin-bottom:18px}
.recommendation h2{font-size:35px;max-width:320px}
.recommendation>p{font-size:13px}
.recommendation .reason{margin-top:0}
.recommendation .text-button{margin-top:5px}
.discover-banner{flex-direction:column;align-items:flex-start;padding:25px}
.choices{grid-template-columns:1fr;gap:13px}
.choice{min-height:175px;padding:23px}
.choice .mono{margin-bottom:16px}
.choice strong{font-size:29px}
.choice .choice-arrow{padding-top:10px}
.question-stage h2{font-size:38px}
.question-controls{gap:16px}
.question-controls button{font-size:11px}
.stage-nav span{font-size:9px;overflow-wrap:anywhere}
.stage-heading{gap:17px}
.stage-heading h2{font-size:32px}
.stage-number{font-size:70px}
.stage-heading p{font-size:13px}
.stage-controls button{font-size:11px;padding-inline:12px}
.dialog-top{padding:15px 20px}
.dialog-body{padding:25px 22px}
.dialog-description{font-size:16px}
.detail-facts{grid-template-columns:1fr}
.dialog-actions{flex-direction:column;align-items:stretch}
.overview-intro h1{font-size:58px}
.overview-meta{flex-wrap:wrap;gap:10px}
.concept h2{font-size:36px}
.concept p{font-size:12px}
.concept .preview{height:145px}
.rec-preview{padding:17px 12px;gap:9px}
.rec-preview i{font-size:10px}
.rec-preview b{margin-bottom:16px}
.question-preview{padding:14px;gap:10px}
.question-preview i{font-size:10px}
.overview-bottom .actions{display:block}
.overview-bottom .actions a{display:inline-block;margin-bottom:10px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
}


/* Long German titles and source filenames must wrap inside narrow panels. */
h1,h2,h3{overflow-wrap:anywhere;hyphens:auto}
.project-copy,.connect-panel{min-width:0}
.project-phases li{min-width:0;overflow-wrap:anywhere}
.related p{overflow-wrap:anywhere}
.mobile-connect{display:none}
.variant-nav{min-width:0;overflow-x:auto;scrollbar-width:thin}
.variant-nav a{flex-shrink:0}
/* Variant 4: recommendations, a compact compass, then the always-visible map. */
.combined-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:32px 0 36px}
.combined-nav button{display:flex;align-items:center;gap:15px;background:transparent;border:0;padding:17px 0;text-align:left;font-size:12px;min-width:0}
.combined-nav button+button{border-left:1px solid var(--line);padding-left:24px}
.combined-nav button span:first-child{color:var(--muted);font:11px ui-monospace,monospace}
.combined-nav button span:last-child{margin-left:auto;margin-right:24px}
.combined-section{padding:0 0 44px;scroll-margin-top:110px}
.combined-section+.combined-section{padding-top:34px;border-top:1px solid var(--line)}
.combined-section .recommendations{margin-bottom:0}
.combined-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.combined-heading .eyebrow{margin-bottom:12px}
.combined-heading h2{font-size:clamp(29px,3.4vw,48px);line-height:1.05;margin-bottom:0}
.combined-heading p{color:var(--muted);font-size:14px;margin:14px 0 0;max-width:650px}
.combined-heading>.text-button{flex-shrink:0}
.combined-question-section .question-layout{grid-template-columns:200px minmax(0,1fr);gap:4vw;padding-top:26px}
.combined-question-section .question-stage{padding-bottom:0}
.combined-question-section .question-stage h2{font-size:clamp(32px,3.7vw,54px)}
.combined-question-section .choices{margin-top:27px}
.combined-question-section .choice{min-height:185px;padding:23px}
.combined-question-section .choice .mono{margin-bottom:18px}
.combined-question-section .question-controls{flex-wrap:wrap}
.combined-map-status{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 0;margin-bottom:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.combined-map-status p{margin:0;color:var(--green);font-size:12px;line-height:1.5}
.combined-map-status .text-button{font-size:11px;min-height:36px}
.combined-preview{display:flex;align-items:center;gap:20px;padding:18px 24px;background:var(--green)}
.combined-preview>div{display:grid;gap:17px;flex:1;min-width:0;color:var(--paper)}
.combined-preview span{font:11px ui-monospace,monospace;padding-bottom:9px;border-bottom:1px solid #7f9d90}
.combined-preview img{width:45%;height:100%;object-fit:contain;background:white}
@media(max-width:800px){
  .combined-question-section .question-layout{grid-template-columns:minmax(0,1fr);gap:20px}
  .combined-heading{flex-wrap:wrap;align-items:flex-start;gap:10px}
  .combined-section{scroll-margin-top:130px}
  .combined-nav button{gap:9px;font-size:11px}
  .combined-nav button+button{padding-left:12px}
  .combined-nav button span:last-child{margin-right:10px}
}
@media(max-width:520px){
  .variant-nav{justify-content:flex-start;gap:3px}
  .variant-nav a{padding:8px 7px}
  .combined-nav button{font-size:10px;gap:6px;flex-wrap:wrap}
  .combined-nav button span:first-child{width:100%;font-size:10px}
  .combined-nav button span:last-child{margin-right:8px}
  .combined-heading h2{font-size:32px}
  .combined-question-section .question-stage h2{font-size:34px}
  .combined-question-section .choice{min-height:175px}
  .combined-preview{gap:12px;padding:15px}
  .combined-preview span{font-size:9px}
}
@media(max-width:800px){
  .project-layout{grid-template-columns:minmax(0,1fr)}
  .mobile-connect{display:flex;width:100%;margin:25px 0;justify-content:space-between}
}
@media(max-width:520px){
  .overview-bottom .actions{display:flex;align-items:flex-start;flex-direction:column;gap:5px}
  .overview-bottom .actions a{margin:0}
  .question-preview b{white-space:nowrap;font-size:26px;flex-shrink:0}
}
