/* schools.v4.css : 학교별 안내(허브 1p + 상세 47p) v4_3 재질 번역. 원본 schools.css 골격, 브레이크포인트(820/760/680) 유지.
   구조 변경 1) .sd-callout > .sd-callout__line 에 grid-column:2 고정. 둘째 각주 라인이 auto 트랙(※ 열)으로 자동 배치되어 초협소 폭에서 세로 낙수하던 결함 수정(47p 전수, 96개 라인 해당)
   2) .school-roll 행 repeat(16)에서 repeat(24)로. 47개 항목이 암시적 3열 auto 트랙으로 밀리던 결함 수정, 설계 의도인 2열 복원
   3) 구 크롬 룰(상단 내비, 푸터, 부유 CTA, 버거)과 파운데이션 중복 룰(reset, body, img, a, container, selection, focus, 외부 폰트 임포트 2건, 루트 변수 블록) 삭제. summary 전용 focus-visible 추가
   4) 모서리 반경과 그림자 전부 삭제, 로컬 변수는 v4 토큰으로 치환, 골드 미광 오버레이만 계약 허용 범위 rgba 리터럴로 유지 */

/* ===== BASE (파운데이션 비중복 보강만) ===== */
html{ scroll-padding-top:84px; -webkit-text-size-adjust:100%; }
svg{ display:inline-block; vertical-align:middle; }
a svg, button svg{ flex-shrink:0; }
svg:not([width]):not([height]){ width:16px; height:16px; }
summary:focus-visible{ outline:2px solid var(--goldtext); outline-offset:3px; }

.br-d{ } @media(max-width:680px){ .br-d{ display:none; } }

.eyebrow{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--muted); }
.eyebrow .dot{ display:inline-block; width:4px; height:4px; background:var(--goldline); vertical-align:middle; margin:0 .7em; transform:translateY(-1px); }

/* ===== BREADCRUMB ===== */
.breadcrumb{ padding:clamp(20px,2.6vw,32px) 0 clamp(6px,1vw,12px); font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
.breadcrumb a{ color:var(--muted); transition:color .2s ease; }
.breadcrumb a:hover{ color:var(--goldtext); }
.breadcrumb span{ color:var(--ink); }

/* ===== HERO (hub + detail 공유) ===== */
.school-hero{ position:relative; padding:clamp(18px,2.6vw,34px) 0 clamp(48px,7vw,92px); overflow:hidden; }
.school-hero::before{
  content:"校"; position:absolute; top:-2vw; right:-1vw;
  font-family:var(--serif); font-weight:400; font-size:clamp(190px,28vw,440px);
  line-height:.8; color:rgba(197,165,114,.08); pointer-events:none; user-select:none; z-index:0;
}
.school-hero__inner{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) clamp(300px,34vw,420px); grid-template-areas:"tag tag" "title meta" "lede meta"; gap:0 clamp(30px,5vw,84px); align-items:end; }
.school-hero__inner--solo{ grid-template-columns:1fr; grid-template-areas:"tag" "title" "lede"; }
.school-hero__tag{ grid-area:tag; display:inline-flex; align-items:center; gap:0; width:max-content; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--goldtext); margin-bottom:clamp(22px,3vw,38px); }
.school-hero__tag::before{ content:""; display:inline-block; width:5px; height:5px; background:var(--goldline); margin-right:.9em; transform:translateY(-1px); }
.school-hero__title{ grid-area:title; font-family:var(--serif); font-weight:600; font-size:clamp(38px,6.4vw,86px); line-height:1.18; letter-spacing:-.035em; color:var(--ink); margin-bottom:clamp(18px,2.2vw,28px); }
.school-hero__title em{ font-style:normal; color:var(--forest,#006241); }
.school-hero__lede{ grid-area:lede; font-family:var(--serif); font-weight:400; font-size:clamp(16px,1.85vw,22px); line-height:1.7; letter-spacing:-.01em; color:var(--muted); max-width:46ch; }
.school-hero__meta{ grid-area:meta; display:block; align-self:end; border-top:2px solid var(--goldline); font-feature-settings:"tnum" 1; }
.school-hero__meta-item{ display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:baseline; padding:13px 0; border-bottom:1px solid var(--hairsoft); }
.school-hero__meta-item:last-child{ border-bottom:0; }
.school-hero__meta-label{ font-size:10.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
.school-hero__meta-value{ font-family:var(--serif); font-size:clamp(14px,1.35vw,16px); font-weight:500; letter-spacing:-.01em; line-height:1.45; color:var(--ink); text-align:right; }
@media(max-width:820px){
  .school-hero__inner{ grid-template-columns:minmax(0,1fr); grid-template-areas:"tag" "title" "lede" "meta"; }
  .school-hero__title,.school-hero__lede,.school-hero__meta-value{ overflow-wrap:anywhere; } /* 단대사대부고 등 장교명 min-content 오버플로 가드 (전수 375 게이트 검출) */
  .school-hero__meta{ margin-top:36px; }
}

/* ===== SECTION SHELL ===== */
main{ counter-reset:sec; }
.section{ padding:clamp(64px,9vw,124px) 0; }
.section--alt{ background:var(--plate); border-top:1px solid var(--hairsoft); border-bottom:1px solid var(--hairsoft); }
.section--bordered{ border-top:1px solid var(--hairsoft); border-bottom:1px solid var(--hairsoft); }
.section__head{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,4vw,56px); align-items:baseline; margin-bottom:clamp(40px,5vw,68px); counter-increment:sec; }
.section__head::before{ content:counter(sec,decimal-leading-zero); font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.4vw,56px); color:var(--goldtext); line-height:1; letter-spacing:-.02em; }
.section__head--center{ display:block; text-align:center; }
.section__head--center::before{ display:block; margin:0 auto 14px; }
.section__eyebrow{ display:block; font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.section__title{ font-family:var(--serif); font-weight:600; font-size:clamp(26px,3.6vw,44px); line-height:1.3; letter-spacing:-.03em; color:var(--ink); margin-bottom:0; }
.section__title em{ font-style:normal; color:var(--forest,#006241); }
.section__lede{ font-size:15px; line-height:1.78; letter-spacing:-.01em; color:var(--muted); max-width:54ch; margin-top:18px; }
.section__head--center .section__lede{ margin-left:auto; margin-right:auto; }
.section__head > .section__eyebrow,
.section__head > .section__title,
.section__head > .section__lede{ grid-column:2; }
.section__head--center > *{ grid-column:auto; }

/* ===== HUB, 권역 인덱스 ===== */
.school-index__intro{ margin-bottom:clamp(44px,5vw,72px); font-size:15px; line-height:1.78; color:var(--muted); max-width:60ch; }
.school-group{ margin-bottom:clamp(44px,5vw,76px); }
.school-group:last-child{ margin-bottom:0; }
.school-group__head{ display:flex; align-items:baseline; gap:16px; padding-bottom:15px; border-bottom:2px solid var(--goldline); }
.school-group__name{ font-family:var(--serif); font-weight:600; font-size:clamp(22px,2.7vw,32px); letter-spacing:-.025em; color:var(--ink); }
.school-group__en{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); transform:translateY(-2px); }
.school-group__count{ margin-left:auto; font-family:var(--serif); font-weight:400; font-size:clamp(22px,2.4vw,30px); color:var(--goldtext); font-feature-settings:"tnum" 1; line-height:1; }
.school-group__count small{ font-size:.5em; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-left:.4em; font-weight:600; font-family:var(--sans); }
.school-group__list{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
.school-link{ display:flex; align-items:baseline; gap:14px; padding:clamp(15px,1.7vw,20px) clamp(8px,1.2vw,18px); border-bottom:1px solid var(--hairsoft); transition:background .3s ease, padding-left .3s ease; }
.school-link:nth-child(odd){ border-right:1px solid var(--hairsoft); }
.school-link:hover{ background:rgba(197,165,114,.06); padding-left:calc(clamp(8px,1.2vw,18px) + 9px); }
.school-link__name{ font-family:var(--serif); font-weight:600; font-size:clamp(16px,1.7vw,19px); letter-spacing:-.015em; color:var(--ink); transition:color .25s ease; }
.school-link:hover .school-link__name{ color:var(--goldtext); }
.school-link__dong{ margin-left:auto; font-size:12.5px; color:var(--muted); letter-spacing:-.01em; white-space:nowrap; }
.school-link__arr{ color:var(--goldtext); font-size:13px; opacity:0; transform:translateX(-4px); transition:opacity .25s ease, transform .25s ease; }
.school-link:hover .school-link__arr{ opacity:1; transform:translateX(0); }
@media(max-width:680px){
  .school-group__list{ grid-template-columns:1fr; }
  .school-link:nth-child(odd){ border-right:0; }
}

/* ===== HUB, 번호 롤 ===== */
.school-roll{ display:grid; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(24,auto); grid-auto-flow:column; gap:0 clamp(40px,5vw,88px); border-top:2px solid var(--goldline); counter-reset:sch; }
.school-roll__item{ display:grid; grid-template-columns:clamp(34px,3.4vw,52px) 1fr auto; gap:clamp(12px,1.8vw,24px); align-items:baseline; padding:clamp(15px,1.7vw,21px) 0; border-bottom:1px solid var(--hairsoft); counter-increment:sch; transition:background .3s ease, padding-left .25s ease; }
.school-roll__item:hover{ background:rgba(197,165,114,.06); padding-left:8px; }
.school-roll__item::before{ content:counter(sch,decimal-leading-zero); font-family:var(--serif); font-weight:400; font-size:clamp(18px,2vw,26px); color:var(--goldtext); font-feature-settings:"tnum" 1; line-height:1; letter-spacing:-.02em; }
.school-roll__name{ font-family:var(--serif); font-weight:600; font-size:clamp(16px,1.7vw,19px); color:var(--ink); letter-spacing:-.015em; line-height:1.35; transition:color .25s ease; }
.school-roll__item:hover .school-roll__name{ color:var(--goldtext); }
.school-roll__area{ font-size:12px; color:var(--muted); text-align:right; white-space:nowrap; letter-spacing:-.01em; }
@media(max-width:680px){
  .school-roll{ grid-template-columns:1fr; grid-template-rows:none; grid-auto-flow:row; gap:0; }
}

/* ===== DETAIL, 개요 prose ===== */
.sd-prose{ font-family:var(--serif); font-weight:400; font-size:clamp(16px,1.45vw,18.5px); line-height:1.9; letter-spacing:-.01em; color:var(--ink); max-width:45em; } /* 장문 measure 45자 통일 (critic 렌즈3) */
.sd-prose + .sd-prose{ margin-top:1.4em; }
.sd-prose--lead{ color:var(--ink); }
.sd-prose--mute{ color:var(--muted); }
.sd-callout{ margin-top:clamp(26px,3vw,40px); padding-top:18px; border-top:1px solid var(--hairsoft); display:grid; grid-template-columns:auto 1fr; gap:14px; font-size:13.5px; line-height:1.72; color:var(--muted); max-width:76ch; }
.sd-callout::before{ content:"※"; font-family:var(--serif); color:var(--goldtext); font-size:15px; line-height:1.4; }
/* 낙수 결함 수정: 모든 각주 라인을 텍스트 열(2)에 고정. ※ 열(auto)로의 자동 배치 차단 */
.sd-callout > .sd-callout__line{ grid-column:2; }

/* ===== DETAIL, 과목별 성분표 ===== */
.subj-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:2px solid var(--goldline); counter-reset:subj; }
.subj{ border-bottom:1px solid var(--hairsoft); padding:clamp(30px,3.4vw,46px) 0; counter-increment:subj; transition:background .35s ease; }
.subj:nth-child(odd){ border-right:1px solid var(--hairsoft); padding-right:clamp(28px,3vw,48px); }
.subj:nth-child(even){ padding-left:clamp(28px,3vw,48px); }
.subj:hover{ background:rgba(197,165,114,.06); }
.subj__t{ font-family:var(--serif); font-weight:600; font-size:clamp(19px,2.1vw,25px); color:var(--ink); margin-bottom:16px; letter-spacing:-.025em; line-height:1.32; display:flex; align-items:baseline; gap:13px; }
.subj__t::before{ content:counter(subj,decimal-leading-zero); font-family:var(--serif); font-weight:400; font-size:.66em; color:var(--goldtext); font-feature-settings:"tnum" 1; flex-shrink:0; }
.subj__p{ font-size:14.5px; line-height:1.82; color:var(--muted); letter-spacing:-.005em; }
.subj__basis{ margin-top:18px; padding-top:14px; border-top:1px solid var(--hairsoft); font-size:10.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--goldtext); line-height:1.7; }
@media(max-width:760px){
  .subj-grid{ grid-template-columns:1fr; }
  .subj:nth-child(odd){ border-right:0; padding-right:0; }
  .subj:nth-child(even){ padding-left:0; }
}

/* ===== DETAIL, 이루리 대응 카드 (침강판 + 각인 프레임) ===== */
.rx-card{ background:var(--deep2); padding:clamp(40px,6vw,72px) clamp(34px,5vw,64px); position:relative; overflow:hidden; color:var(--ink); }
.rx-card::after{ content:""; position:absolute; inset:clamp(14px,2vw,28px); border:1px solid var(--hairsoft); pointer-events:none; }
.rx-card__eyebrow{ position:relative; z-index:1; display:inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); margin-bottom:18px; }
.rx-card__eyebrow::before{ content:""; width:24px; height:1px; background:var(--goldline); }
.rx-card__title{ position:relative; z-index:1; font-family:var(--serif); font-weight:500; font-size:clamp(24px,3.4vw,40px); color:var(--ink); margin-bottom:20px; letter-spacing:-.03em; line-height:1.42; }
.rx-card__title em{ font-style:normal; color:var(--forest,#006241); font-weight:600; }
.rx-card__lede{ position:relative; z-index:1; font-size:15.5px; color:var(--muted); line-height:1.85; max-width:70ch; }
.rx-links{ position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.rx-links a{ font-size:13.5px; font-weight:500; color:var(--ink); border:1px solid var(--hair); padding:12px 18px; display:inline-flex; gap:8px; align-items:center; letter-spacing:-.005em; transition:border-color .25s ease, background .25s ease; }
.rx-links a:hover{ border-color:var(--goldline); background:rgba(197,165,114,.12); }
.rx-links a b{ color:var(--ink); font-weight:700; }

/* ===== DETAIL, FAQ (헤어라인 아코디언) ===== */
.faq-list{ border-top:2px solid var(--goldline); }
.faq-list details{ border-bottom:1px solid var(--hairsoft); }
.faq-list summary{ cursor:pointer; list-style:none; padding:clamp(22px,2.6vw,32px) 50px clamp(22px,2.6vw,32px) 0; font-family:var(--serif); font-weight:600; font-size:clamp(16px,1.8vw,21px); color:var(--ink); letter-spacing:-.02em; line-height:1.45; position:relative; transition:color .25s ease; }
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{ content:"+"; position:absolute; right:8px; top:50%; transform:translateY(-50%); font-family:var(--serif); font-weight:400; font-size:30px; color:var(--goldtext); line-height:0; transition:transform .25s ease; }
.faq-list details[open] summary::after{ content:"\2212"; }
.faq-list summary:hover{ color:var(--goldtext); }
.faq-list__a{ padding:0 50px clamp(26px,3vw,34px) 0; font-size:15px; line-height:1.85; color:var(--muted); letter-spacing:-.005em; max-width:82ch; }

/* ===== DETAIL, 관련 학교 (헤어라인 격자) ===== */
.cross-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:0; border-top:2px solid var(--goldline); }
.cross-link{ padding:clamp(24px,2.8vw,36px) clamp(20px,2vw,30px); border-bottom:1px solid var(--hairsoft); border-right:1px solid var(--hairsoft); transition:background .3s ease, padding-left .25s ease; }
.cross-link:hover{ background:rgba(197,165,114,.06); padding-left:calc(clamp(20px,2vw,30px) + 8px); }
.cross-link__eye{ font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--goldtext); margin-bottom:9px; }
.cross-link__t{ font-family:var(--serif); font-weight:600; font-size:clamp(17px,1.9vw,22px); color:var(--ink); margin-bottom:6px; letter-spacing:-.02em; transition:color .25s ease; }
.cross-link:hover .cross-link__t{ color:var(--goldtext); }
.cross-link__d{ font-size:12.5px; color:var(--muted); letter-spacing:-.005em; }

/* ===== HUB, 시스템 (헤어라인 대조) ===== */
.sys-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:2px solid var(--goldline); }
.sys-card{ border-bottom:1px solid var(--hairsoft); padding:clamp(34px,4vw,52px) 0; }
.sys-card:nth-child(odd){ border-right:1px solid var(--hairsoft); padding-right:clamp(34px,3.4vw,56px); }
.sys-card:nth-child(even){ padding-left:clamp(34px,3.4vw,56px); }
.sys-card__label{ font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--goldtext); margin-bottom:14px; }
.sys-card__t{ font-family:var(--serif); font-weight:600; font-size:clamp(21px,2.4vw,29px); color:var(--ink); margin-bottom:16px; letter-spacing:-.025em; }
.sys-card__t em{ font-style:normal; color:var(--forest,#006241); }
.sys-card__p{ font-size:14.5px; line-height:1.82; color:var(--muted); letter-spacing:-.005em; max-width:46ch; }
@media(max-width:760px){
  .sys-grid{ grid-template-columns:1fr; }
  .sys-card:nth-child(odd){ border-right:0; padding-right:0; }
  .sys-card:nth-child(even){ padding-left:0; }
}

/* ===== CTA, 진단 신청 (침강 밴드 + 각인 프레임) ===== */
.school-cta{ text-align:center; padding:clamp(64px,9vw,110px) 0; background:var(--deep2); color:var(--ink); position:relative; overflow:hidden; border-top:1px solid var(--hairsoft); }
.school-cta::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 50% -20%, rgba(197,165,114,.10), transparent 60%); pointer-events:none; }
.school-cta::after{ content:""; position:absolute; inset:clamp(14px,2vw,28px); border:1px solid var(--hairsoft); pointer-events:none; }
.school-cta .container{ position:relative; z-index:1; }
.school-cta__eyebrow{ display:inline-flex; align-items:center; gap:10px; justify-content:center; font-size:11px; color:var(--muted); letter-spacing:.26em; margin-bottom:18px; font-weight:600; text-transform:uppercase; }
.school-cta__eyebrow::before{ content:""; width:24px; height:1px; background:var(--goldline); }
.school-cta__title{ font-family:var(--serif); font-weight:600; font-size:clamp(28px,4.4vw,54px); line-height:1.3; letter-spacing:-.035em; color:var(--ink); margin-bottom:18px; }
.school-cta__title em{ font-style:normal; color:var(--forest,#006241); font-weight:600; }
.school-cta__lede{ font-size:15px; color:var(--muted); margin-bottom:clamp(32px,4vw,44px); max-width:48ch; margin-left:auto; margin-right:auto; line-height:1.8; }
.school-cta__group{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
.school-cta__note{ margin-top:24px; font-size:12px; color:var(--muted); letter-spacing:-.005em; line-height:1.6; max-width:60ch; margin-left:auto; margin-right:auto; }

/* ===== BUTTONS (0 radius 헤어라인, hover 금박 채움) ===== */
.btn-primary{ background:transparent; color:var(--ink); border:1px solid var(--goldline); padding:14px 29px; font-size:14px; font-weight:600; letter-spacing:.01em; display:inline-flex; align-items:center; gap:9px; transition:background .28s ease, transform .28s ease, color .28s ease, border-color .28s ease; }
.btn-primary:hover{ background:var(--foil); color:var(--field); border-color:transparent; transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--ink); border:1px solid var(--hair); padding:15px 28px; font-size:14px; font-weight:600; letter-spacing:.01em; display:inline-flex; align-items:center; gap:9px; transition:border-color .28s ease, background .28s ease; }
.btn-ghost:hover{ border-color:var(--goldline); background:rgba(197,165,114,.12); }
.btn-primary svg, .btn-ghost svg{ width:18px; height:18px; }
.section .btn-primary, .container > .btn-primary{ background:transparent; color:var(--ink); }
.section .btn-primary:hover{ background:var(--foil); color:var(--field); }
.section .btn-ghost{ background:transparent; color:var(--ink); border-color:var(--hair); }
.section .btn-ghost:hover{ border-color:var(--goldline); background:transparent; }

/* ===== MOTION ===== */
.s-reveal{ opacity:0; transform:translateY(28px); transition:opacity 1s cubic-bezier(.22,.61,.36,1), transform 1s cubic-bezier(.22,.61,.36,1); will-change:opacity, transform; }
.s-reveal.in{ opacity:1; transform:translateY(0); }
@media(prefers-reduced-motion:reduce){
  .s-reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}

/* il internal-link: subj article to subject pillar page (school to subject) */
.subj__more{ margin-top:14px; }
.subj__more a{ font-family:var(--serif); font-weight:600; font-size:13px; color:var(--goldtext); letter-spacing:-.01em; text-decoration:none; border-bottom:1px solid var(--goldline); padding-bottom:2px; transition:color .25s ease; }
.subj__more a:hover{ color:var(--ink); }

/* relc related-content: school page related blog/video section (additive) */
.relc .cross-link__t{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.relc-sub{ font-family:var(--serif); font-weight:600; font-size:15px; color:var(--ink); margin:26px 0 12px; letter-spacing:-.01em; }
.relc-insights ul{ margin:0 0 8px; padding-left:18px; }
.relc-insights li{ font-size:14px; line-height:1.7; color:var(--ink); margin:6px 0; word-break:keep-all; }
.relc-insights li a{ color:var(--goldtext); text-decoration:none; border-bottom:1px solid var(--goldline); padding-bottom:1px; margin-left:6px; font-size:13px; white-space:nowrap; }
