:root {
  --primary: #1A3159;
  --accent: #4472B8;
  --ink: #1A1A1A;
  --sub: #6B7280;
  --line: #E5E5E5;
}
html { scroll-behavior: smooth; }
body {
  font-family: 'Pretendard Variable', Pretendard, -apple-system, sans-serif;
  color: var(--ink);
  word-break: keep-all;
  overflow-wrap: break-word;
}
.hairline { border-color: var(--line); }
.text-primary { color: var(--primary); }
.text-accent { color: var(--accent); }
.bg-primary { background-color: var(--primary); }
.bg-accent { background-color: var(--accent); }
.border-primary { border-color: var(--primary); }
.hero-shadow { text-shadow: 0 2px 10px rgba(0,0,0,.55); }
.max-w-prose-kr { max-width: 68ch; }

/* 카드 */
.card {
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  transition: transform .2s ease, box-shadow .2s ease;
}
.card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.card img { transition: transform .3s ease; }
.card:hover img { transform: scale(1.03); }

/* 그리드 고정 열 (auto-fit 금지 규칙) */
.grid-3fixed { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 768px) { .grid-3fixed { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
.grid-3only { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 768px) { .grid-3only { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }

/* 모바일 메뉴 */
#mobile-menu { max-height: 0; overflow: hidden; transition: max-height .25s ease; }
#mobile-menu.open { max-height: 320px; }

/* 플로팅 버튼 */
.floating-wrap { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 40; display: flex; flex-direction: column; gap: .6rem; }
.floating-btn {
  width: 52px; height: 52px; border-radius: 6px; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,.18); background: var(--primary); color: #fff;
}
#top-btn { opacity: 0; pointer-events: none; transition: opacity .2s ease; background: #fff; color: var(--primary); border: 1px solid var(--line); }
#top-btn.show { opacity: 1; pointer-events: auto; }

/* 라이트박스 */
#lightbox { position: fixed; inset: 0; z-index: 60; background: rgba(10,12,16,.9); display: none; align-items: center; justify-content: center; padding: 2rem; }
#lightbox.open { display: flex; }
#lightbox img { max-width: 100%; max-height: 85vh; border-radius: 4px; }
#lightbox .lb-close { position: absolute; top: 1.25rem; right: 1.5rem; color: #fff; font-size: 1.75rem; cursor: pointer; line-height: 1; }

/* FAQ */
.faq-item summary { cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item[open] .faq-arrow { transform: rotate(180deg); }
.faq-arrow { transition: transform .2s ease; }

/* eyebrow 영문 라벨 */
.eyebrow { letter-spacing: .18em; font-size: .72rem; color: var(--accent); font-weight: 700; }

/* 전화번호 마스킹 초기 표시 */
.tel-mask, .tel-mask-link { white-space: nowrap; }
