/* ============================================
   마하수리 — 디자인 시스템 (routine-cut.com 기반)
   ============================================ */
:root {
  --background: 246, 248, 252;
  --text: 11, 20, 55;
  --primary: 47, 91, 255;
  --navy: #0b1437;
  --blue: #2f5bff;
  --blue-dark: #244de6;
  --mint: #59d7c2;
  --teal: #0f766e;
  --gray: #64748b;
  --slate: #334155;
  --font: 'Noto Sans KR', Pretendard, system-ui, sans-serif;
  --font-display: Inter, 'Noto Sans KR', Pretendard, system-ui, sans-serif;
  --z-navbar: 8888;
  --z-drawer: 9999;
}

*, *::before, *::after { box-sizing: border-box; }
body, h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; }
html:focus-within { scroll-behavior: smooth; }
html {
  position: relative;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizelegibility;
  text-size-adjust: 100%;
  font-size: 67.5%;
}
@media (max-width: 56.25em) { html { font-size: 62.5%; } }
@media (max-width: 48.0625em) { html { font-size: 57.5%; } }
@media (max-width: 37.5em) { html { font-size: 52.5%; } }
body {
  min-height: 100vh;
  line-height: 1.5;
  font-family: var(--font);
  color: rgb(var(--text));
  background: rgb(var(--background));
}
h1, h2, h3, h4, h5 { font-family: var(--font); letter-spacing: 0; }
img, picture, svg { max-width: 100%; display: block; }
input, button, textarea, select { font: inherit; }

/* ---------- 컨테이너 ---------- */
.container {
  position: relative;
  max-width: 130em;
  width: 100%;
  margin: 0 auto;
  padding: 0 2rem;
}

/* ---------- 내비게이션 ---------- */
.navbar {
  display: flex;
  position: sticky;
  top: 0;
  padding: 1.5rem 0;
  width: 100%;
  height: 8rem;
  z-index: var(--z-navbar);
  background-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 4%);
  backdrop-filter: blur(18px);
}
.navbar .container { display: flex; align-items: center; justify-content: space-between; }
.logo {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-right: auto;
  text-decoration: none;
  color: var(--navy);
  font-size: 2.2rem;
  font-weight: 900;
}
.logo i {
  display: inline-flex;
  width: 3.4rem;
  height: 3.4rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: linear-gradient(135deg, #2f5bff, #59d7c2);
  color: #fff;
  font-style: normal;
  font-size: 1.8rem;
  font-weight: 900;
}
.nav-items { display: flex; list-style: none; margin: 0; padding: 0; }
.nav-items li:not(:last-child) { margin-right: 2rem; }
.nav-items a {
  display: flex;
  color: rgba(var(--text), 0.75);
  text-decoration: none;
  padding: 0.75rem 1.5rem;
  font-size: 1.3rem;
  line-height: 2;
  font-weight: 800;
}
.nav-items a.nav-cta {
  background: var(--blue);
  color: #fff;
  border-radius: 0.8rem;
  padding: 0.75rem 1.8rem;
}
@media (max-width: 1023px) { .nav-items { display: none; } }

/* ---------- 히어로 ---------- */
.hero-wrapper {
  background:
    radial-gradient(circle at 15% 8%, rgba(58, 91, 255, 0.09), transparent 28rem),
    linear-gradient(180deg, #f6f8fc 0%, #ffffff 22%, #f6f8fc 100%);
  color: var(--navy);
  overflow: hidden;
}
.hero {
  min-height: calc(100svh - 8rem);
  padding: 10rem 0 8rem;
  display: flex;
  align-items: center;
}
.hero-grid {
  width: min(118rem, calc(100% - 4rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(42rem, 1.04fr);
  gap: 8rem;
  align-items: center;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.8rem 1.3rem;
  margin-bottom: 2.4rem;
  background: #edf3ff;
  color: var(--blue);
  font-size: 1.35rem;
  font-weight: 800;
}
.hero h1 {
  max-width: 68rem;
  font-size: 8.4rem;
  line-height: 1.05;
  font-weight: 900;
  word-break: keep-all;
}
.hero h1 strong { display: block; color: var(--blue); }
.hero-desc {
  max-width: 55rem;
  margin-top: 3rem;
  color: var(--slate);
  font-size: 2rem;
  line-height: 1.75;
  word-break: keep-all;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 4rem; }
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 5.8rem;
  padding: 0 2.8rem;
  border-radius: 0.8rem;
  background: var(--blue);
  color: #fff;
  text-decoration: none;
  font-size: 1.55rem;
  font-weight: 900;
  border: none;
  cursor: pointer;
  box-shadow: 0 1.8rem 4rem rgba(47, 91, 255, 0.24);
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.btn-primary:hover, .btn-primary:focus-visible {
  transform: translateY(-2px);
  background: var(--blue-dark);
  box-shadow: 0 2.2rem 4.8rem rgba(47, 91, 255, 0.3);
}
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 5.8rem;
  padding: 0 2.6rem;
  border-radius: 0.8rem;
  border: 1px solid rgba(11, 20, 55, 0.14);
  background: rgba(255, 255, 255, 0.75);
  color: var(--navy);
  text-decoration: none;
  font-size: 1.55rem;
  font-weight: 900;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}
.btn-secondary:hover, .btn-secondary:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(47, 91, 255, 0.4);
  background: #fff;
}
.hero-note {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-top: 3rem;
  color: var(--gray);
  font-size: 1.35rem;
  font-weight: 700;
}
.hero-avatars { display: flex; }
.hero-avatars span {
  width: 3.2rem;
  height: 3.2rem;
  border: 2px solid #fff;
  border-radius: 50%;
  background: linear-gradient(135deg, #dce8ff, #dff9f5);
}
.hero-avatars span + span { margin-left: -0.9rem; }

/* ---------- 히어로 대시보드 카드 ---------- */
.dash-card {
  position: relative;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 0.8rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.86)),
    radial-gradient(circle at 86% 10%, rgba(47, 91, 255, 0.16), transparent 25rem),
    radial-gradient(circle at 12% 90%, rgba(89, 215, 194, 0.16), transparent 25rem);
  box-shadow: 0 3rem 8rem rgba(11, 20, 55, 0.12);
  padding: 3rem;
  overflow: hidden;
}
.dash-head { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.dash-title { display: flex; align-items: center; gap: 1.4rem; }
.dash-title strong, .dash-title span { display: block; line-height: 1; }
.dash-title strong { color: var(--navy); font-size: 2rem; }
.dash-title span { margin-top: 0.55rem; color: var(--gray); font-size: 1.25rem; font-weight: 800; }
.dash-logo {
  display: inline-flex;
  width: 4.4rem;
  height: 4.4rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: linear-gradient(135deg, #2f5bff, #59d7c2);
  color: #fff;
  font-style: normal;
  font-size: 2rem;
  font-weight: 900;
}
.pill-live {
  display: inline-flex;
  align-items: center;
  min-height: 3.4rem;
  border-radius: 999px;
  background: rgba(89, 215, 194, 0.18);
  color: var(--teal);
  padding: 0 1.3rem;
  font-size: 1.2rem;
  font-weight: 900;
}
.dash-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
  margin-top: 2.6rem;
}
.stat-card {
  min-height: 11.6rem;
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 0.8rem;
  background: #fff;
  padding: 1.8rem;
  box-shadow: 0 1.4rem 4rem rgba(11, 20, 55, 0.06);
}
.stat-card span { display: block; color: var(--gray); font-size: 1.2rem; font-weight: 900; }
.stat-card strong { display: block; margin-top: 1rem; color: var(--navy); font-size: 2.55rem; line-height: 1; white-space: nowrap; }
.stat-card small { display: block; margin-top: 0.8rem; color: var(--teal); font-size: 1.15rem; font-weight: 800; }
.dash-panel {
  margin-top: 1.6rem;
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 0.8rem;
  background: #fff;
  padding: 1.8rem;
  box-shadow: 0 1.4rem 4rem rgba(11, 20, 55, 0.06);
}
.dash-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.2rem; }
.dash-panel-head span { color: var(--navy); font-size: 1.45rem; font-weight: 900; }
.dash-panel-head b {
  border-radius: 999px;
  background: rgba(89, 215, 194, 0.16);
  color: var(--teal);
  padding: 0.45rem 0.9rem;
  font-size: 1.1rem;
}
.dash-row {
  display: grid;
  grid-template-columns: 3.4rem 1fr auto auto;
  gap: 1.1rem;
  align-items: center;
  min-height: 4.2rem;
  border-top: 1px solid #eef2f7;
}
.dash-row strong { color: var(--navy); font-size: 1.28rem; }
.dash-row span, .dash-row em { color: var(--gray); font-size: 1.16rem; font-style: normal; font-weight: 800; }
.dash-row i {
  display: inline-flex;
  width: 3.2rem;
  height: 3.2rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #eef3ff;
  color: var(--blue);
  font-style: normal;
  font-size: 1.4rem;
}
.dash-flow { display: flex; align-items: center; gap: 0.8rem; margin-top: 1.8rem; }
.dash-flow span {
  display: inline-flex;
  min-height: 3.6rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #f6f8fc;
  color: var(--navy);
  padding: 0 1.2rem;
  font-size: 1.18rem;
  font-weight: 900;
}
.dash-flow i { flex: 1; height: 0.3rem; border-radius: 999px; background: linear-gradient(90deg, #2f5bff, #59d7c2); }
.dash-metric {
  display: grid;
  grid-template-columns: minmax(10rem, 0.7fr) minmax(13rem, 1fr);
  gap: 1.4rem;
  align-items: center;
  margin-top: 1.4rem;
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 0.8rem;
  background: #f8fbff;
  padding: 1.4rem 1.6rem;
}
.dash-metric span { display: block; color: var(--gray); font-size: 1.12rem; font-weight: 900; }
.dash-metric strong { display: block; margin-top: 0.4rem; color: var(--teal); font-size: 2rem; line-height: 1; }
.dash-spark {
  height: 6rem;
  border-radius: 0.8rem;
  background: linear-gradient(180deg, rgba(47, 91, 255, 0.08), rgba(89, 215, 194, 0.07));
  overflow: hidden;
}
.dash-spark svg { width: 100%; height: 100%; }
.dash-spark path {
  fill: none;
  stroke: var(--blue);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 580;
  animation: draw 1.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes draw { from { stroke-dashoffset: 580; } to { stroke-dashoffset: 0; } }

/* ---------- 공통 섹션 ---------- */
.section-white { padding: 14rem 0; background: #fff; }
.section-gray { padding: 14rem 0; background: #f6f8fc; }
.section-head {
  width: min(92rem, calc(100% - 4rem));
  margin: 0 auto 6rem;
  text-align: center;
}
.section-head h2 { font-size: 5.4rem; line-height: 1.22; font-weight: 900; word-break: keep-all; }
.section-head p {
  max-width: 68rem;
  margin: 1.6rem auto 0;
  color: var(--gray);
  font-size: 1.75rem;
  line-height: 1.75;
  word-break: keep-all;
}
.eyebrow { display: inline-block; margin-bottom: 1.4rem; color: var(--blue); font-size: 1.25rem; font-weight: 900; }

/* ---------- 반복 업무 진단 ---------- */
.diagnosis-grid {
  width: min(112rem, calc(100% - 4rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}
.diagnosis-card {
  min-height: 17rem;
  display: grid;
  grid-template-columns: 5.2rem 1fr;
  gap: 1.6rem;
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 0.8rem;
  background: #fff;
  padding: 2.4rem;
  box-shadow: 0 1.6rem 4rem rgba(11, 20, 55, 0.05);
}
.diagnosis-card h3 { font-size: 1.9rem; }
.diagnosis-card p { margin-top: 0.8rem; color: var(--gray); font-size: 1.45rem; line-height: 1.65; word-break: keep-all; }
.diagnosis-icon {
  display: inline-flex;
  width: 5.2rem;
  height: 5.2rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #edf3ff;
  color: var(--blue);
  font-size: 2rem;
}

/* ---------- 업종별 자동화 ---------- */
.industry-grid {
  width: min(112rem, calc(100% - 4rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1.6rem;
}
.industry-card {
  min-height: 28rem;
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 0.8rem;
  background: #fff;
  padding: 2.6rem;
}
.industry-card h3 { margin-top: 2rem; font-size: 2rem; }
.industry-card ul { padding: 0; margin: 2rem 0 0; list-style: none; }
.industry-card li { color: #475569; font-size: 1.42rem; line-height: 2; }
.industry-card li::before {
  content: '';
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  margin-right: 0.8rem;
  border-radius: 50%;
  background: var(--mint);
  vertical-align: middle;
}
.industry-icon {
  display: inline-flex;
  width: 5.4rem;
  height: 5.4rem;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #eef3ff, #ecfeff);
  color: var(--blue);
  font-size: 2.2rem;
}

/* ---------- 도입 문의 밴드 ---------- */
.inquiry-band {
  width: min(112rem, calc(100% - 4rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(38rem, 1.12fr);
  gap: 5rem;
  align-items: center;
  border-radius: 0.8rem;
  background:
    radial-gradient(circle at 18% 14%, rgba(255, 255, 255, 0.2), transparent 24rem),
    linear-gradient(135deg, #244de6, #79a8ff);
  padding: 6rem;
  color: #fff;
  box-shadow: 0 3rem 9rem rgba(47, 91, 255, 0.26);
}
.inquiry-band .eyebrow { color: #dce8ff; }
.inquiry-band h2 { font-size: 5rem; line-height: 1.18; font-weight: 900; word-break: keep-all; }
.inquiry-band > div > p { margin: 2rem 0 3rem; color: rgba(255, 255, 255, 0.78); font-size: 1.7rem; line-height: 1.75; word-break: keep-all; }
.btn-white {
  display: inline-flex;
  min-height: 5.4rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #fff;
  color: var(--blue-dark);
  padding: 0 2.4rem;
  text-decoration: none;
  font-size: 1.45rem;
  font-weight: 900;
}
.inquiry-card {
  position: relative;
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.96);
  color: var(--navy);
  padding: 3rem;
  box-shadow: 0 2.4rem 6rem rgba(11, 20, 55, 0.18);
}
.inquiry-card h3 { margin: 1.8rem 0 2.4rem; font-size: 2.4rem; line-height: 1.35; word-break: keep-all; }
.inquiry-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; }
.inquiry-card-head small { color: var(--gray); font-size: 1.25rem; font-weight: 900; }
.inquiry-card-head span {
  display: inline-flex;
  min-height: 3.2rem;
  align-items: center;
  border-radius: 999px;
  background: rgba(89, 215, 194, 0.18);
  color: var(--teal);
  padding: 0 1.1rem;
  font-size: 1.12rem;
  font-weight: 900;
  white-space: nowrap;
}
.inquiry-steps { display: grid; gap: 1.2rem; padding: 0; margin: 0; list-style: none; }
.inquiry-steps li {
  display: grid;
  grid-template-columns: 4.4rem 1fr;
  gap: 1.4rem;
  align-items: start;
  border: 1px solid #e7ebf5;
  border-radius: 0.8rem;
  background: #f8fbff;
  padding: 1.6rem;
}
.inquiry-steps b {
  display: inline-flex;
  width: 4.4rem;
  height: 4.4rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: var(--blue);
  color: #fff;
  font-size: 1.12rem;
}
.inquiry-steps strong { display: block; color: var(--navy); font-size: 1.55rem; line-height: 1.35; }
.inquiry-steps p { margin-top: 0.45rem; color: var(--gray); font-size: 1.28rem; line-height: 1.55; word-break: keep-all; }

/* ---------- 운영 방식 ---------- */
.process-section { position: relative; padding: 16rem 0; background: #fff; }
.process-grid {
  width: min(112rem, calc(100% - 4rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(42rem, 1fr);
  gap: 7rem;
  align-items: start;
}
.process-list { display: grid; gap: 2rem; }
.process-item {
  display: grid;
  grid-template-columns: 6rem 1fr;
  gap: 2rem;
  min-height: 14rem;
  padding: 2.8rem 0;
  border-bottom: 1px solid #e7ebf5;
}
.process-item b { color: var(--blue); font-size: 1.35rem; }
.process-item h3 { font-size: 2.4rem; }
.process-item p { margin-top: 1rem; color: var(--gray); font-size: 1.55rem; line-height: 1.75; word-break: keep-all; }
.process-side { position: sticky; top: 12rem; }
.process-card {
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 0.8rem;
  background: #f6f8fc;
  padding: 3rem;
  box-shadow: 0 2.4rem 7rem rgba(11, 20, 55, 0.09);
}
.process-card-head { display: flex; justify-content: space-between; color: var(--gray); font-size: 1.35rem; font-weight: 900; }
.process-card-head strong { color: #16a34a; }
.process-bar { height: 0.6rem; margin: 2.4rem 0; border-radius: 999px; background: #e7ebf5; overflow: hidden; }
.process-bar i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #2f5bff, #59d7c2); }
.process-step {
  display: grid;
  grid-template-columns: 3.4rem 5rem 1fr;
  gap: 1.3rem;
  align-items: center;
  border-radius: 0.8rem;
  background: #fff;
  padding: 1.8rem;
  margin-top: 1.2rem;
}
.process-step > b { display: inline-flex; min-width: 3.4rem; align-items: center; justify-content: center; color: var(--blue); font-size: 1.15rem; font-weight: 900; }
.process-step > i {
  display: inline-flex;
  width: 5rem;
  height: 5rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #eef3ff;
  color: var(--blue);
  font-style: normal;
  font-size: 1.8rem;
}
.process-step strong { display: block; font-size: 1.65rem; }
.process-step span { display: block; margin-top: 0.4rem; color: var(--gray); font-size: 1.32rem; line-height: 1.5; word-break: keep-all; }

/* ---------- 고객 사례 ---------- */
.cases-grid {
  width: min(112rem, calc(100% - 4rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.case-card {
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 0.8rem;
  background: #fff;
  padding: 3rem;
  min-height: 36rem;
  box-shadow: 0 1.8rem 5rem rgba(11, 20, 55, 0.05);
}
.case-tag { display: flex; align-items: center; gap: 1rem; }
.case-tag span { color: var(--blue); font-size: 1.25rem; font-weight: 900; }
.case-tag i {
  display: inline-flex;
  width: 4.4rem;
  height: 4.4rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #edf3ff;
  color: var(--blue);
  font-style: normal;
  font-size: 1.8rem;
}
.case-card h3 { margin-top: 1.8rem; font-size: 2.35rem; line-height: 1.35; word-break: keep-all; }
.case-card > p { margin-top: 0.8rem; color: var(--gray); font-size: 1.32rem; font-weight: 800; }
.case-result { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2.2rem; }
.case-result strong { color: var(--navy); font-size: 2.1rem; line-height: 1.1; }
.case-result b {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  border-radius: 999px;
  background: rgba(89, 215, 194, 0.18);
  color: var(--teal);
  padding: 0 1rem;
  font-size: 1.18rem;
  font-weight: 900;
}
.case-chart {
  margin-top: 2.2rem;
  border: 1px solid #e7ebf5;
  border-radius: 0.8rem;
  background: #f8fbff;
  padding: 1.4rem 1.4rem 1rem;
  overflow: hidden;
}
.case-chart svg { width: 100%; height: 11rem; margin-top: 0.8rem; }
.case-chart line { stroke: #dbe4f2; stroke-width: 1.3; }
.case-chart polygon { fill: rgba(47, 91, 255, 0.12); }
.case-chart polyline { fill: none; stroke: var(--blue); stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.case-chart circle { fill: #fff; stroke: var(--blue); stroke-width: 3; }
.case-chart.mint polygon { fill: rgba(89, 215, 194, 0.15); }
.case-chart.mint polyline { stroke: var(--teal); }
.case-chart.mint circle { stroke: var(--teal); }
.case-chart-head { display: flex; align-items: center; justify-content: space-between; }
.case-chart-head span { color: var(--gray); font-size: 1.12rem; font-weight: 900; }
.case-chart-head em { color: var(--teal); font-style: normal; font-size: 1.12rem; font-weight: 900; }

/* ---------- 최종 CTA ---------- */
.final-cta {
  width: min(112rem, calc(100% - 4rem));
  margin: 12rem auto;
  display: flex;
  gap: 3rem;
  align-items: center;
  justify-content: space-between;
  border-radius: 0.8rem;
  background: linear-gradient(135deg, #0b1437, #2f5bff);
  color: #fff;
  padding: 5rem;
}
.final-cta h2 { font-size: 4.6rem; font-weight: 900; word-break: keep-all; }
.final-cta p { margin-top: 1rem; color: rgba(255, 255, 255, 0.76); font-size: 1.65rem; word-break: keep-all; }
.final-cta-actions { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.btn-outline-white {
  display: inline-flex;
  min-height: 5.4rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.46);
  border-radius: 0.8rem;
  color: #fff;
  padding: 0 2.4rem;
  text-decoration: none;
  font-size: 1.45rem;
  font-weight: 900;
}

/* ---------- 푸터 ---------- */
.footer { padding: 8rem 0 4rem; background: var(--navy); color: #fff; }
.footer-grid { display: grid; grid-template-columns: minmax(28rem, 0.9fr) minmax(0, 1.1fr); gap: 8rem; }
.footer-brand strong { display: block; font-size: 2.8rem; }
.footer-brand p {
  max-width: 38rem;
  margin-top: 1.4rem;
  color: rgba(255, 255, 255, 0.65);
  font-size: 1.55rem;
  line-height: 1.7;
  word-break: keep-all;
}
.footer-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4rem; }
.footer-cols h4 { font-weight: 900; font-size: 1.55rem; margin-bottom: 1.8rem; color: #fff; }
.footer-cols ul { display: flex; flex-direction: column; gap: 1rem; padding: 0; margin: 0; list-style: none; }
.footer-cols a { text-decoration: none; color: rgba(255, 255, 255, 0.62); font-size: 1.45rem; }
.footer-cols a:hover, .footer-cols a:focus-visible { color: #fff; }
.footer-bottom {
  margin-top: 6rem;
  padding-top: 3rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
}
.footer-bottom p { color: rgba(255, 255, 255, 0.5); font-size: 1.35rem; }
.footer-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 4.4rem;
  padding: 0 1.8rem;
  border-radius: 0.8rem;
  background: #fff;
  color: var(--navy);
  text-decoration: none;
  font-size: 1.35rem;
  font-weight: 900;
}

/* ============================================
   문의(apply) 페이지
   ============================================ */
.apply-wrapper {
  background:
    radial-gradient(circle at 10% 8%, rgba(47, 91, 255, 0.12), transparent 28rem),
    linear-gradient(180deg, #f6f8fc 0%, #ffffff 38%, #f8fafc 100%);
  color: var(--navy);
  min-height: 100vh;
  word-break: keep-all;
}
.apply-hero {
  width: min(118rem, calc(100% - 4.8rem));
  margin: 0 auto;
  padding: 8.5rem 0 6rem;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(40rem, 0.85fr);
  gap: 6rem;
  align-items: center;
}
.apply-hero-copy { display: flex; flex-direction: column; align-items: flex-start; }
.apply-hero-copy h1 {
  margin-top: 1.8rem;
  max-width: 74rem;
  font-size: clamp(4.4rem, 7vw, 8.2rem);
  line-height: 0.98;
  color: var(--navy);
  font-weight: 900;
}
.apply-hero-copy > p { margin-top: 2.8rem; max-width: 62rem; color: #52627a; font-size: 1.9rem; line-height: 1.8; }
.apply-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.9rem 1.3rem;
  border-radius: 999px;
  background: rgba(47, 91, 255, 0.08);
  color: var(--blue);
  font-size: 1.35rem;
  font-weight: 900;
}
.apply-stats {
  margin-top: 3.6rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(58rem, 100%);
  border: 1px solid #dce4f2;
  background: rgba(255, 255, 255, 0.78);
  border-radius: 1rem;
  overflow: hidden;
}
.apply-stats > div { padding: 1.6rem 1.8rem; }
.apply-stats > div:not(:last-child) { border-right: 1px solid #dce4f2; }
.apply-stats strong { display: block; font-size: 1.8rem; color: var(--navy); }
.apply-stats span { display: block; margin-top: 0.4rem; font-size: 1.25rem; color: #63718a; font-weight: 800; }
.brief-card {
  border: 1px solid #dce4f2;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 1rem;
  box-shadow: 0 24px 80px rgba(11, 20, 55, 0.12);
  padding: 3rem;
  overflow: hidden;
}
.brief-head { display: flex; align-items: center; gap: 1.4rem; }
.brief-head strong { display: block; font-size: 2rem; color: var(--navy); }
.brief-head span { display: block; margin-top: 0.1rem; color: var(--gray); font-size: 1.25rem; font-weight: 800; }
.brief-avatar {
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #2f5bff, #59d7c2);
  color: #fff;
  font-style: normal;
  font-size: 2rem;
  font-weight: 900;
}
.brief-status {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  padding: 0.7rem 1.1rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #00856d;
  font-weight: 900;
  font-size: 1.2rem;
}
.brief-rows { margin-top: 2.4rem; display: grid; gap: 1rem; }
.brief-row {
  display: flex;
  justify-content: space-between;
  gap: 1.4rem;
  padding: 1.4rem;
  border: 1px solid #e5ebf5;
  border-radius: 0.8rem;
  background: #fbfcff;
}
.brief-row span { color: #6b7a90; font-size: 1.25rem; font-weight: 800; }
.brief-row strong { color: var(--navy); font-size: 1.4rem; text-align: right; }
.brief-steps { margin-top: 2.4rem; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.brief-steps span { display: grid; gap: 0.8rem; font-size: 1.2rem; font-weight: 900; text-align: center; }
.brief-steps span i { display: block; height: 0.4rem; border-radius: 999px; }
.brief-steps .on { color: var(--blue); }
.brief-steps .on i { background: linear-gradient(90deg, #2f5bff, #59d7c2); }
.brief-steps .off { color: #94a3b8; }
.brief-steps .off i { background: #e5ebf5; }

.apply-body {
  width: min(118rem, calc(100% - 4.8rem));
  margin: 0 auto;
  padding: 0 0 10rem;
  display: grid;
  grid-template-columns: 34rem minmax(0, 1fr);
  gap: 3rem;
  align-items: start;
}
.apply-side {
  position: sticky;
  top: 10rem;
  border: 1px solid #dce4f2;
  background: rgba(255, 255, 255, 0.86);
  border-radius: 1rem;
  padding: 2.4rem;
  box-shadow: 0 16px 42px rgba(11, 20, 55, 0.06);
}
.apply-side h3 { display: flex; align-items: center; gap: 0.8rem; color: var(--navy); font-size: 1.55rem; }
.apply-side-list { margin: 1.6rem 0 0; padding: 0; list-style: none; display: grid; gap: 1.1rem; }
.apply-side-list li {
  position: relative;
  padding-left: 2.2rem;
  color: #52627a;
  font-size: 1.38rem;
  line-height: 1.55;
  font-weight: 700;
}
.apply-side-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.75rem;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  background: var(--mint);
}
.apply-side hr { margin: 2.4rem 0; border: 0; border-top: 1px solid #e5ebf5; }
.apply-side-steps { margin: 1.6rem 0 0; padding: 0; list-style: none; display: grid; gap: 1.3rem; }
.apply-side-steps li { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); column-gap: 1rem; }
.apply-side-steps span {
  grid-row: span 2;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 0.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eff4ff;
  color: var(--blue);
  font-size: 1.1rem;
  font-weight: 900;
}
.apply-side-steps strong { color: var(--navy); font-size: 1.38rem; }
.apply-side-steps p { margin-top: 0.2rem; color: #6b7a90; font-size: 1.27rem; line-height: 1.55; }

.apply-form-card {
  border: 1px solid #dce4f2;
  background: #fff;
  border-radius: 1rem;
  padding: 4rem;
  box-shadow: 0 20px 54px rgba(11, 20, 55, 0.08);
}
.apply-form-card h2 { color: var(--navy); font-size: 2.8rem; line-height: 1.22; }
.apply-form-card > p { margin-top: 1rem; max-width: 52rem; color: #63718a; font-size: 1.55rem; line-height: 1.7; }
.quick-contact { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 2.4rem; }
.quick-contact .btn-secondary { min-height: 4.8rem; font-size: 1.4rem; }
.apply-form { margin-top: 3rem; display: grid; gap: 2rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.form-field { display: grid; gap: 0.8rem; }
.form-field label { font-size: 1.4rem; font-weight: 800; color: var(--navy); }
.form-field input, .form-field select, .form-field textarea {
  border: 1px solid #dce4f2;
  border-radius: 0.8rem;
  background: #fbfcff;
  padding: 1.4rem 1.6rem;
  font-size: 1.5rem;
  color: var(--navy);
  width: 100%;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {
  outline: 2px solid rgba(47, 91, 255, 0.4);
  border-color: var(--blue);
  background: #fff;
}
.form-field textarea { min-height: 14rem; resize: vertical; }
.form-hint { color: #94a3b8; font-size: 1.25rem; }
.form-agree { display: flex; align-items: center; gap: 1rem; color: #52627a; font-size: 1.35rem; font-weight: 700; }
.form-agree input { width: 1.8rem; height: 1.8rem; accent-color: var(--blue); }
.form-done {
  display: none;
  margin-top: 2rem;
  border: 1px solid rgba(89, 215, 194, 0.5);
  border-radius: 0.8rem;
  background: rgba(89, 215, 194, 0.12);
  color: var(--teal);
  padding: 1.6rem 2rem;
  font-size: 1.5rem;
  font-weight: 800;
}
.form-done.show { display: block; }

/* ---------- 반응형 ---------- */
@media (max-width: 1024px) {
  .hero-grid { grid-template-columns: 1fr; gap: 5rem; }
  .hero h1 { font-size: 6.4rem; }
  .diagnosis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inquiry-band { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr; }
  .process-side { position: relative; top: auto; }
  .cases-grid { grid-template-columns: 1fr; }
  .final-cta { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 768px) {
  .hero { min-height: auto; align-items: flex-start; padding: 1.8rem 2rem 6rem; }
  .hero h1 { font-size: 4.6rem; }
  .section-white, .section-gray { padding: 9rem 2rem; }
  .section-head h2 { font-size: 3.6rem; }
  .section-head p { font-size: 1.6rem; }
  .diagnosis-grid, .industry-grid { grid-template-columns: 1fr; }
  .dash-card { padding: 2.4rem; }
  .dash-stats { grid-template-columns: 1fr; }
  .dash-row { grid-template-columns: 3.4rem 1fr; }
  .dash-row span, .dash-row em { display: none; }
  .dash-metric { grid-template-columns: 1fr; }
  .inquiry-band { width: calc(100% - 4rem); padding: 3rem; }
  .inquiry-band h2 { font-size: 3.4rem; }
  .process-section { padding: 9rem 2rem; }
  .final-cta { padding: 3rem; }
  .final-cta h2 { font-size: 3.2rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 4rem; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .apply-hero { width: min(100% - 3rem, 66rem); grid-template-columns: 1fr; padding: 6rem 0 4rem; gap: 3rem; }
  .apply-hero-copy h1 { font-size: 4.2rem; line-height: 1.05; }
  .apply-hero-copy > p { font-size: 1.65rem; }
  .apply-body { width: min(100% - 3rem, 66rem); grid-template-columns: 1fr; padding-bottom: 7rem; }
  .apply-side { position: static; }
  .apply-form-card { padding: 2.6rem; }
  .form-row { grid-template-columns: 1fr; }
}
@media (max-width: 375px) {
  .apply-stats { grid-template-columns: 1fr; }
  .apply-stats > div:not(:last-child) { border-right: 0; border-bottom: 1px solid #dce4f2; }
  .footer-cols { grid-template-columns: 1fr; }
}
