
:root{--bg:#f3f7fc;--surface:#fff;--ink:#08244a;--muted:#60738d;--line:#dbe5f0;--blue:#03a9f4;--blue2:#0877de;--yellow:#f9dd00;--yellow2:#ffd12a;--green:#119447;--green-bg:#edfff3;--green-line:#8be2a7;--shadow:0 14px 38px rgba(10,45,88,.07);--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,"Helvetica Neue",sans-serif;background:var(--bg);color:#071b38;font-size:16px;line-height:1.55;padding-bottom:86px}a{color:#0866d7;text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 32px));margin:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid #e6edf5;backdrop-filter:blur(12px)}.header-in{display:flex;align-items:center;min-height:72px;gap:28px}.brand{font-weight:900;color:var(--ink);font-size:20px;white-space:nowrap}.brand small{display:block;color:#72819a;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.nav{margin-left:auto;display:flex;gap:22px;align-items:center}.nav a{font-weight:700;color:#17395f;font-size:14px}.nav a:hover{text-decoration:none;color:#0877de}.menu-toggle{display:none;margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:12px;font-size:20px;width:44px;height:42px}.page{padding:26px 0 70px}.breadcrumb{font-size:13px;color:#72839a;margin:2px 0 14px}.breadcrumb a{color:#5e7391}.hero{background:linear-gradient(135deg,#0a5dc8 0%,#03a9f4 100%);color:#fff;border-radius:28px;padding:38px;box-shadow:var(--shadow);overflow:hidden;position:relative;margin-bottom:22px}.hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.09);right:-130px;top:-180px}.hero h1{font-size:42px;line-height:1.1;margin:0 0 12px;max-width:720px}.hero p{font-size:18px;max-width:720px;margin:0 0 22px;opacity:.96}.hero-facts{display:flex;flex-wrap:wrap;gap:10px}.hero-fact{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:12px;padding:9px 13px;font-weight:700;font-size:14px}.hero .btn{background:var(--yellow);color:#071b38;margin-top:20px}.grid-layout{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:22px;align-items:start}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 6px 18px rgba(8,36,74,.03);margin-bottom:22px}.card h1,.card h2,.card h3{color:#071f46}.card h2{font-size:26px;margin:0 0 14px;line-height:1.25}.card h3{font-size:18px;margin:0 0 12px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.section-head h2{margin:0}.section-head p{margin:0;color:var(--muted)}.widget-wrap{border:1px solid #d9e6f3;border-radius:20px;padding:20px;background:#fff;overflow:hidden}.widget-note{margin:12px 0 0;color:#667993;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:13px;padding:13px 19px;font-weight:900;font-size:15px;text-decoration:none!important;cursor:pointer}.btn-yellow{background:var(--yellow2);color:#071b38}.btn-blue{background:#0877de;color:#fff}.btn-block{width:100%}.fresh-badge{display:inline-flex;align-items:center;gap:6px;background:var(--green-bg);border:1px solid var(--green-line);color:#087a37;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:900;white-space:nowrap}.fresh-badge:before{content:"•"}.route-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:26px 0 4px}.route-title-row h2{margin:0}.subtle{color:var(--muted)}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;font-size:14px}.schedule-table th{background:#eaf5fe;color:#18375a;text-transform:uppercase;font-size:11px;letter-spacing:.06em;text-align:left;padding:13px 11px}.schedule-table td{padding:13px 11px;border-top:1px solid var(--line);vertical-align:middle}.schedule-table td:first-child{font-weight:900;color:#08244a;font-size:15px}.schedule-table .buy-cell{width:128px}.mobile-schedule{display:none}.info-note{background:#f7fbff;border-left:4px solid var(--blue);border-radius:10px;padding:13px 15px;color:#405873;font-size:14px;margin-top:14px}.route-photo{height:260px;object-fit:cover;width:100%;border-radius:18px;margin:0 0 20px;background:#e5edf7}.side-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:18px}.side-card h3{font-size:17px;margin:0 0 14px}.side-kv{font-size:14px;margin:9px 0}.side-kv strong{color:#061c3a}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.city-card{position:relative;display:block;height:190px;border-radius:18px;overflow:hidden;background:#d9e4ef;box-shadow:0 8px 24px rgba(13,45,82,.08)}.city-card:hover{text-decoration:none;transform:translateY(-2px);transition:.2s}.city-card img{width:100%;height:100%;object-fit:cover}.city-card:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(3,18,39,.8),rgba(3,18,39,.06) 65%)}.city-card span{position:absolute;left:17px;right:17px;bottom:14px;z-index:2;color:#fff;font-size:20px;font-weight:900;text-shadow:0 1px 3px rgba(0,0,0,.4)}.route-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.route-chip{background:#f7fbff;border:1px solid #dce8f4;border-radius:14px;padding:13px 14px;font-weight:800;color:#153b67}.route-chip:hover{border-color:#90c9f2;text-decoration:none;background:#f0f9ff}.points{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.point{border:1px solid var(--line);border-radius:15px;padding:16px;background:#fbfdff}.point b{display:block;color:#08244a;margin-bottom:5px}.search-box{position:relative;margin:10px 0 22px}.search-box input{width:100%;height:50px;border:1px solid #cfdceb;border-radius:14px;padding:0 16px;font-size:16px;outline:none;background:#fff}.search-box input:focus{border-color:#48afe8;box-shadow:0 0 0 3px rgba(3,169,244,.12)}.directions-list{columns:3;column-gap:22px}.direction-link{display:block;break-inside:avoid;border-bottom:1px solid #edf2f7;padding:9px 2px;color:#123c6d;font-weight:700}.alpha{font-size:18px;color:#0b69bf;margin:18px 0 6px;break-after:avoid}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{background:#f7fbff;border:1px solid var(--line);border-radius:16px;padding:18px}.stat b{display:block;font-size:28px;color:#076bc6}.footer{background:#071c37;color:#dce7f4;padding:34px 0 105px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.footer h3{color:#fff;margin-top:0}.footer a{color:#dce7f4}.footer-disclaimer{font-size:12px;color:#9fb0c5;border-top:1px solid #1b3555;margin-top:22px;padding-top:18px}.sticky-buy{position:fixed;z-index:60;bottom:14px;left:50%;transform:translateX(-50%);width:min(330px,calc(100% - 32px));background:#ffd22e;color:#071b38;border:1px solid #f0c400;border-radius:15px;box-shadow:0 10px 32px rgba(5,23,46,.28);padding:15px 24px;text-align:center;font-weight:900;font-size:17px;text-decoration:none!important}.widget-section h2{margin-bottom:7px}.tour-section,.hotel-section{overflow:hidden}.faq details{border-top:1px solid var(--line);padding:13px 0}.faq summary{font-weight:800;cursor:pointer;color:#163b65}.small{font-size:13px}.credits-list li{margin-bottom:10px}.tag{display:inline-block;background:#eef6ff;color:#1769b7;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.route-meta{display:flex;gap:9px;flex-wrap:wrap;margin:8px 0 18px}.empty-schedule{background:#f9fbfd;border:1px dashed #c9d8e7;border-radius:15px;padding:14px}.copy-link{font-size:13px}.price-note{font-weight:700;color:#173a61}.notice{background:#fff9df;border:1px solid #f3df75;border-radius:14px;padding:14px 15px;color:#5c4b00}.current-year{display:inline}.hero-route{padding:30px}.hero-route h1{font-size:34px}.hero-route p{font-size:16px}.route-photo-wrap{position:relative}.inline-list{display:flex;flex-wrap:wrap;gap:8px}.inline-list a{background:#f4f9fe;border:1px solid var(--line);padding:7px 10px;border-radius:10px;font-size:13px;font-weight:700}.content ul{padding-left:20px}.content li{margin:6px 0}
@media(max-width:900px){.grid-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.side-card{margin:0}.photo-grid{grid-template-columns:repeat(2,1fr)}.route-chips{grid-template-columns:repeat(3,1fr)}.directions-list{columns:2}.hero h1{font-size:36px}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;padding:16px 20px;box-shadow:0 16px 30px rgba(0,0,0,.08);flex-direction:column;align-items:flex-start}.nav.open{display:flex}.menu-toggle{display:block}}
@media(max-width:650px){body{font-size:15px;padding-bottom:88px}.container{width:min(1180px,calc(100% - 20px))}.header-in{min-height:64px}.brand{font-size:17px}.brand small{font-size:10px}.nav{top:64px}.page{padding-top:14px}.hero{padding:26px 20px;border-radius:20px}.hero h1,.hero-route h1{font-size:29px}.hero p{font-size:16px}.card{padding:18px;border-radius:18px}.card h2{font-size:23px}.widget-wrap{padding:12px;border-radius:16px}.photo-grid{grid-template-columns:1fr 1fr;gap:10px}.city-card{height:150px;border-radius:14px}.city-card span{left:12px;bottom:10px;font-size:17px}.route-chips{grid-template-columns:1fr 1fr}.points{grid-template-columns:1fr}.directions-list{columns:1}.stats{grid-template-columns:1fr}.schedule-table{display:none}.mobile-schedule{display:block}.trip-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;margin-bottom:14px}.trip-top{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:11px}.trip-top>div+div{border-left:1px solid var(--line);padding-left:16px}.trip-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#74849a;font-weight:900}.trip-time{font-size:22px;font-weight:900;color:#08244a;margin-top:2px}.trip-days{font-weight:800;color:#08244a;margin-top:2px}.trip-kv{padding:7px 0;border-bottom:1px solid #edf2f7}.trip-kv:last-of-type{border-bottom:0}.trip-kv b{display:block}.trip-card .btn{margin-top:11px;width:100%;font-size:16px}.route-title-row{align-items:flex-start;flex-direction:column;margin-top:22px}.fresh-badge{white-space:normal}.sidebar{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.route-photo{height:205px}.sticky-buy{bottom:10px}.hero-facts{gap:7px}.hero-fact{font-size:12px}.section-head{align-items:flex-start;flex-direction:column}}


/* Homepage hero — light editorial layout inspired by the project reference sites */
.home-hero-band{margin-bottom:22px;padding:18px 0 10px}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);gap:28px;align-items:stretch}
.home-hero-card{background:#fff;border:1px solid var(--line);border-radius:28px;padding:42px 46px;box-shadow:0 16px 38px rgba(8,36,74,.07);display:flex;flex-direction:column;justify-content:center;min-height:430px}
.home-hero-eyebrow{font-size:14px;line-height:1.2;font-weight:900;letter-spacing:.13em;color:#0877de;margin-bottom:20px}
.home-hero-card h1{font-size:46px;line-height:1.06;letter-spacing:-.025em;margin:0 0 20px;color:#08244a;max-width:650px}
.home-hero-card>p{font-size:19px;line-height:1.55;color:#60738d;max-width:670px;margin:0 0 30px}
.home-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:30px}
.home-hero-actions .btn{padding:16px 26px;border-radius:15px;font-size:16px}
.home-hero-buy{background:#ffd12e;color:#071b38}
.home-hero-schedule{background:#eaf6ff;color:#0869ad;border:1px solid #cfe8f9}
.home-hero-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.home-hero-fact{background:#f3f7fb;border-radius:16px;padding:15px 17px;min-height:78px;display:flex;flex-direction:column;justify-content:center}
.home-hero-fact span{display:block;color:#74849a;font-size:12px;font-weight:800;margin-bottom:5px}
.home-hero-fact b{display:block;color:#08244a;font-size:14px;line-height:1.3}
.home-hero-photo{position:relative;border-radius:28px;overflow:hidden;min-height:430px;background:#dfeaf5;box-shadow:0 16px 38px rgba(8,36,74,.09)}
.home-hero-photo img{width:100%;height:100%;min-height:430px;object-fit:cover;display:block}
.home-hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(4,22,46,.48),rgba(4,22,46,0) 45%);pointer-events:none}
.home-hero-photo-label{position:absolute;z-index:2;left:24px;right:24px;bottom:21px;color:#fff;font-weight:900;font-size:18px;text-shadow:0 2px 6px rgba(0,0,0,.38)}
@media(max-width:980px){.home-hero-grid{grid-template-columns:1fr}.home-hero-photo{min-height:360px}.home-hero-photo img{min-height:360px}.home-hero-card{min-height:auto}}
@media(max-width:650px){.home-hero-band{padding-top:2px}.home-hero-grid{gap:14px}.home-hero-card{padding:26px 20px;border-radius:20px}.home-hero-eyebrow{font-size:12px;margin-bottom:14px}.home-hero-card h1{font-size:31px;margin-bottom:14px}.home-hero-card>p{font-size:16px;margin-bottom:22px}.home-hero-actions{display:grid;grid-template-columns:1fr;margin-bottom:22px;gap:10px}.home-hero-actions .btn{width:100%;padding:14px 16px}.home-hero-facts{grid-template-columns:1fr;gap:9px}.home-hero-fact{min-height:0;padding:12px 14px}.home-hero-photo{min-height:230px;border-radius:20px}.home-hero-photo img{min-height:230px}.home-hero-photo-label{font-size:15px;left:16px;right:16px;bottom:14px}}


/* Mobile width safety: keep third-party widgets and grid items inside the viewport */
html,body{width:100%;max-width:100%;overflow-x:hidden}
main,.page,.container,.grid-layout,.grid-layout>*,.card,.widget-wrap,.hotel-section,.tour-section,.sidebar,.side-card{min-width:0;max-width:100%}
.widget-wrap,.hotel-section,.tour-section{overflow:hidden}
.widget-wrap iframe,.hotel-section iframe,.tour-section iframe,
.widget-wrap embed,.hotel-section embed,.tour-section embed,
.widget-wrap object,.hotel-section object,.tour-section object{max-width:100%!important;width:100%!important}
.widget-wrap>div,.hotel-section>div,.tour-section>div{max-width:100%!important}
.route-photo,.route-photo-wrap,.route-photo-wrap img{max-width:100%;min-width:0}

@media(max-width:650px){
  .container{width:calc(100% - 20px);max-width:1180px}
  .grid-layout{display:block;width:100%;min-width:0}
  .grid-layout>div,.grid-layout>.sidebar{width:100%;min-width:0;max-width:100%}
  .card{width:100%;min-width:0;max-width:100%;overflow:hidden}

  /* Third-party ticket/hotel/tour widgets must never define page width */
  .widget-wrap{width:100%;min-width:0;max-width:100%;padding:12px;overflow:hidden}
  .widget-wrap iframe,.hotel-section iframe,.tour-section iframe{display:block;width:100%!important;max-width:100%!important;min-width:0!important;border:0}
  .widget-wrap [style*="width"],.hotel-section [style*="width"],.tour-section [style*="width"]{max-width:100%!important}

  /* Schedule: same compact card logic as the reference */
  .schedule-section{padding:18px 14px 20px;overflow:visible}
  .schedule-section .route-title-row{display:block;margin:8px 0 14px}
  .schedule-section .route-title-row h2{font-size:23px;line-height:1.25;margin:0 0 2px}
  .schedule-section .route-title-row .subtle{font-size:14px;line-height:1.35;margin-bottom:11px}
  .schedule-section .fresh-badge{display:inline-flex;width:auto;max-width:100%;padding:5px 10px;font-size:11px;line-height:1.3;white-space:normal}
  .schedule-section .mobile-schedule{display:block;margin-top:0}
  .schedule-section .trip-card{width:100%;margin:0 0 14px;padding:16px;border:1px solid #dce5ef;border-radius:18px;background:#fff;box-shadow:0 4px 12px rgba(8,36,74,.025);overflow:hidden}
  .schedule-section .trip-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin:0 0 10px;padding:0 0 12px;border-bottom:1px solid #e2e9f1}
  .schedule-section .trip-top>div{min-width:0;padding-right:12px}
  .schedule-section .trip-top>div+div{border-left:1px solid #e2e9f1;padding-left:15px;padding-right:0}
  .schedule-section .trip-label{font-size:11px;line-height:1.2;letter-spacing:.075em;color:#718198;font-weight:900}
  .schedule-section .trip-time{margin-top:5px;font-size:22px;line-height:1.05;font-weight:900;color:#061f47}
  .schedule-section .trip-days{margin-top:5px;font-size:15px;line-height:1.2;font-weight:800;color:#061f47;overflow-wrap:anywhere}
  .schedule-section .trip-kv{padding:9px 0;border-bottom:1px solid #e8eef4}
  .schedule-section .trip-kv .trip-label{display:block;margin-bottom:3px}
  .schedule-section .trip-kv b{font-size:15px;line-height:1.25;color:#061f47}
  .schedule-section .trip-card .btn{display:flex;width:100%;min-height:54px;margin:13px 0 0;padding:13px 16px;border-radius:14px;background:#ffd32f;color:#071b38;font-size:18px;line-height:1.1;font-weight:900}
  .schedule-section .info-note{margin-top:12px}
}

@media(max-width:380px){
  .container{width:calc(100% - 14px)}
  .card{padding:14px}
  .schedule-section{padding:14px 10px 18px}
  .schedule-section .trip-card{padding:14px}
  .schedule-section .trip-top>div+div{padding-left:12px}
}

/* Generic responsive embed guard */
iframe{max-width:100%;}


/* Header brand icon */
.brand{display:inline-flex;align-items:center;gap:12px;line-height:1.1;text-decoration:none!important}
.brand-icon{width:40px;height:40px;flex:0 0 40px;object-fit:contain;display:block}
.brand-copy{display:block}
.brand-copy small{margin-top:5px}
@media(max-width:650px){.brand{gap:9px}.brand-icon{width:34px;height:34px;flex-basis:34px}.brand-copy small{margin-top:3px}}
