.brand-mark{width:24px;height:24px;margin-right:8px;flex:0 0 auto}
.search-brand{display:flex;align-items:center;gap:10px;margin-bottom:20px;color:var(--sea);font-size:1.05rem;font-weight:800;letter-spacing:-.04em}
.search-brand img{border-radius:50%}
.search-brand em{margin-left:3px;color:var(--red);font-style:normal}

.hero-slide:nth-child(1) img{object-position:center 52%}
.hero-slide:nth-child(2) img{object-position:center 48%}
.hero-slide:nth-child(3) img{object-position:center 43%}
.hero-slide:nth-child(4) img{object-position:center 52%}
.hero-slide:nth-child(5) img{object-position:center 47%}
.hero-slide:nth-child(6) img{object-position:center 50%}
.hero-slide:nth-child(7) img{object-position:center 48%}

.photo-phuket{background-image:linear-gradient(135deg,rgba(18,61,74,.08),rgba(18,61,74,.3)),url('/assets/hero/optimized/ferry-underway.jpg') !important;background-position:center 52%}
.photo-krabi{background-image:url('/assets/hero/optimized/speedboat-ban-phe.jpg') !important;background-position:center 48%}
.photo-eastern{background-image:url('/assets/hero/optimized/raja-pier.jpg') !important;background-position:center 54%}
.international-photo{background-image:url('/assets/hero/optimized/blue-dolphin.jpg') !important;background-position:center 48%}

/* Phase 2: compact sticky navigation and practical content modules */
html{scroll-behavior:smooth;scroll-padding-top:92px}
[id]{scroll-margin-top:92px}
.site-header{position:sticky;top:0;z-index:40;background:rgba(250,249,245,.97);color:var(--text);border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(18,61,74,.06);backdrop-filter:blur(14px)}
.header-inner{height:72px;border-bottom:0}
.site-header .brand{color:var(--sea)}
.site-header .brand em{color:var(--red)}
.site-header .desktop-nav{color:var(--text)}
.site-header .desktop-nav a:hover{color:var(--red)}
.site-header .header-cta{background:var(--red);color:#fff;border-color:var(--red)}
.site-header .menu-toggle span{background:var(--sea)}
.mobile-menu{top:72px;background:var(--sea)}
.logistics-intro,.product-notes{display:grid;grid-template-columns:1.35fr .85fr;gap:26px;margin:26px 0}
.logistics-intro article,.logistics-grid article,.gateway-grid article,.product-notes article{padding:24px;border:1px solid var(--line);background:rgba(255,255,255,.55)}
.logistics-intro h3,.logistics-grid h3,.gateway-grid h3,.product-notes h3{margin-top:0}
.logistics-intro p:last-child,.logistics-grid p:last-child,.gateway-grid p:last-child,.product-notes p:last-child{margin-bottom:0}
.logistics-callout{margin:0;background:var(--sea)!important;color:#fff;border:0!important}
.logistics-callout h3{color:#fff}
.logistics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 28px}
.info-table-wrap{overflow-x:auto;margin-top:26px;border:1px solid var(--line);background:#fff}
.info-table{width:100%;border-collapse:collapse;min-width:700px;text-align:left}
.info-table caption{padding:18px 20px;text-align:left;color:var(--sea);font-size:1.05rem;font-weight:800;letter-spacing:-.02em}
.info-table th,.info-table td{padding:15px 18px;border-top:1px solid var(--line);vertical-align:top}
.info-table th{background:rgba(18,61,74,.055);color:var(--sea);font-size:.73rem;letter-spacing:.1em;text-transform:uppercase}
.info-table td:first-child{font-weight:800;color:var(--sea)}
.gateway-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gateway-grid article{min-height:100%}
.product-notes{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:28px}
.product-notes article{background:var(--sand)}
.class-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
.class-guide-grid article{overflow:hidden;border:1px solid var(--line);background:#fff}
.class-guide-grid article img{display:block;width:100%;height:170px;object-fit:cover}
.class-guide-grid article div{padding:20px}
.class-guide-grid h3{margin-top:0}
.class-guide-grid p{margin-bottom:0}
.season-note{margin-top:22px;padding:18px 20px;border-left:3px solid var(--red);background:rgba(196,67,52,.08)}
.season-note strong{color:var(--red)}
.mobile-sticky-cta{padding-bottom:calc(12px + env(safe-area-inset-bottom));padding-top:12px}

@media (max-width:900px){
  .gateway-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .class-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .product-notes{grid-template-columns:1fr}
}

@media (max-width:620px){
  html{scroll-padding-top:78px}
  [id]{scroll-margin-top:78px}
  .site-header{position:sticky}
  .header-inner{height:69px}
  .mobile-menu{top:69px}
  .logistics-intro,.logistics-grid,.gateway-grid,.class-guide-grid{grid-template-columns:1fr}
  .logistics-intro{gap:14px}
  .logistics-intro article,.logistics-grid article,.gateway-grid article,.product-notes article{padding:20px}
  .class-guide-grid article img{height:150px}
  .info-table-wrap{margin-left:-2px;margin-right:-2px}
  .mobile-sticky-cta{right:12px;left:12px;bottom:calc(10px + env(safe-area-inset-bottom));min-height:52px}
  .brand-mark{width:22px;height:22px;margin-right:7px}
  .search-brand{margin-bottom:17px;font-size:1rem}
  .hero-slide:nth-child(1) img{object-position:58% 52%}
  .hero-slide:nth-child(2) img{object-position:62% 48%}
  .hero-slide:nth-child(3) img{object-position:center 42%}
  .hero-slide:nth-child(4) img{object-position:58% 52%}
  .hero-slide:nth-child(5) img{object-position:58% 48%}
  .hero-slide:nth-child(6) img{object-position:center 48%}
  .hero-slide:nth-child(7) img{object-position:center 48%}
}

/* Phase 3: editorial rhythm, restrained surfaces, and regional visual chapters */
.site-header{background:var(--bg);backdrop-filter:none}

/* Complete route reference expansion. */
.page-toc{position:sticky;top:84px;z-index:35;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.toc-inner{width:min(100% - 2rem,1180px);margin:0 auto;display:flex;align-items:center;gap:24px;min-height:58px}
.toc-label{flex:0 0 auto;color:var(--sea);font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.toc-links{display:flex;align-items:center;gap:20px;overflow-x:auto;scrollbar-width:none}.toc-links::-webkit-scrollbar{display:none}
.toc-link{flex:0 0 auto;padding:19px 0;color:var(--muted);font-size:.76rem;font-weight:800;white-space:nowrap;border-bottom:2px solid transparent}.toc-link:hover,.toc-link.is-active{color:var(--red);border-bottom-color:var(--red)}
.route-reference-article{background:var(--bg);color:var(--text);padding:clamp(4rem,8vw,8rem) 0 7rem}
.route-reference-shell{width:min(100% - 2rem,1120px);margin:0 auto}
.route-reference-intro{width:min(100%,900px);margin:0 auto;padding-bottom:clamp(3rem,7vw,6rem)}
.route-reference-intro h2,.route-heading h2,.reference-chapter h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:.98}
.route-reference-intro h2{font-size:clamp(2.7rem,5.5vw,5.4rem);margin:0 0 1.7rem}
.route-reference-intro>p{max-width:780px;font-size:1.08rem}
.route-index-wrap{margin-top:3rem;border-top:1px solid var(--text);overflow-x:auto}.route-index-table{width:100%;border-collapse:collapse;min-width:640px;text-align:left}.route-index-table caption{text-align:left;padding:18px 0;font-family:var(--serif);font-size:1.6rem}.route-index-table th,.route-index-table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.92rem}.route-index-table th{color:var(--muted);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.route-index-table td:first-child{font-weight:800}.route-index-table a{color:var(--sea)}.route-index-table a:hover{color:var(--red)}
.route-dossier,.reference-chapter{width:min(100%,900px);margin:0 auto;padding:clamp(4rem,8vw,8rem) 0;border-top:1px solid var(--line);scroll-margin-top:155px}.route-heading{margin-bottom:2rem}.route-heading h2,.reference-chapter h2{font-size:clamp(2.35rem,5vw,4.8rem);margin:0}.route-photo{margin:0 0 2rem}.route-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.route-photo--wide img{aspect-ratio:16/8}.route-reference-article figcaption{padding-top:.65rem;color:var(--muted);font-size:.75rem;line-height:1.45}.route-body{max-width:780px}.route-reference-article p{font-size:1.02rem;line-height:1.78;margin:0 0 1.2rem}.route-dossier--image-left,.route-dossier--image-right{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 4rem;align-items:center}.route-dossier--image-left .route-heading,.route-dossier--image-right .route-heading,.route-dossier--image-left .route-facts,.route-dossier--image-right .route-facts,.route-dossier--image-left .schedule-block,.route-dossier--image-right .schedule-block,.route-dossier--image-left .route-types,.route-dossier--image-right .route-types,.route-dossier--image-left .arrival-compare,.route-dossier--image-right .arrival-compare,.route-dossier--image-left .article-cta,.route-dossier--image-right .article-cta,.route-dossier--image-left .route-note,.route-dossier--image-right .route-note{grid-column:1/-1}.route-dossier--image-left .route-photo{grid-column:1;grid-row:2;margin:0}.route-dossier--image-left .route-body{grid-column:2;grid-row:2}.route-dossier--image-right .route-photo{grid-column:2;grid-row:2;margin:0}.route-dossier--image-right .route-body{grid-column:1;grid-row:2}.route-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);margin:3rem 0 2.5rem}.route-facts>div{padding:1.2rem 1.25rem;background:var(--bg)}.route-facts span{display:block;margin-bottom:.4rem;color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.route-facts strong{font-size:.94rem;line-height:1.45}.schedule-block{margin:3rem 0 2.5rem}.schedule-label{margin-bottom:.25rem!important;color:var(--sea);font-family:var(--serif);font-size:1.55rem!important}.schedule-note{color:var(--muted);font-size:.86rem!important}.schedule-table-wrap{overflow-x:auto;border-top:1px solid var(--text);border-bottom:1px solid var(--line)}.schedule-table{width:100%;min-width:720px;border-collapse:collapse;text-align:left}.schedule-table th,.schedule-table td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.84rem;line-height:1.45}.schedule-table th{color:var(--muted);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.schedule-table td:nth-child(3),.schedule-table td:nth-child(4),.schedule-table td:nth-child(5),.schedule-table th:nth-child(3),.schedule-table th:nth-child(4),.schedule-table th:nth-child(5){white-space:nowrap}.schedule-table td:last-child{font-weight:800;color:var(--sea)}
.route-types{border-top:1px solid var(--line);padding-top:1.5rem}.route-types h3,.arrival-compare h3{font-family:Manrope,system-ui,sans-serif;font-size:.75rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--red);margin:0 0 .9rem}.route-types p{margin:.35rem 0;font-size:.95rem}.arrival-compare{display:grid;grid-template-columns:1fr 1fr;gap:2rem;border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.5rem}.arrival-compare p{font-size:.95rem}.article-cta{display:inline-flex;align-items:center;gap:.7rem;margin:1.5rem 0 0;color:var(--red);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.35rem}.article-cta:hover{color:var(--sea)}.route-note{border-left:3px solid var(--red);padding:.7rem 0 .7rem 1rem;margin-top:2rem!important}
.reference-chapter .chapter-heading{margin-bottom:2.5rem}.reference-chapter h2{margin-bottom:0}.vessel-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 1.5rem}.vessel-list>div{border-top:1px solid var(--line);padding:1.5rem 0 2.5rem}.vessel-list figure{margin:0 0 1.2rem}.vessel-list figure img{display:block;width:100%;height:180px;object-fit:cover}.vessel-list h3{font-family:var(--serif);font-size:1.6rem;font-weight:400;margin:0 0 .7rem}.vessel-list p{font-size:.94rem}.editorial-table-wrap{overflow-x:auto}.editorial-table{width:100%;border-collapse:collapse;text-align:left}.editorial-table caption{text-align:left;padding:18px 0;font-family:var(--serif);font-size:1.6rem}.editorial-table th,.editorial-table td{padding:14px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.9rem}.editorial-table th{color:var(--muted);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 2rem}.reference-grid>div{border-top:1px solid var(--line);padding:1.5rem 0}.reference-grid h3{font-family:var(--serif);font-size:1.5rem;font-weight:400;margin:0 0 .6rem}.reference-grid p{font-size:.94rem}.operator-reference-list{display:grid;grid-template-columns:1fr 1fr;gap:0 3rem}.operator-reference-list>div{border-top:1px solid var(--line);padding:1.4rem 0}.operator-reference-list h3{font-family:Manrope,system-ui,sans-serif;font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;margin:0 0 .55rem}.operator-reference-list p{font-size:.94rem}.connection-list{columns:2;padding-left:1.3rem;margin:0}.connection-list li{padding:.5rem .5rem;font-size:1rem}.booking-list{display:grid;grid-template-columns:1fr 1fr;gap:0 3rem;margin:0;padding-left:1.5rem}.booking-list li{padding:1rem 0;border-bottom:1px solid var(--line);font-size:1rem}.booking-list strong,.booking-list span{display:block}.booking-list span{color:var(--muted);font-size:.9rem;line-height:1.5}.reference-faq .faq-list{border-top:1px solid var(--text)}.reference-faq details{border-bottom:1px solid var(--line);padding:1rem 0}.reference-faq summary{font-family:var(--serif);font-size:1.25rem;cursor:pointer;list-style:none;padding-right:2rem;position:relative}.reference-faq summary::-webkit-details-marker{display:none}.reference-faq summary::after{content:'+';position:absolute;right:0;color:var(--red);font-family:Manrope,system-ui,sans-serif}.reference-faq details[open] summary::after{content:'−'}.reference-faq details p{max-width:700px;margin:1rem 0 0;font-size:.94rem;color:var(--muted)}
@media (max-width:900px){.page-toc{top:84px}.toc-inner{gap:16px}.toc-links{gap:16px}.route-dossier--image-left,.route-dossier--image-right{display:block}.route-dossier--image-left .route-photo,.route-dossier--image-right .route-photo{margin-bottom:2rem}.route-dossier--image-left .route-body,.route-dossier--image-right .route-body{max-width:780px}.vessel-list{grid-template-columns:repeat(2,1fr)}.reference-grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.page-toc{top:69px}.toc-inner{width:calc(100% - 1.4rem);min-height:52px;gap:14px}.toc-label{font-size:.63rem}.toc-links{gap:15px}.toc-link{padding:16px 0;font-size:.69rem}.route-reference-article{padding-top:3.5rem}.route-reference-shell{width:min(100% - 1.4rem,1120px)}.route-reference-intro h2,.route-heading h2,.reference-chapter h2{font-size:clamp(2.25rem,12vw,3.7rem)}.route-reference-article p{font-size:.98rem;line-height:1.72}.route-index-table{min-width:590px}.route-facts{grid-template-columns:1fr}.route-facts strong{font-size:.9rem}.schedule-block{margin-top:2.5rem}.schedule-table-wrap{overflow:visible;border-top:1px solid var(--text)}.schedule-table{min-width:0}.schedule-table,.schedule-table tbody,.schedule-table tr,.schedule-table td{display:block;width:100%}.schedule-table thead{display:none}.schedule-table tr{padding:1rem 0;border-bottom:1px solid var(--line)}.schedule-table td{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0;border:0;text-align:right;white-space:normal!important}.schedule-table td::before{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-align:left}.schedule-table td:nth-child(1)::before{content:'Operator'}.schedule-table td:nth-child(2)::before{content:'Type / class'}.schedule-table td:nth-child(3)::before{content:'Departs'}.schedule-table td:nth-child(4)::before{content:'Arrives'}.schedule-table td:nth-child(5)::before{content:'Recent price'}.schedule-table td:last-child{color:var(--sea)}.arrival-compare{grid-template-columns:1fr;gap:1rem}.vessel-list,.reference-grid,.operator-reference-list,.booking-list{grid-template-columns:1fr}.vessel-list figure img{height:210px}.connection-list{columns:1;padding-left:1.2rem}.editorial-table{min-width:660px}.reference-faq summary{font-size:1.1rem}}

/* Phase 4: long-form editorial body. Hero and search styles remain above this block. */
.editorial-article{background:var(--bg);color:var(--text);padding:clamp(4rem,8vw,8rem) 0 7rem}
.editorial-shell{width:min(100% - 2rem,1120px);margin:0 auto}
.article-intro,.article-chapter{width:min(100%,860px);margin:0 auto}
.article-intro{padding-bottom:clamp(3rem,7vw,6rem)}
.article-kicker{margin:0 0 1rem;color:var(--red);font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.article-intro h2,.chapter-heading h2{margin:0 0 1.75rem;max-width:780px;font-family:var(--serif);font-size:clamp(2.5rem,5vw,5.1rem);font-weight:400;line-height:.98;letter-spacing:-.045em}
.article-chapter{padding:clamp(4rem,8vw,8rem) 0;border-top:1px solid var(--line)}
.chapter-heading{margin-bottom:2rem}
.chapter-heading h2{font-size:clamp(2.25rem,4.5vw,4.25rem);margin-bottom:0}
.editorial-article h3{margin:clamp(2.5rem,5vw,4.5rem) 0 1rem;font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.55rem);font-weight:400;line-height:1.05;letter-spacing:-.025em}
.editorial-article p,.editorial-article li{font-size:1.04rem;line-height:1.8}
.editorial-article p{margin:0 0 1.25rem;max-width:760px}
.editorial-article strong{font-weight:800}
.article-list,.route-facts,.mistakes-list{padding-left:1.35rem;margin:1.4rem 0 1.5rem}
.article-list li,.route-facts li{margin:.35rem 0}
.practical-note{border-left:3px solid var(--red);padding:.7rem 0 .7rem 1rem;margin-top:2rem}
.editorial-hero-image,.editorial-wide-image{width:min(100%,1000px);margin:0 auto clamp(4rem,8vw,8rem)}
.editorial-image{margin:0}
.editorial-hero-image img,.editorial-wide-image img,.editorial-image img{display:block;width:100%;height:auto;object-fit:cover}
.editorial-hero-image img{aspect-ratio:3/2}.editorial-wide-image img{aspect-ratio:5/3}.editorial-image img{aspect-ratio:4/3}
.editorial-article figcaption{padding-top:.7rem;color:var(--muted);font-size:.76rem;line-height:1.5}
.editorial-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(260px,.8fr);gap:clamp(2rem,6vw,5rem);align-items:center;margin:2rem 0 1rem}
.editorial-split.reverse{grid-template-columns:minmax(260px,.8fr) minmax(0,1.05fr)}
.editorial-split.reverse>div{order:2}.editorial-split.reverse>figure{order:1}
.editorial-subchapter{margin-top:clamp(4rem,7vw,7rem)}
.editorial-split h3{margin-top:0}
.editorial-table-wrap{overflow-x:auto;margin:2rem 0 2.5rem}
.editorial-table{width:100%;border-collapse:collapse;font-size:.93rem;line-height:1.55}
.editorial-table th,.editorial-table td{padding:1rem 1.1rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.editorial-table th{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.article-cta{display:inline-flex;align-items:center;gap:.7rem;margin:1rem 0 1.5rem;color:var(--red);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.35rem}
.article-cta:hover{color:var(--sea)}
.journey-flow.editorial-flow{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;width:min(100%,560px);margin:1.75rem 0 2rem;padding:1.5rem 1.75rem;border-left:2px solid var(--red);background:#f3eee5}
.editorial-flow span{font-weight:700}.editorial-flow b{color:var(--red);font-size:1.1rem}
.article-subsections{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin:2.5rem 0}
.article-subsections h3{font-family:Manrope,system-ui,sans-serif;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .8rem;color:var(--red)}
.article-subsections p{font-size:.96rem}
.boat-type-list{border-top:1px solid var(--line);margin:2rem 0 3rem}
.boat-type-list>div{display:grid;grid-template-columns:minmax(180px,.65fr) 1fr;gap:2rem;padding:1.35rem 0;border-bottom:1px solid var(--line)}
.boat-type-list h3{font-family:Manrope,system-ui,sans-serif;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:none;margin:0}.boat-type-list p{font-size:.97rem;margin:0}
.editorial-gallery{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:1rem;margin:3rem calc((860px - 1120px)/2) 4rem;width:1120px;max-width:calc(100vw - 2rem);align-items:start}
.editorial-gallery figure{margin:0}.editorial-gallery figure:nth-child(4){grid-column:1 / span 2}.editorial-gallery figure:nth-child(5){margin-top:3rem}
.editorial-gallery img{display:block;width:100%;height:260px;object-fit:cover}.editorial-gallery figure:first-child img{height:360px}
.editorial-gallery figcaption{font-size:.7rem}
.editorial-operator-list{display:grid;grid-template-columns:1fr 1fr;gap:0 3rem;border-top:1px solid var(--line)}
.editorial-operator-list>div{padding:1.5rem 0;border-bottom:1px solid var(--line)}
.editorial-operator-list h3{font-family:Manrope,system-ui,sans-serif;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .7rem}.editorial-operator-list p{font-size:.96rem;margin:0}
.editorial-eight-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem 3rem;padding-left:1.5rem;margin:2rem 0 4rem}.editorial-eight-list li{padding-left:.3rem}.editorial-eight-list strong{display:block}.editorial-eight-list span{display:block;color:var(--muted);font-size:.9rem;line-height:1.5}
.editorial-mistakes{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 2.5rem;padding-left:1.3rem}.editorial-mistakes li{font-size:.98rem;padding-left:.3rem;color:var(--text);border-bottom-color:var(--line)}.editorial-mistakes li::before{color:var(--red)}
.editorial-faq .faq-list{border-top:1px solid var(--line)}
.editorial-faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}.editorial-faq summary{font-family:var(--serif);font-size:1.25rem;cursor:pointer;list-style:none;padding-right:2rem;position:relative}.editorial-faq summary::-webkit-details-marker{display:none}.editorial-faq summary::after{content:'+';position:absolute;right:0;color:var(--red);font-family:Manrope,system-ui,sans-serif;font-size:1.2rem}.editorial-faq details[open] summary::after{content:'−'}.editorial-faq details p{font-size:.96rem;margin:1rem 0 0;max-width:700px;color:var(--muted)}
.legacy-content[hidden]{display:none!important}
@media (max-width:900px){.editorial-gallery{margin-left:0;margin-right:0;width:100%}.editorial-gallery img,.editorial-gallery figure:first-child img{height:240px}}
@media (max-width:680px){.editorial-article{padding-top:3.5rem}.editorial-shell{width:min(100% - 1.4rem,1120px)}.article-intro h2,.chapter-heading h2{font-size:clamp(2.35rem,12vw,3.6rem)}.editorial-article p,.editorial-article li{font-size:1rem;line-height:1.72}.editorial-split,.editorial-split.reverse{display:flex;flex-direction:column;align-items:stretch;gap:2rem}.editorial-split.reverse>div,.editorial-split.reverse>figure{order:initial}.editorial-table{min-width:620px}.article-subsections,.editorial-operator-list,.editorial-eight-list,.editorial-mistakes{grid-template-columns:1fr;gap:0}.article-subsections>div{border-bottom:1px solid var(--line);padding:1.25rem 0}.editorial-operator-list>div{padding:1.25rem 0}.editorial-eight-list{gap:.8rem;padding-left:1.4rem}.editorial-gallery{grid-template-columns:1fr 1fr;gap:.7rem}.editorial-gallery figure:first-child{grid-column:1 / -1}.editorial-gallery figure:first-child img,.editorial-gallery img{height:210px}.editorial-gallery figure:nth-child(4){grid-column:auto}.editorial-gallery figure:nth-child(5){margin-top:0}.editorial-gallery figcaption{font-size:.64rem}.journey-flow.editorial-flow{padding:1.2rem;width:100%}}
.section-kicker>span:first-child{display:none}
.section h2{font-size:clamp(2.25rem,4vw,4.6rem)}
.chapter-section{padding-top:96px;padding-bottom:96px}
.chapter-intro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:end;margin-bottom:52px}
.chapter-intro h2{margin-bottom:22px}
.chapter-intro>div>p{max-width:520px;font-size:1.08rem}
.chapter-photo{margin:0}
.chapter-photo img{width:100%;height:auto;max-height:410px;object-fit:cover}
.chapter-photo figcaption{max-width:520px;margin-top:12px;color:var(--muted);font-size:.78rem;line-height:1.5}
.route-ledger{border-top:1px solid var(--line)}
.route-ledger-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}
.route-ledger-row img{width:120px;height:92px;object-fit:cover}
.route-ledger-row h3{margin:.15rem 0 .5rem;font-size:1.45rem}
.route-ledger-row p{max-width:760px;margin-bottom:.6rem}
.route-ledger-kicker{color:var(--green);font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.route-ledger-index{color:var(--red);font-size:1.6rem;font-weight:800;line-height:1}
.route-ledger-note{margin-top:26px;max-width:900px;padding-top:20px;border-top:2px solid var(--sea);color:var(--text)}
.dark-ledger{border-color:rgba(255,255,255,.25)}
.dark-ledger .route-ledger-row{border-color:rgba(255,255,255,.2)}
.dark-ledger .route-ledger-kicker{color:#f2b6a4}
.dark-ledger .inline-cta{color:#fff}
.dark-note{border-top-color:#f2b6a4;color:#fff}
.andaman-chapter,.eastern-chapter{background:var(--bg)}
.gulf-chapter{color:#fff}
.gulf-chapter p{color:rgba(255,255,255,.72)}
.seasonal-table-wrap{overflow-x:auto;border-top:1px solid var(--text);border-bottom:1px solid var(--line)}
.seasonal-table{width:100%;min-width:820px;border-collapse:collapse;text-align:left}
.seasonal-table caption{text-align:left;padding:18px 0;color:var(--sea);font-size:1.05rem;font-weight:800}
.seasonal-table th,.seasonal-table td{padding:16px 18px;border-top:1px solid var(--line);vertical-align:top}
.seasonal-table th{color:var(--sea);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.seasonal-table td:first-child{width:160px;color:var(--sea);font-weight:800}
.seasonal-callout{margin-top:24px;padding:20px 22px;border-left:3px solid var(--red);background:rgba(201,42,54,.07)}
.product-reading-section{background:var(--sea);color:#fff}
.narrow-reading{max-width:920px}
.narrow-reading p{color:rgba(255,255,255,.72)}
.lede-reading{max-width:680px;font-size:1.12rem}
.product-line-diagram{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:14px;align-items:center;margin:44px 0 38px;padding:24px 0;border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.25)}
.product-line-diagram div{display:flex;flex-direction:column;gap:5px}
.product-line-diagram strong{font-size:1rem;color:#fff}
.product-line-diagram span{font-size:.77rem;color:rgba(255,255,255,.62);line-height:1.4}
.product-line-diagram b{color:#f2b6a4;font-size:1.4rem;font-weight:400}
.product-reading-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.product-reading-grid h3{font-size:1.15rem;color:#fff}
.journey-time-callout{margin-top:38px;padding:24px 0;border-top:2px solid #f2b6a4;color:#fff;font-size:1.12rem}
.journey-time-callout strong{color:#f2b6a4}
.comparison-band{padding:28px 0;border-top:1px solid var(--line)}
.comparison-band h3{margin-bottom:16px;color:var(--sea);font-size:1.3rem}
.route-compare-table{width:100%;border-collapse:collapse;text-align:left}
.route-compare-table th,.route-compare-table td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}
.route-compare-table th{color:var(--sea);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.route-compare-table td:first-child{font-weight:800;color:var(--sea)}

/* Keep tables and checklists functional; open explanatory modules stay unboxed. */
.logistics-intro article:not(.logistics-callout),.logistics-grid article,.gateway-grid article,.product-notes article{border:0;background:transparent;padding:0}
.product-notes{gap:34px}
.class-guide-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 22px}
.class-guide-grid article{border:0;border-top:1px solid var(--line);background:transparent;border-radius:0}
.class-guide-grid article:nth-child(1){grid-column:span 5}
.class-guide-grid article:nth-child(2){grid-column:span 3}
.class-guide-grid article:nth-child(3){grid-column:span 4}
.class-guide-grid article:nth-child(n+4){grid-column:span 4;padding:22px 0 0}
.class-guide-grid article img{height:190px}
.class-guide-grid article div{padding:18px 0 24px}
.class-guide-grid article:nth-child(n+4) p{max-width:300px}
.operator-list article{background:transparent;border-radius:0}
.info-table-wrap{box-shadow:none;border-radius:0}
.feature-photo{border-radius:0}
.photo-eastern{background-image:url('/assets/editorial/eastern-koh-chang-ferry.jpg') !important;background-position:center 56%}

@media (max-width:900px){
  .chapter-intro{grid-template-columns:1fr;gap:30px}
  .product-line-diagram{grid-template-columns:1fr;gap:10px}
  .product-line-diagram b{display:none}
  .product-reading-grid{grid-template-columns:1fr;gap:22px}
  .class-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .class-guide-grid article:nth-child(n){grid-column:auto}
}

@media (max-width:620px){
  .chapter-section{padding-top:72px;padding-bottom:72px}
  .chapter-intro{gap:24px;margin-bottom:34px}
  .chapter-photo img{max-height:280px}
  .route-ledger-row{grid-template-columns:84px minmax(0,1fr);gap:16px;padding:20px 0}
  .route-ledger-row img{width:84px;height:84px}
  .route-ledger-row h3{font-size:1.22rem}
  .route-ledger-row p{font-size:.92rem;line-height:1.6}
  .route-ledger-index{font-size:1.2rem}
  .seasonal-table-wrap{margin-right:-2px;margin-left:-2px}
  .seasonal-table{min-width:760px}
  .product-reading-grid{gap:14px}
  .class-guide-grid{grid-template-columns:1fr}
  .class-guide-grid article:nth-child(n){grid-column:auto}
  .class-guide-grid article img{height:170px}
}
/* Exact ferry terminal map links. */
.route-ports{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;margin:2.5rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line)}
.route-dossier--image-left .route-ports,.route-dossier--image-right .route-ports{grid-column:1/-1}
.route-port{min-width:0}.route-port>span{display:block;margin-bottom:.35rem;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.route-port strong{display:block;margin-bottom:.45rem;font-size:.92rem;line-height:1.4}.route-port--wide{grid-column:1/-1}.route-port-note{margin:.6rem 0 0!important;color:var(--muted);font-size:.82rem!important;line-height:1.5!important}.map-link-list{display:flex;flex-wrap:wrap;gap:.55rem 1rem}.map-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.72rem;font-weight:800;line-height:1.4;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:.15rem}.map-link:hover{color:var(--red);border-bottom-color:currentColor}.map-link-mobile{display:none}
.port-table-wrap{overflow-x:auto;border-top:1px solid var(--text)}.port-table{width:100%;min-width:760px;border-collapse:collapse;text-align:left}.port-table th,.port-table td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.84rem;line-height:1.45}.port-table thead th{color:var(--muted);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.port-table tbody th{font-weight:800}.port-table .map-link{white-space:nowrap}
@media (max-width:620px){.route-ports{grid-template-columns:1fr;gap:1.1rem;margin-top:2rem}.route-port--wide{grid-column:auto}.map-link-wide{display:none}.map-link-mobile{display:inline}.map-link{font-size:.7rem}.port-table{min-width:720px}}

/* Route ticket links behave like compact booking buttons. */
.article-cta{position:relative;display:inline-flex;align-items:center;gap:.7rem;margin:1.5rem 0 0;padding:.72rem 1rem;background:var(--red);color:#fff;border:1px solid var(--red);box-shadow:0 8px 18px rgba(201,42,54,.14);transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.article-cta:hover{color:#fff;background:#aa202b;transform:translateY(-2px);box-shadow:0 12px 24px rgba(201,42,54,.22)}.article-cta span[aria-hidden="true"]{display:inline-block;transition:transform .2s ease}.article-cta:hover span[aria-hidden="true"]{transform:translateX(4px)}.article-cta:focus-visible{outline:3px solid rgba(18,61,74,.35);outline-offset:3px}
[data-gyg-widget="auto"]{margin:1.35rem 0 0;min-height:24px}
@media (min-width:901px){[data-gyg-widget="auto"]{display:flex!important;flex-flow:row nowrap!important;align-items:stretch;gap:16px;overflow-x:auto;padding-bottom:6px}[data-gyg-widget="auto"]>*{flex:1 1 0;min-width:0}[data-gyg-widget="auto"] iframe{flex:1 1 0;min-width:0;width:auto!important}}
.route-dossier--image-left>[data-gyg-widget="auto"],.route-dossier--image-right>[data-gyg-widget="auto"]{grid-column:1/-1}
@media (max-width:620px){.site-header{position:sticky;top:0}.article-cta{width:100%;justify-content:center;margin-top:1.2rem;padding:.78rem .9rem}.route-dossier>[data-gyg-widget="auto"]{margin-top:1.1rem}}
@media (prefers-reduced-motion:reduce){.article-cta,.article-cta span[aria-hidden="true"]{transition:none}.article-cta:hover{transform:none}.article-cta:hover span[aria-hidden="true"]{transform:none}}

/* Japanese typography: readable system fallbacks without shipping a large font. */
html[lang="ja"] body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Noto Sans JP",sans-serif;line-height:1.8}
html[lang="ja"] h1,html[lang="ja"] h2,html[lang="ja"] h3,html[lang="ja"] .button,html[lang="ja"] .toc-link,html[lang="ja"] .article-cta,html[lang="ja"] .section-kicker,html[lang="ja"] .article-kicker{letter-spacing:normal}
html[lang="ja"] .hero h1,html[lang="ja"] .route-reference-intro h2,html[lang="ja"] .route-heading h2,html[lang="ja"] .reference-chapter h2,html[lang="ja"] .final-cta h2{line-height:1.16}

/* Three-locale language dropdown. */
.locale-switcher{position:relative;z-index:70;flex:0 0 auto}.locale-switcher--mobile{display:none}.locale-switcher-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:7px 10px;border:1px solid rgba(255,255,255,.42);border-radius:2px;background:transparent;color:#fff;cursor:pointer;font-size:.74rem;font-weight:800}.locale-switcher-toggle:hover,.locale-switcher-toggle:focus-visible{border-color:#fff;background:rgba(255,255,255,.1)}.locale-icon{font-size:1rem;line-height:1}.locale-chevron{font-size:1rem;line-height:.8}.locale-switcher-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:150px;padding:6px;background:#fff;color:var(--sea);border:1px solid rgba(18,61,74,.14);box-shadow:0 14px 30px rgba(9,29,35,.2)}.locale-switcher-menu[hidden]{display:none}.locale-switcher-menu a{display:block;padding:9px 11px;color:var(--sea);font-size:.78rem;font-weight:800;line-height:1.3;white-space:nowrap}.locale-switcher-menu a:hover,.locale-switcher-menu a:focus-visible,.locale-switcher-menu a[aria-current="page"]{background:var(--sand);outline:none}.locale-switcher-menu a[aria-current="page"]{color:var(--red)}
@media(max-width:900px){.header-inner>.locale-switcher--desktop{display:none}.mobile-menu .locale-switcher--mobile{display:block;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.2)}.mobile-menu .locale-switcher-toggle{width:100%;justify-content:space-between;background:rgba(255,255,255,.06)}.mobile-menu .locale-switcher-menu{position:static;min-width:0;margin-top:6px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);box-shadow:none}.mobile-menu .locale-switcher-menu a{color:#fff}.mobile-menu .locale-switcher-menu a:hover,.mobile-menu .locale-switcher-menu a:focus-visible,.mobile-menu .locale-switcher-menu a[aria-current="page"]{background:rgba(255,255,255,.14);color:#fff}}
html[dir="rtl"] .locale-switcher-menu{right:auto;left:0}html[dir="rtl"] .locale-switcher-toggle{direction:rtl}html[dir="rtl"] .locale-switcher-menu a{direction:auto;text-align:right}

/* Keep the secondary page menu clear of 12Go autocomplete suggestions. */
.page-toc{top:104px;z-index:10}
.affiliate-widget-wrap{z-index:45}
@media (max-width:900px){.page-toc{top:90px}}
@media (max-width:620px){.page-toc{top:84px}}

/* High-contrast language control: keep it legible over the dark header imagery. */
.locale-switcher--desktop .locale-switcher-toggle,.mobile-menu .locale-switcher-toggle{min-width:136px;justify-content:space-between;background:rgba(9,29,35,.9);border:1px solid rgba(255,255,255,.78);border-radius:3px;box-shadow:0 4px 12px rgba(0,0,0,.2);color:#fff}
.locale-switcher-toggle:hover,.locale-switcher-toggle:focus-visible{background:var(--red);border-color:#fff;box-shadow:0 5px 15px rgba(0,0,0,.28)}
.locale-icon{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;background:#f2e8d3;color:var(--sea);font-size:.88rem;font-weight:900}
.locale-current{font-weight:800;letter-spacing:0}
.locale-chevron{margin-left:auto}
.locale-switcher-menu{min-width:164px;padding:5px;border:2px solid var(--sea);border-radius:3px;box-shadow:0 16px 34px rgba(9,29,35,.3)}
.locale-switcher-menu a:hover,.locale-switcher-menu a:focus-visible{background:var(--sand);color:var(--sea)}
.locale-switcher-menu a[aria-current="page"]{background:var(--red);color:#fff}
@media(max-width:900px){.mobile-menu .locale-switcher-toggle{background:var(--sea);border-color:rgba(255,255,255,.85)}.mobile-menu .locale-switcher-menu{background:#fff;border:2px solid var(--sea);box-shadow:0 10px 24px rgba(0,0,0,.16)}.mobile-menu .locale-switcher-menu a{color:var(--sea)}.mobile-menu .locale-switcher-menu a:hover,.mobile-menu .locale-switcher-menu a:focus-visible{background:var(--sand);color:var(--sea)}.mobile-menu .locale-switcher-menu a[aria-current="page"]{background:var(--red);color:#fff}}

/* Premium four-locale selector. */
.locale-switcher-toggle{min-width:156px!important;min-height:40px;padding:6px 9px!important;gap:8px;background:#fff!important;color:var(--sea)!important;border:1px solid rgba(18,61,74,.2)!important;border-radius:5px!important;box-shadow:0 5px 16px rgba(9,29,35,.16)!important}
.locale-switcher-toggle:hover,.locale-switcher-toggle:focus-visible{background:#fff!important;color:var(--red)!important;border-color:var(--red)!important;box-shadow:0 7px 18px rgba(9,29,35,.22)!important}
.locale-flag{display:block;width:22px;height:22px;flex:0 0 22px;border-radius:50%;overflow:hidden}
.locale-flag img{display:block;width:100%;height:100%;object-fit:cover}
.locale-code{min-width:22px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-align:left}
.locale-current,.locale-name{font-size:.76rem;font-weight:700;letter-spacing:0}
.locale-chevron{color:var(--muted);font-size:.95rem}
.locale-switcher-menu{min-width:198px!important;padding:6px!important;background:#fff!important;border:1px solid rgba(18,61,74,.2)!important;border-radius:5px!important;box-shadow:0 16px 36px rgba(9,29,35,.22)!important}
.locale-switcher-menu a{display:grid!important;grid-template-columns:22px 28px 1fr 16px;align-items:center;gap:9px;padding:9px 10px!important;color:var(--sea)!important;font-size:.78rem;font-weight:500!important;border-radius:3px}
.locale-switcher-menu a::before{content:"";display:block;width:22px;height:22px;background:center/cover no-repeat}
.locale-switcher-menu a::after{content:"";display:block;width:16px;color:var(--red);font-size:.9rem;font-weight:800;text-align:center}
.locale-switcher-menu a[lang="en"]::before{background-image:url('/assets/locale-flag-uk.svg')}.locale-switcher-menu a[lang="fr"]::before{background-image:url('/assets/locale-flag-fr.svg')}.locale-switcher-menu a[lang="ar"]::before{background-image:url('/assets/locale-badge-ar.svg')}.locale-switcher-menu a[lang="de"]::before{background-image:url('/assets/locale-flag-de.svg')}.locale-switcher-menu a[lang="es"]::before{background-image:url('/assets/locale-flag-es.svg')}.locale-switcher-menu a[lang="zh-CN"]::before{background-image:url('/assets/locale-flag-zh.svg')}.locale-switcher-menu a[lang="ko"]::before{background-image:url('/assets/locale-flag-ko.svg')}
.locale-switcher-menu a[lang="en"]::after{content:"EN"}.locale-switcher-menu a[lang="fr"]::after{content:"FR"}.locale-switcher-menu a[lang="ar"]::after{content:"AR"}.locale-switcher-menu a[lang="de"]::after{content:"DE"}.locale-switcher-menu a[lang="es"]::after{content:"ES"}.locale-switcher-menu a[lang="zh-CN"]::after{content:"ZH"}.locale-switcher-menu a[lang="ko"]::after{content:"KO"}
.locale-switcher-menu a:hover,.locale-switcher-menu a:focus-visible{background:var(--sand)!important;color:var(--sea)!important}
.locale-switcher-menu a[aria-current="page"]{background:rgba(242,232,211,.72)!important;color:var(--sea)!important}
.locale-switcher-menu a[aria-current="page"] span{color:var(--red)}
@media(max-width:560px){.locale-switcher-toggle{min-width:82px!important;width:auto!important}.locale-current{display:none}.locale-switcher--desktop .locale-switcher-toggle{justify-content:center}.mobile-menu .locale-switcher-toggle{width:100%!important;justify-content:flex-start!important}.mobile-menu .locale-current{display:inline;font-size:.78rem}.locale-switcher-menu{min-width:198px!important}}
@media(max-width:900px){.mobile-menu .locale-switcher-menu{position:static!important;margin-top:8px;background:#fff!important;border:1px solid rgba(18,61,74,.2)!important}.mobile-menu .locale-switcher-menu a{color:var(--sea)!important}}
html[dir="rtl"] .locale-code{text-align:right}html[dir="rtl"] .locale-switcher-menu a{grid-template-columns:22px 28px 1fr 16px;text-align:right}

/* Align icon, abbreviation, name, and selected indicator in each item. */
.locale-switcher-menu a::before,.locale-switcher-menu a::after{display:none!important}
.locale-switcher-menu a .locale-menu-icon{display:block;width:22px;height:22px}.locale-menu-icon img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.locale-menu-code{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em}.locale-menu-label{font-size:.78rem;font-weight:600}.locale-check{color:var(--red);font-size:.9rem;font-weight:900;text-align:center}
html[dir="rtl"] .locale-menu-code{text-align:right}

html[lang="zh-CN"] body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;letter-spacing:normal}
html[lang="ko"] body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;letter-spacing:normal}
