/* ═══════════════════════════════════════════════════════════
   하트케어내과 — Design System  v2  "Editorial Red"
   White paper · Economist-red accent · serif display · alive
   ═══════════════════════════════════════════════════════════ */

:root{
  --paper:      #FFFFFF;
  --paper-2:    #F7F5F1;      /* faint section tint */
  --paper-3:    #FBFAF7;
  --line:       #E7E3DB;
  --line-2:     #EFEBE3;
  --ink:        #14161A;
  --ink-2:      #454A52;
  --ink-3:      #6B7079;
  --ink-weak:   #969AA1;

  --red:        #D41E26;      /* 브랜드 레드 — 로고 원본색(2026-09-19 확정) */
  --red-deep:   #B01920;
  --red-ink:    #8C1419;
  --red-soft:   #FCEDEE;
  --red-soft-2: #FDF4F4;
  --brand-red:  var(--red);   /* 워드마크 「하트케어」 */
  --brand-ink:  #36302F;      /* 워드마크 「내과」 — 로고 원본 먹색 */

  --ink-bg:     #14161A;
  --ink-bg-2:   #1C1F24;
  --on-ink:     #F3F1EC;
  --on-ink-2:   #C4C6CA;
  --on-ink-weak:#8A8E96;

  --font-ui: "Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo", sans-serif;
  --font-display: "Noto Serif KR", "Apple SD Gothic Neo", serif;

  --wrap: 1180px;
  --wrap-narrow: 940px;
  --r: 16px;
  --r-lg: 22px;
  --head-h: 66px;
  --tab-h: 52px;

  --sh-1: 0 1px 2px rgba(20,22,26,.04), 0 6px 16px rgba(20,22,26,.05);
  --sh-2: 0 2px 4px rgba(20,22,26,.05), 0 14px 34px rgba(20,22,26,.09);
  --sh-3: 0 4px 8px rgba(20,22,26,.06), 0 28px 60px rgba(20,22,26,.14);
  --sh-red: 0 10px 30px rgba(212,30,38,.24);

  --ease: cubic-bezier(.22,.7,.25,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}


*{ box-sizing:border-box; margin:0; padding:0 }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100% }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto } }

body{
  font-family:var(--font-ui);
  background:var(--paper); color:var(--ink);
  line-height:1.72; letter-spacing:-0.011em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  word-break:keep-all; overflow-wrap:break-word; overflow-x:clip;
}
img{ max-width:100%; display:block }
a{ color:inherit; text-decoration:none }
::selection{ background:var(--red); color:#fff }
:focus-visible{ outline:2px solid var(--red); outline-offset:3px; border-radius:4px }

.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:24px }
.wrap-n{ max-width:var(--wrap-narrow); margin-inline:auto; padding-inline:24px }
.pc-br{ display:none }
@media (min-width:760px){ .pc-br{ display:inline } }

/* top red hairline (masthead cue) */
.topline{ height:4px; background:var(--red) }

/* ── Typography ─────────────────────────────── */
.serif{ font-family:var(--font-display); font-weight:600; letter-spacing:-0.02em }
.display{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(33px, 5.6vw, 60px); line-height:1.24; letter-spacing:-0.03em;
}
.h2{ font-family:var(--font-display); font-weight:700; font-size:clamp(26px,3.7vw,40px); line-height:1.32; letter-spacing:-0.025em }
.h2-sub{ font-size:.46em; font-family:var(--font-ui); font-weight:600; color:var(--ink-weak); margin-left:.4em; letter-spacing:0 }

.kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size:13px; font-weight:800; letter-spacing:.11em; color:var(--red);
  text-transform:uppercase; margin-bottom:16px;
}
.kicker::before{
  content:""; width:9px; height:9px; background:var(--red); border-radius:2px;
  animation:pulseDot 2.6s var(--ease) infinite;
}
.kicker.on-ink{ color:#FF6A5F }
.kicker.on-ink::before{ background:#FF6A5F }
@keyframes pulseDot{ 0%,100%{ transform:scale(1); opacity:1 } 50%{ transform:scale(.55); opacity:.5 } }
@media (prefers-reduced-motion: reduce){ .kicker::before{ animation:none } }

.sec-lede{ margin-top:18px; max-width:60ch; font-size:clamp(15px,1.9vw,17.5px); color:var(--ink-2); line-height:1.85 }

/* keyword — slow color reveal + breathing underline */
.kw{ position:relative; white-space:nowrap; color:var(--ink);
     transition:color 1.1s var(--ease) .15s; }
.kw::after{
  content:""; position:absolute; left:-1px; right:-1px; bottom:.01em; height:.1em;
  background:var(--red); border-radius:3px; transform:scaleX(0); transform-origin:left;
  transition:transform .75s var(--ease-out) .1s;
}
.in .kw::after{ transform:scaleX(1) }
.in .kw{ color:var(--red-deep) }
.kw.breathe::after{ animation:breatheLine 3.6s ease-in-out 1.1s infinite }
@keyframes breatheLine{ 0%,100%{ opacity:1 } 50%{ opacity:.45 } }
@media (prefers-reduced-motion: reduce){
  .kw::after{ transition:none; transform:scaleX(1) } .in .kw{ color:var(--red-deep) }
  .kw.breathe::after{ animation:none }
}
/* on dark */
.on-ink .kw, .doctor-body .kw{ color:var(--on-ink); transition:color 1.1s var(--ease) .15s }
.in .on-ink .kw, .doctor-body.in .kw{ color:#FF7B70 }

/* ── Buttons ────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  height:54px; padding-inline:30px; border-radius:999px;
  font-size:15.5px; font-weight:700; letter-spacing:-0.01em; position:relative; overflow:hidden;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), background .25s, color .25s;
}
.btn:active{ transform:scale(.97) }
.btn-primary{ background:var(--red); color:#fff; box-shadow:var(--sh-red) }
.btn-primary:hover{ background:var(--red-deep); transform:translateY(-2px); box-shadow:0 16px 38px rgba(212,30,38,.34) }
.btn-ghost{ background:#fff; color:var(--ink); box-shadow:inset 0 0 0 1.5px var(--line) }
.btn-ghost:hover{ box-shadow:inset 0 0 0 1.5px var(--ink); transform:translateY(-2px) }
.btn-sm{ height:42px; padding-inline:19px; font-size:14px }
.btn .arr{ transition:transform .3s var(--ease) }
.btn:hover .arr{ transform:translateX(3px) }

/* ── Logo lockup (v2: 하트 문양+워드마크 밀착, 영문 제거) ── */
/* 로고 = 인라인 <symbol>(#hc-mark, #hc-word) + <use>. 정의는 tools/brand-defs.snippet.html(gen_brand.py 생성) — index.html·생성기에 삽입.
   두 svg는 같은 좌표계(심볼 높이 기준)라 height만 맞추면 원본 배치 그대로. 크기는 .brand의 --brand-h 로 조절. */
.brand{ --brand-h:30px; display:inline-flex; align-items:center; gap:0; height:var(--brand-h); text-decoration:none }
.brand-mark{ height:100%; width:auto; aspect-ratio:1/1; flex:0 0 auto; display:block; color:var(--red);
  transform-origin:50% 50%; animation:heartbeat 2.4s var(--ease) infinite }
.brand-word{ height:100%; width:auto; aspect-ratio:581.42/129.79; flex:0 0 auto; display:block }
@keyframes heartbeat{
  0%,72%,100%{ transform:scale(1) } 78%{ transform:scale(1.09) } 84%{ transform:scale(.98) } 90%{ transform:scale(1.03) }
}
@media (prefers-reduced-motion: reduce){ .brand-mark{ animation:none } }
/* 지점 라벨 — 여의도 (본점 표기는 2026-09-15 원장 요청으로 제거) */
.brand-branch{ display:inline-flex; align-items:center; gap:6px; margin-left:10px; padding-left:11px; border-left:1.5px solid var(--line) }
.brand-branch i{ font-style:normal; font-size:13px; font-weight:700; color:var(--ink-2); letter-spacing:-0.01em }
@media (max-width:460px){ .brand-branch{ display:none } }
/* 큰 로고(브랜드 밴드/문구용) */
.brand-lg{ --brand-h:clamp(40px,5vw,56px) }
/* 다크 배경 — 로고 원본의 백색판(F9F9F9) */
.on-dark .brand-mark{ color:#F9F9F9 }
.on-dark .brand-word{ --brand-red:#F9F9F9; --brand-ink:#F9F9F9 }
.on-dark .brand-branch{ border-color:rgba(255,255,255,.2) }
.on-dark .brand-branch i{ color:var(--on-ink-2) }

/* ── 개원 밴드 — 마을버스 광고 시안(v3) 구성: 흰 면(원장 사진 · "여의도,") + 사선으로 이어지는 적색 면("심장내과" · 개원 시점) ── */
.open-band{ position:relative; overflow:hidden; background:#fff; border-top:1px solid var(--line) }
.open-band-inner{ position:relative; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); align-items:stretch; min-height:380px }
.ob-left{ display:flex; align-items:flex-end; gap:clamp(14px,3vw,34px); padding-top:36px }
.ob-photo{ width:clamp(150px,22vw,250px); height:auto; display:block; align-self:flex-end; object-fit:cover; object-position:top;
  mask-image:linear-gradient(to bottom, #000 82%, transparent 100%); -webkit-mask-image:linear-gradient(to bottom, #000 82%, transparent 100%) }
.ob-copy{ padding:0 clamp(64px,7.5vw,120px) 46px 0; align-self:center }
.ob-kicker{ display:flex; align-items:center; gap:6px; font-size:clamp(13px,1.3vw,15px); font-weight:800; color:var(--ink-2); letter-spacing:-0.01em; white-space:nowrap }
.ob-line,.ob-exit{ display:inline-grid; place-items:center; width:20px; height:20px; border-radius:50%; font-size:11.5px; font-weight:800; color:#fff }
.ob-line{ background:#BDA24C } .ob-exit{ background:#8A8A8A; margin-left:2px }
.ob-word{ font-family:var(--font-display); font-weight:700; font-size:clamp(42px,6.4vw,84px); line-height:1; letter-spacing:-0.04em; color:var(--red); margin:10px 0 12px }
.ob-sub{ font-size:clamp(13px,1.3vw,15px); color:var(--ink-3) } .ob-sub b{ color:var(--ink); font-weight:800 }
.ob-right{ position:relative; color:#fff; display:flex; flex-direction:column; justify-content:center; padding:44px 0 44px clamp(34px,5vw,72px) }
.ob-right::before{ content:""; position:absolute; top:0; bottom:0; left:0; right:-50vw; background:linear-gradient(105deg, var(--red) 0%, var(--red) 55%, var(--red-deep) 100%);
  transform:skewX(-11deg); transform-origin:top left; z-index:-1 }
.open-band{ isolation:isolate }
.ob-word-r{ color:#fff; margin:0 0 18px }
.ob-date{ display:inline-block; align-self:flex-start; background:#fff; color:var(--red); font-weight:800; font-size:clamp(15px,1.7vw,20px); letter-spacing:-0.01em; padding:9px 18px; border-radius:6px }
.ob-ecg{ width:min(420px,70%); height:40px; margin-top:22px; color:rgba(255,255,255,.75) }
.ob-ecg path{ stroke-dasharray:900; stroke-dashoffset:900; animation:ecgdraw 3s var(--ease) .3s forwards }
@media (max-width:820px){
  .open-band-inner{ grid-template-columns:1fr }
  .ob-left{ padding-top:22px; gap:14px } .ob-photo{ width:clamp(120px,36vw,170px) } .ob-copy{ padding:0 0 22px }
  .ob-word{ font-size:clamp(40px,12vw,58px) }
  .ob-right{ padding:34px 0 40px } .ob-right::before{ left:-50vw; right:-50vw; top:-1px; transform:skewY(-3deg); transform-origin:top left }
  .ob-kicker{ white-space:normal; flex-wrap:wrap; gap:4px; font-size:12.5px }
}

/* ── Header + tab nav ───────────────────────── */
.site-head{ position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.86); backdrop-filter:blur(16px) saturate(1.4); -webkit-backdrop-filter:blur(16px) saturate(1.4);
  border-bottom:1px solid transparent; transition:border-color .3s, box-shadow .3s; }
.site-head.scrolled{ border-bottom-color:var(--line); box-shadow:0 4px 20px rgba(20,22,26,.04) }
.head-bar{ max-width:var(--wrap); margin-inline:auto; padding-inline:24px; height:var(--head-h);
  display:flex; align-items:center; justify-content:space-between }
.head-cta{ display:flex; align-items:center; gap:13px }
.head-badge{ font-size:12px; font-weight:800; color:var(--red); background:var(--red-soft);
  padding:7px 13px; border-radius:999px; white-space:nowrap; letter-spacing:-0.01em }
@media (max-width:560px){ .head-badge{ display:none } }

.tab-nav{ border-bottom:1px solid var(--line); position:relative; background:rgba(255,255,255,.7); backdrop-filter:blur(10px) }
.tab-nav::after{ content:""; position:absolute; top:0; right:0; bottom:1px; width:40px;
  background:linear-gradient(to right,transparent,var(--paper)); pointer-events:none }
@media (min-width:920px){ .tab-nav::after{ display:none } }
.tab-track{ max-width:var(--wrap); margin-inline:auto; padding-inline:14px; display:flex; gap:2px; height:var(--tab-h);
  overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity }
.tab-track::-webkit-scrollbar{ display:none }
.tab{ flex:0 0 auto; display:inline-flex; align-items:center; padding-inline:17px; scroll-snap-align:start;
  font-size:15px; font-weight:600; color:var(--ink-3); position:relative; transform-origin:center bottom; transition:color .2s, transform .32s var(--ease) }
.tab:hover{ color:var(--ink) }
.tab.active{ color:var(--red); font-weight:800; transform:scale(1.1) }
.tab::after{ content:""; position:absolute; left:14px; right:14px; bottom:0; height:2.5px; background:var(--red);
  border-radius:3px 3px 0 0; transform:scaleX(0); transform-origin:center; transition:transform .3s var(--ease) }
.tab.active::after{ transform:scaleX(1) }

/* ── Section rhythm ─────────────────────────── */
.sec{ padding:clamp(76px,9vw,124px) 0; scroll-margin-top:calc(var(--head-h) + var(--tab-h) + 6px) }
.sec-tint{ background:var(--paper-2) }
.sec-ink{ background:var(--ink-bg); color:var(--on-ink) }
.sec-head{ max-width:760px }

/* ═══════════ HERO ═══════════ */
.hero{ padding:clamp(26px,4vw,46px) 0 clamp(64px,8vw,104px); position:relative; overflow:hidden }
.hero-kicker{ text-align:center; margin-bottom:20px }
.hero-figure{ position:relative; border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--sh-3); border:1px solid var(--line);
  opacity:0; transform:translateY(26px) scale(.99); transition:opacity 1s var(--ease-out), transform 1s var(--ease-out) }
.hero-figure.in{ opacity:1; transform:none }
.hero-figure figcaption{ padding:11px 16px 12px; font-size:12.5px; line-height:1.5; color:var(--ink-3); background:#fff; border-top:1px solid var(--line); text-align:center; position:relative; z-index:2 }
/* 히어로 슬라이드 — 예고편처럼 오른쪽에서 쓸어 들어오는 와이프 + 머무는 동안 천천히 확대(켄 번즈). 스크롤 줌은 .hero-slides 전체에. */
.hero-slides{ position:relative; aspect-ratio:1652/952; overflow:hidden; background:#0B0D12; will-change:transform; transform-origin:center 42% }
.hero-slide{ position:absolute; inset:0; z-index:0; clip-path:inset(0 0 0 100%) }
.hero-slide img{ width:100%; height:100%; display:block; object-fit:cover; transform:scale(1) }
.hero-slide.is-active{ z-index:2; clip-path:inset(0); transition:clip-path 1.15s cubic-bezier(.76,0,.18,1) }
.hero-slide.is-active img{ transform:scale(1.05); transition:transform 8.5s linear }
.hero-slide.is-prev{ z-index:1; clip-path:inset(0) }
.hero-slide.is-prev img{ transform:scale(1.05) }
.hero-dots{ position:absolute; right:14px; bottom:14px; z-index:3; display:flex; gap:7px; padding:6px 8px; border-radius:999px; background:rgba(10,12,18,.42); backdrop-filter:blur(6px) }
.hero-dots button{ width:8px; height:8px; border-radius:50%; border:0; padding:0; background:rgba(255,255,255,.45); cursor:pointer; transition:width .3s var(--ease), background .3s }
.hero-dots button[aria-selected="true"]{ width:22px; border-radius:4px; background:#fff }
.hero-dots button:focus-visible{ outline:2px solid #fff; outline-offset:2px }
@media (prefers-reduced-motion: reduce){ .hero-slide.is-active, .hero-slide.is-active img{ transition:none } .hero-slide.is-active img{ transform:none } }
@media (max-width:560px){ .hero-dots{ bottom:10px; right:10px } }
.hero-figure::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(255,255,255,.05); border-radius:inherit; pointer-events:none }
.hero-copy{ max-width:960px; margin:clamp(40px,5vw,60px) auto 0; text-align:center }
.hero-copy .display{ margin-bottom:22px }
/* 히어로 H1 — 2줄 유지 위해 살짝 축소 */
.hero-h1{ font-size:clamp(24px,3.6vw,40px); line-height:1.34; letter-spacing:-0.025em }
.hero-eyebrow-serif{ font-family:var(--font-display); font-weight:600; font-size:clamp(17px,2.4vw,22px);
  color:var(--ink); letter-spacing:-0.02em; margin-bottom:14px }
.hero-copy .lede{ font-size:clamp(15.5px,2vw,18px); color:var(--ink-2); line-height:1.85; max-width:62ch; margin-inline:auto }
.hero-actions{ display:flex; flex-wrap:wrap; gap:13px; justify-content:center; margin-top:34px }
.hero-proof{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:20px clamp(26px,5vw,60px);
  margin-top:clamp(40px,5vw,58px); padding-top:32px; border-top:1px solid var(--line); max-width:640px; margin-inline:auto }
.hero-proof li{ display:flex; flex-direction:column; gap:4px; align-items:center }
.hero-proof strong{ font-family:var(--font-display); font-size:clamp(26px,3.6vw,36px); font-weight:700; line-height:1; letter-spacing:-0.02em }
.hero-proof strong .u{ color:var(--red); font-size:.62em; margin-left:1px }
.hero-proof small{ font-size:13px; color:var(--ink-weak); font-weight:600 }

/* ── ECG divider ────────────────────────────── */
.ecg-rule{ height:52px; color:var(--red); opacity:.9; margin-top:10px }
.ecg-rule svg{ width:100%; height:100% }
.ecg-rule path{ stroke-dasharray:2600; stroke-dashoffset:2600; animation:ecgdraw 3.6s var(--ease) .4s forwards }
@keyframes ecgdraw{ to{ stroke-dashoffset:0 } }
@media (prefers-reduced-motion: reduce){ .ecg-rule path{ animation:none; stroke-dashoffset:0 } }

/* ═══════════ PREMIUM CARD BASE ═══════════ */
.card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--sh-1); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
  overflow:hidden }
.card::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--red);
  transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease-out) }
.card:hover{ transform:translateY(-6px); box-shadow:var(--sh-3); border-color:#E3D9D2 }
.card:hover::before{ transform:scaleX(1) }

/* pillars */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:clamp(40px,5vw,60px) }
@media (max-width:860px){ .pillars{ grid-template-columns:1fr } }
.pillar{ padding:36px 30px 38px }
.pillar-ico{ width:46px; height:46px; border-radius:12px; background:var(--red-soft); display:grid; place-items:center; margin-bottom:20px }
.pillar-ico svg{ width:24px; height:24px; stroke:var(--red); fill:none; stroke-width:1.8 }
.pillar-num{ position:absolute; top:26px; right:28px; font-family:var(--font-display); font-size:13px; font-weight:700; color:var(--line); letter-spacing:.08em }
.pillar h3{ font-size:20px; font-weight:800; letter-spacing:-0.025em; margin-bottom:11px }
.pillar p{ font-size:14.5px; color:var(--ink-2); line-height:1.82 }

/* ═══════════ DOCTOR ═══════════ */
.doctor-grid{ display:grid; grid-template-columns:370px 1fr; gap:clamp(40px,6vw,80px); align-items:center }
@media (max-width:900px){ .doctor-grid{ grid-template-columns:1fr; gap:38px } }
.doctor-photo{ position:relative }
.photo-blend{ background:linear-gradient(160deg,#F4EFE9,#E9DECF 55%,#D8C7AE);
  border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/5; box-shadow:0 30px 70px rgba(0,0,0,.5);
  position:relative }
.photo-blend::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(255,255,255,.14); border-radius:inherit }
.photo-blend img{ width:100%; height:100%; object-fit:cover; object-position:50% 0%;
  transform:scale(1.4); transform-origin:50% 6%; mix-blend-mode:multiply }
.photo-tag{ position:absolute; left:16px; bottom:16px; z-index:2; background:var(--red); color:#fff;
  font-size:12px; font-weight:800; padding:7px 13px; border-radius:999px; box-shadow:var(--sh-red); letter-spacing:-0.01em }
.doctor-photo figcaption{ margin-top:14px; font-size:12.5px; color:var(--on-ink-weak); text-align:center }
.doctor-lead{ font-family:var(--font-display); font-size:clamp(17px,2.2vw,21px); font-weight:600; color:var(--on-ink);
  margin-top:22px; letter-spacing:-0.01em; border-left:3px solid var(--red); padding-left:18px }
.doctor-note{ margin-top:14px; font-size:14.5px; color:var(--on-ink-2); max-width:52ch }
.cred-group{ margin-top:30px }
.cred-group h4{ font-size:12px; font-weight:800; letter-spacing:.12em; color:#FF7B70; margin-bottom:14px }
.cred-list{ list-style:none; display:grid; gap:11px }
.cred-list li{ position:relative; padding-left:23px; font-size:16px; font-weight:500; color:var(--on-ink) }
.cred-list li::before{ content:""; position:absolute; left:0; top:.6em; width:11px; height:2px; background:var(--red); border-radius:2px }
.cred-list.sm{ gap:9px } .cred-list.sm li{ font-size:14.5px; font-weight:400; color:var(--on-ink-2) }
.cred-columns{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,4vw,48px);
  margin-top:clamp(44px,6vw,64px); padding-top:clamp(36px,5vw,48px); border-top:1px solid rgba(243,241,236,.14) }
@media (max-width:860px){ .cred-columns{ grid-template-columns:1fr; gap:6px } }
.cred-columns .cred-group{ margin-top:0 }
@media (max-width:860px){ .cred-columns .cred-group{ margin-top:24px } }

/* media strip (5 cards) */
.media-block{ margin-top:clamp(46px,6vw,66px) }
.media-title{ font-size:12px; font-weight:800; letter-spacing:.12em; color:#FF7B70 }
.media-sub{ margin-top:10px; font-size:14.5px; color:var(--on-ink-2); max-width:64ch }
.media-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:22px }
@media (max-width:980px){ .media-strip{ grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:min(70vw,300px);
  overflow-x:auto; scroll-snap-type:x mandatory; margin-inline:-24px; padding:4px 24px 14px; scrollbar-width:none } .media-strip::-webkit-scrollbar{ display:none } }
.media-card{ position:relative; border-radius:14px; overflow:hidden; scroll-snap-align:start; aspect-ratio:3/2;
  box-shadow:0 10px 30px rgba(0,0,0,.4); transition:transform .4s var(--ease), box-shadow .4s var(--ease) }
.media-card img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease) }
.media-card:hover{ transform:translateY(-4px) } .media-card:hover img{ transform:scale(1.05) }
.media-card figcaption{ position:absolute; left:0; right:0; bottom:0; padding:26px 14px 12px; color:#fff; font-size:12.5px; font-weight:700;
  background:linear-gradient(to top,rgba(8,8,10,.82),transparent) }
.media-card figcaption em{ font-style:normal; color:#FF7B70; display:block; font-size:11px; margin-bottom:2px; letter-spacing:.04em }

.explain-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:clamp(38px,5vw,54px) }
@media (max-width:760px){ .explain-grid{ grid-template-columns:1fr } }
.explain-card{ background:rgba(255,255,255,.045); border:1px solid rgba(243,241,236,.13); border-radius:var(--r); padding:26px 28px }
.explain-card h5{ font-size:15px; font-weight:700; color:var(--on-ink); margin-bottom:9px }
.explain-card h5::before{ content:"Q."; color:#FF7B70; margin-right:8px; font-weight:800 }
.explain-card p{ font-size:13.5px; line-height:1.85; color:var(--on-ink-2) }

/* ═══════════ 진료분야 (symptom) ═══════════ */
.clinic-block{ margin-top:clamp(46px,6vw,68px) }
.clinic-head{ display:flex; align-items:baseline; gap:15px; flex-wrap:wrap; margin-bottom:22px; padding-bottom:16px; border-bottom:2px solid var(--ink) }
.clinic-head h3{ font-family:var(--font-display); font-size:clamp(21px,2.7vw,26px); font-weight:700; letter-spacing:-0.02em }
.clinic-head h3 .dot{ color:var(--red) }
.clinic-head p{ font-size:14.5px; color:var(--ink-3); font-weight:500 }
.card-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px }
@media (max-width:960px){ .card-row{ grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(80vw,340px);
  overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:14px; margin-inline:-24px; padding-inline:24px; scrollbar-width:none } .card-row::-webkit-scrollbar{ display:none } .sym-card{ scroll-snap-align:start } }
.clinic-badge{ font-size:11.5px; font-weight:800; letter-spacing:.08em; color:#fff; background:var(--red);
  padding:5px 11px; border-radius:7px; align-self:center; box-shadow:var(--sh-red) }
.sym-card{ padding:26px 26px 28px }
.sym-top{ display:flex; align-items:center; gap:13px; margin-bottom:13px }
.sym-ico{ flex:0 0 auto; width:46px; height:46px; border-radius:14px; background:var(--red-soft);
  display:grid; place-items:center; transition:background .35s var(--ease), transform .35s var(--ease) }
.sym-ico svg{ width:24px; height:24px; fill:none; stroke:var(--red); stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round }
.sym-card:hover .sym-ico{ background:var(--red); transform:scale(1.07) rotate(-3deg) }
.sym-card:hover .sym-ico svg{ stroke:#fff }
.sym-card h4{ font-size:17.5px; font-weight:800; letter-spacing:-0.02em; line-height:1.32 }
.sym-card > p{ margin:0 0 16px; font-size:14px; color:var(--ink-2); line-height:1.78 }
.sym-tag{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.03em; color:var(--red);
  background:var(--red-soft); padding:4px 11px; border-radius:999px; margin-bottom:13px }
.sym-card ul{ list-style:none; display:grid; gap:11px; padding-top:2px }
.sym-card li{ position:relative; padding-left:26px; font-size:14px; font-weight:500; color:var(--ink-2) }
.sym-card li::before{ content:""; position:absolute; left:2px; top:.15em; width:16px; height:16px; border-radius:5px; background:var(--red-soft) }
.sym-card li::after{ content:""; position:absolute; left:6px; top:.45em; width:7px; height:4px; border-left:2px solid var(--red); border-bottom:2px solid var(--red); transform:rotate(-45deg) }

/* ═══════════ 정밀검사 (exam · real photos) ═══════════ */
.exam-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:clamp(42px,5vw,60px) }
@media (max-width:980px){ .exam-grid{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:600px){ .exam-grid{ grid-template-columns:1fr } }
.exam-card{ display:flex; flex-direction:column; text-align:left }
.exam-card .exam-media{ position:relative; aspect-ratio:16/11; overflow:hidden; background:#F3F1EC }
.exam-card .exam-media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease) }
.exam-card:hover .exam-media img{ transform:scale(1.055) }
.exam-media .exam-badge{ position:absolute; top:12px; left:12px; background:rgba(255,255,255,.94);
  color:var(--red); font-size:11.5px; font-weight:800; padding:5px 11px; border-radius:999px; letter-spacing:-0.01em; box-shadow:var(--sh-1) }
.exam-body{ padding:22px 24px 24px; display:flex; flex-direction:column; flex:1 }
.exam-body h3{ font-size:18px; font-weight:800; letter-spacing:-0.02em }
.exam-body p{ font-size:13.6px; color:var(--ink-2); line-height:1.75; margin:9px 0 16px; flex:1 }
.exam-more{ display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:700; color:var(--red) }
.exam-more .arr{ transition:transform .3s var(--ease) }
.exam-card:hover .exam-more .arr{ transform:translateX(4px) }
.exam-note{ margin-top:26px; font-size:13px; color:var(--ink-weak); text-align:center }

/* ═══════════ 공간 (floorplan) ═══════════ */
.space-wrap{ display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(32px,4vw,56px); align-items:center; margin-top:clamp(40px,5vw,56px) }
@media (max-width:900px){ .space-wrap{ grid-template-columns:1fr } }
.space-figure{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-2); background:#fff }
.space-figure img{ width:100%; display:block }
.space-points{ list-style:none; display:grid; gap:22px }
.space-point{ display:flex; gap:16px }
.space-point .n{ flex:0 0 auto; width:38px; height:38px; border-radius:11px; background:var(--red); color:#fff;
  display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:16px; box-shadow:var(--sh-red) }
.space-point h4{ font-size:16.5px; font-weight:800; letter-spacing:-0.02em; margin-bottom:5px }
.space-point p{ font-size:14px; color:var(--ink-2); line-height:1.75 }
.space-note{ margin-top:26px; font-size:12.5px; color:var(--ink-weak) }

/* ═══════════ 진료안내 (hours) ═══════════ */
.hours-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(40px,6vw,76px); align-items:center }
@media (max-width:860px){ .hours-grid{ grid-template-columns:1fr } }
.hours-card{ padding:16px 32px 26px }
.hours-table{ width:100%; border-collapse:collapse }
.hours-table th,.hours-table td{ padding:18px 4px; border-bottom:1px solid var(--line); font-size:16px }
.hours-table tr:last-child th,.hours-table tr:last-child td{ border-bottom:none }
.hours-table th{ font-weight:600; color:var(--ink-2); width:40%; text-align:left }
.hours-table td{ text-align:right }
.hours-table td strong{ font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:0 }
.hours-table .dim td,.hours-table .dim th{ color:var(--ink-weak); font-size:14.5px }
.hours-table .closed td{ color:var(--red); font-weight:800 }
.hours-note{ margin-top:16px; padding-top:16px; border-top:1px dashed var(--line); font-size:13.5px; color:var(--ink-weak); text-align:center }

/* ═══════════ 오시는길 (map + contact) ═══════════ */
.map-wrap{ display:block; margin-top:clamp(40px,5vw,56px); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-2); position:relative; background:var(--paper-2) }
.map-img{ width:100%; height:auto; aspect-ratio:2000/1271; object-fit:cover; display:block; background:#fff }
.map-cta{ position:absolute; right:14px; bottom:14px; z-index:3; background:var(--ink); color:#fff; font-size:12.5px; font-weight:700;
  padding:9px 13px; border-radius:999px; box-shadow:var(--sh-2) }
.map-wrap:hover .map-cta{ background:var(--red) }
.contact-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:22px }
@media (max-width:900px){ .contact-grid{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:520px){ .contact-grid{ grid-template-columns:1fr } }
.contact-card{ padding:26px 26px 28px }
.contact-card h3{ font-size:12.5px; font-weight:800; letter-spacing:.06em; color:var(--red); margin-bottom:13px; display:flex; align-items:center; gap:8px }
.contact-card h3 svg{ width:16px; height:16px; stroke:var(--red); fill:none; stroke-width:1.8 }
.contact-big{ font-size:clamp(16px,1.9vw,18px); font-weight:800; letter-spacing:-0.02em; margin-bottom:9px; line-height:1.45 }
.contact-card > p:last-child{ font-size:13.5px; color:var(--ink-3); line-height:1.72 }
.contact-card a{ color:var(--red); font-weight:600 }
.contact-card a.inline-link{ border-bottom:1.5px solid var(--red-soft) }

/* ═══════════ Footer ═══════════ */
.site-foot{ background:var(--ink-bg); color:var(--on-ink-weak); padding:58px 0 66px }
.foot-grid{ display:grid; gap:18px }
.foot-info{ font-size:13.5px; line-height:1.9 }
.foot-info a{ color:var(--on-ink); border-bottom:1px solid rgba(243,241,236,.24) }
.foot-legal{ font-size:12px; line-height:1.8; opacity:.7 }

/* ── reveal ─────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out) }
.reveal.in{ opacity:1; transform:none }
.reveal.d1{ transition-delay:.08s } .reveal.d2{ transition-delay:.16s } .reveal.d3{ transition-delay:.24s } .reveal.d4{ transition-delay:.32s }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none } }

/* ═══════════════════════════════════════════════
   Exam Detail Page
   ═══════════════════════════════════════════════ */
.subnav{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--ink-3); font-weight:600 }
.subnav a{ color:var(--ink-3); transition:color .2s } .subnav a:hover{ color:var(--red) }
.subnav .sep{ color:var(--line) }
.subnav b{ color:var(--ink) }

.ed-back{ display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:700; color:var(--red); margin-bottom:26px }
.ed-back .arr{ transition:transform .3s var(--ease) } .ed-back:hover .arr{ transform:translateX(-4px) }

.ed-hero{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(32px,4.5vw,64px); align-items:center }
@media (max-width:860px){ .ed-hero{ grid-template-columns:1fr; gap:32px } }
.ed-media{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-2); background:#F3F1EC; aspect-ratio:4/3 }
.ed-media img{ width:100%; height:100%; object-fit:cover }
.ed-badge{ display:inline-block; background:var(--red-soft); color:var(--red); font-size:12.5px; font-weight:800; padding:6px 13px; border-radius:999px; margin-bottom:16px; letter-spacing:-0.01em }
.ed-title{ font-family:var(--font-display); font-weight:700; font-size:clamp(28px,4vw,42px); line-height:1.24; letter-spacing:-0.03em }
.ed-lead{ margin-top:20px; font-size:clamp(15px,1.9vw,17px); color:var(--ink-2); line-height:1.86 }

.ed-cols{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:clamp(44px,6vw,68px) }
@media (max-width:720px){ .ed-cols{ grid-template-columns:1fr } }
.ed-panel{ padding:30px 30px 32px }
.ed-panel h3{ font-size:13px; font-weight:800; letter-spacing:.06em; color:var(--red); margin-bottom:18px; display:flex; align-items:center; gap:9px }
.ed-panel h3 .num{ font-family:var(--font-display) }
.ed-list{ list-style:none; display:grid; gap:14px }
.ed-list li{ position:relative; padding-left:28px; font-size:15.5px; color:var(--ink); font-weight:500; line-height:1.55 }
.ed-list li::before{ content:""; position:absolute; left:0; top:.2em; width:18px; height:18px; border-radius:6px; background:var(--red-soft) }
.ed-list.check li::after{ content:""; position:absolute; left:5px; top:.5em; width:8px; height:5px; border-left:2px solid var(--red); border-bottom:2px solid var(--red); transform:rotate(-45deg) }
.ed-list.dot li::after{ content:""; position:absolute; left:6px; top:.52em; width:6px; height:6px; border-radius:50%; background:var(--red) }

.ed-cta{ margin-top:clamp(48px,6vw,72px); background:var(--ink-bg); color:var(--on-ink); border-radius:var(--r-lg);
  padding:clamp(36px,5vw,56px); text-align:center }
.ed-cta h3{ font-family:var(--font-display); font-weight:700; font-size:clamp(22px,3vw,30px); letter-spacing:-0.02em }
.ed-cta p{ margin-top:12px; color:var(--on-ink-2); font-size:15px }
.ed-cta .btn{ margin-top:26px }

.ed-others{ margin-top:clamp(56px,7vw,84px) }
.ed-others h4{ font-size:12.5px; font-weight:800; letter-spacing:.1em; color:var(--red); margin-bottom:20px }
.ed-others-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px }
@media (max-width:820px){ .ed-others-grid{ grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:min(60vw,220px);
  overflow-x:auto; margin-inline:-24px; padding:2px 24px 12px; scrollbar-width:none } .ed-others-grid::-webkit-scrollbar{ display:none } }
.ed-other{ display:block; border-radius:12px; overflow:hidden; border:1px solid var(--line); background:#fff; box-shadow:var(--sh-1);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease) }
.ed-other:hover{ transform:translateY(-4px); box-shadow:var(--sh-2) }
.ed-other img{ width:100%; aspect-ratio:16/10; object-fit:cover }
.ed-other span{ display:block; padding:12px 14px; font-size:13.5px; font-weight:700 }

/* map markers (Leaflet divIcon) */
.mk-pin{ width:42px; height:50px; filter:drop-shadow(0 6px 8px rgba(20,22,26,.35)) }
.mk-pin svg{ width:42px; height:50px }
.mk-pin .heart{ fill:var(--red); stroke:#fff; stroke-width:2 }
.mk-station{ background:var(--ink); color:#fff; font-size:11.5px; font-weight:700; white-space:nowrap;
  padding:5px 10px; border-radius:999px; box-shadow:var(--sh-2); letter-spacing:-0.01em }
.leaflet-container{ font-family:var(--font-ui) }
.leaflet-popup-content{ font-size:13px; line-height:1.5 }
.leaflet-popup-content b{ font-weight:800 }

/* ═══════════ WHY 하트케어내과 ═══════════ */
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:clamp(44px,5vw,64px) }
@media (max-width:900px){ .why-grid{ grid-template-columns:1fr } }
.why-card{ position:relative; background:var(--ink-bg-2); border:1px solid rgba(243,241,236,.1); border-radius:var(--r-lg);
  padding:34px 30px 30px; overflow:hidden; transition:transform .4s var(--ease), border-color .4s, box-shadow .4s }
.why-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease-out) }
.why-card:hover{ transform:translateY(-6px); border-color:rgba(255,110,95,.4); box-shadow:0 24px 60px rgba(0,0,0,.4) }
.why-card:hover::before{ transform:scaleX(1) }
.why-num{ font-family:var(--font-display); font-size:40px; font-weight:700; color:var(--red); line-height:1; display:block }
.why-tag{ display:inline-block; margin-top:16px; font-size:11.5px; font-weight:800; letter-spacing:.02em; color:#FF7B70;
  background:rgba(255,110,95,.12); padding:5px 11px; border-radius:999px }
.why-card h3{ font-size:20px; font-weight:800; letter-spacing:-0.025em; color:var(--on-ink); margin:16px 0 12px; line-height:1.35 }
.why-card p{ font-size:14.5px; line-height:1.82; color:var(--on-ink-2) }
.why-card p b{ color:var(--on-ink); font-weight:700 }
.why-foot{ display:block; margin-top:20px; padding-top:18px; border-top:1px solid rgba(243,241,236,.1);
  font-size:13px; font-weight:700; color:#FF7B70 }

/* ═══════════ 공간 개념도 ═══════════ */
.cmap-panel{ padding:18px 18px 14px; display:block }
.cmap-cap{ font-size:12.5px; font-weight:700; color:var(--ink-3); margin-bottom:10px }
.cmap-cap b{ color:var(--red) }
.cmap{ border-radius:12px; overflow:hidden }
.cmap svg{ display:block; width:100%; height:auto }
/* 메인 공간 섹션 개념도 오버뷰 */
.space-map{ margin-top:clamp(30px,4vw,48px); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-1) }
.space-map svg, .space-map img{ display:block; width:100%; height:auto }
.space-map-cap{ margin-top:14px; font-size:13px; color:var(--ink-weak); text-align:center }

/* 푸터 개원소식 CTA */
.foot-cta{ justify-self:start; margin-bottom:6px }
@media (max-width:560px){ .foot-cta{ width:100% } }

/* ═══════════ 브랜드 문구 밴드 (365일 …) ═══════════ */
.brand-band{ background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:clamp(30px,4vw,46px) 0 }
.brand-band .wrap{ display:flex; flex-direction:column; align-items:center; gap:15px; text-align:center }
.brand-band-lead{ font-family:var(--font-display); font-size:clamp(16px,2.3vw,22px); font-weight:600;
  color:var(--ink-2); letter-spacing:-0.02em }
.brand-band-lead b{ color:var(--red); font-weight:700 }
/* 푸터 태그라인 */
.foot-tagline{ font-family:var(--font-display); font-size:clamp(15px,2vw,18px); font-weight:600;
  color:var(--on-ink-2); letter-spacing:-0.02em; margin-bottom:12px }
.foot-tagline b{ color:#FF7B70; font-weight:700 }

/* ═══════════ 정밀검사 강점 보강 ═══════════ */
/* 세부페이지: 핵심 장점 콜아웃 */
.ed-highlight{ margin-top:16px; padding:13px 17px; background:var(--red-soft); border-left:3px solid var(--red);
  border-radius:8px; font-size:14.5px; font-weight:700; color:var(--red-deep); line-height:1.6 }
/* 세부페이지: 비교표 */
.ed-compare{ margin-top:clamp(28px,4vw,44px) }
.ed-compare h3{ font-size:15px; font-weight:800; margin-bottom:14px; display:flex; align-items:center; gap:8px }
.ed-compare h3::before{ content:""; width:16px; height:2px; background:var(--red) }
.ed-compare table{ width:100%; border-collapse:collapse; border:1px solid var(--line); border-radius:12px; overflow:hidden }
.ed-compare th,.ed-compare td{ padding:13px 14px; font-size:14px; text-align:center; border-bottom:1px solid var(--line) }
.ed-compare thead th{ background:var(--paper-2); font-weight:800 }
.ed-compare thead th:last-child{ background:var(--red-soft); color:var(--red) }
.ed-compare th:first-child,.ed-compare td:first-child{ text-align:left; font-weight:700; color:var(--ink-2) }
.ed-compare td.hi{ color:var(--red-deep); font-weight:800; background:var(--red-soft-2) }
.ed-compare tbody tr:last-child td{ border-bottom:none }
/* 세부페이지: 검사 진행·이용 안내 */
.ed-spec{ margin-top:clamp(28px,4vw,44px) }
.ed-spec h3{ font-size:15px; font-weight:800; margin-bottom:14px; display:flex; align-items:center; gap:8px }
.ed-spec h3::before{ content:""; width:16px; height:2px; background:var(--red) }
.ed-spec dl{ border:1px solid var(--line); border-radius:12px; overflow:hidden }
.ed-spec dl > div{ display:grid; grid-template-columns:138px minmax(0,1fr); border-bottom:1px solid var(--line) }
.ed-spec dl > div:last-child{ border-bottom:none }
.ed-spec dt{ padding:15px 16px; background:var(--paper-2); font-weight:700; font-size:14px; color:var(--ink-2) }
.ed-spec dd{ margin:0; padding:15px 16px; font-size:15px; color:var(--ink); line-height:1.68; min-width:0 }
.ed-spec dd ol{ margin:0; padding-left:19px; display:grid; gap:7px }
@media (max-width:620px){
  .ed-spec dl > div{ grid-template-columns:1fr }
  .ed-spec dt{ padding:14px 16px 0; background:transparent; color:var(--red); font-size:12.5px; letter-spacing:.05em }
  .ed-spec dd{ padding-top:7px }
}

/* 세부페이지: 자주 묻는 질문 */
.ed-faq{ margin-top:clamp(28px,4vw,44px) }
.ed-faq h3{ font-size:15px; font-weight:800; margin-bottom:14px; display:flex; align-items:center; gap:8px }
.ed-faq h3::before{ content:""; width:16px; height:2px; background:var(--red) }
.ed-faq .qa{ border:1px solid var(--line); border-radius:12px; padding:18px 20px; background:var(--paper) }
.ed-faq .qa + .qa{ margin-top:10px }
.ed-faq .q{ font-weight:700; font-size:15.5px; color:var(--ink); line-height:1.55; display:flex; gap:9px }
.ed-faq .q::before{ content:"Q"; color:var(--red); font-family:var(--font-display); font-weight:700; flex:none }
.ed-faq .a{ margin-top:9px; padding-left:21px; font-size:15px; color:var(--ink-2); line-height:1.72 }

/* 세부페이지: 공통 강점 밴드 */
.ed-strengths{ margin-top:clamp(28px,4vw,44px); background:var(--paper-2); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:clamp(26px,3.5vw,40px) }
.ed-strengths h3{ font-family:var(--font-display); font-weight:700; font-size:clamp(18px,2.4vw,22px); text-align:center; margin-bottom:22px }
.ed-str-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px }
@media (max-width:760px){ .ed-str-grid{ grid-template-columns:1fr; gap:16px } }
.ed-str{ text-align:center }
.ed-str-ic{ display:inline-grid; place-items:center; width:46px; height:46px; border-radius:13px; background:#fff;
  box-shadow:var(--sh-1); margin-bottom:12px }
.ed-str-ic svg{ width:23px; height:23px; stroke:var(--red); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round }
.ed-str b{ display:block; font-size:16px; font-weight:800; letter-spacing:-0.02em; margin-bottom:7px }
.ed-str p{ font-size:13.5px; color:var(--ink-2); line-height:1.7 }
/* 메인 정밀검사 강점 스트립 */
.exam-strengths{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:clamp(28px,3.5vw,40px) }
@media (max-width:760px){ .exam-strengths{ grid-template-columns:1fr } }
.exam-str{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:17px 20px; box-shadow:var(--sh-1) }
.es-ic{ flex:0 0 auto; width:42px; height:42px; border-radius:12px; background:var(--red-soft); display:grid; place-items:center }
.es-ic svg{ width:22px; height:22px; stroke:var(--red); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round }
.exam-str b{ display:block; font-size:15px; font-weight:800; letter-spacing:-0.02em }
.exam-str span{ font-size:12.5px; color:var(--ink-weak) }

/* 정밀검사 카드 — 장점 키워드 뱃지 */
.exam-body p{ flex:none }
.exam-tags{ display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 16px }
.exam-tag{ font-size:11.5px; font-weight:800; color:var(--red); background:var(--red-soft);
  padding:5px 10px; border-radius:7px; letter-spacing:-0.01em; line-height:1;
  box-shadow:inset 0 0 0 1px rgba(212,30,38,.14) }
.exam-card .exam-more{ margin-top:auto }

/* 법정 고지 링크 (개인정보처리방침·비급여) */
.foot-links{margin:8px 0 0;font-size:.86rem}
.foot-links a{text-decoration:underline;text-underline-offset:3px}
