:root{--ink:#052443;--ink-deep:#03182d;--paper:#fef7ed;--white:#fff;--text:#0b283d;--muted:#3d657d;--line:#d6e8ee;--action:#0b7c8f;--action-hover:#086374;--widget-red:#c7362f;--leaf:#e6f5f9;--sky:#eaf6fb;--sand:#fdf5e8;--mode-bus:#0b7c8f;--mode-train:#e9a100;--mode-ferry:#1592b5;--mode-flight:#7a4cc2;--tint-bus:#e3f4f7;--tint-train:#fff3d6;--tint-ferry:#e4f4fa;--tint-flight:#efe9fa;--focus:#029cbe;--coastal-accent:#029cbe;--sun-gold:#ffb602;--radius:14px;--measure:70ch;--max:1240px;--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s6:1.5rem;--s8:2rem;--s12:3rem;--s16:4rem;--s24:6rem;--ease:cubic-bezier(.16,1,.3,1)}


@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/public-sans-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20A0-20CF}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/public-sans-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20A0-20CF}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/public-sans-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20A0-20CF}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400; font-display:swap;src:url('/assets/fonts/public-sans-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/public-sans-latin-ext-600-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/public-sans-latin-ext-700-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem;color-scheme:light}body{margin:0;background:var(--paper);color:var(--text);font-family:'Public Sans','Hiragino Kaku Gothic ProN','Yu Gothic','Malgun Gothic','PingFang TC','Microsoft JhengHei','Segoe UI',sans-serif;font-size:16px;line-height:1.65;overflow-wrap:break-word}body:lang(ru){font-family:'Segoe UI',Arial,sans-serif}a{color:inherit;text-underline-offset:.22em}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}a,button{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%;height:auto}svg{max-width:100%}::selection{background:var(--leaf);color:var(--ink-deep)}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}input{caret-color:var(--action)}h1,h2,h3,p,a,li,figcaption{overflow-wrap:break-word}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.12;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(2.35rem,4.9vw,4.75rem);font-weight:600;margin-bottom:1.5rem}h2{font-size:clamp(1.8rem,3vw,2.65rem);font-weight:600;margin-bottom:1.2rem}h3{font-size:1.2rem;letter-spacing:-.015em;font-weight:600}.wrap{width:min(calc(100% - 4rem),var(--max));margin-inline:auto}.section{padding-block:4.5rem}.section+.section{border-top:1px solid var(--line)}.skip{position:absolute;top:0;left:1rem;transform:translateY(-120%);z-index:20;background:var(--white);padding:.75rem 1rem}.skip:focus{transform:translateY(0)}.masthead{background:linear-gradient(180deg,var(--white) 0%,var(--sky) 100%);color:var(--ink);border-bottom:1px solid var(--line)}.masthead .brand-name span{color:var(--coastal-accent);opacity:1;font-weight:600}.header-inner{display:flex;align-items:center;gap:2.2rem;min-height:92px}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;margin-right:auto}.brand img{width:42px;height:42px;flex-shrink:0}.brand-name{font-size:1.05rem;font-weight:600;line-height:1.2;letter-spacing:-.025em}.brand-name span{display:block;font-size:.77rem;font-weight:400;letter-spacing:.03em;opacity:.85}.desktop-nav{display:flex;align-items:center;gap:1.5rem;font-size:.86rem}.desktop-nav a{text-decoration:none}.desktop-nav a:hover{text-decoration:underline}.language{position:relative;font-size:.85rem}.language summary{cursor:pointer;list-style:none;padding:.55rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--white)}.language summary::-webkit-details-marker{display:none}.language[open] .language-menu{display:grid;position:absolute;right:0;top:calc(100% + .5rem);min-width:180px;background:var(--white);color:var(--ink-deep);padding:.6rem;box-shadow:0 12px 30px #05244326;z-index:12;border-radius:8px}.language-menu a{padding:.4rem .65rem;text-decoration:none}.language-menu a:hover,.language-menu a[aria-current]{background:var(--leaf)}.mobile-menu{display:none}.home-hero{padding-block:3.5rem 2.75rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.home-hero h1{max-width:20ch;font-size:clamp(2.1rem,3.6vw,3.4rem)}.home-hero h1:lang(ja),.home-hero h1:lang(ko),.home-hero h1:lang(zh-Hant){max-width:16em;font-size:clamp(1.9rem,3vw,2.9rem)}.lead{font-size:1.08rem;line-height:1.7;color:var(--muted);max-width:53ch}.hero-image{position:relative;margin:0}.hero-image img{aspect-ratio:1.2;object-fit:cover;border-radius:var(--radius)}.hero-image figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;padding-top:.75rem;color:var(--muted);font-size:.8rem}.text-link{display:inline-flex;align-items:center;gap:.65rem;font-weight:600;text-decoration:none;border-bottom:1px solid;padding-bottom:.2rem}.arrow{width:20px;height:20px;flex-shrink:0}.draft-note{font-size:.8rem;color:var(--muted);margin-top:1.5rem;display:flex;align-items:baseline;gap:.5rem;line-height:1.5}.draft-note strong{color:var(--ink);font-weight:600;white-space:nowrap}.search-section{background:var(--white);border-block:1px solid var(--line);padding-block:1.6rem 1.25rem}.search-title{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.search-title h2{font-size:1.4rem;letter-spacing:-.025em;margin-bottom:1rem}.widget-slot{position:relative;isolation:isolate;min-width:0}.widget-slot__reserve{min-height:200px}.widget-slot__fallback{color:var(--muted);padding:1.2rem;background:var(--paper);border-radius:8px}.widget-slot__fallback p{margin-bottom:.8rem}.widget-slot[data-widget-state=loaded] .widget-slot__fallback{display:none}.widget-slot [data-widget-error]{padding:1rem;color:var(--action-hover)}.cta{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.8rem 1.2rem;border:0;border-radius:8px;background:var(--action);color:var(--white);font-weight:600;line-height:1.4;text-decoration:none}.cta:hover{background:var(--action-hover)}.cta--quiet{background:var(--leaf);color:var(--ink)}.cta--quiet:hover{background:var(--line)}.route-ctas{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.5rem}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.8rem}.section-heading h2{margin-bottom:0}.destination-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem 1.5rem}.destination-card{text-decoration:none}.destination-card img{width:100%;aspect-ratio:1.42;object-fit:cover;border-radius:var(--radius)}.destination-card:first-child{grid-column:span 2;grid-row:span 2}.destination-card:first-child img{aspect-ratio:1.54;height:calc(100% - 2.8rem);min-height:320px}.destination-card h3{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.8rem 0 0;font-size:1.2rem}.destination-card:hover h3{text-decoration:underline;text-underline-offset:.2em}.discovery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.discovery-card{display:flex;flex-direction:column;text-decoration:none;background:var(--white);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.discovery-card:hover{border-color:var(--ink);box-shadow:0 8px 24px #05244314}.discovery-card img{width:100%;aspect-ratio:1.45;object-fit:cover}.discovery-card-body{padding:1.25rem;display:flex;flex-direction:column;flex-grow:1}.discovery-card h3{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:1.05rem;margin:0 0 .5rem}.discovery-card p{color:var(--muted);font-size:.88rem;line-height:1.55;margin:0}.discovery-card:hover h3{text-decoration:underline;text-underline-offset:.2em}.journey-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:5rem}.journey-layout .lead{font-size:1rem}.journey-list{list-style:none;padding:0;margin:0}.journey-list li{border-bottom:1px solid var(--line)}.journey-list li:first-child{border-top:1px solid var(--line)}.journey-list a{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:1.2rem 0;text-decoration:none;font-size:1.05rem;font-weight:600}.journey-list a:hover{color:var(--action)}.journey-list .route-line{width:40px;height:1px;background:var(--ink);position:relative;transition:width .3s var(--ease)}.route-line:after{content:'';position:absolute;right:0;top:-2px;width:5px;height:5px;background:var(--ink);border-radius:50%}.journey-list a:hover .route-line{width:58px}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.mode-guide{border-top:3px solid var(--mode-bus);padding-top:1.25rem}.mode-guide:nth-child(1){border-top-color:var(--mode-train)}.mode-guide:nth-child(2){border-top-color:var(--mode-bus)}.mode-guide:nth-child(3){border-top-color:var(--mode-ferry)}.mode-guide img{aspect-ratio:1.65;object-fit:cover;width:100%;margin-bottom:1.25rem;border-radius:var(--radius)}.mode-guide h3{font-size:1.5rem}.mode-guide p{color:var(--muted);font-size:.92rem}.planning-strip{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;background:var(--leaf);padding:2.5rem;border-radius:var(--radius)}.planning-links{display:grid;gap:.5rem;align-content:center}.planning-links a{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600}.crumbs{display:flex;gap:.55rem;flex-wrap:wrap;list-style:none;padding:1.5rem 0;margin:0;color:var(--muted);font-size:.78rem}.crumbs li+li:before{content:'/';margin-right:.55rem}.page-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:center;padding-block:.75rem 3rem}.page-hero h1{font-size:clamp(2.25rem,4.4vw,3.75rem)}.page-hero .hero-image img{aspect-ratio:1.4}.check-date{font-size:.8rem;color:var(--muted)}.article-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:4.5rem;padding-block:3.5rem 5rem}.toc{font-size:.85rem;align-self:start;position:sticky;top:1.5rem}.toc h2{font-size:1rem;letter-spacing:-.015em}.toc a{display:block;margin:.7rem 0;color:var(--muted);text-decoration:none}.toc a:hover{color:var(--ink);text-decoration:underline}.prose{max-width:var(--measure);min-width:0}.prose h2{font-size:clamp(1.65rem,2.5vw,2.2rem);margin-top:3.25rem;margin-bottom:1rem}.prose>section:first-child h2,.prose>h2:first-child{margin-top:0}.prose p{margin-bottom:1.25rem}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.4rem 0}.section-photo{margin:1.5rem 0 3rem}.section-photo img{width:100%;aspect-ratio:1.8;object-fit:cover;border-radius:var(--radius)}.prose table{border-collapse:collapse;width:100%;font-size:.9rem}.prose th,.prose td{padding:.75rem;text-align:start;border-bottom:1px solid var(--line);vertical-align:top}.prose th{background:var(--leaf)}.table-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.faq details{border-bottom:1px solid var(--line);padding:1rem 0}.faq summary{font-weight:600;cursor:pointer}.faq details p{margin:1rem 0 0}.source-list{font-size:.83rem}.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.related-grid .destination-card:first-child{grid-column:auto;grid-row:auto}.related-grid .destination-card:first-child img{height:auto;min-height:0;aspect-ratio:1.42}.sister-onward ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem}.sister-onward li{border-bottom:1px solid var(--line)}.sister-onward a{display:block;padding:1rem 0;font-weight:600;text-decoration:none}.sister-onward a:hover{color:var(--action);text-decoration:underline}.footer{background:var(--ink-deep);color:var(--white);padding-block:3rem 2rem}.footer-main{display:flex;justify-content:space-between;gap:3rem;margin-bottom:2.5rem}.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;align-content:start;font-size:.82rem;max-width:45rem}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}.footer-bottom{border-top:1px solid #0e3b52;padding-top:1.5rem;font-size:.75rem;display:flex;gap:1.5rem;justify-content:space-between;flex-wrap:wrap;color:#c2dbe6}.sisters{display:flex;gap:1rem;flex-wrap:wrap}.book-fab{position:fixed;bottom:1rem;right:1.25rem;z-index:15;box-shadow:0 6px 24px #05244333;text-decoration:none;display:flex;align-items:center;gap:.75rem;max-width:calc(100vw - 2.5rem);padding:.85rem 1.2rem;background:var(--action);color:var(--white);border-radius:9px;font-size:.9rem;font-weight:600;line-height:1.4;transition:transform .25s var(--ease),opacity .25s}.book-fab[data-book-fab=near]{opacity:0;pointer-events:none;transform:translateY(12px)}.map-shell{background:var(--white);border-radius:var(--radius);padding:1.5rem}.map-shell svg{display:block;width:100%;height:auto}.map-controls{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;padding-bottom:1rem}.map-controls label{font-size:.82rem;display:flex;align-items:center;gap:.35rem}.map-controls input{accent-color:var(--ink)}.map-controls a{font-size:.82rem;margin-left:auto}.map-shell [hidden]{display:none}.map-caption{font-size:.78rem;color:var(--muted);margin-top:.8rem}.map-figure{margin:1.5rem 0}.not-found{padding-block:6rem;max-width:var(--measure)}
@media(min-width:1600px){.wrap{max-width:1320px}.home-hero{gap:5rem}}
@media(max-width:1000px){.desktop-nav{gap:1rem;font-size:.78rem}.header-inner{gap:1.2rem}.home-hero{gap:2.5rem}.journey-layout{gap:2.5rem}.article-layout{gap:2.5rem;grid-template-columns:190px minmax(0,1fr)}.page-hero{gap:2rem}.discovery-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}
@media(max-width:1100px) and (min-width:768px){.related-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.wrap{width:calc(100% - 2.5rem)}.header-inner{min-height:78px;gap:.8rem}.brand img{width:38px;height:38px;flex-shrink:0}.brand-name{font-size:.95rem}.brand-name span{font-size:.7rem}.desktop-nav{display:none}.language summary{font-size:.75rem;padding:.45rem .6rem;min-height:40px;display:inline-flex;align-items:center}.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;list-style:none;font-size:.78rem;min-height:40px;display:inline-flex;align-items:center}.mobile-menu[open] nav{position:absolute;right:0;top:2.4rem;z-index:13;background:var(--white);color:var(--ink);min-width:210px;padding:1rem;border-radius:8px;box-shadow:0 12px 30px #05244326}.mobile-menu nav a{display:block;padding:.6rem;text-decoration:none}.home-hero{display:flex;flex-direction:column;align-items:stretch;padding-block:2rem;gap:2rem}.home-hero h1{max-width:none;font-size:clamp(1.75rem,7vw,2.5rem)}.hero-image img{aspect-ratio:1.45}.lead{font-size:1rem}.draft-note{font-size:.73rem;margin-top:1rem;flex-wrap:wrap;gap:.25rem}.search-section{padding-block:1.4rem 1rem}.search-title{flex-direction:column;align-items:flex-start;gap:.4rem}.search-title h2{font-size:1.25rem;margin-bottom:0}.widget-slot__reserve{min-height:362px}.section{padding-block:3rem}.section-heading{align-items:start;flex-direction:column;gap:.7rem}.destination-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem}.destination-card:first-child{grid-column:span 2;grid-row:auto}.destination-card:first-child img{height:auto;min-height:0;aspect-ratio:1.6}.destination-card h3{font-size:1rem}.destination-card img{aspect-ratio:1.2}.discovery-grid{grid-template-columns:1fr;gap:1.25rem}.journey-layout{grid-template-columns:1fr;gap:1.5rem}.journey-list a{font-size:.98rem}.mode-grid{grid-template-columns:1fr;gap:2rem}.mode-guide{display:block}.mode-guide img{width:100%;aspect-ratio:1.65;margin:0 0 1rem}.mode-guide h3{font-size:1.3rem}.mode-guide p{font-size:.85rem}.planning-strip{grid-template-columns:1fr;gap:1rem;padding:1.5rem}.planning-strip h2{font-size:1.8rem}.page-hero{grid-template-columns:1fr;gap:1.5rem;padding-block:1rem 2rem}.page-hero h1{font-size:clamp(1.8rem,7vw,2.65rem)}.page-hero .hero-image img{aspect-ratio:1.65}.article-layout{display:block;padding-block:2rem 3rem}.toc{position:static;display:flex;flex-wrap:wrap;gap:.4rem .6rem;margin-bottom:2.5rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.toc h2{width:100%;margin-bottom:.5rem}.toc a{margin:.1rem 0;padding:.3rem .6rem;background:var(--leaf);border-radius:6px;font-size:.8rem}.related-grid{grid-template-columns:1fr}.sister-onward ul{grid-template-columns:1fr}.footer-main{display:block}.footer-links{margin-top:2rem;gap:1rem 1.5rem}.footer{padding-bottom:6rem}.footer-bottom{display:block}.sisters{margin-top:1rem;display:grid;gap:.5rem}.book-fab{left:1.25rem;right:1.25rem;bottom:1rem;justify-content:center}.map-shell{padding:.75rem}.map-controls{gap:.5rem}.map-controls a{margin-left:0}.crumbs{padding-block:1rem;font-size:.72rem}.section-photo img{aspect-ratio:1.5}.not-found{padding-block:3rem 4rem}}@media(max-width:480px){.route-ctas{flex-direction:column;align-items:stretch}.route-ctas .cta{width:100%;justify-content:center}}@media(max-width:440px){.destination-grid{grid-template-columns:1fr}.destination-card:first-child{grid-column:auto}.journey-list a{padding:1rem 0;font-size:1rem}.journey-list .route-line{display:none}}@media(max-width:370px){.wrap{width:calc(100% - 1.5rem)}.header-inner{gap:.4rem}.brand-name{font-size:.88rem}.brand-name span{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}@media print{.masthead,.search-section,.toc,.book-fab,.footer,.map-controls{display:none}.wrap{width:100%}.article-layout,.page-hero{display:block}.page-hero .hero-image{max-width:50%}.prose{max-width:none}body{background:white}}

.author-box{display:flex;gap:1rem;align-items:flex-start;border-top:1px solid var(--line,#d6e8ee);padding-top:1.5rem;margin-top:2rem;font-size:.92rem}.author-box img{flex:0 0 52px}.author-box .name{font-weight:700;margin-top:0}.author-box p{margin-bottom:.65rem}.home-prose{max-width:70ch}

.map-controls button,.map-controls select{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:.45rem .65rem;min-height:38px}.map-controls select{max-width:100%}.map-controls button:hover{background:var(--leaf)}.map-viewport{aspect-ratio:1500/1690;overflow:hidden;border-radius:8px;touch-action:pan-y}.map-viewport>svg{width:100%;height:100%;cursor:grab;user-select:none}.map-viewport>svg:active{cursor:grabbing}.map-index{font-size:.85rem;margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}.map-index summary{cursor:pointer;font-weight:600;color:var(--ink)}.map-index table{width:100%;border-collapse:collapse;margin-block:1rem}.map-index th,.map-index td{text-align:start;padding:.55rem;border-bottom:1px solid var(--line)}.map-index ul{columns:2;gap:2rem;padding-left:1.1rem}.map-index li{break-inside:avoid;margin:.4rem 0}.map-index a{overflow-wrap:anywhere}.map-figure .map-caption{max-width:95ch;line-height:1.6}@media(max-width:767px){.map-controls{font-size:.75rem}.map-controls label{font-size:.75rem}.map-controls select{max-width:220px}.map-viewport{aspect-ratio:3/4}.map-index ul{columns:1}.map-index table{font-size:.73rem}}

/* Polish layer (18 October 2026): sister-site footer, full-bleed home hero, headings with a little
   punch and quiet motion. Loaded after site.css and map.css, so these rules settle earlier ones. */

/* ===== Headings ===================================================================== */
.prose h2{position:relative;padding-top:.95rem}
.prose h2:before{content:"";position:absolute;left:0;top:0;width:44px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--action),var(--coastal-accent) 70%,var(--sun-gold))}
.prose h3{color:var(--ink);margin-top:2rem}
.page-hero h1,.prose h2,.section-heading h2,.journey-layout h2{letter-spacing:-.03em}
.page-hero h1{background:linear-gradient(120deg,var(--ink-deep) 0%,var(--ink) 55%,var(--action) 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.section-heading h2,.journey-layout h2{position:relative;padding-left:1rem}
.section-heading h2:before,.journey-layout h2:before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--sun-gold),var(--action))}
.faq h2,.source-list h2{padding-top:.95rem}

/* ===== Footer, sister-site structure =============================================== */
.footer{position:relative;background:linear-gradient(180deg,#05284a 0%,var(--ink-deep) 100%);color:#d7e9f1;padding-block:4rem 2.25rem;font-size:.92rem}
.footer:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--action) 0%,var(--coastal-accent) 55%,var(--sun-gold) 100%)}
.footer a{color:#e8f4f8;text-decoration:none;transition:color .2s var(--ease)}
.footer a:hover{color:var(--white);text-decoration:underline;text-decoration-color:var(--sun-gold);text-underline-offset:.28em}
.footer ::selection{background:var(--sun-gold);color:var(--ink-deep)}
.footer-top{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem}
.footer-brand .brand{color:var(--white);margin:0 0 1rem}
.footer-brand .brand-name span{color:#7fd3e6;opacity:1}
.footer-tagline{color:#c2dbe6;max-width:36ch;line-height:1.6;margin-bottom:1.1rem}
.footer-mail{display:inline-flex;align-items:center;gap:.55rem;max-width:100%;padding:.55rem .85rem;border:1px solid #1b4a68;border-radius:999px;font-size:.85rem;overflow-wrap:anywhere;transition:border-color .2s var(--ease),background .2s var(--ease)}
.footer-mail svg{width:18px;height:18px;flex:none}
.footer-mail:hover{border-color:var(--sun-gold);background:#ffffff0f;text-decoration:none}
.footer-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 2.5rem}
.footer-heading{margin:0 0 .85rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7fd3e6}
.footer-heading:lang(ja),.footer-heading:lang(ko),.footer-heading:lang(zh-Hant){letter-spacing:.04em;font-size:.78rem}
.footer-col ul,.footer-inline{list-style:none;margin:0 0 1.6rem;padding:0;display:grid;gap:.5rem}
.footer-list--two{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem}
.footer-mode{display:inline-flex;align-items:center;gap:.6rem}
.footer-mode:before{content:"";width:9px;height:9px;flex:none;border-radius:50%;background:var(--mode-bus);box-shadow:0 0 0 3px #ffffff14}
.footer-mode--train:before{background:var(--mode-train)}
.footer-mode--ferry:before{background:var(--mode-ferry)}
.footer-meta{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:1.5rem 3rem;margin-top:1rem;padding-top:2rem;border-top:1px solid #12405e}
.footer-inline{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0}
.footer-bottom{display:grid;gap:.4rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #12405e;font-size:.78rem;color:#a9c7d6}
.footer-bottom p{margin:0;max-width:90ch}
@media(min-width:1100px){.footer-top{grid-template-columns:minmax(0,.85fr) minmax(0,2.15fr);gap:4rem}}
@media(max-width:1099px) and (min-width:768px){.footer-meta{grid-template-columns:1fr 1fr}.footer-group--elsewhere{grid-column:1/-1}}
@media(max-width:767px){.footer{padding-block:3rem 6.5rem}.footer-cols{grid-template-columns:1fr 1fr;gap:1.75rem 1.5rem}.footer-cols .footer-col:first-child{grid-column:1/-1}.footer-list--two{grid-template-columns:1fr}.footer-meta{grid-template-columns:1fr;gap:1.25rem}.footer-col ul{margin-bottom:1.25rem}.footer-col a,.footer-inline a{display:inline-block;padding-block:.2rem}}
@media(max-width:420px){.footer-cols{grid-template-columns:1fr}}

/* ===== Homepage hero: full-bleed photograph ======================================== */
.home-hero-band{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(560px,78vh,760px);display:flex;align-items:flex-end;color:var(--white);background:var(--ink-deep)}
.home-hero-bg{position:absolute;inset:0;z-index:-2;margin:0}
.home-hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:heroDrift 16s var(--ease) forwards}
.home-hero-band:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#03182d8c 0%,#03182d1a 30%,#03182d40 55%,#03182deb 100%),linear-gradient(90deg,#03182dcc 0%,#03182d40 55%,#03182d00 80%)}
.home-hero-inner{padding-block:1rem 4.5rem}
.home-hero-inner .crumbs{color:#ffffffc7;padding-top:0}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ffe08a}
.hero-eyebrow:before{content:"";width:28px;height:2px;background:var(--sun-gold);border-radius:2px}
.hero-eyebrow:lang(ja),.hero-eyebrow:lang(ko),.hero-eyebrow:lang(zh-Hant){letter-spacing:.06em}
.home-hero-inner h1{max-width:17ch;margin-bottom:1.1rem;font-size:clamp(2.2rem,1.3rem + 3.4vw,4.3rem);line-height:1.05;color:var(--white);text-shadow:0 2px 28px #03182d73}
.home-hero-inner h1:lang(ja),.home-hero-inner h1:lang(ko),.home-hero-inner h1:lang(zh-Hant){max-width:15em;font-size:clamp(1.8rem,1.1rem + 2.4vw,3.2rem);line-height:1.22}
.home-hero-inner h1:lang(ru),.home-hero-inner h1:lang(de),.home-hero-inner h1:lang(fr){max-width:20ch;font-size:clamp(2rem,1.2rem + 3vw,3.8rem)}
.home-hero-inner .lead{color:#ffffffeb;max-width:60ch;font-size:clamp(1rem,.95rem + .25vw,1.13rem)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.6rem 0 1.4rem}
.cta--sun{background:var(--sun-gold);color:var(--ink-deep)}
.cta--sun:hover{background:#ffc93d;color:var(--ink-deep)}
.cta--glass{background:#ffffff1f;color:var(--white);border:1px solid #ffffff59;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.cta--glass:hover{background:#ffffff33}
.hero-routes{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.5rem}
.hero-routes a{display:inline-block;padding:.4rem .85rem;border-radius:999px;background:#03182d66;border:1px solid #ffffff3d;color:var(--white);font-size:.82rem;font-weight:600;text-decoration:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.hero-routes a:hover{background:#ffffff26;border-color:#ffffffa6;transform:translateY(-2px)}
.home-hero-inner .draft-note{color:#ffffffb3}
.home-hero-inner .draft-note strong{color:var(--white)}
.hero-photo-link{position:absolute;right:1.5rem;bottom:1.4rem;display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:#ffffffd9;text-decoration:none;padding:.35rem .75rem;border-radius:999px;background:#03182d59;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hero-photo-link .arrow{width:16px;height:16px}
.hero-photo-link:hover{color:var(--white);background:#03182d99}
@keyframes heroDrift{to{transform:scale(1)}}
@media(max-width:1100px){.hero-photo-link{display:none}}
@media(max-width:767px){.home-hero-band{min-height:0;padding-top:6rem}.home-hero-inner{padding-block:.5rem 3rem}.hero-actions .cta{flex:1 1 12rem;justify-content:center}.home-hero-band:before{background:linear-gradient(180deg,#03182d59 0%,#03182d73 35%,#03182df2 100%)}}

/* ===== Small, quiet motion ========================================================= */
.destination-card img,.mode-guide img,.discovery-card img{transition:transform .5s var(--ease),filter .5s var(--ease)}
.destination-card,.mode-guide{display:block}
.destination-card:hover img,.mode-guide:hover img,.discovery-card:hover img{transform:scale(1.03);filter:saturate(1.08)}
.discovery-card{transition:border-color .2s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease)}
.discovery-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px -18px #05244359}
.cta{transition:background .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.cta:hover{transform:translateY(-1px);box-shadow:0 10px 22px -12px #05244380}
.cta:active{transform:translateY(0)}
.arrow{transition:transform .25s var(--ease)}
.cta:hover .arrow,.text-link:hover .arrow,.destination-card:hover .arrow,.discovery-card:hover .arrow,.hero-photo-link:hover .arrow{transform:translateX(4px)}
.prose a{text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--action) 55%,transparent);transition:text-decoration-color .2s var(--ease)}
.prose a:hover{text-decoration-thickness:2px;text-decoration-color:var(--action)}
.prose table tbody tr{transition:background .15s}
.prose table tbody tr:hover{background:#e6f5f973}
.faq summary{transition:color .2s var(--ease)}
.faq summary:hover{color:var(--action)}
.masthead{position:sticky;top:0;z-index:14;transition:box-shadow .3s var(--ease)}
.masthead.is-scrolled{box-shadow:0 8px 24px -16px #05244366}
.js-reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js-reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js-reveal{opacity:1;transform:none}.home-hero-bg img{animation:none;transform:none}.discovery-card:hover,.cta:hover,.hero-routes a:hover{transform:none}}
html{scroll-padding-top:7rem}.toc{top:7.5rem}@media(max-width:767px){html{scroll-padding-top:5.5rem}}


/* ===== Header with a little life ==================================================== */
.masthead:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--action) 0%,var(--coastal-accent) 55%,var(--sun-gold) 100%)}
.masthead{background:linear-gradient(180deg,#ffffffeb 0%,#eaf6fbeb 100%);-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px)}
.brand img{transition:transform .5s var(--ease)}
.brand:hover img{transform:rotate(-8deg) scale(1.06)}
.desktop-nav{gap:1.15rem;font-size:.88rem}
.desktop-nav a{position:relative;display:inline-flex;align-items:center;gap:.42rem;padding:.55rem .1rem;font-weight:600;color:var(--ink);text-decoration:none}
.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:.15rem;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--action),var(--sun-gold));transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.desktop-nav a:hover{text-decoration:none;color:var(--ink-deep)}
.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}
.desktop-nav a[aria-current]{color:var(--action)}
.desktop-nav a[data-mode]:before,.mobile-menu nav a[data-mode]:before{content:"";width:8px;height:8px;border-radius:50%;flex:none;background:var(--mode-bus)}
.desktop-nav a[data-mode=train]:before,.mobile-menu nav a[data-mode=train]:before{background:var(--mode-train)}
.desktop-nav a[data-mode=ferry]:before,.mobile-menu nav a[data-mode=ferry]:before{background:var(--mode-ferry)}
.language summary{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .7rem .4rem .45rem;border-radius:999px;border:1px solid var(--line);background:var(--white);font-weight:600;color:var(--ink);box-shadow:0 1px 2px #0524430f;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.language summary:hover,.language[open] summary{border-color:var(--action);box-shadow:0 6px 18px -10px #0b7c8f80}
.lang-flag{width:20px;height:20px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 1px #05244326}
.lang-chevron{font-size:.8rem;line-height:1;transition:transform .25s var(--ease)}
.language[open] .lang-chevron{transform:rotate(180deg)}
.language[open] .language-menu{min-width:200px;padding:.45rem;gap:.1rem;border:1px solid var(--line);animation:menuIn .22s var(--ease)}
.language-menu a{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:8px;font-weight:500}
.language-menu a[aria-current]{font-weight:700;color:var(--action)}
.mobile-menu summary{gap:.55rem;padding:.4rem .75rem;border-radius:999px;border:1px solid var(--line);background:var(--white);font-weight:600}
.burger{display:inline-grid;gap:3px;width:16px}.burger i{display:block;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s var(--ease),opacity .2s}
.mobile-menu[open] .burger i:nth-child(1){transform:translateY(5px) rotate(45deg)}.mobile-menu[open] .burger i:nth-child(2){opacity:0}.mobile-menu[open] .burger i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.mobile-menu[open] nav{animation:menuIn .22s var(--ease);border:1px solid var(--line);min-width:230px;padding:.5rem}
.mobile-menu nav a{display:flex!important;align-items:center;gap:.55rem;border-radius:8px;font-weight:600}
.mobile-menu nav a:hover,.mobile-menu nav a[aria-current]{background:var(--leaf)}
@keyframes menuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:1180px){.desktop-nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;list-style:none;font-size:.82rem;min-height:40px;display:inline-flex;align-items:center}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu[open] nav{position:absolute;right:0;top:calc(100% + .5rem);z-index:13;background:var(--white);color:var(--ink);border-radius:10px;box-shadow:0 12px 30px #05244326}.mobile-menu nav a{padding:.6rem .7rem;text-decoration:none}}
@media(max-width:480px){.lang-current{display:none}.language summary{padding:.35rem .5rem .35rem .4rem}.mobile-menu summary{padding:.4rem .6rem}}
@media(prefers-reduced-motion:reduce){.brand:hover img{transform:none}}

/* Breadcrumbs stay on one line; the current page truncates with an ellipsis (as on PT). */
.crumbs{flex-wrap:nowrap;white-space:nowrap;overflow:hidden;min-width:0}.crumbs li{flex:none}.crumbs li:last-child{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.crumbs a{text-decoration-thickness:1px}

/* Booking bar (owner, 18 October 2026): full-width bottom bar like the sister sites, in this site's
   palette. Deep teal ground (white text at AA or better), gold top line and a gold call-to-action pill
   with navy text. sister-site.js hides it while the search form is on screen (data-book-fab="near"). */
.book-bar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:block;color:var(--white);text-decoration:none;background:linear-gradient(100deg,#05495a 0%,#086374 45%,#0b7c8f 100%);box-shadow:0 -10px 30px #03182d40;padding-bottom:env(safe-area-inset-bottom,0px);transition:transform .35s var(--ease),opacity .35s var(--ease)}
.book-bar:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--sun-gold) 0%,#ffd65c 50%,var(--coastal-accent) 100%)}
.book-bar:hover,.book-bar:focus-visible{color:var(--white)}
.book-bar:focus-visible{outline:3px solid var(--sun-gold);outline-offset:-3px}
.book-bar[data-book-fab=near]{transform:translateY(110%);opacity:0;pointer-events:none}
.book-bar__inner{width:min(calc(100% - 2rem),var(--max));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0}
.book-bar__text{display:flex;align-items:center;gap:.6rem;min-width:0;font-weight:700;font-size:.95rem;line-height:1.25}
.book-bar__text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.book-bar__icon{width:20px;height:20px;flex:none;color:var(--sun-gold)}
.book-bar__btn{position:relative;flex:none;display:inline-flex;align-items:center;gap:.45rem;padding:.72rem 1.15rem;border-radius:999px;background:linear-gradient(135deg,#ffd45e 0%,#ffb602 60%,#f2a200 100%);color:var(--ink-deep);font-weight:800;font-size:.98rem;white-space:nowrap;box-shadow:0 2px 4px #6b450040,0 10px 24px #ffb60266;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.book-bar__btn .arrow{width:18px;height:18px;stroke-width:2.2}
.book-bar:hover .book-bar__btn{transform:translateY(-1px);box-shadow:0 2px 4px #6b450040,0 14px 32px #ffb60299}
@media(min-width:768px){.book-bar__inner{padding:.85rem 0;gap:2rem}.book-bar__text{font-size:1.08rem}.book-bar__icon{width:22px;height:22px}.book-bar__btn{padding:.9rem 1.8rem;font-size:1.05rem}}
@media(max-width:767px){.book-bar__inner{gap:.75rem}.book-bar__text{font-size:.84rem}.book-bar__text span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
@media(max-width:360px){.book-bar__icon{display:none}.book-bar__btn{padding:.65rem .9rem;font-size:.9rem}}
@media(prefers-reduced-motion:no-preference){.book-bar__btn:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;animation:barPing 2.4s var(--ease) 1.2s 2}}
@keyframes barPing{0%{box-shadow:0 0 0 0 #ffb602a6}100%{box-shadow:0 0 0 14px #ffb60200}}
@media(prefers-reduced-motion:reduce){.book-bar,.book-bar__btn{transition:none}}
@media print{.book-bar{display:none}}

/* Header: bigger logo on desktop inside the same 92px bar; Destinations and Journeys open as menus. */
@media(min-width:768px){.masthead .brand img{width:58px;height:58px}.masthead .brand{gap:.85rem}.masthead .brand-name{font-size:1.2rem}.masthead .brand-name span{font-size:.86rem}}
.nav-drop{position:relative}
.nav-drop summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;font-weight:600;color:var(--ink)}
.nav-drop summary::-webkit-details-marker{display:none}
.nav-drop summary.is-current{color:var(--action)}
.nav-chevron{display:inline-block;font-size:.85em;line-height:1;transform:translateY(-.18em);transition:transform .2s var(--ease)}
.nav-drop[open] .nav-chevron{transform:translateY(.1em) rotate(180deg)}
.desktop-nav .nav-drop summary{padding:.55rem .1rem}
.desktop-nav .nav-drop summary:hover{color:var(--ink-deep)}
.desktop-nav .nav-drop-menu{display:none}
.desktop-nav .nav-drop[open] .nav-drop-menu{display:grid;position:absolute;left:-.8rem;top:calc(100% + .4rem);min-width:250px;padding:.45rem;gap:.1rem;background:var(--white);color:var(--ink-deep);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #05244326;z-index:14;animation:menuIn .22s var(--ease)}
.desktop-nav .nav-drop-menu a{padding:.5rem .65rem;border-radius:8px;font-weight:500;white-space:nowrap}
.desktop-nav .nav-drop-menu a:after{display:none}
.desktop-nav .nav-drop-menu a:hover,.desktop-nav .nav-drop-menu a[aria-current]{background:var(--leaf);color:var(--ink-deep)}
.mobile-menu[open] nav{max-height:calc(100vh - 120px);overflow-y:auto}
.mobile-menu .nav-drop summary{display:flex;justify-content:space-between;width:100%;padding:.6rem .7rem;border-radius:8px}
.mobile-menu .nav-drop summary:hover,.mobile-menu .nav-drop[open] summary{background:var(--leaf)}
.mobile-menu .nav-drop-menu{display:none;padding:.15rem 0 .35rem .65rem}
.mobile-menu .nav-drop[open] .nav-drop-menu{display:block}
.mobile-menu .nav-drop-menu a{font-weight:500;font-size:.95em}

/* Single reading column (owner, 18 October 2026): no table of contents. */
.article-layout{display:block}
.article-layout>.prose{max-width:var(--measure);margin-inline:auto}

/* Booking section balance (owner, 18 October 2026): equal space above the heading and below the widget.
   The slot keeps its reserved height only while the widget loads (no layout shift), then fits it. */
.search-section{padding-block:2rem}
.search-section h2{margin-bottom:1rem}
.widget-slot[data-widget-state=loaded]{min-height:0}
.widget-slot>.one2go{vertical-align:top}

/* Mobile vertical rhythm (owner, 18 October 2026): one spacing scale on phones. Sections carry 24px each
   side, so a divider sits in a 48px gap; the booking search gets 28px of room; the map and a section's
   first photo add no extra margin; hero, article and footer seams use the same 48-56px steps. */
@media(max-width:767px){
.home-hero-band{padding-top:2.75rem}
.home-hero-inner{padding-bottom:1.75rem}
.home-hero-band .check-date{margin-bottom:0}
.page-hero{padding-block:.75rem 1.25rem}
.search-section{padding-block:1.75rem}
.search-section h2{margin-bottom:1rem}
.section{padding-block:1.5rem}
.section-heading{margin-bottom:1.25rem}
.map-figure{margin-block:0}
.section>.section-photo:first-child{margin-top:0}
.article-layout{padding-block:1.5rem .5rem}
.prose h2{margin-top:2.25rem}
.prose>h2:first-child{margin-top:0}
.section-photo{margin:1.25rem 0 1.5rem}
.author-box{margin-top:1.75rem}
.footer{padding-top:2rem}
}
