    :root {--sakura:#d84f7b;--sakura-dark:#a8325b;--sakura-soft:#fff3f7;--navy:#233044;--green:#26776b;--green-soft:#edf8f6;--yellow-soft:#fff8df;--gray-900:#222;--gray-700:#555;--gray-500:#777;--gray-200:#e8e8e8;--gray-100:#f7f7f7;--white:#fff;--shadow:0 14px 35px rgba(35,48,68,.10);--radius-lg:22px;--radius-md:14px;--radius-sm:9px;--max:1120px}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--gray-900);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Meiryo",sans-serif;line-height:1.8;background:linear-gradient(180deg,#fff 0%,#fff 38%,#fafafa 100%)}a{color:inherit}.page{overflow:hidden}
    .hero{position:relative;padding:58px 20px 42px;background:radial-gradient(circle at 13% 18%,rgba(216,79,123,.18),transparent 28%),radial-gradient(circle at 88% 10%,rgba(38,119,107,.16),transparent 30%),linear-gradient(135deg,#fff 0%,#fff7fa 45%,#eefaf8 100%);border-bottom:1px solid rgba(35,48,68,.08)}.hero::after{content:"";position:absolute;right:-90px;bottom:-110px;width:320px;height:320px;border-radius:999px;background:rgba(216,79,123,.10);pointer-events:none}.hero__inner,.section__inner{width:min(100%,var(--max));margin:0 auto}.eyebrow{display:inline-flex;align-items:center;gap:.5em;margin:0 0 18px;padding:7px 14px;border-radius:999px;color:var(--sakura-dark);background:rgba(255,255,255,.86);border:1px solid rgba(216,79,123,.18);font-weight:700;font-size:.92rem;letter-spacing:.04em}.hero h1{margin:0;color:var(--navy);font-size:clamp(2rem,4vw,3.65rem);line-height:1.25;letter-spacing:.03em}.hero h1 span{color:var(--sakura-dark);white-space:nowrap}.lead{max-width:780px;margin:22px 0 0;color:#3d4654;font-size:clamp(1rem,1.6vw,1.16rem)}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
    .button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:999px;color:#fff;background:var(--sakura-dark);box-shadow:0 8px 20px rgba(168,50,91,.22);text-decoration:none;font-weight:800;line-height:1.4;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.button:hover,.button:focus-visible{transform:translateY(-2px);background:#93284e;box-shadow:0 12px 26px rgba(168,50,91,.26)}.button--sub{color:var(--navy);background:#fff;border:1px solid rgba(35,48,68,.15);box-shadow:none}.button--sub:hover,.button--sub:focus-visible{background:var(--sakura-soft);color:var(--sakura-dark);box-shadow:none}.button--green{background:var(--green);box-shadow:0 8px 20px rgba(38,119,107,.22)}.button--green:hover,.button--green:focus-visible{background:#1f655b;box-shadow:0 12px 26px rgba(38,119,107,.26)}
    .notice-bar{padding:14px 20px;background:var(--navy);color:#fff;font-size:.96rem}.notice-bar__inner{width:min(100%,var(--max));margin:0 auto;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.notice-bar strong{color:#ffe1eb}.nav-links{position:sticky;top:0;z-index:5;padding:10px 20px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--gray-200)}.nav-links__inner{width:min(100%,var(--max));margin:0 auto;display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.nav-links a{flex:0 0 auto;padding:8px 14px;border-radius:999px;background:var(--gray-100);color:var(--navy);text-decoration:none;font-weight:700;font-size:.92rem;white-space:nowrap}
    .section{padding:54px 20px}.section--soft{background:#fff}.section__head{margin-bottom:24px}.section__head h2{margin:0;color:var(--navy);font-size:clamp(1.55rem,2.7vw,2.35rem);line-height:1.35}.section__head p{max-width:760px;margin:10px 0 0;color:var(--gray-700)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}.summary-card{padding:18px;border-radius:var(--radius-md);background:rgba(255,255,255,.84);border:1px solid rgba(35,48,68,.10);box-shadow:0 10px 25px rgba(35,48,68,.06)}.summary-card span{display:block;color:var(--gray-500);font-size:.86rem;font-weight:700}.summary-card strong{display:block;margin-top:4px;color:var(--navy);font-size:1.15rem;line-height:1.4}
    .featured-card{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;padding:clamp(22px,4vw,36px);border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(216,79,123,.18);box-shadow:var(--shadow)}.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.badge{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;background:var(--gray-100);color:var(--gray-700);font-size:.82rem;font-weight:800;line-height:1.4}.badge--free{background:var(--sakura-soft);color:var(--sakura-dark);border:1px solid rgba(216,79,123,.18)}.badge--paid{background:var(--green-soft);color:var(--green);border:1px solid rgba(38,119,107,.16)}.badge--deadline{background:var(--yellow-soft);color:#795c00;border:1px solid rgba(121,92,0,.16)}.featured-card h3,.course-card h3{margin:0;color:var(--navy);font-size:clamp(1.28rem,2vw,1.7rem);line-height:1.45}.theme{margin:12px 0 0;font-size:1.05rem;font-weight:800;color:var(--sakura-dark)}.program-list{margin:18px 0 0;padding:0;list-style:none}.program-list li{position:relative;margin-top:10px;padding-left:1.4em}.program-list li::before{content:"";position:absolute;left:0;top:.78em;width:8px;height:8px;border-radius:50%;background:var(--sakura)}.info-panel{align-self:start;padding:22px;border-radius:var(--radius-md);background:var(--sakura-soft);border:1px solid rgba(216,79,123,.15)}.info-list{display:grid;gap:12px;margin:0 0 18px}.info-list div{display:grid;grid-template-columns:6.4em 1fr;gap:8px;padding-bottom:10px;border-bottom:1px solid rgba(35,48,68,.08)}.info-list div:last-child{border-bottom:0;padding-bottom:0}.info-list dt{color:var(--gray-500);font-weight:800;font-size:.88rem}.info-list dd{margin:0;color:var(--gray-900);font-weight:700}.lecture-note{margin:0 0 16px;color:var(--sakura-dark);font-size:.92rem;font-weight:700}.meta-item strong .holiday-text{display:inline;color:#d40000;font-size:inherit;line-height:inherit;font-weight:inherit}
    .course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.course-card{display:flex;flex-direction:column;min-height:100%;padding:24px;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(35,48,68,.10);box-shadow:0 10px 28px rgba(35,48,68,.07)}.course-card__status-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.course-card__no{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;font-weight:900;line-height:1;flex:0 0 auto}.course-status{display:inline-flex;align-items:center;min-height:34px;padding:5px 14px;border-radius:999px;font-size:.9rem;font-weight:900;line-height:1.35;letter-spacing:.02em}.course-status--open{color:#1f655b;background:#e7f6f2;border:1px solid rgba(38,119,107,.28)}.course-status--pending{color:#795c00;background:#fff5cf;border:1px solid rgba(121,92,0,.24)}.course-status--cancelled{color:#5d252d;background:#f5e7e9;border:1px solid rgba(140,55,68,.25)}.course-card__content{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}.course-card__teacher{margin:10px 0 0;color:var(--gray-700);font-size:.96rem;font-weight:700}.course-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0 0}.meta-item{padding:12px;border-radius:var(--radius-sm);background:var(--gray-100)}.meta-item span{display:block;color:var(--gray-500);font-size:.78rem;font-weight:800}.meta-item strong{display:block;margin-top:2px;color:var(--gray-900);font-size:.96rem;line-height:1.55}.course-card__action{margin-top:auto;padding-top:22px}.course-card__mask{display:none}.course-card.is-cancelled .course-card__content>a,.course-card.is-cancelled .course-card__content .course-card__action a{pointer-events:none}.course-card.is-cancelled .course-card__mask{position:absolute;inset:-4px -4px -4px;z-index:3;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:rgba(238,240,243,.82);backdrop-filter:grayscale(1);cursor:not-allowed}.course-card__mask span{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;border:3px solid rgba(35,48,68,.66);color:rgba(35,48,68,.82);background:rgba(255,255,255,.76);font-size:clamp(1.35rem,3vw,2rem);font-weight:900;letter-spacing:.12em;line-height:1.25;transform:rotate(-4deg);box-shadow:0 6px 18px rgba(35,48,68,.12)}
    .note-box{margin-top:28px;padding:22px;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(35,48,68,.12)}.note-box h3{margin:0 0 8px;color:var(--navy);font-size:1.22rem}.note-box p{margin:0;color:var(--gray-700)}.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:flow}.flow__item{position:relative;padding:22px;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(35,48,68,.10)}.flow__item::before{counter-increment:flow;content:counter(flow,decimal-leading-zero);display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;margin-bottom:14px;border-radius:50%;background:var(--sakura-soft);color:var(--sakura-dark);font-weight:900}.flow__item h3{margin:0 0 8px;color:var(--navy);font-size:1.07rem}.flow__item p{margin:0;color:var(--gray-700);font-size:.95rem}.flow--detail{grid-template-columns:repeat(2,minmax(0,1fr))}.flow__item p+p{margin-top:10px}.flow__item ul{margin:12px 0 0;padding-left:1.25em;color:var(--gray-700);font-size:.92rem}.flow__item li+li{margin-top:6px}.flow__label{display:inline-block;margin-bottom:10px;padding:4px 10px;border-radius:999px;color:var(--sakura-dark);background:var(--sakura-soft);font-size:.82rem;font-weight:800}.flow__subhead{display:block;margin-top:14px;color:var(--navy);font-weight:800}.caution-list{margin:0;padding-left:1.2em;color:var(--gray-700)}.caution-list li+li{margin-top:8px}.contact{padding:26px;border-radius:var(--radius-lg);background:var(--navy);color:#fff}.contact h2{margin:0 0 12px;font-size:1.55rem}.contact p{margin:0;color:rgba(255,255,255,.86)}.contact a{color:#fff;font-weight:800}.footer-note{padding:24px 20px 44px;color:var(--gray-500);text-align:center;font-size:.9rem}
    @media(max-width:900px){.summary-grid,.flow{grid-template-columns:repeat(2,1fr)}.featured-card{grid-template-columns:1fr}.course-grid{grid-template-columns:1fr}}@media(max-width:620px){.hero{padding-top:42px}.notice-bar__inner{display:block}.summary-grid,.flow,.course-meta{grid-template-columns:1fr}.info-list div{grid-template-columns:1fr;gap:2px}.button{width:100%}.course-card__status-row{align-items:flex-start}.course-status{min-height:34px}}
