/* ═════════════════════════════════════════════════════════════
   병원 소개: 경영이념/비전(11), 병원장 인사말(12), 병원 특장점(13)
   ═════════════════════════════════════════════════════════════ */
.ab { display: grid; gap: 56px; }
.ab-head { margin-bottom: 24px; }
.ab-head h2 { font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; letter-spacing: -0.03em; }
.ab-head p { margin: 8px 0 0; color: var(--muted); }

/* ── 비전 ── */
.ab-vision {
  position: relative; overflow: hidden;
  padding: 56px 40px 48px;
  border-radius: 28px;
  background: var(--brand-grad);
  color: #fff; text-align: center;
  box-shadow: var(--shadow-2);
}
.ab-vision-word {
  display: flex; justify-content: center; gap: clamp(6px, 1.6vw, 18px);
  margin: 0 0 18px;
  font-size: clamp(44px, 8vw, 96px); font-weight: 900; letter-spacing: 0.02em; line-height: 1;
}
.ab-vision-word span { color: rgb(255 255 255 / 0.92); text-shadow: 0 10px 30px rgb(60 0 40 / 0.25); }
.ab-vision h2 { font-size: clamp(24px, 3vw, 36px); font-weight: 800; letter-spacing: -0.03em; }
.ab-vision-sub { margin: 10px 0 0; font-size: 16px; color: rgb(255 255 255 / 0.85); }

/* ── 여섯 가지 약속 ── */
.ab-value-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ab-value {
  position: relative; overflow: hidden;
  padding: 26px 24px 24px;
  border-radius: var(--r-xl);
  background: var(--paper);
  box-shadow: var(--shadow-1);
}
.ab-value:hover { box-shadow: var(--shadow-2); }
.ab-letter {
  position: absolute; right: -6px; bottom: -34px;
  font-size: 150px; font-weight: 900; line-height: 1;
  color: var(--grey-100);
  pointer-events: none;
}
.ab-value h3 { position: relative; font-size: 22px; font-weight: 800; letter-spacing: -0.01em; }
.ab-value h3 strong {
  font-size: 34px; font-weight: 900;
  background: var(--brand-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ab-value p { position: relative; margin: 10px 0 0; font-size: 15px; color: var(--muted); line-height: 1.7; }

/* ── 인사말 ── */
.ab-greet { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 44px; align-items: start; }
.ab-greet-photo { margin: 0; position: sticky; top: calc(var(--header-h) + 24px); }
.ab-greet-photo img { display: block; width: 100%; height: auto; border-radius: 28px; box-shadow: var(--shadow-2); }
.ab-greet-photo figcaption { margin-top: 12px; font-size: 13px; color: var(--muted); text-align: center; }
.ab-greet-en {
  margin: 0; font-size: 14px; font-weight: 800; letter-spacing: 0.08em;
  background: var(--brand-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ab-greet-body h2 { margin: 8px 0 22px; font-size: clamp(26px, 3vw, 36px); font-weight: 800; letter-spacing: -0.035em; }
.ab-greet-body p { margin: 0 0 16px; font-size: 16.5px; line-height: 1.9; color: var(--ink); max-width: 40em; }

.ab-quote {
  margin: 0; padding: 44px 48px;
  border-radius: 28px;
  background: var(--grey-50);
  position: relative;
}
.ab-quote::before {
  content: "“"; position: absolute; left: 28px; top: -6px;
  font-size: 120px; font-weight: 900; line-height: 1;
  background: var(--brand-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ab-quote p { position: relative; margin: 0; font-size: clamp(20px, 2.4vw, 28px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.5; color: var(--ink); }
.ab-quote footer { margin-top: 16px; font-size: 15.5px; color: var(--muted); line-height: 1.8; max-width: 44em; }
.ab-sign { margin: -24px 0 0; text-align: right; }
.ab-sign span { display: inline-block; padding: 10px 20px; border-radius: 999px; background: var(--paper); box-shadow: var(--shadow-1); font-weight: 800; color: var(--purple-deep); }

/* ── 특장점 ── */
.ab-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ab-stat {
  display: grid; gap: 6px; align-content: start;
  padding: 26px 24px; border-radius: var(--r-xl);
  background: var(--paper); box-shadow: var(--shadow-1);
}
.ab-stat strong {
  font-size: 52px; font-weight: 900; line-height: 1; letter-spacing: -0.04em;
  background: var(--brand-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ab-stat strong small { font-size: 20px; margin-left: 4px; }
.ab-stat span { font-size: 16px; font-weight: 800; }
.ab-stat em { display: block; margin-top: 4px; font-style: normal; font-size: 13px; font-weight: 500; color: var(--muted); }

.ab-feature {
  display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 32px; align-items: start;
  padding: 28px; border-radius: 28px;
  background: var(--paper); box-shadow: var(--shadow-1);
}
.ab-feature.is-flip { background: var(--grey-50); box-shadow: none; }
.ab-feature-head h2 { margin-top: 14px; font-size: 24px; font-weight: 800; letter-spacing: -0.03em; }
.ab-feature-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--brand-grad); }
.ab-feature-icon svg { width: 26px; height: 26px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ab-feature-photo { margin: 18px 0 0; }
.ab-feature-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); }
.ab-feature-photo figcaption { margin-top: 8px; font-size: 13px; color: var(--muted); }

.ab-feature-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ab-feature-list li {
  display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start;
  padding: 14px 16px; border-radius: var(--r-md);
  background: var(--grey-50);
  font-size: 15px; line-height: 1.6;
}
.ab-feature.is-flip .ab-feature-list li { background: var(--paper); }
.ab-feature-list svg { width: 22px; height: 22px; margin-top: 1px; fill: none; stroke: var(--brand-purple); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.ab-feature-list li.is-key { background: var(--purple-tint); font-weight: 700; }
.ab-feature-list li.is-key svg { stroke: var(--magenta); }

@media (max-width: 1099px) {
  .ab-value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-feature { grid-template-columns: 1fr; }
  .ab-feature-photo { display: none; }
}
@media (max-width: 699px) {
  .ab { gap: 36px; }
  .ab-vision { padding: 40px 20px 34px; border-radius: var(--r-xl); }
  .ab-value-grid, .ab-stats, .ab-feature-list { grid-template-columns: 1fr; }
  .ab-greet { grid-template-columns: 1fr; gap: 24px; }
  .ab-greet-photo { position: static; max-width: 240px; }
  .ab-quote { padding: 40px 22px 26px; border-radius: var(--r-xl); }
  .ab-feature { padding: 18px; border-radius: var(--r-xl); }
}

/* 차례로 나타나기 (site.js의 data-reveal 사용) */
@media (prefers-reduced-motion: no-preference) {
  .js [data-reveal] .ab-value, .js [data-reveal] .ab-feature-list li.rv { transition-delay: calc(min(var(--i, 0), 8) * .06s); }
  .js [data-reveal] .ab-value { opacity: 0; translate: 0 20px; transition: opacity .6s ease, translate .6s cubic-bezier(.2, .7, .2, 1), box-shadow .2s ease; }
  .js [data-reveal].is-in .ab-value { opacity: 1; translate: 0 0; }
  .js .ab-vision-word span { display: inline-block; }
  .js [data-reveal] .ab-vision-word span { opacity: 0; translate: 0 30px; transition: opacity .6s ease, translate .7s cubic-bezier(.2, .7, .2, 1); }
  .js [data-reveal].is-in .ab-vision-word span { opacity: 1; translate: 0 0; }
  .js [data-reveal].is-in .ab-vision-word span:nth-child(2) { transition-delay: .08s; }
  .js [data-reveal].is-in .ab-vision-word span:nth-child(3) { transition-delay: .16s; }
  .js [data-reveal].is-in .ab-vision-word span:nth-child(4) { transition-delay: .24s; }
  .js [data-reveal].is-in .ab-vision-word span:nth-child(5) { transition-delay: .32s; }
  .js [data-reveal].is-in .ab-vision-word span:nth-child(6) { transition-delay: .40s; }
}

/* ═════════════════════════════════════════════════════════════
   주요전화번호(15): 대표전화 한 줄 + 층별 카드 (표 대신)
   ═════════════════════════════════════════════════════════════ */
.pb-main { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; padding: 24px 28px; border-radius: 22px; background: var(--blush); }
.pb-main-label { margin: 0 0 2px; font-size: 14px; font-weight: 700; color: var(--muted); }
.pb-main-num { font-size: clamp(30px, 4vw, 40px); font-weight: 800; letter-spacing: -0.02em; color: var(--magenta-deep); text-decoration: none; font-variant-numeric: tabular-nums; }
.pb-main-num:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.pb-main-note { margin: 0; color: var(--muted); font-size: 14.5px; line-height: 1.7; }
.pb-title { margin: 40px 0 16px; font-size: 20px; font-weight: 800; letter-spacing: -0.02em; }
.pb-floors { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.pb-floor { padding: 18px 20px 10px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.pb-floor-head { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.pb-floor-no { display: inline-grid; place-items: center; min-width: 52px; padding: 3px 10px; border: 1.5px solid var(--mark); border-radius: 999px; color: var(--mark); font-weight: 800; font-size: 14.5px; }
.pb-floor-area { font-weight: 700; font-size: 16px; }
.pb-lines { list-style: none; margin: 0; padding: 0; }
.pb-lines li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 2px; }
.pb-lines li + li { border-top: 1px dashed var(--line); }
.pb-name { color: var(--muted); font-size: 15px; }
.pb-nums { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 12px; }
.pb-nums a { color: var(--ink); font-weight: 700; font-size: 15.5px; text-decoration: none; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pb-nums a:hover { color: var(--magenta-deep); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 767px) {
  .pb-floors { grid-template-columns: 1fr; }
  .pb-main { padding: 20px; }
}

/* ═════════════════════════════════════════════════════════════
   산후조리원 본원의 특징(74), 건강검진센터 소개(65), 검진안내(66)
   ═════════════════════════════════════════════════════════════ */
/* 사진 위에 글이 얹힌 첫 칸 */
.pc-hero { position: relative; overflow: hidden; border-radius: 26px; min-height: 380px; display: grid; align-items: end; background: var(--ink); }
.pc-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pc-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(30 20 28 / 0) 30%, rgb(30 20 28 / .72) 100%); }
.pc-hero-text { position: relative; z-index: 1; padding: 34px 36px; color: #fff; max-width: 620px; }
.pc-hero-kicker { margin: 0 0 8px; font-size: 14px; font-weight: 700; color: rgb(255 255 255 / .85); }
.pc-hero h2 { margin: 0; font-size: clamp(28px, 3.4vw, 40px); font-weight: 800; letter-spacing: -0.035em; line-height: 1.25; color: #fff; }
.pc-hero-text > p:last-child { margin: 12px 0 0; font-size: 16px; line-height: 1.7; color: rgb(255 255 255 / .9); }

/* 74: 사진 카드 */
.pc { display: grid; gap: 22px; }
.pc-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.pc-card { overflow: hidden; border-radius: 22px; background: var(--paper); border: 1px solid var(--line); }
.pc-photo { margin: 0; }
.pc-photo img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.pc-card-body { padding: 18px 22px 22px; }
.pc-card-body h3 { margin: 0 0 10px; font-size: 19px; font-weight: 800; letter-spacing: -0.02em; }
.pc-card-body ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pc-card-body li { position: relative; padding-left: 16px; color: var(--muted); font-size: 15px; line-height: 1.65; }
.pc-card-body li::before { content: ""; position: absolute; left: 2px; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: var(--magenta); }
.pc-note { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: 18px; background: var(--blush); }
.pc-note svg { flex: none; width: 30px; height: 30px; fill: none; stroke: var(--magenta-deep); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pc-note p { margin: 0; font-size: 15px; line-height: 1.6; }
.pc-note a { color: var(--magenta-deep); font-weight: 800; }

/* 65: 약속 네 가지, 인사말, 장비 사진 */
.hc { display: grid; gap: 26px; }
.hc-promise { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.hc-promise li { padding: 20px; border-radius: 18px; background: var(--paper); border: 1px solid var(--line); }
.hc-promise h3 { margin: 0 0 6px; font-size: 17px; font-weight: 800; color: var(--magenta-deep); }
.hc-promise p { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--muted); }
.hc-letter { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px; padding: 30px 32px; border-radius: 22px; background: var(--blush); }
.hc-quote { margin: 0; }
.hc-quote p { margin: 0; font-size: clamp(20px, 2.2vw, 25px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.55; }
.hc-letter-body p { margin: 0 0 12px; font-size: 15.5px; line-height: 1.85; }
.hc-sign { margin-top: 18px !important; text-align: right; color: var(--muted); }
.hc-sign b { margin-left: 6px; color: var(--ink); font-size: 17px; }
.hc-equip ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.hc-equip figure { margin: 0; }
.hc-equip img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; }
.hc-equip figcaption { margin-top: 8px; font-weight: 700; font-size: 15px; }
.hc-more { display: flex; gap: 18px; margin: 14px 0 0; }
.hc-more a { color: var(--magenta-deep); font-weight: 800; }

/* 66: 확인 사항, 순서, 주의사항 */
.hg { display: grid; gap: 14px; }
.hg .pb-title { margin-top: 26px; }
.hg > section:first-child .pb-title { margin-top: 0; }
.hg-facts-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 18px; align-items: stretch; }
.hg-facts-photo { width: 100%; height: 100%; min-height: 220px; object-fit: cover; border-radius: 20px; }
.hg-facts-list { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.hg-facts-list div { padding: 18px 20px; border-radius: 18px; background: var(--paper); border: 1px solid var(--line); }
.hg-facts-list dt { font-size: 13.5px; font-weight: 700; color: var(--muted); }
.hg-facts-list dd { margin: 4px 0 0; font-size: 18px; font-weight: 800; letter-spacing: -0.02em; }
.hg-facts-list dd small { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.hg-facts-list a { color: var(--magenta-deep); text-decoration: none; }
.hg-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.hg-steps li { position: relative; display: grid; gap: 4px; padding: 16px 14px; border-radius: 16px; background: var(--paper); border: 1px solid var(--line); }
.hg-steps li:not(:last-child)::after { content: ""; position: absolute; right: -9px; top: 50%; width: 8px; height: 8px; border-top: 2px solid var(--line-strong); border-right: 2px solid var(--line-strong); transform: translateY(-50%) rotate(45deg); }
.hg-steps li:nth-child(6n)::after { display: none; }
.hg-step-no { font-size: 13px; font-weight: 800; color: var(--magenta); font-variant-numeric: tabular-nums; }
.hg-step-name { font-size: 15.5px; font-weight: 800; letter-spacing: -0.02em; }
.hg-care { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.hg-care-card { padding: 20px 22px; border-radius: 20px; background: var(--paper); border: 1px solid var(--line); }
.hg-care-card.is-women { background: var(--blush); border-color: transparent; }
.hg-care-card h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 18px; font-weight: 800; }
.hg-care-card h3 span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--magenta); color: #fff; font-size: 13px; }
.hg-care-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.hg-care-card li { position: relative; padding-left: 14px; font-size: 14.5px; line-height: 1.7; }
.hg-care-card li::before { content: ""; position: absolute; left: 1px; top: .72em; width: 5px; height: 5px; border-radius: 50%; background: var(--magenta); }
.hg-care-card li b { display: block; }
.hg-care-card li small { display: block; color: var(--muted); font-size: 13.5px; line-height: 1.65; }
.hg-call { margin-top: 12px !important; }
.hg-call a { color: var(--magenta-deep); font-weight: 800; }

@media (max-width: 999px) {
  .hc-promise, .hc-equip ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hg-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hg-steps li:nth-child(6n)::after { display: block; }
  .hg-steps li:nth-child(3n)::after { display: none; }
  .hg-care { grid-template-columns: 1fr; }
  .hc-letter, .hg-facts-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 599px) {
  .pc-grid { grid-template-columns: 1fr; }
  .pc-hero { min-height: 320px; border-radius: 20px; }
  .pc-hero-text { padding: 24px 22px; }
  .hc-letter { padding: 22px; }
  .hg-facts-list { grid-template-columns: 1fr; }
  .hg-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hg-steps li:nth-child(3n)::after { display: block; }
  .hg-steps li:nth-child(2n)::after { display: none; }
}
.hg-facts-wrap.is-solo { grid-template-columns: 1fr; }
.hg-facts-wrap.is-solo .hg-facts-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 999px) { .hg-facts-wrap.is-solo .hg-facts-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
