:root{--ink:#000;--accent:#df5d39;--panel:#ddca78;--fz-section-title:clamp(38.4px,2.94cqw,62.4px);--fz-block-title:clamp(28.8px,2.46cqw,48px);--fz-body-lg:clamp(19.2px,1.704cqw,33.6px);--fz-body:clamp(18px,1.56cqw,30px);--fz-note:clamp(15.6px,1.296cqw,24px);--fz-footer:clamp(20.4px,1.5vw,28.8px);--lh-tight:1.25;--lh-body:1.7}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-color:rgba(202,165,79,.82) rgba(255,255,255,.42);scrollbar-width:thin}
body{margin:0;min-height:100vh;overflow-x:hidden;position:relative;background:transparent;color:var(--ink);font-family:"Noto Sans SC","Noto Sans CJK SC","Noto Sans",sans-serif}
body::before{content:"";position:fixed;inset:0;z-index:0;background:url("images/paper.svg") center center/cover no-repeat;pointer-events:none}
img{display:block;max-width:none}.decor{position:absolute;pointer-events:none;user-select:none}
a{color:inherit}
html::-webkit-scrollbar{width:12px}html::-webkit-scrollbar-track{background:rgba(255,255,255,.42)}html::-webkit-scrollbar-thumb{background:rgba(202,165,79,.82);border-radius:999px;border:2px solid rgba(255,255,255,.32)}

/* fixed header: translucent, layout-independent */
.site-header{position:fixed;z-index:100;left:0;top:0;width:100%;height:10.8vw;background:rgba(248,246,239,.58);box-shadow:none;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);pointer-events:none}
.site-header a,.site-header nav{pointer-events:auto}
.header-brand{position:absolute;left:4.6vw;top:2.2vw;width:18.5vw;height:6.2vw;overflow:visible}
.logo-clip{display:block;width:100%;height:100%;overflow:visible}
.header-brand img{width:100%;height:100%;object-fit:contain;object-position:left top}
.global-nav{position:absolute;right:5.4vw;top:3.45vw;display:flex;align-items:center;gap:1.3vw;white-space:nowrap;font-family:"Noto Sans SC","Noto Sans CJK SC","Noto Sans",sans-serif;font-size:21.6px;line-height:1.35;font-weight:800;letter-spacing:0;font-style:normal;font-stretch:normal}
.global-nav a{text-decoration:none;font:inherit;letter-spacing:0}.global-nav span{font:inherit;letter-spacing:0}

/* section bodies use normal document flow; only artwork inside them is absolute */
.page{position:relative;z-index:1;width:100%;overflow:visible;container-type:inline-size;background:transparent}
.page>section{position:relative;left:auto;top:auto;width:100%;overflow:hidden;background:transparent}

/* HERO */
.hero{height:59.3cqw}
.hero-map{position:absolute;z-index:2;left:7.3cqw;top:16.6cqw;width:84.3cqw;height:auto}
.hero-title-clip{position:absolute;z-index:5;left:8.2cqw;top:22.8cqw;width:84.3cqw;height:30cqw;overflow:visible}
.hero-title{width:100%;height:100%;object-fit:contain;object-position:center center}
.hero-cloud-left{z-index:1;left:-4.5cqw;top:14.1cqw;width:21.3cqw}
.hero-cloud-top-right{z-index:1;left:67.3cqw;right:auto;top:11.45cqw;width:33.75cqw}
.hero-cloud-right{z-index:1;right:-5.5cqw;top:23.6cqw;width:22.2cqw}
.hero-cloud-lower-right{display:none!important}

/* EVENT OVERVIEW */
.event{height:41.5cqw;overflow:visible}
.event-content{position:relative;z-index:4;width:100%;height:100%;text-align:center;overflow:visible;isolation:isolate}
.event h1{position:absolute;left:0;top:2.8cqw;width:100%;margin:0;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.event h1 span{font-weight:400;margin:0 .5cqw}
.event-accent{position:absolute;left:47.2cqw;top:7.05cqw;width:5.6cqw;height:.55cqw;background:var(--accent)}
.event-copy{position:absolute;left:17cqw;top:12.3cqw;width:66cqw;text-align:center;font-size:var(--fz-body-lg);line-height:2.2;font-weight:800}
.event-copy p{margin:0}
.event h1,.event-accent,.event-copy{position:relative;z-index:3}
.event-cloud-left{z-index:1;left:6.2cqw;top:1.1cqw;width:16.2cqw}
.event-cloud-title{z-index:1;left:66.5cqw;top:1.1cqw;width:18.2cqw}
.event-cloud-right{display:none!important}
.event-cloud-upper-right{z-index:1;left:62.8cqw;top:5.1cqw;width:24.6cqw}
.event-cloud-lower-right{z-index:1;left:61.4cqw;top:28.9cqw;width:24.8cqw}

/* ABOUT */
.about{height:46.2cqw;overflow:visible}
.about-place{position:absolute;z-index:5;height:auto}
/* Shimane visible artwork touches the left edge and overlaps the ochre panel, as in the source artwork. */
.about-shimane{left:0;top:4.3cqw;width:37.7cqw}
.about-tottori{right:0;top:8.8cqw;width:16.7cqw}
.about-cloud-top-right{display:none!important}
.about-cloud-bottom-left{z-index:1;left:-18.88cqw;top:20.48cqw;width:36.59cqw}
.about-panel{position:absolute;z-index:3;left:19.4cqw;top:9.15cqw;width:57.5cqw;height:30.1cqw;border-radius:3.7cqw;background:var(--panel);text-align:center}
.about-panel h2{position:absolute;left:0;top:2.55cqw;width:100%;margin:0;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.about-copy{position:absolute;left:3.05cqw;top:9.45cqw;width:51.4cqw;font-size:var(--fz-body-lg);line-height:1.78;font-weight:800;text-align:center}
.about-copy p{margin:0 0 2.45cqw}

/* HOW TO JOIN */
.join{height:123.45cqw}
.join-heading-img{position:absolute;z-index:6;left:4.94cqw;top:7.3cqw;width:90.01cqw;height:auto}
.join-cloud-left{z-index:1;left:-4.5cqw;top:26.4cqw;width:22.3cqw}
.join-cloud-right{z-index:1;right:-7cqw;top:66.5cqw;width:31.5cqw}
.join-cloud-bottom-left{z-index:1;left:-14.6cqw;top:92.7cqw;width:47cqw}
.join-cloud-bottom-right{z-index:1;right:1cqw;top:111.5cqw;width:23cqw}
.join-step{position:absolute;z-index:5;left:13.45cqw;width:73.5cqw}
.step-1{top:18.55cqw}.step-2{top:34.05cqw}.step-3{top:53.3cqw}.step-4{top:82.9cqw}
.badge{position:absolute;left:0;top:0;width:4.25cqw;height:4.1cqw}
.badge img{position:absolute;inset:0;width:100%;height:100%}
.badge span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:2.46cqw;line-height:1;font-weight:900;transform:translateY(-.05cqw)}
.step-body{margin-left:6.2cqw}
.join-step h3{margin:0;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.join-step p{margin:1.1cqw 0 0;font-size:var(--fz-body);line-height:var(--lh-body);font-weight:800}
.step1-copy{font-size:var(--fz-body-lg)!important;line-height:1.7!important;font-weight:800!important}
.join-step .note{margin-top:.2cqw;font-size:var(--fz-note);line-height:1.65;font-weight:700}
.step-3 p{margin:.18cqw 0 0;font-size:var(--fz-body);line-height:1.8;font-weight:800}
.step-4 .step-body{width:70cqw;max-width:70cqw}
.step-4 p{margin:.4cqw 0 0;font-size:var(--fz-body);line-height:1.75;font-weight:800;white-space:normal;overflow-wrap:break-word}
.join-yamaguchi{position:absolute;z-index:3;left:-1.6cqw;top:92.7cqw;width:49.5cqw;height:auto}

/* SPOT LOCATIONS: begins after the Yamaguchi image; paper2 overlays paper1 only here */
.spots{height:105cqw;isolation:isolate;background:transparent}
.spots::before{content:"";position:absolute;inset:0;z-index:0;background:url("images/section-overlay.webp") center center/cover no-repeat;opacity:.4;pointer-events:none}
.spots-paper{display:none}
.spots h2{position:absolute;z-index:5;left:0;top:5.2cqw;width:100%;margin:0;text-align:center;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.spots-accent{position:absolute;z-index:5;left:47.7cqw;top:9.25cqw;width:4.7cqw;height:.48cqw;background:var(--accent)}
.spots-map{position:absolute;z-index:4;left:13.2cqw;top:11.1cqw;width:74.4cqw;height:auto}

/* cloud types/positions matched to the AI reference */
.spots-cloud-top-left{z-index:1;left:-9.5cqw;top:2.2cqw;width:33cqw}
.spots-cloud-top-right{z-index:1;right:-28.2cqw;top:26.5cqw;width:51.5cqw}
.spots-cloud-mid-right{z-index:1;right:-14.8cqw;top:73.7cqw;width:25.2cqw}
.spots-cloud-bottom-left{z-index:1;left:-5.8cqw;top:74.5cqw;width:21.5cqw}
.spots-cloud-bottom-right{z-index:1;right:8cqw;top:87.2cqw;width:38cqw}

.spot-card{position:absolute;z-index:5;width:36.4cqw}
.spot-card>img{width:100%;height:auto}
.spot-tottori{left:13.1cqw;top:53.8cqw}
.spot-shimane{left:52.2cqw;top:53.8cqw}
.spot-okayama{left:13.1cqw;top:68.4cqw}
.spot-hiroshima{left:52.2cqw;top:68.4cqw}
.spot-yamaguchi{left:13.1cqw;top:82.9cqw}
.map-hit{position:absolute;z-index:8;display:block;border-radius:999px}
.map-hit:focus-visible{outline:3px solid #111;outline-offset:2px}
.spots-bottom{position:absolute;z-index:4;right:0;bottom:-1.2cqw;width:52.5cqw;height:auto}

/* Google Map click targets aligned to red buttons embedded in SVG */
.spot-tottori .map-hit{left:83.91%;width:15.71%;height:11.23%}.spot-tottori .map-hit-1{top:38.84%}.spot-tottori .map-hit-2{top:57.80%}.spot-tottori .map-hit-3{top:76.76%}
.spot-shimane .map-hit{left:83.61%;width:15.75%;height:9.33%}.spot-shimane .map-hit-1{top:32.27%}.spot-shimane .map-hit-2{top:48.03%}.spot-shimane .map-hit-3{top:63.79%}
.spot-okayama .map-hit{left:83.91%;width:15.71%;height:11.01%}.spot-okayama .map-hit-1{top:37.47%}.spot-okayama .map-hit-2{top:56.06%}.spot-okayama .map-hit-3{top:74.66%}
.spot-hiroshima .map-hit{left:83.61%;width:15.76%;height:11.00%}.spot-hiroshima .map-hit-1{top:37.52%}.spot-hiroshima .map-hit-2{top:56.09%}.spot-hiroshima .map-hit-3{top:74.67%}
.spot-yamaguchi .map-hit{left:83.92%;width:15.71%;height:11.08%}.spot-yamaguchi .map-hit-1{top:35.80%}.spot-yamaguchi .map-hit-2{top:54.50%}.spot-yamaguchi .map-hit-3{top:73.21%}

@media (max-width:700px){
  .header-brand{left:3.5vw;width:22vw}
}

/* LOWER AREA */
.lower-area{position:relative;width:100%;background:transparent;isolation:isolate}
.lower-area>section{position:relative;z-index:1;left:auto;top:auto;width:100%;overflow:hidden;background:transparent}
.spots-paper{display:none!important}
.airport{background:transparent!important;background-image:none!important}

/* AIRPORT / redemption locations */
.airport{height:70cqw}
.airport h2{position:absolute;z-index:6;left:0;top:5.2cqw;width:100%;margin:0;text-align:center;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.airport-accent{position:absolute;z-index:6;left:47.7cqw;top:9.35cqw;width:4.7cqw;height:.48cqw;background:var(--accent)}
.airport-card{position:absolute;z-index:5;height:auto}
.airport-yonago{left:14.1cqw;top:18.1cqw;width:30.6cqw}
.airport-okayama{left:55.2cqw;top:18.1cqw;width:30.5cqw}
.airport-hiroshima{left:14.1cqw;top:40.0cqw;width:30.6cqw}
.airport-fukuoka{left:55.2cqw;top:40.0cqw;width:30.5cqw}
.airport-cloud-top-right{z-index:1;right:-1.5cqw;top:2.0cqw;width:32cqw}
.airport-cloud-left{z-index:1;left:-5.5cqw;top:20.5cqw;width:22cqw}
.airport-cloud-right{z-index:1;right:-6.5cqw;top:31cqw;width:19cqw}
.airport-cloud-center{z-index:1;left:51.3cqw;top:54.0cqw;width:21cqw}
.airport-cloud-bottom-left{z-index:1;left:-6.5cqw;top:58.5cqw;width:24cqw}
.airport-cloud-bottom-right{z-index:1;right:-4.0cqw;top:58.0cqw;width:23cqw}

/* PRIZE / gifts */
.prize{position:relative;width:100%;height:160cqw;overflow:hidden;isolation:isolate;background:transparent}
.prize-paper{position:absolute;inset:0;z-index:0;background:url("images/paper3.png") center center/cover no-repeat;opacity:.88;pointer-events:none}
.prize-title-img{position:absolute;z-index:7;left:24cqw;top:4.4cqw;width:52cqw;height:auto}
.prize-box,.prize-deco{position:absolute;pointer-events:none;user-select:none}
.prize-box{z-index:3}
/* supplied source: single gift at upper-left, double gift at lower-right */
.prize-box-left{left:0;top:1.25cqw;width:18cqw}
.prize-box-right{right:-.4cqw;bottom:.3cqw;width:27cqw}
.prize-deco{z-index:2}
.prize-deco-top{left:20.2cqw;top:27.1cqw;width:25.8cqw}
.prize-deco-left-1{left:-5.2cqw;top:80.7cqw;width:45cqw}
.prize-deco-left-2{left:9.8cqw;top:90.7cqw;width:16.1cqw}
.prize-deco-right-1{right:-18.7cqw;top:102cqw;width:41.3cqw}
.prize-deco-right-2{right:1.2cqw;top:121.1cqw;width:16.6cqw}

/* Alternating composition requested by the user: copy and goods swap sides every row. */
.prize-row{position:absolute;z-index:5;left:4.8cqw;width:89.4cqw;height:30.8cqw}
.prize-row-yonago{top:20.5cqw}
.prize-row-okayama{top:51.6cqw}
.prize-row-hiroshima{top:82.7cqw}
.prize-row-fukuoka{top:113.8cqw}
.prize-copy{position:absolute;left:0;top:3.2cqw;width:42cqw;color:#000}
.prize-row-alt .prize-copy{left:0;width:42cqw}
.prize-copy h3{display:flex;align-items:center;gap:.8cqw;margin:0 0 1.4cqw;font-size:36px;line-height:1.15;font-weight:900;white-space:nowrap}
.prize-copy h3::before,.prize-copy h3::after{content:none!important}
.prize-title-mark{width:1.55cqw;height:1.55cqw;object-fit:contain;flex:0 0 auto}
.prize-copy p{margin:0 0 .9cqw;font-size:var(--fz-body);line-height:1.42;font-weight:800}
.prize-copy small{display:block;margin-bottom:.12cqw;font-size:16.2px;line-height:1.22;font-weight:800}
.prize-product-name{font-size:26.4px}
.prize-goods{position:absolute;top:-2.1cqw;width:43.5cqw;height:32.5cqw;object-fit:contain;object-position:center}
.prize-row:not(.prize-row-alt) .prize-goods{right:13cqw;left:auto}
.prize-row-alt .prize-goods{right:13cqw;left:auto}
.prize-row-yonago .prize-goods{width:44.3cqw;top:-2.0cqw}
.prize-row-okayama .prize-goods{width:44.8cqw;top:-2.2cqw}
.prize-row-hiroshima .prize-goods{width:44.3cqw;top:-2.1cqw}
.prize-row-fukuoka .prize-goods{width:43.8cqw;top:-1.9cqw}
.prize-note{position:absolute;z-index:6;left:17cqw;bottom:2.25cqw;width:66cqw;margin:0;text-align:center;font-size:clamp(13.2px,1.032cqw,18px);font-weight:700;line-height:1.45}

/* POPULAR ROUTES */
.routes{position:relative;width:100%;height:55cqw;overflow:hidden;background:transparent}
.routes h2{position:absolute;z-index:5;left:0;top:5.4cqw;width:100%;margin:0;text-align:center;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.routes-grid{position:absolute;z-index:5;left:4.6cqw;top:13.7cqw;width:90.8cqw;display:grid;grid-template-columns:repeat(4,1fr);gap:2.8cqw;align-items:start}
.routes-grid .route-card{display:block;text-decoration:none;transition:transform .18s ease,filter .18s ease}.routes-grid .route-card:hover{transform:translateY(-.25cqw);filter:brightness(1.02)}.routes-grid .route-card:focus-visible{outline:3px solid #111;outline-offset:4px}.routes-grid img{width:100%;height:auto}
.route-info{position:absolute;z-index:5;left:4.6cqw;top:38.2cqw;width:59.8cqw;height:11.3cqw}
.route-info-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.route-info-copy{position:absolute;z-index:2;left:2.4cqw;top:2.15cqw;color:#fff;font-weight:900;line-height:1.35;display:flex;flex-direction:column}
.route-info-copy strong{font-size:clamp(28.8px,2.4cqw,43.2px)}
.route-info-copy span{font-size:clamp(24px,2.1cqw,38.4px)}
.sep-banner{position:absolute;z-index:5;right:4.7cqw;top:38.25cqw;width:30.6cqw;height:auto}

/* RENTAL BOOKING */
.rental-booking{position:relative;width:100%;height:36.5cqw;overflow:hidden;background:transparent;isolation:isolate}
.rental-booking::before{content:"";position:absolute;inset:0;z-index:0;background:url("images/section-overlay.webp") center center/cover no-repeat;opacity:.4;pointer-events:none}
.rental-booking h2{position:absolute;z-index:5;left:0;top:3.5cqw;width:100%;margin:0;text-align:center;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.rental-logo-grid{position:absolute;z-index:5;left:4.8cqw;top:11.2cqw;width:90.4cqw;display:grid;grid-template-columns:repeat(8,1fr);column-gap:2.35cqw;align-items:center}
.rental-logo-card{position:relative;width:100%;aspect-ratio:1/1;background:rgba(255,255,255,.96);display:flex;align-items:center;justify-content:center;overflow:hidden}
.rental-logo-card img{display:block;max-width:88%;max-height:88%;width:auto;height:auto;object-fit:contain}
.rental-logo-card{color:inherit;text-decoration:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}
.rental-logo-card:hover{transform:translateY(-.25cqw);box-shadow:0 .45cqw 1.1cqw rgba(0,0,0,.14)}
.rental-logo-card:focus-visible{outline:.18cqw solid #111;outline-offset:.22cqw}

.rental-booking-note{position:absolute;z-index:5;left:6.1cqw;top:26.0cqw;width:61cqw;color:#000;font-size:var(--fz-note);line-height:1.6;font-weight:800}
.rental-booking-note p{margin:0}
.rental-car{position:absolute;z-index:5;right:7.1cqw;top:22.0cqw;width:20.2cqw;height:auto}

/* FLIGHT BOOKING / final section */
.flight-booking{position:relative;width:100%;height:42cqw;overflow:hidden;background:transparent}
.flight-booking h2{position:absolute;z-index:5;left:0;top:4.4cqw;width:100%;margin:0;text-align:center;font-size:var(--fz-section-title);line-height:1.25;font-weight:900}
.flight-cloud-left{z-index:1;left:-6.8cqw;top:14.9cqw;width:22.5cqw}
.flight-cloud-right{z-index:1;right:-3.8cqw;top:22.2cqw;width:16.3cqw}
.flight-options{position:absolute;z-index:5;left:16.3cqw;top:12.2cqw;width:67.2cqw;display:grid;grid-template-columns:1fr 1fr;column-gap:7.2cqw}
.flight-option{margin:0}
.flight-airline-label{margin:0 0 .25cqw;font-size:clamp(16.8px,1.32cqw,24px);line-height:1.35;font-weight:800}
.flight-airline-name{margin:0 0 .8cqw;font-size:clamp(21.6px,1.536cqw,28.8px);line-height:1.35;font-weight:800}
.flight-logo-card{display:flex;align-items:center;justify-content:center;width:100%;height:8.6cqw;background:#fff;text-decoration:none;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.flight-logo-card:hover{transform:translateY(-.2cqw);box-shadow:0 .4cqw 1cqw rgba(0,0,0,.12)}
.flight-logo-card:focus-visible{outline:.18cqw solid #111;outline-offset:.22cqw}
.flight-logo-card img{display:block;max-width:88%;max-height:82%;width:auto;height:auto;object-fit:contain}
.flight-option:last-child .flight-logo-card img{max-width:none;max-height:none;width:auto;height:205%;object-fit:contain}
.page-top-ticket{position:absolute;z-index:8;right:.6cqw;top:18.2cqw;width:18.1cqw;height:auto;display:block;text-decoration:none;transform:rotate(7deg);transition:transform .18s ease}
.page-top-ticket:hover{transform:rotate(3deg) translateY(-.25cqw)}
.page-top-ticket img{width:90%;height:auto}

/* FOOTER */
.site-footer{position:relative;z-index:2;width:100%;height:12.8cqw;overflow:hidden;background:transparent}
.footer-bar{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.footer-organizer{position:absolute;z-index:3;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:2.2cqw;color:#111;font-weight:800}
.footer-organizer span{font-size:clamp(18px,1.38cqw,26.4px);white-space:nowrap}
.footer-organizer img{width:15.5cqw;height:auto}

@media (max-width:700px){
  .flight-airline-label,.flight-airline-name{font-size:1.92vw}
  .footer-organizer span{font-size:1.86vw}
  .footer-organizer img{width:18vw}
}
/* ===== THREE-STAGE RESPONSIVE OVERRIDES 2026-09-28 ===== */

/* PC: 1020px and above */
@media (min-width:1020px){
  .site-header{min-height:92px}
  .prize-row-alt .prize-copy{left:0;width:42cqw}
  .prize-row-alt .prize-goods{right:13cqw;left:auto}
}

/* Tablet: 768px–1019px */
@media (min-width:768px) and (max-width:1019px){
  /* event-owned clouds tablet */
  .event{height:49cqw}
  .event-content{overflow:visible}
  .event-cloud-left{left:5.5cqw;top:1.5cqw;width:18.5cqw}
  .event-cloud-title{left:65cqw;top:1.2cqw;width:19.5cqw}
  .event-cloud-upper-right{left:61cqw;top:6.5cqw;width:27cqw}
  .event-cloud-lower-right{left:59cqw;top:34cqw;width:27cqw}

  /* top cloud exact tablet */
  .event{overflow:visible}
  .about{overflow:visible}
  .about-cloud-top-right{left:68.69cqw;right:auto;top:-22.12cqw;width:42.54cqw}
  .about-cloud-bottom-left{left:-18.88cqw;top:11.88cqw;width:36.59cqw}

  :root{--fz-section-title:clamp(33.6px,3.84vw,40.8px);--fz-block-title:clamp(26.4px,3.36vw,36px);--fz-body-lg:clamp(18px,2.28vw,24px);--fz-body:clamp(16.8px,2.04vw,21.6px);--fz-note:clamp(14.4px,1.74vw,18px)}
  .site-header{height:92px;background:rgba(248,246,239,.78)}
  .header-brand{left:24px;top:16px;width:185px;height:60px}
  .global-nav{right:24px;top:32px;gap:9px;font-size:21.6px;font-weight:800;letter-spacing:0}

  .event{height:47cqw}.event-copy{left:10cqw;width:80cqw;line-height:1.95}
  .about{height:53cqw}.about-panel{left:17cqw;width:66cqw;height:36cqw}.about-copy{left:4cqw;width:58cqw;top:10.7cqw;line-height:1.65}.about-shimane{left:0;width:37cqw}.about-tottori{right:0;width:18cqw}

  .join{height:132cqw}.join-step{left:9cqw;width:82cqw}.step-body{margin-left:6.8cqw}.step-4 .step-body{width:74cqw;max-width:74cqw}

  .spots{height:122cqw}.spots-map{left:10cqw;width:80cqw}.spot-card{width:40cqw}.spot-tottori{left:8cqw;top:58cqw}.spot-shimane{left:52cqw;top:58cqw}.spot-okayama{left:8cqw;top:75cqw}.spot-hiroshima{left:52cqw;top:75cqw}.spot-yamaguchi{left:8cqw;top:92cqw}.spots-bottom{width:57cqw}

  .airport{height:82cqw}.airport-card{width:34cqw}.airport-yonago{left:10cqw;top:18cqw}.airport-okayama{left:56cqw;top:18cqw}.airport-hiroshima{left:10cqw;top:45cqw}.airport-fukuoka{left:56cqw;top:45cqw}

  .prize{height:151cqw}.prize-title-img{left:22cqw;width:56cqw}.prize-row{left:4cqw;width:91cqw;height:29cqw}.prize-row-yonago{top:19cqw}.prize-row-okayama{top:49cqw}.prize-row-hiroshima{top:79cqw}.prize-row-fukuoka{top:109cqw}.prize-copy,.prize-row-alt .prize-copy{left:0;width:46cqw;top:3.6cqw}.prize-goods,.prize-row-alt .prize-goods{right:4.8cqw;left:auto;width:46cqw;height:29cqw}.prize-row-yonago .prize-goods,.prize-row-okayama .prize-goods,.prize-row-hiroshima .prize-goods,.prize-row-fukuoka .prize-goods{width:46cqw;top:-.6cqw}.prize-copy h3{font-size:36px}

  .routes{height:88cqw}.routes-grid{left:9cqw;top:14cqw;width:82cqw;grid-template-columns:repeat(2,1fr);gap:3cqw 4cqw}.route-info{left:9cqw;top:65cqw;width:51cqw;height:12cqw}.sep-banner{right:9cqw;top:65cqw;width:29cqw}

  .rental-booking{height:61cqw}.rental-logo-grid{position:absolute;left:8cqw;top:12cqw;width:84cqw;grid-template-columns:repeat(4,1fr);gap:2.4cqw}.rental-booking-note{left:8cqw;top:48cqw;width:62cqw}.rental-car{right:6cqw;top:43cqw;width:23cqw}
  .flight-booking{height:48cqw}.flight-options{left:11cqw;width:78cqw;column-gap:5cqw}.flight-logo-card{height:11cqw}.page-top-ticket{width:19cqw;right:.4cqw;top:27cqw}
  .site-footer{height:14cqw}
}

/* Smartphone: 767px and below */
@media (max-width:767px){
  /* event-owned clouds mobile */
  .event-content{overflow:visible}
  .event-cloud-upper-right{left:auto;right:2vw;top:1vw;width:42vw}
  .event-cloud-lower-right{left:auto;right:1vw;top:auto;bottom:-8vw;width:44vw}

  /* top cloud exact mobile */
  .event-cloud-right{display:none!important}
  .event-cloud-title{display:block;left:50vw;top:-5vw;width:43vw}
  .hero-cloud-lower-right{display:none!important}
  .about-cloud-top-right{display:none!important}
  .about-cloud-bottom-left{left:-28vw;top:auto;bottom:-5vw;width:56vw}

  :root{--fz-section-title:clamp(32.4px,9.84vw,40.8px);--fz-block-title:clamp(25.2px,7.68vw,33.6px);--fz-body-lg:clamp(18px,5.04vw,21.6px);--fz-body:clamp(16.8px,4.68vw,20.4px);--fz-note:clamp(13.2px,3.84vw,16.8px)}
  html,body{max-width:100%;overflow-x:hidden}
  .page{container-type:normal}
  .site-header{height:76px;background:rgba(248,246,239,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .header-brand{left:12px;top:9px;width:132px;height:56px}
  .global-nav{right:10px;top:12px;width:calc(100% - 164px);display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;white-space:normal;font-size:14.4px;line-height:1.25;font-weight:800;letter-spacing:0;text-align:center}
  .global-nav span{display:none}

  .hero{height:78vw;min-height:285px}.hero-map{left:2vw;top:20vw;width:96vw}.hero-title-clip{left:2vw;top:27vw;width:96vw;height:36vw}.hero-cloud-left{left:-10vw;top:15vw;width:34vw}.hero-cloud-top-right{right:-8vw;top:11vw;width:43vw}.hero-cloud-right{right:-10vw;top:35vw;width:30vw}

  .event{height:auto;min-height:0;padding:48px 18px 54px}.event-content{height:auto}.event h1{position:relative;top:auto;left:auto;font-size:var(--fz-section-title)}.event-accent{position:relative;display:block;left:auto;top:auto;width:58px;height:4px;margin:12px auto 24px}.event-copy{position:relative;left:auto;top:auto;width:100%;font-size:var(--fz-body);line-height:1.9}.event-copy p{margin:0 0 8px}.event-cloud-left{left:-12vw;top:3vw;width:35vw}.event-cloud-title{display:block;left:auto;right:2vw;top:-4vw;width:32vw}.event-cloud-upper-right{left:auto;right:2vw;top:7vw;width:30vw}.event-cloud-lower-right{left:auto;right:2vw;top:auto;bottom:2vw;width:32vw}.event-cloud-right{display:none!important}

  .about{height:auto;min-height:570px;padding:74px 14px 58px}.about-panel{position:relative;left:auto;top:auto;width:92%;height:auto;min-height:395px;margin:0 auto;padding:28px 20px 32px;border-radius:28px}.about-panel h2{position:relative;top:auto;left:auto;font-size:clamp(28.8px,8.4vw,37.2px)}.about-copy{position:relative;left:auto;top:auto;width:100%;margin-top:26px;font-size:16.8px;line-height:1.75}.about-copy p{margin:0 0 24px}.about-copy br{display:none}.about-shimane{left:-52px;top:8px;width:185px}.about-tottori{right:-23px;top:38px;width:105px}.about-cloud-bottom-left{left:-28vw;top:auto;bottom:-5vw;width:56vw}

  .join{height:auto;min-height:0;padding:48px 18px 210px}.join-heading-img{position:relative;left:auto;top:auto;width:100%;margin:0 auto 24px}.join-step{position:relative;left:auto!important;top:auto!important;width:100%;margin:28px 0}.badge{width:42px;height:42px}.badge span{font-size:24px}.step-body{margin-left:54px}.join-step h3{font-size:clamp(25.2px,7.2vw,32.4px)}.join-step p,.step1-copy,.step-3 p,.step-4 p{font-size:16.8px!important;line-height:1.75!important}.join-step .note{font-size:14.4px}.step-4 .step-body{width:auto;max-width:none}.join-yamaguchi{left:-4vw;top:auto;bottom:0;width:94vw}.join-cloud-left{left:-18vw;top:22%;width:43vw}.join-cloud-right{right:-20vw;top:50%;width:46vw}.join-cloud-bottom-left{left:-16vw;top:auto;bottom:25vw;width:40vw}.join-cloud-bottom-right{right:-17vw;top:auto;bottom:13vw;width:38vw}

  .spots{height:auto;min-height:0;padding:48px 14px 245px;background:transparent}.spots h2{position:relative;left:auto;top:auto}.spots-accent{position:relative;display:block;left:auto;top:auto;width:55px;height:4px;margin:11px auto 20px}.spots-map{position:relative;left:auto;top:auto;width:100%;margin:0 auto 22px}.spot-card{position:relative;left:auto!important;top:auto!important;width:100%;margin:0 auto 18px}.spots-bottom{right:-8vw;bottom:0;width:108vw}.spots-cloud-top-left{left:-24vw;top:2vw;width:55vw}.spots-cloud-top-right{right:-30vw;top:25%;width:50vw}.spots-cloud-mid-right{right:-20vw;top:61%;width:40vw}.spots-cloud-bottom-left{left:-24vw;top:auto;bottom:17%;width:50vw}.spots-cloud-bottom-right{right:15vw;top:auto;bottom:8%;width:45vw}

  .airport{height:auto;min-height:0;padding:48px 18px 36px}.airport h2{position:relative;left:auto;top:auto;font-size:clamp(30px,8.4vw,37.2px)}.airport-accent{position:relative;display:block;left:auto;top:auto;width:55px;height:4px;margin:12px auto 24px}.airport-card{position:relative;left:auto!important;top:auto!important;width:100%;margin:0 auto 24px}.airport-cloud-top-right{right:-25vw;top:0;width:48vw}.airport-cloud-left{left:-25vw;top:24%;width:48vw}.airport-cloud-right{right:-26vw;top:44%;width:42vw}.airport-cloud-center{left:55vw;top:64%;width:42vw}.airport-cloud-bottom-left{left:-22vw;top:auto;bottom:7%;width:46vw}.airport-cloud-bottom-right{right:-22vw;top:auto;bottom:2%;width:45vw}

  .prize{height:auto;min-height:0;padding:86px 14px 105px}.prize-paper{opacity:.86}.prize-title-img{position:relative;left:auto;top:auto;width:72%;margin:0 auto 26px}.prize-box-left{left:-2vw;top:0;width:29vw}.prize-box-right{right:-4vw;bottom:0;width:41vw}.prize-row{position:relative;left:auto!important;top:auto!important;width:100%;height:235px;margin:0 auto 22px}.prize-copy,.prize-row-alt .prize-copy{left:0;top:28px;width:50%;padding-left:3px}.prize-goods,.prize-row-alt .prize-goods,.prize-row-yonago .prize-goods,.prize-row-okayama .prize-goods,.prize-row-hiroshima .prize-goods,.prize-row-fukuoka .prize-goods{left:auto;right:1%;top:0;width:50%;height:225px}.prize-copy h3{gap:7px;margin-bottom:15px;font-size:36px;white-space:normal}.prize-title-mark{width:15px;height:15px}.prize-copy p{margin-bottom:12px;font-size:15.6px;line-height:1.45}.prize-copy small{font-size:16.2px}.prize-note{position:relative;left:auto;bottom:auto;width:90%;margin:24px auto 0;font-size:12px}.prize-deco-top{left:16vw;top:29%;width:28vw}.prize-deco-left-1{left:-12vw;top:55%;width:38vw}.prize-deco-right-1{right:-10vw;top:75%;width:34vw}

  .routes{height:auto;min-height:0;padding:48px 16px 44px}.routes h2{position:relative;left:auto;top:auto;font-size:clamp(30px,8.4vw,37.2px);margin-bottom:24px}.routes-grid{position:relative;left:auto;top:auto;width:100%;grid-template-columns:1fr;gap:18px}.route-info{position:relative;left:auto;top:auto;width:100%;height:108px;margin:28px 0 18px}.route-info-copy{left:20px;top:21px}.route-info-copy strong{font-size:26.4px}.route-info-copy span{font-size:20.4px}.sep-banner{position:relative;right:auto;top:auto;width:100%;margin:0 auto}

  .rental-booking{height:auto;min-height:0;padding:48px 16px 42px;background:transparent}.rental-booking h2{position:relative;left:auto;top:auto;margin-bottom:28px}.rental-logo-grid{position:relative;left:auto;top:auto;width:100%;grid-template-columns:repeat(2,1fr);gap:14px}.rental-logo-card{aspect-ratio:1/1}.rental-booking-note{position:relative;left:auto;top:auto;width:100%;margin-top:24px;font-size:14.4px;line-height:1.65}.rental-car{position:relative;right:auto;top:auto;width:48%;margin:18px 0 0 auto}

  .flight-booking{height:auto;min-height:0;padding:48px 16px 145px}.flight-booking h2{position:relative;left:auto;top:auto;margin-bottom:28px}.flight-options{position:relative;left:auto;top:auto;width:100%;grid-template-columns:1fr;gap:26px}.flight-airline-label{font-size:15.6px}.flight-airline-name{font-size:20.4px}.flight-logo-card{height:118px}.flight-option:last-child .flight-logo-card img{height:190%}.flight-cloud-left{left:-25vw;top:20%;width:48vw}.flight-cloud-right{right:-22vw;top:auto;bottom:20%;width:42vw}.page-top-ticket{right:-2vw;top:auto;bottom:8px;width:37vw}

  .site-footer{height:136px}
  .footer-bar{object-fit:cover}
  .footer-organizer{gap:18px;padding:0 18px;justify-content:center;align-items:center}
  .footer-organizer span{font-size:19.2px;line-height:1.25;white-space:nowrap;text-align:center;writing-mode:horizontal-tb}
  .footer-organizer a{display:block;flex:0 0 auto}
  .footer-organizer img{width:42vw;max-width:205px}
}

/* Note / disclaimer typography — source AI: Noto Sans SC Medium 13px / 20px */
.join-step .note,
.prize-note,
.rental-booking-note,
.rental-booking-note p {
  font-family:"Noto Sans SC","Noto Sans CJK SC","Noto Sans",sans-serif !important;
  font-weight:500 !important;
  font-size:15.6px !important;
  line-height:20px !important;
  letter-spacing:0 !important;
  font-style:normal !important;
  font-stretch:normal !important;
}

/* ===== FINAL LAYOUT CORRECTIONS 2026-09-29 ===== */
/* Desktop: keep the reference cloud types while ensuring every cloud remains fully visible. */
@media (min-width:1020px){
  .hero{overflow:visible}
  .event{overflow:visible}
  .about{overflow:visible}

  .hero-cloud-left{left:-6.2cqw;top:12.1cqw;width:20.2cqw}
  .hero-cloud-top-right{left:auto;right:-3.2cqw;top:10.45cqw;width:34.5cqw}
  .hero-cloud-right{left:auto;right:-8.2cqw;top:25.6cqw;width:20.2cqw}
  .hero-cloud-lower-right{left:auto;right:.8cqw;top:45cqw;width:27.5cqw}

  .event{height:41.5cqw}
  .event-cloud-left{left:6.2cqw;top:1.1cqw;width:16.2cqw}
  .event-cloud-title{left:53.5cqw;top:1.1cqw;width:20.2cqw}
  .event-cloud-upper-right{left:82.8cqw;top:-1.9cqw;width:32cqw}
  .event-cloud-lower-right{left:78.4cqw;top:29.9cqw;width:24.8cqw}

  .about-cloud-top-right{left:auto;right:.8cqw;top:-9.8cqw;width:32.5cqw}
  .about-cloud-bottom-left{left:-6.2cqw;top:34cqw;width:22.5cqw}
}

/* Smartphone: Shimane -> ochre panel -> Tottori, all artwork fully visible. */
@media (max-width:767px){
  .about{
    display:flex;
    flex-direction:column;
    align-items:center;
    height:auto;
    min-height:0;
    padding:42px 14px 56px;
    overflow:visible;
  }
  .about-shimane,
  .about-tottori{
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    height:auto;
    max-width:100%;
    object-fit:contain;
    flex:0 0 auto;
  }
  .about-shimane{
    order:1;
    align-self:flex-start;
    width:min(76vw,390px);
    margin:0 0 18px -14px;
  }
  .about-panel{
    order:2;
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    width:92%;
    height:auto;
    min-height:0;
    margin:0 auto;
    padding:28px 20px 32px;
    border-radius:28px;
  }
  .about-panel h2{
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    font-size:clamp(27.6px,7.68vw,36px);
    line-height:1.3;
  }
  .about-copy{
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    margin-top:24px;
    font-size:16.8px;
    line-height:1.75;
  }
  .about-copy p{margin:0 0 22px}
  .about-copy p:last-child{margin-bottom:0}
  .about-copy br{display:none}
  .about-tottori{
    order:3;
    align-self:flex-end;
    width:min(60vw,310px);
    margin:20px -14px 0 0;
  }
  .about-cloud-top-right,
  .about-cloud-bottom-left{z-index:0}

  /* Keep all SEP copy inside the gold band. The arrow artwork remains unchanged. */
  .route-info{
    width:100%;
    height:96px;
    margin:28px 0 18px;
    overflow:hidden;
  }
  .route-info-copy{
    left:18px;
    top:13px;
    width:74%;
    line-height:1.32;
  }
  .route-info-copy strong{
    font-size:24px;
    line-height:1.25;
    white-space:nowrap;
  }
  .route-info-copy span{
    margin-top:4px;
    font-size:16.8px;
    line-height:1.35;
    white-space:normal;
  }

  /* Footer: keep organizer text and logo in one horizontal row like the reference. */
  .site-footer{height:102px}
  .footer-bar{object-fit:cover}
  .footer-organizer{
    padding:0 12px;
    gap:12px;
    flex-wrap:nowrap;
    justify-content:center;
    align-items:center;
  }
  .footer-organizer span{
    flex:0 1 auto;
    font-size:clamp(12px,3.24vw,15.6px);
    line-height:1.25;
    white-space:nowrap;
    text-align:center;
  }
  .footer-organizer a{flex:0 0 auto;display:block}
  .footer-organizer img{
    width:36vw;
    max-width:150px;
    height:auto;
  }
}

/* ===== RESPONSIVE TYPOGRAPHY UNIFICATION 2026-09-29 =====
   Keep the Illustrator-specified Noto Sans SC weights; only size scales by device width.
   Five semantic levels are shared across sections: section title / block title / emphasis / body / note.
   Enlarged globally so wide desktop screens do not make the copy look undersized.
*/
:root{
  --fz-section-title:clamp(43.2px,3.3vw,67.2px);
  --fz-block-title:clamp(32.4px,2.58vw,50.4px);
  --fz-emphasis:clamp(20px,1.55vw,30px);
  --fz-body:clamp(20.4px,1.5vw,28.8px);
  --fz-note:clamp(14.4px,1.08vw,19.2px);
}

/* Section headings */
.event h1,
.about-panel h2,
.spots h2,
.airport h2,
.routes h2,
.rental-booking h2,
.flight-booking h2{
  font-size:var(--fz-section-title);
}

/* In-section headings */
.join-step h3,
.prize-copy h3,
.route-info-copy strong{
  font-size:var(--fz-block-title);
}

/* Product names / strongly emphasized copy */
.prize-product-name,
.flight-airline-name,
.route-info-copy span{
  font-size:var(--fz-emphasis);
}

/* Main prose */
.event-copy,
.about-copy,
.join-step p,
.step1-copy,
.step-3 p,
.step-4 p,
.prize-copy p,
.flight-airline-label{
  font-size:var(--fz-body)!important;
}

/* Notes / supplemental copy */
.join-step .note,
.prize-copy small,
.prize-note,
.rental-booking-note,
.rental-booking-note p{
  font-size:var(--fz-note)!important;
}
.footer-organizer span{
  font-size:var(--fz-footer)!important;
  line-height:1.25;
}

/* Navigation is constrained by header width, but scales smoothly as well. */
.global-nav{font-size:clamp(21.6px,1.44vw,28.8px)}
.badge span{font-size:clamp(21.6px,1.74vw,33.6px)}

@media (min-width:768px) and (max-width:1019px){
  :root{
    --fz-section-title:clamp(38.4px,5.04vw,50.4px);
    --fz-block-title:clamp(28.8px,3.84vw,38.4px);
    --fz-emphasis:clamp(18px,2.5vw,24px);
    --fz-body:clamp(19.2px,2.58vw,24px);
    --fz-note:clamp(14.4px,1.92vw,16.8px);
    --fz-footer:clamp(18px,2.4vw,22.8px);
  }
  .global-nav{font-size:clamp(20.4px,2.58vw,26.4px)}
  .badge span{font-size:clamp(21.6px,3vw,28.8px)}
}

@media (max-width:767px){
  :root{
    --fz-section-title:clamp(33.6px,8.88vw,43.2px);
    --fz-block-title:clamp(26.4px,7.32vw,36px);
    --fz-emphasis:clamp(18px,4.9vw,23px);
    --fz-body:clamp(18px,4.86vw,21.6px);
    --fz-note:clamp(13.2px,3.84vw,16.8px);
    --fz-footer:clamp(15.6px,4.56vw,19.2px);
  }

  /* Override old fixed mobile font sizes so all sections follow the same scale. */
  .about-panel h2,
  .join-step h3,
  .airport h2,
  .routes h2,
  .prize-copy h3,
  .route-info-copy strong,
  .route-info-copy span,
  .flight-airline-name,
  .flight-airline-label,
  .about-copy,
  .prize-copy p,
  .prize-copy small,
  .rental-booking-note,
  .footer-organizer span{
    font-size:inherit;
  }

  .about-panel h2,.airport h2,.routes h2{font-size:var(--fz-section-title)}
  .join-step h3,.prize-copy h3,.route-info-copy strong{font-size:var(--fz-block-title)}
  .route-info-copy span,.flight-airline-name{font-size:var(--fz-emphasis)}
  .event-copy,.about-copy,.join-step p,.step1-copy,.step-3 p,.step-4 p,.prize-copy p,.flight-airline-label{font-size:var(--fz-body)!important}
  .join-step .note,.prize-copy small,.prize-note,.rental-booking-note,.rental-booking-note p{font-size:var(--fz-note)!important}
  .footer-organizer span{font-size:var(--fz-footer)!important;line-height:1.25}
  .global-nav{font-size:clamp(15.6px,4.26vw,19.2px)}
}

/* ===== HEADER WIDE-SCREEN SCALE — 2026-09-29 =====
   Keep the 1269px reference appearance proportional on wider desktop screens.
   Logo already scales in vw; navigation now scales with it instead of stopping at 24px. */
@media (min-width:1020px){
  .global-nav{
    font-size:clamp(24px,2.4vw,45.6px);
    gap:1.3vw;
  }
}

/* ===== GLOBAL SUPPLEMENT / NOTE TYPOGRAPHY — 2026-09-29 =====
   Use one screen-width-aware size system for all supplemental and annotation copy.
   Illustrator font weights are preserved: actual annotations stay Medium, prize condition labels stay ExtraBold. */
:root{
  --fz-note:clamp(15.6px,1.14vw,21.6px);
  --lh-note:1.55;
}

.join-step .note,
.prize-copy small,
.prize-note,
.rental-booking-note,
.rental-booking-note p{
  font-family:"Noto Sans SC","Noto Sans CJK SC","Noto Sans",sans-serif !important;
  font-size:var(--fz-note) !important;
  line-height:var(--lh-note) !important;
  letter-spacing:0 !important;
  font-style:normal !important;
  font-stretch:normal !important;
}

/* True annotations / disclaimers: Illustrator Medium. */
.join-step .note,
.prize-note,
.rental-booking-note,
.rental-booking-note p{
  font-weight:500 !important;
}

/* Prize condition labels are supplemental copy, but keep the supplied ExtraBold hierarchy. */
.prize-copy small{
  font-weight:800 !important;
}

@media (min-width:768px) and (max-width:1019px){
  :root{--fz-note:clamp(14.4px,2.04vw,19.2px)}
}

@media (max-width:767px){
  :root{--fz-note:clamp(13.2px,4.02vw,16.8px)}
}

/* ===== ROUTE INFO BANNER TYPOGRAPHY — reference #2, 2026-09-29 =====
   Match the user's second reference: large, high-presence white copy relative to banner width.
   Keep Noto Sans SC weight hierarchy unchanged. */
.route-info-copy{
  left:1.8cqw;
  top:1.25cqw;
  line-height:1.12;
}
.route-info-copy strong{
  font-size:clamp(40.8px,4.92vw,86.4px) !important;
  line-height:1.08;
  font-weight:900;
  white-space:nowrap;
}
.route-info-copy span{
  margin-top:.35cqw;
  font-size:clamp(36px,4.56vw,79.2px) !important;
  line-height:1.1;
  font-weight:900;
  white-space:nowrap;
}

@media (min-width:768px) and (max-width:1019px){
  .route-info-copy{
    left:2.2cqw;
    top:1.15cqw;
  }
  .route-info-copy strong{
    font-size:clamp(31.2px,4.2vw,40.8px) !important;
  }
  .route-info-copy span{
    margin-top:.25cqw;
    font-size:clamp(26.4px,3.66vw,36px) !important;
  }
}

@media (max-width:767px){
  .route-info{
    height:112px;
  }
  .route-info-copy{
    left:16px;
    top:15px;
    width:calc(100% - 32px);
    line-height:1.08;
  }
  .route-info-copy strong{
    font-size:clamp(26.4px,7.2vw,36px) !important;
    line-height:1.08;
  }
  .route-info-copy span{
    margin-top:7px;
    font-size:clamp(20.4px,5.82vw,27.6px) !important;
    line-height:1.1;
  }
}


/* ===== EXACT SCREEN-WIDTH TYPOGRAPHY REFERENCE — 2026-09-29 =====
   Calibrated from the user-approved reference screenshots:
   - 1267px event copy: approx. 21px text with ~53px line pitch.
   - 313px join copy: headings ~11–12px, body ~6–7px, notes ~5px.
   - 313px prize copy: airport names ~11–12px, product names ~9–10px,
     condition labels / disclaimers ~5px.
   Header navigation and the separately approved large SEP banner retain their own rules.
*/

/* Wide desktop: keep the approved 1267px visual proportion as the screen grows. */
@media (min-width:1020px){
  :root{
    --ref-section-title:3.3vw;
    --ref-block-title:2.58vw;
    --ref-emphasis:1.896vw;
    --ref-body:1.704vw;
    --ref-note:1.14vw;
  }

  .event h1,
  .about-panel h2,
  .spots h2,
  .airport h2,
  .routes h2,
  .rental-booking h2,
  .flight-booking h2{
    font-size:var(--ref-section-title) !important;
  }

  .join-step h3,
  .prize-copy h3{
    font-size:var(--ref-block-title) !important;
  }

  .prize-product-name,
  .flight-airline-name{
    font-size:var(--ref-emphasis) !important;
  }

  .about-copy,
  .join-step p,
  .step1-copy,
  .step-3 p,
  .step-4 p,
  .prize-copy p,
  .flight-airline-label{
    font-size:var(--ref-body) !important;
  }

  /* Event Overview reference: 1267px wide = ~21px type / ~53px line pitch. */
  .event-copy{
    font-size:1.992vw !important;
    line-height:2.52 !important;
  }

  .join-step .note,
  .prize-copy small,
  .prize-note,
  .rental-booking-note,
  .rental-booking-note p{
    font-size:var(--ref-note) !important;
    line-height:1.55 !important;
  }
}

/* Tablet: interpolate cleanly between the desktop and compact mobile references. */
@media (min-width:768px) and (max-width:1019px){
  :root{
    --ref-section-title:3.9vw;
    --ref-block-title:3.24vw;
    --ref-emphasis:2.64vw;
    --ref-body:2.22vw;
    --ref-note:1.62vw;
  }

  .event h1,
  .about-panel h2,
  .spots h2,
  .airport h2,
  .routes h2,
  .rental-booking h2,
  .flight-booking h2{
    font-size:var(--ref-section-title) !important;
  }
  .join-step h3,
  .prize-copy h3{
    font-size:var(--ref-block-title) !important;
  }
  .prize-product-name,
  .flight-airline-name{
    font-size:var(--ref-emphasis) !important;
  }
  .event-copy,
  .about-copy,
  .join-step p,
  .step1-copy,
  .step-3 p,
  .step-4 p,
  .prize-copy p,
  .flight-airline-label{
    font-size:var(--ref-body) !important;
  }
  .join-step .note,
  .prize-copy small,
  .prize-note,
  .rental-booking-note,
  .rental-booking-note p{
    font-size:var(--ref-note) !important;
    line-height:1.55 !important;
  }
}

/* Mobile: reproduce the compact 313px reference density instead of enlarging copy to desktop-like px sizes. */
@media (max-width:767px){
  :root{
    --ref-section-title:6.48vw;
    --ref-block-title:4.44vw;
    --ref-emphasis:3.6vw;
    --ref-body:2.46vw;
    --ref-note:1.92vw;
  }

  .event h1,
  .about-panel h2,
  .spots h2,
  .airport h2,
  .routes h2,
  .rental-booking h2,
  .flight-booking h2{
    font-size:var(--ref-section-title) !important;
  }

  .join-step h3,
  .prize-copy h3{
    font-size:var(--ref-block-title) !important;
    line-height:1.25 !important;
  }

  .prize-product-name,
  .flight-airline-name{
    font-size:var(--ref-emphasis) !important;
  }

  .event-copy,
  .about-copy,
  .join-step p,
  .step1-copy,
  .step-3 p,
  .step-4 p,
  .prize-copy p,
  .flight-airline-label{
    font-size:var(--ref-body) !important;
  }

  .join-step .note,
  .prize-copy small,
  .prize-note,
  .rental-booking-note,
  .rental-booking-note p{
    font-size:var(--ref-note) !important;
    line-height:1.55 !important;
  }

  /* Number inside the step badge is also text; match the compact reference scale. */
  .badge span{font-size:2.64vw !important}
}

/* ===== PRIZE ROW EDGE ALTERNATION — 2026-09-29 =====
   User reference: odd prize groups fully to the RIGHT, even prize groups fully to the LEFT.
   Keep each group's internal copy-to-goods relationship; stagger the entire group horizontally. */

/* Desktop: 1st/3rd touch the right edge, 2nd/4th touch the left edge. */
@media (min-width:1020px){
  .prize-row-okayama,
  .prize-row-fukuoka{
    left:144px;
    right:auto !important;
  }
  .prize-row-yonago,
  .prize-row-hiroshima{
    left:379px;
    right:0 !important;
  }

  /* Make the visible goods on odd rows reach the right edge of their row. */
  .prize-row-yonago .prize-goods,
  .prize-row-hiroshima .prize-goods{
    left:auto !important;
    right:0 !important;
  }
}

/* Tablet: preserve the same alternating edge alignment. */
@media (min-width:768px) and (max-width:1019px){
  .prize-row-yonago,
  .prize-row-hiroshima{
    left:auto !important;
    right:0 !important;
  }
  .prize-row-okayama,
  .prize-row-fukuoka{
    left:0 !important;
    right:auto !important;
  }
  .prize-row-yonago .prize-goods,
  .prize-row-hiroshima .prize-goods{
    left:auto !important;
    right:0 !important;
  }
}

/* Smartphone: compensate for the section's 14px side padding so the stagger reaches the viewport edges. */
@media (max-width:767px){
  .prize-row{
    width:calc(100% + 14px) !important;
  }
  .prize-row-yonago,
  .prize-row-hiroshima{
    margin-left:0 !important;
    margin-right:-14px !important;
  }
  .prize-row-okayama,
  .prize-row-fukuoka{
    margin-left:-14px !important;
    margin-right:0 !important;
  }
  .prize-row-yonago .prize-goods,
  .prize-row-hiroshima .prize-goods{
    left:auto !important;
    right:0 !important;
  }
}

/* ===== PRIZE RESPONSIVE NO-CROP FIX — 2026-09-29 =====
   Keep the odd/even stagger while ensuring each complete prize group stays inside the viewport. */
@media (min-width:1020px){
  .prize-row-yonago,
  .prize-row-hiroshima{
    left:auto !important;
    right:0 !important;
    width:min(89.4cqw, 100%) !important;
  }

  .prize-row-okayama,
  .prize-row-fukuoka{
    --prize-left-offset:clamp(48px, 7.5vw, 144px);
    left:var(--prize-left-offset) !important;
    right:auto !important;
    width:min(89.4cqw, calc(100% - var(--prize-left-offset))) !important;
  }

  .prize-row .prize-goods{
    max-width:calc(100% - 1px);
  }

  .prize-row-yonago .prize-goods,
  .prize-row-hiroshima .prize-goods{
    left:auto !important;
    right:0 !important;
  }
}

@media (min-width:768px) and (max-width:1019px){
  .prize-row{
    max-width:100% !important;
  }
  .prize-row-yonago,
  .prize-row-hiroshima{
    left:auto !important;
    right:0 !important;
  }
  .prize-row-okayama,
  .prize-row-fukuoka{
    left:0 !important;
    right:auto !important;
  }
  .prize-row .prize-goods{
    max-width:calc(100% - 1px);
  }
}

@media (max-width:767px){
  .prize-row{
    max-width:calc(100vw - 14px) !important;
  }
  .prize-row .prize-goods{
    max-width:52vw;
    object-fit:contain;
  }
}

/* ===== ROUTE INFO BANNER SAFE-TEXT AREA — 2026-09-29 =====
   Keep all white copy inside the rectangular gold area on every device.
   The rightmost 18% is reserved for the chevrons. JS below only scales down
   when necessary, preserving the approved large reference appearance otherwise. */
.route-info{
  container-type:inline-size;
  overflow:hidden;
}
.route-info-copy{
  left:0;
  top:0;
  width:84%;
  height:100%;
  max-width:84%;
  padding:0 2%;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}
.route-info-copy strong,
.route-info-copy span{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:visible;
  text-align:center;
}
.route-info-copy strong{
  font-size:clamp(28.8px,6.24cqi,81.6px) !important;
  line-height:1.04;
}
.route-info-copy span{
  margin-top:1.2cqi;
  font-size:clamp(21.6px,4.98cqi,67.2px) !important;
  line-height:1.04;
}

@media (min-width:768px) and (max-width:1019px){
  .route-info-copy{
    left:0;
    top:0;
    width:84%;
    height:100%;
    max-width:84%;
    padding:0 2%;
    justify-content:center;
    align-items:center;
    text-align:center;
  }
  .route-info-copy strong{font-size:clamp(24px,6cqi,50.4px) !important}
  .route-info-copy span{font-size:clamp(18px,4.68cqi,40.8px) !important;margin-top:1.1cqi}
}

@media (max-width:767px){
  .route-info-copy{
    left:0;
    top:0;
    width:84%;
    height:100%;
    max-width:84%;
    padding:0 2%;
    justify-content:center;
    align-items:center;
    text-align:center;
  }
  .route-info-copy strong{font-size:clamp(20.4px,6.72cqi,33.6px) !important}
  .route-info-copy span{font-size:clamp(14.4px,4.92cqi,25.2px) !important;margin-top:1.4cqi}
}

/* 2026-09-29: 120% typography collision / wrapping correction */
@media (min-width:768px){
  /* Restore the red underline and keep the enlarged Event copy on natural lines. */
  .event-accent{
    position:absolute !important;
    left:47.2cqw !important;
    top:7.05cqw !important;
    width:5.6cqw !important;
    height:.55cqw !important;
    display:block !important;
    background:var(--accent) !important;
    z-index:5 !important;
  }
  .event-copy{
    position:absolute !important;
    left:8cqw !important;
    top:12.3cqw !important;
    width:84cqw !important;
    max-width:84cqw !important;
    line-height:1.9 !important;
    text-align:center;
  }
  .event-copy p{margin:0 0 .18cqw}

  /* Keep the 120% type, but reserve the image intrusion zone inside the gold panel. */
  .about-copy{
    left:8.2cqw !important;
    top:8.9cqw !important;
    width:46.2cqw !important;
    max-width:46.2cqw !important;
    line-height:1.52 !important;
    text-align:center;
    overflow-wrap:normal;
    word-break:normal;
  }
  .about-copy p{margin:0 0 1.45cqw !important}
  .about-copy br{display:none}
}

@media (min-width:768px) and (max-width:1019px){
  .event-copy{left:7cqw !important;width:86cqw !important;max-width:86cqw !important;line-height:1.82 !important}
  .about-copy{left:8.6cqw !important;top:9.7cqw !important;width:49cqw !important;max-width:49cqw !important;line-height:1.48 !important}
  .about-copy p{margin-bottom:1.2cqw !important}
}

/* 2026-09-29: page-top ticket size/position + compact mobile prize spacing */
@media (min-width:1020px){
  .page-top-ticket{
    width:27cqw !important;
    right:-1.2cqw !important;
    top:29cqw !important;
  }
}
@media (min-width:768px) and (max-width:1019px){
  .page-top-ticket{
    width:25cqw !important;
    right:-1cqw !important;
    top:34cqw !important;
  }
}
@media (max-width:767px){
  .prize{padding-top:72px !important;padding-bottom:72px !important}
  .prize-title-img{margin-bottom:16px !important}
  .prize-row{
    height:188px !important;
    margin-bottom:6px !important;
  }
  .prize-copy,.prize-row-alt .prize-copy{top:16px !important}
  .prize-goods,.prize-row-alt .prize-goods,
  .prize-row-yonago .prize-goods,.prize-row-okayama .prize-goods,
  .prize-row-hiroshima .prize-goods,.prize-row-fukuoka .prize-goods{
    height:180px !important;
  }
}

/* 2026-09-29: keep the first About paragraph clear of the Matsue Castle cutout. */
@media (min-width:1020px){
  .about-copy p:first-child{
    position:relative;
    left:5.2cqw;
    width:calc(100% - 5.2cqw);
    max-width:calc(100% - 5.2cqw);
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .about-copy p:last-child{
    position:relative;
    left:0;
    width:100%;
    max-width:100%;
  }
}

/* 2026-09-29: keep page-top ticket low while preventing its bottom edge from being clipped on mobile */
@media (max-width:767px){
  .page-top-ticket{
    top:auto !important;
    bottom:20px !important;
  }
}

/* Mobile header containment fix — 2026-09-29 */
@media (max-width: 600px){
  .site-header{height:88px;min-height:88px;overflow:visible}
  .header-brand{top:12px;height:58px}
  .global-nav{
    top:9px;
    bottom:auto;
    right:8px;
    width:calc(100% - 158px);
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
    grid-template-rows:34px 40px;
    gap:3px 7px;
    align-items:center;
    font-size:clamp(14px,3.85vw,17px);
    line-height:1.12;
  }
  .global-nav a{display:flex;align-items:center;justify-content:center;height:100%;min-width:0;overflow-wrap:anywhere}
  .global-nav a:last-of-type{font-size:.94em;line-height:1.08}
}

/* 2026-09-29: final mobile page-top visibility adjustment */
@media (max-width:767px){
  .page-top-ticket{
    top:auto !important;
    bottom:34px !important;
  }
}

/* Route navigation anchor: keep heading visible below fixed header */
#routes{scroll-margin-top:clamp(88px,11vw,180px);}
@media (max-width:600px){#routes{scroll-margin-top:96px;}}

/* ===== ROUTE INFO BANNER CLIPPING FIX — 2026-09-29 =====
   Keep approved font sizes and banner dimensions; only tighten vertical metrics/position. */
@media (min-width:1020px){
  .route-info-copy{
    top:.72cqw;
    line-height:1;
  }
  .route-info-copy strong{
    line-height:.98;
  }
  .route-info-copy span{
    margin-top:.12cqw;
    line-height:.98;
  }
}

/* ===== ROUTE INFO BANNER TEXT FIT — 2026-09-29 =====
   Only this gold banner uses reduced type so the complete copy stays inside the gold field. */
@media (min-width:768px){
  .route-info-copy{
    top:1.35cqw;
    width:82%;
    line-height:1.08;
  }
  .route-info-copy strong{
    font-size:clamp(26px,2.05cqw,38px);
    line-height:1.08;
    white-space:nowrap;
  }
  .route-info-copy span{
    margin-top:.32cqw;
    font-size:clamp(20px,1.65cqw,31px);
    line-height:1.08;
    white-space:nowrap;
  }
}

/* ===== ROUTE INFO BANNER — FLUID TEXT FIT AT EVERY WIDTH 2026-09-29 =====
   Scale from the banner itself, preserve the arrow area, and allow the long
   second line to wrap only when needed so no copy is clipped. */
.route-info{
  container-type:inline-size;
  overflow:hidden;
}
.route-info-copy{
  box-sizing:border-box;
  width:82%;
  max-width:82%;
  padding-right:1.2cqi;
}
.route-info-copy strong{
  font-size:clamp(20px,5.3cqi,38px);
  line-height:1.08;
  white-space:nowrap;
}
.route-info-copy span{
  font-size:clamp(15px,4.25cqi,31px);
  line-height:1.14;
  white-space:normal;
  overflow-wrap:normal;
  word-break:keep-all;
}
@media (max-width:767px){
  .route-info{
    height:clamp(96px,29vw,112px);
  }
  .route-info-copy{
    top:12px;
    left:16px;
    width:80%;
    max-width:80%;
    padding-right:4px;
  }
  .route-info-copy strong{
    font-size:clamp(20px,6.2cqi,25px);
    line-height:1.08;
  }
  .route-info-copy span{
    margin-top:4px;
    font-size:clamp(14px,4.65cqi,18px);
    line-height:1.2;
  }
}
@media (max-width:380px){
  .route-info-copy{width:79%;max-width:79%;left:14px;top:11px}
  .route-info-copy strong{font-size:clamp(19px,6cqi,22px)}
  .route-info-copy span{font-size:clamp(13px,4.45cqi,16px);line-height:1.18}
}

/* ===== ROUTE INFO BANNER FINAL CONTAINMENT — 2026-09-29 =====
   Reserve the chevrons and keep both complete text lines inside the gold rectangle. */
.route-info-copy{
  box-sizing:border-box !important;
  left:0 !important;
  top:0 !important;
  width:84% !important;
  max-width:84% !important;
  height:100% !important;
  padding:4% 2.5% !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
}
.route-info-copy strong,
.route-info-copy span{
  flex:0 0 auto !important;
  max-width:100% !important;
  white-space:nowrap !important;
  word-break:normal !important;
  overflow:visible !important;
  text-align:center !important;
}
.route-info-copy span{margin-top:2% !important}

/* ===== MOBILE FOOTER FULL-CONTAINMENT FIX 2026-09-29 ===== */
@media (max-width:767px){
  .site-footer{
    width:100%;
    overflow:hidden;
  }
  .footer-organizer{
    box-sizing:border-box;
    width:100%;
    left:0;
    padding:0 8px;
    gap:8px;
    justify-content:center;
    overflow:hidden;
  }
  .footer-organizer span{
    flex:1 1 0;
    min-width:0;
    max-width:65%;
    font-size:clamp(9px,2.8vw,13.5px)!important;
    line-height:1.3;
    white-space:normal;
    overflow-wrap:anywhere;
    text-align:center;
  }
  .footer-organizer a{
    flex:0 1 27%;
    min-width:0;
    max-width:27%;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .footer-organizer img{
    display:block;
    width:100%;
    max-width:130px;
    height:auto;
    object-fit:contain;
  }
}

/* ===== PRIZE TEXT GROUPING — 2026-09-29 =====
   Keep each condition + prize name as one visual group, and add a clearer gap
   between the 2–4 prefecture prize and the 5-prefecture completion prize. */
.prize-copy p{
  margin-bottom:1.45cqw !important;
}
.prize-copy p:last-of-type{
  margin-bottom:0 !important;
}
.prize-copy small{
  margin-bottom:0 !important;
  line-height:1.12 !important;
}
.prize-product-name{
  display:inline-block;
  margin-top:.08em;
  line-height:1.22;
}
@media (max-width:767px){
  .prize-copy p{
    margin-bottom:16px !important;
  }
  .prize-copy p:last-of-type{
    margin-bottom:0 !important;
  }
  .prize-product-name{
    margin-top:1px;
  }
}

/* ORIX Rent a Car: supplied official banner image */
.rental-logo-orix{overflow:hidden}
.rental-logo-orix>img{display:block;width:100%;height:100%;object-fit:contain}

/* 2026-09-29: spot prefecture lists rebuilt as responsive HTML (no image-map coordinates) */
.spot-card-html{font-family:"Noto Sans SC","Noto Sans CJK SC","Noto Sans",sans-serif;color:#231815}
.spot-card-html .spot-prefecture-bar{display:block;width:100%;height:auto;margin:0 0 .75cqw}
.spot-list{display:grid;gap:.36cqw}
.spot-list-row{display:grid;grid-template-columns:minmax(0,1fr) 4.55cqw;align-items:center;min-height:2.15cqw;padding:0 .25cqw 0 .55cqw;border-bottom:1px solid rgba(35,24,21,.18)}
.spot-name{min-width:0;font-size:clamp(10px,.84cqw,16px);font-weight:800;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spot-map-button{position:relative;display:grid;place-items:center;width:4.25cqw;height:2.05cqw;text-decoration:none;justify-self:end}
.spot-map-button img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.spot-map-button span{position:relative;z-index:1;color:#fff;font-size:clamp(7px,.55cqw,11px);font-weight:900;letter-spacing:.02em;line-height:1}
.spot-map-button:hover{transform:translateY(-1px);filter:brightness(1.04)}
.spot-map-button:focus-visible{outline:3px solid #111;outline-offset:2px;border-radius:999px}
@media (max-width:767px){
  .spot-card-html .spot-prefecture-bar{margin-bottom:8px}
  .spot-list{gap:4px}
  .spot-list-row{grid-template-columns:minmax(0,1fr) 58px;min-height:38px;padding:0 4px 0 8px}
  .spot-name{font-size:clamp(12px,3.35vw,15px);white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25;padding-right:8px}
  .spot-map-button{width:54px;height:32px}
  .spot-map-button span{font-size:10px}
}
nn/* ===== SPOT LABEL / GOOGLE MAP BUTTON MATCH 2026-09-29 ===== */
.spot-card-html{position:absolute}
.spot-card-html .spot-prefecture-bar{position:relative;z-index:1}
.spot-prefecture-cn{
  position:absolute;
  z-index:2;
  top:.40cqw;
  left:1.05cqw;
  color:#fff;
  font-size:clamp(10px,.72cqw,14px);
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  pointer-events:none;
}
.spot-list-row{grid-template-columns:minmax(0,1fr) 5.9cqw}
.spot-map-button{width:5.55cqw;height:1.95cqw}
.spot-map-button span{font-size:clamp(6px,.43cqw,9px);letter-spacing:0;white-space:nowrap}
@media (max-width:767px){
  .spot-prefecture-cn{top:7px;left:12px;font-size:clamp(11px,3.1vw,14px)}
  .spot-list-row{grid-template-columns:minmax(0,1fr) 76px}
  .spot-map-button{width:72px;height:30px}
  .spot-map-button span{font-size:9px}
}

/* 2026-09-29: 768-1019px About collision fix.
   Keep the Matsue Castle artwork completely outside the text column. */
@media (min-width:768px) and (max-width:1019px){
  .about-shimane{
    left:0 !important;
    top:4.3cqw !important;
    width:25cqw !important;
    max-width:25cqw !important;
  }
  .about-panel{
    z-index:3 !important;
  }
  .about-copy{
    left:8.6cqw !important;
    width:49cqw !important;
    max-width:49cqw !important;
  }
}

/* 2026-09-29: vertically center Chinese prefecture labels and match English label scale */
.spot-prefecture-cn{
  top: .84cqw;
  left: 1.05cqw;
  transform: translateY(-50%);
  font-size: clamp(12px, 1.02cqw, 20px);
  line-height: 1;
  display:flex;
  align-items:center;
}
@media (max-width:767px){
  .spot-prefecture-cn{
    top: 50%;
    left: 12px;
    transform: translateY(-50%);
    font-size: clamp(13px, 3.8vw, 17px);
  }
}

/* 2026-09-29 final spot header / Google Map alignment */
.spot-prefecture-cn{
  top: .84cqw !important;
  left: 1.05cqw !important;
  transform: translateY(-50%) !important;
  font-size: clamp(12px, 1.02cqw, 20px) !important;
  line-height: 1 !important;
  display:flex !important;
  align-items:center !important;
}
.spot-list-row{grid-template-columns:minmax(0,1fr) clamp(58px,3.25cqw,66px) !important}
.spot-map-button{
  width:clamp(58px,3.25cqw,66px) !important;
  height:clamp(23px,1.35cqw,28px) !important;
}
.spot-map-button span{font-size:clamp(7px,.42cqw,9px) !important;white-space:nowrap !important}
@media (max-width:767px){
  .spot-prefecture-cn{
    top: 27px !important;
    left: 18px !important;
    transform: translateY(-50%) !important;
    font-size: clamp(18px,4.8vw,22px) !important;
  }
  .spot-list-row{grid-template-columns:minmax(0,1fr) 68px !important}
  .spot-map-button{width:64px !important;height:27px !important}
  .spot-map-button span{font-size:8px !important}
}

/* 2026-09-29: Chinese prefecture names visually match the English names */
.spot-prefecture-cn{
  font-size:clamp(16px,1.28cqw,25px) !important;
  font-weight:800 !important;
  line-height:1 !important;
}
@media (max-width:767px){
  .spot-prefecture-cn{
    font-size:clamp(20px,5.6vw,25px) !important;
  }
}

/* 2026-09-29: definitive Google Map pill button — replace circular SVG rendering */
.spot-list-row{
  grid-template-columns:minmax(0,1fr) clamp(76px,4.8cqw,96px) !important;
}
.spot-map-button{
  box-sizing:border-box !important;
  width:clamp(76px,4.8cqw,96px) !important;
  min-width:76px !important;
  height:clamp(25px,1.55cqw,31px) !important;
  padding:0 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#cf5433 !important;
  border-radius:999px !important;
  overflow:hidden !important;
  justify-self:end !important;
}
.spot-map-button img{display:none !important}
.spot-map-button span{
  position:relative !important;
  z-index:1 !important;
  display:block !important;
  color:#fff !important;
  font-size:clamp(8px,.52cqw,11px) !important;
  font-weight:900 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  text-align:center !important;
}
@media (max-width:767px){
  .spot-list-row{grid-template-columns:minmax(0,1fr) 88px !important}
  .spot-map-button{width:84px !important;min-width:84px !important;height:30px !important;padding:0 8px !important}
  .spot-map-button span{font-size:10px !important}
}

/* 2026-09-29: enlarge typography throughout the HTML spot lists */
.spot-card-html .spot-prefecture-cn{
  font-size:clamp(19px,1.48cqw,29px) !important;
}
.spot-card-html .spot-name{
  font-size:clamp(13px,1.02cqw,20px) !important;
  line-height:1.25 !important;
}
.spot-card-html .spot-list-row{
  min-height:2.55cqw !important;
}
.spot-card-html .spot-map-button span{
  font-size:clamp(10px,.60cqw,12px) !important;
}
@media (max-width:1019px){
  .spot-card-html .spot-name{
    font-size:clamp(13px,1.7vw,18px) !important;
  }
  .spot-card-html .spot-prefecture-cn{
    font-size:clamp(18px,2.5vw,25px) !important;
  }
}
@media (max-width:767px){
  .spot-card-html .spot-prefecture-cn{
    font-size:clamp(21px,5.9vw,27px) !important;
  }
  .spot-card-html .spot-name{
    font-size:clamp(15px,4.15vw,19px) !important;
    line-height:1.3 !important;
  }
  .spot-card-html .spot-list-row{
    min-height:46px !important;
  }
  .spot-card-html .spot-map-button span{
    font-size:11px !important;
  }
}

/* 2026-09-29: PC-only typography boost for spot lists */
@media (min-width:1020px){
  .spot-card-html .spot-prefecture-cn{
    font-size:clamp(22px,1.62cqw,32px) !important;
  }
  .spot-card-html .spot-name{
    font-size:clamp(16px,1.16cqw,23px) !important;
    line-height:1.28 !important;
  }
  .spot-card-html .spot-list-row{
    min-height:2.85cqw !important;
  }
  .spot-card-html .spot-map-button{
    width:clamp(88px,5.25cqw,108px) !important;
    min-width:88px !important;
    height:clamp(29px,1.72cqw,35px) !important;
  }
  .spot-card-html .spot-list-row{
    grid-template-columns:minmax(0,1fr) clamp(88px,5.25cqw,108px) !important;
  }
  .spot-card-html .spot-map-button span{
    font-size:clamp(11px,.68cqw,14px) !important;
  }
}


/* 2026-09-29: keep Chinese prefecture name inside the colored bar beside English on every width */
.spot-card-html .spot-prefecture-header{
  position:relative !important;
  width:100% !important;
  margin:0 0 .75cqw !important;
}
.spot-card-html .spot-prefecture-header .spot-prefecture-bar{
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:0 !important;
}
.spot-card-html .spot-prefecture-header .spot-prefecture-cn{
  position:absolute !important;
  top:50% !important;
  left:1.4cqw !important;
  transform:translateY(-50%) !important;
  margin:0 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  z-index:3 !important;
}
@media (max-width:767px){
  .spot-card-html .spot-prefecture-header{
    margin-bottom:8px !important;
  }
  .spot-card-html .spot-prefecture-header .spot-prefecture-cn{
    top:50% !important;
    left:6% !important;
    transform:translateY(-50%) !important;
    font-size:clamp(15px,4.3vw,19px) !important;
    line-height:1 !important;
  }
}

/* 2026-09-29: mobile prefecture labels — keep Chinese immediately left of English without overlap */
@media (max-width:767px){
  .spot-card-html .spot-prefecture-header .spot-prefecture-cn{
    left:2.4% !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    font-size:clamp(15px,3.8vw,18px) !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
  }
}

/* ===== FINAL PRIZE POSITION / SCALE RULES — 2026-09-30 =====
   Consolidated from the confirmed responsive overrides. */
@media (max-width:767px){
  .prize-row-okayama,
  .prize-row-fukuoka{
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .prize-row{
    width:calc(100% + 12px);
    margin-left:-6px;
    margin-right:-6px;
  }
  .prize-copy,
  .prize-row-alt .prize-copy{
    left:0;
    padding-left:0;
  }
  .prize-row .prize-goods,
  .prize-row-alt .prize-goods,
  .prize-row-yonago .prize-goods,
  .prize-row-okayama .prize-goods,
  .prize-row-hiroshima .prize-goods,
  .prize-row-fukuoka .prize-goods{
    right:18px;
    left:auto;
    max-width:none !important;
    object-fit:contain;
    transform:scale(.9);
    transform-origin:center center;
  }
  .prize-row-yonago .prize-goods{transform:translateX(-70px) scale(.9)}
  .prize-row-hiroshima .prize-goods{transform:translateX(-30px) scale(.9)}
  .prize-row-yonago,
  .prize-row-hiroshima{transform:translateX(38px)}
}

@media (min-width:768px){
  .prize-row,
  .prize-row-yonago,
  .prize-row-okayama,
  .prize-row-hiroshima,
  .prize-row-fukuoka{
    left:3cqw;
    width:94cqw;
  }
  .prize-copy,
  .prize-row-alt .prize-copy{left:0}
  .prize-row .prize-goods,
  .prize-row-alt .prize-goods,
  .prize-row-yonago .prize-goods,
  .prize-row-okayama .prize-goods,
  .prize-row-fukuoka .prize-goods{
    right:0;
    left:auto;
    object-fit:contain;
    transform:translateX(-300px) scale(.9);
    transform-origin:center center;
  }
  .prize-row-hiroshima .prize-goods{
    right:0;
    left:auto;
    object-fit:contain;
    transform:translateX(-250px) scale(.9);
    transform-origin:center center;
  }
}

@media (min-width:1020px){
  .prize-row-yonago,
  .prize-row-hiroshima{
    left:auto !important;
    right:-310px !important;
    width:min(89.4cqw, 100%) !important;
  }
}

/* Airport exchange locations: HTML text version */
.airport-grid{position:absolute;z-index:5;left:14.1cqw;right:14.2cqw;top:18.1cqw;display:grid;grid-template-columns:1fr 1fr;column-gap:10.5cqw;row-gap:5.3cqw}
.airport-info{position:relative!important;left:auto!important;right:auto!important;top:auto!important;width:auto!important;margin:0!important;transform:none!important}
.airport-label{display:block;width:100%;height:auto;margin:0 0 1.2cqw}
.airport-table{font-size:clamp(14px,1.34cqw,26px);line-height:1.25;font-weight:800;color:var(--ink)}
.airport-table>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.1cqw;align-items:end;padding:.18cqw .9cqw .24cqw;border-bottom:1px solid rgba(0,0,0,.42)}
.airport-table>div span:last-child{white-space:nowrap;text-align:right}
.airport-note{margin:.3cqw .9cqw 0;font-size:clamp(8px,.64cqw,13px);line-height:1.25;font-weight:700}

@media (min-width:768px) and (max-width:1019px){
  .airport-grid{left:10cqw;right:10cqw;top:18cqw;column-gap:12cqw;row-gap:6cqw}
  .airport-table{font-size:clamp(13px,1.6cqw,18px)}
}

@media (max-width:767px){
  .airport-grid{position:relative;left:auto;right:auto;top:auto;display:grid;grid-template-columns:1fr;gap:28px;margin:0 auto;width:min(100%,560px)}
  .airport-info{width:100%!important}
  .airport-label{margin-bottom:10px}
  .airport-table{font-size:clamp(15px,3.9vw,18px);line-height:1.25}
  .airport-table>div{gap:12px;padding:3px 8px 4px}
  .airport-note{margin:5px 8px 0;font-size:clamp(9px,2.45vw,11px)}
}

/* Yonago airport: keep 8:00 aligned with Hiroshima; allow *1 to extend right */
.airport-yonago .airport-table > div span:last-child {
  width: auto;
  text-align: right;
}
.airport-yonago .airport-time-note {
  position: relative;
}
.airport-yonago .airport-time-marker {
  position: absolute;
  left: calc(100% + .25em);
  top: 0;
  white-space: nowrap;
}

/* 2026-09-30: Step 3 mobile copy — align its text start with Step 4 and keep it clear of the number badge. */
@media (max-width:767px){
  .step-3 .step-body{
    margin-left:54px;
    width:auto;
    max-width:none;
  }
  .step-3 p,
  .step-3 .note{
    width:auto;
    max-width:none;
    margin-left:0;
    padding-left:0;
    padding-right:0;
    overflow-wrap:normal;
    word-break:normal;
    line-break:auto;
  }
}

/* 2026-09-30: Mobile participation body copy — slightly reduced uniformly across steps 1–4. */
@media (max-width:767px){
  .join-step p,
  .step1-copy,
  .step-3 p,
  .step-4 p{
    font-size:clamp(11px,2.2vw,13.2px) !important;
    line-height:1.58 !important;
  }
  .join-step .note{
    font-size:clamp(9px,1.8vw,10.8px) !important;
    line-height:1.45 !important;
  }
}

/* 2026-09-30: mobile participation copy — fit the requested Step 3 line break naturally. */
@media (max-width:767px){
  .join-step p,
  .step1-copy,
  .step-3 p,
  .step-4 p{
    font-size:clamp(10.5px,2.05vw,11.5px) !important;
    line-height:1.55 !important;
  }
  .join-step .note{
    font-size:clamp(9px,1.65vw,10px) !important;
    line-height:1.45 !important;
  }
  .step-3 .step-body{
    margin-left:54px;
    width:calc(100% - 54px);
    max-width:none;
  }
}

/* 2026-09-30 final: make all participation body copy definitely smaller on mobile. */
@media (max-width:767px){
  .join-step .step-body > p,
  .join-step p{
    font-size:8px !important;
    line-height:1.5 !important;
  }
  .join-step .note{
    font-size:6.5px !important;
    line-height:1.4 !important;
  }
}
