/* Main portal only. Authentication, administrator and legal-page themes are independent. */
:root{color-scheme:light;--bg:#f9fcff;--surface:#fff;--border:#d8e5ee;--text:#16364c;--muted:#536c7d;--accent:#1468ca;--font:system-ui,-apple-system,"Segoe UI",sans-serif;font:16px/1.6 var(--font);color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse 650px 520px at 95% 20%,#fff0da70,transparent),linear-gradient(#eaf7ff 0,#f9fcff 780px,#fff 1500px);min-height:100vh}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px solid #c6d9e7;border-radius:12px;padding:10px 18px;background:white;color:var(--text);font-weight:650;text-decoration:none;line-height:1.5}button:hover,.button:hover{background:#eef6fd;border-color:#8bb6d8}button:disabled{opacity:.55;cursor:wait}.primary,button.primary,.button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.primary:hover,.button.primary:hover{background:#0c55aa;border-color:#0c55aa}input,select,textarea{min-height:48px;min-width:0;border:1px solid #c6d9e7;border-radius:10px;padding:12px;background:#f8fbfe;color:var(--text)}input::placeholder,textarea::placeholder{color:#627b8d}textarea{width:100%;min-height:110px;resize:vertical}:focus-visible{outline:3px solid #1468ca;outline-offset:4px}h1,h2,h3,p{margin-top:0}p{line-height:1.75}h2{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.4;letter-spacing:-.045em}h3{font-size:1.18rem;line-height:1.5;letter-spacing:-.025em}.muted,small{font-size:.875rem;color:var(--muted);line-height:1.7}.eyebrow{font-size:.875rem;font-weight:750;letter-spacing:.02em;color:#0b6697;margin-bottom:16px}.text-link{font-size:.9375rem;color:#125faf;font-weight:650}.skip{position:fixed;top:-100px;z-index:99;background:var(--accent);color:white;padding:12px 18px}.skip:focus{top:8px}
.header{max-width:1360px;min-height:96px;margin:auto;padding:18px 40px;display:flex;align-items:center;gap:52px}.brand{display:inline-flex;align-items:center;gap:12px;font-size:1.25rem;font-weight:800;letter-spacing:.12em;text-decoration:none;white-space:nowrap}.brand img{object-fit:contain}.brand b{color:#147885;font-weight:600}.header nav{flex:1;display:flex;justify-content:center;gap:32px;flex-wrap:wrap}.header nav a{font-size:.9375rem;font-weight:600;text-decoration:none;color:#4b657a;padding:8px 0}.header nav a:hover,.header nav a[aria-current=page]{color:#0d60b8}.header nav a[aria-current=page]{box-shadow:0 2px #1468ca}.account{max-width:230px;overflow-wrap:anywhere;border:1px solid #aac5d9;border-radius:24px;padding:8px 22px;text-decoration:none;font-size:.875rem;font-weight:650;background:#ffffffa8}
main{max-width:1280px;margin:auto;padding:16px 0 64px;min-height:70vh}.intro{display:grid;grid-template-columns:1.08fr 1fr;align-items:center;gap:32px;padding:34px 36px 68px;border-radius:32px;background:linear-gradient(100deg,#eff9ffed,#eff9ffd9),url('/brand/travel-atmosphere.jpg') center/cover;min-width:0}.intro-copy{min-width:0;padding:6px 0 12px}h1{font-size:clamp(2.1rem,3.7vw,3.3rem);letter-spacing:-.065em;line-height:1.28;font-weight:780;margin:0 0 24px}h1 em{font-style:normal;color:#087584}.lead{font-size:1rem;line-height:1.8;color:#48667a;margin-bottom:24px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-note{font-size:.875rem;color:#557286;margin:20px 0 0}.cover{position:relative;min-width:0;margin:0;border:7px solid white;border-radius:80px 24px 24px 24px;background:white;box-shadow:0 18px 44px #2e6b951a;overflow:hidden}.cover>img{width:100%;height:275px;object-fit:cover;display:block;background:#c9e6f9}.cover-tag{position:absolute;top:22px;right:18px;padding:6px 12px;border-radius:24px;background:#fffbed;color:#634b24;font-size:.75rem;font-weight:700}.cover figcaption{padding:14px 16px 10px}.cover-caption{display:flex;justify-content:space-between;align-items:center;gap:12px}.cover-caption strong{display:block;font-size:1.2rem;letter-spacing:-.04em}.cover-caption small{color:#536c7d}.cover-caption button{flex:none;border:0;border-radius:50px;background:#eaf5ff;font-size:.875rem;color:#105baa;padding:8px 13px}.photo-credit{display:block;font-size:.75rem;color:#607485;line-height:1.7;margin-top:12px}.search-box{position:relative;margin:-30px 28px 48px;padding:24px 28px 18px;border:1px solid #d3e5f1;border-radius:20px;background:white;box-shadow:0 14px 38px #2d729512}.intro[hidden]+.search-box{margin-top:12px}.search-box label{display:block;font-size:1.05rem;font-weight:750;margin-bottom:14px}.search-line{display:grid;grid-template-columns:205px minmax(0,1fr) auto;gap:12px}.search-line input{background:#f6faff}.search-line button{padding-left:26px;padding-right:26px}.search-box p{margin:12px 0 0}.search-box select{background:white}
#page{padding:0 28px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:38px 0 22px}.section-head h2,.section-head p{margin-bottom:6px}.section-head .eyebrow{font-size:.8125rem;color:#117790}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.route-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.place-card,.route-card{min-width:0;border:1px solid var(--border);border-radius:20px;background:white;padding:24px}.place-card{display:flex;flex-direction:column;box-shadow:0 8px 22px #30698408}.place-card h3{margin:16px 0 10px}.place-card p{font-size:.9375rem;color:var(--muted);flex:1}.place-card .meta{font-size:.8125rem;color:#116780;font-weight:650}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.actions button,.actions a{font-size:.875rem;padding:10px 13px}.route-card{display:flex;flex-direction:column;position:relative;background:#edf7ff;border-color:#d2e7f6;padding:24px 22px}.route-card:nth-child(4n+2){background:#eaf9f5;border-color:#ccebe3}.route-card:nth-child(4n+3){background:#fff5e8;border-color:#f2e0c9}.route-card:nth-child(4n+4){background:#f0f1ff;border-color:#dfe1f6}.route-card .route-number{width:44px;height:44px;display:grid;place-items:center;border:1px solid #fff;border-radius:14px;background:#ffffffd9;color:#25648b;font-size:1.15rem;font-weight:750;margin-bottom:24px}.route-card .route-meta{font-size:.8125rem;color:#4e697c;margin-bottom:7px}.route-card h3{margin:0 0 12px;font-size:1.14rem}.route-card p:not(.route-meta){font-size:.9375rem;color:#496476;flex:1}.route-card .actions{margin-top:20px}.route-card .actions button{width:100%;background:white;color:#204f71;border-color:#bfd6e5}.route-card .actions button:hover{background:#163e60;color:white;border-color:#163e60}.route-card small{font-size:.8125rem}.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:26px;padding:20px;background:#edf6fc;border-radius:16px}.filters label{display:grid;gap:7px;font-size:.875rem;font-weight:600}.filters select{min-width:160px;background:white}.chips{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 24px}.chips button{border-radius:50px;padding:9px 20px;font-size:.875rem}.chips button[aria-pressed=true]{background:#1468ca;color:white;border-color:#1468ca}.empty{padding:30px;border:1px dashed #a6c4d9;border-radius:18px;background:#f1f8fd;color:#4d6579;line-height:1.8}.empty p:last-child{margin-bottom:0}.journey{padding:28px;border:1px solid var(--border);border-radius:24px;background:white}.journey h3{font-size:1.8rem;margin:16px 0}.journey progress{width:100%;height:8px;accent-color:#1468ca}.journey .steps{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.journey .steps button[aria-current=step]{background:#e6f3ff;border-color:#1468ca;color:#105baa}.notes{max-width:820px;line-height:1.9}.notes h3{margin-top:30px}.notes a{color:#1263b0}#notice{position:sticky;bottom:16px;z-index:2;margin:20px auto 0;max-width:720px;border-radius:12px;background:#e6f4ff;color:#173d5d;padding:0 18px}#notice:not(:empty){padding:14px 18px;border:1px solid #a8cbe5;box-shadow:0 5px 22px #20547717}
.travel-portal footer.company-footer{max-width:1280px;padding:32px 28px 36px;border-color:#d7e5ed;color:#526a7b;background:transparent}.travel-portal .company-footer .footer-brand{color:#16364c}.travel-portal .company-footer .footer-brand b{color:#117886}.travel-portal .company-details{border-color:#d7e5ed}.travel-portal .company-footer a:focus-visible{outline-color:#1468ca}.travel-portal .company-footer nav a:hover{color:#1468ca}dialog{width:min(620px,calc(100vw - 24px));max-height:85dvh;overflow:auto;border:1px solid #b7cfdc;border-radius:24px;padding:26px;background:white;color:var(--text);box-shadow:0 24px 100px #13314c33}dialog::backdrop{background:#16395280}.dialog-top{display:flex;justify-content:flex-end;margin-bottom:16px}#detail-title{font-size:1.85rem;margin:14px 0}dialog label{display:block;margin:20px 0 8px}dialog .detail-photo{width:100%;height:auto;border-radius:14px}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}
@media(max-width:1360px){main{margin:0 28px}.header{padding-left:28px;padding-right:28px}}
@media(max-width:1050px){.intro{padding:28px 26px 60px;gap:24px;grid-template-columns:1fr 1fr}h1{font-size:2.5rem}.cover>img{height:250px}.route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cover-caption{align-items:flex-start;flex-direction:column}.header{gap:24px}.header nav{gap:20px}.brand{font-size:1.1rem}}
@media(max-width:760px){.header{padding:16px 20px;gap:18px;flex-wrap:wrap;justify-content:space-between}.header nav{flex-basis:100%;order:3;justify-content:space-between;gap:12px;border-top:1px solid #cfe1ed;padding-top:12px}.header nav a{font-size:.875rem}.account{margin-left:auto}.brand img{width:40px;height:40px}.intro{grid-template-columns:1fr;padding:28px;border-radius:24px}.cover>img{height:250px}.cover-caption{align-items:center;flex-direction:row}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-line{grid-template-columns:minmax(0,1fr) auto}.search-line select{grid-column:1/-1}.search-box{margin:20px 0 30px}#page{padding:0}.section-head{align-items:flex-start}.section-head>a{flex-shrink:0}.travel-portal footer.company-footer{margin:0 24px;padding:28px 0}.company-footer-top{flex-direction:column;align-items:flex-start}.hero-note{margin-top:14px}}
@media(max-width:520px){main{margin:0 16px;padding-top:8px;display:flex;flex-direction:column}.intro:not([hidden]){display:contents}.intro-copy{order:0;padding:24px 12px 0;margin-bottom:8px}.intro-copy h1{font-size:clamp(2rem,8.3vw,2.7rem)}.hero-actions .button{font-size:.875rem;flex:1;padding:10px}.hero-note{font-size:.8125rem}.search-box{order:1;margin:22px 0;padding:20px}.cover{order:2;margin:0 0 18px;border-radius:52px 20px 20px 20px}.cover>img{height:230px}#page{order:3}#notice{order:4}.search-line{grid-template-columns:minmax(0,1fr)}.search-line button{width:100%}.grid{grid-template-columns:1fr}.section-head{flex-direction:column;gap:10px;margin-top:30px}.filters{padding:16px}.filters label{flex:1;min-width:0}.filters select{width:100%;min-width:0}.place-card,.route-card{padding:22px}.route-card .route-number{margin-bottom:18px}.actions button,.actions .button{flex:1}.journey{padding:20px}.travel-portal footer.company-footer{margin:0 18px}.travel-portal .company-footer nav{gap:10px 16px}.brand{font-size:1rem}.account{padding:7px 16px}.cover-caption strong{font-size:1.1rem}}
.route-photo-card{isolation:isolate;overflow:hidden;min-height:410px;padding:0!important;background:#183b53!important;border-color:#d3e2ec!important;box-shadow:0 9px 24px #163b531a}.route-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.route-photo-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#09223810 0%,#071d32bd 24%,#071d32f0 75%,#071d32fc 100%);z-index:-1}.route-card-content{display:flex;flex-direction:column;flex:1;padding:24px 22px}.route-photo-card .route-number{background:#fff;color:#174c6e;margin-bottom:50px}.route-photo-card h3{color:#fff;font-size:1.2rem}.route-photo-card .route-meta,.route-photo-card p:not(.route-meta),.route-photo-card small{color:#e3edf5}.route-photo-card .route-meta{font-size:.875rem}.route-photo-card .route-card-content>p:not(.route-meta){flex:1}.route-photo-card .actions button{background:white;border-color:white;color:#164d70}.route-credit{margin-top:14px;color:#deebf4;font-size:.75rem;line-height:1.65}.route-credit summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:28px;padding:3px 0}.route-credit p{font-size:.75rem!important;line-height:1.65;margin:8px 0 0;overflow-wrap:anywhere}.route-credit a:focus-visible,.route-photo-card button:focus-visible{outline-color:#fff;outline-offset:3px}
@media(max-width:520px){.route-photo-card{min-height:390px}.route-card-content{padding:24px}.route-photo-card .route-number{margin-bottom:64px}}
.place-photo-card{position:relative;isolation:isolate;overflow:hidden;min-height:370px;padding:0;background:#183b53}.place-background{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}.place-photo-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#071d3220 0%,#071d32bb 34%,#071d32f2 80%,#071d32fc 100%)}.place-photo-content{display:flex;flex-direction:column;flex:1;padding:24px}.place-photo-card .meta{align-self:flex-start;padding:5px 10px;border-radius:20px;background:#fff;color:#174c6e;font-size:.875rem;margin-bottom:54px}.place-photo-card h3{color:#fff;font-size:1.3rem;margin:0 0 12px}.place-photo-card .place-photo-content>p{color:#e8f1f7;font-size:1rem;flex:1}.place-photo-card .actions button,.place-photo-card .actions .button{background:#fff;color:#164d70;border-color:#fff}.place-photo-card .actions button:hover,.place-photo-card .actions .button:hover{background:#dfedf8;color:#12364f}.place-credit{margin-top:14px;color:#deebf4;font-size:.75rem;line-height:1.65}.place-credit summary{cursor:pointer;min-height:28px;padding:3px 0;text-decoration:underline;text-underline-offset:3px}.place-credit p{font-size:.75rem;color:#e8f1f7;line-height:1.65;margin:8px 0 0;overflow-wrap:anywhere}.place-photo-card :focus-visible{outline-color:white;outline-offset:3px}
@media(forced-colors:active){.place-photo-card{background:Canvas}.place-background,.place-photo-card::before{display:none}.place-photo-card h3,.place-photo-card p,.place-credit{color:CanvasText!important}.place-photo-card .actions button,.place-photo-card .actions .button{border:1px solid ButtonText}}
@media(prefers-reduced-motion:no-preference){button,.button,.header nav a{transition:background-color .15s,color .15s,border-color .15s}}
@media(forced-colors:active){body,.intro,.search-box,.route-card,.place-card,.filters,dialog{background:Canvas;color:CanvasText;box-shadow:none;border-color:CanvasText}h1 em,.eyebrow,.text-link{color:LinkText}.cover-tag{background:Canvas;color:CanvasText}.primary{border:1px solid ButtonText}.route-photo-card{background:Canvas!important}.route-background,.route-photo-card::before{display:none}.route-photo-card h3,.route-photo-card p,.route-photo-card small,.route-credit{color:CanvasText!important}.route-photo-card .actions button{border:1px solid ButtonText}}
.place-media{margin:0;min-width:0;overflow:hidden;border:1px solid #d4e3ee;border-radius:18px;background:#f2f8fc}.place-media>img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:#e1eef6}.place-media figcaption{padding:12px 16px;color:#526c7d;font-size:.8125rem;line-height:1.6}.place-media figcaption strong{font-weight:600}.place-media details{margin-top:6px}.place-media summary{cursor:pointer;min-height:28px;text-decoration:underline;text-underline-offset:3px}.place-media details p{margin:8px 0 0;font-size:.8125rem;overflow-wrap:anywhere}.place-media a{color:#1263b0}.place-media-empty{padding:20px;border:1px dashed #adc8db;border-radius:14px;background:#f3f8fc;color:#526c7d;font-size:.875rem;align-self:start}.journey-scene{display:grid;grid-template-columns:1fr 1.1fr;gap:32px;align-items:center}.journey-copy{min-width:0}.journey-copy>.muted:last-child{margin-top:16px;margin-bottom:0}#detail-content>.place-media{margin-bottom:22px}#detail-content>.place-media img{max-height:270px}.place-media-unavailable{padding:12px}.journey .place-media{align-self:start}
@media(max-width:800px){.journey-scene{grid-template-columns:1fr;gap:24px}.journey-scene>.place-media{grid-row:1}.journey .place-media>img{max-height:330px}#detail-content>.place-media img{max-height:230px}}
.place-media.place-media-portrait>img{object-fit:contain;aspect-ratio:auto;height:320px}
@media(forced-colors:active){.place-media,.place-media-empty{background:Canvas;color:CanvasText;border-color:CanvasText}.place-media figcaption{color:CanvasText}}
.intro:has(#cover-media[hidden]){grid-template-columns:1fr}
.cover .place-media{margin:0;border:0;border-radius:0}.cover .cover-caption{padding:0 20px 18px}
