@charset "utf-8";
/* =========================================================
   EAC창원요양병원 — Sub pages
   main.css(토큰·헤더·푸터) 위에 얹어 사용
   ========================================================= */

:root { --sub-hd: 80px; }

/* ---------- 헤더: 서브는 항상 흰 배경 ---------- */
.sub-page .hd { background: #fff; color: var(--ink); box-shadow: none; --hd-h: 80px; }
.sub-page .hd.is-solid { box-shadow: 0 1px 0 var(--line); }
.sub-page .hd .logo-w { opacity: 0; }
.sub-page .hd .logo-c { opacity: 1; }
.gnb__list > li.is-current > a { color: var(--blue); }
.gnb__list > li.is-current > a::after { transform: scaleX(1); }

.sub-page main { padding-top: var(--sub-hd); }

/* =========================================================
   SUB VISUAL
   ========================================================= */
/* 상단 소프트 글로우: 영역 경계에서 잘리지 않도록 main 기준으로 깔고 자연스럽게 사라지게 */
.sub-page main { position: relative; isolation: isolate; overflow-x: clip; }
.sub-page main::before, .sub-page main::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.sub-page main::before { left: -220px; top: -80px; width: 640px; height: 640px; background: var(--blue); opacity: .12; filter: blur(180px); }
.sub-page main::after { right: -200px; top: 80px; width: 600px; height: 600px; background: #ae8766; opacity: .13; filter: blur(170px); }
.sv { position: relative; padding: 90px 0 0; }

.sv__path { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 14px; color: var(--mute); margin-bottom: 44px; }
.sv__path a { display: inline-flex; align-items: center; transition: color .2s; }
.sv__path a:hover { color: var(--blue); }
.sv__path > * + *::before { content: ""; width: 5px; height: 5px; margin: 0 10px 0 4px; border-right: 1px solid currentColor; border-top: 1px solid currentColor; transform: rotate(45deg); opacity: .6; }
.sv__path .home { width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--home) center/contain no-repeat; mask: var(--home) center/contain no-repeat; --home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5V21h-6v-6H9v6H3z'/%3E%3C/svg%3E"); }
.sv__path > :last-child { color: var(--ink); font-weight: 600; }

.sv__head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px 80px; align-items: end; }
.sv__eng { font-family: var(--serif); font-size: 22px; font-weight: 600; color: var(--blue); margin-bottom: 14px; }
.sv__title { font-family: var(--serif); font-weight: 700; font-size: clamp(34px, 3.8vw, 56px); line-height: 1.3; color: var(--ink); letter-spacing: -.03em; }
.sv__title em { font-style: normal; color: var(--blue); }
.sv__desc { font-size: 18px; line-height: 1.8; color: var(--body); padding-bottom: 6px; }

.sv__img { position: relative; margin-top: 50px; margin-right: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); height: clamp(260px, 32vw, 500px); border-radius: 0 40px 40px 0; overflow: hidden; }
.sv__img img { width: 100%; height: 100%; object-fit: cover; }
.sv__img figcaption { position: absolute; right: 36px; bottom: 28px; font-family: "Belleza", sans-serif; font-size: clamp(22px, 2.4vw, 36px); color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,.25); }

/* =========================================================
   SNB (로컬 탭 내비)
   ========================================================= */
.snb { position: sticky; top: 0; z-index: 60; margin-top: 70px; background: transparent; border-bottom: 1px solid var(--line); transition: top .4s var(--ease), background .3s; }
.snb.is-stuck { background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
html.hd-shown .snb { top: var(--sub-hd); }
.snb__inner { display: flex; align-items: center; gap: 40px; }
.snb__cat { flex: 0 0 auto; font-family: var(--serif); font-size: 19px; font-weight: 600; color: var(--ink); padding-right: 40px; border-right: 1px solid var(--line); line-height: 1; }
.snb__list { display: flex; overflow-x: auto; scrollbar-width: none; }
.snb__list::-webkit-scrollbar { display: none; }
.snb__list a { position: relative; display: block; padding: 0 22px; line-height: 68px; font-size: 16px; font-weight: 600; color: var(--mute); white-space: nowrap; transition: color .25s; }
.snb__list a::after { content: ""; position: absolute; left: 22px; right: 22px; bottom: -1px; height: 2px; background: var(--blue); transform: scaleX(0); transition: transform .35s var(--ease); }
.snb__list a:hover { color: var(--ink); }
.snb__list .is-active a { color: var(--ink); }
.snb__list .is-active a::after { transform: scaleX(1); }

/* =========================================================
   SECTION COMMON
   ========================================================= */
.sc { position: relative; padding: 130px 0; }
.sc--soft { background: var(--bg-soft); }
.sc--warm { background: var(--bg-warm); }
.sc--navy { background: var(--navy); color: rgba(255,255,255,.78); }
.sc--navy .h-serif, .sc--navy .sc-head__desc { color: #fff; }
.sc--navy .label { color: #8fc9ea; }
.sc--round { border-top-left-radius: var(--curve-r); }
.sc--flush { padding-top: 0; }

.sc-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 56px; }
.sc-head__desc { max-width: 560px; font-size: 17px; line-height: 1.8; }
.sc-head--col { display: block; }
.sc-head--col .sc-head__desc { margin-top: 20px; max-width: 760px; }
.sc-head--center { display: block; text-align: center; }
.sc-head--center .sc-head__desc { margin: 20px auto 0; }

.hl { color: var(--blue); font-weight: 700; background: linear-gradient(transparent 62%, rgba(52,172,214,.16) 62%); }

.btn-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 36px; }
.btn-fill { display: inline-flex; align-items: center; gap: 12px; height: 54px; padding: 0 28px; border-radius: 999px; background: var(--blue); color: #fff; font-weight: 600; font-size: 16px; transition: background .25s, color .25s; }
.btn-fill:hover { background: var(--navy); }
.btn-fill::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--arr) center/contain no-repeat; mask: var(--arr) center/contain no-repeat; --arr: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E"); }

/* =========================================================
   GREETING (텍스트 + 사진)
   ========================================================= */
.greet { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 100px; align-items: start; }
.greet__lead { font-family: var(--serif); font-size: clamp(22px, 2vw, 28px); font-weight: 600; line-height: 1.6; color: var(--ink); margin-bottom: 40px; letter-spacing: -.02em; }
.greet__txt p { font-size: 18px; line-height: 1.9; }
.greet__txt p + p { margin-top: 18px; }
.greet__sign { display: flex; align-items: center; gap: 16px; margin-top: 56px; padding-top: 30px; border-top: 1px solid var(--line); font-size: 16px; color: var(--mute); }
.greet__sign strong { font-family: var(--serif); font-size: 28px; color: var(--ink); letter-spacing: .3em; }
.greet__img { position: sticky; top: 180px; }
.greet__img figure { overflow: hidden; border-radius: 0 120px 0 0; aspect-ratio: 4 / 5; }
.greet__img img { width: 100%; height: 100%; object-fit: cover; }
.greet__img figure + figure { position: relative; width: 52%; aspect-ratio: 1; margin: -120px 0 0 -60px; border: 10px solid #fff; border-radius: 0; }

/* 숫자 */
.nums { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); }
.nums li { padding: 40px 30px 36px 0; border-bottom: 1px solid var(--line); }
.nums li + li { padding-left: 30px; border-left: 1px solid var(--line); }
.nums span { display: block; font-size: 15px; color: var(--mute); }
.nums strong { display: block; margin-top: 8px; font-family: "Belleza", var(--serif); font-size: clamp(40px, 4vw, 64px); font-weight: 400; line-height: 1.1; color: var(--ink); }
.nums strong small { font-family: var(--sans); font-size: 18px; font-weight: 600; margin-left: 4px; color: var(--body); }
.sc--navy .nums { border-color: rgba(255,255,255,.5); }
.sc--navy .nums li { border-color: rgba(255,255,255,.15); }
.sc--navy .nums strong { color: #fff; }
.sc--navy .nums strong small, .sc--navy .nums span { color: rgba(255,255,255,.6); }

/* =========================================================
   MISSION / VISION / VALUES
   ========================================================= */
.mv { border-top: 1px solid var(--ink); }
.mv__row { display: grid; grid-template-columns: 260px 1fr; gap: 40px; align-items: center; padding: 56px 0; border-bottom: 1px solid var(--line); }
.mv__row dt span { display: block; font-family: "Belleza", sans-serif; font-size: 44px; line-height: 1; color: var(--blue); }
.mv__row dt b { display: block; margin-top: 10px; font-size: 16px; color: var(--mute); font-weight: 600; }
.mv__row dd { font-family: var(--serif); font-size: clamp(22px, 2.2vw, 32px); font-weight: 600; line-height: 1.55; color: var(--ink); letter-spacing: -.02em; }

.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.vbox { position: relative; padding: 44px 40px 48px; border-radius: 28px; background: #fff; overflow: hidden; transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.vbox:hover { transform: translateY(-8px); box-shadow: 0 24px 50px rgba(14,42,79,.1); }
.vbox__en { font-family: "Belleza", sans-serif; font-size: 96px; line-height: .8; color: var(--blue); }
.vbox__en + span { display: block; margin-top: 18px; font-family: var(--serif); font-size: 16px; color: var(--mute); }
.vbox strong { display: block; margin-top: 40px; font-size: 26px; color: var(--ink); letter-spacing: -.02em; }
.vbox p { margin-top: 12px; font-size: 16px; }
.vbox:nth-child(2) .vbox__en { color: var(--sky); }
.vbox:nth-child(3) .vbox__en { color: var(--green); }

/* 아이콘 박스 */
.ibox-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ibox-grid--3 { grid-template-columns: repeat(3, 1fr); }
.ibox-grid--5 { grid-template-columns: repeat(5, 1fr); }
.ibox { padding: 36px 30px 38px; border-radius: 24px; background: #fff; border: 1px solid var(--line); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.ibox:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(14,42,79,.08); }
.sc--soft .ibox, .sc--warm .ibox { border-color: transparent; }
.ibox__en { display: block; font-family: var(--serif); font-size: 14px; color: var(--mute); }
.ibox__ico, .ibox__num { display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; margin: 22px 0 26px; border-radius: 50%; }
.ibox__ico { background: rgba(23,88,167,.08); color: var(--blue); }
.ibox__ico svg { width: 30px; height: 30px; }
.ibox__num { background: var(--blue); color: #fff; font-family: "Belleza", sans-serif; font-size: 22px; }
.ibox strong { display: block; font-size: 21px; color: var(--ink); letter-spacing: -.02em; line-height: 1.4; }
.ibox p { margin-top: 10px; font-size: 15.5px; line-height: 1.7; }

/* =========================================================
   협력기관 로고
   ========================================================= */
.partner { display: grid; grid-template-columns: 220px 1fr; gap: 40px; padding: 44px 0; border-top: 1px solid var(--line); }
.partner:first-child { border-top-color: var(--ink); }
.partner h3 { font-family: var(--serif); font-size: 26px; font-weight: 600; color: var(--ink); }
.partner h3 small { display: block; margin-top: 6px; font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--mute); }
.partner ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.partner li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 20px 16px 18px; border-radius: 18px; background: #fff; border: 1px solid var(--line); transition: border-color .25s, box-shadow .3s; }
.partner li:hover { border-color: var(--blue); box-shadow: 0 12px 30px rgba(23,88,167,.1); }
.partner img { width: 150px; height: 110px; object-fit: contain; }
.partner span { font-size: 14px; font-weight: 600; color: var(--ink); text-align: center; }

/* =========================================================
   ZIGZAG (Point 01 …)
   ========================================================= */
.zig { display: grid; gap: 110px; }
.zig__item { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 100px; align-items: center; }
.zig__item:nth-child(even) .zig__img { order: 2; }
.zig__img { overflow: hidden; border-radius: 28px; aspect-ratio: 16 / 11; background: var(--bg-soft); }
.zig__img img { width: 100%; height: 100%; object-fit: cover; }
.zig__img--contain { background: #fff; border: 1px solid var(--line); }
.zig__img--contain img { object-fit: contain; padding: 30px; }
.zig__pt { display: block; font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--blue); margin-bottom: 14px; }
.zig__txt h3 { font-family: var(--serif); font-size: clamp(26px, 2.4vw, 36px); font-weight: 600; line-height: 1.4; color: var(--ink); letter-spacing: -.02em; }
.zig__txt h3 small { display: block; font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--mute); letter-spacing: .02em; margin-top: 8px; }
.zig__txt > p { margin-top: 22px; font-size: 17px; line-height: 1.85; }
.zig__txt > .checks, .zig__txt > .dots { margin-top: 26px; }
.zig__src { display: block; margin-top: 12px; font-size: 13px; color: var(--mute); }
.zig--sm { gap: 80px; }
.zig--sm .zig__item { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); gap: 80px; }

.checks li { position: relative; padding: 12px 0 12px 34px; border-bottom: 1px dashed var(--line); font-size: 16px; color: var(--ink); }
.checks li:first-child { border-top: 1px dashed var(--line); }
.checks li::before { content: ""; position: absolute; left: 2px; top: 17px; width: 20px; height: 20px; border-radius: 50%; background: var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat; }
.dots li { position: relative; padding-left: 16px; font-size: 16px; line-height: 1.75; }
.dots li + li { margin-top: 8px; }
.dots li::before { content: ""; position: absolute; left: 0; top: .72em; width: 5px; height: 5px; border-radius: 50%; background: var(--blue); }

/* 효과 원형 칩 */
.effects { display: flex; flex-wrap: wrap; justify-content: center; }
.effects li { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 210px; height: 210px; padding: 20px; border-radius: 50%; border: 1px solid rgba(23,88,167,.3); text-align: center; font-size: 18px; font-weight: 700; color: var(--ink); line-height: 1.45; background: rgba(255,255,255,.6); transition: background .35s, color .35s, transform .45s var(--ease); }
.effects li + li { margin-left: -30px; }
.effects li span { display: block; font-family: "Belleza", sans-serif; font-size: 16px; font-weight: 400; color: var(--blue); margin-bottom: 8px; transition: color .35s; }
.effects li:hover { position: relative; background: var(--blue); color: #fff; transform: translateY(-6px); }
.effects li:hover span { color: #cfe6ff; }

/* 재활치료실 전경 */
.rehab-room { margin-top: clamp(36px, 5vw, 64px); }
.rehab-room img { width: 100%; height: auto; border-radius: clamp(16px, 2vw, 28px); }

/* =========================================================
   LINE TAB + PANEL
   ========================================================= */
.ltab__nav { display: flex; border-bottom: 1px solid var(--line); margin-bottom: 70px; overflow-x: auto; scrollbar-width: none; }
.ltab__nav::-webkit-scrollbar { display: none; }
.ltab__nav button { position: relative; flex: 1 0 auto; padding: 0 24px; height: 72px; font-size: 18px; font-weight: 600; color: var(--mute); white-space: nowrap; transition: color .25s; }
.ltab__nav button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--blue); transform: scaleX(0); transition: transform .4s var(--ease); }
.ltab__nav button:hover { color: var(--ink); }
.ltab__nav button.is-active { color: var(--blue); }
.ltab__nav button.is-active::after { transform: scaleX(1); }
.ltab__panel { display: none; }
.ltab__panel.is-active { display: block; animation: fadeUp .7s var(--ease) both; }

/* 탭 상단 요약 */
.tsum { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 80px; align-items: center; margin-bottom: 100px; }
.tsum h3 { font-family: var(--serif); font-size: clamp(30px, 3vw, 44px); font-weight: 600; color: var(--ink); line-height: 1.35; letter-spacing: -.02em; }
.tsum h3 + p { margin-top: 24px; font-size: 18px; line-height: 1.85; }
.tsum .effects { justify-content: flex-start; margin-top: 36px; }
.tsum .effects li { width: 130px; height: 130px; font-size: 15px; }
.tsum .effects li + li { margin-left: -16px; }
.tsum--solo { grid-template-columns: 1fr; gap: 60px; text-align: center; }
.tsum--solo h3 + p { max-width: 760px; margin-inline: auto; }
.tsum--solo .effects { justify-content: center; margin-top: 50px; }
.tsum--solo .effects li { width: 210px; height: 210px; font-size: 18px; }
.tsum--solo .effects li + li { margin-left: -30px; }
.tsum__fig { max-width: 560px; margin: 50px auto 0; }
.tsum__fig img { width: 100%; height: auto; }
.tsum__img { overflow: hidden; border-radius: 0 100px 0 0; aspect-ratio: 16 / 10; background: var(--bg-soft); }
.tsum__img img { width: 100%; height: 100%; object-fit: cover; }
.tsum__img--wide { aspect-ratio: 21 / 9; border-radius: 28px; }

/* =========================================================
   INFO ROW (좌측 고정 제목 + 우측 상세)
   ========================================================= */
.irow { display: grid; grid-template-columns: 300px 1fr; gap: 60px; padding: 70px 0; border-top: 1px solid var(--line); }
.irow:first-child { border-top-color: var(--ink); }
.irow__sub { position: sticky; top: 170px; align-self: start; }
.irow__sub span { display: block; font-family: "Belleza", sans-serif; font-size: 16px; color: var(--blue); letter-spacing: .04em; margin-bottom: 6px; }
.irow__sub h3 { font-family: var(--serif); font-size: 28px; font-weight: 600; color: var(--ink); line-height: 1.4; }
.irow__sub p { margin-top: 12px; font-size: 15px; color: var(--mute); }
.irow__body > * + * { margin-top: 30px; }
.irow__body > p { font-size: 17px; line-height: 1.85; }
.irow__img { overflow: hidden; border-radius: 24px; aspect-ratio: 21 / 9; }
.irow__img img { width: 100%; height: 100%; object-fit: cover; }

.cards2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.card { padding: 30px 30px 32px; border-radius: 20px; background: var(--bg-soft); }
.card strong { display: block; font-size: 19px; color: var(--ink); letter-spacing: -.02em; margin-bottom: 10px; }
.card p, .card li { font-size: 15.5px; line-height: 1.75; }
.card em { font-style: normal; font-weight: 600; color: var(--blue); }
.card--line { background: #fff; border: 1px solid var(--line); }
.card__time { display: block; margin-top: 4px; font-family: "Belleza", sans-serif; font-size: 34px; line-height: 1.1; color: var(--blue); }
.card .ico { width: 34px; height: 34px; color: var(--blue); margin-bottom: 16px; }
.card--menu { overflow: hidden; padding-top: 0; }
.card__img { overflow: hidden; margin: 0 -30px 26px; aspect-ratio: 3 / 2; background: var(--bg-soft); }
.card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.card--menu:hover .card__img img { transform: scale(1.05); }

/* 온라인 면회 신청 */
.visit-application { border: 1px solid #c9daef; border-radius: 20px; background: #f3f7fc; scroll-margin-top: 150px; overflow: hidden; }
.visit-application__toggle { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 28px; cursor: pointer; list-style: none; }
.visit-application__toggle::-webkit-details-marker { display: none; }
.visit-application__toggle small { display: block; color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.visit-application__toggle strong { display: block; margin: 4px 0; font-size: 24px; color: var(--ink); }
.visit-application__toggle > span > span:not(.visit-application__open):not(.visit-application__close) { font-size: 14px; }
.visit-application__action { display: flex; align-items: center; gap: 14px; flex-shrink: 0; padding: 12px 18px; border-radius: 999px; background: var(--blue); color: #fff; font-size: 15px; font-weight: 600; }
.visit-application__action b { font-size: 20px; font-weight: 400; transition: transform .2s; }
.visit-application__close, .visit-application[open] .visit-application__open { display: none; }
.visit-application[open] .visit-application__close { display: inline; }
.visit-application[open] .visit-application__action b { transform: rotate(45deg); }
.visit-form { padding: 0 clamp(22px, 3vw, 42px) 30px; border-top: 1px solid #d5e0ee; }
.visit-phone > p { font-size: 15px; color: var(--mute); }
.visit-form__notice { margin-top: 22px; padding: 14px 16px; background: #fff; border-radius: 12px; font-size: 14px; }
.visit-form fieldset { min-width: 0; margin: 30px 0 0; padding: 0; border: 0; }
.visit-form legend { padding: 0; margin-bottom: 16px; font-size: 18px; font-weight: 700; color: var(--ink); }
.visit-form legend span { color: var(--blue); margin-right: 8px; font-size: 14px; }
.visit-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.visit-form__grid label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; font-size: 15px; font-weight: 600; color: var(--ink); }
.visit-form [hidden] { display: none; }
.visit-form small { color: var(--blue); font-size: 11px; font-weight: 500; }
.visit-form__grid input, .visit-form__grid select { width: 100%; min-width: 0; height: 54px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); font: inherit; font-size: 16px; }
.visit-form__hint { font-size: 13px; color: var(--mute); margin-top: 12px; }
.visit-form__foot { margin-top: 30px; padding-top: 24px; border-top: 1px solid #d5e0ee; }
.visit-form__consent { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; }
.visit-form__consent input { flex: 0 0 auto; width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--blue); }
.visit-form__privacy { display: inline-block; margin: 8px 0 0 28px; font-size: 13px; color: var(--blue); text-decoration: underline; }
.visit-form__submit { width: 100%; margin-top: 22px; padding: 17px 20px; border-radius: 12px; background: var(--blue); color: #fff; font-size: 18px; font-weight: 700; }
.visit-form__submit:hover { background: var(--navy); }
.visit-form__submit:disabled { opacity: .65; cursor: wait; }
.visit-form__message:not(:empty) { margin-top: 16px; color: var(--ink); font-size: 15px; }
.visit-phone { padding-top: 8px; }
.visit-phone h4 { margin: 0 0 8px; color: var(--ink); font-size: 20px; }
.visit-phone .cards3 { margin-top: 18px; }
.visit-phone .card { padding: 20px 16px; border-radius: 12px; }
.visit-phone .card__time { font-size: 22px; white-space: nowrap; }
@media (max-width: 767px) {
  .visit-application__toggle { padding: 20px; gap: 12px; flex-wrap: wrap; }
  .visit-application__toggle strong { font-size: 22px; }
  .visit-form__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   STEPS
   ========================================================= */
.steps { display: grid; grid-template-columns: repeat(var(--n, 4), 1fr); gap: 16px; counter-reset: st; }
.steps > li { position: relative; padding: 34px 30px 36px; border-radius: 24px; background: #fff; border: 1px solid var(--line); counter-increment: st; }
.steps > li::before { content: "STEP " counter(st, decimal-leading-zero); display: block; font-family: "Belleza", sans-serif; font-size: 15px; letter-spacing: .12em; color: var(--blue); margin-bottom: 22px; }
.steps > li:not(:last-child)::after { content: ""; position: absolute; z-index: 1; right: -21px; top: 50%; width: 26px; height: 26px; margin-top: -13px; border-radius: 50%; background: var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center/14px no-repeat; }
/* 등장 애니메이션(transform)으로 카드마다 쌓임 맥락이 생기므로, 앞 카드를 위로 올려 화살표가 다음 카드에 가려지지 않게 */
.steps > li:nth-child(1) { z-index: 6; }
.steps > li:nth-child(2) { z-index: 5; }
.steps > li:nth-child(3) { z-index: 4; }
.steps > li:nth-child(4) { z-index: 3; }
.steps > li:nth-child(5) { z-index: 2; }
.steps > li:nth-child(6) { z-index: 1; }
.steps strong { display: block; font-size: 21px; color: var(--ink); letter-spacing: -.02em; }
.steps strong small { font-size: 15px; font-weight: 600; color: var(--blue); margin-left: 6px; }
.steps p { margin-top: 10px; font-size: 15.5px; line-height: 1.7; }
.steps .dots { margin-top: 14px; }
.steps .dots li { font-size: 15px; }
.sc--soft .steps > li, .sc--warm .steps > li { border-color: transparent; }

/* =========================================================
   TABLE
   ========================================================= */
.tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tbl { width: 100%; border-collapse: collapse; border-top: 2px solid var(--ink); font-size: 16px; }
.tbl th, .tbl td { padding: 18px 16px; border-bottom: 1px solid var(--line); text-align: center; }
.tbl thead th { background: var(--bg-soft); color: var(--ink); font-weight: 700; }
.tbl tbody th { color: var(--ink); font-weight: 600; }
.tbl .l { text-align: left; }
.tbl .r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tbl .on { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--blue); }
.tbl .off { display: inline-block; width: 12px; height: 2px; background: #c9d0d8; vertical-align: middle; }
.tbl-note { margin-top: 16px; font-size: 14px; color: var(--mute); }
.tbl-legend { display: flex; gap: 18px; font-size: 14px; color: var(--mute); }
.tbl-legend span { display: inline-flex; align-items: center; gap: 8px; }

/* =========================================================
   DOCTORS
   ========================================================= */
.docs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 56px 24px; }
.doc__img { position: relative; overflow: hidden; border-radius: 28px; aspect-ratio: 3 / 4; background: linear-gradient(180deg, #eef2f7, #dfe6ee); }
.doc__img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .8s var(--ease); }
.doc:hover .doc__img img { transform: scale(1.05); }
.doc__dept { position: absolute; left: 18px; top: 18px; padding: 5px 14px; border-radius: 999px; background: rgba(255,255,255,.92); font-size: 13px; font-weight: 700; color: var(--blue); }
.doc__name { margin-top: 22px; display: flex; align-items: baseline; gap: 10px; }
.doc__name strong { font-family: var(--serif); font-size: 26px; font-weight: 600; color: var(--ink); letter-spacing: .06em; }
.doc__name span { font-size: 15px; color: var(--mute); }
.doc__career { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.doc__career li { position: relative; padding-left: 12px; font-size: 14.5px; line-height: 1.7; }
.doc__career li + li { margin-top: 2px; }
.doc__career li::before { content: ""; position: absolute; left: 0; top: .82em; width: 4px; height: 1px; background: var(--mute); }
.ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-family: var(--serif); font-size: 44px; color: #aab7c5; }

/* 진료일정 (의료진 행) */
.srow { display: grid; grid-template-columns: 180px 240px 1fr; gap: 50px; align-items: center; padding: 36px 0; border-top: 1px solid var(--line); }
.srow:first-child { border-top-color: var(--ink); }
.srow__img { overflow: hidden; border-radius: 22px; aspect-ratio: 4 / 5; background: linear-gradient(180deg, #eef2f7, #dfe6ee); }
.srow__img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.srow__info em { display: inline-block; font-style: normal; font-size: 14px; font-weight: 700; color: var(--blue); padding: 4px 12px; border-radius: 999px; background: rgba(23,88,167,.08); }
.srow__info strong { display: block; margin-top: 14px; font-family: var(--serif); font-size: 28px; font-weight: 600; color: var(--ink); letter-spacing: .06em; }
.srow__info p { margin-top: 6px; font-size: 14px; color: var(--mute); }
.srow .tbl { border-top-width: 1px; font-size: 15px; }
.srow .tbl th, .srow .tbl td { padding: 13px 8px; }

/* =========================================================
   GALLERY + LIGHTBOX
   ========================================================= */
.gal { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 14px; }
.gal a { position: relative; display: block; overflow: hidden; border-radius: 18px; background: var(--bg-soft); }
.gal a[hidden] { display: none; }
.gal a:first-child, .gal a.is-first { grid-column: span 2; grid-row: span 2; }
[data-filter] .gal a:first-child:not(.is-first) { grid-column: auto; grid-row: auto; }
.gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.gal a::after { content: ""; position: absolute; right: 14px; bottom: 14px; width: 42px; height: 42px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231758a7' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='m20 20-4.5-4.5M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center/20px no-repeat; transform: scale(0); transition: transform .4s var(--ease); }
.gal a:hover img { transform: scale(1.06); }
.gal a:hover::after { transform: scale(1); }
.gal a span { position: absolute; left: 16px; bottom: 14px; padding: 4px 12px; border-radius: 999px; background: rgba(14,42,79,.72); color: #fff; font-size: 13px; font-weight: 600; }
.gal a .gal__tags { display: flex; flex-wrap: wrap; gap: 6px; right: 70px; padding: 0; border-radius: 0; background: none; }
.gal__tags b { padding: 4px 12px; border-radius: 999px; background: rgba(14,42,79,.72); font-weight: 600; }
.gal__tags b + b { background: rgba(23,88,167,.85); }

.lightbox { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; background: rgba(8,20,38,.92); opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; }
.lightbox.is-open { opacity: 1; visibility: visible; }
.lightbox img { max-width: min(1200px, 90vw); max-height: 82vh; border-radius: 12px; object-fit: contain; }
.lightbox button { position: absolute; width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); transition: background .2s; }
.lightbox button:hover { background: rgba(255,255,255,.12); }
.lightbox__close { right: 30px; top: 30px; }
.lightbox__close::before, .lightbox__close::after { content: ""; position: absolute; left: 17px; right: 17px; top: 50%; height: 2px; background: #fff; transform: rotate(45deg); }
.lightbox__close::after { transform: rotate(-45deg); }
.lightbox__prev, .lightbox__next { top: 50%; margin-top: -28px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m9 5 7 7-7 7'/%3E%3C/svg%3E") center/24px no-repeat; }
.lightbox__prev { left: 30px; transform: scaleX(-1); }
.lightbox__next { right: 30px; }
.lightbox__count { position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%); color: rgba(255,255,255,.7); font-size: 14px; letter-spacing: .1em; }

/* 영상 */
.video { position: relative; overflow: hidden; border-radius: 28px; aspect-ratio: 16 / 9; background: #000; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* VR 배너 */
.vr { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 40px 48px; border: 1px solid var(--line); border-radius: 24px; color: var(--ink); background: #fff; transition: border-color .3s var(--ease); }
.vr:hover { border-color: var(--blue); }
.vr p { font-family: "Belleza", sans-serif; font-size: 15px; letter-spacing: .2em; color: var(--sky); }
.vr strong { display: block; margin-top: 8px; font-family: var(--serif); font-size: clamp(20px, 1.9vw, 26px); font-weight: 600; }
.vr .btn-line { flex: 0 0 auto; }
.vr:hover .btn-line { background: var(--ink); color: #fff; }

/* =========================================================
   TEAM (호스피스)
   ========================================================= */
.team { position: relative; width: min(560px, 100%); aspect-ratio: 1; margin: 0 auto; }
.team__center { position: absolute; left: 50%; top: 50%; width: 36%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: var(--blue); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: var(--serif); font-size: 24px; font-weight: 600; box-shadow: 0 0 0 20px rgba(23,88,167,.1), 0 0 0 40px rgba(23,88,167,.05); }
.team__center small { font-family: "Belleza", sans-serif; font-size: 14px; font-weight: 400; opacity: .7; }
.team li { position: absolute; width: 22%; aspect-ratio: 1; border-radius: 50%; background: #fff; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; text-align: center; font-size: 16px; font-weight: 700; color: var(--ink); box-shadow: 0 10px 30px rgba(14,42,79,.08); transform: translate(-50%, -50%); }
.team li:nth-child(1) { left: 50%; top: 11%; }
.team li:nth-child(2) { left: 87%; top: 39%; }
.team li:nth-child(3) { left: 73%; top: 84%; }
.team li:nth-child(4) { left: 27%; top: 84%; }
.team li:nth-child(5) { left: 13%; top: 39%; }

/* =========================================================
   CALLOUT
   ========================================================= */
.callout { display: flex; align-items: center; gap: 24px; padding: 28px 34px; border-radius: 20px; background: var(--bg-soft); font-size: 16px; }
.callout::before { content: ""; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 7.5v6M12 16.5v.5'/%3E%3C/svg%3E") center/22px no-repeat; }
.callout strong { color: var(--ink); }
.callout a { color: var(--blue); font-weight: 700; }
.callout--tel { justify-content: space-between; flex-wrap: wrap; }
.callout--tel::before { display: none; }
.callout--tel .tels { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.callout--tel .tels a { font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--blue); }

/* =========================================================
   PAYMENT
   ========================================================= */
.pay-tool { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 26px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips button { height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 15px; font-weight: 600; color: var(--body); white-space: nowrap; transition: .25s; }
.chips button:hover { border-color: var(--blue); color: var(--blue); }
.chips button.is-active { background: var(--blue); border-color: var(--blue); color: #fff; }
.chips button span { margin-left: 4px; font-size: 12px; opacity: .7; }
.search { position: relative; width: 320px; max-width: 100%; }
.search input { width: 100%; height: 48px; padding: 0 50px 0 20px; border: 1px solid var(--line); border-radius: 999px; font-size: 15px; color: var(--ink); }
.search input:focus { outline: none; border-color: var(--blue); }
.search::after { content: ""; position: absolute; right: 18px; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a3' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") center/contain no-repeat; pointer-events: none; }
.pay-meta { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px 20px; margin-bottom: 14px; font-size: 14px; color: var(--mute); }
.pay-meta b { color: var(--blue); }
.pay-empty td { padding: 60px 0 !important; color: var(--mute); }
.tbl--pay .pay-dup { display: none; }
/* PC: 목록을 좌우 2단으로 (왼쪽 단을 채운 뒤 오른쪽 단으로 이어짐) */
@media (min-width: 1025px) {
  .tbl--pay, .tbl--pay thead, .tbl--pay tbody { display: block; }
  .tbl--pay { border-top: 0; }
  .tbl--pay tr { display: grid; grid-template-columns: 130px 1fr 110px; align-items: center; }
  .tbl--pay tr[hidden] { display: none; }
  .tbl--pay thead tr { grid-template-columns: 130px 1fr 110px 48px 130px 1fr 110px; }
  .tbl--pay thead th { align-self: stretch; border-top: 2px solid var(--ink); }
  .tbl--pay .pay-dup { display: block; }
  .tbl--pay thead .pay-dup:nth-child(4) { grid-column: 5; }
  .tbl--pay tbody { columns: 2; column-gap: 48px; }
  .tbl--pay tbody tr { break-inside: avoid; border-bottom: 1px solid var(--line); }
  .tbl--pay th, .tbl--pay td { padding: 15px 12px; border-bottom: 0; }
  .tbl--pay thead th { border-bottom: 1px solid var(--line); }
  .tbl--pay tr.pay-empty { display: block; column-span: all; }
  .tbl--pay tr.pay-empty[hidden] { display: none; }
  .tbl--pay .pay-empty td { display: block; }
}
.tbl .cat { display: inline-block; padding: 3px 10px; border-radius: 6px; background: var(--bg-soft); font-size: 13px; font-weight: 600; color: var(--body); white-space: nowrap; }
.btn-down { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--ink); font-size: 15px; font-weight: 600; color: var(--ink); transition: .25s; }
.btn-down::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--dn) center/contain no-repeat; mask: var(--dn) center/contain no-repeat; --dn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E"); }
.btn-down:hover { background: var(--ink); color: #fff; }

/* =========================================================
   BOARD
   ========================================================= */
.bd-top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px 20px; margin-bottom: 24px; }
.bd-total { font-size: 15px; color: var(--mute); }
.bd-total b { color: var(--blue); }
.bd-list { border-top: 2px solid var(--ink); }
.bd-list li a { display: grid; grid-template-columns: 90px 1fr 130px; align-items: center; gap: 20px; padding: 26px 10px; border-bottom: 1px solid var(--line); transition: background .25s; }
.bd-list li a:hover { background: var(--bg-soft); }
.bd-list .num { text-align: center; font-size: 15px; color: var(--mute); }
.bd-list .num em { font-style: normal; display: inline-block; padding: 3px 12px; border-radius: 999px; background: var(--blue); color: #fff; font-size: 13px; font-weight: 700; }
.bd-list .tit { min-width: 0; font-size: 18px; font-weight: 600; color: var(--ink); letter-spacing: -.01em; transition: color .2s; }
.bd-list .tit b { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 600; }
.bd-list .tit small { display: block; margin-top: 6px; font-size: 14.5px; font-weight: 400; color: var(--mute); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.bd-list li a:hover .tit { color: var(--blue); }
.bd-list .date { text-align: center; font-size: 15px; color: var(--mute); }
.bd-list .state { display: inline-block; padding: 3px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; border: 1px solid var(--line); color: var(--mute); }
.bd-list .state.is-done { border-color: var(--blue); color: var(--blue); }

.bd-gal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 56px 30px; }
.bd-gal a { display: block; }
.bd-gal figure { position: relative; overflow: hidden; border-radius: 22px; aspect-ratio: 4 / 3; background: var(--bg-soft); }
.bd-gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.bd-gal a:hover img { transform: scale(1.06); }
.bd-gal .meta { display: flex; align-items: center; gap: 12px; margin-top: 22px; font-size: 14px; color: var(--mute); }
.bd-gal .meta em { font-style: normal; font-weight: 700; color: var(--blue); }
.bd-gal strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 8px; font-size: 20px; line-height: 1.45; color: var(--ink); letter-spacing: -.02em; transition: color .25s; }
.bd-gal a:hover strong { color: var(--blue); }

.pager { display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 60px; }
.pager a { display: flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; border-radius: 50%; font-size: 15px; color: var(--body); transition: .2s; }
.pager a:hover { background: var(--bg-soft); }
.pager a.is-active { background: var(--ink); color: #fff; font-weight: 700; }
.pager .arr { border: 1px solid var(--line); }

.bd-view__head { padding-bottom: 36px; border-bottom: 1px solid var(--line); }
.bd-view__head em { font-style: normal; font-weight: 700; color: var(--blue); font-size: 15px; }
.bd-view__head h3 { margin-top: 12px; font-family: var(--serif); font-size: clamp(26px, 2.6vw, 38px); font-weight: 600; color: var(--ink); line-height: 1.4; }
.bd-view__head p { display: flex; gap: 20px; margin-top: 16px; font-size: 14px; color: var(--mute); }
.bd-view__body { max-width: 960px; padding: 60px 0; font-size: 17px; line-height: 1.9; }
.bd-view__body figure { overflow: hidden; border-radius: 24px; margin-bottom: 40px; }
.bd-view__body p + p { margin-top: 16px; }
.bd-view__content > * + * { margin-top: 16px; }
.bd-view__content h2, .bd-view__content h3 { margin-top: 36px; font-size: 22px; line-height: 1.5; }
.bd-view__content ul, .bd-view__content ol { padding-left: 1.4em; }
.bd-view__content ul { list-style: disc; }
.bd-view__content ol { list-style: decimal; }
.bd-view__content blockquote { padding-left: 18px; border-left: 3px solid #d7e3e1; color: #5b6b69; }
.bd-view__content a { color: #18776e; text-decoration: underline; }
.bd-view__content img { display: block; max-width: 100%; height: auto; margin: 24px 0; border-radius: 16px; }
.bd-view__nav { border-top: 1px solid var(--line); }
.bd-view__nav a { display: grid; grid-template-columns: 100px 1fr; padding: 20px 10px; border-bottom: 1px solid var(--line); font-size: 15px; transition: color .2s; }
.bd-view__nav a span { color: var(--mute); }
.bd-view__nav a:hover { color: var(--blue); }
.bd-view__btns { display: flex; justify-content: center; margin-top: 50px; }

/* =========================================================
   FORM (입원상담)
   ========================================================= */
.qside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 70px; align-items: start; }
.qside__info { position: sticky; top: 170px; }
.qside__info .h-serif { margin-bottom: 24px; }
.qside__tel { margin-top: 40px; border-top: 1px solid var(--ink); }
.qside__tel div { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
.qside__tel dt { font-size: 15px; color: var(--mute); }
.qside__tel dd { font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--ink); }

.qform { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px 24px; padding: 56px; border-radius: 32px; background: #fff; box-shadow: 0 30px 70px rgba(14,42,79,.08); }
.qform__row { display: flex; flex-direction: column; gap: 10px; }
.qform__row--full { grid-column: 1 / -1; }
.qform label { font-size: 15px; font-weight: 700; color: var(--ink); }
.qform label i { font-style: normal; color: var(--blue); margin-left: 2px; }
.qform input[type=text], .qform input[type=tel], .qform input[type=password], .qform select, .qform textarea { width: 100%; height: 56px; padding: 0 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; font: inherit; font-size: 16px; color: var(--ink); transition: border-color .2s, box-shadow .2s; }
.qform textarea { height: 200px; padding: 18px 20px; resize: vertical; line-height: 1.7; }
.qform select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a3' stroke-width='1.8'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 18px center / 18px no-repeat; }
.qform input:focus, .qform select:focus, .qform textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(23,88,167,.1); }
.qform .is-invalid { border-color: #d64545 !important; }
.qform__agree { grid-column: 1 / -1; padding: 22px 24px; border-radius: 16px; background: var(--bg-soft); font-size: 14.5px; }
.qform__agree summary { display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; font-weight: 600; color: var(--ink); }
.qform__agree summary::-webkit-details-marker { display: none; }
.qform__agree summary input { width: 20px; height: 20px; accent-color: var(--blue); }
.qform__agree summary::after { content: "내용보기"; margin-left: auto; font-size: 13px; font-weight: 500; color: var(--mute); text-decoration: underline; }
.qform__agree details[open] summary::after { content: "접기"; }
.qform__agree details > div { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); line-height: 1.75; }
.qform__foot { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
.qform__msg { font-size: 15px; color: var(--blue); min-height: 1.5em; }
.qform__msg.is-error { color: #d64545; }
.qform__submit { height: 60px; padding: 0 56px; border-radius: 999px; background: var(--blue); color: #fff; font-size: 17px; font-weight: 700; transition: background .25s; }
.qform__submit:hover { background: var(--navy); }

/* =========================================================
   MAP / DIRECTIONS
   ========================================================= */
.map-box { overflow: hidden; border-radius: 28px; height: 540px; background: var(--bg-soft); }
.map-box iframe { width: 100%; height: 100%; border: 0; display: block; }
/* 지도 + 병원 배치도 */
.map-split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.map-split .map-box { height: auto; min-height: 540px; }
.siteplan { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 32px 36px; border-radius: 28px; background: var(--bg-soft); }
.siteplan figcaption span { display: block; font-family: "Belleza", sans-serif; font-size: 14px; letter-spacing: .08em; color: var(--blue); }
.siteplan figcaption strong { font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--ink); }
.siteplan__svg { display: block; width: 100%; height: auto; }
.siteplan__svg text { text-anchor: middle; dominant-baseline: central; font-family: var(--sans); }
.sp-b { fill: #fff; stroke: var(--navy); stroke-width: 1.5; }
.sp-b--main { fill: #dceafb; stroke: var(--blue); stroke-width: 2.5; }
.sp-name { font-size: 17px; font-weight: 700; fill: var(--navy); }
.sp-r { fill: var(--blue); }
.sp-room { font-size: 12.5px; font-weight: 600; fill: #fff; }
.sp-court { fill: rgba(141,191,31,.14); stroke: rgba(141,191,31,.5); stroke-dasharray: 4 4; }
.sp-court-t { font-size: 14px; fill: #5f8a12; font-weight: 600; }
#sp-hatch line { stroke: currentColor; stroke-width: 2; opacity: .18; }
.sp-p { fill: url(#sp-hatch); stroke: currentColor; stroke-width: 2; }
.sp-pk--in { color: var(--green); }
.sp-pk--out { color: var(--sky); }
.sp-pi { fill: currentColor; }
.sp-pt { font-size: 16px; font-weight: 800; fill: #fff; }
.sp-pl { font-size: 15px; font-weight: 700; fill: var(--ink); }
.sp-in path { fill: none; stroke: var(--blue); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.sp-in text { font-size: 18px; font-weight: 800; fill: var(--blue); }
.sp-in .sp-in-s { font-size: 13px; font-weight: 600; }
.siteplan__legend { display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: 14.5px; color: var(--body); }
.siteplan__legend li { position: relative; padding-left: 20px; }
.siteplan__legend li::before { content: ""; position: absolute; left: 0; top: .35em; width: 12px; height: 12px; border-radius: 3px; background: var(--blue); }
.siteplan__legend .is-in::before { background: var(--green); }
.siteplan__legend .is-out::before { background: var(--sky); }
.siteplan__legend .is-main::before { background: #dceafb; box-shadow: inset 0 0 0 2px var(--blue); }
.siteplan__legend b { margin-right: 8px; color: var(--ink); }
@media (max-width: 1024px) {
  .map-split { grid-template-columns: 1fr; }
  .map-split .map-box { min-height: 0; height: 420px; }
}
@media (max-width: 767px) {
  .map-split .map-box { height: 320px; }
  .siteplan { padding: 24px 18px; border-radius: 18px; }
  .siteplan figcaption strong { font-size: 19px; }
  .siteplan__legend { flex-direction: column; font-size: 14px; }
  .sp-name { font-size: 22px; }
  .sp-room { font-size: 15px; }
  .sp-pl { font-size: 19px; }
  .sp-court-t { font-size: 17px; }
  .sp-in text { font-size: 22px; }
  .sp-in .sp-in-s { font-size: 16px; }
}
.map-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; padding: 30px 40px; border-radius: 24px; background: var(--navy); color: #fff; }
.map-bar address { font-family: var(--serif); font-size: 22px; font-weight: 600; }
.map-bar address small { display: block; margin-top: 4px; font-family: var(--sans); font-size: 14px; font-weight: 400; color: rgba(255,255,255,.6); }
.map-bar .loc__btns { margin: 0; }
.map-bar .loc__btns a { border-color: rgba(255,255,255,.3); color: #fff; }
.map-bar .loc__btns a:hover { background: #fff; border-color: #fff; color: var(--blue); }

.route { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.route > div { padding: 40px 36px; border-radius: 26px; background: #fff; }
.route .ico { width: 40px; height: 40px; color: var(--blue); }
.route h3 { margin: 22px 0 16px; font-size: 22px; color: var(--ink); }
.route p, .route li { font-size: 15.5px; line-height: 1.8; }
.route li + li { margin-top: 8px; }
.route li b { display: block; color: var(--ink); }
.route .bus { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.route .bus span { padding: 3px 10px; border-radius: 6px; background: #3d9d4e; color: #fff; font-size: 14px; font-weight: 700; }
.park-note { margin-top: 20px; padding: 18px 24px; border-left: 4px solid #f07a1a; border-radius: 14px; background: #fff3e8; color: #6b3a0e; font-size: 16px; font-weight: 500; line-height: 1.7; }
.park-note b { margin-right: 10px; color: #d9620a; }
.ico-bus { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Crect x='4' y='3.5' width='16' height='14' rx='3'/%3E%3Cpath d='M4 11h16M7 17.5V20M17 17.5V20M8 14.5h.01M16 14.5h.01'/%3E%3C/svg%3E"); }
.ico-car { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 16.5V12l2-5h10l2 5v4.5M3.5 12h17M5 16.5h14v2H5zM7.5 14.5h.01M16.5 14.5h.01'/%3E%3C/svg%3E"); }
.ico-info { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.5v.5'/%3E%3C/svg%3E"); }
.ico-clock { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }

/* =========================================================
   TEXT DOC (약관)
   ========================================================= */
.doc-txt { max-width: 980px; }
.doc-txt h3 { margin: 54px 0 16px; font-size: 21px; color: var(--ink); letter-spacing: -.01em; }
.doc-txt h3:first-child { margin-top: 0; }
.doc-txt h4 { margin: 20px 0 6px; font-size: 17px; color: var(--ink); }
.doc-txt p, .doc-txt li { font-size: 16px; line-height: 1.85; }
.doc-txt p + p { margin-top: 10px; }
.doc-txt ol, .doc-txt ul { margin-top: 8px; }
.doc-txt li { position: relative; padding-left: 14px; }
.doc-txt li::before { content: ""; position: absolute; left: 0; top: .8em; width: 4px; height: 4px; border-radius: 50%; background: var(--mute); }
.doc-txt .box { margin-top: 16px; padding: 22px 26px; border-radius: 16px; background: var(--bg-soft); }

/* =========================================================
   CTA BAND
   ========================================================= */
.cta { padding: 20px 0 140px; }
.cta__box { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px; padding: 70px 80px; border-radius: 40px; overflow: hidden; color: #fff; background: var(--navy); isolation: isolate; }
.cta__box::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url("../img/about-night.jpg") center / cover no-repeat; opacity: .28; }
.cta__box::after { content: ""; position: absolute; z-index: -1; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%; background: var(--sky); opacity: .35; filter: blur(120px); }
.cta__box p { font-family: "Belleza", sans-serif; font-size: 16px; letter-spacing: .2em; color: #8fc9ea; }
.cta__box h2 { margin-top: 12px; font-family: var(--serif); font-size: clamp(26px, 2.6vw, 38px); font-weight: 600; line-height: 1.4; }
.cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.cta__btns a { display: inline-flex; flex-direction: column; justify-content: center; min-width: 210px; height: 84px; padding: 0 28px; border-radius: 22px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background .3s, color .3s, border-color .3s, transform .35s var(--ease); }
.cta__btns a span { font-size: 13px; opacity: .7; }
.cta__btns a strong { font-family: var(--serif); font-size: 22px; font-weight: 600; }
.cta__btns a:hover { background: #fff; border-color: #fff; color: var(--blue); transform: translateY(-4px); }
.cta__btns a.is-primary { background: var(--blue); border-color: var(--blue); }
.cta__btns a.is-primary:hover { background: #fff; border-color: #fff; }

.sub-page .marquee { padding: 0 0 30px; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1280px) {
  .docs { grid-template-columns: repeat(3, 1fr); }
  .ibox-grid, .ibox-grid--5 { grid-template-columns: repeat(3, 1fr); }
  .srow { grid-template-columns: 150px 200px 1fr; gap: 36px; }
  .greet { gap: 60px; }
  .zig__item { gap: 60px; }
}
@media (max-width: 1024px) {
  :root { --sub-hd: 64px; }
  .sub-page .hd { --hd-h: 64px; }
  .sv { padding-top: 60px; }
  .sv__head { grid-template-columns: 1fr; gap: 22px; }
  .sv__path { margin-bottom: 30px; }
  .sv__img { margin-top: 36px; border-radius: 0 28px 28px 0; }
  .snb { margin-top: 50px; }
  .snb__cat { display: none; }
  .snb__list a { line-height: 58px; padding: 0 16px; font-size: 15px; }
  .snb__list a::after { left: 16px; right: 16px; }
  .sc { padding: 100px 0; }
  .sc-head { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 44px; }
  .greet, .zig__item, .zig--sm .zig__item, .tsum, .qside { grid-template-columns: 1fr; gap: 40px; }
  .zig__item:nth-child(even) .zig__img { order: 0; }
  .zig { gap: 80px; }
  .greet__img, .qside__info, .irow__sub { position: static; }
  .greet__img { max-width: 560px; }
  .tsum { margin-bottom: 70px; }
  .irow { grid-template-columns: 1fr; gap: 26px; padding: 50px 0; }
  .mv__row { grid-template-columns: 1fr; gap: 16px; padding: 40px 0; }
  .values { grid-template-columns: 1fr; }
  .partner { grid-template-columns: 1fr; gap: 20px; }
  .partner ul { grid-template-columns: repeat(3, 1fr); }
  .docs { grid-template-columns: repeat(2, 1fr); gap: 40px 18px; }
  .srow { grid-template-columns: 140px 1fr; gap: 20px 28px; }
  .srow .tbl-wrap { grid-column: 1 / -1; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .steps > li:not(:last-child)::after { display: none; }
  .route, .cards3 { grid-template-columns: 1fr; }
  .gal { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 180px; }
  .bd-gal { grid-template-columns: repeat(2, 1fr); gap: 40px 20px; }
  .cta { padding-bottom: 100px; }
  .cta__box { grid-template-columns: 1fr; padding: 50px 40px; }
  .vr { flex-direction: column; align-items: flex-start; padding: 36px 32px; }
  .effects li { width: 170px; height: 170px; font-size: 16px; }
  .effects li + li { margin-left: -20px; }
  .tsum--solo .effects li { width: 170px; height: 170px; font-size: 16px; }
  .tsum--solo .effects li + li { margin-left: -20px; }
}
@media (max-width: 767px) {
  .sv { padding-top: 36px; }
  .sv__path { font-size: 12.5px; margin-bottom: 22px; }
  .sv__eng { font-size: 16px; margin-bottom: 8px; }
  .sv__title { font-size: 28px; }
  .sv__desc { font-size: 15px; }
  .sv__img { margin-top: 24px; height: 230px; border-radius: 0 20px 20px 0; }
  .sv__img figcaption { right: 18px; bottom: 16px; font-size: 20px; }
  .snb { margin-top: 36px; }
  .snb__list a { line-height: 52px; font-size: 14.5px; padding: 0 12px; }
  .snb__list a::after { left: 12px; right: 12px; }
  .sc { padding: 70px 0; }
  .sc-head { margin-bottom: 32px; }
  .sc-head__desc { font-size: 15px; }
  .greet__lead { font-size: 20px; margin-bottom: 26px; }
  .greet__txt p { font-size: 15.5px; }
  .greet__img figure { border-radius: 0 70px 0 0; }
  .greet__img figure + figure { margin: -70px 0 0 -10px; border-width: 6px; }
  .nums { grid-template-columns: repeat(2, 1fr); }
  .nums li, .nums li + li { padding: 26px 14px 22px 0; border-left: 0; }
  .nums li:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
  .mv__row dt span { font-size: 34px; }
  .mv__row dd { font-size: 20px; }
  .vbox { padding: 32px 26px 36px; border-radius: 22px; }
  .vbox__en { font-size: 70px; }
  .vbox strong { margin-top: 26px; font-size: 22px; }
  .partner ul { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .partner img { width: 120px; height: 90px; }
  .zig { gap: 60px; }
  .zig__item, .zig--sm .zig__item { gap: 26px; }
  .zig__img { border-radius: 20px; }
  .zig__txt > p { font-size: 15px; margin-top: 16px; }
  .ibox-grid, .ibox-grid--3, .ibox-grid--5 { grid-template-columns: 1fr 1fr; gap: 10px; }
  .ibox { padding: 24px 20px 26px; border-radius: 18px; }
  .ibox__ico, .ibox__num { width: 48px; height: 48px; margin: 16px 0 18px; }
  .ibox strong { font-size: 17px; }
  .ibox p { font-size: 14px; }
  .effects { gap: 10px; }
  .effects li, .effects li + li, .tsum .effects li, .tsum .effects li + li { width: calc(50% - 5px); height: auto; aspect-ratio: 1; margin: 0; font-size: 15px; }
  .ltab__nav { margin-bottom: 44px; }
  .ltab__nav button { height: 56px; font-size: 15px; padding: 0 16px; }
  .tsum h3 + p { font-size: 15.5px; }
  .tsum__img { border-radius: 0 60px 0 0; }
  .tsum__img--wide { aspect-ratio: 16 / 10; border-radius: 20px; }
  .irow__sub h3 { font-size: 23px; }
  .irow__img { aspect-ratio: 16 / 10; border-radius: 18px; }
  .cards2 { grid-template-columns: 1fr; }
  .card { padding: 24px 22px; }
  .card--menu { padding-top: 0; }
  .card__img { margin: 0 -22px 22px; }
  .steps { grid-template-columns: 1fr; gap: 10px; }
  .steps > li { padding: 26px 24px; }
  .docs { gap: 34px 12px; }
  .doc__img { border-radius: 18px; }
  .doc__dept { left: 10px; top: 10px; font-size: 11.5px; padding: 3px 10px; }
  .doc__name { flex-direction: column; gap: 0; margin-top: 14px; }
  .doc__name strong { font-size: 21px; }
  .doc__career li { font-size: 13px; }
  .srow { grid-template-columns: 96px 1fr; padding: 28px 0; }
  .srow__img { border-radius: 14px; }
  .srow__info strong { font-size: 22px; margin-top: 8px; }
  .tbl { font-size: 14px; }
  .tbl th, .tbl td { padding: 14px 10px; }
  .gal { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 130px; gap: 8px; }
  .gal a { border-radius: 12px; }
  .gal a .gal__tags { left: 8px; right: 8px; bottom: 8px; gap: 4px; font-size: 11px; }
  .gal__tags b { padding: 3px 8px; }
  .lightbox button { width: 44px; height: 44px; }
  .lightbox__prev { left: 10px; }
  .lightbox__next { right: 10px; }
  .lightbox__close { right: 14px; top: 14px; }
  .lightbox__close::before, .lightbox__close::after { left: 12px; right: 12px; }
  .video { border-radius: 18px; }
  .team li { font-size: 12.5px; }
  .team__center { font-size: 17px; }
  .callout { flex-direction: column; align-items: flex-start; gap: 14px; padding: 24px; font-size: 15px; }
  .pay-tool { flex-direction: column; align-items: stretch; }
  .tbl--pay th, .tbl--pay td { padding: 12px 6px; }
  .tbl--pay td.l { overflow-wrap: anywhere; }
  .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); }
  .chips::-webkit-scrollbar { display: none; }
  .search { width: 100%; }
  .bd-list li a { grid-template-columns: 1fr; gap: 6px; padding: 20px 4px; }
  .bd-list .num { display: none; }
  .bd-list .tit { font-size: 16px; }
  .bd-list .date { text-align: left; font-size: 13px; }
  .bd-gal { grid-template-columns: 1fr; }
  .bd-gal strong { font-size: 17px; }
  .qform { grid-template-columns: 1fr; padding: 28px 20px; border-radius: 22px; gap: 20px; }
  .qform__submit { width: 100%; }
  .map-box { height: 320px; border-radius: 18px; }
  .map-bar { padding: 24px; }
  .map-bar address { font-size: 17px; }
  .route > div { padding: 30px 24px; }
  .doc-txt p, .doc-txt li { font-size: 14.5px; }
  .cta { padding-bottom: 70px; }
  .cta__box { padding: 40px 24px; border-radius: 26px; gap: 28px; }
  .cta__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .cta__btns a { min-width: 0; height: 74px; padding: 0 18px; border-radius: 16px; }
  .cta__btns a strong { font-size: 17px; }
  .vr { padding: 28px 22px; border-radius: 18px; }
}

/* =========================================================
   추가 컴포넌트
   ========================================================= */
/* 링크형 라인 탭 (EAC소개 하위) */
.ltab__nav--link a { position: relative; flex: 1 0 auto; display: flex; align-items: center; justify-content: center; padding: 0 24px; height: 72px; font-size: 18px; font-weight: 600; color: var(--mute); white-space: nowrap; transition: color .25s; }
.ltab__nav--link a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--blue); transform: scaleX(0); transition: transform .4s var(--ease); }
.ltab__nav--link a:hover { color: var(--ink); }
.ltab__nav--link a.is-active { color: var(--blue); }
.ltab__nav--link a.is-active::after { transform: scaleX(1); }

.sub-tit { margin: 70px 0 30px; font-size: 22px; color: var(--ink); letter-spacing: -.02em; }
.sub-tit:first-of-type { margin-top: 0; }
.sub-tit::before { content: ""; display: inline-block; width: 8px; height: 8px; margin: 0 12px 3px 0; border-radius: 50%; background: var(--blue); }

.tags { display: flex; flex-wrap: wrap; gap: 10px; }
.tags li { padding: 12px 22px; border-radius: 999px; background: #fff; font-size: 16px; font-weight: 600; color: var(--ink); box-shadow: 0 4px 14px rgba(14,42,79,.05); }

.pcards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.pcards figure { overflow: hidden; border-radius: 22px; aspect-ratio: 4 / 3; background: #fff; }
.pcards img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.pcards li:hover img { transform: scale(1.06); }
.pcards strong { display: block; margin-top: 18px; font-size: 19px; color: var(--ink); letter-spacing: -.02em; }
.pcards p { margin-top: 2px; font-family: "Belleza", sans-serif; font-size: 15px; color: var(--blue); }

.btn-sm { display: inline-flex; align-items: center; height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--ink); transition: .25s; }
.btn-sm:hover { border-color: var(--blue); color: var(--blue); }

.ibox__num { min-width: 60px; width: auto; padding: 0 14px; border-radius: 999px; }

@media (max-width: 1024px) {
  .pcards { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .ltab__nav--link a { height: 58px; font-size: 16px; }
}
@media (max-width: 767px) {
  .pcards { gap: 12px; }
  .pcards figure { border-radius: 14px; }
  .pcards strong { font-size: 15px; margin-top: 12px; }
  .tags li { padding: 9px 16px; font-size: 14px; }
  .sub-tit { margin: 50px 0 20px; font-size: 19px; }
  .ltab__nav--link a { height: 52px; font-size: 14.5px; padding: 0 14px; }
  .ibox__num { min-width: 48px; font-size: 18px; padding: 0 10px; }
}
.steps[style*="--n:3"] > li:nth-child(3n)::after { display: none; }
