/* Reset & base */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: "Noto Sans KR", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Apple SD Gothic Neo", sans-serif; color: #23252b; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
:root{
  --main:#0f2544;        /* 딥 네이비 */
  --accent:#00a0a0;      /* 틸 포인트 */
  --muted:#6b7280;
  --bg:#fafbfc;
  --border:#e5e7eb;
}

/* Layout helpers */
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.section { padding: 80px 0; }
.section--alt { background: var(--bg); }

/* Skip link (접근성) */
.skip-link {
  position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden;
}
.skip-link:focus { position: static; width: auto; height: auto; background: #fff; padding: 8px 12px; border: 1px solid var(--border); }

/* Header / Nav */
.header {
  position: sticky; top: 0; z-index: 999; background: #fff; border-bottom: 1px solid var(--border);
}
.header__inner { display:flex; align-items:center; justify-content:space-between; height:64px; }
.logo a { display: block; }
.logo img { height: 40px; width: auto; }
.nav { display:flex; align-items:center; gap: 24px; }
.nav a { color:#1f2937; font-weight:600; padding: 6px 2px; border-bottom: 2px solid transparent; }
.nav a:hover { color: var(--main); border-bottom-color: var(--accent); }
/* 활성 탭 */
.nav a.active, .nav a[aria-current="page"] {
  color: var(--main);
  border-bottom-color: var(--accent);
}

/* Mobile nav */
.nav-toggle {
  display:none; border:1px solid var(--border); background:#fff; padding:8px 10px; border-radius:6px;
}
@media (max-width: 900px){
  .nav { display:none; position:absolute; top:64px; left:0; right:0; background:#fff; border-bottom:1px solid var(--border); flex-direction:column; padding:16px 20px; }
  .nav.open { display:flex; }
  .nav-toggle { display:inline-block; }
}

/* Hero */
.hero {
  color:#fff; background: #1e293b url('../assets/hero.jpg') center/cover no-repeat; position: relative;
}
.hero::after { content:""; position:absolute; inset:0; background: rgba(0,0,0,.45); }
.hero__inner { position:relative; z-index:1; padding: 120px 0; text-align:center; }
.hero h1 { font-size: clamp(28px, 5vw, 48px); font-weight: 800; letter-spacing: .2px; }
.hero p { margin: 18px auto 24px; max-width: 760px; color: #e5e7eb; }
.btn {
  display:inline-block; background: var(--accent); color:#fff; padding: 12px 20px; border-radius: 28px; font-weight:700; transition:.2s background;
}
.btn:hover { background:#008b8b; }

/* Headings */
.h2 { font-size: clamp(22px, 3.6vw, 32px); font-weight: 800; color: var(--main); margin-bottom: 16px; text-align: center; }
.lead { text-align:center; color: var(--muted); margin: 0 auto 40px; max-width: 800px; }

/* Cards / grids */
.grid { display:grid; gap: 28px; }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px){ .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px){ .grid--3, .grid--4 { grid-template-columns: 1fr; } }

.card {
  background:#fff; border:1px solid var(--border); border-radius:12px; padding: 20px; box-shadow: 0 2px 8px rgba(0,0,0,.04); transition:.2s transform, .2s box-shadow;
}
.card:hover { transform: translateY(-4px); box-shadow: 0 8px 18px rgba(0,0,0,.07); }
.card h3 { font-size: 1.1rem; margin-bottom: 8px; }
.card p { color:#4b5563; }
.card--double {
  grid-column: span 2;
}

/* Forms */
.form { max-width: 680px; margin: 0 auto; }
label { display:block; font-weight:700; margin: 14px 0 6px; }
input, select, textarea {
  width:100%; padding: 12px 14px; border:1px solid var(--border); border-radius:8px; font-size: 1rem; background:#fff;
}
textarea { min-height: 140px; resize: vertical; }
button[type=submit] { margin-top: 16px; }

/* Footer */
.footer { background:#0b1220; color:#c7cad3; }
.footer a { color:#c7cad3; }
.footer__inner { padding: 30px 0; text-align:center; border-top: 1px solid rgba(255,255,255,.06); }

/* Utility */
.mtb-20 { margin: 20px 0; }
.kicker { text-transform: uppercase; letter-spacing: .12em; font-weight: 800; color: var(--accent); font-size: .85rem; display:block; margin-bottom: 8px; text-align:center; }

/* === Programs 카드 이미지 === */
.card__media {
  aspect-ratio: 16 / 9;   /* 최신 브라우저에서 비율 고정 */
  overflow: hidden;
  border-radius: 12px;
  background: #f3f4f6;    /* 이미지 로딩 전 배경 */
  margin-bottom: 12px;
}

.card__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;       /* 잘리는 방식 */
}
