@charset "utf-8";
/* CSS Document */

  :root {
    --pink: #E4007F;
    --pink-dark: #C50070;
    --pink-light: #FDF0F6;
    --pink-pale: #FCEEF5;
    --yellow: #FDD108;
    --yellow-dark: #E5BD00;
    --yellow-light: #FFF8D6;
    --yellow-pale: #FFFCE8;
    --gray: #898989;
    --black: #231815;
    --white: #FFFFFF;
    --bg-cream: #FEFCF8;
    --section-gap: 100px;
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }

  html {
    scroll-behavior: smooth;
    font-size: 16px;
  }

  body {
	  width: 100%;
    font-family: 'Noto Sans JP', sans-serif;
    color: var(--black);
    background: var(--white);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
  }
.sp{
	display: none!important;
}
  /* ===== Utility ===== */
  .container,.container01 {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 24px;
  }

  /* noscript fallback: if JS fails, show everything */
  .no-js .fade-in,
  .no-js .fade-in-left,
  .no-js .fade-in-right,
  .no-js .scale-in,
  .no-js .arc-item {
    opacity: 1 !important;
    transform: none !important;
  }

  .fade-in {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  .fade-in.visible {
    opacity: 1;
    transform: translateY(0);
  }
  .fade-in-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  .fade-in-left.visible {
    opacity: 1;
    transform: translateX(0);
  }
  .fade-in-right {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  .fade-in-right.visible {
    opacity: 1;
    transform: translateX(0);
  }
  .scale-in {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .scale-in.visible {
    opacity: 1;
    transform: scale(1);
  }

  /* Stagger children */
  .stagger > * { transition-delay: calc(var(--i, 0) * 0.12s); }

  /* ===== Navigation ===== */
  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0,0,0,0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  .nav.hidden { transform: translateY(-100%); }
  .nav.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.08); }

  .nav-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .nav-logo {
    height: 44px;
    object-fit: contain;
  }

  .nav-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--pink);
    color: white;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    padding: 10px 24px;
    border-radius: 50px;
    text-decoration: none;
    transition: background 0.3s ease, transform 0.2s ease;
  }
  .nav-cta:hover { background: var(--pink-dark); transform: translateY(-1px); }

  /* ===== Hero ===== */
  .hero {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    background: var(--black);
  }

  .hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
	  opacity: 0.4;
  }
  .hero-bg img {
    width: 100%;
    object-fit: cover;
    opacity: 0.88;
    transform: scale(1.0);
    object-position: center 39%;
	margin-top: -145px;
  }

  .hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      180deg,
      rgba(35,24,21,0.12) 0%,
      rgba(35,24,21,0.05) 30%,
      rgba(35,24,21,0.3) 60%,
      rgba(35,24,21,0.85) 100%
    );
    z-index: 1;
  }

  .hero-content {
    position: relative;
    z-index: 2;
    margin: 0 auto;
    padding: 0 24px 80px;
    color: white;
  }
	.h_100{
		height: 100vh;
		position: relative;
	}
	.centered-box {
  		position: absolute;
  		top: 60%;          
  		transform: translateY(-50%);
	}

  .hero-badge {
    display: inline-block;
    background-color: #FFF;
    border: 1px solid rgba(255,255,255,0.4);
    color: var(--pink);
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    padding: 6px 20px;
    border-radius: 8px;
    margin-bottom: 24px;
    opacity: 0;
    transform: translateY(20px);
    animation: heroFadeIn 0.8s ease 0.3s forwards;
  }

  .hero-title {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: clamp(2rem, 5vw, 3.2rem);
    line-height: 1.4;
    margin-bottom: 20px;
    opacity: 0;
    transform: translateY(30px);
    animation: heroFadeIn 0.8s ease 0.5s forwards;
    text-shadow: 0 2px 16px rgba(0,0,0,0.5);
  }

  .hero-title .accent {
    color: var(--yellow);
  }
.hero-openclass{
	margin-top: 32px; text-align: center;
}
.hero-openclasstitle{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 800; font-size: clamp(1.8rem, 4.5vw, 2.8rem); color: white; line-height: 1.4; text-shadow: 0 2px 12px rgba(0,0,0,0.4); margin-bottom: 20px;
}
.hero-flex{
	display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;
}
.hero-class{
	background: rgba(255,255,255,0.97); color: var(--black); font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 700; padding: 22px 36px; border-radius: 18px; box-shadow: 0 4px 24px rgba(0,0,0,0.2); text-align: center; min-width: 220px;
}
.hero-class01{
	background: rgba(255,255,255,0.97); color: var(--black); font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 700; padding: 22px 36px; border-radius: 18px; box-shadow: 0 4px 24px rgba(0,0,0,0.2); text-align: center; min-width: 220px; border: 2px solid var(--pink);
}
.hero-classname{
	font-size: 1.35rem; font-weight: 800;
}

.hero-classarea{
	font-size: 0.85rem; color: var(--gray); font-weight: 500; margin-top: 6px;
}
.hero-classarea01{
	font-size: 0.85rem; color: var(--pink); font-weight: 700; margin-top: 6px;
}
.hero-event{
	margin-top: 36px; text-align: center;
	position: relative;z-index: 2;
}
.event_link{
	display: inline-block; background: var(--yellow); color: var(--black); border-radius: 20px; padding: 20px; box-shadow: 0 6px 32px rgba(253,209,8,0.5); text-decoration: none; transition: all 0.3s ease; max-width: 420px; width: 100%;
}
.free_event{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.15em; margin-bottom: 8px; opacity: 0.7;
}
.expain{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-size: clamp(1.3rem, 3.5vw, 1.8rem); font-weight: 800; margin-bottom: 12px;
}
.event_class_flex{
	display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 10px;
}
.event_class_box{
	background: white; border-radius: 12px; padding: 10px 20px;
}
.event_class_day{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 800; font-size: 1.1rem; color: var(--pink);
}
.event_class_name{
	font-size: 0.75rem; color: #555;
}
.event_cta{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 800; font-size: 1rem; color: var(--pink);
}
.m_t20{
	margin-top: 20px;
}
  .hero-sub {
    font-size: clamp(0.95rem, 2vw, 1.15rem);
    font-weight: 400;
    line-height: 1.9;
    color: #FFF;
    max-width: 640px;
    margin-bottom: 75px;
    opacity: 0;
    transform: translateY(30px);
    animation: heroFadeIn 0.8s ease 0.7s forwards;
  }

  .hero-info {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 40px;
    opacity: 0;
    transform: translateY(30px);
    animation: heroFadeIn 0.8s ease 0.9s forwards;
  }

  .hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 8px;
    padding: 8px 16px;
    font-size: 0.85rem;
    font-weight: 500;
    color: rgba(255,255,255,0.92);
  }

  .hero-tag .icon {
    font-size: 1rem;
  }

  .hero-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
    opacity: 0;
    transform: translateY(30px);
    animation: heroFadeIn 0.8s ease 1.1s forwards;
  }
  .hero-cats_s{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-size: 1.1rem; font-weight: 700; color: white; letter-spacing: 0.15em; margin-bottom: 8px; text-shadow: 0 2px 12px rgba(0,0,0,0.6);
}

  .btn-primary {
	width: 420px; 
	justify-content: center;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--pink);
    color: white;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    padding: 16px 36px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(228,0,127,0.3);

  }
  .btn-primary:hover { background: var(--pink-dark); transform: translateY(-2px); box-shadow: 0 6px 28px rgba(228,0,127,0.4); }

  .btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,0.12);
    border: 2px solid rgba(255,255,255,0.5);
    color: white;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    padding: 14px 36px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
  }
  .btn-secondary:hover { background: rgba(255,255,255,0.2); border-color: white; transform: translateY(-2px); }

  @keyframes heroFadeIn {
    to { opacity: 1; transform: translateY(0); }
  }

  /* Hero scroll indicator */
  .hero-scroll {
    position: absolute;
    bottom: 32px;
    left: 50%;
    transform: none;
    z-index: 2;
    text-align: center;
    color: rgba(255,255,255,0.5);
    font-size: 0.75rem;
    animation: scrollBounce 2s ease infinite;
  }
  .hero-scroll .arrow {
    display: block;
    margin-top: 4px;
    font-size: 1.2rem;
  }
  @keyframes scrollBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(8px); }
  }

  /* ===== Section Base ===== */
  .section {
    padding: var(--section-gap) 0;
  }

  .section-header {
    text-align: center;
    margin-bottom: 56px;
  }

  .section-label {
    display: inline-block;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--pink);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
  }

  .section-title {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: clamp(1.5rem, 3.5vw, 2.2rem);
    color: var(--black);
    line-height: 1.4;
  }

  .section-title .accent { color: var(--pink); }

  .section-desc {
    max-width: 680px;
    margin: 16px auto 0;
    font-size: 1rem;
    line-height: 1.9;
    color: #555;
  }
.m_t12{
	margin-top: 12px;
}
.section-title_caption{
	display: inline-block; background: var(--pink-pale); color: var(--pink); font-family: 'M PLUS Rounded 1c', sans-serif; font-size: 0.8rem; font-weight: 700; padding: 5px 16px; border-radius: 20px;
}
.section_img{
	margin-bottom: 16px; border-radius: 20px;
}
.br_20{
	border-radius: 20px;
}
.section_grid{
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 36px;
}
.section_box{
	background: white; border-radius: 12px; padding: 20px 22px; border: 1px solid #F0F0F0; text-align: center;
}
.section_icon{
	font-size: 1.4rem; margin-bottom: 8px;
}
.section_font{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--black); margin-bottom: 6px;
}
.section_txt{
	font-size: 0.8rem; line-height: 1.7; color: #666;
}
  /* ===== About ===== */
  .about {
    background: var(--bg-cream);
  }

  .about-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
  }

  .about-image {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(0,0,0,0.1);
  }
  .about-image img {
    width: 100%;
    display: block;
    aspect-ratio: 4/3;
    object-fit: cover;
  }
  .about-image::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 16px;
    border: 2px solid rgba(228,0,127,0.1);
  }

  .about-text h3 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: clamp(1.5rem, 3.5vw, 2.2rem);
    color: var(--black);
    margin-bottom: 16px;
    line-height: 1.5;
  }

  .about-text p {
    font-size: 0.95rem;
    line-height: 2;
    color: #555;
    margin-bottom: 12px;
  }

  /* ===== Education Arc ===== */
  .arc-section {
    background: var(--pink-pale);
    padding: 80px 0;
  }

  .arc-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 48px;
  }

  .arc-item {
    text-align: center;
    opacity: 0;
    transform: translateY(30px) scale(0.8);
    transition: all 0.6s ease;
  }
  .arc-item.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  .arc-circle {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: white;
    border: 3px solid var(--pink);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto 10px;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.3rem;
    color: var(--pink);
    box-shadow: 0 4px 20px rgba(228,0,127,0.12);
    transition: all 0.4s ease;
    gap: 2px;
  }
  .arc-circle:hover {
    transform: scale(1.1);
  }
.arc-cicle_pink{
	width: 130px; height: 130px; background: var(--pink); color: white; border-color: var(--pink); box-shadow: 0 6px 28px rgba(228,0,127,0.35);
}
.arc-circle span.arc-cicle_b{
	display:block;font-size:2.2rem;line-height:1;
}
.arc-circle span.arc-circle_a{
	display:block;font-size:1.8rem;line-height:1;
}
.arc-circle_font{
	font-size:0.9rem;
}
.arc-circle_font01{
	font-size: 1.1rem; font-weight: 800;
}
  .arc-item-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #555;
  }
.arc-item-label_01{
	font-weight: 800; color: var(--pink); font-size: 1rem;
}
  .arc-connector {
    font-size: 1.8rem;
    color: var(--pink);
    opacity: 0.5;
    margin-bottom: 24px;
  }

  .arc-caption {
    text-align: center;
    max-width: 640px;
    margin: 40px auto 0;
    font-size: 1.05rem;
    line-height: 1.8;
    color: #555;
  }

  .arc-caption strong {
    color: var(--pink);
    font-weight: 700;
  }
.arc-caption_box{
	background: white; border-radius: 16px; padding: 28px 32px; box-shadow: 0 4px 20px rgba(228,0,127,0.08); border: 1px solid rgba(228,0,127,0.1);
}
.arc-caption_box_f{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-size: 1.2rem; font-weight: 800; color: var(--pink); margin-bottom: 10px;
}
  /* ===== Timeline ===== */
  .timeline-section {
    background: white;
  }

  .timeline-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 40px;
    align-items: start;
  }
.timeline_couse{
	background: var(--yellow-pale); border-radius: 12px; padding: 16px 20px; margin-bottom: 24px; font-size: 0.88rem; color: #555; line-height: 1.8;
}

  .tl-photos-wrapper {
    position: sticky;
    top: 100px;
  }

  .tl-list {
    list-style: none;
  }

  .tl-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 16px 0;
    border-bottom: 1px solid #F0F0F0;
    transition: all 0.3s ease;
  }
  .tl-item:hover {
    background: var(--yellow-pale);
    margin: 0 -12px;
    padding: 16px 12px;
    border-radius: 12px;
    border-color: transparent;
  }

  .tl-item.highlight {
    background: var(--yellow-pale);
    margin: 0 -12px;
    padding: 16px 12px;
    border-radius: 12px;
    border-color: transparent;
  }

  .tl-time {
    flex-shrink: 0;
    width: 56px;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--pink);
    text-align: right;
  }

  .tl-dot-line {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    padding-top: 4px;
  }

  .tl-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--pink);
    flex-shrink: 0;
    box-shadow: 0 0 0 4px rgba(228,0,127,0.12);
  }

  .tl-line {
    width: 2px;
    flex: 1;
    background: linear-gradient(180deg, var(--pink), rgba(228,0,127,0.1));
    min-height: 20px;
  }

  .tl-text-main {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--black);
    margin-bottom: 2px;
  }

  .tl-text-sub {
    font-size: 0.82rem;
    color: var(--gray);
  }

  .tl-photos {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .tl-photo {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,0.1);
    height: 240px;
    position: relative;
  }
  .tl-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.6s ease;
  }
  .tl-photo:hover img { transform: scale(1.05); }

  .tl-photo-caption {
    padding: 10px 14px;
    background: white;
    font-size: 0.78rem;
    color: var(--gray);
    font-weight: 500;
  }

  /* ===== Subjects ===== */
  .subjects {
    background: var(--bg-cream);
  }

  .subjects-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 24px;
  }
.subject_flex{
	display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px;
}
.subject_yellow{
	background: var(--yellow-pale); color: var(--black); font-size: 0.72rem; font-weight: 600; padding: 3px 10px; border-radius: 12px;
}
.subject_green{
	background: #E8F5E9; color: var(--black); font-size: 0.72rem; font-weight: 600; padding: 3px 10px; border-radius: 12px;
}
.subject_pink{
	background: var(--pink-pale); color: var(--black); font-size: 0.72rem; font-weight: 600; padding: 3px 10px; border-radius: 12px;
}
.subject_blue{
	background: #E3F2FD; color: var(--black); font-size: 0.72rem; font-weight: 600; padding: 3px 10px; border-radius: 12px;
}
  .subject-card {
    background: white;
    border-radius: 16px;
    padding: 32px;
    border: 1px solid #F0F0F0;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
  }
  .subject-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
  }

  .subject-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
  }
  .subject-card.academic::before { background: var(--yellow); }
  .subject-card.inquiry::before { background: var(--pink); }
  .subject-card.experience::before { background: #7BC67E; }
  .subject-card.parent::before { background: #6BB8E8; }

  .subject-card h4 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.15rem;
    margin-bottom: 12px;
    color: var(--black);
  }

  .subject-card p {
    font-size: 0.9rem;
    line-height: 1.85;
    color: #555;
  }

  .subject-note {
    background: white;
    border-radius: 12px;
    padding: 24px 28px;
    border-left: 4px solid var(--yellow);
    font-size: 0.9rem;
    line-height: 1.85;
    color: #555;
  }

  /* ===== White Canvas ===== */
  .white-canvas {
    background: linear-gradient(180deg, var(--yellow-pale) 0%, var(--white) 100%);
    position: relative;
  }

  .wc-layout {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 48px;
    align-items: center;
  }

  .wc-text .catch {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.3rem;
    color: var(--pink);
    line-height: 1.6;
    margin-bottom: 20px;
  }

  .wc-text p {
    font-size: 0.95rem;
    line-height: 2;
    color: #555;
    margin-bottom: 12px;
  }

  .wc-image {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(0,0,0,0.1);
  }
  .wc-image img {
    width: 100%;
    display: block;
    aspect-ratio: 4/3;
    object-fit: cover;
  }

  /* ===== Monday LAB ===== */
  .monday-lab {
    background: linear-gradient(180deg, #F0F4FF 0%, var(--white) 100%);
    position: relative;
  }

  .monday-lab .ml-badge {
    display: inline-flex;
    gap: 8px;
    margin-bottom: 18px;
  }
  .monday-lab .ml-badge span {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 4px 14px;
    border-radius: 20px;
  }
  .monday-lab .ml-badge .badge-new {
    background: var(--pink);
    color: white;
  }
  .monday-lab .ml-badge .badge-option {
    background: #E3F2FD;
    color: #1565C0;
  }

  .ml-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
  }

  .ml-text h3 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.35rem;
    color: var(--black);
    margin-bottom: 16px;
    line-height: 1.5;
  }

  .ml-text .ml-lead {
    font-size: 0.95rem;
    line-height: 2;
    color: #555;
    margin-bottom: 20px;
  }

  .ml-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 20px;
  }
  .ml-info-item {
    background: white;
    border-radius: 12px;
    padding: 16px 18px;
    border: 1px solid #E8ECF4;
  }
  .ml-info-item .ml-info-label {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
  }
  .ml-info-item .ml-info-value {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    color: var(--black);
  }

  .ml-features {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ml-feature-card {
    background: white;
    border-radius: 14px;
    padding: 24px 26px;
    border: 1px solid #E8ECF4;
    transition: all 0.3s ease;
  }
  .ml-feature-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 24px rgba(0,0,0,0.06);
  }
  .ml-feature-card h5 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    color: var(--black);
    margin-bottom: 8px;
  }
  .ml-feature-card p {
    font-size: 0.85rem;
    line-height: 1.8;
    color: #555;
  }

  .ml-note {
    background: #E8EEF8;
    border-radius: 12px;
    padding: 20px 24px;
    margin-top: 28px;
    font-size: 0.88rem;
    line-height: 1.8;
    color: #444;
    border-left: 4px solid #5B86C8;
  }

  /* ===== Voices ===== */
  .voices {
    background: white;
  }

  .voices-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }

  .voice-card {
    background: var(--bg-cream);
    border-radius: 16px;
    padding: 32px 28px;
    position: relative;
    border: 1px solid #F0F0F0;
    transition: all 0.3s ease;
  }
  .voice-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.06);
  }

  .voice-card .quote-mark {
    font-family: serif;
    font-size: 3rem;
    color: var(--pink);
    opacity: 0.2;
    line-height: 1;
    margin-bottom: 8px;
  }

  .voice-card .text {
    font-size: 0.88rem;
    line-height: 1.85;
    color: #444;
    margin-bottom: 16px;
  }

  .voice-card .attr {
    font-size: 0.8rem;
    color: var(--gray);
    font-weight: 500;
    text-align: right;
  }

  /* ===== Pricing ===== */
  .pricing {
    background: var(--bg-cream);
  }

  .pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 900px;
    margin: 0 auto;
  }

  .pricing-card {
    background: white;
    border-radius: 16px;
    padding: 32px 24px;
    text-align: center;
    border: 2px solid #F0F0F0;
    transition: all 0.3s ease;
    position: relative;
  }
  .pricing-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.06);
  }
  .pricing-card.featured {
    border-color: var(--pink);
    background: var(--pink-pale);
  }

  .pricing-card.featured::before {
    content: 'おすすめ';
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--pink);
    color: white;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    padding: 4px 16px;
    border-radius: 20px;
  }

  .pricing-card .plan-name {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--black);
    margin-bottom: 4px;
  }

  .pricing-card .plan-time {
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 16px;
  }

  .pricing-card .price {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 2rem;
    color: var(--pink);
    line-height: 1;
    margin-bottom: 4px;
  }

  .pricing-card .price .yen {
    font-size: 1rem;
    font-weight: 700;
  }

  .pricing-card .price-sub {
    font-size: 0.75rem;
    color: var(--gray);
    margin-bottom: 16px;
  }

  .pricing-card .plan-desc {
    font-size: 0.82rem;
    color: #555;
    line-height: 1.6;
  }
.pricing_box{
	max-width: 660px; margin: 0 auto; text-align: center; background: var(--bg-cream); border-radius: 24px; padding: 40px 32px; box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}
.m_b_8{
	margin-bottom: 8px;
}
.pricing_h2{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 800; font-size: 1.3rem; color: var(--black); margin-bottom: 20px;
}
.pricing_p{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-size: 2.2rem; font-weight: 800; color: var(--pink); margin-bottom: 4px;
}
.pricing_tax{
	font-size: 1rem; 
	font-weight: 500;
	color: var(--gray);
}
.pricting_txt{
	font-size: 0.85rem; color: var(--gray); line-height: 1.8; margin-top: 16px;
}
.pricing_area{
	background: var(--yellow-pale); border-radius: 16px; padding: 20px 24px; margin-top: 20px; border: 2px solid var(--yellow); text-align: center;
}
.pricing_font{
        font-family: 'M PLUS Rounded 1c', sans-serif; font-size: 1.05rem; font-weight: 800; color: var(--black); margin-bottom: 8px
}
.pricing_area_f{
	font-size: 0.85rem; color: #555; line-height: 1.8;
}


  /* ===== Campus ===== */
  .campus {
    background: white;
  }

  .campus-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 1080px;
    margin: 0 auto;
  }

  .campus-card {
    background: var(--bg-cream);
    border-radius: 16px;
    padding: 32px;
    border: 1px solid #F0F0F0;
    transition: all 0.3s ease;
  }
  .campus-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.06);
  }

  .campus-card h4 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.2rem;
    color: var(--black);
    margin-bottom: 12px;
  }

  .campus-card .campus-meta {
    font-size: 0.85rem;
    color: #555;
    line-height: 1.8;
  }

  .campus-card .campus-meta .label {
    color: var(--pink);
    font-weight: 700;
    margin-right: 4px;
  }

  /* ===== CTA Final ===== */
  .cta-final {
    background: linear-gradient(135deg, var(--pink) 0%, #F4458E 50%, #FF6B9D 100%);
    padding: 80px 0;
    text-align: center;
    color: white;
    position: relative;
    overflow: hidden;
  }

  .cta-final::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at 30% 50%, rgba(253,209,8,0.15), transparent 60%);
    animation: ctaGlow 6s ease infinite alternate;
  }
.m_b_40{
	margin-bottom: 40px;
}
.cta_box{
    display: inline-block; background: white; border-radius: 24px; padding: 36px 48px; box-shadow: 0 8px 40px rgba(0,0,0,0.2); max-width: 600px; width: 100%;
}
.cta_title{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-size: 1.2rem; font-weight: 800; color: var(--pink); margin-bottom: 20px; letter-spacing: 0.1em;
}
.cta_flex{
	display: flex; gap: 24px; flex-wrap: wrap; justify-content: center;
}
.cta_border_r{
	background: var(--pink-pale); border-radius: 16px; padding: 20px 28px; min-width: 240px; border: 2px solid var(--pink);
}
.cta_day{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 800; font-size: 1.4rem; color: var(--pink); margin-bottom: 6px;
}
.cta_time{
	font-family: 'M PLUS Rounded 1c', sans-serif; font-weight: 700; font-size: 1rem; color: var(--black); margin-bottom: 4px;
}
.cta_class{
	font-size: 0.82rem; color: #555;
}
.cta_ex{
	font-size: 0.85rem; color: var(--gray); margin-top: 16px; font-weight: 500;
}
  @keyframes ctaGlow {
    0% { transform: translate(0, 0); }
    100% { transform: translate(5%, 5%); }
  }

  .cta-final .container,.container01 { position: relative; z-index: 1; }

  .cta-final h2 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: clamp(1.5rem, 4vw, 2.2rem);
    margin-bottom: 16px;
  }

  .cta-final .sub {
    font-size: 1rem;
    opacity: 0.88;
    margin-bottom: 40px;
    line-height: 1.8;
  }

  .cta-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 32px;
  }

  .btn-white {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: white;
    color: var(--pink);
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    padding: 16px 40px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  }
  .btn-white:hover { transform: translateY(-2px); box-shadow: 0 6px 28px rgba(0,0,0,0.2); }

  .btn-outline-white {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    color: white;
    border: 2px solid rgba(255,255,255,0.6);
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    padding: 14px 40px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
  }
  .btn-outline-white:hover { border-color: white; background: rgba(255,255,255,0.1); transform: translateY(-2px); }

  .cta-steps {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: nowrap;
    align-items: center;
  }

  .cta-step {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,0.15);
    border-radius: 8px;
    padding: 10px 20px;
    font-size: 0.85rem;
  }

  .cta-step .num {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1rem;
  }

  .cta-step-arrow { opacity: 0.5; display: flex; align-items: center; }

  /* ===== Footer ===== */
  .footer {
    background: #ffffff;
    color: rgba(0,0,0,0.5);
    padding-bottom: 100px;
    padding-top: 40px;
    text-align: center;
    font-size: 0.82rem;
  }

  .footer-logo {
    max-width: 300px;
    margin-bottom: 20px;
    opacity: 1;
    filter: none;
  }

  .footer p {
    margin-bottom: 6px;
  }

  .footer a {
    color: rgba(0,0,0,0.5);
    text-decoration: none;
    transition: color 0.3s ease;
  }
  .footer a:hover { color: var(--pink); }

  /* ===== Parallax photo strip ===== */
  .photo-strip {
    overflow: hidden;
    padding: 40px 0;
    background: var(--black);
    position: relative;
  }

  .photo-strip-track {
    display: flex;
    gap: 16px;
    animation: photoScroll 30s linear infinite;
    width: max-content;
  }

  .photo-strip-track img {
    height: 200px;
    border-radius: 12px;
    object-fit: cover;
    flex-shrink: 0;
  }

  @keyframes photoScroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }

  /* ===== Pain Points ===== */
  .pain-points {
    background: white;
  }

  .pain-layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 48px;
    align-items: center;
  }

  .pain-image {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(0,0,0,0.1);
  }
  .pain-image img {
    width: 100%;
    display: block;
    aspect-ratio: 3/4;
    object-fit: cover;
  }

  .pain-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .pain-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px 24px;
    background: var(--bg-cream);
    border-radius: 12px;
    border-left: 4px solid var(--pink);
    transition: all 0.3s ease;
  }
  .pain-item:hover {
    transform: translateX(4px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
  }

  .pain-check {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: var(--pink);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 0.75rem;
    margin-top: 2px;
  }

  .pain-text {
    font-size: 0.95rem;
    line-height: 1.7;
    color: #444;
  }

  /* ===== Benefits ===== */
  .benefits {
    background: var(--pink-pale);
  }

  .benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }

  .benefit-card {
    background: white;
    border-radius: 16px;
    padding: 28px 20px;
    text-align: left;
    border: 1px solid #F0F0F0;
    transition: all 0.3s ease;
  }
  .benefit-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.08);
  }

  .benefit-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 16px;
    font-size: 1.6rem;
  }
  .benefit-icon.orange { background: #FFF3E0; }
  .benefit-icon.green { background: #E8F5E9; }
  .benefit-icon.blue { background: #E3F2FD; }
  .benefit-icon.yellow { background: var(--yellow-pale); }

  .benefit-card h4 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1rem;
    color: var(--pink);
    margin-bottom: 4px;
    line-height: 1.4;
  }

  .benefit-card .action {
    font-size: 0.85rem;
    color: var(--black);
    font-weight: 700;
    margin-bottom: 12px;
  }

  .benefit-card p {
    font-size: 0.82rem;
    color: #666;
    line-height: 1.7;
  }

  /* ===== Kids Voices ===== */
  .kids-voices {
    background: var(--bg-cream);
  }

  .kids-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }

  .kid-card {
    background: white;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #F0F0F0;
    transition: all 0.3s ease;
  }
  .kid-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.06);
  }

  .kid-card .kid-photo {
    height: 200px;
    overflow: hidden;
  }
  .kid-card .kid-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
  }
  .kid-card:hover .kid-photo img { transform: scale(1.05); }

  .kid-card .kid-body {
    padding: 20px;
  }

  .kid-card .kid-name {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--gray);
    margin-bottom: 8px;
  }

  .kid-card .kid-headline {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1rem;
    color: var(--black);
    margin-bottom: 12px;
    line-height: 1.5;
  }

  .kid-card .kid-text {
    font-size: 0.85rem;
    color: #555;
    line-height: 1.8;
  }

  /* ===== Founder Message ===== */
  .founder {
    background: linear-gradient(180deg, #F8F6F3 0%, white 100%);
  }

  .founder-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 32px;
    align-items: start;
  }

  .founder-photo {
    position: sticky;
    top: 100px;
    margin-bottom: 0;
  }

  .founder-photo img {
    width: 100%;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
  }

  .founder-profile {
    margin-top: 8px;
    text-align: center;
  }

  .founder-profile .role {
    font-size: 0.78rem;
    color: var(--pink);
    font-weight: 700;
    margin-bottom: 4px;
  }

  .founder-profile .name {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--black);
  }

  .founder-text h3 {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 1.2rem;
    color: var(--black);
    margin-bottom: 16px;
    padding-left: 12px;
    border-left: 4px solid var(--pink);
    line-height: 1.5;
  }

  .founder-text p {
    font-size: 0.92rem;
    line-height: 2;
    color: #555;
    margin-bottom: 24px;
  }

  .founder-bio {
    font-size: 0.7rem;
    line-height: 1.8;
    color: #666;
    margin-top: 24px;
  }

  /* ===== Q&A ===== */
  .qna {
    background: white;
  }

  .qna-list {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .qna-item {
    border: 1px solid #EEE;
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
  }
  .qna-item:hover { border-color: var(--pink); }

  .qna-q {
    padding: 20px 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--black);
    background: white;
    transition: background 0.3s ease;
    user-select: none;
  }
  .qna-q:hover { background: var(--pink-pale); }

  .qna-q .q-mark {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: var(--pink);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 800;
    font-size: 0.85rem;
  }

  .qna-q .arrow {
    margin-left: auto;
    font-size: 0.8rem;
    color: var(--gray);
    transition: transform 0.3s ease;
  }
  .qna-item.open .qna-q .arrow { transform: rotate(180deg); }

  .qna-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.3s ease;
    padding: 0 24px 0 64px;
    font-size: 0.9rem;
    line-height: 1.8;
    color: #555;
  }
  .qna-item.open .qna-a {
    max-height: 200px;
    padding: 0 24px 20px 64px;
  }

  /* ===== Sticky CTA Bar ===== */
  .sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: var(--pink);
    padding: 12px 24px;
    text-align: center;
    transform: translateY(100%);
    transition: transform 0.4s ease;
    box-shadow: 0 -4px 20px rgba(228,0,127,0.3);
  }
  .sticky-cta.visible { transform: translateY(0); }

  .sticky-cta a {
    color: white;
    text-decoration: none;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.5px;
  }

  /* ===== Responsive ===== */
@media (max-width: 768px) {
	
	    html, body {
    overflow-x: hidden !important;
    width: 100% !important;
    position: relative;
  }

    :root { --section-gap: 64px; }

    .about-content,
    .timeline-grid,
    .subjects-grid,
    .wc-layout,
    .wc-activities,
    .ml-layout,
    .voices-grid,
    .pricing-grid,
    .campus-grid {
      grid-template-columns: 1fr !important;
    }
	.pc{
		display: none;
	}
	.sp{
		display: block!important;
	}
	.hero-content{
		padding: 0 24px 80px;
	}
	.m_b_200{
		margin-bottom: 200px;
	}
	.hero-sub{
		font-weight: bold;
	}
	.hero-class,.hero-class01{
		width: 95%;
		padding: 10px 36px;
	}
	.hero-cats_s{
		font-size: 1rem;
		letter-spacing:normal;
	}
	.hero-bg img {
		margin-top: 70px;
   		 height: 50%;
	}
    .tl-photos {
      position: static;
      flex-direction: row;
    }

    .tl-photo { flex: 1; }
	  .hero-scroll {
		  transform: none;
	  }
    .hero-title { font-size: 2rem; }

    .arc-visual { gap: 10px; }
    .arc-circle { width: 72px; height: 72px; font-size: 1rem; }
    .arc-circle span:first-child { font-size: 1.2rem !important; }
    .arc-connector { font-size: 1rem; }

    .nav-inner { height: 70px; padding: 0 10px;}
	  .nav-cta{
		  font-size: 0.6rem;
	  }

    .pain-layout,
    .benefits-grid,
    .kids-grid,
    .founder-layout {
      grid-template-columns: 1fr;
    }
	  .white-canvas{
		  overflow: hidden;
	  }
    .benefits-grid { grid-template-columns: 1fr 1fr; }
	.benefit-icon{
		display: inline-block;
		line-height: 64px;
		text-align: center;
	}
	.benefit-card h4{
		display: inline-block;
		margin-left: 0.4em;
	}
	.benefit-card .action{
		    display: inline;
	}
	.container01{
		padding: 0 10px;
	}
	.pricing_box{
		background: none;
		box-shadow:none;
		padding: 40px 0;
	}
	.pricing_tax{
		font-size: 0.7rem;
	}
	.pricing_area_f,.pricting_txt{
		text-align: left;
	}
	.wc-image{
		box-shadow:none;
	}

    .founder-photo { position: static; width: 100%; margin: 0 auto; }

    .sticky-cta { padding: 10px 16px; }
    .sticky-cta a { font-size: 0.9rem; }
	.cta-steps{
		display: block;
	}
	.cta-step{
		justify-content: center;
	}
	.cta-step-arrow{
		justify-content: center;
		transform: rotate(90deg);
	}
}

  @media (max-width: 480px) {
    .hero-title { font-size: 2rem; }
    .btn-primary, .btn-secondary { padding: 14px 0; font-size: 0.9rem; min-height: 48px; width: 95%; text-align: center; margin: 0 auto; display: block;}
    .btn-white, .btn-outline-white { padding: 14px 28px; font-size: 0.9rem; min-height: 48px; }
    .benefits-grid { grid-template-columns: 1fr; }
    .wc-activities { grid-template-columns: 1fr !important; }
    .section-title { font-size: 1.3rem; }
  }

