/* Native responsive homepage. Other itinerary routes keep their booklet layout. */
body.home-white { display:block; padding:0 0 90px!important; background:#fff!important; color:#526c76; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; -webkit-font-smoothing:antialiased; }
body.home-white .mobile-viewport-fit { width:100%!important; height:auto!important; background:#fff!important; }
body.home-white .mobile-container { --guide-ink:#123f55; --guide-muted:#526c76; --guide-line:#e0ebef; --guide-body:17px; --guide-small:13px; --guide-title:34px; --guide-touch:44px; --mobile-body-font:17px; --mobile-main-title-font:42px; --mobile-card-font:16px; --mobile-date-font:13px; --mobile-button-font:16px; width:100%!important; max-width:1244px; margin:0 auto; padding:0 32px; gap:0!important; transform:none!important; background:#fff; }
body.home-white .mobile-container > section { width:100%; min-width:0; margin:0; padding:72px 0!important; height:auto!important; min-height:0!important; overflow:visible; border-radius:0; background:#fff!important; box-shadow:none; }
body.home-white .mobile-container > section + section { border-top:1px solid #e0ebef; }
body.home-white .mobile-container > section::before,body.home-white .mobile-container > section::after { display:none; }
body.home-white .mobile-container [id] { scroll-margin-top:24px; scroll-margin-bottom:100px; }
body.home-white :is(a,button,summary):focus-visible { outline:3px solid #287c8a; outline-offset:4px; }
body.home-white .home-header { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:92px; border-bottom:1px solid #e0ebef; }
body.home-white .home-brand { text-decoration:none; color:#123f55; font-size:24px; font-weight:750; letter-spacing:.08em; }
body.home-white .home-brand small { display:block; margin-top:3px; font-size:9px; letter-spacing:.18em; font-weight:500; color:#526c76; }

body.home-white .mobile-container > section.home-hero { position:relative; display:grid; grid-template-columns:45% 55%; align-items:center; padding:30px 0 0!important; }
body.home-white .home-hero-copy { z-index:1; padding:36px 0 46px; }
body.home-white .home-eyebrow { margin:0 0 22px; color:#3d7b8b; font-size:12px; line-height:1.5; font-weight:650; letter-spacing:.16em; }
body.home-white .home-hero h1 { max-width:440px; margin:0; color:#123f55; font-size:clamp(38px,4vw,56px); font-weight:750; line-height:1.26; letter-spacing:-.035em; text-wrap:balance; }
body.home-white .home-subtitle { max-width:440px; margin:24px 0; font-size:17px; color:#526c76; line-height:1.85; }
body.home-white .home-hero h1 { white-space:pre-line; }
body.home-white .home-hero-facts { display:flex; flex-wrap:wrap; gap:8px 0; color:#376d7d; font-size:13px; line-height:1.6; }
body.home-white .home-hero-facts span + span { margin-left:12px; padding-left:12px; border-left:1px solid #d6e3e8; }

body.home-white .home-hero-art { position:relative; margin-left:-70px; margin-right:-30px; align-self:stretch; min-height:430px; }
body.home-white .home-hero-art img { position:absolute; width:100%; max-width:none; height:100%; left:0; top:0; object-fit:cover; object-position:65% 62%; }
body.home-white .home-hero-art::after { content:""; position:absolute; inset:0 -2px; background:linear-gradient(90deg,#fff 0%,transparent 16%,transparent 92%,#fff 100%); pointer-events:none; }
body.home-white .home-hero-caption { z-index:1; grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:23px 0; color:#567781; font-size:12px; letter-spacing:.1em; border-top:1px solid #e0ebef; }
body.home-white .home-hero-caption i { margin:0 16px; color:#b2c8d0; font-style:normal; }
body.home-white .mobile-container :is(.section-header) { margin:0 0 30px; text-align:left; }
body.home-white .mobile-container :is(.section-header h2,.day-detail-section .day-route-title) { margin:0; color:#123f55; font-size:34px!important; line-height:1.4!important; font-weight:650; letter-spacing:0; }
body.home-white .mobile-container :is(.section-subtitle) { margin:10px 0 0; font-size:13px!important; line-height:1.6!important; color:#526c76; letter-spacing:.1em!important; }

body.home-white .itinerary-list { gap:0; padding:0; }
body.home-white .itinerary-item { gap:28px; padding:23px 0; align-items:flex-start; border-bottom:1px solid #e0ebef; }
body.home-white .itinerary-item:first-child { padding-top:0; }
body.home-white .day-badge { min-width:62px; width:62px; flex:0 0 62px; margin:0; padding:9px 0; border-radius:3px; background:#edf5f7; color:#316d7d; font-size:12px!important; font-weight:650; }
body.home-white .itinerary-content { display:flex; flex-direction:column; padding:0; border:0; border-radius:0; background:none; }
body.home-white .itinerary-meta { order:2; gap:10px 26px; margin:8px 0 0; font-size:13px!important; font-weight:400; }
body.home-white .itinerary-meta :is(i,svg) { width:15px; height:15px; font-size:14px; }
body.home-white .mobile-container .itinerary-route { font-size:17px!important; font-weight:550; }
body.home-white .itinerary-route a { min-height:34px; }
body.home-white .guide-day-note { margin:20px 0 0; padding:0; border:0; background:none; color:#637b85; font-size:13px; line-height:1.8; }
body.home-white .route-map-card,body.home-white .route-map-img-wrap { height:auto!important; max-height:none; border:0; border-radius:0; background:transparent; box-shadow:none; margin:0!important; padding:0!important; }
body.home-white .guide-map img { width:100%; height:auto!important; object-fit:contain; border-radius:0; }
/* Reserve map space before its lazy-loaded image arrives. */
body.home-white .guide-map img { aspect-ratio:auto 9 / 7; }
body.home-white .guide-anchor { height:0; margin:0; padding:0; }
body.home-white .day-detail-section .day-detail-header { justify-content:flex-start; align-items:center; gap:24px; margin-bottom:22px; }
body.home-white .day-number { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; flex:0 0 58px; width:58px; min-height:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:#3b7989; }
body.home-white .day-number span { font-size:11px; letter-spacing:.14em; }
body.home-white .day-number strong { font-size:44px; line-height:1.15; font-weight:500; }
body.home-white .day-heading { min-width:0; padding-left:24px; border-left:1px solid #dbe7ec; }
body.home-white .day-title-en { margin-top:8px; color:#667e87; font-size:12px!important; letter-spacing:.1em; }
body.home-white .day-facts { gap:8px 16px; margin:0 0 18px; padding:0; border:0; font-size:13px!important; line-height:1.7!important; }
body.home-white .day-fact { gap:6px; padding:0; margin:0; border:0; color:#526c76; }
body.home-white .day-fact :is(i,svg) { width:15px; height:15px; font-size:14px; }
body.home-white .day-fact-highlights { flex-basis:100%; }
body.home-white .guide-day-route { padding:14px 18px; margin:0 0 28px; font-size:14px; border:0; border-radius:4px; background:#f3f8fa; color:#366878; font-weight:400; }
body.home-white .day-detail-section .day-detail-body { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:44px; padding:0; flex-grow:0; }
body.home-white .detail-text-card { min-width:0; padding:0; border:0; border-radius:0; }
body.home-white .mobile-container .detail-text-card :is(p,li) { margin:0 0 17px; font-size:16px!important; line-height:1.95!important; color:#526c76; text-align:left; letter-spacing:0; }
body.home-white .mobile-container .detail-text-card :is(h3,h4) { margin:22px 0 12px; font-size:18px!important; line-height:1.6; color:#123f55; }
body.home-white .detail-text-card :is(strong,b) { color:inherit; font-weight:700; }
body.home-white .detail-text-card :is(ul,ol) { padding-left:1.2em; margin:16px 0; }
body.home-white .day-detail-section .guide-gallery { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px!important; margin:0; }
body.home-white .day-detail-section .guide-gallery > .gallery-item { aspect-ratio:4/3!important; height:auto!important; grid-column:auto; grid-row:auto; border:0; border-radius:6px; box-shadow:none; transform:none; }
body.home-white .day-detail-section .guide-gallery > .gallery-item:only-child { grid-column:1/-1; aspect-ratio:4/3!important; }
body.home-white .photo-source-note { margin:0 0 36px; padding:0; font-size:13px!important; color:#637b85; }
body.home-white .guide-bottom-bar { max-width:580px; box-shadow:0 3px 20px #153e530d; border-color:#dfebef; border-radius:8px; }
body.home-white .guide-bottom-bar a { color:#315f70; font-weight:500; }
@media(max-width:900px) {
  body.home-white .home-hero h1 { font-size:42px; }

  body.home-white .home-hero-art { margin-left:-50px; min-height:420px; }

  body.home-white .day-detail-section .day-detail-body { gap:28px; }
}
@media(max-width:680px) {
  body.home-white .mobile-container { padding:0 22px; --guide-title:26px; --guide-body:16px; --mobile-body-font:16px; }
  body.home-white .home-header { min-height:78px; gap:16px; }
  body.home-white .home-brand { font-size:21px; }
  body.home-white .home-brand small { font-size:8px; }

  body.home-white .mobile-container > section.home-hero { display:block; padding:0!important; }
  body.home-white .home-hero-copy { position:relative; padding:38px 0 0; }
  body.home-white .home-eyebrow { margin-bottom:16px; font-size:11px; }
  body.home-white .home-hero h1 { max-width:420px; font-size:38px; line-height:1.3; }
  body.home-white .home-subtitle { max-width:360px; margin:18px 0; font-size:15px; line-height:1.8; }
  body.home-white .home-hero-facts { font-size:11px; }
  body.home-white .home-hero-facts span + span { margin-left:9px; padding-left:9px; }

  body.home-white .home-hero-art { height:260px; min-height:0; margin:-8px -22px 0; overflow:hidden; }
  body.home-white .home-hero-art img { height:100%; width:100%; left:0; object-fit:cover; object-position:center 75%; }
  body.home-white .home-hero-art::after { background:linear-gradient(180deg,#fff 0%,transparent 15%,transparent 88%,#fff 100%); }
  body.home-white .home-hero-caption { padding:17px 0; font-size:10px; letter-spacing:.02em; gap:10px; flex-wrap:wrap; }
  body.home-white .home-hero-caption i { margin:0 6px; }
  body.home-white .mobile-container > section:not(.home-hero) { padding:42px 0!important; }
  body.home-white .mobile-container :is(.section-header h2,.day-detail-section .day-route-title) { font-size:26px!important; }
  body.home-white .mobile-container :is(.section-header) { margin-bottom:24px; }

  body.home-white .itinerary-item { gap:14px; padding:18px 0; }
  body.home-white .day-badge { min-width:48px; width:48px; flex-basis:48px; padding:8px 0; font-size:10px!important; }
  body.home-white .mobile-container .itinerary-route { font-size:15px!important; }
  body.home-white .itinerary-meta { font-size:12px!important; gap:6px 12px; }
  body.home-white .itinerary-meta span { max-width:100%; }
  body.home-white .guide-day-note { font-size:12px; }
  body.home-white .route-map-section .guide-map { margin-left:-12px; margin-right:-12px; }
  body.home-white .route-map-section .section-header { padding:0 12px; }
  body.home-white .day-detail-section .day-detail-header { gap:15px; margin-bottom:20px; }
  body.home-white .day-number { flex-basis:43px; width:43px; }
  body.home-white .day-number strong { font-size:36px; }
  body.home-white .day-heading { padding-left:15px; }
  body.home-white .day-title-en { font-size:10px!important; letter-spacing:.05em; }
  body.home-white .day-facts { font-size:12px!important; }
  body.home-white .guide-day-route { padding:12px 14px; font-size:13px; margin-bottom:24px; }
  body.home-white .day-detail-section .day-detail-body { grid-template-columns:1fr; gap:14px; }
  body.home-white .mobile-container .detail-text-card :is(p,li) { font-size:16px!important; line-height:1.9!important; }
  body.home-white .day-detail-section .guide-gallery { gap:8px!important; }
  body.home-white .guide-bottom-bar { bottom:0; width:100%; max-width:none; border-radius:0; padding-top:6px; }
}
@media(max-width:360px) {
  body.home-white .mobile-container { padding-left:18px; padding-right:18px; }

  body.home-white .home-hero h1 { font-size:34px; }
  body.home-white .home-hero-art { margin-left:-18px; margin-right:-18px; }
  body.home-white .home-hero-caption { flex-wrap:wrap; }

}
@media(prefers-reduced-motion:reduce) { body.home-white *,body.home-white *::before,body.home-white *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
