.tmp-map-play{--ink:#22211e;--muted:#6d685f;--gold:#b89b58;--paper:#f8f5ee;--line:#ddd5c7;width:min(1280px,calc(100% - 24px));margin:0 auto 42px;padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 10px 28px rgba(47,40,31,.07);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}.tmp-map-head{padding-bottom:18px;border-bottom:1px solid var(--line)}.tmp-map-kicker{color:#8c816f;font-size:11px;font-weight:800;letter-spacing:.16em}.tmp-map-head h1{margin:7px 0;font-size:clamp(30px,5vw,46px);line-height:1.12}.tmp-map-head p{margin:0;color:var(--muted);font-size:16px;line-height:1.7}.tmp-map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0 14px}.tmp-random{border:0;border-radius:999px;padding:12px 18px;background:#24231f;color:#fff;font-size:15px;font-weight:800;cursor:pointer}.tmp-current{text-align:right}.tmp-current span{display:block;color:var(--muted);font-size:11px}.tmp-current strong{display:block;margin-top:2px;color:#5f4d22;font-size:18px}.tmp-place-buttons{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 16px}.tmp-place-btn{border:1px solid #cfc6b7;border-radius:999px;padding:8px 13px;background:#fff;color:#35312b;font-size:14px;font-weight:700;cursor:pointer}.tmp-place-btn:hover,.tmp-place-btn.is-active{border-color:var(--gold);background:#fff9e9;color:#715a25}.tmp-map-frame-wrap{overflow:hidden;border:1px solid #d6cec0;border-radius:15px;background:#eae6dd}.tmp-map-frame-wrap iframe{display:block;width:100%;height:min(67vh,650px);min-height:460px;border:0}.tmp-map-tip{margin-top:14px;padding:13px 15px;border-left:3px solid var(--gold);background:#fffdf8;color:#5c574e;font-size:14px;line-height:1.7}.tmp-map-notice{max-width:1000px;margin:24px auto;padding:16px 18px;border:1px solid #e0d5b6;background:#fff9e7;color:#55451e;border-radius:10px}@media(max-width:700px){.tmp-map-play{width:calc(100% - 12px);padding:16px;border-radius:12px}.tmp-map-toolbar{display:block}.tmp-current{margin-top:12px;text-align:left}.tmp-map-frame-wrap iframe{min-height:420px;height:62vh}}

/* ===== v1.0.1: PC full-width, mobile safe ===== */

/* Break out of the WordPress/Cocoon content column on desktop */
.tmp-map-play{
  position:relative;
  left:50%;
  width:calc(100vw - 32px);
  max-width:none;
  margin-left:calc(-50vw + 16px);
  margin-right:0;
  padding:28px clamp(18px,2.4vw,34px);
}

/* Let the actual map use the available width */
.tmp-map-frame-wrap{
  width:100%;
}

.tmp-map-frame-wrap iframe{
  width:100%;
  height:min(70vh,720px);
  min-height:520px;
}

/* Keep controls readable on wide screens */
.tmp-map-toolbar,
.tmp-place-buttons,
.tmp-map-head,
.tmp-map-tip{
  width:100%;
}

/* Mobile: return to normal document flow and avoid horizontal overflow */
@media(max-width:700px){
  .tmp-map-play{
    position:static;
    left:auto;
    width:calc(100% - 12px);
    max-width:none;
    margin:0 auto 28px;
    padding:16px;
  }

  .tmp-map-frame-wrap iframe{
    width:100%;
    min-height:420px;
    height:62vh;
  }
}


/* ===== v1.0.2: true viewport centering fix =====
   Center the map section on the browser viewport instead of the theme content column.
*/
.tmp-map-play{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  box-sizing:border-box !important;

  width:calc(100vw - 32px) !important;
  max-width:none !important;

  margin-left:calc(50% - 50vw + 16px) !important;
  margin-right:calc(50% - 50vw + 16px) !important;
  margin-top:0 !important;
  margin-bottom:42px !important;
}

/* Prevent the theme/content wrapper from causing sideways clipping */
.entry-content .tmp-map-play,
.article .tmp-map-play,
.main .tmp-map-play{
  float:none !important;
}

/* Mobile stays naturally centered and never overflows */
@media(max-width:700px){
  .tmp-map-play{
    width:calc(100% - 12px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    margin-bottom:28px !important;
  }
}


/* ===== v1.1.0: travel play controls ===== */
.tmp-explore-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  padding:0 0 15px;
}
.tmp-mode-btn{
  appearance:none;
  border:1px solid #cbbfa9;
  border-radius:999px;
  padding:10px 14px;
  background:#fffdf8;
  color:#3a342b;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
.tmp-mode-btn:hover,
.tmp-mode-btn.is-active{
  border-color:var(--gold);
  background:#2a2721;
  color:#fff;
}
.tmp-town-info{
  margin:0 0 15px;
  padding:15px 17px;
  border:1px solid #dfd4c1;
  border-radius:12px;
  background:#fffdf7;
}
.tmp-town-info strong{
  display:block;
  margin-bottom:5px;
  color:#6b5526;
  font-size:18px;
}
.tmp-town-info p{
  margin:0;
  color:#5c574e;
  line-height:1.75;
}
@media(max-width:700px){
  .tmp-explore-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .tmp-mode-btn{
    width:100%;
    text-align:left;
  }
}


/* ===== v1.2.0: current location + travel mission ===== */
.tmp-now-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  padding:0 0 14px;
}
.tmp-now-btn{
  appearance:none;
  border:1px solid #b9a775;
  border-radius:999px;
  padding:10px 15px;
  background:#fff9e9;
  color:#5a471f;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
.tmp-now-btn:hover{
  background:#f4e6bc;
}
.tmp-now-street{
  background:#26322c;
  border-color:#26322c;
  color:#fff;
}
.tmp-now-street:hover{
  background:#18211d;
}
.tmp-status{
  min-height:0;
  margin:0 0 12px;
  color:#6b665c;
  font-size:13px;
  line-height:1.6;
}
.tmp-status:empty{
  display:none;
}
.tmp-status.is-success{
  color:#315f47;
}
.tmp-status.is-error{
  color:#9c3d34;
}
.tmp-challenge{
  margin:0 0 15px;
  padding:14px 16px;
  border:1px solid #d9c89c;
  border-radius:12px;
  background:linear-gradient(135deg,#fffaf0,#f7f0df);
}
.tmp-challenge-label{
  display:block;
  margin-bottom:5px;
  color:#9b7c35;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}
.tmp-challenge strong{
  display:block;
  color:#312b22;
  font-size:16px;
  line-height:1.6;
}
@media(max-width:700px){
  .tmp-now-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .tmp-now-btn{
    width:100%;
    text-align:left;
  }
}



/* ===== v1.3.1: top-page MAP PLAY feature shortcode ===== */
.tmp-feature{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  width:calc(100vw - 40px);
  max-width:none;
  margin:24px 0 38px;
  margin-left:calc(50% - 50vw + 20px);
  margin-right:calc(50% - 50vw + 20px);
  overflow:hidden;
  border:1px solid #d4c7b0;
  border-radius:28px;
  background:
    radial-gradient(circle at left top,rgba(255,255,255,.50),transparent 34%),
    linear-gradient(135deg,#f6f1e8 0%,#efe7d8 52%,#ece4d8 100%);
  box-shadow:0 20px 50px rgba(34,28,22,.09);
  color:#1f1b16;
}
.tmp-feature-copy{
  position:relative;
  z-index:2;
  padding:54px clamp(28px,4vw,64px) 48px;
}
.tmp-feature-kicker{
  display:inline-block;
  margin-bottom:16px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(42,37,30,.06);
  color:#85755d;
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
}
.tmp-feature h2{
  max-width:780px;
  margin:0 0 18px;
  color:#1d1915!important;
  font-size:clamp(34px,5vw,68px);
  line-height:1.03;
  letter-spacing:-.045em;
}
.tmp-feature-copy>p{
  max-width:660px;
  margin:0;
  color:#5d554b!important;
  font-size:18px;
  line-height:1.85;
}
.tmp-feature-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:32px;
  max-width:760px;
}
.tmp-feature-link{
  position:relative;
  display:flex;
  align-items:center;
  gap:16px;
  min-height:108px;
  padding:18px 18px 18px 20px;
  border-radius:20px;
  text-decoration:none!important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tmp-feature-link:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 28px rgba(35,30,23,.10);
}
.tmp-feature-link.japan{
  background:linear-gradient(135deg,#25211d,#383128);
  color:#fff!important;
}
.tmp-feature-link.world{
  border:1px solid #d1bf95;
  background:linear-gradient(135deg,#fffdfa,#f7efdf);
  color:#2a251e!important;
}
.tmp-feature-icon{
  flex:0 0 auto;
  width:56px;height:56px;
  display:grid;place-items:center;
  border-radius:16px;
  font-size:30px;
  background:rgba(255,255,255,.12);
}
.tmp-feature-link.world .tmp-feature-icon{
  background:rgba(187,155,74,.12);
}
.tmp-feature-link strong{
  display:block;
  color:inherit!important;
  font-size:23px;
  line-height:1.2;
}
.tmp-feature-link small{
  display:block;
  margin-top:7px;
  color:inherit!important;
  opacity:.72;
  font-size:13px;
  line-height:1.55;
}
.tmp-feature-art{
  position:relative;
  min-height:440px;
  overflow:hidden;
  border-left:1px solid rgba(178,156,115,.28);
  background:
    radial-gradient(circle at 72% 18%,rgba(100,145,138,.16),transparent 26%),
    radial-gradient(circle at 22% 76%,rgba(195,160,77,.18),transparent 22%),
    linear-gradient(145deg,#f0eadf,#ede5d8);
}
.tmp-feature-art:before,
.tmp-feature-art:after{
  content:"";
  position:absolute;
  inset:0;
}
.tmp-feature-art:before{
  background-image:
    linear-gradient(rgba(90,103,102,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(90,103,102,.07) 1px,transparent 1px);
  background-size:64px 64px;
}
.tmp-feature-art:after{
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.28), transparent 48%),
    linear-gradient(115deg,transparent 0 44%,rgba(255,255,255,.42) 44% 45%,transparent 45% 100%);
  opacity:.5;
}
.tmp-feature-orbit{
  position:absolute;
  border:1px solid rgba(96,122,118,.32);
  border-radius:50%;
  transform:rotate(-14deg);
}
.tmp-feature-orbit.orbit1{
  width:500px;height:220px;right:-50px;top:72px;
}
.tmp-feature-orbit.orbit2{
  width:390px;height:170px;right:40px;top:126px;border-color:rgba(193,160,79,.35);
}
.tmp-feature-dot{
  position:absolute;
  width:12px;height:12px;border-radius:50%;
  background:#b5964c;
  box-shadow:0 0 0 7px rgba(181,150,76,.12);
}
.tmp-feature-dot.dot1{right:112px;top:88px}
.tmp-feature-dot.dot2{right:242px;top:182px;background:#6e9b98}
.tmp-feature-dot.dot3{right:88px;top:270px;background:#32312c}
.tmp-feature-mapword{
  position:absolute;
  left:38px;
  bottom:26px;
  color:rgba(44,40,34,.74);
  font:800 82px/.84 Georgia,"Times New Roman",serif;
  letter-spacing:-.08em;
}
.tmp-feature-caption{
  position:absolute;
  right:26px;
  bottom:28px;
  color:#766a58;
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
}
@media(max-width:1200px){
  .tmp-feature{
    width:calc(100vw - 24px);
    margin-left:calc(50% - 50vw + 12px);
    margin-right:calc(50% - 50vw + 12px);
  }
  .tmp-feature-copy{
    padding:46px 28px 38px;
  }
}
@media(max-width:900px){
  .tmp-feature{
    grid-template-columns:1fr;
  }
  .tmp-feature-copy{
    padding:34px 22px 26px;
  }
  .tmp-feature-copy>p{
    font-size:16px;
  }
  .tmp-feature-links{
    grid-template-columns:1fr;
    max-width:none;
  }
  .tmp-feature-art{
    min-height:250px;
    border-left:0;
    border-top:1px solid rgba(178,156,115,.28);
  }
  .tmp-feature-mapword{
    font-size:56px;
    left:24px;
    bottom:20px;
  }
}
@media(max-width:600px){
  .tmp-feature{
    width:calc(100vw - 12px);
    margin:12px 0 24px;
    margin-left:calc(50% - 50vw + 6px);
    margin-right:calc(50% - 50vw + 6px);
    border-radius:20px;
  }
  .tmp-feature h2{
    font-size:clamp(34px,11vw,52px);
  }
  .tmp-feature-link{
    min-height:92px;
    border-radius:16px;
  }
  .tmp-feature-icon{
    width:50px;height:50px;
    font-size:26px;
  }
  .tmp-feature-link strong{
    font-size:20px;
  }
  .tmp-feature-art{
    min-height:220px;
  }
}


/* ===== v1.3.2: exact center alignment on desktop + mobile ===== */
/* Center against the shortcode block itself and prevent viewport overflow. */
.tmp-feature{
  box-sizing:border-box !important;
  position:relative !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;

  width:min(1540px, calc(100vw - 32px)) !important;
  max-width:calc(100vw - 32px) !important;

  margin-left:0 !important;
  margin-right:0 !important;
  margin-top:20px !important;
  margin-bottom:34px !important;
}

/* Theme wrappers must not add sideways offsets to the feature. */
.entry-content .tmp-feature,
.article .tmp-feature,
.main .tmp-feature,
.wp-block-shortcode .tmp-feature{
  float:none !important;
}

/* Avoid a horizontal scrollbar caused by theme/content wrappers. */
html,
body{
  overflow-x:clip;
}

/* Tablet */
@media(max-width:900px){
  .tmp-feature{
    width:calc(100vw - 20px) !important;
    max-width:calc(100vw - 20px) !important;
  }
}

/* Mobile: exactly equal left/right gutters */
@media(max-width:600px){
  .tmp-feature{
    left:50% !important;
    transform:translateX(-50%) !important;
    width:calc(100vw - 12px) !important;
    max-width:calc(100vw - 12px) !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
}


/* ===== v1.3.3: guaranteed mobile navigation buttons ===== */
.tmp-feature-mobile-links{
  display:none;
}

@media(max-width:600px){
  /* On phones, use a dedicated simple CTA area that cannot be hidden by theme card styles. */
  .tmp-feature-links{
    display:none !important;
  }

  .tmp-feature-mobile-links{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    width:100% !important;
    margin:22px 0 0 !important;
    padding:0 !important;
    position:relative !important;
    z-index:20 !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .tmp-feature-mobile-link{
    box-sizing:border-box !important;
    display:grid !important;
    grid-template-columns:48px 1fr 24px !important;
    align-items:center !important;
    gap:12px !important;
    width:100% !important;
    min-height:66px !important;
    padding:10px 14px !important;
    border-radius:15px !important;
    text-decoration:none !important;
    font-size:18px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    position:relative !important;
    z-index:21 !important;
  }

  .tmp-feature-mobile-link.japan{
    background:#27231e !important;
    color:#fff !important;
    border:1px solid #27231e !important;
  }

  .tmp-feature-mobile-link.world{
    background:#fffaf0 !important;
    color:#2a251e !important;
    border:1px solid #cdbb92 !important;
  }

  .tmp-feature-mobile-icon{
    display:grid !important;
    place-items:center !important;
    width:44px !important;
    height:44px !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.12) !important;
    font-size:25px !important;
  }

  .tmp-feature-mobile-link.world .tmp-feature-mobile-icon{
    background:rgba(188,155,74,.12) !important;
  }

  .tmp-feature-mobile-link b{
    display:block !important;
    justify-self:end !important;
    font-size:26px !important;
    font-weight:400 !important;
    color:inherit !important;
  }

  /* Keep the decorative art from covering the CTA area on small screens. */
  .tmp-feature-copy{
    position:relative !important;
    z-index:5 !important;
  }
  .tmp-feature-art{
    position:relative !important;
    z-index:1 !important;
  }
}


/* ===== v1.3.4: universal CTA fix =====
   Use ONE set of link buttons on every device. Never hide them on mobile.
*/
.tmp-feature-links{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  width:100% !important;
  max-width:760px !important;
  margin-top:28px !important;
  visibility:visible !important;
  opacity:1 !important;
  position:relative !important;
  z-index:50 !important;
}

.tmp-feature-link{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  position:relative !important;
  z-index:51 !important;
  min-height:92px !important;
}

.tmp-feature-link strong,
.tmp-feature-link small,
.tmp-feature-icon{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* Disable the temporary mobile-only duplicated buttons from v1.3.3 */
.tmp-feature-mobile-links{
  display:none !important;
}

@media(max-width:900px){
  .tmp-feature-links{
    grid-template-columns:1fr !important;
    max-width:none !important;
  }

  .tmp-feature-link{
    width:100% !important;
    min-height:82px !important;
    padding:14px 16px !important;
  }

  .tmp-feature-link strong{
    font-size:20px !important;
  }

  .tmp-feature-link small{
    font-size:12px !important;
    line-height:1.45 !important;
  }

  .tmp-feature-icon{
    flex:0 0 50px !important;
    width:50px !important;
    height:50px !important;
  }

  /* Keep decorative area below the buttons */
  .tmp-feature-copy{
    overflow:visible !important;
  }
  .tmp-feature-art{
    z-index:1 !important;
  }
}


/* ===== v1.3.5 stable top feature layout ===== */
.tmp-feature-admin-notice{
  width:min(1280px, calc(100% - 24px));
  margin:14px auto;
  padding:12px 16px;
  border:1px solid #e0c98e;
  border-radius:10px;
  background:#fff8df;
  color:#5d4a1f;
  font-size:14px;
}

/* Keep the feature inside the site's real content width.
   This avoids the viewport-centering hacks that caused layout breakage. */
.tmp-feature{
  left:auto !important;
  right:auto !important;
  transform:none !important;
  width:min(1280px, calc(100% - 24px)) !important;
  max-width:1280px !important;
  margin:24px auto 34px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

.tmp-feature-copy{
  min-width:0 !important;
}

.tmp-feature-links{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  max-width:760px !important;
  margin-top:28px !important;
}

.tmp-feature-link{
  display:flex !important;
  align-items:center !important;
  min-width:0 !important;
  min-height:92px !important;
  text-decoration:none !important;
}

.tmp-feature-art{
  min-width:0 !important;
}

/* Do not globally alter html/body overflow from this plugin. */
html, body{
  overflow-x:visible;
}

@media(max-width:900px){
  .tmp-feature{
    grid-template-columns:1fr !important;
    width:calc(100% - 16px) !important;
    margin:16px auto 24px !important;
  }

  .tmp-feature-copy{
    padding:30px 20px 24px !important;
  }

  .tmp-feature-links{
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:none !important;
  }

  .tmp-feature-link{
    width:100% !important;
    min-height:78px !important;
  }

  .tmp-feature-art{
    min-height:210px !important;
    border-left:0 !important;
    border-top:1px solid rgba(178,156,115,.28) !important;
  }
}

/* ===== v1.4.0 top banner: exact image, full width, zero gap ===== */
.wp-block-shortcode:has(.tmp-feature),
.entry-content > .wp-block-shortcode:has(.tmp-feature),
.article > .wp-block-shortcode:has(.tmp-feature),
.main > .wp-block-shortcode:has(.tmp-feature){
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* Remove the seam above from JUEI WEEKLY TOP10 and below before the AI portal. */
.wp-block-shortcode:has(.juei-weekly-featured){
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
.wp-block-shortcode:has(.tmp-feature) + .wp-block-shortcode:has(.ai-portal-fullbleed){
  margin-top:0 !important;
  padding-top:0 !important;
}

.tmp-feature{
  position:relative !important;
  display:block !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:100dvw !important;
  max-width:100dvw !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#090807 !important;
  overflow:hidden !important;
  line-height:0 !important;
  box-sizing:border-box !important;
}
.tmp-feature-stage{
  position:relative !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
}
.tmp-feature-banner{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

/* Invisible clickable areas placed exactly over the two designed icons in the banner. */
.tmp-feature-hotspot{
  position:absolute !important;
  display:block !important;
  z-index:5 !important;
  border-radius:18% !important;
  text-decoration:none !important;
  cursor:pointer !important;
  line-height:1 !important;
  -webkit-tap-highlight-color:transparent;
}
.tmp-feature-hotspot-japan{
  left:49.0% !important;
  top:30.0% !important;
  width:15.3% !important;
  height:31.5% !important;
}
.tmp-feature-hotspot-world{
  left:68.0% !important;
  top:30.0% !important;
  width:15.3% !important;
  height:31.5% !important;
}
.tmp-feature-hotspot:focus-visible{
  outline:3px solid rgba(255,220,130,.95) !important;
  outline-offset:3px !important;
}
.tmp-feature-hotspot:hover{
  background:rgba(255,210,110,.045) !important;
}

/* This feature owns no outer whitespace on any screen size. */
@media(max-width:900px){
  .tmp-feature{
    width:100dvw !important;
    max-width:100dvw !important;
    margin:0 !important;
  }
}
@media(max-width:600px){
  .tmp-feature{
    width:100dvw !important;
    max-width:100dvw !important;
    margin:0 !important;
    border-radius:0 !important;
  }
  .tmp-feature-hotspot-japan{
    left:48.5% !important;
    width:16.0% !important;
  }
  .tmp-feature-hotspot-world{
    left:67.7% !important;
    width:16.0% !important;
  }
}

/* ===== v1.4.2: compact search + directions + current Street View ===== */
.tmp-map-play--compact .tmp-map-head{
  padding-bottom:14px;
}
.tmp-map-play--compact .tmp-map-tools{
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(520px,1.55fr) auto;
  gap:10px;
  align-items:center;
  padding:14px 0;
}
.tmp-map-play--compact .tmp-place-search,
.tmp-map-play--compact .tmp-route-search{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
}
.tmp-map-play--compact .tmp-place-search input,
.tmp-map-play--compact .tmp-route-search input{
  box-sizing:border-box;
  min-width:0;
  height:42px;
  border:1px solid #cfc6b7;
  border-radius:10px;
  padding:0 12px;
  background:#fff;
  color:#2f2b25;
  font-size:15px;
  outline:none;
}
.tmp-map-play--compact .tmp-place-search input{
  flex:1 1 auto;
}
.tmp-map-play--compact .tmp-route-search input{
  flex:1 1 0;
}
.tmp-map-play--compact .tmp-place-search input:focus,
.tmp-map-play--compact .tmp-route-search input:focus{
  border-color:#b89b58;
  box-shadow:0 0 0 3px rgba(184,155,88,.14);
}
.tmp-map-play--compact .tmp-place-search button,
.tmp-map-play--compact .tmp-route-search button{
  height:42px;
  flex:0 0 auto;
  border:1px solid #2a2721;
  border-radius:10px;
  padding:0 14px;
  background:#2a2721;
  color:#fff;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.tmp-map-play--compact .tmp-route-arrow{
  flex:0 0 auto;
  color:#9a844f;
  font-weight:900;
}
.tmp-map-play--compact .tmp-now-street{
  height:42px;
  margin:0;
  padding:0 14px;
  white-space:nowrap;
  border-radius:10px;
}
.tmp-map-play--compact .tmp-status{
  margin:0 0 8px;
}
.tmp-map-play--compact .tmp-map-frame-wrap{
  margin-top:0;
}
@media(max-width:1080px){
  .tmp-map-play--compact .tmp-map-tools{
    grid-template-columns:1fr 1.35fr;
  }
  .tmp-map-play--compact .tmp-now-street{
    grid-column:1 / -1;
    justify-self:start;
  }
}
@media(max-width:760px){
  .tmp-map-play--compact .tmp-map-tools{
    grid-template-columns:1fr;
    gap:8px;
    padding:12px 0;
  }
  .tmp-map-play--compact .tmp-place-search,
  .tmp-map-play--compact .tmp-route-search{
    width:100%;
  }
  .tmp-map-play--compact .tmp-route-search{
    display:grid;
    grid-template-columns:1fr auto 1fr;
  }
  .tmp-map-play--compact .tmp-route-search button{
    grid-column:1 / -1;
    width:100%;
  }
  .tmp-map-play--compact .tmp-place-search button{
    padding:0 11px;
  }
  .tmp-map-play--compact .tmp-now-street{
    grid-column:auto;
    width:100%;
    justify-self:stretch;
  }
}


/* ===== v1.4.3: action labels on the left ===== */
.tmp-map-play--compact .tmp-place-search button,
.tmp-map-play--compact .tmp-route-search button{
  order:-1;
}
@media(max-width:760px){
  .tmp-map-play--compact .tmp-route-search{
    grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
  }
  .tmp-map-play--compact .tmp-route-search button{
    grid-column:auto;
    width:auto;
  }
  .tmp-map-play--compact .tmp-place-search{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
  }
}


/* ===== v1.4.4: travel mode dropdown ===== */
.tmp-map-play--compact .tmp-route-search select{
  box-sizing:border-box;
  height:42px;
  flex:0 0 auto;
  min-width:118px;
  max-width:155px;
  border:1px solid #cfc6b7;
  border-radius:10px;
  padding:0 30px 0 10px;
  background:#fff;
  color:#2f2b25;
  font-size:14px;
  font-weight:700;
  outline:none;
  cursor:pointer;
}
.tmp-map-play--compact .tmp-route-search select:focus{
  border-color:#b89b58;
  box-shadow:0 0 0 3px rgba(184,155,88,.14);
}
@media(max-width:760px){
  .tmp-map-play--compact .tmp-route-search{
    grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) minmax(108px,auto);
  }
  .tmp-map-play--compact .tmp-route-search select{
    width:100%;
    min-width:108px;
    max-width:none;
  }
}
@media(max-width:560px){
  .tmp-map-play--compact .tmp-route-search{
    grid-template-columns:auto minmax(0,1fr);
    gap:7px;
  }
  .tmp-map-play--compact .tmp-route-search .tmp-route-arrow{
    display:none;
  }
  .tmp-map-play--compact .tmp-route-search select{
    grid-column:2;
  }
}

/* ===== v1.4.5: widen Japan / World selection area across the banner ===== */
.tmp-feature-hotspot-japan{
  left:41.6% !important;
  top:28.4% !important;
  width:24.2% !important;
  height:35.0% !important;
}
.tmp-feature-hotspot-world{
  left:64.2% !important;
  top:28.4% !important;
  width:24.2% !important;
  height:35.0% !important;
}
@media(max-width:600px){
  .tmp-feature-hotspot-japan{
    left:40.8% !important;
    width:25.2% !important;
    top:28.0% !important;
    height:35.6% !important;
  }
  .tmp-feature-hotspot-world{
    left:63.6% !important;
    width:25.2% !important;
    top:28.0% !important;
    height:35.6% !important;
  }
}

/* ===== v1.4.6: mobile full-width map page + cleaner controls ===== */
@media(max-width:700px){
  .tmp-map-play,
  .tmp-map-play.tmp-map-play--compact{
    position:relative !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    width:100vw !important;
    max-width:100vw !important;
    margin:0 !important;
    padding:16px 14px 20px !important;
    border-left:0 !important;
    border-right:0 !important;
    border-radius:0 !important;
    box-sizing:border-box !important;
  }

  .tmp-map-play--compact .tmp-map-tools{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    width:100% !important;
  }

  .tmp-map-play--compact .tmp-place-search{
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) !important;
    gap:8px !important;
    width:100% !important;
  }

  .tmp-map-play--compact .tmp-route-search{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:8px !important;
    width:100% !important;
  }

  .tmp-map-play--compact .tmp-route-search button{
    grid-column:1 !important;
    grid-row:1 !important;
    width:100% !important;
    min-width:0 !important;
  }
  .tmp-map-play--compact .tmp-route-search [data-route-origin]{
    grid-column:2 !important;
    grid-row:1 !important;
  }
  .tmp-map-play--compact .tmp-route-search [data-route-destination]{
    grid-column:1 !important;
    grid-row:2 !important;
  }
  .tmp-map-play--compact .tmp-route-search select{
    grid-column:2 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
  .tmp-map-play--compact .tmp-route-arrow{
    display:none !important;
  }

  .tmp-map-play--compact .tmp-place-search button,
  .tmp-map-play--compact .tmp-route-search button,
  .tmp-map-play--compact .tmp-now-street,
  .tmp-map-play--compact input,
  .tmp-map-play--compact select{
    min-height:46px !important;
    font-size:15px !important;
  }

  .tmp-map-play--compact .tmp-now-street{
    width:100% !important;
    justify-self:stretch !important;
  }

  .tmp-map-play--compact .tmp-map-frame-wrap{
    width:100% !important;
    border-radius:12px !important;
  }
  .tmp-map-play--compact .tmp-map-frame-wrap iframe{
    width:100% !important;
    min-height:520px !important;
    height:65vh !important;
  }
}

/* ===== v1.4.7: genre search beside the place-search button ===== */
.tmp-map-play--compact .tmp-place-search select{
  box-sizing:border-box;
  height:42px;
  flex:0 0 auto;
  min-width:120px;
  max-width:160px;
  border:1px solid #cfc6b7;
  border-radius:10px;
  padding:0 30px 0 10px;
  background:#fff;
  color:#2f2b25;
  font-size:14px;
  font-weight:700;
  outline:none;
  cursor:pointer;
}
.tmp-map-play--compact .tmp-place-search select:focus{
  border-color:#b89b58;
  box-shadow:0 0 0 3px rgba(184,155,88,.14);
}
@media(max-width:700px){
  .tmp-map-play--compact .tmp-place-search{
    display:grid !important;
    grid-template-columns:auto minmax(105px,.85fr) minmax(0,1.35fr) !important;
    gap:7px !important;
    align-items:center !important;
  }
  .tmp-map-play--compact .tmp-place-search select{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    font-size:14px !important;
    padding-left:8px !important;
    padding-right:24px !important;
  }
  .tmp-map-play--compact .tmp-place-search button{
    width:auto !important;
    padding:0 10px !important;
    font-size:14px !important;
  }
  .tmp-map-play--compact .tmp-place-search input{
    width:100% !important;
    min-width:0 !important;
    padding-left:9px !important;
    padding-right:9px !important;
  }
}
@media(max-width:430px){
  .tmp-map-play--compact .tmp-place-search{
    grid-template-columns:auto minmax(98px,.82fr) minmax(0,1.25fr) !important;
  }
  .tmp-map-play--compact .tmp-place-search button{
    padding:0 8px !important;
  }
}


/* ===== v1.4.8: swap place input and genre dropdown ===== */
@media(max-width:700px){
  .tmp-map-play--compact .tmp-place-search{
    grid-template-columns:auto minmax(0,1.35fr) minmax(105px,.85fr) !important;
  }
}
@media(max-width:430px){
  .tmp-map-play--compact .tmp-place-search{
    grid-template-columns:auto minmax(0,1.25fr) minmax(98px,.82fr) !important;
  }
}


/* ===== v1.5.1: hotspot alignment for guide / plan icons ===== */
.tmp-feature-hotspot-japan{
  left:50.0% !important;
  top:29.5% !important;
  width:18.6% !important;
  height:36.8% !important;
}
.tmp-feature-hotspot-world{
  left:68.8% !important;
  top:29.5% !important;
  width:18.6% !important;
  height:36.8% !important;
}
@media(max-width:600px){
  .tmp-feature-hotspot-japan{
    left:49.4% !important;
    top:29.0% !important;
    width:19.2% !important;
    height:37.2% !important;
  }
  .tmp-feature-hotspot-world{
    left:68.2% !important;
    top:29.0% !important;
    width:19.2% !important;
    height:37.2% !important;
  }
}

/* ===== v1.6.0: AI trip planner page ===== */
.tmp-trip-plan{
  box-sizing:border-box;
  width:min(1040px, calc(100% - 24px));
  margin:24px auto 40px;
  padding:28px;
  border:1px solid #d6c39a;
  border-radius:24px;
  background:linear-gradient(145deg,#fffaf0,#f5ead8);
  box-shadow:0 16px 44px rgba(64,43,18,.10);
  color:#282018;
}
.tmp-plan-head h1{margin:6px 0 10px;font-size:clamp(28px,4vw,44px);line-height:1.18;}
.tmp-plan-head p{margin:0 0 24px;line-height:1.8;color:#675a49;}
.tmp-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.tmp-plan-grid label{display:grid;gap:7px;font-weight:800;color:#4d3b27;}
.tmp-plan-grid input,.tmp-plan-grid select,.tmp-plan-grid textarea{box-sizing:border-box;width:100%;border:1px solid #cdbd9f;border-radius:12px;background:#fff;padding:13px 14px;font:inherit;color:#2f2922;}
.tmp-plan-wide{grid-column:1/-1;}
.tmp-plan-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 12px;}
.tmp-plan-actions button{border:0;border-radius:999px;padding:13px 20px;font-weight:900;font-size:15px;cursor:pointer;}
.tmp-plan-make{background:#2d2a24;color:#fff;}
.tmp-plan-copy{background:#b77b22;color:#fff;}
.tmp-plan-copy:disabled{opacity:.45;cursor:not-allowed;}
.tmp-plan-output{box-sizing:border-box;width:100%;min-height:260px;border:1px solid #d2c2a5;border-radius:15px;background:#fffefb;padding:16px;line-height:1.75;font-size:15px;resize:vertical;}
@media(max-width:700px){
  .tmp-trip-plan{width:calc(100% - 12px);padding:20px 14px;border-radius:18px;}
  .tmp-plan-grid{grid-template-columns:1fr;}
  .tmp-plan-wide{grid-column:auto;}
  .tmp-plan-actions{display:grid;grid-template-columns:1fr;}
  .tmp-plan-actions button{width:100%;}
}


/* ===== v1.7.0: full-width trip planner + simpler copy flow ===== */
.tmp-trip-plan{
  position:relative !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  width:100dvw !important;
  max-width:none !important;
  margin:0 0 40px !important;
  padding:clamp(22px,3.2vw,44px) clamp(16px,4vw,64px) !important;
  border-left:0 !important;
  border-right:0 !important;
  border-radius:0 !important;
}
.tmp-plan-head{max-width:1500px;margin:0 auto;}
.tmp-plan-grid{max-width:1500px;margin:0 auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;}
.tmp-plan-date-range{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.tmp-plan-optional{font-size:12px;font-weight:600;color:#8d7d66;margin-left:6px;}
.tmp-plan-actions--single{max-width:1500px;margin:24px auto 12px;align-items:center;}
.tmp-plan-copy-main{font-size:16px !important;padding:15px 24px !important;}
.tmp-plan-paste-note{margin:0;color:#5d513f;font-size:14px;font-weight:700;line-height:1.6;}
.tmp-plan-output{display:block;max-width:1500px;margin:0 auto;}
.tmp-trip-plan .tmp-status{max-width:1500px;margin:0 auto 12px;}
@media(max-width:700px){
  .tmp-trip-plan{width:100dvw !important;padding:20px 14px 28px !important;margin:0 0 28px !important;}
  .tmp-plan-grid{grid-template-columns:1fr;}
  .tmp-plan-date-range{grid-template-columns:1fr;gap:14px;}
  .tmp-plan-actions--single{display:grid !important;grid-template-columns:1fr !important;gap:9px !important;}
  .tmp-plan-copy-main{width:100% !important;}
  .tmp-plan-paste-note{text-align:center;font-size:13px;}
}


/* ===== v1.8.0: trip output guide ===== */
.tmp-plan-output-guide{
  max-width:1500px;
  margin:18px auto 14px;
  padding:16px 18px;
  border:1px solid #d6c38c;
  border-radius:14px;
  background:#fffaf0;
  line-height:1.7;
}
.tmp-plan-output-guide strong{display:block;font-size:17px;color:#3c3020;margin-bottom:4px;}
.tmp-plan-output-guide span{display:block;font-size:14px;color:#665e52;}
@media(max-width:700px){
  .tmp-plan-output-guide{margin:14px 0 12px;padding:14px;}
  .tmp-plan-output-guide strong{font-size:16px;}
}


/* ===== v1.8.1: senior-friendly trip booklet choice ===== */
.tmp-plan-shiori-choice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:18px 0;
  padding:18px 20px;
  border:2px solid #d8c79f;
  border-radius:16px;
  background:#fffaf0;
}
.tmp-plan-shiori-copy strong{
  display:block;
  margin-bottom:5px;
  font-size:20px;
  line-height:1.35;
  color:#342b20;
}
.tmp-plan-shiori-copy span{
  display:block;
  font-size:15px;
  line-height:1.6;
  color:#6b6257;
}
.tmp-plan-shiori-check{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  padding:12px 16px;
  border:1px solid #bda56e;
  border-radius:12px;
  background:#fff;
  font-size:17px;
  font-weight:800;
  color:#3d3428;
  cursor:pointer;
}
.tmp-plan-shiori-check input{
  width:24px;
  height:24px;
  margin:0;
  accent-color:#8a6a2e;
}
@media(max-width:700px){
  .tmp-plan-shiori-choice{
    display:block;
    padding:16px;
  }
  .tmp-plan-shiori-check{
    margin-top:14px;
    width:100%;
    box-sizing:border-box;
    justify-content:flex-start;
    min-height:58px;
  }
}
