/* 행사 임시 홈페이지 — 포스터 KV 톤(밤바다·황금 함선·여덟 섬). 모바일 우선 */
:root {
  --sea-deep: #061020;
  --sea: #0B1626;
  --sea-2: #12243D;
  --sea-3: #183156;
  --ink: #EAF1FA;
  --ink-2: #A9BAD1;
  --line: rgba(240, 185, 75, 0.26);
  --line-soft: rgba(255, 255, 255, 0.09);
  --card: linear-gradient(180deg, rgba(24, 49, 86, 0.78), rgba(13, 26, 48, 0.92));
  --gold-hi: #FFF1C2;
  --gold: #F0B94B;
  --gold-2: #C98F1E;
  --gold-deep: #8A5E0E;
  --gold-ink: #2A1C04;
  --teal: #3FB8C9;
  --f-sun: #F08A2E;
  --f-wave: #3C8FD9;
  --f-storm: #9B74D6;
  --font: "Pretendard", "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif;
  --font-title: "Black Han Sans", "Do Hyeon", "Noto Sans KR", sans-serif;
  --w: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 64px; }
@media (max-width: 720px) { html { scroll-padding-top: 100px; } }
html, body { margin: 0; }
body {
  color: var(--ink); font-family: var(--font); line-height: 1.6; -webkit-font-smoothing: antialiased; word-break: keep-all;
  background:
    radial-gradient(1px 1px at 12% 18%, rgba(255,255,255,0.9) 50%, transparent 51%),
    radial-gradient(1px 1px at 78% 9%, rgba(255,255,255,0.8) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 55% 30%, rgba(255,232,170,0.9) 50%, transparent 51%),
    radial-gradient(1px 1px at 30% 62%, rgba(255,255,255,0.7) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 88% 48%, rgba(255,232,170,0.8) 50%, transparent 51%),
    radial-gradient(1px 1px at 8% 84%, rgba(255,255,255,0.6) 50%, transparent 51%),
    radial-gradient(1px 1px at 66% 76%, rgba(255,255,255,0.7) 50%, transparent 51%),
    linear-gradient(180deg, #0E1E3A 0%, var(--sea) 40%, var(--sea-deep) 100%);
  background-attachment: fixed;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
h1, h2, h3 { margin: 0; line-height: 1.25; letter-spacing: -0.01em; }
p { margin: 0; }

/* 금색 그라데이션 글자 */
.gold-text { background: linear-gradient(180deg, #FFF4CC 0%, var(--gold) 52%, #B9800F 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* 상단 고정 메뉴 */
.nav { position: sticky; top: 0; z-index: 20; background: rgba(6, 16, 32, 0.82); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); color: #fff; }
.nav-in { width: min(var(--w), 100% - 32px); margin: 0 auto; height: 56px; display: flex; align-items: center; gap: 4px; }
.nav-links { display: contents; }
.nav-brand { font-family: var(--font-title); font-size: 19px; letter-spacing: 0.02em; margin-right: auto; white-space: nowrap; }
.nav-brand span { color: var(--gold); margin-right: 6px; font-family: var(--font); font-weight: 800; font-size: 16px; }
.nav a { text-decoration: none; font-size: 16px; color: rgba(255,255,255,0.82); padding: 6px 10px; border-radius: 8px; white-space: nowrap; }
.nav a:hover { background: rgba(255,255,255,0.08); color: #fff; }
.nav a.nav-apply { background: linear-gradient(180deg, var(--gold-hi), var(--gold-2)); color: var(--gold-ink); font-weight: 800; margin-left: 6px; box-shadow: 0 4px 14px rgba(240,185,75,0.3); }
.nav a.nav-apply:hover { filter: brightness(1.06); }
@media (max-width: 720px) {
  .nav-in { height: auto; flex-wrap: wrap; padding: 8px 0 0; row-gap: 4px; }
  .nav-brand { order: 1; }
  .nav a.nav-apply { order: 2; margin-left: auto; padding: 8px 14px; }
  .nav-links { order: 3; width: 100%; display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
  .nav-links::-webkit-scrollbar { display: none; }
  .nav-links a { font-size: 15.5px; padding: 6px 9px; }
}

/* 히어로 — 포스터 KV 배경 */
.hero { position: relative; overflow: hidden; color: #fff; min-height: 560px; background: var(--sea); }
.hero .kv { position: absolute; inset: 0; }
.hero .kv img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.hero .kv::after { content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(6,16,32,0.55) 0%, rgba(6,16,32,0.05) 25%, rgba(6,16,32,0.15) 45%, rgba(6,16,32,0.80) 72%, rgba(11,22,38,1) 100%),
    linear-gradient(90deg, rgba(6,16,32,0.58) 0%, rgba(6,16,32,0.18) 45%, rgba(6,16,32,0.0) 68%); }
.hero-in { position: relative; width: min(var(--w), 100% - 32px); margin: 0 auto; padding: 72px 0 56px; display: grid; gap: 0; }
.eyebrow { display: flex; align-items: center; gap: 12px; color: var(--gold-hi); font-size: 15.5px; letter-spacing: 0.3em; font-weight: 700; text-shadow: 0 1px 4px rgba(0,0,0,0.9), 0 0 14px rgba(0,0,0,0.8); }
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--gold); }
.hero h1 { margin-top: 14px; font-family: var(--font-title); font-weight: 400; font-size: clamp(55.5px, 9vw, 111px); line-height: 1.0; letter-spacing: -0.01em; filter: drop-shadow(0 3px 0 rgba(90,60,5,0.7)) drop-shadow(0 10px 28px rgba(240,185,75,0.35)); }
.hero h1.hero-title { font-size: clamp(41px, 6.2vw, 76px); line-height: 1.12; }
.hero h1 .yr { display: block; font-family: var(--font); font-weight: 900; font-size: 0.34em; letter-spacing: 0.02em; color: #fff; -webkit-text-fill-color: #fff; margin-bottom: 4px; filter: none; }
.hero .title-en { margin-top: 8px; color: var(--gold); font-weight: 600; font-size: clamp(14.5px, 1.6vw, 17.5px); letter-spacing: 0.42em; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
.hero-sub { margin-top: 22px; max-width: 520px; font-size: 19px; line-height: 1.7; color: rgba(255,255,255,0.9); text-shadow: 0 2px 10px rgba(0,0,0,0.6); }
.hero-sub b { color: var(--gold-hi); }
.facts { margin-top: 30px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; max-width: 760px; }
.fact { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: rgba(6,16,32,0.55); backdrop-filter: blur(6px); }
.fact i { display: block; font-style: normal; font-size: 13px; color: var(--gold); letter-spacing: 0.16em; }
.fact b { display: block; margin-top: 3px; font-size: 18.5px; font-weight: 700; }
.dday[hidden] { display: none; }
.dday { margin-top: 20px; display: inline-flex; align-items: center; gap: 16px; padding: 12px 18px; border-radius: 14px; background: rgba(240,185,75,0.12); border: 1px solid var(--line); backdrop-filter: blur(6px); justify-self: start; }
.dday-num { font-size: 35px; font-weight: 900; color: var(--gold); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.dday-lab { font-size: 15.5px; color: rgba(255,255,255,0.85); line-height: 1.4; }
.hero-cta { margin-top: 28px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.btn-apply { text-decoration: none; background: linear-gradient(180deg, var(--gold-hi) 0%, var(--gold) 45%, var(--gold-2) 100%); color: var(--gold-ink); font-weight: 900; font-size: 19px; padding: 15px 28px; border-radius: 14px; box-shadow: 0 10px 30px rgba(240,185,75,0.35), inset 0 1px 0 rgba(255,255,255,0.6); border: 1px solid rgba(255,241,194,0.6); }
.btn-apply:hover { filter: brightness(1.05); }
.hero-cta-note { font-size: 16px; color: rgba(255,255,255,0.78); text-shadow: 0 1px 6px rgba(0,0,0,0.6); }
@media (max-width: 720px) {
  .hero { min-height: auto; }
  .hero .kv img { object-position: center top; }
  .hero .kv::after { background: linear-gradient(180deg, rgba(6,16,32,0.45) 0%, rgba(6,16,32,0.0) 22%, rgba(6,16,32,0.10) 40%, rgba(6,16,32,0.86) 60%, rgba(11,22,38,1) 100%); }
  .hero-in { padding: 58vw 0 40px; }
  .hero h1 { font-size: clamp(51.5px, 15vw, 74px); }
  .hero h1.hero-title { font-size: clamp(35px, 10vw, 49.5px); }
  .hero-sub { font-size: 18px; }
  .facts { grid-template-columns: 1fr 1fr; gap: 8px; }
  .fact { padding: 11px 12px; } .fact b { font-size: 17.5px; }
  .btn-apply { width: 100%; text-align: center; }
  .hero-cta-note { font-size: 15.5px; }
}

/* 함대 리본 */
.fleet-bar { display: grid; grid-template-columns: repeat(3, 1fr); position: relative; }
.fleet-bar div { height: 5px; }
.fleet-bar .sun { background: var(--f-sun); } .fleet-bar .wave { background: var(--f-wave); } .fleet-bar .storm { background: var(--f-storm); }

/* 섹션 공통 */
main { width: min(var(--w), 100% - 32px); margin: 0 auto; padding: 16px 0 72px; }
.sec { padding: 56px 0 28px; border-bottom: 1px solid var(--line-soft); }
.sec:last-of-type { border-bottom: 0; }
.marker { width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(180deg, var(--sea-3), var(--sea-2)); border: 1px solid var(--line); color: var(--gold); display: grid; place-items: center; margin-bottom: 14px; box-shadow: 0 6px 16px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08); }
.marker svg { width: 24px; height: 24px; fill: none; stroke: url(#goldGrad); stroke: var(--gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 6px rgba(240,185,75,0.45)); }
.sec h2 { font-family: var(--font-title); font-weight: 400; font-size: 35px; letter-spacing: 0.01em; }
.sec-note { margin-top: 8px; color: var(--ink-2); font-size: 18.5px; }
.sec .body { margin-top: 26px; }
@media (max-width: 720px) { .sec { padding: 40px 0 20px; } .sec h2 { font-size: 30px; } .sec-note { font-size: 17.5px; } .sec .body { margin-top: 20px; } }

/* 카드 공통: 금테 + 유리 */
.glass { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 10px 30px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.06); }

/* 인사말 */
.letter { padding: 32px; font-size: 18.5px; display: grid; gap: 14px; color: var(--ink); }
.letter .letter-hello { font-size: 20px; font-weight: 700; color: var(--gold-hi); }
.letter b { color: var(--gold-hi); }
.letter .sign { margin-top: 8px; font-weight: 700; color: var(--ink-2); text-align: right; }
.more-btn { display: none; }
@media (max-width: 720px) {
  .letter { padding: 22px 18px; font-size: 18px; }
  .letter .fold { display: grid; gap: 14px; max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
  .letter .fold.open { max-height: 1200px; }
  .more-btn { display: inline-block; justify-self: start; background: none; border: 1px solid var(--line); color: var(--gold); border-radius: 999px; padding: 7px 14px; font: inherit; font-size: 15.5px; font-weight: 700; }
}
@media (min-width: 721px) { .letter .fold { display: contents; } }

/* 이야기 */
.story-line { font-size: 21.5px; font-weight: 600; line-height: 1.6; padding: 22px 26px; border-left: 4px solid var(--gold); border-radius: 0 16px 16px 0; color: var(--ink); }
.story-line b { color: var(--gold-hi); }
.fleets { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.fleet { position: relative; overflow: hidden; padding: 20px 20px 22px; text-align: center; border-top: 4px solid var(--c); }
.fleet::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 40% at 50% 30%, color-mix(in srgb, var(--c) 30%, transparent), transparent 70%); pointer-events: none; }
.fleet .ship { position: relative; height: 180px; margin-bottom: 10px; display: flex; align-items: center; justify-content: center; }
.fleet .ship img { height: 100%; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 12px 18px rgba(0,0,0,0.55)); transition: transform 0.4s ease; }
.fleet:hover .ship img { transform: translateY(-4px) scale(1.03); }
.fleet h3 .badge { display: inline-block; width: 30px; height: 30px; vertical-align: -6px; margin-right: 6px; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)); }
.fleet h3 { position: relative; margin-top: 8px; font-family: var(--font-title); font-weight: 400; font-size: 25.5px; color: var(--c); letter-spacing: 0.02em; }
.fleet .cry { position: relative; margin-top: 2px; font-weight: 700; color: var(--gold-hi); }
.fleet p { position: relative; margin-top: 10px; font-size: 17px; color: var(--ink-2); }
@media (max-width: 720px) { .fleets { grid-template-columns: 1fr; } .fleet { display: grid; grid-template-columns: 120px 1fr; column-gap: 14px; text-align: left; align-items: center; padding: 16px; } .fleet .ship { height: 120px; grid-row: 1 / span 3; } .fleet h3 { margin-top: 0; font-size: 23.5px; } }

/* 개요 */
.overview { overflow: hidden; margin: 0; }
.overview div { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 15px 22px; border-top: 1px solid var(--line-soft); }
.overview div:first-child { border-top: 0; }
.overview dt { color: var(--gold); font-weight: 700; letter-spacing: 0.06em; }
.overview dd { margin: 0; font-weight: 500; }
.tbd { color: var(--gold-hi); background: rgba(240,185,75,0.16); border: 1px solid var(--line); border-radius: 6px; padding: 0 6px; font-size: 15px; font-weight: 600; margin-left: 6px; vertical-align: 1px; }
@media (max-width: 720px) { .overview div { grid-template-columns: 1fr; gap: 3px; padding: 13px 16px; } }

/* 일정 — 밤바다 배경 */
.schedule-wrap { position: relative; overflow: hidden; padding: 6px 26px 14px; }
.schedule-wrap::before { content: ""; position: absolute; inset: 0; background: url("./shared/img/sea-night.jpg") center / cover no-repeat; opacity: 0.28; pointer-events: none; }
.schedule-wrap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,26,48,0.35), rgba(13,26,48,0.7)); pointer-events: none; }
.timeline { position: relative; z-index: 1; display: grid; }
.tl { display: grid; grid-template-columns: 150px 1fr; gap: 20px; padding: 16px 0; border-top: 1px dashed var(--line-soft); }
.tl:first-child { border-top: 0; }
.tl time { font-weight: 800; color: var(--gold); font-variant-numeric: tabular-nums; font-size: 19px; }
.tl b { display: block; font-size: 19px; font-weight: 700; color: var(--ink); }
.tl p { color: var(--ink-2); font-size: 17.5px; margin-top: 4px; }
.tl.hl { background: linear-gradient(90deg, rgba(240,185,75,0.16), transparent); border-radius: 10px; padding-left: 12px; margin-left: -12px; }
@media (max-width: 720px) { .schedule-wrap { padding: 4px 16px 10px; } .tl { grid-template-columns: 1fr; gap: 3px; } .tl.hl { padding-left: 10px; margin-left: -10px; } }

/* 여덟 항구 — 섬 일러스트 */
.ports { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.port { position: relative; overflow: hidden; padding: 14px 16px 18px; text-align: center; }
.port::before { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 45% at 50% 38%, color-mix(in srgb, var(--c) 28%, transparent), transparent 72%); pointer-events: none; }
.port .isle { position: relative; height: 130px; display: flex; align-items: center; justify-content: center; }
.port .isle img { height: 100%; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 14px 14px rgba(0,0,0,0.55)); transition: transform 0.4s ease; }
.port:hover .isle img { transform: translateY(-4px) scale(1.04); }
.port .symbol { position: absolute; top: 10px; left: 12px; width: 40px; height: 40px; object-fit: contain; filter: drop-shadow(0 3px 5px rgba(0,0,0,0.5)); z-index: 1; }
.port .gem { position: absolute; top: 12px; right: 12px; width: 18px; height: 18px; border-radius: 50%; background: var(--c); box-shadow: inset -3px -4px 7px rgba(0,0,0,0.3), inset 3px 3px 6px rgba(255,255,255,0.5), 0 0 10px color-mix(in srgb, var(--c) 70%, transparent); }
.port .country { position: relative; margin-top: 10px; font-size: 15px; color: var(--gold); font-weight: 700; letter-spacing: 0.08em; }
.port h3 { position: relative; font-size: 19px; font-weight: 800; margin-top: 2px; color: var(--ink); }
.port p { position: relative; margin-top: 6px; font-size: 16px; color: var(--ink-2); }
@media (max-width: 900px) { .ports { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .ports { gap: 10px; } .port { padding: 12px 10px 14px; } .port .isle { height: 100px; } .port h3 { font-size: 18px; } .port p { font-size: 15.5px; } }

/* 참가 신청 */
.apply-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px; }
.apply-card { position: relative; overflow: hidden; color: #fff; border-radius: 18px; padding: 32px; display: grid; gap: 14px; align-content: start; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(24,49,86,0.6), rgba(6,16,32,0.9)); box-shadow: 0 10px 30px rgba(0,0,0,0.35); }
.apply-card .bg { position: absolute; inset: 0; background: url("./shared/img/kv-hero.jpg") center 20% / cover no-repeat; opacity: 0.35; pointer-events: none; }
.apply-card .bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,16,32,0.2), rgba(6,16,32,0.92) 70%); }
.apply-card > *:not(.bg) { position: relative; }
.apply-card h3 { font-family: var(--font-title); font-weight: 400; font-size: 30px; }
.apply-card p { color: rgba(255,255,255,0.86); font-size: 18px; }
.apply-card .btn-apply { justify-self: start; margin-top: 8px; }
.apply-card .benefit { display: grid; gap: 2px; padding: 14px 16px; border-radius: 14px; background: rgba(240,185,75,0.14); border: 1px solid var(--line); }
.apply-card .benefit-tag { font-size: 14.5px; font-weight: 800; color: var(--gold); letter-spacing: 0.08em; }
.apply-card .benefit b { font-size: 20px; color: var(--gold-hi); }
.apply-card .benefit small { font-size: 15.5px; color: rgba(255,255,255,0.8); }
.overview dd a, .map-ph a { color: var(--gold); }
.apply-card ul { margin: 0; padding-left: 18px; color: rgba(255,255,255,0.88); font-size: 17.5px; display: grid; gap: 6px; }
.steps { padding: 26px 28px; }
.steps h3 { font-size: 20px; font-weight: 800; margin-bottom: 14px; color: var(--gold-hi); }
.steps ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; counter-reset: s; }
.steps li { display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: start; font-size: 17.5px; }
.steps li::before { counter-increment: s; content: counter(s); width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(180deg, var(--gold-hi), var(--gold-2)); color: var(--gold-ink); font-weight: 800; display: grid; place-items: center; font-size: 16px; }
.steps li > div { min-width: 0; }
.steps li b { display: block; color: var(--ink); }
.steps li span { color: var(--ink-2); font-size: 16px; }
@media (max-width: 800px) { .apply-grid { grid-template-columns: 1fr; } .apply-card { padding: 24px 20px; } .apply-card .btn-apply { justify-self: stretch; text-align: center; } .steps { padding: 20px 18px; } }

/* 오시는 길·문의 */
.access { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.access .box { padding: 22px; }
.access h3 { font-size: 19px; font-weight: 800; margin-bottom: 8px; color: var(--gold-hi); }
.access p, .access li { font-size: 17.5px; color: var(--ink-2); }
.access ul { margin: 8px 0 0; padding-left: 18px; }
@media (max-width: 720px) { .access { grid-template-columns: 1fr; } .access .box { padding: 18px 16px; } }

.notice { margin-top: 18px; font-size: 16px; color: var(--ink-2); }

/* 푸터 */
footer { background: var(--sea-deep); color: rgba(255,255,255,0.65); font-size: 15.5px; border-top: 1px solid var(--line); }
.foot-in { width: min(var(--w), 100% - 32px); margin: 0 auto; padding: 26px 0; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
footer a { color: rgba(255,255,255,0.45); text-decoration: none; }
footer a:hover { color: #fff; }

/* 등장 애니메이션 — <html class="anim">일 때만 */
html.anim .rv { opacity: 0; transform: translateY(14px); transition: opacity 0.5s ease, transform 0.5s ease; }
html.anim .rv.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.anim .rv { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } .fleet:hover .ship img, .port:hover .isle img { transform: none; } }

/* 문의 문구만 밝은 파랑으로 강조 */
.contact-text, .contact-text dt, .contact-text dd, .contact-text a, .apply-card p.contact-text, .access .contact-text { color: #79BEFF; font-weight: 700; }

/* 약도 — 그림 지도 */
.map-scroll { min-width: 0; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px; background: #FFFFFF; }
.map-art { display: block; width: 100%; min-width: 860px; height: auto; }
.map-ph figcaption { margin-top: 12px; font-size: 16px; line-height: 1.65; }
.map-link { display: inline-block; margin-top: 8px; font-size: 16px; font-weight: 700; }
@media (max-width: 900px) {
  .map-scroll::after { content: ''; }
  .map-ph { padding: 12px; }
}
.map-ph figcaption { color: var(--ink-2); }

/* ── B안과 같은 눈높이로 맞춘 부분 (2026-09-21) ───────── */

/* 개요 표 */
.overview div { grid-template-columns: 220px 1fr; gap: 20px; padding: 22px 28px; }
.overview dt { font-size: 26px; }
.overview dd { font-size: 28px; line-height: 1.6; }
@media (max-width: 720px) {
  .overview div { grid-template-columns: 1fr; gap: 6px; padding: 16px 18px; }
  .overview dt { font-size: 21px; }
  .overview dd { font-size: 22px; }
}

/* 사전접수 안내 — 한 항목 한 줄 */
.apply-lines { display: grid; gap: 8px; }
.apply-lines span { display: block; }
.apply-lines b { margin-right: 8px; }
.apply-card ul { margin: 0; padding-left: 22px; display: grid; gap: 8px; }
.apply-card li { font-size: 19px; line-height: 1.55; }

/* 신청 후 절차 — 읽기 쉽게 */
.steps h3 { font-size: 28px; margin-bottom: 18px; color: #fff; }
.steps ol { gap: 12px; }
.steps li {
  grid-template-columns: 38px 1fr;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 16px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.13);
  font-size: 19px;
}
.steps li::before { width: 38px; height: 38px; font-size: 19px; }
.steps li b { font-size: 23px; font-weight: 800; line-height: 1.4; color: #fff; }
.steps li span { display: block; margin-top: 4px; font-size: 19px; line-height: 1.6; color: #D5DEEB; }

/* 문의 상자 — 글씨 키우고 기관은 로고로 */
.access .box h3.contact-text { font-size: 28px; }
.access .box p.contact-text { font-size: 22px; line-height: 1.7; }
.access .box p.contact-text a { font-size: 24px; font-weight: 800; }
.orgs { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); display: grid; gap: 16px; }
.org-row { display: grid; gap: 8px; }
.org-label { font-size: 17px; font-weight: 800; color: var(--gold); letter-spacing: 0.04em; }
.org-items { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.org-logo { height: 46px; width: auto; display: block; background: #fff; border-radius: 10px; padding: 6px 10px; }
.org-name { font-size: 19px; font-weight: 700; color: #fff; padding: 9px 14px; border-radius: 12px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); }
@media (max-width: 720px) {
  .steps h3 { font-size: 24px; }
  .steps li b { font-size: 20px; }
  .steps li span { font-size: 17px; }
  .access .box h3.contact-text { font-size: 23px; }
  .access .box p.contact-text { font-size: 19px; }
  .access .box p.contact-text a { font-size: 21px; }
  .org-logo { height: 38px; }
  .org-name { font-size: 17px; }
}

/* 오시는 길 약도 — 안내지도 */
.access .map-ph { grid-column: 1 / -1; margin: 0 0 18px; padding: 0; display: block; height: auto; }
.map-svg { display: block; width: 100%; height: auto; border-radius: 16px; border: 1px solid var(--line); background: #E9EBEE; }
.map-ph figcaption { display: grid; gap: 6px; margin-top: 12px; }
.map-steps { font-size: 18px; line-height: 1.65; }
.map-note { font-size: 15px; opacity: 0.75; }
.map-link { display: inline-block; margin-top: 8px; font-size: 16px; font-weight: 700; }
@media (max-width: 720px) {
  .map-steps { font-size: 16px; }
  .map-note { font-size: 13.5px; }
}
.map-steps { color: var(--ink); }
.map-note { color: var(--ink-2); }
.map-svg { border-color: rgba(255,255,255,0.18); }
