/* P2M JUNIOR — events page (/events/) sections */

.pagehero{background:var(--navy);color:#fff;padding:74px 0 64px;position:relative;overflow:hidden;}
.pagehero::after{content:"";position:absolute;right:-80px;top:-80px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(43,107,228,.35),transparent 70%);}
.pagehero .eyebrow{color:#8fb4f5;}
.pagehero .eyebrow::before{background:#8fb4f5;}
.pagehero .eyebrow .ja{color:#b7c4d8;}
.pagehero h1{font-size:clamp(28px,5.5vw,44px);font-weight:900;line-height:1.4;margin:20px 0 16px;position:relative;}
.pagehero p{font-size:16px;color:#cdd6e4;line-height:1.95;max-width:660px;position:relative;}

.sec{padding:72px 0;}
.sec.tint{background:var(--tint);}
.sechead{margin-bottom:34px;}
.sectitle{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap;}
.sectitle .tag{font-family:var(--lat);font-size:12px;font-weight:800;letter-spacing:.14em;color:#fff;background:var(--blue);padding:6px 12px;border-radius:6px;text-transform:uppercase;}
.sectitle .tag.gold{background:var(--gold-d);}
.sectitle .tag.dark{background:var(--navy);}
.sectitle .note{font-size:12.5px;font-weight:700;color:var(--muted);}
.sechead h2{font-size:clamp(23px,4.5vw,31px);font-weight:900;color:var(--navy);line-height:1.4;}
.sechead p{font-size:14.5px;color:var(--muted);margin-top:12px;line-height:1.95;max-width:740px;}
.sechead p small{font-size:12.5px;}

/* big feature event card */
.ev{display:grid;grid-template-columns:1.05fr 1fr;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;}
.ev .evph{min-height:290px;position:relative;}
.ev .evph .chip{position:absolute;top:18px;left:18px;background:var(--navy);color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.06em;padding:7px 13px;border-radius:999px;}
.ev .evbody{padding:38px 42px;}
.ev .kicker{font-family:var(--lat);font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--gold-d);text-transform:uppercase;}
.ev h3{font-size:25px;font-weight:900;color:var(--navy);margin:10px 0 14px;line-height:1.4;}
.ev .desc{font-size:14.5px;color:var(--muted);line-height:1.95;margin-bottom:22px;}
.ev .meta{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px;margin-bottom:24px;}
.ev .meta .m{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-top:1px solid var(--line);}
.ev .meta .mk{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--blue);font-family:var(--lat);text-transform:uppercase;}
.ev .meta .mv{font-size:14px;font-weight:700;color:var(--navy);line-height:1.5;}
.ev .meta .mv small{font-size:12px;font-weight:400;color:var(--muted);}
.ev .cta{display:flex;gap:12px;flex-wrap:wrap;}

/* coming soon */
.soon{background:#fff;border:1.5px dashed #c9d1de;border-radius:18px;padding:38px;text-align:center;}
.soon .k{font-family:var(--lat);font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;}
.soon h3{font-size:21px;font-weight:900;color:var(--navy);margin:10px 0 8px;}
.soon p{font-size:14px;color:var(--muted);}

/* two summer cards */
.summer{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.scard{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;}
.scard .sph{aspect-ratio:16/10;position:relative;}
.scard .sph .chip{position:absolute;top:16px;left:16px;font-size:11px;font-weight:800;letter-spacing:.06em;padding:6px 12px;border-radius:999px;background:var(--gold);color:#2a2410;}
.scard .sbody{padding:26px 30px 30px;flex:1;display:flex;flex-direction:column;}
.scard .venue{font-family:var(--lat);font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;}
.scard h3{font-size:20px;font-weight:900;color:var(--navy);margin:8px 0 10px;line-height:1.45;}
.scard p{font-size:13.5px;color:var(--muted);line-height:1.9;margin-bottom:16px;}
.scard .facts{list-style:none;margin-bottom:22px;}
.scard .facts li{font-size:13px;color:var(--ink);padding:5px 0 5px 20px;position:relative;line-height:1.6;}
.scard .facts li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;background:var(--gold);border-radius:2px;transform:rotate(45deg);}
.scard .facts b{color:var(--navy);}
.scard .foot{margin-top:auto;}

.note{margin-top:16px;font-size:12.5px;color:var(--muted);}
.note a{color:var(--blue);font-weight:700;}

.ctaband{background:var(--navy);color:#fff;text-align:center;padding:72px 0;}
.ctaband h2{font-size:clamp(23px,4.5vw,32px);font-weight:900;line-height:1.4;}
.ctaband p{color:#c2cddd;margin:14px 0 28px;font-size:16px;}

@media (max-width:900px){
  .ev{grid-template-columns:1fr;}
  .ev .evph{min-height:220px;}
  .ev .evbody{padding:30px 26px;}
  .summer{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .sec{padding:52px 0;}
  .ev .meta{grid-template-columns:1fr;}
}

/* ---- photos + AA video block (added) ---- */
.ev .evph{overflow:hidden;}
.ev .evph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ev .evph .chip{z-index:2;}
.scard .sph{overflow:hidden;}
.scard .sph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.scard .sph .chip{z-index:2;}
.video{max-width:900px;margin:0 auto;}
.vframe{position:relative;padding-top:56.25%;border-radius:16px;overflow:hidden;background:#000;box-shadow:0 20px 60px rgba(22,34,58,.18);}
.vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.aacta{text-align:center;margin-top:26px;}
.summer-foot2{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;}

/* ---- PC: keep .ev feature image at a natural landscape ratio (no stretch-crop) ---- */
@media (min-width:901px){
  .ev{align-items:center;}
  .ev .evph{aspect-ratio:16/10;min-height:0;}
}


/* ---- かけっこ教室（/events/kakekko/）---- */
.kbase{display:grid;grid-template-columns:1fr 1.15fr;gap:34px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;margin-top:26px;}
.kbase .kbph{aspect-ratio:16/9;border-radius:14px;overflow:hidden;}
.kbase .kbph img{width:100%;height:100%;object-fit:cover;display:block;}
.kbase h3{font-size:20px;font-weight:900;color:var(--navy);line-height:1.5;margin-bottom:12px;}
.kbase p{font-size:13.5px;color:var(--muted);line-height:1.95;}

.kvoices{margin-top:34px;}
.kvoices h4{font-size:15px;font-weight:900;color:var(--navy);margin-bottom:18px;display:flex;align-items:center;gap:12px;}
.kvoices h4::before{content:"";width:20px;height:3px;background:var(--gold);border-radius:2px;}
.kvoices .vlist{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.kvoices figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 26px;
  display:flex;flex-direction:column;}
.kvoices blockquote{position:relative;font-size:14.5px;font-weight:700;color:var(--navy);line-height:1.95;
  padding-top:26px;flex:1;}
.kvoices blockquote::before{content:"“";position:absolute;top:-6px;left:-2px;font-family:var(--lat);
  font-size:44px;font-weight:900;color:var(--gold);line-height:1;}
.kvoices figcaption{font-size:12px;color:var(--muted);margin-top:14px;font-weight:700;}

@media (max-width:900px){
  .kbase{grid-template-columns:1fr;gap:20px;}
  .kvoices .vlist{grid-template-columns:1fr;}
}


/* ---- 個別イベントページ（/events/kakekko/）---- */
.evhero{position:relative;background:#0c1424;color:#fff;overflow:hidden;}
.evhero .heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;}
.evhero .scrim{position:absolute;inset:0;background:linear-gradient(105deg,rgba(8,14,24,.95),rgba(8,14,24,.74) 55%,rgba(8,14,24,.44));}
.evhero .inner{position:relative;padding:88px 0 92px;max-width:840px;}
.evhero .kicker{font-family:var(--lat);font-size:12px;font-weight:800;letter-spacing:.2em;color:#8fb4f5;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;}
.evhero .kicker::before{content:"";width:24px;height:2px;background:#8fb4f5;}
.evhero h1{font-size:clamp(30px,6vw,54px);font-weight:900;line-height:1.3;margin:22px 0 10px;}
.evhero h1 .u{color:#2b6be4;}
.evhero .lead{font-size:16.5px;color:#cdd6e4;line-height:1.95;max-width:640px;margin:18px 0 32px;}
.evhero .cta{display:flex;gap:14px;flex-wrap:wrap;}

.details{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;}
.drow{display:grid;grid-template-columns:180px 1fr;border-top:1px solid var(--line);}
.drow:first-child{border-top:none;}
.drow .dk{background:var(--tint);padding:20px 26px;font-size:13.5px;font-weight:800;color:var(--navy);}
.drow .dv{padding:20px 26px;font-size:14.5px;color:var(--ink);line-height:1.8;}
.drow .dv b{color:var(--navy);font-weight:800;}
.drow .dv a{color:var(--blue);}
.drow .dv a:hover{text-decoration:underline;}
.drow .dv .sub{display:inline-block;font-size:12.5px;color:var(--muted);margin-top:4px;}


@media (max-width:900px){
  .drow{grid-template-columns:1fr;}
  .drow .dk{padding-bottom:6px;}
  }
@media (max-width:560px){
  .evhero .inner{padding:64px 0 68px;}
}


/* ---- 学年・目的で絞り込む（/events/#find）---- */
.sec.finder{padding-top:56px;padding-bottom:48px;}
.filterbar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 26px 20px;}
.fgroup{display:grid;grid-template-columns:52px 1fr;gap:16px;align-items:start;margin-bottom:18px;}
.flabel{font-size:12.5px;font-weight:800;color:var(--navy);padding-top:11px;}
.fbtns{display:flex;flex-wrap:wrap;gap:9px;}
.fbtn{font-family:inherit;background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:9px 16px;min-height:44px;font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;transition:.15s;}
.fbtn small{font-size:11px;font-weight:600;color:var(--muted);}
.fbtn:hover{border-color:var(--blue);color:var(--blue);}
.fbtn.is-on{background:var(--navy);border-color:var(--navy);color:#fff;}
.fbtn.is-on small{color:#b9c6da;}
.ffoot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:16px;margin-top:4px;}
.fresult{font-size:13px;font-weight:700;color:var(--navy);}
.freset{font-family:inherit;background:none;border:none;padding:8px 0;min-height:44px;
  font-size:13px;font-weight:700;color:var(--blue);cursor:pointer;text-decoration:underline;}
.fempty{margin-top:22px;padding:26px;text-align:center;background:var(--tint);border-radius:14px;
  font-size:14px;color:var(--muted);}

@media (max-width:560px){
  .filterbar{padding:20px 18px 16px;}
  .fgroup{grid-template-columns:1fr;gap:8px;margin-bottom:20px;}
  .flabel{padding-top:0;}
  .fbtns{gap:8px;}
  .fbtn{padding:9px 14px;font-size:13px;}
  .ffoot{justify-content:flex-start;}
}

/* ---- 写真スライダー（/events/kakekko/）---- */
.kslider{position:relative;margin-top:26px;}
.kviewport{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;}
.kviewport::-webkit-scrollbar{display:none;}
.kviewport:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:14px;}
/* 1枚あたりを小さくして、右にまだ続くことが分かるようにする */
.kslide{flex:0 0 calc(50% - 8px);margin:0;scroll-snap-align:start;}
.kslide img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:14px;display:block;}

.knav{position:absolute;top:calc(50% - 26px);transform:translateY(-50%);width:40px;height:40px;
  border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.94);color:var(--navy);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 18px rgba(22,34,58,.16);transition:.15s;z-index:2;font-family:inherit;}
.knav::before{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;}
.knav.prev{left:-14px;}
.knav.prev::before{transform:rotate(-135deg);margin-left:3px;}
.knav.next{right:-14px;}
.knav.next::before{transform:rotate(45deg);margin-right:3px;}
.knav:hover:not(:disabled){background:var(--navy);color:#fff;border-color:var(--navy);}
.knav:disabled{opacity:0;pointer-events:none;}

.kfoot{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;}
.kdots{display:flex;gap:9px;}
.kdot{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:#c8d1de;cursor:pointer;transition:.15s;}
.kdot.is-on{background:var(--navy);width:26px;border-radius:999px;}
.kplay{width:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;
  cursor:pointer;position:relative;flex:none;transition:.15s;}
.kplay:hover{border-color:var(--navy);}
.kplay::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent var(--navy);}
.kplay.is-playing::before{border-width:0;width:8px;height:9px;
  border-left:3px solid var(--navy);border-right:3px solid var(--navy);}

@media (max-width:760px){
  .kviewport{gap:12px;}
  .kslide{flex:0 0 86%;}   /* 次の写真をのぞかせる */
  .knav{display:none;}
}
