:root {
  --navy: #0b1730;
  --navy-light: #162445;
  --gold: #ff8a00;
  --gold-hover: #ff6a00;
  --text-main: #111827;
  --text-sub: #4b5563;
  --bg-page: #f6f7fb;
  --header-h: 132px;
  --topbar-h: 40px;
  --kslaw-header-h: var(--header-h);
  --header-container: 1140px;
  --header-bg: #101a2a;
  --header-bg-2: #0b1322;
  --header-line: rgba(255, 255, 255, 0.14);
  --header-line-2: rgba(255, 255, 255, 0.08);
  --header-ink: rgba(255, 255, 255, 0.92);
  --header-ink-dim: rgba(255, 255, 255, 0.66);
  --header-underline-w: 180px;
  --max-width: 1140px;
  --radius: 16px;
  --radius-lg: 18px;
  --shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
  --shadow-soft: 0 10px 26px rgba(15, 23, 42, 0.06);
  --border: #e5e7eb;
  --nav-duration: .9s;
  --menu-duration: .25s;
  --header-bg-height: 360px;
  --cta-bar-h: 72px;

  /* Shared textures (used across home/header/footer) */
  --tex-paper: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  --tex-fiber: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23f)' opacity='.30'/%3E%3C/svg%3E");
  --tex-marble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='620' height='620'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012' numOctaves='3' seed='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='620' height='620' filter='url(%23m)' opacity='.55'/%3E%3C/svg%3E");
  --wm-columns: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg opacity='.10' stroke='%230f172a' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M60 96h120'/%3E%3Cpath d='M64 96L120 60l56 36'/%3E%3Cpath d='M80 96v72m40-72v72m40-72v72'/%3E%3Cpath d='M70 168h100'/%3E%3C/g%3E%3C/svg%3E");
  --tex-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23g)' opacity='.28'/%3E%3C/svg%3E");

  /* Shared page background (draft-style) */
  --page-bg: var(--bg-page, #fdfbf7);
  --page-bg-pattern:
    radial-gradient(900px 600px at 20% 0%, rgba(47, 124, 255, 0.08), transparent 55%),
    radial-gradient(900px 600px at 85% 10%, rgba(255, 138, 0, 0.06), transparent 55%),
    radial-gradient(rgba(15, 23, 42, 0.06) 1px, transparent 1px),
    var(--page-bg);
  --page-bg-size: auto, auto, 22px 22px, auto;
  --page-bg-pos: 0 0, 0 0, 0 0, 0 0;
}

* { box-sizing: border-box; }

html {
  scroll-padding-top: calc(var(--header-h) + 16px);
}

@media (max-width: 992px) {
  :root { --header-h: 124px; --topbar-h: 38px; }
}

@media (max-width: 640px) {
  :root { --header-h: 116px; --topbar-h: 34px; }
}

@media (max-width: 768px) {
  :root { --cta-bar-h: 58px; }
}

body {
  margin: 0;
  padding: var(--header-h) 0 calc(var(--cta-bar-h) + env(safe-area-inset-bottom, 0px));
  font-family: var(--font-body, "Pretendard Variable", Pretendard, sans-serif);
  font-size: clamp(17px, 1.15vw, 19px);
  color: var(--text-main);
  background: var(--page-bg-pattern);
  background-size: var(--page-bg-size);
  background-position: var(--page-bg-pos);
  line-height: 1.72;
  letter-spacing: 0;
  word-break: keep-all;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

img { max-width: 100%; height: auto; }

.ks-container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 20px;
}

.ksDivider {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 138, 0, 0.92) 50%, transparent 100%);
  opacity: 0.85;
}

.ksDivider--soft {
  opacity: 0.6;
  background:
    linear-gradient(90deg, transparent 0%, rgba(255, 138, 0, 0.45) 50%, transparent 100%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0.10));
}

.ksDivider--pattern {
  height: 10px;
  background:
    linear-gradient(90deg, transparent, rgba(255, 138, 0, 0.75), transparent),
    repeating-linear-gradient(90deg, rgba(255, 138, 0, 0.0) 0 16px, rgba(255, 138, 0, 0.22) 16px 17px);
  opacity: 0.72;
}

.skip-link {
  position: fixed;
  left: 12px;
  top: 12px;
  z-index: 100000;
  transform: translateY(-160%);
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(11, 19, 34, 0.96);
  color: rgba(255, 255, 255, 0.96);
  font-weight: 950;
  letter-spacing: -0.02em;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.35);
}

.skip-link:focus {
  transform: translateY(0);
}

a { text-decoration: none; transition: color 0.2s ease, text-decoration-color 0.2s ease; }
a:focus-visible,
button:focus-visible {
  outline: 3px solid rgba(47, 124, 255, 0.55);
  outline-offset: 3px;
  border-radius: 12px;
}

/* Prevent "inline link" underline rules from affecting button-like anchors */
a.ks-btn:hover,
a.nav-cta:hover,
.gnb a.nav-link:hover,
.site-footer a.footer-cta__btn:hover,
.site-footer a.footer-cta__tel:hover,
a.btn:hover,
a.button:hover {
  text-decoration: none;
}

ul, li { list-style: none; padding: 0; margin: 0; }

button { cursor: pointer; border: none; font-family: inherit; }
[hidden] { display: none !important; }

/* WordPress a11y helper (used by search labels) */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.pc-only { display: inline; }
.m-only { display: none; }

@media (max-width: 768px) {
  input, select, textarea { font-size: 16px; }
  .pc-only { display: none; }
  .m-only { display: inline; }
}

/* SEO longform section (rendered via the_content() in templates) */
.seoBody {
  padding: 46px 0 70px;
}

.seoBody__inner {
  position: relative;
  border-radius: 22px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-soft);
  padding: clamp(20px, 2.8vw, 34px);
  overflow: hidden;
}

.seoBody__inner::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(1200px 420px at 10% 0%, rgba(255, 138, 0, 0.08), transparent 60%),
    radial-gradient(900px 380px at 92% 10%, rgba(11, 23, 48, 0.06), transparent 55%),
    var(--tex-fiber),
    var(--tex-grain);
  opacity: 0.55;
  pointer-events: none;
}

.seoBody__inner > * {
  position: relative;
}

.seoBody h1,
.seoBody h2,
.seoBody h3 {
  margin: 0.25em 0 0.55em;
  letter-spacing: -0.02em;
  color: rgba(11, 23, 48, 0.98);
}

.seoBody h1 {
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 950;
}

.seoBody h2 {
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: 900;
  margin-top: 1.45em;
}

.seoBody h3 {
  font-size: 17px;
  font-weight: 850;
  margin-top: 1.15em;
}

.seoBody p {
  margin: 0.65em 0;
  color: rgba(15, 23, 42, 0.84);
}

.seoBody ul,
.seoBody ol {
  margin: 0.7em 0;
  padding-left: 1.2em;
  color: rgba(15, 23, 42, 0.84);
}

.seoBody li {
  margin: 0.35em 0;
}

.seoBody a {
  color: rgba(11, 23, 48, 0.96);
  text-decoration: underline;
  text-decoration-color: rgba(255, 138, 0, 0.58);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.seoBody a:hover {
  color: rgba(11, 23, 48, 1);
  text-decoration-color: rgba(255, 138, 0, 0.92);
}

.seoBody table {
  width: 100%;
  border-collapse: collapse;
  margin: 14px 0 18px;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.9);
}

.seoBody th,
.seoBody td {
  border: 1px solid rgba(15, 23, 42, 0.12);
  padding: 10px 12px;
  vertical-align: top;
}

.seoBody th {
  background: rgba(255, 138, 0, 0.10);
  font-weight: 900;
}

.seoBody blockquote {
  margin: 16px 0;
  padding: 12px 14px;
  border-left: 4px solid rgba(255, 138, 0, 0.88);
  background: rgba(11, 23, 48, 0.04);
  border-radius: 14px;
  color: rgba(15, 23, 42, 0.78);
}

.seoLinks {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(15, 23, 42, 0.10);
}

.seoLinks a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  border: 1px solid rgba(11, 23, 48, 0.14);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.74));
  color: rgba(11, 23, 48, 0.92);
  font-weight: 850;
  letter-spacing: -0.01em;
  text-decoration: none;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.06);
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.seoLinks a:hover {
  transform: translateY(-1px);
  border-color: rgba(47, 124, 255, 0.28);
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.10);
}

@media (max-width: 640px) {
  .seoLinks a {
    width: 100%;
  }
}

/* Header (Reference) */
#header.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-h);
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  z-index: 1000;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

#header.site-header.scrolled,
#header.site-header.scroll,
#header.site-header.is-scrolled {
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
}

#header .header-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  height: 100%;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.logo-area {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.logo-img {
  height: 34px;
  width: auto;
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  min-width: 0;
}

.logo-main {
  font-size: 18px;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.logo-sub {
  font-size: 11px;
  color: var(--text-sub);
  letter-spacing: 0.05em;
}

.gnb {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 100%;
}

.nav-list {
  display: flex;
  gap: 8px;
  height: 100%;
}

.nav-item {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: rgba(11, 23, 48, 0.92);
  padding: 10px 12px;
  border-radius: 12px;
  position: relative;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.nav-link::after {
  display: none;
}

.nav-link:hover,
.nav-link.is-active,
.nav-link.active {
  background: rgba(11, 23, 48, 0.06);
  color: rgba(11, 23, 48, 0.98);
}

.nav-link.is-active,
.nav-link.active {
  background: rgba(11, 23, 48, 0.92);
  color: #fff;
  box-shadow: 0 10px 22px rgba(2, 6, 23, 0.14);
}

.nav-link.is-active:hover,
.nav-link.active:hover {
  background: rgba(11, 23, 48, 0.92);
  color: #fff;
}

.nav-link.is-active::after,
.nav-link.active::after {
  display: none;
}

.sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: #fff;
  min-width: 220px;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  border: 1px solid #eee;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease;
  padding: 10px 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 1001;
}

.nav-item:hover .sub-menu,
.nav-item:focus-within .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.sub-menu a {
  display: block;
  padding: 14px 18px;
  font-size: 16px;
  font-weight: 850;
  color: var(--text-sub);
}

.sub-menu a:hover {
  background: rgba(11, 23, 48, 0.06);
  color: var(--navy);
  font-weight: 700;
}

.nav-cta {
  padding: 12px 18px;
  background: linear-gradient(135deg, rgba(255, 176, 0, 0.98), rgba(255, 138, 0, 0.98));
  color: #0b1220;
  font-size: 15px;
  font-weight: 950;
  border-radius: 12px;
  border: 1px solid rgba(255, 176, 0, 0.62);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  box-shadow: 0 12px 26px rgba(2, 6, 23, 0.14);
  white-space: nowrap;
}

.nav-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 40px rgba(2, 6, 23, 0.18);
}

.menu-toggle {
  display: none;
  width: 26px;
  height: 20px;
  position: relative;
  z-index: 1100;
  background: transparent;
  padding: 0;
}

.menu-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--navy);
  position: absolute;
  left: 0;
  transition: 0.3s;
  border-radius: 2px;
}

.menu-toggle span:nth-child(1) { top: 0; }
.menu-toggle span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.menu-toggle span:nth-child(3) { bottom: 0; }

.menu-toggle.active span:nth-child(1) { top: 50%; transform: rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; }
.menu-toggle.active span:nth-child(3) { bottom: auto; top: 50%; transform: rotate(-45deg); }

@media (max-width: 992px) {
  .gnb {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh;
    background: #fff;
    flex-direction: column;
    padding-top: calc(var(--header-h) + 10px);
    transition: 0.3s ease-in-out;
    z-index: 1000;
    align-items: flex-start;
    gap: 0;
    overflow-x: hidden;
  }

  .gnb.open { right: 0; }

  .nav-list {
    flex-direction: column;
    width: 100%;
    height: auto;
    gap: 0;
    overflow-y: auto;
    overflow-x: hidden;
  }

  .nav-item {
    width: 100%;
    height: auto;
    flex-direction: column;
    align-items: flex-start;
    border-bottom: 1px solid #f1f5f9;
  }

  .nav-link {
    display: block;
    width: 100%;
    padding: 18px 24px;
    font-size: 18px;
    color: var(--navy);
    font-weight: 900;
  }

  .nav-link::after { display: none; }

  .sub-menu {
    position: static;
    width: 100%;
    box-shadow: none;
    border: none;
    background: #f8fafc;
    transform: none;
    opacity: 1;
    visibility: visible;
    padding: 0;
    display: none;
    pointer-events: auto;
    overflow-x: hidden;
  }

  .nav-item.active .sub-menu {
    display: block;
    padding: 8px 0 12px;
    background: #f9fafb;
    border-top: 1px solid #e5e7eb;
    box-shadow: inset 0 1px 0 #f1f5f9;
  }

  .nav-item.active > .nav-link { background: #f8fafc; }

  .sub-menu a {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 14px 24px 14px 48px;
    font-size: 16px;
    border-top: 1px solid #e5e7eb;
    font-weight: 850;
    color: #0f172a;
  }

  .sub-menu a:first-child { border-top: none; }

  .nav-cta {
    margin: 30px auto;
    width: 90%;
    text-align: center;
    padding: 16px;
    font-size: 18px;
  }

  .menu-toggle { display: block; }
}

@media (max-width: 640px) {
  .nav-link { font-size: 15px; }
}

/* =========================================================
   Header refresh (2026)
   - Adds topbar, glass header, premium buttons
========================================================= */

.topbar {
  height: var(--topbar-h, 36px);
  background: linear-gradient(90deg, rgba(11, 18, 32, 0.96) 0%, rgba(16, 28, 51, 0.94) 100%);
  color: rgba(255, 255, 255, 0.82);
  border-bottom: 1px solid rgba(47, 124, 255, 0.18);
  font-size: 14px;
  letter-spacing: -0.01em;
}

.topbar__inner {
  max-width: var(--header-container);
  height: 100%;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.topbar__note { font-weight: 750; opacity: 0.9; }

.topbar__meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.topbar__addr { opacity: 0.85; }
.topbar__tel { color: #ff8a00; font-weight: 950; text-decoration: none; }
.topbar__tel:hover { color: #fff; }

#header.site-header {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.08);
}

#header .header-inner {
  height: 92px;
  gap: 22px;
}

.logo-area { gap: 12px; }
.logo-img { height: 46px; }
.logo-main { font-size: 22px; }
.logo-sub { font-size: 13px; color: #6b7280; letter-spacing: 0.08em; }

.gnb { gap: 18px; }
.nav-list { gap: 10px; }
.nav-link {
  padding: 14px 16px;
  border-radius: 10px;
  font-size: 17px;
  font-weight: 900;
  color: rgba(11, 23, 48, 0.86);
  transition: all 0.18s ease;
}

.nav-link:hover { color: #0b1730; background: rgba(11, 23, 48, 0.06); }
.nav-link.is-active,
.nav-link.active {
  background: #0b1220;
  color: #fff;
  box-shadow: 0 12px 28px rgba(11, 23, 48, 0.18);
}

.header-cta { display: flex; align-items: center; gap: 10px; margin-left: 10px; }
.header-cta .btn {
  min-height: 48px;
  padding: 0 16px;
  border-radius: 10px;
  font-weight: 850;
  font-size: 15px;
  letter-spacing: -0.01em;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  color: #0b1730;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.08);
  transition: transform 0.16s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.header-cta .btn--ghost {
  background: rgba(11, 23, 48, 0.04);
  border-color: rgba(11, 23, 48, 0.12);
  color: #0b1730;
}

.header-cta .btn:hover { transform: translateY(-1px); box-shadow: 0 14px 26px rgba(15, 23, 42, 0.12); }

.nav-cta {
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(255, 176, 0, 1) 0%, rgba(255, 138, 0, 1) 100%);
  color: #0b1220;
  font-weight: 900;
  border-radius: 10px;
  border: 1px solid rgba(255, 176, 0, 0.68);
  box-shadow: 0 14px 34px rgba(11, 23, 48, 0.16);
}

.menu-toggle span { background: #0b1730; }

@media (max-width: 992px) {
  :root { --header-h: 124px; --topbar-h: 38px; }
  .topbar__inner { padding: 0 16px; font-size: 13px; }
  #header .header-inner { height: 86px; padding: 0 16px; }
  .header-cta { display: none; }
  .gnb { padding: calc(var(--header-h) + 12px) 22px 22px; }
  .nav-link { font-size: 18px; padding: 18px 24px; border-radius: 0; }
  .nav-cta { width: 100%; text-align: center; margin-top: 12px; }
}

@media (max-width: 640px) {
  :root { --header-h: 116px; --topbar-h: 34px; }
  .topbar { font-size: 13px; }
}

/* =========================================================

   Common UI Components (KS)
   - Shared across FAQ/Location/Selfcheck/Index templates
========================================================= */

/* Global layout helpers */
.inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 20px;
}

@media (max-width: 640px) {
  .inner { padding: 0 18px; }
}

.section-py {
  padding: clamp(64px, 6vw, 92px) 0;
}

.ks-container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 20px;
}

.ks-card {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.ks-card--pad { padding: 18px 18px; }

/* =========================================================

   KS Hero (animated pattern + moving texture slot)
   - Used by: selfcheck / faq / contact / cases
========================================================= */

.ks-hero {
  --ks-hero-slot-top: 62%;
  --ks-hero-slot-h: 86px;
  --ks-hero-slot-w: min(1040px, 92vw);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background: linear-gradient(135deg, #0b1730 0%, #142a55 100%);
}

.ks-hero::before {
  content: "";
  position: absolute;
  inset: -22%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.42;
  background-image:
    radial-gradient(1100px 520px at 50% -10%, rgba(255, 138, 0, 0.18), transparent 55%),
    radial-gradient(900px 520px at 20% 100%, rgba(255, 255, 255, 0.08), transparent 60%),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.10) 0 1px, rgba(255, 255, 255, 0.00) 1px 14px),
    var(--tex-grain);
  background-size: auto, auto, 14px 14px, 120px 120px;
  background-position: 0 0, 0 0, 0 0, 0 0;
  filter: saturate(1.05) contrast(1.03);
}

@media (prefers-reduced-motion: no-preference) {
  .ks-hero::before { animation: ks-hero-pan 18s linear infinite; }
}

.ks-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(1200px 760px at 12% 10%, rgba(2, 6, 23, 0.12), transparent 58%),
    linear-gradient(180deg, rgba(2, 6, 23, 0.72) 0%, rgba(2, 6, 23, 0.55) 44%, rgba(2, 6, 23, 0.38) 100%);
}

.ks-hero__in {
  position: relative;
  z-index: 3;
}

.ks-hero-slot {
  position: absolute;
  left: 50%;
  top: var(--ks-hero-slot-top);
  width: var(--ks-hero-slot-w);
  height: var(--ks-hero-slot-h);
  transform: translate(-50%, -50%);
  z-index: 2;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.34);
  overflow: hidden;
  pointer-events: none;
  opacity: 0.96;
}

.ks-hero-slot::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(2, 6, 23, 0.78) 0%, rgba(2, 6, 23, 0.18) 50%, rgba(2, 6, 23, 0.74) 100%);
  opacity: 0.9;
}

.ks-hero-slot__tex {
  position: absolute;
  inset: -40%;
  opacity: 0.72;
  background-image:
    linear-gradient(90deg, rgba(241, 196, 83, 0.22) 0%, rgba(255, 255, 255, 0.06) 36%, rgba(241, 196, 83, 0.18) 72%, rgba(255, 255, 255, 0.06) 100%),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.10) 0 1px, rgba(255, 255, 255, 0.00) 1px 12px),
    var(--tex-grain);
  background-size: 240% 100%, 12px 12px, 120px 120px;
  background-position: 0% 50%, 0 0, 0 0;
  mix-blend-mode: overlay;
  will-change: transform;
}

@keyframes ks-slot-move {
  0% { transform: translate3d(-10%, 0, 0); }
  100% { transform: translate3d(10%, 0, 0); }
}

@media (prefers-reduced-motion: no-preference) {
  .ks-hero-slot__tex { animation: ks-slot-move 10s ease-in-out infinite alternate; }
}

@media (max-width: 640px) {
  .ks-hero { --ks-hero-slot-h: 78px; }
}

/* Reveal (scroll-in) */
.reveal {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity .7s ease,
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
    transform .7s cubic-bezier(.21,.87,.31,1);
  transition-delay: var(--d, 0ms);
  will-change: opacity, transform;
}

.reveal.is-in,
.reveal.on {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; transition-delay: 0ms; }
}

/* Stamp (rate) */
.ksStamp {
  --stamp-red: rgba(220, 38, 38, 0.92);
  position: absolute;
  z-index: 2;
  width: 92px;
  height: 92px;
  border-radius: 999px;
  border: 3px solid var(--stamp-red);
  color: var(--stamp-red);
  background:
    radial-gradient(ellipse at 30% 20%, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.72) 62%, rgba(255, 255, 255, 0.78)),
    var(--tex-grain);
  display: grid;
  place-items: center;
  text-align: center;
  transform: rotate(-14deg);
  box-shadow: 0 18px 60px rgba(2, 6, 23, 0.18);
  backdrop-filter: blur(8px);
  pointer-events: none;
  opacity: 0.96;
}

.ksStamp::after {
  content: "";
  position: absolute;
  inset: 9px;
  border-radius: 999px;
  border: 2px dashed rgba(220, 38, 38, 0.55);
  opacity: 0.9;
}

.ksStamp__label {
  font-size: 12px;
  font-weight: 950;
  letter-spacing: -0.02em;
  line-height: 1;
}

.ksStamp__value {
  margin-top: 4px;
  font-size: 22px;
  font-weight: 950;
  letter-spacing: -0.03em;
  line-height: 1;
}

.ksStamp--tl { top: 14px; left: 14px; }
.ksStamp--tr { top: 14px; right: 14px; }

@media (max-width: 520px) {
  .ksStamp { width: 82px; height: 82px; }
  .ksStamp__value { font-size: 20px; }
}

/* Simple lightbox (image zoom) */
.ksLightbox {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;
  place-items: center;
  padding: 16px;
  background: rgba(2, 6, 23, 0.72);
}

.ksLightbox.is-open { display: grid; }

.ksLightboxDialog {
  width: min(980px, 100%);
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: #0b1220;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.45);
}

.ksLightboxMedia {
  width: 100%;
  height: auto;
  display: block;
  background: #0b1220;
}

.ksLightboxBar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  color: rgba(226, 232, 240, 0.92);
  font-size: 13px;
  font-weight: 850;
  background: rgba(255, 255, 255, 0.06);
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}

.ksLightboxClose {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-weight: 950;
}

.ksLightboxClose:hover { filter: brightness(1.05); }

.ks-badge {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.20);
  background: rgba(255, 255, 255, 0.10);
  color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
}

.ks-divider { height: 1px; background: rgba(15, 23, 42, 0.08); }

.ks-sectionTitle {
  margin: 0;
  font-size: 26px;
  font-weight: 950;
  letter-spacing: -0.03em;
  color: #0f172a;
}

.ks-sectionDesc {
  margin: 10px 0 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.75;
  max-width: 760px;
}

.ks-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 14px;
  border-radius: var(--radius);
  font-weight: 950;
  font-size: 14px;
  letter-spacing: -0.01em;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  color: #0f172a;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, border-color .18s ease;
  user-select: none;
}

.ks-btn:focus-visible {
  outline: 3px solid rgba(47, 124, 255, 0.55);
  outline-offset: 3px;
}

.ks-btn--primary {
  background: var(--navy, #0b1730);
  border-color: var(--navy, #0b1730);
  color: #fff;
  box-shadow: var(--shadow);
}

.ks-btn--secondary {
  background: #fff;
  color: var(--navy, #0b1730);
  border-color: rgba(15, 23, 42, 0.14);
  box-shadow: var(--shadow-soft);
}

.ks-btn--gold {
  background: linear-gradient(135deg, rgba(255, 176, 0, 1) 0%, rgba(255, 138, 0, 1) 100%);
  color: #0b1220;
  border-color: rgba(255, 176, 0, 0.78);
  box-shadow: var(--shadow);
}

.ks-btn--ghost {
  background: #fff;
  color: var(--navy, #0b1730);
  border-color: rgba(15, 23, 42, 0.14);
  box-shadow: var(--shadow-soft);
}

@media (hover: hover) {
  .ks-btn:hover { transform: translateY(-2px); }
}

/* Subtle texture layer for premium cards.
   - Disabled on long-form KS subpages to avoid "photo layer" artifacts and reduce compositing. */
.ks-card {
  position: relative;
}

.ks-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.06;
  background-image: var(--tex-fiber);
  background-size: 260px 260px;
}

body.is-ks-sub .ks-card::before {
  content: none;
}

/* =========================================================
   KS Subpages (ks-sub)
   - only used by pasan/rehab/corporate templates
========================================================= */

@keyframes ks-drift {
  0% { background-position: 0 0, 0 0, 0 0, 0 0; }
  100% { background-position: 140px 90px, -110px 80px, 90px -70px, -70px 60px; }
}

@keyframes ks-hero-pan {
  0% { background-position: 0 0, 0 0, 0 0, 0 0; }
  100% { background-position: 0 0, 0 0, 260px -260px, 120px 60px; }
}

@keyframes ks-grain {
  0% { transform: translate3d(0,0,0); opacity: .11; }
  50% { transform: translate3d(-1.5%, 1%, 0); opacity: .14; }
  100% { transform: translate3d(1.2%, -1.2%, 0); opacity: .11; }
}

@keyframes ks-shimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 120% 50%; }
}

@keyframes ks-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes ks-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

@keyframes ks-sheen {
  0% { transform: translate3d(-56%, 0, 0) rotate(8deg); opacity: 0; }
  18% { opacity: 0.9; }
  45% { transform: translate3d(56%, 0, 0) rotate(8deg); opacity: 0; }
  100% { transform: translate3d(56%, 0, 0) rotate(8deg); opacity: 0; }
}

@keyframes ks-ring {
  0%, 100% { transform: scale(0.92); opacity: 0.55; }
  55% { transform: scale(1.07); opacity: 0.95; }
}

.ks-sub{
  position: relative;
  isolation: isolate;
  background: var(--page-bg-pattern);
  background-size: var(--page-bg-size);
  background-position: var(--page-bg-pos);
}

.ks-sub::before{
  content:"";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .12;
  background-image:
    var(--tex-paper),
    var(--tex-fiber),
    var(--wm-columns),
    repeating-linear-gradient(135deg, rgba(15,23,42,.08) 0 1px, rgba(255,255,255,0) 1px 14px);
  background-size: 180px 180px, 260px 260px, 240px 240px, 14px 14px;
  background-position: 0 0, 0 0, 84% 10%, 0 0;
  mix-blend-mode: multiply;
  z-index: 0;
}

.ks-sub::after{
  content:"";
  position: absolute;
  inset: -18%;
  pointer-events: none;
  opacity: .10;
  background-image: var(--tex-grain);
  background-size: 120px 120px;
  mix-blend-mode: overlay;
  z-index: 0;
}

.ks-sub > *{ position: relative; z-index: 1; }

@media (prefers-reduced-motion: no-preference){
  .ks-sub::after{ animation: ks-grain 10s ease-in-out infinite; }
}

/* ===== PAGE CSS (original) ===== */
/* =========================================================
   KSLaw Subpage Unified System (REHAB = PASAN = CORPORATE)
   - scope: .ks-sub only
========================================================= */

.ks-sub{
  --navy:#0b1730;
  --navy2:#162445;
  --gold:#d4a967;
  --gold2:#b8934d;
  --wm-columns-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg opacity='.10' stroke='%23ffffff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M60 96h120'/%3E%3Cpath d='M64 96L120 60l56 36'/%3E%3Cpath d='M80 96v72m40-72v72m40-72v72'/%3E%3Cpath d='M70 168h100'/%3E%3C/g%3E%3C/svg%3E");

  --bg:#f6f7fb;
  --paper:#ffffff;

  --text:#0f172a;
  --sub:rgba(15, 23, 42, .80);
  --muted:rgba(15, 23, 42, .62);

  --line:rgba(11,23,48,.12);
  --shadow-soft:0 10px 24px rgba(11,23,48,.06);
  --shadow:0 14px 34px rgba(11,23,48,.08);
  --shadow2:0 22px 54px rgba(11,23,48,.14);

  --r-xl:24px;
  --r-lg:18px;
  --r-md:14px;

  --container:1140px;
  --card-gap:16px;
  --sec-gap:96px;

  color:var(--text);
  font-family:"Pretendard Variable", Pretendard, system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans KR", sans-serif;
  font-size:16px;
  line-height:1.75;
  letter-spacing:-0.01em;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

@media (max-width: 980px){
  .ks-sub{
    --container: 1080px;
    --sec-gap:84px;
    --card-gap:14px;
  }
}

@media (max-width: 640px){
  .ks-sub{
    --container: min(1040px, 100% - 24px);
    --sec-gap:64px;
    --card-gap:12px;
    --r-lg:16px;
    --r-md:12px;
  }
}

@media (max-width: 480px){
  .ks-sub{
    --sec-gap:52px;
    --card-gap:10px;
  }
}
@media (min-width:1024px){ .ks-sub{ font-size:17px; } }
.ks-sub *{ box-sizing:border-box; }
.ks-sub .ks-inner,
.ks-sub .ks-container{ max-width:var(--container); margin:0 auto; padding:0 20px; }
.ks-sub a{ color:inherit; text-decoration:none; }
.ks-sub a:focus-visible,
.ks-sub button:focus-visible,
.ks-sub summary:focus-visible{
  outline:3px solid rgba(212,169,103,.35);
  outline-offset:3px;
  border-radius:10px;
}
.ks-sub .ks-section{ padding:var(--sec-gap) 0; }
@media (max-width:640px){ .ks-sub .ks-section{ padding:calc(var(--sec-gap) - 6px) 0; } }
.ks-sub .ks-section.is-paper{
  background:var(--paper);
  border-top:1px solid rgba(11,23,48,.06);
  border-bottom:1px solid rgba(11,23,48,.06);
}
.ks-sub .ks-anchor{ scroll-margin-top: calc(var(--header-h) + 90px); }

/* section header (hierarchy) */
.ks-sub .ks-secHead{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:26px;
}
.ks-sub .ks-secBar{
  width:4px;
  height:46px;
  border-radius:999px;
  background: linear-gradient(180deg, rgba(212,169,103,1), rgba(184,147,77,1));
  box-shadow: 0 10px 22px rgba(184,147,77,.18);
  flex:0 0 4px;
  margin-top: 6px;
}
.ks-sub .ks-secKicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: rgba(11,23,48,.55);
}
.ks-sub .ks-secKicker::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background: rgba(212,169,103,.95);
  box-shadow: 0 10px 18px rgba(184,147,77,.22);
}
.ks-sub .ks-secHead .ks-h2{ margin:6px 0 10px; }
.ks-sub .ks-secHead .ks-lead{ margin:0; }
@media (max-width:640px){
  .ks-sub .ks-secHead{ gap:12px; margin-bottom:20px; }
  .ks-sub .ks-secBar{ height:42px; }
}

.ks-sub .ks-h2{
  margin:0 0 10px;
  font-size:clamp(22px, 2.6vw, 34px);
  font-weight:950;
  letter-spacing:-0.04em;
  color:var(--navy);
}
.ks-sub .ks-lead{
  margin:0;
  color:var(--sub);
  max-width:68ch;
  font-size:clamp(14px, 1.12vw, 16px);
  line-height:1.8;
}
.ks-sub p{ margin:0; }
.ks-sub p + p{ margin-top:10px; }

.ks-sub .ks-hero{
  background:
    radial-gradient(780px 520px at 18% 14%, rgba(212,169,103,.12), transparent 62%),
    radial-gradient(780px 520px at 82% 18%, rgba(96,126,180,.12), transparent 62%),
    linear-gradient(140deg, #0d1426 0%, #0b1222 48%, #0a0f1d 100%);
  color:#f8fafc;
  margin-top: calc(var(--header-h) * -1);
  padding: calc(92px + var(--header-h)) 0 112px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height: clamp(480px, 70vh, 740px);
}
@media (max-width:640px){
  .ks-sub .ks-hero{
    padding: calc(64px + var(--header-h)) 0 90px;
    min-height: 480px;
  }
}
.ks-sub .ks-hero::before{
  content:"";
  position:absolute;
  inset:-14%;
  pointer-events:none;
  opacity:.36;
  background-image:
    repeating-linear-gradient(135deg, rgba(255,255,255,.10) 0 1px, transparent 1px 18px),
    radial-gradient(rgba(255,255,255,.16) 1px, transparent 1px),
    var(--tex-fiber);
  background-size: 18px 18px, 26px 26px, 260px 260px;
  background-position: 0 0, 12% 16%, 0 0;
  mix-blend-mode: screen;
  mask-image: radial-gradient(circle at 50% 34%, rgba(0,0,0,1) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,0) 100%);
  transform: translate3d(calc(var(--pxx, 0px) * 0.14), calc(var(--pyy, 0px) * 0.14), 0);
}
.ks-sub .ks-hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    var(--tex-grain),
    var(--wm-columns-light),
    radial-gradient(980px 460px at 52% 26%, rgba(255,255,255,.08), transparent 70%),
    radial-gradient(820px 420px at 18% 84%, rgba(212,169,103,.08), transparent 70%),
    linear-gradient(180deg, rgba(10,16,29,0) 0%, rgba(10,16,29,.32) 74%, rgba(8,12,22,.46) 100%);
  background-size: 120px 120px, 240px 240px, auto, auto, auto;
  background-position: 0 0, 86% 38%, 0 0, 0 0, 0 0;
  opacity:.9;
}
.ks-sub .ks-heroIn{ position:relative; z-index:2; text-align:center; }
.ks-sub .ks-heroIcon{
  width:66px;
  height:66px;
  border-radius:999px;
  margin: 0 auto 18px;
  position: relative;
  display:grid;
  place-items:center;
  background: linear-gradient(135deg, rgba(212,169,103,1), rgba(184,147,77,1));
  box-shadow: 0 18px 54px rgba(0,0,0,.28);
}
.ks-sub .ks-heroIcon::after{
  content:"";
  position:absolute;
  inset:-10px;
  border-radius:999px;
  border: 1px solid rgba(212,169,103,.55);
  box-shadow: 0 0 0 1px rgba(255,255,255,.08);
  opacity: 0.65;
  transform: scale(0.92);
  pointer-events:none;
}
.ks-sub .ks-heroIcon svg{
  width:28px;
  height:28px;
  stroke:#fff;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  fill:none;
  position: relative;
  z-index: 1;
}
.ks-sub .ks-kicker{
  color:rgba(212,169,103,.96);
  font-size:12px;
  font-weight:950;
  letter-spacing:.28em;
  text-transform:uppercase;
  margin: 0 0 18px;
}
.ks-sub .ks-h1{
  margin:0;
  font-size: clamp(36px, 7vw, 66px);
  font-weight:1000;
  letter-spacing:-.05em;
  line-height:1.08;
  text-shadow: 0 12px 34px rgba(0,0,0,.26);
}
.ks-sub .ks-heroRule{
  width: 78px;
  height: 1px;
  margin: 18px auto 22px;
  background: linear-gradient(90deg, rgba(212,169,103,0), rgba(212,169,103,.85), rgba(212,169,103,0));
  opacity:.75;
}
.ks-sub .ks-hero-desc{
  margin: 0 auto;
  max-width: 60ch;
  color: rgba(226,232,240,.88);
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 1.85;
}
.ks-sub .ks-heroStats{
  margin-top: 34px;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  max-width: 880px;
  margin-left:auto;
  margin-right:auto;
}
.ks-sub .ks-heroStat{
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 14px 34px rgba(0,0,0,.22);
}
.ks-sub .ks-heroStat strong{
  display:block;
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight:1000;
  letter-spacing:-.03em;
  color: rgba(212,169,103,.98);
}
.ks-sub .ks-heroStat span{
  display:block;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 850;
  color: rgba(226,232,240,.72);
  letter-spacing:-.01em;
}
.ks-sub .ks-heroScroll{
  margin: 46px auto 0;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(212,169,103,.28);
  background: rgba(255,255,255,.06);
  display:grid;
  place-items:center;
  box-shadow: 0 18px 46px rgba(0,0,0,.24);
}
.ks-sub .ks-heroScroll svg{
  width: 20px;
  height: 20px;
  stroke: rgba(212,169,103,.98);
  stroke-width:2.2;
}
@media (max-width:900px){
  .ks-sub .ks-heroStats{ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
}

@media (max-width:560px){
  .ks-sub .ks-heroStats{ grid-template-columns: 1fr; max-width: 480px; }
  .ks-sub .ks-heroStat{ text-align:left; }
}

/* pill nav */
.ks-sub .ks-nav-wrap{
  margin-top:-32px;
  padding:10px 20px 18px;
  position:sticky;
  top:calc(var(--header-h) + 8px);
  z-index:30;
}
.ks-sub .ks-nav{
  max-width:var(--container);
  margin:0 auto;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(241,245,251,.92));
  border: 1px solid rgba(212,169,103,.18);
  box-shadow: 0 18px 54px rgba(11,23,48,.10);
  border-radius:22px;
  padding:10px 12px;
  display:flex;
  gap:10px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
  position:relative;
  scrollbar-width:none;
}
.ks-sub .ks-nav::-webkit-scrollbar{ display:none; }
.ks-sub .ks-nav::before,
.ks-sub .ks-nav::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:28px;
  pointer-events:none;
}
.ks-sub .ks-nav::before{ left:0; background:linear-gradient(90deg, rgba(255,255,255,.92), rgba(255,255,255,0)); }
.ks-sub .ks-nav::after{ right:0; background:linear-gradient(270deg, rgba(255,255,255,.92), rgba(255,255,255,0)); }
.ks-sub .ks-nav a{
  display:flex;
  align-items:center;
  justify-content:center;
  height:40px;
  border-radius:14px;
  font-size:14px;
  font-weight:900;
  color:rgba(15,23,42,.66);
  white-space:nowrap;
  border: 1px solid transparent;
  transition:background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
  padding:0 14px;
  scroll-snap-align:start;
}
.ks-sub .ks-nav a:hover{
  background: rgba(11,23,48,.06);
  border-color: rgba(11,23,48,.08);
  color: var(--navy);
}
.ks-sub .ks-nav a.is-active{
  background: linear-gradient(135deg, var(--navy), var(--navy2));
  border-color: rgba(212,169,103,.35);
  box-shadow: 0 12px 30px rgba(11,23,48,.18);
  color:#fff;
}

/* icon */
.ks-sub .ks-ico{
  width:42px; height:42px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:var(--navy);
  border:1px solid rgba(212,169,103,.35);
  flex:0 0 42px;
}
.ks-sub .ks-ico svg{
  width:22px; height:22px;
  stroke:var(--gold);
  fill:none;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* cards */
.ks-sub .ks-grid2{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:var(--card-gap);
  margin-top:22px;
}
@media (max-width:900px){ .ks-sub .ks-grid2{ grid-template-columns:1fr; } }

.ks-sub .ks-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-soft);
  padding:20px 20px 18px;
}
@media (max-width:640px){ .ks-sub .ks-card{ padding:18px 16px 16px; } }
.ks-sub .ks-card-top{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.ks-sub .ks-card h3{
  margin:0;
  font-size:16px;
  font-weight:1000;
  letter-spacing:-0.03em;
  color:var(--navy);
}
.ks-sub .ks-card p{
  margin:0;
  color:var(--sub);
  font-size:14px;
  line-height:1.75;
  max-width:78ch;
}

/* summary cards 4 */
.ks-sub .ks-cards4{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:var(--card-gap);
}
@media (max-width:1100px){ .ks-sub .ks-cards4{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:640px){ .ks-sub .ks-cards4{ grid-template-columns:1fr; } }

.ks-sub .ks-scard{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90)),
    var(--paper);
  border:1px solid rgba(15,23,42,.12);
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:22px 22px 20px;
  min-height:150px;
}
.ks-sub .ks-scard-top{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.ks-sub .ks-scard h3{ margin:0; font-size:16px; font-weight:1000; color:var(--navy); letter-spacing:-0.03em; }
.ks-sub .ks-scard p{ margin:0; color:var(--sub); font-size:14px; line-height:1.8; max-width:78ch; }

/* checklist bars */
.ks-sub .ks-bars{ margin-top:18px; display:flex; flex-direction:column; gap:14px; }
.ks-sub .ks-bar{
  display:flex;
  border:1px solid rgba(15,23,42,.12);
  background:
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.90)),
    var(--paper);
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.ks-sub .ks-mark{
  width:86px;
  background:linear-gradient(135deg, var(--navy), var(--navy2));
  display:grid;
  place-items:center;
  flex:0 0 86px;
}
.ks-sub .ks-mark svg{
  width:26px; height:26px;
  stroke:var(--gold);
  fill:none;
  stroke-width:2.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ks-sub .ks-btxt{
  padding:18px 18px;
  color:rgba(15,23,42,.86);
  font-weight:900;
  line-height:1.85;
}
@media (max-width:640px){
  .ks-sub .ks-bar{ flex-direction:column; align-items:flex-start; }
  .ks-sub .ks-mark{
    width:100%;
    flex-basis:auto;
    border-radius:14px 14px 0 0;
    padding:10px 0;
    place-items:center;
  }
  .ks-sub .ks-btxt{ padding:14px 16px; font-size:14px; }
}

/* accordion */
.ks-sub .ks-acc{ margin-top:18px; display:flex; flex-direction:column; gap:14px; }
.ks-sub .ks-acc details{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90)),
    var(--paper);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.ks-sub .ks-acc details[open]{
  border-color: rgba(212,169,103,.42);
  box-shadow: 0 18px 46px rgba(11,23,48,.12);
}
.ks-sub .ks-acc summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:12px;
  padding:18px 18px;
  user-select:none;
}
.ks-sub .ks-acc summary::-webkit-details-marker{ display:none; }
.ks-sub .ks-badge{
  display:inline-flex;
  align-items:center;
  height:26px;
  padding:0 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:1000;
  color:var(--navy);
  background:rgba(212,169,103,.22);
  border:1px solid rgba(212,169,103,.35);
  flex:0 0 auto;
}
.ks-sub .ks-atitle{ font-weight:1000; color:var(--navy); letter-spacing:-0.02em; font-size:15px; }
.ks-sub .ks-chev{
  margin-left:auto;
  width:34px; height:34px;
  border-radius:999px;
  border:1px solid rgba(11,23,48,.12);
  display:grid;
  place-items:center;
  background:#fff;
}
.ks-sub .ks-chev svg{
  width:18px; height:18px;
  stroke:var(--navy);
  fill:none;
  stroke-width:2.4;
  transition:transform .18s ease;
}
.ks-sub .ks-acc details[open] .ks-chev svg{ transform:rotate(180deg); }
.ks-sub .ks-abody{
  padding:0 18px 18px;
  color:var(--sub);
  font-size:14px;
  line-height:1.85;
}
.ks-sub .ks-abody ul{ margin:10px 0 0; padding-left:18px; max-width:96ch; }
.ks-sub .ks-abody li{ margin:8px 0; }
.ks-sub .ks-abody strong{ color:var(--navy); font-weight:1000; }

/* vertical flow */
.ks-sub .ks-flow{
  position:relative;
  margin-top:22px;
  display:flex;
  flex-direction:column;
  gap:16px;
  padding-left:30px;
}
.ks-sub .ks-flow::before{
  content:"";
  position:absolute;
  left:12px;
  top:8px;
  bottom:8px;
  width:2px;
  background: rgba(11,23,48,.12);
  border-radius:2px;
}
.ks-sub .ks-step{
  position:relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90)),
    var(--paper);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-soft);
  padding:20px 20px 18px 22px;
}
.ks-sub .ks-step::before{
  content:"";
  position:absolute;
  left:-28px;
  top:18px;
  width:26px;
  height:26px;
  border-radius:999px;
  background: var(--navy);
  border:2px solid rgba(212,169,103,.45);
  box-shadow: var(--shadow);
}
.ks-sub .ks-no{
  position:absolute;
  left:-28px;
  top:18px;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  font-size:10px;
  font-weight:1000;
  color:#fff;
  letter-spacing:.06em;
}
.ks-sub .ks-step h3{ margin:0 0 8px; font-size:16px; font-weight:1000; color:var(--navy); letter-spacing:-0.03em; }
.ks-sub .ks-step p{ margin:0; font-size:14px; color:var(--sub); line-height:1.9; max-width:96ch; }

@media (max-width:640px){
  .ks-sub .ks-flow{ padding-left:0; gap:14px; }
  .ks-sub .ks-flow::before{ display:none; }
  .ks-sub .ks-step{ padding:18px 18px; }
  .ks-sub .ks-step::before{ display:none; }
  .ks-sub .ks-no{
    position:static;
    width:auto;
    height:auto;
    margin:0 0 8px;
    padding:6px 10px;
    border-radius:12px;
    background:var(--navy);
    border:1px solid rgba(212,169,103,.45);
  }
}

/* mini cards */
.ks-sub .ks-mini{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:var(--card-gap);
  margin-top:18px;
}
@media (max-width:640px){ .ks-sub .ks-mini{ grid-template-columns:1fr; } }
.ks-sub .ks-mcard{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90)),
    var(--paper);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-soft);
  padding:20px 20px 18px;
}
.ks-sub .ks-mcard h3{ margin:0 0 6px; font-size:15px; font-weight:1000; color:var(--navy); }
.ks-sub .ks-mcard p{ margin:0; color:var(--sub); font-size:14px; line-height:1.78; max-width:78ch; }

/* note */
.ks-sub .ks-note{
  margin-top:18px;
  background:rgba(212,169,103,.12);
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  padding:18px 18px;
  box-shadow:none;
}
.ks-sub .ks-note-title{ margin:0 0 8px; font-weight:1000; color:var(--navy); letter-spacing:-0.03em; font-size:16px; }
.ks-sub .ks-note ul{ margin:10px 0 0; padding-left:18px; }
.ks-sub .ks-note li{ margin:8px 0; color:rgba(15,23,42,.82); line-height:1.75; }
.ks-sub .ks-note strong{ color:var(--navy); font-weight:1000; }

/* CTA */
.ks-sub .ks-cta{
  background:var(--paper);
  border:1px solid rgba(11,23,48,.10);
  box-shadow:var(--shadow2);
  border-radius:var(--r-xl);
  padding:24px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:18px;
  position:relative;
  overflow:hidden;
}
.ks-sub .ks-cta::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  background: linear-gradient(180deg, rgba(212,169,103,1), rgba(184,147,77,1));
  opacity:.9;
}
.ks-sub .ks-cta::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(680px 240px at 18% 0%, rgba(212,169,103,.12), transparent 60%),
    radial-gradient(520px 220px at 92% 100%, rgba(11,23,48,.06), transparent 62%);
}
.ks-sub .ks-cta > *{ position:relative; z-index:1; }
@media (max-width:860px){ .ks-sub .ks-cta{ flex-direction:column; align-items:flex-start; } }
.ks-sub .ks-cta-k{ margin:0 0 6px; font-size:12px; font-weight:1000; letter-spacing:.18em; color:rgba(11,23,48,.55); }
.ks-sub .ks-cta-t{ margin:0 0 8px; font-size:clamp(18px, 2vw, 24px); font-weight:1000; letter-spacing:-0.03em; color:var(--navy); }
.ks-sub .ks-cta-d{ margin:0; color:var(--sub); font-size:14px; line-height:1.75; max-width:72ch; }
.ks-sub .ks-btns{ display:flex; gap:10px; flex-wrap:wrap; }
.ks-sub .ks-btn{
  height:48px;
  padding:0 16px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:1000;
  font-size:14px;
  border:1px solid transparent;
}
.ks-sub .ks-btn.primary{ background:var(--navy); color:#fff; border-color:rgba(11,23,48,.18); }
.ks-sub .ks-btn.ghost{ background:#fff; color:var(--navy); border-color:rgba(11,23,48,.18); }

@media (max-width:640px){
  .ks-sub .ks-btns{ width:100%; }
  .ks-sub .ks-btn{ width:100%; }
}

/* Shared bullet list (for compare/why sections) */
.ks-sub .ks-bullets{
  list-style: none;
  padding: 0;
  margin: 14px 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ks-sub .ks-bullet{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: rgba(15, 23, 42, 0.78);
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: -0.01em;
}

.ks-sub .ks-bulletIcon{
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  flex: 0 0 22px;
  margin-top: 2px;
  border: 1px solid rgba(11, 23, 48, 0.12);
  background: rgba(11, 23, 48, 0.04);
}

.ks-sub .ks-bulletIcon--ok{
  border-color: rgba(212, 169, 103, 0.35);
  background: rgba(212, 169, 103, 0.12);
}

.ks-sub .ks-bulletIcon svg{
  width: 14px;
  height: 14px;
  stroke: var(--navy, #0b1730);
  stroke-width: 2.5;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* =========================================================
   Premium background pass (sub pages)
========================================================= */

.ks-sub .ks-heroIn {
  position: relative;
  isolation: isolate;
}

.ks-sub .ks-heroIn.reveal {
  transform: translate3d(0, 22px, 0) scale(0.985);
}
.ks-sub .ks-heroIn.reveal.is-in {
  transform: translate3d(0, 0, 0) scale(1);
}

.ks-sub .ks-heroIn::before {
  content: "";
  position: absolute;
  inset: -40px;
  pointer-events: none;
  opacity: 0.12;
  background-image:
    linear-gradient(115deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 28%),
    radial-gradient(220px 220px at 24% 32%, rgba(255,255,255,.14), transparent 52%),
    radial-gradient(220px 220px at 76% 68%, rgba(212,169,103,.16), transparent 50%);
  background-size: 520px 520px, 320px 320px, 320px 320px;
  background-position: 50% 22%, 20% 28%, 78% 68%;
  mix-blend-mode: screen;
  transform: translate3d(calc(var(--pxx, 0px) * 0.10), calc(var(--pyy, 0px) * 0.10), 0);
}

.ks-sub .ks-heroIn::after {
  content: "";
  position: absolute;
  inset: -120px;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(
    115deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 38%,
    rgba(212,169,103,.22) 46%,
    rgba(255,255,255,.18) 50%,
    rgba(212,169,103,.18) 54%,
    rgba(255,255,255,0) 62%,
    rgba(255,255,255,0) 100%
  );
  transform: translate3d(-56%, 0, 0) rotate(8deg);
  will-change: transform, opacity;
}

@media (prefers-reduced-motion: no-preference){
  .ks-sub .ks-hero::after{ animation: ks-grain 16s ease-in-out infinite; }
  .ks-sub .ks-heroIn.reveal.is-in::after{ animation: ks-sheen 6.8s ease-in-out infinite; }
  .ks-sub .ks-heroIcon{ animation: ks-float 5.4s ease-in-out infinite; }
  .ks-sub .ks-heroScroll{ animation: ks-bounce 2.8s ease-in-out infinite; }
  .ks-sub .ks-heroIcon::after{ animation: ks-ring 4.4s ease-in-out infinite; }
}

.ks-sub .ks-section {
  position: relative;
  isolation: isolate;
}

@supports (content-visibility: auto) {
  .ks-sub .ks-section:not(#sec-overview) {
    content-visibility: auto;
    contain-intrinsic-size: 1px 900px;
  }
}

.ks-sub #sec-overview{ --sec-tint-1: rgba(212,169,103,.10); --sec-tint-2: rgba(22,36,69,.07); }
.ks-sub #sec-why{ --sec-tint-1: rgba(22,36,69,.09); --sec-tint-2: rgba(212,169,103,.08); }
.ks-sub #sec-eligibility{ --sec-tint-1: rgba(212,169,103,.08); --sec-tint-2: rgba(22,36,69,.06); }
.ks-sub #sec-flow{ --sec-tint-1: rgba(22,36,69,.09); --sec-tint-2: rgba(212,169,103,.08); }
.ks-sub #sec-benefits{ --sec-tint-1: rgba(212,169,103,.09); --sec-tint-2: rgba(22,36,69,.08); }
.ks-sub #sec-points{ --sec-tint-1: rgba(22,36,69,.09); --sec-tint-2: rgba(212,169,103,.07); }
.ks-sub #sec-consult{ --sec-tint-1: rgba(212,169,103,.10); --sec-tint-2: rgba(22,36,69,.06); }
.ks-sub #sec-faq{ --sec-tint-1: rgba(22,36,69,.09); --sec-tint-2: rgba(212,169,103,.08); }
.ks-sub #sec-docs{ --sec-tint-1: rgba(212,169,103,.08); --sec-tint-2: rgba(22,36,69,.06); }
.ks-sub #sec-cta{ --sec-tint-1: rgba(212,169,103,.10); --sec-tint-2: rgba(22,36,69,.08); }
.ks-sub #sec-only{ --sec-tint-1: rgba(212,169,103,.10); --sec-tint-2: rgba(22,36,69,.08); }
.ks-sub #sec-deny{ --sec-tint-1: rgba(22,36,69,.10); --sec-tint-2: rgba(212,169,103,.08); }

.ks-sub .ks-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.72;
  background-image:
    radial-gradient(1100px 680px at 14% 10%, var(--sec-tint-1, rgba(212,169,103,.10)), transparent 62%),
    radial-gradient(980px 660px at 86% 14%, var(--sec-tint-2, rgba(22,36,69,.08)), transparent 64%);
  background-size: auto, auto;
  background-position: 0 0, 0 0;
}

.ks-sub .ks-section.is-paper::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.06;
  background-image: var(--tex-paper), var(--wm-columns);
  background-size: 180px 180px, 240px 240px;
  background-position: 0 0, 86% 32%;
  mix-blend-mode: multiply;
}

.ks-sub .ks-section > .ks-inner{ position: relative; z-index: 1; }

.ks-sub .ks-secKicker::before{
  background: rgba(212,169,103,.95);
}

@media (prefers-reduced-motion: no-preference){
  .ks-sub .ks-secBar{
    background-size: 200% 200%;
    animation: ks-shimmer 7s ease-in-out infinite;
  }
}

/* High-polish readability + card interaction */
.ks-sub .ks-card,
.ks-sub .ks-scard,
.ks-sub .ks-step,
.ks-sub .ks-acc details{
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background-color .22s ease;
}

@media (hover:hover){
  .ks-sub .ks-card:hover,
  .ks-sub .ks-scard:hover,
  .ks-sub .ks-step:hover,
  .ks-sub .ks-acc details:hover{
    transform: translateY(-2px);
    border-color: rgba(212,169,103,.28);
    box-shadow: 0 20px 60px rgba(11,23,48,.10);
  }
}

@media (max-width:640px){
  .ks-sub .ks-card p,
  .ks-sub .ks-scard p,
  .ks-sub .ks-step p,
  .ks-sub .ks-abody{ font-size: 15px; line-height: 1.9; }
  .ks-sub .ks-bullet{ font-size: 15px; }
}

.ks-sub .ks-secBar {
  background: linear-gradient(180deg, rgba(212, 169, 103, 0.95), rgba(212, 169, 103, 0.24));
  box-shadow: 0 10px 34px rgba(212, 169, 103, 0.14);
}

/* ===== FOOTER CSS (duplicated) ===== */
/* Footer */
.site-footer {
  background: linear-gradient(180deg, #0b1220 0%, #070a14 100%);
  color: #e5e7eb;
  padding: 68px clamp(16px, 3vw, 64px) 36px;
  border-top: 1px solid rgba(47, 124, 255, 0.22);
  font-family: "Pretendard Variable", "Pretendard", "SUIT", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
  position: relative;
  overflow: hidden;
  line-height: 1.75;
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.14;
  background:
    radial-gradient(1000px 520px at 18% 10%, rgba(255, 138, 0, 0.18), transparent 60%),
    radial-gradient(900px 520px at 86% 0%, rgba(47, 124, 255, 0.16), transparent 64%),
    radial-gradient(rgba(255, 255, 255, 0.35) 1px, transparent 1px);
  background-size: auto, auto, 26px 26px;
  mix-blend-mode: normal;
}

.site-footer::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.06;
  background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.22) 0 1px, rgba(255, 255, 255, 0.00) 1px 16px);
  mix-blend-mode: overlay;
}

.site-footer > * { position: relative; z-index: 1; }

.footer-cta {
  margin: 0 auto 42px;
}

.footer-cta__inner {
  max-width: 1240px;
  margin: 0 auto;
}

.footer-cta__card {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background:
    radial-gradient(900px 520px at 85% 30%, rgba(255, 138, 0, 0.18), transparent 55%),
    linear-gradient(135deg, #0b1730 0%, #142a55 100%);
  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.32);
  padding: 22px 22px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
}

.footer-cta__card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.16;
  background-image: radial-gradient(rgba(255, 255, 255, 0.9) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: radial-gradient(70% 70% at 22% 20%, #000 20%, transparent 75%);
}

.footer-cta__copy { min-width: 0; }

.footer-cta__kicker {
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.70);
}

.footer-cta__title {
  margin: 10px 0 0;
  font-size: clamp(18px, 2.2vw, 26px);
  line-height: 1.22;
  letter-spacing: -0.03em;
  font-weight: 950;
  color: rgba(255, 255, 255, 0.96);
}

.footer-cta__desc {
  margin: 10px 0 0;
  max-width: 70ch;
  font-size: 15px;
  line-height: 1.75;
  color: rgba(226, 232, 240, 0.90);
}

.footer-cta__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.footer-cta__btn,
.footer-cta__tel {
  min-height: 56px;
  padding: 0 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.92);
  font-weight: 950;
  font-size: 15px;
  letter-spacing: -0.01em;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.22);
  transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.footer-cta__btn--gold {
  background: linear-gradient(135deg, rgba(255, 176, 0, 1) 0%, rgba(255, 138, 0, 1) 100%);
  color: #0b1220;
  border-color: rgba(255, 176, 0, 0.78);
  box-shadow: 0 16px 40px rgba(2, 6, 23, 0.22);
}

.footer-cta__tel {
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.78);
}

.footer-cta__btn:hover,
.footer-cta__tel:hover {
  transform: translateY(-2px);
  border-color: rgba(47, 124, 255, 0.28);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
}
.footer-cta__btn--gold:hover {
  border-color: rgba(255, 176, 0, 0.92);
  box-shadow: 0 20px 44px rgba(2, 6, 23, 0.26);
}

.footer-cta__btn:focus-visible,
.footer-cta__tel:focus-visible {
  outline: 3px solid rgba(47, 124, 255, 0.55);
  outline-offset: 3px;
}

.footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 28px;
  align-items: start;
}

.footer-brand { display: flex; flex-direction: column; gap: 12px; }

.footer-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.01em;
}

.footer-logo-img { width: 44px; height: 44px; object-fit: contain; flex-shrink: 0; }

.footer-logo-text { display: flex; flex-direction: column; gap: 2px; }

.footer-logo-main { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; }

.footer-logo-sub { font-size: 13px; color: #cbd5e1; letter-spacing: 0.04em; }

.footer-desc { font-size: 15px; line-height: 1.8; color: #cbd5e1; }

.footer-contact {
  margin: 0;
  font-size: 15px;
  line-height: 1.85;
  color: #e2e8f0;
}

.footer-contact__row {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 10px;
  padding: 6px 0;
}

.footer-contact__row dt {
  margin: 0;
  color: #94a3b8;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.footer-contact__row dd {
  margin: 0;
  min-width: 0;
}

.footer-contact a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 176, 0, 0.0);
}

.footer-contact a:hover {
  border-bottom-color: rgba(255, 176, 0, 0.70);
}

/* ===============================
   WordPress admin bar offsets
   =============================== */

body {
  --ks-adminbar-h: 0px;
}

body.admin-bar {
  --ks-adminbar-h: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
  body.admin-bar {
    --ks-adminbar-h: var(--wp-admin--admin-bar--height, 46px);
  }
}

/* Fixed header should sit below the WP admin bar when logged in. */
body.admin-bar #header.site-header {
  top: var(--ks-adminbar-h);
}

/* Sticky navigations should also respect the admin bar height. */
body.admin-bar .ks-nav-wrap {
  top: calc(var(--header-h) + 6px + var(--ks-adminbar-h));
}

body.admin-bar .homeStickyNavWrap {
  top: calc(var(--header-h) + 10px + var(--ks-adminbar-h));
}

@media (max-width: 768px) {
  body.admin-bar .homeStickyNavWrap {
    top: calc(var(--header-h) + 8px + var(--ks-adminbar-h));
  }
}

/* Anchor jumps should land below admin bar + header. */
html {
  scroll-padding-top: calc(var(--header-h) + 16px + var(--wp-admin--admin-bar--height, 0px));
}

.footer-col h4 { font-size: 16px; font-weight: 950; margin: 2px 0 12px; color: #f8fafc; letter-spacing: -0.01em; }

.footer-links { display: flex; flex-wrap: wrap; gap: 10px; font-size: 14px; }

.footer-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255,255,255,0.05);
  color: rgba(226,232,240,0.92);
  text-decoration: none;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.footer-links a:hover { border-color: rgba(47,124,255,0.30); background: rgba(255,255,255,0.08); }
.footer-links a:focus-visible {
  outline: 3px solid rgba(47, 124, 255, 0.55);
  outline-offset: 3px;
  border-radius: 10px;
}

.footer-quick { display: flex; flex-wrap: wrap; gap: 10px; }

.footer-quick a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255,255,255,0.05);
  color: #e2e8f0;
  text-decoration: none;
  font-size: 14px;
  font-weight: 850;
}

.footer-quick a:hover { background: rgba(47,124,255,0.14); color: rgba(255,255,255,0.96); }
.footer-quick a:focus-visible {
  outline: 3px solid rgba(47, 124, 255, 0.55);
  outline-offset: 3px;
}


.footer-line { max-width: 1240px; margin: 26px auto 16px; height: 1px; background: rgba(255,255,255,0.08); }

.footer-notice { max-width: 1240px; margin: 0 auto; font-size: 14px; line-height: 1.9; color: #94a3b8; }

.footer-bottom {
  max-width: 1240px;
  margin: 14px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  align-items: center;
  font-size: 13.5px;
  color: #94a3b8;
}

.footer-bottom__links { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.footer-bottom__links a { color: inherit; text-decoration: none; opacity: 0.92; font-weight: 850; }
.footer-bottom__links a:hover { opacity: 1; color: rgba(255, 176, 0, 0.95); }
.footer-bottom__links a:focus-visible { outline: 3px solid rgba(47,124,255,0.55); outline-offset: 3px; border-radius: 10px; }

/* ===== Design refresh (2026-01) ===== */
:root {
  --ftr-bg: linear-gradient(180deg, #0b1220 0%, #070a14 100%);
  --ftr-ink: #e5e7eb;
  --ftr-ink-dim: #94a3b8;
  --ftr-accent: #ff8a00;
  --ftr-accent-2: #2f7cff;
}

.site-footer {
  background: var(--ftr-bg);
  border-top: 1px solid rgba(47, 124, 255, 0.22);
  box-shadow: 0 -18px 36px rgba(2, 6, 23, 0.35);
}

.footer-cta__card {
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    radial-gradient(900px 520px at 82% 28%, rgba(255, 138, 0, 0.18), transparent 60%),
    linear-gradient(135deg, #0b1730 0%, #132a50 100%);
}

.footer-cta__btn--gold {
  background: linear-gradient(135deg, rgba(255, 176, 0, 1) 0%, rgba(255, 138, 0, 1) 100%);
  color: #0b1220;
}

.footer-logo-main { color: #f8fafc; }
.footer-logo-sub { color: rgba(226, 232, 240, 0.78); }
.footer-desc { color: rgba(226, 232, 240, 0.82); }

.footer-contact { color: rgba(226, 232, 240, 0.88); }
.footer-contact__row dt { color: rgba(148, 163, 184, 0.9); }
.footer-contact__row dd { color: rgba(226, 232, 240, 0.9); }

.footer-links a { color: rgba(226, 232, 240, 0.92); }
.footer-links a:hover { color: rgba(255, 255, 255, 0.96); }

.footer-quick a {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(226, 232, 240, 0.9);
}

.footer-quick a:hover { background: rgba(47, 124, 255, 0.14); color: rgba(255, 255, 255, 0.96); }

.footer-notice { color: rgba(148, 163, 184, 0.9); }
.footer-bottom { color: rgba(148, 163, 184, 0.95); }

@media (max-width: 900px) {
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 20px; }
  .footer-desc { max-width: none; }
}

@media (max-width: 640px) {
  .site-footer { padding: 52px 16px 28px; }
  .footer-cta__card { grid-template-columns: 1fr; padding: 18px 16px; }
  .footer-cta__actions {
    justify-content: flex-start;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .footer-cta__btn,
  .footer-cta__tel {
    width: 100%;
    justify-content: center;
    min-height: 56px;
  }
  .footer-cta__tel { grid-column: 1 / -1; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .footer-contact__row { grid-template-columns: 48px 1fr; }
}

/* Footer policy (details) */
.footer-policy{
  max-width:1240px;
  margin:18px auto 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.policy{
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  background:rgba(255,255,255,.04);
  overflow:hidden;
}
.policy[open]{background:rgba(255,255,255,.06);border-color:rgba(47,124,255,.22)}
.policy__sum{
  cursor:pointer;
  padding:14px 14px;
  font-weight:950;
  letter-spacing:-.01em;
  color:rgba(255,255,255,.92);
  list-style:none;
}
.policy__sum::-webkit-details-marker{display:none}
.policy__body{padding:0 14px 16px;color:rgba(226,232,240,.88);line-height:1.8;font-size:14px}
.policy__lead{margin:10px 0 10px}
.policy__h{margin:14px 0 8px;font-size:13px;font-weight:950;color:rgba(255,255,255,.92)}
.policy__p{margin:8px 0 0}
.policy__ul{margin:8px 0 0;padding-left:18px}
.policy__meta{margin:12px 0 0;color:rgba(148,163,184,.92);font-weight:850}
@media (max-width: 900px){.footer-policy{grid-template-columns:1fr}}

/* Fixed CTA bar (mobile + desktop) */

.fixed-cta-bar {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 9999;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  background: rgba(11, 18, 32, 0.90);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(47, 124, 255, 0.22);
  box-shadow: 0 -18px 50px rgba(2, 6, 23, 0.45);
}

.fixed-cta-inner {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 12px 18px;
}

.cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 58px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.94);
  font-weight: 950;
  font-size: 14px;
  letter-spacing: -0.01em;
  text-decoration: none;
  min-width: 0;
  touch-action: manipulation;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.cta-btn:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(47, 124, 255, 0.28);
}

.cta-btn__text {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cta-btn__ico {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.cta-btn__ico svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.95;
}

.cta-btn--gold {
  background: linear-gradient(135deg, rgba(255, 176, 0, 1) 0%, rgba(255, 138, 0, 1) 100%);
  color: #0b1220;
  border-color: rgba(255, 176, 0, 0.78);
  box-shadow: 0 18px 46px rgba(2, 6, 23, 0.22);
}

.cta-btn--gold:hover { border-color: rgba(255, 176, 0, 0.92); }

.cta-btn--naver {
  background: rgba(3, 199, 90, 0.16);
  border-color: rgba(3, 199, 90, 0.36);
  color: rgba(255, 255, 255, 0.96);
}

.cta-btn--naver:hover {
  background: rgba(3, 199, 90, 0.22);
  border-color: rgba(3, 199, 90, 0.52);
}

.cta-btn--navy {
  background: rgba(11, 23, 48, 0.92);
  border-color: rgba(255, 255, 255, 0.18);
}

.cta-btn--navy:hover { filter: brightness(1.08); }

.cta-btn--ghost {
  background: rgba(255, 255, 255, 0.08);
}

.cta-btn:focus-visible {
  outline: 3px solid rgba(47, 124, 255, 0.55);
  outline-offset: 3px;
}

@media (max-width: 768px) {
  .fixed-cta-inner {
    max-width: 980px;
    gap: 10px;
    padding: 10px 12px;
  }

  .cta-btn {
    min-height: 50px;
    padding: 0 10px;
    border-radius: 12px;
    font-size: 13px;
  }

  .cta-btn__ico,
  .cta-btn__ico svg {
    width: 20px;
    height: 20px;
  }
}

@media (max-width: 360px) {
  .fixed-cta-inner { gap: 8px; padding: 10px 10px; }
  .cta-btn { font-size: 13px; border-radius: 12px; min-height: 48px; }
  .cta-btn__ico { width: 18px; height: 18px; }
  .cta-btn__ico svg { width: 18px; height: 18px; }
  .cta-btn__text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* Fixed side CTA (desktop) */
.fixed-side-cta{
  position:fixed;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  z-index:9998;
  display:none;
  gap:10px;
}
@media (min-width: 1024px){
  .fixed-side-cta{display:grid}
}
.side-cta{
  width:176px;
  min-height:54px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(11,18,32,.86);
  color:rgba(255,255,255,.94);
  font-weight:950;
  letter-spacing:-.01em;
  text-decoration:none;
  box-shadow:0 18px 54px rgba(2,6,23,.22);
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease;
}
.side-cta:hover{transform:translateY(-1px);background:rgba(11,18,32,.94);border-color:rgba(47,124,255,.28)}
.side-cta:focus-visible{outline:3px solid rgba(47,124,255,.55);outline-offset:3px}
.side-cta__ico{width:22px;height:22px;display:grid;place-items:center;flex:0 0 auto}
.side-cta__ico svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.95}
.side-cta--naver{background:rgba(3,199,90,.16);border-color:rgba(3,199,90,.38)}
.side-cta--naver:hover{background:rgba(3,199,90,.22);border-color:rgba(3,199,90,.56)}

/* Back to top */
.ksToTop {
  position: fixed;
  right: 18px;
  bottom: calc(var(--cta-bar-h) + 16px + env(safe-area-inset-bottom, 0px));
  z-index: 10000;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(11, 18, 32, 0.86);
  color: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 50px rgba(2, 6, 23, 0.45);
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(0, 8px, 0);
  transition: opacity .18s ease, transform .18s ease, background .18s ease, border-color .18s ease;
}

.ksToTop svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  fill: none;
}

.ksToTop.is-on {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
}

.ksToTop:hover {
  background: rgba(11, 18, 32, 0.94);
  border-color: rgba(47, 124, 255, 0.28);
}

.ksToTop:focus-visible {
  outline: 3px solid rgba(47, 124, 255, 0.55);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  .ksToTop {
    right: 12px;
    width: 48px;
    height: 48px;
    border-radius: 16px;
  }
}

