/* 이해원 모의고사 수능직전 1회. 홍보물(2026.10.15 확정본)의 코랄 바탕(#df807c)·회색 면(#f4f4f4)·회보라 배지를 쓴다.
   코랄 위 글자는 진한 색(#262626, 대비 5.4:1), 흰 바탕의 강조 글자는 진한 코랄(#b4433e, 5.5:1). 모든 규칙은 .cf 아래에만 적용된다. */
.cf{--cf-coral:var(--color-editorial-soft);--cf-coral-deep:#c96a66;--cf-coral-text:var(--color-editorial-accent);--cf-on-coral:#262626;--cf-on-coral-muted:#3a2a2a;--cf-badge:#766c78;
 --cf-paper:#f4f4f4;--cf-cell:#e4e4e4;--cf-ink:#262626;--cf-body:#3d3d3d;--cf-muted:#5f5f5f;--cf-line:#e1dcdc;--cf-dark:#262428;
 --pd-ink:var(--cf-ink);--pd-muted:var(--cf-muted);--pd-line:var(--cf-line);--pd-stage:var(--cf-coral);--pd-focus:var(--color-focus);--pd-link:var(--color-link);--blue:var(--cf-coral-text);
 background:#fff;color:var(--cf-ink)}
.cf-wrap{width:min(var(--content-max),calc(100% - 2 * var(--page-gutter)));margin-inline:auto}
.cf-narrow{width:min(820px,100% - 48px);margin-inline:auto}
.cf h1,.cf h2,.cf h3{letter-spacing:-.035em;line-height:1.14;font-weight:700}
.cf h2{font-size:var(--type-section);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}
.cf-label{font-size:var(--type-note);font-weight:650;color:var(--cf-coral-text);margin-bottom:14px;line-height:var(--leading-body)}
.cf-body{font-size:var(--type-body);line-height:var(--leading-body);color:var(--cf-body);max-width:640px;margin-top:20px}
.cf-body b{color:var(--cf-ink)}
.cf-source{font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-muted);margin-top:22px}
.cf-source a{color:var(--cf-coral-text);text-decoration:underline}
.cf-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.cf-subhead{font-size:var(--type-card);margin-top:40px;line-height:var(--leading-heading);font-weight:600}
.cf .button{background:var(--color-action);color:var(--color-on-action)}
.cf .button:hover{background:var(--color-action-hover);color:var(--color-on-action)}
.cf .text-link{color:var(--color-link)}

/* HERO: 홍보물과 같은 코랄 바탕 위에 제목·3D 봉투·원형 배지 */
.cf-hero{background:var(--cf-coral);color:var(--cf-on-coral);padding:72px 0 88px;overflow:hidden}
.cf-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center}
/* 첫 화면(2026-10-28): 「수능직전 1회」와 「선착순 1만 부 무료배포」는 흰색, 첫 줄은 차콜로 한 단계 작게(대표 지시·인스타 이미지 기준). */
.cf-hero h1{color:var(--cf-on-coral)}
.cf-hero h1 .cf-h1-series{display:block;font-size:calc(var(--type-title) * .8);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:800}
.cf-hero h1 .cf-h1-title{display:block;color:#fff;font-size:var(--type-title);font-weight:800;letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);margin-top:8px;font-family:var(--font-display);font-weight:800}
.cf-hero-tag{color:#fff;font-size:var(--type-lead);font-weight:800;letter-spacing:normal;margin-top:18px;line-height:var(--leading-body)}
.cf-facts{display:grid;grid-template-columns:1.25fr 1fr 1fr;margin:40px 0 0;border-top:1px solid #26262633;border-bottom:1px solid #26262633}
.cf-facts div{padding:18px 18px 18px 0;display:flex;flex-direction:column;gap:4px}
.cf-facts div+div{padding-left:20px;border-left:1px solid #26262633}
.cf-facts dt{font-size:var(--type-note);font-weight:700;color:var(--cf-on-coral-muted);line-height:var(--leading-body)}
.cf-facts dd{margin:0;font-size:var(--type-body);font-weight:650;white-space:nowrap;line-height:var(--leading-body)}
.cf-facts b{font-size:var(--type-metric);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);margin-right:4px;font-family:var(--font-display);font-weight:700}
.cf-facts small{font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-on-coral-muted)}
.cf-hero .cf-actions{margin-top:32px}
.cf-hero .text-link{color:var(--cf-on-coral);text-decoration:underline;text-underline-offset:3px}
.cf-cover{margin:0;justify-self:center;width:min(430px,100%);position:relative}
.cf-badge{--badge-d:clamp(112px,11vw,150px);position:absolute;left:-14%;top:52%;z-index:2;width:var(--badge-d);aspect-ratio:1;border-radius:50%;background:var(--cf-badge);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.3;font-size:calc(var(--badge-d) / 7);white-space:nowrap;pointer-events:none;box-shadow:0 10px 24px -14px #3a1e1e80}
/* 배지 글씨는 원 지름의 1/7(대표 지시 2026-10-28, 인스타 이미지 기준): 두 줄이 원 폭의 60~70%. */
.cf-badge b{font-size:1em;font-weight:700;letter-spacing:normal;line-height:1.3}

/* 3D 봉투: 전개도에서 만든 앞·뒤 텍스처를 얇은 상자에 붙인다. JS가 없으면 앞면만 평면으로 보인다. */
.cf-env{--ry:0deg;--rx:0deg;--d:9px;position:relative;perspective:1300px;padding:18px 0 34px;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.cf-env-body{position:relative;aspect-ratio:1100/1487;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.cf-env.is-dragging .cf-env-body{transition:none}
.cf-env-face{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;-webkit-user-drag:none;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cf-env-face.is-front{transform:translateZ(calc(var(--d) / 2))}
.cf-env-face.is-back{transform:rotateY(180deg) translateZ(calc(var(--d) / 2))}
.cf-env-edge{position:absolute;background:#d9c9c2}
.cf-env-edge.is-l,.cf-env-edge.is-r{top:0;bottom:0;width:var(--d);left:calc(50% - var(--d) / 2)}
.cf-env-edge.is-l{transform:rotateY(-90deg) translateZ(calc(var(--env-w, 440px) / 2));background:#d3c2bb}
.cf-env-edge.is-r{transform:rotateY(90deg) translateZ(calc(var(--env-w, 440px) / 2))}
.cf-env-edge.is-t,.cf-env-edge.is-b{left:0;right:0;height:var(--d);top:calc(50% - var(--d) / 2)}
.cf-env-edge.is-t{transform:rotateX(90deg) translateZ(calc(var(--env-h, 595px) / 2));background:#e6d9d4}
.cf-env-edge.is-b{transform:rotateX(-90deg) translateZ(calc(var(--env-h, 595px) / 2));background:#cdbbb4}
.cf-env-shadow{position:absolute;left:12%;right:12%;bottom:6px;height:28px;border-radius:50%;background:radial-gradient(closest-side,#5a221f70,#5a221f00);transform:scaleX(calc(1 - var(--tilt, 0) * .25));pointer-events:none}
.cf-3d .cf-env{cursor:grab}
.cf-3d .cf-env.is-dragging{cursor:grabbing}
.cf-env-face.is-front{box-shadow:0 1px 2px #0000000f}
.cf-env:not(.is-ready) .cf-env-edge,.cf-env:not(.is-ready) .cf-env-face.is-back{display:none}
.cf-env:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset);border-radius:8px}
@keyframes cf-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* 이벤트 안내: 홍보물의 표(회색 이름 칸 + 내용)와 신청 버튼, 유의사항 */
.cf-event{background:var(--cf-paper);padding:var(--section-space) 0}
.cf-event h2{text-align:center;font-weight:600}
.cf-event-sub{text-align:center;font-size:var(--type-body);color:var(--cf-muted);margin-top:16px;line-height:var(--leading-body)}
.cf-event-table{margin:48px 0 0;padding:clamp(22px,3vw,40px);background:#fff;display:grid;gap:14px}
.cf-event-table div{display:grid;grid-template-columns:clamp(84px,12vw,124px) 1fr;gap:clamp(14px,2vw,24px);align-items:center}
.cf-event-table dt{background:var(--cf-cell);font-size:var(--type-body);font-weight:600;color:var(--cf-ink);text-align:center;padding:16px 6px;align-self:stretch;display:flex;align-items:center;justify-content:center;line-height:var(--leading-body)}
.cf-event-table dd{margin:0;font-size:var(--type-body);line-height:var(--leading-body);font-weight:500}
.cf-event-table dd small{display:block;font-size:var(--type-note);font-weight:400;color:var(--cf-muted);margin-top:2px;line-height:var(--leading-body)}
.cf-notes{margin:28px 0 0;padding-left:1.1em;font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-muted)}
.cf-apply-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:40px}
.cf-apply-card{display:flex;flex-direction:column;padding:26px 28px;border-radius:var(--ui-radius-card);background:#fff}
.cf-apply-card h3{font-size:var(--type-card);line-height:var(--leading-heading);font-weight:600}
.cf-apply-card dl{margin:14px 0 0;display:grid;gap:0}
.cf-apply-card dl div{display:grid;grid-template-columns:4em 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--cf-line)}
.cf-apply-card dt{font-size:var(--type-note);color:var(--cf-muted);line-height:var(--leading-body)}
.cf-apply-card dd{margin:0;font-weight:700}
.cf-apply-card ul{margin:12px 0 0;padding-left:1.1em;font-size:var(--type-body);line-height:var(--leading-body);color:var(--cf-body)}

/* 메시지: 현행 통합수능의 마지막, 이해원연구소의 마지막 한 회 + FORESIGHT · SWAN SONG · FAREWELL */
.cf-features{padding:var(--section-space) 0}
.cf h2.cf-statement{text-align:center;font-size:var(--type-section);font-weight:700;letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}
.cf-feature-list{list-style:none;padding:clamp(28px,4vw,56px) clamp(22px,4vw,56px);margin:56px auto 0;max-width:920px;background:var(--cf-paper);display:grid;gap:0}
.cf-feature-list li{display:grid;grid-template-columns:clamp(44px,5vw,64px) 1fr;gap:8px 12px;padding:36px 0}
.cf-feature-list li+li{border-top:1px solid #dcdcdc}
.cf-feature-list li:first-child{padding-top:8px}
.cf-feature-list li:last-child{padding-bottom:8px}
.cf-feature-list li>:not(.cf-no){grid-column:2}
.cf-no{grid-row:1/span 4;grid-column:1;font-size:var(--type-card);font-weight:600;letter-spacing:var(--tracking-heading);color:var(--cf-coral-text);line-height:var(--leading-heading);font-weight:600}
.cf-feature-list .cf-kicker{margin:0;line-height:var(--leading-heading);font-size:var(--type-card);font-weight:600;letter-spacing:var(--tracking-heading);color:var(--cf-coral-text);font-weight:600}
.cf-feature-list h3{font-size:var(--type-card);font-weight:600;margin-top:2px;line-height:var(--leading-heading);font-weight:600}
.cf-feature-list p{font-size:var(--type-body);line-height:var(--leading-body);color:var(--cf-muted);margin-top:12px}
.cf-feature-list p strong{display:block;color:var(--cf-coral-text);font-weight:700;margin-top:6px}
.cf-feature-link{justify-self:start;margin-top:14px;font-size:var(--type-body);font-weight:600;line-height:var(--leading-body)}

/* 왜 수능 직전 */
.cf-why{background:var(--cf-paper);padding:var(--section-space) 0}
.cf-why-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.cf-note{font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-muted);margin-top:28px;padding:18px 20px;border-radius:var(--ui-radius-container);background:#fff}
.cf-evidence{margin:0;padding:26px;border-radius:var(--ui-radius-container);background:#fff}
.cf-evidence figcaption{font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-body)}
.cf-evidence figcaption b{display:block;font-size:var(--type-note);color:var(--cf-coral-text);margin-bottom:4px;line-height:var(--leading-body)}
.cf-evidence-img{margin-top:16px;background:#fff;border:1px solid var(--cf-line);border-radius:8px;overflow:hidden}
.cf-evidence-img img{display:block;width:100%;height:auto}
.cf-evidence-list{margin:20px 0 0;display:grid;gap:0}
.cf-evidence-list div{display:grid;grid-template-columns:11em 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--cf-line)}
.cf-evidence-list dt{font-weight:700;font-variant-numeric:tabular-nums}
.cf-evidence-list dd{margin:0;color:var(--cf-body)}

/* 메시지 흐름: 홍보물 코랄을 한 번 더 */



/* 마무리 */
.cf-closing{background:var(--cf-dark);color:#f4eeeb;text-align:center;padding:var(--section-space) 0}
.cf-closing-lead{font-size:var(--type-lead);line-height:var(--leading-body);color:#d8cfcf}
.cf-closing h2{font-size:var(--type-section);margin-top:36px;line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}
.cf-mission{max-width:720px;margin:44px auto 0;text-align:left;display:grid;gap:16px}
.cf-mission p{font-size:var(--type-body);line-height:var(--leading-body);color:#d8cfcf}
.cf-closing-final{margin-top:72px;padding-top:56px;border-top:1px solid #ffffff26}
.cf-closing-final p{font-size:var(--type-lead);line-height:var(--leading-body);color:#d8cfcf}
.cf-closing-final strong{display:block;font-size:var(--type-card);letter-spacing:var(--tracking-heading);color:#fff;margin-top:6px;line-height:var(--leading-heading);font-weight:600}
.cf-closing .cf-actions{justify-content:center;margin-top:36px}
.cf-closing .button{background:var(--color-action);color:var(--color-on-action)}
.cf-closing .button:hover{background:var(--color-action-hover);color:var(--color-on-action)}
.cf-closing .text-link{color:var(--color-link)}
.cf-faq{background:#fff}

@media(max-width:1060px){.cf-hero-grid{grid-template-columns:1fr 1fr;gap:36px}.cf-why-grid{grid-template-columns:1fr}}
@media(max-width:800px){
 .cf-wrap,.cf-narrow{width:calc(100% - 40px)}
 .cf-hero{padding:44px 0 64px;text-align:center}
 .cf-hero-grid{grid-template-columns:1fr;gap:28px}
 /* 모바일: 제목·소개 → 표지 → 일정·신청. PC의 두 열 배치는 유지한다. */
 .cf-hero-copy{display:contents}
 .cf-hero-intro{order:0}
 .cf-hero-grid>.cf-cover{order:1}
 .cf-hero-details{order:2}
 .cf-hero-details .cf-facts{margin-top:0}
 .cf-cover{width:min(280px,72%)}
 .cf-badge{left:-16%;top:50%}
 .cf-facts{grid-template-columns:1fr 1fr;text-align:left}
 .cf-facts div:first-child{grid-column:1/-1;border-bottom:1px solid #26262633}
 .cf-facts div+div{padding-left:0;border-left:0}
 .cf-facts div:nth-child(3){padding-left:16px;border-left:1px solid #26262633}
 .cf-hero .cf-actions{justify-content:center}
 .cf-event,.cf-features{padding:80px 0 72px}
 .cf-closing{padding:var(--section-space) 0}
 .cf-event-table{gap:10px}
 .cf-event-table dt{font-size:var(--type-note);padding:12px 4px;line-height:var(--leading-body)}
 .cf-feature-list li{padding:28px 0}
 .cf-feature-list p br{display:none}
 .cf-evidence{padding:18px;border-radius:var(--ui-radius-container)}
 .cf-evidence-list div{grid-template-columns:1fr;gap:2px}
 .cf-apply-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.cf-env-body{transition:none}}
.cf .faq summary{min-height:44px;align-items:center}

/* 첫 화면 [선생님 신청](2026-10-28): [신청하기]와 같은 크기의 흰 바탕 보조 버튼. 두 버튼만 남아 간격을 줄이고, 좁은 화면에서도 한 줄에 둔다. */
.cf .button.cf-button-sub{background:#fff;color:var(--cf-ink)}
.cf .button.cf-button-sub:hover{background:var(--cf-paper);color:var(--cf-ink)}
.cf-hero .cf-actions{gap:12px}
/* 「공개 시점의 근거 보기」 팝업(2026-10-28): 본문의 「왜 '수능 직전'인가」 섹션을 대화상자로 옮겼다. 닫기 버튼은 위에 붙어 있고 안쪽만 스크롤된다. */
.cf-why-dialog{border:0;padding:0;border-radius:var(--ui-radius-container);width:min(1040px,100vw - 32px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);background:var(--cf-paper);color:var(--cf-ink);overflow:auto;overscroll-behavior:contain}
.cf-why-dialog::backdrop{background:#000000b3}
html.cf-why-lock{overflow:hidden}
.cf-why-dialog-bar{position:sticky;top:0;z-index:1;display:flex;justify-content:flex-end;padding:12px 12px 0;background:var(--cf-paper)}
.cf-why-close{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--cf-ink);font-size:26px;line-height:1}
.cf-why-close:hover{background:var(--cf-cell)}
.cf-why-dialog .cf-why-grid{padding:4px 40px 40px}
@media(max-width:800px){.cf-why-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}.cf-why-dialog .cf-why-grid{gap:28px;padding:0 20px 24px}}
/* 마무리 영역 버튼: 어두운 바탕이라 [신청하기]는 밝은 바탕·차콜 글자, [선생님 신청]은 흰 테두리. */
.cf-closing .cf-actions{gap:12px 16px}
.cf-closing .button{background:#fff;color:var(--cf-ink)}
.cf-closing .button:hover{background:var(--cf-cell);color:var(--cf-ink)}
.cf-closing .button.cf-button-sub{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px #ffffffa6}
.cf-closing .button.cf-button-sub:hover{background:#ffffff1f;color:#fff}
/* 신청 카드 버튼(2026-10-28): 첫 화면과 같은 크기로 카드 아래쪽 왼쪽에, 두 카드에서 같은 높이. 흰 카드 위 [선생님 신청]은 테두리로 구분한다. */
.cf-apply-action{margin-top:auto;padding-top:24px}
.cf-apply-card .button.cf-button-sub{box-shadow:inset 0 0 0 1px var(--cf-ink)}
/* 무료배포 섹션(2026-10-28): 『합성함수 해석』·『수능직전 1회』 두 권을 첫 화면 3D 봉투와 같은 기울기로 세운 정지 입체(JS 없음).
   앞면은 두께의 절반만큼 앞으로, 오른쪽 옆면(책 배·봉투 가장자리)은 뒤로 접는다. 실물처럼 봉투가 책의 1.27배(높이·폭), 원본 비율 유지.
   두 권은 같은 행 격자(subgrid)에 놓아 표지 아랫단과 캡션 윗단을 맞춘다. 본문 줄은 30em 이내. */
.cf-mission-grid{display:grid;grid-template-columns:auto minmax(0,30em);justify-content:center;align-items:center;gap:clamp(40px,6vw,88px);margin-top:56px;text-align:left}
.cf-mission-grid .cf-mission{margin:0;max-width:30em}
.cf-books{--book-h:clamp(190px,17vw,250px);--d:10px;display:grid;grid-template-columns:repeat(2,auto);grid-template-rows:auto auto;justify-content:center;column-gap:clamp(28px,3.4vw,48px)}
.cf-book{margin:0;display:grid;grid-row:span 2;grid-template-rows:subgrid;justify-items:center;perspective:1300px}
.cf-book-3d{align-self:end;position:relative;transform-style:preserve-3d;transform:rotateX(6deg) rotateY(-22deg)}
.cf-book-3d img{display:block;width:auto;height:var(--book-h);transform:translateZ(calc(var(--d) / 2));box-shadow:0 22px 30px -16px #000000a6}
.cf-book-3d::after{content:"";position:absolute;top:0;bottom:0;left:100%;width:var(--d);background:var(--edge);transform-origin:left center;transform:translateZ(calc(var(--d) / 2)) rotateY(90deg)}
.cf-book.is-hapseong{--edge:#efe9e1}
.cf-book.is-hapseong img{height:calc(var(--book-h) / 1.27)}
.cf-book.is-csat{--edge:#d9c9c2}
.cf-book figcaption{align-self:start;margin-top:20px;font-size:var(--type-note);line-height:var(--leading-body);color:#d8cfcf;text-align:center;word-break:keep-all}
@media(max-width:800px){.cf-mission-grid{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:44px}.cf-mission-grid .cf-mission{max-width:none}.cf-books{--book-h:clamp(140px,38vw,200px);gap:28px}}
/* 교사·강사 단체 신청 카드(2026-10-28): 인스타 카드 원문 첫 문장, 「1인당 최대 35부」 강조 줄(코랄 글자), 버튼 바로 위 한 줄. */
.cf-apply-lead{margin-top:14px;font-size:var(--type-body);line-height:var(--leading-body);color:var(--cf-body)}
.cf-apply-lead strong{color:var(--cf-ink)}
.cf-apply-highlight{margin-top:12px;font-size:var(--type-card);font-weight:700;line-height:var(--leading-heading);color:var(--cf-coral-text)}
.cf-apply-outro{margin-bottom:12px;font-size:var(--type-body);font-weight:600;line-height:var(--leading-body);color:var(--cf-ink)}
/* 교·강사 단체 신청 안내 팝업의 기한·배송 행은 수험생 카드 표와 같은 모양, 이름 칸만 「정보 입력 기한」에 맞게 넓힘. 주의 문구는 작은 글씨. */
.cf-info-body dl div{grid-template-columns:7.5em 1fr}
.cf-apply-card .cf-apply-fine{list-style:none;margin:10px 0 0;padding:0;font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-muted)}
.cf-apply-card .cf-apply-fine li{padding-left:.75em;text-indent:-.75em}
/* 교사 카드 [세부 사항](2026-10-28): [선생님 신청] 옆, 보조 버튼보다 한 단계 약한 연한 테두리. 팝업은 근거 팝업과 같은 틀에 흰 바탕·좁은 폭. */
.cf-apply-buttons{display:flex;flex-wrap:wrap;gap:8px}
.cf .button.cf-button-detail{background:transparent;color:var(--cf-muted);box-shadow:inset 0 0 0 1px var(--cf-line)}
.cf .button.cf-button-detail:hover{background:var(--cf-paper);color:var(--cf-ink)}
.cf-info-dialog{width:min(640px,100vw - 32px);background:#fff}
.cf-info-dialog .cf-why-dialog-bar{background:#fff}
.cf-info-dialog .cf-why-close{background:var(--cf-paper)}
.cf-info-body{padding:0 40px 40px;border-radius:0}
.cf-info-body h2{font-size:var(--type-card);line-height:var(--leading-heading)}
@media(max-width:800px){.cf-info-dialog{width:calc(100vw - 24px)}.cf-info-body{padding:0 20px 24px}}
/* [신청하기] 오픈 예정 확인창(2026-10-28): 팝업과 같은 틀의 작은 확인창, 한 줄과 [확인]만. */
.cf-alert-dialog{width:min(360px,100vw - 48px);background:#fff}
.cf-alert-body{padding:32px 28px 24px;text-align:center}
.cf-alert-title{font-size:var(--type-card);font-weight:700;line-height:var(--leading-heading);color:var(--cf-ink);word-break:keep-all}
.cf-alert-body .button{margin-top:24px;min-width:120px}

/* 교사 팝업 「선생님 신청」 위 구글폼 파일 업로드 안내(2026-10-28): 작은 글씨 접힘 영역. 문제는 진하게, 해결은 이어서 한 줄. */
.cf-upload-help{margin:0 0 16px;padding:0 0 8px;border-bottom:1px solid var(--cf-line);font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-muted)}
.cf-upload-help summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-weight:600;color:var(--cf-ink)}
.cf-upload-help summary::-webkit-details-marker{display:none}
.cf-upload-help summary::after{content:"+";font-size:18px;line-height:1;color:var(--cf-muted)}
.cf-upload-help[open] summary::after{content:"−"}
.cf-upload-help p{margin:0 0 8px}
.cf-upload-help ul{margin:0 0 10px;padding-left:1.1em}
.cf-upload-help li+li{margin-top:6px}
.cf-upload-help strong{font-weight:600;color:var(--cf-ink)}
.cf-upload-help a{color:inherit;text-decoration:underline}

/* 수험생 신청 시간창: 09시 기준 타이머이며 실제 신청 개방과 독립적이다. */
.cf-public-application{min-width:0}
.cf-public-application+.cf-apply-card{align-self:start}
 .cf-countdown{margin-top:16px;padding:32px 24px;background:color-mix(in srgb,var(--cf-coral) 9%,white);border-radius:var(--ui-radius-card);text-align:center}
.cf-countdown-intro{font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-body);max-width:29em;margin:0 auto;text-wrap:pretty}
.cf-countdown h4{margin:28px 0 6px;font-family:var(--font-body);font-size:var(--type-body);font-weight:700}
.cf-countdown-zone,.cf-countdown-status{font-size:var(--type-note);line-height:var(--leading-body);color:var(--cf-muted)}
.cf-countdown-status{text-wrap:pretty;max-width:29em;margin:0 auto}
.cf-countdown-digits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:24px 0 28px;color:var(--cf-ink);white-space:nowrap}
.cf-countdown-digits[hidden]{display:none}
.cf-countdown-unit{display:flex;align-items:baseline;justify-content:center;gap:3px;font-size:12px}
.cf-countdown-unit b{display:inline-block;width:2ch;font-family:var(--font-display);font-weight:800;font-size:clamp(28px,2.5vw,36px);font-variant-numeric:tabular-nums;line-height:1.15;text-align:center}
@media(max-width:800px){.cf-countdown{padding:28px 20px}.cf-countdown-unit b{font-size:clamp(24px,7.7vw,32px)}}
