/* =====================================================================
   /ko/ 서브페이지 스타일 (2026-09) — idhospital.com 서브페이지 구성을 참고
   레거시 본문(_page/*.php)의 마크업은 그대로 두고 블록 클래스를 새 디자인으로 다시 스타일링한다.
   main.css 의 토큰(--brand, --ink, --soft …)과 공통 컴포넌트(.btn, .sec-head, .reveal)를 그대로 사용.
   ===================================================================== */

/* ---------- 페이지 히어로 ---------- */
.phero { position: relative; margin-top: var(--hd-h); min-height: 440px; display: flex; align-items: flex-end; background: #0f1a2b; color: #fff; overflow: hidden; }
.phero-media { position: absolute; inset: 0; }
.phero-media img, .phero-media video { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.phero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 26, 43, .10) 0%, rgba(15, 26, 43, .45) 55%, rgba(15, 26, 43, .82) 100%); }
.phero-inner { position: relative; z-index: 2; width: 100%; padding-top: 72px; padding-bottom: 56px; }
.phero-plain { min-height: 280px; background: var(--ink); }
.crumb { display: flex; flex-wrap: wrap; gap: 8px; font-family: var(--font-en); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.crumb li + li::before { content: '/'; margin-right: 8px; opacity: .45; }
.crumb a:hover { color: #fff; }
.phero-eyebrow { display: block; margin-top: 26px; font-family: var(--font-en); font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #ffd1e5; }
.phero-eyebrow em, .phero-eyebrow b { font-family: var(--font-serif); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 1.35em; color: #ff8fc2; }
.phero-title { margin-top: 10px; font-size: clamp(32px, 4vw, 56px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; }

/* ---------- 형제 메뉴 탭 ---------- */
.subnav { position: sticky; top: var(--hd-h); z-index: 60; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid var(--line); }
.subnav ul { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.subnav ul::-webkit-scrollbar { display: none; }
.subnav a { display: block; padding: 18px 16px; font-size: 15px; font-weight: 600; color: var(--muted); border-bottom: 2px solid transparent; white-space: nowrap; transition: .2s; }
.subnav a:hover { color: var(--ink); }
.subnav li.is-on a { color: var(--brand); border-color: var(--brand); }
.gnb > ul > li.is-cur > a { color: var(--brand); }

/* ---------- 본문 공통 ---------- */
.sub { background: #fff; }
.sub-content { font-size: 16px; line-height: 1.75; color: var(--text); word-break: keep-all; }
.sub-content img { max-width: 100%; height: auto; }
.sub-content .wrap { width: 100%; max-width: calc(var(--inner) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.sub-content .marquee, .sub-content .about_t_visual { display: none; }
.sub-content img[src^="../"] { display: none; }
.sub-content h2.sub_tit { max-width: calc(var(--inner) + var(--gutter) * 2); margin: 72px auto 0; padding: 0 var(--gutter); font-size: clamp(26px, 3vw, 38px); font-weight: 700; letter-spacing: -.02em; text-align: center; color: var(--ink); }
.sub-content h2.sub_tit span { display: block; margin-bottom: 12px; font-family: var(--font-en); font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); }
.sub-content h2.sub_tit span em { font-family: var(--font-serif); font-style: italic; text-transform: none; letter-spacing: 0; font-size: 1.3em; }

/* 블록 제목 (레거시 h3.g_tit: span=한글 캡션, em=영문 라벨, b=강조) */
.sub-content .g_tit { font-size: clamp(24px, 2.6vw, 34px); font-weight: 400; line-height: 1.3; letter-spacing: -.02em; color: var(--ink); }
.sub-content .g_tit b { font-weight: 700; }
.sub-content .g_tit span { display: block; margin-bottom: 14px; font-size: 15px; font-weight: 600; letter-spacing: 0; color: var(--brand); }
.sub-content .g_tit em { display: block; margin-bottom: 12px; font-family: var(--font-en); font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); }
.sub-content .t_tx { font-family: var(--font-en); font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); }

/* 사진 카드 (수술방법 탭·프로세스·신호 블록의 .list > li 에만 적용 — 체크포인트 등 번호 목록에 새지 않도록 범위를 한정) */
.sub-content .ps_detail :is(.type_of_surgery_content, .s_process, .signal) .list > li { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }
.sub-content .ps_detail :is(.type_of_surgery_content, .s_process, .signal) .list > li .ph img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.sub-content .ps_detail :is(.type_of_surgery_content, .s_process, .signal) .list > li dl { padding: 22px 24px 26px; }
.sub-content .ps_detail :is(.type_of_surgery_content, .s_process, .signal) .list > li dt { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 18px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.sub-content .ps_detail :is(.type_of_surgery_content, .s_process, .signal) .list > li dt em { order: -1; flex: 0 0 auto; padding: 4px 10px; border-radius: 999px; background: var(--brand-soft); font-family: var(--font-en); font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--brand); }
.sub-content .ps_detail :is(.type_of_surgery_content, .s_process, .signal) .list > li dd { margin-top: 10px; font-size: 14px; line-height: 1.75; color: #666; }

/* =====================================================================
   시술 상세 (.ps_detail .d_sec.*)
   ===================================================================== */
.sub-content .ps_detail .d_sec { padding: 88px 0; }
.sub-content .ps_detail .d_sec > * { width: 100%; max-width: calc(var(--inner) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.sub-content .ps_detail .d_sec > .wrap { padding-inline: var(--gutter); }

/* 소개 */
.sub-content .ps_detail .s_intro { padding: 80px 0 40px; text-align: center; }
.sub-content .ps_detail .s_intro dt { font-size: clamp(26px, 3vw, 40px); font-weight: 400; line-height: 1.35; letter-spacing: -.02em; color: var(--ink); }
.sub-content .ps_detail .s_intro dt b { font-weight: 700; }
.sub-content .ps_detail .s_intro dd { margin-top: 28px; font-size: 17px; line-height: 1.9; color: #444; }
.sub-content .ps_detail .s_intro dd b { font-weight: 600; color: var(--ink); }
.sub-content .ps_detail .s_intro dd p { margin-top: 22px; font-size: 13px; color: var(--muted); }

/* 정보표 (수술시간·마취·입원·실밥·내원·회복·부기) */
.sub-content .ps_detail .g_info { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; padding: 0 var(--gutter) 88px; }
.sub-content .ps_detail .g_info > dl { width: auto; flex: 1 1 150px; max-width: 190px; margin: 0; padding: 24px 12px 20px; text-align: center; background: var(--soft); border-radius: 16px; }
.sub-content .ps_detail .g_info > dl::before { content: ''; display: block; width: 44px; height: 44px; margin: 0 auto 12px; background: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/ps_detail_g_info_ic01.png) center / contain no-repeat; }
.sub-content .ps_detail .g_info > dl:nth-child(2)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/ps_detail_g_info_ic02.png); }
.sub-content .ps_detail .g_info > dl:nth-child(3)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/ps_detail_g_info_ic03.png); }
.sub-content .ps_detail .g_info > dl:nth-child(4)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/ps_detail_g_info_ic04.png); }
.sub-content .ps_detail .g_info > dl:nth-child(5)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/ps_detail_g_info_ic05.png); }
.sub-content .ps_detail .g_info > dl:nth-child(6)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/ps_detail_g_info_ic06.png); }
.sub-content .ps_detail .g_info > dl:nth-child(7)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/ps_detail_g_info_ic07.png); }
.sub-content .ps_detail .g_info dt { font-size: 13px; font-weight: 600; color: var(--muted); }
.sub-content .ps_detail .g_info dd { margin-top: 6px; font-size: 16px; font-weight: 700; color: var(--ink); }

/* WHY */
.sub-content .ps_detail .why { background: var(--soft); }
.sub-content .ps_detail .why .wrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: center; }
.sub-content .ps_detail .why .exp { margin-top: 32px; }
.sub-content .ps_detail .why .exp dt { font-size: 20px; font-weight: 700; line-height: 1.5; color: var(--ink); }
.sub-content .ps_detail .why .exp dd { margin-top: 14px; font-size: 16px; line-height: 1.85; color: #555; }
.sub-content .ps_detail .why .s_guide { margin-top: 28px; padding: 22px 26px; background: #fff; border-left: 4px solid var(--brand); border-radius: 14px; }
.sub-content .ps_detail .why .s_guide dt { font-size: 15px; font-weight: 700; color: var(--brand); }
.sub-content .ps_detail .why .s_guide dd { margin-top: 8px; font-size: 14px; line-height: 1.8; color: #555; }
.sub-content .ps_detail .why .ph img { width: 100%; border-radius: 24px; }

/* 장점 */
.sub-content .ps_detail .advantages .g_tit { margin-bottom: 44px; text-align: center; }
.sub-content .ps_detail .advantages .list { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.sub-content .ps_detail .advantages .list dl { padding: 34px 32px; background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-sm); }
.sub-content .ps_detail .advantages dt { font-size: 21px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.sub-content .ps_detail .advantages dt em { display: block; margin-bottom: 12px; font-family: var(--font-en); font-size: 14px; font-weight: 700; letter-spacing: .06em; color: var(--brand); }
.sub-content .ps_detail .advantages dd { margin-top: 14px; font-size: 15px; line-height: 1.8; color: #666; }

/* 추천 */
.sub-content .ps_detail .recommendation { background: var(--soft); text-align: center; }
.sub-content .ps_detail .recommendation .t_guide { margin: 16px 0 32px; font-size: 14px; color: var(--brand-deep); }
.sub-content .ps_detail .recommendation .img img { margin: 0 auto; border-radius: 20px; }

/* 수술방법 탭 */
.sub-content .ps_detail .type_of_surgery > h3 { text-align: center; font-size: clamp(24px, 2.6vw, 34px); font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
.sub-content .ps_detail .type_of_surgery > h3 span { display: block; margin-bottom: 12px; font-family: var(--font-en); font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); }
.sub-content .ps_detail .tab_type_of_surgery { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 36px auto 40px; }
.sub-content .ps_detail .tab_type_of_surgery li a { display: block; height: 46px; padding: 0 22px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 15px; font-weight: 600; line-height: 44px; color: #555; transition: .25s; }
.sub-content .ps_detail .tab_type_of_surgery li a:hover { border-color: var(--ink); color: var(--ink); }
.sub-content .ps_detail .tab_type_of_surgery li.active a { background: var(--ink); border-color: var(--ink); color: #fff; }
.sub-content .ps_detail .type_of_surgery_content { display: none; }
.sub-content .ps_detail .type_of_surgery_content.on { display: block; animation: fadeUp .4s var(--ease); }
.sub-content .ps_detail .s_info { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; margin-bottom: 28px; padding: 30px 36px; background: var(--soft); border-radius: 20px; }
.sub-content .ps_detail .s_info .tx { font-size: 18px; font-weight: 500; line-height: 1.7; color: var(--ink); }
.sub-content .ps_detail .sd_info { display: flex; flex-wrap: wrap; gap: 12px; }
.sub-content .ps_detail .sd_info dl { min-width: 120px; padding: 14px 18px; background: #fff; border-radius: 12px; text-align: center; }
.sub-content .ps_detail .sd_info dt { font-size: 12px; font-weight: 600; color: var(--muted); }
.sub-content .ps_detail .sd_info dd { margin-top: 4px; font-size: 15px; font-weight: 700; color: var(--ink); }
.sub-content .ps_detail .type_of_surgery_content > .list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* 프로세스 */
.sub-content .ps_detail .s_process { background: var(--soft); }
.sub-content .ps_detail .s_process .g_tit { margin-bottom: 44px; text-align: center; }
.sub-content .ps_detail .s_process .list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.sub-content .ps_detail .s_process .list.t3 { grid-template-columns: repeat(3, 1fr); }

/* 체크포인트 (사후관리 파셜도 같은 마크업) */
.sub-content .check_point .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.sub-content .check_point .ph { aspect-ratio: 4 / 3; border-radius: 24px; background-color: var(--soft); background-size: cover; background-position: center; }
.sub-content .check_point .tx .g_tit { margin-bottom: 24px; }
.sub-content .check_point .tx > p { margin-bottom: 24px; font-size: 16px; line-height: 1.8; color: #555; }
/* 번호 목록: 카드형 행 (번호 01·02·03 은 글 앞에 인라인) */
.sub-content .check_point .list { display: grid; grid-template-columns: 1fr; gap: 10px; }
.sub-content .check_point .list li { display: flex; align-items: flex-start; gap: 14px; padding: 18px 22px; background: #fff; border: 1px solid var(--line); border-radius: 16px; font-size: 16px; font-weight: 500; line-height: 1.6; color: var(--ink); }
.sub-content .check_point .list li em { flex: 0 0 auto; min-width: 26px; padding-top: 2px; font-family: var(--font-en); font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--brand); }
.sub-content .check_point .list.s6 { grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.sub-content .check_point.ty2 .list { grid-template-columns: repeat(3, 1fr); gap: 10px 12px; }
.sub-content .check_point.ty2 .list li { padding: 14px 18px; font-size: 15px; }
.sub-content .check_point.ty3 dl { padding-top: 24px; border-top: 1px solid var(--line); }
.sub-content .check_point.ty3 dt { font-size: 20px; font-weight: 700; color: var(--ink); }
.sub-content .check_point.ty3 dt span { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; color: var(--brand); }
.sub-content .check_point.ty3 dd { margin-top: 12px; line-height: 1.8; color: #555; }

/* Q&A */
.sub-content .ps_detail .qna { background: var(--soft); }
.sub-content .ps_detail .qna .g_tit { margin-bottom: 40px; text-align: center; }
.sub-content .ps_detail .qna .con { max-width: calc(1000px + var(--gutter) * 2); }
.sub-content .ps_detail .qna .con dl { padding: 26px 30px; background: #fff; border-radius: 16px; }
.sub-content .ps_detail .qna .con dl + dl { margin-top: 12px; }
.sub-content .ps_detail .qna dt { display: flex; gap: 12px; font-size: 18px; font-weight: 700; line-height: 1.5; color: var(--ink); }
.sub-content .ps_detail .qna dt em, .sub-content .ps_detail .qna dd em { flex: 0 0 auto; font-family: var(--font-en); font-weight: 700; color: var(--brand); }
.sub-content .ps_detail .qna dd { display: flex; gap: 12px; margin-top: 14px; font-size: 15px; line-height: 1.8; color: #555; }

/* 차이점 표 */
.sub-content .ps_detail .difference > .g_tit { margin-bottom: 40px; text-align: center; }
.sub-content .tb_difference { width: 100%; border: 1px solid var(--line); border-collapse: separate; border-spacing: 0; border-radius: 16px; overflow: hidden; font-size: 15px; }
.sub-content .tb_difference caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.sub-content .tb_difference th, .sub-content .tb_difference td { padding: 16px 18px; border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; line-height: 1.6; }
.sub-content .tb_difference thead th { background: var(--ink); color: #fff; font-weight: 700; }
.sub-content .tb_difference tbody th { width: 14%; background: var(--soft); font-weight: 700; color: var(--ink); }
.sub-content .tb_difference tr:last-child th, .sub-content .tb_difference tr:last-child td { border-bottom: 0; }
.sub-content .tb_difference tr.ph td img { margin: 0 auto; border-radius: 12px; }

/* 증상 / 신호 */
.sub-content .ps_detail .symptom { background: var(--soft); }
.sub-content .ps_detail .symptom .g_tit, .sub-content .ps_detail .signal .g_tit { text-align: center; }
.sub-content .ps_detail .symptom .wrap > p { margin: 18px 0 40px; text-align: center; color: #555; }
.sub-content .ps_detail .symptom .list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.sub-content .ps_detail .symptom .list dl { padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 20px; text-align: center; }
.sub-content .ps_detail .symptom .list dt { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--brand); color: #fff; font-size: 14px; font-weight: 700; }
.sub-content .ps_detail .symptom .list dd { margin-top: 16px; font-size: 15px; line-height: 1.7; color: var(--ink); }
.sub-content .ps_detail .symptom .list .ph img { margin: 0 auto 14px; border-radius: 12px; }
.sub-content .ps_detail .signal .g_tit { margin-bottom: 40px; }
.sub-content .ps_detail .signal .list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* MyLine Point / 적용부위 / 첫 선택 */
.sub-content .ps_detail .ml_point { background: var(--soft); }
.sub-content .ps_detail .ml_point .tit_area { margin-bottom: 44px; text-align: center; }
.sub-content .ps_detail .ml_point .tit_area .g_tit { margin-top: 12px; }
.sub-content .ps_detail .ml_point .s_tx { max-width: 820px; margin: 18px auto 0; font-size: 16px; line-height: 1.85; color: #555; }
.sub-content .ps_detail .ml_point .s_tx b { display: block; margin-bottom: 10px; color: var(--ink); }
.sub-content .ps_detail .ml_point .list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.sub-content .ps_detail .ml_point .list dl { padding: 28px 30px; background: #fff; border-left: 4px solid var(--brand); border-radius: 18px; }
.sub-content .ps_detail .ml_point .list dt { font-size: 18px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.sub-content .ps_detail .ml_point .list dd { margin-top: 10px; font-size: 15px; line-height: 1.75; color: #666; }
.sub-content .ps_detail .app_area .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.sub-content .ps_detail .app_area .ph { aspect-ratio: 1; border-radius: 24px; background-color: var(--soft); background-size: cover; background-position: center; }
.sub-content .ps_detail .app_area .g_tit { margin-top: 12px; }
.sub-content .ps_detail .app_area .s_tx { margin-top: 18px; font-size: 16px; line-height: 1.85; color: #555; }
.sub-content .ps_detail .app_area .s_tx b { color: var(--ink); }
.sub-content .ps_detail .app_area .list { margin-top: 20px; columns: 2; font-size: 16px; font-weight: 500; line-height: 2; color: var(--ink); }
.sub-content .ps_detail .first_choice { background: var(--ink); color: #fff; text-align: center; }
.sub-content .ps_detail .first_choice .t_tx { color: #ffd1e5; }
.sub-content .ps_detail .first_choice .t_tx em { font-family: var(--font-serif); font-style: italic; font-size: 1.4em; letter-spacing: 0; text-transform: none; color: #ff8fc2; }
.sub-content .ps_detail .first_choice .m_tx { margin-top: 18px; font-size: clamp(24px, 3vw, 38px); line-height: 1.35; letter-spacing: -.02em; }
.sub-content .ps_detail .first_choice .m_tx b { font-weight: 700; color: #ff9ec9; }
.sub-content .ps_detail .first_choice .s_tx { max-width: 820px; margin: 26px auto 0; font-size: 16px; line-height: 1.85; color: rgba(255, 255, 255, .75); }
.sub-content .ps_detail .first_choice .s_tx p + p { margin-top: 10px; }

/* 디자인 / 장비 / 프로그램 / 시술 종류 */
.sub-content .ps_detail .hair_design { text-align: center; }
.sub-content .ps_detail .hair_design > p { margin: 16px 0 36px; color: #555; }
.sub-content .ps_detail .hair_design .list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.sub-content .ps_detail .hair_design .list li { padding: 28px 20px; background: var(--soft); border-radius: 20px; }
.sub-content .ps_detail .hair_design .ill img { max-height: 160px; margin: 0 auto 14px; object-fit: contain; }
.sub-content .ps_detail .hair_design .list span { font-weight: 700; color: var(--ink); }
.sub-content .ps_detail .lase_equipment { background: var(--soft); }
.sub-content .ps_detail .lase_equipment > .g_tit { margin-bottom: 40px; text-align: center; }
.sub-content .ps_detail .lase_equipment .con .unit { display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: center; padding: 40px; background: #fff; border-radius: 24px; }
.sub-content .ps_detail .lase_equipment .con .unit + .unit { margin-top: 20px; }
.sub-content .ps_detail .lase_equipment .con .unit:nth-child(even) { grid-template-columns: 380px 1fr; }
.sub-content .ps_detail .lase_equipment .con .unit:nth-child(even) .tx { order: 2; }
.sub-content .ps_detail .lase_equipment .unit .img { aspect-ratio: 1; border-radius: 20px; background-color: var(--soft); background-size: cover; background-position: center; }
.sub-content .ps_detail .lase_equipment dl.tx dt { font-size: 26px; font-weight: 700; color: var(--ink); }
.sub-content .ps_detail .lase_equipment dl.tx dt em { display: block; margin-top: 6px; font-family: var(--font-en); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }
.sub-content .ps_detail .lase_equipment dl.tx dd { margin-top: 18px; font-size: 15px; line-height: 1.85; color: #555; }
.sub-content .ps_detail .find_program > .g_tit { margin-bottom: 40px; text-align: center; }
.sub-content .ps_detail .find_program .con { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sub-content .ps_detail .find_program .unit { display: flex; flex-direction: column; gap: 20px; padding: 32px; background: var(--soft); border-radius: 24px; }
.sub-content .ps_detail .find_program .unit .img { aspect-ratio: 16 / 9; border-radius: 16px; background-size: cover; background-position: center; }
.sub-content .ps_detail .find_program dl.tx dt { font-size: 22px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.sub-content .ps_detail .find_program dl.tx dt .num { margin-bottom: 8px; font-family: var(--font-en); font-size: 13px; color: var(--brand); }
.sub-content .ps_detail .find_program dl.tx dt em { font-size: 14px; font-weight: 500; color: var(--muted); }
.sub-content .ps_detail .find_program dl.tx dd { margin-top: 12px; font-size: 15px; line-height: 1.8; color: #555; }
.sub-content .ps_detail .find_program .unit .list { display: flex; flex-wrap: wrap; gap: 8px; }
.sub-content .ps_detail .find_program .unit .list li { display: inline-flex; gap: 8px; padding: 8px 14px; background: #fff; border-radius: 999px; font-size: 14px; font-weight: 600; }
.sub-content .ps_detail .find_program .unit .list li em { font-family: var(--font-en); color: var(--brand); }
.sub-content .ps_detail .procedure_type { background: var(--soft); }
.sub-content .ps_detail .procedure_type .con .unit { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.sub-content .ps_detail .procedure_type .con .unit + .unit { margin-top: 56px; }
.sub-content .ps_detail .procedure_type .con .unit:nth-child(even) .tx { order: 2; }
.sub-content .ps_detail .procedure_type dl.tx dt { font-size: 28px; font-weight: 700; color: var(--ink); }
.sub-content .ps_detail .procedure_type dl.tx dt span { display: block; margin-bottom: 10px; font-size: 14px; font-weight: 600; color: var(--brand); }
.sub-content .ps_detail .procedure_type dl.tx dt em { margin-left: 6px; font-family: var(--font-en); font-size: 14px; font-weight: 500; color: var(--muted); }
.sub-content .ps_detail .procedure_type dl.tx dd { margin-top: 16px; line-height: 1.85; color: #555; }
.sub-content .ps_detail .procedure_type .ph img { border-radius: 24px; }

/* =====================================================================
   공통 파셜 (.sub_common: 안심케어 / 리프팅 라인업 / 사후관리)
   ===================================================================== */
.sub-content .sub_common { padding: 88px 0; overflow: hidden; }
.sub-content .sub_common > h3 { max-width: calc(var(--inner) + var(--gutter) * 2); margin: 0 auto 40px; padding: 0 var(--gutter); text-align: center; font-size: clamp(24px, 2.6vw, 34px); font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
.sub-content .sub_common > h3 span { display: block; margin-bottom: 12px; font-family: var(--font-en); font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); }
.sub-content .sub_common > h3 span b { font-family: var(--font-serif); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 1.3em; }
.sub-content .why_do_you { background: var(--soft); }
.sub-content .why_do_you .slider { max-width: calc(var(--inner) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.sub-content .why_do_you .swiper-slide { position: relative; border-radius: 20px; overflow: hidden; background-color: var(--ink); background-size: cover; background-position: center; }
.sub-content .why_do_you .swiper-slide::before { content: ''; display: block; padding-bottom: 62%; }
.sub-content .why_do_you .swiper-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17, 19, 24, .05) 0%, rgba(17, 19, 24, .78) 100%); }
.sub-content .why_do_you .swiper-slide .tx { position: absolute; left: 28px; right: 28px; bottom: 26px; z-index: 2; color: #fff; }
.sub-content .why_do_you .swiper-slide .num { margin-bottom: 8px; font-family: var(--font-en); font-size: 13px; font-weight: 700; color: #ffd1e5; }
.sub-content .why_do_you .swiper-slide dt { font-size: 22px; font-weight: 700; line-height: 1.3; }
.sub-content .why_do_you .swiper-slide dd { margin-top: 10px; font-size: 14px; line-height: 1.7; color: rgba(255, 255, 255, .85); }
.sub-content .ml_lifting_line_up .slider { padding-left: max(var(--gutter), calc((100% - var(--inner)) / 2)); }
.sub-content .ml_lifting_line_up .swiper-slide { position: relative; width: 300px; margin-right: 24px; background: #fff; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }
.sub-content .ml_lifting_line_up .swiper-slide .ph { aspect-ratio: 52 / 62; background-color: #f2f2f4; background-size: cover; background-position: center; }
.sub-content .ml_lifting_line_up .swiper-slide .tx { padding: 22px 24px 64px; }
.sub-content .ml_lifting_line_up .swiper-slide .name b { font-size: 20px; font-weight: 700; color: var(--ink); }
.sub-content .ml_lifting_line_up .swiper-slide .name span { display: block; font-family: var(--font-en); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.sub-content .ml_lifting_line_up .swiper-slide .exp { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; margin-top: 12px; font-size: 14px; line-height: 1.7; color: #666; }
.sub-content .ml_lifting_line_up .swiper-slide .bt_ov { position: absolute; left: 24px; bottom: 22px; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ink); }
.sub-content .ml_lifting_line_up .swiper-slide .bt_ov::after { content: ''; width: 6px; height: 6px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); }
.sub-content .after_care_program { background: var(--soft); }
.sub-content .after_care_program .d_sec.check_point { padding: 0; }
.sub-content .after_care_program .check_point .list li { display: block; padding: 20px 24px; font-weight: 400; color: #555; }
.sub-content .after_care_program .check_point .list li span { display: block; margin-bottom: 6px; font-size: 17px; font-weight: 700; color: var(--ink); }
.sub-content .after_care_program .check_point .list li br { display: none; }

/* =====================================================================
   마이라인 소개 / 의료진 / 오시는 길
   ===================================================================== */
.sub-content .about_ml .sec_w { padding: 88px 0; }
.sub-content .about_ml .sec_w .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 56px; align-items: start; }
.sub-content .about_ml .sec_w .ph1 { grid-column: 1; grid-row: 1 / span 2; aspect-ratio: 4 / 5; border-radius: 24px; background: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/about_ml_ph01.png) center / cover no-repeat var(--soft); }
.sub-content .about_ml .sec_w .ph2 { grid-column: 2; grid-row: 2; aspect-ratio: 16 / 10; border-radius: 24px; background: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/about_ml_ph02.png) center / cover no-repeat var(--soft); }
.sub-content .about_ml .sec_w .tx1 { grid-column: 2; grid-row: 1; }
.sub-content .about_ml .sec_w .tx2 { grid-column: 1 / -1; grid-row: 3; max-width: 960px; }
.sub-content .about_ml .tx .tit { font-family: var(--font-en); font-size: clamp(32px, 4vw, 52px); font-weight: 400; line-height: 1.1; letter-spacing: -.03em; color: var(--ink); }
.sub-content .about_ml .tx .tit em { font-family: var(--font-serif); font-style: italic; color: var(--brand); }
.sub-content .about_ml .tx p { margin-top: 20px; font-size: 17px; line-height: 1.85; color: #444; }
.sub-content .about_ml .sec_bk { padding: 96px 0; background: var(--ink); color: #fff; }
.sub-content .about_ml .sec_bk h3 { text-align: center; font-family: var(--font-en); font-size: clamp(30px, 3.6vw, 48px); font-weight: 400; line-height: 1.15; letter-spacing: -.02em; }
.sub-content .about_ml .sec_bk .s_tx { margin-top: 16px; text-align: center; color: rgba(255, 255, 255, .7); }
.sub-content .about_ml .sec_bk .list .wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 48px; }
.sub-content .about_ml .sec_bk dl { padding: 32px 26px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: 20px; }
.sub-content .about_ml .sec_bk dl::before { content: ''; display: block; width: 44px; height: 44px; margin-bottom: 18px; background: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/about_ml_ic01.png) center / contain no-repeat; }
.sub-content .about_ml .sec_bk dl:nth-child(2)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/about_ml_ic02.png); }
.sub-content .about_ml .sec_bk dl:nth-child(3)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/about_ml_ic03.png); }
.sub-content .about_ml .sec_bk dl:nth-child(4)::before { background-image: url(https://channel-static.rebeauty.co.kr/mylineps/_assets/image/about_ml_ic04.png); }
.sub-content .about_ml .sec_bk dt { font-family: var(--font-en); font-size: 22px; font-weight: 700; color: #ffd1e5; }
.sub-content .about_ml .sec_bk dd { margin-top: 12px; font-size: 14px; line-height: 1.8; color: rgba(255, 255, 255, .78); }
.sub-content .about_ml .sec_bk dd em { display: block; margin-bottom: 8px; font-size: 15px; font-weight: 700; color: #fff; }

.sub-content .medical_leaders { padding: 56px 0 40px; }
.sub-content .medical_leaders .unit { display: grid; grid-template-columns: 380px 1fr; gap: 56px; align-items: start; padding: 48px 0; border-top: 1px solid var(--line); }
.sub-content .medical_leaders .unit > .ph img { width: 100%; border-radius: 24px; }
.sub-content .medical_leaders .g_info .name { font-size: 32px; font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
.sub-content .medical_leaders .c_tx .msg { margin-top: 14px; font-size: 18px; font-weight: 500; line-height: 1.6; color: var(--brand-deep); }
.sub-content .medical_leaders .c_tx .history { margin-top: 20px; font-size: 15px; line-height: 2; color: #555; }
.sub-content .medical_leaders .d_info { display: grid; gap: 28px; margin-top: 32px; }
.sub-content .medical_leaders .s_unit { padding: 28px; background: var(--soft); border-radius: 20px; }
.sub-content .medical_leaders .s_unit dt { margin-bottom: 12px; font-size: 16px; font-weight: 700; color: var(--ink); }
.sub-content .medical_leaders .s_unit dd p { font-size: 13px; line-height: 1.7; color: #666; }
.sub-content .medical_leaders .s_unit .ph { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.sub-content .medical_leaders .s_unit .ph img { width: calc(33.333% - 7px); aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; }

.sub-content .ml_contact { padding: 72px 0 40px; }
.sub-content .ml_contact > .wrap { display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: start; }
.sub-content .ml_contact > .wrap > h2, .sub-content .ml_contact > .wrap > .tour-gallery { grid-column: 1 / -1; }
.sub-content .ml_contact .map iframe { width: 100%; min-height: 460px; border-radius: 24px; }
.sub-content .ml_contact .info .call { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.sub-content .ml_contact .info .call dl { flex: 1 1 200px; padding: 20px 22px; background: var(--soft); border-radius: 16px; }
.sub-content .ml_contact .info .call dt { font-size: 13px; font-weight: 600; color: var(--muted); }
.sub-content .ml_contact .info .call dd a { font-family: var(--font-en); font-size: 24px; font-weight: 700; color: var(--brand); }
.sub-content .ml_contact .info > dl { display: grid; grid-template-columns: 100px 1fr; gap: 16px; padding: 20px 0; border-top: 1px solid var(--line); }
.sub-content .ml_contact .info > dl > dt { padding-top: 3px; font-size: 14px; font-weight: 700; color: var(--muted); }
.sub-content .ml_contact .info > dl > dd { font-size: 16px; line-height: 1.7; color: var(--ink); }
.sub-content .ml_contact .info > dl > dd p { margin-top: 6px; font-size: 13px; color: var(--muted); }
.sub-content .ml_contact .info dl.time dd dl { display: flex; gap: 12px; }
.sub-content .ml_contact .info dl.time dd dl dt { width: 70px; font-weight: 600; color: var(--ink); }
.sub-content .ml_contact h2.sub_tit { margin-top: 56px; }
.sub-content .tour-gallery { margin-top: 32px; }
.sub-content .tour-hero { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; padding: 24px; background: var(--soft); border-radius: 24px; }
.sub-content .tour-hero .hero-figure { margin: 0; }
.sub-content .tour-hero .hero-figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; }
.sub-content .tour-hero .hero-meta h3 { font-size: 28px; font-weight: 700; color: var(--ink); }
.sub-content .tour-hero .hero-meta p { margin-top: 12px; line-height: 1.8; color: #555; }
.sub-content .thumb-bar { margin-top: 16px; }
.sub-content .thumb-track { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 6px; cursor: grab; scrollbar-width: thin; }
.sub-content .thumb-track.dragging { cursor: grabbing; }
.sub-content .thumb { position: relative; flex: 0 0 160px; padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; transition: .2s; }
.sub-content .thumb img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.sub-content .thumb.is-active { border-color: var(--brand); }
.sub-content .thumb-title { position: absolute; left: 0; right: 0; bottom: 0; padding: 6px 8px; background: rgba(17, 19, 24, .55); font-size: 12px; color: #fff; }

/* =====================================================================
   이용안내(정책) / 회원 / 커뮤니티 / 갤러리 / 404
   ===================================================================== */
.sub-content .pa_form { padding: 72px 0; }
.sub-content .pa_form h2 { margin-bottom: 40px; text-align: center; font-size: clamp(26px, 3vw, 36px); font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
.sub-content .pa_form .w_box { padding: 36px 40px; background: var(--soft); border-radius: 20px; font-size: 14px; line-height: 1.85; color: #555; }
.sub-content .pa_form .w_box + .w_box { margin-top: 20px; }
.sub-content .pa_form dt { margin: 22px 0 8px; font-size: 17px; font-weight: 700; color: var(--ink); }
.sub-content .pa_form dl > dt:first-child { margin-top: 0; }
.sub-content .pa_form h4 { margin-bottom: 14px; font-size: 20px; font-weight: 700; color: var(--ink); }
.sub-content .pa_form .d_list li { position: relative; padding-left: 14px; }
.sub-content .pa_form .d_list li::before { content: ''; position: absolute; left: 0; top: 11px; width: 4px; height: 4px; border-radius: 50%; background: var(--brand); }
.sub-content .tb_g_data { width: 100%; margin: 12px 0; border-collapse: collapse; background: #fff; }
.sub-content .tb_g_data th, .sub-content .tb_g_data td { padding: 12px 14px; border: 1px solid var(--line); text-align: center; }
.sub-content .tb_g_data th { background: #fff; font-weight: 700; color: var(--ink); }

.sub-content #login, .sub-content #sign { padding: 64px var(--gutter) 80px; }
.sub-content .inner600 { max-width: 600px; margin: 0 auto; }
.sub-content .field input { width: 100%; height: 52px; padding: 0 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); outline: none; }
.sub-content .field input:focus { border-color: var(--brand); background: #fff; }
.sub-content .field + .field { margin-top: 12px; }
.sub-content .remember { display: block; margin: 14px 0; font-size: 14px; color: #555; }
.sub-content .btn-login, .sub-content .submit-btn, .sub-content .next-btn { display: block; width: 100%; height: 54px; border-radius: 999px; background: linear-gradient(135deg, var(--brand) 0%, var(--brand-deep) 100%); color: #fff; font-size: 16px; font-weight: 700; box-shadow: 0 10px 24px rgba(231, 88, 153, .28); }
.sub-content .prev-btn, .sub-content .home-btn { display: block; width: 100%; height: 54px; margin-top: 10px; border: 1px solid var(--ink); border-radius: 999px; background: #fff; font-size: 16px; font-weight: 700; color: var(--ink); }
.sub-content .sns-login { display: flex; justify-content: center; gap: 10px; margin-top: 20px; }
.sub-content .sns-btn img { height: 48px; }
.sub-content .step-indicator { display: flex; justify-content: center; gap: 48px; margin-bottom: 40px; }
.sub-content .step { text-align: center; font-size: 14px; color: var(--muted); }
.sub-content .step .num { display: grid; place-items: center; width: 40px; height: 40px; margin: 0 auto 8px; border-radius: 50%; background: var(--soft); font-family: var(--font-en); font-weight: 700; color: var(--ink); }
.sub-content .step.active .num, .sub-content .step.on .num { background: var(--brand); color: #fff; }
.sub-content .consent-title, .sub-content h3.title { margin: 24px 0 12px; font-size: 20px; font-weight: 700; color: var(--ink); }
.sub-content .consent-row { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.sub-content .consent-row.all { font-weight: 700; color: var(--ink); }
.sub-content .consent-row .link { margin-left: auto; font-size: 13px; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.sub-content .form-row { display: grid; grid-template-columns: 140px 1fr; gap: 12px; align-items: center; padding: 10px 0; }
.sub-content .form-row label.left { font-size: 14px; font-weight: 700; color: var(--ink); }
.sub-content .form-row input:not([type="radio"]):not([type="checkbox"]), .sub-content .form-row select { width: 100%; height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.sub-content .input-area { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sub-content .input-area > input, .sub-content .input-area > select { flex: 1 1 120px; }
.sub-content .action-group, .sub-content .action { margin-top: 24px; }
.sub-content .join-complete { padding: 40px 0; text-align: center; }
.sub-content .join-complete .icon-wrap { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 20px; border-radius: 50%; background: var(--brand-soft); }
.sub-content .join-complete .checkmark { width: 20px; height: 34px; border: solid var(--brand); border-width: 0 4px 4px 0; transform: rotate(45deg) translate(-2px, -4px); }
.sub-content .modal { position: fixed; inset: 0; z-index: 300; display: none; align-items: center; justify-content: center; padding: 20px; }
.sub-content .modal[aria-hidden="false"], .sub-content .modal.is-open, .sub-content .modal.show { display: flex; }
.sub-content .modal-dim { position: absolute; inset: 0; background: rgba(0, 0, 0, .55); }
.sub-content .modal-panel { position: relative; width: min(100%, 640px); max-height: 80vh; overflow: auto; background: #fff; border-radius: 20px; }
.sub-content .modal-header { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--line); font-weight: 700; }
.sub-content .modal-close { width: 32px; height: 32px; font-size: 24px; line-height: 1; }
.sub-content .modal-body { padding: 22px; font-size: 14px; line-height: 1.8; color: #555; }
.sub-content .modal-footer { padding: 14px 22px; border-top: 1px solid var(--line); text-align: right; }
.sub-content .btn-primary { min-height: 44px; padding: 0 22px; border-radius: 999px; background: var(--ink); color: #fff; font-weight: 700; }

.sub-content .community { max-width: calc(var(--inner) + var(--gutter) * 2); margin: 0 auto; padding: 64px var(--gutter) 80px; }
.sub-content .community .tit_area { margin-bottom: 40px; text-align: center; }
.sub-content .community .tit_area h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
.sub-content .community .tit_area h2 b { color: var(--brand); }
.sub-content .community .tit_area p { margin-top: 10px; color: var(--muted); }
.sub-content .tb_board { width: 100%; border-collapse: collapse; border-top: 2px solid var(--ink); font-size: 15px; }
.sub-content .tb_board caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.sub-content .tb_board th { padding: 16px 12px; border-bottom: 1px solid var(--line); background: var(--soft); font-weight: 700; color: var(--ink); }
.sub-content .tb_board td { padding: 16px 12px; border-bottom: 1px solid var(--line); text-align: center; }
.sub-content .tb_board td.tit { text-align: left; }
.sub-content .tb_board td.tit a { font-weight: 600; color: var(--ink); }
.sub-content .tb_board td.tit a:hover { color: var(--brand); }
.sub-content .notice-badge, .sub-content .badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.sub-content .notice-badge { background: var(--brand); color: #fff; }
.sub-content .badge.darkgray { margin-right: 6px; background: #555; color: #fff; }
.sub-content .comment-count { margin-left: 4px; font-size: 13px; color: var(--brand); }
.sub-content .secret-icon { margin-left: 4px; font-size: 12px; color: var(--muted); }
.sub-content .pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 32px 0; }
.sub-content .pagination a, .sub-content .pagination span > a { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; font-size: 14px; color: #555; }
.sub-content .pagination span { display: inline-flex; gap: 6px; }
.sub-content .pagination a.on, .sub-content .pagination a.active { background: var(--ink); border-color: var(--ink); color: #fff; }
.sub-content .pagination a.pn { color: var(--muted); }
.sub-content .board_search { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.sub-content .board_search select, .sub-content .board_search input { height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.sub-content .board_search input { width: 260px; }
.sub-content .bt_search, .sub-content .bt_confirm { display: inline-flex; align-items: center; height: 44px; padding: 0 20px; border-radius: 10px; background: var(--ink); color: #fff; font-weight: 600; }
.sub-content .b_btns, .sub-content .b_btn { display: flex; justify-content: flex-end; gap: 8px; margin-top: 24px; }
.sub-content .b_btns a, .sub-content .b_btns button, .sub-content .b_btn a, .sub-content .b_btn button { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 600; }
.sub-content .b_btns .c_grey, .sub-content .b_btn .c_grey { background: #fff; color: var(--ink); }
.sub-content .community .view .tit { padding: 20px 0; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); font-size: 24px; font-weight: 700; color: var(--ink); }
.sub-content .community .view .u_info { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 14px; color: var(--muted); }
.sub-content .community .view .u_info dl { display: flex; gap: 6px; }
.sub-content .community .view .con_tx { min-height: 200px; padding: 32px 0; line-height: 1.9; }
.sub-content .community .agree h3, .sub-content .community .write h3 { margin: 32px 0 14px; font-size: 20px; font-weight: 700; color: var(--ink); }
.sub-content .community .agree .box { max-height: 160px; overflow: auto; padding: 18px; background: var(--soft); border-radius: 12px; font-size: 13px; line-height: 1.7; color: #666; }
.sub-content .community .check { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 14px; }
.sub-content .community .write .form dl { display: grid; grid-template-columns: 120px 1fr; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.sub-content .community .write .form dt { font-size: 14px; font-weight: 700; color: var(--ink); }
.sub-content .community .write .form input[type="text"], .sub-content .community .write .form input[type="password"], .sub-content .community .write .form input[type="tel"], .sub-content .community .write .form select { width: 100%; max-width: 480px; height: 46px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.sub-content .community .write .form textarea { width: 100%; min-height: 200px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; }
.sub-content .community .write .form dl.email dd { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sub-content .community .write .form dl.email input, .sub-content .community .write .form dl.email select { width: auto; flex: 1 1 160px; }
.sub-content .community .view_pw { max-width: 480px; margin: 0 auto; padding: 40px; background: var(--soft); border-radius: 20px; text-align: center; }
.sub-content .community .view_pw .tx { margin-bottom: 20px; font-size: 15px; color: #555; }
.sub-content .community .view_pw input { width: 100%; height: 48px; margin-bottom: 12px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; }
.sub-content .community .view_pw .error { margin-top: 10px; font-size: 13px; color: #c0233c; }
.sub-content .community.rev .unit { padding: 28px 0; border-top: 1px solid var(--line); }
.sub-content .community.rev .unit h3 { margin-bottom: 14px; font-size: 20px; font-weight: 700; color: var(--ink); }
.sub-content .community.rev .unit h3 i { font-style: normal; color: var(--brand); }
.sub-content .community.rev .t_guide { margin-bottom: 12px; font-size: 13px; color: var(--muted); }
.sub-content .community.rev .u_info dl { display: grid; grid-template-columns: 120px 1fr; gap: 12px; align-items: center; padding: 8px 0; }
.sub-content .community.rev .u_info dt { font-size: 14px; font-weight: 700; color: var(--ink); }
.sub-content .community.rev .u_info input { width: 100%; max-width: 480px; height: 46px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; }
.sub-content .community.rev .sj_select select { height: 46px !important; padding: 0 14px !important; border: 1px solid var(--line) !important; border-radius: 10px !important; }
.sub-content .community.rev .rt_select { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.sub-content .community.rev .cal .h_area { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; font-weight: 700; color: var(--ink); }
.sub-content .community.rev .cal .h_area a { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; position: relative; }
.sub-content .community.rev .cal .h_area a::after { content: ''; position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; border-top: 1.5px solid var(--ink); border-right: 1.5px solid var(--ink); }
.sub-content .community.rev .cal .h_area .bt_prev::after { transform: translate(-30%, -50%) rotate(-135deg); }
.sub-content .community.rev .cal .h_area .bt_next::after { transform: translate(-70%, -50%) rotate(45deg); }
.sub-content .tb_calendar { width: 100%; border-collapse: collapse; text-align: center; }
.sub-content .tb_calendar th { padding: 10px 0; font-family: var(--font-en); font-size: 12px; font-weight: 700; color: var(--muted); }
.sub-content .tb_calendar td { padding: 4px; }
.sub-content .tb_calendar td a { display: grid; place-items: center; width: 40px; height: 40px; margin: 0 auto; border-radius: 50%; font-weight: 600; }
.sub-content .tb_calendar td a:hover { background: var(--soft); }
.sub-content .tb_calendar td a.on { background: var(--brand); color: #fff; }
.sub-content .tb_calendar td.disabled a, .sub-content .tb_calendar td a.disabled { color: #c9c9cc; pointer-events: none; }
.sub-content .community.rev .time .list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.sub-content .community.rev .time .list li a { display: block; padding: 10px 0; border: 1px solid var(--line); border-radius: 10px; text-align: center; font-size: 14px; }
.sub-content .community.rev .time .list li a.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.sub-content .community.rev .time .list li.disabled a { opacity: .35; pointer-events: none; }
.sub-content .community.rev .rv_guide { margin-top: 16px; font-size: 13px; color: var(--muted); }
.sub-content .community.rev .rv_guide span { display: block; }
.sub-content .community.rev .add_inquiries { width: 100%; min-height: 160px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.sub-content .community.rev .bt_rev { display: flex; align-items: center; justify-content: center; max-width: 320px; height: 56px; margin: 32px auto 0; border-radius: 999px; background: linear-gradient(135deg, var(--brand) 0%, var(--brand-deep) 100%); color: #fff; font-weight: 700; box-shadow: 0 10px 24px rgba(231, 88, 153, .28); }
.sub-content .tab_ba, .sub-content .tab_ba_sub { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 24px; }
.sub-content .tab_ba li a, .sub-content .tab_ba_sub li a { display: block; height: 42px; padding: 0 18px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 14px; font-weight: 600; line-height: 40px; color: #555; }
.sub-content .tab_ba li.active a, .sub-content .tab_ba_sub li.active a { background: var(--ink); border-color: var(--ink); color: #fff; }
.sub-content .tab_ba_content { display: none; }
.sub-content .tab_ba_content.on { display: block; }
.sub-content .ba_viewer .view { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sub-content .ba_viewer .view .before, .sub-content .ba_viewer .view .after { position: relative; border-radius: 16px; overflow: hidden; background: var(--soft); }
.sub-content .ba_viewer .ph { aspect-ratio: 1; background-size: cover; background-position: center; }
.sub-content .ba_viewer.off .view .before .ph { filter: blur(10px); }
.sub-content .ba_viewer .t_tx { position: absolute; left: 12px; top: 12px; padding: 4px 12px; border-radius: 999px; background: var(--ink); font-family: var(--font-en); font-size: 12px; font-weight: 700; color: #fff; }
.sub-content .ba_viewer .msg { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(255, 255, 255, .6); text-align: center; font-weight: 600; color: var(--ink); }
.sub-content .ba_viewer:not(.off) .msg { display: none; }
.sub-content .ba_viewer .list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 16px; }
.sub-content .ba_viewer .list li { border-radius: 12px; overflow: hidden; border: 2px solid transparent; }
.sub-content .ba_viewer .list li.on { border-color: var(--brand); }
.sub-content .loading_indicator { padding: 40px; text-align: center; color: var(--muted); }
.sub-content .loading_indicator.hidden { display: none; }
.sub-content .leaflet-gallery { max-width: calc(var(--inner) + var(--gutter) * 2); margin: 0 auto; padding: 64px var(--gutter) 80px; }

.err404 { padding: 120px var(--gutter); text-align: center; }
.err404-code { display: block; font-family: var(--font-en); font-size: clamp(64px, 12vw, 140px); font-weight: 700; line-height: 1; letter-spacing: -.04em; color: var(--brand-soft); }
.err404-title { margin-top: 8px; font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--ink); }
.err404-desc { margin-top: 16px; color: var(--muted); line-height: 1.8; }
.err404-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 32px; }

/* =====================================================================
   공통 꼬리 (의료진 스트립 + 빠른 상담 CTA)
   ===================================================================== */
.stail-doc { padding: 96px 0; background: var(--soft); }
.stail-doc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.stail-doc-card { display: grid; grid-template-columns: 140px 1fr; gap: 24px; align-items: center; padding: 20px; background: #fff; border-radius: 20px; box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.stail-doc-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.stail-doc-ph { display: block; aspect-ratio: 45 / 65; border-radius: 14px; overflow: hidden; background: var(--soft); }
.stail-doc-ph img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.stail-doc-tx em { display: block; font-family: var(--font-en); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--brand); }
.stail-doc-tx strong { display: block; margin-top: 8px; font-size: 24px; font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
.stail-doc-tx strong span { margin-left: 4px; font-size: 15px; font-weight: 500; color: var(--muted); }
.stail-doc-tx small { display: block; margin-top: 8px; font-size: 14px; color: #666; }
.stail-cta { padding: 96px 0; background: linear-gradient(160deg, #fff3f8 0%, #fbe4ee 100%); }
.stail-cta-head { text-align: center; margin-bottom: 36px; }
.stail-cta .consult { margin-top: 0; }
.stail-cta-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1100px) {
	.sub-content .ps_detail .type_of_surgery_content > .list, .sub-content .ps_detail .s_process .list, .sub-content .ps_detail .symptom .list, .sub-content .ps_detail .signal .list, .sub-content .ps_detail .hair_design .list { grid-template-columns: repeat(2, 1fr); }
	.sub-content .about_ml .sec_bk .list .wrap { grid-template-columns: repeat(2, 1fr); }
	.sub-content .medical_leaders .unit { grid-template-columns: 300px 1fr; gap: 36px; }
}
@media (max-width: 1023px) {
	.phero { min-height: 340px; }
	.phero-inner { padding-top: 56px; padding-bottom: 40px; }
	.subnav a { padding: 15px 14px; font-size: 14px; }
	.sub-content .ps_detail .d_sec { padding: 64px 0; }
	.sub-content .ps_detail .s_intro { padding: 56px 0 32px; }
	.sub-content .ps_detail .g_info { padding-bottom: 64px; }
	.sub-content .ps_detail .why .wrap, .sub-content .check_point .wrap, .sub-content .ps_detail .app_area .wrap, .sub-content .ps_detail .find_program .con, .sub-content .ps_detail .procedure_type .con .unit, .sub-content .ps_detail .lase_equipment .con .unit, .sub-content .ps_detail .lase_equipment .con .unit:nth-child(even) { grid-template-columns: 1fr; gap: 28px; }
	.sub-content .ps_detail .lase_equipment .con .unit:nth-child(even) .tx, .sub-content .ps_detail .procedure_type .con .unit:nth-child(even) .tx { order: 0; }
	.sub-content .ps_detail .lase_equipment .unit .img { aspect-ratio: 16 / 10; }
	.sub-content .ps_detail .s_info { grid-template-columns: 1fr; }
	.sub-content .ps_detail .ml_point .list { grid-template-columns: 1fr; }
	.sub-content .check_point.ty2 .list { grid-template-columns: 1fr 1fr; }
	.sub-content .sub_common { padding: 64px 0; }
	.sub-content .about_ml .sec_w .wrap { grid-template-columns: 1fr; }
	.sub-content .about_ml .sec_w .ph1, .sub-content .about_ml .sec_w .ph2, .sub-content .about_ml .sec_w .tx1, .sub-content .about_ml .sec_w .tx2 { grid-column: auto; grid-row: auto; }
	.sub-content .about_ml .sec_w .ph1 { aspect-ratio: 16 / 10; }
	.sub-content .medical_leaders .unit { grid-template-columns: 1fr; }
	.sub-content .medical_leaders .unit > .ph { max-width: 360px; }
	.sub-content .ml_contact > .wrap { grid-template-columns: 1fr; gap: 36px; }
	.sub-content .ml_contact .map iframe { min-height: 320px; }
	.sub-content .tour-hero { grid-template-columns: 1fr; gap: 20px; }
	.sub-content .community.rev .rt_select { grid-template-columns: 1fr; }
	.sub-content .pa_form .w_box { padding: 26px 22px; }
	.stail-doc, .stail-cta { padding: 64px 0; }
	.stail-doc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.phero { min-height: 280px; }
	.phero-title { font-size: 30px; }
	.sub-content { font-size: 15px; }
	.sub-content .ps_detail .g_info > dl { flex: 1 1 calc(50% - 6px); max-width: none; }
	.sub-content .ps_detail .type_of_surgery_content > .list, .sub-content .ps_detail .s_process .list, .sub-content .ps_detail .s_process .list.t3, .sub-content .ps_detail .symptom .list, .sub-content .ps_detail .signal .list, .sub-content .ps_detail .hair_design .list, .sub-content .ps_detail .advantages .list { grid-template-columns: 1fr; }
	.sub-content .check_point .list.s6, .sub-content .check_point.ty2 .list { grid-template-columns: 1fr; }
	.sub-content .ps_detail .app_area .list { columns: 1; }
	.sub-content .ps_detail .sd_info dl { flex: 1 1 calc(50% - 6px); }
	.sub-content .ps_detail .qna .con dl { padding: 20px 18px; }
	.sub-content .tb_difference { font-size: 13px; }
	.sub-content .tb_difference th, .sub-content .tb_difference td { padding: 10px 8px; }
	.sub-content .about_ml .sec_bk .list .wrap { grid-template-columns: 1fr; }
	.sub-content .ml_lifting_line_up .swiper-slide { width: 260px; margin-right: 16px; }
	.sub-content .medical_leaders .s_unit .ph img { width: calc(50% - 5px); }
	.sub-content .ml_contact .info > dl { grid-template-columns: 80px 1fr; }
	.sub-content .thumb { flex-basis: 130px; }
	.sub-content .community { padding-top: 40px; }
	.sub-content .tb_board { font-size: 13px; }
	.sub-content .tb_board th, .sub-content .tb_board td { padding: 12px 6px; }
	.sub-content .community .write .form dl, .sub-content .community.rev .u_info dl { grid-template-columns: 1fr; gap: 6px; }
	.sub-content .community.rev .time .list { grid-template-columns: repeat(3, 1fr); }
	.sub-content .ba_viewer .list { grid-template-columns: repeat(2, 1fr); }
	.sub-content .form-row { grid-template-columns: 1fr; gap: 6px; }
	.sub-content .step-indicator { gap: 24px; }
	.stail-doc-card { grid-template-columns: 110px 1fr; gap: 16px; }
	.err404 { padding: 72px var(--gutter); }
}
