/* ============================================================
   AWGroup LP — Japan map panel + 年間来店者数 stat hero
   3 on-brand color themes (data-map-theme a|b|c on .scale--map).
   ============================================================ */

/* ---- themed section background (keeps white text legible) ---- */
.sec.scale--map[data-map-theme="a"]{background:
  radial-gradient(120% 70% at 78% 4%,rgba(255,120,180,.4),transparent 56%),
  radial-gradient(120% 70% at 6% 100%,rgba(255,196,224,.34),transparent 56%),
  radial-gradient(150% 100% at 50% 38%,#6E2A52 0%,#46163A 52%,#280E22 100%);}
.sec.scale--map[data-map-theme="b"]{background:
  radial-gradient(120% 70% at 78% 4%,rgba(95,194,236,.4),transparent 56%),
  radial-gradient(120% 70% at 6% 100%,rgba(156,166,240,.3),transparent 56%),
  radial-gradient(150% 100% at 50% 38%,#1F3F63 0%,#16294A 52%,#0C1730 100%);}
.sec.scale--map[data-map-theme="c"]{background:
  radial-gradient(120% 70% at 78% 4%,rgba(183,156,255,.42),transparent 56%),
  radial-gradient(120% 70% at 6% 100%,rgba(255,150,205,.3),transparent 56%),
  radial-gradient(150% 100% at 50% 38%,#3A1556 0%,#2A1140 52%,#1B0B2E 100%);}

/* ---- exciting title hero (aqua) ---- */
.visit-hero{position:relative;z-index:3;text-align:center;margin-top:2px;}
.visit-hero__brand{display:inline-block;font-family:var(--f-serif);font-style:italic;font-weight:700;
  letter-spacing:.22em;font-size:clamp(15px,4.4vw,20px);color:#EAFBFF;
  padding:5px 20px;border-radius:999px;border:1px solid rgba(127,233,255,.55);
  background:rgba(127,233,255,.14);text-shadow:0 0 12px rgba(127,233,255,.75);
  box-shadow:0 6px 18px -8px rgba(47,155,203,.6),inset 0 0 12px rgba(127,233,255,.25);}
.visit-hero__title{position:relative;display:inline-block;font-family:var(--f-disp);font-weight:900;
  margin-top:12px;font-size:clamp(30px,9vw,52px);line-height:1.05;letter-spacing:.02em;
  background:linear-gradient(165deg,#FFFFFF 0%,#CFF6FF 34%,#7FE9FF 60%,#5FC2EC 100%);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 4px 16px rgba(47,155,203,.55)) drop-shadow(0 0 22px rgba(127,233,255,.45));
  animation:figShine 4s ease-in-out infinite;}
.visit-hero__title::before,.visit-hero__title::after{content:"\2726";position:absolute;top:-2px;
  font-size:.36em;color:#CFF6FF;text-shadow:0 0 10px rgba(127,233,255,.95);
  -webkit-text-fill-color:#CFF6FF;animation:figTwk 2.8s ease-in-out infinite;}
.visit-hero__title::before{left:-.7em;} .visit-hero__title::after{right:-.7em;animation-delay:.8s;}
.visit-hero__sub{margin-top:14px;display:flex;flex-direction:column;gap:3px;align-items:center;
  font-family:var(--f-disp);font-weight:900;font-size:clamp(17px,4.9vw,23px);color:#fff;
  text-shadow:0 0 16px rgba(127,233,255,.6),0 2px 8px rgba(0,0,0,.4);}

/* ---- readable note + CTA card ---- */
.visit-note{position:relative;z-index:3;max-width:30em;margin:26px auto 0;padding:24px 22px;
  border-radius:22px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.26);
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);text-align:center;
  box-shadow:0 22px 44px -26px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.32);}
.visit-note__p{font-family:var(--f-body);font-size:clamp(13px,3.6vw,15px);line-height:1.95;
  color:rgba(255,255,255,.94);margin-bottom:14px;text-shadow:0 1px 6px rgba(0,0,0,.4);}
.visit-note__div{display:block;color:var(--gold-light);letter-spacing:.5em;font-size:12px;
  margin:4px 0 16px;opacity:.85;}
.visit-note__cta{font-family:var(--f-disp);font-weight:800;font-size:clamp(15px,4.3vw,19px);
  line-height:1.85;color:#fff;text-shadow:0 0 14px rgba(127,233,255,.55),0 2px 8px rgba(0,0,0,.4);}

.visit{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;
  text-align:center;margin:6px auto 0;}
.visit__figrow{position:relative;display:flex;align-items:baseline;justify-content:center;gap:8px;margin-top:8px;}
.visit__shine{position:absolute;left:50%;top:48%;width:130%;height:180%;transform:translate(-50%,-50%);
  z-index:-1;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,rgba(127,233,255,.45),rgba(127,233,255,0) 72%);
  filter:blur(10px);animation:shinePulse 3s ease-in-out infinite;}
@keyframes shinePulse{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(.96);}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06);}}
.visit__fig{font-family:var(--f-fashion);font-weight:700;font-style:italic;line-height:.9;
  font-size:clamp(64px,22vw,124px);letter-spacing:-.01em;
  background:linear-gradient(110deg,#EAFBFF 0%,#9CE8FF 26%,#FFFFFF 48%,#7FE9FF 66%,#CFF6FF 100%);
  background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 4px 18px rgba(47,155,203,.55)) drop-shadow(0 0 26px rgba(127,233,255,.55));
  animation:figShine 3.4s ease-in-out infinite;}
@keyframes figShine{0%{background-position:120% 0;}100%{background-position:-40% 0;}}
.visit__sp{position:absolute;color:#CFF6FF;font-size:18px;text-shadow:0 0 10px rgba(127,233,255,.95);
  -webkit-text-fill-color:#CFF6FF;animation:figTwk 3s ease-in-out infinite;pointer-events:none;}
.visit__sp.s1{top:-6px;left:6%;font-size:22px;}
.visit__sp.s2{top:2px;right:8%;animation-delay:.5s;}
.visit__sp.s3{bottom:-2px;right:18%;font-size:15px;animation-delay:1s;}
.visit__sp.s4{bottom:4px;left:16%;font-size:14px;animation-delay:.8s;}
@keyframes figTwk{0%,100%{transform:scale(.7) rotate(0);opacity:.5;}50%{transform:scale(1.15) rotate(20deg);opacity:1;}}
.visit__unit{font-family:var(--f-disp);font-weight:900;font-size:clamp(20px,5.4vw,28px);color:#fff;}
.visit__unit small{font-size:.62em;font-weight:700;opacity:.85;margin-left:2px;}
.visit__period{margin-top:6px;font-family:var(--f-serif);font-style:italic;letter-spacing:.18em;
  font-size:clamp(12px,3.4vw,14px);color:rgba(255,255,255,.8);}
.visit__day{display:inline-flex;align-items:baseline;gap:8px;margin-top:16px;
  padding:8px 20px;border-radius:999px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  font-family:var(--f-disp);color:#fff;}
.visit__day-l{font-size:13px;font-weight:700;letter-spacing:.06em;opacity:.9;}
.visit__day b{font-family:var(--f-fashion);font-style:italic;font-weight:700;
  font-size:clamp(26px,7vw,38px);line-height:1;
  background:linear-gradient(150deg,#EAFBFF,#7FE9FF 50%,#CFF6FF);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 10px rgba(127,233,255,.6));}
.visit__day-u{font-size:14px;font-weight:700;}

/* ---- map panel — blends into the section (no hard box) ---- */
.jpmap-theme{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:8px;
  margin:22px auto 6px;}
.jpmap-theme__lbl{font-family:var(--f-serif);font-style:italic;font-size:11px;letter-spacing:.2em;
  color:rgba(255,255,255,.7);text-transform:uppercase;margin-right:2px;}
.jpmap-theme button{width:17px;height:17px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);
  cursor:pointer;padding:0;transition:transform .25s ease,box-shadow .25s ease;}
.jpmap-theme button[data-mt="a"]{background:linear-gradient(135deg,#FF8FC0,#FF5FA0);}
.jpmap-theme button[data-mt="b"]{background:linear-gradient(135deg,#7FE9FF,#5FC2EC);}
.jpmap-theme button[data-mt="c"]{background:linear-gradient(135deg,#C9ADF0,#B79CFF);}
.jpmap-theme button.on{transform:scale(1.28);border-color:#fff;
  box-shadow:0 0 0 3px rgba(255,255,255,.22),0 4px 12px rgba(0,0,0,.4);}

.jpmap{position:relative;width:100%;max-width:480px;margin:0 auto;
  aspect-ratio:1/1.02;background:transparent;}
.jpmap__cv{position:absolute;inset:0;width:100%;height:100%;display:block;
  -webkit-mask:radial-gradient(118% 96% at 50% 46%,#000 58%,rgba(0,0,0,.45) 80%,transparent 97%);
          mask:radial-gradient(118% 96% at 50% 46%,#000 58%,rgba(0,0,0,.45) 80%,transparent 97%);}
.jpmap__logo{position:absolute;left:50%;top:45%;z-index:4;width:64%;max-width:300px;
  transform:translate(-50%,-50%) scale(.62);opacity:0;pointer-events:none;
  filter:drop-shadow(0 0 22px rgba(255,255,255,.55)) drop-shadow(0 0 40px rgba(255,150,210,.5));
  transition:opacity 1s ease,transform 1.15s cubic-bezier(.2,.85,.3,1.12);}
.jpmap.fin .jpmap__logo{opacity:1;transform:translate(-50%,-50%) scale(1);}
.jpmap__eyebrow{position:absolute;top:10px;left:0;right:0;z-index:2;text-align:center;
  font-family:var(--f-serif);font-style:italic;font-weight:600;font-size:11px;
  letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.78);
  text-shadow:0 0 12px rgba(0,0,0,.5);pointer-events:none;
  transition:opacity .6s ease;}
.jpmap.fin .jpmap__eyebrow{opacity:0;}
.jpmap__cap{position:absolute;bottom:6px;left:0;right:0;z-index:2;text-align:center;
  pointer-events:none;opacity:0;transform:translateY(10px);
  transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);}
.jpmap.lit .jpmap__cap{opacity:1;transform:none;}
.jpmap__cap b{display:block;font-family:var(--f-disp);font-weight:900;
  font-size:clamp(18px,5vw,22px);color:#fff;letter-spacing:.02em;
  text-shadow:0 0 16px rgba(255,110,176,.7),0 0 30px rgba(95,194,236,.4),0 2px 6px rgba(0,0,0,.55);}
.jpmap__cap span{font-family:var(--f-body);font-size:12.5px;color:rgba(255,255,255,.82);
  text-shadow:0 1px 6px rgba(0,0,0,.6);}

@media (prefers-reduced-motion:reduce){.jpmap__logo{transition:none;}
  .visit__fig,.visit-hero__title,.visit__shine,.visit__sp,
  .visit-hero__title::before,.visit-hero__title::after{animation:none;}}

/* ============================================================
   SECTION SEAMS — melt 2p sections into one continuous LP.
   Bands live INSIDE each box (those sections are overflow:hidden)
   and sit in padding zones so they never touch text.
   Order: 02 showcase(light) → 03 achieve(light) → 04 map(dark) → 05 income(light)
   ============================================================ */
.achieve::before,.achieve::after,.scale--map::before,.scale--map::after{content:"";position:absolute;
  left:0;right:0;pointer-events:none;}
.achieve::before,.achieve::after{z-index:1;}
.scale--map::before,.scale--map::after{z-index:0;}
/* 02→03 : ease in from showcase */
.achieve::before{top:0;height:150px;background:linear-gradient(180deg,#EEF6FF,transparent);}
/* 03→04 seam : BOTH sides meet at the same deep tone (theme-independent) */
.achieve::after{bottom:0;height:240px;background:linear-gradient(0deg,#14102A,transparent);}
.scale--map::before{top:0;height:200px;background:linear-gradient(180deg,#14102A,transparent);}
/* 04→05 : lighten the map's foot into income */
.scale--map{padding-bottom:clamp(120px,22vw,180px);}
.scale--map::after{bottom:0;height:200px;background:linear-gradient(0deg,#FFF7FB,transparent);}
