/* main.css (FULL / UPDATED for KIDS page - 心・技・体 + step carousels) */
:root{
  --red:#CF202E;
  --black:#000;
  --combat:#222;
  --fitness:#CF202E;
  --studio:#2F80ED;
  --bg:#fff;
  --text:#111;
  --muted:#6b7280;
  --hover: var(--red);
  --header-h:72px;
  --belt-h:70px;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; font-family:"Noto Sans JP", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color:var(--text); background:var(--bg); }
img{ max-width:100%; display:block; }
a{ color:inherit; }

.container{ width:min(1100px, calc(100% - 32px)); margin:0 auto; }
.section{ padding:56px 0; }
.section-title{ margin:0 0 14px; font-size:28px; letter-spacing:.2px; font-weight:700; }
.section-text{ margin:0; font-size:15px; line-height:1.85; font-weight:400; }
.section-hr{ width:160px; height:3px; background:var(--red); margin:12px 0 18px; }
.muted{ color:var(--muted); }
.center-title{ text-align:center; }
.is-hidden{ display:none !important; }
.is-disabled{ display:none !important; }

body{
  padding-top: var(--header-h);
  padding-bottom: calc(var(--belt-h) + env(safe-area-inset-bottom));
}

/* HEADER */
.site-header{ position:fixed; top:0; left:0; right:0; z-index:60; }
.header-bar{ background:transparent; color:#fff; border-bottom:1px solid rgba(255,255,255,.55); transition: background .18s ease, border-color .18s ease; }
.site-header.is-scrolled .header-bar{ background:#000; border-bottom-color: rgba(255,255,255,.10); }
.header-inner{ height:var(--header-h); display:flex; align-items:center; justify-content:space-between; }
.header-inner--wide{ width: calc(100% - 28px); margin: 0 auto; max-width: 1400px; }
.brand{ text-decoration:none; display:flex; align-items:center; flex:0 0 auto; }
.brand-logo{ height:54px; width:auto; }
.header-center{ flex: 1 1 auto; display:flex; align-items:center; justify-content:center; gap:24px; min-width: 0; }
.header-right{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.header-link{ text-decoration:none; font-size:15px; font-weight:800; opacity:.95; white-space:nowrap; letter-spacing:.02em; }
.header-link:hover{ color:var(--hover); opacity:1; }

.lang-pill{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px; background: rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.40); color:#fff; border-radius:999px; cursor:pointer; font-weight:800; letter-spacing:.06em; line-height:1; }
.lang-pill:hover{ background: rgba(0,0,0,.40); border-color: rgba(255,255,255,.55); }
.lang-pill:focus-visible{ outline:3px solid rgba(207,32,46,.45); outline-offset:3px; }
.lang-pill__label,.lang-pill__slash{ font-size:12px; }
.lang-pill__slash{ opacity:.75; }

.burger{ display:none; background:transparent; border:0; padding:8px; cursor:pointer; }
.burger span{ display:block; width:22px; height:2px; background:#fff; margin:5px 0; }

.mobile-menu{ position:fixed; inset:0; display:none; z-index:120; }
.mobile-menu.is-open{ display:block; }
.mobile-menu__backdrop{ position:absolute; inset:0; background: rgba(0,0,0,.62); z-index:0; }
.mobile-menu__panel{ position:absolute; top:0; right:0; width:min(420px, 92vw); height:100%; background:#000; color:#fff; border-left:1px solid rgba(255,255,255,.10); padding:16px 16px calc(18px + var(--belt-h)); display:flex; flex-direction:column; gap:18px; transform: translateX(12px); opacity:0; animation: menuIn .18s ease forwards; z-index:1; overflow-y:auto; -webkit-overflow-scrolling: touch; }
@keyframes menuIn{ to { transform: translateX(0); opacity:1; } }
.mobile-menu__top{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:6px; }
.mobile-menu__brand{ text-decoration:none; display:flex; align-items:center; }
.mobile-menu__logo{ height:46px; width:auto; }
.mobile-menu__close{ width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06); color:#fff; cursor:pointer; font-size:26px; line-height:1; }
.mobile-menu__links{ display:flex; flex-direction:column; gap:10px; padding-top:6px; }
.mobile-menu__link{ text-decoration:none; padding:14px 14px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); font-weight:800; letter-spacing:.02em; }
.mobile-menu__link:hover{ border-color: rgba(255,255,255,.26); color: var(--hover); }
.mobile-menu__sns{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
.sns-btn{ display:flex; align-items:center; gap:10px; text-decoration:none; padding:12px 12px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); font-weight:800; }
.sns-btn:hover{ border-color: rgba(255,255,255,.26); color: var(--hover); }
.sns-ico{ width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; }
.sns-ico .ico{ width:20px; height:20px; display:block; }
.sns-txt{ font-size:13px; letter-spacing:.02em; }
.mobile-menu__contact{ margin-top:auto; border-top:1px solid rgba(255,255,255,.10); padding-top:14px; display:flex; flex-direction:column; gap:8px; }
.contact-row{ text-decoration:none; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; }
.contact-k{ font-weight:900; letter-spacing:.08em; font-size:11px; opacity:.85; }
.contact-v{ font-weight:800; font-size:13px; letter-spacing:.02em; }
.contact-note{ font-size:12px; line-height:1.55; opacity:.9; margin-top:6px; }
body.is-locked{ overflow:hidden; }
body.is-locked .belt-red{ opacity:0; pointer-events:none; }

/* HERO */
.mv{ padding:0; margin-top: calc(-1 * var(--header-h)); }
.mv-hero{ position:relative; width:100%; height: calc(100vw * 9 / 16); max-height: 820px; min-height: 520px; overflow:hidden; }
.mv-video{ width:100%; height:100%; display:block; object-fit:cover; }
.mv-overlay{ position:absolute; inset:0; background: rgba(0,0,0,.22); pointer-events:none; }
.mv-copy{ position:absolute; left: clamp(18px, 5vw, 54px); bottom: clamp(84px, 12vw, 170px); transform: translateY(-8px); z-index:3; color:#fff; max-width: min(760px, calc(100% - 32px)); }
.mv-title{ margin:0; font-weight:900; letter-spacing:.02em; line-height:1.05; font-size: clamp(38px, 4.8vw, 72px); transform: skewX(-6deg); text-shadow: 0 10px 30px rgba(0,0,0,.35); }
.mv-title-line{ display:block; }
.mv-actions{ margin-top:16px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.mv-btn{ display:inline-flex; align-items:center; justify-content:center; gap:12px; background:#000; color:#fff; text-decoration:none; padding:12px 16px; border-radius:0; font-weight:900; font-size:14px; letter-spacing:.02em; border:1px solid rgba(0,0,0,.20); box-shadow: 0 14px 34px rgba(0,0,0,.22); }
.mv-btn:hover{ filter:brightness(1.06); }
.mv-btn__text{ line-height:1; }
.mv-btn__arrow{ width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; }
.mv-btn__arrow .ico{ width:18px; height:18px; display:block; }

/* PROMO */
.promo-section{ position:relative; background-image: url("assets/img/campaignbackground.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; }
.promo-section::before{ content:""; position:absolute; inset:0; background: rgba(255,255,255,.28); pointer-events:none; }
.promo-section .container{ position:relative; z-index:1; }
.promo-container{ display:flex; flex-direction:column; align-items:center; text-align:center; color:#111; }
.promo-title{ margin:0 0 10px; font-size:42px; font-weight:800; letter-spacing:.4px; line-height:1.15; }
.promo-title-black{ color:#111; }
.promo-title-red{ color:var(--red); margin-left:10px; }
.promo-sub{ margin:0 0 18px; font-size:18px; font-weight:700; letter-spacing:.02em; color:rgba(0,0,0,.82); }
.promo-media{ width:min(780px, 100%); margin: 0 0 26px; }
.promo-image{ width:100%; height:auto; display:block; box-shadow: 0 18px 46px rgba(0,0,0,.18); }
.promo-copy{ max-width: 920px; width:100%; }
.promo-date{ margin:0 0 10px; font-size:34px; font-weight:800; color:#111; }
.promo-lead{ margin:0 0 14px; font-size:22px; font-weight:700; color:#111; }
.promo-note{ margin:8px 0 0; font-size:13px; line-height:1.9; color:#111; }
.btn-solid{ display:inline-flex; align-items:center; justify-content:center; gap:12px; background:#000; color:#fff; text-decoration:none; padding:14px 18px; border-radius:0; font-weight:900; font-size:15px; letter-spacing:.02em; box-shadow: 0 10px 18px rgba(0,0,0,.18); border:1px solid rgba(0,0,0,.15); }
.btn-solid:hover{ filter:brightness(1.05); }
.btn-solid__text{ line-height:1; }
.btn-solid--arrow .btn-solid__arrow{ display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; }
.btn-solid--arrow .btn-solid__arrow .ico{ display:block; }
.promo-cta-wrap{ margin-top:22px; display:flex; justify-content:center; }
.y-kicker{ font-weight:900; letter-spacing:.14em; font-size:12px; text-transform:uppercase; color:rgba(0,0,0,.58); }

/* 心・技・体 */
.mind-tech-body{
  position:relative;
  overflow:hidden;
  padding:76px 0 84px;
  background:
    radial-gradient(80% 62% at 0% 0%, rgba(207,32,46,.13), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, #ffffff 0%, #f3f4f6 100%);
}
.mind-tech-body::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(0,0,0,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.035) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, transparent, #000 20%, #000 78%, transparent);
  pointer-events:none;
}
.mtb-head{ position:relative; z-index:1; max-width:780px; margin:0 0 24px; }
.mtb-title{
  margin:10px 0 12px;
  font-size:clamp(30px, 4.2vw, 56px);
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.035em;
  transform:skewX(-5deg);
}
.mtb-lead{ margin:0; font-size:15px; line-height:1.9; font-weight:700; color:rgba(0,0,0,.72); max-width:72ch; }
.mtb-grid{ position:relative; z-index:1; display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:14px; align-items:stretch; }
.mtb-card{
  position:relative;
  min-height:420px;
  overflow:hidden;
  padding:22px 18px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  box-shadow:0 18px 60px rgba(0,0,0,.08);
  clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 30px 100%, 0 calc(100% - 30px));
}
.mtb-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:5px;
  height:100%;
  background:var(--red);
  z-index:1;
}
.mtb-card--dark{ background:#080808; color:#fff; border-color:rgba(255,255,255,.10); box-shadow:0 22px 80px rgba(0,0,0,.22); }
.mtb-card__bg{
  position:absolute;
  right:-8px;
  bottom:-36px;
  font-size:150px;
  line-height:1;
  font-weight:900;
  color:rgba(207,32,46,.08);
  pointer-events:none;
  z-index:0;
}
.mtb-card--dark .mtb-card__bg{ color:rgba(255,255,255,.08); }
.mtb-card__num{ position:relative; z-index:1; font-size:12px; font-weight:900; letter-spacing:.12em; color:var(--red); }
.mtb-card__label{ position:relative; z-index:1; margin-top:12px; display:inline-flex; align-items:center; padding:6px 9px; background:var(--red); color:#fff; font-size:10px; font-weight:900; letter-spacing:.14em; }
.mtb-card__title{ position:relative; z-index:1; margin:14px 0 8px; font-size:24px; font-weight:900; line-height:1.18; }
.mtb-card__sub{ position:relative; z-index:1; margin:0 0 12px; font-size:15px; line-height:1.55; font-weight:900; color:rgba(0,0,0,.82); }
.mtb-card--dark .mtb-card__sub{ color:rgba(255,255,255,.90); }
.mtb-card__body{ position:relative; z-index:1; margin:0; font-size:13.5px; line-height:1.88; font-weight:600; color:rgba(0,0,0,.68); }
.mtb-card--dark .mtb-card__body{ color:rgba(255,255,255,.74); }

/* Storyboard Classes */
.kids-story{
  padding:72px 0 84px;
  background:
    radial-gradient(60% 60% at 18% 18%, rgba(207,32,46,.10), rgba(255,255,255,0) 56%),
    radial-gradient(60% 60% at 82% 24%, rgba(0,0,0,.05), rgba(255,255,255,0) 62%),
    linear-gradient(180deg, #F7F8FA, #EEF0F4);
}
.story-head{ margin-bottom:20px; }
.story-list{ display:flex; flex-direction:column; gap:28px; }
.story-card{
  position:relative;
  display:grid;
  grid-template-columns: minmax(0, 1fr) 520px;
  align-items:center;
  gap:28px;
  min-height:430px;
  padding:24px;
  border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.72);
  box-shadow:0 18px 60px rgba(0,0,0,.07);
  overflow:hidden;
}
.story-card--reverse{ grid-template-columns:520px minmax(0, 1fr); }
.story-card--reverse .story-copy{ order:2; }
.story-card--reverse .story-media{ order:1; }
.story-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(207,32,46,.07), transparent 42%);
  pointer-events:none;
}
.story-copy{ position:relative; z-index:1; min-width:0; }
.story-kicker{ display:inline-flex; align-items:center; padding:7px 11px; background:#000; color:#fff; font-size:12px; font-weight:900; letter-spacing:.08em; }
.story-title{ margin:16px 0 10px; font-size:clamp(23px, 3.2vw, 38px); line-height:1.12; font-weight:900; transform:skewX(-5deg); }
.story-body{ margin:0; color:rgba(0,0,0,.72); line-height:1.9; font-size:15px; font-weight:700; max-width:58ch; white-space:pre-line; }
.story-controls{ margin-top:20px; display:flex; align-items:center; gap:12px; }
.story-arrow{
  width:48px;
  height:48px;
  border:0;
  background:#000;
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  font-size:22px;
  line-height:1;
  font-weight:900;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.story-arrow:hover{ background:var(--red); }
.story-count{ min-width:70px; text-align:center; font-size:12px; font-weight:900; letter-spacing:.12em; color:rgba(0,0,0,.62); }
.story-media{ position:relative; z-index:1; height:390px; display:flex; align-items:center; justify-content:center; }
.story-octo{
  position:relative;
  width:360px;
  height:360px;
  overflow:hidden;
  clip-path: polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%);
  background:#e9eaee;
  border:1px solid rgba(0,0,0,.12);
  box-shadow:0 18px 70px rgba(0,0,0,.20);
}
.story-octo::after{
  content:"";
  position:absolute;
  inset:10px;
  clip-path: inherit;
  border:1px solid rgba(255,255,255,.44);
  pointer-events:none;
}
.story-octo img{ width:100%; height:100%; object-fit:cover; transition:opacity .18s ease, transform .18s ease; }
.story-octo.is-changing img{ opacity:.35; transform:scale(1.02); }

/* EVENTS */
.kids-events{
  padding:72px 0 84px;
  background:#080808;
  color:#fff;
}
.events-panel{
  display:grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap:30px;
  align-items:center;
}
.events-copy .section-hr{ margin-left:0; }
.events-copy .muted{ color:rgba(255,255,255,.66); }
.events-carousel{
  display:grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(240px, .8fr);
  gap:18px;
  align-items:center;
}
.events-frame{
  height:340px;
  background:#171717;
  overflow:hidden;
  clip-path: polygon(12% 0%,88% 0%,100% 18%,100% 82%,88% 100%,12% 100%,0 82%,0 18%);
  box-shadow:0 22px 80px rgba(0,0,0,.35);
}
.events-frame img{ width:100%; height:100%; object-fit:cover; }
.events-title{ margin:0 0 10px; font-size:clamp(26px, 4vw, 46px); line-height:1.05; font-weight:900; transform:skewX(-5deg); }
.events-body{ margin:0; color:rgba(255,255,255,.68); line-height:1.8; }
.events-body.is-empty{ display:none; }
.events-controls .story-count{ color:rgba(255,255,255,.72); }
.events-controls .story-arrow{ background:#fff; color:#000; }
.events-controls .story-arrow:hover{ background:var(--red); color:#fff; }

/* KIDS SCHEDULE */
.kids-schedule{ background:#fff; border-top:1px solid rgba(0,0,0,.06); }
.kids-schedule-wrap{ width:min(980px, 100%); margin:18px auto 0; }
.schedule-note-card{ margin:12px 0 12px; padding:12px 14px; border:1px solid rgba(0,0,0,.10); background:#fff; box-shadow: 0 14px 34px rgba(0,0,0,.05); display:flex; align-items:flex-start; gap:10px; }
.note-pill{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; height:22px; padding:0 10px; background: var(--red); color:#fff; font-weight:900; letter-spacing:.08em; font-size:11px; line-height:1; }
.kid-table{ border:1px solid rgba(0,0,0,.10); background:#fff; box-shadow: 0 14px 34px rgba(0,0,0,.05); overflow:hidden; }
.kid-row{ display:grid; grid-template-columns: 78px 1.1fr 1.2fr 1.2fr; gap:12px; padding:14px 14px; border-top:1px solid rgba(0,0,0,.08); align-items:center; }
.kid-row:first-child{ border-top:0; }
.kid-row--head{ border-top:0; padding:14px 14px 12px; background: rgba(0,0,0,.02); }
.kid-day{ font-weight:900; letter-spacing:.10em; font-size:12px; color:rgba(0,0,0,.62); white-space:nowrap; }
.kid-class{ font-weight:900; font-size:15px; color:rgba(0,0,0,.88); white-space:nowrap; }
.kid-slot{ font-weight:800; font-size:14px; color:rgba(0,0,0,.82); white-space:nowrap; }
.schedule-note{ margin-top:12px; font-size:13px; line-height:1.75; }

/* RULES */
.kids-rules{ background: #F7F8FA; border-top:1px solid rgba(0,0,0,.06); }
.rules-card{ margin-top:18px; border:1px solid rgba(0,0,0,.10); background:#fff; box-shadow: 0 14px 34px rgba(0,0,0,.05); padding:18px 16px; }
.rules-list{ margin:0; padding-left:18px; line-height:1.9; font-size:14px; font-weight:700; color:rgba(0,0,0,.82); }
.rules-note{ margin:12px 0 0; font-size:13px; line-height:1.75; }
.rules-cta{ margin-top:16px; display:flex; justify-content:center; }

/* Booking / FAQ / Access / Company / Footer */
.booking-inner{ max-width: 980px; }
.booking-note{ margin-top:-6px; text-align:center; }
.steps{ margin:18px auto 0; display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:12px; }
.step{ border:1px solid #e9e9e9; background:#fff; padding:14px 14px; }
.step-top{ display:flex; align-items:center; gap:10px; }
.step-badge{ display:inline-flex; align-items:center; justify-content:center; height:22px; padding:0 10px; background: var(--red); color:#fff; font-weight:800; font-size:11px; letter-spacing:.08em; border-radius:0; }
.step-num{ font-weight:800; letter-spacing:.08em; font-size:12px; color:rgba(0,0,0,.65); }
.step-text{ margin-top:10px; font-size:14px; line-height:1.7; font-weight:500; color:rgba(0,0,0,.86); }


.membership{ background:#fff; }
.membership-hero{ position:relative; height: 210px; background-image: url("assets/img/membership-banner.jpg"); background-size: cover; background-position: center; background-repeat:no-repeat; overflow:hidden; }
.membership-hero__overlay{ position:absolute; inset:0; background: rgba(0,0,0,.32); }
.membership-hero__title{ position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-weight:900; letter-spacing:.08em; font-size:40px; text-transform:uppercase; text-align:center; padding:0 18px; }
.membership-body{ padding-top:28px; }
.plan-grid{ display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:14px; align-items:stretch; }
.plan{ background:#fff; border:1px solid rgba(0,0,0,.10); box-shadow: 0 18px 60px rgba(0,0,0,.06); overflow:hidden; }
.plan--highlight{ border-color: rgba(0,0,0,.10); box-shadow: 0 18px 60px rgba(0,0,0,.06); }
.plan-top{ padding:0; background: linear-gradient(180deg, #4b4b4b 0%, #1a1a1a 55%, #000 100%); color:#fff; min-height: 154px; display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; }
.plan-name{ position:absolute; top:0; left:50%; transform: translateX(-50%); width:78%; background: var(--red); color:#fff; font-weight:900; letter-spacing:.06em; text-align:center; padding:7px 10px; font-size:15px; white-space:nowrap; }
.plan-price{ position:absolute; left:50%; top:58%; transform: translate(-50%, -50%); margin:0; font-weight:900; letter-spacing:.02em; display:flex; align-items:baseline; justify-content:center; gap:6px; white-space:nowrap; }
.plan-price .yen{ font-size:24px; opacity:.98; }
.plan-price .num{ font-size:46px; line-height:1; }
.plan-bottom{ padding:14px 14px 14px; background:#fff; text-align:center; }
.plan-block{ padding:10px 0; border-top:1px solid rgba(0,0,0,.10); }
.plan-block:first-child{ border-top:0; }
.plan-k{ color: var(--red); font-weight:900; letter-spacing:.06em; font-size:14px; margin-bottom:6px; white-space:nowrap; }
.plan-big{ font-size:20px; font-weight:900; letter-spacing:.02em; line-height:1.15; color:#000; white-space:nowrap; }
.plan-sub{ margin-top:8px; font-size:16px; font-weight:900; letter-spacing:.02em; color:#000; white-space:nowrap; }
.membership-note{ margin-top:14px; font-size:13px; line-height:1.75; text-align:center; }
.membership-cta{ margin-top:16px; display:flex; justify-content:center; }

.info-section{ background:#fff; }
.info-card{ background:#fff; border:1px solid #e8e8e8; border-radius:0; box-shadow: 0 14px 34px rgba(0,0,0,.05); overflow:hidden; margin-top:18px; }
.faq-item{ border-top:1px solid rgba(0,0,0,.08); }
.faq-item:first-child{ border-top:0; }
.faq-q{ list-style:none; cursor:pointer; padding:16px 16px; font-weight:600; line-height:1.45; display:flex; align-items:center; color:#0f0f10; }
.faq-q::-webkit-details-marker{ display:none; }
.faq-q::after{ content:""; margin-left:auto; width:10px; height:10px; border-right:2px solid rgba(0,0,0,.55); border-bottom:2px solid rgba(0,0,0,.55); transform: rotate(45deg); transition: transform .18s ease, opacity .18s ease; opacity:.85; }
.faq-item[open] .faq-q::after{ transform: rotate(-135deg); }
.faq-item[open] .faq-q{ background:rgba(0,0,0,.03); }
.faq-a{ padding:0 16px 0 16px; max-height:0; overflow:hidden; opacity:0; transform: translateY(-6px); transition: max-height .28s ease, opacity .22s ease, transform .22s ease, padding-bottom .22s ease; color:rgba(0,0,0,.78); line-height:1.9; font-size:14px; font-weight:400; }
.faq-item[open] .faq-a{ max-height: 1200px; opacity:1; transform: translateY(0); padding-bottom:16px; }

.access-block{ margin-top:24px; border:1px solid #e8e8e8; box-shadow: 0 14px 34px rgba(0,0,0,.05); display:grid; grid-template-columns: 1fr 1.35fr; overflow:hidden; }
.access-left{ padding:30px 26px; background:#fff; border-right:1px solid rgba(0,0,0,.08); }
.info-rows{ display:grid; gap:14px; }
.info-row{ display:grid; grid-template-columns: 66px 1fr; gap:12px; align-items:start; font-size:14px; }
.info-row .k{ font-weight:600; color:rgba(0,0,0,.65); padding-top:2px; }
.info-row .v{ color:rgba(0,0,0,.88); line-height:1.7; font-weight:400; }
.hours{ margin-top:20px; padding-top:18px; border-top:1px solid rgba(0,0,0,.08); }
.hours-title{ font-weight:700; margin:0 0 10px; letter-spacing:.02em; font-size:14px; }
.hours-row{ display:flex; gap:10px; margin:6px 0; color:rgba(0,0,0,.86); font-size:14px; }
.hours-row .d{ font-weight:700; min-width:52px; }
.hours-row .t{ font-weight:400; }
.access-right iframe{ width:100%; height:100%; min-height:420px; border:0; display:block; }
.company-table .tr{ display:grid; grid-template-columns: 150px 1fr; border-top:1px solid rgba(0,0,0,.08); }
.company-table .tr:first-child{ border-top:0; }
.company-table .th{ padding:16px 14px; font-weight:600; color:rgba(0,0,0,.65); background:rgba(0,0,0,.02); letter-spacing:.02em; font-size:14px; }
.company-table .td{ padding:16px 14px; color:rgba(0,0,0,.88); line-height:1.85; font-size:14px; font-weight:400; }

.site-footer{ background:#000; color:#fff; padding:22px 0; }
.footer-inner{ width:min(1100px, calc(100% - 32px)); margin:0 auto; display:flex; align-items:center; justify-content:flex-start; gap:14px; flex-wrap:wrap; }
.footer-sns{ display:flex; align-items:center; gap:12px; order:2; }
.footer-sns__link{ width:auto; height:auto; display:inline-flex; align-items:center; justify-content:center; padding:0; text-decoration:none; border:0; background:transparent; }
.footer-sns__link:hover{ color: var(--hover); }
.footer-sns__link .ico{ width:18px; height:18px; display:block; }
.footer-links{ display:flex; gap:14px; margin-left:auto; order:3; }
.footer-links a{ text-decoration:none; opacity:.9; }
.footer-links a:hover{ opacity:1; color:var(--hover); }

/* BELT */
.belt-red{ position:fixed; left:0; right:0; bottom:0; z-index:80; height:var(--belt-h); background: var(--red); border-top:1px solid rgba(255,255,255,.18); padding-bottom: env(safe-area-inset-bottom); }
.belt-red-inner{ height:var(--belt-h); display:flex; align-items:center; justify-content:space-between; gap:14px; padding:0 18px; }
.belt-marquee{ position:relative; overflow:hidden; flex: 1 1 auto; min-width: 0; height: 100%; display:flex; align-items:center; mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent); }
.belt-marquee-row{ display:inline-flex; align-items:center; gap:14px; white-space:nowrap; color:#fff; font-weight:900; letter-spacing:.06em; font-size:20px; line-height:1; will-change: transform; animation: beltMove 18s linear infinite; }
.belt-item{ opacity:.98; }
.belt-dot{ opacity:.85; }
.belt-spacer{ width: 40px; }
@keyframes beltMove{ 0%{ transform: translateX(0); } 100%{ transform: translateX(-50%); } }
.belt-divider{ width:1px; height:44px; background: rgba(255,255,255,.45); flex:0 0 auto; }
.belt-cta-rect{ flex:0 0 auto; height:46px; display:inline-flex; align-items:center; justify-content:center; padding:0 22px; border:0; color:#fff; text-decoration:none; font-weight:900; letter-spacing:.02em; border-radius:0; background:#000; box-shadow: 0 14px 30px rgba(0,0,0,.18); white-space:nowrap; }
.belt-cta-rect:hover{ filter:brightness(1.04); }
.belt-cta-text{ font-size:16px; }

/* Responsive */
@media (max-width: 1100px){
  .plan-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .mtb-grid{ grid-template-columns:1fr; }
  .mtb-card{ min-height:auto; }
  .story-card,
  .story-card--reverse{ grid-template-columns: minmax(0,1fr) 420px; }
  .story-card--reverse{ grid-template-columns:420px minmax(0,1fr); }
  .story-octo{ width:320px; height:320px; }
  .story-media{ height:350px; }
}

@media (max-width: 980px){
  .kid-row{ grid-template-columns: 64px 1fr 1.2fr 1.2fr; padding:12px 12px; gap:10px; }
  .kid-class{ font-size:13px; }
  .kid-slot{ font-size:12.5px; }
  .events-panel{ grid-template-columns:1fr; }
  .events-carousel{ grid-template-columns:1fr; }
  .events-frame{ height:300px; }
}

@media (max-width: 820px){
  .burger{ display:block; }
  .header-center{ display:none; }
  .lang-pill{ padding:9px 11px; gap:6px; background:rgba(0,0,0,.35); }
  .mv-copy{ bottom: clamp(92px, 18vw, 160px); }
  .mv-title{ font-size: clamp(34px, 8.8vw, 54px); }
  .promo-sub{ font-size:16px; margin-bottom:16px; }
  .steps{ grid-template-columns:1fr; }
  .access-block{ grid-template-columns:1fr; }
  .access-left{ border-right:0; border-bottom:1px solid rgba(0,0,0,.08); padding:26px 18px; }
  .company-table .tr{ grid-template-columns: 120px 1fr; }
  .belt-red-inner{ padding:0 12px; gap:12px; }
  .belt-marquee-row{ font-size:18px; }
  .belt-divider{ height:40px; }
  .belt-cta-rect{ height:44px; padding:0 16px; }
  .belt-cta-text{ font-size:15px; }
  .membership-hero__title{ font-size:30px; }
  .promo-title{ font-size: clamp(30px, 8.2vw, 40px); letter-spacing:.25px; line-height:1.12; }
  .promo-title-red{ margin-left:8px; }

  .mind-tech-body{ padding:56px 0 64px; }
  .mtb-title{ transform:none; }
  .mtb-grid{ gap:12px; }
  .mtb-card{ clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px)); padding:20px 16px; }
  .mtb-card__title{ font-size:22px; }
  .mtb-card__bg{ font-size:120px; }

  .kids-story{ padding:56px 0 64px; }
  .story-card,
  .story-card--reverse{
    grid-template-columns:1fr;
    gap:14px;
    min-height:0;
    padding:18px 16px 20px;
  }
  .story-card--reverse .story-copy,
  .story-card--reverse .story-media{ order:initial; }
  .story-media{ height:auto; padding:12px 0 4px; order:1; }
  .story-copy{ order:2; }
  .story-octo{ width:min(340px, 88vw); height:min(340px, 88vw); }
  .story-title{ transform:none; }
  .story-controls{ justify-content:center; }
  .story-arrow{ width:46px; height:46px; }
}

@media (max-width: 640px){
  .kid-table{ overflow-x:auto; }
  .kid-row{ min-width: 640px; }
  .events-frame{ height:260px; }
  .events-title{ transform:none; }
}

@media (max-width: 520px){
  .plan-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; }
  .plan-top{ min-height: 122px; }
  .plan-name{ width:86%; font-size:12px; padding:6px 8px; }
  .plan-price .yen{ font-size:18px; }
  .plan-price .num{ font-size:34px; }
  .plan-bottom{ padding:10px 10px 10px; }
  .plan-k{ font-size:12px; margin-bottom:4px; }
  .plan-big{ font-size:16px; }
  .plan-sub{ font-size:13px; margin-top:6px; }
  .membership-hero{ height: 180px; }
  .story-body{ font-size:14px; line-height:1.85; }
}

@media (max-width: 420px){
  .promo-title{ font-size: clamp(28px, 8.6vw, 36px); letter-spacing:.18px; }
  .promo-title-red{ margin-left:6px; }
  .plan-name{ font-size:11px; }
  .plan-price .num{ font-size:32px; }
  .plan-big{ font-size:15px; }
  .mtb-card__body{ font-size:13px; }
}

@media (prefers-reduced-motion: reduce){
  .belt-marquee-row{ animation:none !important; }
  .mobile-menu__panel{ animation:none !important; opacity:1; transform:none; }
  .story-octo img{ transition:none !important; }
}


/* =========================================================
   V3 refined layout
========================================================= */
.kids-intro{
  position:relative;
  padding:68px 0 30px;
  background:
    radial-gradient(58% 58% at 0% 0%, rgba(207,32,46,.08), rgba(255,255,255,0) 62%),
    linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
  overflow:hidden;
}
.kids-intro__inner{ position:relative; z-index:1; display:grid; gap:24px; }
.kids-intro__chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.kids-intro__chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:64px;
  padding:16px 28px;
  border:2px solid #101828;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:rgba(0,0,0,.78);
  text-align:center;
  font-size:clamp(18px, 1.9vw, 24px);
  line-height:1.45;
  font-weight:400;
}
.kids-intro__panel{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(320px, .95fr);
  gap:32px;
  align-items:end;
  padding:34px 38px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:0 20px 60px rgba(0,0,0,.06);
}
.kids-intro__copy{ min-width:0; }
.kids-intro__title{
  margin:10px 0 0;
  max-width:10ch;
  font-size:clamp(34px, 5vw, 64px);
  line-height:1.04;
  letter-spacing:-.04em;
  font-weight:900;
}
.kids-intro__lead{
  margin:0;
  max-width:46ch;
  font-size:16px;
  line-height:1.95;
  color:rgba(0,0,0,.74);
  font-weight:600;
}

.mind-tech-body{
  position:relative;
  overflow:hidden;
  padding:70px 0 82px;
  background:
    radial-gradient(68% 55% at 10% 0%, rgba(207,32,46,.08), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, #f7f8fa 0%, #f2f4f7 100%);
}
.mind-tech-body::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(0,0,0,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.03) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom, transparent, #000 20%, #000 80%, transparent);
  pointer-events:none;
}
.mtb-head{ position:relative; z-index:1; max-width:720px; margin:0 0 28px; }
.mtb-title{
  margin:10px 0 10px;
  font-size:clamp(30px, 3.8vw, 48px);
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.035em;
  transform:none;
}
.mtb-lead{ margin:0; max-width:60ch; font-size:15px; line-height:1.9; font-weight:600; color:rgba(0,0,0,.70); }
.mtb-grid{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; align-items:stretch; }
.mtb-card,
.mtb-card--soft,
.mtb-card--dark{
  position:relative;
  min-height:0;
  overflow:hidden;
  padding:24px 22px 26px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:24px;
  background:rgba(255,255,255,.96);
  color:var(--text);
  box-shadow:0 18px 52px rgba(0,0,0,.06);
  clip-path:none;
}
.mtb-card:nth-child(2){ background:linear-gradient(180deg, #ffffff 0%, #f8f9fb 100%); }
.mtb-card::before,
.mtb-card--soft::before,
.mtb-card--dark::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  width:auto;
  background:var(--red);
}
.mtb-card__bg{ position:absolute; right:16px; bottom:10px; font-size:86px; line-height:1; font-weight:900; color:rgba(0,0,0,.05); pointer-events:none; z-index:0; }
.mtb-card__num{ position:relative; z-index:1; font-size:11px; font-weight:900; letter-spacing:.18em; color:var(--red); }
.mtb-card__label{ position:relative; z-index:1; margin-top:12px; display:inline-flex; align-items:center; padding:7px 10px; border-radius:999px; background:#f3f4f6; color:#111; font-size:10px; font-weight:900; letter-spacing:.14em; border:1px solid rgba(0,0,0,.06); }
.mtb-card__title{ position:relative; z-index:1; margin:16px 0 8px; font-size:26px; font-weight:900; line-height:1.16; }
.mtb-card__sub{ position:relative; z-index:1; margin:0 0 12px; font-size:15px; line-height:1.6; font-weight:800; color:rgba(0,0,0,.78); }
.mtb-card__body{ position:relative; z-index:1; margin:0; font-size:13.5px; line-height:1.92; font-weight:600; color:rgba(0,0,0,.68); }
.mtb-card--dark .mtb-card__bg,
.mtb-card--soft .mtb-card__bg{ color:rgba(0,0,0,.05); }
.mtb-card--dark .mtb-card__sub,
.mtb-card--soft .mtb-card__sub{ color:rgba(0,0,0,.78); }
.mtb-card--dark .mtb-card__body,
.mtb-card--soft .mtb-card__body{ color:rgba(0,0,0,.68); }

.kids-story{
  padding:72px 0 84px;
  background:#fff;
}
.story-head{ max-width:1080px; margin:0 auto 28px; }
.story-list{ display:flex; flex-direction:column; gap:56px; }
.story-card,
.story-card--reverse{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 460px) minmax(300px, 420px);
  justify-content:space-between;
  align-items:center;
  gap:40px;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
  max-width:1080px;
  margin:0 auto;
}
.story-card::before{ display:none; }
.story-card--reverse{ grid-template-columns:minmax(300px, 420px) minmax(0, 460px); }
.story-copy{ position:relative; z-index:1; max-width:460px; min-width:0; }
.story-card--reverse .story-copy{ order:2; justify-self:end; }
.story-card--reverse .story-media{ order:1; justify-self:start; }
.story-kicker{ display:inline-flex; align-items:center; padding:7px 12px; background:var(--red); color:#fff; font-size:12px; font-weight:900; letter-spacing:.04em; border-radius:999px; }
.story-title{ margin:16px 0 10px; font-size:clamp(26px, 3vw, 42px); line-height:1.1; font-weight:900; transform:none; }
.story-body{ margin:0; color:rgba(0,0,0,.72); line-height:1.88; font-size:15px; font-weight:600; max-width:36ch; white-space:pre-line; }
.story-controls{ margin-top:22px; display:flex; align-items:center; gap:14px; }
.story-arrow{
  width:52px;
  height:52px;
  border:1px solid rgba(0,0,0,.08);
  background:#000;
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  font-size:22px;
  line-height:1;
  font-weight:900;
  border-radius:14px;
  box-shadow:0 12px 24px rgba(0,0,0,.12);
}
.story-arrow:hover{ background:var(--red); }
.story-count{ min-width:74px; text-align:center; font-size:12px; font-weight:900; letter-spacing:.14em; color:rgba(0,0,0,.55); }
.story-media{ position:relative; z-index:1; height:auto; display:flex; align-items:center; justify-content:center; }
.story-card:not(.story-card--reverse) .story-media{ justify-content:flex-end; }
.story-octo{
  position:relative;
  width:min(380px, 100%);
  aspect-ratio:1 / 1;
  overflow:hidden;
  clip-path:polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%);
  background:#eceff3;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 24px 56px rgba(0,0,0,.10);
}
.story-octo::after{
  content:"";
  position:absolute;
  inset:12px;
  clip-path:inherit;
  border:1px solid rgba(255,255,255,.68);
  pointer-events:none;
}
.story-octo img{ width:100%; height:100%; object-fit:cover; transition:opacity .18s ease, transform .18s ease; }
.story-octo.is-changing img{ opacity:.35; transform:scale(1.02); }
.classes-cta{ margin-top:40px; display:flex; justify-content:center; }

.kids-events{
  position:relative;
  padding:86px 0 92px;
  color:#fff;
  background:#090909;
  overflow:hidden;
}
.kids-events .section-title,
.kids-events .section-text,
.kids-events .muted{ color:#fff; }
.events-bg{ position:absolute; inset:0; z-index:0; }
.events-video{ width:100%; height:100%; object-fit:cover; display:block; }
.events-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.84) 0%, rgba(0,0,0,.70) 42%, rgba(0,0,0,.60) 100%),
    radial-gradient(40% 40% at 78% 50%, rgba(207,32,46,.18), rgba(0,0,0,0) 72%);
}
.events-inner{ position:relative; z-index:1; }
.events-panel{
  display:grid;
  grid-template-columns:minmax(0, 420px) minmax(340px, 500px);
  justify-content:space-between;
  gap:44px;
  align-items:center;
  max-width:1080px;
  margin:0 auto;
}
.events-copy .section-hr{ margin-left:0; background:rgba(255,255,255,.82); }
.events-copy .muted{ color:rgba(255,255,255,.78); }
.events-detail{ margin-top:28px; padding-top:24px; border-top:1px solid rgba(255,255,255,.18); }
.events-title{ margin:0 0 12px; font-size:clamp(30px, 3.4vw, 48px); line-height:1.06; font-weight:900; transform:none; }
.events-body{ margin:0; max-width:30ch; color:rgba(255,255,255,.86); font-size:16px; line-height:1.88; font-weight:600; }
.events-body.is-empty{ display:none; }
.events-controls{ margin-top:24px; }
.events-controls .story-count{ color:rgba(255,255,255,.75); }
.events-controls .story-arrow{ background:#fff; color:#000; border-color:transparent; }
.events-controls .story-arrow:hover{ background:var(--red); color:#fff; }
.events-media{ display:flex; justify-content:flex-end; }
.events-frame{
  position:relative;
  width:min(100%, 500px);
  aspect-ratio:1 / 1.02;
  overflow:hidden;
  clip-path:polygon(24% 0%,76% 0%,100% 24%,100% 76%,76% 100%,24% 100%,0% 76%,0% 24%);
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  box-shadow:0 28px 80px rgba(0,0,0,.28);
}
.events-frame::after{
  content:"";
  position:absolute;
  inset:14px;
  clip-path:inherit;
  border:1px solid rgba(255,255,255,.28);
  pointer-events:none;
}
.events-frame img{ width:100%; height:100%; object-fit:cover; }

@media (max-width: 1100px){
  .kids-intro__panel{ grid-template-columns:minmax(0,1fr) minmax(280px,.92fr); }
  .story-card,
  .story-card--reverse{ grid-template-columns:minmax(0, 1fr) minmax(260px, 360px); gap:32px; }
  .story-card--reverse{ grid-template-columns:minmax(260px, 360px) minmax(0, 1fr); }
  .story-octo{ width:min(340px, 100%); }
  .events-panel{ grid-template-columns:minmax(0, 1fr) minmax(300px, 420px); gap:32px; }
}

@media (max-width: 820px){
  .kids-intro{ padding:56px 0 24px; }
  .kids-intro__chips{ gap:12px; }
  .kids-intro__chip{ width:100%; min-height:0; padding:16px 18px; font-size:clamp(18px, 5vw, 22px); }
  .kids-intro__panel{ grid-template-columns:1fr; gap:18px; padding:24px 22px; }
  .kids-intro__title{ max-width:none; font-size:clamp(32px, 10vw, 48px); }
  .kids-intro__lead{ font-size:15px; line-height:1.88; max-width:none; }

  .mind-tech-body{ padding:54px 0 68px; }
  .mtb-grid{ grid-template-columns:1fr; gap:14px; }
  .mtb-card,
  .mtb-card--soft,
  .mtb-card--dark{ padding:22px 20px 24px; border-radius:20px; }
  .mtb-card__title{ font-size:24px; }

  .kids-story{ padding:60px 0 72px; }
  .story-head{ margin-bottom:22px; }
  .story-list{ gap:42px; }
  .story-card,
  .story-card--reverse{ grid-template-columns:1fr; gap:20px; }
  .story-card--reverse .story-copy,
  .story-card--reverse .story-media{ order:initial; justify-self:stretch; }
  .story-copy{ max-width:none; }
  .story-body{ max-width:none; }
  .story-media,
  .story-card:not(.story-card--reverse) .story-media,
  .story-card--reverse .story-media{ justify-content:center; }
  .story-octo{ width:min(320px, 84vw); }

  .kids-events{ padding:72px 0 78px; }
  .events-panel{ grid-template-columns:1fr; gap:28px; }
  .events-media{ justify-content:center; }
  .events-frame{ width:min(360px, 86vw); }
  .events-body{ max-width:none; }
}

@media (max-width: 520px){
  .kids-intro__title{ font-size:clamp(30px, 11vw, 42px); }
  .story-title{ font-size:clamp(24px, 8vw, 32px); }
  .story-body{ font-size:14px; }
  .story-arrow{ width:48px; height:48px; border-radius:12px; }
  .events-title{ font-size:clamp(28px, 10vw, 38px); }
  .events-body{ font-size:15px; }
}

/* =========================================================
   V4 intro + sizing refinements
========================================================= */
.kids-intro{
  position:relative;
  padding:58px 0 24px;
  background:
    linear-gradient(135deg, rgba(0,0,0,.035) 0 1px, transparent 1px) 0 0 / 320px 320px,
    linear-gradient(180deg, #fbfbfc 0%, #f4f5f7 100%);
  overflow:hidden;
}
.kids-intro::before{
  content:"";
  position:absolute;
  left:-120px;
  bottom:18px;
  width:220px;
  height:220px;
  background:linear-gradient(135deg, transparent 48%, rgba(207,32,46,.92) 48% 52%, transparent 52%);
  opacity:.9;
  pointer-events:none;
}
.kids-intro::after{
  content:"";
  position:absolute;
  top:106px;
  left:max(16px, calc(50% - 560px));
  width:88px;
  height:180px;
  background-image:radial-gradient(rgba(0,0,0,.085) 1px, transparent 1px);
  background-size:12px 12px;
  opacity:.42;
  pointer-events:none;
}
.kids-intro__inner{
  position:relative;
  z-index:1;
  display:grid;
  gap:26px;
}
.kids-intro__chips{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.kids-intro__chip{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:62px;
  padding:14px 22px 14px 54px;
  border:2px solid #3c4048;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#202327;
  text-align:center;
  font-size:clamp(16px, 1.45vw, 19px);
  line-height:1.45;
  font-weight:500;
  box-shadow:none;
}
.kids-intro__chip::before{
  content:"/";
  position:absolute;
  left:20px;
  top:50%;
  transform:translateY(-54%);
  color:var(--red);
  font-size:26px;
  line-height:1;
  font-weight:900;
}
.kids-intro__panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(360px, .95fr);
  gap:42px;
  align-items:center;
  padding:8px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.kids-intro__copy{ max-width:620px; }
.kids-intro__kicker{
  color:var(--red);
  letter-spacing:.22em;
  font-size:13px;
  font-weight:900;
}
.kids-intro__title{
  margin:18px 0 0;
  max-width:10.2ch;
  color:#101114;
  font-size:clamp(44px, 4.8vw, 72px);
  line-height:1.02;
  letter-spacing:-.055em;
  font-weight:900;
}
.kids-intro__title-accent{ color:var(--red); }
.kids-intro__line{
  width:96px;
  height:3px;
  margin:26px 0 26px;
  background:var(--red);
}
.kids-intro__lead{
  margin:0;
  max-width:34ch;
  font-size:15px;
  line-height:1.95;
  color:rgba(0,0,0,.78);
  font-weight:500;
}
.kids-intro__visual{
  position:relative;
  min-height:420px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.kids-intro__visual-bg{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.kids-intro__visual-bg::before{
  content:"";
  position:absolute;
  inset:38px 36px 38px 60px;
  clip-path:polygon(26% 0%, 74% 0%, 100% 26%, 100% 74%, 74% 100%, 26% 100%, 0% 74%, 0% 26%);
  border:2px solid rgba(0,0,0,.16);
}
.kids-intro__visual-bg::after{
  content:"";
  position:absolute;
  right:-20px;
  bottom:18px;
  width:170px;
  height:160px;
  background:
    linear-gradient(135deg, rgba(207,32,46,.02) 0%, rgba(207,32,46,.18) 100%),
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(207,32,46,.18) 12px 14px, transparent 14px 22px);
  opacity:.8;
  filter:blur(.2px);
}
.kids-intro__octagon{
  position:relative;
  width:min(470px, 100%);
  aspect-ratio:1 / 1;
  clip-path:polygon(26% 0%, 74% 0%, 100% 26%, 100% 74%, 74% 100%, 26% 100%, 0% 74%, 0% 26%);
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(245,246,248,.98) 100%);
  box-shadow:none;
  overflow:hidden;
}
.kids-intro__octagon::before{
  content:"";
  position:absolute;
  inset:14px;
  clip-path:inherit;
  border:2px solid rgba(207,32,46,.9);
  pointer-events:none;
}
.kids-intro__octagon::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.02)),
    linear-gradient(0deg, rgba(0,0,0,.04), rgba(0,0,0,0) 36%);
  pointer-events:none;
}
.kids-intro__image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}

.story-kicker{
  padding:7px 12px;
  border-radius:0;
  background:var(--red);
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.03em;
}
.story-title{
  margin:16px 0 8px;
  font-size:clamp(22px, 2.4vw, 30px);
  line-height:1.16;
  font-weight:900;
}
.story-body{
  font-size:14px;
  line-height:1.92;
  font-weight:500;
  color:rgba(0,0,0,.74);
}
.story-controls{ gap:16px; }
.story-arrow{
  width:50px;
  height:50px;
  border:0;
  border-radius:999px;
  background:#3a3d43;
  color:#fff;
  box-shadow:none;
}
.story-arrow:hover{ background:var(--red); color:#fff; }
.story-count{
  min-width:78px;
  font-size:12px;
  letter-spacing:.14em;
}
.story-octo{
  width:min(360px, 100%);
  aspect-ratio:1 / 1;
  clip-path:polygon(29.29% 0%, 70.71% 0%, 100% 29.29%, 100% 70.71%, 70.71% 100%, 29.29% 100%, 0% 70.71%, 0% 29.29%);
}
.story-octo::after{ inset:12px; }

.events-controls .story-arrow{
  background:#3a3d43;
  color:#fff;
}
.events-controls .story-arrow:hover{
  background:var(--red);
  color:#fff;
}
.events-frame{
  width:min(100%, 480px);
  height:auto;
  aspect-ratio:1 / 1;
  clip-path:polygon(29.29% 0%, 70.71% 0%, 100% 29.29%, 100% 70.71%, 70.71% 100%, 29.29% 100%, 0% 70.71%, 0% 29.29%);
}
.events-frame::after{
  inset:14px;
  clip-path:inherit;
}

@media (max-width: 1100px){
  .kids-intro__chips{ grid-template-columns:1fr; }
  .kids-intro__panel{ grid-template-columns:minmax(0,1fr) minmax(320px,.9fr); gap:32px; }
  .kids-intro__title{ font-size:clamp(40px, 5vw, 58px); }
}

@media (max-width: 820px){
  .kids-intro{ padding:48px 0 18px; }
  .kids-intro::after{ display:none; }
  .kids-intro__panel{ grid-template-columns:1fr; gap:26px; }
  .kids-intro__chips{ grid-template-columns:1fr; gap:12px; }
  .kids-intro__chip{ padding:14px 18px 14px 48px; font-size:16px; }
  .kids-intro__title{ max-width:none; font-size:clamp(34px, 10vw, 50px); }
  .kids-intro__visual{ min-height:320px; }
  .kids-intro__octagon{ width:min(360px, 86vw); }
  .story-title{ font-size:clamp(22px, 8vw, 28px); }
}

@media (max-width: 520px){
  .kids-intro__line{ margin:20px 0 20px; }
  .kids-intro__lead{ font-size:14px; line-height:1.9; }
  .story-arrow{ width:46px; height:46px; }
  .events-frame{ width:min(340px, 86vw); }
}

/* =========================================================
   V5 intro proportion + softer carousel motion
========================================================= */
.kids-intro{
  padding:48px 0 42px;
  background:
    linear-gradient(135deg, rgba(0,0,0,.025) 0 1px, transparent 1px) 0 0 / 360px 360px,
    linear-gradient(180deg, #fbfbfc 0%, #f7f8fa 100%);
}
.kids-intro::before{
  width:180px;
  height:180px;
  left:-92px;
  bottom:30px;
  opacity:.82;
}
.kids-intro::after{
  top:128px;
  width:72px;
  height:150px;
  opacity:.32;
}
.kids-intro__inner{
  gap:30px;
}
.kids-intro__chips{
  width:min(100%, 1120px);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px;
}
.kids-intro__chip{
  min-height:48px;
  padding:10px 20px 10px 42px;
  border:1.6px solid #333842;
  color:#22262b;
  font-size:clamp(13px, 1.15vw, 16px);
  line-height:1.35;
  font-weight:600;
  letter-spacing:-.015em;
  background:rgba(255,255,255,.97);
}
.kids-intro__chip::before{
  left:18px;
  font-size:22px;
}
.kids-intro__panel{
  width:min(1120px, 100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0, 52%) minmax(0, 48%);
  gap:34px;
  align-items:center;
  padding:0;
  min-height:430px;
}
.kids-intro__copy{
  max-width:620px;
  align-self:center;
}
.kids-intro__kicker{
  font-size:12px;
  letter-spacing:.28em;
  margin-bottom:0;
}
.kids-intro__title{
  margin:18px 0 0;
  max-width:none;
  font-size:clamp(38px, 4.15vw, 58px);
  line-height:1.08;
  letter-spacing:-.055em;
  font-weight:900;
  color:#101114;
}
.kids-intro__title > span{
  display:block;
  white-space:normal;
}
.kids-intro__title-accent{
  color:var(--red);
}
.kids-intro__line{
  width:88px;
  height:3px;
  margin:24px 0 24px;
}
.kids-intro__lead{
  max-width:56ch;
  font-size:14.5px;
  line-height:1.95;
  font-weight:500;
  letter-spacing:.005em;
  color:rgba(0,0,0,.75);
}
.kids-intro__visual{
  min-height:430px;
  justify-content:center;
}
.kids-intro__visual-bg::before,
.kids-intro__octagon::before,
.kids-intro__octagon::after{
  display:none;
}
.kids-intro__visual-bg::after{
  right:-8px;
  bottom:48px;
  width:150px;
  height:140px;
  opacity:.42;
}
.kids-intro__octagon{
  width:100%;
  height:auto;
  max-width:520px;
  aspect-ratio:auto;
  clip-path:none;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.kids-intro__image{
  position:relative;
  inset:auto;
  width:100%;
  max-height:390px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 18px 32px rgba(0,0,0,.08));
}

.story-title{
  font-size:clamp(21px, 2.05vw, 28px);
  line-height:1.18;
  letter-spacing:-.025em;
}
.story-body{
  font-size:13.5px;
  line-height:1.9;
  font-weight:500;
  max-width:40ch;
}
.story-kicker{
  border-radius:0;
  padding:6px 11px;
  font-size:11px;
}
.story-arrow{
  width:48px;
  height:48px;
  border-radius:999px;
  background:#35383e;
  transition:background .18s ease, opacity .18s ease, transform .18s ease;
}
.story-arrow:hover{
  transform:translateY(-1px);
}
.story-octo img,
.events-frame img{
  transition:opacity .28s ease, transform .36s ease, filter .28s ease;
}
.story-octo.is-changing img,
.events-frame.is-changing img{
  opacity:.18;
  transform:scale(1.025);
  filter:blur(2px);
}
[data-step-carousel] [data-step-title],
[data-step-carousel] [data-step-body],
[data-step-carousel] [data-step-count]{
  transition:opacity .22s ease, transform .22s ease;
}
[data-step-carousel].is-step-changing [data-step-title],
[data-step-carousel].is-step-changing [data-step-body],
[data-step-carousel].is-step-changing [data-step-count]{
  opacity:.35;
  transform:translateY(4px);
}

@media (max-width: 1100px){
  .kids-intro__chips{ gap:14px; }
  .kids-intro__chip{ font-size:14px; }
  .kids-intro__panel{
    grid-template-columns:minmax(0, 1fr) minmax(300px, .92fr);
    min-height:390px;
  }
  .kids-intro__title{ font-size:clamp(36px, 4.6vw, 52px); }
}

@media (max-width: 820px){
  .kids-intro{
    padding:40px 0 28px;
  }
  .kids-intro__chips{
    grid-template-columns:1fr;
    gap:10px;
  }
  .kids-intro__chip{
    min-height:44px;
    padding:10px 18px 10px 42px;
    font-size:14px;
  }
  .kids-intro__panel{
    grid-template-columns:1fr;
    gap:18px;
    min-height:0;
  }
  .kids-intro__copy{
    max-width:none;
  }
  .kids-intro__title{
    font-size:clamp(32px, 9vw, 46px);
  }
  .kids-intro__lead{
    max-width:none;
    font-size:14px;
  }
  .kids-intro__visual{
    min-height:0;
  }
  .kids-intro__octagon{
    max-width:380px;
  }
  .kids-intro__image{
    max-height:300px;
  }
}

@media (max-width: 520px){
  .kids-intro__title{
    font-size:clamp(30px, 10vw, 40px);
  }
  .kids-intro__line{
    margin:18px 0 18px;
  }
  .story-title{
    font-size:clamp(21px, 7vw, 27px);
  }
  .story-body{
    font-size:13.5px;
  }
  .story-arrow{
    width:44px;
    height:44px;
  }
}

/* =========================================================
   V6 re-balance intro + MTB heading sizing
   Requested: smaller intro title in 2 lines, remove extra red graphics,
   harmonize typography with site, reduce MTB section heading size.
========================================================= */
.kids-intro{
  padding:44px 0 38px;
}
.kids-intro::before,
.kids-intro::after,
.kids-intro__visual-bg,
.kids-intro__visual-bg::before,
.kids-intro__visual-bg::after{
  display:none !important;
}
.kids-intro__inner{
  gap:24px;
}
.kids-intro__chips{
  width:min(100%, 1080px);
  gap:18px;
}
.kids-intro__chip{
  min-height:44px;
  padding:9px 18px 9px 38px;
  font-size:clamp(12.5px, .98vw, 14px);
  line-height:1.3;
  font-weight:600;
}
.kids-intro__chip::before{
  left:15px;
  font-size:20px;
}
.kids-intro__panel{
  width:min(1040px, 100%);
  grid-template-columns:minmax(0, 1.02fr) minmax(320px, .88fr);
  gap:36px;
  min-height:360px;
}
.kids-intro__copy{
  max-width:560px;
}
.kids-intro__kicker{
  font-size:11px;
  letter-spacing:.26em;
  margin-bottom:2px;
}
.kids-intro__title{
  margin:14px 0 0;
  font-size:clamp(28px, 2.65vw, 40px);
  line-height:1.14;
  letter-spacing:-.035em;
  max-width:12.5em;
}
.kids-intro__title > span:last-child{
  white-space:nowrap;
}
.kids-intro__line{
  width:96px;
  margin:20px 0 20px;
}
.kids-intro__lead{
  max-width:46ch;
  font-size:14px;
  line-height:1.95;
  font-weight:500;
  color:rgba(0,0,0,.72);
}
.kids-intro__visual{
  min-height:360px;
  justify-content:flex-end;
  align-items:center;
}
.kids-intro__octagon{
  max-width:430px;
}
.kids-intro__image{
  max-height:345px;
  filter:drop-shadow(0 14px 26px rgba(0,0,0,.06));
}

.mtb-head{
  max-width:720px;
  margin:0 0 24px;
}
.mtb-title{
  margin:10px 0 12px;
  font-size:28px;
  line-height:1.28;
  letter-spacing:-.02em;
  font-weight:700;
  max-width:14.5em;
}
.mtb-lead{
  max-width:58ch;
  font-size:15px;
  line-height:1.8;
  font-weight:500;
}

@media (max-width: 1100px){
  .kids-intro__chips{
    gap:14px;
  }
  .kids-intro__panel{
    width:min(980px, 100%);
    grid-template-columns:minmax(0, 1fr) minmax(280px, .82fr);
    gap:28px;
  }
  .kids-intro__title{
    font-size:clamp(28px, 3.2vw, 36px);
  }
}

@media (max-width: 820px){
  .kids-intro{
    padding:36px 0 24px;
  }
  .kids-intro__chips{
    grid-template-columns:1fr;
    gap:10px;
  }
  .kids-intro__chip{
    min-height:42px;
    padding:10px 16px 10px 38px;
    font-size:13px;
  }
  .kids-intro__panel{
    grid-template-columns:1fr;
    gap:18px;
    min-height:0;
  }
  .kids-intro__copy{
    max-width:none;
  }
  .kids-intro__title{
    max-width:none;
    font-size:clamp(26px, 6.8vw, 34px);
  }
  .kids-intro__title > span:last-child{
    white-space:normal;
  }
  .kids-intro__lead{
    max-width:none;
    font-size:14px;
  }
  .kids-intro__visual{
    min-height:0;
    justify-content:center;
  }
  .kids-intro__octagon{
    max-width:360px;
  }
  .kids-intro__image{
    max-height:290px;
  }
  .mtb-title{
    font-size:28px;
    max-width:none;
  }
}

@media (max-width: 520px){
  .kids-intro__title{
    font-size:clamp(24px, 8.6vw, 30px);
  }
  .kids-intro__line{
    margin:18px 0;
  }
  .mtb-title{
    font-size:26px;
    line-height:1.3;
  }
}

/* =========================================================
   V7 requested adjustments only
   - intro text/image closer
   - top wish line compact, no outlines
   - MTB title on one line on desktop
========================================================= */
.kids-intro__chips{
  width:min(100%, 1040px);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:34px;
  flex-wrap:nowrap;
}
.kids-intro__chip{
  width:auto;
  min-height:0;
  padding:0 0 0 22px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  font-size:14px;
  line-height:1.4;
  font-weight:700;
  letter-spacing:-.02em;
  white-space:nowrap;
  color:#15171a;
}
.kids-intro__chip::before{
  left:0;
  font-size:22px;
  transform:translateY(-54%);
}
.kids-intro__panel{
  width:min(940px, 100%);
  grid-template-columns:minmax(0, 46%) minmax(320px, 40%);
  justify-content:center;
  gap:18px;
}
.kids-intro__copy{
  max-width:520px;
}
.kids-intro__visual{
  justify-content:flex-start;
}
.kids-intro__octagon{
  max-width:390px;
}
.kids-intro__image{
  max-height:330px;
}
.mtb-head{
  max-width:100%;
}
.mtb-title{
  max-width:none;
  white-space:nowrap;
  font-size:28px;
  line-height:1.25;
}

@media (max-width: 1100px){
  .kids-intro__chips{
    gap:22px;
  }
  .kids-intro__chip{
    font-size:13px;
  }
  .kids-intro__panel{
    width:min(920px, 100%);
    grid-template-columns:minmax(0, 48%) minmax(280px, 38%);
    gap:16px;
  }
}

@media (max-width: 900px){
  .kids-intro__chips{
    flex-wrap:wrap;
    gap:12px 22px;
  }
  .kids-intro__chip{
    white-space:normal;
  }
  .kids-intro__panel{
    grid-template-columns:1fr;
    gap:18px;
    width:min(720px, 100%);
  }
  .kids-intro__visual{
    justify-content:center;
  }
  .mtb-title{
    white-space:normal;
  }
}

/* =========================================================
   V8 requested updates - 2026-04-27
   - Parent wish tags moved into left intro copy
   - MTB kicker red + strong.jpg background atmosphere
   - MTB cards less text-heavy / more visual hierarchy
   - Membership order handled in HTML: Ultimate appears last
========================================================= */

/* Parent intro tags */
.kids-intro__copy .kids-intro__chips{
  width:100%;
  margin:0 0 18px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.kids-intro__copy .kids-intro__chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:0;
  padding:8px 12px;
  border:0;
  border-radius:999px;
  background:#111;
  color:#fff;
  box-shadow:none;
  font-size:12px;
  line-height:1.35;
  font-weight:900;
  letter-spacing:.01em;
  white-space:normal;
}
.kids-intro__copy .kids-intro__chip:nth-child(2){
  background:var(--red);
}
.kids-intro__copy .kids-intro__chip::before{
  display:none;
}
.kids-intro__kicker{
  color:var(--red);
}

/* Mind / Technique / Body section visual refresh */
.mind-tech-body{
  position:relative;
  isolation:isolate;
  padding:74px 0 86px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.88) 44%, rgba(255,255,255,.78) 100%),
    url("assets/img/strong.jpg") center center / cover no-repeat;
}
.mind-tech-body::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(rgba(0,0,0,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.026) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom, transparent, #000 14%, #000 86%, transparent);
  pointer-events:none;
}
.mind-tech-body::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(60% 58% at 8% 6%, rgba(207,32,46,.16), rgba(255,255,255,0) 62%),
    linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.86));
  pointer-events:none;
}
.mind-tech-body .y-kicker{
  color:var(--red);
}
.mtb-head{
  max-width:860px;
  margin-bottom:30px;
}
.mtb-title{
  font-size:clamp(30px, 3.6vw, 44px);
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.035em;
  white-space:normal;
}
.mtb-lead{
  max-width:58ch;
  font-size:15px;
  line-height:1.85;
  font-weight:700;
  color:rgba(0,0,0,.72);
}
.mtb-grid{
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:16px;
}
.mtb-card,
.mtb-card--soft,
.mtb-card--dark{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:
    "num label"
    "title title"
    "sub sub"
    "body body";
  column-gap:12px;
  align-content:start;
  min-height:330px;
  padding:22px 20px 24px;
  border-radius:18px;
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 18px 50px rgba(0,0,0,.08);
}
.mtb-card__num{
  grid-area:num;
  align-self:center;
  width:34px;
  height:34px;
  display:inline-grid;
  place-items:center;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font-size:11px;
  letter-spacing:.04em;
}
.mtb-card__label{
  grid-area:label;
  align-self:center;
  justify-self:start;
  margin:0;
  background:#111;
  color:#fff;
  border:0;
  border-radius:999px;
  padding:7px 11px;
}
.mtb-card__title{
  grid-area:title;
  margin:18px 0 8px;
  font-size:clamp(24px, 2.2vw, 31px);
  line-height:1.1;
}
.mtb-card__sub{
  grid-area:sub;
  margin:0 0 12px;
  padding-left:12px;
  border-left:3px solid var(--red);
  font-size:14px;
  line-height:1.55;
}
.mtb-card__body{
  grid-area:body;
  font-size:13px;
  line-height:1.82;
  font-weight:500;
}
.mtb-card__bg{
  right:12px;
  bottom:0;
  font-size:96px;
  color:rgba(207,32,46,.07);
}

@media (max-width: 1100px){
  .mtb-grid{
    grid-template-columns:1fr;
  }
  .mtb-card,
  .mtb-card--soft,
  .mtb-card--dark{
    min-height:0;
  }
}

@media (max-width: 900px){
  .kids-intro__copy .kids-intro__chips{
    justify-content:flex-start;
    gap:8px;
  }
  .kids-intro__copy .kids-intro__chip{
    font-size:11.5px;
    padding:7px 10px;
  }
}

@media (max-width: 820px){
  .mind-tech-body{
    padding:58px 0 70px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.90)),
      url("assets/img/strong.jpg") center center / cover no-repeat;
  }
  .mtb-title{
    font-size:clamp(28px, 7vw, 36px);
  }
  .mtb-card,
  .mtb-card--soft,
  .mtb-card--dark{
    padding:20px 18px 22px;
    border-radius:16px;
  }
}

@media (max-width: 520px){
  .kids-intro__copy .kids-intro__chips{
    margin-bottom:16px;
  }
  .kids-intro__copy .kids-intro__chip{
    width:100%;
    justify-content:flex-start;
    border-radius:12px;
  }
  .mtb-card__title{
    font-size:23px;
  }
  .mtb-card__body{
    font-size:13px;
    line-height:1.78;
  }
}


/* =========================================================
   V9 correction - FOR PARENTS + refined MTB balance
   Requested: repair intro layout, lighter strong.jpg atmosphere,
   smaller typography, uniform kanji color.
========================================================= */
.kids-intro{
  padding:56px 0 54px;
  background:
    linear-gradient(135deg, rgba(0,0,0,.022) 0 1px, transparent 1px) 0 0 / 360px 360px,
    linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
}
.kids-intro__inner{
  display:block;
}
.kids-intro__panel{
  width:min(1120px, 100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0, 1.04fr) minmax(360px, .92fr);
  gap:42px;
  align-items:center;
  justify-content:space-between;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.kids-intro__copy{
  max-width:610px;
  min-width:0;
  padding-top:6px;
}
.kids-intro__copy .kids-intro__chips,
.kids-intro__chips{
  width:100%;
  margin:0 0 22px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.kids-intro__copy .kids-intro__chip,
.kids-intro__chip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:0;
  padding:8px 13px;
  border:0;
  border-radius:999px;
  background:#111318;
  color:#fff;
  box-shadow:none;
  font-size:12px;
  line-height:1.35;
  font-weight:900;
  letter-spacing:.01em;
  white-space:normal;
  text-align:left;
}
.kids-intro__copy .kids-intro__chip--red,
.kids-intro__chip--red{
  background:var(--red);
}
.kids-intro__copy .kids-intro__chip:nth-child(2){
  background:#111318;
}
.kids-intro__copy .kids-intro__chip::before,
.kids-intro__chip::before{
  display:none !important;
}
.kids-intro__kicker{
  color:var(--red);
  font-size:12px;
  letter-spacing:.24em;
  font-weight:900;
}
.kids-intro__title{
  margin:16px 0 0;
  max-width:12.6em;
  font-size:clamp(34px, 4.1vw, 56px);
  line-height:1.08;
  letter-spacing:-.045em;
  font-weight:900;
  color:#101114;
}
.kids-intro__title > span{
  display:block;
}
.kids-intro__title > span:last-child{
  white-space:nowrap;
}
.kids-intro__title-accent{
  color:var(--red);
}
.kids-intro__line{
  width:96px;
  height:3px;
  margin:24px 0 24px;
  background:var(--red);
}
.kids-intro__lead{
  max-width:47ch;
  margin:0;
  font-size:14.5px;
  line-height:1.92;
  font-weight:600;
  color:rgba(0,0,0,.72);
}
.kids-intro__visual{
  min-height:360px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.kids-intro__visual-bg,
.kids-intro__visual-bg::before,
.kids-intro__visual-bg::after{
  display:none !important;
}
.kids-intro__octagon{
  width:100%;
  max-width:500px;
  aspect-ratio:auto;
  clip-path:none;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.kids-intro__octagon::before,
.kids-intro__octagon::after{
  display:none !important;
}
.kids-intro__image{
  position:relative;
  inset:auto;
  width:100%;
  max-height:375px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 14px 28px rgba(0,0,0,.07));
}

.mind-tech-body{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:62px 0 72px;
  background:#f7f8fa;
}
.mind-tech-body::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:
    linear-gradient(rgba(0,0,0,.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.024) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent);
  pointer-events:none;
}
.mind-tech-body::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg, rgba(247,248,250,.96) 0%, rgba(247,248,250,.92) 50%, rgba(247,248,250,.96) 100%),
    url("assets/img/strong.jpg") center 38% / cover no-repeat;
  opacity:1;
  pointer-events:none;
}
.mind-tech-body .container{
  position:relative;
  z-index:1;
}
.mind-tech-body .y-kicker{
  color:var(--red);
}
.mtb-head{
  max-width:760px;
  margin:0 0 24px;
}
.mtb-title{
  margin:10px 0 10px;
  max-width:none;
  white-space:normal;
  font-size:clamp(26px, 2.6vw, 36px);
  line-height:1.22;
  letter-spacing:-.025em;
  font-weight:900;
}
.mtb-lead{
  max-width:58ch;
  font-size:14.5px;
  line-height:1.78;
  font-weight:600;
  color:rgba(0,0,0,.68);
}
.mtb-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.mtb-card,
.mtb-card--soft,
.mtb-card--dark{
  display:block;
  min-height:0;
  padding:20px 20px 22px;
  border-radius:18px;
  clip-path:none;
  background:rgba(255,255,255,.94);
  color:#111;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 16px 42px rgba(0,0,0,.06);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.mtb-card::before,
.mtb-card--soft::before,
.mtb-card--dark::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  width:auto;
  height:4px;
  background:var(--red);
}
.mtb-card__num{
  position:relative;
  z-index:1;
  width:auto;
  height:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 8px 0 0;
  padding:0;
  border-radius:0;
  background:transparent;
  color:var(--red);
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.12em;
}
.mtb-card__label{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:6px 10px;
  border-radius:999px;
  background:#111318;
  color:#fff;
  border:0;
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.12em;
}
.mtb-card__title{
  position:relative;
  z-index:1;
  margin:16px 0 8px;
  font-size:clamp(22px, 1.9vw, 28px);
  line-height:1.14;
  letter-spacing:-.025em;
  font-weight:900;
}
.mtb-card__sub{
  position:relative;
  z-index:1;
  margin:0 0 12px;
  padding-left:10px;
  border-left:3px solid var(--red);
  font-size:13.5px;
  line-height:1.55;
  font-weight:800;
  color:rgba(0,0,0,.76);
}
.mtb-card__body{
  position:relative;
  z-index:1;
  margin:0;
  font-size:13px;
  line-height:1.82;
  font-weight:500;
  color:rgba(0,0,0,.68);
}
.mtb-card__bg,
.mtb-card--soft .mtb-card__bg,
.mtb-card--dark .mtb-card__bg{
  position:absolute;
  right:14px;
  bottom:4px;
  font-size:82px;
  line-height:1;
  font-weight:900;
  color:rgba(0,0,0,.045);
  pointer-events:none;
  z-index:0;
}

@media (max-width: 1100px){
  .kids-intro__panel{
    grid-template-columns:minmax(0, 1fr) minmax(300px, .82fr);
    gap:30px;
  }
  .kids-intro__title{
    font-size:clamp(32px, 4vw, 48px);
  }
  .mtb-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .mtb-card,
  .mtb-card--soft,
  .mtb-card--dark{
    padding:20px 18px 22px;
  }
}

@media (max-width: 900px){
  .kids-intro{
    padding:42px 0 36px;
  }
  .kids-intro__panel{
    grid-template-columns:1fr;
    gap:22px;
    width:min(720px, 100%);
  }
  .kids-intro__title{
    max-width:none;
  }
  .kids-intro__title > span:last-child{
    white-space:normal;
  }
  .kids-intro__visual{
    min-height:0;
    justify-content:center;
  }
  .kids-intro__octagon{
    max-width:390px;
  }
  .kids-intro__image{
    max-height:300px;
  }
  .mind-tech-body{
    padding:54px 0 64px;
  }
  .mtb-title{
    font-size:clamp(25px, 6.3vw, 32px);
  }
}

@media (max-width: 520px){
  .kids-intro__copy .kids-intro__chips,
  .kids-intro__chips{
    gap:8px;
    margin-bottom:18px;
  }
  .kids-intro__copy .kids-intro__chip,
  .kids-intro__chip{
    width:100%;
    justify-content:flex-start;
    padding:8px 12px;
    border-radius:12px;
    font-size:12px;
  }
  .kids-intro__title{
    font-size:clamp(28px, 9.2vw, 38px);
  }
  .kids-intro__lead{
    font-size:14px;
    line-height:1.86;
  }
  .mtb-card__title{
    font-size:22px;
  }
  .mtb-card__bg,
  .mtb-card--soft .mtb-card__bg,
  .mtb-card--dark .mtb-card__bg{
    font-size:70px;
  }
}

/* =========================================================
   V10 correction - requested balance only
   - restore FOR PARENTS title to previous smaller size
   - harmonize all parent tags in one color
========================================================= */
.kids-intro__copy .kids-intro__chip,
.kids-intro__chip,
.kids-intro__copy .kids-intro__chip--red,
.kids-intro__chip--red,
.kids-intro__copy .kids-intro__chip:nth-child(2){
  background:#111318 !important;
  color:#fff !important;
}

.kids-intro__title{
  margin:14px 0 0;
  font-size:clamp(28px, 2.65vw, 40px);
  line-height:1.14;
  letter-spacing:-.035em;
  max-width:12.5em;
}

@media (max-width:1100px){
  .kids-intro__title{
    font-size:clamp(28px, 3.2vw, 36px);
  }
}

@media (max-width:900px){
  .kids-intro__title{
    max-width:none;
    font-size:clamp(26px, 6.8vw, 34px);
  }
}

@media (max-width:520px){
  .kids-intro__title{
    font-size:clamp(24px, 8.6vw, 30px);
  }
}

/* =========================================================
   V11 correction - FOR PARENTS title smaller
   Requested: title still too big, reduce desktop/tablet/mobile scale.
========================================================= */
.kids-intro__title{
  margin:14px 0 0;
  font-size:clamp(24px, 2.15vw, 32px) !important;
  line-height:1.2;
  letter-spacing:-.025em;
  max-width:13em;
}

@media (max-width:1100px){
  .kids-intro__title{
    font-size:clamp(24px, 2.8vw, 30px) !important;
  }
}

@media (max-width:900px){
  .kids-intro__title{
    max-width:none;
    font-size:clamp(23px, 5.8vw, 30px) !important;
  }
}

@media (max-width:520px){
  .kids-intro__title{
    font-size:clamp(22px, 7.4vw, 28px) !important;
  }
}

/* =========================================================
   V9 hero catch copy two-line adjustment only
========================================================= */
.mv-copy{
  max-width:min(980px, calc(100% - 32px));
}
.mv-title{
  font-size:clamp(34px, 4.15vw, 62px);
  line-height:1.08;
}
.mv-title-line{
  white-space:nowrap;
}

@media (max-width: 820px){
  .mv-title{
    font-size:clamp(26px, 7.4vw, 44px);
  }
}

@media (max-width: 520px){
  .mv-title{
    font-size:clamp(21px, 6.6vw, 30px);
  }
}

/* =========================================================
   V12 smartphone-only adjustments - requested 2026-04-27
   - Parent wish tags fit text width on smartphone
   - More spacing between class intro blocks on smartphone
========================================================= */
@media (max-width: 520px){
  .kids-intro__copy .kids-intro__chips,
  .kids-intro__chips{
    align-items:flex-start;
  }

  .kids-intro__copy .kids-intro__chip,
  .kids-intro__chip{
    width:auto;
    max-width:calc(100% - 8px);
    display:inline-flex;
    flex:0 0 auto;
  }

  .story-list{
    gap:72px;
  }
}


/* =========================================================
   V13 requested updates - connected MTB, hidden Hacomono/rules,
   lighter parent wish tags, class/event hierarchy.
========================================================= */
.is-hidden-temporary{
  display:none !important;
}

/* External form links: keep CTA feeling clickable even without Hacomono section */
a[target="_blank"].btn-solid,
a[target="_blank"].mv-btn,
a[target="_blank"].belt-cta-rect,
a[target="_blank"].header-link,
a[target="_blank"].mobile-menu__link{
  cursor:pointer;
}

/* FOR PARENTS: larger tags without heavy black blocks + closer copy/image balance */
.kids-intro{
  padding:52px 0 50px;
}
.kids-intro__panel{
  width:min(1080px, 100%);
  grid-template-columns:minmax(0, .96fr) minmax(340px, .86fr);
  gap:24px;
}
.kids-intro__copy{
  max-width:575px;
}
.kids-intro__visual{
  justify-content:flex-start;
}
.kids-intro__octagon{
  max-width:470px;
}
.kids-intro__image{
  max-height:370px;
}
.kids-intro__copy .kids-intro__chips,
.kids-intro__chips{
  gap:10px;
  margin-bottom:24px;
}
.kids-intro__copy .kids-intro__chip,
.kids-intro__chip,
.kids-intro__copy .kids-intro__chip--red,
.kids-intro__chip--red,
.kids-intro__copy .kids-intro__chip:nth-child(2){
  padding:9px 14px 9px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.92) !important;
  color:#111318 !important;
  border:1px solid rgba(17,19,24,.14);
  box-shadow:0 10px 28px rgba(0,0,0,.055);
  font-size:clamp(13.5px, 1.12vw, 16px);
  line-height:1.35;
  font-weight:900;
}
.kids-intro__copy .kids-intro__chip::after,
.kids-intro__chip::after{
  content:"";
  width:7px;
  height:7px;
  order:-1;
  margin-right:8px;
  border-radius:999px;
  background:var(--red);
  box-shadow:0 0 0 4px rgba(207,32,46,.10);
}

/* Connected Mind / Technique / Body visual */
.mind-tech-body{
  padding:68px 0 82px;
  background:#f7f8fa;
}
.mtb-head{
  max-width:760px;
  margin:0 auto 34px;
  text-align:center;
}
.mtb-head .y-kicker{
  justify-content:center;
}
.mtb-title{
  margin:10px auto 12px;
  max-width:none;
  text-align:center;
  font-size:clamp(28px, 3vw, 42px);
  line-height:1.18;
}
.mtb-lead{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
  max-width:60ch;
}
.mtb-connect{
  position:relative;
  width:min(100%, 1040px);
  min-height:520px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  grid-template-rows:repeat(10, 52px);
}
.mtb-connect__lines{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  overflow:visible;
}
.mtb-line{
  fill:none;
  stroke:rgba(207,32,46,.34);
  stroke-width:5;
  stroke-linecap:round;
  stroke-dasharray:10 12;
}
.mtb-line--b{ stroke:rgba(17,19,24,.26); }
.mtb-line--c{ stroke:rgba(207,32,46,.26); }
.mtb-center-ring{
  fill:rgba(255,255,255,.78);
  stroke:rgba(17,19,24,.10);
  stroke-width:2;
}
.mtb-center{
  position:relative;
  z-index:2;
  grid-column:6 / 8;
  grid-row:5 / 7;
  align-self:center;
  justify-self:center;
  width:148px;
  height:148px;
  border-radius:999px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:#111318;
  color:#fff;
  box-shadow:0 24px 58px rgba(0,0,0,.18);
}
.mtb-center::before{
  content:"";
  position:absolute;
  inset:-10px;
  border:1px solid rgba(207,32,46,.32);
  border-radius:inherit;
}
.mtb-center__label{
  color:var(--red);
  font-size:10px;
  letter-spacing:.16em;
  font-weight:900;
}
.mtb-center__title{
  margin-top:8px;
  font-size:17px;
  line-height:1.25;
  font-weight:900;
}
.mtb-node{
  position:relative;
  z-index:1;
  width:min(280px, 100%);
  min-height:280px;
  padding:30px 24px 26px;
  border-radius:999px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(17,19,24,.09);
  box-shadow:0 22px 56px rgba(0,0,0,.075);
  overflow:hidden;
}
.mtb-node::before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:inherit;
  border:2px solid rgba(207,32,46,.14);
  pointer-events:none;
}
.mtb-node::after{
  content:"";
  position:absolute;
  width:120px;
  height:120px;
  border-radius:999px;
  right:-32px;
  bottom:-28px;
  background:rgba(207,32,46,.07);
  pointer-events:none;
}
.mtb-node--mind{
  grid-column:5 / 9;
  grid-row:1 / 5;
  justify-self:center;
}
.mtb-node--technique{
  grid-column:1 / 5;
  grid-row:6 / 10;
  justify-self:center;
}
.mtb-node--body{
  grid-column:9 / 13;
  grid-row:6 / 10;
  justify-self:center;
}
.mtb-node__icon{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  margin-bottom:10px;
  color:var(--red);
}
.mtb-node__icon svg{
  width:100%;
  height:100%;
  display:block;
}
.mtb-node__jp{
  position:absolute;
  right:22px;
  bottom:12px;
  font-size:86px;
  line-height:1;
  font-weight:900;
  color:rgba(0,0,0,.045);
  pointer-events:none;
}
.mtb-node__title{
  margin:0 0 10px;
  font-size:clamp(22px, 2vw, 28px);
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.02em;
}
.mtb-node__body{
  position:relative;
  z-index:1;
  margin:0;
  max-width:20ch;
  font-size:13.5px;
  line-height:1.75;
  font-weight:700;
  color:rgba(0,0,0,.68);
}

/* Class / Event hierarchy: category label becomes the main visual title */
.story-kicker{
  padding:8px 16px;
  font-size:clamp(18px, 2vw, 24px);
  line-height:1.1;
  font-weight:900;
  letter-spacing:.02em;
  border-radius:0;
}
.story-title{
  margin:14px 0 10px;
  font-size:clamp(18px, 1.65vw, 24px) !important;
  line-height:1.22;
  letter-spacing:-.015em;
  font-weight:850;
}
.events-title{
  font-size:clamp(20px, 2.3vw, 32px) !important;
  line-height:1.16;
  letter-spacing:-.02em;
}
.events-body{
  font-size:15px;
  line-height:1.8;
}

@media (max-width:1100px){
  .kids-intro__panel{
    grid-template-columns:minmax(0,1fr) minmax(300px,.78fr);
    gap:20px;
  }
  .mtb-connect{
    min-height:auto;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:18px;
  }
  .mtb-connect__lines,
  .mtb-center{
    display:none;
  }
  .mtb-node,
  .mtb-node--mind,
  .mtb-node--technique,
  .mtb-node--body{
    grid-column:auto;
    grid-row:auto;
    justify-self:stretch;
    width:100%;
    min-height:0;
    border-radius:24px;
    align-items:flex-start;
    text-align:left;
    padding:24px 24px 24px 92px;
  }
  .mtb-node__icon{
    position:absolute;
    left:24px;
    top:24px;
    width:44px;
    height:44px;
  }
  .mtb-node__body{
    max-width:none;
  }
  .mtb-node__jp{
    font-size:72px;
  }
}

@media (max-width:900px){
  .kids-intro__panel{
    grid-template-columns:1fr;
    gap:18px;
  }
  .kids-intro__visual{
    justify-content:center;
  }
  .kids-intro__octagon{
    max-width:390px;
  }
}

@media (max-width:520px){
  .kids-intro{
    padding:40px 0 34px;
  }
  .kids-intro__copy .kids-intro__chip,
  .kids-intro__chip,
  .kids-intro__copy .kids-intro__chip--red,
  .kids-intro__chip--red,
  .kids-intro__copy .kids-intro__chip:nth-child(2){
    width:auto;
    max-width:100%;
    padding:9px 12px 9px 14px;
    border-radius:14px;
    font-size:13.5px;
  }
  .mtb-node,
  .mtb-node--mind,
  .mtb-node--technique,
  .mtb-node--body{
    padding:22px 18px 22px 76px;
    border-radius:20px;
  }
  .mtb-node__icon{
    left:18px;
    top:22px;
    width:40px;
    height:40px;
  }
  .mtb-node__title{
    font-size:21px;
  }
  .mtb-node__body{
    font-size:13px;
    line-height:1.7;
  }
  .story-kicker{
    font-size:18px;
  }
  .story-title{
    font-size:20px !important;
  }
  .events-title{
    font-size:24px !important;
  }
}

/* =========================================================
   V14 correction - cleaner connected section + tighter parent layout
   - accurate shortened Japanese copy close to original meaning
   - remove heavy center patch
   - clearer icons: heart/spark, belt, active body
   - pull FOR PARENTS image closer to the text on desktop
========================================================= */

@media (min-width: 901px){
  .kids-intro__panel{
    width:min(980px, 100%);
    grid-template-columns:minmax(0, 52%) minmax(320px, 42%);
    gap:0;
  }
  .kids-intro__copy{
    max-width:545px;
  }
  .kids-intro__visual{
    justify-content:flex-start;
    margin-left:-34px;
  }
  .kids-intro__octagon{
    max-width:430px;
  }
  .kids-intro__image{
    max-height:350px;
  }
}

.mind-tech-body{
  padding:64px 0 78px;
  background:#f7f8fa;
}
.mind-tech-body::after{
  background:
    linear-gradient(90deg, rgba(247,248,250,.965) 0%, rgba(247,248,250,.90) 50%, rgba(247,248,250,.965) 100%),
    url("assets/img/strong.jpg") center 42% / cover no-repeat;
}
.mtb-head{
  max-width:860px;
  margin:0 auto 30px;
}
.mtb-title{
  font-size:clamp(28px, 2.85vw, 38px);
  letter-spacing:-.025em;
}
.mtb-lead{
  max-width:48em;
  font-size:14.5px;
  line-height:1.75;
  font-weight:700;
}
.mtb-connect{
  width:min(100%, 1010px);
  min-height:500px;
  grid-template-rows:repeat(10, 50px);
}
.mtb-connect__lines{
  z-index:0;
  opacity:.9;
}
.mtb-line{
  stroke-width:4;
  stroke-dasharray:8 12;
}
.mtb-line--a{ stroke:rgba(207,32,46,.24); }
.mtb-line--b{ stroke:rgba(17,19,24,.18); }
.mtb-line--c{ stroke:rgba(207,32,46,.22); }
.mtb-center,
.mtb-center-ring{
  display:none !important;
}
.mtb-node{
  width:min(286px, 100%);
  min-height:286px;
  padding:30px 28px 28px;
  background:rgba(255,255,255,.965);
  border:1px solid rgba(17,19,24,.07);
  box-shadow:0 18px 54px rgba(0,0,0,.065);
}
.mtb-node::before{
  inset:10px;
  border:2px solid rgba(207,32,46,.12);
}
.mtb-node::after{
  width:112px;
  height:112px;
  right:-34px;
  bottom:-34px;
  background:linear-gradient(135deg, rgba(207,32,46,.085), rgba(207,32,46,.025));
}
.mtb-node--mind{
  grid-column:5 / 9;
  grid-row:1 / 5;
}
.mtb-node--technique{
  grid-column:1 / 5;
  grid-row:6 / 10;
}
.mtb-node--body{
  grid-column:9 / 13;
  grid-row:6 / 10;
}
.mtb-node__icon{
  width:46px;
  height:46px;
  margin-bottom:12px;
}
.mtb-node__title{
  margin:0 0 9px;
  font-size:clamp(22px, 1.85vw, 27px);
}
.mtb-node__body{
  max-width:22ch;
  font-size:13.2px;
  line-height:1.72;
  font-weight:700;
  color:rgba(0,0,0,.70);
}
.mtb-node__jp{
  right:20px;
  bottom:12px;
  font-size:78px;
  color:rgba(207,32,46,.055);
}

@media (max-width:1100px){
  .mtb-connect{
    width:min(100%, 820px);
    min-height:auto;
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
  }
  .mtb-connect__lines{
    display:none;
  }
  .mtb-node,
  .mtb-node--mind,
  .mtb-node--technique,
  .mtb-node--body{
    width:100%;
    min-height:0;
    border-radius:22px;
    padding:24px 24px 24px 88px;
    align-items:flex-start;
    justify-content:center;
    text-align:left;
  }
  .mtb-node__icon{
    position:absolute;
    left:24px;
    top:24px;
    width:42px;
    height:42px;
    margin:0;
  }
  .mtb-node__body{
    max-width:none;
  }
}

@media (max-width:900px){
  .kids-intro__panel{
    gap:14px;
  }
  .kids-intro__visual{
    margin-left:0;
  }
  .mind-tech-body{
    padding:54px 0 64px;
  }
}

@media (max-width:520px){
  .mtb-node,
  .mtb-node--mind,
  .mtb-node--technique,
  .mtb-node--body{
    padding:22px 18px 22px 76px;
  }
  .mtb-node__icon{
    left:18px;
    top:22px;
    width:38px;
    height:38px;
  }
  .mtb-node__body{
    font-size:13px;
  }
}

/* =========================================================
   V15 correction - responsive connected MTB + final hierarchy
   - safer responsive layout for narrow desktop/tablet/mobile
   - clearer icons, no red kanji patch, text restored with summary
   - smaller class slide titles and event detail title
========================================================= */

@media (min-width: 901px){
  .kids-intro__panel{
    width:min(900px, 100%);
    grid-template-columns:minmax(0, 50%) minmax(300px, 42%);
    gap:0;
  }
  .kids-intro__visual{
    justify-content:flex-start;
    margin-left:-52px;
  }
  .kids-intro__octagon{
    max-width:410px;
  }
  .kids-intro__image{
    max-height:340px;
  }
}

.mind-tech-body{
  padding:66px 0 78px;
  overflow:hidden;
}
.mtb-head{
  margin:0 auto 34px;
}
.mtb-connect{
  position:relative;
  width:min(100%, 980px);
  min-height:480px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(12, minmax(0, 1fr));
  grid-template-rows:repeat(10, 48px);
  overflow:visible;
}
.mtb-connect__lines{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  pointer-events:none;
}
.mtb-line{
  stroke-width:3.5;
  stroke-dasharray:7 13;
  opacity:.8;
}
.mtb-node{
  position:relative;
  z-index:1;
  width:min(268px, 100%);
  min-height:268px;
  padding:28px 24px 26px;
  border-radius:999px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(17,19,24,.07);
  box-shadow:0 16px 48px rgba(0,0,0,.06);
  overflow:hidden;
}
.mtb-node::before{
  inset:9px;
  border:2px solid rgba(207,32,46,.115);
}
.mtb-node::after{
  display:none !important;
}
.mtb-node--mind{
  grid-column:5 / 9;
  grid-row:1 / 5;
  justify-self:center;
}
.mtb-node--technique{
  grid-column:1 / 5;
  grid-row:6 / 10;
  justify-self:center;
}
.mtb-node--body{
  grid-column:9 / 13;
  grid-row:6 / 10;
  justify-self:center;
}
.mtb-node__icon{
  width:44px;
  height:44px;
  margin:0 0 12px;
  color:var(--red);
}
.mtb-node__title{
  margin:0 0 8px;
  font-size:clamp(22px, 1.7vw, 26px);
  line-height:1.12;
}
.mtb-node__body{
  max-width:23ch;
  font-size:13px;
  line-height:1.66;
  font-weight:700;
  color:rgba(0,0,0,.68);
}
.mtb-node__jp{
  right:20px;
  bottom:12px;
  font-size:76px;
  color:rgba(0,0,0,.04) !important;
}
.mtb-summary{
  width:min(760px, 100%);
  margin:26px auto 0;
  padding:18px 22px;
  border-left:4px solid var(--red);
  background:rgba(255,255,255,.86);
  box-shadow:0 12px 34px rgba(0,0,0,.045);
  font-size:14px;
  line-height:1.9;
  font-weight:700;
  color:rgba(0,0,0,.72);
}

/* Switch before the layout can break in reduced browser windows */
@media (max-width:1280px){
  .mtb-connect{
    width:min(760px, 100%);
    min-height:0;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:16px;
  }
  .mtb-connect__lines{
    display:none !important;
  }
  .mtb-node,
  .mtb-node--mind,
  .mtb-node--technique,
  .mtb-node--body{
    grid-column:auto;
    grid-row:auto;
    width:100%;
    min-height:0;
    justify-self:stretch;
    border-radius:22px;
    align-items:flex-start;
    justify-content:center;
    text-align:left;
    padding:22px 24px 22px 88px;
  }
  .mtb-node__icon{
    position:absolute;
    left:24px;
    top:22px;
    width:42px;
    height:42px;
    margin:0;
  }
  .mtb-node__body{
    max-width:none;
  }
  .mtb-node__jp{
    font-size:70px;
  }
}

@media (max-width:900px){
  .kids-intro__panel{
    width:min(720px, 100%);
    gap:16px;
  }
  .kids-intro__visual{
    margin-left:0;
  }
  .mtb-summary{
    margin-top:18px;
  }
}

@media (max-width:520px){
  .mind-tech-body{
    padding:50px 0 62px;
  }
  .mtb-head{
    margin-bottom:24px;
  }
  .mtb-node,
  .mtb-node--mind,
  .mtb-node--technique,
  .mtb-node--body{
    padding:20px 17px 20px 72px;
    border-radius:18px;
  }
  .mtb-node__icon{
    left:18px;
    top:20px;
    width:36px;
    height:36px;
  }
  .mtb-node__title{
    font-size:21px;
  }
  .mtb-node__body{
    font-size:12.8px;
    line-height:1.7;
  }
  .mtb-node__jp{
    font-size:58px;
    right:12px;
    bottom:8px;
  }
  .mtb-summary{
    padding:15px 16px;
    font-size:13px;
    line-height:1.85;
  }
}

/* Final class/event hierarchy */
.kids-story .story-kicker{
  padding:8px 16px;
  font-size:clamp(18px, 1.85vw, 23px) !important;
  line-height:1.12;
  font-weight:900;
}
.kids-story .story-title{
  margin:13px 0 10px;
  font-size:clamp(16px, 1.35vw, 20px) !important;
  line-height:1.28;
  font-weight:850;
  letter-spacing:-.012em;
}
.kids-events .section-title{
  font-size:clamp(18px, 1.85vw, 23px) !important;
  line-height:1.15;
  font-weight:900;
  transform:none !important;
}
.kids-events .events-title{
  font-size:clamp(18px, 1.55vw, 22px) !important;
  line-height:1.25;
  font-weight:900;
  transform:none !important;
}
.kids-events .events-body{
  font-size:14px;
  line-height:1.78;
}
@media (max-width:520px){
  .kids-story .story-kicker,
  .kids-events .section-title{
    font-size:18px !important;
  }
  .kids-story .story-title,
  .kids-events .events-title{
    font-size:17px !important;
  }
}

/* =========================================================
   V16 requested adjustment only
   - add more breathing room between the 3 connected concepts and the summary paragraph.
========================================================= */
.mtb-summary{
  margin-top:46px !important;
}

@media (max-width:900px){
  .mtb-summary{
    margin-top:32px !important;
  }
}

@media (max-width:520px){
  .mtb-summary{
    margin-top:28px !important;
  }
}

/* =========================================================
   V10 kids page requested updates
   - MIND・TECHNIQUE・BODY replaced by premium zig-zag layout
   - Schedule table replaced by downloadable schedule image
   - Class carousel images visually rectangular; octagon class kept in HTML
========================================================= */

.mind-tech-body{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:78px 0 92px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.90) 48%, rgba(255,255,255,.78) 100%),
    url("assets/img/strong.jpg") center center / cover no-repeat;
}
.mind-tech-body::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(rgba(0,0,0,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.035) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom, transparent, #000 14%, #000 86%, transparent);
  pointer-events:none;
}
.mind-tech-body::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(48% 44% at 8% 8%, rgba(207,32,46,.16), rgba(255,255,255,0) 68%),
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.88));
  pointer-events:none;
}
.mtb-hero{
  position:relative;
  z-index:1;
  width:min(980px, 100%);
  margin:0 auto 44px;
  text-align:center;
}
.mtb-hero .y-kicker{
  color:var(--red);
  letter-spacing:.18em;
}
.mtb-title{
  margin:12px 0 24px;
  font-size:clamp(30px, 3.6vw, 48px);
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.035em;
  white-space:normal;
  max-width:none;
}
.mtb-parent-lines{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin:0 auto 26px;
}
.mtb-parent-lines p{
  margin:0;
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px 12px;
  background:rgba(0,0,0,.86);
  color:#fff;
  font-size:clamp(16px, 1.7vw, 22px);
  line-height:1.45;
  font-weight:900;
  letter-spacing:-.02em;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
}
.mtb-parent-lines p:nth-child(2){
  background:var(--red);
}
.mtb-main-copy{
  margin:0 auto;
  max-width:48ch;
  color:rgba(0,0,0,.82);
  font-size:17px;
  line-height:2;
  font-weight:700;
}
.mtb-main-copy strong{
  color:var(--red);
  font-size:1.12em;
  font-weight:900;
}
.mtb-zigzag{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:34px;
}
.mtb-feature{
  position:relative;
  display:grid;
  grid-template-columns:minmax(260px, 34%) minmax(0, 1fr);
  gap:34px;
  align-items:stretch;
  width:min(1040px, 100%);
  margin:0 auto;
  padding:26px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 24px 70px rgba(0,0,0,.09);
  overflow:hidden;
}
.mtb-feature::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:6px;
  height:100%;
  background:var(--red);
}
.mtb-feature--reverse{
  grid-template-columns:minmax(0, 1fr) minmax(260px, 34%);
}
.mtb-feature--reverse .mtb-feature__visual{
  order:2;
}
.mtb-feature--reverse .mtb-feature__content{
  order:1;
}
.mtb-feature__visual{
  position:relative;
  min-height:270px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(60% 60% at 50% 50%, rgba(207,32,46,.10), rgba(255,255,255,0) 72%),
    linear-gradient(180deg, #111 0%, #050505 100%);
  overflow:hidden;
}
.mtb-feature__visual::before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,255,255,.16);
  pointer-events:none;
}
.mtb-silhouette{
  position:relative;
  width:100%;
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mtb-kanji{
  position:absolute;
  right:8px;
  bottom:-28px;
  color:rgba(207,32,46,.86);
  font-size:clamp(132px, 15vw, 210px);
  line-height:1;
  font-weight:900;
  font-family:"Noto Sans JP", system-ui, sans-serif;
  pointer-events:none;
}
.mtb-silhouette::before,
.mtb-silhouette::after{
  content:"";
  position:absolute;
  background:#fff;
  opacity:.92;
  filter:drop-shadow(0 14px 22px rgba(0,0,0,.28));
}
.mtb-silhouette--kick::before{
  width:74px;
  height:154px;
  border-radius:42px 42px 16px 16px;
  transform:rotate(-8deg) translateX(-12px);
  clip-path:polygon(38% 0%, 66% 0%, 76% 18%, 70% 46%, 92% 100%, 54% 100%, 48% 58%, 28% 100%, 0% 100%, 22% 48%, 20% 18%);
}
.mtb-silhouette--kick::after{
  width:164px;
  height:36px;
  border-radius:999px;
  transform:rotate(-18deg) translate(42px, -46px);
  clip-path:polygon(0 38%, 68% 32%, 100% 0, 100% 64%, 70% 100%, 0 68%);
}
.mtb-silhouette--athlete::before{
  width:86px;
  height:168px;
  border-radius:46px 46px 18px 18px;
  transform:translateY(12px);
  clip-path:polygon(34% 0%, 66% 0%, 78% 20%, 70% 42%, 90% 100%, 58% 100%, 50% 62%, 40% 100%, 8% 100%, 30% 42%, 22% 20%);
}
.mtb-silhouette--athlete::after{
  width:218px;
  height:18px;
  border-radius:999px;
  transform:translateY(-62px);
  box-shadow:-76px 0 0 16px #fff, 76px 0 0 16px #fff;
}
.mtb-silhouette--mind::before{
  width:150px;
  height:78px;
  bottom:46px;
  border-radius:78px 78px 18px 18px;
  clip-path:polygon(16% 100%, 84% 100%, 78% 54%, 63% 30%, 58% 0%, 42% 0%, 37% 30%, 22% 54%);
}
.mtb-silhouette--mind::after{
  width:76px;
  height:76px;
  border-radius:999px;
  top:42px;
}
.mtb-feature__content{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:8px 6px;
}
.mtb-feature__label{
  align-self:flex-start;
  margin:0 0 12px;
  padding:6px 11px;
  background:#111;
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.12em;
}
.mtb-feature__content h3{
  margin:0;
  font-size:clamp(28px, 3.4vw, 46px);
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.035em;
}
.mtb-feature__content h3 span{
  color:var(--red);
  font-size:1.42em;
  line-height:0;
  margin-right:4px;
}
.mtb-feature__content h4{
  margin:14px 0 14px;
  padding-left:14px;
  border-left:4px solid var(--red);
  color:#111;
  font-size:clamp(17px, 1.8vw, 23px);
  line-height:1.45;
  font-weight:900;
  letter-spacing:-.02em;
}
.mtb-feature__content p:last-child{
  margin:0;
  color:rgba(0,0,0,.76);
  font-size:15px;
  line-height:1.95;
  font-weight:600;
}

.kids-schedule-wrap--image{
  width:min(1100px, 100%);
  margin:24px auto 0;
}
.schedule-image-card{
  margin:0;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 20px 64px rgba(0,0,0,.10);
  overflow:hidden;
}
.schedule-image-link{
  display:block;
  text-decoration:none;
}
.schedule-image{
  display:block;
  width:100%;
  height:auto;
}
.schedule-download-note{
  margin:0;
  padding:12px 14px;
  font-size:13px;
  line-height:1.7;
  text-align:center;
  background:#fff;
}
.schedule-download-wrap{
  display:flex;
  justify-content:center;
  margin-top:16px;
}

/* Keep .story-octo in the markup so octagons can be restored later, but show standard rectangles now. */
.story-octo{
  width:min(440px, 100%);
  aspect-ratio:4 / 3;
  clip-path:none;
  border-radius:18px;
  background:#eceff3;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 18px 44px rgba(0,0,0,.10);
}
.story-octo::after{
  inset:0;
  clip-path:none;
  border:0;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.08));
}
.story-octo img{
  border-radius:18px;
}

@media (max-width: 900px){
  .mind-tech-body{
    padding:58px 0 72px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.92)),
      url("assets/img/strong.jpg") center center / cover no-repeat;
  }
  .mtb-parent-lines{
    grid-template-columns:1fr;
    gap:10px;
  }
  .mtb-parent-lines p{
    min-height:0;
    padding:13px 12px;
    font-size:18px;
  }
  .mtb-main-copy{
    font-size:15px;
    line-height:1.9;
  }
  .mtb-zigzag{
    gap:22px;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns:1fr;
    gap:18px;
    padding:18px;
  }
  .mtb-feature--reverse .mtb-feature__visual,
  .mtb-feature--reverse .mtb-feature__content{
    order:initial;
  }
  .mtb-feature__visual{
    min-height:220px;
  }
  .mtb-silhouette{
    min-height:220px;
  }
  .mtb-feature__content{
    padding:0;
  }
  .mtb-feature__content p:last-child{
    font-size:14px;
    line-height:1.9;
  }
  .story-octo{
    width:min(520px, 100%);
    aspect-ratio:4 / 3;
  }
}

@media (max-width: 520px){
  .mtb-title{
    font-size:clamp(26px, 8vw, 34px);
  }
  .mtb-parent-lines p{
    font-size:16px;
  }
  .mtb-feature{
    padding:16px;
  }
  .mtb-feature__visual{
    min-height:190px;
  }
  .mtb-silhouette{
    min-height:190px;
  }
  .mtb-kanji{
    font-size:128px;
    bottom:-18px;
  }
  .mtb-feature__content h3{
    font-size:26px;
  }
  .mtb-feature__content h4{
    font-size:17px;
  }
  .schedule-download-note{
    font-size:12px;
  }
}

/* =========================================================
   V16 refinements - premium MTB zigzag + true rectangular class media
   Requested: less heavy/gross section, no square class images, no rounded corners.
========================================================= */

/* Mind / Technique / Body: calmer, more editorial, closer to the previous clean style */
.mind-tech-body{
  position:relative;
  isolation:isolate;
  padding:72px 0 86px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(248,249,251,.94) 100%),
    url("assets/img/strong.jpg") center center / cover no-repeat;
}
.mind-tech-body::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:
    linear-gradient(rgba(0,0,0,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.026) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
  pointer-events:none;
}
.mind-tech-body::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(42% 38% at 8% 8%, rgba(207,32,46,.10), rgba(255,255,255,0) 68%),
    radial-gradient(34% 34% at 92% 18%, rgba(0,0,0,.045), rgba(255,255,255,0) 70%);
  pointer-events:none;
}
.mtb-hero{
  width:min(920px, 100%);
  margin:0 auto 42px;
  text-align:center;
}
.mtb-hero .y-kicker{
  color:var(--red);
  font-size:12px;
  letter-spacing:.22em;
}
.mtb-title{
  margin:12px 0 20px;
  font-size:clamp(30px, 3.5vw, 46px);
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.04em;
}
.mtb-parent-lines{
  width:min(860px, 100%);
  margin:0 auto 24px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}
.mtb-parent-lines p{
  min-height:64px;
  margin:0;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(17,18,21,.92);
  color:#fff;
  box-shadow:none;
  border:1px solid rgba(255,255,255,.10);
  font-size:clamp(14px, 1.25vw, 17px);
  line-height:1.45;
  font-weight:900;
  letter-spacing:-.02em;
}
.mtb-parent-lines p:nth-child(2){
  background:var(--red);
}
.mtb-main-copy{
  margin:0 auto;
  max-width:42ch;
  color:rgba(0,0,0,.78);
  font-size:15px;
  line-height:1.95;
  font-weight:700;
}
.mtb-main-copy strong{
  color:var(--red);
  font-size:1.08em;
  font-weight:900;
}

.mtb-zigzag{
  width:min(980px, 100%);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.mtb-feature,
.mtb-feature--reverse{
  position:relative;
  width:100%;
  margin:0;
  display:grid;
  grid-template-columns:minmax(260px, 32%) minmax(0, 1fr);
  gap:30px;
  align-items:center;
  padding:24px 26px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(0,0,0,.075);
  box-shadow:0 14px 42px rgba(0,0,0,.055);
  overflow:hidden;
}
.mtb-feature::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  height:auto;
  background:var(--red);
}
.mtb-feature--reverse{
  grid-template-columns:minmax(0, 1fr) minmax(260px, 32%);
}
.mtb-feature--reverse .mtb-feature__visual{ order:2; }
.mtb-feature--reverse .mtb-feature__content{ order:1; }

.mtb-feature__visual{
  position:relative;
  min-height:0;
  aspect-ratio:16 / 10;
  display:block;
  overflow:hidden;
  background:
    linear-gradient(90deg, rgba(0,0,0,.68), rgba(0,0,0,.36)),
    url("assets/img/strong.jpg") center center / cover no-repeat;
  border:1px solid rgba(0,0,0,.12);
}
.mtb-feature--body .mtb-feature__visual{
  background:
    linear-gradient(90deg, rgba(0,0,0,.66), rgba(0,0,0,.34)),
    url("assets/img/strong.jpg") center 58% / cover no-repeat;
}
.mtb-feature--mind .mtb-feature__visual{
  background:
    linear-gradient(90deg, rgba(0,0,0,.66), rgba(0,0,0,.34)),
    url("assets/img/strong.jpg") center 42% / cover no-repeat;
}
.mtb-feature__visual::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(255,255,255,.20);
  pointer-events:none;
}
.mtb-feature__visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(207,32,46,.18), transparent 42%);
  pointer-events:none;
}
.mtb-silhouette,
.mtb-silhouette--kick,
.mtb-silhouette--athlete,
.mtb-silhouette--mind{
  position:absolute;
  inset:0;
  width:100%;
  min-height:0;
  display:block;
}
.mtb-silhouette::before,
.mtb-silhouette::after{
  display:none !important;
  content:none !important;
}
.mtb-kanji{
  position:absolute;
  right:16px;
  bottom:-18px;
  color:rgba(255,255,255,.16);
  font-size:clamp(88px, 10vw, 140px);
  line-height:1;
  font-weight:900;
  font-family:"Noto Sans JP", system-ui, sans-serif;
  pointer-events:none;
}
.mtb-feature__content{
  position:relative;
  z-index:1;
  display:block;
  padding:0;
}
.mtb-feature__label{
  display:inline-flex;
  align-items:center;
  margin:0 0 12px;
  padding:5px 9px;
  background:#111;
  color:#fff;
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.14em;
}
.mtb-feature__content h3{
  margin:0 0 10px;
  font-size:clamp(25px, 2.65vw, 36px);
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.035em;
}
.mtb-feature__content h3 span{
  color:var(--red);
  font-size:1.15em;
  line-height:1;
  margin-right:6px;
}
.mtb-feature__content h4{
  margin:0 0 12px;
  padding-left:12px;
  border-left:3px solid var(--red);
  color:#111;
  font-size:clamp(16px, 1.45vw, 20px);
  line-height:1.48;
  font-weight:900;
  letter-spacing:-.02em;
}
.mtb-feature__content p:last-child{
  margin:0;
  color:rgba(0,0,0,.72);
  font-size:14px;
  line-height:1.88;
  font-weight:600;
}

/* Classes: keep .story-octo in HTML, but display as a clean wide rectangle, no rounded corners. */
.story-card,
.story-card--reverse{
  grid-template-columns:minmax(0, 440px) minmax(380px, 540px);
  gap:44px;
}
.story-card--reverse{
  grid-template-columns:minmax(380px, 540px) minmax(0, 440px);
}
.story-media{
  width:100%;
}
.story-octo{
  width:min(540px, 100%);
  aspect-ratio:16 / 9;
  height:auto;
  clip-path:none !important;
  border-radius:0 !important;
  overflow:hidden;
  background:#eceff3;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 18px 44px rgba(0,0,0,.10);
}
.story-octo::after{
  display:none !important;
  content:none !important;
}
.story-octo img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:0 !important;
}

@media (max-width: 900px){
  .mind-tech-body{
    padding:58px 0 70px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.97), rgba(248,249,251,.95)),
      url("assets/img/strong.jpg") center center / cover no-repeat;
  }
  .mtb-parent-lines{
    grid-template-columns:1fr;
    width:min(520px, 100%);
  }
  .mtb-parent-lines p{
    min-height:0;
    padding:12px 14px;
    font-size:15px;
  }
  .mtb-zigzag{
    gap:18px;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns:1fr;
    gap:16px;
    padding:18px;
  }
  .mtb-feature--reverse .mtb-feature__visual,
  .mtb-feature--reverse .mtb-feature__content{
    order:initial;
  }
  .mtb-feature__visual{
    aspect-ratio:16 / 9;
  }
  .mtb-feature__content p:last-child{
    font-size:13.5px;
    line-height:1.85;
  }
  .story-card,
  .story-card--reverse{
    grid-template-columns:1fr;
    gap:18px;
  }
  .story-card--reverse .story-copy,
  .story-card--reverse .story-media{
    order:initial;
  }
  .story-octo{
    width:100%;
    aspect-ratio:16 / 9;
  }
}

@media (max-width: 520px){
  .mtb-title{
    font-size:clamp(26px, 8.2vw, 34px);
  }
  .mtb-main-copy{
    font-size:14px;
  }
  .mtb-feature{
    padding:16px;
  }
  .mtb-feature__content h3{
    font-size:24px;
  }
  .mtb-feature__content h4{
    font-size:16px;
  }
  .mtb-feature__content p:last-child{
    font-size:13px;
  }
}

/* =========================================================
   V3 refinements - 2026-05-18
   - MTB: remove repeated parenthetical wording, make kanji the hero accent
   - MTB: lighter, cleaner editorial cards with less visual weight
   - Classes: wider class spacing and mobile controls placed under images
========================================================= */
.mtb-zigzag{
  width:min(940px, 100%);
  gap:30px;
}
.mtb-feature,
.mtb-feature--reverse{
  grid-template-columns:minmax(230px, 29%) minmax(0, 1fr);
  gap:36px;
  padding:22px 28px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 12px 34px rgba(0,0,0,.045);
}
.mtb-feature--reverse{
  grid-template-columns:minmax(0, 1fr) minmax(230px, 29%);
}
.mtb-feature::before{
  width:3px;
  background:rgba(207,32,46,.86);
}
.mtb-feature__visual{
  aspect-ratio:16 / 9;
  border:0;
  box-shadow:none;
  opacity:.92;
  background:
    linear-gradient(90deg, rgba(0,0,0,.52), rgba(0,0,0,.18)),
    url("assets/img/strong.jpg") center center / cover no-repeat;
}
.mtb-feature--body .mtb-feature__visual{
  background:
    linear-gradient(90deg, rgba(0,0,0,.48), rgba(0,0,0,.16)),
    url("assets/img/strong.jpg") center 58% / cover no-repeat;
}
.mtb-feature--mind .mtb-feature__visual{
  background:
    linear-gradient(90deg, rgba(0,0,0,.48), rgba(0,0,0,.16)),
    url("assets/img/strong.jpg") center 42% / cover no-repeat;
}
.mtb-feature__visual::before{
  inset:10px;
  border-color:rgba(255,255,255,.16);
}
.mtb-feature__visual::after{
  background:linear-gradient(135deg, rgba(207,32,46,.12), transparent 46%);
}
.mtb-kanji{
  right:14px;
  bottom:-14px;
  color:rgba(255,255,255,.14);
  font-size:clamp(72px, 7.5vw, 112px);
}
.mtb-feature__label{
  margin:0 0 8px;
  padding:5px 10px;
  font-size:10px;
  letter-spacing:.16em;
}
.mtb-feature__content h3{
  margin:0 0 4px;
  font-size:clamp(42px, 5vw, 66px);
  line-height:.92;
  letter-spacing:-.06em;
  font-weight:900;
}
.mtb-feature__content h3 span{
  color:var(--red);
  font-size:1em;
  margin-right:0;
  line-height:1;
}
.mtb-feature__content h4{
  margin:0 0 12px;
  padding-left:10px;
  border-left:3px solid var(--red);
  font-size:clamp(15px, 1.28vw, 18px);
  line-height:1.55;
  letter-spacing:-.01em;
}
.mtb-feature__content p:last-child{
  font-size:13.5px;
  line-height:1.82;
  font-weight:600;
  color:rgba(0,0,0,.70);
}

.classes-story{
  padding-bottom:96px;
}
.story-list{
  gap:86px;
}
.story-card,
.story-card--reverse{
  gap:52px;
}
.story-octo{
  width:min(560px, 100%);
  aspect-ratio:16 / 9;
  border-radius:0 !important;
  box-shadow:0 18px 38px rgba(0,0,0,.075);
}

@media (max-width: 900px){
  .mtb-zigzag{
    width:min(620px, 100%);
    gap:24px;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns:1fr;
    gap:14px;
    padding:18px;
  }
  .mtb-feature--reverse .mtb-feature__visual,
  .mtb-feature--reverse .mtb-feature__content{
    order:initial;
  }
  .mtb-feature__content h3{
    font-size:clamp(40px, 13vw, 58px);
  }
  .mtb-feature__content h4{
    font-size:16px;
  }

  .kids-story{
    padding-top:64px;
    padding-bottom:84px;
  }
  .story-list{
    gap:72px;
  }
  .story-card,
  .story-card--reverse{
    grid-template-columns:1fr;
    gap:16px;
  }
  .story-card .story-copy,
  .story-card--reverse .story-copy{
    display:contents;
  }
  .story-card .story-media,
  .story-card--reverse .story-media{
    order:1 !important;
    justify-content:center !important;
    width:100%;
    margin:0;
  }
  .story-card .story-controls,
  .story-card--reverse .story-controls{
    order:2 !important;
    margin:14px 0 0;
    justify-content:center;
  }
  .story-card .story-kicker,
  .story-card--reverse .story-kicker{
    order:3 !important;
    justify-self:start;
    margin-top:10px;
  }
  .story-card .story-title,
  .story-card--reverse .story-title{
    order:4 !important;
    margin-top:0;
  }
  .story-card .story-body,
  .story-card--reverse .story-body{
    order:5 !important;
    max-width:none;
  }
  .story-octo{
    width:100%;
    aspect-ratio:16 / 9;
  }
}

@media (max-width: 520px){
  .mtb-feature__label{
    font-size:9px;
    padding:5px 8px;
  }
  .mtb-feature__content h3{
    font-size:clamp(42px, 16vw, 56px);
  }
  .mtb-feature__content p:last-child{
    font-size:13px;
    line-height:1.78;
  }
  .story-list{
    gap:64px;
  }
  .story-controls{
    gap:18px;
  }
}


/* =========================================================
   V4 refinements - 2026-05-18
   - smaller MTB title for better harmony
   - cleaner line breaks in the intro copy
   - replace feature photos with silhouette PNGs
   - more even paragraph widths across Technique / Body / Mind
========================================================= */
.mtb-hero{
  width:min(860px, 100%);
  margin:0 auto 38px;
}
.mtb-title{
  margin:12px 0 18px;
  font-size:clamp(24px, 2.35vw, 32px) !important;
  line-height:1.24;
  letter-spacing:-.03em;
}
.mtb-main-copy{
  max-width:46ch;
  font-size:14.5px;
  line-height:1.9;
  text-wrap:pretty;
}
.mtb-main-copy span{
  display:inline;
}
.mtb-zigzag{
  width:min(960px, 100%);
  gap:34px;
}
.mtb-feature,
.mtb-feature--reverse{
  grid-template-columns:minmax(250px, 30%) minmax(0, 1fr);
  gap:40px;
  align-items:center;
}
.mtb-feature--reverse{
  grid-template-columns:minmax(0, 1fr) minmax(250px, 30%);
}
.mtb-feature__visual{
  aspect-ratio:16 / 10;
  background:linear-gradient(180deg, rgba(245,247,250,.98), rgba(234,237,242,.96));
  border:1px solid rgba(0,0,0,.08);
  opacity:1;
}
.mtb-feature--body .mtb-feature__visual,
.mtb-feature--mind .mtb-feature__visual{
  background:linear-gradient(180deg, rgba(245,247,250,.98), rgba(234,237,242,.96));
}
.mtb-feature__visual::before{
  inset:12px;
  border-color:rgba(0,0,0,.06);
}
.mtb-feature__visual::after{
  background:linear-gradient(135deg, rgba(207,32,46,.06), transparent 48%);
}
.mtb-figure{
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:88%;
  height:88%;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.08));
}
.mtb-kanji{
  right:14px;
  bottom:-10px;
  color:rgba(17,18,21,.08);
  font-size:clamp(74px, 7.3vw, 108px);
}
.mtb-feature__content{
  max-width:37ch;
  justify-self:start;
}
.mtb-feature__label{
  margin:0 0 10px;
}
.mtb-feature__content h3{
  margin:0 0 8px;
  font-size:clamp(40px, 4.4vw, 60px);
  line-height:.94;
}
.mtb-feature__content h4{
  max-width:24ch;
  margin:0 0 14px;
  font-size:clamp(15px, 1.2vw, 18px);
  text-wrap:balance;
}
.mtb-feature__content p:last-child{
  max-width:37ch;
  margin:0;
  font-size:13.5px;
  line-height:1.9;
  text-wrap:pretty;
}

@media (max-width: 900px){
  .mtb-hero{
    width:min(620px, 100%);
  }
  .mtb-title{
    font-size:clamp(22px, 5.8vw, 28px) !important;
  }
  .mtb-main-copy{
    max-width:34ch;
    font-size:14px;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns:1fr;
    gap:16px;
    padding:18px;
  }
  .mtb-feature--reverse{
    grid-template-columns:1fr;
  }
  .mtb-feature__content,
  .mtb-feature__content p:last-child,
  .mtb-feature__content h4{
    max-width:none;
  }
  .mtb-feature__visual{
    aspect-ratio:16 / 9;
  }
}

@media (max-width: 520px){
  .mtb-title{
    font-size:clamp(21px, 7.2vw, 25px) !important;
  }
  .mtb-main-copy{
    max-width:30ch;
    line-height:1.82;
  }
  .mtb-feature__content h3{
    font-size:clamp(38px, 15vw, 52px);
  }
}


/* =========================================================
   V5 cleanup - transparent silhouettes + balanced MTB layout
========================================================= */
.mtb-zigzag{
  width:min(1040px, 100%);
  gap:34px;
}
.mtb-feature,
.mtb-feature--reverse{
  grid-template-columns:minmax(270px, 32%) minmax(0, 1fr);
  gap:34px;
  align-items:center;
}
.mtb-feature--reverse{
  grid-template-columns:minmax(0, 1fr) minmax(270px, 32%);
}
.mtb-feature__visual{
  aspect-ratio:16 / 10;
  min-height:220px;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  opacity:1;
  overflow:visible;
}
.mtb-feature__visual::before,
.mtb-feature__visual::after{
  display:none !important;
  content:none !important;
}
.mtb-figure{
  position:absolute;
  inset:0;
  margin:auto;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  filter:none;
}
.mtb-kanji{
  right:4px;
  bottom:0;
  color:rgba(17,18,21,.07);
  font-size:clamp(82px, 8.2vw, 122px);
  z-index:0;
}
.mtb-feature__content{
  max-width:none;
  width:100%;
}
.mtb-feature__content h4{
  max-width:34ch;
  margin:0 0 14px;
}
.mtb-feature__content p:last-child{
  max-width:58ch;
  width:100%;
  font-size:14px;
  line-height:1.95;
}

@media (min-width: 901px){
  .mtb-feature--reverse .mtb-feature__content{
    justify-self:start;
  }
}

@media (max-width: 900px){
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns:1fr;
    gap:16px;
  }
  .mtb-feature__visual{
    min-height:180px;
    aspect-ratio:16 / 9;
  }
  .mtb-feature__content h4,
  .mtb-feature__content p:last-child{
    max-width:none;
  }
}


/* =========================================================
   V6 cleanup - better MTB placement and balance only
========================================================= */
.mtb-hero{
  width:min(940px, 100%);
  margin:0 auto 46px;
}
.mtb-title{
  margin:10px 0 20px;
  font-size:clamp(22px, 2.05vw, 29px) !important;
  line-height:1.28;
  letter-spacing:-.025em;
}
.mtb-main-copy{
  max-width:44ch;
  font-size:15px;
  line-height:1.9;
  text-align:center;
}
.mtb-main-copy span{
  display:block;
}
.mtb-zigzag{
  width:min(1080px, 100%);
  gap:38px;
}
.mtb-feature,
.mtb-feature--reverse{
  grid-template-columns:minmax(280px, 31.5%) minmax(0, 1fr);
  gap:42px;
  align-items:center;
  padding:34px 40px;
}
.mtb-feature--reverse{
  grid-template-columns:minmax(0, 1fr) minmax(280px, 31.5%);
}
.mtb-feature__visual{
  min-height:260px;
  height:100%;
  aspect-ratio:auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mtb-figure{
  position:relative;
  inset:auto;
  width:min(90%, 340px);
  height:auto;
  max-height:224px;
  margin:0 auto;
  object-fit:contain;
  object-position:center center;
}
.mtb-feature--technique .mtb-figure{
  width:min(96%, 360px);
  max-height:236px;
  transform:translateX(10px);
}
.mtb-feature--body .mtb-figure{
  width:min(92%, 350px);
  max-height:232px;
  transform:translateX(-6px);
}
.mtb-feature--mind .mtb-figure{
  width:min(78%, 285px);
  max-height:214px;
  transform:translateX(16px);
}
.mtb-kanji{
  right:16px;
  bottom:4px;
  color:rgba(17,18,21,.07);
  font-size:clamp(88px, 7.2vw, 116px);
}
.mtb-feature__content{
  width:100%;
  max-width:620px;
  justify-self:start;
  padding:4px 10px 4px 0;
}
.mtb-feature--reverse .mtb-feature__content{
  padding:4px 0 4px 10px;
}
.mtb-feature__label{
  margin:0 0 14px;
}
.mtb-feature__content h3{
  margin:0 0 8px;
  font-size:clamp(42px, 4.5vw, 58px);
  line-height:.94;
}
.mtb-feature__content h4{
  max-width:28ch;
  margin:0 0 16px;
  font-size:clamp(18px, 1.45vw, 22px);
  line-height:1.5;
}
.mtb-feature__content p:last-child{
  max-width:620px;
  font-size:15px;
  line-height:2;
}

@media (max-width: 900px){
  .mtb-hero{
    width:min(660px, 100%);
    margin:0 auto 38px;
  }
  .mtb-title{
    font-size:clamp(22px, 5.8vw, 27px) !important;
  }
  .mtb-main-copy{
    max-width:32ch;
    font-size:14px;
    line-height:1.85;
  }
  .mtb-zigzag{
    width:100%;
    gap:24px;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns:1fr;
    gap:18px;
    padding:22px 20px;
  }
  .mtb-feature--reverse{
    grid-template-columns:1fr;
  }
  .mtb-feature__visual{
    min-height:180px;
    aspect-ratio:16 / 9;
  }
  .mtb-figure,
  .mtb-feature--technique .mtb-figure,
  .mtb-feature--body .mtb-figure,
  .mtb-feature--mind .mtb-figure{
    width:min(82%, 300px);
    max-height:180px;
    transform:none;
  }
  .mtb-feature__content,
  .mtb-feature--reverse .mtb-feature__content{
    max-width:none;
    padding:0;
  }
  .mtb-feature__content h4,
  .mtb-feature__content p:last-child{
    max-width:none;
  }
}

@media (max-width: 520px){
  .mtb-title{
    font-size:clamp(20px, 7vw, 24px) !important;
  }
  .mtb-parent-lines{
    gap:8px;
  }
  .mtb-main-copy{
    max-width:30ch;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    padding:18px 16px;
  }
  .mtb-feature__content h3{
    font-size:clamp(40px, 14vw, 50px);
  }
  .mtb-feature__content h4{
    font-size:17px;
  }
  .mtb-feature__content p:last-child{
    font-size:14px;
    line-height:1.9;
  }
}


/* =========================================================
   V11 requested update - FOR PARENTS parent blocks
   - Move the black / red / black parent wish blocks to FOR PARENTS
   - Remove duplicate parent wish blocks from MIND・TECHNIQUE・BODY in HTML
   - Keep the rest of the layout unchanged
========================================================= */
.kids-intro__parent-blocks{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin:0 0 28px;
}

.kids-intro__parent-block{
  margin:0;
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px 12px;
  background:rgba(0,0,0,.86);
  color:#fff;
  text-align:center;
  font-size:clamp(16px, 1.7vw, 22px);
  line-height:1.45;
  font-weight:900;
  letter-spacing:-.02em;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
}

.kids-intro__parent-block--red{
  background:var(--red);
}

@media (max-width: 900px){
  .kids-intro__parent-blocks{
    grid-template-columns:1fr;
    gap:10px;
    margin-bottom:22px;
  }

  .kids-intro__parent-block{
    min-height:66px;
    font-size:clamp(17px, 5vw, 22px);
  }
}

/* =========================================================
   V12 correction - FOR PARENTS blocks exactly like original MTB blocks
   - Blocks are centered across the intro section, not squeezed in left column
   - Same width, grid, height, spacing, typography and black/red/black treatment
========================================================= */
.kids-intro__inner{
  display:block;
}

.kids-intro__parent-blocks{
  width:min(860px, 100%);
  margin:0 auto 34px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  align-items:stretch;
}

.kids-intro__parent-block{
  min-height:64px;
  margin:0;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(17,18,21,.92);
  color:#fff;
  box-shadow:none;
  border:1px solid rgba(255,255,255,.10);
  text-align:center;
  font-size:clamp(14px, 1.25vw, 17px);
  line-height:1.45;
  font-weight:900;
  letter-spacing:-.02em;
}

.kids-intro__parent-block--red{
  background:var(--red);
}

@media (max-width: 900px){
  .kids-intro__parent-blocks{
    width:100%;
    margin:0 auto 26px;
    grid-template-columns:1fr;
    gap:10px;
  }

  .kids-intro__parent-block{
    min-height:64px;
    font-size:clamp(16px, 4.8vw, 20px);
  }
}


/* ==============================
   KIDS LP update — illustration / arrows / schedule SP
   ============================== */
.kids-intro{
  padding-top: 52px;
}

.kids-intro__hero{
  width: 100%;
  margin: 0 auto;
}

.kids-intro__hero-stage{
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 8px 0 10px;
}

.kids-intro__hero-stage::before{
  content: "";
  position: absolute;
  inset: 12% 8% 8%;
  border-radius: 40px;
  background:
    radial-gradient(circle at 50% 30%, rgba(255,255,255,.88) 0%, rgba(255,255,255,.42) 48%, rgba(255,255,255,0) 78%);
  pointer-events: none;
  z-index: 0;
}

.kids-intro__hero-stage::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: min(92%, 980px);
  height: 26px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(0,0,0,.08) 0%, rgba(0,0,0,0) 72%);
  filter: blur(14px);
  pointer-events: none;
  z-index: 0;
}

.kids-intro__hero-illustration{
  position: relative;
  z-index: 1;
  display: block;
  width: min(92%, 1000px);
  height: auto;
  margin: 0 auto;
}

.kids-intro__panel{
  margin-top: 18px;
}

.story-controls{
  gap: 16px;
}

.story-arrow{
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 2px solid #30343d;
  background: transparent;
  color: #30343d;
  box-shadow: none;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}

.story-arrow:hover,
.story-arrow:focus-visible{
  background: var(--red);
  border-color: var(--red);
  color: #fff;
  transform: translateY(-1px);
}

.events-controls .story-arrow{
  border-color: rgba(255,255,255,.9);
  color: #fff;
  background: rgba(255,255,255,.06);
}

.events-controls .story-arrow:hover,
.events-controls .story-arrow:focus-visible{
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}

.schedule-image-link picture{
  display: block;
}

.schedule-image-link,
.schedule-image-link:hover{
  text-decoration: none;
}

@media (max-width: 991px){
  .kids-intro{
    padding-top: 44px;
  }

  .kids-intro__hero-stage{
    padding-top: 0;
  }

  .kids-intro__hero-stage::before{
    inset: 14% 2% 8%;
    border-radius: 28px;
  }
}

@media (max-width: 767px){
  .kids-intro__hero-stage{
    padding: 0 0 2px;
  }

  .kids-intro__hero-stage::before{
    inset: 10% 0 0;
    border-radius: 22px;
  }

  .kids-intro__hero-stage::after{
    width: 92%;
    height: 18px;
    filter: blur(10px);
  }

  .kids-intro__hero-illustration{
    width: min(92%, 680px);
  }

  .kids-intro__panel{
    margin-top: 10px;
  }

  .story-controls{
    gap: 14px;
  }

  .story-arrow{
    width: 46px;
    height: 46px;
    font-size: 20px;
  }
}


/* =========================================================
   KOMAKI KIDS FINAL PATCH
========================================================= */
.events-frame{
  width:min(100%, 500px) !important;
  aspect-ratio:1 / 1 !important;
  clip-path:none !important;
  border-radius:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  box-shadow:0 28px 80px rgba(0,0,0,.28);
}
.events-frame::after{ display:none !important; content:none !important; }
.events-frame img{ width:100%; height:100%; object-fit:cover; border-radius:0 !important; }

.coaches{
  background:#f4f5f7;
  color:#0b0b0c;
  padding:72px 16px;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.coaches-inner{ max-width:1100px; margin:0 auto; }
.coach-carousel{ position:relative; margin-top:24px; }
.coach-viewport{ overflow:hidden; width:100%; touch-action:pan-y; }
.coach-track{ display:flex; gap:16px; will-change:transform; transition:transform .28s ease; }
.coach-card{
  flex:0 0 calc((100% - 32px) / 3);
  background:rgba(255,255,255,.92);
  border:1px solid rgba(0,0,0,.10);
  box-shadow:0 18px 60px rgba(0,0,0,.10);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.coach-card.is-hidden{ display:none; }
.coach-photo{ aspect-ratio:4 / 5; background-size:cover; background-position:center; background-color:#e9eaee; }
.coach-info{ padding:16px 14px; display:flex; flex-direction:column; gap:8px; min-height:86px; }
.coach-name{ font-weight:900; letter-spacing:.08em; font-size:16px; }
.coach-role{ font-weight:800; color:rgba(0,0,0,.68); letter-spacing:.06em; text-transform:uppercase; font-size:12px; min-height:16px; }
.coach-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.95);
  color:#111;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 18px 60px rgba(0,0,0,.14);
  transition:transform .12s ease, opacity .12s ease;
  z-index:3;
}
.coach-arrow.left{ left:-10px; }
.coach-arrow.right{ right:-10px; }
.coach-arrow:hover{ transform:translateY(-50%) scale(1.02); }
.coach-arrow:focus-visible{ outline:3px solid rgba(207,32,46,.45); outline-offset:3px; }
.coach-arrow span{ font-size:28px; font-weight:900; line-height:1; }
@media (max-width:768px){
  .coaches{ padding:62px 14px; }
  .coach-card{ flex:0 0 calc((100% - 16px) / 2); }
  .coach-photo{ aspect-ratio:4 / 5; background-size:contain; background-repeat:no-repeat; background-position:center; background-color:#eef0f4; }
  .coach-arrow.left{ left:-6px; }
  .coach-arrow.right{ right:-6px; }
}
@media (max-width:520px){ .events-frame{ width:min(340px, 86vw) !important; } }


/* Class carousel fix: keep reverse card text column stable when slide text is shorter */
.story-card .story-copy,
.story-card--reverse .story-copy{
  width:100%;
}

/* =========================================================
   V5 UX PATCH - intro balance + class readability
   - Remove kids photo from FOR PARENTS block in HTML.
   - Desktop: illustration left, text right.
   - Mobile: illustration, then text.
   - Class carousel: cleaner separation and steadier slide height.
   - Events: slightly more air between text and image.
========================================================= */
.kids-intro{
  padding:clamp(44px, 6vw, 72px) 0 clamp(42px, 5.2vw, 64px) !important;
}
.kids-intro__inner{
  display:grid !important;
  grid-template-columns:minmax(0, .94fr) minmax(0, 1.06fr) !important;
  align-items:center !important;
  gap:clamp(30px, 5vw, 72px) !important;
  width:min(1120px, 100%) !important;
}
.kids-intro__hero{
  width:100% !important;
  margin:0 !important;
}
.kids-intro__hero-stage{
  padding:0 !important;
}
.kids-intro__hero-stage::before{
  inset:10% 2% 4% !important;
  border-radius:34px !important;
}
.kids-intro__hero-stage::after{
  width:82% !important;
  height:22px !important;
}
.kids-intro__hero-illustration{
  width:min(100%, 520px) !important;
}
.kids-intro__panel{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.kids-intro__copy{
  max-width:560px !important;
  padding:0 !important;
}
.kids-intro__lead{
  max-width:48ch !important;
}
.kids-intro__visual{
  display:none !important;
}

.classes-story .story-list{
  gap:0 !important;
}
.classes-story .story-card,
.classes-story .story-card--reverse{
  padding:0 0 60px !important;
  border-top:0 !important;
}
.classes-story .story-card + .story-card,
.classes-story .story-card--reverse + .story-card,
.classes-story .story-card + .story-card--reverse,
.classes-story .story-card--reverse + .story-card--reverse{
  padding-top:60px !important;
  border-top:1px solid rgba(0,0,0,.12) !important;
}
.classes-story .story-copy{
  min-height:230px !important;
}
.classes-story .story-body{
  min-height:4.8em !important;
}
.classes-story .story-controls{
  margin-top:24px !important;
}

.kids-events .events-panel{
  gap:clamp(30px, 5vw, 64px) !important;
}
.kids-events .events-media{
  padding-top:8px !important;
}

@media (max-width: 900px){
  .kids-intro{
    padding:42px 0 44px !important;
  }
  .kids-intro__inner{
    grid-template-columns:1fr !important;
    gap:22px !important;
    width:min(720px, 100%) !important;
  }
  .kids-intro__hero-illustration{
    width:min(92%, 560px) !important;
  }
  .kids-intro__copy{
    max-width:620px !important;
    margin:0 auto !important;
  }
  .kids-intro__lead{
    max-width:none !important;
  }

  .classes-story .story-card,
  .classes-story .story-card--reverse{
    padding-bottom:54px !important;
  }
  .classes-story .story-card + .story-card,
  .classes-story .story-card--reverse + .story-card,
  .classes-story .story-card + .story-card--reverse,
  .classes-story .story-card--reverse + .story-card--reverse{
    padding-top:54px !important;
  }
  .classes-story .story-copy{
    min-height:0 !important;
  }
  .classes-story .story-body{
    min-height:6.2em !important;
  }
  .kids-events .events-panel{
    gap:34px !important;
  }
  .kids-events .events-media{
    padding-top:0 !important;
  }
}

@media (max-width: 520px){
  .kids-intro{
    padding:34px 0 38px !important;
  }
  .kids-intro__inner{
    gap:18px !important;
  }
  .kids-intro__hero-stage::before{
    inset:8% 0 2% !important;
    border-radius:24px !important;
  }
  .kids-intro__hero-illustration{
    width:min(94%, 430px) !important;
  }
  .classes-story .story-card,
  .classes-story .story-card--reverse{
    padding-bottom:48px !important;
  }
  .classes-story .story-card + .story-card,
  .classes-story .story-card--reverse + .story-card,
  .classes-story .story-card + .story-card--reverse,
  .classes-story .story-card--reverse + .story-card--reverse{
    padding-top:48px !important;
  }
  .classes-story .story-body{
    min-height:7em !important;
  }
}


/* =========================================================
   V6 HOTFIX - intro mobile margins + intro line breaks
   - Restore safe side gutters on the FOR PARENTS text block.
   - Keep the V5 layout unchanged otherwise.
========================================================= */
.kids-intro__inner{
  width:min(1120px, calc(100% - 32px)) !important;
}

@media (max-width: 900px){
  .kids-intro__inner{
    width:min(720px, calc(100% - 32px)) !important;
  }
  .kids-intro__panel{
    width:100% !important;
  }
  .kids-intro__copy{
    width:100% !important;
    max-width:620px !important;
    margin:0 auto !important;
    padding:0 4px !important;
    box-sizing:border-box !important;
  }
}

@media (max-width: 520px){
  .kids-intro__inner{
    width:calc(100% - 36px) !important;
  }
  .kids-intro__copy{
    padding:0 2px !important;
  }
}

/* =========================================================
   RESPONSIVE STABILITY PATCH - 2026-06-25
   Prevents the layout from breaking in narrow desktop/tablet
   browser windows without changing content or asset paths.
========================================================= */
html{ overflow-x:hidden; }
*, *::before, *::after{ box-sizing:border-box; }
body{ min-width:320px; overflow-x:hidden; }
img, video, svg{ max-width:100%; }

@media (max-width: 1024px){
  .container{ width:calc(100% - 40px) !important; max-width:760px !important; }

  .kids-intro__inner{
    grid-template-columns:1fr !important;
    width:calc(100% - 40px) !important;
    max-width:760px !important;
    gap:24px !important;
  }
  .kids-intro__hero,
  .kids-intro__panel,
  .kids-intro__copy{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .kids-intro__copy{ padding-left:2px !important; padding-right:2px !important; }
  .kids-intro__lead{ max-width:none !important; }

  .mtb-zigzag,
  .mtb-parent-lines,
  .mtb-summary{ width:100% !important; max-width:760px !important; }
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns:1fr !important;
    gap:16px !important;
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .mtb-feature--reverse .mtb-feature__visual,
  .mtb-feature--reverse .mtb-feature__content{ order:initial !important; }

  .classes-story .story-list{ width:100% !important; max-width:760px !important; margin-left:auto !important; margin-right:auto !important; }
  .classes-story .story-card,
  .classes-story .story-card--reverse{
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .classes-story .story-card--reverse .story-copy,
  .classes-story .story-card--reverse .story-media{ order:initial !important; justify-self:stretch !important; }
  .classes-story .story-copy,
  .classes-story .story-media{ width:100% !important; max-width:100% !important; justify-self:stretch !important; }
  .classes-story .story-octo{ width:100% !important; max-width:760px !important; }
  .classes-story .story-controls{ justify-content:center !important; }

  .kids-events .events-inner,
  .kids-events .events-panel{
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .kids-events .events-copy,
  .kids-events .events-media{ width:100% !important; max-width:100% !important; }
  .kids-events .events-frame{ margin-left:auto !important; margin-right:auto !important; }

  .kids-schedule-wrap,
  .schedule-image-card,
  .promo-media,
  .promo-copy,
  .faq-list,
  .access-grid,
  .company-card{ width:100% !important; max-width:760px !important; margin-left:auto !important; margin-right:auto !important; }
}

@media (max-width: 760px){
  .container{ width:calc(100% - 36px) !important; max-width:620px !important; }
  .section{ padding-left:0 !important; padding-right:0 !important; }

  .header-center{ display:none !important; }
  .burger{ display:inline-flex !important; }
  .header-inner,
  .header-inner--wide{ width:100% !important; padding-left:18px !important; padding-right:18px !important; }

  .kids-intro__inner{ width:calc(100% - 36px) !important; max-width:620px !important; }
  .kids-intro__hero-illustration{ width:min(94%, 430px) !important; }

  .mtb-feature,
  .mtb-feature--reverse{ padding:16px !important; }
  .mtb-feature__visual{ width:100% !important; min-height:0 !important; aspect-ratio:16 / 9 !important; }
  .mtb-feature__content h3{ font-size:clamp(36px, 12.5vw, 52px) !important; }
  .mtb-feature__content h4{ font-size:16px !important; }
  .mtb-feature__content p:last-child{ font-size:13px !important; line-height:1.78 !important; }

  .classes-story .story-card,
  .classes-story .story-card--reverse{ padding-bottom:48px !important; }
  .classes-story .story-card + .story-card,
  .classes-story .story-card--reverse + .story-card,
  .classes-story .story-card + .story-card--reverse,
  .classes-story .story-card--reverse + .story-card--reverse{ padding-top:48px !important; }
  .classes-story .story-copy{ min-height:0 !important; }
  .classes-story .story-body{ min-height:7em !important; }
  .story-controls{ gap:16px !important; }
  .story-arrow{ width:44px !important; height:44px !important; flex:0 0 44px !important; }

  .events-frame{ width:min(340px, 86vw) !important; }
  .events-controls{ justify-content:center !important; }

  .plan-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:10px !important; }
  .plan-name{ font-size:10px !important; }
  .plan-price .num{ font-size:28px !important; }

  .promo-title{ font-size:clamp(28px, 8.6vw, 36px) !important; }
  .promo-sub{ font-size:15px !important; }
  .promo-date{ font-size:clamp(22px, 7vw, 30px) !important; }

  .bottom-cta{ max-width:100vw !important; overflow:hidden !important; }
}

/* =========================================================
   RESPONSIVE STABILITY PATCH V2 - narrow desktop / tablet
   Fixes the MTB silhouette cards when the browser window is
   reduced but not fully mobile. Content and asset paths unchanged.
========================================================= */
@media (max-width: 1180px) and (min-width: 701px){
  .mind-tech-body .container{
    width: min(920px, calc(100% - 48px)) !important;
    max-width: 920px !important;
  }
  .mtb-zigzag{
    width: 100% !important;
    max-width: 920px !important;
    gap: 26px !important;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    display: grid !important;
    grid-template-columns: minmax(150px, 28%) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 24px !important;
    padding: 24px 26px !important;
    min-height: 0 !important;
  }
  .mtb-feature--reverse .mtb-feature__visual,
  .mtb-feature--reverse .mtb-feature__content{
    order: initial !important;
  }
  .mtb-feature__visual{
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    max-height: 190px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .mtb-figure,
  .mtb-feature--technique .mtb-figure,
  .mtb-feature--body .mtb-figure,
  .mtb-feature--mind .mtb-figure{
    position: relative !important;
    inset: auto !important;
    width: min(92%, 170px) !important;
    height: auto !important;
    max-width: 170px !important;
    max-height: 155px !important;
    object-fit: contain !important;
    transform: none !important;
    margin: 0 auto !important;
  }
  .mtb-kanji{
    right: 0 !important;
    bottom: -4px !important;
    font-size: clamp(58px, 7vw, 86px) !important;
  }
  .mtb-feature__content,
  .mtb-feature--reverse .mtb-feature__content{
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
  }
  .mtb-feature__content h3{
    font-size: clamp(38px, 4.8vw, 52px) !important;
    margin-bottom: 6px !important;
  }
  .mtb-feature__content h4{
    max-width: none !important;
    font-size: clamp(17px, 2vw, 20px) !important;
    margin-bottom: 12px !important;
  }
  .mtb-feature__content p:last-child{
    max-width: none !important;
    font-size: 14px !important;
    line-height: 1.85 !important;
  }
}

@media (max-width: 700px){
  .mind-tech-body .container{
    width: calc(100% - 36px) !important;
    max-width: 620px !important;
  }
  .mtb-zigzag{
    width: 100% !important;
    gap: 18px !important;
  }
  .mtb-feature,
  .mtb-feature--reverse{
    display: grid !important;
    grid-template-columns: minmax(96px, 30%) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 16px 14px !important;
  }
  .mtb-feature--reverse .mtb-feature__visual,
  .mtb-feature--reverse .mtb-feature__content{
    order: initial !important;
  }
  .mtb-feature__visual{
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    max-height: 128px !important;
    padding: 0 !important;
  }
  .mtb-figure,
  .mtb-feature--technique .mtb-figure,
  .mtb-feature--body .mtb-figure,
  .mtb-feature--mind .mtb-figure{
    position: relative !important;
    inset: auto !important;
    width: min(94%, 112px) !important;
    max-width: 112px !important;
    max-height: 104px !important;
    height: auto !important;
    object-fit: contain !important;
    transform: none !important;
    margin: 0 auto !important;
  }
  .mtb-kanji{
    right: -2px !important;
    bottom: -2px !important;
    font-size: clamp(44px, 15vw, 64px) !important;
  }
  .mtb-feature__content,
  .mtb-feature--reverse .mtb-feature__content{
    padding: 0 !important;
  }
  .mtb-feature__label{
    margin-bottom: 6px !important;
    font-size: 10px !important;
  }
  .mtb-feature__content h3{
    font-size: clamp(30px, 10vw, 42px) !important;
    margin-bottom: 4px !important;
  }
  .mtb-feature__content h4{
    font-size: 15px !important;
    line-height: 1.45 !important;
    margin-bottom: 8px !important;
  }
  .mtb-feature__content p:last-child{
    font-size: 12px !important;
    line-height: 1.7 !important;
  }
}

@media (max-width: 420px){
  .mtb-feature,
  .mtb-feature--reverse{
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 16px 14px !important;
  }
  .mtb-feature__visual{
    width: 132px !important;
    max-width: 132px !important;
    height: 112px !important;
    aspect-ratio: auto !important;
    margin: 0 auto !important;
  }
  .mtb-figure,
  .mtb-feature--technique .mtb-figure,
  .mtb-feature--body .mtb-figure,
  .mtb-feature--mind .mtb-figure{
    width: 112px !important;
    max-width: 112px !important;
    max-height: 104px !important;
  }
  .mtb-feature__content{
    text-align: left !important;
  }
}
