/* Desktop/mobile refinement requested after the first responsive revision. */
.site-header {height:88px;gap:24px;padding:0 max(24px,calc((100vw - 1240px)/2))}
.brand {min-width:76px;width:76px;flex:0 0 76px;justify-content:center}
.brand img {width:72px;height:72px;padding:4px;border-radius:50%;background:#fff;object-fit:contain;filter:none}
.main-nav {gap:clamp(14px,1.8vw,28px);justify-content:center}
.main-nav > a,.main-nav > button.mega-trigger {
  position:relative;display:inline-flex;align-items:center;white-space:nowrap;
  font:600 13px/1.35 "DM Sans",Arial,sans-serif;color:inherit;
  padding:31px 0;background:transparent;border:0;border-radius:0;box-shadow:none;text-shadow:none;
}
.header-actions {display:flex !important;gap:6px !important;flex:0 0 auto}
.header-icon {display:grid;place-items:center;width:40px;height:40px;padding:10px;background:none;color:inherit;border:0;border-radius:50%;cursor:pointer}
.header-icon svg {width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.header-icon:hover {background:#ffffff20}
.header-icon:focus-visible,.menu-toggle:focus-visible {outline:2px solid var(--red);outline-offset:2px}
.footer-brand img {width:82px;height:82px;padding:5px;border-radius:50%;background:#fff;object-fit:contain}
@media(min-width:821px) {
  .main-nav > a::after,.main-nav > button.mega-trigger::after {
    content:"" !important;display:block !important;position:absolute !important;
    top:auto !important;bottom:22px !important;left:0 !important;right:0 !important;
    width:100% !important;height:2px !important;border:0 !important;margin:0 !important;
    background:var(--red) !important;transform:scaleX(0) !important;transform-origin:left;
    transition:transform .18s;
  }
  .main-nav > a:hover::after,.main-nav > a:focus-visible::after,.main-nav > a.mega-active::after,
  .main-nav > button:hover::after,.main-nav > button:focus-visible::after,.main-nav > button.mega-active::after {transform:scaleX(1) !important}
  .mega-menu {top:calc(100% + 2px) !important;right:auto !important;transform:none !important;border-radius:12px !important;max-height:calc(100dvh - 110px)}
  .mega-menu-inner {border-radius:12px !important;max-height:calc(100dvh - 110px) !important}
  .mega-menu::before {left:var(--mega-pointer-left,50%) !important}
  .mega-menu::after {content:"" !important;display:block !important;position:absolute;left:0;right:0;top:-14px;height:14px;background:transparent}
}
@media(min-width:821px) and (max-width:1100px) {
  .site-header {gap:12px;padding:0 18px}
  .brand {width:60px;min-width:60px;flex-basis:60px}
  .brand img {width:60px;height:60px}
  .main-nav {gap:14px}
  .main-nav > a,.main-nav > button.mega-trigger {font-size:11.5px}
  .header-icon {width:32px;padding:7px}
}
@media(max-width:820px) {
  .site-header,.site-header.header-scrolled,.site-header.mobile-menu-open {
    height:60px !important;padding:0 16px !important;gap:2px !important;background:#fff !important;
    color:#242424 !important;border-bottom:1px solid #ededed !important;box-shadow:0 2px 9px #00000005 !important;
  }
  .brand {width:48px;min-width:48px;flex:0 0 48px}
  .brand img {width:46px !important;height:46px !important;padding:2px;content:normal !important;filter:none !important}
  .header-actions {margin-left:auto !important;gap:0 !important;order:2}
  .header-icon {width:38px;height:40px;padding:10px}
  .header-icon svg {width:18px;height:18px}
  .menu-toggle {width:38px !important;height:40px !important;flex:0 0 38px !important;padding:10px !important;min-width:0;color:#242424 !important;text-shadow:none !important}
  .menu-toggle::before {font-size:20px !important}
  .menu-toggle[aria-expanded="true"]::before {font-size:27px !important}
  .main-nav {top:100% !important;max-height:calc(100dvh - 60px) !important;padding:4px 0 !important}
  .main-nav > a,.main-nav > button.mega-trigger {
    font-size:13px !important;white-space:normal;min-height:48px !important;padding:14px 22px !important;
    height:auto !important;flex:0 0 auto !important;color:#242424 !important;
  }
  .main-nav > button[data-mega-trigger="explore"] {min-height:54px !important}
  .main-nav > button.mega-active {color:var(--red) !important}
  .main-nav > a::after {display:none !important}
  .main-nav > button.mega-trigger::after {width:6px;height:6px;flex-basis:6px}
  .main-nav .mobile-submenu-link {font-size:12px;min-height:42px;padding:10px 28px}
  .hero-content-restored {padding-top:120px !important}
  .hero-content-restored .hero-buttons {justify-content:flex-start !important;align-items:flex-start !important;margin-top:18px !important}
  .hero-content-restored .hero-action {margin:0 !important;min-height:40px !important;font-size:12px !important}
  .footer-brand img {width:64px;height:64px;padding:4px}
}
/* Search and language panels, inspired by the supplied airline reference. */
.utility-dialog {width:min(430px,calc(100% - 32px));max-height:80dvh;margin:auto;padding:30px;border:0;border-radius:8px;box-shadow:0 20px 70px #0003;color:#252525;background:#fff;font-family:"DM Sans",Arial,sans-serif}
.utility-dialog::backdrop {background:#10172080}
.utility-dialog h2 {font-size:20px;line-height:1.4;margin:0 30px 24px 0;font-family:inherit}
.utility-close {position:absolute;right:12px;top:12px;width:36px;height:36px;border:0;background:transparent;font-size:26px;cursor:pointer}
.utility-dialog label {display:block;font-size:13px;margin-bottom:8px;color:#666}
.utility-dialog select,.utility-dialog input {width:100%;height:46px;border:1px solid #cdd0d4;background:#fff;border-radius:4px;padding:0 12px;font:inherit;font-size:15px;color:#222}
.utility-confirm {width:100%;min-height:44px;background:var(--red);color:#fff;font:600 14px/1.4 inherit;border:0;border-radius:4px;margin-top:24px;cursor:pointer}
#searchStatus {font-size:12px;color:#777;margin:15px 0 8px}
#searchResults {max-height:45dvh;overflow:auto}
#searchResults a {display:block;padding:12px 4px;border-bottom:1px solid #eee;font-size:14px}
#searchResults a:hover,#searchResults a:focus-visible {color:var(--red);background:#faf7f5}
#searchResults small {display:block;font-size:11px;color:#777;margin-top:2px}
/* Six portrait destination cards on desktop; swipe through two or three on mobile. */
.klook-destination-wrap {padding:0 !important}
.klook-destination-slider {overflow-x:auto !important;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.klook-destination-slider::-webkit-scrollbar {display:none}
.klook-destination-track {gap:20px;transform:none !important;transition:none;width:100%}
.klook-destination-card {flex:0 0 calc((100% - 100px)/6);height:236px;border-radius:15px;scroll-snap-align:start;box-shadow:none}
.klook-card-label {left:10px !important;right:10px !important;bottom:14px !important}
.klook-card-label h3 {font-size:19px !important;line-height:1.2;margin:0 0 6px}
.destination-view-spots {font-size:11px !important}
.klook-destination-arrow {width:38px !important;height:38px !important;font-size:24px !important;top:50% !important}
.klook-prev-button {left:-19px !important}.klook-next-button {right:-19px !important}
#destinationDots {display:none}
@media(min-width:821px) and (max-width:1100px) {.klook-destination-card {flex-basis:calc((100% - 60px)/4)}}
@media(max-width:820px) {
  .klook-destination-arrow {display:none !important}
  .klook-destination-track {gap:12px}
  .klook-destination-card {flex-basis:calc((100% - 24px)/3);height:208px}
}
@media(max-width:560px) {
  .klook-destination-card {flex-basis:calc((100% - 12px)/2.15);height:192px;border-radius:12px}
  .klook-card-label h3 {font-size:16px !important}
  .destination-view-spots {font-size:10px !important}
}
/* Compact inquiry; retain every existing field. */
.destination-planner-grid {align-items:start !important}
.destination-inquiry-card .quick-inquiry-panel {height:auto !important;padding:22px !important;min-height:0 !important}
.quick-inquiry-header h2 {font-size:28px !important;margin:5px 0 7px !important}
.quick-inquiry-header p {margin:0 0 14px !important;font-size:12px !important}
.quick-inquiry-form {gap:10px !important}
.quick-inquiry-form .quick-field-row {gap:10px !important;grid-template-columns:1fr 1fr !important}
.quick-field input,.quick-field select {height:40px !important;min-height:40px !important}
.quick-field textarea {height:76px !important;min-height:76px !important;resize:vertical}
.quick-field > span {font-size:11px !important;margin-bottom:4px !important}
.quick-inquiry-status:empty {display:none}
.quick-inquiry-success {text-align:center;padding:0 !important}
.quick-success-photo {width:100%;height:210px;object-fit:cover;border-radius:10px;margin-bottom:22px}
.quick-inquiry-success h2 {font-size:30px;margin:8px 0}
.quick-inquiry-success p {font-size:13px;line-height:1.65;color:#666}
.quick-success-summary {font-size:12px}
@media(max-width:560px) {
  .destination-inquiry-card .quick-inquiry-panel {padding:18px !important}
  .quick-inquiry-header h2 {font-size:24px !important}
  .quick-inquiry-form .quick-field-row:first-of-type {grid-template-columns:1fr 1fr !important}
  .quick-inquiry-form .quick-field-row:nth-of-type(2) {grid-template-columns:1fr !important}
  .quick-field input,.quick-field select {font-size:16px !important;height:38px !important;min-height:38px !important}
  .quick-field textarea {font-size:16px !important}
  .quick-success-photo {height:165px}
}
/* Slim, square-corner Japan Airlines banner. */
.red-banner.container {position:relative !important;display:flex !important;align-items:center !important;justify-content:space-between !important;min-height:160px !important;height:180px !important;padding:28px 34px !important;border-radius:0 !important;overflow:hidden !important;background:#9a1522 !important;gap:20px !important}
.red-banner .red-banner-copy {position:relative !important;z-index:3 !important;width:47% !important;max-width:47% !important}
.red-banner-copy .eyebrow {display:none}
.red-banner-copy h2 {font-size:25px !important;line-height:1.2 !important;margin:0 0 7px !important}
.red-banner-copy p:not(.eyebrow) {font-size:12px !important;margin:0 !important}
.red-banner .red-banner-plane {position:absolute !important;inset:0 0 0 auto !important;width:55% !important;height:100% !important;object-fit:cover !important;object-position:center 46% !important;opacity:1 !important;transform:none !important;max-width:none !important;z-index:1 !important}
.red-banner::before {display:none !important}
.red-banner::after {content:"" !important;position:absolute !important;inset:0 !important;background:linear-gradient(90deg,#9a1522 35%,#9a152200 68%) !important;z-index:2 !important}
.red-banner .red-banner-action {position:relative !important;z-index:3 !important;min-width:0 !important;min-height:38px !important;font-size:12px !important;padding:10px 16px !important;margin:0 !important;border-radius:0 !important;align-self:flex-end !important}
@media(max-width:560px) {
  .red-banner.container {height:132px !important;min-height:132px !important;padding:18px !important;gap:10px !important}
  .red-banner .red-banner-copy {width:59% !important;max-width:59% !important}
  .red-banner-copy h2 {font-size:18px !important}
  .red-banner-copy p:not(.eyebrow) {font-size:10px !important;line-height:1.4 !important}
  .red-banner .red-banner-plane {width:65% !important;object-position:60% center !important}
  .red-banner .red-banner-action {font-size:10px !important;padding:7px 9px !important;min-height:32px !important;white-space:nowrap}
}
/* All nine photos fill equal frames; favor vehicle fronts in narrow crops. */
.service-showcase-card > img,#service-camper > img,#service-bus > img {object-fit:cover !important;padding:0 !important;object-position:center}
@media(max-width:560px) {
  #service-car > img {object-position:23% center}
  #service-taxi > img {object-position:23% center}
  #service-van > img {object-position:25% center}
  #service-sport > img {object-position:22% center}
  #service-camper > img {object-position:42% center}
  #service-bus > img {object-position:40% center}
  .traveler-feature-grid {gap:14px;margin-bottom:26px}
  .traveler-feature {grid-template-columns:32% minmax(0,1fr);border-radius:12px}
  .traveler-photo {height:100%;min-height:0 !important}
  .traveler-photo img {height:100%;object-fit:cover}
  .traveler-feature-body {padding:14px}
  .traveler-feature-body .review-meta {gap:5px}
  .traveler-feature-body .review-meta strong {font-size:12px}
  .traveler-feature-body .stars {font-size:11px}
  .traveler-feature-body .review-quote {font-size:12px;line-height:1.5;margin-bottom:0}
  .traveler-feature:not(.review-expanded) .review-quote {max-height:none}
  #reviewSlider .review-card {min-height:0 !important;padding:16px}
  #reviewSlider .review-quote {font-size:12px;line-height:1.5}
}
.media-credits a {text-decoration:underline;text-underline-offset:2px}
@media(prefers-reduced-motion:reduce) {.klook-destination-slider {scroll-behavior:auto}}
@media(max-width:820px) {.menu-toggle {margin-left:0 !important}}
/* Stagger the crowded Kansai labels so every city name remains readable. */
.destination-map-label {font-size:9px;letter-spacing:0;background:#ffffffd9;padding:2px 3px;border-radius:2px;z-index:8}
.pin-hiroshima .destination-map-label {left:auto;right:24px;top:-18px;transform:none}
.pin-kyoto .destination-map-label {left:-12px;right:auto;top:-26px;transform:none}
.pin-kobe .destination-map-label {left:auto;right:29px;top:17px;transform:none}
.pin-osaka .destination-map-label {left:-7px;top:40px;transform:none}
.pin-nara .destination-map-label {left:27px;top:31px;transform:none}
.pin-nagoya .destination-map-label {left:8px;top:-18px;transform:none}
.pin-fukuoka .destination-map-label {left:-24px;top:32px;transform:none}
.pin-nagasaki .destination-map-label {left:24px;top:36px;transform:none}
.destination-map-card {padding-bottom:28px !important}
@media(max-width:560px) {.destination-map-label {font-size:8px;letter-spacing:0}.destination-map-card {padding-bottom:34px !important}}
.klook-destination-arrow:disabled {opacity:.35;cursor:default}
.mega-menu:not(.is-open) {display:none !important}
.pin-kobe .destination-map-label {right:45px;top:25px}
.red-banner .red-banner-plane {width:100% !important;object-position:center !important}
.quick-inquiry-success {scroll-margin-top:80px;gap:14px;text-align:left}
.quick-success-summary {padding:13px;background:#faf9f7;border-radius:7px;line-height:1.6}
.quick-success-image {aspect-ratio:16/9}
.quick-success-actions .quick-success-action {font-family:"DM Sans",Arial,sans-serif;font-size:12px !important;white-space:normal}
.klook-card-label h3 {font-family:"DM Sans",Arial,sans-serif !important;font-weight:700}
@media(max-width:560px) {
  .red-banner.container {flex-direction:row !important}
  .red-banner .red-banner-copy {margin:0 !important;align-self:center !important}
}
