/* =====================================================================
   Premium Design System
   Final stylesheet loaded after all page styles.
   ===================================================================== */

:root {
  --navy: #07101f;
  --navy-mid: #101a2c;
  --navy-light: #18243a;
  --gold: #a77f36;
  --gold-light: #d2b16c;
  --gold-muted: rgba(167, 127, 54, 0.09);
  --text-primary: #11151c;
  --text-secondary: #4e5664;
  --text-muted: #727a87;
  --text-light: #9aa1ad;
  --bg-page: #f7f5f0;
  --bg-warm: #efebe2;
  --bg-card: #ffffff;
  --border-light: #e1ddd3;
  --border-strong: #c4b8a4;
  --border-subtle: #ece7dc;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 8px;
  --shadow-sm: 0 1px 2px rgba(7, 16, 31, 0.05);
  --shadow-md: 0 10px 24px rgba(7, 16, 31, 0.08);
  --shadow-lg: 0 24px 60px rgba(7, 16, 31, 0.12);
  --shadow-card: 0 18px 42px -28px rgba(7, 16, 31, 0.32);
  --max-width: 1160px;
  --measure: 62ch;
  --section-py: 112px;
  --section-py-compact: 72px;
  --hero-title: #ffffff;
  --hero-body: rgba(255, 255, 255, 0.82);
  --hero-muted: rgba(255, 255, 255, 0.64);
  --hero-accent: #d2b16c;
  --hero-accent-soft: #d2b16c;
  --hero-border: rgba(210, 177, 108, 0.22);
  --hero-border-strong: rgba(210, 177, 108, 0.34);
  --font-serif: var(--font-display);
}

html {
  background: var(--bg-page);
  font-size: 16px;
}

body {
  background: var(--bg-page) !important;
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.72;
}

body,
body * {
  letter-spacing: 0 !important;
}

/* letter-spacing 복원: 영문 대문자 키커·배지·번호 등 간격이 필요한 요소 */
body :is(
  .lp-kicker, .kicker,
  .svc-kicker, .ab-eyebrow, .sc-hero-badge,
  .contact-hero-kicker, .faq-hero-kicker,
  .legal-eyebrow, .hero-kicker,
  .lp-eyebrow, .ab-eyebrow-line,
  .section-kicker, .eyebrow, .ds-kicker
) {
  letter-spacing: 0.22em !important;
}

/* 대형 통계 숫자: 음수 letter-spacing 으로 더 단단하게 */
body :is(
  .lp-trust-numbers dt,
  .lp-trust-num,
  .svc-proof-num,
  .ab-stat-num,
  .stat-num,
  [class*="trust-num"],
  [class*="proof-num"],
  [class*="stat-num"]
) {
  letter-spacing: -0.04em !important;
}

/* 단위 표기 (년, 건, %, + 등) */
body :is(
  .lp-trust-numbers dt span,
  .lp-trust-numbers dt em,
  .trust-unit, .stat-unit, .proof-unit
) {
  letter-spacing: 0.02em !important;
}

/* 영문 순번 레이블 (STEP 01 등 — uppercase + tabular) */
body :is(
  .lp-timeline-num, .svc-timeline-num,
  .timeline-num, .step-num,
  .step-badge, .num-badge
) {
  letter-spacing: 0.18em !important;
}

/* FAQ 순번 배지 */
body :is(.lp-faq-badge, .svc-faq-badge) {
  letter-spacing: 0.12em !important;
}

body :is(label, .form-label, .input-label, .field-label) {
  letter-spacing: 0.04em !important;
}

body :is(p, li, dd, dt, td, th, label, input, textarea, select, button, a, span) {
  word-break: keep-all;
  overflow-wrap: break-word;
}

body :is(.container, .inner, .svc-container, .sc-container, .ksl-template-container, .cx-container) {
  width: min(100%, var(--max-width));
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* Header */
.site-header {
  height: var(--header-h);
  background: rgba(255, 255, 255, 0.94) !important;
  border-bottom: 1px solid rgba(7, 16, 31, 0.08) !important;
  box-shadow: 0 8px 24px rgba(7, 16, 31, 0.04);
}

.site-header.site-header--hero {
  background: rgba(7, 16, 31, 0.62) !important;
  border-bottom-color: rgba(210, 177, 108, 0.18) !important;
  box-shadow: none;
}

.site-header.is-scrolled,
.site-header.site-header--hero.is-scrolled {
  background: rgba(255, 255, 255, 0.98) !important;
  border-bottom-color: rgba(7, 16, 31, 0.10) !important;
  box-shadow: 0 8px 28px rgba(7, 16, 31, 0.08);
}

.site-header.site-header--hero.is-scrolled :is(.logo-main, .nav-link) {
  color: var(--navy) !important;
}

.site-header.site-header--hero.is-scrolled .logo-sub {
  color: var(--text-muted) !important;
}

.header-inner {
  padding-left: 24px;
  padding-right: 24px;
}

.logo-main {
  font-size: 17px;
  font-weight: 800;
  color: var(--navy);
}

.logo-sub {
  margin-top: 2px;
  font-size: 10px;
  color: var(--text-muted);
}

.nav-link {
  min-height: 40px;
  padding: 0 13px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 700;
  color: var(--text-secondary);
}

.nav-link:hover,
.nav-link.active {
  background: rgba(167, 127, 54, 0.09);
  color: var(--navy);
}

.nav-cta {
  min-height: 40px;
  padding: 0 18px;
  border-radius: 6px;
  background: var(--navy);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  box-shadow: none;
}

.site-header.site-header--hero .nav-cta {
  background: var(--gold-light);
  color: var(--navy);
}

/* Hero */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) {
  padding-top: 132px !important;
  padding-bottom: 92px !important;
  background: linear-gradient(180deg, #07101f 0%, #101a2c 100%) !important;
  border-bottom: 1px solid var(--hero-border) !important;
  color: var(--hero-title);
  text-align: left;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero)::before,
body :is(.lp-hero-bg) {
  display: none !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero)::after {
  height: 1px;
  background: var(--hero-border-strong) !important;
}

body :is(.faq-hero, .contact-hero, .hero-area, .sc-hero, .legal-hero) {
  text-align: center;
}

body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
  max-width: 13ch;
  margin-bottom: 22px;
  color: #fff !important;
  font-family: var(--font-display) !important;
  font-size: 52px !important;
  font-weight: 850;
  line-height: 1.12 !important;
  text-wrap: balance;
}

body.ksl-page-index .lp-hero-title {
  max-width: 13ch;
  font-size: 56px !important;
}

body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub, .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
  max-width: 58ch;
  margin-bottom: 34px;
  color: var(--hero-body) !important;
  font-size: 17px !important;
  line-height: 1.82 !important;
  text-wrap: pretty;
}

body :is(.lp-eyebrow, .svc-kicker, .ab-eyebrow, .sc-hero-badge, .contact-hero-kicker, .faq-hero-kicker, .legal-eyebrow, .hero-kicker) {
  margin-bottom: 24px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  color: var(--hero-accent-soft) !important;
  font-size: 12px;
  font-weight: 800;
  text-transform: none;
}

body :is(.lp-hero-inner, .svc-hero-grid) {
  gap: 64px;
  align-items: center;
}

body .svc-hero .svc-hero-desc strong {
  color: #fff !important;
}

/* Sections */
main.page-main :is(.lp-section, .svc-section, .ab-section, .legal-body, .case-detail-section, .sc-form-wrap) {
  padding-top: var(--section-py) !important;
  padding-bottom: var(--section-py) !important;
}

main.page-main :is(.lp-section-head, .svc-section-header, .ab-section-head, .faq-section-head, .cases-section-header) {
  max-width: 760px;
  margin-bottom: 48px;
}

main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title, .section-title, .faq-group-title, .cases-head-title, .legal-clause-title, .form-title, .page-title, .case-detail-title) {
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 36px !important;
  font-weight: 850;
  line-height: 1.2 !important;
  text-wrap: balance;
}

main.page-main :is(.lp-section-lead, .svc-section-desc, .ab-section-lead, .section-desc, .faq-group-desc, .cases-head-sub, .legal-p, .form-desc, .page-excerpt) {
  max-width: var(--measure);
  color: var(--text-secondary);
  font-size: 16px !important;
  line-height: 1.82 !important;
}

main.page-main :is(.lp-kicker, .svc-section-kicker, .ab-kicker, .section-kicker, .faq-group-kicker, .cases-head-kicker, .legal-toc-label) {
  color: var(--gold);
  font-size: 12px;
  font-weight: 850;
  text-transform: none;
}

/* Cards and panels */
main.page-main :is(
  .svc-card, .svc-compare-card, .svc-timeline-step, .svc-hero-card,
  .lp-problem-item, .lp-trust-card, .lp-card, .lp-faq-card, .lp-consult-form-wrap,
  .ab-card, .ab-profile-card, .cases-card, .case-detail-block,
  .faq-item, .svc-faq-item, .contact-card, .ctc-form-card, .legal-toc, .legal-article,
  .sc-card, .sc-contact, .complete-confirm, .info-card, .form-card, .wp-content
) {
  border: 1px solid var(--border-light) !important;
  border-radius: 8px !important;
  background: var(--bg-card);
  box-shadow: var(--shadow-card) !important;
}

main.page-main :is(.svc-card, .svc-compare-card, .svc-timeline-step, .lp-problem-item, .lp-trust-card, .cases-card, .faq-item, .svc-faq-item) {
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

main.page-main :is(.svc-card, .svc-compare-card, .lp-problem-item, .lp-trust-card, .cases-card, .faq-item, .svc-faq-item):hover {
  transform: translateY(-2px);
  border-color: rgba(167, 127, 54, 0.36) !important;
  box-shadow: 0 24px 56px -34px rgba(7, 16, 31, 0.34) !important;
}

main.page-main :is(.svc-card h3, .svc-card-title, .lp-card-title, .cases-card-title, .faq-question, .svc-faq-q, .case-detail-block-title) {
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 20px !important;
  font-weight: 850;
  line-height: 1.35 !important;
}

main.page-main :is(.svc-card p, .lp-card p, .cases-card p, .faq-answer, .svc-faq-a, .case-detail-block p) {
  color: var(--text-secondary);
  font-size: 15px;
  line-height: 1.78;
}

/* Buttons */
main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn, .sc-nav-btn, .sc-submit-btn, .cases-card-cta, .cta-btn) {
  min-height: 48px;
  border-radius: 6px !important;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.2;
}

main.page-main :is(.btn--primary, .lp-btn--primary, .ab-btn--primary, .svc-btn--primary, .sc-submit-btn, .contact-submit, .btn-primary) {
  border-color: var(--gold) !important;
  background: var(--gold) !important;
  color: var(--navy) !important;
}

main.page-main :is(.btn--primary, .lp-btn--primary, .ab-btn--primary, .svc-btn--primary, .sc-submit-btn, .contact-submit, .btn-primary):hover {
  background: var(--gold-light) !important;
  border-color: var(--gold-light) !important;
  color: var(--navy) !important;
}

main.page-main :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline, .svc-btn--ghost) {
  border-color: rgba(7, 16, 31, 0.22);
  background: transparent;
  color: var(--navy);
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline, .svc-btn--ghost) {
  border-color: rgba(255, 255, 255, 0.34) !important;
  color: #fff !important;
}

/* Forms */
main.page-main :is(input, select, textarea, .form-input, .form-select, .form-textarea, .sc-input, .desktop-consult-input) {
  min-height: 48px;
  border: 1px solid var(--border-light) !important;
  border-radius: 6px !important;
  background: #fff;
  color: var(--text-primary);
  font-size: 16px;
  line-height: 1.4;
}

main.page-main :is(input, select, textarea, .form-input, .form-select, .form-textarea, .sc-input, .desktop-consult-input):focus {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(167, 127, 54, 0.16) !important;
  outline: none;
}

/* Service pages */
.svc-hero-card {
  background: #0a1425 !important;
  border-color: rgba(210, 177, 108, 0.30) !important;
  color: #fff;
}

.svc-proof {
  border-color: rgba(210, 177, 108, 0.24);
}

.svc-proof-card {
  border-right-color: rgba(210, 177, 108, 0.18);
}

.svc-stepnav-wrap {
  background: rgba(247, 245, 240, 0.94);
  border-bottom: 1px solid var(--border-light);
}

.svc-stepnav {
  border-radius: 8px;
  border-color: var(--border-light);
  background: #fff;
}

.svc-stepnav-link.is-active {
  background: var(--navy) !important;
  color: #fff !important;
}

.svc-grid,
.cases-grid,
.lp-problem-list,
.lp-trust-list,
.info-grid {
  gap: 24px !important;
}

/* Legal, FAQ, cases, selfcheck */
.legal-body-inner {
  gap: 48px;
}

.legal-toc {
  top: calc(var(--header-h) + 24px);
  padding: 22px;
}

.legal-article {
  padding: 36px;
}

.sc-card {
  margin-top: -56px;
}

.sc-option {
  min-height: 52px;
  border-radius: 6px !important;
}

.sc-mode-tabs,
.sc-progress {
  border-radius: 8px;
}

.case-detail-head {
  background: var(--bg-page);
}

.case-detail-outcome {
  border-radius: 8px !important;
}

/* Footer and fixed CTA */
.site-footer {
  background: #07101f !important;
  color: rgba(255, 255, 255, 0.76);
}

.footer-logo-main,
.site-footer h4 {
  color: #fff;
}

.site-footer a:hover {
  color: var(--gold-light);
}

.fixed-cta-bar {
  border-top: 1px solid rgba(7, 16, 31, 0.10);
  background: rgba(255, 255, 255, 0.96);
}

.fixed-cta-bar .cta-btn.primary,
.fixed-cta-bar .cta-btn:hover {
  background: var(--navy);
  color: #fff;
}

/* Desktop */
@media (min-width: 993px) {
  body :is(.svc-hero-grid, .lp-hero-inner) {
    grid-template-columns: minmax(0, 1.16fr) minmax(320px, 0.84fr);
  }

  .desktop-consult-bar {
    background: rgba(7, 16, 31, 0.96);
    color: #fff;
    border-top: 1px solid rgba(210, 177, 108, 0.18);
  }

  .desktop-consult-input {
    background: rgba(255, 255, 255, 0.98);
  }
}

/* Tablet */
@media (max-width: 992px) {
  :root {
    --section-py: 84px;
    --section-py-compact: 56px;
  }

  body :is(.svc-hero-grid, .lp-hero-inner, .legal-body-inner, .case-detail-grid) {
    grid-template-columns: 1fr !important;
  }

  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    max-width: 14ch;
    font-size: 42px !important;
  }

  .svc-hero-card,
  .lp-hero-credentials {
    max-width: 640px;
  }
}

/* Mobile */
@media (max-width: 768px) {
  :root {
    --header-h: 64px;
    --section-py: 64px;
    --section-py-compact: 44px;
  }

  body {
    font-size: 16px;
    line-height: 1.76;
  }

  body :is(.container, .inner, .svc-container, .sc-container, .ksl-template-container, .cx-container) {
    padding-left: 18px;
    padding-right: 18px;
  }

  .header-inner {
    padding-left: 18px;
    padding-right: 18px;
  }

  .logo-img {
    height: 28px;
  }

  .logo-main {
    font-size: 15px;
  }

  .logo-sub {
    display: none;
  }

  .menu-toggle {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: rgba(7, 16, 31, 0.06);
  }

  .site-header.site-header--hero .menu-toggle {
    background: rgba(255, 255, 255, 0.08);
  }

  .site-header .gnb {
    width: min(360px, 92vw);
    padding: 78px 18px 24px !important;
    background: #fff;
  }

  .site-header .nav-list {
    gap: 6px;
  }

  .site-header .nav-link {
    width: 100%;
    min-height: 48px;
    justify-content: flex-start;
    padding: 0 14px;
    color: var(--navy) !important;
    font-size: 16px;
  }

  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) {
    padding-top: 104px !important;
    padding-bottom: 58px !important;
  }

  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    max-width: 13ch;
    margin-bottom: 18px;
    font-size: 32px !important;
    line-height: 1.18 !important;
  }

  body.ksl-page-index .lp-hero-title {
    font-size: 34px !important;
  }

  body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub, .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
    max-width: 34ch;
    margin-bottom: 28px;
    font-size: 16px !important;
    line-height: 1.78 !important;
  }

  body :is(.lp-eyebrow, .svc-kicker, .ab-eyebrow, .sc-hero-badge, .contact-hero-kicker, .faq-hero-kicker, .legal-eyebrow, .hero-kicker) {
    margin-bottom: 18px;
    font-size: 12px;
    white-space: normal;
  }

  body :is(.lp-hero-cta, .ab-hero-cta, .svc-actions, .contact-hero-actions, .sc-hero-cta) {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  body :is(.lp-hero-cta, .ab-hero-cta, .svc-actions, .contact-hero-actions, .sc-hero-cta) > * {
    width: 100%;
  }

  main.page-main :is(.lp-section, .svc-section, .ab-section, .legal-body, .case-detail-section, .sc-form-wrap) {
    padding-top: var(--section-py) !important;
    padding-bottom: var(--section-py) !important;
  }

  main.page-main :is(.lp-section-head, .svc-section-header, .ab-section-head, .faq-section-head, .cases-section-header) {
    margin-bottom: 32px;
  }

  main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title, .section-title, .faq-group-title, .cases-head-title, .legal-clause-title, .form-title, .page-title, .case-detail-title) {
    font-size: 26px !important;
    line-height: 1.25 !important;
  }

  main.page-main :is(.svc-card, .svc-compare-card, .svc-timeline-step, .svc-hero-card, .lp-consult-form-wrap, .legal-article, .sc-card, .sc-contact) {
    padding: 22px 18px !important;
  }

  .svc-proof {
    grid-template-columns: 1fr !important;
  }

  .svc-proof-card,
  .svc-proof-card:not(:first-child) {
    padding: 18px 0 !important;
    border-right: 0;
    border-bottom: 1px solid rgba(210, 177, 108, 0.16);
  }

  .svc-proof-card:last-child {
    border-bottom: 0;
  }

  .sc-options,
  .sc-options--grid,
  .sc-options--4,
  .contact-fields,
  .ctc-form-grid,
  .form-grid-two,
  .sc-contact-fields,
  .lp-form-row--two {
    grid-template-columns: 1fr !important;
  }

  .legal-toc {
    position: static;
  }

  .fixed-cta-bar .cta-label-sub {
    display: none;
  }
}

@media (max-width: 420px) {
  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: 29px !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title, .section-title, .faq-group-title, .cases-head-title, .legal-clause-title, .form-title, .page-title, .case-detail-title) {
    font-size: 24px !important;
  }

  main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn, .sc-nav-btn, .sc-submit-btn, .cases-card-cta, .cta-btn) {
    font-size: 14px;
  }
}

/* =====================================================================
   Contact Page Recovery
   The contact template uses .ctc-* classes; define the full layout here.
   ===================================================================== */

.svc-page--contact {
  background: var(--bg-page);
}

.svc-page--contact .ctc-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.72fr);
  gap: clamp(32px, 6vw, 72px);
  align-items: center;
}

.svc-page--contact .ctc-hero-copy {
  min-width: 0;
}

.svc-page--contact .ctc-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin: 0;
  padding: 0;
}

.svc-page--contact .ctc-hero-trust li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  font-weight: 650;
}

.svc-page--contact .ctc-hero-trust i {
  color: var(--gold-light);
}

.svc-page--contact .ctc-hero-quick {
  padding: 32px;
  border: 1px solid rgba(210, 177, 108, 0.28);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: 0 24px 56px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(10px);
}

.svc-page--contact .ctc-hero-quick-kicker {
  display: block;
  margin-bottom: 12px;
  color: var(--gold-light);
  font-size: 12px;
  font-weight: 850;
}

.svc-page--contact .ctc-hero-quick-lead {
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
  line-height: 1.72;
}

.svc-page--contact .ctc-hero-quick-lead strong {
  color: #fff;
}

.svc-page--contact .ctc-hero-phone {
  display: grid;
  gap: 5px;
  padding: 18px;
  border-radius: 8px;
  background: var(--gold);
  color: var(--navy);
}

.svc-page--contact .ctc-hero-phone-label,
.svc-page--contact .ctc-hero-phone-hour {
  font-size: 13px;
  font-weight: 750;
}

.svc-page--contact .ctc-hero-phone-num {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 900;
  line-height: 1.1;
}

.svc-page--contact .ctc-hero-alt {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.svc-page--contact .ctc-hero-alt-link {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 16px;
  gap: 10px;
  align-items: center;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 14px;
  font-weight: 700;
}

.svc-page--contact .ctc-hero-alt-link:hover {
  border-color: rgba(210, 177, 108, 0.46);
  color: #fff;
}

.svc-page--contact .ctc-channels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.svc-page--contact .ctc-channel {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  padding: 24px;
  border: 1px solid var(--border-light);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-card);
}

.svc-page--contact .ctc-channel--primary {
  border-color: rgba(167, 127, 54, 0.40);
  box-shadow: 0 24px 56px -34px rgba(7, 16, 31, 0.36);
}

.svc-page--contact .ctc-channel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
}

.svc-page--contact .ctc-channel-num {
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
}

.svc-page--contact .ctc-channel-icon {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--navy);
  color: var(--gold-light);
}

.svc-page--contact .ctc-channel-title {
  margin: 0 0 10px;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 850;
  line-height: 1.32;
}

.svc-page--contact .ctc-channel-desc {
  margin: 0 0 18px;
  color: var(--text-secondary);
  font-size: 15px;
  line-height: 1.78;
}

.svc-page--contact .ctc-channel-meta {
  display: grid;
  gap: 8px;
  margin: auto 0 18px;
  padding-top: 16px;
  border-top: 1px solid var(--border-subtle);
}

.svc-page--contact .ctc-channel-meta div {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 10px;
}

.svc-page--contact .ctc-channel-meta dt {
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 800;
}

.svc-page--contact .ctc-channel-meta dd {
  margin: 0;
  color: var(--text-primary);
  font-size: 14px;
  font-weight: 700;
}

.svc-page--contact .ctc-channel-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--gold);
  font-size: 14px;
  font-weight: 850;
}

.svc-page--contact .ctc-form-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(28px, 5vw, 56px);
  align-items: start;
}

.svc-page--contact .ctc-form-aside,
.svc-page--contact .ctc-form-wrap {
  border: 1px solid var(--border-light);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-card);
}

.svc-page--contact .ctc-form-aside {
  position: sticky;
  top: calc(var(--header-h) + 28px);
  padding: 28px;
}

.svc-page--contact .ctc-form-title {
  margin: 0 0 14px;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 850;
  line-height: 1.2;
}

.svc-page--contact .ctc-form-lead {
  margin: 0 0 26px;
  color: var(--text-secondary);
  font-size: 15px;
  line-height: 1.82;
}

.svc-page--contact .ctc-process {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 0;
}

.svc-page--contact .ctc-process li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.svc-page--contact .ctc-process-num {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--navy);
  color: var(--gold-light);
  font-size: 12px;
  font-weight: 900;
}

.svc-page--contact .ctc-process strong,
.svc-page--contact .ctc-process span {
  display: block;
}

.svc-page--contact .ctc-process strong {
  color: var(--navy);
  font-size: 15px;
  font-weight: 850;
}

.svc-page--contact .ctc-process span {
  margin-top: 4px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.65;
}

.svc-page--contact .ctc-form-aside-note {
  display: flex;
  gap: 10px;
  margin-top: 24px;
  padding: 14px;
  border-radius: 8px;
  background: var(--gold-muted);
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.65;
}

.svc-page--contact .ctc-form-aside-note i {
  margin-top: 3px;
  color: var(--gold);
}

.svc-page--contact .ctc-form-wrap {
  padding: 32px;
}

.svc-page--contact .ctc-notice {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
  padding: 14px 16px;
  border: 1px solid rgba(167, 127, 54, 0.28);
  border-radius: 8px;
  background: var(--gold-muted);
  color: var(--navy);
  font-size: 14px;
  font-weight: 700;
}

.svc-page--contact .ctc-form {
  display: grid;
  gap: 26px;
  max-width: none;
}

.svc-page--contact .ctc-form-group {
  display: grid;
  gap: 18px;
}

.svc-page--contact .ctc-form-group-title {
  margin: 0;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-subtle);
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 850;
}

.svc-page--contact .ctc-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.svc-page--contact .ctc-field {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.svc-page--contact .ctc-label {
  display: grid;
  gap: 4px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 850;
}

.svc-page--contact .ctc-label small,
.svc-page--contact .ctc-label-hint {
  color: var(--text-muted);
  font-size: 12.5px;
  font-weight: 600;
}

.svc-page--contact .ctc-req {
  color: var(--gold);
}

.svc-page--contact .ctc-input {
  width: 100%;
}

.svc-page--contact .ctc-textarea {
  min-height: 168px;
  padding-top: 14px;
  resize: vertical;
}

.svc-page--contact .ctc-input--pw {
  max-width: 220px;
}

.svc-page--contact .ctc-privacy {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid var(--border-light);
  border-radius: 8px;
  background: var(--bg-warm);
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.6;
}

.svc-page--contact .ctc-privacy input {
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin-top: 3px;
  flex: 0 0 auto;
}

.svc-page--contact .ctc-privacy-detail {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.72;
}

.svc-page--contact .ctc-privacy-detail summary {
  cursor: pointer;
  color: var(--navy);
  font-weight: 800;
}

.svc-page--contact .ctc-privacy-detail div {
  margin-top: 10px;
  padding: 14px;
  border-radius: 8px;
  background: var(--bg-warm);
}

.svc-page--contact .ctc-submit-row {
  display: grid;
  gap: 12px;
}

.svc-page--contact .ctc-submit {
  width: 100%;
  justify-content: center;
}

.svc-page--contact .ctc-submit-note {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.7;
}

.svc-page--contact .ctc-submit-note a {
  color: var(--gold);
  font-weight: 800;
}

.svc-page--contact .ctc-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 28px;
  border: 1px solid var(--border-light);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-card);
}

.svc-page--contact .ctc-summary-list {
  display: grid;
  gap: 14px;
  margin: 0;
}

.svc-page--contact .ctc-summary-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.svc-page--contact .ctc-summary-row dt {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--navy);
  font-size: 14px;
  font-weight: 850;
}

.svc-page--contact .ctc-summary-row dt i {
  color: var(--gold);
}

.svc-page--contact .ctc-summary-row dd {
  margin: 0;
  color: var(--text-primary);
  font-size: 15px;
  line-height: 1.72;
}

.svc-page--contact .ctc-summary-phone {
  color: var(--navy);
  font-weight: 900;
}

.svc-page--contact .ctc-summary-sub {
  color: var(--text-muted);
}

.svc-page--contact .ctc-summary-sub a {
  color: var(--gold);
  font-weight: 800;
}

.svc-page--contact .ctc-summary-cta {
  display: grid;
  gap: 10px;
  min-width: 180px;
}

.svc-page--contact .ctc-board {
  padding: 26px;
  overflow-x: auto;
}

.svc-page--contact .board-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.svc-page--contact .board-table th,
.svc-page--contact .board-table td {
  padding: 14px 12px;
  border-bottom: 1px solid var(--border-subtle);
  text-align: left;
  vertical-align: middle;
  font-size: 14px;
}

.svc-page--contact .board-table th {
  color: #fff;
  font-weight: 850;
}

.svc-page--contact .board-table td {
  color: var(--text-secondary);
}

.svc-page--contact .board-mobile {
  display: none;
}

@media (max-width: 992px) {
  .svc-page--contact .ctc-hero-inner,
  .svc-page--contact .ctc-form-layout,
  .svc-page--contact .ctc-summary {
    grid-template-columns: 1fr;
  }

  .svc-page--contact .ctc-channels {
    grid-template-columns: 1fr;
  }

  .svc-page--contact .ctc-form-aside {
    position: static;
  }

  .svc-page--contact .ctc-summary-cta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 0;
  }
}

@media (max-width: 768px) {
  .svc-page--contact .ctc-hero-inner {
    gap: 24px;
  }

  .svc-page--contact .ctc-hero-quick,
  .svc-page--contact .ctc-form-aside,
  .svc-page--contact .ctc-form-wrap,
  .svc-page--contact .ctc-summary,
  .svc-page--contact .ctc-board {
    padding: 20px 16px !important;
  }

  .svc-page--contact .ctc-row,
  .svc-page--contact .ctc-summary-row,
  .svc-page--contact .ctc-summary-cta {
    grid-template-columns: 1fr !important;
  }

  .svc-page--contact .ctc-input--pw {
    max-width: none;
  }

  .svc-page--contact .board-table {
    display: none;
  }

  .svc-page--contact .board-mobile {
    display: grid;
    gap: 10px;
  }
}

@media (max-width: 420px) {
  .svc-page--contact .ctc-channel,
  .svc-page--contact .ctc-hero-quick,
  .svc-page--contact .ctc-form-aside,
  .svc-page--contact .ctc-form-wrap,
  .svc-page--contact .ctc-summary,
  .svc-page--contact .ctc-board {
    border-radius: 8px !important;
  }

  .svc-page--contact .ctc-hero-phone-num {
    font-size: 24px;
  }
}


/* =====================================================================
   ★ DESIGN & ANIMATION ENHANCEMENT LAYER
   모든 페이지 체류 시간 증대 + 가독성 개선 + 마이크로 인터랙션
   ===================================================================== */

/* ── @keyframe 라이브러리 ──────────────────────────────── */
@keyframes kslFadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes kslFadeInLeft {
  from { opacity: 0; transform: translateX(-26px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes kslFadeInRight {
  from { opacity: 0; transform: translateX(26px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes kslScaleIn {
  from { opacity: 0; transform: scale(0.94); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes kslFloat {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-7px); }
}
@keyframes kslGoldPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(167, 127, 54, 0); }
  50%       { box-shadow: 0 0 0 8px rgba(167, 127, 54, 0.10); }
}
@keyframes kslLineGrow {
  from { transform: scaleX(0); transform-origin: left; }
  to   { transform: scaleX(1); transform-origin: left; }
}
@keyframes kslGoldShimmer {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}
@keyframes kslCounterPop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.06); }
  100% { transform: scale(1); }
}
@keyframes kslScrollBar {
  from { width: 0%; }
  to   { width: var(--scroll-pct, 0%); }
}

/* ── Reduced-motion safety ────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .ksl-auto-fade,
  .ksl-reveal-left,
  .ksl-reveal-right,
  .ksl-reveal-scale,
  .ksl-reveal-up {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* ── Extended stagger system (children 1 ~ 16) ─────────
   common.css の stagger-visible は nth-child(5) まで.
   ここで 6 ~ 16 を補完する.
   ─────────────────────────────────────────────────────── */
[data-stagger].stagger-visible > *:nth-child(6)  { opacity: 1; transform: none; transition-delay: 430ms; }
[data-stagger].stagger-visible > *:nth-child(7)  { opacity: 1; transform: none; transition-delay: 494ms; }
[data-stagger].stagger-visible > *:nth-child(8)  { opacity: 1; transform: none; transition-delay: 554ms; }
[data-stagger].stagger-visible > *:nth-child(9)  { opacity: 1; transform: none; transition-delay: 610ms; }
[data-stagger].stagger-visible > *:nth-child(10) { opacity: 1; transform: none; transition-delay: 662ms; }
[data-stagger].stagger-visible > *:nth-child(11) { opacity: 1; transform: none; transition-delay: 710ms; }
[data-stagger].stagger-visible > *:nth-child(12) { opacity: 1; transform: none; transition-delay: 754ms; }
[data-stagger].stagger-visible > *:nth-child(13) { opacity: 1; transform: none; transition-delay: 794ms; }
[data-stagger].stagger-visible > *:nth-child(14) { opacity: 1; transform: none; transition-delay: 830ms; }
[data-stagger].stagger-visible > *:nth-child(15) { opacity: 1; transform: none; transition-delay: 862ms; }
[data-stagger].stagger-visible > *:nth-child(16) { opacity: 1; transform: none; transition-delay: 890ms; }

/* ── 히어로 헤드 전용: 더 긴 순차 딜레이로 극적인 등장 ──── */
.lp-hero-head[data-stagger].stagger-visible > *:nth-child(1) { transition-delay: 40ms; }
.lp-hero-head[data-stagger].stagger-visible > *:nth-child(2) { transition-delay: 210ms; }
.lp-hero-head[data-stagger].stagger-visible > *:nth-child(3) { transition-delay: 360ms; }
.lp-hero-head[data-stagger].stagger-visible > *:nth-child(4) { transition-delay: 500ms; }
.lp-hero-head[data-stagger] > * {
  transition-duration: 0.78s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ── JS 자동 적용 reveal 클래스들 ────────────────────────
   JS 에서 IntersectionObserver 가 .is-visible 을 추가한다.
   ─────────────────────────────────────────────────────── */
.ksl-auto-fade {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity  0.78s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.78s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.ksl-auto-fade.is-visible { opacity: 1; transform: none; }

.ksl-reveal-left {
  opacity: 0;
  transform: translateX(-30px);
  transition:
    opacity  0.68s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.68s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.ksl-reveal-left.is-visible { opacity: 1; transform: none; }

.ksl-reveal-right {
  opacity: 0;
  transform: translateX(30px);
  transition:
    opacity  0.68s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.68s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.ksl-reveal-right.is-visible { opacity: 1; transform: none; }

.ksl-reveal-scale {
  opacity: 0;
  transform: scale(0.96);
  transition:
    opacity  0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.ksl-reveal-scale.is-visible { opacity: 1; transform: scale(1); }

/* 딜레이 유틸리티 (JS 또는 HTML 에서 직접 사용 가능) */
.ksl-d1 { transition-delay:  80ms !important; }
.ksl-d2 { transition-delay: 160ms !important; }
.ksl-d3 { transition-delay: 240ms !important; }
.ksl-d4 { transition-delay: 320ms !important; }
.ksl-d5 { transition-delay: 400ms !important; }

/* ── 스크롤 진행 바 (JS 에서 동적으로 width 업데이트) ─── */
.ksl-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  width: 0%;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-light) 100%);
  z-index: 10000;
  pointer-events: none;
  transition: width 0.08s linear;
}

/* ── Hero 배경 강화 (골드 레이디얼 오버레이 추가) ─────── */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) {
  background:
    radial-gradient(ellipse 900px 450px at 88% 15%, rgba(167, 127, 54, 0.13) 0%, transparent 65%),
    radial-gradient(ellipse 600px 400px at 8%  90%, rgba(167, 127, 54, 0.06) 0%, transparent 60%),
    linear-gradient(180deg, #07101f 0%, #101a2c 100%) !important;
}

/* ── 섹션 타이틀 em 골드 강조 ─────────────────────────── */
main.page-main :is(
  .lp-section-title,
  .svc-section-title,
  .ab-section-title,
  .section-title,
  .ds-title,
  .page-title,
  .legal-clause-title,
  .case-detail-title
) em {
  font-style: normal;
  color: var(--gold);
}

/* ── 섹션 헤드 kicker 앞 골드 바 애니메이션 ───────────── */
main.page-main :is(
  .lp-kicker,
  .svc-section-kicker,
  .ab-kicker,
  .section-kicker,
  .ds-kicker
)::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1.5px;
  background: currentColor;
  vertical-align: middle;
  transform-origin: left center;
  transform: scaleX(0);
  animation: kslLineGrow 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.25s forwards;
}

/* stagger-visible 일 때 kicker가 부모 내에 있으면 바로 실행 */
.stagger-visible :is(.lp-kicker, .svc-section-kicker, .ab-kicker, .section-kicker, .ds-kicker)::before,
.is-visible :is(.lp-kicker, .svc-section-kicker, .ab-kicker, .section-kicker, .ds-kicker)::before {
  animation: kslLineGrow 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.15s forwards;
}

/* ── fade-section 트랜지션 강화 ─────────────────────────── */
.fade-section {
  transition-duration: 0.82s !important;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important;
}

/* ── 카드 호버 강화 ─────────────────────────────────────── */
main.page-main :is(
  .svc-card,
  .lp-problem-item,
  .lp-trust-card,
  .lp-card,
  .cases-card,
  .ab-card,
  .ab-profile-card,
  .info-card,
  .svc-compare-card
) {
  transition:
    border-color 0.28s ease,
    box-shadow   0.28s ease,
    transform    0.28s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

main.page-main :is(
  .svc-card,
  .lp-problem-item,
  .lp-trust-card,
  .lp-card,
  .cases-card,
  .ab-card,
  .info-card,
  .svc-compare-card
):hover {
  transform: translateY(-5px) !important;
  border-color: rgba(167, 127, 54, 0.40) !important;
  box-shadow:
    0 24px 56px -28px rgba(7, 16, 31, 0.32),
    0 0 0 1px rgba(167, 127, 54, 0.14) !important;
}

/* ── CTA 버튼 골드 펄스 (다크 히어로 내 primary 버튼만) ── */
body :is(.lp-hero, .ab-hero, .svc-hero) :is(
  .btn--primary,
  .lp-btn--primary,
  .ab-btn--primary,
  .svc-btn--primary
) {
  animation: kslGoldPulse 3s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  body :is(.lp-hero, .ab-hero, .svc-hero) :is(
    .btn--primary, .lp-btn--primary, .ab-btn--primary, .svc-btn--primary
  ) { animation: none; }
}

/* ── FAQ 애니메이션 강화 ─────────────────────────────────── */
.faq-answer {
  overflow: hidden;
  opacity: 0;
  transition:
    max-height 0.46s cubic-bezier(0.22, 1, 0.36, 1),
    opacity    0.34s ease;
}
.faq-item.active .faq-answer { opacity: 1; }

/* svc-faq smooth open/close */
.svc-faq-a {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.44s cubic-bezier(0.22, 1, 0.36, 1),
    opacity    0.3s ease;
  opacity: 0;
}
.svc-faq-item [aria-expanded="true"] ~ .svc-faq-a {
  max-height: 600px;
  opacity: 1;
}

/* 홈 페이지 FAQ: home.css 의 display:none/block 방식을 max-height 전환으로 교체
   home.css specificity (0,2,0) 를 (0,3,1) 로 이김 */
body .lp-faq .svc-faq-a {
  display: block !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  transition:
    max-height 0.46s cubic-bezier(0.22, 1, 0.36, 1),
    opacity    0.32s ease,
    padding    0.3s ease;
}
body .lp-faq .svc-faq-q[aria-expanded="true"] + .svc-faq-a {
  max-height: 600px !important;
  opacity: 1;
  padding-bottom: 28px !important;
}

/* ── 타임라인 / 프로세스 순차 등장 ─────────────────────── */
.svc-timeline[data-stagger] > .svc-timeline-step,
.cc-steps[data-stagger] > .cc-step,
.process-steps[data-stagger] > .process-step {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity  0.58s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
}
.svc-timeline[data-stagger].stagger-visible > .svc-timeline-step,
.cc-steps[data-stagger].stagger-visible > .cc-step,
.process-steps[data-stagger].stagger-visible > .process-step {
  opacity: 1;
  transform: none;
}

/* ── 통계 숫자 하이라이트 ───────────────────────────────── */
.svc-proof-num,
.lp-trust-num,
[class*="stat-num"],
[class*="proof-num"],
[class*="trust-num"] {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
  letter-spacing: -0.04em !important;
}

/* 카운터 팝 애니메이션 (JS가 .counting 클래스 추가) */
.ksl-counter.counting {
  animation: kslCounterPop 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  color: var(--gold) !important;
}

/* ── 섹션 구분선 골드 그라디언트 ───────────────────────── */
.ksl-section-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 40%, var(--gold) 60%, transparent 100%);
  opacity: 0.22;
  margin: 0 auto;
}

/* ── 링크 호버 밑줄 애니메이션 ─────────────────────────── */
main.page-main .footer-links a,
main.page-main .footer-quick a {
  position: relative;
}

/* ── 섹션 헤드 최대 너비 통일 ───────────────────────────── */
main.page-main :is(
  .lp-section-head,
  .svc-section-header,
  .ab-section-head,
  .faq-section-head,
  .cases-section-header
) {
  max-width: 720px;
}

/* ── 텍스트 가독성 개선 ─────────────────────────────────── */
main.page-main :is(p, li, dd, dt, td, th) {
  word-break: keep-all;
  overflow-wrap: break-word;
  word-spacing: 0.02em;
}

/* 본문 단락 최대 너비 */
main.page-main p:not([class]) {
  max-width: 68ch;
}

/* em / strong 스타일 */
main.page-main :is(p, li) strong {
  font-weight: 800;
  color: var(--navy);
}
main.page-main :is(p, li) em {
  font-style: normal;
  color: var(--gold);
  font-weight: 700;
}

/* ── 숫자/통계 강조 표시 (JS 카운터 대상) ──────────────── */
.ksl-counter {
  display: inline-block;
  font-variant-numeric: tabular-nums;
  transition: color 0.3s ease;
}

/* ── 스크롤업 버튼 애니메이션 ───────────────────────────── */
[data-ksl-top-button],
#toTopBtn,
#topButton {
  transition:
    opacity    0.3s ease,
    transform  0.3s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.22s ease;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
}
[data-ksl-top-button].is-visible,
#toTopBtn.is-visible,
#topButton.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* ── 모바일 최적화 ──────────────────────────────────────── */
@media (max-width: 768px) {
  /* 터치 타겟 크기 향상 */
  .faq-question,
  .svc-faq-q,
  .acc-btn {
    min-height: 56px !important;
    padding: 16px 18px !important;
  }

  /* 모바일 본문 크기 / 줄간격 */
  main.page-main p,
  main.page-main li,
  main.page-main dd {
    font-size: 15px !important;
    line-height: 1.84 !important;
  }

  /* 카드 간격 통일 */
  main.page-main :is(
    .svc-grid,
    .cases-grid,
    .info-grid,
    .lp-trust-list,
    .lp-problem-list
  ) {
    gap: 14px !important;
  }

  /* 섹션 헤드 마진 조정 */
  main.page-main :is(
    .lp-section-head,
    .svc-section-header,
    .ab-section-head
  ) {
    margin-bottom: 28px !important;
  }

  /* reveal 이동 거리 축소 (모바일에서 부드럽게) */
  .ksl-auto-fade  { transform: translateY(14px); }
  .ksl-reveal-left  { transform: translateX(-16px); }
  .ksl-reveal-right { transform: translateX(16px); }

  /* 통계 숫자 크기 */
  .svc-proof-num {
    font-size: 2.2rem !important;
    line-height: 1.1 !important;
  }

  /* 히어로 리드 가독성 */
  body :is(.lp-hero-lead, .svc-hero-desc, .ab-hero-lead, .hero-desc) {
    font-size: 15px !important;
    line-height: 1.84 !important;
    max-width: 36ch !important;
  }

  /* 고정 CTA 바 패딩 */
  .fixed-cta-bar {
    padding: 10px 16px !important;
  }
}

@media (max-width: 480px) {
  /* 아주 작은 화면 — 섹션 타이틀 */
  main.page-main :is(
    .lp-section-title,
    .svc-section-title,
    .ab-section-title,
    .section-title,
    .page-title
  ) {
    font-size: 21px !important;
    line-height: 1.32 !important;
  }

  /* 히어로 타이틀 */
  body :is(
    .lp-hero-title,
    .ab-hero-name,
    .svc-hero-title,
    .sc-hero-title,
    .contact-hero-title,
    .faq-hero-title,
    .legal-title,
    .hero-title
  ) {
    font-size: 27px !important;
    line-height: 1.22 !important;
    word-break: keep-all !important;
  }

  /* 모바일 내 버튼 패딩 */
  main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn) {
    padding: 13px 20px !important;
    font-size: 14px !important;
  }

  /* Contact 폼 패딩 */
  .svc-page--contact .ctc-form-wrap,
  .svc-page--contact .ctc-form-aside {
    padding: 16px 14px !important;
  }
}

/* ── 데스크탑 강화 ──────────────────────────────────────── */
@media (min-width: 1025px) {
  /* 섹션 타이틀 반응형 클램프 개선 */
  main.page-main :is(
    .lp-section-title,
    .svc-section-title,
    .ab-section-title,
    .section-title
  ) {
    font-size: clamp(28px, 2.8vw, 40px) !important;
    line-height: 1.22 !important;
  }

  /* 카드 호버 시 약간의 스케일 */
  main.page-main :is(
    .svc-card, .lp-trust-card, .cases-card, .ab-card
  ):hover {
    transform: translateY(-6px) scale(1.008) !important;
  }
}

/* ── about/profile 섹션 플로팅 이미지 ───────────────────── */
.ab-profile-img,
.profile-img,
img.ksl-float-anim {
  animation: kslFloat 5s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .ab-profile-img,
  .profile-img,
  img.ksl-float-anim { animation: none; }
}

/* ── 고정 하단 상담 바 등장 애니메이션 ─────────────────── */
.desktop-consult-bar {
  animation: kslFadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.8s both;
}
@media (prefers-reduced-motion: reduce) {
  .desktop-consult-bar { animation: none; }
}

/* ── 모바일 메뉴 슬라이드 개선 ─────────────────────────── */
@media (max-width: 1024px) {
  .site-header .gnb {
    transition:
      transform   0.38s cubic-bezier(0.22, 1, 0.36, 1),
      visibility  0.38s ease;
  }
}

/* ── 섹션 내부 구분선 (선택적으로 사용) ────────────────── */
hr.ksl-hr {
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border-strong), transparent);
  margin: 40px 0;
  opacity: 0.6;
}

/* ── 인용구 스타일 (법률 페이지 가독성) ─────────────────── */
main.page-main blockquote {
  margin: 28px 0;
  padding: 20px 24px 20px 28px;
  border-left: 3px solid var(--gold);
  background: var(--bg-warm);
  border-radius: 0 8px 8px 0;
  color: var(--text-secondary);
  font-size: 15.5px;
  line-height: 1.82;
}
main.page-main blockquote p { margin: 0; max-width: none; }

/* ── 테이블 가독성 ──────────────────────────────────────── */
main.page-main table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14.5px;
}
main.page-main table th,
main.page-main table td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-subtle);
  text-align: left;
  vertical-align: top;
  line-height: 1.72;
}
main.page-main table th {
  font-weight: 800;
  color: var(--navy);
  background: var(--bg-warm);
}
main.page-main table tr:last-child td { border-bottom: 0; }
main.page-main table tr:hover td {
  background: rgba(167, 127, 54, 0.04);
}

/* ── 이미지 부드러운 로딩 ───────────────────────────────── */
main.page-main img {
  transition: opacity 0.4s ease;
}
main.page-main img[loading="lazy"] {
  opacity: 0;
}
main.page-main img[loading="lazy"].loaded,
main.page-main img:not([loading]) {
  opacity: 1;
}

/* ── .svc-reveal 강화 (기존 클래스에 더 나은 이징) ──────── */
.svc-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity  0.72s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}
.svc-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* ── Cases 카드 하단 CTA 색상 일관성 ───────────────────── */
.cases-card-cta {
  color: var(--gold) !important;
  font-weight: 800 !important;
  transition: color 0.2s ease, gap 0.2s ease !important;
}
.cases-card:hover .cases-card-cta {
  gap: 10px !important;
}

/* ── 로고 호버 미세 애니메이션 ─────────────────────────── */
.logo-area {
  transition: opacity 0.2s ease;
}
.logo-area:hover { opacity: 0.82; }

/* ── 네비게이션 링크 밑줄 hover ─────────────────────────── */
.nav-link {
  position: relative;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 10px;
  left: 14px;
  right: 14px;
  height: 1.5px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
  border-radius: 1px;
}
.nav-link:hover::after,
.nav-link.active::after {
  transform: scaleX(1);
}

/* 다크 hero 헤더에서 밑줄 색상 유지 */
.site-header.site-header--hero .nav-link::after,
body.has-dark-hero .site-header .nav-link::after {
  background: var(--hero-accent);
}

/* ── 푸터 링크 호버 개선 ────────────────────────────────── */
.site-footer a {
  transition: color 0.2s ease, opacity 0.2s ease;
}
.site-footer a:hover { opacity: 0.9; }

/* ── 스텝 넘버 배지 강화 ────────────────────────────────── */
.svc-timeline-num,
.cc-step-num,
.process-num,
.ctc-process-num {
  transition: background 0.2s ease, transform 0.2s ease;
}
:is(
  .svc-timeline-step,
  .cc-step,
  .process-step,
  .ctc-process li
):hover :is(
  .svc-timeline-num,
  .cc-step-num,
  .process-num,
  .ctc-process-num
) {
  background: var(--gold) !important;
  color: var(--navy) !important;
  transform: scale(1.08);
}

/* ── 전화번호 링크 강조 ─────────────────────────────────── */
a[href^="tel"] {
  font-weight: 800;
  color: var(--navy);
  transition: color 0.2s ease;
}
a[href^="tel"]:hover { color: var(--gold); }

/* 다크 배경 내 전화번호 */
body :is(.lp-hero, .ab-hero, .svc-hero) a[href^="tel"],
.desktop-consult-bar a[href^="tel"],
.fixed-cta-bar a[href^="tel"] {
  color: inherit;
}

/* ── 자가진단 페이지 옵션 호버 ─────────────────────────── */
.sc-option {
  transition:
    border-color 0.22s ease,
    background   0.22s ease,
    transform    0.22s ease !important;
}
.sc-option:hover:not([aria-pressed="true"]):not(.is-selected) {
  border-color: var(--gold) !important;
  background: rgba(167, 127, 54, 0.05) !important;
  transform: translateY(-2px);
}
.sc-option[aria-pressed="true"],
.sc-option.is-selected {
  border-color: var(--gold) !important;
  background: rgba(167, 127, 54, 0.10) !important;
  box-shadow: 0 0 0 2px rgba(167, 127, 54, 0.25);
}

/* ── 입력 폼 focus 강화 ─────────────────────────────────── */
main.page-main :is(
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea
) {
  transition:
    border-color 0.22s ease,
    box-shadow   0.22s ease !important;
}

/* ── 모바일 gnb 오버레이 배경 블러 ─────────────────────── */
@media (max-width: 1024px) {
  body.menu-open::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(7, 16, 31, 0.48);
    z-index: 999;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    animation: kslScaleIn 0.25s ease;
  }
}

/* ── lazy img 로드 완료 표시 (JS에서 .loaded 추가) ──────── */
main.page-main img.loaded { opacity: 1 !important; }

/* ── 히어로 배지/증거 바 등장 ───────────────────────────── */
/* .lp-eyebrow, .lp-hero-title, .lp-hero-lead, .lp-hero-cta 는
   .lp-hero-head[data-stagger] 의 자식이므로 JS stagger가 제어한다.
   중복 animation 제거 — credentials/card는 stagger 외부 요소이므로 유지. */
.lp-hero-credentials,
.svc-hero-card,
.ab-hero-badge,
.hero-trust-bar {
  animation: kslFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.76s both;
}
@media (prefers-reduced-motion: reduce) {
  .lp-hero-credentials,
  .svc-hero-card,
  .ab-hero-badge,
  .hero-trust-bar { animation: none; }
}

/* ── 완료 페이지 confetti 영역 ──────────────────────────── */
.complete-confirm,
.contact-complete-wrap {
  animation: kslScaleIn 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@media (prefers-reduced-motion: reduce) {
  .complete-confirm,
  .contact-complete-wrap { animation: none; }
}

/* =====================================================================
   Readability and Contrast Layer
   Final override for stronger text contrast and mobile legibility.
   ===================================================================== */

:root {
  --navy: #050d1b;
  --navy-mid: #0d1728;
  --navy-light: #172238;
  --gold: #7a5514;
  --gold-light: #d8b45f;
  --gold-muted: rgba(122, 85, 20, 0.11);
  --text-primary: #0b1220;
  --text-secondary: #303846;
  --text-muted: #4b5565;
  --text-light: #667085;
  --bg-page: #fbfaf7;
  --bg-warm: #f2eee6;
  --bg-card: #ffffff;
  --border-light: #d9d3c7;
  --border-strong: #a99d89;
  --border-subtle: #e5dfd3;
  --hero-body: #eef2f8;
  --hero-muted: #dbe2ec;
  --hero-accent: #e2c36f;
  --hero-accent-soft: #e2c36f;
  --hero-border: rgba(226, 195, 111, 0.28);
  --hero-border-strong: rgba(226, 195, 111, 0.42);
}

html {
  color-scheme: light;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  background: var(--bg-page) !important;
  color: var(--text-primary) !important;
  font-size: 17px;
  line-height: 1.76;
}

main.page-main {
  color: var(--text-primary);
}

main.page-main :is(
  p,
  li,
  td,
  th,
  label,
  .section-desc,
  .lp-section-lead,
  .svc-section-desc,
  .ab-section-lead,
  .faq-group-desc,
  .cases-head-sub,
  .legal-p,
  .form-desc,
  .page-excerpt,
  .case-detail-block p,
  .svc-card p,
  .lp-card p,
  .cases-card p,
  .faq-answer,
  .svc-faq-a
) {
  color: var(--text-secondary) !important;
  font-size: 16.5px;
  line-height: 1.84 !important;
}

main.page-main :is(small, figcaption, .meta, .caption, .help-text, .form-help) {
  color: var(--text-muted) !important;
  line-height: 1.7;
}

main.page-main :is(
  h1,
  h2,
  h3,
  h4,
  .lp-section-title,
  .svc-section-title,
  .ab-section-title,
  .section-title,
  .faq-group-title,
  .cases-head-title,
  .legal-clause-title,
  .form-title,
  .page-title,
  .case-detail-title,
  .svc-card-title,
  .lp-card-title,
  .cases-card-title,
  .faq-question,
  .svc-faq-q
) {
  color: var(--navy) !important;
}

main.page-main :is(
  .lp-kicker,
  .svc-section-kicker,
  .ab-kicker,
  .section-kicker,
  .faq-group-kicker,
  .cases-head-kicker,
  .legal-toc-label,
  .cases-card-cta
) {
  color: var(--gold) !important;
  font-weight: 900 !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) {
  background:
    linear-gradient(rgba(5, 13, 27, 0.92), rgba(5, 13, 27, 0.92)),
    linear-gradient(180deg, #050d1b 0%, #0d1728 100%) !important;
  color: #fff !important;
}

body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
  color: #fff !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.28);
}

body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub, .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc),
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) :is(p, li, dd) {
  color: var(--hero-body) !important;
}

body :is(.lp-eyebrow, .svc-kicker, .ab-eyebrow, .sc-hero-badge, .contact-hero-kicker, .faq-hero-kicker, .legal-eyebrow, .hero-kicker) {
  color: var(--hero-accent-soft) !important;
  font-weight: 900 !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) :is(strong, b) {
  color: #fff !important;
}

main.page-main :is(
  .svc-card,
  .svc-compare-card,
  .svc-timeline-step,
  .lp-problem-item,
  .lp-trust-card,
  .lp-card,
  .lp-faq-card,
  .ab-card,
  .ab-profile-card,
  .cases-card,
  .case-detail-block,
  .faq-item,
  .svc-faq-item,
  .contact-card,
  .ctc-form-card,
  .legal-toc,
  .legal-article,
  .sc-card,
  .sc-contact,
  .complete-confirm,
  .info-card,
  .form-card,
  .wp-content
) {
  border-color: var(--border-light) !important;
  background: #fff !important;
}

main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn, .sc-nav-btn, .sc-submit-btn, .cases-card-cta, .cta-btn, .btn-big) {
  min-height: 52px;
  padding: 15px 24px;
  border-width: 1.5px;
  font-size: 15.5px;
  font-weight: 900;
  line-height: 1.25 !important;
}

main.page-main :is(.btn--primary, .lp-btn--primary, .ab-btn--primary, .svc-btn--primary, .sc-submit-btn, .contact-submit, .btn-primary, .btn-gold) {
  border-color: var(--gold-light) !important;
  background: var(--gold-light) !important;
  color: var(--navy) !important;
  box-shadow: 0 14px 28px -18px rgba(5, 13, 27, 0.5) !important;
}

main.page-main :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline, .svc-btn--ghost, .btn-navy) {
  border-color: var(--navy) !important;
  color: var(--navy) !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) :is(.btn--primary, .lp-btn--primary, .ab-btn--primary, .svc-btn--primary) {
  border-color: var(--gold-light) !important;
  background: var(--gold-light) !important;
  color: var(--navy) !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline, .svc-btn--ghost) {
  border-color: rgba(255, 255, 255, 0.76) !important;
  color: #fff !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

.site-header {
  background: rgba(255, 255, 255, 0.98) !important;
}

.nav-link,
.logo-sub,
.sub-menu a {
  color: var(--text-secondary) !important;
}

.nav-link:hover,
.nav-link.active,
.logo-main {
  color: var(--navy) !important;
}

.site-header.site-header--hero:not(.is-scrolled) {
  background: rgba(5, 13, 27, 0.82) !important;
}

.site-header.site-header--hero:not(.is-scrolled) :is(.logo-main, .nav-link) {
  color: #fff !important;
}

.site-header.site-header--hero:not(.is-scrolled) .logo-sub {
  color: var(--hero-muted) !important;
}

.site-footer {
  color: #d8dee8 !important;
}

.site-footer :is(p, li, dd, span, a, .footer-desc, .footer-contact) {
  color: #d8dee8 !important;
}

.site-footer :is(.footer-logo-main, h4, strong) {
  color: #fff !important;
}

.fixed-cta-bar {
  background: rgba(255, 255, 255, 0.99) !important;
  box-shadow: 0 -12px 30px rgba(5, 13, 27, 0.12);
}

.fixed-cta-bar .cta-btn {
  color: var(--navy) !important;
  font-weight: 900;
}

.fixed-cta-bar .cta-btn.primary,
.fixed-cta-bar .cta-btn:hover {
  background: var(--navy) !important;
  color: #fff !important;
}

@media (max-width: 768px) {
  :root {
    --header-h: 64px;
    --section-py: 58px;
    --section-py-compact: 40px;
  }

  body {
    font-size: 16.5px !important;
    line-height: 1.78 !important;
  }

  body :is(.container, .inner, .svc-container, .sc-container, .ksl-template-container, .cx-container) {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) {
    padding-top: 100px !important;
    padding-bottom: 54px !important;
  }

  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    max-width: 15ch !important;
    margin-bottom: 16px !important;
    font-size: clamp(30px, 8vw, 36px) !important;
    line-height: 1.18 !important;
  }

  body.ksl-page-index .lp-hero-title {
    font-size: clamp(32px, 8.8vw, 38px) !important;
  }

  body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub, .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
    max-width: 100% !important;
    margin-bottom: 26px !important;
    font-size: 16.5px !important;
    line-height: 1.82 !important;
  }

  main.page-main :is(
    p,
    li,
    td,
    th,
    label,
    .section-desc,
    .lp-section-lead,
    .svc-section-desc,
    .ab-section-lead,
    .faq-group-desc,
    .cases-head-sub,
    .legal-p,
    .form-desc,
    .page-excerpt,
    .case-detail-block p,
    .svc-card p,
    .lp-card p,
    .cases-card p,
    .faq-answer,
    .svc-faq-a
  ) {
    font-size: 16px !important;
    line-height: 1.86 !important;
  }

  main.page-main :is(.lp-section, .svc-section, .ab-section, .legal-body, .case-detail-section, .sc-form-wrap) {
    padding-top: var(--section-py) !important;
    padding-bottom: var(--section-py) !important;
  }

  main.page-main :is(.lp-section-head, .svc-section-header, .ab-section-head, .faq-section-head, .cases-section-header) {
    margin-bottom: 28px !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title, .section-title, .faq-group-title, .cases-head-title, .legal-clause-title, .form-title, .page-title, .case-detail-title) {
    font-size: clamp(25px, 6.4vw, 30px) !important;
    line-height: 1.28 !important;
  }

  main.page-main :is(.svc-card h3, .svc-card-title, .lp-card-title, .cases-card-title, .faq-question, .svc-faq-q, .case-detail-block-title) {
    font-size: 19px !important;
    line-height: 1.38 !important;
  }

  main.page-main :is(
    .svc-card,
    .svc-compare-card,
    .svc-timeline-step,
    .svc-hero-card,
    .lp-problem-item,
    .lp-trust-card,
    .lp-card,
    .lp-faq-card,
    .lp-consult-form-wrap,
    .legal-article,
    .sc-card,
    .sc-contact,
    .contact-card,
    .ctc-form-card,
    .cases-card,
    .info-card,
    .form-card
  ) {
    padding: 22px 18px !important;
  }

  main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn, .sc-nav-btn, .sc-submit-btn, .cases-card-cta, .cta-btn, .btn-big) {
    width: 100%;
    min-height: 54px;
    padding: 15px 18px !important;
    font-size: 15.5px !important;
    line-height: 1.28 !important;
  }

  .site-header .gnb {
    background: #fff !important;
    box-shadow: -20px 0 40px rgba(5, 13, 27, 0.18);
  }

  .site-header .nav-link {
    min-height: 52px;
    font-size: 16.5px !important;
    font-weight: 900;
  }

  .fixed-cta-bar {
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
  }

  .fixed-cta-bar .cta-btn {
    min-height: 50px;
    padding: 8px 10px !important;
  }

  .fixed-cta-bar .cta-label-main {
    font-size: 14px;
    line-height: 1.25;
  }
}

@media (max-width: 480px) {
  body :is(.container, .inner, .svc-container, .sc-container, .ksl-template-container, .cx-container) {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: clamp(29px, 8.6vw, 34px) !important;
    line-height: 1.2 !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title, .section-title, .faq-group-title, .cases-head-title, .legal-clause-title, .form-title, .page-title, .case-detail-title) {
    font-size: clamp(24px, 7vw, 28px) !important;
    line-height: 1.3 !important;
  }

  main.page-main :is(.lp-kicker, .svc-section-kicker, .ab-kicker, .section-kicker, .faq-group-kicker, .cases-head-kicker) {
    font-size: 12.5px !important;
    line-height: 1.5 !important;
  }

  main.page-main table {
    font-size: 15px !important;
  }

  main.page-main table th,
  main.page-main table td {
    padding: 12px 10px !important;
  }
}

main.page-main :is(
  .svc-section--dark,
  .svc-final,
  .ab-final,
  .lp-consult,
  .lp-inline-cta--dark,
  .consult-card
) :is(p, li, dd, dt, span, .svc-section-desc, .svc-final-desc, .ab-final-lead, .consult-desc, .lp-section-lead) {
  color: #eef2f8 !important;
}

main.page-main :is(
  .svc-section--dark,
  .svc-final,
  .ab-final,
  .lp-consult,
  .lp-inline-cta--dark,
  .consult-card
) :is(h2, h3, h4, strong, .svc-section-title, .svc-final-title, .ab-final-title, .consult-title, .lp-section-title) {
  color: #fff !important;
}

main.page-main :is(.svc-card--dark, .svc-section--dark .svc-timeline-step, .svc-section--dark .svc-next) {
  border-color: rgba(226, 195, 111, 0.22) !important;
  background: var(--navy-mid) !important;
  color: #eef2f8 !important;
}

main.page-main :is(.svc-card--dark, .svc-section--dark .svc-timeline-step, .svc-section--dark .svc-next) :is(p, li, dd, span) {
  color: #e1e7f0 !important;
}

main.page-main :is(.svc-card--dark, .svc-section--dark .svc-timeline-step, .svc-section--dark .svc-next) :is(h3, h4, strong) {
  color: #fff !important;
}

@media (max-width: 768px) {
  .site-header.site-header--hero .gnb .nav-link,
  body.has-dark-hero .site-header .gnb .nav-link {
    color: var(--navy) !important;
  }

  .site-header.site-header--hero .gnb .nav-link:hover,
  .site-header.site-header--hero .gnb .nav-link.active,
  body.has-dark-hero .site-header .gnb .nav-link:hover,
  body.has-dark-hero .site-header .gnb .nav-link.active {
    color: var(--navy) !important;
    background: var(--gold-muted) !important;
  }
}

/* =====================================================================
   SENIOR POLISH LAYER  —  최종 가독성·계층·접근성 보강
   이 블록은 premium.css 의 맨 마지막에 위치하여 모든 값을 덮어씁니다.
   ===================================================================== */

:root {
  /* 본문 강조용 중간 톤 골드 — 텍스트에 충분히 읽히면서 따뜻한 포인트 */
  --accent-text: #b5892f;          /* 4.9:1 on #fbfaf7 — AA pass, warm */
  --accent-text-soft: #c29a48;     /* hover용 */

  /* 프로즈 최적 폭 — 한글 본문 60~68ch 이 이상적 */
  --prose-measure: 65ch;
  --prose-measure-narrow: 54ch;

  /* 카드 계층용 그림자 2단계 */
  --shadow-card-flat: 0 1px 2px rgba(5, 13, 27, 0.04),
                      0 10px 30px -24px rgba(5, 13, 27, 0.18);
  --shadow-card-raised: 0 1px 2px rgba(5, 13, 27, 0.05),
                        0 24px 56px -28px rgba(5, 13, 27, 0.32);
}

/* ── 글로벌 본문 품질 ───────────────────────────────── */
html {
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(181, 137, 47, 0.14);
}

body {
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
}

main.page-main :is(p, li, dd) {
  text-wrap: pretty;
}

main.page-main :is(h1, h2, h3, h4, .lp-section-title, .svc-section-title,
  .ab-section-title, .section-title, .lp-hero-title, .svc-hero-title,
  .hero-title, .faq-hero-title, .contact-hero-title, .legal-title,
  .faq-group-title, .cases-head-title, .page-title, .case-detail-title,
  .ctc-form-title, .form-title) {
  text-wrap: balance;
}

/* ── 히어로 타이포 정제 (데스크탑 임팩트 + 한글 숨통) ── */
body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
  .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
  line-height: 1.16 !important;
  letter-spacing: -0.025em;
}

body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
  .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
  font-size: 18px !important;
  line-height: 1.86 !important;
  max-width: 54ch !important;
}

body :is(.faq-hero, .contact-hero, .hero-area, .sc-hero, .legal-hero) :is(
  .svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
  .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
  margin-left: auto;
  margin-right: auto;
}

/* ── 본문 em 강조: 탁한 다크골드 → 따뜻한 골드로 교체 ── */
main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title,
  .section-title, .ds-title, .page-title, .legal-clause-title,
  .case-detail-title, h2, h3) em {
  color: var(--accent-text) !important;
  font-style: normal;
}

main.page-main :is(p, li, dd) em {
  color: var(--accent-text) !important;
  font-style: normal;
  font-weight: 700;
}

/* ── 산문 블록 최대 폭 강제 (65ch) — 카드/표/그리드 자식은 예외 ── */
main.page-main :is(
  .lp-section-lead, .svc-section-desc, .ab-section-lead, .section-desc,
  .faq-group-desc, .cases-head-sub, .legal-p, .form-desc, .page-excerpt,
  .lp-message-copy, .lp-message-body, .lp-problem-desc,
  .ctc-form-lead, .ctc-hero-quick-lead
) {
  max-width: var(--prose-measure) !important;
}

main.page-main .wp-content :is(p, ul, ol, blockquote) {
  max-width: var(--prose-measure);
}

/* ── 카드 그림자 계층 — 기본은 flat, hover 시 raised ── */
main.page-main :is(.svc-card, .svc-compare-card, .svc-timeline-step,
  .lp-problem-item, .lp-trust-card, .lp-card, .lp-faq-card, .ab-card,
  .ab-profile-card, .cases-card, .faq-item, .svc-faq-item, .contact-card,
  .info-card, .form-card, .sc-card, .sc-contact) {
  box-shadow: var(--shadow-card-flat) !important;
}

main.page-main :is(.svc-card, .svc-compare-card, .lp-problem-item,
  .lp-trust-card, .cases-card, .ab-card, .info-card):hover {
  box-shadow: var(--shadow-card-raised) !important;
}

/* featured / primary 카드는 기본부터 raised */
main.page-main :is(.svc-compare-card.is-featured,
  .ctc-channel--primary, .lp-trust-card--featured,
  .svc-card--featured) {
  box-shadow: var(--shadow-card-raised) !important;
  border-color: rgba(181, 137, 47, 0.34) !important;
}

/* ── 접근성: 전역 focus-visible 링 ────────────────────── */
:focus {
  outline: none;
}

main.page-main a:focus-visible,
main.page-main button:focus-visible,
main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn,
  .sc-nav-btn, .sc-submit-btn, .cta-btn, .sc-option, .cases-card-cta,
  .ctc-channel-cta, .ctc-submit, .ctc-hero-alt-link):focus-visible,
.site-header .nav-link:focus-visible,
.site-header .nav-cta:focus-visible,
.menu-toggle:focus-visible,
.site-footer a:focus-visible,
.fixed-cta-bar .cta-btn:focus-visible {
  outline: 2px solid var(--accent-text);
  outline-offset: 3px;
  border-radius: 6px;
}

main.page-main :is(input, select, textarea):focus-visible {
  border-color: var(--accent-text) !important;
  box-shadow: 0 0 0 3px rgba(181, 137, 47, 0.22) !important;
  outline: none;
}

/* 다크 배경(히어로/고정바/푸터) 내 포커스는 골드 라이트 톤 */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) a:focus-visible,
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) button:focus-visible,
.site-footer a:focus-visible,
.desktop-consult-bar :focus-visible {
  outline-color: var(--gold-light);
}

/* ── 소형 메타 텍스트 보정 (접근성 임계치) ─────────────── */
.svc-page--contact .ctc-process span {
  font-size: 14px !important;
  line-height: 1.72 !important;
}

.svc-page--contact .ctc-label small,
.svc-page--contact .ctc-label-hint {
  font-size: 13px !important;
  color: var(--text-muted) !important;
}

.svc-page--contact .ctc-submit-note,
.svc-page--contact .ctc-form-aside-note,
.svc-page--contact .ctc-privacy-detail {
  font-size: 13.5px !important;
  line-height: 1.72 !important;
}

.svc-page--contact .ctc-channel-num,
.svc-page--contact .ctc-channel-meta dt,
.svc-page--contact .ctc-channel-meta dd {
  font-size: 13.5px !important;
}

.svc-page--contact .ctc-hero-phone-label,
.svc-page--contact .ctc-hero-phone-hour {
  font-size: 13.5px !important;
}

/* 푸터 링크도 14px 미만 방지 */
.site-footer :is(.footer-links a, .footer-quick a,
  .footer-meta li, .footer-desc, .footer-info, .footer-contact) {
  font-size: 14px;
  line-height: 1.7;
}

/* 로고 서브 태그라인 — 데스크탑 11px 유지, 모바일 숨김 (기존 유지) */
.logo-sub {
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
}

/* ── 표 (비교/상세) 가독성 ───────────────────────────── */
main.page-main table {
  font-size: 15px !important;
}

main.page-main table th,
main.page-main table td {
  padding: 14px 16px !important;
  line-height: 1.72 !important;
}

main.page-main table th {
  font-size: 14.5px !important;
  font-weight: 850 !important;
  letter-spacing: -0.005em;
}

/* ── 안전 영역(iOS notch/home bar) 전역 대응 ──────────── */
@supports (padding: max(0px)) {
  /* 히어로 내부 컨테이너에만 safe-area 적용 (배경은 풀블리드 유지) */
  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area,
    .contact-hero, .legal-hero) :is(.inner, .container, .lp-hero-inner,
    .svc-hero-grid, .ctc-hero-inner, .sc-hero-inner) {
    padding-left: max(24px, env(safe-area-inset-left)) !important;
    padding-right: max(24px, env(safe-area-inset-right)) !important;
  }

  .fixed-cta-bar {
    padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
    padding-left: max(12px, env(safe-area-inset-left)) !important;
    padding-right: max(12px, env(safe-area-inset-right)) !important;
  }

  .site-header .header-inner {
    padding-left: max(24px, env(safe-area-inset-left)) !important;
    padding-right: max(24px, env(safe-area-inset-right)) !important;
  }
}

/* ── 초대형 화면(≥1600px) 억제: 히어로/섹션 타이틀 상한 ── */
@media (min-width: 1600px) {
  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
    .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: 60px !important;
  }

  body.ksl-page-index .lp-hero-title {
    font-size: 64px !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title,
    .ab-section-title, .section-title) {
    font-size: 42px !important;
  }

  /* 데스크탑 컨테이너 확장: 1120 → 1200 */
  :root {
    --max-width: 1200px;
  }
}

/* ── 데스크탑(1025+) 미세 개선 ───────────────────────── */
@media (min-width: 1025px) {
  /* 섹션 헤드 영역 좀 더 넉넉하게 */
  main.page-main :is(.lp-section-head, .svc-section-header,
    .ab-section-head, .faq-section-head, .cases-section-header) {
    max-width: 780px;
    margin-bottom: 56px;
  }

  /* 컨텐츠 섹션 내부 일관된 수직 리듬 */
  main.page-main :is(.lp-section, .svc-section, .ab-section) {
    padding-top: 120px !important;
    padding-bottom: 120px !important;
  }

  /* 본문 단락 사이 넉넉한 간격 */
  main.page-main :is(.lp-message-copy, .lp-problem-desc,
    .ctc-form-lead, .legal-article) p + p {
    margin-top: 18px;
  }
}

/* ── 태블릿(769~1024) 중간 영역 정돈 ─────────────────── */
@media (min-width: 769px) and (max-width: 1024px) {
  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
    .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: clamp(36px, 5.2vw, 46px) !important;
    max-width: 16ch !important;
  }

  body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
    .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
    font-size: 17px !important;
    max-width: 58ch !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title,
    .ab-section-title, .section-title, .faq-group-title) {
    font-size: clamp(26px, 3.4vw, 34px) !important;
    line-height: 1.24 !important;
  }
}

/* ── 모바일 정제 ───────────────────────────────────── */
@media (max-width: 768px) {
  /* 터치 타겟 안정성 */
  main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .sc-option,
    .nav-link, .cta-btn, .ctc-channel-cta, .ctc-hero-alt-link,
    .cases-card-cta, .sc-submit-btn, .menu-toggle) {
    min-height: 48px;
  }

  /* 본문 읽기 감도 */
  main.page-main :is(.lp-section-lead, .svc-section-desc, .ab-section-lead,
    .section-desc, .faq-group-desc, .ctc-form-lead) {
    max-width: 100% !important;
  }

  /* 히어로 CTA 버튼 — 세컨더리는 transparent 유지하되 라인 확실 */
  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) :is(
    .btn--ghost, .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline,
    .svc-btn--ghost) {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
  }

  /* 로고 서브 텍스트는 모바일서도 가로폭 허용되면 노출 */
  @media (min-width: 380px) {
    .logo-sub {
      display: block !important;
      font-size: 10.5px !important;
      letter-spacing: 0.16em !important;
    }
  }

  /* 푸터 링크 행간 */
  .site-footer :is(.footer-links a, .footer-quick a) {
    display: inline-block;
    padding: 6px 0;
    min-height: 40px;
    line-height: 1.55;
  }

  /* 모바일 메뉴 드로어: 작은 가로 폰(도 여유있게) */
  .site-header .gnb {
    width: min(380px, 94vw) !important;
  }

  /* FAQ 답변 — 상태별 padding 을 명확히 */
  body .lp-faq .svc-faq-q[aria-expanded="true"] + .svc-faq-a {
    padding-top: 6px !important;
    padding-bottom: 24px !important;
  }

  /* 카드 헤더 제목 + 본문 간격 */
  main.page-main :is(.svc-card, .lp-trust-card, .cases-card,
    .lp-problem-item) :is(h3, h4) + p {
    margin-top: 10px !important;
  }

  /* 섹션 수직 리듬 */
  main.page-main :is(.lp-section, .svc-section, .ab-section) {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  /* 히어로 좌우 패딩 일관성 */
  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
    .faq-hero, .legal-hero) .inner,
  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
    .faq-hero, .legal-hero) .container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* ── 극소형 모바일 (≤ 380px) ──────────────────────── */
@media (max-width: 380px) {
  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
    .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: 26px !important;
    line-height: 1.22 !important;
  }

  body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
    .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
    font-size: 15.5px !important;
    line-height: 1.78 !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title,
    .ab-section-title, .section-title) {
    font-size: 22px !important;
    line-height: 1.3 !important;
  }

  main.page-main :is(.svc-card, .lp-problem-item, .lp-trust-card,
    .cases-card, .lp-card, .ctc-form-wrap, .ctc-form-aside) {
    padding: 18px 15px !important;
  }
}

/* ── 링크 강조: 본문 내 기본 a 에 은은한 밑줄 ─────────── */
main.page-main :is(p, li, dd) > a:not([class]) {
  color: var(--accent-text);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(181, 137, 47, 0.34);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

main.page-main :is(p, li, dd) > a:not([class]):hover {
  color: var(--accent-text-soft);
  text-decoration-color: currentColor;
}

/* ── 다크 섹션/히어로 내 본문 링크 ─────────────────── */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .svc-section--dark, .lp-consult) :is(p, li, dd) > a:not([class]) {
  color: var(--gold-light);
  text-decoration-color: rgba(216, 180, 95, 0.4);
}

/* ── 선택(Selection) 스타일 ────────────────────────── */
::selection {
  background: rgba(181, 137, 47, 0.22);
  color: var(--navy);
}

/* ── 다크 배경 위 selection ────────────────────────── */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .site-footer, .desktop-consult-bar) ::selection {
  background: rgba(226, 195, 111, 0.32);
  color: #fff;
}

/* ── 이미지 자연스러운 프레임 ──────────────────────── */
main.page-main :is(.ab-profile-img, .lp-message-img, .svc-hero-card img,
  .cases-card img, .info-card img, img.ksl-rounded) {
  border-radius: 12px;
  box-shadow: var(--shadow-card-flat);
}

/* ── 스크롤바 (Webkit) 브랜드 일관성 ───────────────── */
@media (min-width: 769px) {
  ::-webkit-scrollbar {
    width: 12px;
    height: 12px;
  }
  ::-webkit-scrollbar-track {
    background: var(--bg-warm);
  }
  ::-webkit-scrollbar-thumb {
    background: var(--border-strong);
    border: 3px solid var(--bg-warm);
    border-radius: 8px;
  }
  ::-webkit-scrollbar-thumb:hover {
    background: var(--accent-text);
  }
}

/* ── 폼 placeholder 대비 개선 ──────────────────────── */
main.page-main :is(input, textarea, select)::placeholder {
  color: var(--text-light) !important;
  opacity: 1;
}

/* ── 필수 필드 표시 가독성 ────────────────────────── */
.svc-page--contact .ctc-req,
main.page-main :is(.required, .req, .is-required, [aria-required="true"] + * ) {
  color: #c0392b;
  font-weight: 900;
}

/* ── 모바일 헤더 컨테이너 실패 대비 ─────────────────── */
@media (max-width: 768px) {
  .header-inner {
    padding-left: max(18px, env(safe-area-inset-left)) !important;
    padding-right: max(18px, env(safe-area-inset-right)) !important;
  }
  .logo-img {
    height: 30px !important;
  }
  .logo-main {
    font-size: 16px !important;
    font-weight: 900;
  }
}

/* ── Reduced motion safeguard (최종) ────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* =====================================================================
   MAX READABILITY LAYER  —  본문 가독성·대비·계층 최대화
   모바일/데스크탑 모두에서 "한눈에 잘 읽히는" 상태를 목표로.
   이 블록은 premium.css 의 맨 마지막에 위치하여 모든 값을 덮어씁니다.
   ===================================================================== */

:root {
  /* 대비 최강: 거의 순검정 레벨까지 text-primary 내림 */
  --text-primary: #0a0f1a;
  --text-secondary: #262d3a;          /* 12:1 on #fbfaf7 */
  --text-muted: #3f4758;              /* 8.2:1 */
  --text-light: #5b6373;              /* 5.8:1, 작은 텍스트에도 AA */

  /* 히어로 텍스트 대비 최강 */
  --hero-body: #f3f6fb;               /* 16:1 on #050d1b */
  --hero-muted: #d8dfea;              /* 12:1 */

  /* 프로즈 폭: 한글 최적 60~64ch */
  --prose-measure: 62ch;
  --prose-measure-tight: 52ch;
  --prose-measure-lead: 46ch;
}

/* ── 글로벌 body: 17px / 1.85 Korean-optimized ──────── */
html { font-size: 17px; }

body {
  font-size: 17px !important;
  line-height: 1.85 !important;
  color: var(--text-primary) !important;
  letter-spacing: -0.005em;
}

/* ── 단락 기본값: 17px / 1.85 + keep-all
   dt 는 제외 (정의목록 ─ 통계 숫자 같은 큰 강조 요소에 사용됨) ── */
main.page-main :is(p, li, blockquote) {
  font-size: 17px;
  line-height: 1.85;
  color: var(--text-secondary);
  word-break: keep-all;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

main.page-main dd {
  color: var(--text-secondary);
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 섹션 리드/설명 본문 — 모든 주요 리드 클래스 통일 */
main.page-main :is(
  .lp-section-lead, .svc-section-desc, .ab-section-lead, .section-desc,
  .faq-group-desc, .cases-head-sub, .legal-p, .form-desc, .page-excerpt,
  .lp-message-copy, .lp-message-body, .lp-problem-desc,
  .ctc-form-lead, .ctc-hero-quick-lead, .ctc-channel-desc,
  .svc-card p, .lp-card p, .cases-card p, .faq-answer, .svc-faq-a,
  .case-detail-block p, .info-card p, .form-card p,
  .legal-article p, .legal-article li
) {
  font-size: 17px !important;
  line-height: 1.85 !important;
  color: var(--text-secondary) !important;
  max-width: var(--prose-measure);
}

/* 리스트 가독성 */
main.page-main :is(ul, ol) li + li {
  margin-top: 6px;
}

/* 단락 간 수직 간격 — 본문 단락 사이 확실한 숨통 */
main.page-main :is(p + p, p + ul, p + ol, ul + p, ol + p, blockquote + p) {
  margin-top: 20px;
}

/* ── 제목 계층 — 두께/크기/컬러 뚜렷 대비 ──────────── */
main.page-main :is(h1, h2, h3, h4, .lp-section-title, .svc-section-title,
  .ab-section-title, .section-title, .faq-group-title, .cases-head-title,
  .page-title, .case-detail-title, .form-title, .ctc-form-title,
  .lp-card-title, .svc-card-title, .cases-card-title,
  .faq-question, .svc-faq-q) {
  color: var(--navy) !important;
  font-weight: 900 !important;
  letter-spacing: -0.028em;
  text-wrap: balance;
}

/* 섹션 제목: 더 크고 한국어 표준 크기로 */
main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title,
  .section-title, .faq-group-title, .cases-head-title, .page-title,
  .case-detail-title) {
  font-size: clamp(28px, 3.4vw, 44px) !important;
  line-height: 1.22 !important;
  margin-bottom: 16px;
}

/* 카드 제목 — 뚜렷한 4px 굵기 차이 */
main.page-main :is(.svc-card h3, .svc-card-title, .lp-card-title,
  .cases-card-title, .faq-question, .svc-faq-q, .case-detail-block-title,
  .ctc-channel-title) {
  font-size: 21px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
}

/* 섹션 kicker/eyebrow — 2단계 위에 있는 라벨: 더 크고 굵게 */
main.page-main :is(.lp-kicker, .svc-section-kicker, .ab-kicker,
  .section-kicker, .ds-kicker, .faq-group-kicker, .cases-head-kicker,
  .legal-toc-label) {
  font-size: 13.5px !important;
  font-weight: 900 !important;
  color: var(--accent-text) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

/* 히어로 제목: 크고 강렬하게 */
body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
  .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
  font-size: clamp(38px, 5.4vw, 60px) !important;
  line-height: 1.14 !important;
  font-weight: 900 !important;
  color: #fff !important;
  letter-spacing: -0.03em;
  margin-bottom: 22px;
}

body.ksl-page-index .lp-hero-title {
  font-size: clamp(42px, 6vw, 66px) !important;
}

/* 히어로 리드: 18px + 1.88 + 짧은 라인 */
body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
  .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
  font-size: 18px !important;
  line-height: 1.88 !important;
  color: var(--hero-body) !important;
  max-width: 52ch !important;
  margin-bottom: 32px;
  font-weight: 500;
}

/* 히어로 eyebrow: 뚜렷 */
body :is(.lp-eyebrow, .svc-kicker, .ab-eyebrow, .sc-hero-badge,
  .contact-hero-kicker, .faq-hero-kicker, .legal-eyebrow, .hero-kicker) {
  font-size: 13px !important;
  font-weight: 900 !important;
  color: var(--gold-light) !important;
  letter-spacing: 0.22em !important;
  margin-bottom: 24px;
  display: inline-block;
}

/* ── 강조 텍스트 — strong/b/em 뚜렷하게 ─────────────── */
main.page-main :is(p, li, dd, td) strong,
main.page-main :is(p, li, dd, td) b {
  color: var(--navy) !important;
  font-weight: 900 !important;
}

main.page-main :is(p, li, dd, td) em {
  color: var(--accent-text) !important;
  font-style: normal;
  font-weight: 800 !important;
}

/* 다크 배경 위 강조 */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .svc-section--dark, .lp-consult, .consult-card) :is(p, li, dd) strong,
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .svc-section--dark, .lp-consult, .consult-card) :is(p, li, dd) b {
  color: #fff !important;
  font-weight: 900 !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .svc-section--dark, .lp-consult, .consult-card) :is(p, li, dd) em {
  color: var(--gold-light) !important;
  font-weight: 800 !important;
}

/* ── 버튼 — 크고 명확, 터치 친화 ─────────────────────── */
main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn,
  .sc-nav-btn, .sc-submit-btn, .cta-btn, .btn-big,
  .cases-card-cta) {
  min-height: 56px !important;
  padding: 17px 28px !important;
  border-radius: 10px !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1.22 !important;
  letter-spacing: -0.005em !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.2s ease !important;
}

/* Primary: 골드 배경 + 강한 그림자 + hover 리프트 */
main.page-main :is(.btn--primary, .lp-btn--primary, .ab-btn--primary,
  .svc-btn--primary, .sc-submit-btn, .contact-submit, .btn-primary,
  .btn-gold) {
  background: var(--gold-light) !important;
  color: var(--navy) !important;
  border-color: var(--gold-light) !important;
  box-shadow: 0 10px 24px -10px rgba(181, 137, 47, 0.55),
              0 2px 4px rgba(5, 13, 27, 0.08) !important;
}

main.page-main :is(.btn--primary, .lp-btn--primary, .ab-btn--primary,
  .svc-btn--primary, .sc-submit-btn, .contact-submit,
  .btn-primary, .btn-gold):hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -10px rgba(181, 137, 47, 0.65),
              0 4px 8px rgba(5, 13, 27, 0.12) !important;
}

/* Ghost: 검은 테두리 + 네이비 글자 */
main.page-main :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost,
  .svc-btn--outline, .svc-btn--ghost) {
  background: #fff !important;
  color: var(--navy) !important;
  border: 2px solid var(--navy) !important;
}

main.page-main :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost,
  .svc-btn--outline, .svc-btn--ghost):hover {
  background: var(--navy) !important;
  color: #fff !important;
}

/* 히어로 내 Ghost: 투명+흰테두리 강화 */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) :is(
  .btn--ghost, .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline,
  .svc-btn--ghost) {
  background: rgba(255, 255, 255, 0.10) !important;
  color: #fff !important;
  border: 2px solid rgba(255, 255, 255, 0.62) !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero) :is(
  .btn--ghost, .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline,
  .svc-btn--ghost):hover {
  background: #fff !important;
  color: var(--navy) !important;
  border-color: #fff !important;
}

/* ── 폼 — iOS zoom 방지 + 가독성 ───────────────────── */
main.page-main :is(input:not([type="checkbox"]):not([type="radio"]),
  select, textarea, .form-input, .form-select, .form-textarea,
  .sc-input, .desktop-consult-input, .ctc-input, .ctc-textarea) {
  font-size: 16px !important;            /* iOS 자동 확대 방지 */
  min-height: 52px !important;
  padding: 14px 16px !important;
  border: 1.5px solid var(--border-light) !important;
  border-radius: 10px !important;
  color: var(--text-primary) !important;
  line-height: 1.5 !important;
  background: #fff;
}

main.page-main textarea,
main.page-main .ctc-textarea {
  min-height: 168px !important;
  padding: 14px 16px !important;
  resize: vertical;
}

main.page-main :is(input, select, textarea):focus {
  border-color: var(--accent-text) !important;
  box-shadow: 0 0 0 3px rgba(181, 137, 47, 0.22) !important;
}

/* 폼 라벨: 뚜렷한 구분 */
main.page-main :is(label, .form-label, .field-label, .ctc-label) {
  display: block;
  margin-bottom: 8px;
  font-size: 15px !important;
  font-weight: 800 !important;
  color: var(--navy) !important;
  letter-spacing: -0.005em;
}

/* ── 전화번호·주요 연락처 — 크게, 골드, 태블릿 숫자 ── */
main.page-main a[href^="tel"],
.site-footer a[href^="tel"],
.fixed-cta-bar a[href^="tel"] {
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

.svc-page--contact .ctc-hero-phone-num,
.svc-page--contact .ctc-summary-phone {
  font-size: clamp(28px, 4vw, 38px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
}

/* ── 통계/숫자 크기 강화 (컨테이너 와일드카드 제거) ─── */
main.page-main :is(.lp-trust-num, .svc-proof-num, .ab-stat-num,
  .stat-num, .lp-trust-numbers dt, .svc-proof-card .svc-proof-num,
  .ab-stat .ab-stat-num) {
  font-weight: 900 !important;
  color: var(--navy) !important;
  letter-spacing: -0.04em !important;
  font-variant-numeric: tabular-nums;
  line-height: 1.08 !important;
}

/* ── 고정 하단 CTA 바 — 크게 ────────────────────────── */
.fixed-cta-bar .cta-btn {
  min-height: 52px !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

.fixed-cta-bar .cta-label-main {
  font-size: 14.5px !important;
  font-weight: 900 !important;
  line-height: 1.24 !important;
}

.fixed-cta-bar .cta-label-sub {
  font-size: 12px !important;
  color: var(--text-muted) !important;
  line-height: 1.3 !important;
}

/* ── 네비게이션 — 명확하게 ──────────────────────────── */
.site-header .nav-link {
  font-size: 15px !important;
  font-weight: 800 !important;
}

.site-header .nav-cta {
  min-height: 44px !important;
  padding: 0 20px !important;
  font-size: 14.5px !important;
  font-weight: 900 !important;
  letter-spacing: -0.005em !important;
}

.logo-main {
  font-size: 18px !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
}

.logo-sub {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  letter-spacing: 0.2em !important;
}

/* ── 섹션 수직 리듬 (desktop) ────────────────────────── */
@media (min-width: 1025px) {
  main.page-main :is(.lp-section, .svc-section, .ab-section,
    .legal-body, .case-detail-section, .sc-form-wrap) {
    padding-top: 128px !important;
    padding-bottom: 128px !important;
  }

  main.page-main :is(.lp-section-head, .svc-section-header,
    .ab-section-head, .faq-section-head, .cases-section-header) {
    margin-bottom: 64px !important;
  }

  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area,
    .contact-hero, .legal-hero) {
    padding-top: 148px !important;
    padding-bottom: 108px !important;
  }
}

/* ── 태블릿(769~1024): 중간 리듬 ──────────────────── */
@media (min-width: 769px) and (max-width: 1024px) {
  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
    .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: clamp(38px, 5.4vw, 50px) !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title,
    .ab-section-title, .section-title) {
    font-size: clamp(30px, 4vw, 38px) !important;
  }

  main.page-main :is(.lp-section, .svc-section, .ab-section) {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }
}

/* ── 모바일 최적화 (≤ 768px) — 가독성 최우선 ────────── */
@media (max-width: 768px) {
  html { font-size: 17px; }
  body {
    font-size: 17px !important;
    line-height: 1.85 !important;
  }

  /* 본문 — 17px 유지, 라인하이트 1.88 로 한 칸 더 */
  main.page-main :is(p, li, dd, .lp-section-lead, .svc-section-desc,
    .ab-section-lead, .section-desc, .faq-group-desc, .cases-head-sub,
    .legal-p, .form-desc, .svc-card p, .lp-card p, .cases-card p,
    .faq-answer, .svc-faq-a, .case-detail-block p, .ctc-form-lead,
    .ctc-channel-desc, .ctc-hero-quick-lead) {
    font-size: 16.5px !important;
    line-height: 1.88 !important;
    max-width: 100% !important;
  }

  /* 히어로 타이틀: 화면 차지율 충분하게 */
  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
    .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: clamp(30px, 8vw, 38px) !important;
    line-height: 1.2 !important;
    margin-bottom: 18px !important;
    max-width: 100% !important;
  }

  body.ksl-page-index .lp-hero-title {
    font-size: clamp(32px, 8.8vw, 42px) !important;
  }

  /* 히어로 리드: 16.5 / 1.88 */
  body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
    .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
    font-size: 16.5px !important;
    line-height: 1.88 !important;
    margin-bottom: 28px !important;
    max-width: 100% !important;
  }

  /* 섹션 타이틀 */
  main.page-main :is(.lp-section-title, .svc-section-title,
    .ab-section-title, .section-title, .faq-group-title, .cases-head-title,
    .page-title, .case-detail-title, .legal-clause-title, .form-title) {
    font-size: clamp(24px, 6.4vw, 30px) !important;
    line-height: 1.28 !important;
    margin-bottom: 14px;
  }

  /* 카드 제목 */
  main.page-main :is(.svc-card h3, .svc-card-title, .lp-card-title,
    .cases-card-title, .faq-question, .svc-faq-q,
    .case-detail-block-title, .ctc-channel-title) {
    font-size: 19px !important;
    line-height: 1.38 !important;
  }

  /* 섹션 여백 모바일 */
  main.page-main :is(.lp-section, .svc-section, .ab-section,
    .legal-body, .case-detail-section, .sc-form-wrap) {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }

  main.page-main :is(.lp-section-head, .svc-section-header,
    .ab-section-head, .faq-section-head, .cases-section-header) {
    margin-bottom: 36px !important;
    text-align: left;
  }

  /* 히어로 패딩 */
  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area,
    .contact-hero, .legal-hero) {
    padding-top: 108px !important;
    padding-bottom: 72px !important;
  }

  /* 컨테이너 좌우 패딩 */
  body :is(.container, .inner, .svc-container, .sc-container,
    .ksl-template-container, .cx-container) {
    padding-left: max(20px, env(safe-area-inset-left)) !important;
    padding-right: max(20px, env(safe-area-inset-right)) !important;
  }

  /* 카드 내부 여백 */
  main.page-main :is(.svc-card, .svc-compare-card, .svc-timeline-step,
    .svc-hero-card, .lp-problem-item, .lp-trust-card, .lp-card,
    .lp-faq-card, .lp-consult-form-wrap, .legal-article, .sc-card,
    .sc-contact, .contact-card, .ctc-form-card, .cases-card, .info-card,
    .form-card, .ctc-channel) {
    padding: 24px 20px !important;
    border-radius: 10px !important;
  }

  /* 버튼: 전폭 + 크게 */
  main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn,
    .sc-nav-btn, .sc-submit-btn, .cta-btn, .btn-big) {
    width: 100%;
    min-height: 58px !important;
    padding: 17px 20px !important;
    font-size: 16px !important;
  }

  /* 히어로 CTA: 세로 스택, 전폭 */
  body :is(.lp-hero-cta, .ab-hero-cta, .svc-actions,
    .contact-hero-actions, .sc-hero-cta) {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  body :is(.lp-hero-cta, .ab-hero-cta, .svc-actions,
    .contact-hero-actions, .sc-hero-cta) > * {
    width: 100%;
  }

  /* 모든 그리드 → 1열 */
  main.page-main :is(.svc-grid, .cases-grid, .lp-problem-list,
    .lp-trust-list, .info-grid, .ctc-channels, .ctc-row,
    .ctc-summary, .ctc-summary-cta, .form-grid-two, .lp-form-row--two,
    .sc-options--grid, .sc-options--4, .contact-fields,
    .ctc-form-grid, .sc-contact-fields) {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  /* 모바일 메뉴 링크 */
  .site-header .gnb .nav-link {
    min-height: 56px !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    padding: 0 16px !important;
  }

  /* 로고 서브 380px 이상만 노출 */
  .logo-sub {
    display: none !important;
  }

  @media (min-width: 380px) {
    .logo-sub {
      display: block !important;
      font-size: 10.5px !important;
    }
  }

  /* 고정 CTA 바 — 전폭 + 높이 확보 */
  .fixed-cta-bar {
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom)) !important;
  }

  .fixed-cta-bar .cta-btn {
    min-height: 52px !important;
    padding: 10px 12px !important;
  }

  /* 섹션 내 단락 수직 리듬 */
  main.page-main :is(p + p, p + ul, p + ol) {
    margin-top: 16px;
  }

  /* 테이블 모바일 — 비교표 자동 카드 스택 */
  main.page-main table th,
  main.page-main table td {
    padding: 14px 12px !important;
    font-size: 15.5px !important;
  }
}

/* ── 극소형(≤ 420px) ───────────────────────────── */
@media (max-width: 420px) {
  body :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title,
    .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }

  body.ksl-page-index .lp-hero-title {
    font-size: 30px !important;
  }

  body :is(.svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
    .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc) {
    font-size: 16px !important;
    line-height: 1.82 !important;
  }

  main.page-main :is(.lp-section-title, .svc-section-title,
    .ab-section-title, .section-title, .faq-group-title, .page-title) {
    font-size: 23px !important;
    line-height: 1.3 !important;
  }

  main.page-main :is(p, li, dd, .svc-card p, .lp-card p,
    .lp-section-lead, .svc-section-desc) {
    font-size: 16px !important;
    line-height: 1.84 !important;
  }

  main.page-main :is(.svc-card h3, .svc-card-title, .lp-card-title,
    .cases-card-title, .faq-question, .svc-faq-q, .ctc-channel-title) {
    font-size: 18px !important;
  }
}

/* ── 작은 텍스트 최소 크기 보장 (14px 미만 금지) ─── */
main.page-main :is(small, figcaption, .meta, .caption, .help-text,
  .form-help, .ctc-submit-note, .ctc-privacy-detail,
  .footer-meta, .footer-info) {
  font-size: 14px !important;
  line-height: 1.7 !important;
  color: var(--text-muted) !important;
}

/* 아이콘 옆 텍스트 정렬 */
main.page-main :is(.ctc-hero-trust li, .hero-trust-bar li) {
  font-size: 14.5px !important;
  font-weight: 650;
}

/* ── 스크롤 시 히어로 나가고 고정 헤더 확실한 그림자 ── */
.site-header.is-scrolled {
  box-shadow: 0 8px 24px -8px rgba(5, 13, 27, 0.12) !important;
}

/* ── 다크 배경 섹션의 본문 콘트라스트 최대 ─────────── */
main.page-main :is(.svc-section--dark, .svc-final, .ab-final, .lp-consult,
  .lp-inline-cta--dark, .consult-card) :is(p, li, dd) {
  color: #f3f6fb !important;
  font-size: 17px !important;
  line-height: 1.85 !important;
}

main.page-main :is(.svc-section--dark, .svc-final, .ab-final, .lp-consult,
  .lp-inline-cta--dark, .consult-card) :is(.lp-section-lead,
  .svc-section-desc, .consult-desc) {
  color: #eef2f8 !important;
}

/* ── 컬러 블록 구분 시각성 ───────────────────────────── */
main.page-main hr,
main.page-main .ksl-section-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border-strong),
    transparent);
  border: none;
  margin: 40px 0;
  opacity: 0.5;
}

/* ── placeholder 대비 ───────────────────────────── */
main.page-main ::placeholder {
  color: var(--text-light) !important;
  opacity: 1 !important;
}

/* ── 체크박스/라디오 크기 키움 (모바일 탭 용이) ───── */
main.page-main input[type="checkbox"],
main.page-main input[type="radio"] {
  width: 20px !important;
  height: 20px !important;
  min-height: 20px !important;
  accent-color: var(--accent-text);
  cursor: pointer;
}

/* ── 푸터 가독성 ─────────────────────────────────────── */
.site-footer {
  font-size: 15px;
  line-height: 1.75;
}

.site-footer :is(p, li, dd, span, .footer-desc, .footer-contact) {
  font-size: 15px !important;
  line-height: 1.78 !important;
  color: #e1e7f0 !important;
}

.site-footer a {
  font-weight: 600;
}

.site-footer h4,
.site-footer .footer-logo-main {
  font-size: 16px !important;
  font-weight: 900 !important;
  color: #fff !important;
  letter-spacing: -0.01em;
  margin-bottom: 14px;
}

@media (max-width: 768px) {
  .site-footer :is(p, li, dd, span) {
    font-size: 15.5px !important;
  }
  .site-footer :is(.footer-links, .footer-quick) li + li {
    margin-top: 4px;
  }
}

/* =====================================================================
   DARK-CONTEXT READABILITY FIX
   Max Readability Layer 의 전역 navy heading / secondary paragraph 색상이
   다크 배경 영역(히어로·히어로 카드·svc-final·consult-card·다크 섹션)에서
   텍스트를 배경에 묻히게 하는 문제 수정.
   ===================================================================== */

/* ── 다크 섹션/카드 내부 ALL 제목: 흰색 강제 ──────────── */
main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero, .faq-hero,
  .legal-hero, .hero-area,
  .svc-hero-card, .lp-hero-card,
  .svc-final, .ab-final, .svc-section--dark,
  .lp-consult, .lp-inline-cta--dark, .consult-card,
  .svc-card--dark, .svc-next
) :is(
  h1, h2, h3, h4, h5, h6,
  .svc-hero-title, .lp-hero-title, .ab-hero-name, .sc-hero-title,
  .contact-hero-title, .faq-hero-title, .legal-title, .hero-title,
  .svc-final-title, .ab-final-title, .consult-title,
  .svc-card-title, .svc-card-kicker,
  .svc-section-title, .lp-section-title, .ab-section-title
) {
  color: #ffffff !important;
}

/* 단, 다크 영역 내부에서도 강제 라이트 배경 카드가 있으면 제목은 navy 유지 */
main.page-main :is(.svc-hero, .lp-hero, .ab-hero) :is(.svc-card, .lp-card,
  .info-card, .form-card):not(.svc-hero-card):not(.svc-card--dark) :is(
  h1, h2, h3, h4, .svc-card-title, .lp-card-title) {
  color: var(--navy) !important;
}

/* ── 다크 섹션/카드 내부 본문 p·li·dd: 라이트 톤 강제 ─── */
main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero, .faq-hero,
  .legal-hero, .hero-area,
  .svc-hero-card, .lp-hero-card,
  .svc-final, .ab-final, .svc-section--dark,
  .lp-consult, .lp-inline-cta--dark, .consult-card,
  .svc-card--dark, .svc-next
) :is(p, li, dd, dt, span, small, figcaption) {
  color: #eef2f8 !important;
}

/* 히어로 리드 텍스트 — 더 밝게 */
main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero, .faq-hero,
  .legal-hero, .hero-area,
  .svc-final, .ab-final, .lp-consult, .consult-card
) :is(
  .svc-hero-desc, .lp-hero-lead, .ab-hero-lead, .sc-hero-sub,
  .contact-hero-desc, .faq-hero-desc, .legal-lead, .hero-desc,
  .svc-final-desc, .ab-final-lead, .consult-desc, .lp-section-lead
) {
  color: var(--hero-body) !important;
}

/* 작은 메타 텍스트 — 약간 더 흐린 톤 */
main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero,
  .svc-hero-card, .svc-final, .lp-consult, .consult-card, .svc-card--dark
) :is(
  .svc-card-note, .svc-card-meta, .hero-meta, .meta, .caption, small,
  .svc-final-trust, .hero-trust-bar li, .ctc-hero-trust li
) {
  color: var(--hero-muted) !important;
}

/* 다크 내부 강조 유지 */
main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero, .faq-hero,
  .legal-hero, .svc-hero-card, .svc-final, .ab-final, .lp-consult,
  .lp-inline-cta--dark, .consult-card, .svc-card--dark,
  .svc-section--dark
) :is(p, li, dd) strong,
main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero, .faq-hero,
  .legal-hero, .svc-hero-card, .svc-final, .ab-final, .lp-consult,
  .lp-inline-cta--dark, .consult-card, .svc-card--dark,
  .svc-section--dark
) :is(p, li, dd) b {
  color: #ffffff !important;
  font-weight: 900 !important;
}

main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero, .faq-hero,
  .legal-hero, .svc-hero-card, .svc-final, .ab-final, .lp-consult,
  .lp-inline-cta--dark, .consult-card, .svc-card--dark
) :is(p, li, dd) em,
main.page-main :is(
  .svc-hero, .lp-hero, .ab-hero, .sc-hero, .contact-hero, .faq-hero,
  .legal-hero, .svc-hero-card, .svc-final, .ab-final, .lp-consult,
  .lp-inline-cta--dark, .consult-card, .svc-card--dark
) :is(.svc-hero-title, .svc-final-title, .lp-hero-title, .hero-title,
     .svc-section-title) :is(em, .hl) {
  color: var(--gold-light) !important;
  font-style: normal;
  font-weight: 900 !important;
}

/* ── svc-final-title 전용 스케일 (히어로급) ─────────── */
main.page-main .svc-final-title,
main.page-main .ab-final-title,
main.page-main .consult-title {
  font-size: clamp(28px, 3.6vw, 46px) !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  letter-spacing: -0.028em !important;
  margin-bottom: 18px !important;
  color: #ffffff !important;
}

@media (max-width: 768px) {
  main.page-main .svc-final-title,
  main.page-main .ab-final-title,
  main.page-main .consult-title {
    font-size: clamp(24px, 6.4vw, 30px) !important;
    line-height: 1.26 !important;
  }
}

/* ── svc-hero-card 내부 제목/본문 계층 — 다크 카드 전용 ── */
main.page-main .svc-hero-card .svc-card-title {
  font-size: clamp(19px, 2.2vw, 24px) !important;
  line-height: 1.35 !important;
  color: #ffffff !important;
  margin-bottom: 12px;
}

main.page-main .svc-hero-card .svc-card-kicker {
  color: var(--gold-light) !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  letter-spacing: 0.22em !important;
}

main.page-main .svc-hero-card :is(.svc-card-desc, .svc-card-note) {
  color: var(--hero-body) !important;
  font-size: 15.5px !important;
  line-height: 1.78 !important;
}

main.page-main .svc-hero-card .svc-card-checks li {
  color: var(--hero-body) !important;
  font-size: 15px !important;
}

/* 카드 내부 "또는" 구분자 색 */
main.page-main .svc-hero-card .svc-card-or span {
  color: var(--hero-muted) !important;
  font-size: 13px !important;
  letter-spacing: 0.14em;
}

/* 카드 내부 연락처 링크 */
main.page-main .svc-hero-card .svc-card-contact {
  color: #fff !important;
  font-weight: 800 !important;
}

/* ── svc-sticky-mobile: 플로팅 하단 2버튼 — 모바일 전용 ── */
.svc-sticky-mobile {
  display: flex;
  gap: 10px;
}

.svc-sticky-mobile .svc-sticky-btn {
  flex: 1;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 15.5px;
  font-weight: 900;
  border-radius: 10px;
}

/* ── Location page: loc-actions 3버튼 데스크탑 가로 배치 ── */
@media (min-width: 769px) {
  .svc-page--location .loc-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 20px;
  }

  .svc-page--location .loc-actions .svc-btn {
    flex: 0 1 auto;
  }
}

/* ── svc-final-actions: 데스크탑 가로 배치, 모바일 세로 ─ */
@media (min-width: 769px) {
  main.page-main .svc-final-actions {
    display: inline-flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
  }

  main.page-main .svc-final-actions .svc-btn {
    flex: 0 1 auto;
  }
}

/* ── svc-card-actions (히어로 카드 내 2버튼) ─────────── */
main.page-main .svc-hero-card .svc-card-actions {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

@media (min-width: 1025px) {
  main.page-main .svc-hero-card .svc-card-actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* 다크 카드 내부 ghost 버튼 가독성 */
main.page-main .svc-hero-card .svc-btn--ghost,
main.page-main .svc-hero-card .svc-btn--outline {
  background: rgba(255, 255, 255, 0.10) !important;
  color: #ffffff !important;
  border: 2px solid rgba(255, 255, 255, 0.58) !important;
}

main.page-main .svc-hero-card .svc-btn--ghost:hover,
main.page-main .svc-hero-card .svc-btn--outline:hover {
  background: #fff !important;
  color: var(--navy) !important;
  border-color: #fff !important;
}

/* ── Location proof bar (방문/전화/온라인) ──────────── */
main.page-main .svc-page--location .svc-proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--hero-border);
}

main.page-main .svc-page--location .svc-proof-card {
  padding: 4px 20px;
  border-right: 1px solid var(--hero-border);
}

main.page-main .svc-page--location .svc-proof-card:first-child {
  padding-left: 0;
}

main.page-main .svc-page--location .svc-proof-card:last-child {
  padding-right: 0;
  border-right: 0;
}

main.page-main .svc-page--location .svc-proof-card strong {
  display: block;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  margin-bottom: 4px;
}

main.page-main .svc-page--location .svc-proof-card span {
  display: block;
  color: var(--hero-muted) !important;
  font-size: 13.5px !important;
  line-height: 1.6;
}

@media (max-width: 768px) {
  main.page-main .svc-page--location .svc-proof {
    grid-template-columns: 1fr !important;
    gap: 12px;
    padding-top: 18px;
  }
  main.page-main .svc-page--location .svc-proof-card {
    padding: 10px 0;
    border-right: 0;
    border-bottom: 1px solid var(--hero-border);
  }
  main.page-main .svc-page--location .svc-proof-card:last-child {
    border-bottom: 0;
  }
}

/* ── Location info list (주소/시간/전화) ──────────── */
main.page-main .svc-page--location .loc-info-list {
  display: grid;
  gap: 14px;
  margin-top: 28px;
  padding: 24px 28px;
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: 12px;
  list-style: none;
}

main.page-main .svc-page--location .loc-info-list li {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  font-size: 16px !important;
  line-height: 1.7 !important;
  padding: 0 !important;
}

main.page-main .svc-page--location .loc-info-list li::before {
  display: none;
}

main.page-main .svc-page--location .loc-info-label {
  color: var(--text-muted) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

main.page-main .svc-page--location .loc-info-value {
  color: var(--text-primary) !important;
  font-size: 16px !important;
  font-weight: 600;
  word-break: keep-all;
}

main.page-main .svc-page--location .loc-info-value a {
  color: var(--accent-text);
  font-weight: 800;
}

@media (max-width: 768px) {
  main.page-main .svc-page--location .loc-info-list {
    padding: 20px 18px;
    margin-top: 24px;
  }
  main.page-main .svc-page--location .loc-info-list li {
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 12px;
  }
}

/* ── Location transport card (대중교통·주차) 가독성 ──── */
main.page-main .svc-page--location .svc-card--transport {
  padding: 32px !important;
  border-radius: 14px !important;
}

main.page-main .svc-page--location .svc-card--transport .svc-card-icon {
  display: inline-flex;
  width: 52px;
  height: 52px;
  align-items: center;
  justify-content: center;
  background: var(--gold-muted);
  color: var(--accent-text);
  border-radius: 12px;
  font-size: 22px;
  margin-bottom: 18px;
}

main.page-main .svc-page--location .svc-card--transport h3 {
  font-size: 20px !important;
  font-weight: 900 !important;
  margin-bottom: 14px;
  color: var(--navy) !important;
}

main.page-main .svc-page--location .loc-transport-list {
  display: grid;
  gap: 10px;
}

main.page-main .svc-page--location .loc-transport-list li {
  position: relative;
  padding-left: 18px;
  color: var(--text-secondary) !important;
  font-size: 16px !important;
  line-height: 1.72 !important;
}

main.page-main .svc-page--location .loc-transport-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 6px;
  height: 6px;
  background: var(--accent-text);
  border-radius: 50%;
}

main.page-main .svc-page--location .loc-transport-list li strong {
  display: inline;
  color: var(--navy) !important;
  font-weight: 900 !important;
  margin-right: 4px;
}

@media (max-width: 768px) {
  main.page-main .svc-page--location .svc-card--transport {
    padding: 22px 20px !important;
  }
  main.page-main .svc-page--location .loc-transport-list li {
    font-size: 15.5px !important;
  }
}

/* ── Location chips (히어로 내 뱃지) ──────────────── */
main.page-main .svc-page--location .svc-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 24px;
}

main.page-main .svc-page--location .svc-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  color: #fff !important;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.005em;
}

main.page-main .svc-page--location .svc-chip i {
  color: var(--gold-light);
}

/* ── Final section trust pills ─────────────────── */
main.page-main .svc-final-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  justify-content: center;
  margin: 20px 0 28px;
  padding: 0;
  list-style: none;
}

main.page-main .svc-final-trust li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--hero-body) !important;
  font-size: 15px !important;
  font-weight: 600;
}

main.page-main .svc-final-trust li i {
  color: var(--gold-light);
}

/* ── map container 가독성 ──────────────────── */
.svc-page--location .loc-map {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border-light);
  background: var(--bg-warm);
  margin-bottom: 20px;
  box-shadow: var(--shadow-card-flat);
}

.svc-page--location .loc-map #ksl-naver-map {
  width: 100%;
  height: 460px;
  display: block;
}

@media (max-width: 1024px) {
  .svc-page--location .loc-map #ksl-naver-map { height: 380px; }
}

@media (max-width: 768px) {
  .svc-page--location .loc-map { border-radius: 10px; }
  .svc-page--location .loc-map #ksl-naver-map { height: 300px; }
}

@media (max-width: 420px) {
  .svc-page--location .loc-map #ksl-naver-map { height: 240px; }
}

/* =====================================================================
   HOMEPAGE STRUCTURE RESTORATION
   Max Readability Layer 의 전역 li/dd 규칙과 stat 와일드카드가 홈의
   특수 레이아웃(.lp-trust-numbers, .lp-hero-meta, .lp-problem-list,
   .lp-cred-line)을 깨뜨린 문제를 섹션별로 복구.
   ===================================================================== */

/* ── ① 트러스트 숫자 dl 레이아웃 (4→2→1 반응형) ──────── */
main.page-main .lp-trust-numbers {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin: clamp(40px, 5vw, 64px) 0 0 !important;
  padding: 0 !important;
  border-top: 1px solid var(--border-strong);
  border-bottom: 1px solid var(--border-light);
  list-style: none;
}

main.page-main .lp-trust-numbers > div {
  display: block !important;
  text-align: left !important;
  padding: 36px 28px !important;
  border-right: 1px solid var(--border-light);
  position: relative;
  max-width: none !important;
  font-size: inherit !important;
  line-height: 1.3 !important;
}

main.page-main .lp-trust-numbers > div:first-child {
  padding-left: 0 !important;
}

main.page-main .lp-trust-numbers > div:last-child {
  padding-right: 0 !important;
  border-right: 0 !important;
}

main.page-main .lp-trust-numbers dt {
  display: block !important;
  margin: 0 0 10px !important;
  color: var(--navy) !important;
  font-family: var(--font-display) !important;
  font-size: clamp(28px, 3.6vw, 44px) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.035em !important;
  font-variant-numeric: tabular-nums;
  max-width: none !important;
}

main.page-main .lp-trust-numbers dt span {
  display: inline-block;
  margin-left: 4px;
  color: var(--accent-text) !important;
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  vertical-align: baseline;
  text-transform: none;
  line-height: 1;
}

main.page-main .lp-trust-numbers dd {
  display: block !important;
  margin: 0 !important;
  color: var(--text-muted) !important;
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  font-weight: 600 !important;
  letter-spacing: -0.003em !important;
  max-width: none !important;
  word-break: keep-all;
}

@media (max-width: 992px) {
  main.page-main .lp-trust-numbers {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  main.page-main .lp-trust-numbers > div {
    padding: 28px 20px !important;
    border-bottom: 1px solid var(--border-light);
  }
  main.page-main .lp-trust-numbers > div:nth-child(2n) {
    border-right: 0 !important;
  }
  main.page-main .lp-trust-numbers > div:nth-child(2n+1) {
    padding-left: 0 !important;
    padding-right: 20px !important;
  }
  main.page-main .lp-trust-numbers > div:nth-last-child(-n+2) {
    border-bottom: 0;
  }
  main.page-main .lp-trust-numbers dt {
    font-size: clamp(26px, 6.4vw, 34px) !important;
  }
}

@media (max-width: 520px) {
  main.page-main .lp-trust-numbers {
    grid-template-columns: 1fr !important;
  }
  main.page-main .lp-trust-numbers > div {
    padding: 24px 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--border-light);
  }
  main.page-main .lp-trust-numbers > div:last-child {
    border-bottom: 0;
  }
  main.page-main .lp-trust-numbers dt {
    font-size: 30px !important;
  }
}

/* ── ② 히어로 메타 pill 리스트 — 작은 사이즈 유지 ────── */
main.page-main .lp-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  list-style: none;
  margin: 22px 0 0 !important;
  padding: 0;
}

main.page-main .lp-hero-meta li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--hero-muted) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  max-width: none !important;
}

main.page-main .lp-hero-meta i {
  color: var(--gold-light);
  font-size: 12px;
}

/* ── ③ 히어로 자격 요약 (.lp-hero-credentials) ──────── */
main.page-main .lp-cred-line {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  color: #fff !important;
}

main.page-main .lp-cred-line:last-child {
  border-bottom: 0;
}

main.page-main .lp-cred-mark {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(210, 180, 108, 0.32);
  border-radius: 10px;
  background: rgba(210, 180, 108, 0.08);
  color: var(--gold-light);
  font-size: 17px;
}

main.page-main .lp-cred-body {
  display: grid;
  gap: 4px;
  min-width: 0;
}

main.page-main .lp-cred-body strong {
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.4 !important;
  letter-spacing: -0.005em;
}

main.page-main .lp-cred-body > span {
  color: var(--hero-muted) !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
}

main.page-main .lp-cred-arrow {
  color: var(--gold-light);
  font-size: 12px;
}

/* ── ④ 문제 리스트 (.lp-problem-list) — 번호+텍스트 ── */
main.page-main .lp-problem-list {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border-strong);
}

main.page-main .lp-problem-item {
  display: flex !important;
  align-items: baseline !important;
  gap: 20px !important;
  padding: 22px 0 !important;
  border-bottom: 1px solid var(--border-light);
  font-size: clamp(16px, 2vw, 18px) !important;
  line-height: 1.58 !important;
  color: var(--text-primary) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  max-width: none !important;
}

main.page-main .lp-problem-num {
  flex: 0 0 auto;
  min-width: 32px;
  font-family: var(--font-display);
  font-size: 12px !important;
  font-weight: 900 !important;
  color: var(--accent-text) !important;
  letter-spacing: 0.22em !important;
  font-variant-numeric: tabular-nums;
  line-height: 1.5 !important;
}

main.page-main .lp-problem-text {
  flex: 1 1 auto;
  color: var(--text-primary) !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

@media (max-width: 768px) {
  main.page-main .lp-problem-item {
    padding: 18px 0 !important;
    gap: 14px !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
  }
  main.page-main .lp-problem-num {
    min-width: 26px;
    font-size: 11px !important;
  }
}

/* ── ⑤ 앵커 네비게이션 (.lp-anchor) ─────────────────── */
main.page-main .lp-anchor {
  position: sticky;
  top: var(--header-h);
  z-index: 50;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--border-light);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

main.page-main .lp-anchor-inner {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 10px 24px;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

main.page-main .lp-anchor-inner::-webkit-scrollbar {
  display: none;
}

main.page-main .lp-anchor-link {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 8px;
  color: var(--text-muted) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: -0.005em;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease;
}

main.page-main .lp-anchor-link:hover,
main.page-main .lp-anchor-link.is-active {
  color: var(--navy) !important;
  background: var(--gold-muted);
}

main.page-main .lp-anchor-link--cta {
  padding: 0 18px !important;
  background: var(--navy) !important;
  color: #fff !important;
  margin-left: auto;
}

main.page-main .lp-anchor-link--cta:hover {
  background: var(--gold-light) !important;
  color: var(--navy) !important;
}

@media (max-width: 768px) {
  main.page-main .lp-anchor-inner {
    padding: 8px 20px;
  }
  main.page-main .lp-anchor-link {
    font-size: 13.5px !important;
    min-height: 36px;
    padding: 0 12px;
  }
}

/* ── ⑥ 인라인 CTA (.lp-inline-cta) ──────────────── */
main.page-main .lp-inline-cta {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 36px 0;
  margin: clamp(32px, 4vw, 48px) 0;
  border-top: 1px solid var(--border-strong);
  border-bottom: 1px solid var(--border-strong);
  background: transparent;
}

main.page-main .lp-inline-cta-copy {
  flex: 1 1 380px;
  margin: 0 !important;
  color: var(--text-secondary) !important;
  font-size: 16.5px !important;
  line-height: 1.7 !important;
  max-width: 52ch !important;
}

main.page-main .lp-inline-cta-copy strong {
  display: block;
  margin-bottom: 4px;
  color: var(--navy) !important;
  font-size: 18px !important;
  font-weight: 900 !important;
}

main.page-main .lp-inline-cta-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

main.page-main .lp-inline-cta-actions .lp-btn {
  min-height: 48px !important;
  padding: 13px 22px !important;
  font-size: 14.5px !important;
  width: auto !important;
}

main.page-main .lp-inline-cta .lp-btn--text {
  min-height: 48px !important;
  padding: 13px 8px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--accent-text) !important;
  font-weight: 900 !important;
}

@media (max-width: 768px) {
  main.page-main .lp-inline-cta {
    flex-direction: column;
    align-items: flex-start;
    padding: 28px 0;
    gap: 18px;
  }
  main.page-main .lp-inline-cta-actions {
    width: 100%;
  }
  main.page-main .lp-inline-cta-actions .lp-btn {
    flex: 1;
  }
}

/* ── ⑦ 신뢰 리스트 (.lp-trust-list) ────────────────── */
main.page-main .lp-trust-list {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border-strong);
}

main.page-main .lp-trust-list > li {
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) !important;
  gap: 20px !important;
  align-items: flex-start !important;
  padding: 26px 0 !important;
  border-bottom: 1px solid var(--border-light);
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  max-width: none !important;
}

main.page-main .lp-trust-list .lp-trust-mark {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  background: var(--gold-muted);
  color: var(--accent-text);
  border-radius: 10px;
  font-size: 18px;
}

main.page-main .lp-trust-list > li > div {
  min-width: 0;
}

main.page-main .lp-trust-list > li strong {
  display: block;
  margin-bottom: 8px;
  color: var(--navy) !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.4 !important;
  letter-spacing: -0.01em;
}

main.page-main .lp-trust-list > li p {
  margin: 0 0 10px !important;
  color: var(--text-secondary) !important;
  font-size: 15.5px !important;
  line-height: 1.72 !important;
  max-width: 64ch !important;
}

main.page-main .lp-trust-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--accent-text) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

main.page-main .lp-trust-link i {
  font-size: 11px;
}

@media (max-width: 768px) {
  main.page-main .lp-trust-list > li {
    grid-template-columns: 36px minmax(0, 1fr) !important;
    gap: 14px !important;
    padding: 22px 0 !important;
  }
  main.page-main .lp-trust-list .lp-trust-mark {
    width: 36px;
    height: 36px;
    font-size: 15px;
  }
  main.page-main .lp-trust-list > li strong {
    font-size: 16px !important;
  }
  main.page-main .lp-trust-list > li p {
    font-size: 15px !important;
  }
}

/* ── ⑧ 메시지 섹션 (.lp-message) 본문 가독성 ─────── */
main.page-main .lp-message-copy {
  max-width: 60ch !important;
  margin: 0 auto !important;
}

main.page-main .lp-message-copy p {
  font-size: 16.5px !important;
  line-height: 1.88 !important;
  color: var(--text-secondary) !important;
  margin: 0 0 18px !important;
  max-width: 60ch !important;
}

main.page-main .lp-message-lead {
  font-size: 17.5px !important;
  line-height: 1.82 !important;
}

main.page-main .lp-message-lead strong {
  color: var(--navy) !important;
  font-weight: 800 !important;
}

main.page-main .lp-message-title {
  margin-bottom: 28px !important;
}

main.page-main .lp-message-title em {
  color: var(--accent-text) !important;
  font-style: normal !important;
  font-weight: 900 !important;
}

/* ── ⑨ 히어로 스크롤 다운 표시 ───────────────────── */
main.page-main .lp-hero-down {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: var(--hero-muted) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.22em !important;
  text-decoration: none !important;
}

main.page-main .lp-hero-down i {
  animation: kslFloat 2.2s ease-in-out infinite;
}

/* ── ⑩ 히어로 eyebrow 라인 ─────────────────────── */
main.page-main .lp-eyebrow {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
}

main.page-main .lp-eyebrow-line {
  display: inline-block;
  width: 40px;
  height: 1.5px;
  background: var(--gold-light);
}

main.page-main .lp-eyebrow > span:not(.lp-eyebrow-line) {
  color: var(--gold-light) !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
}

/* ─────────────────────────────────────────────────────────
   END OF ENHANCEMENT LAYER
   ───────────────────────────────────────────────────────── */

/* =====================================================================
   Device Readability Max Layer
   Final pass for desktop/mobile reading rhythm, measure, emphasis, CTA.
   ===================================================================== */

:root {
  --read-measure: 62ch;
  --read-measure-narrow: 48ch;
  --read-gap: clamp(18px, 2.2vw, 28px);
  --read-section-gap: clamp(34px, 4.8vw, 64px);
  --read-card-pad: clamp(22px, 2.8vw, 34px);
  --read-mobile-pad: 18px;
  --read-body-size: clamp(16px, 0.28vw + 15px, 18px);
  --read-lead-size: clamp(17px, 0.42vw + 15.5px, 20px);
  --read-title-size: clamp(30px, 2.6vw, 44px);
  --read-subtitle-size: clamp(23px, 1.45vw, 32px);
  --read-card-title-size: clamp(19px, 0.65vw + 16px, 23px);
}

body,
body * {
  letter-spacing: 0 !important;
}

body {
  font-size: var(--read-body-size) !important;
  line-height: 1.78 !important;
}

body :is(.container, .inner, .svc-container, .sc-container, .ksl-template-container, .cx-container) {
  padding-left: clamp(22px, 4vw, 36px) !important;
  padding-right: clamp(22px, 4vw, 36px) !important;
}

main.page-main :is(p, li, dd, dt, td, th, label) {
  color: var(--text-secondary) !important;
  font-size: var(--read-body-size) !important;
  line-height: 1.84 !important;
}

main.page-main :is(p, ul, ol, dl, blockquote) {
  max-width: var(--read-measure) !important;
}

main.page-main :is(p, ul, ol, dl) {
  margin-top: 0;
  margin-bottom: 1.05em;
}

main.page-main :is(li + li, dd + dt) {
  margin-top: 0.42em;
}

main.page-main :is(strong, b) {
  color: var(--navy) !important;
  font-weight: 900 !important;
}

main.page-main :is(em, mark) {
  font-style: normal !important;
  color: var(--gold) !important;
  background: transparent !important;
  font-weight: 900 !important;
}

main.page-main :is(
  h1,
  .lp-hero-title,
  .ab-hero-name,
  .svc-hero-title,
  .sc-hero-title,
  .contact-hero-title,
  .faq-hero-title,
  .legal-title,
  .hero-title
) {
  max-width: 15ch !important;
  font-size: clamp(42px, 5vw, 66px) !important;
  line-height: 1.12 !important;
  font-weight: 900 !important;
  text-wrap: balance;
}

main.page-main :is(
  h2,
  .lp-section-title,
  .svc-section-title,
  .ab-section-title,
  .section-title,
  .faq-group-title,
  .cases-head-title,
  .legal-clause-title,
  .form-title,
  .page-title,
  .case-detail-title,
  .lp-message-title
) {
  max-width: 18ch !important;
  color: var(--navy) !important;
  font-size: var(--read-title-size) !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  text-wrap: balance;
}

main.page-main :is(
  h3,
  .svc-card-title,
  .lp-card-title,
  .cases-card-title,
  .case-detail-block-title,
  .faq-question,
  .svc-faq-q,
  .ctc-channel-title
) {
  max-width: 24ch !important;
  color: var(--navy) !important;
  font-size: var(--read-card-title-size) !important;
  line-height: 1.34 !important;
  font-weight: 900 !important;
  text-wrap: balance;
}

main.page-main :is(
  .lp-section-lead,
  .svc-section-desc,
  .ab-section-lead,
  .section-desc,
  .faq-group-desc,
  .cases-head-sub,
  .legal-lead,
  .form-desc,
  .page-excerpt,
  .lp-hero-lead,
  .svc-hero-desc,
  .ab-hero-lead,
  .sc-hero-sub,
  .contact-hero-desc,
  .faq-hero-desc,
  .hero-desc
) {
  max-width: var(--read-measure-narrow) !important;
  font-size: var(--read-lead-size) !important;
  line-height: 1.76 !important;
  color: var(--text-secondary) !important;
  text-wrap: pretty;
}

main.page-main :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) :is(
  .lp-hero-lead,
  .svc-hero-desc,
  .ab-hero-lead,
  .sc-hero-sub,
  .contact-hero-desc,
  .faq-hero-desc,
  .hero-desc,
  p,
  li
) {
  color: var(--hero-body) !important;
}

main.page-main :is(
  .lp-kicker,
  .svc-section-kicker,
  .ab-kicker,
  .section-kicker,
  .faq-group-kicker,
  .cases-head-kicker,
  .legal-toc-label,
  .hero-kicker,
  .lp-eyebrow,
  .svc-kicker,
  .ab-eyebrow,
  .sc-hero-badge,
  .contact-hero-kicker,
  .faq-hero-kicker
) {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  color: var(--gold) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
}

main.page-main :is(.lp-section-head, .svc-section-header, .ab-section-head, .faq-section-head, .cases-section-header) {
  display: grid;
  gap: 14px;
  max-width: 780px !important;
  margin-bottom: var(--read-section-gap) !important;
}

main.page-main :is(.lp-section, .svc-section, .ab-section, .legal-body, .case-detail-section, .sc-form-wrap) {
  padding-top: clamp(76px, 8vw, 124px) !important;
  padding-bottom: clamp(76px, 8vw, 124px) !important;
}

main.page-main :is(
  .svc-card,
  .svc-compare-card,
  .svc-timeline-step,
  .svc-hero-card,
  .lp-problem-item,
  .lp-trust-card,
  .lp-card,
  .lp-faq-card,
  .lp-consult-form-wrap,
  .ab-card,
  .ab-profile-card,
  .cases-card,
  .case-detail-block,
  .faq-item,
  .svc-faq-item,
  .contact-card,
  .ctc-form-card,
  .legal-toc,
  .legal-article,
  .sc-card,
  .sc-contact,
  .complete-confirm,
  .info-card,
  .form-card,
  .wp-content
) {
  padding: var(--read-card-pad) !important;
}

main.page-main :is(.svc-grid, .cases-grid, .lp-problem-list, .lp-trust-list, .info-grid, .ctc-channels) {
  gap: var(--read-gap) !important;
}

main.page-main :is(
  .btn,
  .lp-btn,
  .ab-btn,
  .svc-btn,
  .contact-btn,
  .sc-nav-btn,
  .sc-submit-btn,
  .cases-card-cta,
  .cta-btn,
  .btn-big,
  .submit-btn,
  .contact-submit,
  .desktop-consult-submit
) {
  min-height: 54px !important;
  padding: 16px 26px !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-align: center;
}

main.page-main :is(
  .lp-hero-cta,
  .ab-hero-cta,
  .svc-actions,
  .contact-hero-actions,
  .sc-hero-cta,
  .svc-final-actions,
  .ab-final-actions,
  .btn-action-group,
  .lp-inline-cta-actions
) {
  gap: 12px !important;
}

main.page-main :is(input, select, textarea, .form-input, .form-select, .form-textarea, .sc-input, .desktop-consult-input) {
  min-height: 52px !important;
  padding: 14px 16px !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
}

main.page-main textarea {
  min-height: 132px !important;
}

main.page-main :is(.svc-section--dark, .svc-final, .ab-final, .lp-consult, .lp-inline-cta--dark, .consult-card) :is(p, li, dd, dt, span) {
  color: #eef2f8 !important;
}

main.page-main :is(.svc-section--dark, .svc-final, .ab-final, .lp-consult, .lp-inline-cta--dark, .consult-card) :is(h2, h3, h4, strong, b) {
  color: #fff !important;
}

@media (min-width: 993px) {
  main.page-main :is(.wp-content, .legal-article, .case-detail-content) {
    max-width: 820px !important;
  }

  main.page-main :is(.svc-hero-grid, .lp-hero-inner, .ctc-hero-inner) {
    gap: clamp(44px, 6vw, 86px) !important;
  }

  main.page-main :is(.svc-card p, .lp-card p, .cases-card p, .faq-answer, .svc-faq-a, .case-detail-block p) {
    max-width: 58ch !important;
  }
}

@media (max-width: 992px) {
  :root {
    --read-title-size: clamp(28px, 4.4vw, 38px);
    --read-subtitle-size: clamp(22px, 3.2vw, 30px);
  }

  body :is(.svc-hero-grid, .lp-hero-inner, .legal-body-inner, .case-detail-grid, .ctc-hero-inner) {
    grid-template-columns: 1fr !important;
  }

  main.page-main :is(.lp-hero-title, .ab-hero-name, .svc-hero-title, .sc-hero-title, .contact-hero-title, .faq-hero-title, .legal-title, .hero-title) {
    max-width: 16ch !important;
  }
}

@media (max-width: 768px) {
  :root {
    --read-measure: 100%;
    --read-measure-narrow: 100%;
    --read-gap: 14px;
    --read-section-gap: 28px;
    --read-card-pad: 20px;
    --read-body-size: 16px;
    --read-lead-size: 16.5px;
    --read-title-size: clamp(25px, 7vw, 32px);
    --read-card-title-size: 19px;
  }

  body {
    font-size: 16px !important;
    line-height: 1.82 !important;
  }

  body :is(.container, .inner, .svc-container, .sc-container, .ksl-template-container, .cx-container) {
    padding-left: var(--read-mobile-pad) !important;
    padding-right: var(--read-mobile-pad) !important;
  }

  main.page-main :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .hero-area, .contact-hero, .legal-hero) {
    padding-top: 96px !important;
    padding-bottom: 52px !important;
  }

  main.page-main :is(
    h1,
    .lp-hero-title,
    .ab-hero-name,
    .svc-hero-title,
    .sc-hero-title,
    .contact-hero-title,
    .faq-hero-title,
    .legal-title,
    .hero-title
  ) {
    max-width: 100% !important;
    font-size: clamp(30px, 8.8vw, 38px) !important;
    line-height: 1.18 !important;
  }

  main.page-main :is(
    h2,
    .lp-section-title,
    .svc-section-title,
    .ab-section-title,
    .section-title,
    .faq-group-title,
    .cases-head-title,
    .legal-clause-title,
    .form-title,
    .page-title,
    .case-detail-title,
    .lp-message-title
  ) {
    max-width: 100% !important;
    font-size: var(--read-title-size) !important;
    line-height: 1.28 !important;
  }

  main.page-main :is(p, li, dd, dt, td, th, label) {
    font-size: 16px !important;
    line-height: 1.86 !important;
  }

  main.page-main :is(.lp-section, .svc-section, .ab-section, .legal-body, .case-detail-section, .sc-form-wrap) {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  main.page-main :is(
    .svc-grid,
    .cases-grid,
    .info-grid,
    .lp-trust-list,
    .lp-problem-list,
    .ctc-channels,
    .contact-fields,
    .ctc-form-grid,
    .form-grid-two,
    .sc-options,
    .sc-options--grid,
    .sc-options--4,
    .sc-contact-fields,
    .lp-form-row--two
  ) {
    grid-template-columns: 1fr !important;
  }

  main.page-main :is(
    .lp-hero-cta,
    .ab-hero-cta,
    .svc-actions,
    .contact-hero-actions,
    .sc-hero-cta,
    .svc-final-actions,
    .ab-final-actions,
    .btn-action-group,
    .lp-inline-cta-actions,
    .sc-alt-actions,
    .complete-btn-area .btn-action-group
  ) {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  main.page-main :is(
    .btn,
    .lp-btn,
    .ab-btn,
    .svc-btn,
    .contact-btn,
    .sc-nav-btn,
    .sc-submit-btn,
    .cases-card-cta,
    .cta-btn,
    .btn-big,
    .submit-btn,
    .contact-submit
  ) {
    width: 100% !important;
    min-height: 56px !important;
    padding: 16px 18px !important;
    font-size: 16px !important;
  }

  main.page-main :is(.svc-card, .svc-compare-card, .svc-timeline-step, .lp-card, .lp-trust-card, .cases-card, .faq-item, .svc-faq-item, .legal-article, .sc-card, .contact-card, .ctc-form-card, .form-card) {
    padding: 20px 18px !important;
  }

  main.page-main :is(.lp-problem-item, .lp-trust-list > li) {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  .fixed-cta-bar {
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom)) !important;
  }

  .fixed-cta-bar .fixed-cta-inner {
    gap: 8px !important;
  }

  .fixed-cta-bar .cta-btn {
    min-height: 52px !important;
    padding: 8px 6px !important;
  }

  .fixed-cta-bar .cta-icon {
    width: 28px !important;
    height: 28px !important;
  }

  .fixed-cta-bar .cta-label-main {
    font-size: 13.5px !important;
    line-height: 1.25 !important;
  }
}

@media (max-width: 420px) {
  :root {
    --read-mobile-pad: 16px;
  }

  main.page-main :is(
    h1,
    .lp-hero-title,
    .ab-hero-name,
    .svc-hero-title,
    .sc-hero-title,
    .contact-hero-title,
    .faq-hero-title,
    .legal-title,
    .hero-title
  ) {
    font-size: clamp(28px, 8.6vw, 34px) !important;
  }

  main.page-main :is(
    h2,
    .lp-section-title,
    .svc-section-title,
    .ab-section-title,
    .section-title,
    .faq-group-title,
    .cases-head-title,
    .legal-clause-title,
    .form-title,
    .page-title,
    .case-detail-title
  ) {
    font-size: clamp(24px, 7.2vw, 29px) !important;
  }
}

/* =====================================================================
   MOBILE AESTHETIC LAYER  ✦  심미성·가독성 극대화 (20× 목표)
   - 가로 오버플로우 박멸
   - 직전 Device Readability Max Layer 가 누락한 다크 섹션(.lp-process,
     .lp-section-head--light) 예외 보완
   - 직전 레이어가 dt 를 본문 규칙에 다시 넣어 .lp-trust-numbers 깨진 것 복구
   - 고정 CTA 바 시각 위계 (gold primary / dark secondary) 복구
   - 히어로 자격 카드 텍스트 줄바꿈 정상화
   - 카드·섹션 호흡·마이크로 인터랙션 정밀화
   ===================================================================== */

/* ── ① 가로 오버플로우 박멸 ────────────────────── */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw;
}

main.page-main, main.page-main > * {
  max-width: 100%;
}

main.page-main img,
main.page-main video,
main.page-main iframe,
main.page-main svg {
  max-width: 100%;
  height: auto;
}

/* ── ② Device Readability Max Layer 의 dt 본문 규칙 무력화 ── */
/* dt 는 stat dl/dt/dd 의 큰 숫자에 쓰이므로 본문 사이즈로 덮으면 안 됨 */
main.page-main .lp-trust-numbers dt {
  font-family: var(--font-display) !important;
  font-size: clamp(28px, 3.6vw, 44px) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  color: var(--navy) !important;
  letter-spacing: -0.035em !important;
  max-width: none !important;
  margin: 0 0 10px !important;
  font-variant-numeric: tabular-nums;
}

main.page-main .lp-trust-numbers dd {
  font-size: 13.5px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  color: var(--text-muted) !important;
  max-width: none !important;
  margin: 0 !important;
}

main.page-main .lp-trust-numbers dt span {
  display: inline-block;
  margin-left: 4px;
  color: var(--accent-text) !important;
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1;
  vertical-align: baseline;
}

/* dl 에 적용된 max-width: 62ch 도 무력화 */
main.page-main .lp-trust-numbers,
main.page-main dl.lp-trust-numbers {
  max-width: none !important;
}

@media (max-width: 992px) {
  main.page-main .lp-trust-numbers {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  main.page-main .lp-trust-numbers dt {
    font-size: clamp(26px, 6.4vw, 34px) !important;
  }
}

@media (max-width: 520px) {
  main.page-main .lp-trust-numbers {
    grid-template-columns: 1fr !important;
  }
  main.page-main .lp-trust-numbers dt {
    font-size: 30px !important;
  }
}

/* ── ③ 다크 섹션 누락 보완 (.lp-process, --light 모디파이어) ── */
main.page-main :is(
  .lp-process,
  .lp-section-head--light,
  .lp-section--dark,
  .lp-cta-final
) {
  color: #fff;
}

main.page-main :is(
  .lp-process,
  .lp-section-head--light,
  .lp-section--dark,
  .lp-cta-final
) :is(
  h1, h2, h3, h4, h5, h6,
  .lp-section-title, .svc-section-title, .ab-section-title,
  .section-title, .lp-section-title--light
) {
  color: #ffffff !important;
}

main.page-main :is(
  .lp-process,
  .lp-section-head--light,
  .lp-section--dark,
  .lp-cta-final
) :is(p, li, dd, dt, span, small, .lp-section-lead) {
  color: var(--hero-body) !important;
}

main.page-main :is(
  .lp-process,
  .lp-section-head--light,
  .lp-section--dark,
  .lp-cta-final
) :is(.lp-kicker, .lp-kicker--light, .svc-kicker, .lp-eyebrow,
     .ds-kicker, .section-kicker) {
  color: var(--gold-light) !important;
  font-weight: 900 !important;
}

main.page-main :is(
  .lp-process,
  .lp-section-head--light,
  .lp-section--dark,
  .lp-cta-final
) :is(.lp-section-title, h2, h3, p, li, dd) :is(em, .hl) {
  color: var(--gold-light) !important;
  font-style: normal;
  font-weight: 900;
}

main.page-main :is(
  .lp-process,
  .lp-section-head--light,
  .lp-section--dark,
  .lp-cta-final
) :is(strong, b) {
  color: #fff !important;
}

/* ── ④ Process 섹션 다크 디자인 ──────────────────── */
main.page-main .lp-process {
  background: linear-gradient(180deg, #07101f 0%, #050d1b 100%) !important;
  position: relative;
  overflow: hidden;
}

main.page-main .lp-process::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 600px 300px at 80% 0%,
      rgba(216, 180, 95, 0.10) 0%, transparent 60%),
    radial-gradient(ellipse 500px 400px at 0% 100%,
      rgba(216, 180, 95, 0.06) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

main.page-main .lp-process > .container {
  position: relative;
  z-index: 1;
}

main.page-main .lp-timeline {
  display: grid;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: none !important;
}

main.page-main .lp-timeline-step {
  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: flex-start !important;
  padding: 22px !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(216, 180, 95, 0.18) !important;
  border-radius: 12px !important;
  max-width: none !important;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

main.page-main .lp-timeline-step:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(216, 180, 95, 0.36) !important;
  transform: translateY(-2px);
}

main.page-main .lp-timeline-num {
  display: inline-flex !important;
  width: 48px !important;
  height: 48px !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--gold-light) !important;
  color: var(--navy) !important;
  border-radius: 12px !important;
  font-family: var(--font-display);
  font-size: 17px !important;
  font-weight: 900 !important;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

main.page-main .lp-timeline-body {
  min-width: 0;
}

main.page-main .lp-timeline-body strong {
  display: block;
  margin-bottom: 6px;
  color: #fff !important;
  font-size: 16.5px !important;
  font-weight: 900 !important;
  line-height: 1.4;
}

main.page-main .lp-timeline-body p {
  margin: 0 !important;
  color: var(--hero-body) !important;
  font-size: 15px !important;
  line-height: 1.72 !important;
  max-width: none !important;
}

main.page-main .lp-process-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 28px;
  padding: 16px 20px;
  background: rgba(216, 180, 95, 0.08);
  border: 1px solid rgba(216, 180, 95, 0.22);
  border-radius: 10px;
  color: var(--hero-body) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  max-width: none !important;
}

main.page-main .lp-process-note i {
  margin-top: 3px;
  color: var(--gold-light);
  flex-shrink: 0;
}

@media (max-width: 768px) {
  main.page-main .lp-timeline-step {
    grid-template-columns: 44px minmax(0, 1fr) !important;
    gap: 14px !important;
    padding: 18px !important;
  }
  main.page-main .lp-timeline-num {
    width: 40px !important;
    height: 40px !important;
    font-size: 15px !important;
  }
  main.page-main .lp-timeline-body strong { font-size: 15.5px !important; }
  main.page-main .lp-timeline-body p { font-size: 14.5px !important; }
}

/* ── ⑤ 고정 CTA 바 — 시각 위계 완전 복구 ─────────── */
.fixed-cta-bar {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  z-index: 9999 !important;
  background: #07101f !important;
  border-top: 2px solid var(--gold-light) !important;
  box-shadow: 0 -16px 40px -8px rgba(0, 0, 0, 0.5) !important;
  padding: 0 !important;
  padding-bottom: env(safe-area-inset-bottom, 0px) !important;
}

.fixed-cta-bar .fixed-cta-inner {
  display: flex !important;
  align-items: stretch !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

.fixed-cta-bar .fixed-cta-inner > * {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* CTA 버튼 베이스 — main.page-main 외부이므로 위 글로벌 버튼 규칙 영향 없음 */
.fixed-cta-bar .cta-btn {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 60px !important;
  padding: 12px 8px !important;
  border: 0 !important;
  border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.92) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  text-align: left !important;
  width: auto !important;
  transition: background 0.18s ease, color 0.18s ease, transform 0.12s ease !important;
}

.fixed-cta-bar .cta-btn:last-child { border-right: 0 !important; }

.fixed-cta-bar .cta-btn:active {
  transform: scale(0.97);
  background: rgba(255, 255, 255, 0.06) !important;
}

.fixed-cta-bar .cta-btn > div {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  text-align: left;
  min-width: 0;
  max-width: none !important;
}

.fixed-cta-bar .cta-label-main {
  display: block !important;
  font-size: 13.5px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  color: inherit !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fixed-cta-bar .cta-label-sub {
  display: block !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: rgba(255, 255, 255, 0.55) !important;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fixed-cta-bar .cta-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px;
  background: rgba(216, 180, 95, 0.14) !important;
  color: var(--gold-light) !important;
  font-size: 14px !important;
  flex-shrink: 0;
}

/* PRIMARY — 골드 배경 + navy 텍스트 (시각 폭발) */
.fixed-cta-bar .cta-btn.primary {
  background: var(--gold-light) !important;
  color: var(--navy) !important;
}

.fixed-cta-bar .cta-btn.primary .cta-label-main {
  color: var(--navy) !important;
}

.fixed-cta-bar .cta-btn.primary .cta-label-sub {
  color: rgba(7, 16, 31, 0.66) !important;
}

.fixed-cta-bar .cta-btn.primary .cta-icon {
  background: rgba(7, 16, 31, 0.18) !important;
  color: var(--navy) !important;
}

.fixed-cta-bar .cta-btn.primary:active {
  background: var(--gold) !important;
}

@media (max-width: 380px) {
  .fixed-cta-bar .cta-btn {
    flex-direction: column !important;
    gap: 4px !important;
    padding: 10px 4px !important;
    min-height: 56px !important;
    align-items: center !important;
  }
  .fixed-cta-bar .cta-btn > div {
    align-items: center !important;
    text-align: center !important;
  }
  .fixed-cta-bar .cta-label-sub {
    display: none !important;
  }
  .fixed-cta-bar .cta-label-main {
    font-size: 12px !important;
  }
  .fixed-cta-bar .cta-icon {
    width: 24px !important;
    height: 24px !important;
    font-size: 12px !important;
  }
}

@media (min-width: 993px) {
  .fixed-cta-bar { display: none !important; }
  body.has-fixed-cta { padding-bottom: 0 !important; }
}

/* ── ⑥ 위로 가기 버튼 ────────────────────────── */
.ksl-top-button {
  position: fixed !important;
  right: 16px !important;
  bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
  z-index: 9000 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: rgba(7, 16, 31, 0.92) !important;
  color: var(--gold-light) !important;
  font-size: 14px !important;
  border: 1px solid rgba(216, 180, 95, 0.32) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.32) !important;
  cursor: pointer;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.25s ease, background 0.18s ease !important;
  pointer-events: none;
}

.ksl-top-button.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.ksl-top-button:hover {
  background: var(--gold-light) !important;
  color: var(--navy) !important;
}

.ksl-top-button-label { display: none !important; }

@media (min-width: 993px) {
  .ksl-top-button {
    right: 24px !important;
    bottom: 24px !important;
    width: 48px !important;
    height: 48px !important;
  }
}

/* ── ⑦ 히어로 자격 카드 (.lp-hero-credentials) 모바일 ── */
@media (max-width: 992px) {
  main.page-main .lp-hero-inner {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  main.page-main .lp-hero-credentials {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 16px 18px !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(216, 180, 95, 0.22) !important;
    border-radius: 14px !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  main.page-main .lp-cred-line {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10) !important;
    max-width: none !important;
  }

  main.page-main .lp-cred-line:last-child {
    border-bottom: 0 !important;
  }

  main.page-main .lp-cred-mark {
    width: 34px !important;
    height: 34px !important;
    font-size: 13px !important;
    flex-shrink: 0;
  }

  main.page-main .lp-cred-body {
    min-width: 0 !important;
    max-width: none !important;
    overflow: hidden;
  }

  main.page-main .lp-cred-body strong {
    font-size: 13.5px !important;
    line-height: 1.4 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
    text-wrap: balance !important;
    max-width: none !important;
  }

  main.page-main .lp-cred-body > span {
    font-size: 12px !important;
    line-height: 1.5 !important;
    word-break: keep-all !important;
    color: rgba(255, 255, 255, 0.72) !important;
  }

  main.page-main .lp-cred-arrow {
    flex-shrink: 0;
    color: var(--gold-light) !important;
    font-size: 11px !important;
  }
}

/* ── ⑧ 모바일 히어로 본문 폭/타이포 ────────────── */
@media (max-width: 768px) {
  main.page-main .lp-hero {
    padding-top: 88px !important;
    padding-bottom: 56px !important;
  }

  main.page-main .lp-hero-title {
    font-size: clamp(28px, 8vw, 36px) !important;
    line-height: 1.18 !important;
    margin-bottom: 16px !important;
    max-width: 100% !important;
    word-break: keep-all !important;
    text-wrap: balance !important;
  }

  main.page-main .lp-hero-em,
  main.page-main .lp-hero-title em {
    color: var(--gold-light) !important;
    font-style: normal;
    font-weight: 900;
  }

  main.page-main .lp-hero-lead {
    font-size: 16px !important;
    line-height: 1.82 !important;
    max-width: 100% !important;
    margin-bottom: 24px !important;
    color: var(--hero-body) !important;
  }

  main.page-main .lp-hero-cta {
    width: 100% !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin-bottom: 24px !important;
  }

  main.page-main .lp-hero-cta > * {
    width: 100% !important;
    justify-content: center !important;
  }

  main.page-main .lp-hero-down { display: none !important; }
}

/* ── ⑨ 섹션 타이틀 em 대비 (모바일) ───────────── */
@media (max-width: 768px) {
  /* 라이트 섹션 em → 따뜻한 골드 */
  main.page-main :not(.lp-process):not(.lp-section--dark):not(
    .lp-section-head--light):not(.lp-consult):not(.svc-final):not(
    .lp-hero):not(.svc-hero):not(.ab-hero) > .lp-section-title em,
  main.page-main .lp-section-head:not(.lp-section-head--light)
    .lp-section-title em {
    color: var(--accent-text) !important;
    font-style: normal !important;
    font-weight: 900 !important;
  }

  /* 다크 섹션 em → 밝은 골드 (이미 위 ③에서 처리) */
}

/* ── ⑩ 모바일 헤더 정돈 ────────────────────── */
@media (max-width: 768px) {
  .site-header {
    height: 60px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 6px 20px -8px rgba(7, 16, 31, 0.16) !important;
  }

  .site-header.site-header--hero:not(.is-scrolled) {
    background: rgba(7, 16, 31, 0.62) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .header-inner {
    height: 60px !important;
  }

  .logo-img { height: 28px !important; }

  .logo-main {
    font-size: 15px !important;
    font-weight: 900 !important;
  }

  .logo-sub { display: none !important; }

  .menu-toggle {
    width: 44px !important;
    height: 44px !important;
    border-radius: 10px !important;
    background: rgba(7, 16, 31, 0.06) !important;
    border: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 4px !important;
  }

  .site-header--hero:not(.is-scrolled) .menu-toggle {
    background: rgba(255, 255, 255, 0.10) !important;
  }

  .menu-toggle span {
    display: block !important;
    width: 18px !important;
    height: 2px !important;
    background: var(--navy) !important;
    border-radius: 2px !important;
    transition: transform 0.25s ease, opacity 0.25s ease;
  }

  .site-header--hero:not(.is-scrolled) .menu-toggle span {
    background: #fff !important;
  }

  body { padding-top: 60px; }
  body.ksl-page-index { padding-top: 0; }
}

/* ── ⑪ 모바일 메뉴 드로어 ─────────────────── */
@media (max-width: 1024px) {
  .site-header .gnb {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: min(360px, 88vw) !important;
    height: 100vh !important;
    height: 100dvh !important;
    padding: 76px 20px 32px !important;
    background: #fff !important;
    box-shadow: -24px 0 60px rgba(7, 16, 31, 0.18) !important;
    transform: translateX(100%);
    transition: transform 0.36s cubic-bezier(0.22, 1, 0.36, 1) !important;
    overflow-y: auto;
    z-index: 1100;
  }

  body.menu-open .site-header .gnb {
    transform: translateX(0) !important;
  }

  .site-header .gnb .nav-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    width: 100% !important;
  }

  .site-header .gnb .nav-link {
    width: 100% !important;
    min-height: 52px !important;
    padding: 0 16px !important;
    justify-content: flex-start !important;
    border-radius: 10px !important;
    color: var(--navy) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
  }

  .site-header .gnb .nav-link:hover,
  .site-header .gnb .nav-link.active {
    background: rgba(216, 180, 95, 0.12) !important;
    color: var(--navy) !important;
  }

  .site-header .gnb .nav-cta {
    margin-top: 16px !important;
    width: 100% !important;
    min-height: 52px !important;
    background: var(--gold-light) !important;
    color: var(--navy) !important;
    border-radius: 10px !important;
    font-weight: 900 !important;
    justify-content: center !important;
  }
}

/* ── ⑫ 앵커 nav (.lp-anchor) 모바일 ─────────── */
@media (max-width: 768px) {
  main.page-main .lp-anchor {
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 4px 12px -6px rgba(7, 16, 31, 0.12);
  }

  main.page-main .lp-anchor-inner {
    padding: 8px 16px !important;
    gap: 4px !important;
    overflow-x: auto;
    scrollbar-width: none;
  }

  main.page-main .lp-anchor-inner::-webkit-scrollbar {
    display: none;
  }

  main.page-main .lp-anchor-link {
    min-height: 36px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    border-radius: 8px !important;
    flex-shrink: 0;
    white-space: nowrap;
  }

  main.page-main .lp-anchor-link.is-active {
    background: var(--navy) !important;
    color: #fff !important;
  }

  main.page-main .lp-anchor-link--cta {
    background: var(--gold-light) !important;
    color: var(--navy) !important;
  }
}

/* ── ⑬ 카드 디자인 통일 (모바일) ─────────── */
@media (max-width: 768px) {
  main.page-main :is(.lp-card, .svc-card, .cases-card, .ab-card,
    .info-card, .form-card, .lp-trust-card, .lp-problem-item,
    .ctc-channel, .sc-card) {
    border-radius: 14px !important;
    box-shadow: 0 1px 2px rgba(7, 16, 31, 0.04),
                0 8px 24px -16px rgba(7, 16, 31, 0.16) !important;
  }
}

/* ── ⑭ 셀프체크 모바일 컴팩트 ─────────────── */
@media (max-width: 768px) {
  main.page-main .sc-card,
  main.page-main .lp-sc-card {
    padding: 22px 18px !important;
    border-radius: 14px !important;
  }

  main.page-main .sc-mode-tabs {
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    padding: 4px !important;
    border-radius: 12px !important;
  }

  main.page-main .sc-mode-btn {
    min-height: 44px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    border-radius: 8px !important;
  }

  main.page-main .sc-option {
    min-height: 56px !important;
    padding: 14px 16px !important;
    font-size: 15px !important;
    border-radius: 10px !important;
  }
}

/* ── ⑮ FAQ — 카드형 강조 ─────────────────── */
@media (max-width: 768px) {
  main.page-main .lp-faq-layout {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  main.page-main :is(.lp-faq-card, .svc-faq-item, .faq-item) {
    padding: 0 !important;
    border-radius: 12px !important;
    overflow: hidden;
  }

  main.page-main :is(.svc-faq-q, .faq-question, .acc-btn) {
    min-height: 60px !important;
    padding: 18px 20px !important;
    font-size: 15.5px !important;
    font-weight: 900 !important;
    line-height: 1.4 !important;
  }

  main.page-main :is(.svc-faq-a, .faq-answer) {
    padding: 0 20px 20px !important;
    font-size: 15px !important;
    line-height: 1.78 !important;
  }
}

/* ── ⑯ 비교 그리드 모바일 1열 ─────────── */
@media (max-width: 768px) {
  main.page-main :is(.lp-compare-grid, .lp-compare,
    .svc-compare-grid) {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  main.page-main :is(.lp-compare-card, .svc-compare-card) {
    padding: 22px 18px !important;
    border-radius: 14px !important;
  }
}

/* ── ⑰ 상담 CTA 섹션 (.lp-consult) 다크 골드 ──── */
main.page-main .lp-consult {
  background: linear-gradient(180deg, #07101f 0%, #050d1b 100%) !important;
  color: #fff !important;
  position: relative;
  overflow: hidden;
}

main.page-main .lp-consult::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 700px 400px at 50% 0%,
    rgba(216, 180, 95, 0.12) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

main.page-main .lp-consult > .container {
  position: relative;
  z-index: 1;
}

main.page-main .lp-consult :is(h1, h2, h3, .lp-section-title) {
  color: #fff !important;
}

main.page-main .lp-consult :is(.lp-section-title, h2) em {
  color: var(--gold-light) !important;
}

main.page-main .lp-consult :is(p, li, dd, .lp-section-lead) {
  color: var(--hero-body) !important;
}

/* ── ⑱ 인사말 모바일 ──────────────────── */
@media (max-width: 768px) {
  main.page-main .lp-message-shell {
    padding: 0 !important;
  }

  main.page-main .lp-message-title {
    font-size: clamp(22px, 5.6vw, 28px) !important;
    line-height: 1.3 !important;
    margin-bottom: 24px !important;
    text-align: left !important;
  }

  main.page-main .lp-message-divider {
    margin: 24px 0 !important;
  }

  main.page-main .lp-message-copy {
    max-width: 100% !important;
    margin: 0 !important;
  }

  main.page-main .lp-message-copy p {
    font-size: 16px !important;
    line-height: 1.86 !important;
    margin-bottom: 14px !important;
    max-width: 100% !important;
  }

  main.page-main .lp-message-lead {
    font-size: 16.5px !important;
  }

  main.page-main .lp-message-signoff {
    margin-top: 28px !important;
    gap: 12px !important;
  }

  main.page-main .lp-message-signoff img {
    width: 56px !important;
    height: 56px !important;
    border-radius: 50%;
  }
}

/* ── ⑲ 트러스트 cert 이미지 모바일 ────────── */
@media (max-width: 768px) {
  main.page-main .lp-trust-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  main.page-main .lp-trust-cert {
    max-width: 100% !important;
    border-radius: 14px !important;
  }

  main.page-main .lp-trust-cert img {
    width: 100% !important;
    height: auto !important;
    border-radius: 14px !important;
  }
}

/* ── ⑳ 다크 배경 ghost 버튼 ──────────────── */
@media (max-width: 768px) {
  body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
    .lp-process, .lp-consult, .svc-final, .lp-section--dark) :is(
    .btn--ghost, .lp-btn--ghost, .ab-btn--ghost,
    .svc-btn--outline, .svc-btn--ghost) {
    background: rgba(255, 255, 255, 0.10) !important;
    color: #fff !important;
    border: 2px solid rgba(255, 255, 255, 0.55) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
}

/* ── ㉑ Selection / placeholder 보정 ──────── */
::placeholder {
  color: rgba(91, 99, 115, 0.62) !important;
  opacity: 1;
}

::selection {
  background: rgba(181, 137, 47, 0.22);
  color: var(--navy);
}

/* ── ㉒ 모바일 폼 입력 — 16px 유지 ──────── */
@media (max-width: 768px) {
  main.page-main :is(input:not([type="checkbox"]):not([type="radio"]),
    select, textarea) {
    font-size: 16px !important;
    min-height: 52px !important;
    border-radius: 10px !important;
    padding: 14px 16px !important;
    border: 1.5px solid var(--border-light) !important;
    background: #fff !important;
  }

  main.page-main :is(input, select, textarea):focus {
    border-color: var(--accent-text) !important;
    box-shadow: 0 0 0 3px rgba(181, 137, 47, 0.18) !important;
    outline: none;
  }
}

/* ── ㉓ 본문 단락 word-break 강제 ──────── */
@media (max-width: 768px) {
  main.page-main :is(p, li, dt, dd, td, th) {
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }
}

/* ── ㉔ 인사말·메시지 leader 가독성 ──── */
@media (max-width: 768px) {
  main.page-main .lp-message-title em {
    color: var(--accent-text) !important;
    font-style: normal !important;
    font-weight: 900 !important;
  }
}

/* ── ㉕ 마지막 안전장치: 데스크탑 1025+ 헤더 자연 위치 ─ */
@media (min-width: 1025px) {
  body { padding-top: var(--header-h, 74px); }
  body.ksl-page-index { padding-top: 0; }
}

/* =====================================================================
   ALIGNMENT UNIFICATION PASS  ✦  좌우 패딩·컨테이너·중앙정렬 통일
   모든 inner / container / sticky / fixed 요소가 동일한 --gutter 사용
   → 헤더-앵커-섹션-카드의 좌우 시작점이 픽셀 단위로 정확히 일치
   ===================================================================== */

:root {
  --gutter: clamp(24px, 4vw, 40px);
  --container-max: 1160px;
  --section-head-max: 760px;
  --prose-readable: 64ch;
}

@media (max-width: 992px) {
  :root {
    --gutter: 24px;
    --container-max: 100%;
  }
}

@media (max-width: 768px) {
  :root {
    --gutter: 20px;
    --section-head-max: 100%;
  }
}

@media (max-width: 420px) {
  :root {
    --gutter: 16px;
  }
}

/* ── 모든 inner / container 통일 패딩 + 중앙 정렬 ──── */
body :is(
  .container,
  .inner,
  .svc-container,
  .sc-container,
  .ksl-template-container,
  .cx-container,
  .ctc-container,
  .lp-anchor-inner,
  .lp-hero-inner,
  .svc-hero-grid,
  .ctc-hero-inner,
  .footer-inner,
  .header-inner,
  .desktop-consult-inner,
  .lp-section-head--center
) {
  width: 100% !important;
  max-width: var(--container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--gutter) !important;
  padding-right: var(--gutter) !important;
  box-sizing: border-box !important;
}

/* iOS safe-area 보강 */
@supports (padding: max(0px)) {
  body :is(
    .container, .inner, .svc-container, .sc-container,
    .ksl-template-container, .cx-container, .ctc-container,
    .lp-anchor-inner, .lp-hero-inner, .svc-hero-grid,
    .ctc-hero-inner, .footer-inner, .header-inner
  ) {
    padding-left: max(var(--gutter), env(safe-area-inset-left)) !important;
    padding-right: max(var(--gutter), env(safe-area-inset-right)) !important;
  }
}

/* ── 풀블리드 영역(섹션·히어로·앵커 바·푸터)은 패딩 0 ─ */
body :is(
  section.lp-section,
  section.svc-section,
  section.ab-section,
  .lp-hero,
  .svc-hero,
  .ab-hero,
  .sc-hero,
  .contact-hero,
  .faq-hero,
  .legal-hero,
  .lp-process,
  .lp-consult,
  .lp-anchor,
  .site-footer,
  .desktop-consult-bar,
  .fixed-cta-bar
) {
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
}

/* 단, 위 섹션의 padding-top/bottom 은 유지 (위 규칙은 좌우만) */

/* ── 섹션 내부 컨테이너 — 자식이 .container 가 아닐 때 직접 패딩 ── */
body :is(
  .lp-anchor,
  .desktop-consult-bar
) > :first-child {
  width: 100% !important;
  max-width: var(--container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--gutter) !important;
  padding-right: var(--gutter) !important;
}

/* ── 고정 CTA 바 — 풀블리드 유지 (버튼이 균등 flex) ─ */
.fixed-cta-bar .fixed-cta-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* ── 섹션 헤드(.lp-section-head) — 좌우 정렬 정책 ──── */
body main.page-main :is(
  .lp-section-head,
  .svc-section-header,
  .ab-section-head,
  .faq-section-head,
  .cases-section-header
) {
  max-width: var(--section-head-max);
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

/* 명시적으로 가운데 모디파이어가 붙은 헤드만 중앙 */
body main.page-main :is(
  .lp-section-head--center,
  .lp-section-head--centered,
  .svc-section-header--center,
  .svc-section-header.center,
  .ab-section-head--center,
  [data-align="center"]
) {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* 다크 섹션(process/consult/final) 의 헤드는 항상 중앙 ─ */
body main.page-main :is(.lp-process, .lp-consult, .svc-final, .ab-final)
  :is(.lp-section-head, .svc-section-header, .ab-section-head) {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* ── 카드 / 그리드 — 컨테이너 끝에 정확히 맞물리도록 ── */
body main.page-main :is(
  .lp-trust-grid, .lp-trust-numbers, .lp-trust-list,
  .lp-problem-list, .lp-timeline,
  .svc-grid, .cases-grid, .info-grid,
  .ctc-channels, .ctc-form-grid, .form-grid-two,
  .lp-compare-grid, .lp-compare, .svc-compare-grid,
  .lp-faq-layout
) {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
}

/* ── 섹션 내부 단락이 너무 넓어지지 않게 (가독성) ──── */
body main.page-main :is(.lp-section, .svc-section, .ab-section)
  > :first-child > :is(.lp-section-lead, .svc-section-desc,
    .ab-section-lead) {
  max-width: var(--prose-readable);
}

/* ── 모바일에서 카드/그리드 풀폭 확보 ──────────── */
@media (max-width: 768px) {
  body main.page-main :is(.lp-card, .svc-card, .cases-card, .ab-card,
    .info-card, .form-card, .lp-trust-card, .lp-problem-item,
    .lp-timeline-step, .ctc-channel, .sc-card,
    .ctc-form-aside, .ctc-form-wrap, .ctc-summary, .ctc-board) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* 그리드 1열일 때 카드 정렬 */
  body main.page-main :is(.svc-grid, .cases-grid, .info-grid,
    .lp-trust-list, .lp-problem-list, .ctc-channels) {
    justify-items: stretch !important;
    align-items: stretch !important;
  }
}

/* ── 히어로 자격 카드 — 컨테이너 안에서 정렬 ─────── */
body main.page-main .lp-hero-credentials {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* 히어로 자격 카드 내부 cred-line 정렬 */
body main.page-main .lp-cred-line {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* ── 텍스트 정렬 — 모바일 좌측 정렬 기본, 명시 시 중앙 ── */
@media (max-width: 768px) {
  /* 라이트 섹션 본문은 좌측 정렬이 자연스러움 */
  body main.page-main :is(.lp-trust, .lp-message, .lp-problem,
    .lp-faq, .lp-selfcheck-section)
    :is(.lp-section-head, .svc-section-header, .ab-section-head) {
    text-align: left !important;
  }

  body main.page-main :is(.lp-trust, .lp-message, .lp-problem,
    .lp-faq, .lp-selfcheck-section)
    :is(.lp-section-head, .svc-section-header, .ab-section-head)
    .lp-section-lead {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 다크 섹션 헤드는 중앙 유지 */
  body main.page-main :is(.lp-process, .lp-consult, .svc-final,
    .ab-final, .lp-section--dark)
    :is(.lp-section-head, .svc-section-header) {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body main.page-main :is(.lp-process, .lp-consult, .svc-final,
    .ab-final, .lp-section--dark)
    :is(.lp-section-head, .svc-section-header) :is(p, .lp-section-lead) {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 56ch !important;
  }
}

/* ── 셀프체크 섹션 — 중앙 모디파이어 명시 ─────── */
body main.page-main .lp-section-head.lp-section-head--center,
body main.page-main .lp-selfcheck-section .lp-section-head {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body main.page-main .lp-section-head.lp-section-head--center
  :is(p, .lp-section-lead),
body main.page-main .lp-selfcheck-section .lp-section-head
  :is(p, .lp-section-lead) {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 56ch !important;
}

/* ── 인사말 섹션 — 컨테이너 안에 중앙 카드 ────── */
body main.page-main .lp-message-shell {
  width: 100% !important;
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

@media (max-width: 768px) {
  body main.page-main .lp-message-shell {
    max-width: 100% !important;
    text-align: left !important;
  }

  body main.page-main .lp-message-title {
    text-align: left !important;
  }

  body main.page-main .lp-message-divider {
    margin-left: 0 !important;
    margin-right: auto !important;
  }
}

body main.page-main .lp-message-copy {
  margin-left: auto !important;
  margin-right: auto !important;
}

body main.page-main .lp-message-signoff {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

@media (max-width: 768px) {
  body main.page-main .lp-message-signoff {
    justify-content: flex-start !important;
  }
}

/* ── 인라인 CTA — 좌측 정렬 일관성 ─────── */
body main.page-main .lp-inline-cta {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ── 전체적인 box-sizing 안전망 ─────── */
body main.page-main * {
  box-sizing: border-box;
}

/* ── 푸터 컨테이너 정렬 ─────────────── */
.site-footer .footer-inner {
  width: 100% !important;
  max-width: var(--container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--gutter) !important;
  padding-right: var(--gutter) !important;
}

.site-footer :is(.footer-line, .footer-notice, .footer-bottom) {
  width: 100% !important;
  max-width: var(--container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--gutter) !important;
  padding-right: var(--gutter) !important;
}

/* ── 헤더 inner 명시 패딩 ─────── */
.site-header .header-inner {
  width: 100% !important;
  max-width: var(--container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--gutter) !important;
  padding-right: var(--gutter) !important;
}

@supports (padding: max(0px)) {
  .site-header .header-inner {
    padding-left: max(var(--gutter), env(safe-area-inset-left)) !important;
    padding-right: max(var(--gutter), env(safe-area-inset-right)) !important;
  }
}

/* ── 모바일 메뉴 드로어 — 패딩 별도 (드로어는 viewport 기준) ── */
@media (max-width: 1024px) {
  .site-header .gnb {
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-top: 76px !important;
    padding-bottom: 32px !important;
  }
}

/* ── 본문 텍스트 컨테이너 좌우 정렬 ──── */
body main.page-main :is(.lp-message-copy, .lp-faq-checklist,
  .lp-trust-list > li > div) {
  margin-left: 0;
  margin-right: 0;
}

/* ── 섹션 타이틀 em — inline 으로 강제 (block 변환 방지) ── */
body main.page-main :is(.lp-section-title, .svc-section-title,
  .ab-section-title, h1, h2, h3) em {
  display: inline !important;
  font-style: normal !important;
}

/* ── 모든 floating 버튼 위치 통일 ─────── */
.ksl-top-button {
  right: var(--gutter) !important;
}

@media (max-width: 768px) {
  .ksl-top-button {
    right: 16px !important;  /* 모바일은 화면 끝에서 16px 고정 */
  }
}

/* =====================================================================
   LUXURY REFINEMENT LAYER  ✦  고급스러움(premium feel)
   - 채도 낮춘 브라스 골드 / 따뜻 크림 백그라운드
   - 헤어라인 1px 보더 / 단일 ambient shadow
   - Korean-optimized 자간·행간 / 폰트 가중치 위계화
   - 편집형 여백 (96~180px) / 카드 32-40px 패딩
   - 절제된 마이크로 인터랙션 (slow ease-out)
   ===================================================================== */

:root {
  /* 정제된 골드 — 브라스 톤 (채도 낮음, 깊이 있음) */
  --lux-gold: #a8854f;             /* 4.6:1 on cream — 텍스트 가능 */
  --lux-gold-deep: #8a6938;        /* 6.5:1 — 강조 텍스트 */
  --lux-gold-soft: #d4b78f;        /* 다크 배경 텍스트 */
  --lux-gold-pale: rgba(168, 133, 79, 0.08);  /* 미세 배경 */
  --lux-gold-line: rgba(168, 133, 79, 0.22);  /* 헤어라인 */
  --lux-gold-line-strong: rgba(168, 133, 79, 0.42);

  /* 따뜻 크림 톤 페이지 */
  --lux-bg: #faf7ee;
  --lux-bg-warm: #f3eedf;
  --lux-bg-card: #ffffff;
  --lux-bg-paper: #f7f2e6;

  /* 잉크 톤 — 진한 코발트 네이비 (검정 X) */
  --lux-ink: #0a1224;
  --lux-ink-2: #1a2237;
  --lux-ink-3: #2c3447;

  /* 텍스트 위계 */
  --lux-text-1: #0d141f;
  --lux-text-2: #3a4254;
  --lux-text-3: #6b7282;
  --lux-text-4: #9ba1ad;

  /* 헤어라인 */
  --lux-hairline: rgba(13, 20, 31, 0.08);
  --lux-hairline-strong: rgba(13, 20, 31, 0.16);

  /* 그림자 — 단일 ambient */
  --lux-shadow-soft: 0 1px 2px rgba(13, 20, 31, 0.04),
                     0 22px 44px -28px rgba(13, 20, 31, 0.16);
  --lux-shadow-elevated: 0 1px 3px rgba(13, 20, 31, 0.05),
                         0 32px 64px -32px rgba(13, 20, 31, 0.24);

  /* 둥근 모서리 — 카드별 차이 */
  --lux-radius-sm: 8px;
  --lux-radius: 14px;
  --lux-radius-lg: 18px;
  --lux-radius-xl: 22px;

  /* 트랜지션 — 정제된 ease-out */
  --lux-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --lux-tx: 0.55s cubic-bezier(0.16, 1, 0.3, 1);
  --lux-tx-fast: 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── 페이지 전체 톤 — 따뜻 크림 ────────────────── */
body {
  background: var(--lux-bg) !important;
  color: var(--lux-text-1) !important;
}

/* ── 본문 글자 — Korean 자간·가중치 정제 ────────── */
body {
  font-family: "Pretendard Variable", Pretendard, -apple-system,
    BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif !important;
  letter-spacing: -0.008em !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "ss20", "ss19";
}

main.page-main :is(p, li, dd) {
  font-weight: 450 !important;       /* 일반 본문은 가벼운 무게 */
  letter-spacing: -0.005em !important;
  color: var(--lux-text-2) !important;
}

main.page-main :is(p, li, dd) strong,
main.page-main :is(p, li, dd) b {
  font-weight: 700 !important;       /* 본문 강조는 700 (900 → 700) */
  color: var(--lux-text-1) !important;
}

main.page-main :is(p, li, dd) em {
  font-weight: 600 !important;       /* em 은 600 (절제) */
  color: var(--lux-gold-deep) !important;
  font-style: normal;
}

/* ── 제목 위계 — display SUIT, 가중치는 절제 ────── */
main.page-main :is(h1, h2, h3, h4, .lp-section-title, .svc-section-title,
  .ab-section-title, .section-title, .lp-card-title, .svc-card-title,
  .cases-card-title, .lp-message-title) {
  font-family: "SUIT Variable", SUIT, "Pretendard Variable", Pretendard,
    sans-serif !important;
  font-weight: 800 !important;       /* 800 (900 → 800) — 더 우아 */
  letter-spacing: -0.028em !important;
  color: var(--lux-text-1) !important;
}

main.page-main :is(.lp-section-title, .svc-section-title, .ab-section-title,
  .section-title) em {
  color: var(--lux-gold) !important;
  font-weight: 800 !important;
}

main.page-main :is(.lp-card-title, .svc-card-title, .cases-card-title,
  .ctc-channel-title) {
  font-weight: 700 !important;       /* 카드 제목은 700 */
}

/* ── 키커/Eyebrow — 정제된 영문 캡션 스타일 ────── */
main.page-main :is(.lp-kicker, .svc-section-kicker, .ab-kicker,
  .section-kicker, .ds-kicker, .faq-group-kicker, .cases-head-kicker,
  .lp-kicker--light, .lp-kicker--accent) {
  font-family: "Pretendard Variable", Pretendard, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.24em !important;  /* 더 넓은 자간 */
  text-transform: uppercase !important;
  color: var(--lux-gold-deep) !important;
  line-height: 1.5 !important;
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px !important;
}

/* 키커 앞 헤어라인 — 절제된 골드 */
main.page-main :is(.lp-kicker, .svc-section-kicker, .ab-kicker,
  .section-kicker, .ds-kicker)::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--lux-gold);
  vertical-align: middle;
}

/* ── 섹션 vertical 호흡 확장 ────────────────── */
main.page-main :is(.lp-section, .svc-section, .ab-section,
  .legal-body, .case-detail-section) {
  padding-top: clamp(96px, 11vw, 168px) !important;
  padding-bottom: clamp(96px, 11vw, 168px) !important;
}

@media (max-width: 992px) {
  main.page-main :is(.lp-section, .svc-section, .ab-section) {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }
}

@media (max-width: 768px) {
  main.page-main :is(.lp-section, .svc-section, .ab-section) {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }
}

/* 섹션 헤드 → 콘텐츠 사이 호흡 */
main.page-main :is(.lp-section-head, .svc-section-header,
  .ab-section-head, .faq-section-head, .cases-section-header) {
  margin-bottom: clamp(48px, 6vw, 72px) !important;
}

@media (max-width: 768px) {
  main.page-main :is(.lp-section-head, .svc-section-header,
    .ab-section-head) {
    margin-bottom: 40px !important;
  }
}

/* 섹션 제목 → 리드 사이 호흡 */
main.page-main :is(.lp-section-title, .svc-section-title,
  .ab-section-title, .section-title) {
  margin-bottom: 18px !important;
  line-height: 1.22 !important;
}

main.page-main :is(.lp-section-lead, .svc-section-desc,
  .ab-section-lead, .section-desc) {
  margin-top: 0 !important;
  font-weight: 450 !important;
  line-height: 1.85 !important;
  color: var(--lux-text-2) !important;
}

/* ── 헤어라인 골드 디바이더 (편집형) ──────── */
main.page-main .ksl-section-divider,
main.page-main hr {
  border: 0 !important;
  height: 1px !important;
  background: var(--lux-hairline-strong) !important;
  width: 100% !important;
  margin: clamp(48px, 6vw, 72px) 0 !important;
  opacity: 1 !important;
}

main.page-main .ksl-divider-gold {
  border: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--lux-gold) 50%,
    transparent);
  margin: clamp(40px, 5vw, 60px) auto;
  width: 80px;
  opacity: 0.7;
}

/* ── 카드 디자인 — 헤어라인 + 단일 ambient shadow ── */
main.page-main :is(.lp-card, .svc-card, .cases-card, .ab-card,
  .info-card, .form-card, .lp-trust-card, .lp-faq-card,
  .ctc-channel, .sc-card, .lp-consult-form-wrap, .ctc-form-card,
  .case-detail-block) {
  background: var(--lux-bg-card) !important;
  border: 1px solid var(--lux-hairline) !important;
  border-radius: var(--lux-radius-lg) !important;
  box-shadow: var(--lux-shadow-soft) !important;
  padding: clamp(28px, 3.2vw, 40px) !important;
  transition: border-color var(--lux-tx-fast),
              box-shadow var(--lux-tx-fast),
              transform var(--lux-tx-fast) !important;
}

main.page-main :is(.lp-card, .svc-card, .cases-card, .ab-card,
  .info-card, .lp-trust-card, .ctc-channel):hover {
  border-color: var(--lux-gold-line-strong) !important;
  box-shadow: var(--lux-shadow-elevated) !important;
  transform: translateY(-3px) !important;
}

/* 모바일 카드 패딩 — 여전히 넉넉 */
@media (max-width: 768px) {
  main.page-main :is(.lp-card, .svc-card, .cases-card, .ab-card,
    .info-card, .form-card, .lp-trust-card, .lp-faq-card,
    .ctc-channel, .sc-card, .lp-consult-form-wrap, .ctc-form-card) {
    padding: 28px 22px !important;
    border-radius: 16px !important;
  }
}

/* ── 정제된 버튼 디자인 ───────────────────── */
main.page-main :is(.btn, .lp-btn, .ab-btn, .svc-btn, .contact-btn,
  .sc-nav-btn, .sc-submit-btn, .cta-btn, .btn-big, .submit-btn) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px !important;
  min-height: 56px !important;
  padding: 17px 32px !important;
  border: 1px solid transparent !important;
  border-radius: var(--lux-radius-sm) !important;
  font-family: "Pretendard Variable", Pretendard, sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;        /* 900 → 700, 더 정제 */
  letter-spacing: -0.005em !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  transition: background var(--lux-tx-fast),
              color var(--lux-tx-fast),
              border-color var(--lux-tx-fast),
              transform var(--lux-tx-fast),
              box-shadow var(--lux-tx-fast) !important;
}

/* PRIMARY — 깊은 골드 (saturation 낮음) */
main.page-main :is(.btn--primary, .lp-btn--primary, .ab-btn--primary,
  .svc-btn--primary, .sc-submit-btn, .contact-submit, .btn-primary) {
  background: var(--lux-gold) !important;
  color: #fff !important;
  border-color: var(--lux-gold) !important;
  box-shadow: 0 1px 2px rgba(168, 133, 79, 0.20),
              0 12px 24px -12px rgba(168, 133, 79, 0.42) !important;
}

main.page-main :is(.btn--primary, .lp-btn--primary, .ab-btn--primary,
  .svc-btn--primary, .sc-submit-btn, .contact-submit,
  .btn-primary):hover {
  background: var(--lux-gold-deep) !important;
  border-color: var(--lux-gold-deep) !important;
  transform: translateY(-1px);
  box-shadow: 0 1px 2px rgba(138, 105, 56, 0.24),
              0 18px 32px -12px rgba(138, 105, 56, 0.50) !important;
}

/* GHOST — 헤어라인 보더 + 잉크 텍스트 */
main.page-main :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost,
  .svc-btn--outline, .svc-btn--ghost) {
  background: transparent !important;
  color: var(--lux-ink) !important;
  border: 1px solid var(--lux-ink) !important;
  box-shadow: none !important;
}

main.page-main :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost,
  .svc-btn--outline, .svc-btn--ghost):hover {
  background: var(--lux-ink) !important;
  color: #fff !important;
  border-color: var(--lux-ink) !important;
}

/* TEXT 버튼 — 골드 텍스트 + underline 호버 */
main.page-main :is(.btn--text, .lp-btn--text, .text-link) {
  background: transparent !important;
  color: var(--lux-gold-deep) !important;
  border: 0 !important;
  padding: 12px 4px !important;
  min-height: auto !important;
  box-shadow: none !important;
}

main.page-main :is(.btn--text, .lp-btn--text, .text-link):hover {
  color: var(--lux-ink) !important;
  text-decoration: underline;
  text-decoration-color: var(--lux-gold);
  text-underline-offset: 4px;
}

/* 다크 배경 ghost 버튼 — 화이트 헤어라인 */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .lp-process, .lp-consult, .svc-final, .lp-section--dark,
  .svc-hero-card) :is(.btn--ghost, .lp-btn--ghost, .ab-btn--ghost,
  .svc-btn--outline, .svc-btn--ghost) {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
}

body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .lp-process, .lp-consult, .svc-final) :is(.btn--ghost,
  .lp-btn--ghost, .ab-btn--ghost, .svc-btn--outline,
  .svc-btn--ghost):hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.62) !important;
}

/* 다크 배경 primary — 골드 라이트 */
body :is(.lp-hero, .ab-hero, .svc-hero, .sc-hero, .contact-hero,
  .lp-process, .lp-consult, .svc-final) :is(.btn--primary,
  .lp-btn--primary, .ab-btn--primary, .svc-btn--primary,
  .sc-submit-btn, .contact-submit) {
  background: var(--lux-gold-soft) !important;
  color: var(--lux-ink) !important;
  border-color: var(--lux-gold-soft) !important;
  box-shadow: 0 12px 28px -10px rgba(212, 183, 143, 0.40) !important;
}

/* ── 히어로 — 편집형 타이포그래피 ───────────── */
main.page-main .lp-hero {
  background: linear-gradient(180deg, #0a1224 0%, #1a2237 100%) !important;
  position: relative;
  overflow: hidden;
}

main.page-main .lp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 800px 500px at 80% 10%,
      rgba(168, 133, 79, 0.10) 0%, transparent 60%),
    radial-gradient(ellipse 600px 400px at 10% 90%,
      rgba(168, 133, 79, 0.05) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

main.page-main .lp-hero > .container {
  position: relative;
  z-index: 1;
}

main.page-main .lp-hero {
  padding-top: clamp(140px, 14vw, 220px) !important;
  padding-bottom: clamp(96px, 10vw, 144px) !important;
}

@media (max-width: 768px) {
  main.page-main .lp-hero {
    padding-top: 112px !important;
    padding-bottom: 80px !important;
  }
}

main.page-main .lp-hero-title {
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.12 !important;
  color: #fff !important;
  text-shadow: none;
  margin-bottom: 28px !important;
}

main.page-main .lp-hero-em,
main.page-main .lp-hero-title em {
  color: var(--lux-gold-soft) !important;
  font-weight: 800 !important;
  font-style: normal;
}

main.page-main .lp-hero-lead {
  font-weight: 400 !important;        /* 가벼운 무게 */
  font-size: clamp(17px, 1.4vw, 19px) !important;
  line-height: 1.85 !important;
  letter-spacing: -0.005em;
  color: rgba(255, 255, 255, 0.78) !important;
  max-width: 540px !important;
  margin-bottom: 36px !important;
}

main.page-main .lp-hero-lead strong {
  color: #fff !important;
  font-weight: 700 !important;
}

@media (max-width: 768px) {
  main.page-main .lp-hero-title {
    line-height: 1.16 !important;
    margin-bottom: 20px !important;
  }
  main.page-main .lp-hero-lead {
    font-size: 16px !important;
    line-height: 1.82 !important;
    margin-bottom: 28px !important;
  }
}

/* 히어로 eyebrow — 정제된 골드 라인 + 캡션 */
main.page-main .lp-eyebrow {
  display: inline-flex !important;
  align-items: center;
  gap: 14px !important;
  margin-bottom: 28px !important;
}

main.page-main .lp-eyebrow-line {
  display: inline-block !important;
  width: 32px !important;
  height: 1px !important;
  background: var(--lux-gold-soft) !important;
}

main.page-main .lp-eyebrow > span:not(.lp-eyebrow-line) {
  color: var(--lux-gold-soft) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
}

/* 히어로 메타 — 작은 캡션 스타일 */
main.page-main .lp-hero-meta {
  margin-top: 28px !important;
  padding-top: 24px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.10) !important;
}

main.page-main .lp-hero-meta li {
  color: rgba(255, 255, 255, 0.62) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em;
}

main.page-main .lp-hero-meta li i {
  color: var(--lux-gold-soft) !important;
}

/* ── 히어로 자격 카드 — 글래스 모피즘 정제 ───── */
main.page-main .lp-hero-credentials {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(168, 133, 79, 0.24) !important;
  border-radius: var(--lux-radius-lg) !important;
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  padding: clamp(24px, 2.6vw, 36px) !important;
  box-shadow: 0 12px 40px -12px rgba(0, 0, 0, 0.32);
}

main.page-main .lp-cred-line {
  padding: 18px 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

main.page-main .lp-cred-line:first-child { padding-top: 0 !important; }
main.page-main .lp-cred-line:last-child {
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}

main.page-main .lp-cred-mark {
  background: rgba(168, 133, 79, 0.10) !important;
  border: 1px solid rgba(168, 133, 79, 0.28) !important;
  color: var(--lux-gold-soft) !important;
  border-radius: 10px !important;
}

main.page-main .lp-cred-body strong {
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: -0.012em;
}

main.page-main .lp-cred-body > span {
  color: rgba(255, 255, 255, 0.62) !important;
  font-weight: 450;
}

main.page-main .lp-cred-arrow {
  color: var(--lux-gold-soft) !important;
}

main.page-main .lp-cred-line.lp-cred-line:hover {
  padding-left: 0 !important;
}

main.page-main .lp-cred-line:not(.lp-cred-line--static):hover {
  background: rgba(255, 255, 255, 0.02);
}

/* ── 트러스트 숫자 dl — 편집형 절제 ──────── */
main.page-main .lp-trust-numbers {
  border-top: 1px solid var(--lux-hairline-strong) !important;
  border-bottom: 1px solid var(--lux-hairline) !important;
}

main.page-main .lp-trust-numbers > div {
  border-right: 1px solid var(--lux-hairline) !important;
  padding: 40px 32px !important;
}

main.page-main .lp-trust-numbers dt {
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-weight: 800 !important;
  color: var(--lux-ink) !important;
  letter-spacing: -0.035em !important;
  font-size: clamp(30px, 3.6vw, 44px) !important;
}

main.page-main .lp-trust-numbers dt span {
  color: var(--lux-gold-deep) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  margin-left: 6px !important;
}

main.page-main .lp-trust-numbers dd {
  color: var(--lux-text-3) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em;
  line-height: 1.55 !important;
}

@media (max-width: 768px) {
  main.page-main .lp-trust-numbers > div {
    padding: 28px 0 !important;
  }
}

/* ── 트러스트 리스트 — 편집형 행간 ──────── */
main.page-main .lp-trust-list > li {
  padding: 32px 0 !important;
  border-bottom: 1px solid var(--lux-hairline) !important;
  align-items: flex-start !important;
  gap: 24px !important;
}

main.page-main .lp-trust-list > li:last-child {
  border-bottom: 0 !important;
}

main.page-main .lp-trust-list .lp-trust-mark {
  background: var(--lux-gold-pale) !important;
  border: 1px solid var(--lux-gold-line) !important;
  color: var(--lux-gold) !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 12px !important;
}

main.page-main .lp-trust-list > li strong {
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--lux-ink) !important;
  letter-spacing: -0.012em !important;
  margin-bottom: 10px !important;
}

main.page-main .lp-trust-list > li p {
  color: var(--lux-text-2) !important;
  font-size: 15.5px !important;
  font-weight: 450 !important;
  line-height: 1.78 !important;
}

main.page-main .lp-trust-link {
  margin-top: 12px;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: var(--lux-gold-deep) !important;
  letter-spacing: -0.005em !important;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: border-color var(--lux-tx-fast);
}

main.page-main .lp-trust-link:hover {
  border-bottom-color: var(--lux-gold);
}

/* ── 문제 리스트 — 편집형 번호 ──────── */
main.page-main .lp-problem-list {
  border-top: 1px solid var(--lux-hairline-strong) !important;
}

main.page-main .lp-problem-item {
  padding: 28px 0 !important;
  border-bottom: 1px solid var(--lux-hairline) !important;
  font-weight: 500 !important;
  font-size: clamp(16px, 2vw, 18px) !important;
  letter-spacing: -0.012em !important;
  color: var(--lux-text-1) !important;
}

main.page-main .lp-problem-num {
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  color: var(--lux-gold) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.24em !important;
  min-width: 36px !important;
}

/* ── 메시지 섹션 — 인쇄 편집물 풍 ──────── */
main.page-main .lp-message {
  background: var(--lux-bg-paper) !important;
}

main.page-main .lp-message-shell {
  max-width: 720px !important;
}

main.page-main .lp-message-kicker {
  color: var(--lux-gold-deep) !important;
  font-size: 11.5px !important;
  letter-spacing: 0.28em !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  margin-bottom: 24px !important;
  display: inline-block !important;
}

main.page-main .lp-message-title {
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-weight: 700 !important;        /* 800 → 700 (편집물 분위기) */
  font-size: clamp(28px, 3.4vw, 42px) !important;
  line-height: 1.32 !important;
  letter-spacing: -0.028em !important;
  color: var(--lux-ink) !important;
  margin-bottom: 32px !important;
}

main.page-main .lp-message-title em {
  color: var(--lux-gold) !important;
  font-weight: 700 !important;
  font-style: normal;
}

main.page-main .lp-message-divider {
  width: 56px !important;
  height: 1px !important;
  background: var(--lux-gold) !important;
  margin: 32px 0 !important;
  opacity: 0.7;
}

main.page-main .lp-message-copy {
  max-width: 56ch !important;
}

main.page-main .lp-message-copy p {
  font-size: 16px !important;
  font-weight: 450 !important;
  line-height: 1.92 !important;        /* 더 넓은 행간 */
  color: var(--lux-text-2) !important;
  margin-bottom: 18px !important;
  letter-spacing: -0.005em !important;
}

main.page-main .lp-message-lead {
  font-size: 17px !important;
  font-weight: 500 !important;
}

main.page-main .lp-message-lead strong {
  color: var(--lux-ink) !important;
  font-weight: 700 !important;
}

main.page-main .lp-message-signoff {
  margin-top: 40px !important;
  padding-top: 28px !important;
  border-top: 1px solid var(--lux-hairline-strong) !important;
}

main.page-main .lp-message-signoff img {
  width: 60px !important;
  height: 60px !important;
  border-radius: 50% !important;
  border: 2px solid var(--lux-gold-pale) !important;
}

main.page-main .lp-message-signoff-label {
  font-family: "Pretendard Variable", sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase;
  color: var(--lux-gold-deep) !important;
}

main.page-main .lp-message-signoff strong {
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--lux-ink) !important;
  letter-spacing: -0.012em !important;
}

/* ── Process 섹션 — 다크 + 골드 그라디언트 정제 ── */
main.page-main .lp-process {
  background: linear-gradient(180deg, #0a1224 0%, #050a18 100%) !important;
  position: relative;
}

main.page-main .lp-process::before {
  background:
    radial-gradient(ellipse 700px 380px at 80% 0%,
      rgba(168, 133, 79, 0.08) 0%, transparent 60%),
    radial-gradient(ellipse 500px 400px at 0% 100%,
      rgba(168, 133, 79, 0.04) 0%, transparent 70%) !important;
}

main.page-main .lp-timeline-step {
  background: rgba(255, 255, 255, 0.025) !important;
  border: 1px solid rgba(168, 133, 79, 0.16) !important;
  border-radius: var(--lux-radius-lg) !important;
  padding: 28px 30px !important;
  transition: background var(--lux-tx-fast),
              border-color var(--lux-tx-fast),
              transform var(--lux-tx-fast) !important;
}

main.page-main .lp-timeline-step:hover {
  background: rgba(255, 255, 255, 0.045) !important;
  border-color: rgba(168, 133, 79, 0.36) !important;
  transform: translateY(-2px);
}

main.page-main .lp-timeline-num {
  background: var(--lux-gold-soft) !important;
  color: var(--lux-ink) !important;
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  letter-spacing: 0 !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 10px !important;
}

main.page-main .lp-timeline-body strong {
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #fff !important;
  letter-spacing: -0.012em !important;
}

main.page-main .lp-timeline-body p {
  color: rgba(255, 255, 255, 0.74) !important;
  font-weight: 450 !important;
  font-size: 15px !important;
  line-height: 1.78 !important;
}

main.page-main .lp-process-note {
  background: rgba(168, 133, 79, 0.06) !important;
  border: 1px solid rgba(168, 133, 79, 0.18) !important;
  border-radius: 10px !important;
  color: rgba(255, 255, 255, 0.74) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em;
}

/* ── Consult 섹션 — 다크 정제 ───────────── */
main.page-main .lp-consult {
  background: linear-gradient(180deg, #0a1224 0%, #050a18 100%) !important;
}

main.page-main .lp-consult::before {
  background: radial-gradient(ellipse 700px 400px at 50% 0%,
    rgba(168, 133, 79, 0.10) 0%, transparent 60%) !important;
}

main.page-main .lp-consult :is(h1, h2, .lp-section-title) em {
  color: var(--lux-gold-soft) !important;
}

/* ── 인라인 CTA — 헤어라인 + 절제 ────────── */
main.page-main .lp-inline-cta {
  border-top: 1px solid var(--lux-hairline-strong) !important;
  border-bottom: 1px solid var(--lux-hairline-strong) !important;
  background: transparent !important;
  padding: 36px 0 !important;
}

main.page-main .lp-inline-cta-copy {
  color: var(--lux-text-2) !important;
  font-size: 15.5px !important;
  font-weight: 450 !important;
}

main.page-main .lp-inline-cta-copy strong {
  color: var(--lux-ink) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -0.012em !important;
}

/* ── 폼 — 정제된 입력 ─────────────────── */
main.page-main :is(input:not([type="checkbox"]):not([type="radio"]),
  select, textarea, .form-input, .form-select, .form-textarea,
  .sc-input, .desktop-consult-input, .ctc-input) {
  font-family: "Pretendard Variable", Pretendard, sans-serif !important;
  font-weight: 450 !important;
  background: #fff !important;
  border: 1px solid var(--lux-hairline-strong) !important;
  border-radius: 10px !important;
  color: var(--lux-text-1) !important;
  padding: 16px 18px !important;
  min-height: 54px !important;
  transition: border-color var(--lux-tx-fast),
              box-shadow var(--lux-tx-fast) !important;
}

main.page-main :is(input, select, textarea):focus {
  border-color: var(--lux-gold) !important;
  box-shadow: 0 0 0 3px rgba(168, 133, 79, 0.16) !important;
  outline: none !important;
}

main.page-main :is(label, .form-label, .field-label, .ctc-label) {
  font-family: "Pretendard Variable", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: var(--lux-text-1) !important;
  margin-bottom: 10px !important;
  display: block !important;
}

::placeholder {
  color: var(--lux-text-4) !important;
  font-weight: 400 !important;
  opacity: 1 !important;
}

/* ── 헤더 — 정제된 라이트 / 글래스 ────── */
.site-header {
  background: rgba(250, 247, 238, 0.92) !important;
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid var(--lux-hairline) !important;
  box-shadow: none !important;
}

.site-header.is-scrolled {
  background: rgba(250, 247, 238, 0.97) !important;
  border-bottom-color: var(--lux-hairline-strong) !important;
  box-shadow: 0 1px 0 var(--lux-hairline) !important;
}

.site-header.site-header--hero:not(.is-scrolled) {
  background: rgba(10, 18, 36, 0.32) !important;
  border-bottom-color: rgba(168, 133, 79, 0.18) !important;
}

.logo-main {
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-size: 16.5px !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  color: var(--lux-ink) !important;
}

.logo-sub {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  color: var(--lux-text-3) !important;
  text-transform: uppercase;
}

.site-header.site-header--hero:not(.is-scrolled) :is(.logo-main, .nav-link) {
  color: #fff !important;
}

.site-header.site-header--hero:not(.is-scrolled) .logo-sub {
  color: rgba(255, 255, 255, 0.62) !important;
}

.nav-link {
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
  color: var(--lux-text-2) !important;
  transition: color var(--lux-tx-fast) !important;
}

.nav-link:hover,
.nav-link.active {
  color: var(--lux-ink) !important;
  background: transparent !important;
}

/* nav-link 밑줄 골드 */
.nav-link::after {
  background: var(--lux-gold) !important;
}

.nav-cta {
  background: var(--lux-gold) !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 0 22px !important;
  min-height: 42px !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  transition: background var(--lux-tx-fast) !important;
}

.nav-cta:hover {
  background: var(--lux-gold-deep) !important;
}

/* ── 앵커 nav — 미세 보더 + 골드 active ── */
main.page-main .lp-anchor {
  background: rgba(250, 247, 238, 0.96) !important;
  border-bottom: 1px solid var(--lux-hairline) !important;
  box-shadow: none !important;
}

main.page-main .lp-anchor-link {
  color: var(--lux-text-3) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
  border-radius: 6px !important;
  transition: color var(--lux-tx-fast),
              background var(--lux-tx-fast) !important;
}

main.page-main .lp-anchor-link:hover {
  color: var(--lux-ink) !important;
  background: var(--lux-gold-pale) !important;
}

main.page-main .lp-anchor-link.is-active {
  color: var(--lux-ink) !important;
  background: var(--lux-gold-pale) !important;
}

main.page-main .lp-anchor-link--cta {
  background: var(--lux-ink) !important;
  color: #fff !important;
  font-weight: 700 !important;
}

main.page-main .lp-anchor-link--cta:hover {
  background: var(--lux-gold) !important;
  color: #fff !important;
}

/* ── 푸터 — 정제된 다크 ──────────── */
.site-footer {
  background: var(--lux-ink) !important;
  color: rgba(255, 255, 255, 0.72) !important;
  padding: 80px 0 32px !important;
}

.site-footer h4,
.site-footer .footer-logo-main {
  color: #fff !important;
  font-family: "SUIT Variable", SUIT, sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: -0.005em !important;
  margin-bottom: 18px !important;
}

.site-footer .footer-logo-main {
  font-size: 17px !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
}

.site-footer :is(p, li, dd, span, .footer-desc, .footer-contact) {
  color: rgba(255, 255, 255, 0.66) !important;
  font-size: 13.5px !important;
  font-weight: 450 !important;
  line-height: 1.78 !important;
  letter-spacing: -0.005em !important;
}

.site-footer a {
  color: rgba(255, 255, 255, 0.72) !important;
  font-weight: 500 !important;
  transition: color var(--lux-tx-fast) !important;
}

.site-footer a:hover {
  color: var(--lux-gold-soft) !important;
}

.site-footer .footer-line {
  border-top: 1px solid rgba(255, 255, 255, 0.10) !important;
  margin: 48px 0 24px !important;
}

.site-footer .footer-bottom {
  font-size: 12.5px !important;
  color: rgba(255, 255, 255, 0.42) !important;
}

.site-footer .footer-contact .label {
  color: rgba(255, 255, 255, 0.42) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  margin-right: 8px;
}

/* ── 고정 CTA 바 — 정제된 다크 + 골드 한 점 ── */
.fixed-cta-bar {
  background: var(--lux-ink) !important;
  border-top: 1px solid rgba(168, 133, 79, 0.42) !important;
  box-shadow: 0 -16px 36px -16px rgba(0, 0, 0, 0.42) !important;
}

.fixed-cta-bar .cta-btn {
  color: rgba(255, 255, 255, 0.86) !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
  border-right: 1px solid rgba(255, 255, 255, 0.06) !important;
  background: transparent !important;
}

.fixed-cta-bar .cta-btn .cta-label-main {
  font-weight: 700 !important;
  letter-spacing: -0.012em !important;
}

.fixed-cta-bar .cta-btn .cta-label-sub {
  color: rgba(255, 255, 255, 0.42) !important;
  font-weight: 450 !important;
  letter-spacing: 0;
}

.fixed-cta-bar .cta-icon {
  background: rgba(168, 133, 79, 0.14) !important;
  color: var(--lux-gold-soft) !important;
}

/* PRIMARY — 골드 정제 */
.fixed-cta-bar .cta-btn.primary {
  background: var(--lux-gold) !important;
  color: #fff !important;
}

.fixed-cta-bar .cta-btn.primary .cta-label-main {
  color: #fff !important;
}

.fixed-cta-bar .cta-btn.primary .cta-label-sub {
  color: rgba(255, 255, 255, 0.72) !important;
}

.fixed-cta-bar .cta-btn.primary .cta-icon {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
}

.fixed-cta-bar .cta-btn.primary:hover,
.fixed-cta-bar .cta-btn.primary:active {
  background: var(--lux-gold-deep) !important;
}

/* ── 위로 가기 — 정제된 작은 골드 점 ───── */
.ksl-top-button {
  background: var(--lux-ink) !important;
  border: 1px solid rgba(168, 133, 79, 0.32) !important;
  color: var(--lux-gold-soft) !important;
  box-shadow: 0 8px 24px -8px rgba(13, 20, 31, 0.38) !important;
  transition: background var(--lux-tx-fast),
              color var(--lux-tx-fast),
              transform var(--lux-tx-fast) !important;
}

.ksl-top-button:hover {
  background: var(--lux-gold) !important;
  color: #fff !important;
  border-color: var(--lux-gold) !important;
  transform: translateY(-2px);
}

/* ── FAQ 카드 — 헤어라인 + 절제 ─────── */
main.page-main :is(.svc-faq-item, .faq-item, .lp-faq-card) {
  background: var(--lux-bg-card) !important;
  border: 1px solid var(--lux-hairline) !important;
  border-radius: var(--lux-radius) !important;
  box-shadow: var(--lux-shadow-soft) !important;
  overflow: hidden;
  margin-bottom: 12px;
}

main.page-main :is(.svc-faq-q, .faq-question, .acc-btn) {
  font-family: "Pretendard Variable", sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 600 !important;
  color: var(--lux-ink) !important;
  letter-spacing: -0.012em !important;
  background: transparent !important;
  padding: 22px 24px !important;
  min-height: 60px !important;
  border: 0 !important;
}

main.page-main :is(.svc-faq-q, .faq-question):hover {
  background: var(--lux-gold-pale) !important;
}

main.page-main :is(.svc-faq-a, .faq-answer) {
  padding: 0 24px 24px !important;
  color: var(--lux-text-2) !important;
  font-size: 15px !important;
  font-weight: 450 !important;
  line-height: 1.82 !important;
}

/* ── Selection ─────────────────────── */
::selection {
  background: rgba(168, 133, 79, 0.24);
  color: var(--lux-ink);
}

/* ── 스크롤바 정제 ──────────────────── */
@media (min-width: 769px) {
  ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }
  ::-webkit-scrollbar-track {
    background: var(--lux-bg-warm);
  }
  ::-webkit-scrollbar-thumb {
    background: rgba(168, 133, 79, 0.32);
    border: 2px solid var(--lux-bg-warm);
    border-radius: 6px;
  }
  ::-webkit-scrollbar-thumb:hover {
    background: var(--lux-gold);
  }
}

/* ── 이미지 — 정제된 프레임 ──────── */
main.page-main :is(.lp-trust-cert img, .lp-message-signoff img,
  .ab-profile-img, .svc-hero-card img) {
  border-radius: var(--lux-radius) !important;
}

main.page-main .lp-trust-cert {
  border-radius: var(--lux-radius-lg) !important;
  border: 1px solid var(--lux-hairline) !important;
  box-shadow: var(--lux-shadow-soft) !important;
  overflow: hidden;
  position: relative;
  transition: transform var(--lux-tx) !important;
}

main.page-main .lp-trust-cert:hover {
  transform: translateY(-4px);
  box-shadow: var(--lux-shadow-elevated) !important;
}

main.page-main .lp-trust-cert-overlay {
  background: linear-gradient(180deg, transparent 60%,
    rgba(13, 20, 31, 0.78) 100%) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  padding: 16px 18px !important;
}

/* ── 비교 카드 — 편집형 카드 정제 ──── */
main.page-main :is(.lp-compare-card, .svc-compare-card) {
  background: var(--lux-bg-card) !important;
  border: 1px solid var(--lux-hairline) !important;
  border-radius: var(--lux-radius-lg) !important;
  padding: 36px 32px !important;
  box-shadow: var(--lux-shadow-soft) !important;
}

main.page-main :is(.lp-compare-card.is-featured,
  .svc-compare-card.is-featured) {
  border-color: var(--lux-gold-line-strong) !important;
  box-shadow: var(--lux-shadow-elevated),
              0 0 0 1px var(--lux-gold-line-strong) !important;
  position: relative;
}

main.page-main :is(.lp-compare-card.is-featured,
  .svc-compare-card.is-featured)::before {
  content: '추천';
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--lux-gold);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  padding: 5px 14px;
  border-radius: 999px;
  text-transform: uppercase;
}

/* ── 데스크탑 1025+ : 컨테이너 max 1200, 더 여유 ── */
@media (min-width: 1025px) {
  :root {
    --container-max: 1200px;
  }

  main.page-main :is(.lp-section, .svc-section, .ab-section) {
    padding-top: clamp(120px, 11vw, 180px) !important;
    padding-bottom: clamp(120px, 11vw, 180px) !important;
  }
}

/* ── 장식: 섹션 사이 골드 헤어라인 디바이더 (선택) ── */
main.page-main .lp-section + .lp-section::before,
main.page-main .svc-section + .svc-section::before {
  content: '';
  display: block;
  width: 1px;
  height: 32px;
  background: var(--lux-gold-line);
  margin: 0 auto;
  position: relative;
  top: -16px;
  opacity: 0.6;
}

/* 단, 다크 섹션이 인접하면 디바이더 숨김 (배경 충돌 방지) */
main.page-main :is(.lp-process, .lp-consult, .svc-section--dark)::before,
main.page-main :is(.lp-process, .lp-consult, .svc-section--dark) + ::before {
  display: none !important;
}


