/* 사용자 화면 공통 틀 (2026-10-23 승인 시안 01·02·03): 글꼴, 색, 맨 위 띠, 상단, 전체 메뉴, 하위 화면 머리, 하단
   base.css 다음에 읽는다. 관리자 화면에는 쓰지 않는다
   대표색·보조색·버튼색은 회차 테마 색(SFR-206)을 따르고, 나머지는 시안 값이다
   - 보조색(--color-secondary) 위에는 본문 글자색 계열만 쓴다 (테마 대비 검사 기준)
   - 초점 표시: 시안의 노란 선(#E8A317) 안쪽에 진한 선을 한 겹 더해 흰 배경에서도 3:1 이상으로 보이게 한다 */
:root {
  --color-text: #17241F;
  --color-muted: #3E4A45;
  --color-sub: #2E3A35;
  --color-line: #E3E8E5;
  --color-util: #F4F7F5;
  --color-footer: #12302C;
  --focus-color: #E8A317;
  --gutter: 40px;
}
@media (max-width: 1024px) { :root { --gutter: 24px; } }
@media (max-width: 640px) { :root { --gutter: 16px; } }

body {
  font-family: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  color: var(--color-text);
}
.container { max-width: calc(1280px + 2 * var(--gutter)); padding-left: var(--gutter); padding-right: var(--gutter); }
a:hover { color: color-mix(in srgb, var(--color-point) 78%, #000); }
:focus-visible { outline: 3px solid var(--focus-color); outline-offset: 2px; box-shadow: 0 0 0 2px var(--color-text); }
.site-main:focus { outline: none; box-shadow: none; }
.hand { font-family: "Nanum Pen Script", cursive; font-weight: 400; }
.icon { flex: none; }

/* 본문 바로가기 */
.skip-link {
  left: 16px; top: -100px; padding: 10px 16px; border-radius: 8px;
  background: var(--color-text); color: #fff; font-weight: 700; text-decoration: none;
}
.skip-link:focus { top: 12px; color: #fff; }

/* 버튼: 시안 모양(둥근 모서리, 누르기 쉬운 높이 44px) */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 20px; border-radius: 10px; font-size: 1rem; line-height: 1.3;
  transition: filter 0.15s ease;
}
.btn-block { display: flex; }
.btn-small { min-height: 36px; padding: 0 12px; border-radius: 8px; }
.btn-primary:hover { color: #fff; }

/* 맨 위 띠: 농림축산검역본부 바로가기 (2026-10-23 회신 3-1) */
.util-bar { background: var(--color-util); border-bottom: 1px solid var(--color-line); }
.util-inner { display: flex; justify-content: flex-end; }
.util-link {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
  font-size: 14px; font-weight: 700; color: var(--color-sub); text-decoration: none;
}
.util-link:hover { color: var(--color-text); text-decoration: underline; }

/* 상단 */
.site-header { background: #fff; border-bottom: 1px solid var(--color-line); padding: 0; }
.header-inner { min-height: 84px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 40px; }
.brand { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 10px 0; min-width: 0; color: var(--color-text); text-decoration: none; }
.brand:hover { color: var(--color-text); }
.brand-logo { display: block; width: auto; height: 28px; }
.brand-name, .footer-name { display: flex; flex-direction: column; line-height: 1.25; }
.site-name-top { display: block; font-size: 14px; font-weight: 700; color: var(--color-point); line-height: 1.25; }
.site-name-main { display: block; font-size: 23px; font-weight: 800; color: var(--color-text); line-height: 1.3; }
.gnb { flex: 1 1 auto; display: flex; justify-content: center; }
.gnb ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 44px; }
.gnb-link {
  display: inline-block; padding: 8px 0; border-bottom: 2px solid transparent;
  font-size: 17px; font-weight: 700; color: var(--color-text); text-decoration: none;
}
.gnb-link:hover { color: var(--color-text); border-bottom-color: var(--color-text); }
.gnb-link[aria-current] { color: var(--color-point); border-bottom-color: var(--color-point); }
.header-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.menu-button, .menu-close {
  display: none; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0;
  border: 1px solid #D5DDD9; border-radius: 10px; background: #fff; color: var(--color-text); cursor: pointer;
}
.menu-button:hover, .menu-close:hover { background: var(--color-util); }
.js .menu-button, .menu-close { display: inline-flex; }
/* 좁은 화면: 상단 메뉴 대신 전체 메뉴 버튼 (스크립트가 꺼져 있으면 상단 메뉴가 줄을 바꿔 그대로 보인다) */
@media (max-width: 1099px) {
  .js .gnb { display: none; }
}
@media (max-width: 640px) {
  .util-link { min-height: 36px; font-size: 13px; }
  .header-inner { min-height: 64px; padding-top: 10px; padding-bottom: 10px; gap: 12px; }
  .brand { gap: 4px; padding: 0; }
  .brand-logo { height: 20px; }
  .site-name-top { font-size: 12px; line-height: 1.2; }
  .site-name-main { font-size: 20px; line-height: 1.25; }
  .js .btn-apply { display: none; }
}

/* 전체 메뉴: 오른쪽에서 나오는 모달 창 */
.full-menu {
  position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0;
  width: min(420px, 100%); max-width: 100%; height: 100%; max-height: 100%;
  border: 0; background: #fff; color: var(--color-text); overflow-y: auto;
}
.full-menu::backdrop { background: rgba(18, 48, 44, 0.55); }
.full-menu-head {
  position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 64px; padding: 10px 16px 10px 24px; background: #fff; border-bottom: 1px solid var(--color-line);
}
.full-menu-head h2 { margin: 0; font-size: 20px; font-weight: 800; }
.full-menu-list { list-style: none; margin: 0; padding: 8px 24px 40px; }
.full-menu-list > li { padding: 14px 0; border-bottom: 1px solid var(--color-line); }
.full-menu-top { display: block; font-size: 18px; font-weight: 800; color: var(--color-text); text-decoration: none; }
a.full-menu-top { display: flex; align-items: center; min-height: 44px; }
span.full-menu-top { padding: 8px 0 4px; }
.full-menu-list ul { list-style: none; margin: 4px 0 0; padding: 0; }
.full-menu-list ul a {
  display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 8px;
  font-size: 16px; color: var(--color-sub); text-decoration: none;
}
.full-menu-list a:hover { background: var(--color-secondary); color: var(--color-text); }

/* 본문 */
.site-main { padding: 0 0 96px; }
.site-main > .hero { margin-top: 0; }

/* 하위 화면 머리: 현재 위치, 제목, 설명, 하위 메뉴 탭 */
.subpage-head { position: relative; overflow: hidden; margin-bottom: 56px; background: var(--color-secondary); color: var(--color-text); }
/* 메뉴별 손그림(흰 바탕): 곱하기 합성으로 흰 바탕이 녹색 띠에 묻히게 한다 (2026-10-26 요청). 꾸밈 그림이라 화면낭독기는 읽지 않는다
   - 넓은 화면: 본문 폭의 오른쪽 절반에 높이를 맞춰 깔고, 오른쪽 끝은 상단 전체 메뉴 아이콘 끝(본문 폭)에 맞춘다
   - 좁은 화면(1100px 미만): 오른쪽 위에 작게 띄우고 현재 위치·제목은 그림 옆으로 흐르게 해 글자와 겹치지 않는다 */
.subpage-head-image {
  position: absolute; top: 20px; bottom: 20px;
  right: var(--gutter); width: calc((100% - 2 * var(--gutter)) / 2);
  background-size: contain; background-position: right center; background-repeat: no-repeat;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20%);
  mask-image: linear-gradient(90deg, transparent 0, #000 20%);
}
.subpage-head-inner { position: relative; padding-top: 44px; padding-bottom: 52px; }
.subpage-head-inner.has-tabs { padding-bottom: 0; }
.breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 14px; color: var(--color-muted); }
.breadcrumb li + li::before { content: "›"; content: "›" / ""; margin-right: 8px; }
.breadcrumb a { color: var(--color-muted); }
.breadcrumb a:hover { color: var(--color-text); }
.breadcrumb [aria-current] { font-weight: 700; color: var(--color-text); }
.page-title { margin: 16px 0 0; max-width: 40em; font-size: 42px; font-weight: 800; line-height: 1.25; letter-spacing: -0.02em; }
.page-desc { margin: 10px 0 0; max-width: 40em; font-size: 17px; line-height: 1.65; color: var(--color-muted); }
/* 오른쪽 그림이 있으면 글자가 그림의 진한 부분에 겹치지 않게 */
.subpage-head.has-image .page-title, .subpage-head.has-image .page-desc { max-width: min(40em, 62%); }
.local-tabs { clear: both; margin-top: 40px; }
.local-tabs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.local-tabs a {
  display: block; padding: 16px 30px; border-radius: 14px 14px 0 0;
  background: rgba(255, 255, 255, 0.6); color: var(--color-sub); font-size: 17px; text-decoration: none;
}
.local-tabs a:hover { background: rgba(255, 255, 255, 0.85); color: var(--color-text); }
.local-tabs a[aria-current] { background: #fff; color: var(--color-point); font-weight: 800; }
@media (max-width: 1099px) {
  .subpage-head-image {
    position: static; float: right; width: 168px; height: 96px; margin: -4px 0 8px 16px;
    background-position: right top; -webkit-mask-image: none; mask-image: none;
  }
  .subpage-head.has-image .page-title, .subpage-head.has-image .page-desc { max-width: 40em; }
  /* 설명은 그림 아래에서 시작해 첫 줄이 짧게 끊기지 않게 */
  .subpage-head.has-image .page-desc { clear: right; }
}
@media (max-width: 640px) {
  .subpage-head { margin-bottom: 32px; }
  .subpage-head-image { width: 120px; height: 76px; margin: -4px 0 6px 12px; }
  .subpage-head-inner { padding-top: 20px; padding-bottom: 28px; }
  .breadcrumb ol { gap: 4px 6px; font-size: 13px; }
  .breadcrumb li + li::before { margin-right: 6px; }
  .page-title { margin-top: 10px; font-size: 28px; }
  .page-desc { font-size: 15px; }
  /* 탭이 많으면 옆으로 밀어서 본다 */
  .local-tabs { margin: 18px calc(-1 * var(--gutter)) 0; padding: 0 var(--gutter); overflow-x: auto; }
  .local-tabs ul { flex-wrap: nowrap; width: max-content; }
  .local-tabs a { padding: 12px 16px; border-radius: 12px 12px 0 0; font-size: 15px; }
}

/* 하단 */
.site-footer { margin-top: 0; padding: 0; border-top: 0; background: var(--color-footer); color: #D7E2DE; }
.footer-inner { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px 56px; padding-top: 48px; padding-bottom: 48px; }
.footer-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.footer-name { margin: 0; }
.site-footer .site-name-top { color: #CFE3DC; }
.site-footer .site-name-main { color: #fff; }
.footer-body { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.footer-links { margin: 0; gap: 8px 24px; }
.footer-links a { color: #fff; font-size: 15px; text-decoration: none; }
.footer-links a:hover { color: #fff; text-decoration: underline; }
.footer-links a.footer-privacy { color: #FFD982; font-weight: 700; }
.footer-info, .footer-copy { margin: 0; font-size: 14px; line-height: 1.8; color: #C3D2CD; }
.footer-copy small { font-size: inherit; }
.footer-tools { display: flex; align-items: center; gap: 12px; }
.related-sites { position: relative; }
.related-sites > summary {
  list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-width: 200px; min-height: 44px; padding: 0 14px; border: 1px solid #4E6A63; border-radius: 8px;
  color: #fff; font-size: 14px; font-weight: 700; cursor: pointer;
}
.related-sites > summary::-webkit-details-marker { display: none; }
.related-sites > summary::after {
  content: ""; width: 8px; height: 8px; margin-top: -4px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);
}
.related-sites[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
.related-sites ul {
  position: absolute; left: 0; right: 0; bottom: calc(100% + 6px); z-index: 5;
  list-style: none; margin: 0; padding: 6px; border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
.related-sites ul a {
  display: flex; align-items: center; min-height: 40px; padding: 0 10px; border-radius: 6px;
  color: var(--color-text); font-size: 14px; text-decoration: none;
}
.related-sites ul a:hover { background: var(--color-util); color: var(--color-text); }
.to-top {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 48px; height: 48px; border-radius: 50%; background: #fff; color: var(--color-footer);
}
.to-top:hover { color: var(--color-footer); background: #E3E8E5; }
@media (max-width: 640px) {
  .footer-inner { flex-direction: column; gap: 20px; padding-top: 36px; padding-bottom: 40px; }
  .footer-body { flex: none; width: 100%; gap: 12px; }
  .site-footer .brand-logo { height: 20px; }
  .footer-brand { gap: 4px; }
  .footer-links { gap: 6px 18px; }
  .footer-links a { font-size: 14px; }
  .footer-info, .footer-copy { font-size: 13px; }
  .footer-tools { width: 100%; gap: 10px; }
  .related-sites { flex: 1 1 auto; min-width: 0; }
  .related-sites > summary { min-width: 0; }
  .to-top { width: 44px; height: 44px; }
}

/* 큰 버튼·테두리 버튼 (메인 맨 위) */
.btn-lg { min-height: 52px; padding: 0 22px; border-radius: 12px; font-size: 18px; }
.btn-outline { background: #fff; color: var(--color-text); border: 1.5px solid var(--color-text); }
.btn-outline:hover { background: var(--color-util); color: var(--color-text); }
.round-btn {
  display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; padding: 0;
  border: 1px solid #C9D3CF; border-radius: 50%; background: #fff; color: var(--color-text); cursor: pointer;
}
.round-btn:hover { background: var(--color-util); }
.round-btn [hidden] { display: none; }

/* 메인 맨 위 (SFR-001, 시안 01·02): 넓은 화면은 글자 오른쪽에 그림, 좁은 화면은 글자 아래에 그림 */
.hero { position: relative; overflow: hidden; background: var(--color-secondary); }
.hero-inner { position: relative; z-index: 1; padding-top: 72px; padding-bottom: 72px; }
.hero-text { max-width: 460px; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 6px 14px; border-radius: 999px;
  background: #fff; color: var(--color-point); font-size: 15px; font-weight: 700;
}
.hero-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.hero-title { margin: 0; font-size: clamp(36px, 3.6vw, 52px); font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; }
.hero-year { display: block; font-size: 0.7em; font-weight: 700; }
.hero-highlight { display: block; color: var(--color-point); }
.hero-main { display: block; }
.hero-desc { margin: 20px 0 0; max-width: 25em; font-size: 17px; line-height: 1.7; color: var(--color-muted); }
.hero-facts { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 24px 0 0; }
.hero-facts > div { display: flex; align-items: baseline; gap: 12px; }
.hero-facts dt { font-size: 16px; font-weight: 700; color: var(--color-muted); white-space: nowrap; }
.hero-facts dd { margin: 0; font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero-slide img { display: block; }
.hero-controls-wrap { display: flex; justify-content: center; padding-top: 12px; padding-bottom: 20px; }
.hero-controls { display: flex; align-items: center; gap: 8px; }
.hero-controls[hidden] { display: none; }
.hero-count {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 999px;
  background: #fff; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.hero-count-now { color: var(--color-point); margin-right: 4px; }
/* 좁은 화면: 글자 아래에 그림 (12:5, 휴대폰은 높이 240px) */
.hero-media { position: relative; aspect-ratio: 12 / 5; }
.hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 85% center; }
@media (min-width: 1024px) {
  /* 넓은 화면: 그림을 오른쪽에 높이 540px로 깔고, 왼쪽 끝을 흐리게. 글자 뒤에는 흰 바탕을 깔아 그림 위에서도 대비를 지킨다 */
  /* 높이는 540px을 기본으로, 글이 길면(버튼이 두 줄 등) 위아래 여백 40px을 지키며 늘어난다 (2026-10-26) */
  .hero.has-media { min-height: 540px; background: #fff; }
  .hero.has-media .hero-inner { display: flex; align-items: center; min-height: 540px; padding-top: 40px; padding-bottom: 40px; }
  .hero.has-media .hero-text { position: relative; flex: 0 1 460px; }
  .hero.has-media .hero-text::before {
    content: ""; position: absolute; z-index: -1; top: -64px; bottom: -64px; left: -100vw; right: -120px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.94) calc(100% - 180px), rgba(255, 255, 255, 0));
  }
  .hero.has-media .hero-badge { background: var(--color-secondary); }
  .hero.has-media .hero-media { position: absolute; inset: 0; aspect-ratio: auto; }
  /* 그림 오른쪽 끝은 본문 폭(상단 전체 메뉴 아이콘 끝)에 맞춘다. 큰 모니터에서 화면 끝에 붙지 않게 (2026-10-24 요청) */
  .hero.has-media .hero-media img {
    left: auto; right: max(var(--gutter), calc((100% - 1280px) / 2)); width: auto; max-width: none; height: 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%);
    mask-image: linear-gradient(90deg, transparent 0, #000 30%);
  }
  .hero-controls-wrap { position: absolute; left: 0; right: 0; bottom: 24px; z-index: 2; justify-content: flex-end; padding-top: 0; padding-bottom: 0; pointer-events: none; }
  .hero-controls { pointer-events: auto; }
}
@media (max-width: 640px) {
  .hero-inner { padding-top: 32px; padding-bottom: 24px; }
  .hero-badge { padding: 5px 12px; font-size: 14px; }
  .hero-title { font-size: 36px; line-height: 1.25; }
  .hero-year { font-size: 26px; }
  .hero-desc { margin-top: 16px; font-size: 16px; }
  .hero-facts { flex-direction: column; gap: 6px; margin-top: 20px; }
  .hero-facts > div { gap: 10px; }
  .hero-facts dt { flex: 0 0 64px; font-size: 14px; }
  .hero-facts dd { font-size: 16px; }
  .hero-buttons { flex-direction: column; gap: 10px; margin-top: 24px; }
  .hero-buttons .btn { min-height: 54px; font-size: 17px; }
  .hero-media { aspect-ratio: auto; height: 240px; }
}

/* 메인 아래쪽 영역 (SFR-001, SFR-205) */
.main-section { padding: 96px 0; background: #fff; }
.main-section-intro { padding: 112px 0; }
.main-section-howto { background: var(--color-secondary); }
.main-section-awards { background: #F4F6F3; }
.eyebrow { margin: 0 0 6px; font-size: 28px; line-height: 1.2; color: var(--color-point); }
.section-heading { margin: 0; font-size: 38px; font-weight: 800; line-height: 1.3; letter-spacing: -0.01em; }
.section-lead { margin: 18px 0 0; max-width: 34em; font-size: 17px; line-height: 1.75; color: var(--color-muted); overflow-wrap: anywhere; }

/* 공모전 소개: 글과 응모 대상·공모 주제·작품 규격, 오른쪽에 도화지 크기 그림 */
.intro-grid { display: flex; flex-wrap: wrap; align-items: center; gap: 48px 64px; }
.intro-text { flex: 1 1 520px; min-width: 0; }
.intro-facts { display: flex; flex-direction: column; gap: 24px; margin: 40px 0 0; }
.intro-fact { position: relative; min-height: 56px; padding-left: 76px; }
.intro-fact dt { font-size: 18px; font-weight: 800; }
.intro-fact dd { margin: 4px 0 0; font-size: 16px; line-height: 1.6; color: var(--color-muted); }
.fact-icon {
  position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%; background: var(--color-secondary); color: var(--color-point);
}
.paper-sizes {
  flex: 1 1 460px; min-width: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-end; gap: 28px 16px;
  padding: 40px 24px; border-radius: 28px; background: var(--color-secondary);
}
.paper-size { display: flex; flex-direction: column; align-items: center; gap: 14px; margin: 0; }
.paper-ruler { align-self: stretch; display: flex; align-items: center; gap: 6px; margin-bottom: -4px; font-size: 12px; font-weight: 700; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.paper-ruler::before, .paper-ruler::after { content: ""; flex: 1; height: 1px; background: #7D8A84; }
.paper { overflow: hidden; border-radius: 3px; background: #fff; box-shadow: 0 12px 32px rgba(15, 50, 44, 0.14); }
.paper svg { display: block; width: 100%; height: 100%; }
.paper-8 { width: 124px; height: 180px; }
.paper-4 { width: 180px; height: 249px; }
.paper-back {
  display: flex; flex-direction: column; gap: 8px; width: 132px; height: 182px; padding: 14px 12px; border-radius: 3px;
  background: #fff; box-shadow: 0 12px 32px rgba(15, 50, 44, 0.14); transform: rotate(3deg);
}
.paper-back span { font-size: 17px; line-height: 1.2; color: #2B3A35; border-bottom: 1px solid #C9D3CF; white-space: nowrap; }
.paper-back .paper-back-label { font-family: inherit; font-size: 11px; font-weight: 700; color: #4F5B56; border: 0; }
.paper-back .paper-back-no { font-size: 26px; line-height: 1; color: var(--color-point); border-bottom: 2px solid var(--color-point); padding-bottom: 4px; }
.paper-size figcaption { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 14px; text-align: center; }
.paper-size figcaption strong { font-weight: 800; }
.paper-size figcaption span { color: #4F5B56; font-variant-numeric: tabular-nums; }

/* 참여 방법 */
.step-cards { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.step-card { display: flex; flex-direction: column; gap: 14px; padding: 32px 28px; border-radius: 20px; background: #fff; }
.step-icon { display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: var(--color-secondary); color: var(--color-point); }
.step-no { font-size: 14px; font-weight: 800; letter-spacing: 0.06em; color: var(--color-point); }
.step-name { font-size: 20px; font-weight: 800; }
.step-text { font-size: 16px; line-height: 1.65; color: var(--color-muted); }
.mail-note {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  margin-top: 20px; padding: 20px 28px; border: 1.5px dashed var(--color-point); border-radius: 16px; background: #fff;
}
.mail-note p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--color-sub); }
.mail-note strong { font-weight: 800; }
.mail-note a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 16px; font-weight: 700; }

/* 공모 일정: 넓은 화면은 가로 줄, 좁은 화면은 세로 줄 */
.timeline { position: relative; list-style: none; margin: 48px 0 0; padding: 0; display: flex; }
/* 점선은 첫 동그라미 가운데부터 마지막 동그라미 가운데까지 (--n: 단계 수) */
.timeline::before { content: ""; position: absolute; top: 40px; left: calc(50% / var(--n, 5)); right: calc(50% / var(--n, 5)); border-top: 2px dotted #AEBBB5; }
.timeline-item { position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 0 8px; text-align: center; }
.timeline-icon {
  display: flex; align-items: center; justify-content: center; flex: none; width: 80px; height: 80px; border-radius: 50%;
  background: var(--color-secondary); color: var(--color-point);
}
.timeline-item.is-now .timeline-icon { background: var(--color-point); color: #fff; box-shadow: 0 0 0 8px var(--color-secondary); }
.timeline-name { font-size: 18px; font-weight: 800; }
.timeline-item.is-now .timeline-name { color: var(--color-point); }
.badge-now {
  display: inline-block; margin-left: 4px; padding: 2px 8px; border-radius: 999px; vertical-align: 2px;
  background: var(--color-point); color: #fff; font-size: 13px; white-space: nowrap;
}
.timeline-date { font-size: 16px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .timeline { flex-direction: column; gap: 4px; margin-top: 28px; }
  .timeline::before { top: 28px; bottom: 28px; left: 27px; right: auto; border-top: 0; border-left: 2px dotted #AEBBB5; }
  .timeline-item {
    display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 2px 16px;
    padding: 8px 0; text-align: left;
  }
  .timeline-icon { grid-row: span 2; width: 56px; height: 56px; }
  .timeline-icon .icon { width: 24px; height: 24px; }
  .timeline-item.is-now .timeline-icon { box-shadow: 0 0 0 6px var(--color-secondary); }
  .timeline-name { align-self: end; font-size: 16px; }
  .timeline-date { align-self: start; font-size: 14px; }
}

/* 정보·홍보 자료실 영역 */
.section-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; }
.section-head-row .section-lead { margin-top: 14px; }
.more-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 16px; font-weight: 700; color: var(--color-text); }
.more-link:hover { color: var(--color-text); }
.type-chips { margin-top: 32px; }
.type-chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.type-chips a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 999px;
  background: #EEF2F0; color: var(--color-sub); font-size: 16px; text-decoration: none;
}
.type-chips a:hover { background: var(--color-secondary); color: var(--color-text); }
.type-chips a.is-all { background: var(--color-point); color: #fff; font-weight: 700; }
.resource-cards { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; }
.resource-card-link { display: flex; flex-direction: column; gap: 14px; color: var(--color-text); text-decoration: none; transition: transform 0.2s ease; }
.resource-card-link:hover { color: var(--color-text); transform: translateY(-4px); }
.resource-card-link:hover .rc-title { text-decoration: underline; }
.rc-thumb { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 16px; }
.rc-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rc-badge { position: absolute; top: 14px; left: 14px; padding: 4px 10px; border-radius: 6px; background: #fff; font-size: 13px; font-weight: 700; }
.rc-mint { background: var(--color-secondary); color: var(--color-point); }
.rc-dark { background: #22332F; color: #fff; }
.rc-dark .rc-badge { color: #22332F; }
.rc-yellow { background: #FFF3D6; color: #9A6A00; }
.rc-yellow .rc-badge { color: #7A5400; }
.rc-blue { background: #E8EEF8; color: #2D4F86; }
.rc-sand { background: #F4F6F3; color: var(--color-muted); }
.rc-title { font-size: 18px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.rc-meta { font-size: 14px; color: #5B6762; font-variant-numeric: tabular-nums; }
@media (max-width: 1023px) {
  .resource-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
}

@media (max-width: 640px) {
  .main-section, .main-section-intro { padding: 56px 0; }
  .eyebrow { margin-bottom: 4px; font-size: 24px; }
  .section-heading { font-size: 26px; line-height: 1.35; }
  .section-lead { margin-top: 12px; font-size: 16px; line-height: 1.7; }
  .intro-grid { gap: 32px; }
  .intro-facts { gap: 18px; margin-top: 28px; }
  .intro-fact { min-height: 48px; padding-left: 62px; }
  .intro-fact dt { font-size: 16px; }
  .intro-fact dd { font-size: 15px; }
  .fact-icon { width: 48px; height: 48px; }
  .fact-icon .icon { width: 22px; height: 22px; }
  .paper-sizes { padding: 28px 16px; gap: 20px 12px; border-radius: 20px; }
  .paper-8 { width: 96px; height: 139px; }
  .paper-4 { width: 132px; height: 183px; }
  .paper-back { width: 120px; height: 168px; padding: 12px 10px; gap: 6px; }
  .paper-back span { font-size: 15px; }
  .paper-back .paper-back-no { font-size: 22px; }
  .step-cards { gap: 12px; margin-top: 28px; }
  .step-card { gap: 10px; padding: 20px; border-radius: 16px; }
  .step-icon { width: 48px; height: 48px; }
  .step-icon .icon { width: 22px; height: 22px; }
  .step-name { font-size: 18px; }
  .step-text { font-size: 15px; }
  .mail-note { padding: 16px; }
  .type-chips { margin-top: 24px; }
  .type-chips a { min-height: 40px; padding: 0 16px; font-size: 15px; }
  .resource-cards { margin-top: 24px; }
  .rc-thumb { border-radius: 12px; }
  .rc-badge { top: 8px; left: 8px; padding: 2px 8px; font-size: 12px; }
  .rc-thumb .icon { width: 48px; height: 48px; }
  .rc-title { font-size: 15px; }
  .rc-meta { font-size: 13px; }
}

/* 공모요강·접수 안내 (SFR-002, 시안 03) */
.guide-page { max-width: calc(1000px + 2 * var(--gutter)); display: flex; flex-direction: column; gap: 72px; }
.guide-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.guide-cards li { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 18px; background: var(--color-secondary); }
.guide-cards span { font-size: 14px; font-weight: 700; color: var(--color-point); }
.guide-cards strong { font-size: 19px; font-weight: 800; line-height: 1.45; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.guide-block h2, .doc-body h2 { margin: 0 0 20px; font-size: 28px; font-weight: 800; line-height: 1.35; }
.doc-body h2:not(:first-child) { margin-top: 64px; }
.doc-body h3, .guide-block h3 { margin: 36px 0 14px; font-size: 20px; font-weight: 800; }
.doc-body p { margin: 0 0 12px; font-size: 16px; line-height: 1.75; color: var(--color-sub); overflow-wrap: anywhere; }
.doc-body ul {
  display: flex; flex-direction: column; gap: 10px; margin: 0 0 16px; padding: 24px 28px 24px 48px; border-radius: 18px;
  background: #F6F8F7; font-size: 16px; line-height: 1.65; color: var(--color-sub);
}
.size-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.size-card { display: flex; align-items: flex-end; gap: 28px; padding: 28px; border: 1px solid #DCE4E0; border-radius: 20px; }
.size-paper { flex: none; border: 2px solid var(--color-point); border-radius: 3px; background: #fff; box-shadow: 0 8px 20px rgba(15, 50, 44, 0.1); }
.size-paper-8 { width: 102px; height: 148px; }
.size-paper-4 { width: 148px; height: 205px; }
.size-card p { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 0; }
.size-card p span:first-child { font-size: 15px; font-weight: 700; color: var(--color-point); }
.size-card strong { font-size: 26px; font-weight: 800; }
.size-card p span:last-child { font-size: 16px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.size-notes { display: flex; flex-direction: column; gap: 8px; margin: 20px 0 0; padding-left: 20px; font-size: 16px; line-height: 1.65; color: var(--color-sub); }
.size-notes strong { font-weight: 800; }
.step-boxes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.step-boxes li { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid #DCE4E0; border-radius: 16px; }
.step-boxes li.is-now { border-color: var(--color-point); background: var(--color-point); color: #fff; }
.step-box-no { font-size: 13px; font-weight: 800; color: #5B6762; }
.step-boxes strong { font-size: 17px; font-weight: 800; }
.step-box-date { font-size: 15px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.step-boxes li.is-now .step-box-no, .step-boxes li.is-now .step-box-date { color: #fff; }
.file-rows { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--color-text); }
.file-rows li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 8px; border-bottom: 1px solid var(--color-line); }
.file-name { display: flex; align-items: center; gap: 12px; min-width: 0; font-size: 17px; font-weight: 700; }
.file-name .icon { color: var(--color-point); }
.file-rows .btn { min-height: 44px; padding: 0 18px; font-size: 15px; }
.file-size { font-weight: 400; color: var(--color-muted); }
.cta-box {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px;
  padding: 36px 40px; border-radius: 24px; background: var(--color-secondary);
}
.cta-hand { margin: 0; font-size: 28px; line-height: 1.2; color: var(--color-point); }
.cta-text { margin: 4px 0 0; font-size: 18px; font-weight: 700; }
.cta-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.guide-lead { margin: 0; max-width: 46em; font-size: 17px; line-height: 1.75; color: var(--color-sub); }
.flow-steps { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 12px; }
.flow-steps li { display: flex; align-items: flex-start; gap: 16px; padding: 20px 24px; border: 1px solid #DCE4E0; border-radius: 16px; }
.flow-no {
  display: flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; border-radius: 50%;
  background: var(--color-point); color: #fff; font-weight: 800;
}
.flow-steps li > div > strong { display: block; font-size: 17px; font-weight: 800; }
.flow-steps p { margin: 4px 0 0; font-size: 16px; line-height: 1.7; color: var(--color-sub); }
.address-box { padding: 28px 32px; border-radius: 20px; background: #F6F8F7; }
.address-box .mail-address { padding: 0; border: 0; font-size: 18px; font-weight: 700; line-height: 1.7; }
.address-facts { display: grid; gap: 6px; margin: 16px 0 0; }
.address-facts > div { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.address-facts dt { flex: 0 0 5em; font-weight: 700; color: var(--color-muted); }
.address-facts dd { margin: 0; overflow-wrap: anywhere; }
.button-group { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 640px) {
  .guide-page { gap: 48px; }
  .guide-cards li { padding: 18px; }
  .guide-cards strong { font-size: 17px; }
  .guide-block h2, .doc-body h2 { font-size: 22px; }
  .doc-body h2:not(:first-child) { margin-top: 48px; }
  .doc-body ul { padding: 18px 18px 18px 36px; }
  .size-card { gap: 16px; padding: 20px; }
  .size-paper-8 { width: 64px; height: 93px; }
  .size-paper-4 { width: 88px; height: 122px; }
  .size-card strong { font-size: 20px; }
  .file-name { font-size: 16px; }
  .cta-box { padding: 24px 20px; }
  .cta-hand { font-size: 24px; }
  .cta-text { font-size: 16px; }
  .cta-buttons, .cta-buttons .btn { width: 100%; }
  .flow-steps li { padding: 16px; gap: 12px; }
  .address-box { padding: 20px; }
}

/* 온라인 응모 신청 (SFR-003·005·006, 시안 04·05): 4단계 표시, 동의 화면 */
.apply-page { max-width: calc(960px + 2 * var(--gutter)); }
.apply-steps-now { display: none; }
.apply-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.apply-steps li {
  flex: 1 1 180px; min-width: 0; display: flex; align-items: center; gap: 12px;
  padding: 16px 18px; border-radius: 14px; background: #F2F5F3; color: var(--color-muted);
}
.apply-step-no {
  display: flex; align-items: center; justify-content: center; flex: 0 0 32px; height: 32px;
  border: 1.5px solid #9AA8A2; border-radius: 50%; font-weight: 800;
}
.apply-step-text { display: flex; flex-direction: column; min-width: 0; }
.apply-step-text strong { font-size: 16px; font-weight: 700; }
.apply-step-label { font-size: 12px; }
.apply-steps li.is-current { background: var(--color-point); color: #fff; }
.apply-steps li.is-current .apply-step-no { border: 0; background: #fff; color: var(--color-point); }
.apply-steps li.is-current strong { font-weight: 800; }
.apply-steps li.is-done .apply-step-no { border-color: var(--color-point); background: var(--color-point); color: #fff; }
.apply-body { display: flex; flex-direction: column; gap: 28px; margin-top: 40px; }
.apply-step-title { margin: 40px 0 20px; font-size: 26px; font-weight: 800; }
.apply-page .apply-section h3, .apply-page .confirm-head h3 { margin: 0; font-size: 20px; font-weight: 800; }
.apply-page .confirm-head { margin-bottom: 12px; }
.apply-page .confirm-sub { margin: 16px 0 6px; font-size: 16px; }
.info-box {
  display: flex; align-items: flex-start; gap: 14px; margin: 0; padding: 20px 24px; border-radius: 16px;
  background: var(--color-secondary); color: var(--color-text);
}
.info-box > .icon { margin-top: 1px; color: var(--color-point); }
.info-box p { margin: 0; font-size: 16px; line-height: 1.65; }
.info-box strong { font-weight: 800; }
.info-box-warn { background: #FFF6E0; border: 1px solid #F0D9A0; color: #3D2E05; }
.info-box-warn > .icon { color: #8A5A00; }
.apply-ready { padding: 4px 0; }
.apply-ready > summary { font-weight: 700; color: var(--color-point); }
.apply-ready ul { margin: 10px 0 0; padding-left: 22px; line-height: 1.75; color: var(--color-sub); }
.consent-form-screen { display: flex; flex-direction: column; gap: 28px; }
.agree-all {
  display: flex; align-items: center; gap: 14px; padding: 20px 24px; border: 2px solid var(--color-point); border-radius: 16px; cursor: pointer;
}
.agree-all input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--color-point); }
.agree-all > span { display: flex; flex-direction: column; }
.agree-all strong { font-size: 18px; font-weight: 800; }
.agree-all strong + span { font-size: 14px; color: #4F5B56; }
.consent-box { overflow: hidden; border: 1px solid #DCE4E0; border-radius: 20px; }
.consent-box-head { display: flex; align-items: center; gap: 10px; padding: 20px 24px; background: #F6F8F7; }
.consent-box-head h2 { margin: 0; font-size: 20px; font-weight: 800; }
.badge-required, .badge-optional { flex: none; padding: 2px 10px; border-radius: 999px; color: #fff; font-size: 13px; font-weight: 700; }
.badge-required { background: #B33A2F; }
.badge-optional { background: #5B6762; }
.consent-box-body { display: flex; flex-direction: column; gap: 18px; padding: 24px; }
.kid-note { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; border-radius: 14px; background: var(--color-secondary); }
.kid-note .hand { flex: none; font-size: 24px; line-height: 1.1; color: var(--color-point); }
.kid-note p { margin: 0; font-size: 16px; line-height: 1.65; }
.consent-summary .doc-table { margin: 0; font-size: 15px; line-height: 1.6; }
.consent-summary .doc-table th, .consent-summary .doc-table td { padding: 12px 14px; }
.consent-summary .doc-table thead ~ tbody td { text-align: left; }
.consent-summary .doc-table-kv th { width: 120px; }
.consent-summary p { margin: 12px 0 0; font-size: 15px; line-height: 1.6; }
.consent-refuse { margin: 0; font-size: 15px; line-height: 1.6; color: var(--color-muted); }
.consent-choice { margin: 0; padding: 0; border: 0; }
.consent-choice legend { margin-bottom: 8px; padding: 0; font-weight: 700; line-height: 1.6; }
.choice-pills { display: flex; flex-wrap: wrap; gap: 12px; }
.choice {
  flex: 1 1 200px; display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 18px;
  border: 1.5px solid #C9D3CF; border-radius: 12px; background: #fff; font-size: 16px; cursor: pointer;
}
.choice input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--color-point); }
.choice:has(input:checked) { border: 2px solid var(--color-point); background: var(--color-secondary); font-weight: 700; }
.consent-version { margin: -8px 0 0; font-size: 13px; color: #5B6762; text-align: right; }
.apply-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; padding-top: 12px; }
.apply-help {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px;
  padding: 18px 24px; border-radius: 16px; background: #F6F8F7;
}
.apply-help p { margin: 0; font-size: 15px; color: var(--color-sub); }
.apply-help a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
@media (max-width: 640px) {
  /* 좁은 화면: '1 / 4단계 · 동의'와 막대 */
  .apply-steps-now { display: block; margin: 0 0 10px; font-size: 20px; font-weight: 800; }
  .apply-steps-now span { display: block; font-size: 14px; font-weight: 700; color: var(--color-point); }
  .apply-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .apply-steps li { flex-direction: column; align-items: stretch; gap: 6px; padding: 0; border-radius: 0; background: none; color: #4F5B56; font-size: 12px; }
  .apply-steps li::before { content: ""; height: 6px; border-radius: 3px; background: #DCE4E0; }
  .apply-steps li.is-current, .apply-steps li.is-done { background: none; color: var(--color-point); }
  .apply-steps li.is-current::before, .apply-steps li.is-done::before { background: var(--color-point); }
  .apply-step-no, .apply-step-label { display: none; }
  .apply-step-text strong { font-size: 12px; font-weight: 400; overflow-wrap: anywhere; }
  .apply-steps li.is-current strong { font-weight: 800; }
  .apply-body { gap: 20px; margin-top: 24px; }
  .apply-step-title { margin-top: 28px; font-size: 22px; }
  .info-box { padding: 16px; gap: 12px; }
  .info-box p { font-size: 15px; }
  .agree-all { padding: 16px; }
  .agree-all strong { font-size: 16px; }
  .consent-box { border-radius: 16px; }
  .consent-box-head { padding: 14px 16px; }
  .consent-box-head h2 { font-size: 17px; }
  .consent-box-body { gap: 14px; padding: 16px; }
  .kid-note { flex-direction: column; gap: 2px; padding: 12px 14px; }
  .kid-note .hand { font-size: 21px; }
  .kid-note p { font-size: 14px; }
  .choice { flex-basis: 100%; }
  .apply-actions .btn { width: 100%; }
  .apply-help { padding: 16px; }
}

/* 신청 단계: 마친 단계 (시안 06) */
.apply-steps li.is-done { background: var(--color-secondary); color: var(--color-text); }
.apply-steps li.is-done .apply-step-no { border: 0; background: var(--color-point); color: #fff; }
.apply-steps li.is-done .apply-step-label { color: var(--color-muted); }

/* 신청 완료 (SFR-007, 시안 06) */
.apply-page > .done-hero, .apply-page > section, .apply-page > .info-box, .apply-page > .apply-actions, .apply-page > .apply-help { margin-top: 40px; }
.done-hero {
  display: flex; flex-direction: column; align-items: center; padding: 48px 40px 40px; border-radius: 28px;
  background: var(--color-secondary); text-align: center;
}
.done-mark { display: flex; align-items: center; justify-content: center; width: 80px; height: 80px; border-radius: 50%; background: var(--color-point); color: #fff; }
.done-hero h2 { margin: 20px 0 0; font-size: 32px; font-weight: 800; line-height: 1.35; letter-spacing: -0.01em; }
.done-hero > p { margin: 12px 0 0; max-width: 34em; font-size: 17px; line-height: 1.7; color: var(--color-sub); }
.done-hero strong { font-weight: 800; color: var(--color-text); }
.receipt-card {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 24px; margin-top: 28px; padding: 20px 28px;
  border-radius: 20px; background: #fff; box-shadow: 0 8px 24px rgba(15, 50, 44, 0.08);
}
.receipt-label { font-size: 16px; font-weight: 700; color: var(--color-muted); }
.receipt-no { font-size: 44px; font-weight: 800; line-height: 1.1; letter-spacing: 0.03em; color: var(--color-point); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.receipt-card .btn[hidden] { display: none; }
.done-hero .receipt-help { margin-top: 14px; font-size: 15px; color: var(--color-muted); }
.done-summary h3, .done-earlier h3 { margin: 0; font-size: 24px; font-weight: 800; }
.summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); margin: 16px 0 0; border-top: 1.5px solid var(--color-text); font-size: 16px; line-height: 1.6; }
.summary-grid > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); border-bottom: 1px solid var(--color-line); }
.summary-grid dt { padding: 14px 16px; background: #F6F8F7; font-weight: 700; }
.summary-grid dd { margin: 0; padding: 14px 16px; overflow-wrap: anywhere; }
.summary-grid strong { font-weight: 800; }
.muted { color: #4F5B56; }
.done-next h3 { margin: 0; font-size: 30px; font-weight: 800; line-height: 1.35; }
.done-next .eyebrow { font-size: 26px; margin-bottom: 4px; }
.done-steps { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.done-step { padding: 28px; border: 1px solid #DCE4E0; border-radius: 20px; }
.done-step-head { display: flex; align-items: center; gap: 12px; }
.done-step-head h4 { margin: 0; font-size: 21px; font-weight: 800; }
.done-step-text { margin: 10px 0 0 48px; font-size: 16px; line-height: 1.65; color: var(--color-muted); }
.done-step-text strong { font-weight: 800; color: var(--color-text); }
.paper-cards { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 16px; }
.paper-card { display: flex; flex-wrap: wrap; align-items: stretch; gap: 22px; padding: 22px; border-radius: 16px; background: #F6F8F7; }
.paper-mini {
  display: flex; flex-direction: column; gap: 7px; flex: 0 0 132px; height: 186px; padding: 14px 12px;
  border: 1px solid #C9D3CF; border-radius: 4px; background: #fff; box-shadow: 0 8px 20px rgba(15, 50, 44, 0.1);
}
.paper-mini-title { font-size: 10px; font-weight: 800; text-align: center; }
.paper-mini-no { align-self: center; padding: 1px 6px; border: 1px solid var(--color-point); border-radius: 3px; font-size: 9px; font-weight: 800; color: var(--color-point); font-variant-numeric: tabular-nums; }
.paper-mini-line { height: 5px; border-radius: 2px; background: #DCE4E0; }
.paper-mini-line:first-of-type { margin-top: 4px; }
.paper-mini-line.w80 { width: 80%; }
.paper-mini-line.w75 { width: 75%; }
.paper-mini-line.w65 { width: 65%; }
.paper-mini-line.w60 { width: 60%; }
.paper-mini-foot { margin-top: auto; font-size: 8px; color: #4F5B56; text-align: center; }
.paper-mini-sign {
  display: flex; align-items: center; justify-content: space-between; gap: 4px; margin-top: auto; padding: 6px;
  border: 1.5px dashed #B33A2F; border-radius: 3px; font-size: 8px; font-weight: 800; color: #B33A2F;
}
.paper-mini-sign .hand { font-size: 13px; color: #7D8A84; }
.paper-card-text { flex: 1 1 180px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.paper-card-text h5 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: 18px; font-weight: 800; }
.paper-card-text p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--color-muted); }
.paper-card-text p strong { font-weight: 800; color: var(--color-text); }
.paper-card-text .btn { align-self: flex-start; margin-top: auto; font-size: 15px; }
.done-print-all { margin: 14px 0 0; }
.done-print-all a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.done-step-row { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; margin: 14px 0 0 48px; }
.done-step-row .done-step-text { flex: 1 1 320px; min-width: 0; margin: 0; }
.back-note {
  display: flex; flex-direction: column; gap: 4px; flex: none; width: 220px; padding: 12px 14px; border: 1px solid #C9D3CF; border-radius: 4px;
  background: #fff; box-shadow: 0 6px 16px rgba(15, 50, 44, 0.08); transform: rotate(-2deg);
}
.back-note .hand { font-size: 16px; color: #2B3A35; overflow-wrap: anywhere; }
.back-note .back-note-no { padding-bottom: 3px; border-bottom: 2px solid var(--color-point); font-size: 24px; line-height: 1; color: var(--color-point); }
.pack-chips { list-style: none; margin: 16px 0 0 48px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pack-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--color-secondary); font-size: 16px; font-weight: 700; }
.pack-chips .icon { color: var(--color-point); }
.send-info { display: grid; grid-template-columns: 120px minmax(0, 1fr); margin: 20px 0 0 48px; border-top: 1px solid var(--color-line); font-size: 16px; line-height: 1.6; }
.send-info dt { padding: 12px 14px; border-bottom: 1px solid var(--color-line); background: #F6F8F7; font-weight: 700; }
.send-info dd { margin: 0; padding: 12px 14px; border-bottom: 1px solid var(--color-line); overflow-wrap: anywhere; }
.send-info .mail-address { padding: 0; border: 0; line-height: 1.6; }
.done-earlier ul { margin: 12px 0 0; padding-left: 22px; line-height: 1.8; }
@media (max-width: 640px) {
  .apply-page > .done-hero, .apply-page > section, .apply-page > .info-box, .apply-page > .apply-actions, .apply-page > .apply-help { margin-top: 28px; }
  .done-hero { padding: 32px 20px 28px; border-radius: 20px; }
  .done-mark { width: 64px; height: 64px; }
  .done-hero h2 { font-size: 24px; }
  .done-hero > p { font-size: 15px; }
  .receipt-card { padding: 16px; gap: 8px 16px; }
  .receipt-no { font-size: 32px; }
  .summary-grid > div { grid-template-columns: 88px minmax(0, 1fr); }
  .summary-grid dt, .summary-grid dd { padding: 12px; font-size: 15px; }
  .done-next h3 { font-size: 24px; }
  .done-step { padding: 18px 16px; }
  .done-step-head h4 { font-size: 18px; }
  .done-step-text, .done-step-row, .pack-chips, .send-info { margin-left: 0; }
  .paper-card { padding: 16px; gap: 16px; }
  .paper-mini { flex-basis: 104px; height: 148px; }
  .send-info { grid-template-columns: 88px minmax(0, 1fr); font-size: 15px; }
  .pack-chips li { font-size: 15px; }
}

/* 정보·홍보 자료실 목록 (SFR-012, 시안 07·08) */
.search-box { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; padding: 24px; border-radius: 18px; background: #F4F6F3; }
.search-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.search-field label { font-size: 14px; font-weight: 700; }
.search-field select, .search-field input {
  min-height: 48px; padding: 0 12px; border: 1px solid #8A9792; border-radius: 10px; background: #fff; font: inherit; font-size: 16px; color: var(--color-text);
}
.search-topic { flex: 0 1 220px; }
.search-q { flex: 1 1 320px; }
.search-submit { min-height: 48px; padding: 0 26px; }
.list-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; }
.list-bar .type-chips { margin: 0; }
.type-chips a[aria-current] { background: var(--color-point); color: #fff; font-weight: 700; }
.list-tools { display: flex; align-items: center; gap: 16px; }
.list-total { margin: 0; font-size: 15px; color: var(--color-muted); }
.list-total strong { font-weight: 800; color: var(--color-text); }
.view-toggle { list-style: none; margin: 0; padding: 4px; display: flex; gap: 4px; border-radius: 12px; background: #EEF2F0; }
.view-toggle a { display: flex; align-items: center; justify-content: center; width: 44px; height: 40px; border-radius: 9px; color: var(--color-muted); }
.view-toggle a:hover { color: var(--color-text); background: rgba(255, 255, 255, 0.6); }
.view-toggle a[aria-current] { background: #fff; color: var(--color-point); box-shadow: 0 1px 3px rgba(15, 50, 44, 0.12); }
.filter-clear { margin: 12px 0 0; }
.resource-cards-list { gap: 32px 24px; margin-top: 28px; }
.rc-navy { background: #ECEFF4; color: #3E4F72; }
.resource-table { margin-top: 28px; }
.resource-table tbody th { font-weight: 400; }
.resource-table tbody td:first-child, .resource-table tbody td:last-child { white-space: nowrap; }
.doc-table.resource-table thead ~ tbody td { text-align: left; }
.empty { margin: 28px 0 0; padding: 48px 16px; border-radius: 16px; background: #F6F8F7; color: var(--color-muted); text-align: center; }
.pager { display: flex; justify-content: center; margin-top: 56px; }
.pager ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; }
.pager a, .pager-arrow, .pager-gap { display: flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; border-radius: 10px; color: var(--color-text); text-decoration: none; }
.pager a:hover { background: var(--color-util); }
.pager a[aria-current] { background: var(--color-point); color: #fff; font-weight: 800; }
.pager-arrow { border: 1px solid #D5DDD9; }
.pager-arrow.is-off { color: #AEBBB5; }
@media (max-width: 640px) {
  .search-box { flex-direction: column; align-items: stretch; gap: 10px; padding: 16px; border-radius: 14px; }
  .search-topic, .search-q { flex: none; }
  .list-bar { gap: 12px; margin-top: 16px; }
  .list-bar .type-chips { width: calc(100% + 2 * var(--gutter)); margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); overflow-x: auto; }
  .list-bar .type-chips ul { flex-wrap: nowrap; width: max-content; }
  .list-tools { width: 100%; justify-content: space-between; }
  .resource-cards-list { gap: 24px 12px; margin-top: 16px; }
  .pager { margin-top: 36px; }
  .pager ul { gap: 4px; }
}

/* 정보·홍보 자료 보기 (SFR-012, 시안 09) */
.btn-dark { min-width: 180px; background: var(--color-text); color: #fff; border: 1px solid var(--color-text); }
.btn-dark:hover { background: #000; color: #fff; }
.round-btn[aria-disabled="true"] { opacity: 0.45; cursor: default; }
.rv-head { padding-bottom: 28px; border-bottom: 2px solid var(--color-text); }
.rv-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.rv-tag-type, .rv-tag-topic { padding: 4px 12px; border-radius: 6px; font-size: 14px; }
.rv-tag-type { background: var(--color-point); color: #fff; font-weight: 700; }
.rv-tag-topic { background: #EEF2F0; color: var(--color-sub); }
.rv-head h1 { margin: 14px 0 0; font-size: 34px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.rv-meta { margin: 10px 0 0; font-size: 15px; color: #4F5B56; font-variant-numeric: tabular-nums; }
.rv-summary { margin: 24px 0 0; max-width: 46em; font-size: 17px; line-height: 1.75; color: var(--color-sub); }
.rv-main { display: grid; gap: 40px; margin-top: 36px; }
.rv-main.has-aside { grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); align-items: start; }
.rv-content { min-width: 0; }
.cn-pages { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 32px; }
.cn-page[hidden] { display: none; }
.cn-figure { position: relative; max-width: 640px; }
.cn-figure img { display: block; width: 100%; height: auto; border: 1px solid #DCE4E0; border-radius: 20px; }
.cn-count {
  position: absolute; top: 16px; right: 18px; padding: 4px 12px; border-radius: 999px;
  background: rgba(23, 36, 31, 0.8); color: #fff; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.cn-text { max-width: 640px; margin-top: 12px; padding: 16px 20px; border-radius: 14px; background: #F4F6F3; font-size: 15px; line-height: 1.7; color: var(--color-sub); overflow-wrap: anywhere; }
.cn-text-no { display: block; margin-bottom: 4px; font-weight: 800; color: var(--color-text); }
.is-enhanced .cn-text { display: none; }
.cn-controls { display: flex; align-items: center; justify-content: center; gap: 12px; max-width: 640px; margin-top: 16px; }
.cn-controls[hidden], .cn-thumbs[hidden], .rv-box[hidden] { display: none; }
.cn-controls .round-btn { width: 48px; height: 48px; }
.cn-status { min-width: 72px; font-size: 16px; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.cn-status-now { color: var(--color-point); }
.cn-thumbs { list-style: none; margin: 16px 0 0; padding: 0; max-width: 640px; display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; }
.cn-thumbs button {
  position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; padding: 0; overflow: hidden;
  border: 1px solid #D5DDD9; border-radius: 10px; background: #F4F6F3; cursor: pointer;
}
.cn-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cn-thumbs span {
  position: absolute; left: 4px; bottom: 4px; min-width: 22px; padding: 0 5px; border-radius: 6px;
  background: rgba(255, 255, 255, 0.92); color: var(--color-text); font-size: 12px; font-weight: 800; line-height: 20px; text-align: center;
}
.cn-thumbs button[aria-current] { border: 3px solid var(--color-point); }
.cn-help { max-width: 640px; margin: 12px 0 0; text-align: center; }
.video-help { margin-top: 12px; }
.video-help a { display: inline-flex; align-items: center; gap: 4px; }
.rv-aside { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.rv-box { padding: 24px; border: 1px solid #DCE4E0; border-radius: 18px; }
.rv-box-gray { border: 0; background: #F4F6F3; }
.rv-box h2 { margin: 0; font-size: 18px; font-weight: 800; }
.rv-box-sub { font-size: 14px; font-weight: 400; color: #4F5B56; }
.cn-aside-text { margin: 12px 0 16px; font-size: 16px; line-height: 1.75; color: var(--color-sub); overflow-wrap: anywhere; }
.cn-all-text { margin: 16px 0 0; padding-left: 22px; font-size: 15px; line-height: 1.7; color: var(--color-sub); overflow-wrap: anywhere; }
.cn-all-text li + li { margin-top: 10px; }
.rv-files { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rv-files a {
  display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; border-radius: 12px;
  background: var(--color-secondary); color: var(--color-text); text-decoration: none;
}
.rv-files a:hover .rv-file-name { text-decoration: underline; }
.rv-file-name { display: flex; align-items: flex-start; gap: 8px; font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
.rv-file-name .icon { margin-top: 2px; color: var(--color-point); }
.rv-file-info { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--color-muted); }
.rv-related { margin-top: 72px; }
.rv-related h2 { margin: 0 0 20px; font-size: 24px; font-weight: 800; }
.rv-related ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.related-card { display: flex; align-items: center; gap: 16px; padding: 16px; border: 1px solid #DCE4E0; border-radius: 16px; color: var(--color-text); text-decoration: none; }
.related-card:hover { color: var(--color-text); border-color: var(--color-point); }
.related-card:hover strong { text-decoration: underline; }
.related-thumb { position: relative; display: flex; align-items: center; justify-content: center; flex: 0 0 96px; height: 72px; overflow: hidden; border-radius: 10px; }
.related-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.related-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.related-type { font-size: 13px; font-weight: 700; color: var(--color-muted); }
.related-text strong { font-size: 16px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.post-nav { margin-top: 56px; border-top: 1px solid #C9D3CF; }
.post-nav a, .post-nav p { display: flex; align-items: center; gap: 20px; margin: 0; padding: 18px 8px; border-bottom: 1px solid var(--color-line); color: var(--color-text); text-decoration: none; }
.post-nav a:hover .post-nav-title { text-decoration: underline; }
.post-nav-label { flex: 0 0 72px; font-size: 14px; font-weight: 700; color: #4F5B56; }
.post-nav-title { min-width: 0; font-size: 16px; overflow-wrap: anywhere; }
.post-nav p .post-nav-title { color: var(--color-muted); }
.list-back { display: flex; justify-content: center; margin: 32px 0 0; }
@media (max-width: 1023px) {
  .rv-main.has-aside { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .rv-head { padding-bottom: 20px; }
  .rv-head h1 { font-size: 24px; }
  .rv-summary { font-size: 16px; }
  .rv-main { gap: 28px; margin-top: 24px; }
  .cn-figure img { border-radius: 14px; }
  .cn-thumbs { grid-template-columns: repeat(auto-fill, minmax(56px, 1fr)); }
  .rv-box { padding: 18px; }
  .rv-related { margin-top: 48px; }
  .rv-related h2 { font-size: 20px; }
  .post-nav { margin-top: 40px; }
  .post-nav a, .post-nav p { gap: 12px; padding: 14px 4px; }
  .post-nav-label { flex-basis: 56px; }
}

/* 메인 수상작 영역 (SFR-001·011, 시안 01): 왼쪽 글·버튼, 오른쪽 옆으로 넘기는 작품 카드 */
.awards-row { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; }
.awards-intro { flex: 0 1 300px; min-width: 0; }
.awards-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 32px; }
.awards-actions .btn { min-height: 48px; }
.awards-actions .round-btn { width: 48px; height: 48px; }
.awards-actions .round-btn[hidden] { display: none; }
.awards-track {
  flex: 1 1 560px; min-width: 0; list-style: none; margin: 0; padding: 4px 4px 12px; display: flex; gap: 20px;
  overflow-x: auto; scroll-snap-type: x proximity;
}
.awards-track > li { flex: 0 0 190px; scroll-snap-align: start; }
.awards-track .award-thumb { background: #fff; box-shadow: 0 6px 20px rgba(15, 50, 44, 0.08); }
.awards-track .award-thumb img { inset: 12px; max-width: calc(100% - 24px); max-height: calc(100% - 24px); box-shadow: none; }
@media (max-width: 640px) {
  .awards-row { gap: 24px; }
  .awards-intro { flex-basis: 100%; }
  .awards-actions { margin-top: 20px; }
  .awards-track { flex-basis: 100%; gap: 12px; margin: 0 calc(-1 * var(--gutter)); padding: 4px var(--gutter) 12px; }
  .awards-track > li { flex-basis: 150px; }
}

/* 작품 전시관 (SFR-011, 시안 10·11) */
.gallery-bar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; }
.gallery-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 20px; }
.gallery-filters .type-chips { margin: 0; }
.round-form { display: flex; flex-direction: column; gap: 6px; }
.round-form label { font-size: 14px; font-weight: 700; }
.round-form-row { display: flex; gap: 8px; }
.round-form select {
  min-width: 200px; min-height: 48px; padding: 0 12px; border: 1px solid #8A9792; border-radius: 10px;
  background: #fff; font: inherit; font-size: 16px; font-weight: 700; color: var(--color-text);
}
.round-form .btn { min-height: 48px; }
.grade-badge {
  padding: 4px 12px; border: 1.5px solid var(--color-point); border-radius: 999px; background: #fff;
  color: var(--color-point); font-size: 13px; font-weight: 700; white-space: nowrap;
}
.grade-badge.is-top { background: var(--color-point); color: #fff; }
.award-grid { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.award-card { display: flex; flex-direction: column; gap: 14px; color: var(--color-text); text-decoration: none; transition: transform 0.2s ease; }
.award-card:hover { color: var(--color-text); transform: translateY(-4px); }
.award-card:hover strong { text-decoration: underline; }
.award-thumb { position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 16px; background: #F4F6F3; }
.award-thumb img {
  position: absolute; inset: 18px; margin: auto; max-width: calc(100% - 36px); max-height: calc(100% - 36px); width: auto; height: auto;
  box-shadow: 0 10px 24px rgba(15, 50, 44, 0.16);
}
.award-thumb .grade-badge { position: absolute; top: 12px; left: 12px; }
.award-card-text { display: flex; flex-direction: column; gap: 2px; }
.award-card-text strong { font-size: 17px; font-weight: 800; overflow-wrap: anywhere; }
.award-card-text span { font-size: 14px; color: #4F5B56; }
.gallery-cta { margin-top: 64px; }
/* 확대 보기 창 */
.award-dialog { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; overflow: auto; }
.award-dialog::backdrop { background: rgba(9, 20, 17, 0.72); }
.award-dialog-panel {
  position: relative; display: flex; flex-direction: column; width: min(1100px, calc(100% - 200px)); margin: 56px auto; padding: 40px;
  border-radius: 28px; background: #fff; color: var(--color-text);
}
.award-close {
  position: absolute; top: 20px; right: 20px; z-index: 1; display: flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: #F1F4F2; color: var(--color-text); cursor: pointer;
}
.award-close:hover { background: #E3E8E5; }
.award-nav {
  position: fixed; top: 50%; z-index: 2; display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-top: -32px;
  padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--color-text); cursor: pointer;
}
.award-prev { left: max(16px, calc((100% - 1100px) / 2 - 96px)); }
.award-next { right: max(16px, calc((100% - 1100px) / 2 - 96px)); }
.award-nav[aria-disabled="true"] { opacity: 0.4; cursor: default; }
.award-dialog-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; }
.award-dialog-count { font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.award-dialog-count span { color: var(--color-point); }
.award-dialog-hint { font-size: 13px; color: #5B6762; }
.award-detail { display: flex; gap: 44px; }
.award-figure { display: flex; align-items: center; justify-content: center; flex: 0 1 auto; max-width: 52%; padding: 28px; border-radius: 20px; background: #F4F6F3; }
.award-figure img { display: block; max-width: 100%; max-height: calc(100vh - 240px); width: auto; height: auto; box-shadow: 0 16px 36px rgba(15, 50, 44, 0.2); }
.award-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; padding-top: 24px; }
.award-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; font-size: 15px; font-weight: 700; color: #4F5B56; }
.award-kicker .grade-badge { font-size: 14px; padding: 4px 14px; }
.award-title { margin: 16px 0 0; font-size: 34px; font-weight: 800; line-height: 1.3; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.award-title:focus { outline: none; box-shadow: none; }
.award-winner { margin: 10px 0 0; font-size: 18px; font-weight: 700; color: var(--color-sub); }
.award-facts { display: flex; flex-direction: column; gap: 22px; margin: 32px 0 0; }
.award-facts dt { font-size: 14px; font-weight: 800; color: var(--color-point); }
.award-facts dd { margin: 6px 0 0; font-size: 16px; line-height: 1.75; color: var(--color-sub); overflow-wrap: anywhere; }
.award-facts .award-quote { font-size: 30px; line-height: 1.3; color: var(--color-text); }
.award-note { margin: auto 0 0; padding-top: 24px; border-top: 1px solid var(--color-line); font-size: 14px; line-height: 1.6; color: #4F5B56; }
.award-facts + .award-note, .award-winner + .award-note { margin-top: 32px; }
/* 작품 보기 화면 */
.award-page .award-detail { padding: 32px; border: 1px solid #DCE4E0; border-radius: 28px; }
.award-page-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; margin-top: 28px; }
.award-page-count { font-weight: 700; font-variant-numeric: tabular-nums; }
/* 역대 작품 아카이브 */
.round-grid { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.round-card { display: flex; flex-direction: column; gap: 14px; color: var(--color-text); text-decoration: none; }
.round-card:hover { color: var(--color-text); }
.round-card:hover strong { text-decoration: underline; }
.round-cover { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 16px; background: var(--color-secondary); }
.round-cover img { position: absolute; inset: 16px; margin: auto; max-width: calc(100% - 32px); max-height: calc(100% - 32px); box-shadow: 0 8px 20px rgba(15, 50, 44, 0.16); }
.round-text { display: flex; flex-direction: column; gap: 4px; }
.round-text strong { font-size: 18px; font-weight: 800; }
.round-text span { font-size: 14px; color: #4F5B56; }
@media (max-width: 1023px) {
  .award-grid, .round-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .award-dialog-panel { width: calc(100% - 32px); margin: 16px auto 96px; padding: 28px 20px 20px; }
  .award-detail { flex-direction: column; gap: 24px; }
  .award-figure { max-width: none; padding: 20px; }
  .award-figure img { max-height: 60vh; }
  .award-info { padding-top: 0; }
  .award-nav { top: auto; bottom: 16px; margin-top: 0; width: 56px; height: 56px; }
  .award-prev { left: 16px; }
  .award-next { right: 16px; }
}
@media (max-width: 640px) {
  .gallery-filters { width: 100%; }
  .gallery-filters .type-chips { width: calc(100% + 2 * var(--gutter)); margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); overflow-x: auto; }
  .gallery-filters .type-chips ul { flex-wrap: nowrap; width: max-content; }
  .round-form, .round-form-row { width: 100%; }
  .round-form select { flex: 1 1 auto; min-width: 0; }
  .award-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; margin-top: 20px; }
  .award-thumb { border-radius: 12px; }
  .award-thumb img { inset: 12px; max-width: calc(100% - 24px); max-height: calc(100% - 24px); }
  .award-thumb .grade-badge { top: 8px; left: 8px; padding: 2px 8px; font-size: 12px; }
  .award-card-text strong { font-size: 15px; }
  .award-card-text span { font-size: 13px; }
  .award-title { font-size: 24px; }
  .award-facts .award-quote { font-size: 24px; }
  .award-page .award-detail { padding: 16px; border-radius: 20px; }
  .round-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .round-text strong { font-size: 16px; }
}

/* 알림마당 목록: 공지사항 표·이벤트 카드 (SFR-009·010, 시안 12) */
.board-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.board-search { display: flex; flex-wrap: wrap; gap: 8px; }
.board-search select, .board-search input {
  min-height: 48px; padding: 0 12px; border: 1px solid #8A9792; border-radius: 10px; background: #fff; font: inherit; font-size: 15px; color: var(--color-text);
}
.board-search input { width: 280px; padding: 0 14px; }
.board-search .btn { min-height: 48px; padding: 0 22px; font-size: 15px; }
.board-search-q { display: flex; gap: 8px; }
.board-table { width: 100%; margin-top: 20px; border-collapse: collapse; border-top: 2px solid var(--color-text); font-size: 16px; }
.board-table th, .board-table td { padding: 18px 8px; border-bottom: 1px solid var(--color-line); text-align: center; }
.board-table thead th { padding: 16px 8px; border-bottom-color: #C9D3CF; font-size: 15px; font-weight: 700; }
.board-table .col-no { width: 88px; }
.board-table .col-cat { width: 100px; }
.board-table .col-file { width: 72px; }
.board-table .col-date { width: 130px; }
.board-table td.col-no, .board-table td.col-cat, .board-table td.col-date { font-size: 15px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.board-table td.col-file { color: var(--color-muted); }
.board-table td.col-file .icon { vertical-align: middle; }
.board-table td.col-title { text-align: left; }
.board-table td.col-title a { color: var(--color-text); text-decoration: none; overflow-wrap: anywhere; }
.board-table td.col-title a:hover { text-decoration: underline; }
.board-table tr.is-pinned { background: var(--color-secondary); }
.board-table tr.is-pinned td.col-title a { font-weight: 700; }
.pin-badge { display: inline-block; padding: 3px 10px; border-radius: 6px; background: var(--color-point); color: #fff; font-size: 13px; font-weight: 700; line-height: 1.4; }
.pin-inline { display: none; }
.event-state { display: inline-block; padding: 3px 10px; border-radius: 6px; font-size: 13px; font-weight: 700; line-height: 1.4; }
.event-state.is-on { background: var(--color-point); color: #fff; }
.event-state.is-soon { background: #FFF3D6; color: #7A5400; }
.event-state.is-off { background: #E9EDEB; color: #3E4A45; }
.event-cards { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.event-card {
  display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid #DCE4E0; border-radius: 18px;
  background: #fff; color: var(--color-text); text-decoration: none;
}
.event-card:hover { border-color: var(--color-point); color: var(--color-text); }
.event-card:hover .event-title { text-decoration: underline; }
.event-thumb { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; background: var(--color-secondary); color: var(--color-point); }
.event-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.event-text { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 20px 22px 24px; }
.event-title { font-size: 18px; font-weight: 800; line-height: 1.45; overflow-wrap: anywhere; }
.event-period { font-size: 14px; color: var(--color-muted); font-variant-numeric: tabular-nums; }

/* 알림마당 글 보기 (SFR-009·010, 시안 13): 머리, 첨부파일, 본문 */
.post-head { padding: 32px 8px 28px; border-top: 2px solid var(--color-text); border-bottom: 1px solid #C9D3CF; }
.post-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 14px; }
.post-cat { font-size: 15px; font-weight: 700; color: var(--color-muted); }
.post-head h1 { margin: 0; font-size: 30px; line-height: 1.4; font-weight: 800; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.post-meta { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 16px 0 0; font-size: 15px; color: var(--color-muted); }
.post-meta div { display: flex; gap: 8px; }
.post-meta dt { font-weight: 700; }
.post-meta dd { margin: 0; font-variant-numeric: tabular-nums; }
.post-files { padding: 20px 24px; border-bottom: 1px solid var(--color-line); background: #F6F8F7; }
.post-files h2 { margin: 0; font-size: 15px; font-weight: 800; }
.post-files h2 span { font-weight: 500; color: var(--color-muted); }
.post-files ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.post-files li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.post-file-name { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-width: 0; font-size: 15px; overflow-wrap: anywhere; }
.file-badge { padding: 2px 8px; border-radius: 4px; background: #4F5B56; color: #fff; font-size: 12px; font-weight: 800; }
.file-badge-pdf { background: #B33A2F; }
.file-badge-hwp, .file-badge-hwpx { background: #1D5FA6; }
.file-badge-docx { background: #2B579A; }
.file-badge-xlsx { background: #1D6B40; }
.file-badge-pptx { background: #A3401F; }
.post-file-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.post-file-actions .btn { min-height: 44px; padding: 0 16px; border: 1px solid #8A9792; border-radius: 8px; font-size: 14px; }
.post-content { padding: 44px 8px 52px; border-bottom: 1px solid #C9D3CF; }
.post-content .post-body p { font-size: 17px; line-height: 1.85; }
.post-content .post-body h2 { margin: 40px 0 16px; font-size: 22px; line-height: 1.4; }
.post-content .post-body h2:first-child { margin-top: 0; }
.post-content .post-body h3 { margin: 28px 0 12px; font-size: 19px; }
.post-content .post-images { margin-top: 28px; }
.post-content .post-image img { border-radius: 12px; }
.board .post-nav { margin-top: 0; border-top: 0; }
.board .list-back .icon { margin-right: 2px; }

/* FAQ (SFR-009): 분류별 아코디언 */
.faq-group { margin-top: 40px; }
.faq-group-title { margin: 0 0 12px; font-size: 22px; font-weight: 800; }
.faq-count { font-size: 15px; font-weight: 500; color: var(--color-muted); }
.faq-list { border-top: 2px solid var(--color-text); }
.faq-item { border-bottom: 1px solid var(--color-line); }
.faq-item summary { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 14px 8px; cursor: pointer; list-style: none; font-size: 17px; font-weight: 700; color: var(--color-text); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover .faq-question { text-decoration: underline; }
.faq-question { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.faq-item summary .icon { flex: none; color: var(--color-muted); transform: rotate(90deg); transition: transform 0.2s; }
.faq-item[open] summary .icon { transform: rotate(-90deg); }
.faq-mark {
  display: flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; border-radius: 50%;
  background: var(--color-secondary); color: var(--color-point); font-weight: 800;
}
.faq-mark-a { background: var(--color-point); color: #fff; }
.faq-answer { display: flex; gap: 16px; padding: 4px 8px 28px; }
.faq-answer .doc-body { flex: 1 1 auto; min-width: 0; padding-top: 6px; }
.faq-answer .doc-body p:last-child { margin-bottom: 0; }

/* 메인 공지사항 영역 (SFR-001·009, 시안 01·02): 왼쪽 최근 글, 오른쪽 바로가기 */
.main-section-notice { border-top: 1px solid var(--color-line); }
.notice-row { display: flex; flex-wrap: wrap; gap: 48px; }
.notice-main { flex: 1 1 560px; min-width: 0; }
.notice-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.main-section-notice .section-heading { font-size: 32px; }
.notice-list { list-style: none; margin: 20px 0 0; padding: 0; border-top: 2px solid var(--color-text); }
.notice-list a { display: flex; align-items: center; gap: 16px; padding: 20px 4px; border-bottom: 1px solid var(--color-line); color: var(--color-text); text-decoration: none; }
.notice-list a:hover .notice-title { text-decoration: underline; }
.notice-badge { flex: none; padding: 3px 10px; border-radius: 6px; background: var(--color-point); color: #fff; font-size: 13px; font-weight: 700; }
.notice-badge.is-event { background: #FFF3D6; color: #7A5400; }
.notice-title { flex: 1 1 auto; min-width: 0; overflow: hidden; font-size: 17px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.notice-date { flex: none; font-size: 15px; color: #5B6762; font-variant-numeric: tabular-nums; }
.quick-cards { flex: 1 1 360px; min-width: 0; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.quick-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 28px; border-radius: 20px; background: var(--color-secondary); color: var(--color-text); text-decoration: none; }
.quick-cards li:nth-child(2) .quick-card { background: #F4F6F3; }
.quick-card:hover { color: var(--color-text); }
.quick-card:hover strong { text-decoration: underline; }
.quick-card > span:first-child { display: flex; flex-direction: column; gap: 6px; }
.quick-card strong { font-size: 20px; font-weight: 800; }
.quick-card > span:first-child > span { font-size: 15px; line-height: 1.55; color: var(--color-muted); }
.quick-arrow { display: flex; align-items: center; justify-content: center; flex: 0 0 44px; height: 44px; border-radius: 50%; background: #fff; }

@media (max-width: 1023px) {
  .event-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .board-bar { align-items: stretch; gap: 12px; }
  .board-search { width: 100%; }
  .board-search select { flex: 1 1 calc(50% - 4px); min-width: 0; }
  .board-search-q { flex: 1 1 100%; min-width: 0; }
  .board-search input { flex: 1 1 0; width: 0; min-width: 0; }
  .board-table { font-size: 15px; }
  .board-table th, .board-table td { padding: 14px 4px; }
  .board-table .col-no, .board-table .col-file { display: none; }
  .board-table .col-cat { width: 56px; }
  .board-table .col-date { width: 84px; }
  .board-table td.col-cat, .board-table td.col-date { font-size: 13px; }
  .pin-inline { display: inline-block; margin-right: 6px; padding: 1px 8px; font-size: 12px; }
  .event-cards { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 20px; }
  .post-head { padding: 24px 4px 20px; }
  .post-head h1 { font-size: 22px; }
  .post-meta { gap: 4px 16px; font-size: 14px; }
  .post-files { padding: 16px; }
  .post-file-actions { width: 100%; }
  .post-file-actions .btn { flex: 1 1 0; justify-content: center; }
  .post-content { padding: 28px 4px 36px; }
  .post-content .post-body p { font-size: 16px; line-height: 1.8; }
  .post-content .post-body h2 { margin-top: 32px; font-size: 19px; }
  .faq-group { margin-top: 28px; }
  .faq-group-title { font-size: 19px; }
  .faq-item summary { gap: 12px; padding: 12px 4px; font-size: 16px; }
  .faq-mark { width: 30px; height: 30px; font-size: 14px; }
  .faq-answer { gap: 12px; padding: 0 4px 20px; }
  .notice-row { gap: 24px; }
  .main-section-notice .section-heading { font-size: 24px; }
  .notice-list { margin-top: 12px; }
  .notice-list a { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 8px; padding: 16px 2px; }
  .notice-badge { padding: 2px 8px; font-size: 12px; }
  .notice-title { grid-column: 1 / -1; grid-row: 2; font-size: 16px; line-height: 1.5; white-space: normal; }
  .notice-date { font-size: 13px; }
  .quick-cards { gap: 12px; }
  .quick-card { gap: 12px; padding: 20px; border-radius: 16px; }
  .quick-card strong { font-size: 17px; }
  .quick-card > span:first-child > span { font-size: 14px; }
  .quick-arrow { flex-basis: 40px; height: 40px; }
}

/* 접수 확인·수정 (SFR-008): 조회 칸, 응모작별 진행 상황·신청 내용 */
.check-page > .notice, .check-page > .info-box, .check-page > .error-summary { margin-top: 32px; }
.check-login { max-width: 560px; margin: 40px auto 0; padding: 36px 40px; border: 1px solid #DCE4E0; border-radius: 24px; }
.apply-page > .check-login { margin-top: 40px; }
.check-login h2 { margin: 0 0 20px; font-size: 24px; font-weight: 800; }
.check-submit { width: 100%; justify-content: center; margin-top: 8px; }
.check-notes { display: flex; flex-direction: column; gap: 6px; margin: 24px 0 0; padding: 18px 20px 18px 36px; border-radius: 14px; background: #F6F8F7; font-size: 15px; line-height: 1.6; color: var(--color-sub); }
.check-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 40px; }
.check-bar form { margin: 0; }
.check-bar .check-timer { margin-left: auto; font-size: 15px; }
.check-timer .btn { min-height: 40px; font-size: 14px; }
.check-bar-edit { margin: 0 0 20px; justify-content: flex-end; }
.check-edited { display: flex; align-items: flex-start; gap: 8px; margin: 16px 0 0; padding: 14px 16px; border: 0; border-radius: 12px; background: var(--color-secondary); font-weight: 700; line-height: 1.6; }
.check-edited .icon { flex: none; margin-top: 3px; color: var(--color-point); }
.check-entry { scroll-margin-top: 16px; }
.check-idle { margin: 8px 0 0; }
.apply-page > .check-entry { margin-top: 28px; }
.check-entry { padding: 32px; border: 1px solid #DCE4E0; border-radius: 24px; }
.check-entry-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.check-entry-head h2 { margin: 0; font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; }
.check-entry-head p { margin: 0; font-size: 15px; color: var(--color-muted); }
.check-entry-label { margin-right: 6px; font-size: 15px; font-weight: 700; color: var(--color-point); }
.check-status { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.check-status li { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 16px; border-radius: 14px; background: #F2F5F3; }
.check-status-mark { display: flex; align-items: center; justify-content: center; flex: 0 0 36px; height: 36px; border-radius: 50%; background: #fff; color: #5B6762; }
.check-status li.is-done { background: var(--color-secondary); }
.check-status li.is-done .check-status-mark { background: var(--color-point); color: #fff; }
.check-status-text { display: flex; flex-direction: column; min-width: 0; }
.check-status-text strong { font-size: 16px; font-weight: 800; }
.check-status-text span { font-size: 14px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.check-status li.is-wait .check-status-text span { color: #7A5400; font-weight: 700; }
.check-entry .info-box, .check-hint { margin-top: 16px; }
.check-hint { margin-bottom: 0; font-size: 15px; line-height: 1.6; color: var(--color-muted); }
.check-sub { margin: 28px 0 0; font-size: 18px; font-weight: 800; }
.check-entry .summary-grid { margin-top: 10px; }
.check-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.check-actions + .help-text { margin: 10px 0 0; }
.check-fixed { margin: 0 0 8px; }
.apply-page h1.apply-step-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
@media (max-width: 900px) {
  .check-status { grid-template-columns: minmax(0, 1fr); }
  .check-status li { padding: 12px 14px; }
}
@media (max-width: 640px) {
  .check-login { margin-top: 24px; padding: 24px 18px; border-radius: 18px; }
  .check-login h2 { font-size: 20px; }
  .check-notes { padding: 14px 14px 14px 30px; font-size: 14px; }
  .check-entry { padding: 20px 16px; border-radius: 18px; }
  .check-entry-head h2 { font-size: 22px; }
  .check-actions .btn { width: 100%; justify-content: center; }
}

/* 설문조사 (SFR-013 가칭, 시안 14·15) */
.sv-page { max-width: calc(960px + 2 * var(--gutter)); display: flex; flex-direction: column; gap: 24px; }
.sv-form { display: flex; flex-direction: column; gap: 24px; }
.sv-intro { padding: 36px 40px; border-radius: 28px; background: var(--color-secondary); }
.sv-status { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 5px 12px; border-radius: 999px; background: #fff; color: var(--color-point); font-size: 14px; font-weight: 700; }
.sv-status span { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.sv-status.is-before { color: #7A5400; }
.sv-status.is-closed { color: #3E4A45; }
.sv-intro h2 { margin: 14px 0 0; font-size: 32px; line-height: 1.35; font-weight: 800; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.sv-desc { margin: 10px 0 0; font-size: 16px; line-height: 1.7; color: var(--color-sub); }
.sv-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 24px 0 0; }
.sv-facts > div { padding: 16px 18px; border-radius: 14px; background: #fff; }
.sv-facts dt { font-size: 14px; font-weight: 700; color: var(--color-muted); }
.sv-facts dd { margin: 4px 0 0; font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.sv-state { padding: 48px 32px; border-radius: 24px; background: #F6F8F7; text-align: center; }
.sv-state h2 { margin: 0; font-size: 24px; font-weight: 800; }
.sv-state p { margin: 10px 0 0; color: var(--color-sub); line-height: 1.7; }
.sv-state .button-group { justify-content: center; margin-top: 20px; }
.sv-progress-row p { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; margin: 0 0 8px; font-size: 15px; color: var(--color-muted); }
.sv-progress-row strong, .sv-progress-text { font-weight: 700; color: var(--color-text); font-variant-numeric: tabular-nums; }
.sv-progress { height: 8px; border-radius: 4px; background: #DCE4E0; }
.sv-progress > div { height: 8px; border-radius: 4px; background: var(--color-point); transition: width 0.2s; }
.sv-q { margin: 0; padding: 26px 28px; border: 1px solid #DCE4E0; border-radius: 20px; background: #fff; scroll-margin-top: 16px; }
fieldset.sv-q { min-width: 0; }
/* legend를 상자 안 제목처럼 (테두리 위에 걸치지 않게) */
fieldset.sv-q > legend { float: left; width: 100%; padding: 0; }
fieldset.sv-q > legend + * { clear: both; }
.sv-q-title { display: block; margin: 0 0 16px; font-size: 19px; line-height: 1.5; font-weight: 800; overflow-wrap: anywhere; }
.sv-q-no { margin-right: 8px; color: var(--color-point); font-variant-numeric: tabular-nums; }
.sv-badge { display: inline-block; padding: 2px 9px; border: 1.5px solid #5B6762; border-radius: 999px; background: #fff; color: #3E4A45; font-size: 12px; font-weight: 700; line-height: 1.4; vertical-align: 2px; }
.sv-badge.is-required { border-color: #B33A2F; background: #B33A2F; color: #fff; }
.sv-badge.is-multi { border-color: var(--color-secondary); background: var(--color-secondary); color: var(--color-point); }
.sv-options { display: grid; gap: 10px; }
.sv-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sv-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sv-option { display: flex; align-items: center; gap: 10px; min-height: 52px; margin: 0; padding: 12px 16px; border: 1px solid #C9D3CF; border-radius: 12px; background: #fff; font-size: 16px; line-height: 1.5; cursor: pointer; overflow-wrap: anywhere; }
.sv-option input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--color-point); }
.sv-option:hover { border-color: var(--color-point); }
.sv-option:has(input:checked) { border: 2px solid var(--color-point); padding: 11px 15px; background: var(--color-secondary); font-weight: 700; }
.sv-option:has(input:focus-visible) { outline: 3px solid var(--focus-color); outline-offset: 2px; }
.sv-other { grid-column: 1 / -1; flex-wrap: wrap; cursor: default; }
.sv-other > label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.sv-other input[type="text"] { flex: 1 1 220px; min-width: 0; width: auto; height: 40px; padding: 0 12px; border: 1px solid #8A9792; border-radius: 8px; font: inherit; font-size: 15px; font-weight: 400; }
.sv-q textarea { display: block; width: 100%; min-height: 140px; padding: 14px 16px; border: 1px solid #8A9792; border-radius: 12px; font: inherit; font-size: 16px; line-height: 1.7; resize: vertical; }
.sv-count { margin: 8px 0 0; font-size: 14px; color: var(--color-muted); text-align: right; font-variant-numeric: tabular-nums; }
.sv-q .field-error { margin: 12px 0 0; }
.sv-prize { padding: 32px; border: 2px dashed #7FB5A9; border-radius: 24px; background: #FAFCFB; }
.sv-prize-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.sv-prize-head h2 { margin: 0; font-size: 24px; font-weight: 800; }
.sv-prize-lead { margin: 10px 0 0; font-size: 16px; line-height: 1.65; color: var(--color-sub); }
.sv-prize .field { margin: 0; }
.sv-prize .field label, .sv-addr legend { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 700; }
.sv-prize input[type="text"], .sv-prize input[type="tel"] { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #8A9792; border-radius: 10px; background: #fff; font: inherit; font-size: 16px; }
.sv-prize input[readonly] { background: #F2F5F3; }
.sv-prize-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.sv-addr { min-width: 0; margin: 20px 0 0; padding: 0; border: 0; }
.sv-addr-zip { display: flex; gap: 8px; max-width: 360px; }
.sv-addr-zip input { flex: 1 1 auto; min-width: 0; }
.sv-addr-zip .btn { flex: none; min-height: 48px; min-width: 0; padding: 0 18px; }
.sv-addr-lines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.sv-addr .help-text:empty { display: none; }
.sv-postcode { margin-top: 10px; border: 1px solid #8A9792; border-radius: 12px; overflow: hidden; background: #fff; }
.sv-postcode[hidden] { display: none; }
.sv-postcode-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--color-line); background: #F6F8F7; }
.sv-postcode-head p { margin: 0; font-size: 15px; font-weight: 800; }
.sv-postcode-head p span { margin-left: 6px; font-size: 13px; font-weight: 400; color: var(--color-muted); }
.sv-postcode-frame { height: 440px; }
.sv-consent { margin-top: 24px; padding: 20px 24px; border-radius: 16px; background: #fff; border: 1px solid var(--color-line); }
.sv-consent-title { margin: 0 0 12px; font-size: 16px; font-weight: 800; }
.sv-consent dl { display: grid; grid-template-columns: 110px minmax(0, 1fr); margin: 0; border-top: 1px solid var(--color-line); font-size: 15px; line-height: 1.6; }
.sv-consent dt { padding: 10px 12px; border-bottom: 1px solid var(--color-line); background: #F6F8F7; font-weight: 700; }
.sv-consent dd { margin: 0; padding: 10px 12px; border-bottom: 1px solid var(--color-line); }
.sv-consent-note { margin: 12px 0 0; font-size: 14px; color: var(--color-muted); }
.sv-agree { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; margin: 16px 0 0; padding: 0; border: 0; }
.sv-agree .field-error { grid-column: 1 / -1; margin: 0; }
.sv-submit { display: flex; flex-direction: column; align-items: center; gap: 14px; padding-top: 8px; }
.sv-submit > p:first-child { margin: 0; font-size: 15px; color: var(--color-muted); }
.sv-submit-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.sv-submit-buttons .btn { min-width: 160px; justify-content: center; }
.sv-done { display: flex; flex-direction: column; align-items: center; padding: 48px 40px; border-radius: 28px; background: var(--color-secondary); text-align: center; }
.sv-done h2 { margin: 20px 0 0; font-size: 28px; font-weight: 800; }
.sv-done p { margin: 12px 0 0; max-width: 36em; font-size: 17px; line-height: 1.7; color: var(--color-sub); }
.sv-done-prize strong { color: var(--color-text); }
.sv-done .button-group { justify-content: center; margin-top: 24px; }
@media (max-width: 760px) {
  .sv-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .sv-page, .sv-form { gap: 16px; }
  .sv-intro { padding: 24px 20px; border-radius: 20px; }
  .sv-intro h2 { font-size: 22px; }
  .sv-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .sv-facts > div { padding: 12px 14px; }
  .sv-facts dd { font-size: 15px; }
  .sv-q { padding: 20px 16px; border-radius: 16px; }
  .sv-q-title { font-size: 17px; }
  .sv-cols-2, .sv-cols-3 { grid-template-columns: minmax(0, 1fr); }
  .sv-prize { padding: 20px 16px; border-radius: 18px; }
  .sv-prize-head h2 { font-size: 20px; }
  .sv-prize-row, .sv-addr-lines, .sv-agree { grid-template-columns: minmax(0, 1fr); }
  .sv-addr-zip { max-width: none; }
  .sv-consent { padding: 16px; }
  .sv-consent dl { grid-template-columns: 84px minmax(0, 1fr); font-size: 14px; }
  .sv-submit-buttons { width: 100%; }
  .sv-submit-buttons .btn { flex: 1 1 0; min-width: 0; }
  .sv-done { padding: 32px 20px; border-radius: 20px; }
  .sv-done h2 { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .award-card { transition: none; }
  .award-card:hover { transform: none; }
  .btn, .resource-card-link, .faq-item summary .icon, .sv-progress > div { transition: none; }
  .resource-card-link:hover { transform: none; }
}
@media print {
  .util-bar, .subpage-head, .full-menu, .preview-banner { display: none !important; }
  .site-main { padding: 0; }
}
