/* 下層ページ第1案。既存CSSの順序を維持し、sp-page配下の新部品だけを追加。 */
.sp-page { color:#10292c; }
.sp-hero { padding:calc(var(--h-header) + 30px) 0 56px; background:#EAF8F8; }
.sp-hero .crumb { margin:0 0 28px; font-size:12px; }
.sp-hero__grid { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center; }
.sp-label { font-size:14px; font-weight:700; margin:0 0 18px; color:#0f5f66; }
.sp-hero h1 { font-size:clamp(30px,3.2vw,46px); line-height:1.42; font-weight:800; letter-spacing:-.035em; color:#10292c; }
.sp-lead { margin:24px 0 0; max-width:42em; font-size:16px; line-height:1.95; }
.sp-photo { margin:0; overflow:hidden; border-radius:14px; background:#D6F1F1; }
.sp-photo img { width:100%; height:100%; aspect-ratio:3/2; object-fit:cover; }
.sp-hero .sp-photo { transform:rotate(2deg); border-radius:14px 80px 14px 14px; }
.sp-hero .sp-photo img { aspect-ratio:4/3; }
.sp-hero--plain .sp-hero__grid { display:block; max-width:880px; }
.sp-hero--plain { background:linear-gradient(110deg,#EAF8F8 0 74%,#D6F1F1 74%); }
.sp-chapters { display:flex; flex-wrap:wrap; gap:0 24px; padding-block:20px; border-bottom:1px solid #cfe3e4; }
.sp-chapters a { font-size:14px; padding:8px 0; color:#0f5f66; font-weight:700; }
.sp-chapters a::after { content:'↓'; margin-left:16px; }
.sp-section { padding:80px 0; scroll-margin-top:80px; }
.sp-section--tint { background:#f1fafa; }
.sp-section h2 { font-size:clamp(26px,3vw,40px); letter-spacing:-.025em; line-height:1.45; margin:0 0 32px; color:#10292c; }
.sp-section h3 { color:#10292c; }
.sp-section__lead { margin-top:-16px; margin-bottom:28px; }
.sp-section p { max-width:76ch; }
.sp-path { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; counter-reset:step; }
.sp-path li { padding:24px 20px 20px 0; border-top:3px solid #78CDCF; }
.sp-path li+li { position:relative; }
.sp-path li+li::before { content:'›'; position:absolute; left:-23px; top:21px; font-size:30px; color:#0f5f66; }
.sp-step { display:block; color:#0f5f66; font-size:14px; font-weight:700; margin-bottom:12px; }
.sp-path h3 { font-size:22px; margin-bottom:12px; }
.sp-path p { font-size:15px; margin:0; }
.sp-path--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.sp-rows { margin:0; border-top:1px solid #bcd8d9; }
.sp-rows > div { display:grid; grid-template-columns:250px minmax(0,1fr); gap:30px; padding:24px 0; border-bottom:1px solid #bcd8d9; }
.sp-rows dt { font-weight:700; }
.sp-rows dd { margin:0; max-width:52em; }
.sp-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center; }
.sp-body-large { font-size:22px; font-weight:700; line-height:1.7; }
.sp-subtitle { font-size:26px; margin-bottom:20px; }
.sp-roleline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.sp-roleline > div { padding:8px 0; }
.sp-roleline h3 { font-size:24px; margin-bottom:14px; }
.sp-roleline p { margin:0; }
.sp-note { font-size:13px; line-height:1.85; color:#4B4E61; margin-top:20px; }
.sp-scope { font-size:14px; color:#4B4E61; }
.sp-ranks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; background:#fff; border-bottom:4px solid #78CDCF; }
.sp-ranks > div { padding:28px 20px; border-right:1px solid #cfe3e4; }
.sp-ranks strong { display:block; font-family:var(--f-num); font-size:40px; line-height:1.5; color:#0f5f66; }
.sp-ranks p { margin:0; font-size:13px; }
.sp-calendar { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:32px; }
.sp-calendar > div { display:flex; align-items:baseline; gap:18px; padding:20px 28px; background:#EAF8F8; flex-wrap:wrap; }
.sp-calendar strong { font-size:38px; }
.sp-calendar small { margin-left:auto; font-size:13px; }
.sp-formula { display:flex; align-items:center; gap:16px; margin:28px 0; padding:28px; background:#EAF8F8; }
.sp-formula > div { flex:1; }
.sp-formula b { display:block; font-size:20px; }
.sp-formula span { font-size:13px; }
.sp-formula i { font-style:normal; font-size:26px; }
.sp-example-head { display:flex; gap:20px; flex-wrap:wrap; margin-bottom:18px; }
.sp-pay { display:grid; grid-template-columns:1fr 1fr; background:#fff; border-top:4px solid #0f5f66; }
.sp-pay article { padding:28px; }
.sp-pay article+article { background:#D6F1F1; }
.sp-pay h3 { font-size:18px; }
.sp-pay .sp-pay__number { font-family:var(--f-num); font-size:clamp(38px,4.5vw,58px); font-weight:700; line-height:1.3; margin:24px 0 18px; white-space:nowrap; letter-spacing:-.02em; }
.sp-pay__number span { font-family:var(--f-jp); font-size:14px; margin-left:8px; }
.sp-dorm { display:grid; grid-template-columns:1fr 1.4fr; gap:48px; align-items:center; margin-bottom:40px; }
.sp-dorm__amount strong { display:block; font-size:52px; line-height:1.7; white-space:nowrap; }
.sp-dorm__amount strong span { font-size:22px; }
.sp-dorm h3 { margin-bottom:16px; }
.sp-learning { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.sp-learning h3 { font-size:25px; margin:20px 0 10px; }
.sp-learning p { font-size:15px; }
.sp-feature-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.sp-feature-pair article { border-top:3px solid #78CDCF; padding:24px 0 0; }
.sp-feature-pair article > span { color:#0f5f66; font-weight:700; }
.sp-feature-pair h3 { font-size:26px; margin:14px 0 18px; }
.sp-feature-pair p { max-width:32em; }
.sp-inline-note { margin-top:40px; padding:24px; background:#EAF8F8; }
.sp-inline-note p { margin:10px 0 0; }
.sp-minor-link { margin:18px 0 0; }
.sp-minor-link a { text-decoration:underline; font-weight:700; }
.sp-faq { border-top:1px solid #bcd8d9; }
.sp-faq details { border-bottom:1px solid #bcd8d9; }
.sp-faq summary { display:flex; justify-content:space-between; align-items:baseline; gap:20px; cursor:pointer; list-style:none; padding:26px 0; font-size:19px; font-weight:700; }
.sp-faq summary::-webkit-details-marker { display:none; }
.sp-faq summary::after { content:'＋'; font-size:24px; color:#0f5f66; flex-shrink:0; }
.sp-faq details[open] summary::after { content:'−'; }
.sp-faq details > div { padding:0 36px 20px 0; max-width:880px; }
.sp-choice { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.sp-choice article { padding:36px; background:#EAF8F8; border-radius:14px; }
.sp-choice article+article { background:#fff8ef; }
.sp-choice h2 { font-size:27px; margin-bottom:20px; }
.sp-phone { display:inline-block; font-size:clamp(28px,3vw,40px); font-family:var(--f-num); font-weight:700; white-space:nowrap; }
.sp-job-feature { display:flex; justify-content:space-between; gap:24px; align-items:center; border-block:1px solid #bcd8d9; padding:32px 0; }
.sp-job-feature h3 { font-size:28px; margin:10px 0 20px; }
.sp-job-feature p { margin:0; color:#333; }
.sp-filters { display:flex; flex-wrap:wrap; align-items:end; gap:24px; padding:28px; background:#EAF8F8; }
.sp-filters label { display:flex; flex-direction:column; gap:8px; font-weight:700; flex:1; min-width:220px; }
.sp-filters select { font:inherit; font-size:16px; width:100%; padding:14px; border:1px solid #9bbfc1; border-radius:6px; background:#fff; color:#10292c; }
.sp-filters button { font-size:14px; background:#fff; border:1px solid #9bbfc1; padding:14px; border-radius:6px; min-height:52px; }
.sp-count { margin:26px 0 12px; font-weight:700; }
.sp-jobs { border-top:1px solid #bcd8d9; }
.sp-job { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:28px 0; border-bottom:1px solid #bcd8d9; }
.sp-job[hidden],.sp-empty[hidden] { display:none; }
.sp-status { display:inline-block; border:1px solid #cfe3e4; padding:3px 10px; color:#4B4E61; font-size:12px; border-radius:5px; }
.sp-status--open { background:#0f5f66; border-color:#0f5f66; color:#fff; }
.sp-job p { margin:10px 0 4px; font-size:13px; }
.sp-job h2 { font-size:23px; margin:0; }
.sp-job h2 a { color:#10292c; }
.sp-job__go { white-space:nowrap; font-size:13px; font-weight:700; display:flex; gap:24px; align-items:center; }
.sp-job__go i { border:1px solid #78CDCF; padding:8px 14px; border-radius:50%; font-size:22px; font-style:normal; }
.sp-empty { padding:40px 20px; background:#f1fafa; }
.sp-next { padding:56px 0; background:#f1fafa; }
.sp-next h2 { font-size:20px; margin:0 0 24px; }
.sp-next .wrap > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.sp-next a { display:grid; grid-template-columns:1fr auto; border-top:1px solid #a4c9cb; padding:20px 0 8px; gap:6px; }
.sp-next span { font-size:12px; grid-column:1/-1; color:#4B4E61; }
.sp-next b { font-size:19px; }
.sp-next i { font-style:normal; }
.sp-cta { padding:60px 0; background:#0f5f66; color:#fff; }
.sp-cta .wrap { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.sp-cta h2 { color:#fff; font-size:30px; margin-bottom:14px; }
.sp-cta p { margin:0; }
.sp-actions { display:flex; flex-direction:column; gap:16px; flex-shrink:0; }
.sp-cta .btn--ghost { color:#fff; }
.sp-cta .btn--ghost:hover { color:#0f5f66; }
@media(max-width:1100px) { .sp-hero__grid { gap:32px; } .sp-calendar > div { gap:12px; } .sp-calendar small { margin-left:0; } .sp-rows > div { grid-template-columns:210px 1fr; } }
@media(max-width:760px) {
 .sp-hero { padding:calc(var(--h-header-s) + 22px) 0 36px; }
 .sp-hero .crumb { margin-bottom:20px; }
 .sp-hero__grid,.sp-split { grid-template-columns:1fr; gap:28px; }
 .sp-hero h1 { font-size:clamp(30px,7.3vw,42px); }
 .sp-lead { margin-top:20px; font-size:15px; }
 .sp-hero .sp-photo { transform:none; border-radius:12px 48px 12px 12px; }
 .sp-hero .sp-photo img { aspect-ratio:3/2; }
 .sp-section { padding:48px 0; }
 .sp-section h2 { margin-bottom:26px; }
 .sp-chapters { gap:0 20px; padding-block:12px; }
 .sp-chapters a { font-size:12px; }
 .sp-chapters a::after { margin-left:8px; }
 .sp-path,.sp-path--four,.sp-roleline,.sp-pay,.sp-feature-pair,.sp-choice,.sp-dorm { grid-template-columns:1fr; gap:24px; }
 .sp-path li { padding:18px 0 8px; }
 .sp-path li+li::before { display:none; }
 .sp-rows > div { grid-template-columns:1fr; gap:8px; padding:20px 0; }
 .sp-rows dd { font-size:15px; }
 .sp-ranks { grid-template-columns:1fr 1fr; }
 .sp-ranks > div { padding:20px 16px; }
 .sp-ranks strong { font-size:34px; }
 .sp-calendar { gap:12px; }
 .sp-calendar > div { display:block; padding:18px; }
 .sp-calendar strong,.sp-calendar small { display:block; }
 .sp-calendar strong { font-size:32px; }
 .sp-calendar small { font-size:12px; }
 .sp-formula { flex-direction:column; align-items:stretch; padding:20px; gap:10px; }
 .sp-formula i { line-height:1; text-align:center; }
 .sp-pay { gap:0; }
 .sp-pay article { padding:24px; }
 .sp-pay .sp-pay__number { font-size:46px; }
 .sp-dorm__amount strong { font-size:44px; }
 .sp-learning { grid-template-columns:1fr; gap:24px; }
 .sp-learning article { display:grid; grid-template-columns:120px 1fr; gap:0 16px; align-items:start; }
 .sp-learning .sp-photo { grid-row:1/3; }
 .sp-learning img { aspect-ratio:1; }
 .sp-learning h3 { margin:0 0 6px; font-size:22px; }
 .sp-learning p { font-size:14px; margin:0; }
 .sp-choice article { padding:24px; }
 .sp-choice h2 { font-size:25px; }
 .sp-job-feature,.sp-job { display:block; }
 .sp-job-feature b { display:block; margin-top:20px; }
 .sp-job__go { justify-content:flex-end; margin-top:16px; }
 .sp-job h2 { font-size:21px; }
 .sp-filters { padding:20px; gap:16px; }
 .sp-filters label { min-width:100%; }
 .sp-faq summary { font-size:17px; padding:20px 0; }
 .sp-faq details > div { padding-right:12px; font-size:15px; }
 .sp-next { padding:40px 0; }
 .sp-next .wrap > div { grid-template-columns:1fr; gap:12px; }
 .sp-cta { padding:40px 0; }
 .sp-cta .wrap { display:block; }
 .sp-cta h2 { font-size:26px; }
 .sp-actions { margin-top:28px; }
}
@media(prefers-reduced-motion:reduce) { .sp-page { scroll-behavior:auto; } .sp-page * { animation:none!important; transition:none!important; } }

.sp-page h1,.sp-page h2,.sp-page h3 { text-wrap:balance; }
@media(min-width:761px) and (max-width:960px) { .sp-hero__grid { grid-template-columns:1fr; } .sp-hero .sp-photo { max-width:600px; transform:none; } .sp-hero .sp-photo img { aspect-ratio:16/9; } }
