/* ==========================================================================
   모우림의원 — 디에이피부과 도산(daderma) 레이아웃 구조 이식
   구조 계층: header(fixed) / lnb(overlay) / sections / footer / quick
   ========================================================================== */

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body,div,span,h1,h2,h3,h4,h5,h6,p,blockquote,a,em,img,small,strong,b,i,
ul,ol,li,form,label,table,tbody,thead,tr,th,td,article,aside,figure,figcaption,
footer,header,main,nav,section,button,input,textarea,select{
  margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}
article,aside,figure,footer,header,main,nav,section{display:block}
ul,ol{list-style:none}
table{border-collapse:collapse;border-spacing:0}
img{max-width:100%;vertical-align:top}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button{background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
*{-webkit-tap-highlight-color:transparent}

/* ---------- tokens ---------- */
:root{
  --ink:#17150f;
  --ink-2:#211d15;
  --deep:#2b2519;
  --point:#8a7845;
  --point-d:#6d5d33;
  --point-l:#c9b46a;
  --cream:#f7f4ef;
  --beige:#ece5db;
  --sand:#ddcdbb;
  --line:#e4ddd4;
  --gray:#727272;
  --gray-2:#919191;
  --white:#fff;
  --header-h:5.75rem;
  --pad-x:clamp(20px,5.2vw,100px);
  --vh:100vh;
  font-size:16px;
}
@media (max-width:1400px){:root{font-size:15px}}
@media (max-width:1024px){:root{font-size:14.5px}}
@media (max-width:768px){:root{--header-h:4.25rem;font-size:14px}}

/* ---------- font utility ---------- */
html,body{
  font-family:'Pretendard Variable',Pretendard,-apple-system,'Noto Sans KR',
    'Noto Sans SC','Noto Sans TC','Noto Sans JP','Noto Sans Thai',sans-serif;
  color:#000;background:var(--white);scroll-behavior:smooth;line-height:1;
  word-break:keep-all;overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body.lnb-open{overflow:hidden}

.srf{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
  'Noto Serif Thai',serif;font-weight:400}
.eng{font-family:'Sorts Mill Goudy',Georgia,serif;font-weight:400}
.eng-i{font-family:'Sorts Mill Goudy',Georgia,serif;font-style:italic}

/* ---------- layout primitives ---------- */
.flex-c{display:flex;justify-content:center;align-items:center}
.inner{width:100%;max-width:1400px;margin-inline:auto;padding-inline:var(--pad-x)}
.inner-nr{width:100%;max-width:1096px;margin-inline:auto;padding-inline:var(--pad-x)}
.pc-only{display:block}.mo-only{display:none}
@media (max-width:768px){.pc-only{display:none}.mo-only{display:block}}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(2.25rem);
  transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.reveal.on{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}
.d4{transition-delay:.4s}.d5{transition-delay:.5s}.d6{transition-delay:.6s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html,body{scroll-behavior:auto}
  .mainBanner_slide img{transition:none}
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.main-header{position:fixed;top:0;left:0;width:100%;height:var(--header-h);
  background:#fff;z-index:9000;transition:background .5s ease,box-shadow .5s ease}
.main-header.scrolled{box-shadow:0 .18rem 1rem rgba(120,110,90,.13)}
.main-header.open{background:transparent}
.header_inner{position:relative;z-index:2;display:flex;align-items:center;
  justify-content:space-between;width:100%;height:var(--header-h);
  padding-inline:var(--pad-x)}
.header_leftCont,.header_rightCont{display:flex;align-items:center;gap:1.25rem;
  flex:1 1 0;min-width:0}
.header_rightCont{justify-content:flex-end}

.menu_hamburgerBtn{display:flex;align-items:center;gap:.65rem;
  font-size:.938rem;font-weight:300;letter-spacing:.1em;color:#17150f;
  transition:color .4s ease}
.main-header.open .menu_hamburgerBtn{color:#fff}
.hamburgerBtn_bar{position:relative;display:block;width:1.5rem;height:.625rem}
.hamburgerBtn_bar::before,.hamburgerBtn_bar::after{content:'';position:absolute;
  left:0;width:100%;height:1px;background:currentColor;
  transition:transform .4s ease,top .3s ease}
.hamburgerBtn_bar::before{top:0}.hamburgerBtn_bar::after{top:.625rem}
.main-header.open .hamburgerBtn_bar::before{top:.3125rem;transform:rotate(45deg)}
.main-header.open .hamburgerBtn_bar::after{top:.3125rem;transform:rotate(-45deg)}

/* 롤링 GNB */
.header_gnb{position:relative;display:flex;flex-direction:column;
  height:1.25rem;overflow:hidden;margin-left:.35rem}
.main-header.open .header_gnb{opacity:0;pointer-events:none}
.gnb_list{display:flex;flex-direction:column;
  animation:gnbRoll 15s cubic-bezier(.7,0,.3,1) infinite}
.gnb_item{height:1.25rem;line-height:1.25rem;font-size:.875rem;font-weight:400;
  letter-spacing:.02em;color:#5a5344;white-space:nowrap}
.gnb_item a:hover{color:var(--point)}
@keyframes gnbRoll{
  0%,16%{transform:translateY(0)}
  20%,36%{transform:translateY(-1.25rem)}
  40%,56%{transform:translateY(-2.5rem)}
  60%,76%{transform:translateY(-3.75rem)}
  80%,96%{transform:translateY(-5rem)}
  100%{transform:translateY(-6.25rem)}
}
@media (max-width:1100px){.header_gnb{display:none}}

.header_logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;z-index:2}
.header_logo img{height:2.15rem;width:auto}
.header_logoImg_lnb{display:none}
.main-header.open .header_logoImg_default{display:none}
.main-header.open .header_logoImg_lnb{display:block}
@media (max-width:768px){.header_logo img{height:1.7rem}}

/* 언어 */
.language-selector{position:relative}
.lang_toggle{display:flex;align-items:center;gap:.42rem;font-size:.875rem;
  font-weight:400;letter-spacing:.04em;color:#17150f;padding:.35rem .1rem;
  transition:color .4s ease}
.main-header.open .lang_toggle{color:#fff}
.lang_toggle .globe{width:1.05rem;height:1.05rem;stroke:currentColor;fill:none;
  stroke-width:1.4;flex:0 0 auto}
.lang_toggle .caret{width:.5rem;height:.5rem;border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);
  transition:transform .3s ease}
.language-selector.open .caret{transform:rotate(-135deg) translate(-2px,-2px)}
.dropdown-menu{position:absolute;top:calc(100% + .6rem);right:0;min-width:9.75rem;
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  box-shadow:0 .5rem 1.5rem rgba(90,80,60,.14);opacity:0;visibility:hidden;
  transform:translateY(-.4rem);transition:all .3s ease;z-index:20}
.language-selector.open .dropdown-menu{opacity:1;visibility:visible;transform:none}
.dropdown-menu a{padding:.72rem 1.1rem;font-size:.875rem;letter-spacing:.02em;
  color:#3c372c;transition:background .25s ease,color .25s ease}
.dropdown-menu a:hover{background:var(--cream);color:var(--point)}
.dropdown-menu a[aria-current="true"]{background:var(--cream);color:var(--point);font-weight:600}

.header_solution{display:flex;align-items:center;height:2.5rem;padding-inline:1.35rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;
  font-size:.875rem;letter-spacing:.06em;color:#fff;background:var(--ink);
  border-radius:2rem;transition:background .35s ease;white-space:nowrap}
.header_solution:hover{background:var(--point)}
.main-header.open .header_solution{background:var(--point)}
@media (max-width:560px){.header_solution{height:2.2rem;padding-inline:1rem;font-size:.8125rem}}

/* ---------- LNB overlay ---------- */
.header_lnb{position:fixed;top:0;left:0;width:100%;height:var(--vh);
  background:var(--ink);transform:translateX(-100%);
  transition:transform .9s cubic-bezier(.76,0,.24,1);z-index:1;overflow-y:auto;
  overscroll-behavior:contain;visibility:hidden}
.main-header.open .header_lnb{visibility:visible}
.main-header.open .header_lnb{transform:translateX(0)}
.lnb_inner{width:100%;max-width:1400px;margin-inline:auto;
  padding:calc(var(--header-h) + 2.5rem) var(--pad-x) 4rem}
.lnb_listWrap{display:grid;grid-template-columns:repeat(4,1fr);gap:2.75rem 2rem}
.lnb_group_title{display:flex;flex-direction:column;gap:.42rem;
  padding-bottom:1.1rem;margin-bottom:1.25rem;border-bottom:1px solid rgba(255,255,255,.18)}
.lnb_group_title .en{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:1.5rem;
  color:var(--point-l);letter-spacing:.05em}
.lnb_group_title .kr{font-size:.8125rem;color:rgba(255,255,255,.5);letter-spacing:.08em}
.lnb_group li+li{margin-top:.85rem}
.lnb_group a{display:inline-block;font-size:1.0625rem;font-weight:300;
  letter-spacing:.01em;color:rgba(255,255,255,.86);
  transition:color .3s ease,transform .3s ease}
.lnb_group a:hover{color:var(--point-l);transform:translateX(.3rem)}
.lnb_foot{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2.5rem;
  margin-top:3.5rem;padding-top:1.85rem;border-top:1px solid rgba(255,255,255,.14);
  font-size:.875rem;font-weight:300;color:rgba(255,255,255,.55);letter-spacing:.02em}
.lnb_foot a{color:rgba(255,255,255,.8)}
.lnb_foot a:hover{color:var(--point-l)}
.lnb_foot .tel{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:1.55rem;
  color:var(--point-l);letter-spacing:.04em}
@media (max-width:1024px){.lnb_listWrap{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){
  .lnb_listWrap{grid-template-columns:1fr;gap:2rem}
  .lnb_group_title .en{font-size:1.25rem}
}

/* ==========================================================================
   공통 섹션 타이포
   ========================================================================== */
.sect_title_wrap{display:flex;flex-direction:column;align-items:flex-start}
.sect_title_wrap.center{align-items:center;text-align:center}
.sect_keyword{font-family:'Sorts Mill Goudy',Georgia,serif;
  font-size:clamp(1rem,1.35vw,1.2rem);letter-spacing:.22em;
  text-transform:uppercase;color:var(--point)}
.sect_title{margin-top:1.625rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;
  font-size:clamp(1.6rem,2.85vw,2.5rem);font-weight:500;line-height:1.45;
  letter-spacing:-.005em;color:var(--ink)}
.sect_desc{font-size:clamp(.95rem,1.12vw,1.0625rem);font-weight:300;
  line-height:1.85;letter-spacing:.005em;color:#4a453a}
.sect_desc b,.sect_desc strong{font-weight:600;color:var(--point-d)}
.sect_desc_wrap{display:flex;flex-direction:column;gap:1.125rem;margin-top:2.375rem}
.center + .sect_desc_wrap{align-items:center;text-align:center}

.more_btn{display:inline-flex;align-items:center;gap:.7rem;margin-top:3rem;
  padding-bottom:.45rem;font-family:'Sorts Mill Goudy',Georgia,serif;
  font-size:1rem;letter-spacing:.18em;color:var(--ink);
  border-bottom:1px solid var(--ink);
  transition:color .35s ease,border-color .35s ease,gap .35s ease}
.more_btn::after{content:'';width:1.15rem;height:1px;background:currentColor}
.more_btn:hover{color:var(--point);border-color:var(--point);gap:1.1rem}

/* ==========================================================================
   MAIN — 메인 배너
   ========================================================================== */
main{padding-top:var(--header-h)}
.mainBanner{position:relative;width:100%;height:calc(var(--vh) - var(--header-h));
  min-height:32rem;overflow:hidden;background:var(--ink)}
.mainBanner_slide{position:absolute;inset:0;opacity:0;
  transition:opacity 1.4s cubic-bezier(.4,0,.2,1)}
.mainBanner_slide.active{opacity:1}
.mainBanner_slide img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.08);transition:transform 8s linear}
.mainBanner_slide.active img{transform:scale(1)}
.mainBanner_slide::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(15,13,9,.8) 0%,rgba(15,13,9,.45) 50%,rgba(15,13,9,.2) 100%)}
.mainBanner_desc{position:absolute;left:0;bottom:clamp(3.5rem,9vh,7.5rem);
  width:100%;padding-inline:var(--pad-x);z-index:2;color:#fff}
.mainBanner_eyebrow{display:block;font-family:'Sorts Mill Goudy',Georgia,serif;
  font-size:clamp(1rem,1.3vw,1.2rem);letter-spacing:.28em;text-transform:uppercase;
  color:var(--point-l);margin-bottom:1.5rem}
.mainBanner_title{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC',
  'Noto Serif JP','Noto Serif Thai',serif;font-weight:400;
  font-size:clamp(1.85rem,4.1vw,3.5rem);line-height:1.42;letter-spacing:-.01em}
.mainBanner_sub{margin-top:1.6rem;max-width:34rem;
  font-size:clamp(.95rem,1.2vw,1.125rem);
  font-weight:300;line-height:1.8;color:rgba(255,255,255,.8)}
.mainBanner_dots{position:absolute;right:var(--pad-x);bottom:clamp(3.5rem,9vh,7.5rem);
  display:flex;gap:.75rem;z-index:3}
.mainBanner_dots button{width:2.4rem;height:2px;background:rgba(255,255,255,.3);
  transition:background .4s ease}
.mainBanner_dots button.active{background:var(--point-l)}
@media (max-width:768px){
  .mainBanner{height:auto;min-height:0;aspect-ratio:9/14}
  .mainBanner_slide::after{background:linear-gradient(180deg,rgba(15,13,9,.4) 0%,rgba(15,13,9,.85) 100%)}
  .mainBanner_dots{left:var(--pad-x);right:auto;bottom:2.25rem}
  .mainBanner_desc{bottom:4.5rem}
}

/* ---------- 섹션2 : 원장 미학 ---------- */
.m_sect2{display:flex;align-items:stretch;background:var(--cream)}
.m_sect2 .txt{flex:1 1 46%;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(3.5rem,7vw,7rem) clamp(1.5rem,5vw,6rem)}
.m_sect2 .pic{flex:1 1 54%;position:relative;min-height:26rem}
.m_sect2 .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.m_sect2 .quote{margin-top:2.5rem;padding-left:1.4rem;border-left:2px solid var(--point);
  font-size:clamp(.95rem,1.1vw,1.05rem);font-weight:300;line-height:1.9;color:#5a5344}
@media (max-width:900px){.m_sect2{flex-direction:column}.m_sect2 .pic{min-height:20rem}}

/* ---------- 섹션3 : 의료진 ---------- */
.m_sect3{position:relative;background:var(--ink);overflow:hidden;
  padding-block:clamp(4.5rem,9vw,8.75rem)}
.m_sect3::before{content:'';position:absolute;inset:0;
  background:radial-gradient(125% 90% at 50% 0%,rgba(138,120,69,.2),transparent 62%)}
.m_sect3 .inner{position:relative}
.m_sect3 .sect_title{color:#fff}
.m_sect3 .sect_desc{color:rgba(255,255,255,.75)}
.m_sect3 .sect_keyword{color:var(--point-l)}
.m_sect3 .more_btn{color:#fff;border-color:rgba(255,255,255,.6)}
.m_sect3 .more_btn:hover{color:var(--point-l);border-color:var(--point-l)}
.doctor_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:4rem}
.doctor_item{position:relative;overflow:hidden;background:#100e0a}
.doctor_item .ph{position:relative;aspect-ratio:3/4;overflow:hidden}
.doctor_item .ph img{width:100%;height:100%;object-fit:cover;
  filter:grayscale(.28);transition:transform .9s cubic-bezier(.22,1,.36,1),filter .6s ease}
.doctor_item:hover .ph img{transform:scale(1.06);filter:grayscale(0)}
.doctor_item .ph::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 38%,rgba(15,13,9,.94) 100%)}
.doctor_desc{position:absolute;left:0;bottom:0;width:100%;padding:1.85rem;z-index:2}
.doctor_pos{display:block;font-size:.8125rem;letter-spacing:.14em;
  color:var(--point-l);margin-bottom:.6rem}
.doctor_name{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC',
  'Noto Serif JP','Noto Serif Thai',serif;font-size:1.35rem;color:#fff;letter-spacing:.03em}
.doctor_motto{margin-top:.78rem;font-size:.875rem;font-weight:300;line-height:1.7;
  color:rgba(255,255,255,.62)}
@media (max-width:860px){.doctor_grid{grid-template-columns:1fr;gap:1.25rem}}

/* ---------- 섹션4 : 진료과목 ---------- */
.m_sect4{background:#fff;padding-block:clamp(4.5rem,9vw,8.75rem)}
.tx_grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  margin-top:3.75rem;background:var(--line);border:1px solid var(--line)}
.tx_item{position:relative;display:flex;flex-direction:column;
  min-height:16rem;padding:2.15rem 1.75rem;background:#fff;
  transition:background .5s ease}
.tx_item .num{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:.9375rem;
  letter-spacing:.16em;color:var(--point);transition:color .5s ease}
.tx_item .nm{margin-top:1.85rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;font-size:1.22rem;line-height:1.5;color:var(--ink);
  transition:color .5s ease}
.tx_item .ds{margin-top:.85rem;font-size:.9rem;font-weight:300;line-height:1.75;
  color:var(--gray);transition:color .5s ease}
.tx_item .go{margin-top:auto;padding-top:1.6rem;
  font-family:'Sorts Mill Goudy',Georgia,serif;
  font-size:.875rem;letter-spacing:.14em;color:var(--point);transition:color .5s ease}
.tx_item:hover{background:var(--ink)}
.tx_item:hover .nm{color:#fff}
.tx_item:hover .ds{color:rgba(255,255,255,.62)}
.tx_item:hover .num,.tx_item:hover .go{color:var(--point-l)}
@media (max-width:1100px){.tx_grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.tx_grid{grid-template-columns:1fr}.tx_item{min-height:0}}

/* ---------- 섹션5 : 전후사진 ---------- */
.m_sect5{background:var(--beige);padding-block:clamp(4.5rem,9vw,8.75rem)}
.ba_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem;margin-top:3.75rem}
.ba_card{background:#fff;overflow:hidden}
.ba_card img{width:100%;height:auto;display:block}
.ba_cap{padding:1.35rem 1.5rem 1.65rem;text-align:center}
.ba_cap .t{font-size:.9375rem;font-weight:300;color:var(--gray);letter-spacing:.02em}
.ba_cap .v{margin-top:.55rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;font-size:1.15rem;color:var(--ink);letter-spacing:.02em}
@media (max-width:900px){.ba_grid{grid-template-columns:repeat(2,1fr);gap:1rem}}
@media (max-width:520px){.ba_grid{grid-template-columns:1fr}}

/* ---------- 섹션6 : 시설 ---------- */
.m_sect6{background:#fff;padding-block:clamp(4.5rem,9vw,8.75rem)}
.fac_track{display:flex;gap:1.25rem;margin-top:3.75rem;overflow-x:auto;
  scroll-snap-type:x mandatory;padding-bottom:1.5rem;scrollbar-width:thin}
.fac_track::-webkit-scrollbar{height:3px}
.fac_track::-webkit-scrollbar-thumb{background:var(--point);border-radius:3px}
.fac_track::-webkit-scrollbar-track{background:var(--line)}
.fac_item{flex:0 0 clamp(17rem,32vw,29rem);scroll-snap-align:start}
.fac_item img{width:100%;aspect-ratio:4/3;object-fit:cover}
.fac_item .cap{margin-top:1rem;font-size:.9rem;font-weight:300;
  letter-spacing:.03em;color:var(--gray)}

/* ---------- 섹션7 : 오시는 길 ---------- */
.m_sect7{background:var(--ink);color:#fff;padding-block:clamp(4.5rem,9vw,8.75rem)}
.m_sect7 .sect_title{color:#fff}
.m_sect7 .sect_keyword{color:var(--point-l)}
.loc_flex{display:flex;gap:clamp(2rem,5vw,5rem);margin-top:3.5rem;align-items:flex-start}
.loc_map{flex:1 1 58%;overflow:hidden;border:1px solid rgba(255,255,255,.14)}
.loc_map img{width:100%;display:block}
.loc_info{flex:1 1 42%;display:flex;flex-direction:column;gap:2.15rem}
.loc_row .lb{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:.875rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--point-l)}
.loc_row .vl{margin-top:.85rem;font-size:1.0625rem;font-weight:300;line-height:1.8;
  color:rgba(255,255,255,.85)}
.loc_row .vl.tel{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:1.9rem;
  letter-spacing:.05em;color:#fff}
@media (max-width:900px){.loc_flex{flex-direction:column}}

/* ==========================================================================
   SUB — 공통 비주얼 (50/50)
   ========================================================================== */
.common_visual{display:flex;width:100%;min-height:clamp(24rem,42vw,36rem)}
.common_visual > div{width:50%}
.common_visual .imgBox{position:relative;overflow:hidden;background:var(--ink)}
.common_visual .imgBox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.common_visual .descBox{display:flex;align-items:center;background:var(--cream);
  padding:clamp(2.5rem,5vw,4.5rem) clamp(1.75rem,5.2vw,6rem)}
.common_visual .descWrap{display:flex;flex-direction:column;align-items:flex-start;
  position:relative;width:100%}
.sub_title_eng{display:block;font-family:'Sorts Mill Goudy',Georgia,serif;
  font-size:clamp(2.5rem,4.6vw,4.5rem);line-height:1;letter-spacing:.03em;
  color:rgba(23,21,15,.12);white-space:nowrap;margin-bottom:-1rem}
.sub_title{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
  'Noto Serif Thai',serif;font-size:clamp(1.55rem,2.75vw,2.4rem);font-weight:500;
  line-height:1.42;letter-spacing:-.005em;color:var(--ink)}
.sub_slogan{margin-block:1.875rem 2.125rem;font-size:clamp(1rem,1.32vw,1.2rem);
  font-weight:500;line-height:1.6;letter-spacing:.01em;color:var(--point-d)}
.sub_descWrap{display:flex;flex-direction:column;gap:1rem}
.sub_desc{font-size:clamp(.925rem,1.05vw,1rem);font-weight:300;line-height:1.85;
  color:#4f4a3f}
.sub_desc b{font-weight:600;color:var(--point-d)}
@media (max-width:900px){
  .common_visual{flex-direction:column;min-height:0}
  .common_visual > div{width:100%}
  .common_visual .imgBox{aspect-ratio:16/10}
}

/* ---------- breadcrumb ---------- */
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;
  padding-block:1.25rem;font-size:.8125rem;font-weight:300;letter-spacing:.02em;
  color:var(--gray-2)}
.breadcrumb a:hover{color:var(--point)}
.breadcrumb .sep{opacity:.5}
.breadcrumb [aria-current]{color:var(--point-d)}

/* ---------- 서브 콘텐츠 블록 ---------- */
.blk{padding-block:clamp(3.5rem,7vw,6.5rem)}
.blk.cream{background:var(--cream)}
.blk.beige{background:var(--beige)}
.blk.dark{background:var(--ink);color:#fff}
.blk.dark .sect_title{color:#fff}
.blk.dark .sect_desc{color:rgba(255,255,255,.76)}
.blk.dark .sect_keyword{color:var(--point-l)}
.blk.dark .sect_desc b{color:var(--point-l)}
.blk.dark .more_btn{color:#fff;border-color:rgba(255,255,255,.6)}

/* 특징 리스트 */
.feat_list{display:flex;flex-direction:column;gap:clamp(2.5rem,4.5vw,4.25rem);
  margin-top:3.75rem}
.feat_item{display:flex;gap:clamp(1.5rem,3.5vw,3.5rem);align-items:flex-start;
  padding-bottom:clamp(2.5rem,4.5vw,4.25rem);border-bottom:1px solid var(--line)}
.feat_item:last-child{border-bottom:0;padding-bottom:0}
.blk.dark .feat_item{border-color:rgba(255,255,255,.14)}
.feat_num{flex:0 0 auto;font-family:'Sorts Mill Goudy',Georgia,serif;
  font-size:clamp(2.1rem,3.4vw,3rem);line-height:1;color:var(--point);letter-spacing:.02em}
.blk.dark .feat_num{color:var(--point-l)}
.feat_body{flex:1 1 auto;min-width:0}
.feat_tit{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
  'Noto Serif Thai',serif;font-size:clamp(1.25rem,1.85vw,1.6rem);font-weight:500;
  line-height:1.5;color:var(--ink)}
.blk.dark .feat_tit{color:#fff}
.feat_txt{margin-top:1.15rem;font-size:clamp(.925rem,1.05vw,1rem);font-weight:300;
  line-height:1.9;color:#4f4a3f}
.feat_txt b{font-weight:600;color:var(--point-d)}
.feat_txt p+p{margin-top:1.15rem}
.blk.dark .feat_txt{color:rgba(255,255,255,.74)}
.blk.dark .feat_txt b{color:var(--point-l)}
@media (max-width:640px){.feat_item{flex-direction:column;gap:1rem}}

/* 체크 리스트 */
.check_card{max-width:44rem;margin-top:3.25rem;padding:clamp(2rem,3.6vw,3rem);
  background:#fff;border:1px solid var(--line)}
.blk.dark .check_card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16)}
.check_card_tit{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC',
  'Noto Serif JP','Noto Serif Thai',serif;font-size:1.35rem;text-align:center;
  color:var(--ink);padding-bottom:1.6rem;border-bottom:1px solid var(--line)}
.blk.dark .check_card_tit{color:#fff;border-color:rgba(255,255,255,.16)}
.check_list li{display:flex;align-items:flex-start;gap:.95rem;padding-block:1.1rem;
  border-bottom:1px solid var(--line);font-size:1rem;font-weight:300;line-height:1.7;
  color:#4f4a3f}
.blk.dark .check_list li{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.12)}
.check_list li:last-child{border-bottom:0;padding-bottom:0}
.check_list li::before{content:'';flex:0 0 auto;width:1.15rem;height:1.15rem;
  margin-top:.24rem;background:var(--point);
  -webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.blk.dark .check_list li::before{background:var(--point-l)}

/* 인용 배너 */
.quote_band{padding-block:clamp(4rem,8vw,7rem);background:var(--ink);text-align:center}
.quote_band p{max-width:52rem;margin-inline:auto;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;font-size:clamp(1.15rem,1.9vw,1.6rem);font-weight:400;
  line-height:1.85;letter-spacing:.01em;color:#fff}
.quote_band p b{color:var(--point-l);font-weight:500}
.quote_band .by{margin-top:1.9rem;font-family:'Sorts Mill Goudy',Georgia,serif;
  font-size:.9375rem;letter-spacing:.2em;text-transform:uppercase;color:var(--point-l)}

/* 3분할 카드 */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem;margin-top:3.75rem}
.trio_item{padding:clamp(1.85rem,3vw,2.6rem);background:#fff;border:1px solid var(--line);
  transition:border-color .4s ease,transform .4s ease}
.trio_item:hover{border-color:var(--point);transform:translateY(-.35rem)}
.blk.dark .trio_item{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.15)}
.trio_no{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:1.5rem;color:var(--point)}
.blk.dark .trio_no{color:var(--point-l)}
.trio_tit{margin-top:1.3rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;font-size:1.2rem;line-height:1.55;color:var(--ink)}
.blk.dark .trio_tit{color:#fff}
.trio_txt{margin-top:.95rem;font-size:.9375rem;font-weight:300;line-height:1.85;color:#5a5344}
.blk.dark .trio_txt{color:rgba(255,255,255,.7)}
@media (max-width:900px){.trio{grid-template-columns:1fr;gap:1rem}}

/* 원본 상세 이미지 */
.legacy_detail{margin-top:3.5rem;background:#fff}
.legacy_detail img{width:100%;display:block}
.legacy_note{margin-top:1.15rem;font-size:.8125rem;font-weight:300;
  color:var(--gray-2);text-align:center}

/* 프로필 */
.prof_list{display:flex;flex-direction:column;gap:clamp(3rem,5.5vw,5rem);margin-top:3.75rem}
.prof_item{display:flex;gap:clamp(1.75rem,4vw,4rem);align-items:flex-start}
.prof_ph{flex:0 0 clamp(13rem,24vw,20rem)}
.prof_ph img{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--beige)}
.prof_body{flex:1 1 auto;min-width:0}
.prof_pos{font-size:.875rem;letter-spacing:.14em;color:var(--point)}
.prof_name{margin-top:.8rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;font-size:clamp(1.6rem,2.4vw,2.05rem);color:var(--ink);
  letter-spacing:.02em}
.prof_motto{margin-top:1.15rem;padding-left:1.15rem;border-left:2px solid var(--point);
  font-size:1.05rem;font-weight:300;font-style:italic;line-height:1.7;color:#5a5344}
.prof_career{margin-top:2.1rem;padding-top:1.75rem;border-top:1px solid var(--line)}
.prof_career li{position:relative;padding-left:1rem;font-size:.9375rem;font-weight:300;
  line-height:1.8;color:#4f4a3f}
.prof_career li+li{margin-top:.6rem}
.prof_career li::before{content:'';position:absolute;left:0;top:.72rem;
  width:.28rem;height:.28rem;background:var(--point);border-radius:50%}
@media (max-width:760px){.prof_item{flex-direction:column}.prof_ph{flex:0 0 auto;max-width:18rem}}

/* 게시판 */
.board_tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.5rem}
.board_tab{padding:.72rem 1.6rem;font-size:.9375rem;font-weight:300;letter-spacing:.02em;
  color:#5a5344;border:1px solid var(--line);border-radius:2rem;transition:all .35s ease}
.board_tab:hover{border-color:var(--point);color:var(--point)}
.board_tab[aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}
.board_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.board_card{display:flex;flex-direction:column;background:#fff}
.board_thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--beige)}
.board_thumb img{width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.22,1,.36,1)}
.board_card:hover .board_thumb img{transform:scale(1.05)}
.board_cate{position:absolute;top:1rem;left:1rem;z-index:2;padding:.35rem .85rem;
  font-size:.75rem;letter-spacing:.06em;color:#fff;background:rgba(23,21,15,.82)}
.board_body{padding:1.5rem .25rem 0}
.board_subject{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC',
  'Noto Serif JP','Noto Serif Thai',serif;font-size:1.125rem;line-height:1.55;
  color:var(--ink);transition:color .35s ease}
.board_card:hover .board_subject{color:var(--point)}
.board_meta{display:flex;gap:1rem;margin-top:.95rem;font-size:.8125rem;font-weight:300;
  color:var(--gray-2)}
@media (max-width:900px){.board_grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}
@media (max-width:560px){.board_grid{grid-template-columns:1fr}}

.paging{display:flex;justify-content:center;gap:.4rem;margin-top:4rem}
.paging a,.paging span{display:flex;align-items:center;justify-content:center;
  min-width:2.4rem;height:2.4rem;font-size:.875rem;font-weight:300;color:#5a5344;
  border:1px solid var(--line);transition:all .3s ease}
.paging a:hover{border-color:var(--point);color:var(--point)}
.paging [aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}

/* 게시글 상세 */
.post_head{padding-bottom:2rem;margin-bottom:2.5rem;border-bottom:1px solid var(--line)}
.post_cate{display:inline-block;padding:.35rem .85rem;font-size:.75rem;letter-spacing:.06em;
  color:#fff;background:var(--point)}
.post_title{margin-top:1.25rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.5;
  color:var(--ink)}
.post_meta{display:flex;gap:1.25rem;margin-top:1.15rem;font-size:.8125rem;
  font-weight:300;color:var(--gray-2)}
.post_body{font-size:1rem;font-weight:300;line-height:2;color:#4f4a3f}
.post_body p+p{margin-top:1.4rem}
.post_body h3{margin-top:2.5rem;margin-bottom:1rem;
  font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC','Noto Serif JP',
    'Noto Serif Thai',serif;font-size:1.3rem;font-weight:500;color:var(--ink)}
.post_body ul{margin-top:1rem}
.post_body li{position:relative;padding-left:1rem;line-height:1.9}
.post_body li::before{content:'';position:absolute;left:0;top:.88rem;width:.28rem;
  height:.28rem;background:var(--point);border-radius:50%}
.post_nav{display:flex;justify-content:space-between;gap:1rem;margin-top:4rem;
  padding-top:2rem;border-top:1px solid var(--line);font-size:.9375rem;font-weight:300}
.post_nav a{color:#5a5344}.post_nav a:hover{color:var(--point)}

/* 진료시간 테이블 */
.hours_table{width:100%;margin-top:2.5rem;border-top:2px solid var(--ink)}
.hours_table th,.hours_table td{padding:1.15rem 1.25rem;font-size:.9375rem;
  font-weight:300;text-align:left;border-bottom:1px solid var(--line);color:#4f4a3f}
.hours_table th{width:12rem;font-weight:500;color:var(--ink);background:var(--cream)}
@media (max-width:560px){.hours_table th{width:7.5rem;padding-inline:.85rem}}

/* 갤러리 그리드 (시설/케이스) */
.gal_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:3.5rem}
.gal_grid img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--beige)}
.gal_grid figcaption{margin-top:.85rem;font-size:.875rem;font-weight:300;color:var(--gray)}
@media (max-width:900px){.gal_grid{grid-template-columns:repeat(2,1fr);gap:.85rem}}
@media (max-width:520px){.gal_grid{grid-template-columns:1fr}}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site_footer{background:var(--ink);color:rgba(255,255,255,.6)}
.footer_top{display:grid;grid-template-columns:1.05fr 1.25fr .9fr;
  gap:clamp(2rem,4vw,4rem);padding-block:clamp(3.5rem,6vw,5.25rem)}
.footer_col_tit{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC',
  'Noto Serif JP','Noto Serif Thai',serif;font-size:1.25rem;letter-spacing:.02em;
  color:var(--point-l);margin-bottom:1.6rem}
.footer_hours li{display:flex;justify-content:space-between;gap:1rem;
  padding-block:.62rem;font-size:.9375rem;font-weight:300;
  border-bottom:1px solid rgba(255,255,255,.1)}
.footer_hours li span:last-child{color:rgba(255,255,255,.85)}
.footer_note{margin-top:1.15rem;font-size:.8125rem;font-weight:300;line-height:1.7;
  color:rgba(255,255,255,.45)}
.footer_addr{font-size:.9375rem;font-weight:300;line-height:1.85;color:rgba(255,255,255,.72)}
.footer_map{display:block;margin-top:1.4rem;border:1px solid rgba(255,255,255,.14)}
.footer_tel{display:block;font-family:'Sorts Mill Goudy',Georgia,serif;font-size:2.1rem;
  letter-spacing:.04em;color:#fff}
.footer_tel_lb{font-size:.8125rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--point-l);margin-bottom:.7rem}
.footer_bottom{padding-block:1.85rem;border-top:1px solid rgba(255,255,255,.11)}
.footer_util{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.8125rem;font-weight:300}
.footer_util a:hover{color:var(--point-l)}
.footer_biz{margin-top:1.15rem;font-size:.75rem;font-weight:300;line-height:1.85;
  color:rgba(255,255,255,.4)}
.footer_copy{margin-top:.9rem;font-size:.75rem;color:rgba(255,255,255,.34);
  letter-spacing:.02em}
@media (max-width:900px){.footer_top{grid-template-columns:1fr;gap:2.5rem}}

/* ==========================================================================
   QUICK
   ========================================================================== */
.quick{position:fixed;right:1.25rem;bottom:1.5rem;z-index:8000;
  display:flex;flex-direction:column;gap:.55rem}
.quick a,.quick button{display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:.2rem;width:3.65rem;height:3.65rem;border-radius:50%;
  font-size:.6875rem;letter-spacing:.01em;color:#fff;background:var(--ink);
  box-shadow:0 .35rem 1.1rem rgba(23,21,15,.25);
  transition:background .35s ease,transform .35s ease}
.quick a:hover,.quick button:hover{background:var(--point);transform:translateY(-.18rem)}
.quick .q_kakao{background:#fae100;color:#3c1e1e}
.quick .q_kakao:hover{background:#ffe94d;color:#3c1e1e}
.quick .q_top{background:transparent;border:1px solid rgba(23,21,15,.25);color:var(--ink);
  box-shadow:none;opacity:0;visibility:hidden}
.quick .q_top.show{opacity:1;visibility:visible}
.quick .q_top:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
@media (max-width:768px){
  .quick{right:.75rem;bottom:.9rem;gap:.45rem}
  .quick a,.quick button{width:3.1rem;height:3.1rem;font-size:.625rem}
}

/* ---------- a11y ---------- */
.skip{position:absolute;left:-9999px;top:0;z-index:99999;padding:.85rem 1.5rem;
  background:var(--ink);color:#fff;font-size:.875rem}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--point);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ==========================================================================
   제휴 페이지 : 가격표 · 회복 일정 · 신청 폼 · 자주 묻는 것
   가격이 나가는 유일한 자리다. 일반 시술 페이지에는 적지 않는다.
   ========================================================================== */

/* ---------- 가격표 ---------- */
.price_note{margin-top:clamp(1.5rem,2.4vw,2.2rem);text-align:right;
  font-size:.8125rem;font-weight:300;color:var(--gray)}
.price_wrap{display:grid;gap:clamp(2rem,3.4vw,3rem);margin-top:.75rem}
.price_group_tit{font-family:'Noto Serif KR','Noto Serif SC','Noto Serif TC',
  'Noto Serif JP','Noto Serif Thai',serif;
  font-size:clamp(1.0625rem,1.6vw,1.3125rem);font-weight:500;letter-spacing:-.01em;
  color:var(--ink);margin-bottom:1rem;padding-bottom:.7rem;
  border-bottom:1px solid var(--sand)}

.price_table{width:100%;background:#fff;border:1px solid var(--line)}
.price_table th,.price_table td{padding:1rem .9rem;text-align:center;
  border-bottom:1px solid var(--line);font-size:.9375rem;font-weight:300;
  font-variant-numeric:tabular-nums}
.price_table thead th{padding-block:.85rem;background:var(--cream);
  font-size:.8125rem;font-weight:500;letter-spacing:.04em;color:var(--gray)}
.price_table thead th.hi{color:var(--point-d);background:#f3ecd9}
.price_table tbody tr:last-child th,.price_table tbody tr:last-child td{border-bottom:0}
.price_table tbody th{font-weight:500;color:var(--ink);white-space:nowrap}
.price_table .was{color:var(--gray-2)}
.price_table .was s{text-decoration-thickness:1px;text-underline-offset:2px}
.price_table .mid{color:#4f4a3f}
.price_table .now{background:#fbf8f1;font-weight:500;color:var(--point-d);
  font-size:1.0625rem}
.price_table .now small{margin-left:.15rem;font-size:.8125rem;font-weight:300}
.price_table .now em{font-style:normal;font-size:.9375rem;font-weight:400;
  color:var(--point)}
.price_table tr.best th{color:var(--point-d)}
.price_table tr.best .now{background:#f6efe0}
.best_tag{display:inline-block;margin-left:.4rem;padding:.1rem .45rem;
  font-family:'Sorts Mill Goudy',Georgia,serif;font-size:.625rem;letter-spacing:.1em;
  color:#fff;background:var(--point);border-radius:1rem;vertical-align:.1rem}

.price_cond{margin-top:clamp(1.4rem,2.2vw,2rem);padding:1rem 1.15rem;
  background:#f3ecd9;border-left:2px solid var(--point);
  font-size:.9375rem;font-weight:400;line-height:1.7;color:var(--ink-2)}
.price_foot{margin-top:.9rem;font-size:.8125rem;font-weight:300;line-height:1.7;
  color:var(--gray)}

.price_extra{margin-top:clamp(2.4rem,4vw,3.4rem);padding-top:clamp(1.8rem,3vw,2.6rem);
  border-top:1px solid var(--sand)}
.price_extra_tit{font-family:'Noto Serif KR',serif;font-size:1.0625rem;font-weight:500;
  text-align:center;color:var(--ink);margin-bottom:1.4rem}
.price_extra_list{display:grid;grid-template-columns:repeat(4,1fr);gap:.85rem}
.price_extra_list li{display:flex;flex-direction:column;gap:.35rem;
  padding:1.15rem 1.1rem 1.3rem;background:#fff;border:1px solid var(--line)}
/* 카드뉴스의 「혜택 1 ~ 4」 라벨. 숫자를 라틴 세리프로 쓰면 한글 라벨과
   글꼴이 섞여서 어색하다. 작은 알약 모양으로 둔다. */
.price_extra_list .ex_no{align-self:flex-start;margin-bottom:.15rem;
  padding:.2rem .6rem;border-radius:1rem;background:var(--point);color:#fff;
  font-size:.6875rem;font-weight:500;letter-spacing:.02em;white-space:nowrap}
.price_extra_list strong{font-size:.9375rem;font-weight:500;color:var(--ink);
  line-height:1.5}
.price_extra_list span:not(.ex_no){font-size:.8125rem;font-weight:300;line-height:1.65;
  color:var(--gray)}

@media (max-width:640px){
  .price_note{text-align:left}
  .price_table thead{position:absolute;width:1px;height:1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap}
  .price_table,.price_table tbody,.price_table tr,.price_table th,.price_table td{
    display:block;width:100%}
  .price_table tr{border-bottom:1px solid var(--line);padding:.35rem 0 .6rem}
  .price_table tr:last-child{border-bottom:0}
  .price_table tbody th{text-align:left;padding:.85rem 1rem .5rem;border-bottom:0;
    font-size:1rem}
  .price_table td{display:flex;justify-content:space-between;align-items:baseline;
    padding:.4rem 1rem;border-bottom:0;text-align:right}
  .price_table td::before{content:attr(data-lb);font-size:.8125rem;color:var(--gray);
    font-weight:300}

  /* 한 줄이 통째로 카드가 된다. 줄과 줄 사이를 띄워야 「1000모 한 덩어리」로
     읽힌다. 붙여 두면 어느 금액이 어느 모수의 것인지 헷갈린다. */
  .price_table{border:0;background:transparent}
  .price_table tr{margin-bottom:.85rem;padding:0 0 .5rem;background:#fff;
    border:1px solid var(--line);border-radius:3px;overflow:hidden}
  .price_table tr:last-child{margin-bottom:0}
  .price_table tbody th{background:var(--cream);padding:.7rem 1rem;
    border-bottom:1px solid var(--line);font-size:1rem}

  /* 제휴가는 이 표를 보는 이유다. 다른 줄과 확실히 갈라 둔다. */
  .price_table .now{display:flex;align-items:center;margin:.45rem .75rem 0;
    padding:.7rem .85rem;background:#f3ecd9;border-radius:3px;
    font-size:1.25rem;font-weight:600}
  .price_table .now::before{color:var(--point-d);font-weight:500;font-size:.875rem}
  .price_table .now small{font-size:.875rem}
  .price_table tr.best{border-color:var(--point-l);
    box-shadow:0 .25rem 1rem rgba(138,120,69,.12)}
  .price_table tr.best .now{background:#ece0c3}

  .price_extra_list{grid-template-columns:1fr 1fr;gap:.6rem}
}
@media (max-width:400px){
  .price_extra_list{grid-template-columns:1fr}
  .price_table .now{font-size:1.15rem}
}

/* ---------- 회복 일정 ----------
   스크롤을 따라 선이 차오르고, 지나온 단계에 불이 들어온다.
   --tl-p (0 ~ 1) 를 app.js 가 스크롤에 맞춰 밀어 준다.

   ⚠ 색과 굵기로만 상태를 표시하지 않는다. 지나온 단계와 아직 안 온 단계를
     색으로만 가르면 색을 구분하기 어려운 분에게는 같은 화면이다. 점의 크기도
     함께 바뀐다. */
.tl{--tl-p:0;position:relative;margin-top:clamp(2rem,3.4vw,3rem);padding-left:1.4rem}
/* 아직 안 온 구간 */
.tl::before{content:'';position:absolute;left:.3rem;top:.5rem;bottom:.5rem;
  width:1px;background:var(--sand)}
/* 지나온 구간. 높이가 스크롤을 따라간다 */
.tl::after{content:'';position:absolute;left:.3rem;top:.5rem;width:1px;
  height:calc((100% - 1rem) * var(--tl-p));
  background:linear-gradient(180deg,var(--point-l),var(--point));
  transition:height .18s linear}

.tl_item{position:relative;display:grid;grid-template-columns:8.5rem 1fr;
  gap:1.2rem;align-items:baseline;padding-block:.95rem}
.tl_dot{position:absolute;left:-1.4rem;top:1.25rem;width:.6rem;height:.6rem;
  border-radius:50%;background:var(--sand);
  box-shadow:0 0 0 .3rem var(--white);
  transform:scale(.62);
  transition:transform .5s cubic-bezier(.22,1,.36,1),background .5s ease}
.blk.cream .tl_dot{box-shadow:0 0 0 .3rem var(--cream)}
.tl_item.lit .tl_dot{background:var(--point);transform:scale(1)}

/* 지금 읽고 있는 단계. 고리가 한 번씩 퍼진다 */
.tl_dot::after{content:'';position:absolute;inset:-.34rem;border-radius:50%;
  border:1px solid var(--point);opacity:0;pointer-events:none}
.tl_item.now .tl_dot::after{animation:tlPulse 2.4s cubic-bezier(.22,1,.36,1) infinite}
@keyframes tlPulse{
  0%{transform:scale(.55);opacity:.6}
  70%,100%{transform:scale(1.7);opacity:0}
}

.tl_when{font-family:'Noto Serif KR',serif;font-size:.9375rem;font-weight:500;
  color:var(--gray-2);letter-spacing:-.01em;
  transition:color .5s ease,transform .5s cubic-bezier(.22,1,.36,1)}
.tl_item.lit .tl_when{color:var(--point-d)}
.tl_item.now .tl_when{transform:translateX(.18rem)}
.tl_txt{font-size:.9375rem;font-weight:300;line-height:1.8;color:var(--gray);
  transition:color .5s ease}
.tl_item.lit .tl_txt{color:#4f4a3f}

@media (max-width:640px){
  .tl_item{grid-template-columns:1fr;gap:.3rem}
  .tl_dot{top:1.15rem}
}

/* 모션을 줄여 달라고 한 기기에서는 전부 켜 둔 상태로 둔다.
   애니메이션만 끄고 내용을 숨기면 그쪽에서는 읽을 수 없는 화면이 된다. */
@media (prefers-reduced-motion:reduce){
  .tl::after{transition:none}
  .tl_dot{transform:scale(1);background:var(--point);transition:none}
  .tl_item.now .tl_dot::after{animation:none}
  .tl_when{color:var(--point-d);transition:none}
  .tl_txt{color:#4f4a3f;transition:none}
}

/* ---------- 제휴 신청 폼 ----------
   칸이 아홉 개라 한 덩어리로 세우면 길어 보인다. 셋으로 갈라 번호를 붙이면
   「세 개만 채우면 되는구나」로 읽힌다. */
.partner_form{gap:1.1rem}
.fld_set{position:relative;display:flex;flex-direction:column;gap:1.1rem;
  padding:1.65rem 1.6rem 1.75rem;background:#fff;border:1px solid var(--line);
  border-radius:3px;transition:border-color .4s ease,box-shadow .4s ease}
.blk.cream .fld_set{background:#fff}
/* 이 묶음 안을 건드리는 동안 테두리에 불이 들어온다. 어디를 쓰고 있는지가
   보이면 긴 폼이 덜 길게 느껴진다. */
.fld_set:focus-within{border-color:var(--point-l);
  box-shadow:0 .4rem 1.6rem rgba(138,120,69,.1)}

.fld_lg{display:flex;align-items:center;gap:.6rem;padding:0 .6rem;margin-left:-.6rem;
  font-size:1rem;font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.fld_no{display:inline-flex;align-items:center;justify-content:center;
  width:1.5rem;height:1.5rem;border-radius:50%;background:var(--point);color:#fff;
  font-family:'Sorts Mill Goudy',Georgia,serif;font-size:.8125rem;line-height:1}
.fld_set_hint{margin-top:-.35rem;font-size:.8125rem;font-weight:300;line-height:1.65;
  color:var(--gray)}

.partner_form .fld_grid--2{grid-template-columns:repeat(2,1fr)}
.partner_form .fld_grid--3{grid-template-columns:repeat(3,1fr)}

/* 혜택이 걸리는 칸. 여기가 비면 제휴가로 안내가 안 된다. */
.fld--key input{background:#fffdf7;border-color:var(--sand)}
.fld--key input:focus{background:#fff}

/* 사람이 안 보는 칸. 화면에서 완전히 뺀다. display:none 이면 일부 자동 프로그램이
   그것을 보고 건너뛴다. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 마지막 버튼은 망설일 자리가 없게 넓게 둔다. */
.form_actions--wide{flex-direction:column;align-items:stretch;gap:.85rem;
  margin-top:.75rem}
.btn_primary--wide{width:100%;height:3.5rem;font-size:1.0625rem}
.form_actions--wide .form_sla{text-align:center}

@media (max-width:768px){
  .fld_set{padding:1.3rem 1.15rem 1.45rem;gap:.95rem}
  .fld_lg{font-size:.9375rem;gap:.5rem}
  .fld_no{width:1.35rem;height:1.35rem;font-size:.75rem}
  .partner_form .fld_grid--2,
  .partner_form .fld_grid--3{grid-template-columns:1fr}
  .btn_primary--wide{height:3.25rem;font-size:1rem}
}

/* ---------- 자주 묻는 것 ---------- */
.faq_list{margin-top:clamp(2rem,3.4vw,3rem);border-top:1px solid var(--line)}
.faq_item{border-bottom:1px solid var(--line);background:transparent}
.faq_item>summary{display:flex;align-items:flex-start;justify-content:space-between;
  gap:1.2rem;padding:1.25rem .25rem;cursor:pointer;list-style:none;
  font-size:1rem;font-weight:400;line-height:1.6;color:var(--ink);
  transition:color .3s ease}
.faq_item>summary::-webkit-details-marker{display:none}
.faq_item>summary::after{content:'';flex:0 0 auto;width:.7rem;height:.7rem;
  margin-top:.45rem;border-right:1px solid var(--point);border-bottom:1px solid var(--point);
  transform:rotate(45deg);transition:transform .3s ease}
.faq_item[open]>summary{color:var(--point-d)}
.faq_item[open]>summary::after{transform:rotate(-135deg);margin-top:.7rem}
.faq_item>summary:hover{color:var(--point-d)}
.faq_ans{padding:0 .25rem 1.4rem;font-size:.9375rem;font-weight:300;line-height:1.85;
  color:#4f4a3f}

/* ---------- 메인 : 대학교 제휴 띠 ---------- */
.m_partner{padding-block:clamp(3.5rem,6vw,5.5rem);background:var(--ink);color:#fff}
.m_partner .sect_keyword{color:var(--point-l)}
.m_partner .sect_title{color:#fff}
.mp_wrap{display:grid;grid-template-columns:1.05fr 1fr;
  gap:clamp(2rem,4vw,4rem);align-items:center}
.mp_desc{margin-top:1.1rem;font-size:.9375rem;font-weight:300;line-height:1.9;
  color:rgba(255,255,255,.76)}
.m_partner .more_btn{margin-top:1.75rem;color:#fff;border-color:rgba(255,255,255,.55)}
.m_partner .more_btn:hover{background:var(--point);border-color:var(--point);color:#fff}
.mp_points{display:flex;flex-direction:column;gap:.7rem}
.mp_points li{display:flex;flex-direction:column;gap:.3rem;
  padding:1.1rem 1.35rem;background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.14)}
.mp_points strong{font-size:1rem;font-weight:400;color:rgba(255,255,255,.88)}
.mp_points strong b{font-weight:500;color:var(--point-l)}
.mp_points span{font-size:.8125rem;font-weight:300;color:rgba(255,255,255,.55)}
.mp_note{margin-top:clamp(1.6rem,2.6vw,2.2rem);font-size:.8125rem;font-weight:300;
  line-height:1.7;color:rgba(255,255,255,.45)}
@media (max-width:900px){
  .mp_wrap{grid-template-columns:1fr;gap:2rem}
  .m_partner .more_btn{margin-top:1.4rem}
}

/* 희망 방문일이 휴진일일 때. 칸 아래 안내가 경고로 바뀐다. */
.fld_hint.is-bad{color:#b4553f;font-weight:400}

/* 제휴 신청서 위 안내. 들어오는 길을 하나로 좁히는 자리라 눈에 띄어야 한다. */
.apply_gate{max-width:46rem;margin:clamp(2rem,3.2vw,2.75rem) auto 0;
  padding:1.15rem 1.35rem 1.25rem;background:#f3ecd9;
  border-left:3px solid var(--point);text-align:left}
.apply_gate strong{display:block;margin-bottom:.4rem;font-size:.9375rem;
  font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.apply_gate p{font-size:.875rem;font-weight:300;line-height:1.8;color:#4f4a3f}
.apply_gate b{font-weight:600;color:var(--point-d)}
@media (max-width:768px){
  .apply_gate{padding:1rem 1.1rem 1.1rem}
  .apply_gate p{font-size:.875rem;line-height:1.75}
}

/* 가격표 한 칸의 값. 숫자와 단위를 한 덩어리로 잡아 둔다.
   좁은 화면에서 td 가 flex(space-between) 라, 묶지 않으면 「210」과 「만원」이
   각각 항목이 되어 양 끝으로 갈라진다. */
.price_table .pv{display:inline-flex;align-items:baseline;gap:.1rem;
  white-space:nowrap}

/* ==========================================================================
   마우스 커서 : 모우림 심볼(2026-09-27 요청)
   마우스 환경에서만. 누를 수 있는 곳에서는 조금 더 큰 심볼로 바뀐다.
   글자를 쓰는 칸에서는 입력 커서를 그대로 둔다(어디에 쓰는지 보여야 한다).
   ========================================================================== */
@media (hover:hover) and (pointer:fine){
  html,body{cursor:url(/assets/img/cursor/mark.png) 1 1,auto;
    cursor:-webkit-image-set(url(/assets/img/cursor/mark.png) 1x,url(/assets/img/cursor/mark@2x.png) 2x) 1 1,auto}
  a,button,[role="button"],[role="tab"],summary,label,select,.jr_track,.rm_row,.dk{
    cursor:url(/assets/img/cursor/mark-link.png) 1 1,pointer;
    cursor:-webkit-image-set(url(/assets/img/cursor/mark-link.png) 1x,url(/assets/img/cursor/mark-link@2x.png) 2x) 1 1,pointer}
  input,textarea,[contenteditable="true"]{cursor:text}
  button[disabled],[aria-disabled="true"]{cursor:default}
}

/* ---------- 특징 리스트 : 단계마다 설명 그림 (2026-10-19) ---------- */
.feat_fig{flex:0 0 clamp(15rem,36%,26rem);margin:0;background:#fff;border:1px solid var(--line)}
.feat_fig img{display:block;width:100%;height:auto}
@media (max-width:900px){.feat_item.has_img{flex-wrap:wrap}.feat_item.has_img .feat_fig{flex-basis:100%;max-width:34rem}}

/* ---------- 수술후기 : 분류 띠 + 전후 카드 ---------- */
.case_nav{position:sticky;top:calc(var(--header-h, 80px) + .5rem);z-index:5;justify-content:center;
  padding:.65rem;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.case_nav .board_tab{display:inline-flex;align-items:baseline;gap:.4rem}
.case_nav small{font-size:.75rem;opacity:.7}
.case_group{scroll-margin-top:calc(var(--header-h, 80px) + 5rem)}
.case_group + .case_group{margin-top:2rem}
.board_thumb.case_thumb{aspect-ratio:auto}
.case_thumb .ba_half img{height:auto}
.case_thumb .board_cate{z-index:3}
@media (max-width:640px){
  .case_nav{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;margin-inline:-1rem;padding:.55rem 1rem;scrollbar-width:none}
  .case_nav::-webkit-scrollbar{display:none}
  .case_nav .board_tab{flex:0 0 auto}
}
/* 서브 히어로의 큰 영문 장식 글자가 길면(University Partnership) 화면 밖으로 밀려
   가로 스크롤이 생겼다. 장식이라 넘친 부분은 잘라 낸다. */
.common_visual{overflow-x:clip}
/* 긴 영문(14자 넘게)은 글 칸 폭에 맞춰 줄인다. 짧은 영문은 원래 크기 그대로다. */
.common_visual .descWrap{container-type:inline-size}
.sub_title_eng.long{font-size:min(clamp(2.5rem,4.6vw,4.5rem),8.4cqi)}

/* ---------- 리얼모델 전후 보기 (2026-10-23) ----------
   전 · 후를 겹치지 않고 나란히. 아래 목록에서 사람을 고른다. */
.rmv{margin-top:clamp(2.5rem,4vw,3.5rem)}
.rmv_stage{position:relative}
.rmv_slide{margin:0}
.rmv_slide[hidden],.rmv_ctrl[hidden],.rmv_list[hidden]{display:none}
.rmv_slide + .rmv_slide{margin-top:2.5rem}
.rmv.on .rmv_slide + .rmv_slide{margin-top:0}
.rmv.on .rmv_slide{animation:rmvIn .55s cubic-bezier(.22,1,.36,1) both}
@keyframes rmvIn{from{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}
.rmv_pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.4rem,.8vw,.75rem);
  max-width:1120px;margin-inline:auto}
.rmv_ph{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--beige)}
.rmv_ph img{display:block;width:100%;height:100%;object-fit:cover}
.rmv_tag{position:absolute;left:clamp(.6rem,1.2vw,1rem);top:clamp(.6rem,1.2vw,1rem);padding:.3rem .75rem;
  font-size:.6875rem;font-weight:500;letter-spacing:.16em;color:#fff;background:rgba(23,21,15,.74)}
.rmv_tag.a{background:rgba(138,120,69,.93)}
.rmv_cap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.35rem 1rem;
  max-width:1120px;margin:1.35rem auto 0;text-align:center}
.rmv_no{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:1.35rem;color:var(--point);
  font-variant-numeric:tabular-nums}
.rmv_no small{font-size:.85rem;color:var(--gray)}
.rmv_nm{font-family:'Noto Serif KR',serif;font-size:clamp(1.15rem,1.6vw,1.35rem);color:var(--ink)}
.rmv_meta{font-size:.9375rem;font-weight:300;color:var(--gray)}
.rmv_ctrl{position:absolute;left:0;right:0;top:calc(min(1120px,100%) / 4);display:flex;
  justify-content:space-between;pointer-events:none;max-width:calc(1120px + 6rem);margin-inline:auto}
.rmv_ctrl:not([hidden]){display:flex}
.rmv_btn{pointer-events:auto;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;
  background:rgba(255,255,255,.94);border:1px solid var(--line);color:var(--ink);cursor:pointer;
  box-shadow:0 .4rem 1.2rem rgba(23,21,15,.12);transform:translateY(-50%);
  transition:background .25s ease,color .25s ease,transform .25s ease}
.rmv_btn:hover{background:var(--ink);color:#fff}
.rmv_btn:focus-visible{outline:2px solid var(--point);outline-offset:3px}
.rmv_btn svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.6}
.rmv_list{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.75rem}
.rmv_list:not([hidden]){display:flex}
.rmv_th{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:0;border:0;background:none;
  cursor:pointer;color:var(--gray);font-size:.8125rem;transition:color .25s ease}
.rmv_th img{width:4.25rem;height:4.25rem;object-fit:cover;border-radius:50%;opacity:.55;
  outline:1.5px solid transparent;outline-offset:3px;transition:opacity .25s ease,outline-color .25s ease}
.rmv_th:hover img{opacity:.85}
.rmv_th[aria-selected="true"]{color:var(--ink)}
.rmv_th[aria-selected="true"] img{opacity:1;outline-color:var(--point)}
.rmv_th:focus-visible img{outline-color:var(--ink)}
@media (max-width:900px){
  .rmv_ctrl{top:auto;bottom:-.2rem;max-width:none;padding-inline:0}
  .rmv_btn{width:2.6rem;height:2.6rem;transform:none}
  .rmv_cap{padding-inline:3.2rem;min-height:2.6rem}
}
@media (max-width:640px){
  .rmv_list{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin-inline:-1rem;
    padding:.35rem 1rem .5rem;scroll-snap-type:x proximity;scrollbar-width:none}
  .rmv_list::-webkit-scrollbar{display:none}
  .rmv_th{flex:0 0 auto;scroll-snap-align:start}
  .rmv_th img{width:3.6rem;height:3.6rem}
}
@media (prefers-reduced-motion:reduce){.rmv.on .rmv_slide{animation:none}}

/* ---------- 리얼모델 전후 보기 : 휴대폰 (2026-10-23) ----------
   사진을 화면 끝까지 붙이고 세로(3:4)로 키운다. 손가락을 따라 밀리고,
   누르면 전체 화면으로 위(전) · 아래(후) 크게 본다. */
.rmv_ph{cursor:zoom-in}
.rmv_ph::after{content:'';position:absolute;right:.7rem;bottom:.7rem;width:2rem;height:2rem;border-radius:50%;
  background:rgba(255,255,255,.88) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317150f' stroke-width='1.6'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center/1.05rem no-repeat;
  opacity:0;transition:opacity .25s ease}
.rmv.on .rmv_ph::after{opacity:1}
.rmv_hint{margin:.6rem 0 0;text-align:center;font-size:.75rem;color:var(--gray);letter-spacing:.01em}
.rmv_hint[hidden]{display:none}
.rmv_pair{touch-action:pan-y;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.rmv_pair.drag{transition:none}
@media (max-width:640px){
  .rmv{margin-top:2rem}
  .rmv_pair{gap:2px;margin-inline:calc(50% - 50vw)}
  .rmv_ph{aspect-ratio:3/4}
  .rmv_ph img{object-position:center 30%}
  .rmv_tag{left:.5rem;top:.5rem;padding:.22rem .55rem;font-size:.625rem;letter-spacing:.14em}
  .rmv_ph::after{right:.45rem;bottom:.45rem;width:1.75rem;height:1.75rem;background-size:.95rem}
  .rmv_cap{margin-top:1rem;padding-inline:2.9rem;gap:.15rem .6rem}
  .rmv_no{font-size:1.15rem}
  .rmv_meta{flex-basis:100%;font-size:.8125rem}
  .rmv_btn{width:2.4rem;height:2.4rem}
  .rmv_hint:not([hidden]){display:block}
  .rmv_list{margin-top:1.1rem;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1rem,#000 calc(100% - 1.5rem),transparent)}
}
@media (min-width:641px){.rmv_hint{display:none!important}}

/* 크게 보기 : 화면 전체. 위는 수술 전, 아래는 수술 후. 넓은 화면은 좌우 */
.rmz{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;background:#0f0e0a;color:#fff;
  padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);
  opacity:0;transition:opacity .3s ease}
.rmz.on{opacity:1}
.rmz[hidden]{display:none}
.rmz_bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;min-height:3.25rem}
.rmz_tt{display:flex;align-items:baseline;gap:.6rem;min-width:0;font-size:.9375rem}
.rmz_tt b{font-family:'Noto Serif KR',serif;font-weight:500;font-size:1.05rem}
.rmz_tt span{color:rgba(255,255,255,.6);font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rmz_x{flex:0 0 auto;width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;
  font-size:1.2rem;line-height:1;cursor:pointer}
.rmz_x:focus-visible,.rmz_nav button:focus-visible{outline:2px solid var(--point-l);outline-offset:2px}
.rmz_body{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:1fr 1fr;gap:2px;touch-action:pan-y;
  transition:transform .35s cubic-bezier(.22,1,.36,1)}
.rmz_body.drag{transition:none}
.rmz_ph{position:relative;min-height:0;overflow:hidden;background:#1b1a14}
.rmz_ph img{width:100%;height:100%;object-fit:contain}
.rmz_ph .rmv_tag{top:.6rem;left:.6rem}
.rmz_nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem .9rem}
.rmz_nav button{width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:none;color:#fff;cursor:pointer}
.rmz_nav button svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.6}
.rmz_cnt{font-family:'Sorts Mill Goudy',Georgia,serif;font-size:1.05rem;color:var(--point-l);font-variant-numeric:tabular-nums}
@media (min-width:900px) and (min-aspect-ratio:4/3){.rmz_body{grid-template-rows:1fr;grid-template-columns:1fr 1fr}}
html.rmz-lock,html.rmz-lock body{overflow:hidden}
@media (prefers-reduced-motion:reduce){.rmz,.rmv_pair,.rmz_body{transition:none}}
/* 크게 보기가 열려 있는 동안 떠 있는 빠른 메뉴 · 머리를 감춘다 */
html.rmz-lock .quick,html.rmz-lock .dock,html.rmz-lock .main-header,html.rmz-lock .q_bubble{visibility:hidden}

/* ---------- 수술후기 : 휴대폰 · 더 보기 · 크게 보기 (2026-10-23) ---------- */
.board_card[hidden],.case_group[hidden],.case_more[hidden]{display:none}
.case_more{text-align:center}
.case_more_btn{cursor:pointer;background:none}
.case_thumb{cursor:zoom-in}
.case_thumb::after{content:'';position:absolute;right:.6rem;bottom:2.9rem;z-index:3;width:1.9rem;height:1.9rem;border-radius:50%;
  background:rgba(255,255,255,.88) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317150f' stroke-width='1.6'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center/1rem no-repeat;
  opacity:0;transition:opacity .25s ease}
.case_nav.js ~ .case_groups .case_thumb::after{opacity:1}
.case_thumb:focus-visible{outline:2px solid var(--point);outline-offset:3px}
@media (max-width:640px){
  /* 분류 띠 : 화면 폭 전체, 불투명, 양 끝 흐림 */
  .case_nav{top:var(--header-h);margin-inline:calc(50% - 50vw);margin-top:1.5rem;padding:.6rem 1rem;gap:.4rem;
    background:#fff;border-bottom:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 .9rem,#000 calc(100% - 1.6rem),transparent);
            mask-image:linear-gradient(90deg,transparent 0,#000 .9rem,#000 calc(100% - 1.6rem),transparent)}
  .case_nav .board_tab{padding:.45rem .95rem;font-size:.8125rem}
  .case_group{scroll-margin-top:calc(var(--header-h) + 4rem)}
  .case_group + .case_group{margin-top:1.75rem}
  .case_groups .board_grid{gap:1.9rem}
  .case_groups .board_card:first-child{margin-top:1.25rem}
  /* 카드 : 사진은 화면 끝까지, 설명은 짧게 */
  .case_thumb{margin-inline:calc(50% - 50vw)}
  .case_thumb .board_cate{display:none}
  .case_thumb .ba_pair{gap:2px}
  .case_thumb .ba_half img{aspect-ratio:4/5;object-position:center 30%}
  .case_thumb .ba_lb{left:.45rem;bottom:auto;top:.45rem;width:auto;padding:.22rem .55rem;font-size:.625rem;letter-spacing:.14em}
  .case_thumb::after{bottom:.5rem;right:.5rem;width:1.75rem;height:1.75rem;background-size:.9rem}
  .case_groups .board_body{padding:.8rem 0 0}
  .case_groups .board_subject{font-size:1rem;line-height:1.5}
  .case_groups .board_meta{margin-top:.25rem}
  .case_more_btn{margin-top:2.25rem;width:100%;justify-content:center}
}
