/* /site.css */
@font-face{font-family:Manrope;src:url('/Manrope.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{--ink:#132e3b;--muted:#596e78;--teal:#096c65;--teal-dark:#064c48;--teal-soft:#e6f2ef;--blue:#1a8aa5;--green:#16815b;--gold:#c69245;--sand:#f5efe5;--paper:#fcfcf9;--white:#fff;--line:#dce5e3;--radius:20px;--shadow:0 12px 36px rgba(20,52,58,.07);--shell:1220px;--header-height:82px;font-synthesis:none;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.7 Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}body::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--blue) 0 32%,#f7f8f2 32% 64%,var(--green) 64% 100%)}img,svg{max-width:100%}img{display:block}button,input,select,textarea{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.6}a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--teal-dark)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #dbab63;outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,h4,p,figure{margin-top:0}h1,h2,h3,h4{font-weight:700;line-height:1.2;letter-spacing:-.045em}h1{font-size:clamp(38px,5.2vw,64px)}h2{font-size:clamp(28px,3.3vw,41px)}h3{font-size:22px}h4{font-size:18px}p{margin-bottom:1.15em}ul,ol{padding-left:1.25rem}li+li{margin-top:.45rem}::selection{background:#cfe7df;color:#123f39}.shell{width:min(calc(100% - 64px),var(--shell));margin-inline:auto}.skip-link{position:fixed;z-index:1000;left:20px;top:15px;padding:12px 18px;background:white;transform:translateY(-180%);border:1px solid var(--teal);border-radius:8px}.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;z-index:100;top:0;background:rgba(252,252,249,.96);border-bottom:1px solid rgba(220,229,227,.9);backdrop-filter:blur(16px)}.site-header>.shell{min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;flex-shrink:0;font-weight:800;font-size:19px;line-height:1.25;letter-spacing:-.045em}.brand:hover{color:var(--ink)}.brand img,.brand svg,.brand-mark{flex:none;width:34px;height:28px;border-radius:5px;object-fit:cover}.brand strong{display:block;font:inherit}.brand small,.brand-subtitle{display:block;margin-top:4px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--muted)}.nav-links{display:flex;align-items:center;gap:6px}.nav-links a{display:block;padding:11px 13px;text-decoration:none;color:#405863;font-size:13px;font-weight:600;border-radius:10px;white-space:nowrap;transition:background .2s,color .2s}.nav-links a:hover,.nav-links a[aria-current=page],.nav-links a.active{background:var(--teal-soft);color:var(--teal-dark)}.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);align-items:center;justify-content:center;font-size:24px;line-height:1}.menu-toggle svg{width:23px;height:23px}.menu-toggle[aria-expanded=true]{background:var(--teal-soft);color:var(--teal)}
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:620px;display:flex;align-items:center;margin-top:24px;border-radius:26px;background:#1c4652;color:white}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}.hero-image img{width:100%;height:100%;object-fit:cover}.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,29,39,.81),rgba(11,35,45,.61) 44%,rgba(11,35,45,.08) 80%),linear-gradient(0deg,rgba(6,24,34,.24),transparent 60%)}.hero-content{position:relative;width:min(760px,100%);padding:70px 64px 76px}.eyebrow,.section-kicker{display:block;margin-bottom:14px;font-size:11px;line-height:1.5;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}.hero .eyebrow{color:#f4dfb9}.hero-title,.hero h1{color:white;font-size:clamp(40px,5.5vw,68px);line-height:1.08;letter-spacing:-.055em;margin-bottom:24px;text-wrap:balance}.hero-copy{max-width:540px;color:#f1f6f5;font-size:17px;line-height:1.8;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hero .btn-primary{background:#fff;color:var(--teal-dark);border-color:white}.hero .btn-primary:hover{background:#f5e9d4;border-color:#f5e9d4;color:var(--ink)}.hero .btn-secondary{background:rgba(17,45,55,.2);border-color:rgba(255,255,255,.5);color:white;backdrop-filter:blur(6px)}.hero .btn-secondary:hover{background:rgba(255,255,255,.16);border-color:white}.hero .ad-note,.hero .source{color:#e2ebe9}.hero .ad-note a,.hero .source a{color:inherit}.hero-caption{position:absolute;bottom:18px;right:22px;max-width:270px;font-size:10px;color:white;background:rgba(7,29,39,.58);padding:7px 10px;border-radius:6px;line-height:1.4}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:49px;padding:13px 23px;border:1px solid transparent;border-radius:11px;font-size:13px;font-weight:800;line-height:1.5;text-decoration:none;text-align:center;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--teal);color:white;border-color:var(--teal)}.btn-primary:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:white;box-shadow:0 8px 20px rgba(9,108,101,.15)}.btn-secondary{background:white;color:var(--ink);border-color:#cddbd7}.btn-secondary:hover{background:var(--teal-soft);border-color:#9dc7bc;color:var(--teal-dark)}.btn-small{min-height:41px;padding:10px 16px;font-size:12px}.link-arrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;text-decoration:none}.link-arrow::after{content:"→";transition:transform .2s}.link-arrow:hover::after{transform:translateX(4px)}
.search-hub{position:relative;z-index:2;margin-top:26px;padding:26px 30px 28px;background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.search-hub>h2{font-size:24px;margin-bottom:8px}.search-hub>p{font-size:13px;color:var(--muted)}.tab-list{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:22px}.tab-list [role=tab],.tab-list button{border:1px solid transparent;border-radius:9px;padding:11px 18px;background:#f2f6f4;color:#435e66;font-size:13px;font-weight:700;line-height:1.4;transition:background .2s,color .2s}.tab-list [role=tab]:hover{background:var(--teal-soft);color:var(--teal)}.tab-list [role=tab][aria-selected=true],.tab-list button.active{background:var(--teal);border-color:var(--teal);color:white}.search-panel{min-width:0}.search-panel h3{margin-bottom:10px;font-size:21px}.search-panel>p{color:var(--muted);max-width:850px;font-size:14px}.search-panel .widget-mount{margin-top:18px}.widget-mount{width:100%;min-width:0;max-width:100%;overflow-x:auto;border-radius:12px;scrollbar-width:thin}.widget-mount iframe{max-width:100%;border:0}.widget-mount:empty{display:none}.widget-status{font-size:12px;margin:12px 0;color:var(--muted)}.widget-status[data-error=true]{color:#9b392b}.widget-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}.search-panel .notice{margin-top:20px}.ad-note{margin:10px 0 0;color:#6b7c82;font-size:10px;line-height:1.65;overflow-wrap:anywhere}.ad-note a{color:inherit}.source{display:block;margin-top:14px;color:#6d7c80;font-size:11px;line-height:1.7}.source a{color:var(--teal);text-decoration-thickness:1px}.widget-fallback{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:16px}
.section{padding-block:72px}.section+.section{border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.section-heading>div{max-width:800px}.section-heading h2{margin-bottom:12px}.section-heading p{max-width:720px;color:var(--muted);font-size:15px;margin-bottom:0}.section-heading>.link-arrow,.section-heading>.btn{flex:none;margin-bottom:5px}.section-kicker{margin-bottom:10px;color:var(--teal)}.lead{max-width:820px;color:var(--muted);font-size:17px;line-height:1.85}.page-intro{padding-top:48px;padding-bottom:28px}.page-intro h1{max-width:970px;margin-bottom:20px;line-height:1.14}.page-intro .lead{max-width:900px}.page-intro+.section{padding-top:32px}.breadcrumbs{display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding:27px 0 0;color:#77898f;font-size:11px}.breadcrumbs a{color:#647e83;text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs+.page-intro{padding-top:29px}.stats{display:flex;flex-wrap:wrap;gap:0;margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{min-width:140px;flex:1;padding:19px 24px 19px 0}.stat+.stat{padding-left:24px;border-left:1px solid var(--line)}.stat strong{display:block;font-size:22px;line-height:1.3;letter-spacing:-.035em}.stat span,.stat small{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}.place-card,.hotel-card{min-width:0;position:relative;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:0 2px 3px rgba(15,48,56,.02);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.place-card:hover,.hotel-card:hover{transform:translateY(-5px);box-shadow:0 14px 35px rgba(22,67,71,.11);border-color:#bfd1cb}.card-image{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:#dbe8e4}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}img.card-image{width:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.place-card:hover .card-image img,.hotel-card:hover .card-image img{transform:scale(1.035)}.card-image .tag{position:absolute;top:15px;left:15px;background:rgba(255,255,255,.94);backdrop-filter:blur(5px);color:var(--teal-dark)}.card-body{padding:24px;display:flex;flex:1;flex-direction:column;align-items:flex-start;min-width:0}.card-body h3{margin:10px 0 12px;font-size:22px;line-height:1.3}.card-body h3 a{color:var(--ink);text-decoration:none}.card-body p{color:var(--muted);font-size:13px;line-height:1.8}.card-body .card-link{margin-top:auto;padding-top:9px}.card-link{font-size:12px;font-weight:800;text-decoration:none}.card-link:hover{text-decoration:underline}.tag{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:7px;background:var(--teal-soft);color:var(--teal-dark);font-size:10px;font-weight:800;line-height:1.5;letter-spacing:.015em}.tag-gold{background:#f6ecdb;color:#83602c}.tag-outline{background:transparent;border:1px solid #c9d9d3;color:var(--muted)}.tag-list{display:flex;gap:6px;flex-wrap:wrap}.card-meta{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 13px;font-size:11px;color:var(--muted)}.card-meta span+span::before{content:"·";margin-right:12px;color:#a4b3b4}.card-body .ad-note{margin-top:12px;font-size:9px}.card-body .source{font-size:10px}.card-note{font-size:11px;color:var(--muted);margin-top:19px}.card-body dl{width:100%;font-size:12px;margin:2px 0 18px}.card-body dt{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#758b8d;padding-top:12px;border-top:1px solid var(--line)}.card-body dd{margin:5px 0 12px;color:#36525c}.card-body .btn{width:100%;margin-top:auto}.card-body .btn+.ad-note{margin-top:9px}
.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.feature-card{position:relative;overflow:hidden;min-width:0;padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:white;transition:transform .3s,box-shadow .3s,border-color .3s}.feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#b7d0c6}.feature-card h3{margin-bottom:13px}.feature-card p{color:var(--muted);font-size:14px;line-height:1.85}.feature-card>:last-child{margin-bottom:0}.feature-card .section-kicker{font-size:10px}.feature-card .card-image{margin:-30px -30px 25px;aspect-ratio:16/9}.feature-card .card-image img{width:100%;height:100%;object-fit:cover}.feature-card .btn{margin-top:9px}.feature-card .source{font-size:10px}.feature-card.is-warm{background:var(--sand);border-color:#e8dfd0}.feature-card.is-teal{background:var(--teal-soft);border-color:#cfdfd7}.split{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);gap:54px;align-items:center}.photo-panel{position:relative;min-width:0;overflow:hidden;border-radius:var(--radius);background:#dce8e3;aspect-ratio:5/4}.photo-panel img{width:100%;height:100%;object-fit:cover}.photo-panel figcaption,.photo-panel .photo-caption{position:absolute;left:16px;right:16px;bottom:16px;border-radius:8px;padding:10px 13px;background:rgba(9,35,44,.76);font-size:11px;line-height:1.5;color:white}.photo-panel figcaption a{color:inherit}.prose{max-width:78ch}.prose h2{margin-top:1.7em;margin-bottom:.65em;font-size:30px}.prose h3{margin-top:1.5em;margin-bottom:.65em}.prose p,.prose li{font-size:15px;line-height:1.9;color:#4b6570}.prose strong{color:var(--ink)}.prose>h2:first-child,.prose>h3:first-child{margin-top:0}.prose p:last-child{margin-bottom:0}.prose .source{font-size:11px}.prose .notice p{font-size:13px}.prose .btn{margin-top:8px}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:start}.article-layout .prose{max-width:none}.toc{position:sticky;top:calc(var(--header-height) + 25px);padding:24px;border:1px solid var(--line);border-radius:16px;background:white}.toc a{display:block;padding:9px 0;text-decoration:none;font-size:12px;line-height:1.6;border-bottom:1px solid #edf1ef}.toc a:last-child{border:0}.article-block{padding:30px;border:1px solid var(--line);background:white;border-radius:var(--radius);margin-bottom:24px}
.filters{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:26px}.filters button,[data-route-tabs] button{border:1px solid #d2dfd9;border-radius:999px;background:white;color:#49636b;padding:10px 17px;font-size:12px;font-weight:700;line-height:1.5;transition:background .2s,border-color .2s,color .2s}.filters button:hover,[data-route-tabs] button:hover{background:var(--teal-soft);color:var(--teal)}.filters button[aria-pressed=true],.filters button.active,[data-route-tabs] button[aria-selected=true],[data-route-tabs] button[aria-pressed=true],[data-route-tabs] button.active{background:var(--teal);border-color:var(--teal);color:white}.filters label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#46606a}.filters select{min-width:190px;max-width:100%;min-height:45px;border:1px solid #c9d8d2;border-radius:9px;padding:10px 36px 10px 13px;background-color:white;color:var(--ink);font-size:12px}.filter-controls{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-bottom:24px}.filter-controls label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;color:var(--muted)}.filter-controls select{min-width:200px;min-height:46px;padding:10px 36px 10px 13px;border:1px solid #c9d8d2;border-radius:9px;background:white;color:var(--ink);font-size:13px}.result-count,[data-result-count]{margin:0 0 22px;font-size:12px;color:var(--muted)}.empty-state{grid-column:1/-1;padding:40px 24px;border:1px dashed #bdd3c9;border-radius:16px;background:var(--teal-soft);text-align:center;color:var(--muted)}.empty-state h3{color:var(--ink);font-size:21px}.empty-state p:last-child{margin-bottom:0}
[data-route-tabs]{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:28px}.route-timeline{position:relative;display:grid;gap:0}.route-stop{position:relative;padding:0 0 29px 67px;min-height:76px}.route-stop:not(:last-child)::before{content:"";position:absolute;left:21px;top:43px;bottom:0;width:1px;background:#c5d8ce}.route-num{position:absolute;left:0;top:0;width:43px;height:43px;display:flex;align-items:center;justify-content:center;background:var(--teal-soft);color:var(--teal);border:1px solid #d3e4dd;border-radius:50%;font-size:12px;font-weight:800}.route-stop h3{padding-top:6px;margin-bottom:9px;font-size:20px}.route-stop p{margin:0;color:var(--muted);font-size:14px;line-height:1.85;max-width:830px}.route-stop .tag{margin-bottom:8px}.route-panel{padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:white}.route-panel>h3{margin-bottom:22px}.route-summary{margin:20px 0 26px;padding:16px 20px;border-left:3px solid var(--gold);background:#f8f3e9;border-radius:0 9px 9px 0;font-size:14px;line-height:1.85;color:#5b655f}.route-places{display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-size:12px;font-weight:700;color:var(--teal)}
.checklist{display:grid;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white}.checklist label{position:relative;display:flex;gap:13px;align-items:flex-start;padding:16px 20px;font-size:13px;line-height:1.8;cursor:pointer;color:#3f5b64;transition:background .2s}.checklist label+label{border-top:1px solid #e6ede9}.checklist label:hover{background:#f5f8f5}.checklist input[type=checkbox]{flex:none;width:19px;height:19px;margin:3px 0 0;accent-color:var(--teal);cursor:pointer}.checklist label:has(input:checked){background:#eef6f0;color:#567268}.checklist-progress{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);margin:12px 0 0}.checklist-reset{background:none;border:0;color:var(--teal);font-size:11px;text-decoration:underline;text-underline-offset:3px;padding:5px 0}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.info-box{padding:24px;border:1px solid var(--line);border-radius:15px;background:white;min-width:0}.info-box h3{font-size:18px;margin-bottom:11px}.info-box p,.info-box li{font-size:13px;line-height:1.85;color:var(--muted)}.info-box>:last-child{margin-bottom:0}.notice{padding:19px 22px;border-left:3px solid var(--gold);border-radius:0 12px 12px 0;background:#f7f1e7;color:#53666a;font-size:13px;line-height:1.85}.notice strong{display:block;margin-bottom:5px;color:var(--ink);font-size:14px}.notice p{margin:0}.notice p+p{margin-top:8px}.notice.is-teal{border-color:var(--teal);background:var(--teal-soft)}.notice .source{font-size:10px;margin-top:9px}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:15px;background:white;scrollbar-width:thin}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;line-height:1.8}th,td{padding:17px 20px;vertical-align:top;border-bottom:1px solid var(--line)}th{color:#49645f;background:#eef4ef;font-weight:800}td{color:var(--muted)}tr:last-child td{border-bottom:0}td:first-child{color:var(--ink);font-weight:600}td .source{font-size:10px}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.news-card{padding:24px;border:1px solid var(--line);border-radius:16px;background:white;display:flex;flex-direction:column;min-width:0}.news-card h3{font-size:17px;line-height:1.5;letter-spacing:-.025em;margin:15px 0}.news-card h3 a{color:var(--ink);text-decoration:none}.news-card>p{font-size:12px;color:var(--muted)}.news-card>p strong{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}.news-card>a:last-child{margin-top:auto;font-size:11px;font-weight:800;text-decoration:none;padding-top:12px}.news-card-meta{display:flex;gap:9px;justify-content:space-between;align-items:flex-start;color:#718487;font-size:9px}.news-source{color:var(--teal);font-weight:700}.news-footer{margin-top:22px;display:flex;gap:20px;justify-content:space-between;align-items:center}.news-status{font-size:11px;color:var(--muted)}.faq details,details.faq-item,.faqdetails{padding:20px 0;border-bottom:1px solid var(--line)}.faq summary,details.faq-item summary,.faqdetails summary{cursor:pointer;font-size:16px;font-weight:700;line-height:1.6;list-style:none;padding-right:30px;position:relative}.faq summary::-webkit-details-marker,details.faq-item summary::-webkit-details-marker,.faqdetails summary::-webkit-details-marker{display:none}.faq summary::after,details.faq-item summary::after,.faqdetails summary::after{content:"+";position:absolute;right:2px;top:0;font-size:23px;color:var(--teal);font-weight:400}.faq details[open] summary::after,details.faq-item[open] summary::after,.faqdetails[open] summary::after{content:"−"}.faq details>p,details.faq-item>p,.faqdetails>p{font-size:14px;line-height:1.9;color:var(--muted);margin:13px 35px 0 0}.faqdetails{margin-bottom:14px}.faqdetails summary{font-size:14px}
.site-footer{margin-top:30px;border-top:1px solid var(--line);background:#eef2eb;padding:48px 0 26px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:46px}.site-footer .brand{font-size:19px}.site-footer p{font-size:12px;line-height:1.9;color:#66776e;max-width:460px;margin:16px 0}.site-footer h3{font-size:12px;letter-spacing:.02em;margin:3px 0 17px}.site-footer a:not(.brand){color:#526b62;font-size:12px;text-decoration:none}.site-footer a:hover{text-decoration:underline}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.footer-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:23px;margin-top:28px;border-top:1px solid #d4ded5;font-size:10px;color:#78857c}.footer-bottom p{margin:0;max-width:790px;font-size:10px;line-height:1.9}.footer-bottom a{font-size:10px!important}.back-top{position:fixed;z-index:90;bottom:25px;right:25px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #adcabe;border-radius:50%;background:#fff;color:var(--teal);font-size:22px;line-height:1;box-shadow:0 5px 24px rgba(21,61,50,.15);transition:opacity .25s,transform .25s,background .2s}.back-top:hover{transform:translateY(-3px);background:var(--teal);color:white}.back-top[aria-hidden=true]{opacity:0;pointer-events:none;transform:translateY(15px)}
.js .reveal{transition:opacity .65s ease,transform .65s cubic-bezier(.2,.6,.2,1)}.js .reveal.is-pending{opacity:0;transform:translateY(18px)}.js .reveal.is-visible{opacity:1;transform:none}.muted{color:var(--muted)}.small{font-size:12px}.text-center{text-align:center}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.divider{height:1px;border:0;background:var(--line);margin:25px 0}.flow>*+*{margin-top:1.25rem}
@media(min-width:1400px){.hero{min-height:650px}.hero-content{padding-block:86px}.hero-image{object-position:50% 48%}}
@media(max-width:1090px){.shell{width:calc(100% - 44px)}.site-header>.shell{gap:16px}.brand{font-size:17px}.nav-links a{padding:11px 9px;font-size:12px}.hero-content{padding:55px 42px}.hero{min-height:560px}.card-grid{gap:18px}.card-body{padding:21px}.card-body h3{font-size:20px}.split{gap:32px}.section{padding-block:58px}.footer-grid{gap:28px}.article-layout{grid-template-columns:minmax(0,1fr) 240px;gap:25px}}
@media(max-width:860px){:root{--header-height:73px}.site-header>.shell{position:relative}.brand{font-size:18px}.brand small{font-size:9px}.menu-toggle{display:inline-flex}.nav-links{position:absolute;left:0;right:0;top:calc(100% + 1px);padding:10px 12px 14px;display:none;align-items:stretch;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-top:0;border-radius:0 0 15px 15px;box-shadow:0 12px 20px rgba(22,50,46,.08)}.nav-links.is-open{display:flex}.nav-links a{font-size:14px;padding:13px 15px;white-space:normal}.hero{min-height:535px;margin-top:20px;border-radius:21px}.hero-content{padding:44px 35px}.hero-title,.hero h1{font-size:51px;max-width:620px}.hero-copy{font-size:15px;max-width:490px}.hero::before{background:linear-gradient(90deg,rgba(9,29,39,.85),rgba(11,35,45,.57) 65%,rgba(11,35,45,.21))}.hero-caption{font-size:9px;right:16px;bottom:14px;max-width:220px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr;gap:28px}.split .photo-panel{max-height:450px;aspect-ratio:16/9}.split>.prose{max-width:none}.footer-grid{grid-template-columns:1.3fr 1fr;gap:30px}.footer-grid>:first-child{grid-column:1/-1}.footer-grid>:first-child p{max-width:650px}.section-heading h2{font-size:33px}.page-intro h1{font-size:47px}.article-layout{grid-template-columns:1fr}.toc{position:static;order:-1;display:flex;flex-wrap:wrap;gap:3px 18px}.toc h3{width:100%;font-size:16px}.toc a{border:0}.prose{max-width:none}.feature-card{padding:26px}.feature-card .card-image{margin:-26px -26px 23px}}
@media(max-width:600px){:root{--header-height:69px;--radius:16px}.shell{width:calc(100% - 32px)}body{font-size:14px;line-height:1.8}.site-header>.shell{gap:12px}.brand{font-size:17px;gap:9px}.brand img,.brand svg,.brand-mark{width:31px;height:25px}.brand small,.brand-subtitle{letter-spacing:.1em;font-size:8px}.menu-toggle{width:40px;height:40px;border-radius:10px}.hero{min-height:590px;align-items:flex-end;margin-top:14px;border-radius:17px}.hero-image{object-position:62% center}.hero::before{background:linear-gradient(0deg,rgba(7,26,37,.94),rgba(9,29,39,.77) 48%,rgba(11,35,45,.12) 100%)}.hero-content{padding:100px 24px 45px}.hero .eyebrow{font-size:10px;margin-bottom:15px;letter-spacing:.13em}.hero-title,.hero h1{font-size:41px;line-height:1.13;letter-spacing:-.045em;margin-bottom:20px}.hero-copy{font-size:14px;line-height:1.8;margin-bottom:24px}.hero-actions{align-items:stretch;gap:10px}.hero-actions .btn{min-height:47px;flex:1 1 160px;padding:12px 15px;font-size:12px}.hero-caption{left:24px;right:auto;bottom:12px;max-width:calc(100% - 48px);font-size:8px;line-height:1.4;padding:4px 7px}.btn{min-height:47px;padding:12px 20px;font-size:12px}.section{padding-block:43px}.section-heading{display:block;margin-bottom:24px}.section-heading h2{font-size:29px;line-height:1.25;margin-bottom:11px}.section-heading p{font-size:13px;line-height:1.8}.section-heading>.link-arrow,.section-heading>.btn{margin-top:17px;margin-bottom:0}.section-kicker{font-size:9px;letter-spacing:.14em}.page-intro{padding-top:34px;padding-bottom:18px}.page-intro h1{font-size:37px;line-height:1.16}.page-intro .lead,.lead{font-size:14px;line-height:1.9}.breadcrumbs{font-size:10px;padding-top:22px}.breadcrumbs+.page-intro{padding-top:25px}.page-intro+.section{padding-top:23px}.search-hub{padding:20px;margin-top:18px;border-radius:16px}.search-hub>h2{font-size:23px;line-height:1.3}.search-hub>p{font-size:12px}.tab-list{gap:6px;margin-bottom:20px;padding-bottom:13px}.tab-list [role=tab],.tab-list button{padding:10px 12px;font-size:11px;flex:1 1 auto}.search-panel h3{font-size:19px;line-height:1.4}.search-panel>p{font-size:12px;line-height:1.9}.widget-actions{gap:10px;align-items:stretch}.widget-actions .btn{width:100%}.widget-fallback{align-items:flex-start;flex-direction:column;gap:10px}.card-grid,.feature-grid,.info-grid,.news-grid{grid-template-columns:1fr;gap:20px}.card-body{padding:23px}.card-body h3{font-size:23px}.card-body p{font-size:13px}.card-image{aspect-ratio:3/2}.place-card:hover,.hotel-card:hover,.feature-card:hover{transform:none}.feature-card{padding:25px}.feature-card h3{font-size:23px}.feature-card p{font-size:13px}.feature-card .card-image{margin:-25px -25px 22px}.split{gap:24px}.photo-panel{border-radius:16px}.photo-panel figcaption{font-size:10px;left:12px;right:12px;bottom:12px;padding:9px 11px}.prose h2{font-size:26px}.prose h3{font-size:21px}.prose p,.prose li{font-size:14px;line-height:1.9}.article-block{padding:22px}.filters{gap:7px;margin-bottom:21px}.filters button,[data-route-tabs] button{font-size:11px;padding:9px 13px}.filters label{width:100%}.filters select{width:100%;min-width:0}.filter-controls{display:grid;grid-template-columns:1fr;gap:14px}.filter-controls select{width:100%;min-width:0}.filter-controls .btn{width:100%}.stats{margin-top:22px}.stat{padding:16px 10px 16px 0;min-width:95px}.stat+.stat{padding-left:14px}.stat strong{font-size:20px}.stat span,.stat small{font-size:9px}.route-panel{padding:22px}.route-stop{padding-left:53px;padding-bottom:27px}.route-stop h3{font-size:18px;padding-top:5px}.route-stop p{font-size:13px}.route-num{width:36px;height:36px;font-size:10px}.route-stop:not(:last-child)::before{left:18px;top:36px}.route-summary{font-size:12px;padding:14px 17px}.checklist label{font-size:12px;padding:15px 17px;gap:12px}.info-box{padding:22px}.notice{font-size:12px;padding:17px 19px}.notice strong{font-size:13px}th,td{padding:13px 15px;min-width:130px}th:first-child,td:first-child{min-width:140px}.faq summary,.faqdetails summary{font-size:14px}.faq details>p,.faqdetails>p{font-size:12px;margin-right:20px}.news-footer{display:block}.news-footer>.btn{margin-top:15px}.site-footer{margin-top:10px;padding-top:36px}.footer-grid{grid-template-columns:1fr 1fr;gap:27px 20px}.site-footer h3{font-size:12px}.site-footer a:not(.brand){font-size:11px}.site-footer p{font-size:11px}.footer-bottom{gap:13px;margin-top:25px;padding-top:20px}.footer-bottom p{font-size:9px}.back-top{right:16px;bottom:18px;width:43px;height:43px;font-size:20px}.empty-state{padding:28px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js .reveal.is-pending{opacity:1;transform:none}.btn:hover,.place-card:hover,.hotel-card:hover,.feature-card:hover,.back-top:hover{transform:none}.place-card:hover .card-image img,.hotel-card:hover .card-image img{transform:none}}
@media(max-width:860px){html:not(.js) .site-header>.shell{flex-wrap:wrap;padding-block:15px}html:not(.js) .nav-links{position:static;display:flex;width:100%;border:0;border-radius:0;box-shadow:none;padding:0;flex-direction:row;flex-wrap:wrap}html:not(.js) .menu-toggle{display:none}}
@media print{.site-header,.site-footer,.search-hub,.filters,.back-top,.menu-toggle,.widget-mount{display:none!important}body{background:white;color:black;font-size:11pt}.shell{width:100%}.section{padding-block:20px}.card-grid,.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:280px;margin-top:0}.hero-content{padding:30px}.hero-title{font-size:34px}.reveal{opacity:1!important;transform:none!important}.place-card,.feature-card,.route-stop{break-inside:avoid}a{color:inherit}.prose{max-width:none}}
.places-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.places-grid .card-body{padding:20px}.places-grid .card-body h3{font-size:21px}.places-grid .card-body>p:not(.tag){font-size:12px}.hotel-card:has(.photo-panel){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.hotel-card>.photo-panel{margin:0;border-radius:0;min-height:380px;height:100%}.hotel-card>.photo-panel>img{width:100%;height:100%;object-fit:cover}.places-grid #savitsky>img{object-position:center 62%}
@media(max-width:1090px){.places-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.places-grid{grid-template-columns:1fr}.hotel-card:has(.photo-panel){display:flex;grid-column:auto}.hotel-card>.photo-panel{height:260px;min-height:0}.places-grid .card-body>p:not(.tag){font-size:13px}}
.hero-photo-credit{max-width:540px;margin:18px 0 0;color:#f6faf8;font-size:10px;line-height:1.7;text-shadow:0 1px 3px rgba(0,0,0,.5)}.hero-photo-credit a,.hero-photo-credit a:hover{color:inherit;text-decoration-color:rgba(255,255,255,.75)}.link-arrow::after{content:none}.place-card .card-body details{width:100%;font-size:12px}.place-card .card-body summary{cursor:pointer;color:var(--teal);font-weight:700}.place-card .card-body details p{margin-top:12px}.site-footer .footer-grid>div:not(:first-child)>a{display:block;margin-top:9px}.site-footer .footer-grid>div>strong{display:block;margin-bottom:12px;font-size:12px}
html:not(.js) [data-route-panel][hidden],html:not(.js) .search-panel[hidden]{display:block!important}html:not(.js) .search-panel+.search-panel{margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}
@media(min-width:861px){.card-grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1091px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}

/* /guide-enhancements.css */
/* Shared destination guides. Deliberately scoped to the guide components. */
.guide-layout {
  --guide-accent: var(--teal, #096c65);
  --guide-soft: var(--teal-soft, #e6f2ef);
  --guide-border: var(--line, #dce5e3);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  align-items: start;
  gap: clamp(24px, 3.5vw, 44px);
  counter-reset: guide-chapter;
  padding-block: 12px 56px;
}

.guide-layout > * { min-width: 0; }
.guide-layout :where(p, li) { overflow-wrap: break-word; }
.guide-layout :where(p, ul, ol) { max-width: 75ch; }
.guide-layout :where(h2, h3, h4) { text-wrap: balance; }

.guide-rail {
  position: sticky;
  top: calc(var(--header-height, 82px) + 22px);
  padding: 19px 16px;
  background: var(--white, #fff);
  border: 1px solid var(--guide-border, #dce5e3);
  border-radius: 16px;
  box-shadow: 0 7px 22px rgb(20 52 58 / 4%);
}

.guide-rail :where(h2, h3, h4) {
  margin: 0 0 13px;
  font-size: 14px;
  letter-spacing: -.02em;
  line-height: 1.45;
}

.guide-rail > p {
  margin: 14px 0 0;
  font-size: 11px;
  line-height: 1.65;
  color: var(--muted, #596e78);
}

.guide-jumpnav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
  min-width: 0;
}

.guide-jumpnav :where(ul, ol) {
  display: contents;
  padding: 0;
  margin: 0;
  list-style: none;
}

.guide-jumpnav li { margin: 0; list-style: none; }
.guide-jumpnav a {
  display: block;
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: var(--muted, #596e78);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.guide-jumpnav a:hover,
.guide-jumpnav a[aria-current="location"] {
  color: var(--teal-dark, #064c48);
  background: var(--guide-soft, #e6f2ef);
}

.guide-jumpnav a[aria-current="location"] {
  border-color: #bad8d0;
  font-weight: 800;
}

.guide-jumpnav a:focus-visible,
.guide-faq summary:focus-visible,
.guide-checks input:focus-visible {
  outline: 3px solid var(--gold, #c69245);
  outline-offset: 3px;
}

.guide-chapter {
  counter-increment: guide-chapter;
  min-width: 0;
  margin: 0 0 24px;
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--guide-border, #dce5e3);
  border-radius: 20px;
  background: var(--white, #fff);
  scroll-margin-top: calc(var(--header-height, 82px) + 22px);
}

.guide-chapter:last-child { margin-bottom: 0; }
.guide-chapter > :last-child { margin-bottom: 0; }
.guide-chapter > :where(h2, h3):first-child,
.guide-chapter > .guide-chapter__heading {
  display: flex;
  align-items: baseline;
  gap: 13px;
  margin-bottom: 20px;
  font-size: clamp(23px, 2.65vw, 31px);
  line-height: 1.3;
  letter-spacing: -.035em;
}

.guide-chapter > :where(h2, h3):first-child::before,
.guide-chapter > .guide-chapter__heading::before {
  content: counter(guide-chapter, decimal-leading-zero);
  flex: none;
  display: inline-grid;
  place-items: center;
  min-width: 36px;
  min-height: 36px;
  padding: 6px 8px;
  border-radius: 10px;
  color: var(--guide-accent, #096c65);
  background: var(--guide-soft, #e6f2ef);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .03em;
}

.guide-chapter > :where(h2, h3):first-child[data-step]::before,
.guide-chapter > .guide-chapter__heading[data-step]::before { content: attr(data-step); }
.guide-chapter--unnumbered > :where(h2, h3):first-child::before,
.guide-chapter--unnumbered > .guide-chapter__heading::before { content: none; }
.guide-chapter :where(h3, h4) { margin-top: 27px; margin-bottom: 12px; }
.guide-chapter > :where(h3, h4):first-child { margin-top: 0; }
.guide-chapter :where(p, li) { font-size: 14px; line-height: 1.85; }
.guide-chapter .source { font-size: 11px; line-height: 1.7; }
.guide-chapter .ad-note { font-size: 10px; line-height: 1.65; }

.guide-metrics,
.guide-scenarios {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 205px), 1fr));
  gap: 13px;
  margin-block: 20px;
}

.guide-metric,
.guide-scenario {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--guide-border, #dce5e3);
  border-radius: 14px;
  background: #f5f9f7;
}

.guide-metric :where(strong, dt) {
  display: block;
  margin-bottom: 7px;
  color: var(--teal-dark, #064c48);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: -.025em;
}

.guide-metric :where(p, dd, small, span) {
  display: block;
  margin: 0;
  color: var(--muted, #596e78);
  font-size: 12px;
  line-height: 1.7;
}

a.guide-metric-link {
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
a.guide-metric-link:hover {
  border-color: var(--teal, #087e8b);
  box-shadow: 0 10px 26px rgba(6, 76, 72, .09);
  transform: translateY(-2px);
}
a.guide-metric-link:focus-visible {
  outline: 3px solid var(--teal, #087e8b);
  outline-offset: 4px;
}
a.guide-metric-link .guide-metric-cta {
  margin-top: auto;
  padding-top: 14px;
  color: var(--teal-dark, #064c48);
  font-weight: 750;
}
a.guide-metric-link .guide-metric-cta span { display: inline; color: inherit; }
@media (prefers-reduced-motion: reduce) {
  a.guide-metric-link { transition: none; }
  a.guide-metric-link:hover { transform: none; }
}

.guide-scenario :where(h3, h4) {
  margin: 0 0 10px;
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: -.025em;
}

.guide-scenario p { margin-bottom: 11px; font-size: 13px; line-height: 1.8; }
.guide-scenario > :last-child { margin-bottom: 0; }
.guide-scenario a { font-size: 12px; font-weight: 700; }

.guide-checks {
  padding: 0;
  margin: 20px 0;
  list-style: none;
}

.guide-checks > li {
  position: relative;
  margin: 0;
  padding: 13px 0 13px 30px;
  border-bottom: 1px solid var(--guide-border, #dce5e3);
  list-style: none;
}

.guide-checks > li::before {
  content: "✓";
  position: absolute;
  left: 1px;
  top: 15px;
  color: var(--guide-accent, #096c65);
  font-weight: 800;
  line-height: 1.5;
}

.guide-checks > li:last-child { border-bottom: 0; }
.guide-checks label { display: flex; align-items: flex-start; gap: 11px; cursor: pointer; }
.guide-checks input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: none;
  margin: 4px 0 0;
  accent-color: var(--guide-accent, #096c65);
}

.guide-checks > li:has(input[type="checkbox"]) { padding-left: 0; }
.guide-checks > li:has(input[type="checkbox"])::before { content: none; }

.guide-faq {
  margin-block: 20px;
  border-top: 1px solid var(--guide-border, #dce5e3);
}

.guide-faq details {
  padding: 0;
  border-bottom: 1px solid var(--guide-border, #dce5e3);
}

.guide-faq summary {
  position: relative;
  padding: 18px 35px 18px 0;
  color: var(--ink, #132e3b);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  list-style: none;
  cursor: pointer;
}

.guide-faq summary::-webkit-details-marker { display: none; }
.guide-faq summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 16px;
  color: var(--guide-accent, #096c65);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.4;
}

.guide-faq details[open] > summary::after { content: "−"; }
.guide-faq details > :not(summary) { margin-right: 25px; }
.guide-faq details > :last-child { margin-bottom: 20px; }
.guide-faq summary:hover { color: var(--guide-accent, #096c65); }

.guide-dossier {
  min-width: 0;
  margin-block: 22px;
  padding: 21px;
  border: 1px solid #c6dfd6;
  border-left: 3px solid var(--guide-accent, #096c65);
  border-radius: 0 14px 14px 0;
  background: linear-gradient(120deg, #edf6f1, #f7faf6);
}

.guide-dossier > :where(h2, h3, h4):first-child { margin: 0 0 12px; font-size: 18px; }
.guide-dossier p { font-size: 13px; line-height: 1.8; }
.guide-dossier > :last-child { margin-bottom: 0; }
.guide-chapter :where(.search-hub, .search-panel, .widget-card),
.guide-dossier :where(.search-hub, .search-panel, .widget-card) {
  min-width: 0;
  max-width: 100%;
}

.guide-chapter :where(.search-hub, .widget-card) {
  margin-block: 22px;
  padding: clamp(16px, 2.4vw, 24px);
  border: 1px solid #c6dfd6;
  border-radius: 15px;
  background: #f0f7f3;
  box-shadow: none;
}

.guide-chapter .widget-mount,
.guide-dossier .widget-mount { width: 100%; min-width: 0; max-width: 100%; }

@media (max-width: 1000px) {
  .guide-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .guide-rail { position: static; padding: 16px; }
  .guide-jumpnav { flex-direction: row; flex-wrap: wrap; gap: 7px; }
  .guide-jumpnav li { max-width: 100%; }
  .guide-jumpnav a { padding: 8px 11px; background: #f3f7f4; }
  .guide-rail > p { margin-top: 12px; }
}

@media (max-width: 600px) {
  .guide-layout { padding-bottom: 36px; gap: 18px; }
  .guide-chapter { padding: 21px 18px; border-radius: 16px; margin-bottom: 18px; }
  .guide-chapter > :where(h2, h3):first-child,
  .guide-chapter > .guide-chapter__heading { gap: 10px; font-size: 23px; }
  .guide-chapter > :where(h2, h3):first-child::before,
  .guide-chapter > .guide-chapter__heading::before { min-width: 31px; min-height: 31px; padding: 5px 6px; font-size: 11px; }
  .guide-metrics, .guide-scenarios { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .guide-metric, .guide-scenario { padding: 16px; }
  .guide-dossier { padding: 18px 16px; }
  .guide-faq details > :not(summary) { margin-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .guide-jumpnav a { transition: none; }
}

/* /widget-enhancements.css */
.image-origin{display:block;padding:7px 16px;background:#f1f6f3;color:#425d62;font-size:10px;line-height:1.6;font-weight:600}
.image-origin a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.card-image,.photo-panel img,.split>img{height:auto}
.photo-feature,.photo-feature:hover,.city-main-link:hover{color:inherit;text-decoration:none}
.photo-feature .card-image{aspect-ratio:16/10;object-fit:cover}
.city-main-link{display:block;color:inherit;text-decoration:none}.city-photo-source{padding:0 25px 18px;margin:0;font-size:10px;color:#536d73}.city-photo-source a{color:inherit}
.hero-photo-credit{max-width:94%;font-size:10px!important}
.guide-layout .places-grid,.guide-layout .hotel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.guide-layout .card-grid:not(.places-grid):not(.hotel-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
.guide-layout .prose,.guide-chapter-body{max-width:76ch}
.guide-layout>.guide-main{grid-column:1;grid-row:1;min-width:0}
.guide-layout>.guide-rail{grid-column:2;grid-row:1;min-width:0}
.guide-jumpnav .guide-nav-number{display:inline-block;margin-right:8px}
@media(max-width:1000px){.guide-layout>.guide-main,.guide-layout>.guide-rail{grid-column:auto;grid-row:auto}}
.guide-rail .guide-jumpnav a{font-size:12px}
.search-hub .tab-list{gap:8px}
.search-hub .tab-list [role=tab]{flex:1;min-width:120px;text-align:center}
.search-hub .search-panel{padding:7px 0}
.search-hub .widget-mount{border:1px solid #e0e9e6;background:#fff;padding:10px;overflow:visible}
.widget-mount[data-widget-state=loaded]>p[role=status]{display:none}
.search-hub [data-widget-state=loaded]+[data-load-widget]{display:none}
.search-panel .widget-mount>p{margin:8px 4px;font-size:13px;color:#536d73}
.search-panel [data-load-widget]{margin:12px 0 2px}
.service-preview{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--teal-soft)}
@media(max-width:700px){.guide-layout .places-grid,.guide-layout .hotel-grid,.guide-layout .card-grid:not(.places-grid):not(.hotel-grid){grid-template-columns:1fr}.search-hub .tab-list [role=tab]{min-width:96px;padding:10px 8px}.image-origin{font-size:9px}.hero-image{object-position:60% center!important}.hero-photo-credit{font-size:8px!important}}

.search-hub #widget-cars{border:0;padding:0}

/* /planning-enhancements.css */
/* Preparation is a single reading path; partner forms stay collapsed until needed. */
.planning-guide {
  --planning-accent: var(--teal, #096c65);
  --planning-ink: var(--ink, #132e3b);
  --planning-soft: #edf6f1;
  --planning-line: #d6e5dc;
  min-width: 0;
}

.planning-guide .guide-rail {
  border-color: #d2e3da;
  background: linear-gradient(165deg, #fff 40%, #f3f8f2);
  box-shadow: 0 8px 30px rgb(20 52 58 / 5%);
}

.planning-guide .guide-rail-label {
  margin: 0 0 13px;
  color: var(--planning-ink, #132e3b);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -.015em;
}

.planning-guide .guide-jumpnav a {
  display: flex;
  align-items: baseline;
  gap: 9px;
  padding: 9px;
  font-size: 11px;
  line-height: 1.55;
}

.planning-guide .guide-jumpnav .guide-nav-number {
  flex: none;
  color: #789589;
  font-size: 10px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.planning-guide .guide-jumpnav a[aria-current="location"] .guide-nav-number {
  color: var(--planning-accent, #096c65);
}

.planning-guide .guide-rail-note {
  padding-top: 13px;
  margin: 14px 0 0;
  border-top: 1px solid var(--planning-line, #d6e5dc);
  color: var(--muted, #596e78);
  font-size: 10px;
  line-height: 1.7;
}

.planning-progress {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0 0 26px;
  padding: 15px 0;
  border-top: 1px solid var(--planning-line, #d6e5dc);
  border-bottom: 1px solid var(--planning-line, #d6e5dc);
  color: var(--muted, #596e78);
  font-size: 11px;
  line-height: 1.7;
}

.planning-progress :where(p, ol, ul) { margin: 0; }
.planning-progress :where(strong, time) { color: var(--planning-ink, #132e3b); font-weight: 700; }
.planning-progress > :where(span, p, a) { min-width: 0; }
.planning-progress > :where(span, p) + :where(span, p) {
  padding-left: 18px;
  border-left: 1px solid var(--planning-line, #d6e5dc);
}

.planning-progress :where(ol, ul) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  padding-left: 1.1rem;
}

.planning-progress li { padding-left: 2px; margin: 0; }
.planning-progress li::marker { color: var(--planning-accent, #096c65); font-weight: 800; }

.planning-guide .guide-chapter {
  padding: clamp(22px, 3.1vw, 34px);
  border-color: #dbe6df;
  box-shadow: 0 4px 16px rgb(20 52 58 / 2%);
}

.planning-guide .guide-chapter-heading {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 23px;
}

.planning-guide .guide-chapter-heading > div { min-width: 0; }
.planning-guide .guide-chapter-heading .section-kicker { margin: 0 0 7px; font-size: 10px; }
.planning-guide .guide-chapter-heading h2 {
  margin: 0;
  font-size: clamp(25px, 3vw, 33px);
  line-height: 1.3;
  letter-spacing: -.035em;
}

.planning-guide .guide-chapter-number {
  flex: none;
  display: inline-grid;
  place-items: center;
  min-width: 38px;
  height: 38px;
  padding-inline: 8px;
  margin-top: 3px;
  border: 1px solid #d8e7dc;
  border-radius: 11px;
  background: #f0f6ee;
  color: var(--planning-accent, #096c65);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}

.planning-guide .guide-chapter-body > :where(p, ul, ol) { max-width: 75ch; }
.planning-guide .guide-chapter-body > p { color: #405c62; line-height: 1.9; }
.planning-guide .guide-action-list {
  margin-block: 23px;
  padding: 18px 20px;
  border: 1px solid #e2e9df;
  border-radius: 13px;
  background: #f8faf4;
}

.planning-guide .guide-action-list h3 { margin: 0 0 10px; font-size: 14px; line-height: 1.6; }
.planning-guide .guide-action-list ul { margin: 0; padding-left: 18px; }
.planning-guide .guide-action-list li { font-size: 13px; line-height: 1.85; }
.planning-guide .guide-action-list li::marker { color: var(--planning-accent, #096c65); }
.planning-guide .guide-sources {
  margin-top: 22px;
  padding-top: 14px;
  border-top: 1px solid #e4ebe6;
}

.planning-guide .guide-sources ul { margin-bottom: 0; }
.planning-guide .guide-sources :where(p, li, a) { font-size: 11px; line-height: 1.75; }

.planning-checklist {
  min-width: 0;
  margin-block: 26px;
  padding: clamp(19px, 2.8vw, 28px);
  border: 1px solid #c7ded0;
  border-radius: 19px;
  background: linear-gradient(150deg, #eff6ed, #fcfdf9 65%);
  scroll-margin-top: calc(var(--header-height, 82px) + 22px);
}

.planning-checklist > :where(h2, h3) { margin-bottom: 12px; }
.planning-checklist > p { max-width: 70ch; font-size: 13px; color: var(--muted, #596e78); }
.planning-checklist .checklist {
  margin-top: 19px;
  border-color: #d1e1d5;
  border-radius: 12px;
  background: #fff;
}

.planning-checklist .checklist label { padding: 15px 17px; gap: 12px; }
.planning-checklist .checklist label:hover { background: #f1f7ed; }
.planning-checklist .checklist label:has(input:checked) { color: #567264; background: #f4f8ef; }
.planning-checklist .checklist input[type="checkbox"] { accent-color: var(--planning-accent, #096c65); }
.planning-checklist .checklist input:focus-visible { outline: 3px solid var(--gold, #c69245); outline-offset: 4px; }
.planning-checklist > :last-child { margin-bottom: 0; }

.planning-widget {
  min-width: 0;
  max-width: 100%;
  margin: 24px 0;
  padding: 0;
  border: 1px solid #bad6c8;
  border-radius: 14px;
  background: #f0f7f1;
  box-shadow: 0 5px 18px rgb(9 108 101 / 3%);
}

.planning-widget > summary {
  position: relative;
  display: grid;
  grid-template-columns: 35px minmax(0, 1fr) 20px;
  column-gap: 11px;
  align-items: center;
  padding: 18px;
  border-radius: 13px;
  color: var(--teal-dark, #064c48);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.55;
  list-style: none;
  cursor: pointer;
}

.planning-widget > summary::-webkit-details-marker { display: none; }
.planning-widget > summary::before {
  content: "↗";
  grid-column: 1;
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 35px;
  height: 35px;
  border: 1px solid #c6dfcf;
  border-radius: 10px;
  background: #fff;
  color: var(--planning-accent, #096c65);
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
}

.planning-widget > summary::after {
  content: "+";
  grid-column: 3;
  grid-row: 1 / span 2;
  align-self: center;
  color: var(--planning-accent, #096c65);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.2;
}

.planning-widget[open] > summary { border-radius: 13px 13px 0 0; border-bottom: 1px solid #cfe1d4; }
.planning-widget[open] > summary::after { content: "−"; }
.planning-widget > summary:hover { background: #e7f2e8; }
.planning-widget > summary:focus-visible { outline: 3px solid var(--gold, #c69245); outline-offset: 3px; }
.planning-widget > summary :where(strong, .planning-widget-title) { display: block; grid-column: 2; font-size: 14px; line-height: 1.6; }
.planning-widget > summary :where(small, .planning-widget-hint) {
  display: block;
  grid-column: 2;
  margin-top: 3px;
  color: #5b7768;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.65;
}

.planning-widget > summary > span:not([class]) { grid-column: 2; }
.planning-widget .planning-widget-icon { grid-column: 1; grid-row: 1 / span 2; }
.planning-widget > summary:has(.planning-widget-icon)::before { content: none; }
.planning-widget :where(.planning-widget-body, .search-panel) {
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: 20px;
  margin: 0;
  border: 0;
  border-radius: 0 0 13px 13px;
  background: #fff;
  box-shadow: none;
}

.planning-widget .planning-widget-body > .search-panel { padding: 0; }
.planning-widget .search-panel :where(h2, h3) { margin-top: 0; margin-bottom: 10px; font-size: 19px; line-height: 1.4; }
.planning-widget .search-panel > p { max-width: 70ch; font-size: 12px; line-height: 1.8; }
.planning-widget .widget-mount { width: 100%; min-width: 0; max-width: 100%; margin-top: 16px; }
.planning-widget .widget-mount iframe { display: block; width: 100%; max-width: 100%; border: 0; }
.planning-widget :where(.widget-actions, .widget-fallback) { gap: 10px; padding-top: 0; margin-top: 17px; }
.planning-widget .btn { min-height: 43px; padding: 11px 17px; font-size: 12px; }
.planning-widget .widget-status { margin: 10px 0; }
.planning-widget .ad-note { display: block; margin-top: 13px; font-size: 10px; line-height: 1.65; }
.planning-widget .source { margin-top: 12px; font-size: 11px; line-height: 1.65; }
.planning-widget > :last-child { margin-bottom: 0; }

@media (max-width: 1000px) {
  .planning-guide .guide-jumpnav a { padding: 8px 11px; }
  .planning-guide .guide-rail-note { padding-top: 11px; margin-top: 12px; }
}

@media (max-width: 600px) {
  .planning-progress { gap: 7px 12px; margin-bottom: 20px; padding-block: 12px; }
  .planning-progress > :where(span, p) + :where(span, p) { border: 0; padding-left: 0; }
  .planning-guide .guide-chapter { padding: 22px 18px; }
  .planning-guide .guide-chapter-heading { gap: 11px; margin-bottom: 20px; }
  .planning-guide .guide-chapter-heading h2 { font-size: 25px; }
  .planning-guide .guide-chapter-number { min-width: 32px; height: 32px; border-radius: 9px; font-size: 11px; }
  .planning-guide .guide-action-list { padding: 16px; }
  .planning-checklist { padding: 19px 15px; margin-block: 22px; border-radius: 16px; }
  .planning-checklist .checklist label { padding: 14px 13px; font-size: 12px; }
  .planning-widget { margin-block: 21px; }
  .planning-widget > summary { grid-template-columns: 30px minmax(0, 1fr) 17px; gap: 9px; padding: 15px 13px; }
  .planning-widget > summary::before { width: 30px; height: 30px; border-radius: 8px; font-size: 18px; }
  .planning-widget > summary :where(strong, .planning-widget-title) { font-size: 13px; }
  .planning-widget :where(.planning-widget-body, .search-panel) { padding: 17px 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .planning-checklist .checklist label,
  .planning-widget > summary { transition: none; }
}

/* /transport-enhancements.css */
/* Travel logistics: a readable route through decisions, details and booking. */
.transport-guide {
  --transport-accent: var(--teal, #096c65);
  --transport-ink: var(--ink, #132e3b);
  --transport-line: #d6e5df;
  --transport-soft: #eef6f2;
  min-width: 0;
}

.transport-guide :where(.guide-layout, .guide-main, .guide-chapter, .guide-chapter-body) { min-width: 0; }
.transport-guide .guide-layout { gap: clamp(24px, 3.4vw, 42px); }
.transport-guide .guide-rail {
  border-color: #d1e3db;
  background: linear-gradient(160deg, #fff 50%, #f1f7f4);
  box-shadow: 0 8px 28px rgb(20 52 58 / 5%);
}

.transport-guide .guide-rail-label { margin: 0 0 13px; color: var(--transport-ink); font-size: 12px; font-weight: 800; }
.transport-guide .guide-jumpnav a { display: flex; align-items: baseline; gap: 9px; padding: 9px; font-size: 11px; line-height: 1.6; }
.transport-guide .guide-nav-number { flex: none; color: #78948a; font-size: 10px; font-weight: 800; font-variant-numeric: tabular-nums; }
.transport-guide .guide-jumpnav a[aria-current="location"] .guide-nav-number { color: var(--transport-accent); }
.transport-guide .guide-rail-note { padding-top: 13px; margin: 14px 0 0; border-top: 1px solid var(--transport-line); font-size: 10px; line-height: 1.75; color: var(--muted, #596e78); }

.transport-guide .guide-chapter {
  padding: clamp(22px, 3vw, 33px);
  border-color: #dbe6e1;
  box-shadow: 0 4px 18px rgb(20 52 58 / 2%);
}

.transport-guide .guide-chapter-heading { display: flex; align-items: flex-start; gap: 15px; margin-bottom: 23px; }
.transport-guide .guide-chapter-heading > div { min-width: 0; }
.transport-guide .guide-chapter-heading .section-kicker { margin: 0 0 7px; font-size: 10px; }
.transport-guide .guide-chapter-heading h2 { margin: 0; font-size: clamp(25px, 3vw, 33px); line-height: 1.3; letter-spacing: -.035em; }
.transport-guide .guide-chapter-number {
  display: inline-grid;
  place-items: center;
  flex: none;
  min-width: 38px;
  height: 38px;
  margin-top: 3px;
  padding-inline: 8px;
  border: 1px solid #d2e5da;
  border-radius: 11px;
  background: var(--transport-soft);
  color: var(--transport-accent);
  font-size: 12px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.transport-guide .guide-chapter-body > :where(p, ul, ol) { max-width: 75ch; }
.transport-guide .guide-chapter-body > p { color: #405b63; line-height: 1.9; }
.transport-guide .guide-chapter-body .notice { margin-block: 20px; font-size: 13px; line-height: 1.85; }
.transport-guide .guide-action-list { margin-block: 22px; padding: 18px 20px; border: 1px solid #dce8df; border-radius: 13px; background: #f5f9f4; }
.transport-guide .guide-action-list h3 { margin: 0 0 10px; font-size: 14px; line-height: 1.6; }
.transport-guide .guide-action-list ul { margin: 0; padding-left: 18px; }
.transport-guide .guide-action-list li { font-size: 13px; line-height: 1.85; }
.transport-guide .guide-action-list li::marker { color: var(--transport-accent); }
.transport-guide .guide-sources { padding-top: 14px; margin-top: 22px; border-top: 1px solid #e2eae6; }
.transport-guide .guide-sources :where(li, a) { font-size: 11px; line-height: 1.8; }
.transport-guide .guide-source-details { margin-block: 19px; padding: 0; border: 0; }
.transport-guide .guide-source-details > summary { color: var(--muted, #596e78); font-size: 11px; line-height: 1.8; }

.transport-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0 28px;
}

.transport-choice-grid > a {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: 19px;
  border: 1px solid #cfe1d7;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff, #f2f8f3);
  color: var(--transport-ink, #132e3b);
  text-decoration: none;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.transport-choice-grid > a:hover { border-color: #8ebda8; box-shadow: 0 6px 20px rgb(9 108 101 / 7%); }
.transport-choice-grid :where(h2, h3, strong) { display: block; margin: 0 0 10px; font-size: 17px; line-height: 1.45; letter-spacing: -.025em; }
.transport-choice-grid p { margin: 0; color: #57716a; font-size: 12px; line-height: 1.8; }
.transport-choice-grid .section-kicker { margin-bottom: 9px; color: var(--transport-accent); font-size: 9px; }
.transport-choice-grid .link-arrow { margin-top: auto; padding-top: 15px; font-size: 11px; }

.transport-airports { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-block: 22px; }
.transport-airport { min-width: 0; padding: 20px; border: 1px solid #d6e4de; border-radius: 14px; background: #f9fbf8; }
.transport-airport :where(h3, h4) { margin: 12px 0 10px; font-size: 18px; line-height: 1.45; letter-spacing: -.025em; }
.transport-airport p { margin-bottom: 11px; font-size: 13px; line-height: 1.8; color: #4e6868; }
.transport-airport > :last-child { margin-bottom: 0; }
.transport-airport-code {
  display: inline-block;
  padding: 5px 9px;
  border: 1px solid #cce1d4;
  border-radius: 7px;
  background: #edf5ec;
  color: var(--transport-accent, #096c65);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .08em;
  font-variant-numeric: tabular-nums;
}

.transport-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  margin-block: 22px;
  border: 1px solid var(--transport-line, #d6e5df);
  border-radius: 13px;
  background: #fff;
  scrollbar-width: thin;
  scrollbar-color: #adc9bc #f1f6f3;
}

.transport-guide :where(.transport-modes table, table.transport-modes, .transport-table-wrap table) {
  width: 100%;
  max-width: none;
  min-width: 580px;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  color: #3f5b61;
  font-size: 12px;
  line-height: 1.8;
}

.transport-guide .transport-table-wrap caption { padding: 15px 17px; color: var(--transport-ink); font-weight: 800; text-align: left; }
.transport-guide .transport-table-wrap :where(th, td) { padding: 14px 16px; border: 0; border-bottom: 1px solid #e2ebe5; text-align: left; vertical-align: top; overflow-wrap: break-word; }
.transport-guide .transport-table-wrap thead th { background: #edf5ef; color: var(--teal-dark, #064c48); font-size: 11px; font-weight: 800; }
.transport-guide .transport-table-wrap tbody th { color: var(--transport-ink); font-size: 12px; font-weight: 800; }
.transport-guide .transport-table-wrap tbody tr:nth-child(even) { background: #f8faf7; }
.transport-guide .transport-table-wrap tbody tr:last-child :where(th, td) { border-bottom: 0; }
.transport-guide .transport-table-wrap :where(p, ul) { margin: 0; font-size: inherit; line-height: inherit; }

.transport-widget {
  min-width: 0;
  max-width: 100%;
  margin: 24px 0;
  padding: 0;
  border: 1px solid #bad6c9;
  border-radius: 14px;
  background: #f0f7f3;
  box-shadow: 0 5px 18px rgb(9 108 101 / 3%);
}

.transport-widget > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 22px;
  gap: 3px 13px;
  align-items: center;
  padding: 19px 20px;
  border-radius: 13px;
  color: var(--teal-dark, #064c48);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.6;
  list-style: none;
  cursor: pointer;
}

.transport-widget > summary::-webkit-details-marker { display: none; }
.transport-widget > summary::before { content: none; }
.transport-widget > summary::after { content: "+"; grid-column: 2; grid-row: 1 / span 2; color: var(--transport-accent, #096c65); font-size: 23px; font-weight: 500; line-height: 1.2; }
.transport-widget[open] > summary { border-bottom: 1px solid #cfe1d6; border-radius: 13px 13px 0 0; }
.transport-widget[open] > summary::after { content: "−"; }
.transport-widget > summary:hover { background: #e7f2eb; }
.transport-widget > summary :where(strong, .transport-widget-title) { display: block; grid-column: 1; font-size: 14px; line-height: 1.6; }
.transport-widget > summary :where(small, .transport-widget-hint) { display: block; grid-column: 1; color: #5b766b; font-size: 11px; font-weight: 500; line-height: 1.7; }
.transport-widget :where(.transport-widget-body, .search-panel) { width: 100%; min-width: 0; max-width: none; padding: 20px; margin: 0; border: 0; border-radius: 0 0 13px 13px; background: #fff; box-shadow: none; }
.transport-widget .transport-widget-body > .search-panel { padding: 0; }
.transport-widget .search-panel :where(h2, h3) { margin: 0 0 10px; font-size: 19px; line-height: 1.45; }
.transport-widget .search-panel > p { max-width: 70ch; font-size: 12px; line-height: 1.85; }
.transport-widget .widget-mount { width: 100%; min-width: 0; max-width: 100%; margin-top: 16px; }
.transport-widget .widget-mount iframe { display: block; width: 100%; max-width: 100%; border: 0; }
.transport-widget .btn { min-height: 43px; padding: 11px 17px; font-size: 12px; }
.transport-widget :where(.widget-actions, .widget-fallback) { gap: 10px; margin-top: 17px; padding-top: 0; }
.transport-widget .ad-note { display: block; margin-top: 13px; font-size: 10px; line-height: 1.7; }
.transport-widget .source { margin-top: 12px; font-size: 11px; line-height: 1.7; }
.transport-widget > :last-child { margin-bottom: 0; }

.transport-guide .guide-visual { min-width: 0; margin-block: 24px; }
.transport-guide .guide-visual .photo-panel { width: 100%; max-width: 100%; max-height: none; margin: 0; aspect-ratio: auto; }
.transport-guide .guide-visual .photo-panel img { display: block; width: 100%; height: auto; max-height: none; }
.transport-guide .guide-visual figcaption { position: static; inset: auto; padding: 12px 15px; border-radius: 0; background: #edf5ef; color: #3d5d56; font-size: 11px; line-height: 1.75; }
.transport-guide .guide-visual figcaption a { color: inherit; }
.transport-timeline { margin-block: 22px 28px; }
.transport-timeline .route-stop { min-width: 0; padding-bottom: 19px; }
.transport-timeline .route-stop:last-child { padding-bottom: 0; }
.transport-timeline .route-stop strong { display: block; margin-bottom: 6px; color: var(--transport-ink); font-size: 14px; line-height: 1.6; }
.transport-timeline .route-stop p { margin: 0; max-width: 70ch; color: var(--muted, #596e78); font-size: 12px; line-height: 1.85; }

.transport-nextsteps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-block: 25px; }
.transport-nextsteps > a { min-width: 0; padding: 18px; border: 1px solid #d3e3d9; border-radius: 13px; background: #f5f9f3; color: var(--transport-ink, #132e3b); font-size: 13px; font-weight: 700; line-height: 1.65; text-decoration: none; }
.transport-nextsteps > a:hover { border-color: #9fc6b4; background: #edf5eb; }
.transport-nextsteps :where(strong, h3) { display: block; margin: 0 0 7px; font-size: 15px; line-height: 1.5; }
.transport-nextsteps p { margin: 0; color: #597168; font-size: 12px; font-weight: 400; line-height: 1.8; }
.transport-choice-grid > a:focus-visible,
.transport-nextsteps > a:focus-visible,
.transport-widget > summary:focus-visible,
.transport-table-wrap:focus-visible { outline: 3px solid var(--gold, #c69245); outline-offset: 3px; }

@media (max-width: 1000px) {
  .transport-guide .guide-layout { gap: 22px; }
  .transport-guide .guide-jumpnav a { padding: 8px 11px; }
  .transport-choice-grid > a { padding: 16px; }
}

@media (max-width: 650px) {
  .transport-guide .guide-chapter { padding: 22px 18px; }
  .transport-guide .guide-chapter-heading { gap: 11px; margin-bottom: 20px; }
  .transport-guide .guide-chapter-heading h2 { font-size: 25px; }
  .transport-guide .guide-chapter-number { min-width: 32px; height: 32px; border-radius: 9px; font-size: 11px; }
  .transport-guide .guide-action-list { padding: 16px; }
  .transport-choice-grid, .transport-airports, .transport-nextsteps { grid-template-columns: minmax(0, 1fr); gap: 11px; }
  .transport-choice-grid { margin-block: 18px 23px; }
  .transport-choice-grid > a { padding: 18px; }
  .transport-choice-grid .link-arrow { margin-top: 13px; padding-top: 0; }
  .transport-airport { padding: 18px; }
  .transport-widget { margin-block: 21px; }
  .transport-widget > summary { padding: 16px; gap: 3px 10px; }
  .transport-widget > summary :where(strong, .transport-widget-title) { font-size: 13px; }
  .transport-widget :where(.transport-widget-body, .search-panel) { padding: 17px 13px; }
  .transport-guide .guide-visual { margin-block: 21px; }
  .transport-guide .guide-visual figcaption { padding: 11px 13px; }
  .transport-guide .transport-table-wrap :where(th, td) { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .transport-choice-grid > a,
  .transport-nextsteps > a,
  .transport-widget > summary { transition: none; }
}

/* /news-enhancements.css */
/* News remains a quiet reading panel beside the travel guides. */
[data-news-root] {
  min-width: 0;
  padding: clamp(22px, 3.2vw, 36px);
  border: 1px solid #d6e5de;
  border-radius: 22px;
  background: #f2f7f3;
  box-shadow: 0 6px 24px rgb(20 52 58 / 3%);
}

.news-board-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 15px 25px;
  margin-bottom: 23px;
}

.news-board-heading > div { min-width: 0; max-width: 760px; }
.news-board-heading .section-kicker { margin-bottom: 9px; font-size: 10px; }
.news-board-heading h2 { margin-bottom: 12px; font-size: clamp(25px, 3.2vw, 35px); line-height: 1.3; }
.news-board-heading p { max-width: 70ch; margin-bottom: 0; color: var(--muted, #596e78); font-size: 13px; line-height: 1.85; }
.news-board-heading > a { flex: none; margin-top: 8px; font-size: 12px; }

[data-news-root] .filters { gap: 8px; margin-bottom: 18px; }
[data-news-root] .filters button { padding: 9px 15px; background: #fff; font-size: 11px; }
[data-news-root] .filters button[aria-pressed="true"] { background: var(--teal, #096c65); color: #fff; }

[data-news-root] .news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
  align-items: stretch;
}

[data-news-root] .news-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 23px 21px;
  border: 1px solid #d6e3dd;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 2px 7px rgb(20 52 58 / 2%);
}

[data-news-root] .news-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 12px; margin: 0; font-size: 10px; line-height: 1.65; }
[data-news-root] .news-source { color: var(--teal, #096c65); font-size: 10px; font-weight: 800; }
[data-news-root] .news-time { color: #70817f; font-size: 10px; font-variant-numeric: tabular-nums; }
[data-news-root] .news-card h3 { margin: 17px 0 16px; font-size: 17px; line-height: 1.6; letter-spacing: -.025em; overflow-wrap: anywhere; }
[data-news-root] .news-card h3 a { color: var(--ink, #132e3b); text-decoration: none; }
[data-news-root] .news-card h3 a:hover { color: var(--teal, #096c65); text-decoration: underline; text-underline-offset: 4px; }
[data-news-root] .news-card-note { margin: 0 0 19px; padding: 14px 0 0; border-top: 1px solid #e5ede7; color: #5a706b; font-size: 12px; line-height: 1.85; }
[data-news-root] .news-card-note strong { display: block; margin-bottom: 6px; color: #698176; font-size: 9px; font-weight: 800; line-height: 1.6; letter-spacing: .07em; text-transform: uppercase; }
[data-news-root] .news-card > .news-card-read { align-self: flex-start; margin-top: auto; padding-top: 8px; color: var(--teal, #096c65); font-size: 11px; font-weight: 800; line-height: 1.7; text-decoration: none; }
[data-news-root] .news-card > .news-card-read:hover { color: var(--teal-dark, #064c48); text-decoration: underline; text-underline-offset: 4px; }

[data-news-root] .news-board-status,
[data-news-root] [data-news-status] { margin: 0 0 18px; color: #5d746a; font-size: 11px; line-height: 1.8; overflow-wrap: anywhere; }
[data-news-root][data-news-state="error"] [data-news-status],
[data-news-root][data-news-state="stale"] [data-news-status] { color: #805e34; }

.news-board-footer { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 18px 25px; margin-top: 23px; padding-top: 19px; border-top: 1px solid #d6e3db; }
.news-board-footer > p { max-width: 78ch; margin: 0; color: #6a7e75; font-size: 10px; line-height: 1.85; }
.news-refresh-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; }
[data-news-root] [data-news-refresh] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: none; min-height: 43px; padding: 10px 16px; border: 1px solid #bdd6c9; border-radius: 10px; background: #fff; color: var(--teal-dark, #064c48); font-size: 11px; font-weight: 800; line-height: 1.6; transition: background-color .18s ease, border-color .18s ease; }
[data-news-root] [data-news-refresh]:not(:disabled):hover { background: #e8f2eb; border-color: #8cb6a2; }
[data-news-root] [data-news-refresh]:disabled { opacity: .65; cursor: wait; }
[data-news-root] :where(button, a):focus-visible { outline: 3px solid var(--gold, #c69245); outline-offset: 4px; }
[data-news-root] > .source { max-width: 100ch; margin-top: 16px; margin-bottom: 0; font-size: 10px; line-height: 1.85; }
[data-news-root] .news-editorial-note { color: #6a7e75; font-size: 10px; line-height: 1.85; }
[data-news-root] .news-empty { grid-column: 1 / -1; padding: 29px 22px; border: 1px dashed #c2d8cb; border-radius: 14px; background: #fff; }
[data-news-root] .news-empty h3 { margin-bottom: 9px; font-size: 18px; line-height: 1.6; }
[data-news-root] .news-empty p { margin: 0; color: var(--muted, #596e78); font-size: 12px; line-height: 1.85; }

@media (max-width: 1000px) and (min-width: 651px) {
  [data-news-root] .news-card { padding: 19px 17px; }
  [data-news-root] .news-card h3 { font-size: 15px; }
}

@media (max-width: 650px) {
  [data-news-root] { padding: 23px 16px; border-radius: 17px; }
  .news-board-heading { gap: 11px; margin-bottom: 20px; }
  .news-board-heading h2 { font-size: 26px; line-height: 1.35; }
  .news-board-heading p { font-size: 12px; }
  .news-board-heading > a { margin-top: 0; }
  [data-news-root] .news-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  [data-news-root] .news-card { padding: 21px 19px; }
  [data-news-root] .news-card h3 { font-size: 17px; margin-block: 15px; }
  [data-news-root] .filters { gap: 7px; }
  [data-news-root] .filters button { padding: 9px 12px; font-size: 10px; }
  .news-board-footer { gap: 15px; margin-top: 19px; padding-top: 17px; }
  .news-refresh-controls { width: 100%; }
  [data-news-root] [data-news-refresh] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  [data-news-root] *, [data-news-root] *::before, [data-news-root] *::after { animation: none; transition: none; }
}

/* /service-extras.css */
/* Compact cards, optional payment details, full-width partner forms. */
.trip-services{--service-line:#d7e5e0;min-width:0;margin-block:30px}
.trip-services .section-heading p{max-width:72ch}
.trip-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;margin-top:24px}
.trip-service-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:clamp(20px,2.2vw,27px);border:1px solid var(--service-line);border-radius:18px;background:linear-gradient(150deg,#fff 65%,#f4f8f5);box-shadow:0 6px 22px rgb(20 52 58 / 3%)}
.trip-service-card>.section-kicker{margin:0 0 12px;font-size:10px;color:var(--teal,#087e8b)}
.trip-service-card>h3{width:100%;min-height:2.65em;margin:0 0 10px;font-size:clamp(20px,1.9vw,23px);line-height:1.3;letter-spacing:-.025em}
.trip-service-card>p:not(.section-kicker):not(.service-payment-badge){min-height:6.8em;margin:0 0 18px;color:#506a71;font-size:14px;line-height:1.7}
.service-payment-badge{display:inline-flex;align-items:center;max-width:100%;min-height:44px;margin:0 0 12px;padding:8px 11px;border:1px solid #bddbc9;border-radius:9px;background:#edf6ef;color:#285d43;font-size:11px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.service-payment-badge.is-conditional{border-color:#e8d9b7;background:#fff7e8;color:#725523}
.service-payment-detail{width:100%;min-width:0;margin:0 0 20px}
.service-payment-detail>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;list-style:none;color:var(--teal-dark,#086871);font-size:12px;font-weight:600;cursor:pointer}
.service-payment-detail>summary::-webkit-details-marker{display:none}
.service-payment-detail>summary::after{content:'+';flex:0 0 auto;font-size:18px;line-height:1}
.service-payment-detail[open]>summary::after{content:'−'}
.service-payment-copy{padding:12px 14px;border:1px solid var(--service-line);border-radius:10px;background:#f5f8f5}
.service-payment-copy p{margin:0 0 10px;color:#536a62;font-size:12px;line-height:1.8}
.service-payment-copy>:last-child{margin-bottom:0}
.service-payment-copy .source{font-size:11px;line-height:1.7}
.trip-service-actions{width:100%;min-width:0;margin-top:auto}
.trip-service-card .trip-service-actions{padding-top:2px}
.trip-service-actions .btn{display:inline-flex;justify-content:center;width:100%;min-height:46px;padding:12px 14px;font-size:12px;line-height:1.5;text-align:center}
.trip-service-actions .ad-note{display:block;min-height:3.4em;margin:10px 0 0;color:#728481;font-size:10px;line-height:1.7;overflow-wrap:anywhere}
/* Forms sit below the three cards; opening one never narrows its content. */
.trip-service-form{width:100%;min-width:0;margin:18px 0 0;border:1px solid #c7dfd8;border-radius:13px;background:#f0f7f4}
.trip-service-form>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;list-style:none;color:var(--teal-dark,#086871);font-size:15px;font-weight:700;cursor:pointer}
.trip-service-form>summary::-webkit-details-marker{display:none}
.trip-service-form>summary::after{content:'+';flex:0 0 auto;font-size:23px;font-weight:400;line-height:1}
.trip-service-form[open]>summary::after{content:'−'}
.trip-service-form-body{min-width:0;padding:22px;border-top:1px solid #d4e6df;border-radius:0 0 13px 13px;background:#fff}
.trip-service-form-body>.search-panel{max-width:none;margin:0;padding:0;border:0;background:transparent}
.trip-service-form-body .widget-mount{width:100%;max-width:100%}
.trip-service-form-body .search-panel>h3{display:none}
.service-outside-country{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,270px);align-items:center;gap:20px 32px;min-width:0;margin-top:22px;padding:clamp(22px,2.6vw,30px);border:1px solid #e3dcc9;border-radius:18px;background:linear-gradient(120deg,#faf6ed,#fdfcf8)}
.service-outside-copy{min-width:0}
.service-outside-copy>.section-kicker{margin-bottom:10px;color:#896530;font-size:10px}
.service-outside-copy>h3{margin:0 0 12px;font-size:24px}
.service-outside-copy>p:not(.section-kicker):not(.service-payment-badge){max-width:76ch;margin-bottom:14px;color:#696653;font-size:14px;line-height:1.75}
.service-outside-copy .service-payment-detail{max-width:76ch;margin-bottom:0}
.service-outside-copy .service-payment-copy{border-color:#e4ddca;background:#fffdf8}
.service-outside-country>.trip-service-form{grid-column:1/-1;margin-top:0}
.service-outside-country>.trip-service-actions{align-self:center;margin-top:0}
.trip-services :where(a,summary):focus-visible{outline:3px solid var(--gold,#c69245);outline-offset:4px}
@media(max-width:1000px) and (min-width:701px){.trip-services-grid{gap:12px}.trip-service-card{padding:20px 17px}.trip-service-card>h3{font-size:20px}.trip-service-card>p:not(.section-kicker):not(.service-payment-badge){min-height:8.5em;font-size:13px}}
@media(max-width:700px){.trip-services-grid{grid-template-columns:minmax(0,1fr);gap:14px}.trip-service-card{padding:23px 21px}.trip-service-card>h3,.trip-service-card>p:not(.section-kicker):not(.service-payment-badge){min-height:0}.trip-service-card>p:not(.section-kicker):not(.service-payment-badge){margin-bottom:16px}.trip-service-actions .ad-note{min-height:0}.service-payment-badge{min-height:0}.trip-service-form>summary{padding:17px 18px;font-size:14px}.trip-service-form-body{padding:18px 14px}.service-outside-country{grid-template-columns:minmax(0,1fr);gap:18px;padding:24px 21px}.service-outside-country>.trip-service-actions{max-width:400px}}
@media(prefers-reduced-motion:reduce){.trip-services :where(a,summary){transition:none}}

/* /visual-enhancements.css */
/* Baseline content stays visible until a working observer explicitly opts in. */
.visual-motion-ready .visual-reveal{transition:opacity .56s ease,transform .56s cubic-bezier(.2,.65,.25,1)}
.visual-motion-ready .visual-reveal:not(.is-visible){opacity:0;transform:translate3d(0,14px,0)}
.visual-motion-ready .visual-reveal.is-visible{opacity:1;transform:none}
.visual-motion-ready .visual-reveal:focus-within{opacity:1;transform:none;transition:none}
.visual-motion-ready .visual-reveal.visual-reveal-immediate{transition:none}
.planning-visual{margin-block:28px}
.planning-visual>.photo-panel{margin:0;aspect-ratio:16/9;max-height:480px}
.planning-visual>.photo-panel>img{display:block;width:100%;height:100%;object-fit:cover}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .photo-panel>img{transition:transform .7s cubic-bezier(.2,.65,.25,1)}
  .photo-panel:hover>img{transform:scale(1.025)}
}
@media(prefers-reduced-motion:reduce){
  .visual-motion-ready .visual-reveal,.visual-motion-ready .visual-reveal:not(.is-visible){opacity:1;transform:none;transition:none}
  .photo-panel>img,.photo-panel:hover>img{transform:none;transition:none}
}
@media print{
  .visual-motion-ready .visual-reveal,.visual-motion-ready .visual-reveal:not(.is-visible){opacity:1;transform:none;transition:none}
  .photo-panel>img{transform:none;transition:none}
}

/* /activities-enhancements.css */
.activities-guide{--activity-line:#d8e7e4}.activity-discovery{margin:24px 0 30px}.activity-discovery .section-heading{align-items:end}.activity-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px}.activity-choice{min-width:0;overflow:hidden;border:1px solid var(--activity-line);border-radius:20px;background:#fff;text-decoration:none;color:var(--ink);transition:transform .22s,box-shadow .22s,border-color .22s;display:flex;flex-direction:column}.activity-choice-image{display:block;width:100%;max-width:100%;height:auto;max-height:none;min-height:0;aspect-ratio:auto;object-fit:contain;transform:none;transition:none}.activity-choice-body{padding:20px;display:grid;gap:10px;flex:1}.activity-choice-body strong{font-size:21px;line-height:1.25}.activity-choice-body>span:not(.link-arrow){color:var(--muted);font-size:14px;line-height:1.65}.activity-choice .link-arrow{font-size:13px;margin-top:3px}.activity-choice:hover,.activity-choice:focus-visible{transform:translateY(-4px);border-color:#78b5b4;box-shadow:0 15px 35px #075a6514}.activity-choice:focus-visible{outline:3px solid #087e8b;outline-offset:4px}.activity-editorial-note{font-size:13px;color:var(--muted);max-width:85ch;margin:0 0 32px}.activity-chapter{padding:30px;overflow:hidden}.activity-chapter .guide-chapter-heading{margin-bottom:22px}.activity-chapter-photo{margin-bottom:24px}.activity-chapter-photo .photo-panel{margin:0;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;overflow:hidden;border-radius:15px;background:#edf5f2}.activity-chapter-photo img{display:block;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;object-fit:contain;transform:none;transition:none}.activity-chapter-photo .photo-panel:hover>img{transform:none;transition:none}.activity-chapter-photo figcaption{position:static!important;max-width:none!important;background:#edf5f2!important;color:#466365!important;padding:10px 14px!important;font-size:11px}.activity-chapter-photo figcaption a{color:#075e69!important}.activity-facts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.activity-facts span{font-size:12px;padding:7px 11px;border-radius:30px;background:#f0f6f3;border:1px solid #dce9e3}.activity-check{border-left:3px solid #c29143;background:#faf6ed;border-radius:0 14px 14px 0;padding:18px 22px;margin:24px 0}.activity-check h3{font-size:17px;margin:0 0 12px}.activity-check li{margin:8px 0;font-size:14px;line-height:1.65}.activity-next{display:flex;gap:20px;flex-wrap:wrap;padding:18px 0 0;border-top:1px solid var(--activity-line);font-size:13px}.activity-note{padding:15px 20px;background:#eef6f2;border-radius:12px;margin-top:15px;font-size:13px}.activity-note p{margin:8px 0 0}.activity-table-wrap{overflow-x:auto;margin:22px 0}.activity-table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.65;min-width:590px}.activity-table caption{text-align:left;font-size:19px;font-weight:650;padding:0 0 16px}.activity-table th,.activity-table td{padding:15px;text-align:left;vertical-align:top;border-bottom:1px solid var(--activity-line)}.activity-table thead{background:#edf5f2}.activity-table tbody th{width:25%;font-weight:600}.activity-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0}.activity-payment-grid>article{min-width:0;border:1px solid var(--activity-line);border-radius:16px;background:#fff;padding:22px;display:flex;flex-direction:column;align-items:start}.activity-payment-grid h3{margin:16px 0 8px}.activity-payment-grid p{font-size:14px;line-height:1.7}.activity-payment-grid .btn{margin-top:auto}.activity-payment-grid .ad-note{display:block;margin-top:8px}.activity-payment-grid .source{font-size:11px}.activity-widget{margin:20px 0}.activity-widget .search-panel{border:0;padding:18px 0 0;background:transparent}.activity-booking-check{margin-top:24px}.activity-payment-grid .service-payment-badge{font-size:11px}
@media(max-width:1000px){.activity-choice-body{padding:16px}.activity-choice-body strong{font-size:19px}.activity-chapter{padding:24px}}
@media(max-width:700px){.activity-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.activity-choice-body{padding:14px;gap:9px}.activity-choice-body strong{font-size:17px}.activity-choice-body>span:not(.link-arrow){font-size:12px}.activity-discovery .section-heading{display:block}.activity-chapter{padding:20px}.activity-payment-grid{grid-template-columns:1fr}.activity-facts span{font-size:11px}.activity-check{padding:16px}.activity-next{gap:12px}}
@media(max-width:380px){.activity-choices{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.activity-choice,.activity-choice-image{transition:none}.activity-choice:hover,.activity-choice:focus-visible,.activity-choice:hover .activity-choice-image{transform:none}}

/* /site-quality.css */
/* Shrink content columns before intrinsic photograph widths. */
img{max-width:100%}.guide-main,.guide-overview,.guide-content,.guide-chapter-body{min-width:0}.guide-overview>.notice{max-width:none}.guide-overview>.filters{padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:14px;align-items:end;gap:14px;margin-top:20px}.guide-overview>.filters label{flex:1;max-width:310px}.guide-overview>.filters select{width:100%;min-width:0}.guide-overview>.source[data-result-count]{margin:14px 0 24px}.hotel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.hotel-card .card-body h2{font-size:23px;line-height:1.25;margin:12px 0 4px}.hotel-card .card-body h3{font-size:17px;line-height:1.5;font-weight:550;margin:8px 0 12px}.hotel-card:has(.photo-panel){display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-column:1/-1;align-items:stretch}.hotel-card>.photo-panel{width:100%;max-width:100%;min-width:0;margin:0;min-height:340px;height:100%;aspect-ratio:auto;overflow:hidden}.hotel-card>.photo-panel img{display:block;position:static;width:100%;max-width:100%;height:100%;object-fit:cover}.hotel-card>.photo-panel figcaption{font-size:10px;max-width:calc(100% - 24px);left:12px;right:12px;bottom:12px;padding:8px 10px}.hotel-card>.card-body{min-width:0;width:100%}.hotel-card .ad-note{display:block;width:100%}.hotel-gallery-link{margin:20px 24px 0;padding:15px 16px;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:10px;row-gap:4px;align-items:center;border:1px solid #d6e5df;border-radius:12px;background:#f2f7f3;text-decoration:none}.hotel-gallery-link>span[aria-hidden]{grid-row:1/3;font-size:26px;color:#087e8b}.hotel-gallery-link strong{font-size:14px}.hotel-gallery-link>span:last-child{font-size:11px;color:#4b6b71}.hotel-gallery-link:hover,.hotel-gallery-link:focus-visible{background:#e7f3ed;border-color:#87b9ac}.hotel-gallery-link:focus-visible{outline:3px solid #087e8b;outline-offset:3px}.hotel-districts{grid-template-columns:repeat(2,minmax(0,1fr))}.hotel-districts .info-box{display:flex;flex-direction:column;align-items:start}.hotel-districts .info-box>.link-arrow{margin-top:auto}.hotel-districts .ad-note{display:block;margin-top:10px;font-size:10px}.guide-chapter-body>.guide-widget-details{max-width:none;margin-top:24px}.guide-chapter-body:has(>.guide-widget-details){max-width:none}.guide-chapter-body:has(>.guide-widget-details)>p,.guide-chapter-body:has(>.guide-widget-details)>.guide-action-list{max-width:78ch}.guide-widget-details .search-panel{min-width:0}.guide-source-details{font-size:12px}.guide-sources.source summary{cursor:pointer;font-weight:600}.site-header .nav-links{gap:2px}.site-header .nav-links>a{padding-inline:11px}
@media(max-width:1100px){.hotel-grid{grid-template-columns:1fr}.hotel-card:has(.photo-panel){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.site-header .nav-links>a{padding-inline:8px;font-size:11px}}
@media(max-width:700px){.hotel-card:has(.photo-panel){display:flex;flex-direction:column}.hotel-card>.photo-panel{height:240px;min-height:0;aspect-ratio:16/10}.hotel-card>.photo-panel img{height:100%}.hotel-districts{grid-template-columns:1fr}.hotel-gallery-link{margin:18px 20px 0}.guide-overview>.filters{padding:16px;display:grid;grid-template-columns:1fr}.guide-overview>.filters label{max-width:none}.site-header .nav-links>a{font-size:14px;padding:12px 14px}.hotel-card .card-body h2{font-size:23px}}

/* Full original photo frames inside detailed guides; heroes and hotel backgrounds are separate. */
.guide-layout .guide-visual>.photo-panel{display:block;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;margin:0;aspect-ratio:auto;overflow:hidden}
.guide-layout .guide-visual>.photo-panel>img{display:block;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;object-fit:contain;transform:none;transition:none}
.guide-layout .guide-visual>.photo-panel:hover>img{transform:none;transition:none}
.guide-layout .guide-visual>.photo-panel>figcaption{position:static;inset:auto;max-width:none;width:100%;margin:0;border-radius:0;padding:12px 15px;background:#edf5ef;color:#3d5d56;font-size:11px;line-height:1.75}
.guide-layout .guide-visual>.photo-panel>figcaption a{color:inherit}

/* Informational overview and split-layout photos also retain their full original frame. */
.guide-overview>.photo-panel,main .split>.photo-panel{display:block;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;margin:0;aspect-ratio:auto;overflow:hidden}
.guide-overview>.photo-panel>img,main .split>.photo-panel>img{display:block;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;object-fit:contain;transform:none;transition:none}
.guide-overview>.photo-panel:hover>img,main .split>.photo-panel:hover>img{transform:none;transition:none}
.guide-overview>.photo-panel>figcaption,main .split>.photo-panel>figcaption{position:static;inset:auto;max-width:none;width:100%;margin:0;border-radius:0;padding:12px 15px;background:#edf5ef;color:#3d5d56;font-size:11px;line-height:1.75}
.guide-overview>.photo-panel>figcaption a,main .split>.photo-panel>figcaption a{color:inherit}
main .split>img{display:block;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;object-fit:contain}

/* /routes-enhancements.css */
.routes-guide{--routes-line:#d7e7e2;--routes-paper:#f2f8f5}.routes-discovery{margin:20px 0 32px}.routes-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.routes-choice{display:flex;flex-direction:column;min-width:0;padding:25px;border:1px solid var(--routes-line);border-radius:18px;color:var(--ink);background:linear-gradient(140deg,#fff,#f1f8f4);text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}.routes-choice:hover{transform:translateY(-3px);box-shadow:0 12px 30px #075e6911;border-color:#82bdb3}.routes-choice:focus-visible{outline:3px solid #087e8b;outline-offset:4px}.routes-choice-days{display:flex;align-items:baseline;gap:9px;color:#0a6c71;font-size:15px}.routes-choice-days strong{font-size:43px;line-height:1.1;letter-spacing:-.055em}.routes-choice-title{font-size:21px;font-weight:700;line-height:1.35;margin:18px 0 10px}.routes-choice>p{font-size:13px;color:#536d73;line-height:1.7;margin:0 0 18px}.routes-choice-meta{font-size:12px;color:#526c70;margin-top:auto}.routes-choice-action{font-size:13px;font-weight:700;color:#076573;margin-top:20px;display:flex;justify-content:space-between;gap:15px}.routes-editorial-note{max-width:85ch;color:var(--muted);font-size:13px;line-height:1.8;margin:0 0 25px}.routes-chapter{padding:30px}.routes-chapter .guide-chapter-heading{margin-bottom:23px}.routes-airport-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.routes-airport-pair>div{padding:18px 20px;border-radius:13px;background:var(--routes-paper);border:1px solid var(--routes-line);min-width:0}.routes-airport-pair span{display:block;font-size:11px;color:#536d73;margin-bottom:8px}.routes-airport-pair strong{font-size:17px;color:#0b6267}.routes-airport-pair p{font-size:12px;line-height:1.7;margin:8px 0 0}.routes-widget{margin:22px 0}.routes-widget>summary{font-size:15px;font-weight:700;padding:17px 19px;cursor:pointer}.routes-widget .search-panel{min-width:0;padding:20px 0 0;border:0;background:none}.routes-widget .guide-widget-body{padding:0 18px 18px}.routes-widget .widget-mount{max-width:100%;min-width:0}.routes-payment-note{font-size:12px;line-height:1.85;padding:14px 17px;border-radius:12px;background:#f3f7f6;color:#416068;margin:15px 0 24px}.routes-payment-note strong{color:#174f55}.routes-photo{margin:25px 0}.routes-guide .routes-photo>.photo-panel{display:block;height:auto!important;min-height:0;max-height:none!important;aspect-ratio:auto!important;overflow:hidden;margin:0;border-radius:14px}.routes-guide .routes-photo>.photo-panel>img{display:block;width:100%;height:auto!important;max-height:none!important;object-fit:contain!important;transform:none!important;transition:none!important}.routes-guide .routes-photo>.photo-panel>figcaption{position:static!important;max-width:none!important;margin:0;padding:11px 14px!important;background:#f0f6f3!important;color:#46646a!important;border-radius:0!important;text-shadow:none!important;font-size:11px;line-height:1.65}.routes-photo-note{font-size:12px;line-height:1.75;color:var(--muted);margin:10px 0 0}.routes-tabs{display:flex;gap:8px;padding:7px;border:1px solid var(--routes-line);background:#f1f7f4;border-radius:14px;margin:25px 0}.routes-tabs button{flex:1;min-height:48px;font-size:15px;font-weight:650;border-radius:10px;background:#fff;border:1px solid transparent;padding:11px 15px}.routes-tabs button[aria-selected=true]{color:#fff;background:#087e8b;border-color:#087e8b}.routes-tabs button:focus-visible{outline:3px solid #bd9246;outline-offset:3px}.routes-plan-panel[hidden]{display:none}.routes-plan-heading{margin:29px 0 22px}.routes-plan-heading h3{font-size:28px;letter-spacing:-.035em;line-height:1.3;margin:9px 0 15px}.routes-route-line{font-size:16px;line-height:1.8;font-weight:650;color:#0b6069;margin:0 0 12px}.routes-fit{font-size:14px;line-height:1.8;color:var(--muted)}.routes-plan-facts{display:grid;grid-template-columns:.65fr 1fr 1.3fr;gap:12px;margin:20px 0}.routes-plan-facts>div{border:1px solid var(--routes-line);border-radius:12px;min-width:0;padding:14px 16px}.routes-plan-facts dt{font-size:11px;color:var(--muted);margin-bottom:6px}.routes-plan-facts dd{font-size:14px;font-weight:650;line-height:1.6;margin:0}.routes-night-plan{background:#faf6ed;border-left:3px solid #bd9246;border-radius:0 12px 12px 0;padding:17px 21px;margin:20px 0}.routes-night-plan>strong{font-size:14px}.routes-night-plan>p{font-size:13px;line-height:1.8;margin:8px 0 0}.routes-day-list{list-style:none;padding:0;margin:26px 0}.routes-day-list>li{list-style:none;margin:0;padding:0}.routes-day{display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:17px;position:relative;padding:0 0 29px}.routes-day-list>li:not(:last-child) .routes-day::before{content:"";position:absolute;left:20px;top:42px;bottom:0;border-left:1px solid #cfdfd8}.routes-day-number{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;color:#0d6e75;background:#eaf5ef;border:1px solid #bad7cf;font-size:15px;font-weight:750;position:relative;z-index:1}.routes-day-content{min-width:0;border:1px solid var(--routes-line);border-radius:14px;background:#fff;padding:22px}.routes-day-place{font-size:11px;letter-spacing:.04em;color:#0c777b;font-weight:650;margin:0 0 8px;line-height:1.65}.routes-day h4{font-size:20px;line-height:1.4;letter-spacing:-.025em;margin:0 0 13px}.routes-day-content>p:not(.routes-day-place):not(.routes-day-night){font-size:14px;line-height:1.85;margin:0 0 17px}.routes-day-check{padding:14px 16px;background:#f4f8f5;border-radius:10px}.routes-day-check>strong{font-size:12px;color:#244f58}.routes-day-check>p{font-size:12px;line-height:1.8;margin:7px 0 0;color:#4c6970}.routes-day-night{font-size:12px;line-height:1.7;margin:16px 0 0;padding-top:13px;border-top:1px solid var(--routes-line);display:flex;gap:12px;flex-wrap:wrap}.routes-day-night>span{color:var(--muted)}.routes-day-night>strong{font-weight:650}.routes-plan-check,.routes-inline-check{padding:20px 22px;border:1px solid #b8d8cc;background:#f0f8f3;border-radius:13px;margin:24px 0}.routes-plan-check>strong,.routes-inline-check>strong{font-size:16px;color:#23594e}.routes-plan-check p,.routes-inline-check p{font-size:13px;line-height:1.85;margin:10px 0 0}.routes-inline-check a{display:inline-block;font-size:13px;margin-top:15px}.routes-skip{padding:16px 19px;border:1px solid var(--routes-line);border-radius:12px;margin:18px 0}.routes-skip summary{font-size:14px;font-weight:650;cursor:pointer}.routes-skip p{font-size:13px;line-height:1.8;margin:13px 0 0}.routes-next{display:flex;gap:14px 22px;flex-wrap:wrap;border-top:1px solid var(--routes-line);padding-top:19px;margin-top:22px;font-size:13px}.routes-table-wrap{overflow-x:auto;margin:24px 0}.routes-table{width:100%;min-width:640px;border-collapse:collapse;font-size:13px;line-height:1.8}.routes-table caption{text-align:left;font-size:18px;font-weight:700;padding:0 0 15px}.routes-table th,.routes-table td{text-align:left;vertical-align:top;padding:15px;border-bottom:1px solid var(--routes-line);min-width:100px}.routes-table th[scope=col]{background:#edf5f0}.routes-table th[scope=row]{font-weight:700;white-space:nowrap}.routes-advice-grid{display:grid;gap:15px}.routes-advice-grid article{border:1px solid var(--routes-line);border-radius:13px;padding:21px}.routes-advice-grid h3,.routes-addon-list h3,.routes-booking-steps h3,.routes-booking-tool>h3{font-size:19px;line-height:1.45;letter-spacing:-.02em;margin:0 0 12px}.routes-advice-grid p,.routes-addon-list p,.routes-booking-steps p,.routes-booking-tool>p{font-size:14px;line-height:1.85;margin:0}.routes-addon-list{display:grid;gap:20px}.routes-addon-list article{padding-bottom:20px;border-bottom:1px solid var(--routes-line)}.routes-addon-list article:last-child{border:0;padding-bottom:0}.routes-addon-list a{display:inline-block;font-size:13px;margin-top:12px}.routes-booking-steps{counter-reset:booking;list-style:none;padding:0;margin:0 0 28px}.routes-booking-steps>li{counter-increment:booking;list-style:none;padding:0 0 22px 39px;position:relative}.routes-booking-steps>li::before{content:counter(booking);position:absolute;left:0;top:1px;width:27px;height:27px;border:1px solid #b4d6c8;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#eef7f2;color:#0a7076;font-weight:700;font-size:12px}.routes-booking-tool{border-top:1px solid var(--routes-line);padding:25px 0 4px}.routes-guide-alternative{margin:24px 0 10px;padding:20px;border-radius:13px;border:1px solid var(--routes-line);background:#f5f9f6}.routes-guide-alternative>strong{font-size:16px}.routes-guide-alternative>p{font-size:13px;line-height:1.8;margin:12px 0 17px}.routes-guide-alternative>.ad-note{display:block;margin-top:9px}.routes-sources{margin-top:24px;font-size:12px}.routes-guide .guide-checked{font-size:11px;line-height:1.8;margin-top:18px}.routes-guide .routes-widget .search-panel .widget-mount{height:auto;overflow:visible}.routes-guide .routes-widget .widget-actions{flex-wrap:wrap}
@media(max-width:1100px){.routes-choice{padding:21px}.routes-choice-title{font-size:19px}.routes-chapter{padding:25px}.routes-choice-days strong{font-size:38px}}
@media(max-width:700px){.routes-choice-grid{grid-template-columns:1fr;gap:12px}.routes-choice{padding:20px;display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:17px}.routes-choice-days{grid-row:1/4;display:block;font-size:12px}.routes-choice-days strong{display:block;margin-bottom:6px;font-size:36px}.routes-choice-title{margin:0 0 9px;font-size:18px}.routes-choice>p{margin:0 0 12px;font-size:12px}.routes-choice-meta{font-size:11px}.routes-choice-action{grid-column:1/-1;margin-top:17px;padding-top:13px;border-top:1px solid var(--routes-line)}.routes-chapter{padding:20px}.routes-airport-pair{grid-template-columns:1fr}.routes-plan-heading h3{font-size:24px}.routes-route-line{font-size:14px}.routes-plan-facts{grid-template-columns:1fr 1fr}.routes-plan-facts>div:last-child{grid-column:1/-1}.routes-tabs{gap:6px;padding:6px}.routes-tabs button{font-size:13px;min-height:45px;padding:10px}.routes-day{grid-template-columns:31px minmax(0,1fr);column-gap:11px;padding-bottom:21px}.routes-day-number{width:31px;height:31px;font-size:12px}.routes-day-list>li:not(:last-child) .routes-day::before{left:15px;top:31px}.routes-day-content{padding:17px}.routes-day h4{font-size:18px}.routes-day-content>p:not(.routes-day-place):not(.routes-day-night){font-size:13px}.routes-day-check{padding:12px}.routes-day-check>p{font-size:12px}.routes-day-night{display:block}.routes-day-night>span{display:block;margin-bottom:4px}.routes-plan-check,.routes-inline-check,.routes-night-plan{padding:17px}.routes-widget .guide-widget-body{padding:0 10px 12px}.routes-advice-grid article{padding:18px}.routes-booking-steps>li{padding-left:36px}.routes-photo{margin:21px 0}}
@media(max-width:700px){.routes-guide .routes-choice{display:grid}}
@media(prefers-reduced-motion:reduce){.routes-choice{transition:none}.routes-choice:hover{transform:none}}
.routes-excursions .guide-widget-body{container-type:inline-size}
.routes-city-tours{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;margin:16px 0}
.routes-excursions .routes-city-tour{margin:0;padding:14px;border:1px solid var(--routes-line);border-radius:14px;background:white;min-width:0}
.routes-city-tour>h4{margin:0 0 10px;font-size:1.1rem}
.routes-city-tour iframe{width:100%;max-width:100%;border:0}
.routes-city-tour .widget-status:not([data-error="true"]){font-size:.8rem}
@container(max-width:690px){.routes-city-tours{grid-template-columns:minmax(0,1fr)}}

/* /hotel-backgrounds.css */
/* Hotel photographs are decorative backgrounds; body-photo frame rules do not apply. */
.hotel-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}
.hotel-background-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 520px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #24424c;
  border-radius: 20px;
  background: #071c27;
  color: #fff;
  box-shadow: 0 8px 24px rgb(12 43 54 / 12%);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.hotel-background-card[hidden] { display: none !important; }
.hotel-background-card:hover { transform: translateY(-4px); border-color: #61999f; box-shadow: 0 17px 34px rgb(12 43 54 / 20%); }
.hotel-background-card > .hotel-background-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center 35%;
  transform: none;
  transition: none;
}
.hotel-background-card > .hotel-background-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  /* Pixel stops keep text contrast stable when an expanded card grows taller. */
  background: linear-gradient(180deg, rgb(5 23 33 / 7%) 0, rgb(5 23 33 / 12%) 95px, rgb(5 23 33 / 65%) 180px, rgb(5 23 33 / 82%) 265px, rgb(5 23 33 / 95%) 390px, #061b26 100%);
}
.hotel-background-content { display: flex; flex: 1; flex-direction: column; min-width: 0; padding: 22px; }
.hotel-background-badges { display: flex; flex-wrap: wrap; align-items: start; gap: 7px; min-height: 26px; }
.hotel-background-badges > span { max-width: 100%; padding: 6px 9px; border-radius: 7px; font-size: 10px; font-weight: 700; line-height: 1.45; }
.hotel-background-city { background: rgb(255 255 255 / 95%); color: #0b535c; }
.hotel-background-format { border: 1px solid rgb(255 255 255 / 42%); background: rgb(6 29 40 / 78%); color: #f6fbfb; }
.hotel-background-copy { display: flex; flex: 1; flex-direction: column; min-width: 0; padding-top: 140px; }
.hotel-background-card .hotel-background-copy > h2 { margin: 0 0 11px; color: #fff; font-size: clamp(23px, 2.2vw, 29px); line-height: 1.2; letter-spacing: -.025em; text-shadow: 0 1px 3px rgb(0 0 0 / 24%); }
.hotel-background-card .hotel-background-headline { max-width: 58ch; margin: 0 0 12px; color: #fff; font-size: 15px; font-weight: 600; line-height: 1.5; }
.hotel-background-card .hotel-background-summary { max-width: 65ch; margin: 0 0 15px; color: #edf5f6; font-size: 14px; line-height: 1.75; }
.hotel-background-details { width: 100%; min-width: 0; margin: 0 0 18px; border-top: 1px solid rgb(225 245 248 / 24%); border-bottom: 1px solid rgb(225 245 248 / 24%); }
.hotel-background-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 0; color: #f7fbfc; font-size: 12px; font-weight: 600; line-height: 1.65; list-style: none; cursor: pointer; }
.hotel-background-details > summary::-webkit-details-marker { display: none; }
.hotel-background-details > summary::after { content: '+'; flex: 0 0 auto; font-size: 20px; font-weight: 400; line-height: 1; }
.hotel-background-details[open] > summary::after { content: '−'; }
.hotel-background-detail-copy { padding: 1px 0 14px; }
.hotel-background-card .hotel-background-detail-copy p { margin: 0 0 12px; color: #e3f0f2; font-size: 12px; line-height: 1.85; }
.hotel-background-card .hotel-background-detail-copy p:last-child { margin-bottom: 0; }
.hotel-background-card .hotel-background-detail-copy strong { color: #fff; }
.hotel-background-booking { width: 100%; min-width: 0; margin-top: auto; }
.hotel-background-card .hotel-background-booking .btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; margin: 0; padding: 12px 15px; border: 1px solid #fff; border-radius: 10px; background: #fff; color: #075964; font-size: 13px; font-weight: 750; line-height: 1.5; text-align: center; text-shadow: none; }
.hotel-background-card .hotel-background-booking .btn:hover { border-color: #d9f5f1; background: #e6f5f1; color: #064b55; }
.hotel-background-card .ad-note { display: block; margin: 10px 0 0; color: #cfdee2; font-size: 10px; line-height: 1.7; overflow-wrap: anywhere; }
.hotel-background-card .hotel-background-booking-note { max-width: 70ch; margin: 10px 0 0; color: #dcebee; font-size: 11px; line-height: 1.75; }
.hotel-background-card .hotel-background-credit { max-width: none; margin: 11px 0 0; font-size: 11px; line-height: 1.5; }
.hotel-background-card .hotel-background-credit a { color: #e1eff1; text-decoration: underline; text-underline-offset: 3px; }
.hotel-background-card :where(a, summary):focus-visible { outline: 3px solid #e6be75; outline-offset: 4px; }
.hotel-photo-grid > .hotel-background-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (max-width: 780px) {
  .hotel-photo-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .hotel-background-card { min-height: 520px; border-radius: 18px; }
  .hotel-background-content { padding: 21px; }
  .hotel-background-copy { padding-top: 140px; }
  .hotel-background-card .hotel-background-copy > h2 { font-size: 25px; }
  .hotel-background-card .hotel-background-summary { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .hotel-background-card { transition: none; }
  .hotel-background-card:hover { transform: none; }
}
