/* Phase 1: location-first discovery, with the existing CardDecode palette. */
[hidden]{display:none!important}
.preview-ribbon{padding:7px 18px;background:#fff2d6;color:#724d04;text-align:center;font-size:12px;font-weight:800}
.preview-results{font-weight:800;color:var(--text);margin:5px 0 22px}
.portal-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr;place-items:center;min-height:580px;padding:76px 24px;overflow:hidden;background:#254567}
.portal-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#071c37bd 0%,#09203f9e 48%,#09203f67 100%)}
.hero-background{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.portal-hero .hero-copy{width:min(100%,950px);padding:0;text-align:center;align-self:center}
.portal-hero .hero-copy h1{max-width:none;margin:0 auto 14px;color:#fff;font-size:clamp(44px,5vw,70px);line-height:1.08;text-shadow:0 3px 16px #071c3780}
.portal-hero .hero-copy .kicker{color:#d4e8ff;letter-spacing:.19em}
.portal-hero .hero-copy>p:not(.kicker){max-width:700px;margin:0 auto;color:#f0f6ff;font-size:18px;text-shadow:0 2px 12px #071c3780}
.hero-search{align-items:stretch;max-width:760px;margin:30px auto 0;box-shadow:0 18px 45px #071c376b}
.hero-actions{justify-content:center;margin-top:18px}
.hero-actions a{color:#fff;text-decoration:underline;text-decoration-color:#c7ddff;text-underline-offset:4px}
.mobile-menu summary{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#f3f7ff}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.hamburger{display:grid;gap:4px;width:20px}
.hamburger span{display:block;width:20px;height:2px;border-radius:2px;background:var(--blue)}
.mobile-menu[open] .hamburger span:first-child{transform:translateY(6px) rotate(45deg)}
.mobile-menu[open] .hamburger span:nth-child(2){opacity:0}
.mobile-menu[open] .hamburger span:last-child{transform:translateY(-6px) rotate(-45deg)}
.hero-search select,.directory-search select{max-width:165px;min-width:145px;border:0;border-right:1px solid var(--line);padding:0 10px;background:#fff;color:var(--navy);font-weight:800;outline-color:var(--blue);cursor:pointer}
.hero-search input,.directory-search input{width:100%}
.journey{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);align-items:center;gap:clamp(25px,5vw,75px);padding-top:82px;padding-bottom:78px}
.journey-visual{background:#dfeaf9;border-radius:28px;overflow:hidden;box-shadow:0 24px 55px #102b5219}
.journey-visual img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.journey-copy h2{font-size:clamp(33px,3.6vw,52px);line-height:1.09;letter-spacing:-.045em;margin:0 0 25px}
.journey-list{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:0}
.journey-list li{display:flex;gap:20px;padding:18px 0;border-top:1px solid var(--line)}
.journey-list li:last-child{border-bottom:1px solid var(--line)}
.journey-number{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:#e5efff;color:var(--blue);font-size:14px;font-weight:900}
.journey-list h3{font-size:21px;letter-spacing:-.025em;margin:0 0 5px}
.journey-list p{color:var(--text);margin:0}
.journey-list mark{background:#ddf8e8;color:#0b7049;border-radius:5px;padding:1px 4px;font-weight:800;box-decoration-break:clone}
.popular-section{padding-top:55px;padding-bottom:58px}
.popular-section+.popular-section{border-top:1px solid var(--line)}
.directory-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.directory-card{display:flex;align-items:center;gap:14px;min-width:0;min-height:118px;padding:14px;background:#fff;border:1px solid #d9e5f2;border-radius:16px;color:var(--navy);text-decoration:none;box-shadow:0 12px 27px #173d7410;transition:transform .18s,box-shadow .18s,border-color .18s}
.directory-card:hover,.directory-card:focus-visible{transform:translateY(-3px);box-shadow:0 20px 35px #173d7420;border-color:#91b8ec}
.directory-card img,.directory-card-icon{width:82px;height:82px;flex:none;object-fit:cover;border-radius:11px;background:#e5efff}
.directory-card-icon{display:grid;place-items:center;color:var(--blue);font-size:25px}
.directory-card-copy{display:flex;flex-direction:column;min-width:0;gap:4px}
.directory-card-copy strong{font-size:15px;line-height:1.25}
.directory-card-copy small{font-size:12px;color:#506887;font-weight:800}
.directory-card-copy em{font-size:11px;color:#657b94;font-style:normal}
.directory-card-arrow{margin-left:auto;align-self:start;color:var(--blue);font-weight:900}
.section-link{text-align:center;margin-top:27px}
.section-link a{display:inline-flex;align-items:center;gap:12px;color:var(--navy);font-weight:850;text-decoration:none}
.section-link span{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:var(--blue);color:white}
.compare-band{background:#eaf2ff;padding:75px 0}
.compare-band .section-heading{text-align:center;max-width:700px;margin:0 auto 30px}
.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.compare-grid article{display:flex;flex-direction:column;min-height:255px;padding:29px;background:#fff;border:1px solid #d3e2f5;border-radius:17px;box-shadow:0 12px 27px #173d740b}
.compare-grid article>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#e6f0ff;color:var(--blue);font-size:25px;font-weight:800}
.compare-grid h3{font-size:21px;line-height:1.25;margin:17px 0 8px}
.compare-grid p{color:var(--text);margin:0 0 15px}
.compare-grid a{margin-top:auto;font-weight:850;text-decoration:none}
.faq-section{max-width:940px;padding-top:75px;padding-bottom:20px}
.faq-list{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}
.faq-list details+details{border-top:1px solid var(--line)}
.faq-list summary{cursor:pointer;padding:19px 23px;font-weight:800;list-style:none;display:flex;justify-content:space-between;gap:15px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:'+';color:var(--blue);font-size:23px;line-height:1}
.faq-list details[open] summary:after{content:'−'}
.faq-list details p{color:var(--text);margin:0;padding:0 23px 23px;max-width:760px}
.directory-hero{min-height:380px;display:flex;align-items:center;padding:50px 0;background-color:#1868d7;background-image:linear-gradient(180deg,#055ccaca,#0759c744),url('airport-directory-banner.webp');background-position:center;background-size:cover;text-align:center}
.directory-hero.rail-theme{background-color:#1868d7;background-image:linear-gradient(180deg,#0657c3aa,#075ac648),url('railway-directory-banner.webp');background-position:center;background-size:cover}
.directory-hero:after{display:none}
.directory-hero h1{font-size:clamp(37px,4.7vw,63px);max-width:none;color:white;text-shadow:0 2px 15px #06408455}
.directory-hero p:not(.kicker),.directory-hero .kicker{color:#fff}
.directory-search{max-width:760px;margin:28px auto 0}
.directory-body{padding-top:27px}
.directory-list-section{padding:15px 0 58px}
.directory-list-section+.directory-list-section{border-top:1px solid var(--line);padding-top:55px}
.directory-list-section .section-heading{margin-bottom:27px}
.directory-list-section .section-heading h2{font-size:clamp(30px,3.5vw,44px)}
.clear-search{margin-top:25px;font-weight:800}
.place-city-photo{margin:0 0 0 auto;width:250px;background:#fff;padding:17px;border-radius:18px;box-shadow:0 22px 45px #173d741a;text-align:center}
.place-city-photo img{display:block;width:170px;height:170px;object-fit:cover;border-radius:12px;box-shadow:none;margin:auto}
.place-city-photo figcaption{font-size:11px;color:#637b95;padding:10px 4px 0}
@media(max-width:1000px){.directory-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journey{gap:30px}}
@media(max-width:700px){.portal-hero{min-height:540px;padding:55px 18px}.hero-background{object-position:58% center}.portal-hero .hero-copy h1{font-size:clamp(39px,9vw,54px)}.portal-hero .hero-copy>p:not(.kicker){font-size:16px}.hero-search,.directory-search{flex-direction:column}.hero-search select,.directory-search select{max-width:none;min-width:0;width:100%;height:44px;border-right:0;border-bottom:1px solid var(--line)}.hero-search button,.directory-search button{width:100%}.journey{grid-template-columns:1fr;padding-top:55px;padding-bottom:46px}.journey-visual{max-width:420px;width:100%;margin:auto}.journey-copy h2{font-size:36px}.popular-section{padding-top:35px;padding-bottom:44px}.directory-card-grid,.compare-grid{grid-template-columns:1fr}.directory-card{min-height:100px}.directory-card img,.directory-card-icon{width:72px;height:72px}.compare-band{padding:55px 0}.compare-grid article{min-height:0}.faq-section{padding-top:55px}.directory-hero{min-height:330px;padding:35px 0}.directory-hero h1{font-size:41px}.directory-list-section{padding-bottom:42px}.place-city-photo{max-width:220px;margin:0 auto}.place-city-photo img{height:150px;width:150px}}
