:root { --navy:#111745; --blue:#3154f5; --violet:#8035f5; --pink:#ed2a87; --orange:#ff5a1f; --paper:#f8f7fb; --line:#dcddea; --font-en:Arial; --font-jp:"Noto Sans JP"; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--navy); background:#f2f2f6; font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; line-height:1.8; overflow-x:hidden; }
main { width:100%; max-width:1180px; margin:0 auto; background:#fff; box-shadow:0 0 45px #1117450d; }
a { color:inherit; text-decoration:none; }
.site-header { height:84px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px,5vw,72px); border-bottom:1px solid #ececf3; background:rgba(255,255,255,.92); position:relative; z-index:5; }
.brand { display:flex; align-items:center; }
.brand img { display:block; width:124px; height:auto; }
.header-link { font-size:13px; font-weight:700; border-bottom:2px solid var(--blue); }
.hero { min-height:690px; padding:80px clamp(24px,7vw,110px); display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,390px); align-items:center; gap:clamp(48px,6vw,78px); position:relative; overflow:hidden; background:radial-gradient(circle at 76% 25%,#fff0f6 0,transparent 25%),radial-gradient(circle at 35% 80%,#edf0ff 0,transparent 28%); }
.sound-wave { position:absolute; top:43px; left:27%; width:65%; height:20px; opacity:.55; background:linear-gradient(90deg,var(--blue),var(--violet),var(--pink),var(--orange)); clip-path:polygon(0 47%,3% 43%,4% 10%,5% 90%,6% 40%,10% 45%,11% 25%,12% 75%,13% 48%,19% 45%,20% 10%,21% 87%,22% 38%,31% 48%,33% 27%,34% 67%,35% 47%,44% 46%,45% 7%,46% 92%,47% 45%,54% 49%,55% 21%,56% 80%,57% 47%,65% 43%,66% 13%,67% 90%,68% 47%,76% 50%,77% 25%,78% 75%,79% 48%,87% 45%,88% 10%,89% 93%,90% 44%,100% 48%,100% 55%,0 55%); }
.eyebrow,.section-label { font:700 12px/1 var(--font-en),sans-serif; letter-spacing:.18em; color:var(--blue); margin:0 0 28px; }
.hero h1 { margin:0; font-size:clamp(32px,4vw,64px); line-height:1.22; letter-spacing:-.04em; }
.hero-copy { min-width:0; }
.hero h1 span { display:block; max-width:100%; font-family:var(--font-en),sans-serif; font-size:clamp(43px,6.4vw,92px); line-height:.98; margin-bottom:24px; background:linear-gradient(90deg,#244eea,#8235e9,#ed3279,#ff5b19); -webkit-background-clip:text; color:transparent; white-space:normal; overflow-wrap:anywhere; }
.hero-lead { font-size:clamp(20px,2vw,29px); line-height:1.55; font-weight:700; margin:34px 0 18px; }
.hero-description { max-width:650px; font-size:15px; color:#434867; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:34px; flex-wrap:wrap; }
.apply-button { min-width:250px; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; padding:15px 26px; border-radius:5px; color:#fff; font-weight:800; line-height:1.25; background:linear-gradient(100deg,var(--blue),var(--violet),var(--pink),var(--orange)); box-shadow:0 10px 26px #5735df35; transition:.2s; }
.apply-button:hover { transform:translateY(-2px); box-shadow:0 14px 32px #5735df45; }
.apply-button small { font-size:10px; font-weight:500; margin-top:5px; }
.apply-button.is-pending { filter:saturate(.55); cursor:not-allowed; }
.text-link { font-size:13px; font-weight:700; }
.text-link span { margin-left:8px; color:var(--pink); }
.hero-card { background:var(--navy); color:#fff; padding:34px; box-shadow:18px 18px 0 #ffedf4; transform:rotate(1deg); }
.date-kicker { color:#ffbcda; font:700 12px/1 var(--font-en); letter-spacing:.14em; }
.date-number { font:700 86px/.9 var(--font-en); letter-spacing:-.08em; margin:24px 0 10px; }
.date-number span { font-size:42px; color:#ff5d9d; padding:0 7px; }
.time { font:600 21px/1 var(--font-en); padding-bottom:28px; border-bottom:1px solid #ffffff38; }
.hero-card dl { margin:24px 0 0; }
.hero-card dl div { display:grid; grid-template-columns:68px 1fr; padding:11px 0; border-bottom:1px solid #ffffff1d; }
.hero-card dt { color:#adb4e2; font-size:11px; }
.hero-card dd { margin:0; font-weight:700; line-height:1.45; }
.hero-card dd small { display:block; font-weight:400; font-size:10px; color:#adb4e2; }
.section-pad { padding:110px clamp(24px,8vw,130px); }
.split-heading { display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,7vw,82px); }
.split-heading h2,.section-intro h2,.recommend h2,.schedule h2,.overview h2,.notice h2,.final-cta h2,.clinic h2 { margin:0; font-size:clamp(32px,4vw,58px); line-height:1.35; letter-spacing:-.04em; }
.split-heading p { margin:0 0 20px; color:#474b64; }
.question-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:64px; }
.question-grid blockquote { margin:0; padding:30px; min-height:150px; border:1px solid var(--line); display:flex; align-items:center; gap:24px; font-size:clamp(20px,2vw,29px); font-weight:700; line-height:1.55; background:#fff; }
.question-grid blockquote p { margin:0; }
.question-mark { flex:0 0 auto; font:700 72px/1 var(--font-en); color:#dadcf3; }
.section-label.light { color:#ffb7db; }
.section-intro { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:60px; }
.section-intro p { color:#666a81; }
.program-list article { display:grid; grid-template-columns:90px 1fr; gap:30px; padding:45px 0; border-top:1px solid var(--line); }
.program-list article>span { font:600 48px/1 var(--font-en); color:#d0d3ed; }
.program-list h3 { margin:0 0 15px; font-size:26px; }
.program-list p { color:#565a71; max-width:850px; }
.program-list .program-note { margin-top:12px; font-size:12px; color:#777a8e; }
.tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.tags span { padding:5px 13px; border:1px solid #b7bcef; border-radius:999px; color:#3947b6; font:600 12px var(--font-en); }
.noise-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:28px; }
.noise-grid div { padding:18px; background:#f5f5fb; }
.noise-grid strong,.noise-grid small { display:block; }
.noise-grid small { color:#676a7c; margin-top:5px; line-height:1.5; }
.recommend { background:#f4f4f9; display:grid; grid-template-columns:.8fr 1.3fr; gap:28px clamp(48px,7vw,82px); }
.recommend ul { list-style:none; margin:0; padding:0; }
.recommend li { padding:16px 0 16px 38px; border-bottom:1px solid #d6d6e2; font-weight:600; position:relative; }
.recommend li::before { content:"✓"; position:absolute; left:0; color:var(--blue); font-weight:800; }
.recommend-note { grid-column:2; margin:0; font-size:13px; color:#65687c; }
.recommend-note-secondary { margin-top:-12px; }
.schedule h2 { margin-bottom:65px; }
.schedule-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.schedule-list li { display:grid; grid-template-columns:150px 1fr; gap:36px; align-items:center; padding:28px 0; border-bottom:1px solid var(--line); }
.schedule-list>li>span { color:var(--blue); font-size:13px; font-weight:800; }
.schedule-list div { display:flex; align-items:baseline; justify-content:space-between; gap:30px; }
.schedule-list h3 { margin:0; font-size:20px; line-height:1.6; }
.schedule-list p { flex:0 0 auto; margin:0; color:#777a8e; font-size:13px; }
.lunch-note { display:flex; align-items:flex-start; gap:18px; margin-top:32px; padding:24px 28px; background:#f5f5fb; }
.lunch-note>span { color:var(--blue); font-weight:800; }
.lunch-note p { margin:0; line-height:1.6; }
.lunch-note strong,.lunch-note small { display:block; }
.lunch-note strong { font-size:16px; }
.lunch-note small { margin-top:4px; color:#686b7e; font-size:12px; }
.fineprint { margin-top:45px; color:#777a8e; font-size:12px; }
.overview { background:var(--navy); color:#fff; }
.overview-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(48px,7vw,82px); }
.overview-layout>div>p { color:#b8bddf; }
.overview dl { margin:0; }
.overview dl div { display:grid; grid-template-columns:120px 1fr; gap:25px; padding:22px 0; border-bottom:1px solid #ffffff26; }
.overview dt { color:#9299cc; font-size:12px; }
.overview dd { margin:0; font-size:17px; }
.overview dd strong { font-size:26px; }
.overview dd small { display:block; color:#b8bddf; font-size:12px; margin-top:3px; }
.access-link { display:inline-flex; align-items:center; gap:6px; margin-top:12px; color:#fff; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.access-link:hover { color:#ff7bba; }
.notice h2 { margin-bottom:50px; }
.notice-copy { max-width:850px; color:#555a72; font-size:15px; }
.notice-copy p { margin:0 0 24px; }
.notice-copy p:last-child { margin-bottom:0; }
.registration-status { text-align:center; background:#f4f4f9; scroll-margin-top:24px; }
.registration-status h2 { margin:0; font-size:clamp(30px,4vw,52px); line-height:1.4; letter-spacing:-.04em; }
.registration-status>p:last-child { margin:18px 0 0; color:#65687c; }
.final-cta { text-align:center; color:#fff; background:linear-gradient(120deg,#294bf0,#8732ee 52%,#f13775,#ff641e); }
.final-cta h2 { margin-bottom:20px; }
.final-cta>p:not(.section-label) { margin-bottom:35px; }
.final-cta .apply-button { background:#fff; color:var(--navy); box-shadow:none; }
footer { min-height:100px; padding:28px clamp(24px,5vw,72px); display:flex; align-items:center; justify-content:space-between; background:#0a0e31; color:#fff; }
.footer-brand { display:flex; align-items:center; width:150px; padding:7px 12px; border-radius:6px; background:#fff; }
.footer-brand img { display:block; width:100%; height:auto; }
footer small { color:#858bb6; }

@media (max-width: 1100px) {
  .hero { grid-template-columns:minmax(0,1fr); gap:52px; }
  .hero h1 span { font-size:clamp(43px,9vw,78px); overflow-wrap:normal; }
  .hero-card { width:min(100%,520px); transform:none; }
}

@media (max-width: 760px) {
  .site-header { height:68px; padding:0 20px; }
  .brand img { width:98px; }
  .hero { min-height:auto; padding:78px 22px 66px; grid-template-columns:1fr; gap:50px; }
  .sound-wave { left:22%; width:75%; top:26px; }
  .hero h1 span { font-size:clamp(36px,12vw,48px); line-height:1; overflow-wrap:normal; }
  .desktop-only { display:none; }
  .hero-description { font-size:14px; }
  .hero-actions { align-items:stretch; flex-direction:column; gap:18px; }
  .apply-button { width:100%; }
  .hero-card { transform:none; box-shadow:10px 10px 0 #ffedf4; padding:28px; }
  .date-number { font-size:72px; }
  .section-pad { padding:78px 22px; }
  .split-heading,.recommend,.overview-layout { grid-template-columns:1fr; gap:36px; }
  .question-grid,.noise-grid { grid-template-columns:1fr; }
  .question-grid { margin-top:44px; }
  .question-grid blockquote { min-height:125px; padding:25px; }
  .section-intro { display:block; margin-bottom:38px; }.section-intro p { margin-top:18px; }
  .program-list article { grid-template-columns:48px 1fr; gap:14px; padding:35px 0; }
  .program-list article>span { font-size:28px; }
  .program-list h3 { font-size:21px; }
  .recommend-note { grid-column:1; }
  .schedule-list li { grid-template-columns:70px 1fr; gap:14px; align-items:start; padding:22px 0; }
  .schedule-list div { display:block; }
  .schedule-list h3 { font-size:17px; }
  .schedule-list p { margin-top:4px; }
  .overview dl div { grid-template-columns:85px 1fr; gap:10px; }
  .recommend-note { grid-column:1; }
  footer { flex-direction:column; gap:8px; text-align:center; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
