/* ===== Frosted Ledger — SGCD variation (base accent: deep indigo blue) ===== */
:root {
  --cm-bg:                    #faf9f7;
  --cm-primary:               #1c1917;
  --cm-primary-container:     #292524;
  --cm-on-primary:            #ffffff;
  --cm-on-primary-container:  #a8a29e;
  --cm-secondary:             #1d4ed8;
  --cm-secondary-container:   #1e40af;
  --cm-on-surface:            #1c1917;
  --cm-on-surface-variant:    #57534e;
  --cm-surface:               #faf9f7;
  --cm-surface-container:     #f0ede8;
  --cm-surface-container-low: #f5f3ef;
  --cm-surface-container-high:#e8e5de;
  --cm-outline:               #79716b;
  --cm-outline-variant:       #d6d3d1;
  --cm-accent-rgb:            29,78,216;

  --cm-font-h:    "Gothic A1", "Noto Sans KR", system-ui, sans-serif;
  --cm-font-body: "Noto Sans KR", system-ui, sans-serif;
  --cm-font-caps: "IBM Plex Mono", monospace;

  --cm-fs-display: clamp(3.4rem, 9vw, 6.5rem);
  --cm-fs-h1:     clamp(2.8rem, 7vw, 4.6rem);
  --cm-fs-h2:     clamp(1.5rem, 3vw, 2rem);
  --cm-fs-h3:     clamp(1.1rem, 1.8vw, 1.5rem);
  --cm-fs-body:   1rem;
  --cm-fs-caps:   0.6875rem;

  --cm-gutter:    32px;
  --cm-margin:    clamp(24px, 4.5vw, 64px);
  --cm-max-w:     1440px;
  --cm-header-h:  64px;
  --cm-radius:    0.25rem;
  --cm-ease:      cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--cm-font-body);
  background: var(--cm-bg);
  color: var(--cm-on-surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  word-break: keep-all;
  overflow-wrap: break-word;
  overflow-x: hidden;
  padding-bottom: 0;
}
body, p, h1, h2, h3, h4, h5, h6, li, td, th, a, span, div, button {
  word-break: keep-all;
  overflow-wrap: break-word;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; background: none; border: none; cursor: pointer; color: inherit; }
ul, ol { list-style: none; }

body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    linear-gradient(rgba(28,25,23,0.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(28,25,23,0.032) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
  z-index: 0;
}
body > * { position: relative; z-index: 1; }

.cm-container       { width: 100%; max-width: var(--cm-max-w); margin: 0 auto; padding: 0 var(--cm-margin); }
.cm-container--text { max-width: 800px; margin: 0 auto; padding: 0 var(--cm-margin); }

/* ===== 운영정보 띠 ===== */
.cm-urgency-bar {
  background: var(--cm-primary-container); color: var(--cm-on-primary-container);
  font-family: var(--cm-font-caps); font-size: var(--cm-fs-caps); font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  padding:8px var(--cm-margin); display:flex; justify-content:center; gap:24px; flex-wrap:wrap;
}
.cm-urgency-bar__item { display:inline-flex; align-items:center; }
.cm-urgency-bar__dot { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--cm-secondary-container); margin-right:6px; }
.cm-urgency-bar__highlight { color: var(--cm-secondary-container); font-weight:700; }

/* ===== 헤더 ===== */
#site-header {
  position: sticky; top: 0; z-index: 500;
  height: var(--cm-header-h);
  display: flex; align-items: center;
  background: rgba(250, 249, 247, 0.88);
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  border-bottom: 1px solid var(--cm-outline-variant);
  box-shadow: 0 1px 0 rgba(28,25,23,0.06);
}
.cm-header-inner { width:100%; max-width:var(--cm-max-w); margin:0 auto; padding:0 var(--cm-margin); display:flex; align-items:center; gap:24px; }
.cm-logo { display:flex; align-items:center; gap:10px; margin-right:auto; }
.cm-logo__icon { width:32px; height:32px; display:flex; align-items:center; justify-content:center; }
.cm-logo__text { display:flex; flex-direction:column; line-height:1.2; }
.cm-logo__name { font-family:var(--cm-font-body); font-weight:700; font-size:.95rem; letter-spacing:.02em; color:var(--cm-on-surface); }
.cm-logo__sub { font-size:.68rem; color:var(--cm-on-surface-variant); }
.cm-nav { display:flex; gap:20px; }
.cm-nav__link { font-family:var(--cm-font-body); font-size:.86rem; font-weight:600; letter-spacing:0; color:var(--cm-on-surface-variant); transition:color .2s var(--cm-ease); }
.cm-nav__link:hover { color:var(--cm-secondary); }
.cm-header-cta {
  display:inline-flex; align-items:center; gap:6px; background:var(--cm-secondary); color:#fff;
  font-family:var(--cm-font-body); font-size:.82rem; font-weight:700; letter-spacing:0;
  padding:9px 18px; border-radius:var(--cm-radius); transition:background .2s var(--cm-ease);
}
.cm-header-cta:hover { background:var(--cm-secondary-container); }
.cm-header-cta__arrow { transition:transform .2s var(--cm-ease); }
.cm-header-cta:hover .cm-header-cta__arrow { transform:translateX(3px); }
.cm-hamburger { display:none; flex-direction:column; gap:5px; width:24px; }
.cm-hamburger__line { display:block; height:2px; background:var(--cm-on-surface); border-radius:2px; }

.cm-mobile-menu__overlay { position:fixed; inset:0; background:rgba(28,25,23,.5); z-index:600; opacity:0; pointer-events:none; transition:opacity .3s var(--cm-ease); }
.cm-mobile-menu__overlay.is-open { opacity:1; pointer-events:auto; }
.cm-mobile-menu {
  position:fixed; top:0; right:-100%; width:min(320px,84vw); height:100%; z-index:700;
  background:var(--cm-primary-container); padding:28px 24px; display:flex; flex-direction:column; gap:6px;
  transition:right .35s var(--cm-ease); overflow-y:auto;
}
.cm-mobile-menu.is-open { right:0; }
.cm-mobile-menu__close { align-self:flex-end; color:#fff; font-size:1.2rem; margin-bottom:12px; }
.cm-mobile-nav__link { display:block; padding:12px 4px; color:var(--cm-on-primary-container); font-weight:600; border-bottom:1px solid rgba(255,255,255,.08); }
.cm-mobile-nav__cta { display:block; margin-top:16px; text-align:center; background:var(--cm-secondary); color:#fff; padding:14px; border-radius:var(--cm-radius); font-weight:700; }

/* ===== 히어로 (홈, 풀블리드) ===== */
.cm-fullbleed-hero { position:relative; min-height:88svh; display:flex; align-items:center; overflow:hidden; }
.cm-fullbleed-hero__bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.cm-fullbleed-hero__overlay { display:none; }
.cm-hero-slides { position:absolute; inset:0; overflow:hidden; background:var(--cm-primary); }
.cm-hero-slide {
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; animation: hero-fade 20s infinite, hero-drift 20s infinite ease-in-out;
}
.cm-hero-slide:nth-child(1) { animation-delay:0s, 0s; }
.cm-hero-slide:nth-child(2) { animation-delay:4s, 4s; }
.cm-hero-slide:nth-child(3) { animation-delay:8s, 8s; }
.cm-hero-slide:nth-child(4) { animation-delay:12s, 12s; }
.cm-hero-slide:nth-child(5) { animation-delay:16s, 16s; }
@keyframes hero-fade {
  0% { opacity:0; }
  2% { opacity:1; }
  18% { opacity:1; }
  20% { opacity:0; }
  100% { opacity:0; }
}
@keyframes hero-drift {
  0% { transform:scale(1.02); }
  50% { transform:scale(1.1); }
  100% { transform:scale(1.02); }
}
@media (prefers-reduced-motion: reduce) {
  .cm-hero-slide { animation:none; }
  .cm-hero-slide:first-child { opacity:1; }
}
.cm-fullbleed-hero__content { position:relative; width:100%; max-width:var(--cm-max-w); margin:0 auto; padding:0 var(--cm-margin); }
.cm-hero-inner { max-width:640px; }
.cm-hero__ref { display:block; }
.cm-ref-tag { display:inline-flex; gap:8px; font-family:var(--cm-font-caps); font-size:.62rem; letter-spacing:.12em; color:#fff; text-transform:uppercase; margin-bottom:16px; text-shadow: 0 1px 3px rgba(0,0,0,.8); }
.cm-hero__badges { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.cm-hero__badge { font-family:var(--cm-font-caps); font-size:.62rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.3); padding:5px 12px; border-radius:var(--cm-radius); backdrop-filter:blur(4px); }
.cm-hero__title { font-family:var(--cm-font-h); font-size: var(--cm-fs-display); font-weight:900; color:#fff; line-height:1.14; letter-spacing:-0.01em; margin-bottom:16px;
  text-shadow: 0 4px 10px rgba(0,0,0,.75), 0 14px 44px rgba(0,0,0,.7), 0 2px 4px rgba(0,0,0,.9); }
.cm-hero__title em { font-style:normal; color: #7dd3fc; }
.cm-hero__sub { font-size:1.05rem; color:#fff; margin-bottom:28px; line-height:1.65;
  text-shadow: 0 3px 8px rgba(0,0,0,.75), 0 10px 32px rgba(0,0,0,.6); }
.cm-hero__actions { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:32px; }
.cm-hero__stats { display:flex; border:1px solid rgba(255,255,255,0.14); border-radius:var(--cm-radius); overflow:hidden; max-width:560px; }
.cm-hero__stat  { flex:1; padding:16px 18px; border-right:1px solid rgba(255,255,255,0.14); background:rgba(255,255,255,0.05); backdrop-filter:blur(8px); }
.cm-hero__stat:last-child { border-right:none; }
.cm-hero__stat-num { font-family:var(--cm-font-caps); font-weight:700; font-size:1.15rem; color:#fff; }
.cm-hero__stat-num span { color:var(--cm-secondary-container); }
.cm-hero__stat-label { font-size:.68rem; color:rgba(255,255,255,.6); margin-top:2px; }
@media(max-width:768px) { .cm-hero__stats { flex-direction:column; } .cm-hero__stat { border-right:none; border-bottom:1px solid rgba(255,255,255,.14); } .cm-hero__title { font-size:clamp(2.4rem,11vw,3.4rem); } }

/* ===== 서브페이지 히어로 ===== */
.cm-page-hero { position:relative; min-height:clamp(300px,44vw,440px); display:flex; align-items:flex-end; overflow:hidden; background-size:cover; background-position:center; }
.cm-page-hero__overlay { display:none; }
.cm-page-hero__content { position:relative; width:100%; max-width:var(--cm-max-w); margin:0 auto; padding:40px var(--cm-margin); }
.cm-page-hero__badges { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.cm-page-hero__title { font-family:var(--cm-font-h); font-size: var(--cm-fs-h1); font-weight:900; color:#fff; line-height:1.16; margin-bottom:22px;
  text-shadow: 0 4px 10px rgba(0,0,0,.75), 0 14px 44px rgba(0,0,0,.7), 0 2px 4px rgba(0,0,0,.9); }
.cm-page-hero__actions { display:flex; gap:10px; flex-wrap:wrap; }
.cm-breadcrumb { display:flex; align-items:center; gap:8px; font-family:var(--cm-font-caps); font-size:.62rem;
  letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-bottom:14px; flex-wrap:wrap; text-shadow: 0 1px 3px rgba(0,0,0,.8); }
.cm-breadcrumb a:hover { color:#fff; }
.cm-breadcrumb__sep { color:rgba(255,255,255,.5); }

/* ===== 버튼 ===== */
.cm-btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--cm-font-caps); font-size:.72rem;
  font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:14px 26px; border-radius:var(--cm-radius);
  min-height:48px; transition:background .2s var(--cm-ease), transform .15s, box-shadow .2s; white-space:nowrap; }
.cm-btn__arrow { transition:transform .2s var(--cm-ease); }
.cm-btn:hover .cm-btn__arrow { transform:translateX(4px); }
.cm-btn--primary { background:var(--cm-secondary); color:#fff; box-shadow:0 4px 16px rgba(var(--cm-accent-rgb),.3); }
.cm-btn--primary:hover { background:var(--cm-secondary-container); transform:translateY(-2px); box-shadow:0 8px 24px rgba(var(--cm-accent-rgb),.35); }
.cm-btn--outline { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.45); }
.cm-btn--outline:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.7); }
.cm-btn--dark { background:var(--cm-primary); color:#fff; }
.cm-btn--dark:hover { background:var(--cm-primary-container); transform:translateY(-2px); }
.cm-btn--ghost { background:transparent; color:var(--cm-on-surface-variant); border:1.5px solid var(--cm-outline-variant); }
.cm-btn--ghost:hover { border-color:var(--cm-outline); color:var(--cm-on-surface); }
@media(max-width:480px) { .cm-btn { padding:12px 20px; font-size:.68rem; } }

/* ===== 섹션 공통 ===== */
.cm-section { padding:clamp(56px,7vw,96px) var(--cm-margin); }
.cm-section--warm { background:var(--cm-surface-container); }
.cm-section--soft { background:var(--cm-surface-container-low); }
.cm-section--dark { background:var(--cm-primary); color:#fff; }
.cm-section-head { max-width:640px; margin-bottom:40px; }
.cm-label { display:inline-block; font-family:var(--cm-font-caps); font-size:var(--cm-fs-caps); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--cm-secondary); margin-bottom:12px; }
.cm-label--muted { color:var(--cm-outline); }
.cm-section-head__title { font-family:var(--cm-font-h); font-size:var(--cm-fs-h2); font-weight:900; line-height:1.25; }
.cm-section-head__desc { margin-top:10px; color:var(--cm-on-surface-variant); font-size:.98rem; line-height:1.7; }

/* ===== 콜아웃(요약 인용 박스) ===== */
.cm-callout {
  display:flex; gap:14px; align-items:flex-start; margin-top:16px; max-width:800px;
  background:var(--cm-surface-container-low); border-left:3px solid var(--cm-secondary);
  border-radius:0 var(--cm-radius) var(--cm-radius) 0; padding:18px 22px;
}
.cm-callout__icon {
  flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:var(--cm-secondary);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:.85rem; font-weight:700;
}
.cm-callout__text { color:var(--cm-on-surface); font-size:.95rem; line-height:1.75; }
.cm-callout__text strong { color:var(--cm-secondary); font-weight:700; }
.cm-prose { max-width:800px; line-height:1.85; font-size:1rem; color:var(--cm-on-surface); }
.cm-prose p { margin-bottom:1.2em; }
.cm-prose h2 { font-family:var(--cm-font-h); font-size:var(--cm-fs-h2); font-weight:900; margin:2em 0 .6em; }
.cm-prose h3 { font-size:var(--cm-fs-h3); font-weight:700; margin:1.6em 0 .5em; }

/* ===== 그리드 유틸 (인라인 grid 금지 대체) ===== */
.dp-g2  { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.dp-g3  { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.dp-g4  { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.dp-stat3 { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; text-align:center; align-items:center; }
@media(max-width:900px) { .dp-g3,.dp-g4 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:768px) { .dp-g2,.dp-g3,.dp-g4 { grid-template-columns:1fr; } }
@media(max-width:600px) { .dp-stat3 { grid-template-columns:1fr; gap:16px; } }

/* ===== 벤토 카드 ===== */
.cm-bento-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--cm-outline-variant);
  border:1px solid var(--cm-outline-variant); border-radius:calc(var(--cm-radius)*2); overflow:hidden; }
.cm-bento-card { background:var(--cm-surface); padding:clamp(22px,3vw,32px); min-height:210px;
  display:flex; flex-direction:column; position:relative; overflow:hidden;
  transition: background .25s var(--cm-ease), transform .25s var(--cm-ease); }
.cm-bento-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--cm-secondary);
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--cm-ease); }
.cm-bento-card:hover { background:var(--cm-surface-container-low); transform:translateY(-4px); z-index:2;
  box-shadow:0 12px 32px rgba(28,25,23,0.1); }
.cm-bento-card:hover::before { transform:scaleX(1); }
.cm-bento-card__num { font-family:var(--cm-font-caps); font-size:.7rem; color:var(--cm-outline); margin-bottom:14px; }
.cm-bento-card__situation { font-size:.74rem; font-weight:700; color:var(--cm-secondary); margin-bottom:6px; }
.cm-bento-card__title { font-size:1.02rem; font-weight:700; margin-bottom:8px; }
.cm-bento-card__desc { font-size:.88rem; color:var(--cm-on-surface-variant); line-height:1.6; flex:1; }
.cm-bento-card__more { font-family:var(--cm-font-caps); font-size:.68rem; font-weight:700; letter-spacing:.05em; color:var(--cm-secondary); margin-top:14px; }
@media(max-width:900px) { .cm-bento-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px) { .cm-bento-grid { grid-template-columns:1fr; } }
.cm-bento-grid--3 { grid-template-columns:repeat(3,1fr); }
@media(max-width:900px) { .cm-bento-grid--3 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px) { .cm-bento-grid--3 { grid-template-columns:1fr; } }

/* ===== 신뢰 지표 ===== */
.cm-trust-strip { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--cm-outline-variant); border-radius:var(--cm-radius); overflow:hidden; }
.cm-trust-strip__item { padding:clamp(22px,3vw,36px) 20px; border-right:1px solid var(--cm-outline-variant); text-align:center; }
.cm-trust-strip__item:last-child { border-right:none; }
.cm-trust-strip__num  { font-family:var(--cm-font-caps); font-size:clamp(1.6rem,3.2vw,2.3rem); font-weight:700; letter-spacing:-0.02em; }
.cm-trust-strip__num em { font-style:normal; color: var(--cm-secondary); }
.cm-trust-strip__label { font-size:.78rem; color:var(--cm-on-surface-variant); margin-top:6px; }
.cm-section--dark .cm-trust-strip__label { color:rgba(255,255,255,.65); }
.cm-section--dark .cm-trust-strip { border-color:rgba(255,255,255,.2); }
.cm-section--dark .cm-trust-strip__item { border-right-color:rgba(255,255,255,.2); }
@media(max-width:768px) { .cm-trust-strip { grid-template-columns:repeat(2,1fr); } .cm-trust-strip__item:nth-child(2){border-right:none;} .cm-trust-strip__item:nth-child(3),.cm-trust-strip__item:nth-child(4){border-top:1px solid var(--cm-outline-variant);} }

/* ===== 프로세스 스텝 ===== */
.cm-process-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.cm-process-grid--3 { grid-template-columns:repeat(3,1fr); }
@media(max-width:768px) { .cm-process-grid--3 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px) { .cm-process-grid--3 { grid-template-columns:1fr; } }
.cm-process-step { padding:32px 22px; border-top:2px solid var(--cm-outline-variant); position:relative;
  opacity:0; transform:translateY(20px); transition:opacity .5s var(--cm-ease), transform .5s var(--cm-ease); }
.cm-process-step.is-revealed { opacity:1; transform:translateY(0); }
.cm-process-step--accent { border-top-color: var(--cm-secondary); }
.cm-process-step__num { font-family:var(--cm-font-caps); font-size:clamp(2.4rem,4.5vw,3.4rem); font-weight:700; color: var(--cm-surface-container-high); }
.cm-process-step--accent .cm-process-step__num { color: rgba(var(--cm-accent-rgb),0.15); }
.cm-process-step__title { font-weight:700; font-size:1rem; margin:10px 0 6px; }
.cm-process-step__desc { font-size:.85rem; color:var(--cm-on-surface-variant); line-height:1.6; }
@media(max-width:768px) { .cm-process-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px) { .cm-process-grid { grid-template-columns:1fr; } .cm-process-step { flex-direction:column; padding:24px 0; } }

/* ===== Before/After 사례 카드 ===== */
.cm-cases-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--cm-outline-variant);
  border:1px solid var(--cm-outline-variant); border-radius:calc(var(--cm-radius)*2); overflow:hidden; }
.cm-cases-grid--4 { grid-template-columns:repeat(4,1fr); }
@media(max-width:900px) { .cm-cases-grid--4 { grid-template-columns:repeat(2,1fr); } }
.cm-case-card { background:var(--cm-surface); display:block; }
.cm-case-card__ba { display:grid; grid-template-columns:1fr 1fr; }
.cm-case-card__img-wrap { position:relative; overflow:hidden; aspect-ratio:4/3; }
.cm-case-card__img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .4s var(--cm-ease); }
.cm-case-card:hover .cm-case-card__img-wrap img { transform:scale(1.04); }
.cm-case-card__img-label { position:absolute; top:8px; left:8px; font-family:var(--cm-font-caps); font-size:.55rem;
  font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.9);
  background:rgba(28,25,23,.65); border-radius:2px; padding:3px 8px; backdrop-filter:blur(4px); }
.cm-case-card__img-label--after { background: rgba(var(--cm-accent-rgb),0.8); }
.cm-case-card__body { padding:18px 20px; }
.cm-case-card__loc { font-family:var(--cm-font-caps); font-size:.64rem; color:var(--cm-outline); letter-spacing:.06em; text-transform:uppercase; margin-bottom:6px; }
.cm-case-card__title { font-weight:700; font-size:1rem; }
@media(max-width:768px) { .cm-cases-grid { grid-template-columns:1fr; } }

/* ===== FAQ 아코디언 ===== */
.cm-faq-list { display:flex; flex-direction:column; gap:10px; }
.cm-faq-item { border:1px solid var(--cm-outline-variant); border-radius:var(--cm-radius); background:var(--cm-surface); overflow:hidden; }
.cm-faq-btn { width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 20px; text-align:left; }
.cm-faq-btn__q { font-weight:700; font-size:.95rem; }
.cm-faq-btn__icon { flex-shrink:0; width:26px; height:26px; border:1.5px solid var(--cm-outline-variant); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1rem; transition:transform .25s var(--cm-ease), background .25s, color .25s; }
.cm-faq-item.is-open .cm-faq-btn__icon { transform:rotate(45deg); background:var(--cm-secondary); border-color:var(--cm-secondary); color:#fff; }
.cm-faq-body { max-height:0; overflow:hidden; transition:max-height .35s var(--cm-ease), padding .25s; padding:0 20px; color:var(--cm-on-surface-variant); font-size:.9rem; line-height:1.75; }
.cm-faq-item.is-open .cm-faq-body { max-height:600px; padding-bottom:20px; }

/* ===== CTA 배너 ===== */
.cm-cta-banner { background: var(--cm-secondary); padding:clamp(52px,7vw,88px) var(--cm-margin); text-align:center; }
.cm-cta-banner__title { font-family:var(--cm-font-h); font-size:var(--cm-fs-h2); font-weight:900; color:#fff; margin-bottom:10px; }
.cm-cta-banner__desc { color:rgba(255,255,255,.85); margin-bottom:26px; }
.cm-cta-banner__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-bottom:18px; }
.cm-cta-banner__note { font-size:.78rem; color:rgba(255,255,255,.65); }

/* ===== 관련 링크 그리드 ===== */
.cm-nseo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--cm-outline-variant);
  border:1px solid var(--cm-outline-variant); border-radius:var(--cm-radius); overflow:hidden; margin-top:20px; }
.cm-nseo-card { display:block; background:var(--cm-surface); color:var(--cm-on-surface); padding:14px 16px; font-size:.82rem; font-weight:600; transition:background .2s; }
.cm-nseo-card--more { background:var(--cm-secondary); color:#fff; }
.cm-nseo-card--more:hover { background:var(--cm-secondary-container); }
.cm-nseo-card:hover { background:var(--cm-surface-container-low); }
@media(max-width:900px) { .cm-nseo-grid { grid-template-columns:repeat(3,1fr); } }
@media(max-width:600px) { .cm-nseo-grid { grid-template-columns:repeat(2,1fr); } }

/* ===== 푸터 ===== */
.cm-footer { background: var(--cm-primary); color: var(--cm-on-primary-container); padding:clamp(44px,6vw,72px) var(--cm-margin) 28px; }
.cm-footer__grid { display:grid; grid-template-columns:2fr 1fr 1.4fr; gap:36px; margin-bottom:40px; }
.cm-footer__brand-name { font-family:var(--cm-font-caps); font-weight:700; color:#fff; font-size:1rem; margin-bottom:10px; }
.cm-footer__biz { font-size:.76rem; line-height:2; color:rgba(255,255,255,.4); }
.cm-footer__heading { font-family:var(--cm-font-caps); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.4); margin-bottom:14px; }
.cm-footer__list a { display:block; padding:5px 0; font-size:.84rem; color:rgba(255,255,255,.72); }
.cm-footer__list a:hover { color:#fff; }
.cm-footer__cta { display:inline-block; margin-top:10px; background:var(--cm-secondary); color:#fff; padding:10px 18px; border-radius:var(--cm-radius); font-size:.8rem; font-weight:700; }
.cm-footer__bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:20px; font-size:.72rem; color:rgba(255,255,255,.35); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }
@media(max-width:900px) { .cm-footer__grid { grid-template-columns:1fr 1fr; } }
@media(max-width:480px) { .cm-footer__grid { grid-template-columns:1fr; } }

/* ===== 플로팅 CTA ===== */
.floating-cta { position:fixed; bottom:26px; right:22px; z-index:800; }
.float-btn { display:flex; align-items:center; gap:8px; background:var(--cm-secondary); color:#fff;
  padding:13px 20px; border-radius:var(--cm-radius); box-shadow:0 8px 24px rgba(var(--cm-accent-rgb),.4); position:relative; }
.pulse-ring { position:absolute; inset:-6px; border-radius:var(--cm-radius); border:2px solid var(--cm-secondary);
  animation: pulse-ring 2.2s ease-out infinite; }
@keyframes pulse-ring { 0%{transform:scale(1);opacity:.6;} 100%{transform:scale(1.25);opacity:0;} }

/* ===== 리빌 애니메이션 ===== */
[data-reveal] { opacity:0; transform:translateY(28px); transition:opacity .65s var(--cm-ease), transform .65s var(--cm-ease); }
[data-reveal].is-revealed { opacity:1; transform:translateY(0); }
[data-reveal-delay="100"] { transition-delay:.1s; }
[data-reveal-delay="200"] { transition-delay:.2s; }
[data-reveal-delay="300"] { transition-delay:.3s; }
[data-reveal-delay="400"] { transition-delay:.4s; }
[data-reveal-delay="500"] { transition-delay:.5s; }

/* ===== 카운터 ===== */
.cm-counter { font-variant-numeric: tabular-nums; }

/* ===== 표(overflow 보호) ===== */
.cm-table-wrap { overflow-x:auto; border:1px solid var(--cm-outline-variant); border-radius:var(--cm-radius); }
.cm-table { width:100%; border-collapse:collapse; min-width:520px; }
.cm-table th, .cm-table td { padding:12px 16px; text-align:left; font-size:.88rem; border-bottom:1px solid var(--cm-outline-variant); }
.cm-table th { font-family:var(--cm-font-caps); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--cm-on-surface-variant); background:var(--cm-surface-container-low); }

/* ===== 반응형 공통 ===== */
@media(max-width:768px) {
  .cm-margin-tight { padding-left:18px; padding-right:18px; }
  .cm-nav, .cm-header-cta { display:none; }
  .cm-hamburger { display:flex; }
  .cm-header-inner { padding:0 18px; }
  .cm-fullbleed-hero__content, .cm-page-hero__content { padding-left:18px; padding-right:18px; }
  .cm-section { padding-left:18px; padding-right:18px; }
  .cm-container, .cm-container--text { padding:0 18px; }
  .cm-footer { padding-left:18px; padding-right:18px; }
  .proc-step, .cm-process-step { flex-direction:column; }
  body { padding-bottom: 64px; }
  .floating-cta { bottom:14px; right:14px; }
}
@media(max-width:600px) {
  .cm-bento-grid, .cm-cases-grid, .cm-process-grid { grid-template-columns:1fr; }
}
@media(max-width:420px) {
  .cm-nseo-grid { grid-template-columns:1fr; }
}
