:root{color-scheme:light;--ink:#111;--paper:#fff;--gray:#f5f5f5;--line:#d9d9d9}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:2;overflow-wrap:anywhere}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:6px}
a:focus-visible{outline:2px solid #111;outline-offset:6px}
.wrap{max-width:1160px;margin-inline:auto;width:calc(100% - 96px)}
.header{min-height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:32px}
.brand{font-size:30px;font-weight:600;letter-spacing:-1px;line-height:1.4;margin:0}
.header nav{display:flex;gap:34px;font-size:13px;font-weight:600;letter-spacing:.08em}
.header nav a{padding-block:12px}
.hero{padding-top:100px;padding-bottom:48px}
h1{font-size:clamp(40px,5.1vw,64px);line-height:1.6;letter-spacing:.015em;font-weight:600;margin:0 0 36px}
h1 span{display:block}
.hero-copy{font-size:18px;line-height:2.1;margin:0 0 64px}
.hero-meta{border-top:1px solid var(--ink);padding-top:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:32px;font-size:14px}
.hero-meta p{margin:0}
.hero-meta span{margin-inline:8px}
.hero-meta strong{font-size:20px;font-weight:500;margin-left:8px}
.hero-meta .term{margin:0;font-size:13px}
.section{padding:96px 0;scroll-margin-top:24px}
.gray{background:var(--gray)}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;line-height:1.6;margin:0 0 24px}
h2{font-size:clamp(27px,3vw,38px);line-height:1.7;letter-spacing:.02em;font-weight:600;margin:0 0 40px}
h3{font-size:23px;line-height:1.7;font-weight:600;margin:0 0 18px}
.prose{max-width:760px}
.prose p{margin:0 0 24px}
.prose p:last-child{margin-bottom:0}
ul{padding-left:1.25em;margin:20px 0 24px}
li{padding-left:.15em}
.intro{margin:0 0 44px}
.service-row{display:grid;grid-template-columns:280px minmax(0,1fr);gap:60px;border-top:1px solid var(--line);padding:42px 0}
.service-row:last-child{padding-bottom:0}
.number{font-size:15px;margin:0 0 14px}
.service-en{margin-top:10px}
.activity-list{margin:44px 0}
.activity-list>div,.price-details>div{display:grid;grid-template-columns:280px minmax(0,1fr);gap:60px;border-top:1px solid var(--line);padding:30px 0}
.activity-list dt>span{display:block}
.activity-list dt .eyebrow{margin-bottom:8px}
.activity-list dt{font-size:20px;font-weight:600}
.activity-list dd,.price-details dd{margin:0}
.activity-list dd ul{margin:0;list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 24px}
.activity-list dd p{margin:0 0 18px}
.cycle{font-size:clamp(17px,2.2vw,25px);font-weight:500;letter-spacing:.02em;line-height:1.8;margin:32px 0 20px}
.years{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:48px;border-top:1px solid var(--ink)}
.years article{padding:32px 28px 24px 0}
.years article+article{border-left:1px solid var(--line);padding-left:28px}
.years .eyebrow{margin-bottom:12px}
.year-en{font-size:28px;line-height:1.4;letter-spacing:.02em;margin:0 0 22px}
.years h3{font-size:20px}
.years article>p:not(.eyebrow):not(.year-en){margin:0 0 22px}
.graduation{border-top:1px solid var(--ink);padding-top:34px;margin-top:12px;display:grid;grid-template-columns:280px 1fr;gap:60px}
.graduation .eyebrow{margin-bottom:14px}
.price-line{display:flex;align-items:baseline;gap:48px;border-bottom:1px solid var(--ink);padding:0 0 24px;margin-bottom:8px}
.price-line p{margin:0}
.price-line p:first-child strong{font-size:clamp(40px,5vw,62px);font-weight:500;line-height:1.4;letter-spacing:-.03em;margin-right:12px}
.price-line p:last-child strong{font-size:22px;font-weight:500}
.price-details{margin:0}
.price-details>div:first-child{border:0}
.price-details dt{font-weight:600}
.plain-list{list-style:none;padding:0;margin:0 0 24px}
.plain-list li{padding:0}
.price-details dd p{max-width:760px;margin:0 0 16px}
.fit-list{list-style:none;padding:0;max-width:850px;margin:0}
.fit-list li{border-top:1px solid var(--line);padding:16px 0}
.fit-list li:last-child{border-bottom:1px solid var(--line)}
.not-fit{margin-top:56px}
.not-fit h3{font-size:23px;margin-bottom:28px}
.contact-price{margin:40px 0 36px}
.contact-status{display:flex;gap:60px;padding-block:24px;border-block:1px solid var(--ink);max-width:760px}
.contact-status span:first-child{font-size:13px;letter-spacing:.12em}
.footer{border-top:1px solid var(--line);padding-block:40px;display:flex;align-items:center;justify-content:space-between}
.footer>p:last-child{font-size:14px}
.skip{position:absolute;top:8px;left:24px;transform:translateY(-200%);background:white;padding:8px 16px;z-index:2}
.skip:focus{transform:none}
@media(max-width:700px){.wrap{width:calc(100% - 44px)}
.header{min-height:112px;display:block;padding-block:22px 14px}
.brand{font-size:27px}
.header nav{justify-content:space-between;gap:12px;font-size:12px;margin-top:12px}
.hero{padding-top:56px;padding-bottom:36px}
h1{font-size:clamp(27px,6.5vw,44px);line-height:1.7;letter-spacing:0;margin-bottom:30px}
.hero-copy{font-size:16px;margin-bottom:40px}
.hero-meta{display:block;padding-top:22px}
.hero-meta>p:first-child{font-size:13px;margin-bottom:18px}
.hero-meta span{margin-inline:3px}
.section{padding:60px 0}
.eyebrow{margin-bottom:18px}
h2{font-size:26px;line-height:1.75;margin-bottom:28px}
.desktop-break{display:none}
.service-row,.activity-list>div,.price-details>div,.graduation{grid-template-columns:1fr;gap:20px}
.service-row{padding-block:30px}
.service-en{margin-bottom:0}
.service-row h3{margin-bottom:8px}
.activity-list dd ul{grid-template-columns:1fr}
.activity-list{margin-block:32px}
.years{grid-template-columns:1fr;margin-top:32px}
.years article,.years article+article{border-left:0;padding:28px 0}
.years article+article{border-top:1px solid var(--line)}
.years article>p:last-child{margin-bottom:0}
.graduation{margin-top:0}
.price-line{display:block}
.price-line p:first-child{font-size:14px;margin-bottom:12px}
.price-line p:first-child strong{font-size:42px}
.price-details>div{padding-block:24px;gap:12px}
.contact-status{justify-content:space-between;gap:20px}
.footer{align-items:flex-start;padding-block:28px}
.footer>p:last-child{margin:0}
.not-fit{margin-top:40px}
}
@media print{.skip,.header nav{display:none}
.wrap{width:100%}
.section{padding:32px 0}
.hero{padding-top:32px}
h1{font-size:36px}
h2,h3{break-after:avoid}
p,li{orphans:3;widows:3}
}


/* Centered editorial revision */
body { text-align: center; }

.prose, .fit-list, .contact-status, .price-details, .activity-list { margin-inline: auto; }

.hero-meta, .price-line, .footer { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }

.hero-copy { max-width: 1000px; margin-inline: auto; }

.service-row, .activity-list > div, .price-details > div, .graduation { grid-template-columns: 1fr; gap: 24px; }

ul { list-style: none; padding-inline: 0; }

li { padding-inline: 0; }

.activity-list dd ul { grid-template-columns: 1fr; }

.service-row .prose { width: 100%; }

.years article, .years article + article { padding-inline: 28px; }

.price-details { max-width: 760px; }

.contact-status { display: block; font-size: 1rem; }

#learning h2 { max-width: 900px; margin-inline: auto; }

.footer { gap: 0; }

@media (max-width: 700px) { .hero-meta, .price-line, .footer { align-items: center; }
 .years article, .years article + article { padding-inline: 0; }
 }

.footer > .brand:last-child { font-size: 30px; }

/* 見出しと本文を一組として、組の内外にゆとりを持たせる */
body { text-align: center; line-height: 2.6; }
.hero { padding-top: 128px; padding-bottom: 80px; }
h1 { margin-bottom: 52px; }
.hero-copy { line-height: 2.6; margin-bottom: 80px; }
.hero-meta { padding-top: 36px; gap: 28px; }
.section { padding-block: 144px; }
h2 { line-height: 1.9; margin-bottom: 48px; }
.prose p { margin-bottom: 32px; }
.prose p:last-child { margin-bottom: 0; }
.price-line { gap: 24px; padding-bottom: 48px; }
.price-details > div { padding-block: 56px; gap: 28px; }
.price-details dt { font-size: 1.125rem; line-height: 1.9; }
.plain-list { margin: 0; }
.plain-list li { padding-block: 6px; }
.fit-list li { padding-block: 24px; }
.contact-price { margin-top: 0; margin-bottom: 56px; }
.contact-status { padding-block: 36px; }
.footer { padding-block: 56px; }
@media (max-width: 700px) {
  body { line-height: 2.5; }
  .hero { padding-top: 80px; padding-bottom: 56px; }
  h1 { margin-bottom: 36px; }
  .hero-copy { line-height: 2.5; margin-bottom: 56px; }
  .section { padding-block: 96px; }
  h2 { line-height: 1.9; margin-bottom: 36px; }
  .prose p { margin-bottom: 28px; }
  .price-details > div { padding-block: 44px; gap: 24px; }
  .plain-list li { padding-block: 7px; }
  .fit-list li { padding-block: 24px; }
  .contact-status { padding-block: 28px; }
}
