/* ===========================================
   GANGSEO MALEUN — Design system v2 (LU치과 grade refinement)
   Loaded after style.css to override key components
   =========================================== */

:root {
  --c-surface: #ffffff;
  --c-surface-2: #fffaf2;
  --c-surface-3: #fff3e0;
  --c-border: #ffe9d0;
  --c-border-strong: #ffd6a8;
  --c-ink: #1f1a14;
  --c-ink-2: #4a4036;
  --c-ink-3: #8a7f72;

  --sh-xs: 0 1px 2px rgba(40, 28, 12, 0.04);
  --sh-sm: 0 2px 8px rgba(40, 28, 12, 0.06);
  --sh-md: 0 8px 24px rgba(217, 114, 8, 0.08), 0 2px 6px rgba(40, 28, 12, 0.04);
  --sh-lg: 0 18px 40px rgba(217, 114, 8, 0.12), 0 4px 12px rgba(40, 28, 12, 0.05);
  --sh-xl: 0 28px 60px rgba(217, 114, 8, 0.18), 0 8px 20px rgba(40, 28, 12, 0.06);

  --r-xs: 6px;
  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-pill: 999px;
}

body { color: var(--c-ink); }

/* === Typography === */
.eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--c-orange);
  margin-bottom: 22px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 1px;
  background: currentColor;
  opacity: 0.55;
}
.eyebrow.light { color: rgba(255,255,255,0.92); }
.eyebrow.light::before { background: rgba(255,255,255,0.6); }

.section-title {
  font-size: clamp(30px, 3.8vw, 48px);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: -0.025em;
  color: var(--c-ink);
}
.section-title .brand {
  color: var(--c-orange-dark);
  font-weight: 800;
}
.section-title .brand-white { color: #fff; font-weight: 800; opacity: 1; }
.section-desc {
  margin-top: 22px;
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.85;
  letter-spacing: -0.005em;
}
.section-desc.light { color: rgba(255,255,255,0.85); }

.section { padding: 120px 0; }
.section-head { margin-bottom: 60px; }

/* === Header === */
.header {
  height: 84px;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  border-bottom: 1px solid transparent;
  transition: background 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.header.scrolled {
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 1px 0 var(--c-border), 0 8px 24px rgba(217, 114, 8, 0.04);
}
.header-inner { padding: 0 36px; }
.gnb-link {
  padding: 30px 18px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--c-ink);
}
.gnb-link::after {
  height: 2px;
  bottom: 22px;
  background: var(--c-orange);
}
.login-btn {
  padding: 10px 22px;
  background: var(--c-ink);
  color: #fff;
  border-radius: var(--r-pill);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.005em;
}
.login-btn:hover { background: var(--c-orange); color: #fff; }
.logo { height: 42px; }
.logo img { height: 100%; object-fit: contain; }
body.subpage { padding-top: 84px; }

/* === Buttons === */
.more-btn {
  padding: 13px 28px;
  background: transparent;
  border: 1px solid var(--c-orange);
  color: var(--c-orange-dark);
  border-radius: var(--r-pill);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.005em;
  margin-top: 34px;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.more-btn:hover {
  background: var(--c-orange);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--sh-md);
}
.more-btn--light {
  border-color: rgba(255,255,255,0.45);
  color: #fff;
  background: transparent;
}
.more-btn--light:hover { background: #fff; color: var(--c-orange-dark); }
.btn-pri {
  padding: 16px 32px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.005em;
  box-shadow: 0 12px 28px rgba(217, 114, 8, 0.32);
}
.btn-pri:hover { box-shadow: 0 18px 36px rgba(217, 114, 8, 0.45); transform: translateY(-3px); }
.btn-sec {
  padding: 16px 28px;
  font-size: 13px;
  font-weight: 700;
  background: rgba(255,255,255,0.14);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.btn-sec:hover { background: rgba(255,255,255,0.92); color: var(--c-orange-dark); transform: translateY(-3px); }

/* === Hero === */
.hero { min-height: 760px; }
.hero-title {
  font-weight: 800;
  font-size: clamp(36px, 5.4vw, 68px);
  line-height: 1.18;
  letter-spacing: -0.04em;
  text-shadow: 0 4px 28px rgba(0,0,0,0.42);
}
.hero-title .line { display: block; }
.hero-sub {
  margin-top: 22px;
  font-size: clamp(14px, 1.2vw, 16px);
  line-height: 1.7;
  font-weight: 400;
  letter-spacing: -0.005em;
  opacity: 0.94;
}
.hero-title .hl {
  background: linear-gradient(90deg, #ffd874 0%, #ffaa3c 50%, #ff8e2c 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.hero-eyebrow {
  font-size: 12px;
  letter-spacing: 0.32em;
  font-weight: 700;
  margin-bottom: 28px;
  opacity: 0.95;
  text-transform: uppercase;
}
.hero-sub {
  margin-top: 28px;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.65;
  font-weight: 400;
  max-width: 580px;
  margin-left: auto;
  margin-right: auto;
}
.hero-sub .muted { font-size: 0.88em; opacity: 0.82; }
.hero-cta { margin-top: 44px; }
.hero-overlay {
  background:
    linear-gradient(180deg, rgba(20,12,4,0.32) 0%, rgba(20,12,4,0.10) 30%, rgba(20,12,4,0.62) 100%),
    radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.18), transparent 70%);
}
.hero-paging { bottom: 50px; right: 40px; }
.hero-arrow { width: 44px; height: 44px; }
.hero-page-num em { font-weight: 800; }
.hero-scroll {
  font-size: 11px;
  letter-spacing: 0.4em;
  font-weight: 600;
}

/* === Intro + Phrase wrap (블롭이 두 섹션을 가로지르는 컨테이너) === */
.intro-phrase-wrap {
  position: relative;
  overflow: visible; /* phrase-heading descender 잘리지 않도록; body의 overflow-x:hidden이 좌측 blob 잘라줌 */
  background: #fff;
}

/* === Intro === */
.intro { background: transparent; padding: 140px 0 130px; position: relative; overflow: visible; }
.intro-wrap {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 70px;
  align-items: center;
  position: relative;
}
.intro-text { position: relative; z-index: 2; }
.intro-text .eyebrow { position: relative; z-index: 2; }
.intro-text .section-title { position: relative; z-index: 2; margin-bottom: 36px; }
.intro-desc {
  position: relative;
  z-index: 2;
  color: var(--c-ink-2);
  line-height: 1.95;
  margin-bottom: 22px;
  letter-spacing: -0.005em;
}
.intro-desc.small { color: var(--c-ink-2); }

.intro-visual {
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  gap: 18px;
}
.intro-img-main {
  position: relative;
  z-index: 2;
  top: auto; right: auto; left: auto; bottom: auto;
  flex: 0 0 auto;
  width: 72%;
  max-width: 560px;
  border-radius: var(--r-xl);
  box-shadow: none !important;
  aspect-ratio: 1/1;
  overflow: hidden;
  margin-left: 0;
  background: #fff;
}
.intro-img-main img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.intro-img-sub {
  position: relative;
  top: auto; right: auto;
  z-index: 1;
  flex: 0 0 auto;
  width: 26%;
  max-width: 210px;
  align-self: stretch;
  margin-top: 40px;
  margin-bottom: 40px;
  border-radius: var(--r-lg);
  box-shadow: none !important;
  border: none;
  aspect-ratio: auto;
  overflow: hidden;
  background: #fff;
  transform: none !important;
}
.intro-img-sub img {
  width: 100%; height: 100%;
  object-fit: cover;
}

/* Blob — 좌측에서 좌우로 길게 흐르는 매우 옅은 그라데이션, intro→phrase 가로지름 */
.intro-blob {
  position: absolute;
  left: -700px;
  right: auto;
  top: 0;
  bottom: 0;
  transform: none;
  width: 1400px;
  height: auto;
  border-radius: 50%;
  background: radial-gradient(ellipse 55% 50% at 50% 50%, rgba(245, 195, 175, 0.45) 0%, rgba(245, 195, 175, 0.16) 42%, transparent 78%);
  filter: blur(70px);
  z-index: 0;
  pointer-events: none;
}

/* Phrase heading */
.phrase-heading { padding: 110px 24px 90px; }
.phrase-heading h2 {
  font-size: clamp(38px, 5.6vw, 78px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.035em;
}
.phrase-heading .ph-line--1 { color: var(--c-ink); }
.phrase-heading .ph-line--2 {
  background: linear-gradient(90deg, var(--c-orange) 0%, var(--c-orange-dark) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  padding-left: 90px;
  font-weight: 800;
}

/* Marquee */
.phrase-marquee {
  padding: 32px 0;
  background: linear-gradient(90deg, var(--c-surface-3) 0%, #ffe6c2 50%, var(--c-surface-3) 100%);
  border-top: 1px solid #ffd6a8;
  border-bottom: 1px solid #ffd6a8;
}
.phrase-track {
  font-size: clamp(28px, 3.4vw, 50px);
  font-weight: 800;
  gap: 56px;
  letter-spacing: -0.02em;
}
.phrase-track em {
  font-size: 0.55em;
  color: var(--c-orange);
}

/* Department */
.department { padding-top: 130px; }
.depart-card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transition: opacity 0.4s;
}

/* Section head row (좌측 텍스트 + 우측 슬라이더 nav) */
.section-head--row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  text-align: left;
}
.section-head--row .section-head__text { max-width: 720px; }
.section-head--row .section-desc { margin-top: 14px; }

/* Department slider nav (LU치과 미니멀 화살표) */
.dept-nav {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.dept-nav-btn {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid var(--c-border);
  color: var(--c-ink-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.dept-nav-btn:hover {
  background: var(--c-ink);
  color: #fff;
  border-color: var(--c-ink);
}

/* Department card 레이아웃 — 가로형 이미지 + 우측 텍스트, 박스 X */
.department-slider { overflow: hidden !important; } /* 좌측 잔상 차단 */
.department-track { overflow: visible !important; } /* track은 이동만 담당, 자르기는 slider가 */
.depart-card {
  grid-template-columns: 1.15fr 1fr !important;
  gap: 70px !important;
  padding: 0 !important;
  align-items: center !important;
}
.depart-img {
  aspect-ratio: 4 / 3 !important;
  border-radius: 18px;
  overflow: hidden;
  max-width: none !important;
}
.depart-img::before { display: none !important; }
.depart-info { padding-right: 40px !important; }

/* 작은 텍스트들 사이즈 업 (Department) */
.department .eyebrow { font-size: 15px !important; }
.department .section-desc { font-size: 20px !important; line-height: 1.9 !important; }
.depart-desc { font-size: 20px !important; line-height: 1.9 !important; }

/* 자세히 보기 버튼 — 옅은 톤 + 진한 주황 텍스트 */
.depart-info .more-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px !important;
  background: var(--c-warm-pale, #faf3ea) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: var(--c-orange-dark) !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em;
  box-shadow: none !important;
  transition: background 0.25s, color 0.25s, transform 0.25s !important;
}
.depart-info .more-btn:hover {
  background: var(--c-orange) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}
.depart-info .more-btn .arrow { font-size: 20px; line-height: 1; }
.depart-title {
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 800;
  letter-spacing: -0.025em;
  margin-bottom: 16px;
}
.depart-desc {
  font-size: 14.5px;
  color: var(--c-ink-2);
  line-height: 1.85;
}

/* Team */
.team { background: linear-gradient(180deg, #fff 0%, var(--c-surface-2) 100%); padding: 140px 0; }
.team-card { gap: 90px; max-width: 1080px; }
.team-photo {
  border-radius: 50%;
  box-shadow: var(--sh-xl);
  background: var(--grad-brand-soft);
}
.team-role {
  font-size: 12px;
  letter-spacing: 0.24em;
  font-weight: 700;
  color: var(--c-orange);
  margin-bottom: 10px;
  text-transform: uppercase;
}
.team-name {
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-bottom: 28px;
  color: var(--c-ink);
}
.team-name span { font-weight: 400; font-size: 0.55em; color: var(--c-ink-3); margin-left: 12px; }
.team-history { display: grid; gap: 10px; }
.team-history li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  color: var(--c-ink-2);
  line-height: 1.75;
}
.team-history li::before {
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 6px; height: 6px;
  background: var(--c-orange);
  border-radius: 50%;
}

/* Why */
.why { padding: 140px 0; }
.why-text h3 {
  font-size: clamp(24px, 2.6vw, 34px);
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-bottom: 28px;
  line-height: 1.3;
  color: var(--c-ink);
}
.why-text p {
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.95;
}
.why-num {
  font-size: 14px;
  letter-spacing: 0.2em;
  font-weight: 800;
  color: var(--c-orange);
}
.why-img {
  border-radius: var(--r-xl);
  box-shadow: var(--sh-xl);
}
.why-arrow { box-shadow: var(--sh-md); }

/* Equipment */
.equipment { padding: 130px 0 140px; }
.equipment-head { margin-bottom: 70px; max-width: 760px; }
.equipment-head .section-title { word-break: keep-all; }
.equipment-head .section-title .brand-white { white-space: nowrap; }
.equip-card {
  border-radius: var(--r-lg);
  padding: 36px 22px 28px;
  box-shadow: var(--sh-md), 0 0 0 1px rgba(255,255,255,0.5) inset;
  background: #fff;
}
.equip-card img { max-height: 110px; margin-bottom: 8px; }
.equip-name { font-size: 15.5px; font-weight: 800; letter-spacing: -0.02em; }
.equip-desc { font-size: 12px; }
.equipment-watermark {
  font-weight: 800;
  font-size: clamp(58px, 9vw, 130px);
  color: rgba(255, 255, 255, 0.08);
  letter-spacing: -0.04em;
  bottom: 30px;
}

/* Location */
.location { padding: 130px 0; }
.location-watermark {
  font-size: clamp(48px, 7vw, 96px);
  color: rgba(245, 146, 34, 0.09);
  font-weight: 800;
  letter-spacing: -0.04em;
}
.location-layout { gap: 80px; }
.location-gallery { gap: 16px; height: 520px; }
.loc-tile {
  border-radius: var(--r-lg);
  box-shadow: var(--sh-md);
}

/* Hours */
.hours-section { padding: 130px 0; }
.hours-block {
  padding: 44px 48px;
  border-radius: var(--r-xl);
  box-shadow: var(--sh-lg);
  border: 1px solid var(--c-border);
}
.hours-block-head h3 {
  font-size: 24px;
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.02em;
}
.hours-badge {
  font-size: 13px;
  padding: 10px 18px;
  letter-spacing: -0.005em;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(245, 146, 34, 0.25);
}
.hours-time {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--c-ink);
}
.hours-phone {
  margin-top: 44px;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--c-ink);
}
.hours-phone-icon {
  width: 56px; height: 56px;
  background: linear-gradient(135deg, #38d558, #2ab84a);
  box-shadow: 0 10px 22px rgba(52, 199, 89, 0.42);
}

/* News */
.news-section { padding: 130px 0 140px; }
.news-list {
  border-top: 2px solid var(--c-orange);
  border-bottom: 2px solid var(--c-orange);
}
.news-item a { padding: 24px 20px; }
.news-item a:hover { background: var(--c-surface-2); }
.news-title { font-size: 15.5px; font-weight: 600; letter-spacing: -0.015em; }
.news-date { font-size: 13px; font-variant-numeric: tabular-nums; }

/* Visit */
.visit-section { padding: 130px 0; background: var(--c-surface-2); }
.visit-grid { gap: 60px; margin-top: 70px; }
.visit-info {
  padding: 50px 44px;
  border-radius: var(--r-xl);
  box-shadow: var(--sh-lg);
  background: #fff;
}
.visit-eyebrow {
  font-size: 12px;
  letter-spacing: 0.28em;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--c-orange);
  margin-bottom: 18px;
}
.visit-addr {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.4;
  color: var(--c-ink);
  margin-bottom: 8px;
}
.visit-subaddr {
  font-size: 14px;
  color: var(--c-ink-3);
  margin-bottom: 28px;
}
.visit-phone {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 32px;
  color: var(--c-orange-dark);
}
.visit-phone-ico {
  width: 36px; height: 36px;
  font-size: 16px;
  margin-right: 10px;
  background: linear-gradient(135deg, #38d558, #2ab84a);
  box-shadow: 0 6px 14px rgba(52, 199, 89, 0.35);
}
.visit-btn { padding: 15px 24px; font-size: 14px; font-weight: 700; letter-spacing: -0.005em; }
.map-grid-bg::before { background-size: 48px 48px; }
.map-pin-label { font-size: 13px; padding: 7px 16px; box-shadow: 0 8px 18px rgba(217, 114, 8, 0.2); }
.map-overlay-cta { padding: 11px 18px; font-size: 13px; font-weight: 700; }

/* CTA */
.cta {
  padding: 120px 0;
  background: linear-gradient(135deg, #ffc94a 0%, #f59222 55%, #e26f08 100%);
  position: relative;
  overflow: hidden;
}
.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(255,255,255,0.18), transparent 50%),
    radial-gradient(ellipse at 80% 70%, rgba(255,255,255,0.12), transparent 50%);
  pointer-events: none;
}
.cta .container { position: relative; z-index: 2; }
.cta-eyebrow {
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.92);
  margin-bottom: 22px;
  font-weight: 700;
}
.cta-title {
  font-size: clamp(32px, 4.6vw, 56px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.2;
  margin-bottom: 44px;
}
.cta-title .heart {
  color: rgba(255, 220, 230, 0.95);
  margin-left: 10px;
  display: inline-block;
  animation: heartBeat 2s ease-in-out infinite;
}
@keyframes heartBeat {
  0%, 100% { transform: scale(1); }
  20%, 60% { transform: scale(1.15); }
}
.cta-btn {
  padding: 20px 44px;
  background: var(--c-ink);
  color: #fff;
  border-radius: var(--r-pill);
  font-size: 15px;
  letter-spacing: -0.005em;
  box-shadow: 0 14px 32px rgba(0,0,0,0.28);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
}
.cta-btn:hover { background: #000; transform: translateY(-3px); box-shadow: 0 20px 40px rgba(0,0,0,0.4); }

/* Footer */
.footer {
  background: linear-gradient(180deg, #2a1d12 0%, #1a120a 100%);
  color: rgba(255,255,255,0.65);
  padding: 80px 0 60px;
}
.footer-logo img { height: 36px; filter: brightness(1.6) saturate(0.6); opacity: 0.92; }
.footer-links a { font-size: 13px; opacity: 0.78; transition: opacity 0.25s, color 0.25s; }
.footer-links a:hover { opacity: 1; color: var(--c-yellow); }
.footer-bottom p {
  font-size: 13px;
  line-height: 1.85;
  letter-spacing: -0.005em;
  opacity: 0.7;
  margin-bottom: 4px;
}

/* Subpage page-header */
body.subpage .page-header {
  padding: 80px 0 60px;
  text-align: center;
  background: linear-gradient(180deg, var(--c-surface-2) 0%, transparent 100%);
}
body.subpage .page-header h1 {
  font-size: clamp(38px, 5.2vw, 60px);
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--c-ink);
}
body.subpage .page-header .page-sub {
  margin-top: 18px;
  font-size: 16px;
  color: var(--c-ink-3);
  letter-spacing: -0.005em;
}

/* Breadcrumb v2 */
.breadcrumb { padding: 28px 0 0; }
.breadcrumb-list a {
  padding: 7px 16px;
  background: var(--c-orange-pale);
  color: var(--c-orange-dark);
  border-radius: var(--r-pill);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: -0.005em;
}
.breadcrumb-list a:hover { background: var(--c-orange); color: #fff; }
.breadcrumb-list .current { font-size: 13px; color: var(--c-ink-2); font-weight: 600; }

/* Subpage section padding */
.sub-section { padding: 110px 0; }

/* Symptom cards v2 */
.symptom-card {
  padding: 38px 26px;
  border-radius: var(--r-lg);
  background: #fff;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}
.symptom-icon {
  width: 64px; height: 64px;
  background: var(--grad-brand-soft);
  border-radius: var(--r-md);
  margin-bottom: 22px;
  font-size: 30px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.6);
}
.symptom-card h3 { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 12px; }
.symptom-card p { font-size: 13.5px; color: var(--c-ink-2); line-height: 1.75; }

/* Step item v2 */
.step-item {
  padding: 32px 36px;
  border-radius: var(--r-lg);
  background: #fff;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
  transition: transform 0.35s, box-shadow 0.35s;
}
.step-item:hover { transform: translateX(8px); box-shadow: var(--sh-md); }
.step-num {
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -0.03em;
}
.step-body h3 { font-size: 20px; font-weight: 800; letter-spacing: -0.025em; margin-bottom: 10px; }
.step-body p { font-size: 14px; color: var(--c-ink-2); line-height: 1.8; }

/* Callout card */
.callout-card {
  padding: 60px 50px;
  border-radius: var(--r-xl);
  box-shadow: var(--sh-lg);
  border: 1px solid var(--c-border);
  background: #fff;
}
.callout-card h3 {
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 800;
  letter-spacing: -0.025em;
  margin-bottom: 16px;
}
.callout-card p {
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.75;
}

/* Doctor profile v2 */
.doctor-profile { gap: 70px; }
.doctor-photo {
  border-radius: var(--r-xl);
  box-shadow: var(--sh-xl);
  aspect-ratio: 4/5;
  background: var(--grad-brand-soft);
}
.doctor-role {
  font-size: 12px;
  letter-spacing: 0.24em;
  font-weight: 700;
}
.doctor-name {
  font-size: clamp(34px, 4vw, 50px);
  font-weight: 800;
  letter-spacing: -0.035em;
}
.doctor-title {
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 28px;
}
.doctor-desc {
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.95;
}
.doctor-section-h {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 28px 0 16px;
}
.career-list li {
  padding-left: 24px;
  font-size: 14px;
  color: var(--c-ink-2);
  line-height: 1.85;
}

/* Value cards v2 */
.value-card {
  padding: 40px 30px;
  border-radius: var(--r-lg);
  background: #fff;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}
.value-num { font-size: 40px; font-weight: 800; letter-spacing: -0.03em; margin-bottom: 14px; }
.value-card h3 { font-size: 19px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 14px; }
.value-card p { font-size: 13.5px; color: var(--c-ink-2); line-height: 1.75; }

/* Point cards (dialysis page) v2 */
.point-card {
  padding: 44px 36px;
  border-radius: var(--r-xl);
  background: #fff;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-md);
}
.point-num { font-size: 44px; font-weight: 800; letter-spacing: -0.03em; margin-bottom: 22px; }
.point-card h3 { font-size: 22px; font-weight: 800; letter-spacing: -0.025em; margin-bottom: 16px; }
.point-card p { font-size: 14.5px; color: var(--c-ink-2); line-height: 1.9; }

/* Gallery items v2 */
.gallery-item {
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
  transition: transform 0.45s, box-shadow 0.45s;
}
.gallery-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-lg);
}

/* Long text v2 */
.long-text { max-width: 920px; margin: 50px auto; }
.long-text .text-h2,
.text-h2 {
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.35;
  margin-bottom: 28px;
}
.long-text p {
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 2;
  margin-bottom: 18px;
}

/* Transport info v2 */
.transport-info {
  background: #fff;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-md);
}
.transport-title {
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 800;
  letter-spacing: -0.025em;
}
.transport-label { font-size: 14px; font-weight: 800; letter-spacing: -0.015em; }
.transport-desc { font-size: 14px; line-height: 1.85; }
.transport-tag {
  background: var(--c-orange-pale);
  color: var(--c-orange-dark);
  font-weight: 800;
  letter-spacing: -0.005em;
}

/* Section head row (with right-aligned button) */
.section-head--row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 50px;
  text-align: left;
}
.section-head--row .more-btn { margin-top: 0; }

/* Slider arrows tighter */
.slider-arrow {
  width: 52px; height: 52px;
  box-shadow: var(--sh-md);
  border: 1px solid var(--c-border);
}
.slider-arrow:hover { background: var(--c-orange); color: #fff; border-color: var(--c-orange); }

/* Misc utilities */
.bg-warm { background: linear-gradient(180deg, var(--c-surface-2) 0%, var(--c-surface-3) 100%); }

/* === Hero side number (LU치과 패턴) === */
.hero-side-num {
  position: absolute;
  left: 36px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  color: rgba(255,255,255,0.85);
  font-family: var(--serif);
  font-weight: 200;
  font-size: clamp(50px, 6vw, 90px);
  line-height: 1;
  letter-spacing: -0.04em;
  pointer-events: none;
  text-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.hero-side-num em { font-style: normal; }

/* Hero overlay - 좀 더 옅게 (LU치과 톤) */
.hero-overlay {
  background:
    linear-gradient(180deg, rgba(20,12,4,0.18) 0%, rgba(20,12,4,0.04) 35%, rgba(20,12,4,0.45) 100%),
    radial-gradient(ellipse at 50% 55%, rgba(0,0,0,0.10), transparent 70%);
}

/* Hero title - LU치과 영문 톤 (얇은 느낌 + 큰 letter-spacing) */
.hero-title {
  font-weight: 800;
  font-size: clamp(36px, 5.4vw, 68px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-shadow: 0 4px 24px rgba(0,0,0,0.42);
}
.hero-sub {
  margin-top: 24px;
  font-size: clamp(14px, 1.3vw, 17px);
  font-weight: 400;
  letter-spacing: -0.005em;
  opacity: 0.95;
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.7;
}

/* === Visit + Hours integrated (LU치과 layout) === */
.visit-section { padding: 130px 0; background: #fff; }
.visit-layout {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 60px;
  margin-top: 60px;
  align-items: stretch;
}
.visit-map-lg {
  border-radius: var(--r-xl);
  overflow: hidden;
  position: relative;
  display: block;
  min-height: 560px;
  box-shadow: var(--sh-lg);
  transition: transform 0.4s, box-shadow 0.4s;
}
.visit-map-lg:hover { transform: translateY(-3px); box-shadow: var(--sh-xl); }
.visit-side { display: flex; flex-direction: column; gap: 24px; }
.visit-addr-block {
  background: var(--c-warm-pale);
  border-radius: var(--r-xl);
  padding: 36px 32px;
  border: 1px solid var(--c-border);
}
.visit-addr-block .visit-eyebrow {
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--c-orange);
  font-weight: 700;
  margin-bottom: 14px;
}
.visit-addr-block h3 {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.4;
  color: var(--c-ink);
  margin-bottom: 8px;
}
.visit-area { font-size: 13px; color: var(--c-ink-3); margin-bottom: 22px; }
.visit-phone-big {
  display: block;
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin-bottom: 22px;
}
.visit-phone-big span { color: var(--c-orange-dark); }
.visit-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.visit-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 0; font-size: 13px; font-weight: 700;
  border-radius: var(--r-pill); color: #fff;
  letter-spacing: -0.005em;
  transition: transform 0.25s, box-shadow 0.25s;
}
.visit-btn--naver { background: #03c75a; }
.visit-btn--naver:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(3, 199, 90, 0.35); }
.visit-btn--kakao { background: #ffe812; color: #2a241d; }
.visit-btn--kakao:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(255, 232, 18, 0.5); }

.hours-compact {
  background: #fff;
  border-radius: var(--r-xl);
  padding: 32px 32px 28px;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}
.hours-compact h4 {
  font-size: 15px;
  font-weight: 800;
  color: var(--c-orange-dark);
  letter-spacing: -0.01em;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1.5px dashed var(--c-border-strong);
}
.hours-compact h4.mt { margin-top: 24px; }
.hours-compact ul { display: grid; gap: 10px; }
.hours-compact li {
  display: grid;
  grid-template-columns: 130px 1fr;
  font-size: 14px;
  letter-spacing: -0.01em;
}
.hours-compact li span { color: var(--c-ink-3); font-weight: 600; }
.hours-compact li b { color: var(--c-ink); font-weight: 700; }
.hours-compact li b em {
  display: inline-block;
  margin-left: 6px;
  font-style: normal;
  background: var(--c-orange);
  color: #fff;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 700;
}

@media (max-width: 1024px) {
  .visit-layout { grid-template-columns: 1fr; }
  .visit-map-lg { min-height: 420px; }
}
@media (max-width: 640px) {
  .visit-buttons { grid-template-columns: 1fr; }
  .visit-phone-big { font-size: 28px; }
}

/* === Eyebrow 단순화 (LU치과처럼 헤딩 위 작은 텍스트) === */
.eyebrow {
  display: block !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: none !important;
  color: var(--c-orange) !important;
  margin-bottom: 16px !important;
}
.eyebrow::before { display: none !important; }
.eyebrow.light { color: rgba(255,255,255,0.85) !important; }

/* === Marquee LU치과 스타일 (흰 배경 + serif italic + 영문 + 그라데이션) === */
.phrase-marquee {
  padding: 50px 0 !important;
  background: #fff !important;
  border-top: none !important;
  border-bottom: none !important;
}
.phrase-track {
  font-size: clamp(44px, 6vw, 84px) !important;
  font-weight: 400 !important;
  gap: 56px !important;
  letter-spacing: -0.005em !important;
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif !important;
  font-style: italic !important;
}
.phrase-track span {
  background: linear-gradient(90deg, #ffc06a 0%, #f59222 50%, #d97208 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}
.phrase-track em {
  font-size: 0.7em !important;
  color: #f5b870 !important;
  font-style: normal !important;
  opacity: 0.75;
}

/* === Visit + Hours LU치과 톤 (다시) === */
.visit-section { padding: 130px 0; background: #fff; }
.visit-layout {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 56px;
  align-items: stretch;
  margin-top: 0;
}
.visit-map-lg {
  position: relative;
  display: block;
  border-radius: var(--r-xl);
  overflow: hidden;
  min-height: 620px;
  box-shadow: var(--sh-lg);
  transition: transform 0.4s, box-shadow 0.4s;
}
.visit-map-lg:hover { transform: translateY(-3px); box-shadow: var(--sh-xl); }
.map-realistic {
  position: absolute;
  inset: 0;
  background: #f3f4f6;
}
.map-bg-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.map-pin-real {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  z-index: 3;
  filter: drop-shadow(0 8px 16px rgba(217, 114, 8, 0.42));
  animation: pinBounceY 1.8s ease-in-out infinite;
}
.map-pin-tag {
  background: #fff;
  padding: 7px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-orange-dark);
  box-shadow: 0 4px 10px rgba(0,0,0,0.10);
  white-space: nowrap;
}
@keyframes pinBounceY {
  0%, 100% { transform: translate(-50%, -100%); }
  50% { transform: translate(-50%, -110%); }
}
.map-zoom-cta {
  position: absolute;
  bottom: 18px; right: 18px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 11px 18px;
  background: rgba(255,255,255,0.96);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-orange-dark);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  z-index: 4;
}
.map-attribution {
  position: absolute;
  bottom: 12px; left: 16px;
  font-size: 10px;
  color: rgba(60,60,60,0.55);
  letter-spacing: 0;
  z-index: 4;
}

/* Right side */
.visit-side { display: flex; flex-direction: column; gap: 20px; }
.visit-head { margin-bottom: 6px; }
.visit-head .section-title {
  font-size: clamp(28px, 3.4vw, 40px);
  margin-top: 4px;
}

.visit-addr-card {
  background: var(--c-warm-pale);
  border-radius: var(--r-xl);
  padding: 32px 30px 28px;
  border: 1px solid var(--c-border);
}
.visit-addr-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--c-orange);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.visit-addr-text {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.5;
  color: var(--c-ink);
  margin-bottom: 22px;
}
.visit-phone-big {
  display: block;
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--c-orange-dark);
  margin-bottom: 22px;
  font-variant-numeric: tabular-nums;
}
.visit-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.visit-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 13px 0; font-size: 13px; font-weight: 700;
  border-radius: var(--r-pill); color: #fff;
  letter-spacing: -0.005em;
  transition: transform 0.25s, box-shadow 0.25s;
}
.visit-btn--naver { background: #03c75a; }
.visit-btn--naver:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(3, 199, 90, 0.35); }
.visit-btn--kakao { background: #ffe812; color: #2a241d; }
.visit-btn--kakao:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(255, 232, 18, 0.5); }

/* Hours table */
.hours-table {
  background: #fff;
  border-radius: var(--r-xl);
  padding: 28px 30px 22px;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}
.hours-table h4 {
  font-size: 13px;
  font-weight: 800;
  color: var(--c-orange-dark);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1.5px solid var(--c-border-strong);
}
.hours-table h4.mt { margin-top: 22px; }
.hours-table table { width: 100%; border-collapse: collapse; }
.hours-table tr { border-bottom: 1px dashed #ffe9d0; }
.hours-table tr:last-child { border-bottom: none; }
.hours-table th, .hours-table td { padding: 10px 0; font-weight: 500; text-align: left; }
.hours-table th {
  width: 120px;
  font-size: 13px;
  color: var(--c-ink-3);
  font-weight: 600;
  letter-spacing: -0.005em;
}
.hours-table td {
  font-size: 14px;
  color: var(--c-ink);
  font-weight: 700;
  letter-spacing: -0.01em;
}
.hours-table td span { color: var(--c-ink-3); margin: 0 4px; font-weight: 400; }
.hours-table td em {
  display: inline-block;
  margin-left: 8px;
  font-style: normal;
  background: var(--c-orange);
  color: #fff;
  font-size: 10px;
  padding: 2px 7px;
  border-radius: 3px;
  font-weight: 700;
  letter-spacing: 0;
}
.hours-note {
  margin-top: 14px;
  font-size: 11.5px;
  color: var(--c-ink-3);
  line-height: 1.75;
  letter-spacing: -0.005em;
}

@media (max-width: 1024px) {
  .visit-layout { grid-template-columns: 1fr; }
  .visit-map-lg { min-height: 420px; }
}
@media (max-width: 640px) {
  .visit-buttons { grid-template-columns: 1fr; }
  .visit-phone-big { font-size: 28px; }
  .hours-table th { width: 100px; font-size: 12px; }
  .hours-table td { font-size: 13px; }
}

/* === Tone down — LU치과처럼 차분하게 (검정 위주, 오렌지는 작은 액센트) === */

/* 큰 헤딩의 brand 키워드는 짙은 차콜로 (LU치과 보라 톤 다운된 느낌) */
.section-title .brand {
  color: var(--c-ink);
  font-weight: 800;
  position: relative;
  display: inline-block;
}
/* 미세한 오렌지 underline accent */
.section-title .brand::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: 4px;
  height: 8px;
  background: rgba(245, 146, 34, 0.18);
  z-index: -1;
  border-radius: 2px;
}

/* Phrase heading - LU치과처럼 영문 serif + 그라데이션 (제대로) */
.phrase-heading {
  padding: 130px 24px 110px !important;
  text-align: center;
  background: transparent;
  position: relative;
  z-index: 1;
}
.phrase-heading h2 {
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: clamp(56px, 8vw, 110px) !important;
  line-height: 1.45 !important;
  letter-spacing: -0.01em !important;
  padding: 0.2em 0 0.45em !important;
  position: relative;
  z-index: 2;
  overflow: visible;
}
.phrase-heading .ph-line {
  padding-bottom: 0.2em;
  overflow: visible;
}
.phrase-heading .ph-line {
  display: block;
  font-style: italic;
}
.phrase-heading .ph-line--1 {
  background: linear-gradient(90deg, #ffd082 0%, #f59222 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-align: left;
  max-width: 1100px;
  margin: 0 auto;
  padding-left: 8%;
}
.phrase-heading .ph-line--2 {
  background: linear-gradient(90deg, #f59222 0%, #d97208 60%, #b85a00 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-align: right;
  max-width: 1100px;
  margin: 0 auto;
  padding-right: 8%;
  margin-top: -0.1em;
}

/* Eyebrow는 작은 오렌지 텍스트 (이미 적용됨) */

/* 진료시간 표 - 야간진료 태그만 오렌지, 나머지는 검정 */
.hours-table h4 {
  color: var(--c-ink);
  letter-spacing: 0.08em;
}
/* h4 밑줄을 옅게 */
.hours-table h4 { border-bottom-color: #e8e0d2; }

/* 전화번호 - 검정 + 마지막 부분만 오렌지 액센트 */
.visit-phone-big {
  color: var(--c-ink) !important;
}
.visit-phone-big::after {
  content: "";
}
.hours-phone { color: var(--c-ink); }

/* visit-addr-block 배경 약간 톤다운 */
.visit-addr-card { background: #faf7f0; border-color: #ede5d2; }

/* CTA - LU치과처럼 차분하게 (어두운 ink 베이스 + 작은 오렌지 액센트) */
.cta {
  background: linear-gradient(180deg, #fdfaf3 0%, #faf2e3 100%) !important;
  padding: 110px 0 !important;
}
.cta::before { display: none !important; }
.cta-eyebrow {
  color: var(--c-orange) !important;
  letter-spacing: 0.18em !important;
  font-size: 12px !important;
}
.cta-title {
  color: var(--c-ink) !important;
  font-weight: 800 !important;
}
.cta-title .heart {
  color: var(--c-orange) !important;
}
.cta-btn {
  background: var(--c-ink) !important;
  color: #fff !important;
}

/* 헤더 — 로고 좌측 / GNB 중앙 / 예약하기 우측 */
.header-inner {
  justify-content: space-between !important;
  position: relative !important;
}
.header-inner > .logo { margin: 0 !important; }
.header-inner > .header-utils { margin: 0 !important; }
@media (max-width: 1024px) {
  .header-inner > .header-utils { margin-left: auto !important; }
}

/* Equipment 섹션 헤딩 brand-white는 흰색 (밝은 배경 위) */
.section-title .brand-white {
  color: #fff;
  font-weight: 800;
}
.section-title .brand-white::after { display: none; }

/* depart-card 등 카드의 brand 텍스트도 차분하게 */
.depart-title, .why-text h3 {
  color: var(--c-ink);
}

/* Section title 사이즈 LU치과 톤으로 살짝 작게 (덜 강압적) */
.section-title {
  font-weight: 700;
  letter-spacing: -0.03em;
}

/* Department slider 카운터 색상 톤다운 */
.slider-counter .cur { color: var(--c-ink); }

/* Why num도 톤다운 */
.why-num {
  color: var(--c-ink-3);
  font-weight: 700;
  letter-spacing: 0.18em;
}

/* Marquee em (하트) 색상 더 옅게 */
.phrase-track em {
  color: #f5b870 !important;
  opacity: 0.7;
}

/* hero-title은 그대로 (다크 배경 위 흰색) */

/* === Location slider (LU치과 슬라이더 형식) === */
.location { padding: 130px 0; background: #fff; }
.location-head { max-width: 720px; margin-bottom: 60px; }
.location-slider { position: relative; }
.location-viewport {
  overflow: hidden;
  border-radius: var(--r-md);
}
.location-track {
  display: flex;
  gap: 16px;
  transition: transform 0.75s cubic-bezier(0.6, 0.05, 0.01, 0.9);
}
.loc-card {
  flex: 0 0 calc((100% - 48px) / 4);
  position: relative;
  aspect-ratio: 4/5;
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  transition: transform 0.4s, box-shadow 0.4s;
}
.loc-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-lg);
}
.loc-card img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s;
}
.loc-card:hover img { transform: scale(1.05); }
.loc-card span {
  position: absolute;
  left: 18px; bottom: 18px;
  padding: 7px 14px;
  background: rgba(255,255,255,0.96);
  color: var(--c-ink);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -0.005em;
  backdrop-filter: blur(4px);
}

.loc-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px; height: 52px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--c-border);
  color: var(--c-ink);
  font-size: 22px;
  box-shadow: var(--sh-md);
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s;
}
.loc-arrow--prev { left: -26px; }
.loc-arrow--next { right: -26px; }
.loc-arrow:hover { background: var(--c-ink); color: #fff; border-color: var(--c-ink); transform: translateY(-50%) scale(1.05); }

.loc-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 40px;
}
.loc-controls .slider-counter {
  font-size: 14px;
  font-weight: 700;
  color: var(--c-ink);
  letter-spacing: 0.05em;
}
.loc-controls .more-btn { margin-top: 0; }

@media (max-width: 1024px) {
  .loc-card { flex: 0 0 calc((100% - 32px) / 3); }
  .loc-arrow--prev { left: 8px; }
  .loc-arrow--next { right: 8px; }
}
@media (max-width: 640px) {
  .loc-card { flex: 0 0 calc((100% - 16px) / 2); }
}

/* === Team 섹션 (LU치과 톤 — 상단 행: 헤더/소개 · 하단 행: 사진/의사정보) === */
.team {
  background: #fff !important;
  padding: 140px 0 !important;
}
.team-wrap {
  display: flex !important;
  flex-direction: column;
  gap: 70px;
}

/* Top row: 헤더 / 소개 단락 */
.team-top {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 80px;
  align-items: start;
}
.team-head .eyebrow {
  font-size: 14px !important;
  color: var(--c-orange) !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 22px;
}
.team-head .section-title {
  font-size: clamp(34px, 4vw, 50px) !important;
  line-height: 1.28 !important;
  letter-spacing: -0.03em !important;
  font-weight: 700 !important;
}
.team-intro {
  display: block !important;
  margin: 0 !important;
  /* eyebrow(14px line-height ~22px) + margin-bottom 22px = 약 44px → 우측 단락이 좌측 타이틀과 같은 라인에서 시작 */
  padding-top: 44px;
  font-size: 20px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.9 !important;
  letter-spacing: -0.005em;
  text-align: left !important;
  max-width: none !important;
}

/* Bottom row: 사진 / 의사 정보 (중앙 정렬) */
.team-bottom {
  display: grid;
  grid-template-columns: 460px 1fr;
  gap: 90px;
  align-items: center;
}
.team-photo {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  border-radius: 24px;
  overflow: hidden;
  background: #f5efe5 !important;
  background-image: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  flex-shrink: 0;
}
.team-photo::before, .team-photo::after { display: none !important; background: none !important; }
.team-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 20%;
}
.team-info {
  padding-top: 0;
  text-align: left !important;
  max-width: 580px;
}
.team-role {
  color: var(--c-orange) !important;
  font-size: 14px !important;
  letter-spacing: 0.14em !important;
  font-weight: 600 !important;
  margin-bottom: 14px;
}
.team-name {
  color: var(--c-ink) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  font-size: clamp(34px, 3.8vw, 46px) !important;
  margin-bottom: 26px;
  padding-bottom: 22px;
  border-bottom: 1px solid #e8e0d2;
}
.team-name span {
  font-size: 0.55em !important;
  font-weight: 500 !important;
  color: var(--c-ink-3) !important;
  margin-left: 14px;
}
.team-history { margin-bottom: 36px; }
.team-history li {
  color: var(--c-ink-2) !important;
  font-size: 18px !important;
  line-height: 1.95 !important;
  padding-left: 20px;
  position: relative;
}
.team-history li::before {
  content: "";
  position: absolute;
  left: 0; top: 12px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--c-orange);
}

/* 자세히 보기 — Department 와 동일한 톤 */
.team-info .more-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px !important;
  background: var(--c-warm-pale, #faf3ea) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: var(--c-orange-dark) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em;
  box-shadow: none !important;
  transition: background 0.25s, color 0.25s, transform 0.25s !important;
}
.team-info .more-btn:hover {
  background: var(--c-orange) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}
.team-info .more-btn .arrow { font-size: 20px; line-height: 1; }

@media (max-width: 1024px) {
  .team-top { grid-template-columns: 1fr; gap: 30px; }
  .team-bottom { grid-template-columns: 1fr; gap: 40px; }
  .team-photo { max-width: 360px; margin: 0 auto !important; }
}
.team-info { flex: 1; padding-top: 10px; }
.team-history { max-width: 520px; }

/* === 전체 톤다운 디자인 시스템 === */

/* Eyebrow 색상 살짝 톤다운 */
.eyebrow {
  color: var(--c-orange) !important;
}
.eyebrow.light { color: rgba(255,255,255,0.9) !important; }

/* Section-head 일관된 마진 */
.section-head { margin-bottom: 56px; }
.section-head--left { text-align: left; }

/* 진료분야 슬라이더 .depart-card 카드 색상 차분하게 */
.depart-title { color: var(--c-ink) !important; }
.depart-title::after { display: none; }
.depart-desc { color: var(--c-ink-2); }

/* Hero 정렬 */
.hero-content { text-align: center; }
.hero-title { color: #fff; }

/* CTA 버튼 (배경은 위 톤다운된 베이지로 덮음) */
.cta-btn:hover { background: var(--c-orange-dark) !important; }

/* === 텍스트 사이즈 LU치과 수준으로 업스케일 === */

/* Section title — 더 크게, 굵게 */
.section-title {
  font-size: clamp(36px, 4.6vw, 60px) !important;
  font-weight: 700 !important;
  line-height: 1.22 !important;
  letter-spacing: -0.03em !important;
}
.section-desc {
  font-size: 17px !important;
  line-height: 1.85 !important;
}

/* Eyebrow — 살짝 크게 */
.eyebrow {
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
}

/* Intro — 타이틀/본문 LU치과 수준으로 강화 */
.intro,
.intro-text .eyebrow,
.intro-text .section-title,
.intro-text .section-title .brand,
.intro-desc,
.intro-desc.small {
  font-family: 'Pretendard', 'Apple SD Gothic Neo', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-style: normal !important;
}
.intro-text .eyebrow { font-size: 15px !important; font-weight: 600 !important; }
.intro-text .section-title {
  font-size: clamp(40px, 5.2vw, 68px) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.035em !important;
  font-weight: 700 !important;
}
.intro-desc { font-size: 20px !important; line-height: 1.92 !important; color: var(--c-ink-2) !important; }
.intro-desc.small { font-size: 20px !important; line-height: 1.92 !important; color: var(--c-ink-2) !important; }

/* Department */
.depart-title {
  font-size: clamp(26px, 3vw, 38px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
}
.depart-desc {
  font-size: 16px !important;
  line-height: 1.85 !important;
}

/* Team */
.team-role {
  font-size: 14px !important;
  letter-spacing: 0.2em !important;
}
.team-name {
  font-size: clamp(38px, 4.4vw, 56px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
}
.team-name span { font-size: 0.55em !important; }
.team-history li { font-size: 15.5px !important; line-height: 1.9 !important; }
.team-intro { font-size: 16px !important; line-height: 1.9 !important; }

/* Why */
.why-text h3 {
  font-size: clamp(26px, 3vw, 38px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.28 !important;
  margin-bottom: 22px !important;
}
.why-text p {
  font-size: 20px !important;
  line-height: 1.9 !important;
  color: var(--c-ink-2) !important;
  max-width: 480px;
}
.why-num {
  font-size: 15px !important;
  letter-spacing: 0.22em !important;
  font-weight: 700 !important;
  color: var(--c-orange) !important;
  margin-bottom: 18px !important;
}

/* === Why v2 — fade swap + book-shelf thumbs === */
.why { position: relative; overflow: visible !important; }
.why-stage {
  display: block;
  margin-top: 50px;
  --why-h: 420px;
  --why-w: 600px; /* 가로형 이미지 너비 */
}

/* 활성 카드 (가로형 이미지 + 텍스트) — 좌측 정렬, container와 맞춤 */
.why-feature {
  display: grid;
  grid-template-columns: var(--why-w) 1fr;
  gap: 70px;
  align-items: center;
  transition: opacity 0.22s ease;
  max-width: none;
  margin: 0;
}
.why-feature.is-fading { opacity: 0; }
.why-feature-img {
  width: var(--why-w);
  height: var(--why-h);
  aspect-ratio: auto;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
}
.why-feature-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.why-feature-text { padding-right: 8px; }
.why-feature-text .why-num {
  font-size: 15px !important;
  color: var(--c-orange) !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  margin-bottom: 18px;
}
.why-feature-text h3 {
  font-size: clamp(26px, 3vw, 38px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.28 !important;
  color: var(--c-ink) !important;
  margin-bottom: 22px;
}
.why-feature-text p {
  font-size: 20px !important;
  line-height: 1.9 !important;
  color: var(--c-ink-2) !important;
}

/* 본문 아래 좌우 화살표 (counter 제거, 무한 루프) */
.why-feature-text .why-controls {
  display: flex !important;
  gap: 12px !important;
  margin-top: 36px !important;
  padding: 0 !important;
  justify-content: flex-start !important;
}

/* 책 형태 thumb 영역 — 정확히 2개 보임, 메인 이미지와 세로 동일 */
.why-thumbs {
  display: flex;
  gap: 14px;
  overflow: hidden;
  height: var(--why-h);
  align-items: stretch;
}
.why-thumb {
  flex: 0 0 140px; /* 가로 더 길게; 컬럼 320 안에 2.5개 정도 보임 (140*2+14+여백, 마지막은 잘림) */
  height: 100%;
  min-height: 0 !important;
  border: 0;
  padding: 0;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  transition: transform 0.4s ease, opacity 0.4s ease;
  opacity: 0.9;
}
.why-thumb:hover { transform: translateY(-4px); opacity: 1; }
.why-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* 우측 옅은 그라데이션 blob — 위로 더 올리고 세로 길게 (intro+marquee 영역까지 흐름) */
.why-blob {
  position: absolute;
  right: -540px;
  left: auto;
  top: -300px;
  bottom: -200px;
  transform: none;
  width: 1300px;
  height: auto;
  border-radius: 50%;
  background: radial-gradient(ellipse 55% 50% at 50% 50%, rgba(245, 195, 175, 0.5) 0%, rgba(245, 195, 175, 0.18) 42%, transparent 78%);
  filter: blur(80px);
  z-index: 0;
  pointer-events: none;
}
.why .container { position: relative; z-index: 1; }

/* 하단 컨트롤 — 좌측 하단에 화살표 + 카운터 (LU치과 스타일) */
.why-controls {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center;
  gap: 16px !important;
  margin-top: 50px !important;
  padding-left: 0;
}
.why-controls .dept-nav-btn { width: 44px; height: 44px; }
.why-controls .slider-counter {
  margin-left: 14px;
  font-size: 15px;
  color: var(--c-ink-2);
  letter-spacing: 0.06em;
}
.why-controls .slider-counter .cur { color: var(--c-ink); font-weight: 800; }

/* Equipment */
.equipment-head .section-title { font-size: clamp(36px, 4.6vw, 60px) !important; }
.equip-name { font-size: 17.5px !important; font-weight: 800 !important; }
.equip-desc { font-size: 13.5px !important; line-height: 1.6 !important; }

/* === Equipment LU 톤 — 부드러운 그라데이션, watermark, 투명도 === */
.equipment {
  background: linear-gradient(135deg, #fff7e8 0%, #fde3c4 45%, #f9c98a 100%) !important;
  color: var(--c-ink) !important;
  padding: 140px 0 130px !important;
  position: relative;
  overflow: hidden !important;
}
/* 부드러운 ambient blob */
.equipment-bg {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.55), transparent 50%),
    radial-gradient(circle at 82% 78%, rgba(255, 220, 180, 0.45), transparent 55%) !important;
  pointer-events: none;
  z-index: 1;
}
.equipment .container { position: relative; z-index: 2; }

/* 헤더 텍스트 톤 — 따뜻한 진한 톤 */
.equipment-head .eyebrow.light { color: var(--c-orange-dark) !important; opacity: 1 !important; }
.equipment-head .section-title.light,
.equipment-head .section-title.light .brand-white {
  color: var(--c-ink) !important;
  -webkit-text-fill-color: var(--c-ink) !important;
}
.equipment-head .section-desc.light { color: var(--c-ink-2) !important; }
.equipment-head .more-btn--light {
  background: rgba(255, 255, 255, 0.6) !important;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.8) !important;
  color: var(--c-orange-dark) !important;
  font-weight: 700 !important;
}
.equipment-head .more-btn--light:hover {
  background: #fff !important;
  border-color: #fff !important;
}

/* 우하단 watermark — 섹션 가장 아래 가장자리에 닿게 */
.equipment-watermark {
  position: absolute !important;
  right: 4vw !important;
  bottom: -20px !important;
  font-size: clamp(64px, 9vw, 160px) !important;
  font-weight: 800 !important;
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif !important;
  font-style: italic !important;
  color: rgba(217, 114, 8, 0.12) !important;
  letter-spacing: -0.02em !important;
  pointer-events: none;
  z-index: 1;
  line-height: 1;
}

/* 카드 — 솔리드 화이트, 투명도 없음 */
.equip-card {
  background: #ffffff !important;
  backdrop-filter: none !important;
  flex: 0 0 200px !important;
  width: 200px !important;
  min-height: 220px !important;
  margin-right: 28px !important;
  padding: 30px 22px !important;
  box-shadow: 0 12px 28px rgba(217, 114, 8, 0.10), inset 0 0 0 1px rgba(255, 255, 255, 1) !important;
  border-radius: 22px !important;
}
.equip-card img {
  max-height: 130px !important;
  opacity: 1 !important;
  transition: opacity 0.4s ease !important;
}
.equip-card:hover img { opacity: 1 !important; }
.equip-card:hover {
  background: #ffffff !important;
  box-shadow: 0 20px 40px rgba(217, 114, 8, 0.16), inset 0 0 0 1px rgba(255, 255, 255, 1) !important;
}

/* Equipment marquee — 가로 무한 루프 + 개별 카드 부드러운 floating */
.equipment-track {
  overflow: hidden !important;
  margin-left: calc(-1 * ((100vw - 100%) / 2)) !important;
  width: 100vw !important;
  padding: 70px 0 80px !important;
}
.equipment-row {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  gap: 0 !important;
  align-items: center !important;
  animation: equipMarquee 40s linear infinite !important;
  grid-template-columns: none !important;
}
.equipment-track:hover .equipment-row { animation-play-state: paused; }
@keyframes equipMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* 카드 부드러운 floating — 중앙 기준 ±14px sin wave, 카드별 delay 다름 */
.equip-card {
  --floatY: 0px !important;
  animation: equipFloatV2 4.5s ease-in-out infinite !important;
  animation-delay: 0s !important;
  transform: none;
}
@keyframes equipFloatV2 {
  0%, 100% { transform: translateY(-14px); }
  50%      { transform: translateY(14px); }
}
.equip-card:nth-child(1)  { animation-delay: 0s !important; }
.equip-card:nth-child(2)  { animation-delay: -0.6s !important; }
.equip-card:nth-child(3)  { animation-delay: -1.2s !important; }
.equip-card:nth-child(4)  { animation-delay: -1.8s !important; }
.equip-card:nth-child(5)  { animation-delay: -2.4s !important; }
.equip-card:nth-child(6)  { animation-delay: -3.0s !important; }
.equip-card:nth-child(7)  { animation-delay: 0s !important; }
.equip-card:nth-child(8)  { animation-delay: -0.6s !important; }
.equip-card:nth-child(9)  { animation-delay: -1.2s !important; }
.equip-card:nth-child(10) { animation-delay: -1.8s !important; }
.equip-card:nth-child(11) { animation-delay: -2.4s !important; }
.equip-card:nth-child(12) { animation-delay: -3.0s !important; }
.equip-card:hover {
  animation-play-state: paused !important;
  transform: translateY(-8px) !important;
}

/* Location */
.location-head .section-title { font-size: clamp(36px, 4.6vw, 60px) !important; }
.location-head .section-desc { font-size: 20px !important; line-height: 1.9 !important; }

/* Location 카드 — 가로형, 설명 없이, 화살표 양 끝 */
.location { padding: 130px 0 130px !important; position: relative; overflow: hidden; }
.location-watermark { display: none !important; }
.location-head { margin-bottom: 50px !important; }

/* Track이 자식들의 width를 모두 담도록 강제 */
.location-viewport { overflow: hidden !important; }
.location-track {
  width: max-content !important;
  flex-wrap: nowrap !important;
  overflow: visible !important;
  gap: 20px !important;
}
.loc-card {
  flex: 0 0 380px !important; /* 가로형으로 더 넓게 */
  width: 380px !important;
  aspect-ratio: 4 / 3 !important;
}

/* loc-arrow는 더이상 사용 안 함 (헤더 우측 .dept-nav로 이동) */
.loc-arrow { display: none !important; }
.loc-controls { display: none !important; }

/* Location 헤더 — 좌(텍스트) / 우(화살표 nav, viewport 우측 끝까지), 하단 정렬 */
.location-head.section-head--row {
  position: relative;
  align-items: flex-end !important;
}
.location-head .dept-nav {
  position: absolute !important;
  right: calc(-1 * ((100vw - 100%) / 2) + 30px) !important;
  bottom: 4px !important;
  align-self: auto !important;
  margin: 0 !important;
}

/* 모바일: row 유지하되 absolute 해제, 좌(텍스트)/우(화살표) 분리 */
@media (max-width: 768px) {
  .section-head--row {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin-bottom: 32px !important;
    text-align: left !important;
  }
  .section-head--row .section-head__text {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left !important;
  }
  .section-head--row .dept-nav {
    position: static !important;
    right: auto !important;
    bottom: auto !important;
    flex-shrink: 0 !important;
  }
  .section-head--row .dept-nav-btn { width: 40px; height: 40px; }
  .section-head--row .section-title { font-size: clamp(22px, 6vw, 30px) !important; }
  .section-head--row .section-desc { font-size: 14px !important; }
}

/* === Visit v2 — LU 톤 인라인 정보 === */
.visit-section {
  background: #fff !important;
  padding: 130px 0 !important;
}
.visit-section .visit-layout,
.visit-section .visit-map-lg,
.visit-section .visit-side,
.visit-section .visit-addr-card,
.visit-section .hours-table { display: none !important; }

.visit-v2 {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 70px;
  align-items: start;
}
.visit-map-col { position: sticky; top: 110px; }
.visit-text-col { display: flex; flex-direction: column; gap: 50px; }
.visit-v2 .visit-head { margin-bottom: 0; }
.visit-v2 .visit-head .eyebrow {
  font-size: 14px !important;
  color: var(--c-orange) !important;
  margin-bottom: 18px;
  letter-spacing: 0.06em !important;
}
.visit-v2 .visit-head .section-title {
  font-size: clamp(36px, 4.4vw, 54px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.18 !important;
  margin-bottom: 22px;
}
.visit-lead {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.8;
  margin: 0;
}

/* 지도 */
.visit-map-embed {
  width: 100%;
  aspect-ratio: 1 / 1.15;
  border-radius: 22px;
  overflow: hidden;
  background: #f5f5f5;
}
.visit-map-embed iframe {
  width: 100%; height: 100%;
  border: 0;
  display: block;
  filter: grayscale(0.05) saturate(0.95);
}

/* 주소 + 전화 블록 — 인라인 */
.visit-addr-block {
  background: transparent !important;
  border: 0 !important;
  padding: 22px 0;
  border-top: 1px solid #ece6d8;
  border-bottom: 1px solid #ece6d8;
}
.visit-v2,
.visit-v2 > * {
  background: transparent !important;
  box-shadow: none !important;
}
.visit-addr {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.55;
  color: var(--c-ink);
  letter-spacing: -0.02em;
  margin: 0;
}
.visit-addr-sub {
  display: block;
  margin-top: 8px;
  font-size: 16px;
  font-weight: 500;
  color: var(--c-ink-3);
}

.visit-map-links {
  display: flex;
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}
.visit-map-links a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-ink-2);
  text-decoration: none;
  transition: color 0.2s ease;
}
.visit-map-links a:hover { color: var(--c-ink); }
.vmap-dot {
  width: 26px; height: 26px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center; justify-content: center;
  font-size: 12px;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0;
}
.vmap-dot--naver { background: #03c75a; }
.vmap-dot--kakao { background: #ffe812; color: #3c1e1e; }
.vmap-dot--tmap { background: #ff5e3a; }

.visit-phone-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid #ece6d8;
}
.visit-phone-label {
  font-size: 13px;
  color: var(--c-ink-3);
  letter-spacing: 0.04em;
  font-weight: 600;
}
.visit-phone-num {
  font-size: 38px;
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.01em;
  text-decoration: none;
}

/* 우측: 진료 시간 */
.visit-hours { padding-top: 0; }
.visit-hours-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--c-ink);
  margin: 0 0 22px;
  letter-spacing: -0.01em;
}
.visit-hours-list { margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 0; }
.vh-row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 24px;
  padding: 16px 0;
  border-bottom: 1px dashed #ece6d8;
  align-items: center;
}
.vh-row dt {
  font-size: 15px;
  color: var(--c-ink-2);
  font-weight: 600;
  letter-spacing: -0.005em;
}
.vh-row dd {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--c-ink);
  letter-spacing: -0.005em;
  display: flex;
  align-items: center;
  gap: 10px;
}
.vh-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--c-orange);
  color: #fff;
  font-style: normal;
  letter-spacing: 0.02em;
}
.vh-sub-title {
  margin-top: 8px;
  border-bottom: none !important;
  padding-bottom: 6px;
}
.vh-sub-title dt {
  font-size: 17px !important;
  font-weight: 800 !important;
  color: var(--c-ink) !important;
}

.visit-notes {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.visit-notes li {
  font-size: 13px;
  color: var(--c-ink-3);
  padding-left: 12px;
  position: relative;
  line-height: 1.7;
}
.visit-notes li::before {
  content: "*";
  position: absolute;
  left: 0;
  color: var(--c-orange);
}

@media (max-width: 1024px) {
  .visit-v2 { grid-template-columns: 1fr; gap: 40px; }
  .vh-row { grid-template-columns: 100px 1fr; gap: 16px; }
  /* 모바일: 텍스트(헤더 포함) 먼저, 지도는 아래로. 스티키 해제 */
  .visit-v2 .visit-map-col {
    position: static !important;
    top: auto !important;
    order: 2 !important;
  }
  .visit-v2 .visit-text-col { order: 1 !important; gap: 32px !important; }
  .visit-map-embed { aspect-ratio: 4 / 3 !important; }
  .visit-section { padding: 80px 0 !important; }
}
.loc-card {
  border-radius: 16px !important;
  box-shadow: none !important;
}
.loc-card span {
  font-size: 14px !important;
  padding: 9px 16px !important;
  font-weight: 700 !important;
}
.loc-controls {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center;
  margin-top: 40px !important;
}
.loc-controls .more-btn {
  margin-top: 0 !important;
  background: var(--c-warm-pale, #faf3ea) !important;
  border: 0 !important;
  color: var(--c-orange-dark) !important;
  font-weight: 700 !important;
  padding: 14px 28px !important;
}
.loc-controls .more-btn:hover {
  background: var(--c-orange) !important;
  color: #fff !important;
}
.loc-card span {
  font-size: 13px !important;
  padding: 8px 16px !important;
}

/* Hero */
.hero-title {
  font-size: clamp(44px, 6.5vw, 84px) !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
}
.hero-sub {
  font-size: clamp(16px, 1.4vw, 19px) !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
  margin-top: 28px !important;
}
.hero-eyebrow {
  font-size: 13px !important;
  letter-spacing: 0.32em !important;
}

/* Visit / Hours */
.visit-head .section-title { font-size: clamp(34px, 4.2vw, 52px) !important; }
.visit-addr-text { font-size: 19px !important; line-height: 1.5 !important; }
.visit-phone-big { font-size: 42px !important; }
.visit-btn { font-size: 14.5px !important; padding: 15px 0 !important; }
.hours-table h4 { font-size: 14px !important; letter-spacing: 0.12em !important; }
.hours-table th { font-size: 14.5px !important; }
.hours-table td { font-size: 15.5px !important; }

/* CTA */
.cta-eyebrow { font-size: 14px !important; letter-spacing: 0.18em !important; }
.cta-title { font-size: clamp(36px, 4.8vw, 60px) !important; }
.cta-btn { font-size: 17px !important; padding: 22px 50px !important; }

/* Navigation - 로고 좌측 / GNB+예약 우측 */
.header { height: 92px !important; }
body.subpage { padding-top: 92px !important; }
.header-inner {
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0 44px !important;
  position: relative;
}
/* 데스크탑: GNB는 absolute라 flex 흐름에서 빠지므로,
   header-utils가 자연스럽게 우측 끝으로 감 */
.header-inner > .header-utils { margin-left: auto !important; }
/* 데스크탑: GNB를 헤더 정중앙에 절대 배치 */
@media (min-width: 1025px) {
  .gnb {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
  }
}
.gnb-list { justify-content: center !important; gap: 0 !important; }
.gnb-link {
  font-size: 17px !important;
  font-weight: 600 !important;
  padding: 34px 26px !important;
  letter-spacing: -0.02em !important;
}

/* === 메가 드롭다운 (병원소개/내과/신장) === */
.gnb-item { position: relative; }
.mega {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 280px;
  padding: 18px;
  background: #fff;
  border: 1px solid #efe6d2;
  border-radius: 18px;
  box-shadow: 0 18px 48px rgba(60, 50, 30, 0.10);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s, transform 0.3s, visibility 0.25s;
  z-index: 60;
}
.gnb-item:hover .mega,
.gnb-item:focus-within .mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.mega ul {
  display: grid;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.mega li a {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 16px;
  padding: 14px 18px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 15.5px;
  letter-spacing: -0.015em;
  color: var(--c-ink);
  transition: background 0.2s, color 0.2s;
}
.mega li a:hover {
  background: #faf2e3;
  color: var(--c-orange-dark);
}
.mega li a span { font-weight: 700; }
.mega li a em {
  font-style: normal;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--c-ink-3);
  letter-spacing: -0.005em;
  white-space: nowrap;
}
.mega li a:hover em { color: var(--c-orange); }
/* 기존 sub-menu는 무효화 */
.sub-menu { display: none !important; }

/* 우측 CTA 영역 */
.header-utils {
  display: flex !important;
  align-items: center;
  gap: 14px;
  margin-left: auto;
  z-index: 2;
}
.hd-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  letter-spacing: -0.01em;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.hd-cta--book {
  padding: 12px 24px;
  font-size: 15px;
  color: #fff;
  background: var(--c-ink);
  border-radius: var(--r-pill);
  letter-spacing: -0.005em;
}
.hd-cta--book:hover {
  background: var(--c-orange-dark);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(217, 114, 8, 0.32);
}
.hd-cta--book svg { color: #fff; }

@media (max-width: 1024px) {
  /* 기존 데스크탑 GNB는 모바일에서 완전 숨김 (새 #mnav 사용) */
  .gnb { display: none !important; }
  .mobile-menu-btn { display: none !important; }
  .gnb-list {
    flex-direction: column !important;
    gap: 0 !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
  }
  .gnb-item { border-bottom: 1px solid #f0e9dd; width: 100%; }
  .gnb-link { padding: 20px 8px !important; font-size: 18px !important; display: block; }
  /* 메가메뉴는 아코디언처럼 펼침 */
  .mega {
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 0 12px 18px !important;
    min-width: 0 !important;
    background: transparent !important;
  }
  .mega li a { padding: 12px 8px !important; font-size: 14.5px !important; }

  .hd-cta { display: none !important; }
  .header-utils .mobile-menu-btn { display: inline-flex !important; }
  body.menu-open { overflow: hidden; }
}
@media (max-width: 768px) {
  .header { height: 64px !important; }
  body.subpage { padding-top: 64px !important; }
  .gnb { top: 64px !important; }
  .header-inner { padding: 0 20px !important; }
  .logo { height: 36px !important; }
}
@media (min-width: 1025px) {
  .header-utils .mobile-menu-btn { display: none; }
}

/* More-btn / slider counter */
.more-btn { font-size: 14px !important; padding: 14px 30px !important; }
.slider-counter { font-size: 15px !important; }
.slider-counter .cur { font-weight: 800 !important; }

/* 헤더 - LU치과처럼 더 차분하게 + 항상 메뉴 위에 표시 */
.header { background: rgba(255, 255, 255, 0.96) !important; z-index: 250 !important; }
.header.scrolled { background: #fff !important; }
.gnb-link { color: var(--c-ink) !important; font-weight: 500 !important; }
.gnb-link:hover { color: var(--c-orange) !important; }

/* Login button (전화번호 표시) - 검정 톤 */
.login-btn { background: var(--c-ink) !important; }
.login-btn:hover { background: var(--c-orange-dark) !important; }

/* 헤더 hover 시 나타나던 옛 mega menu 흰 패널 제거 */
.header::after { display: none !important; }

/* === 홈 인터랙션 일관성 정리 === */

/* 카드/이미지 hover 부드럽게 */
.loc-card { transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important; }
.loc-card:hover { transform: translateY(-6px) !important; }
.loc-card img { transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important; }

.depart-img img { transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1) !important; }
.depart-card:hover .depart-img img { transform: scale(1.05) !important; }

.team-photo img { transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1) !important; }
.team-photo:hover img { transform: scale(1.04) !important; }

.why-feature-img img { transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1) !important; }
.why-feature:hover .why-feature-img img { transform: scale(1.04) !important; }

/* 버튼 호버 일관 */
.more-btn, .dept-nav-btn, .visit-btn {
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
}

/* reduce-motion 사용자 대응 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ===========================================
   서브페이지 — Condition 마스터 (탭 + 패널)
   =========================================== */

/* 풀폭 히어로 — LU치과 톤 (이미지 위주, 그라데이션 최소) */
.cond-hero, .page-hero {
  position: relative;
  min-height: 600px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #1a120a;
}
.cond-hero__bg, .page-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.72;
}
.cond-hero::after, .page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55) 100%);
  pointer-events: none;
}
.cond-hero .container, .page-hero .container {
  position: relative;
  z-index: 2;
  color: #fff;
  padding: 0 44px 90px;
  text-align: left;
  width: 100%;
}
.cond-hero .eyebrow, .page-hero .eyebrow {
  color: #fff !important;
  opacity: 0.85;
  margin-bottom: 22px !important;
  font-size: 14px !important;
  letter-spacing: 0.18em !important;
}
.cond-hero h1, .page-hero h1 {
  font-size: clamp(38px, 5.4vw, 68px) !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.035em !important;
  color: #fff !important;
  text-shadow: 0 2px 24px rgba(0,0,0,0.30);
  margin: 0;
}
.cond-hero-sub, .page-hero-sub {
  margin-top: 28px;
  font-size: clamp(16px, 1.4vw, 20px);
  line-height: 1.7;
  color: rgba(255,255,255,0.90);
  max-width: 700px;
  letter-spacing: -0.01em;
}

/* sticky 카테고리 탭 */
.cond-tabs {
  position: sticky;
  top: 92px;
  z-index: 40;
  background: #fff;
  border-bottom: 1px solid var(--c-border);
  box-shadow: 0 1px 0 rgba(40,28,12,0.04);
}
.cond-tabs .container { padding: 0 44px; }
.cond-tabs ul {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cond-tabs ul::-webkit-scrollbar { display: none; }
.cond-tabs li { flex: 0 0 auto; }
.cond-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 22px 26px;
  font-size: 16px;
  font-weight: 600;
  color: var(--c-ink-3);
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  letter-spacing: -0.015em;
  transition: color 0.25s, border-color 0.25s;
  cursor: pointer;
}
.cond-tab svg { width: 18px; height: 18px; opacity: 0.7; transition: opacity 0.25s; }
.cond-tab:hover { color: var(--c-ink); }
.cond-tab:hover svg { opacity: 1; }
.cond-tab.is-active {
  color: var(--c-orange-dark);
  border-bottom-color: var(--c-orange);
}
.cond-tab.is-active svg { opacity: 1; color: var(--c-orange); }

/* 패널 */
.cond-panel { display: none; padding: 110px 0 130px; }
.cond-panel.is-active { display: block; animation: condFade 0.45s ease both; }
@keyframes condFade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.cond-panel-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 70px;
}
.cond-panel-head .eyebrow {
  display: inline-block !important;
  margin-bottom: 16px !important;
}
.cond-panel-head h2 {
  font-size: clamp(38px, 4.8vw, 60px);
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -0.035em;
  color: var(--c-ink);
}
.cond-panel-head p {
  margin-top: 26px;
  font-size: 18px;
  line-height: 1.85;
  color: var(--c-ink-2);
  letter-spacing: -0.005em;
}

/* Symptom grid — 4 cards w/ SVG icons */
.cond-panel .symptom-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 90px;
}
.cond-panel .symptom-card {
  padding: 36px 26px;
  border-radius: var(--r-lg);
  background: #fff;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
  transition: transform 0.35s, box-shadow 0.35s, border-color 0.35s;
}
.cond-panel .symptom-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
  border-color: var(--c-orange-light);
}
.cond-panel .symptom-icon {
  width: 60px; height: 60px;
  display: inline-flex;
  align-items: center; justify-content: center;
  border-radius: var(--r-md);
  background: linear-gradient(135deg, #fff7e9 0%, #ffe6c2 100%);
  color: var(--c-orange-dark);
  margin-bottom: 20px;
}
.cond-panel .symptom-icon svg { width: 28px; height: 28px; }
.cond-panel .symptom-card h3 {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
  color: var(--c-ink);
}
.cond-panel .symptom-card p {
  font-size: 14px;
  color: var(--c-ink-2);
  line-height: 1.75;
}

/* Step list — 진료 프로세스 */
.cond-panel .step-list {
  display: grid;
  gap: 16px;
  margin-bottom: 90px;
  list-style: none;
  padding: 0;
  counter-reset: step;
}
.cond-panel .step-item {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 28px;
  align-items: start;
  padding: 32px 36px;
  border-radius: var(--r-lg);
  background: #fff;
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
  transition: transform 0.3s, box-shadow 0.3s;
}
.cond-panel .step-item:hover {
  transform: translateX(6px);
  box-shadow: var(--sh-md);
}
.cond-panel .step-num {
  font-size: 38px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-orange);
  line-height: 1;
}
.cond-panel .step-body h3 {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.025em;
  margin-bottom: 10px;
  color: var(--c-ink);
}
.cond-panel .step-body p {
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.85;
}

/* Callout CTA */
.cond-panel .callout-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 50px 56px;
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, #fdfaf3 0%, #faf2e3 100%);
  border: 1px solid #ede5d2;
}
.cond-panel .callout-card h3 {
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--c-ink);
  margin: 0;
}
.cond-panel .callout-card p {
  font-size: 15px;
  color: var(--c-ink-2);
  margin-top: 10px;
  line-height: 1.7;
}
.cond-panel .callout-card .btn-pri {
  flex-shrink: 0;
  padding: 18px 36px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: var(--c-ink);
  border-radius: var(--r-pill);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  letter-spacing: -0.005em;
  transition: all 0.25s;
}
.cond-panel .callout-card .btn-pri:hover {
  background: var(--c-orange-dark);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(217, 114, 8, 0.28);
}

/* Feature block — 이미지 + 텍스트 2-col, 짝수 panel은 reverse */
.cond-feature {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 80px;
  align-items: center;
  margin-bottom: 110px;
}
.cond-feature--reverse { grid-template-columns: 1fr 1.15fr; }
.cond-feature--reverse .cond-feature__img { order: 2; }
.cond-feature__img {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 5/4;
  background: #f5efe2;
}
.cond-feature__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s ease;
}
.cond-feature:hover .cond-feature__img img { transform: scale(1.03); }
.cond-feature__img::after { display: none; }
.cond-feature__body .eyebrow {
  display: inline-block !important;
  margin-bottom: 16px !important;
}
.cond-feature__body h3 {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.28;
  margin-bottom: 18px;
  color: var(--c-ink);
}
.cond-feature__body p {
  font-size: 16px;
  line-height: 1.9;
  color: var(--c-ink-2);
  letter-spacing: -0.005em;
  margin-bottom: 14px;
}
.cond-feature__list {
  display: grid;
  gap: 10px;
  margin-top: 22px;
  list-style: none;
  padding: 0;
}
.cond-feature__list li {
  position: relative;
  padding-left: 28px;
  font-size: 14.5px;
  color: var(--c-ink-2);
  line-height: 1.8;
}
.cond-feature__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 16px; height: 2px;
  background: var(--c-orange);
}

/* Gallery — 3-col thumbnail row, bigger and cleaner */
.cond-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 110px;
}
.cond-gallery__item {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 4/5;
  background: #f5efe2;
  transition: transform 0.4s;
}
.cond-gallery__item:hover { transform: translateY(-4px); }
.cond-gallery__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s ease;
}
.cond-gallery__item:hover img { transform: scale(1.04); }
.cond-gallery__item::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(20,12,4,0.45) 100%);
}
.cond-gallery__item span {
  position: absolute;
  left: 20px; bottom: 18px;
  z-index: 2;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.005em;
}

/* Step item — optional icon slot */
.cond-panel .step-list { grid-template-columns: repeat(2, 1fr); display: grid; }
.cond-panel .step-item {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 22px;
}

/* ===========================================
   병원소개(Story) — LU치과 이야기 패턴
   =========================================== */
.story-intro {
  padding: 130px 0 110px;
  text-align: center;
  background: #fff;
}
.story-intro p.story-tagline {
  font-size: clamp(18px, 1.8vw, 22px);
  color: var(--c-ink-2);
  margin-bottom: 36px;
  letter-spacing: -0.015em;
  line-height: 1.65;
}
.story-slogan {
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(50px, 7vw, 92px);
  line-height: 1.05;
  letter-spacing: -0.01em;
}
.story-slogan p {
  background: linear-gradient(90deg, #ffd082 0%, #f59222 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  margin: 0;
}
.story-slogan p + p {
  background: linear-gradient(90deg, #f59222 0%, #d97208 60%, #b85a00 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-top: -0.05em;
}

/* 4 value cards */
.story-values {
  padding: 110px 0 130px;
  background: linear-gradient(180deg, #fff 0%, #faf6ec 100%);
}
.story-value-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.story-value {
  position: relative;
  padding: 44px 30px 38px;
  background: #fff;
  border-radius: var(--r-xl);
  border: 1px solid #ede5d2;
  box-shadow: 0 12px 32px rgba(60, 50, 30, 0.06);
  transition: transform 0.4s, box-shadow 0.4s;
  text-align: center;
}
.story-value:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(60, 50, 30, 0.10);
}
.story-value__icon {
  width: 70px; height: 70px;
  margin: 0 auto 22px;
  display: inline-flex;
  align-items: center; justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #fff7e9 0%, #ffe6c2 100%);
  color: var(--c-orange-dark);
}
.story-value__icon svg { width: 32px; height: 32px; }

/* === 서브페이지 V2 (lu-tour / lu-visit) — LU 톤 === */

/* tour-intro */
.tour-intro-v2 { padding: 110px 0 60px; }
.tour-intro__title {
  font-size: clamp(34px, 4.4vw, 54px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.22 !important;
  color: var(--c-ink) !important;
  margin-bottom: 28px;
}
.tour-intro__title .brand { color: var(--c-orange) !important; }
.tour-intro__lead {
  font-size: 22px;
  color: var(--c-ink);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 18px;
}
.tour-intro__desc {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.9;
  max-width: 880px;
  margin-bottom: 60px;
}
.tour-intro__big-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 24px;
  overflow: hidden;
  background: #f5efe5;
}
.tour-intro__big-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* tour-points — 3 포인트 카드 */
.tour-points { padding: 50px 0 110px; background: #fff; }
.tour-points-head { margin-bottom: 50px; max-width: 720px; }
.tour-points-head .eyebrow {
  font-size: 14px;
  color: var(--c-orange);
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
}
.tour-points-head h2 {
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0 0 18px;
  line-height: 1.25;
}
.tour-points-head .lead {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0;
}
.tour-points-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.tour-point {
  padding: 44px 36px;
  background: var(--c-warm-pale, #faf3ea);
  border-radius: 22px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.tour-point:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(60, 50, 30, 0.08); }
.tour-point-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 32px;
  font-weight: 600;
  color: var(--c-orange);
  margin-bottom: 18px;
}
.tour-point h3 {
  font-size: 22px;
  font-weight: 800;
  color: var(--c-ink);
  margin: 0 0 14px;
  letter-spacing: -0.02em;
}
.tour-point p {
  font-size: 15.5px;
  color: var(--c-ink-2);
  line-height: 1.8;
  margin: 0;
}

/* tour-spaces — 공간별 그리드 카드 */
.tour-spaces { padding: 110px 0 140px; background: linear-gradient(180deg, #fff 0%, #faf6ec 100%); }
.tour-spaces-head { margin-bottom: 50px; }
.tour-spaces-head .eyebrow {
  font-size: 14px;
  color: var(--c-orange);
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
}
.tour-spaces-head h2 {
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0;
  line-height: 1.25;
}
.tour-spaces-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}
.tour-space {
  background: #fff;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #ece6d8;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.tour-space:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(60, 50, 30, 0.08);
}
.tour-space-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.tour-space-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}
.tour-space:hover .tour-space-img img { transform: scale(1.05); }
.tour-space-body { padding: 28px 32px 32px; }
.tour-space-num {
  display: inline-block;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 18px;
  color: var(--c-orange);
  font-weight: 600;
  margin-bottom: 8px;
}
.tour-space h3 {
  font-size: 22px;
  font-weight: 800;
  color: var(--c-ink);
  margin: 0 0 10px;
  letter-spacing: -0.02em;
}
.tour-space p {
  font-size: 15.5px;
  color: var(--c-ink-2);
  line-height: 1.75;
  margin: 0;
}

@media (max-width: 1024px) {
  .tour-points-grid { grid-template-columns: 1fr; }
  .tour-spaces-grid { grid-template-columns: 1fr; }
}

/* === SPA(인공신장실) 페이지 === */

/* Our Promise — sticky scroll (섹션이 viewport에 머물며 스크롤로 카드 swap) */
.spa-promise {
  position: relative;
  height: 400vh; /* 4 카드 × 100vh — 스크롤 거리 */
  background: linear-gradient(180deg, #fff 0%, #faf6ec 100%);
}
.spa-promise__sticky {
  position: sticky;
  top: 84px; /* 헤더 높이 */
  height: calc(100vh - 84px);
  display: flex;
  align-items: center;
  overflow: hidden;
}
.spa-promise__sticky .container {
  width: 100%;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 24px;
  height: 100%;
  padding-top: 48px;
  padding-bottom: 48px;
}
.spa-promise__head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 30px;
}
.spa-promise__head .eyebrow {
  grid-column: 1 / -1;
  font-size: 14px;
  color: var(--c-orange);
  font-weight: 700;
  letter-spacing: 0.06em;
  margin: 0 0 12px;
}
.spa-promise__head h2 {
  font-size: clamp(32px, 3.8vw, 46px);
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--c-ink);
  margin: 0;
  line-height: 1.22;
}
.spa-promise__head .lead {
  font-size: 16px;
  color: var(--c-ink-2);
  margin: 0;
  text-align: right;
  max-width: 360px;
}
.spa-promise__counter {
  font-size: 14px;
  color: var(--c-ink-3);
  letter-spacing: 0.1em;
  font-weight: 600;
}
.spa-promise__counter .cur {
  color: var(--c-orange);
  font-weight: 800;
  font-size: 18px;
}

/* 카드 stage */
.spa-promise__stage {
  position: relative;
  min-height: 0;
}
.spa-promise-card {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 70px;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.55s ease, transform 0.55s ease;
  transform: translateY(20px);
}
.spa-promise-card.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.spa-promise-card__img {
  width: 100%; height: 100%;
  max-height: 100%;
  border-radius: 24px;
  overflow: hidden;
  background: #f5efe5;
}
.spa-promise-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.spa-promise-card__body h3 {
  font-size: clamp(30px, 3.6vw, 48px);
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--c-ink);
  margin: 0 0 26px;
  line-height: 1.22;
}
.spa-promise-card__body p {
  font-size: 18px;
  color: var(--c-ink-2);
  line-height: 1.9;
  margin: 0;
  letter-spacing: -0.005em;
}

/* dots */
.spa-promise__dots {
  display: flex;
  gap: 12px;
  justify-content: center;
}
.spa-promise-dot {
  width: 36px; height: 4px;
  border: 0;
  border-radius: 999px;
  background: #e8e0d2;
  cursor: pointer;
  transition: background 0.3s ease, width 0.3s ease;
}
.spa-promise-dot.is-active { background: var(--c-orange); width: 56px; }

@media (max-width: 1024px) {
  .spa-promise-card { grid-template-columns: 1fr; gap: 28px; }
  .spa-promise__head .lead { text-align: left; }
  .spa-promise__head { grid-template-columns: 1fr; }
}

/* Our Promise — (구) 좌 이미지/우 설명 4단 alternate (지원만) */
.spa-features { padding: 110px 0 130px; background: #fff; }
.spa-features__head { text-align: center; max-width: 760px; margin: 0 auto 70px; }
.spa-features__head .eyebrow {
  font-size: 14px;
  color: var(--c-orange);
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}
.spa-features__head h2 {
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--c-ink);
  margin: 0 0 18px;
  line-height: 1.25;
}
.spa-features__head .lead {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0;
}
.spa-features__list { display: flex; flex-direction: column; gap: 90px; }

.spa-feature {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: center;
}
.spa-feature--reverse .spa-feature__img { order: 2; }
.spa-feature__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 22px;
  overflow: hidden;
  background: #f5efe5;
}
.spa-feature__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.spa-feature__body h3 {
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0 0 22px;
  line-height: 1.28;
}
.spa-feature__body p {
  font-size: 18px;
  color: var(--c-ink-2);
  line-height: 1.9;
  margin: 0;
  letter-spacing: -0.005em;
}

@media (max-width: 1024px) {
  .spa-feature { grid-template-columns: 1fr !important; gap: 32px !important; }
  .spa-feature--reverse .spa-feature__img { order: 0; }
}

/* 운영 시간 — 한 줄 요약 */
.spa-hours {
  padding: 110px 0;
  background: linear-gradient(180deg, #fff 0%, #fff5e3 100%);
  text-align: center;
}
.spa-hours .eyebrow {
  font-size: 14px;
  color: var(--c-orange);
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0 0 18px;
}
.spa-hours h2 {
  font-size: clamp(36px, 4.8vw, 60px);
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--c-ink);
  margin: 0 0 16px;
  line-height: 1.2;
}
.spa-hours h2 .brand { color: var(--c-orange); }
.spa-hours__sub {
  font-size: 17px;
  color: var(--c-ink-2);
  margin: 0 0 36px;
  line-height: 1.7;
}
.spa-hours__cta {
  display: inline-block;
  padding: 18px 44px;
  background: var(--c-ink);
  color: #fff;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.01em;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.25s ease, transform 0.25s ease;
}
.spa-hours__cta:hover {
  background: var(--c-orange-dark);
  transform: translateY(-2px);
}

/* 시간표 섹션 */
.spa-schedule {
  padding: 130px 0;
  background: linear-gradient(180deg, #fff 0%, #faf6ec 100%);
}
.spa-schedule__head { text-align: center; margin: 0 0 60px; }
.spa-schedule__head .eyebrow {
  font-size: 14px;
  color: var(--c-orange);
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}
.spa-schedule__head h2 {
  font-size: clamp(36px, 4.6vw, 56px);
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--c-ink);
  margin: 0 0 22px;
  line-height: 1.2;
}
.spa-schedule__head .lead {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0;
  max-width: 760px;
  margin: 0 auto;
}
.spa-schedule__head .lead strong { color: var(--c-orange-dark); }
.spa-schedule__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 50px;
  align-items: start;
}

/* 시간표 테이블 */
.spa-schedule-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(60, 50, 30, 0.06);
}
.spa-schedule-table thead th {
  padding: 22px 14px;
  background: var(--c-orange);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  text-align: center;
}
.spa-schedule-table tbody th {
  padding: 22px 18px;
  text-align: center;
  background: #fff4e0;
  color: var(--c-ink);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
  border-bottom: 1px solid #f0e8d8;
  width: 130px;
}
.spa-schedule-table tbody td {
  padding: 22px 14px;
  text-align: center;
  font-size: 16px;
  color: var(--c-ink-2);
  font-weight: 600;
  border-bottom: 1px solid #f0e8d8;
  letter-spacing: -0.01em;
}
.spa-schedule-table tbody tr:last-child th,
.spa-schedule-table tbody tr:last-child td { border-bottom: 0; }
.spa-schedule-table tbody tr.off th,
.spa-schedule-table tbody tr.off td {
  background: #f8f5ee;
  color: var(--c-ink-3);
}
.spa-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 4px 10px;
  background: var(--c-ink);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  border-radius: 999px;
  font-style: normal;
  letter-spacing: 0.04em;
}

/* 우측 안내 */
.spa-notes {
  background: #fff;
  border-radius: 18px;
  padding: 36px;
  box-shadow: 0 10px 28px rgba(60, 50, 30, 0.06);
}
.spa-notes h4 {
  font-size: 18px;
  font-weight: 800;
  color: var(--c-ink);
  margin: 0 0 20px;
  letter-spacing: -0.02em;
}
.spa-notes ul {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.spa-notes li {
  position: relative;
  padding-left: 18px;
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.7;
}
.spa-notes li::before {
  content: "";
  position: absolute;
  left: 0; top: 10px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--c-orange);
}
.spa-call {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 22px 26px;
  background: var(--c-ink);
  color: #fff;
  border-radius: 14px;
  text-decoration: none;
  transition: background 0.25s ease;
}
.spa-call:hover { background: var(--c-orange-dark); }
.spa-call__label {
  font-size: 13px;
  opacity: 0.7;
  letter-spacing: 0.05em;
}
.spa-call__num {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.01em;
}

@media (max-width: 1024px) {
  .spa-schedule__grid { grid-template-columns: 1fr; gap: 30px; }
  .spa-schedule-table tbody th { width: auto; font-size: 14px; }
  .spa-schedule-table tbody td { font-size: 14px; }
}

/* tour-thumbs — 슬라이더 아래 미리보기 picker */
.tour-thumbs {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  gap: 10px;
  margin-top: 24px;
}
.tour-thumb {
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  position: relative;
  opacity: 0.55;
  transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.tour-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tour-thumb:hover { opacity: 0.85; transform: translateY(-2px); }
.tour-thumb.is-active {
  opacity: 1;
  box-shadow: 0 0 0 3px var(--c-orange);
}
@media (max-width: 1024px) {
  .tour-thumbs { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 640px) {
  .tour-thumbs { grid-template-columns: repeat(4, 1fr); }
}

/* tour-facility — 큰 이미지 1장씩 슬라이드 */
.tour-facility { padding: 100px 0 130px; background: #fff; }
.tour-facility-head { align-items: flex-end !important; margin-bottom: 50px; }
.tour-facility .location-viewport { overflow: hidden !important; }
.tour-facility .location-track { gap: 24px !important; width: max-content !important; }
.tour-facility .loc-card {
  flex: 0 0 var(--tour-card-w) !important;
  width: var(--tour-card-w) !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 22px;
  overflow: hidden;
}
.tour-facility { --tour-card-w: 1232px; }
.tour-facility .loc-card img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1280px) {
  .tour-facility { --tour-card-w: calc(100vw - 160px); }
}
@media (max-width: 640px) {
  .tour-facility { --tour-card-w: calc(100vw - 40px); }
}

/* visit-intro */
.visit-intro-v2 { padding: 110px 0 60px; }
.vi-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}
.visit-intro-v2 h2 {
  font-size: clamp(34px, 4.4vw, 54px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.22 !important;
  color: var(--c-ink) !important;
  margin-bottom: 24px;
}
.visit-intro-v2 p {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin-bottom: 36px;
}
.vi-photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 22px;
  overflow: hidden;
  background: #f5efe5;
}
.vi-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 빠른 정보 카드 (전화/주소/시간) */
.vi-quick {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 8px;
}
.vi-quick-card {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 14px;
  background: var(--c-warm-pale, #faf3ea);
  text-decoration: none;
  color: inherit;
  transition: background 0.25s ease, transform 0.25s ease;
}
.vi-quick-card:hover { background: #fff4e0; transform: translateY(-2px); }
.vi-quick-card--phone { background: #fff4e0; }
.vi-quick-ico {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: #fff;
  color: var(--c-orange);
  display: inline-flex;
  align-items: center; justify-content: center;
  flex-shrink: 0;
}
.vi-quick-card > div { display: flex; flex-direction: column; gap: 2px; }
.vi-quick-label {
  font-size: 13px;
  color: var(--c-ink-3);
  font-weight: 600;
  letter-spacing: -0.005em;
}
.vi-quick-card strong {
  font-size: 18px;
  color: var(--c-ink);
  font-weight: 800;
  letter-spacing: -0.01em;
}
.vi-quick-card--phone strong { color: var(--c-orange-dark); font-size: 22px; }

/* visit-hours v2 (LU 카드 그리드) */
.visit-hours-v2 { padding: 50px 0 80px; }
.vh-section-title {
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0 0 30px;
}
.vh-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
.vh-card {
  background: var(--c-warm-pale, #faf3ea);
  border-radius: 18px;
  padding: 36px 28px;
  text-align: center;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.vh-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(60, 50, 30, 0.08);
}
.vh-day {
  font-size: 15px;
  color: var(--c-ink-2);
  font-weight: 600;
  letter-spacing: -0.005em;
  margin: 0;
}
.vh-time {
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.02em;
  margin: 0;
}
.vh-tags { display: flex; gap: 6px; }
.vh-tag {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #fff;
  color: var(--c-orange-dark);
  font-weight: 700;
  letter-spacing: -0.005em;
}
.vh-tag--mute { color: var(--c-ink-3); }
.vh-card--accent { background: #fff4e0; }
.vh-phone {
  font-size: 26px;
  font-weight: 800;
  color: var(--c-orange-dark);
  letter-spacing: -0.01em;
  text-decoration: none;
}
.vh-shortcut {
  font-size: 13px;
  color: var(--c-ink-3);
  background: #fff;
  padding: 8px 16px;
  border-radius: 999px;
}
.vh-notes {
  margin-top: 22px;
  font-size: 13.5px;
  color: var(--c-ink-3);
  line-height: 1.8;
}

/* 풀폭 지도 */
.visit-map-section { padding: 80px 0; background: #fff; }
.vm-title {
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0 0 14px;
}
.vm-addr {
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.7;
  margin: 0 0 30px;
}
.vm-addr span { color: var(--c-ink-3); }
.vm-embed {
  width: 100%;
  aspect-ratio: 21 / 9;
  border-radius: 18px;
  overflow: hidden;
  background: #f5f5f5;
  border: 1px solid #ece6d8;
}
.vm-embed iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(0.05) saturate(0.95); }
@media (max-width: 768px) {
  .vm-embed { aspect-ratio: 1 / 1 !important; border-radius: 14px !important; }
  .visit-map-section { padding: 60px 0 !important; }
}

/* 교통안내 */
.visit-transport { padding: 80px 0 130px; background: #fff; }
.vt-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 80px;
}
.vt-title {
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 800;
  color: var(--c-ink);
  margin: 0;
  letter-spacing: -0.03em;
}
.vt-rows { display: flex; flex-direction: column; gap: 0; }
.vt-row {
  padding: 32px 0;
  border-top: 1px solid #ece6d8;
}
.vt-row:first-child { border-top: 0; padding-top: 4px; }
.vt-row h3 {
  font-size: 22px;
  font-weight: 800;
  color: var(--c-ink);
  margin: 0 0 18px;
  letter-spacing: -0.02em;
}
.vt-substop {
  font-size: 17px;
  color: var(--c-ink);
  font-weight: 700;
  margin: 0 0 14px;
}
.vt-line {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 18px;
  color: var(--c-ink-2);
  margin: 12px 0;
  line-height: 1.6;
}
.vt-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 999px;
  color: #fff;
  letter-spacing: -0.005em;
  flex-shrink: 0;
}
.vt-badge--park { background: #2b2b2b; }
.vt-badge--subway { background: #15ad5e; }
.vt-badge--bus1 { background: #4a8ad6; }
.vt-badge--bus2 { background: #38a55a; }
.vt-badge--bus3 { background: #f08a3e; }

/* 교통안내 사이드 (좌측: 타이틀 + 이미지) */
.vt-side { display: flex; flex-direction: column; gap: 18px; }
.vt-side-desc {
  font-size: 15px;
  color: var(--c-ink-3);
  line-height: 1.7;
  margin: 0 0 12px;
}
.vt-side-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 18px;
  overflow: hidden;
  background: #f5efe5;
}
.vt-side-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 예약 안내 박스 */
.visit-booking { padding: 60px 0 130px; background: #fff; }
.vb-box {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 50px;
  align-items: center;
  padding: 50px 60px;
  border-radius: 24px;
  background: linear-gradient(135deg, #fff7e8 0%, #fde3c4 100%);
}
.vb-eyebrow {
  font-size: 13px;
  color: var(--c-orange-dark);
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0 0 12px;
}
.vb-left h3 {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0 0 14px;
  line-height: 1.25;
}
.vb-left p {
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.8;
  margin: 0;
}
.vb-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 26px 44px;
  background: var(--c-ink);
  color: #fff;
  border-radius: 18px;
  text-decoration: none;
  transition: background 0.25s ease, transform 0.25s ease;
}
.vb-cta:hover { background: var(--c-orange-dark); transform: translateY(-2px); }
.vb-cta-num {
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.vb-cta-sub {
  font-size: 13px;
  opacity: 0.75;
  letter-spacing: 0.04em;
}

@media (max-width: 1024px) {
  .vh-cards { grid-template-columns: repeat(2, 1fr); }
  .vt-grid { grid-template-columns: 1fr; gap: 24px; }
  .vi-grid { grid-template-columns: 1fr; gap: 40px; }
  .vb-box { grid-template-columns: 1fr; padding: 36px 28px; gap: 24px; }
}
@media (max-width: 640px) {
  .vh-cards { grid-template-columns: 1fr; }
}

/* === Clinic 페이지 V3 — LU 패턴 (정의/원인/STEP/관리) === */

/* 패널 골격 — 모두 흰 배경, 패널 사이 구분은 큰 padding으로 */
.cond-panel { padding: 130px 0; background: #fff !important; }
.cond-panel + .cond-panel { border-top: 1px solid #ece6d8; }

/* LU 스타일 큰 타이틀 블록 (페이지 본문 시작) */
.cond-title-block {
  text-align: center;
  margin: 0 0 70px;
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
}
.cond-title {
  font-size: clamp(40px, 5.4vw, 68px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.18 !important;
  color: var(--c-ink) !important;
  margin: 0 0 26px !important;
}
.cond-lead {
  font-size: 18px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0;
  letter-spacing: -0.01em;
}

/* 큰 메인 이미지 */
.cond-hero-img {
  width: 100%;
  aspect-ratio: 16 / 7;
  border-radius: 28px;
  overflow: hidden;
  margin: 0 0 110px;
  background: #f5efe5;
}
.cond-hero-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* (2) 고혈압이란? — 가운데 정렬 + 4 단계 카드 */
.hp-define { text-align: center; margin: 0 0 110px; }
.hp-define h3 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0 0 30px;
}
.hp-define__lead {
  max-width: 880px;
  margin: 0 auto 60px;
}
.hp-define__lead p {
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0 0 18px;
  letter-spacing: -0.005em;
}
.hp-define__lead p:last-child { margin-bottom: 0; }
.hp-stage-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.hp-stage {
  padding: 50px 24px;
  background: #fff;
  border: 1px solid #e8e0d2;
  border-radius: 6px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hp-stage:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(60, 50, 30, 0.08);
}
.hp-stage h4 {
  font-size: 20px;
  font-weight: 700;
  color: var(--c-ink);
  margin: 0;
  letter-spacing: -0.02em;
}
.hp-stage__bar {
  display: block;
  width: 28px;
  height: 1.5px;
  background: var(--c-ink);
}
.hp-stage p {
  font-size: 14.5px;
  color: var(--c-ink-2);
  line-height: 1.75;
  margin: 0;
}

/* (3) 고혈압 원인 — LU 패턴: 가운데 헤딩 + 탭 + 좌 설명 / 우 이미지 */
.hp-causes { margin: 0 0 110px; }
.hp-causes__head {
  text-align: center;
  margin: 0 0 36px;
}
.hp-causes__title {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0 0 18px;
}
.hp-causes__lead {
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0;
  letter-spacing: -0.005em;
}

/* 탭 */
.hp-tabs {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 0 0 50px;
  flex-wrap: wrap;
}
.hp-tab {
  padding: 14px 30px;
  background: transparent;
  border: 1px solid #e8e0d2;
  border-radius: 999px;
  color: var(--c-ink-3);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.hp-tab:hover { color: var(--c-ink); border-color: var(--c-ink-3); }
.hp-tab.is-active {
  background: var(--c-orange);
  color: #fff;
  border-color: var(--c-orange);
}

/* 탭 패널 */
.hp-panels { position: relative; }
.hp-panel {
  display: none;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}
.hp-panel.is-active { display: grid; }
.hp-panel-body h4 {
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin: 0 0 22px;
}
.hp-panel-body p {
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0 0 14px;
  letter-spacing: -0.005em;
}
.hp-panel-body p strong {
  color: var(--c-orange-dark);
  font-weight: 800;
}
.hp-panel-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 18px;
  overflow: hidden;
  background: #f5efe5;
}
.hp-panel-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (max-width: 1024px) {
  .hp-panel { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* === 새 컴포넌트 (모든 질환 공통 패턴) === */

/* eyebrow 영문 */
.cd-eyebrow {
  text-align: center;
  font-size: 13px;
  letter-spacing: 0.35em;
  color: var(--c-ink-3);
  font-weight: 500;
  margin: 0 0 14px;
}

/* 정의 — 가운데 정렬 (제목 + 가운데 본문) */
.cd-center {
  text-align: center;
  margin: 0 0 110px;
}
.cd-center h3 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0 0 30px;
}
.cd-center p {
  max-width: 900px;
  margin: 0 auto 14px;
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.85;
  letter-spacing: -0.005em;
}
.cd-center p:last-child { margin-bottom: 0; }

/* 표 (이상지질혈증 수치 등) */
.cd-table-wrap { max-width: 1000px; margin: 50px auto 0; }
.cd-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15.5px;
  color: var(--c-ink-2);
}
.cd-table thead th {
  padding: 18px 14px;
  background: var(--c-orange);
  color: #fff;
  font-weight: 700;
  text-align: center;
  letter-spacing: -0.01em;
}
.cd-table tbody th {
  padding: 18px 14px;
  background: #fff4e0;
  color: var(--c-ink);
  font-weight: 700;
  text-align: center;
  border-bottom: 1px solid #f0e8d8;
}
.cd-table tbody td {
  padding: 18px 14px;
  text-align: center;
  border-bottom: 1px solid #f0e8d8;
  border-right: 1px solid #f0e8d8;
}
.cd-table tbody td:last-child { border-right: 0; }
.cd-table tbody tr:last-child th,
.cd-table tbody tr:last-child td { border-bottom: 0; }

/* 박스 리스트 (원인/종류/증상·합병증) — cd-steps와 동일 톤 */
.cd-orange-list { margin: 0 0 110px; }
.cd-orange-list h3 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0 0 36px;
  text-align: center;
}
.cd-orange-list__items {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cd-orange-item {
  position: static;
  border: 0;
  border-radius: 18px;
  background: var(--c-warm-pale, #faf3ea);
  padding: 28px 36px;
}
.cd-orange-item__label {
  position: static;
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  background: var(--c-orange);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
  border-radius: 999px;
  transform: none;
  margin-bottom: 16px;
  width: max-content;
}
.cd-orange-item__body { padding-top: 0; }
.cd-orange-item p {
  font-size: 15.5px;
  color: var(--c-ink-2);
  line-height: 1.8;
  margin: 0 0 10px;
}
.cd-orange-item p:last-child { margin-bottom: 0; }
.cd-orange-item ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.cd-orange-item ul li {
  font-size: 15.5px;
  color: var(--c-ink-2);
  line-height: 1.7;
  padding-left: 14px;
  position: relative;
}
.cd-orange-item ul li::before {
  content: "-";
  position: absolute; left: 0;
  color: var(--c-ink-3);
}

/* 번호 리스트 + 이미지 (치료법/예방수칙) */
.cd-numimg { margin: 0 0 110px; }
.cd-numimg__head {
  text-align: center;
  margin: 0 0 50px;
}
.cd-numimg__head h3 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0;
}
.cd-numimg__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.cd-numimg__list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column;
  gap: 22px;
}
.cd-numimg__list li {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 16px;
  align-items: start;
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.7;
}
.cd-numimg__list li > span {
  font-size: 15px;
  font-weight: 800;
  color: var(--c-orange);
  letter-spacing: 0.02em;
  padding-top: 2px;
}
.cd-numimg__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 18px;
  overflow: hidden;
  background: #f5efe5;
}
.cd-numimg__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 동그라미 카드 (천식 유발/악화, 만성신부전 증상) */
.cd-circles { margin: 0 0 110px; }
.cd-circles__head {
  text-align: center;
  margin: 0 0 36px;
}
.cd-circles__head h3 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0;
}
.cd-circles__group { margin: 36px 0 0; text-align: center; }
.cd-circles__label {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  background: var(--c-orange);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  border-radius: 999px;
  margin-bottom: 22px;
  letter-spacing: 0.04em;
}
.cd-circles__items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.cd-circle {
  aspect-ratio: auto;
  border-radius: 18px;
  border: 0;
  background: var(--c-warm-pale, #faf3ea);
  display: flex;
  align-items: center; justify-content: center;
  text-align: center;
  padding: 28px 18px;
  font-size: 16px;
  color: var(--c-ink);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.01em;
  transition: background 0.3s ease;
  min-height: 110px;
}
.cd-circle:hover { background: #fff4e0; }
.cd-circles--inline .cd-circles__items {
  grid-template-columns: repeat(5, 1fr);
  background: transparent;
  padding: 0;
  border-radius: 0;
}
.cd-circles--inline .cd-circle {
  border: 0;
  background: var(--c-warm-pale, #faf3ea);
}

/* 좌측 라벨 박스 + 우측 텍스트 행 (단백뇨 치료법) */
.cd-rows { margin: 0 0 110px; }
.cd-rows h3 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0 0 36px;
  text-align: center;
}
.cd-rows ul {
  list-style: none;
  padding: 0; margin: 0;
  display: flex; flex-direction: column;
  gap: 18px;
}
.cd-rows li {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 30px;
  align-items: center;
}
.cd-rows li {
  background: var(--c-warm-pale, #faf3ea);
  border-radius: 18px;
  padding: 22px 30px;
}
.cd-rows li > b {
  background: var(--c-orange);
  color: #fff;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  letter-spacing: 0.04em;
  width: max-content;
  justify-self: start;
}
.cd-rows li > b::after { display: none; }
.cd-rows li > span {
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 15.5px;
  color: var(--c-ink-2);
  line-height: 1.7;
}

/* 혈뇨 예방수칙: 좌측 이미지 + 우측 텍스트 (2행) */
.cd-imgrows { margin: 0 0 110px; }
.cd-imgrows__head { text-align: center; margin: 0 0 50px; }
.cd-imgrows__head h3 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.03em;
  margin: 0;
}
.cd-imgrow {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 36px;
  align-items: center;
  padding: 28px;
  background: var(--c-warm-pale, #faf3ea);
  border-radius: 18px;
  border-bottom: 0;
  margin-bottom: 14px;
}
.cd-imgrow:last-child { margin-bottom: 0; }
.cd-imgrow__img {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 14px;
  overflow: hidden;
  background: #f5efe5;
}
.cd-imgrow__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cd-imgrow__body h4 {
  font-size: 20px;
  font-weight: 800;
  color: var(--c-ink);
  margin: 0 0 10px;
  letter-spacing: -0.02em;
}
.cd-imgrow__body p {
  font-size: 15.5px;
  color: var(--c-ink-2);
  line-height: 1.8;
  margin: 0;
}

@media (max-width: 1024px) {
  .cd-numimg__grid { grid-template-columns: 1fr; gap: 32px; }
  .cd-circles__items { grid-template-columns: repeat(2, 1fr) !important; }
  .cd-rows li { grid-template-columns: 1fr; gap: 8px; }
  .cd-rows li > b::after { display: none; }
  .cd-imgrow { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 1024px) {
  .hp-stage-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .hp-stage-grid { grid-template-columns: 1fr; }
}
.cond-panel-head {
  text-align: left;
  margin: 0 0 70px;
}
.cond-panel-head .eyebrow {
  font-size: 14px !important;
  color: var(--c-orange) !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 16px;
}
.cond-panel-head h2 {
  font-size: clamp(36px, 4.6vw, 60px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.22 !important;
  color: var(--c-ink) !important;
  margin: 0 0 22px;
}
.cond-panel-head > p {
  font-size: 18px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.85 !important;
  max-width: 760px;
  margin: 0;
}

/* (1) 정의 — 좌 텍스트 / 우 이미지 */
.cd-define {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
  margin-bottom: 110px;
}
.cd-define h3 {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0 0 24px;
}
.cd-define p {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.9;
  margin: 0 0 14px;
}
.cd-define__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 22px;
  overflow: hidden;
  background: #f5efe5;
}
.cd-define__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* (2) 원인/위험요인 — 좌 헤딩 / 우 알약 카드 리스트 */
.cd-causes {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 60px;
  align-items: start;
  margin-bottom: 110px;
}
.cd-causes h3 {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  line-height: 1.3;
  margin: 0;
}
.cd-causes ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cd-causes li {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 18px;
  padding: 22px 30px;
  background: var(--c-warm-pale, #faf3ea);
  border-radius: 999px;
  font-size: 16px;
  color: var(--c-ink);
  font-weight: 500;
  line-height: 1.55;
}
.cd-causes li b {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 22px;
  font-weight: 700;
  color: var(--c-orange);
  letter-spacing: -0.01em;
  text-align: left;
}
.cd-causes-note {
  margin-top: 22px;
  font-size: 13.5px;
  color: var(--c-ink-3);
}

/* (3) 치료/관리 STEP — 가로 긴 박스 */
.cd-steps {
  margin-bottom: 110px;
}
.cd-steps h3 {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  margin: 0 0 36px;
}
.cd-steps ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cd-steps li {
  display: grid;
  grid-template-columns: 130px 1fr;
  align-items: center;
  gap: 30px;
  padding: 26px 36px;
  background: var(--c-warm-pale, #faf3ea);
  border-radius: 18px;
}
.cd-steps li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  background: var(--c-orange);
  color: #fff;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
  width: max-content;
}
.cd-steps li h4 {
  font-size: 19px;
  font-weight: 800;
  color: var(--c-ink);
  margin: 0 0 6px;
  letter-spacing: -0.02em;
}
.cd-steps li p {
  font-size: 15.5px;
  color: var(--c-ink-2);
  line-height: 1.7;
  margin: 0;
}

/* (4) 생활관리 — 좌 헤딩+이미지 / 우 번호 리스트 */
.cd-after {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 70px;
  align-items: start;
}
.cd-after__left h3 {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--c-ink);
  line-height: 1.3;
  margin: 0 0 20px;
}
.cd-after__left p {
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.85;
  margin: 0 0 28px;
}
.cd-after__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 18px;
  overflow: hidden;
  background: #f5efe5;
}
.cd-after__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cd-after ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.cd-after ol > li {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 22px;
  align-items: start;
  padding-bottom: 20px;
  border-bottom: 1px dashed #ece6d8;
}
.cd-after ol > li:last-child { border-bottom: 0; padding-bottom: 0; }
.cd-after ol > li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--c-orange);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}
.cd-after ol > li h4 {
  font-size: 17px;
  font-weight: 800;
  color: var(--c-ink);
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}
.cd-after ol > li p {
  font-size: 15px;
  color: var(--c-ink-2);
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 1024px) {
  .cd-define, .cd-causes, .cd-after { grid-template-columns: 1fr !important; gap: 36px !important; }
  .cd-steps li { grid-template-columns: 1fr !important; gap: 10px !important; padding: 22px 24px !important; }
}

/* === Clinic 페이지 (내과/신장) — LU 톤 재정돈 === */
.cond-panel { padding: 110px 0; }
.cond-panel:nth-child(even) { background: #faf6ec; }
.cond-panel-head {
  text-align: left;
  max-width: 880px;
  margin: 0 0 70px;
}
.cond-panel-head .eyebrow {
  font-size: 14px !important;
  color: var(--c-orange) !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 18px;
}
.cond-panel-head h2 {
  font-size: clamp(34px, 4.4vw, 54px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.22 !important;
  color: var(--c-ink) !important;
  margin-bottom: 22px;
}
.cond-panel-head p {
  font-size: 18px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.85 !important;
  max-width: 760px;
}

/* 정의 — 이미지 + 텍스트 */
.cond-feature, .cond-feature--reverse {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 70px !important;
  align-items: center !important;
  margin-bottom: 90px;
}
.cond-feature--reverse .cond-feature__img { order: 2; }
.cond-feature__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 22px;
  overflow: hidden;
  background: #f5efe5;
}
.cond-feature__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cond-feature__body .eyebrow {
  font-size: 14px !important;
  color: var(--c-orange) !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 14px;
}
.cond-feature__body h3 {
  font-size: clamp(26px, 3vw, 36px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.28 !important;
  color: var(--c-ink) !important;
  margin: 0 0 22px !important;
}
.cond-feature__body p {
  font-size: 17px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.85 !important;
  margin-bottom: 22px !important;
}
.cond-feature__list { padding: 0; margin: 0; }
.cond-feature__list li {
  position: relative;
  padding-left: 22px;
  font-size: 16px;
  color: var(--c-ink-2);
  line-height: 1.85;
  list-style: none;
}
.cond-feature__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 12px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--c-orange);
}

/* 증상/위험 — 알약형 카드 (LU) */
.symptom-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
  margin: 0 0 90px !important;
  max-width: 980px;
  margin-left: auto !important;
}
.symptom-card {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 22px 30px !important;
  background: var(--c-warm-pale, #faf3ea) !important;
  border-radius: 999px !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}
.symptom-card .symptom-icon { display: none !important; }
.symptom-card h3 {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--c-orange-dark) !important;
  margin: 0 !important;
  flex-shrink: 0;
  min-width: 90px;
  letter-spacing: -0.01em;
}
.symptom-card p {
  font-size: 15.5px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}

/* 치료 STEP — LU 톤 */
.step-list {
  list-style: none;
  padding: 0;
  margin: 0 0 90px;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}
.step-item {
  display: grid !important;
  grid-template-columns: 130px 1fr !important;
  gap: 30px !important;
  align-items: center !important;
  padding: 26px 36px !important;
  background: var(--c-warm-pale, #faf3ea) !important;
  border-radius: 18px !important;
  border: 0 !important;
}
.step-num {
  display: inline-flex !important;
  align-items: center; justify-content: center;
  padding: 8px 16px !important;
  background: var(--c-orange) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  width: max-content;
  font-family: 'Pretendard', sans-serif !important;
}
.step-num::before { content: "STEP "; }
.step-body h3 {
  font-size: 19px !important;
  font-weight: 800 !important;
  color: var(--c-ink) !important;
  margin: 0 0 6px !important;
  letter-spacing: -0.02em;
}
.step-body p {
  font-size: 15.5px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

/* 갤러리 제거 */
.cond-gallery { display: none !important; }

/* Callout */
.callout-card {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 30px !important;
  padding: 36px 44px !important;
  background: #fff !important;
  border: 1px solid #ece6d8 !important;
  border-radius: 22px !important;
  box-shadow: none !important;
}
.callout-card h3 {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: var(--c-ink) !important;
  margin: 0 0 6px !important;
  letter-spacing: -0.02em;
}
.callout-card p {
  font-size: 15px !important;
  color: var(--c-ink-2) !important;
  margin: 0 !important;
}

/* 탭 — 미니멀 underline */
.cond-tabs { padding: 24px 0 0; background: #fff; border-bottom: 1px solid #ece6d8; position: sticky; top: 84px; z-index: 30; }
.cond-tabs ul {
  display: flex !important;
  gap: 6px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 !important; padding: 0 !important;
}
.cond-tab {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  padding: 16px 22px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--c-ink-3) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  text-decoration: none !important;
  position: relative;
  cursor: pointer;
}
.cond-tab svg { width: 18px; height: 18px; }
.cond-tab:hover { color: var(--c-ink) !important; }
.cond-tab.is-active { color: var(--c-orange-dark) !important; }
.cond-tab.is-active::after {
  content: "";
  position: absolute;
  left: 22px; right: 22px;
  bottom: -1px;
  height: 2px;
  background: var(--c-orange);
}

/* 모바일: depart-card, why-feature 세로 배치 (이미지 위 / 텍스트 아래) */
@media (max-width: 768px) {
  .depart-card {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    text-align: left !important;
  }
  .depart-img {
    aspect-ratio: 16 / 10 !important;
    max-width: none !important;
    width: 100% !important;
  }
  .depart-info { padding-right: 0 !important; }
  .depart-title { font-size: 22px !important; margin-bottom: 12px !important; }
  .depart-desc { font-size: 15px !important; line-height: 1.7 !important; }
  .department .section-desc { font-size: 15px !important; line-height: 1.7 !important; }
  .depart-info .more-btn { padding: 12px 22px !important; font-size: 13.5px !important; }

  .why-stage { --why-w: 100% !important; --why-h: auto !important; margin-top: 30px !important; }
  .why-feature {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .why-feature-img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 10 !important;
  }
  .why-feature-text { padding-right: 0 !important; }
  .why-feature-text h3 { font-size: 22px !important; line-height: 1.3 !important; }
  .why-feature-text p { font-size: 14.5px !important; line-height: 1.7 !important; }
  .why-controls { margin-top: 24px !important; }
}

/* 모바일: 탭 가로 스크롤 + 상단 흰 공백 제거 */
@media (max-width: 768px) {
  .cond-tabs {
    padding: 0 !important;
    top: 64px !important; /* 모바일 헤더 높이 */
  }
  .cond-tabs .container {
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .cond-tabs ul {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    width: 100% !important;
    padding: 0 16px !important;
    gap: 0 !important;
    box-sizing: border-box !important;
  }
  .cond-tabs ul::-webkit-scrollbar { display: none !important; }
  .cond-tabs li { flex: 0 0 auto !important; }
  .cond-tab {
    white-space: nowrap !important;
    padding: 14px 14px !important;
    font-size: 14px !important;
  }
  .cond-tab.is-active::after { left: 14px !important; right: 14px !important; }
}

@media (max-width: 1024px) {
  .cond-feature, .cond-feature--reverse { grid-template-columns: 1fr !important; gap: 32px !important; }
  .cond-feature--reverse .cond-feature__img { order: 0; }
  .symptom-grid { grid-template-columns: 1fr !important; margin: 0 0 60px !important; }
  .step-item { grid-template-columns: 1fr !important; gap: 10px !important; padding: 22px 24px !important; }
  .callout-card { flex-direction: column; text-align: center; }
}

/* === lu-story 통합 블록 — 슬로건 + 이미지 + 대표원장 메시지 한 뭉텅이 === */
.story-block {
  padding: 120px 0 140px;
  background: #fff;
  position: relative;
}
/* 하단 부드러운 베이지 그라데이션으로 한 묶음 느낌 */
.story-block::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #fff 0%, #fffaf0 60%, #fff5e3 100%);
  z-index: 0;
}
.story-block > .container {
  position: relative;
  z-index: 1;
  max-width: 1100px;
}

/* 슬로건 */
.sb-slogan { text-align: center; margin-bottom: 60px; }
.sb-tag {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.9;
  margin: 0 0 28px;
  letter-spacing: -0.005em;
}
.sb-en {
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(48px, 6.5vw, 92px);
  line-height: 1.18;
  letter-spacing: -0.01em;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.sb-en > span:nth-child(1) {
  background: linear-gradient(90deg, #ffd082 0%, #f59222 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.sb-en > span:nth-child(2) {
  background: linear-gradient(90deg, #f59222 0%, #d97208 60%, #b85a00 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* 큰 이미지 */
.sb-photo {
  width: 100%;
  aspect-ratio: 16 / 7;
  border-radius: 28px;
  overflow: hidden;
  margin-bottom: 80px;
  box-shadow: 0 30px 60px rgba(60, 50, 30, 0.08);
}
.sb-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 대표원장 메시지 (이야기의 중심) */
.sb-message {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}
.sb-message__title {
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.32;
  color: var(--c-ink);
  margin: 0 0 40px;
}
.sb-message__body {
  display: flex;
  flex-direction: column;
  gap: 22px;
  text-align: left;
  margin-bottom: 36px;
}
.sb-message__body p {
  font-size: 17px;
  color: var(--c-ink-2);
  line-height: 1.95;
  margin: 0;
  letter-spacing: -0.005em;
}
.sb-message__sign {
  font-size: 16px;
  color: var(--c-ink-3);
  text-align: right;
  margin: 0;
  padding-top: 28px;
  border-top: 1px solid #e8e0d2;
}
.sb-message__sign strong {
  font-size: 22px;
  color: var(--c-ink);
  font-weight: 800;
  letter-spacing: -0.01em;
  margin-left: 8px;
}

@media (max-width: 640px) {
  .story-block { padding: 80px 0 100px; }
  .sb-photo { aspect-ratio: 4 / 3; border-radius: 20px; margin-bottom: 50px; }
  .sb-message__body { text-align: left; }
  .sb-message__sign { text-align: left; }
}

/* 기존 .story-intro / .story-feature / .story-message는 제거됨 (새 .story-block으로 통합) */

/* === lu-story 의료진/장비 LU 톤 정돈 === */

/* 대표원장 섹션 — 흰 배경 */
.doctor-section { background: #fff !important; }

/* 의료진 섹션 — 좌측 사진 + 우측 정보 (사진 height 텍스트에 맞춤) */
.doctor-profile {
  display: grid !important;
  grid-template-columns: 0.85fr 1.15fr !important;
  gap: 80px !important;
  align-items: stretch !important;
  max-width: 1200px;
  margin: 0 auto;
}
.doctor-photo {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  border-radius: 24px !important;
  overflow: hidden;
  background: #f5efe5 !important;
  box-shadow: none !important;
  align-self: stretch;
}
.doctor-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 20%;
}
.doctor-info { padding-top: 0 !important; }
.doctor-role {
  font-size: 15px !important;
  color: var(--c-orange) !important;
  letter-spacing: 0.14em !important;
  font-weight: 700 !important;
  margin-bottom: 16px !important;
}
.doctor-name {
  font-size: clamp(36px, 4vw, 52px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  color: var(--c-ink) !important;
  margin-bottom: 24px !important;
  padding-bottom: 24px !important;
  border-bottom: 1px solid #e8e0d2;
}
.doctor-name::after { display: none !important; }
.doctor-name span {
  font-size: 0.55em !important;
  font-weight: 500 !important;
  color: var(--c-ink-3) !important;
  margin-left: 14px;
}
.doctor-desc {
  font-size: 18px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.85 !important;
  margin-bottom: 30px !important;
}
.doctor-section-h {
  font-size: 17px !important;
  font-weight: 800 !important;
  color: var(--c-ink) !important;
  margin: 26px 0 14px !important;
  letter-spacing: -0.02em;
}

/* 학력/학회 점 리스트 */
.career-list { display: grid !important; gap: 10px !important; padding: 0; margin: 0; }
.career-list li {
  position: relative;
  padding-left: 20px !important;
  font-size: 16px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.75 !important;
  list-style: none;
}
.career-list li::before {
  content: "" !important;
  position: absolute;
  left: 0; top: 12px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--c-orange);
}
.two-col-list {
  grid-template-columns: 1fr 1fr !important;
  column-gap: 30px !important;
}

/* 보유 의료장비 그리드 */
.story-equipment {
  padding: 110px 0 130px !important;
  background: linear-gradient(180deg, #fff 0%, #faf6ec 100%);
}
.story-equip-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
}
.story-equip {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid #ece6d8;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.story-equip:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 44px rgba(60, 50, 30, 0.08);
}
.story-equip__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f5efe5;
}
.story-equip__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.story-equip:hover .story-equip__img img { transform: scale(1.05); }
.story-equip__name {
  font-size: 19px !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: var(--c-ink) !important;
  margin: 22px 28px 10px !important;
}
.story-equip__desc {
  font-size: 14.5px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.7 !important;
  margin: 0 28px 28px !important;
}

@media (max-width: 1024px) {
  .doctor-profile { grid-template-columns: 1fr !important; gap: 40px !important; }
  .story-equip-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px) {
  .story-equip-grid { grid-template-columns: 1fr !important; }
  .two-col-list { grid-template-columns: 1fr !important; }
}

/* 가치 카드 이미지(아이콘 대체) */
.story-value__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 22px;
  background: #f5efe5;
}
.story-value__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.story-value:hover .story-value__img img { transform: scale(1.06); }
.story-value__en {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 16px;
  color: var(--c-orange);
  margin-bottom: 12px;
  letter-spacing: -0.005em;
}
.story-value h3 {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--c-ink);
  margin-bottom: 14px;
}
.story-value p {
  font-size: 14.5px;
  color: var(--c-ink-2);
  line-height: 1.85;
  letter-spacing: -0.005em;
}

/* Story message */
.story-message {
  padding: 140px 0;
  background: #fff;
}
.story-message-head {
  text-align: center;
  max-width: 820px;
  margin: 0 auto 60px;
}
.story-message-head h2 {
  font-size: clamp(30px, 3.6vw, 46px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.28;
  color: var(--c-ink);
}
.story-message-body {
  max-width: 760px;
  margin: 0 auto;
}
.story-message-body p {
  font-size: 16.5px;
  line-height: 2;
  color: var(--c-ink-2);
  margin-bottom: 22px;
  letter-spacing: -0.005em;
}
.story-message-sign {
  margin-top: 40px;
  text-align: right;
  font-size: 16px;
  color: var(--c-ink-2);
}
.story-message-sign strong {
  font-size: 1.2em;
  font-weight: 800;
  color: var(--c-ink);
  margin-left: 8px;
  letter-spacing: -0.02em;
}

/* Equipment grid */
.story-equipment { padding: 130px 0; background: #fff; }
.story-equip-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.story-equip {
  padding: 36px 28px 30px;
  background: #fff;
  border-radius: var(--r-lg);
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
  transition: transform 0.35s, box-shadow 0.35s;
}
.story-equip:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
}
.story-equip__img {
  width: 100%;
  aspect-ratio: 4/3;
  border-radius: var(--r-md);
  overflow: hidden;
  margin-bottom: 22px;
  background: linear-gradient(135deg, #fff7e9, #ffe6c2);
}
.story-equip__img img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.story-equip__name {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin-bottom: 10px;
}
.story-equip__desc {
  font-size: 14px;
  color: var(--c-ink-2);
  line-height: 1.8;
}

/* 진료시스템 5-card grid */
.story-system {
  padding: 130px 0 140px;
  background: linear-gradient(180deg, #faf6ec 0%, #fff 100%);
}
.story-system-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}
.story-sys {
  padding: 40px 22px 32px;
  background: #fff;
  border-radius: var(--r-lg);
  border: 1px solid #ede5d2;
  box-shadow: var(--sh-sm);
  text-align: center;
  transition: transform 0.35s, box-shadow 0.35s, border-color 0.35s;
}
.story-sys:hover {
  transform: translateY(-6px);
  box-shadow: var(--sh-md);
  border-color: var(--c-orange-light);
}
.story-sys__icon {
  width: 56px; height: 56px;
  margin: 0 auto 18px;
  display: inline-flex;
  align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--c-ink);
  color: #fff;
}
.story-sys__icon svg { width: 26px; height: 26px; }
.story-sys h3 {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  color: var(--c-ink);
}
.story-sys p {
  font-size: 13.5px;
  color: var(--c-ink-2);
  line-height: 1.75;
  letter-spacing: -0.005em;
}

@media (max-width: 1024px) {
  .story-value-grid { grid-template-columns: repeat(2, 1fr); }
  .story-equip-grid { grid-template-columns: repeat(2, 1fr); }
  .story-system-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .story-value-grid { grid-template-columns: 1fr; }
  .story-equip-grid { grid-template-columns: 1fr; }
  .story-system-grid { grid-template-columns: 1fr; }
}

/* ===========================================
   클리닉 페이지 — LU임플란트 패턴 공유 섹션
   =========================================== */

/* 차별화 포인트 — 좌측 split 이미지 + 우측 6 cards */
.clinic-points {
  padding: 130px 0;
  background: linear-gradient(180deg, #fff 0%, #faf6ec 100%);
}
.clinic-points-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 70px;
}
.clinic-points-head h2 {
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -0.035em;
  color: var(--c-ink);
}
.clinic-points-head p {
  margin-top: 22px;
  font-size: 17px;
  line-height: 1.85;
  color: var(--c-ink-2);
  letter-spacing: -0.005em;
}
.clinic-points-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.clinic-point {
  position: relative;
  padding: 38px 28px 32px;
  background: #fff;
  border-radius: var(--r-lg);
  border: 1px solid #ede5d2;
  box-shadow: 0 10px 28px rgba(60, 50, 30, 0.06);
  transition: transform 0.35s, box-shadow 0.35s, border-color 0.35s;
}
.clinic-point:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 38px rgba(60, 50, 30, 0.10);
  border-color: var(--c-orange-light);
}
.clinic-point__num {
  display: inline-block;
  font-size: 13px;
  letter-spacing: 0.18em;
  font-weight: 700;
  color: var(--c-orange);
  margin-bottom: 14px;
}
.clinic-point__icon {
  width: 48px; height: 48px;
  display: inline-flex;
  align-items: center; justify-content: center;
  border-radius: 12px;
  background: linear-gradient(135deg, #fff7e9, #ffe6c2);
  color: var(--c-orange-dark);
  margin-bottom: 18px;
}
.clinic-point__icon svg { width: 24px; height: 24px; }
.clinic-point h3 {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.025em;
  margin-bottom: 12px;
  color: var(--c-ink);
}
.clinic-point p {
  font-size: 14px;
  line-height: 1.8;
  color: var(--c-ink-2);
  letter-spacing: -0.005em;
}

/* 차별화 포인트 — 깔끔한 큰 이미지 + 텍스트 (LU치과 톤) */
.clinic-feature {
  padding: 140px 0;
  background: #fff;
}
.clinic-feature-wrap {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 90px;
  align-items: center;
}
.clinic-feature-img {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4/5;
  background: #f5efe2;
}
.clinic-feature-img img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}
.clinic-feature:hover .clinic-feature-img img { transform: scale(1.03); }
/* 오렌지 diagonal 오버레이 제거 (LU치과 깔끔한 톤) */
.clinic-feature-body .eyebrow {
  display: inline-block !important;
  margin-bottom: 16px !important;
}
.clinic-feature-body h2 {
  font-size: clamp(34px, 4.4vw, 56px);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.18;
  margin-bottom: 28px;
  color: var(--c-ink);
}
.clinic-feature-body > p {
  font-size: 16px;
  line-height: 1.95;
  color: var(--c-ink-2);
  margin-bottom: 28px;
  letter-spacing: -0.005em;
}
.clinic-feature-bullets {
  display: grid;
  gap: 14px;
  list-style: none;
  padding: 0;
}
.clinic-feature-bullets li {
  display: grid;
  grid-template-columns: 32px 1fr;
  align-items: start;
  gap: 14px;
  padding: 16px 20px;
  background: #faf6ec;
  border-radius: 12px;
}
.clinic-feature-bullets li svg {
  width: 22px; height: 22px;
  color: var(--c-orange-dark);
  margin-top: 1px;
}
.clinic-feature-bullets li b {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: var(--c-ink);
  margin-bottom: 4px;
  letter-spacing: -0.015em;
}
.clinic-feature-bullets li span {
  font-size: 13.5px;
  color: var(--c-ink-2);
  line-height: 1.7;
  letter-spacing: -0.005em;
}

/* 하단 슬로건 배너 — 깔끔한 단색 베이지 (그라데이션 제거) */
.clinic-banner {
  position: relative;
  padding: 140px 0 180px;
  background: #f8f3ea;
  overflow: hidden;
}
.clinic-banner::before { display: none; }
.clinic-banner-watermark {
  display: none;
}
.clinic-banner-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
  grid-template-rows: 1fr;
  gap: 16px;
  align-items: stretch;
  height: 520px;
}
.clinic-banner-card {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: #efe6d2;
  transition: transform 0.5s ease;
}
.clinic-banner-card:hover { transform: translateY(-4px); }
.clinic-banner-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.clinic-banner-card::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(20,12,4,0.40) 100%);
}
.clinic-banner-card span {
  position: absolute;
  left: 22px; bottom: 20px;
  z-index: 2;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.005em;
}
.clinic-banner-head {
  position: relative;
  z-index: 2;
  text-align: center;
  margin-bottom: 60px;
}
.clinic-banner-head .eyebrow {
  color: var(--c-orange-dark) !important;
  margin-bottom: 14px !important;
}
.clinic-banner-head h2 {
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.16;
  color: var(--c-ink);
}
.clinic-banner-cta {
  position: relative;
  z-index: 2;
  margin-top: 60px;
  text-align: center;
}
.clinic-banner-cta a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 44px;
  background: var(--c-ink);
  color: #fff;
  border-radius: var(--r-pill);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.005em;
  box-shadow: 0 14px 32px rgba(20, 12, 4, 0.25);
  transition: transform 0.3s, box-shadow 0.3s, background 0.3s;
}
.clinic-banner-cta a:hover {
  background: var(--c-orange-dark);
  transform: translateY(-3px);
  box-shadow: 0 20px 40px rgba(217, 114, 8, 0.35);
}

/* 진료 철학 — 인물/공간 좌측 + 우측 체크리스트 */
.clinic-philosophy {
  padding: 130px 0 140px;
  background: #fff;
}
.clinic-philosophy-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
}
.clinic-philosophy-img {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4/5;
  background: #f5efe2;
}
.clinic-philosophy-img img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}
.clinic-philosophy:hover .clinic-philosophy-img img { transform: scale(1.03); }
.clinic-philosophy-img::after { display: none; }
.clinic-philosophy-body .eyebrow {
  display: inline-block !important;
  margin-bottom: 18px !important;
}
.clinic-philosophy-body h2 {
  font-size: clamp(36px, 4.4vw, 56px);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.18;
  margin-bottom: 32px;
  color: var(--c-ink);
}
.clinic-philosophy-body > p {
  font-size: 16px;
  line-height: 1.95;
  color: var(--c-ink-2);
  margin-bottom: 36px;
  letter-spacing: -0.005em;
}
.clinic-philosophy-list {
  display: grid;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.clinic-philosophy-list li {
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: start;
  gap: 16px;
  padding: 18px 22px;
  background: #faf6ec;
  border-left: 3px solid var(--c-orange);
  border-radius: 0 12px 12px 0;
}
.clinic-philosophy-list li svg {
  width: 22px; height: 22px;
  margin-top: 4px;
  color: var(--c-orange-dark);
}
.clinic-philosophy-list b {
  display: block;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin-bottom: 5px;
}
.clinic-philosophy-list span {
  font-size: 14px;
  line-height: 1.75;
  color: var(--c-ink-2);
  letter-spacing: -0.005em;
}

/* 진료 프로세스 timeline */
.clinic-process {
  padding: 130px 0;
  background: linear-gradient(180deg, #faf6ec 0%, #fff 100%);
}
.clinic-process-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 70px;
}
.clinic-process-head h2 {
  font-size: clamp(38px, 4.6vw, 56px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -0.035em;
  color: var(--c-ink);
}
.clinic-process-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}
.clinic-process-list::before {
  content: "";
  position: absolute;
  top: 42px;
  left: 12.5%;
  right: 12.5%;
  height: 2px;
  background: linear-gradient(90deg, var(--c-orange-light), var(--c-orange), var(--c-orange-light));
  z-index: 0;
}
.clinic-process-step {
  position: relative;
  text-align: center;
  padding: 0 16px;
  z-index: 1;
}
.clinic-process-step__num {
  width: 84px; height: 84px;
  margin: 0 auto 26px;
  background: #fff;
  border: 3px solid var(--c-orange);
  border-radius: 50%;
  display: inline-flex;
  align-items: center; justify-content: center;
  font-size: 28px;
  font-weight: 800;
  color: var(--c-orange-dark);
  letter-spacing: -0.02em;
  box-shadow: 0 8px 20px rgba(217, 114, 8, 0.18);
}
.clinic-process-step h3 {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.025em;
  margin-bottom: 12px;
  color: var(--c-ink);
}
.clinic-process-step p {
  font-size: 14px;
  line-height: 1.8;
  color: var(--c-ink-2);
  letter-spacing: -0.005em;
}

/* 배너 워터마크 위치 보정 (카드와 겹치지 않게) */
.clinic-banner { padding-bottom: 160px; }
.clinic-banner-watermark {
  bottom: 60px;
  font-size: clamp(50px, 8vw, 120px);
  font-weight: 400;
  opacity: 0.55;
}

/* ===========================================
   수치 임팩트 배너 — 풀폭 사진 배경 + 어두운 오버레이
   =========================================== */
.clinic-stats {
  position: relative;
  padding: 140px 0;
  color: #fff;
  overflow: hidden;
  background-color: #1a120a;
}
.clinic-stats__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.38;
  z-index: 0;
}
.clinic-stats::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,12,4,0.55) 0%, rgba(20,12,4,0.30) 50%, rgba(20,12,4,0.55) 100%);
  z-index: 1;
  display: block;
}
.clinic-stats .container { position: relative; z-index: 2; }
.clinic-stats .container { position: relative; z-index: 2; }
.clinic-stats-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 70px;
}
.clinic-stats-head .eyebrow {
  color: var(--c-orange-light) !important;
}
.clinic-stats-head h2 {
  font-size: clamp(36px, 4.4vw, 56px);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.18;
  color: #fff;
}
.clinic-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  text-align: center;
}
.clinic-stat {
  padding: 36px 18px;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--r-lg);
  background: rgba(255,255,255,0.04);
  backdrop-filter: blur(8px);
  transition: transform 0.4s, border-color 0.4s, background 0.4s;
}
.clinic-stat:hover {
  transform: translateY(-4px);
  border-color: var(--c-orange);
  background: rgba(245, 146, 34, 0.08);
}
.clinic-stat__num {
  font-size: clamp(54px, 6vw, 84px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  margin-bottom: 14px;
  color: #fff;
}
.clinic-stat__num sub {
  font-size: 0.36em;
  font-weight: 600;
  margin-left: 4px;
  color: var(--c-orange-light);
  vertical-align: baseline;
}
.clinic-stat__label {
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: rgba(255,255,255,0.78);
  line-height: 1.7;
}

/* ===========================================
   FAQ 아코디언
   =========================================== */
.clinic-faq {
  padding: 130px 0;
  background: #fff;
}
.clinic-faq-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 60px;
}
.clinic-faq-head h2 {
  font-size: clamp(38px, 4.6vw, 56px);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.18;
  color: var(--c-ink);
}
.clinic-faq-list {
  max-width: 880px;
  margin: 0 auto;
  display: grid;
  gap: 14px;
}
.faq-item {
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: #fff;
  overflow: hidden;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.faq-item[open] {
  border-color: var(--c-orange);
  box-shadow: var(--sh-md);
}
.faq-item summary {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px 28px;
  cursor: pointer;
  list-style: none;
  font-size: 16.5px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--c-ink);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before {
  content: "Q";
  flex-shrink: 0;
  width: 32px; height: 32px;
  display: inline-flex;
  align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--c-orange);
  color: #fff;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: 17px;
}
.faq-item summary::after {
  content: "";
  width: 14px; height: 14px;
  margin-left: auto;
  border-right: 2px solid var(--c-ink-3);
  border-bottom: 2px solid var(--c-ink-3);
  transform: rotate(45deg);
  transition: transform 0.3s, border-color 0.3s;
}
.faq-item[open] summary::after {
  transform: rotate(-135deg);
  border-color: var(--c-orange);
}
.faq-body {
  padding: 0 28px 26px 78px;
  font-size: 15px;
  line-height: 1.9;
  color: var(--c-ink-2);
  letter-spacing: -0.005em;
}

/* ===========================================
   환자 추천사 / 인용
   =========================================== */
.clinic-quote {
  padding: 130px 0;
  background: linear-gradient(180deg, #faf6ec 0%, #fff 100%);
}
.clinic-quote-wrap {
  position: relative;
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  padding: 70px 60px;
  background: #fff;
  border-radius: var(--r-xl);
  border: 1px solid #ede5d2;
  box-shadow: 0 30px 60px rgba(60, 50, 30, 0.08);
}
.clinic-quote-wrap::before {
  content: '"';
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 90px;
  line-height: 1;
  color: var(--c-ink-3);
  opacity: 0.5;
}
.clinic-quote blockquote {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(22px, 2.5vw, 32px);
  line-height: 1.55;
  color: var(--c-ink);
  letter-spacing: -0.005em;
  margin: 0;
}
.clinic-quote cite {
  display: block;
  margin-top: 28px;
  font-style: normal;
  font-size: 14px;
  letter-spacing: 0.12em;
  font-weight: 700;
  color: var(--c-orange-dark);
}
.clinic-quote cite::before { content: "— "; }

@media (max-width: 1024px) {
  .clinic-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .clinic-quote-wrap { padding: 50px 30px; }
}
@media (max-width: 640px) {
  .clinic-stats-grid { grid-template-columns: 1fr; }
  .faq-item summary { padding: 18px 20px; font-size: 15px; }
  .faq-body { padding: 0 20px 20px 64px; font-size: 14px; }
}

@media (max-width: 1024px) {
  .clinic-philosophy-wrap { grid-template-columns: 1fr; gap: 40px; }
  .clinic-process-list { grid-template-columns: repeat(2, 1fr); gap: 40px 20px; }
  .clinic-process-list::before { display: none; }
}
@media (max-width: 640px) {
  .clinic-process-list { grid-template-columns: 1fr; }
}

/* 탭 위 sub-nav anchor index */
.cond-anchor {
  position: relative;
  padding: 28px 0;
  background: #fff;
  border-bottom: 1px solid var(--c-border);
}
.cond-anchor ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
}
.cond-anchor a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  background: #faf6ec;
  border: 1px solid #ede5d2;
  border-radius: var(--r-pill);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--c-ink);
  letter-spacing: -0.005em;
  transition: all 0.25s;
}
.cond-anchor a:hover {
  background: var(--c-ink);
  color: #fff;
  border-color: var(--c-ink);
  transform: translateY(-1px);
}

@media (max-width: 1024px) {
  .clinic-points-grid { grid-template-columns: repeat(2, 1fr); }
  .clinic-feature-wrap { grid-template-columns: 1fr; gap: 40px; }
  .clinic-banner-inner { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .clinic-points-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1024px) {
  .cond-panel .symptom-grid { grid-template-columns: repeat(2, 1fr); }
  .cond-panel .step-list { grid-template-columns: 1fr; }
  .cond-feature, .cond-feature--reverse { grid-template-columns: 1fr; gap: 32px; }
  .cond-feature--reverse .cond-feature__img { order: 0; }
  .cond-gallery { grid-template-columns: repeat(2, 1fr); }
  .cond-tabs { top: 84px; }
  .cond-panel .callout-card { flex-direction: column; text-align: center; }
}
@media (max-width: 640px) {
  .cond-hero, .page-hero { min-height: 360px; }
  .cond-panel .symptom-grid { grid-template-columns: 1fr; }
  .cond-panel .step-item { grid-template-columns: 1fr; gap: 8px; padding: 24px 22px; }
  .cond-panel .step-num { font-size: 28px; }
  .cond-tab { padding: 18px 16px; font-size: 14px; }
  .cond-gallery { grid-template-columns: 1fr 1fr; gap: 8px; }
}

/* === Intro 반응형 === */
@media (max-width: 1024px) {
  .intro { padding: 100px 0 90px; }
  .intro-wrap { grid-template-columns: 1fr; gap: 50px; }
  .intro-visual { min-height: 480px; justify-content: center; }
  .intro-img-main { width: 65%; max-width: 420px; }
  .intro-img-sub { width: 22%; max-width: 130px; margin-top: 50px; margin-bottom: 50px; }
  .intro-blob { left: -480px; width: 800px; height: 800px; }
}
@media (max-width: 640px) {
  .intro { padding: 80px 0 70px; }
  .intro-visual { min-height: 360px; gap: 10px; }
  .intro-img-main { width: 68%; }
  .intro-img-sub { width: 24%; max-width: 100px; margin-top: 36px; margin-bottom: 36px; }
  .intro-blob { left: -360px; width: 600px; height: 600px; }
  .intro-text .section-title { font-size: clamp(32px, 8vw, 44px) !important; }
  .intro-desc { font-size: 16px !important; }
  .intro-desc.small { font-size: 16px !important; }
}

/* =========================================================
   모바일 전용 드로어 (#mnav) — 완전 독립 구조
   기존 .gnb / .mobile-menu-btn과 무관하게 작동
   ========================================================= */
#mnav-toggle {
  display: none;
  position: relative;
  z-index: 1001;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
#mnav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: #2b2331;
  border-radius: 2px;
  transition: transform 0.25s, opacity 0.25s;
}
#mnav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#mnav-toggle.open span:nth-child(2) { opacity: 0; }
#mnav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

#mnav {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 100vh;
  background: linear-gradient(180deg, #fffaf2 0%, #ffffff 50%);
  z-index: 1000;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}
@media (min-width: 1025px) { #mnav { display: none !important; } }
#mnav.open { transform: translateX(0); }

/* 헤더 (로고 + 닫기) */
.mnav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid #f0e9dd;
  background: #fff;
  flex-shrink: 0;
}
.mnav-logo { display: inline-flex; align-items: center; }
.mnav-logo img { height: 34px; width: auto; display: block; }

.mnav-close {
  width: 40px; height: 40px;
  border: 0; padding: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
  border-radius: 50%;
  transition: background 0.2s;
}
.mnav-close:hover { background: #faf3e8; }
.mnav-close span {
  position: absolute;
  top: 50%; left: 50%;
  width: 22px; height: 2px;
  background: #2b2331;
  border-radius: 2px;
}
.mnav-close span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.mnav-close span:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg); }

/* 본문 */
.mnav-body {
  flex: 1 1 auto;
  padding: 18px 22px 24px;
}
.mnav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mnav-group {
  border-bottom: 1px solid #f0e9dd;
  padding: 14px 0 18px;
}
.mnav-group:last-child { border-bottom: 0; }
.mnav-top {
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: #2b2331;
  text-decoration: none;
  letter-spacing: -0.035em;
  padding: 8px 0 4px;
}
.mnav-top:active { color: #d97208; }
.mnav-sub {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px 12px;
}
.mnav-sub li a {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #6b6358;
  text-decoration: none;
  padding: 8px 0;
  letter-spacing: -0.01em;
  position: relative;
  padding-left: 12px;
}
.mnav-sub li a::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 4px; height: 4px;
  border-radius: 50%;
  background: #e6d9c4;
}
.mnav-sub li a:active { color: #d97208; }
.mnav-sub li a:active::before { background: #d97208; }

/* 푸터 (예약 CTA + 주소) */
.mnav-foot {
  padding: 22px 22px 32px;
  border-top: 1px solid #f0e9dd;
  background: #fff;
  flex-shrink: 0;
}
.mnav-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 16px 24px;
  background: #2b2331;
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  border-radius: 999px;
  transition: background 0.2s;
}
.mnav-cta:active { background: #d97208; }
.mnav-info {
  margin: 14px 0 0;
  font-size: 12.5px;
  color: #9b938a;
  text-align: center;
  line-height: 1.6;
  letter-spacing: -0.01em;
}

body.mnav-open { overflow: hidden; }

@media (max-width: 1024px) {
  #mnav-toggle { display: inline-flex !important; }
}
