/* 한문기 수학교습소 — 추가 스타일. main.css 위에 얹는다. */
:root {
  --ac-brand: #1E3A8A;
  --ac-brand-50: #EEF2FF;
  --ac-brand-100: #E0E7FF;
  --ac-brand-700: #3730A3;
  --ac-brand-800: #312E81;
  --ac-accent: #F59E0B;
  --ac-ink: #0F172A;
  --ac-muted: #64748B;
  --ac-line: #E2E8F0;
  --ac-bg-soft: #F8FAFC;
}

/* Reset some main.css interference */
.ac-body {
  background: #fff;
  color: var(--ac-ink);
  font-family: Pretendard, "Inter", system-ui, sans-serif;
  font-size: 18px;        /* 전체 기본 글자 크기 18px */
  line-height: 1.65;
}
.ac-body a { text-decoration: none; color: inherit; }
.ac-body main.ac-main { display: block; }
/* 본문 컨테이너: 좌우 15% 여백 = 콘텐츠 70% (데스크톱) */
.ac-container { margin: 0 auto; padding: 0 15%; }
@media (max-width: 1023px) { .ac-container { padding: 0 5%; } }   /* 태블릿 */
@media (max-width: 768px)  { .ac-container { padding: 0 14px; } } /* 폰 — mobile.css에서 추가 보강 */
.ac-skip { position: absolute; left: -9999px; top: -9999px; }
.ac-skip:focus { position: fixed; left: 12px; top: 12px; z-index: 100; background: var(--ac-brand); color: #fff; padding: 8px 12px; border-radius: 6px; }

/* ── Top utility bar (10% 좌우 여백, 80% 콘텐츠) ── */
.ac-topbar { background: var(--ac-brand-800); color: #C7D2FE; font-size: 12px; }
.ac-topbar-row {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 10%; /* 좌우 10% 여백 */
  flex-wrap: wrap;
  max-width: none;
}
.ac-topbar-spacer { flex: 1; }
.ac-topbar-phone { color: #fff; font-weight: 600; }
.ac-topbar-phone:hover { color: var(--ac-accent); }

/* 국기 라인 */
.ac-topbar-langs {
  display: inline-flex; align-items: center; gap: 2px;
  margin-right: 14px;
}
.ac-topbar-langs a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 24px;
  border-radius: 4px;
  text-decoration: none;
  opacity: .8;
  transition: opacity .15s ease, background .15s ease, transform .15s ease;
}
.ac-topbar-langs a:hover {
  opacity: 1;
  background: rgba(255,255,255,.12);
  transform: translateY(-1px);
}
.ac-topbar-langs a.current {
  opacity: 1;
  background: rgba(255,255,255,.18);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.25);
}
.ac-topbar-langs .ac-flag { font-size: 16px; line-height: 1; }

/* flag-icons (SVG) — 토픽바 / 헤더 / 푸터 일관 사이징 */
.ac-topbar-langs .fi {
  width: 22px; height: 16px;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12);
  display: inline-block;
}
.ac-footer-langs .fi {
  width: 20px; height: 14px;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.15);
  margin-right: 4px;
  vertical-align: -2px;
}

/* ── Header (좌우 10% 여백, 콘텐츠 80%) ── */
.ac-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--ac-line);
}
.ac-header-row {
  display: flex; align-items: center; gap: 18px;
  height: 72px;
  padding: 0 10%;             /* 좌우 10% */
  max-width: none;
}
.ac-logo { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; color: var(--ac-brand); font-size: 20px; flex-shrink: 0; }
.ac-logo-mark { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; background: var(--ac-brand); color: #fff; font-weight: 800; font-size: 18px; }

.ac-nav { display: none; gap: 6px; }
@media (min-width: 1024px) { .ac-nav { display: flex; align-items: center; flex: 1; justify-content: center; } }

.ac-nav a, .ac-nav-btn {
  display: inline-flex; align-items: center;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 18px;            /* 메뉴 18px */
  color: var(--ac-ink);
  background: transparent;
  border: 0; cursor: pointer;
  line-height: 1.2;
  white-space: nowrap;
}
.ac-nav a:hover, .ac-nav-btn:hover { background: var(--ac-brand-50); color: var(--ac-brand-700); }
.ac-nav-caret { font-size: 13px; margin-left: 4px; opacity: .7; }

.ac-nav-group { position: relative; }
.ac-nav-group ul {
  display: none;
  position: absolute;
  top: calc(100% + 10px);    /* 시각적 10px 여백 */
  left: 0;
  min-width: 220px;
  background: #fff;
  border: 1px solid var(--ac-line);
  border-radius: 10px;
  padding: 6px;
  margin: 0;
  list-style: none;
  box-shadow: 0 12px 32px rgba(15,23,42,.10);
  z-index: 60;
}
/* 마우스가 버튼 → 메뉴로 이동할 때 hover가 끊기지 않도록 보이지 않는 브릿지 */
.ac-nav-group ul::before {
  content: '';
  position: absolute;
  top: -14px;                 /* 버튼 바닥까지 4px 추가 오버랩으로 안전 */
  left: 0;
  right: 0;
  height: 14px;
  background: transparent;
}
.ac-nav-group:hover ul,
.ac-nav-group:focus-within ul,
.ac-nav-group.open ul { display: block; }
.ac-nav-group ul a { display: block; padding: 10px 14px; font-size: 16px; font-weight: 500; border-radius: 6px; }
.ac-nav-group ul a:hover { background: var(--ac-brand-50); color: var(--ac-brand-700); }

/* 블로그 메뉴 — 다른 메뉴와 구별되는 매거진/잡지 스타일 */
.ac-nav-blog {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 9px 18px !important;
  background: linear-gradient(135deg, #FB923C 0%, #F59E0B 60%, #EA580C 100%) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  letter-spacing: -.01em;
  box-shadow: 0 4px 12px rgba(245,158,11,.32), 0 1px 0 rgba(255,255,255,.18) inset;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  margin-left: 6px;
  text-shadow: 0 1px 2px rgba(180,83,9,.25);
}
.ac-nav-blog:hover {
  background: linear-gradient(135deg, #F59E0B 0%, #D97706 60%, #B45309 100%) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(245,158,11,.45), 0 1px 0 rgba(255,255,255,.2) inset;
}
.ac-nav-blog-icon { font-size: 16px; line-height: 1; filter: drop-shadow(0 1px 2px rgba(0,0,0,.15)); }
.ac-nav-blog-text { line-height: 1; }
.ac-nav-blog-pulse {
  width: 7px; height: 7px;
  background: #fff;
  border-radius: 50%;
  margin-left: 2px;
  box-shadow: 0 0 0 2px rgba(255,255,255,.4);
  animation: ac-blog-pulse 1.8s ease-in-out infinite;
}
@keyframes ac-blog-pulse {
  0%, 100% { opacity: .6; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.25); }
}

/* 헤더 우측: 전화번호 prominent */
.ac-cta-call {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 18px;
  font-size: 18px; font-weight: 800; line-height: 1;
  background: var(--ac-brand);
  color: #fff !important;
  border-radius: 10px;
  letter-spacing: -.01em;
  box-shadow: 0 6px 14px rgba(30,58,138,.25);
  white-space: nowrap;
  flex-shrink: 0;
}
.ac-cta-call:hover { background: var(--ac-brand-700); transform: translateY(-1px); }
.ac-cta-icon { font-size: 16px; }
.ac-cta-num { font-variant-numeric: tabular-nums; }

.ac-header-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }

/* Hamburger toggle (mobile only) */
.ac-nav-toggle {
  display: inline-flex; flex-direction: column; gap: 5px;
  padding: 10px; background: transparent; border: 0; cursor: pointer;
  min-width: 44px; min-height: 44px; align-items: center; justify-content: center;
}
.ac-nav-toggle span { width: 24px; height: 2px; background: var(--ac-ink); display: block; }
@media (min-width: 1024px) { .ac-nav-toggle { display: none; } }

.ac-nav.open { display: flex; flex-direction: column; position: absolute; top: 64px; right: 0; left: 0; background: #fff; padding: 12px 20px; border-bottom: 1px solid var(--ac-line); box-shadow: 0 12px 30px rgba(15,23,42,.08); }
.ac-nav.open .ac-nav-group ul { position: static; box-shadow: none; border: 0; padding-left: 12px; }
.ac-nav.open .ac-nav-group ul { display: block; }

/* ── Sections ── */
.ac-section { padding: 56px 0; }
.ac-section-alt { background: var(--ac-bg-soft); }
.ac-section-title { font-size: 28px; font-weight: 800; color: var(--ac-ink); margin: 0 0 6px; }
.ac-section-sub { color: var(--ac-muted); margin: 0 0 24px; font-size: 16px; }
.ac-section-sub-muted { color: var(--ac-muted); margin: 6px 0 24px; font-size: 13px; }
.ac-section-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.ac-section-link { color: var(--ac-brand); font-weight: 600; font-size: 14px; }

/* ── Hero (image slider) — 새 콘텐츠 분량에 맞춰 720px ── */
.ac-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  min-height: 720px;
  display: flex;
  align-items: center;
  padding: 88px 0 112px;
  background: var(--ac-brand-900); /* fallback while images load */
}
.ac-hero-slides {
  position: absolute; inset: 0;
  z-index: -2;
}
.ac-hero-slide {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1.6s ease, transform 9s linear;
}
.ac-hero-slide.is-active {
  opacity: 1;
  transform: scale(1);   /* Ken Burns: slowly zoom out while active */
}
.ac-hero-overlay {
  position: absolute; inset: 0;
  z-index: -1;
  background:
    linear-gradient(135deg, rgba(15,23,42,.78) 0%, rgba(30,58,138,.55) 55%, rgba(15,23,42,.78) 100%),
    radial-gradient(ellipse at 50% 100%, rgba(245,158,11,.18), transparent 60%);
}
/* ── Hero inner: 중앙 정렬 ── */
.ac-hero-inner {
  position: relative; z-index: 1;
  color: #fff;
  text-align: center;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 16px;
}

/* Eyebrow pill with sparkle SVG (양쪽 스타) */
.ac-hero-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .01em;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.28);
  text-shadow: 0 1px 6px rgba(0,0,0,.3);
}
.ac-eyebrow-icon {
  width: 14px; height: 14px;
  color: #FDE68A;
  filter: drop-shadow(0 0 6px rgba(253,230,138,.5));
}

/* Hero title — 2단 (메인 + 그라데이션 강조 라인) */
.ac-hero-title {
  font-size: clamp(34px, 6vw, 58px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.02em;
  margin: 22px 0 14px;
  color: #fff;
  text-shadow: 0 3px 18px rgba(0,0,0,.4);
}
.ac-hero-title-l1 { display: block; }
.ac-hero-title-l2 {
  display: block;
  margin-top: 6px;
  background: linear-gradient(180deg, #FDE68A 0%, #FBBF24 55%, #F59E0B 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  filter: drop-shadow(0 2px 14px rgba(252,211,77,.35));
}

/* Decorative wavy divider 아래 타이틀 */
.ac-hero-divider {
  display: block;
  width: 150px; height: 14px;
  margin: 18px auto 18px;
  color: rgba(253,230,138,.8);
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.25));
}

/* Description — 키움, 중앙 */
.ac-hero-desc {
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.6;
  max-width: 760px;
  margin: 18px auto 0;
  color: rgba(255,255,255,.96);
  text-shadow: 0 1px 10px rgba(0,0,0,.35);
}
.ac-hero-desc strong {
  color: #FDE68A;
  font-weight: 800;
  letter-spacing: .01em;
}

/* CTA 버튼 행 — 중앙 정렬 */
.ac-hero-cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  margin: 36px auto 32px;
}
.ac-btn-hero {
  padding: 14px 22px;
  font-size: 16px;
  font-weight: 700;
  border-radius: 12px;
  letter-spacing: -.01em;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}
.ac-btn-icon {
  width: 20px; height: 20px;
  flex-shrink: 0;
  color: currentColor;
}
.ac-btn-num {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  margin-left: 4px;
  padding-left: 10px;
  border-left: 1px solid rgba(255,255,255,.45);
}

/* Hero secondary buttons on dark background */
.ac-hero .ac-btn-secondary {
  background: rgba(255,255,255,.14);
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,.5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.ac-hero .ac-btn-secondary:hover {
  background: rgba(255,255,255,.24);
  border-color: rgba(255,255,255,.8);
  transform: translateY(-1px);
}
.ac-hero .ac-btn-primary {
  box-shadow: 0 8px 22px rgba(30,58,138,.5), 0 0 0 1px rgba(255,255,255,.12) inset;
}
.ac-hero .ac-btn-primary:hover { transform: translateY(-1px); }

/* Meta — SVG 아이콘 + 중앙 정렬 */
.ac-hero-meta {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1000px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  justify-content: center;
  color: rgba(255,255,255,.94);
  font-size: 15px;
  text-shadow: 0 1px 8px rgba(0,0,0,.4);
}
.ac-hero-meta li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
}
.ac-meta-icon {
  width: 18px; height: 18px;
  color: #FDE68A;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.25));
}

/* Slide indicator dots */
.ac-hero-dots {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 2;
}
.ac-hero-dot {
  width: 36px; height: 5px;
  background: rgba(255,255,255,.4);
  border: 0;
  border-radius: 999px;
  padding: 0;
  cursor: pointer;
  transition: background .3s ease, width .3s ease;
}
.ac-hero-dot:hover { background: rgba(255,255,255,.6); }
.ac-hero-dot.is-active {
  background: #fff;
  width: 60px;
  box-shadow: 0 0 12px rgba(255,255,255,.4);
}

/* ── Buttons ── */
.ac-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 20px; border-radius: 10px; font-weight: 600; font-size: 15px; text-decoration: none; transition: all .15s ease; }
.ac-btn-primary { background: var(--ac-brand); color: #fff; box-shadow: 0 6px 18px rgba(30,58,138,.25); }
.ac-btn-primary:hover { background: var(--ac-brand-700); transform: translateY(-1px); }
.ac-btn-secondary { background: #fff; color: var(--ac-brand); border: 1px solid var(--ac-brand); }
.ac-btn-secondary:hover { background: var(--ac-brand-50); }
.ac-btn-on-dark { background: #fff; color: var(--ac-brand); }
.ac-btn-on-dark:hover { background: var(--ac-brand-50); }
.ac-pill { display: inline-block; padding: 4px 10px; border: 1px solid var(--ac-line); border-radius: 999px; font-size: 12px; color: var(--ac-brand); }
.ac-pill:hover { background: var(--ac-brand-50); }

/* ── Features ── */
/* ── 차별화 3블록: 컬러 아이덴티티 + 번호 워터마크 ── */
.ac-features { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .ac-features { grid-template-columns: repeat(3, 1fr); } }

.ac-feature {
  --f-from: #6366F1;
  --f-to:   #4338CA;
  --f-tint: rgba(99,102,241,.08);
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--ac-line);
  border-radius: 20px;
  padding: 30px 26px 28px;
  box-shadow: 0 4px 14px rgba(15,23,42,.05);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ac-feature::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, var(--f-from), var(--f-to));
  border-radius: 5px 0 0 5px;
}
.ac-feature::after {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 180px; height: 180px;
  border-radius: 50%;
  background: var(--f-tint);
  pointer-events: none;
}
.ac-feature:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 42px rgba(15,23,42,.12);
  border-color: transparent;
}

.ac-feature--indigo { --f-from: #6366F1; --f-to: #4338CA; --f-tint: rgba(99,102,241,.10); }
.ac-feature--amber  { --f-from: #F59E0B; --f-to: #D97706; --f-tint: rgba(245,158,11,.10); }
.ac-feature--teal   { --f-from: #14B8A6; --f-to: #0D9488; --f-tint: rgba(20,184,166,.10); }

.ac-feature-num {
  position: absolute;
  top: 16px; right: 22px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 56px;
  font-weight: 900;
  line-height: 1;
  background: linear-gradient(135deg, var(--f-from), var(--f-to));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: .14;
  letter-spacing: -.04em;
}

/* 아이콘 + 제목 한 줄 */
.ac-feature-head {
  position: relative;
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 14px;
}
.ac-feature-icon {
  flex-shrink: 0;
  display: inline-grid; place-items: center;
  width: 48px; height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--f-from), var(--f-to));
  color: #fff;
  box-shadow: 0 6px 16px color-mix(in srgb, var(--f-from) 35%, transparent);
}
.ac-feature-icon svg { width: 26px; height: 26px; }
.ac-feature h3 {
  font-size: clamp(20px, 1.9vw, 23px);
  margin: 0;
  color: var(--ac-ink);
  line-height: 1.3;
  letter-spacing: -.01em;
  flex: 1 1 0;
  min-width: 0;
}
.ac-feature p {
  margin: 0;
  color: var(--ac-muted);
  line-height: 1.75;
  font-size: clamp(16px, 1.5vw, 18px);    /* 데스크톱 18px, 모바일 16px */
  word-break: keep-all;
  overflow-wrap: break-word;
  text-wrap: pretty;                       /* 마지막 줄 고아 단어 방지 (지원 브라우저) */
}

/* ── Programs ── */
/* ── 학년별 프로그램: 학년별 컬러 + 한자 워터마크 + stat 박스 ── */
.ac-programs { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .ac-programs { grid-template-columns: repeat(3, 1fr); } }

.ac-program-card {
  --p-from: #6366F1;
  --p-to:   #4338CA;
  --p-tint: rgba(99,102,241,.08);
  --p-soft: rgba(99,102,241,.04);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1.5px solid var(--ac-line);
  border-radius: 20px;
  padding: 26px 24px 24px;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.ac-program-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--p-from), var(--p-to));
  border-radius: 20px 20px 0 0;
}
.ac-program-card:hover {
  transform: translateY(-3px);
  border-color: transparent;
  box-shadow: 0 18px 42px color-mix(in srgb, var(--p-from) 22%, transparent);
}

.ac-program--green  { --p-from: #10B981; --p-to: #047857; --p-tint: rgba(16,185,129,.10); --p-soft: rgba(16,185,129,.05); }
.ac-program--indigo { --p-from: #6366F1; --p-to: #4338CA; --p-tint: rgba(99,102,241,.10); --p-soft: rgba(99,102,241,.05); }
.ac-program--orange { --p-from: #F97316; --p-to: #C2410C; --p-tint: rgba(249,115,22,.10); --p-soft: rgba(249,115,22,.05); }

.ac-program-watermark {
  position: absolute;
  right: -10px; bottom: -30px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 180px;
  font-weight: 900;
  line-height: 1;
  background: linear-gradient(135deg, var(--p-from), var(--p-to));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: .08;
  pointer-events: none;
  user-select: none;
}

.ac-program-head {
  position: relative;
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 12px;
}
.ac-program-tag {
  display: inline-block; flex-shrink: 0;
  padding: 5px 14px;
  border-radius: 999px;
  background: var(--p-tint);
  color: var(--p-from);
  font-size: 13px; font-weight: 700;
  letter-spacing: .02em;
}
.ac-program-card h3 {
  margin: 0;
  font-size: clamp(20px, 1.9vw, 23px);
  color: var(--ac-ink);
  line-height: 1.3;
  letter-spacing: -.01em;
  flex: 1 1 0;
  min-width: 0;
}
.ac-program-card p {
  position: relative;
  margin: 0 0 18px;
  color: var(--ac-muted);
  line-height: 1.75;
  font-size: clamp(16px, 1.5vw, 18px);
  word-break: keep-all;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

.ac-program-stats {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: auto;
}
.ac-program-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--p-soft);
}
.ac-program-stat--accent {
  background: linear-gradient(135deg, var(--p-from), var(--p-to));
}
.ac-program-stat small {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--p-from);
}
.ac-program-stat--accent small { color: rgba(255,255,255,.85); }
.ac-program-stat strong {
  font-size: 14px;
  font-weight: 700;
  color: var(--ac-ink);
}
.ac-program-stat--accent strong { color: #fff; }

.ac-program-arrow {
  position: absolute;
  top: 24px; right: 22px;
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--p-tint);
  color: var(--p-from);
  opacity: .6;
  transition: transform .2s ease, opacity .2s ease, background .2s ease;
}
.ac-program-arrow svg { width: 18px; height: 18px; }
.ac-program-card:hover .ac-program-arrow {
  opacity: 1;
  transform: translateX(4px);
  background: linear-gradient(135deg, var(--p-from), var(--p-to));
  color: #fff;
}

/* legacy alias */
.ac-program-meta { color: var(--ac-muted); font-size: 14px; }

/* ── Results ── */
/* ── 학습 성과: 메달 + Before→After + period chip ── */
.ac-results { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .ac-results { grid-template-columns: repeat(3, 1fr); } }

.ac-result {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--ac-line);
  border-radius: 20px;
  padding: 32px 24px 24px;
  text-align: center;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ac-result::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #F59E0B 0%, #FCD34D 50%, #F59E0B 100%);
}
.ac-result::after {
  content: '';
  position: absolute;
  top: -50px; left: 50%; transform: translateX(-50%);
  width: 200px; height: 200px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(245,158,11,.08), transparent 70%);
  pointer-events: none;
}
.ac-result:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 50px rgba(245,158,11,.20);
  border-color: transparent;
}

/* 메달 (gold gradient) */
.ac-result-medal {
  position: relative;
  width: 72px; height: 72px;
  margin: 0 auto 18px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #FCD34D 0%, #F59E0B 60%, #D97706 100%);
  color: #fff;
  box-shadow: 0 10px 24px rgba(245,158,11,.45),
              inset 0 -3px 0 rgba(0,0,0,.1),
              inset 0 3px 0 rgba(255,255,255,.25);
}
.ac-result-medal svg { width: 36px; height: 36px; }

/* 학생 정보 (라벨 + 이름) */
.ac-result-who {
  position: relative;
  margin-bottom: 20px;
}
.ac-result-who small {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--ac-muted);
  margin-bottom: 4px;
}
.ac-result-who strong {
  display: block;
  font-size: clamp(16px, 1.6vw, 18px);
  font-weight: 700;
  color: var(--ac-ink);
  letter-spacing: -.01em;
}

/* Before → After 진척 시각화 */
.ac-result-progress {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
  padding: 18px 16px;
  margin-bottom: 16px;
  border-radius: 16px;
  background: linear-gradient(135deg, #FEF3C7 0%, #FDE68A 100%);
}
.ac-result-before, .ac-result-after {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ac-result-before small, .ac-result-after small {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
  color: rgba(146,64,14,.7);
}
.ac-result-before em {
  font-style: normal;
  font-size: clamp(22px, 2.2vw, 26px);
  font-weight: 800;
  color: #92400E;
  opacity: .65;
}
.ac-result-after em {
  font-style: normal;
  font-size: clamp(26px, 2.6vw, 32px);
  font-weight: 900;
  background: linear-gradient(135deg, #D97706 0%, #92400E 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -.02em;
}
.ac-result-arrow {
  width: 36px; height: 24px;
  color: #D97706;
  flex-shrink: 0;
}

/* 기간 chip */
.ac-result-period {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  border-radius: 999px;
  background: var(--ac-bg-soft);
  border: 1px solid var(--ac-line);
  color: var(--ac-ink);
  font-size: 13px;
  font-weight: 700;
}
.ac-result-period svg { width: 14px; height: 14px; color: var(--ac-muted); }

.ac-results-note {
  color: var(--ac-muted);
  font-size: 13px;
  margin: 22px 0 0;
  line-height: 1.6;
  text-align: center;
}

/* ── Multicultural Banner (전화 CTA 강조) ── */
.ac-banner-mc {
  background: linear-gradient(135deg, var(--ac-brand) 0%, var(--ac-brand-800) 100%);
  color: #fff;
  padding: 56px 0;
}
.ac-banner-inner { text-align: center; }
.ac-banner-langs {
  font-size: clamp(16px, 1.6vw, 19px);
  font-weight: 700;
  margin-bottom: 10px;
  letter-spacing: .01em;
}
.ac-banner-mc p {
  color: #DBE3FF;
  margin: 0 0 28px;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.6;
}
.ac-banner-mc p strong { color: #FDE68A; font-weight: 800; }

/* 전화번호 prominent CTA — 흰색 알약 + 황금 글로우 */
.ac-banner-phone {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 18px 32px 18px 24px;
  background: #fff;
  color: var(--ac-brand) !important;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: -.01em;
  text-decoration: none;
  box-shadow: 0 14px 36px rgba(0,0,0,.32),
              0 0 0 3px rgba(253,230,138,.45),
              0 0 24px rgba(253,230,138,.35);
  transition: transform .15s ease, box-shadow .15s ease;
}
.ac-banner-phone:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 44px rgba(0,0,0,.4),
              0 0 0 3px rgba(253,230,138,.7),
              0 0 32px rgba(253,230,138,.55);
}
.ac-banner-phone-icon {
  display: inline-grid; place-items: center;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ac-brand), var(--ac-brand-800));
  color: #fff;
  flex-shrink: 0;
}
.ac-banner-phone-icon svg { width: 24px; height: 24px; }
.ac-banner-phone-body {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}
.ac-banner-phone-label {
  font-size: 13px;
  font-weight: 700;
  color: #64748B;
  letter-spacing: .04em;
  margin-bottom: 4px;
}
.ac-banner-phone-num {
  font-size: clamp(24px, 2.6vw, 30px);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  color: var(--ac-brand);
  letter-spacing: -.02em;
}

/* 보조 링크 (다문화 안내 페이지) — 전화 버튼 밑에 줄바꿈 + 20px */
.ac-banner-link {
  display: block;
  margin: 24px auto 0;
  color: #C7D2FE;
  font-size: 20px;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(199,210,254,.4);
  text-underline-offset: 6px;
  text-decoration-thickness: 2px;
  letter-spacing: -.01em;
  transition: color .15s ease;
}
.ac-banner-link:hover { color: #FDE68A; text-decoration-color: #FDE68A; }
@media (max-width: 768px){
  .ac-banner-link { font-size: 17px; margin-top: 18px; }
}

/* ── Blog Posts ── */
.ac-posts { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .ac-posts { grid-template-columns: repeat(3, 1fr); } }
.ac-post-card { display: block; background: #fff; border: 1px solid var(--ac-line); border-radius: 16px; padding: 22px; transition: all .15s ease; }
.ac-post-card:hover { border-color: var(--ac-brand); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(30,58,138,.08); }
.ac-post-meta { color: var(--ac-muted); font-size: 13px; display: flex; align-items: center; gap: 8px; }
.ac-post-title { margin: 10px 0 8px; font-size: clamp(19px, 1.9vw, 22px); color: var(--ac-ink); line-height: 1.35; letter-spacing: -.01em; }
.ac-post-snippet { color: var(--ac-muted); font-size: clamp(15px, 1.4vw, 17px); margin: 0 0 12px; line-height: 1.65; }
.ac-post-more { color: var(--ac-brand); font-weight: 700; font-size: 14px; }

/* ── Map card (Kakao Roughmap 공식 임베드) ── */
.ac-mapcard {
  background: #fff;
  border: 1px solid var(--ac-line);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 32px rgba(15,23,42,.08);
}
.ac-mapcard-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px 22px;
  border-bottom: 1px solid var(--ac-line);
  background: var(--ac-brand-50);  /* 옅은 인디고 (Google 지도용) */
}
.ac-mapcard-brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  color: var(--ac-brand);
}
.ac-mapcard-brand strong { font-size: 17px; font-weight: 800; color: var(--ac-ink); letter-spacing: -.01em; }
.ac-mapcard-brand svg { width: 20px; height: 20px; }
.ac-mapcard-addr { color: var(--ac-muted); font-size: 14px; }

/* 지도 iframe 반응형 컨테이너 (Google Maps embed) */
.ac-mapcard-iframe { line-height: 0; }
.ac-mapcard-iframe iframe {
  width: 100% !important;
  height: 520px !important;
  border: 0;
  display: block;
}

/* 카카오 시그니처 노란 CTA */
.ac-mapcard-footer {
  display: flex;
  gap: 10px;
  padding: 16px 22px;
  border-top: 1px solid var(--ac-line);
  background: #fff;
  flex-wrap: wrap;
}
.ac-mapcard-cta {
  flex: 1 1 320px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 22px;
  background: var(--ac-brand);
  color: #fff !important;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -.01em;
  text-decoration: none;
  box-shadow: 0 6px 16px rgba(30,58,138,.35);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.ac-mapcard-cta:hover {
  background: var(--ac-brand-700);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(30,58,138,.5);
}
.ac-mapcard-cta svg { width: 20px; height: 20px; }

.ac-mapcard-nav {
  flex: 0 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px 20px;
  background: #fff;
  color: var(--ac-brand) !important;
  border: 1.5px solid var(--ac-brand);
  border-radius: 12px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  transition: background .15s ease;
}
.ac-mapcard-nav:hover { background: var(--ac-brand-50); }
.ac-mapcard-nav svg { width: 18px; height: 18px; }

/* ── Static page (page.php) renderer ── */
.ac-page { padding: 40px 0 64px; }
.ac-page article { max-width: 800px; margin: 0 auto; }
.ac-page h1 { font-size: 36px; font-weight: 800; margin: 0 0 18px; color: var(--ac-ink); }
.ac-page h2 { font-size: 22px; margin: 32px 0 10px; color: var(--ac-brand); }
.ac-page h3 { font-size: 18px; margin: 22px 0 8px; color: var(--ac-ink); }
.ac-page p { line-height: 1.75; color: var(--ac-ink); margin: 8px 0; }
.ac-page ul, .ac-page ol { line-height: 1.75; padding-left: 24px; }
.ac-page blockquote { border-left: 4px solid var(--ac-brand); background: var(--ac-brand-50); padding: 14px 18px; margin: 14px 0; border-radius: 0 8px 8px 0; }
.ac-page table { width: 100%; }

/* ─────────────────────────────────────────────
   Blog minimal footer — 블로그 모드 슬림 푸터
   (학원명·원장·주소·전화 강조 + 하단 관리자 로그인)
   ───────────────────────────────────────────── */
.ac-blog-footer {
  margin-top: 80px;
  background: linear-gradient(160deg, #0F172A 0%, #1E1B4B 60%, #312E81 100%);
  color: #fff; position: relative; overflow: hidden;
}
.ac-blog-footer::before {
  content: ''; position: absolute; top: -120px; right: -120px;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(rgba(253,230,138,.12), transparent 60%);
  pointer-events: none;
}
.ac-blog-footer::after {
  content: ''; position: absolute; bottom: -100px; left: -80px;
  width: 320px; height: 320px; border-radius: 50%;
  background: radial-gradient(rgba(99,102,241,.18), transparent 65%);
  pointer-events: none;
}
.ac-blog-footer-inner {
  position: relative; z-index: 1;
  padding: 60px 15% 48px;
  display: grid; grid-template-columns: 1fr 1.2fr;
  gap: 48px; align-items: center;
}
@media (max-width: 1023px) {
  .ac-blog-footer-inner { padding: 48px 5% 40px; grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 768px) {
  .ac-blog-footer-inner { padding: 36px 18px 28px; gap: 24px; }
}

/* 브랜드 영역 */
.ac-bf-brand { display: flex; align-items: center; gap: 22px; }
.ac-bf-mark {
  width: 76px; height: 76px; border-radius: 20px;
  background: linear-gradient(135deg, #FDE68A 0%, #F59E0B 100%);
  color: #312E81; display: flex; align-items: center; justify-content: center;
  font-size: 38px; font-weight: 900; font-family: 'Pretendard', sans-serif;
  box-shadow: 0 12px 28px rgba(253,230,138,.32);
  flex-shrink: 0;
}
.ac-bf-name {
  font-size: clamp(24px, 2.6vw, 30px); font-weight: 900; color: #fff;
  margin: 0 0 6px; letter-spacing: -.02em;
}
.ac-bf-director {
  font-size: 14.5px; color: rgba(255,255,255,.78); margin: 0;
  line-height: 1.55;
}
.ac-bf-director strong {
  color: #FDE68A; font-weight: 800;
  font-size: 16px;
}
.ac-bf-sep { margin: 0 8px; opacity: .5; }
@media (max-width: 768px) {
  .ac-bf-brand { gap: 16px; }
  .ac-bf-mark { width: 60px; height: 60px; font-size: 28px; border-radius: 16px; }
  .ac-bf-name { font-size: 22px; }
}

/* 상담 정보 카드 */
.ac-bf-contact {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
@media (max-width: 640px) { .ac-bf-contact { grid-template-columns: 1fr; } }

.ac-bf-card {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 18px 20px; border-radius: 16px;
  background: rgba(255,255,255,.06); backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.10);
  text-decoration: none; color: inherit;
  transition: transform .2s, background .2s, border-color .2s;
}
.ac-bf-card-phone:hover {
  background: linear-gradient(135deg, rgba(253,230,138,.18), rgba(245,158,11,.15));
  border-color: rgba(253,230,138,.5);
  transform: translateY(-2px);
}
.ac-bf-card-addr {
  cursor: pointer;
}
.ac-bf-card-addr:hover {
  background: linear-gradient(135deg, rgba(244,114,182,.18), rgba(220,38,38,.12));
  border-color: rgba(244,114,182,.45);
  transform: translateY(-2px);
}
.ac-bf-card-addr:hover .ac-bf-card-arrow {
  transform: translateX(4px);
}
.ac-bf-card-arrow {
  display: inline-block;
  color: #FCA5A5;
  margin-left: 4px;
  transition: transform .2s ease;
  font-weight: 900;
}
.ac-bf-card-icon {
  width: 44px; height: 44px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ac-bf-card-icon svg { width: 22px; height: 22px; }
.ac-bf-icon-pin {
  background: linear-gradient(135deg, rgba(220,38,38,.20), rgba(244,114,182,.18));
  border: 1px solid rgba(244,114,182,.3);
}
.ac-bf-icon-pin svg { stroke: #FCA5A5; }
.ac-bf-icon-phone {
  background: linear-gradient(135deg, rgba(253,230,138,.22), rgba(245,158,11,.18));
  border: 1px solid rgba(253,230,138,.4);
}
.ac-bf-icon-phone svg { stroke: #FDE68A; }
.ac-bf-card-body { flex: 1; min-width: 0; }
.ac-bf-card-body small {
  display: block; font-size: 11.5px; font-weight: 800;
  color: rgba(253,230,138,.85); letter-spacing: .12em; text-transform: uppercase;
  margin-bottom: 4px;
}
.ac-bf-card-body strong {
  display: block; font-size: 15.5px; font-weight: 700; color: #fff;
  letter-spacing: -.01em; line-height: 1.45;
}
.ac-bf-phone-num {
  font-size: clamp(22px, 2.4vw, 28px) !important;
  font-family: Georgia, serif; font-weight: 900 !important;
  color: #fff !important;
  letter-spacing: -.02em !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.ac-bf-hours {
  display: block; font-size: 12px; color: rgba(255,255,255,.55);
  font-weight: 500; margin-top: 4px;
}

/* 하단 — 저작권 + 관리자 로그인 */
.ac-bf-bottom {
  position: relative; z-index: 1;
  border-top: 1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.18);
}
.ac-bf-bottom-inner {
  padding: 18px 15%;
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; flex-wrap: wrap;
}
@media (max-width: 1023px) { .ac-bf-bottom-inner { padding: 18px 5%; } }
@media (max-width: 768px) {
  .ac-bf-bottom-inner { padding: 16px 18px; flex-direction: column; gap: 12px; text-align: center; }
}
.ac-bf-copy {
  font-size: 13px; color: rgba(255,255,255,.55); margin: 0;
  letter-spacing: -.01em;
}
.ac-bf-admin-group {
  display: inline-flex; align-items: center; gap: 8px;
  flex-wrap: wrap;
}
.ac-bf-admin-link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; border-radius: 8px;
  background: rgba(255,255,255,.04); color: rgba(255,255,255,.62);
  border: 1px solid rgba(255,255,255,.10);
  font-size: 12.5px; font-weight: 700; letter-spacing: -.01em;
  text-decoration: none;
  transition: all .2s ease;
}
.ac-bf-admin-link:hover {
  background: rgba(255,255,255,.10); color: #fff;
  border-color: rgba(255,255,255,.22);
}
.ac-bf-admin-link svg { flex-shrink: 0; opacity: .8; }
.ac-bf-admin-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 20px; border-radius: 10px;
  background: rgba(253,230,138,.12); color: #FDE68A;
  border: 1px solid rgba(253,230,138,.30);
  font-size: 13.5px; font-weight: 800; letter-spacing: -.01em;
  text-decoration: none;
  transition: all .2s ease;
}
.ac-bf-admin-btn:hover {
  background: linear-gradient(135deg, #FDE68A, #F59E0B);
  color: #312E81; border-color: #FDE68A;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(253,230,138,.4);
}
.ac-bf-admin-btn svg { flex-shrink: 0; }
@media (max-width: 640px) {
  .ac-bf-admin-group { width: 100%; justify-content: center; }
  .ac-bf-admin-link, .ac-bf-admin-btn { font-size: 12px; padding: 8px 12px; }
}

/* ─────────────────────────────────────────────
   Blog minimal chrome — 블로그 모드 슬림 헤더
   (메인 메뉴 숨김, 로고 + 홈으로 + 전화만 노출)
   ───────────────────────────────────────────── */
.ac-blog-chrome {
  background: #fff;
  border-bottom: 1px solid var(--ac-line);
  position: sticky; top: 0; z-index: 50;
  box-shadow: 0 2px 12px rgba(15,23,42,.04);
}
.ac-blog-chrome-row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 14px; padding: 14px 15%;
  min-height: 58px;
}
@media (max-width: 1023px) { .ac-blog-chrome-row { padding: 12px 5%; } }
@media (max-width: 768px)  { .ac-blog-chrome-row { padding: 10px 14px; min-height: 52px; } }

.ac-blog-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.ac-blog-logo .ac-logo-text { color: var(--ac-ink); font-weight: 800; font-size: 17px; letter-spacing: -.01em; }
.ac-blog-chip {
  display: inline-flex; align-items: center;
  padding: 3px 10px; border-radius: 999px;
  background: linear-gradient(135deg, #1E3A8A, #4338CA); color: #FDE68A;
  font-size: 11px; font-weight: 800; letter-spacing: .08em;
  margin-left: 4px;
}
.ac-blog-chrome-nav { display: flex; align-items: center; gap: 14px; }
.ac-blog-back {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px; border-radius: 10px;
  font-size: 14px; font-weight: 700; color: var(--ac-brand);
  text-decoration: none; background: var(--ac-brand-50);
  border: 1px solid rgba(30,58,138,.14);
  transition: all .15s;
}
.ac-blog-back:hover { background: var(--ac-brand); color: #fff; }
@media (max-width: 640px) {
  .ac-blog-back { padding: 6px 12px; font-size: 12.5px; }
  .ac-blog-chip { display: none; }
}

/* ─────────────────────────────────────────────
   Blog (webzine) — 한문기 매거진 스킨
   기본 wz-* 마크업 위에 학원 브랜드 적용
   ───────────────────────────────────────────── */
.webzine-page { padding: 32px 0 64px; }
.webzine-page .container { padding: 0 15%; }
@media (max-width: 1023px) { .webzine-page .container { padding: 0 5%; } }
@media (max-width: 768px)  { .webzine-page .container { padding: 0 14px; } }

/* Masthead — 블로그 헤더 */
.wz-masthead {
  display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap;
  gap: 18px; padding: 28px 0 24px; margin-bottom: 28px;
  border-bottom: 2px solid var(--ac-line);
  position: relative;
}
.wz-masthead::after {
  content: ''; position: absolute; bottom: -2px; left: 0;
  width: 96px; height: 4px; background: linear-gradient(90deg, var(--ac-brand), #4338CA, #FDE68A);
  border-radius: 2px;
}
.wz-masthead-text .wz-kicker {
  font-size: 12.5px; font-weight: 800; letter-spacing: .22em;
  color: var(--ac-brand); margin-bottom: 6px;
}
.wz-title {
  font-size: clamp(28px, 4vw, 44px); font-weight: 900; line-height: 1.15;
  letter-spacing: -.02em; color: var(--ac-ink); margin: 0 0 6px;
}
.wz-masthead-text > p, .wz-masthead-text .wz-sub {
  font-size: 15px; color: var(--ac-muted); margin: 0; line-height: 1.6;
}
.wz-masthead-tools { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.wz-search input {
  padding: 11px 16px; border: 1px solid var(--ac-line); border-radius: 999px;
  font-size: 14px; width: 220px; background: #fff;
}
.wz-search input:focus { outline: 2px solid var(--ac-brand); outline-offset: 2px; }

/* HERO post — 매거진 형식의 큰 카드 */
.wz-hero {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 36px; align-items: stretch;
  background: linear-gradient(160deg, #fff 0%, #F8FAFC 100%);
  border: 1px solid var(--ac-line); border-radius: 22px;
  padding: 0; margin: 0 0 56px; overflow: hidden;
  box-shadow: 0 12px 32px rgba(15,23,42,.08);
  text-decoration: none; color: inherit;
  transition: transform .25s, box-shadow .25s;
}
.wz-hero:hover { transform: translateY(-4px); box-shadow: 0 22px 48px rgba(30,58,138,.12); }
.wz-hero-image {
  position: relative; aspect-ratio: 4/3; min-height: 260px;
  background: linear-gradient(135deg, #1E3A8A 0%, #312E81 50%, #4338CA 100%);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.wz-hero-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wz-hero-image:not(:has(img))::after {
  content: '한'; font-family: Georgia, serif; font-size: 200px; font-weight: 900;
  color: rgba(253,230,138,.18); letter-spacing: -.04em;
}
.wz-hero-badge {
  position: absolute; top: 18px; left: 18px;
  padding: 6px 14px; border-radius: 999px;
  background: linear-gradient(135deg, #FDE68A, #F59E0B); color: #7C2D12;
  font-size: 12px; font-weight: 900; letter-spacing: .12em;
  box-shadow: 0 6px 16px rgba(217,119,6,.3);
}
.wz-hero-body { padding: 40px 36px; display: flex; flex-direction: column; justify-content: center; }
.wz-hero-title {
  font-size: clamp(22px, 2.8vw, 30px); font-weight: 900; line-height: 1.25;
  letter-spacing: -.02em; color: var(--ac-ink); margin: 0 0 14px;
}
.wz-hero-excerpt { font-size: 15.5px; line-height: 1.75; color: var(--ac-muted); margin: 0 0 18px; }
.wz-hero .wz-tag-row { margin-bottom: 12px; }
.wz-hero .wz-meta {
  display: flex; gap: 10px; align-items: center;
  font-size: 13px; color: var(--ac-muted); font-weight: 600;
}
.wz-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--ac-muted); display: inline-block; }

/* SECTION head — 카테고리/태그 섹션 헤더 */
.wz-section { margin: 0 0 56px; }
.wz-section-head {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 22px; padding: 0 0 14px;
  border-bottom: 1px solid var(--ac-line);
}
.wz-section-head h2 {
  font-size: clamp(20px, 2.4vw, 26px); font-weight: 900; color: var(--ac-ink);
  margin: 0; letter-spacing: -.01em;
}
.wz-section-rule { flex: 1; height: 1px; background: var(--ac-line); }
.wz-section-head .wz-more {
  font-size: 13px; font-weight: 700; color: var(--ac-brand);
  text-decoration: none; display: inline-flex; align-items: center; gap: 4px;
}
.wz-section-head .wz-more:hover { text-decoration: underline; }

/* CARD GRID — 포스트 카드 */
.wz-grid {
  display: grid; gap: 24px;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1023px) { .wz-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .wz-grid { grid-template-columns: 1fr; } }

.wz-card {
  background: #fff; border: 1px solid var(--ac-line); border-radius: 18px;
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.wz-card:hover {
  transform: translateY(-4px); border-color: var(--ac-brand);
  box-shadow: 0 18px 36px rgba(30,58,138,.12);
}
.wz-card-link { color: inherit; text-decoration: none; display: contents; }
.wz-card-thumb {
  position: relative; aspect-ratio: 16/10;
  background: linear-gradient(160deg, #EEF2FF, #FAF5FF);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.wz-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wz-card-thumb:not(:has(img))::after {
  content: '한'; font-family: Georgia, serif; font-size: 96px; font-weight: 900;
  color: rgba(30,58,138,.10); letter-spacing: -.04em;
}
.wz-card-body { padding: 22px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.wz-card-body h3 {
  font-size: 17px; font-weight: 800; line-height: 1.4;
  letter-spacing: -.01em; color: var(--ac-ink); margin: 8px 0 10px;
}
.wz-card-excerpt {
  font-size: 14px; line-height: 1.65; color: var(--ac-muted); margin: 0 0 14px;
  display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3;
  -webkit-box-orient: vertical; overflow: hidden;
}
.wz-card .wz-meta-small {
  font-size: 12.5px; color: var(--ac-muted); display: flex; gap: 8px; align-items: center;
  margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--ac-line);
}

/* TAG pills — 카테고리/태그 */
.wz-tag-row { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 8px; }
.wz-tag {
  display: inline-block; padding: 4px 10px; border-radius: 999px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .02em;
  background: var(--ac-brand-50); color: var(--ac-brand-800);
  border: 1px solid rgba(30,58,138,.12);
  text-decoration: none;
}
.wz-tag:hover { background: var(--ac-brand); color: #fff; }
.wz-tag-row .wz-tag:nth-child(2n) {
  background: #FEF3C7; color: #92400E; border-color: rgba(217,119,6,.18);
}
.wz-tag-row .wz-tag:nth-child(2n):hover { background: #F59E0B; color: #fff; }
.wz-tag-row .wz-tag:nth-child(3n) {
  background: #CCFBF1; color: #0F766E; border-color: rgba(15,118,110,.18);
}
.wz-tag-row .wz-tag:nth-child(3n):hover { background: #0F766E; color: #fff; }

/* Post detail (view) page */
.wz-view-article {
  max-width: none; margin: 0;
}
.wz-view-article h2 {
  font-size: clamp(20px, 2.4vw, 26px); font-weight: 900; color: var(--ac-brand);
  margin: 32px 0 14px; padding-bottom: 10px; border-bottom: 2px solid #FDE68A;
}
.wz-view-article h3 {
  font-size: 17px; font-weight: 800; color: var(--ac-ink); margin: 22px 0 8px;
}
.wz-view-article p { font-size: 16px; line-height: 1.85; color: var(--ac-ink); margin: 12px 0; }
.wz-view-article p strong {
  color: var(--ac-brand); font-weight: 800;
  background: linear-gradient(180deg, transparent 60%, rgba(253,230,138,.5) 60%);
  padding: 0 2px;
}
.wz-view-article ul, .wz-view-article ol { font-size: 16px; line-height: 1.85; padding-left: 24px; }
.wz-view-article a { color: var(--ac-brand); font-weight: 700; }

/* MOBILE */
@media (max-width: 768px) {
  .wz-masthead { padding: 18px 0 16px; margin-bottom: 22px; }
  .wz-hero { grid-template-columns: 1fr; margin: 0 0 36px; }
  .wz-hero-image { aspect-ratio: 16/9; min-height: 0; }
  .wz-hero-image:not(:has(img))::after { font-size: 120px; }
  .wz-hero-body { padding: 24px 22px; }
  .wz-section { margin: 0 0 36px; }
  .wz-search input { width: 100%; }
  .wz-search { flex: 1 1 100%; }
}

/* ── Footer ── */
.ac-footer { margin-top: 56px; background: #0F172A; color: #CBD5E1; }
.ac-footer-grid { display: grid; gap: 28px; padding: 48px 15%; grid-template-columns: 1fr; }
@media (max-width: 1023px) { .ac-footer-grid { padding: 40px 5%; } }   /* 태블릿 */
@media (min-width: 900px) { .ac-footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.ac-footer-col h3 { color: #fff; font-size: 14px; margin: 0 0 10px; }
.ac-footer-col ul { list-style: none; padding: 0; margin: 0; }
.ac-footer-col ul li { padding: 4px 0; font-size: 13px; }
.ac-footer-col a { color: #CBD5E1; }
.ac-footer-col a:hover { color: #fff; }
.ac-footer-col a.current { color: #fff; font-weight: 600; }
.ac-footer-title { color: #fff; font-size: 18px; font-weight: 800; }
.ac-footer-tag { color: #94A3B8; font-size: 13px; margin: 4px 0 14px; }
.ac-footer-nap { font-size: 13px; }
.ac-footer-nap > div { display: flex; gap: 8px; padding: 3px 0; }
.ac-footer-nap dt { color: #94A3B8; min-width: 76px; }
.ac-footer-nap dd { margin: 0; }
.ac-footer-langs { columns: 2; column-gap: 14px; }
.ac-footer-base { border-top: 1px solid rgba(255,255,255,.06); padding: 14px 0; font-size: 12px; color: #64748B; text-align: center; }

/* ── Per-page tweaks for cleaner look ── */
.ac-page-hero { background: var(--ac-brand); color: #fff; padding: 36px 0; }
.ac-page-hero h1 { color: #fff; margin: 0; }
