/* dm2026 full-pages build — layout patterns for the new sub pages (P01–P20, H1–H6 of the design brief).
   Loaded after site.css. Uses site.css tokens (--ink --brown --brown2 --champ --sandb --ivory --gray --hdh --sec --gut).
   Client rules: bright palette; white boxes with thin bronze top lines; no large gold/bronze fills;
   no dots/dashed circles; filled buttons only in ink; no hero mouse-follow motion. */

/* ── base ───────────────────────────────────────────────────────── */
.x-sec{padding:var(--sec) 0;position:relative}
.bg-w{background:#fff}.bg-iv{background:var(--ivory)}.bg-ch{background:var(--champ)}.bg-gr{background:var(--gray)}
.x-hd .eb{display:inline-flex;align-items:center;gap:14px;color:var(--brown)}
.x-hd .eb::before,.x-hd.c .eb::after{content:'';flex:none;width:clamp(20px,2.2vw,36px);height:1px;background:currentColor;opacity:.7}
.x-hd.c{text-align:center;margin-inline:auto;max-width:880px}
.x-hd .h2b{margin-top:6px}
.x-lead{margin-top:clamp(10px,1vw,16px);font-size:clamp(16px,15.2px + .22vw,19px);line-height:1.7;font-weight:600;color:#3d342e}
.x-sec .body{color:#51463e}
.x-sec .body + .body{margin-top:12px}
.x-note{margin-top:clamp(18px,2vw,28px);font-size:13.5px;color:#7a6d63;line-height:1.6}
.x-hd.c ~ .x-note,.x-sec .wrap > .x-note{text-align:center}
.x-btn{display:inline-flex;align-items:center;gap:10px;height:46px;margin-top:clamp(18px,2vw,28px);padding:0 22px;border:1px solid var(--brown);border-radius:999px;background:#fff;color:#6F5434;font-size:15px;font-weight:600;transition:background .3s,color .3s,border-color .3s}
.x-btn:hover,.x-btn:focus-visible{background:var(--ink);border-color:var(--ink);color:#fff}
.x-btn .dv-ar{width:14px}
.x-ck{flex:none;width:20px;height:20px;color:var(--brown);margin-top:2px}
.x-mark{position:absolute;left:50%;bottom:-.2em;transform:translateX(-50%);z-index:-1;font-family:'Cormorant',serif;font-weight:600;font-size:clamp(70px,13vw,210px);line-height:1;letter-spacing:.04em;color:transparent;-webkit-text-stroke:1px rgba(196,170,135,.55);white-space:nowrap;pointer-events:none}
@media (min-width:1024px){.x-stick{position:sticky;top:calc(var(--hdh) + 36px);align-self:start}}

/* ── reveal (pages.js adds .x-mo on <html> when motion is allowed, .in on view) ── */
.x-mo [data-rv]{opacity:0;transform:perspective(1100px) translateY(40px) rotateX(10deg);transform-origin:50% 0;transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),clip-path 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 90ms)}
.x-mo [data-rv="mask"]{transform:none;clip-path:inset(0 0 100% 0)}
.x-mo [data-rv="mask"] img{transform:scale(1.08);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.x-mo [data-rv="flip"]{transform:perspective(800px) rotateX(70deg);transform-origin:50% 0}
.x-mo [data-rv="tilt"]{transform:perspective(1200px) translateY(50px) rotateX(16deg)}
.x-mo [data-rv="rise"]{transform:translateY(60px)}
.x-mo [data-rv="line"]{opacity:1;transform:none}
.x-mo [data-rv].in{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
.x-mo [data-rv="mask"].in img{transform:none}

/* ── intro (split) ──────────────────────────────────────────────── */
.x-intro-in{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,120px)}
.x-intro-hd .x-hd{position:sticky;top:calc(var(--hdh) + 40px)}
.x-en{font-family:'Cormorant',serif;font-weight:600;font-size:clamp(24px,20px + 1vw,34px);line-height:1.2;color:var(--brown)}
.x-sub{margin-top:6px;font-size:clamp(19px,17px + .5vw,24px);font-weight:700;line-height:1.5}
.x-intro-fig{margin-top:clamp(28px,3vw,48px);text-align:center}
.x-intro-fig img{max-height:clamp(300px,30vw,460px);width:auto;max-width:100%;filter:drop-shadow(0 26px 34px rgba(42,36,32,.16))}
.x-intro-tx .x-lead{margin-top:clamp(10px,1.2vw,18px)}
.x-intro-tx .body{margin-top:14px}
.x-chips{margin-top:clamp(18px,2vw,28px)}
.x-quote{margin:clamp(22px,2.4vw,34px) 0 0;padding:clamp(18px,2vw,26px) clamp(20px,2.2vw,30px);background:var(--ivory);border-left:2px solid var(--brown);font-size:clamp(15px,14.5px + .15vw,17px);line-height:1.75;color:#3d342e}
.x-quote cite{display:block;margin-top:8px;font-style:normal;font-size:13px;color:var(--brown)}

/* ── P01-A tiles ────────────────────────────────────────────────── */
.x-tiles-l{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;margin-top:clamp(26px,3vw,46px)}
.x-tiles-l li{display:flex;flex-direction:column;gap:6px;padding:6px clamp(14px,2vw,30px);border-left:1px solid #E6D8C5}
.x-tiles-l li:first-child{border-left:0}
.x-tl-n{font-family:'Cormorant',serif;font-size:clamp(34px,3vw,46px);line-height:1;color:#CDBBA4}
.x-tiles-l b{font-size:14px;color:var(--brown);font-weight:600}
.x-tiles-l span:last-child{font-size:clamp(16px,15px + .3vw,18px);font-weight:700;line-height:1.5}
@media (max-width:767px){.x-tiles-l{grid-auto-flow:row;grid-template-columns:1fr 1fr;row-gap:26px}.x-tiles-l li:nth-child(odd){border-left:0;padding-left:0}}
.x-tiles-l small{display:block;margin-top:4px;font-size:12.5px;font-weight:500;line-height:1.45;color:#85766a}
.x-tl-fig{max-width:980px;margin:clamp(24px,3vw,40px) auto 0}
.x-tl-fig .ph{border-radius:14px;aspect-ratio:21/9}
.x-tl-fig img{width:100%;height:100%;object-fit:cover}
@media (max-width:767px){.x-tl-fig .ph{aspect-ratio:4/3}}

/* facts strip reuse */
.x-facts{padding:clamp(6px,1vw,16px) 0 var(--sec)}
.x-facts .facts{margin-top:0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}

/* ── P19 keyword cards ──────────────────────────────────────────── */
.x-kw-in{text-align:center}
.x-kw-body{max-width:720px;margin:clamp(14px,1.4vw,20px) auto 0}
.x-kw-l{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,1.4vw,20px);margin-top:clamp(28px,3vw,44px)}
.x-kw-l li{width:clamp(150px,17vw,230px);padding:clamp(20px,2vw,28px) 16px;background:#fff;border-top:2px solid var(--brown);box-shadow:0 18px 40px -26px rgba(98,75,51,.45);display:flex;flex-direction:column;gap:6px}
.x-kw-l b{font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:clamp(22px,20px + .6vw,30px);color:var(--brown);line-height:1.1}
.x-kw-l span{font-size:15.5px;font-weight:700}
.x-kw-l em{font-style:normal;font-size:13.5px;color:#7a6d63;line-height:1.55}
.x-kw-fig{max-width:820px;margin:clamp(32px,3.6vw,56px) auto 0;position:relative;border-radius:10px;overflow:hidden}
.x-kw-fig .ph{aspect-ratio:16/8}
.x-kw-fig img{width:100%;height:100%;object-fit:cover}
.x-kw-fig figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 22px 16px;text-align:left;font-size:14px;color:#fff;background:linear-gradient(180deg,rgba(42,36,32,0),rgba(42,36,32,.55));z-index:5}
@media (max-width:767px){.x-kw-l li{width:calc(50% - 8px)}.x-kw-l li:last-child:nth-child(odd){width:100%}}

/* ── P02 sticky title + numbered rows ───────────────────────────── */
.x-rows-in{display:grid;grid-template-columns:4fr 8fr;gap:clamp(32px,6vw,110px)}
.x-rows-l{display:flex;flex-direction:column;gap:clamp(44px,6vw,90px)}
.x-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px);align-items:center}
.x-row.noimg{grid-template-columns:1fr}
.x-row-tx{position:relative}
.x-row-n{display:block;margin-bottom:clamp(6px,.8vw,12px);font-family:'Cormorant',serif;font-weight:400;font-size:clamp(42px,3.8vw,60px);line-height:1;color:#D9C3A5}   /* above the title, never behind it (user 2026-10-26: 숫자가 글씨랑 겹치지 않도록) */
.x-row h3{font-size:clamp(18px,16.5px + .45vw,23px);font-weight:700;line-height:1.5;margin-bottom:10px}
.x-row-ph .ph{border-radius:8px;aspect-ratio:4/3}
.x-row-ph img{width:100%;height:100%;object-fit:cover}

/* ── P03 key card + feature panel ───────────────────────────────── */
.x-key-in{display:grid;grid-template-columns:5fr 7fr;gap:clamp(20px,2.6vw,40px)}
.x-key-card{position:relative;overflow:hidden;border-radius:clamp(18px,2vw,30px);min-height:clamp(380px,46vw,700px);background:var(--champ);isolation:isolate}
@media (min-width:1024px){.x-key-card{position:sticky;top:calc(var(--hdh) + 30px);height:min(76vh,700px);align-self:start}}
.x-key-ph{position:absolute;inset:0;z-index:-1}
.x-key-ph picture{display:contents}
.x-key-bg{width:100%;height:100%;object-fit:cover}
.x-key-ph::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(251,247,241,.94) 0,rgba(251,247,241,.78) 38%,rgba(251,247,241,.12) 72%)}
.x-key-tx{position:relative;padding:clamp(28px,3.4vw,52px)}
.x-key-en{font-family:'Cormorant',serif;font-weight:500;font-size:clamp(46px,5vw,84px);line-height:.95;color:var(--ink)}
/* 긴 영문 문장은 한 줄 (2026-10-30 실리프팅 «이 거 1줄로 맞춰줘»): 글자 수 --n 으로 칸 너비에 맞춘다. Cormorant 글자 폭은 0.39–0.41em, 여유 두어 .44 */
.x-key-tx{container-type:inline-size}
.x-key-en.x-key-1l{white-space:nowrap;font-size:min(84px,calc(100cqi / (var(--n) * .44)));line-height:1.15}
.x-key-tx .h2b{margin-top:10px;font-size:clamp(20px,17px + .8vw,28px)}
.x-key-mark{position:absolute;left:clamp(20px,2.6vw,40px);bottom:-.22em;font-family:'Cormorant',serif;font-weight:600;font-size:clamp(90px,10vw,170px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.9);pointer-events:none}
.x-key-l{background:#fff;border-radius:clamp(18px,2vw,30px);padding:clamp(18px,3.6vw,64px) clamp(22px,4vw,72px)}
.x-key-l li{padding:clamp(24px,2.6vw,38px) 0;border-bottom:1px solid #EFE5D8}
.x-key-l li:last-child{border-bottom:0}
.x-key-n{font-family:'Cormorant',serif;font-style:italic;font-size:22px;color:var(--brown)}
.x-key-l h3{margin:4px 0 10px;font-size:clamp(18px,16.5px + .45vw,23px);font-weight:700;line-height:1.5}

/* ── P05 depth gauge ────────────────────────────────────────────── */
.x-dp-in{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,70px);align-items:center;margin-top:clamp(30px,3.4vw,56px)}
.x-dp-g{position:relative;display:grid;grid-template-columns:62px 46px minmax(0,1fr);column-gap:16px;height:clamp(380px,34vw,500px)}
.x-dp-ticks{position:relative}
.x-dp-ticks li{position:absolute;right:0;top:var(--top);transform:translateY(-50%);font-family:'Cormorant',serif;font-style:italic;font-size:13px;color:#8a7d72;padding-right:12px}
.x-dp-ticks li::after{content:'';position:absolute;right:0;top:50%;width:8px;height:1px;background:#bfae9a}
.x-dp-col{position:relative;display:flex;flex-direction:column;border-radius:6px;overflow:visible}
.x-dp-b{height:var(--h);transform-origin:50% 0;transition:transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--k) * 160ms)}
.x-dp-b:nth-child(1){background:#FBF2E6;border-radius:6px 6px 0 0}.x-dp-b:nth-child(2){background:#F1E1CB}.x-dp-b:nth-child(3){background:#E2CBAA}.x-dp-b:nth-child(4){background:#CDB08A}.x-dp-b:nth-child(5){background:#B39570;border-radius:0 0 6px 6px}
.x-dp-b:last-of-type{border-radius:0 0 6px 6px}
.x-mo .x-dp-g:not(.in) .x-dp-b{transform:scaleY(0)}
.x-dp-tgt{position:absolute;left:-5px;right:-5px;border:1.5px solid var(--brown);border-radius:5px;box-shadow:0 0 0 4px rgba(138,107,69,.12);transition:opacity .6s .9s}
.x-mo .x-dp-g:not(.in) .x-dp-tgt,.x-mo .x-dp-g:not(.in) .x-dp-call{opacity:0}
.x-dp-lab{position:relative}
.x-dp-lab li{position:absolute;left:0;top:var(--top);transform:translateY(-50%);font-size:14.5px;line-height:1.35;white-space:nowrap}
.x-dp-lab li b{font-weight:700}
.x-dp-lab li span{display:block;font-size:12.5px;color:#8a7d72}
.x-dp-lab li.on b{color:var(--brown)}
.x-dp-call{position:absolute;left:calc(62px + 46px + 32px + 190px);right:0;top:var(--top);transform:translateY(-50%);padding:14px 18px;background:#fff;border-top:2px solid var(--brown);box-shadow:0 16px 36px -24px rgba(98,75,51,.5);transition:opacity .6s 1s;font-size:14.5px;line-height:1.55}
.x-dp-call::before{content:'';position:absolute;right:100%;top:50%;width:26px;height:1px;background:var(--brown)}
.x-dp-call b{display:block;font-size:15.5px;margin-bottom:2px}
.x-dp-call span{color:#5b4f46}
.x-dp-card{background:#fff;border-radius:12px;box-shadow:0 30px 60px -36px rgba(98,75,51,.55);padding:clamp(18px,2vw,30px);text-align:center}
.x-dp-card img{max-height:440px;width:auto;margin:auto}
.x-dp-card figcaption{margin-top:10px;font-size:13.5px;color:#7a6d63}
.x-dp-list li{padding:18px 0;border-bottom:1px solid #E6D8C5}
.x-dp-list b{display:block;font-size:17px;margin-bottom:4px}
@media (max-width:1023px){.x-dp-in{grid-template-columns:1fr}.x-dp-g{max-width:620px;width:100%;margin:auto}}
@media (max-width:599px){.x-dp-g{grid-template-columns:44px 34px minmax(0,1fr);column-gap:12px;height:420px}.x-dp-call{position:relative;left:auto;top:auto;transform:none;grid-column:1/-1;margin-top:18px}.x-dp-call::before{display:none}.x-dp-g{grid-template-rows:1fr auto;height:auto}.x-dp-ticks,.x-dp-col,.x-dp-lab{height:380px}}

/* ── P06 timeline ───────────────────────────────────────────────── */
.x-tm{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(16px,2vw,30px);margin-top:clamp(34px,3.6vw,60px)}
.x-tm::before{content:'';position:absolute;left:0;right:0;top:6px;height:1px;background:linear-gradient(90deg,var(--sandb),var(--brown),var(--sandb));transform-origin:0 50%;transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.x-mo .x-tm:not(.in)::before{transform:scaleX(0)}
.x-tm li{position:relative;padding-top:34px}
.x-tm-dot{position:absolute;left:0;top:0;width:13px;height:13px;border-radius:50%;background:#fff;border:1px solid var(--brown);transition:background .4s calc(var(--i,0) * 220ms + .5s)}
.x-tm.in .x-tm-dot,html:not(.x-mo) .x-tm-dot{background:var(--ink);border-color:var(--ink)}
.x-tm b{display:block;font-size:clamp(17px,16px + .3vw,20px);margin-bottom:8px}
@media (max-width:767px){.x-tm{grid-template-columns:1fr;gap:26px;padding-left:28px}.x-tm::before{left:6px;right:auto;top:0;bottom:0;width:1px;height:auto;transform-origin:50% 0}.x-mo .x-tm:not(.in)::before{transform:scaleY(0)}.x-tm li{padding-top:0}.x-tm-dot{left:-28px;top:4px}}

/* ── P07 A/B comparison ─────────────────────────────────────────── */
.x-vs-t{max-width:980px;margin:clamp(30px,3.4vw,52px) auto 0}
.x-vs-hd,.x-vs-r{display:grid;grid-template-columns:1fr clamp(78px,9vw,120px) 1fr;align-items:center}
.x-vs-h{text-align:center;padding:clamp(18px,2vw,26px) 12px;background:#fff;border-top:2px solid var(--sandb)}
.x-vs-h.b{border-top-color:var(--brown);box-shadow:0 18px 40px -28px rgba(98,75,51,.5)}
.x-vs-im{width:clamp(70px,8vw,100px);height:clamp(70px,8vw,100px);border-radius:50%;object-fit:cover;margin:0 auto 12px}
.x-vs-h b{display:block;font-size:clamp(16px,15px + .4vw,20px)}
.x-vs-h span{display:block;margin-top:4px;font-size:13.5px;color:#7a6d63}
.x-vs-hd{align-items:stretch}.x-vs-hd .x-vs-mid{align-self:center}   /* 2026-11-02 전체 점검: 휴대폰에서 두 머리 칸 높이가 달라 윗선이 어긋남 (사용자 «높이가 안 맞잖아» 원칙) */
.x-vs-mid{text-align:center;font-family:'Cormorant',serif;font-style:italic;font-size:clamp(24px,2.4vw,34px);color:var(--brown)}
.x-vs-r{border-bottom:1px solid #E6D8C5;padding:clamp(12px,1.4vw,18px) 0;font-size:clamp(14px,13.5px + .2vw,16px)}
.x-vs-r b{text-align:center;font-size:13.5px;color:var(--brown);font-weight:700}
.x-vs-r .a{text-align:center;color:#6F6259;padding:0 10px}
.x-vs-r .b{text-align:center;font-weight:600;padding:0 10px}
.x-mo .x-vs-r .b{transition-delay:calc(var(--i,0) * 90ms + 150ms)}

/* ── P08 matrix ─────────────────────────────────────────────────── */
.x-mx{margin-top:clamp(28px,3vw,48px);overflow-x:auto;-webkit-overflow-scrolling:touch}
.x-mx table{width:100%;min-width:760px;border-collapse:collapse;font-size:15px;line-height:1.55}
.x-mx th,.x-mx td{padding:clamp(12px,1.2vw,16px) clamp(12px,1.4vw,18px);border-bottom:1px solid #E6D8C5;text-align:center;vertical-align:middle}
.x-mx thead th{border-top:2px solid var(--brown);background:#fff;font-weight:700}
.x-mx thead td{border-top:2px solid transparent;border-bottom-color:transparent}
.x-mx tbody th{background:var(--ivory);font-weight:700;color:var(--brown);position:sticky;left:0;text-align:left;white-space:nowrap}
.x-mx tbody tr:hover td{background:rgba(234,220,203,.25)}
/* matrix stack: true (2026-10-30 s1040 시술 정보) — 칸 안 보조 글, 휴대폰에서는 줄마다 카드 */
.x-mx-st th small,.x-mx-st td small{display:block;margin-top:2px;font-size:13px;font-weight:500;line-height:1.45;color:rgba(42,36,32,.62)}
.x-mx-st tbody th small{white-space:normal}
@media (max-width:767px){
  .x-mx-st{overflow:visible}
  .x-mx-st table{min-width:0}
  .x-mx-st thead{display:none}
  .x-mx-st tbody,.x-mx-st tr,.x-mx-st th,.x-mx-st td{display:block}
  .x-mx-st tr{margin-bottom:12px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px #E6D8C5;overflow:hidden}
  .x-mx-st tbody th{position:static;white-space:normal;padding:14px 16px;font-size:16px}
  .x-mx-st td{position:relative;padding:10px 16px 10px calc(16px + 5.5em);text-align:left}
  .x-mx-st td::before{content:attr(data-l);position:absolute;left:16px;top:10px;font-size:14px;font-weight:700;color:var(--brown)}
  .x-mx-st td:last-child{border-bottom:0}
  .x-mx-lt td{padding:10px 16px}   /* stack: top — column name above the value (2026-11-03 전체 점검) */
  .x-mx-lt td::before{position:static;display:block;margin-bottom:2px;font-size:13px}
}

/* ── P09 cover card ─────────────────────────────────────────────── */
.x-cv-in{text-align:center}
.x-cv-card{width:min(410px,100%);margin:0 auto clamp(30px,3.4vw,52px);padding:14px;background:#fff;box-shadow:0 40px 70px -40px rgba(98,75,51,.55);text-align:left}
.x-cv-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;font-family:'Cormorant',serif;font-size:13px;line-height:1.1;color:#3d342e}
.x-cv-top i{font-style:italic;padding:3px 14px;border:1px solid var(--brown);border-radius:50%;color:var(--brown)}
.x-cv-top .r{text-align:right}
.x-cv-ph{margin:12px 0;aspect-ratio:4/5}
.x-cv-ph img{width:100%;height:100%;object-fit:cover}
.x-cv-bt{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.x-cv-bt b{font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:clamp(28px,3vw,38px);line-height:1}
.x-cv-bt span{font-family:'Cormorant',serif;font-size:12.5px;line-height:1.2;text-align:right;color:#5b4f46}
.x-cv-l{max-width:660px;margin:clamp(22px,2.4vw,34px) auto 0;display:flex;flex-direction:column;gap:10px;text-align:left}
.x-cv-l li{display:flex;gap:12px;align-items:flex-start;padding:14px 22px;background:rgba(255,255,255,.78);border:1px solid #E6D8C5;border-radius:10px;font-size:clamp(15px,14.5px + .2vw,16.5px);font-weight:600}
.x-cv-l small{display:block;margin-bottom:2px;font-size:12.5px;font-weight:500;letter-spacing:.02em;color:var(--brown)}   /* optional row label (s7030 원문 «첫 번째 추천 대상») */

/* ── P10 split photo + checklist ────────────────────────────────── */
.x-split{padding:0}
.x-sp-in{display:grid;grid-template-columns:1fr 1fr;min-height:clamp(520px,44vw,680px)}
.x-sp-ph .ph{height:100%;min-height:340px}
.x-sp-ph img{width:100%;height:100%;object-fit:cover}
.x-sp-tx{padding:var(--sec) clamp(24px,6vw,110px);align-self:center}
.x-split.ph-r .x-sp-ph{order:2}
@media (min-width:1200px){.x-split.ph-l .x-sp-tx{padding-right:max(clamp(24px,6vw,110px),150px)}}
.x-sp-l{margin-top:clamp(20px,2.4vw,34px)}
.x-sp-l li{display:flex;gap:14px;align-items:flex-start;padding:clamp(13px,1.3vw,18px) 0;border-bottom:1px solid #E1D3C0}
.x-sp-l li:first-child{border-top:1px solid #E1D3C0}
.x-sp-l small{display:block;font-size:13px;color:var(--brown);font-weight:600}
.x-sp-l p{font-size:clamp(15px,14.5px + .25vw,17px);font-weight:600;line-height:1.55}
@media (max-width:1023px){.x-sp-in{grid-template-columns:1fr}.x-split.ph-r .x-sp-ph{order:0}.x-sp-ph .ph{aspect-ratio:4/3;height:auto}.x-sp-tx{padding:clamp(40px,8vw,70px) var(--gut)}}
/* 2026-10-26 cellredm: min-height 340px × 4:3 forced a 453px column on phones and cut the checklist text — let the photo follow the screen width */
@media (max-width:1023px){.x-sp-in{grid-template-columns:minmax(0,1fr)}.x-sp-ph .ph{min-height:0}}

/* ── P11 pill rows ──────────────────────────────────────────────── */
.x-pills{isolation:isolate;overflow:clip}
.x-sec:has(> .x-mark){padding-bottom:calc(var(--sec) + clamp(50px,9vw,150px))}   /* watermark sits under the content like the main page's, not behind the title */
.x-pl{max-width:840px;margin:clamp(28px,3vw,46px) auto 0;display:flex;flex-direction:column;gap:12px}
.x-pl li{display:flex;align-items:center;gap:clamp(12px,1.6vw,20px);padding:10px clamp(18px,2.4vw,30px) 10px 12px;background:#fff;border:1px solid #E6D8C5;border-radius:999px;transition:border-color .3s,box-shadow .3s}
.x-pl li:hover{border-color:var(--brown);box-shadow:0 14px 30px -22px rgba(98,75,51,.55)}
.x-pl-n{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:62px;border-radius:50%;background:var(--ivory);font-family:'Cormorant',serif;font-size:26px;line-height:.9;color:var(--ink);transition:transform .3s}
.x-pl-n small{font-style:italic;font-size:12px;color:var(--brown)}
.x-pl li:hover .x-pl-n{transform:translateX(4px)}
.x-pl p{font-size:clamp(15px,14.5px + .25vw,17px);font-weight:600;line-height:1.5}
.x-pills.v-b .x-pl-in{display:grid;grid-template-columns:4fr 6fr;gap:clamp(30px,5vw,90px)}
.x-pills.v-b .x-pl{margin:0}
@media (max-width:1023px){.x-pills.v-b .x-pl-in{grid-template-columns:1fr}}
/* pills (b) with a photo: title on top, the rows span the photo's height (user 2026-10-27, DM여드름염증) */
.x-pills.v-b .has-fig{grid-template-areas:"hd ." "fig list";row-gap:clamp(22px,2.4vw,36px)}
.has-fig > .x-hd{grid-area:hd}
.has-fig > .x-pl-fig{grid-area:fig;margin:0;display:flex;flex-direction:column}
.has-fig > .x-pl{grid-area:list;justify-content:space-between}
@media (min-width:1024px){.has-fig > .x-pl-fig .ph{flex:1 0 auto}.has-fig > .x-pl-fig img{height:100%;object-fit:cover}}
@media (max-width:1023px){.x-pills.v-b .has-fig{grid-template-areas:"hd" "fig" "list"}}
@media (max-width:599px){.x-pl li{border-radius:18px;padding:12px 14px}.x-pl-n{width:52px;height:52px;font-size:22px}}

/* ── P12 ladder ─────────────────────────────────────────────────── */
.x-ld-in{display:grid;grid-template-columns:4fr 8fr;gap:clamp(30px,5vw,90px)}
.x-ld{display:flex;flex-direction:column;gap:clamp(28px,3vw,44px)}
.x-ld li{display:grid;grid-template-columns:clamp(150px,16vw,240px) 1fr;gap:clamp(18px,2.4vw,36px);align-items:center}
.x-ld li:nth-child(even){margin-left:clamp(0px,8vw,115px)}
.x-ld-ph{display:block;transform:translate3d(0,var(--py,0px),0)}
.x-ld-ph .ph{aspect-ratio:230/255;border-radius:6px}
.x-ld-ph img{width:100%;height:100%;object-fit:cover}
.x-ld-k{font-family:'Cormorant',serif;font-style:italic;font-size:17px;color:var(--brown)}
.x-ld h3{margin:2px 0 8px;font-size:clamp(18px,16.5px + .4vw,22px);font-weight:700;line-height:1.5}
@media (max-width:1023px){.x-ld-in{grid-template-columns:1fr}.x-ld li:nth-child(even){margin-left:0}}
@media (max-width:599px){.x-ld li{grid-template-columns:110px 1fr;align-items:start}}

/* ── P13 rail ───────────────────────────────────────────────────── */
.x-rail{overflow:clip}
.x-rl-bg{position:absolute;inset:0;z-index:-1}
.x-rl-bg picture{display:contents}
.x-rl-bg img{width:100%;height:100%;object-fit:cover;opacity:.9}
.x-rl-bg::after{content:'';position:absolute;inset:0;background:rgba(251,247,241,.84)}
.x-rl-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.x-rl-btns{display:flex;gap:10px;flex:none}
.x-rl-btns button{width:46px;height:46px;border-radius:50%;border:1px solid #D9C3A5;background:#fff;display:grid;place-items:center;color:var(--ink);transition:background .25s,color .25s}
.x-rl-btns button:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}
.x-rl-btns button:disabled{opacity:.35}
.x-rl-btns svg{width:20px;height:20px}
.x-rl{margin-top:clamp(24px,2.6vw,40px)}
.x-rl-t{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(250px,24vw,310px);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 18px;cursor:grab}
.x-rl-t::-webkit-scrollbar{display:none}
.x-rl-t.drag{cursor:grabbing;scroll-snap-type:none}
.x-rl-t > li{scroll-snap-align:start;background:#fff;border-top:2px solid var(--brown);box-shadow:0 20px 40px -30px rgba(98,75,51,.55);border-radius:0 0 10px 10px;overflow:hidden}
.x-rl-t a{display:block;height:100%}
.x-rl-ph{aspect-ratio:16/10}
.x-rl-ph img{width:100%;height:100%;object-fit:cover}
.x-rl-tx{padding:clamp(18px,1.8vw,24px)}
.x-rl-n{font-family:'Cormorant',serif;font-style:italic;font-size:20px;color:var(--brown)}
.x-rl-tx h3{margin:2px 0 8px;font-size:clamp(17px,16px + .3vw,19px);font-weight:700}
.x-rl-tx .body{font-size:14.5px}
.x-rl-go{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-family:'Cormorant',serif;font-size:15px;color:var(--brown)}
.x-rl-bar{display:block;height:1px;background:#E1D3C0;overflow:hidden}
.x-rl-bar i{display:block;height:100%;width:30%;background:var(--brown)}
@media (max-width:767px){.x-rl-t{grid-auto-columns:78%}}

/* ── P14-A arch steps ───────────────────────────────────────────── */
.x-ar{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(16px,2.4vw,36px);margin-top:clamp(30px,3.4vw,56px);text-align:center}
.x-ar::before{content:'';position:absolute;left:12%;right:12%;top:clamp(60px,6vw,96px);height:1px;background:var(--sandb);transform-origin:0 50%;transition:transform 1.6s cubic-bezier(.2,.7,.2,1);z-index:-1}
.x-mo .x-ar:not(.in)::before{transform:scaleX(0)}
.x-ar-ph{display:block;aspect-ratio:1.55/1;border-radius:999px 999px 10px 10px;overflow:hidden;background:var(--ivory)}
.x-ar-ph img{width:100%;height:100%;object-fit:cover}
.x-ar-ic{display:grid;place-items:center}
.x-ar-ic svg{width:46%;height:auto}
.x-ar-k{margin-top:16px;font-family:'Cormorant',serif;font-size:16px;color:#7a6d63}
.x-ar-k b{font-size:22px;color:var(--brown);font-weight:600}
.x-ar h3{margin:4px 0 8px;font-size:clamp(17px,16px + .3vw,19px);font-weight:700}
@media (max-width:767px){.x-ar{grid-template-columns:1fr}.x-ar::before{display:none}.x-ar-ph{max-width:420px;margin:auto;aspect-ratio:2/1}}

/* ── P15 caution ────────────────────────────────────────────────── */
.x-ca-card{position:relative;display:grid;grid-template-columns:minmax(0,35%) 1fr;background:#fff;box-shadow:0 34px 70px -40px rgba(98,75,51,.45)}
.x-ca-pn{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px;padding:clamp(36px,4vw,60px) clamp(22px,2.6vw,40px);background:var(--champ)}
.x-ca-ph{position:absolute;inset:0 0 auto;height:min(100%,720px);z-index:-1;opacity:.6;-webkit-mask-image:linear-gradient(#000 65%,transparent);mask-image:linear-gradient(#000 65%,transparent)}   /* 2026-10-27: a long list no longer stretches the photo (비타민관리 «해상도도 너무 낮아») */
.x-ca-ph picture{display:contents}
.x-ca-bg{width:100%;height:100%;object-fit:cover}
.x-ca-en{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(28px,2.6vw,38px);line-height:1;color:var(--brown)}
.x-ca-pn .h2b{font-size:clamp(20px,17px + .7vw,26px)}
.x-ca-pn p{font-size:14.5px;color:#5b4f46}
.x-ca-bd{padding:clamp(26px,3.6vw,56px)}
.x-ca-l{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.x-ca-l li{display:grid;grid-template-columns:52px 1fr;gap:6px;padding:clamp(14px,1.4vw,18px) 0;border-top:1px solid #E6D8C5}
.x-ca-l li:first-child{border-top:0}
.x-ca-n{font-family:'Cormorant',serif;font-size:20px;color:var(--brown);line-height:1.4}
.x-ca-l b{display:block;font-size:16px;margin-bottom:2px}
.x-ca-l p{font-size:15px;color:#4a4039;line-height:1.65}
.x-ca-risk{margin-top:clamp(18px,2vw,26px);padding:16px 20px;background:var(--ivory);border-left:2px solid var(--brown)}
.x-ca-risk b{display:block;font-size:15px;margin-bottom:6px}
.x-ca-risk ul{list-style:disc;padding-left:18px;font-size:14.5px;line-height:1.7;color:#4a4039}
.x-ca-note{margin-top:14px;font-size:13.5px;color:#7a6d63}
.x-ca-tab{position:absolute;top:34px;left:100%;writing-mode:vertical-rl;padding:16px 9px;background:var(--ink);color:var(--ivory);font-family:'Cormorant',serif;font-size:12px;letter-spacing:.24em;border-radius:0 6px 6px 0}
@media (max-width:1199px){.x-ca-tab{display:none}}
@media (max-width:767px){.x-ca-card{grid-template-columns:1fr}.x-ca-pn{padding:34px 20px}}
@media (max-width:767px){.x-ca-bg{object-position:50% 0}}   /* 2026-11-03 전체 점검: 휴대폰 판(약 200px)은 제목이 판 전체를 덮어 소품 위에 글자가 겹쳤다(리바이브·디자인필러) → 사진의 빈 윗부분만 */
.x-caution.v-b .x-ca-in{display:grid;grid-template-columns:3fr 7fr;gap:clamp(28px,5vw,90px)}
.x-caution.v-b .x-ca-bd{padding:0}
.x-caution.v-b .x-ca-en{font-size:clamp(34px,3.4vw,48px)}
@media (max-width:1023px){.x-caution.v-b .x-ca-in{grid-template-columns:1fr}}

/* ── P17 stats band ─────────────────────────────────────────────── */
.x-stats{overflow:clip}
.x-st-bg{position:absolute;inset:0;z-index:-1}
.x-st-bg picture{display:contents}
.x-st-bg img{width:100%;height:100%;object-fit:cover}
.x-st-bg::after{content:'';position:absolute;inset:0;background:rgba(251,247,241,.72)}
.x-st{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:clamp(20px,2.4vw,36px)}
.x-st li{text-align:center;padding:10px 16px;border-left:1px solid rgba(138,107,69,.28)}
.x-st li:first-child{border-left:0}
.x-st-k{font-family:'Cormorant',serif;font-style:italic;font-size:16px;color:var(--brown)}
.x-st-n{font-family:'Cormorant',serif;font-weight:600;font-size:clamp(48px,5vw,74px);line-height:1.1;color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.x-st-n small{font-size:.32em;margin-left:4px;color:var(--brown)}
.x-st-d{font-size:14.5px;color:#4a4039;line-height:1.6}
@media (max-width:599px){.x-st{grid-template-columns:1fr 1fr;row-gap:24px}.x-st li:nth-child(odd){border-left:0}}

/* ── P18-A device rows ──────────────────────────────────────────── */
.x-dv-l{display:flex;flex-direction:column;gap:clamp(56px,7vw,110px);margin-top:clamp(34px,4vw,64px)}
.x-dv{display:grid;grid-template-columns:5fr 7fr;gap:clamp(28px,6vw,100px);align-items:center}
.x-dv.rev .x-dv-fr{order:2}
.x-dv-fr{position:relative;height:clamp(300px,30vw,440px);display:flex;justify-content:center;align-items:flex-end}
.x-dv-arch{position:absolute;left:50%;bottom:0;width:min(100%,360px);height:82%;transform:translateX(-50%);border-radius:999px 999px 0 0;background:linear-gradient(180deg,#F7EFE4,#E9DAC4)}
.x-dv-im{position:relative;max-height:100%;width:auto;filter:drop-shadow(0 22px 28px rgba(42,36,32,.2))}
.x-dv-en{font-family:'Cormorant',serif;font-style:italic;font-size:18px;color:var(--brown)}
.x-dv-tx h3{margin:2px 0 10px;font-size:clamp(24px,20px + 1vw,34px);font-weight:700;line-height:1.35}
.x-dv-hl{margin-bottom:12px;font-size:clamp(15.5px,15px + .2vw,17px);font-weight:700}
.x-dv-hl span{background:linear-gradient(transparent 58%,rgba(234,220,203,.9) 0) no-repeat;background-size:100% 100%}
.x-dv-ck{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.x-dv-ck li{padding:5px 14px;border:1px solid #E1D3C0;border-radius:999px;font-size:14px;background:#fff}
@media (max-width:767px){.x-dv{grid-template-columns:1fr}.x-dv.rev .x-dv-fr{order:0}.x-dv-fr{height:280px}}

/* ── X4 photo band ──────────────────────────────────────────────── */
.x-band{padding:0}
.x-bd{position:relative;min-height:clamp(400px,36vw,560px);display:grid;align-items:center;overflow:hidden}
.x-bd-bg{position:absolute;inset:0}
.x-bd-bg picture{display:contents}
.x-bd-bg img{width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.x-bd-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.72) 0,rgba(255,255,255,.5) 36%,rgba(255,255,255,0) 62%)}   /* lighter (feedback 2): the photo colour must show */
.x-bd-in{position:relative;z-index:2;padding-block:clamp(50px,6vw,90px)}
.x-bd-tx{max-width:520px}
.x-bd-en{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(17px,16px + .3vw,21px);color:var(--brown)}
.x-bd-h{margin:6px 0 14px;font-size:clamp(24px,19px + 1.3vw,40px);font-weight:700;line-height:1.45;letter-spacing:-.03em}
@media (max-width:767px){.x-bd{align-items:end;min-height:560px}.x-bd-wash{background:linear-gradient(180deg,rgba(251,247,241,0) 20%,rgba(251,247,241,.86) 52%,rgba(251,247,241,.98) 70%)}.x-bd-bg img{object-position:64% 0}}

/* ── generic cards (flex so an incomplete last row stays centred) ── */
.x-cards-body{max-width:760px;margin:12px auto 0;text-align:center}
.x-cd{--g:clamp(14px,1.8vw,26px);--c:3;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g);margin-top:clamp(28px,3vw,48px)}
.x-cd.c2{--c:2}.x-cd.c3{--c:3}.x-cd.c4{--c:4}
.x-cd > li{flex:0 0 calc((100% - (var(--c) - 1) * var(--g)) / var(--c));background:#fff;border-top:2px solid var(--brown);box-shadow:0 20px 44px -32px rgba(98,75,51,.55);display:flex;flex-direction:column}
.x-cd-ph{aspect-ratio:4/3}
.x-cd-ph img{width:100%;height:100%;object-fit:cover}
.x-cd-svg{display:grid;place-items:center;height:clamp(130px,12vw,170px);background:var(--ivory)}
.x-cd-svg svg{width:74%;max-width:220px;height:auto}
.x-cd-tx{padding:clamp(18px,1.8vw,26px)}
.x-cd-en{font-family:'Cormorant',serif;font-style:italic;font-size:15.5px;color:var(--brown)}
.x-cd-tx h3{margin:2px 0 8px;font-size:clamp(17px,16px + .3vw,19px);font-weight:700;line-height:1.45}
.x-cd-tx .body{font-size:15px}
@media (max-width:1023px){.x-cd.c3,.x-cd.c4{--c:2}}
@media (max-width:599px){.x-cd.c2,.x-cd.c3,.x-cd.c4{--c:1}}

/* ── P01-B info sheet ───────────────────────────────────────────── */
.x-if-in{display:grid;grid-template-columns:4fr 8fr;gap:clamp(26px,5vw,90px);align-items:start}
.x-if{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(20px,3vw,48px);border-top:2px solid var(--ink)}
.x-if-r{display:grid;grid-template-columns:clamp(88px,8vw,120px) 1fr;gap:12px;padding:clamp(14px,1.4vw,18px) 0;border-bottom:1px solid #E6D8C5}
.x-if dt{font-size:14.5px;font-weight:700;color:var(--brown)}
.x-if dd{font-size:15px;line-height:1.65}
@media (max-width:1023px){.x-if-in{grid-template-columns:1fr}}
@media (max-width:599px){.x-if{grid-template-columns:1fr}}

/* ── compare3 (original method comparison) ──────────────────────── */
.x-c3-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px);margin-top:clamp(28px,3vw,50px);text-align:center}
.x-c3-l li{padding:clamp(22px,2.4vw,34px) clamp(16px,1.8vw,26px);background:#fff;border:1px solid #E6D8C5;border-radius:12px}
.x-c3-l li.on{border-color:var(--brown);box-shadow:0 26px 50px -32px rgba(98,75,51,.6)}
.x-c3-ph{display:block;width:clamp(130px,13vw,180px);margin:0 auto 14px}
.x-c3-ph img{width:100%;height:auto}
.x-c3-ph{display:flex;align-items:flex-end;justify-content:center;aspect-ratio:1}.x-c3-ph img{width:auto;max-width:100%;max-height:100%}   /* 2026-11-02 전체 점검: 사진 비율(0.89–1.07)이 달라 STEP 이름표가 6–20px 계단처럼 어긋남(울쎄라·리쥬란) → 정사각 칸에 아래 맞춤 */
.x-c3-k{font-family:'Cormorant',serif;font-size:15px;letter-spacing:.12em;color:var(--brown)}
.x-c3-l h3{margin:4px 0 8px;font-size:clamp(17px,16px + .3vw,19px);font-weight:700}
.x-c3-l li.on h3{color:var(--brown2)}
@media (max-width:767px){.x-c3-l{grid-template-columns:1fr}}

/* ── compact doctor strip ───────────────────────────────────────── */
.x-doc-in{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,90px);align-items:center}
.x-doc-ph{width:clamp(220px,26vw,380px);aspect-ratio:640/825;border-radius:0 0 40px 40px;overflow:hidden}
.x-doc-ph img{width:100%;height:100%;object-fit:cover}
.x-doc-tx .eb{color:var(--brown)}
.x-doc-h{margin:6px 0 12px;font-size:clamp(22px,18px + 1vw,32px);font-weight:700;line-height:1.45}
.x-doc-tx .pzd-name{margin-top:20px}
.x-doc-car{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;margin-top:12px;font-size:15px;color:#4a4039}
.x-doc-car li::before{content:'';display:inline-block;width:4px;height:4px;margin-right:10px;vertical-align:4px;background:var(--brown)}
@media (max-width:767px){.x-doc-in{grid-template-columns:1fr}.x-doc-ph{margin:auto}.x-doc-car{grid-template-columns:1fr}}

/* ── responsive collapses for 2-column patterns ─────────────────── */
@media (max-width:1023px){
  .x-intro-in,.x-rows-in,.x-key-in{grid-template-columns:1fr}
  .x-intro-hd .x-hd{position:static}
}
@media (max-width:767px){
  .x-row{grid-template-columns:1fr}
  .x-row-ph{order:-1}
  .x-dp-in{margin-top:24px}
}
@media (prefers-reduced-motion:reduce){
  .x-ld-ph{transform:none}
}

/* ── explain: text + diagram ────────────────────────────────────── */
.x-ex-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,90px);align-items:center}
.x-explain.fig-l .x-ex-fig{order:-1}
.x-ex-tx .x-hd{margin-bottom:clamp(14px,1.6vw,22px)}
.x-ex-pts{margin-top:clamp(20px,2.2vw,30px);border-top:1px solid #E1D3C0}
.x-ex-pts li{display:grid;grid-template-columns:minmax(110px,30%) 1fr;gap:14px;padding:14px 0;border-bottom:1px solid #E1D3C0}
.x-ex-pts b{font-size:15px;color:var(--brown)}
.x-ex-pts p{font-size:15px;line-height:1.65;color:#4a4039}
.x-ex-fig{margin:0;padding:clamp(18px,2.4vw,36px);background:var(--ivory);border-radius:14px;box-shadow:inset 0 0 0 1px #EFE4D6}
.x-ex-fig svg{display:block;width:100%;height:auto}
.x-ex-fig .ph{border-radius:10px}
.x-ex-fig figcaption{margin-top:12px;font-size:13px;color:#7a6d63;text-align:center}
@media (max-width:1023px){.x-ex-in{grid-template-columns:1fr}.x-explain.fig-l .x-ex-fig{order:0}}
@media (max-width:599px){.x-ex-pts li{grid-template-columns:1fr;gap:2px}}
/* svg diagram text */
.dg text{font-family:'Pretendard Variable',Pretendard,sans-serif;fill:#2A2420;letter-spacing:-.02em}
.dg .lab{font-size:13px;font-weight:600}
.dg .sub{font-size:11.5px;fill:#7a6d63;font-weight:500}
.dg .en{font-family:'Cormorant',serif;font-style:italic;font-size:14px;fill:#8A6B45}
/* device cut-outs in cards keep their shape */
.rel-ph.fit img,.x-rl-ph.fit img{object-fit:contain;object-position:50% 50%;padding:14px;background:linear-gradient(180deg,#FBF7F1,#F1E6D6)}
.x-rl-word{display:grid;place-items:center;aspect-ratio:16/10;background:linear-gradient(135deg,#FBF7F1,#EFE2D0);font-family:'Cormorant',serif;font-style:italic;font-size:clamp(24px,2.2vw,32px);color:var(--brown)}

/* P02 rows without photos: compact numbered list */
.x-rows-l.plain{gap:0;border-top:1px solid #E1D3C0}
.x-rows-l.plain .x-row{grid-template-columns:clamp(64px,6.4vw,100px) 1fr;gap:clamp(14px,2vw,28px);align-items:start;padding:clamp(20px,2.2vw,30px) 0;border-bottom:1px solid #E1D3C0}
.x-row-k{font-family:'Cormorant',serif;font-weight:500;font-size:clamp(36px,3.4vw,52px);line-height:.9;color:#CDBBA4}
.x-rows-l.plain h3{margin:0 0 6px}
/* explain legend under the diagram */
.x-ex-lg{margin-top:14px;display:grid;gap:8px;text-align:left}
.x-ex-lg li{display:grid;grid-template-columns:26px 1fr;gap:8px;font-size:14px;line-height:1.55;color:#4a4039}
.x-ex-lg li span{font-family:'Cormorant',serif;font-weight:700;font-size:18px;line-height:1.1;color:var(--brown)}
.x-ex-lg b{color:var(--ink)}
.dg .mk{font-family:'Cormorant',serif;font-weight:700;font-size:20px;fill:#8A6B45;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}

/* <picture> must not break the parent's size limits (device cut-outs grew past their frames on phones) */
.x-sec picture{display:contents}
.x-dv-im{max-width:100%;object-fit:contain}

/* ══ 2026-10-26 사용자 피드백 2 ═══════════════════════════════════════════════
   메인 페이지 색감(샴페인 그라데이션·비단결 선·흐르는 외곽선 글자·형광펜 강조·금빛 그라데이션 제목·다크 초콜릿 면),
   섹션 배경으로 구분, 굵게·형광펜 강조, 움직이는 헤더, FAQ 통일(포텐자 .faq 그대로). */

/* section tones — only the main page's own backgrounds (user 2026-10-26: "메인 페이지보다 조금 어두운 느낌"):
   white #FFF · ivory #FBF7F1 · mist #F7F1E8 · grad (mist→ivory→mist + soft blobs, like the main "SIGNATURE PROGRAM") · champ #F3EADF.
   build.py assigns them so neighbours differ (verify 'bg'); nothing darker than champ. */
.bg-mist{background:#F7F1E8}
.bg-grad{background-color:#F8F3EB;background-image:linear-gradient(180deg,#F7F1E8 0%,#FBF7F1 50%,#F7F1E8 100%)}
.bg-grad::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(38% 55% at 12% 28%,rgba(217,195,165,.28),transparent 70%),radial-gradient(34% 50% at 88% 72%,rgba(217,195,165,.24),transparent 70%)}

/* decoration: the main page's silk lines and flowing outline word */
.x-silk::after{content:'';position:absolute;z-index:-1;pointer-events:none;left:-6%;right:-6%;top:10%;height:clamp(220px,34vw,520px);
  background:url(g/bg_silk.svg) center/100% 100% no-repeat;animation:bgSilkLine 21s ease-in-out infinite alternate}
.x-silk.silk-b::after{top:auto;bottom:4%;scale:-1 1;animation-duration:24s}
.x-flow{position:absolute;left:0;bottom:-.2em;z-index:-1;pointer-events:none;width:max-content;white-space:nowrap;font-family:'Cormorant',serif;font-weight:500;
  font-size:clamp(84px,13vw,230px);line-height:1;letter-spacing:.04em;color:transparent;-webkit-text-stroke:1px rgba(138,107,69,.3);animation:bgFlow 80s linear infinite}
.x-sec.has-flow{padding-bottom:calc(var(--sec) + clamp(40px,6vw,110px))}
@media (max-width:767px){.x-silk::after{left:-80%;right:-80%;height:240px;opacity:.75}.x-flow{animation-duration:60s}}
@media (prefers-reduced-motion:reduce){.x-silk::after,.x-flow{animation:none}}

/* emphasis — strong = bold bronze, mark = the main page's highlighter, em in a title = gold gradient (main "SIGNATURE PROGRAM") */
.x-sec strong,.x-sec mark{font-weight:700;color:var(--brown2)}
.x-sec mark{background:linear-gradient(transparent 58%,rgba(217,195,165,.65) 58%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .06em}
.x-sec .h2b em,.x-sec .x-bd-h em,.x-sec .x-key-tx .h2b em{font-style:normal;background:linear-gradient(100deg,#B48A52,#8A6B45 55%,#B48A52);-webkit-background-clip:text;background-clip:text;color:transparent}

/* moving header — <video> over the still poster; the still stays for reduced motion and while loading */
.shero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);will-change:transform}
@media (prefers-reduced-motion:reduce){.shero-vid{display:none}}
@media (max-width:767px){.shero-vid{object-position:var(--vpos-m,50% 50%)}}   /* hero_sub pos_m: 아트 헤더는 휴대폰에서 옆 묶음을 보인다 (2026-10-30) */

/* figure hotspots (explain with a medical image) */
.x-ex-fig .x-spots{position:relative;display:block}
.x-ex-fig .x-spots .ph{border-radius:12px}
.x-spot{position:absolute;z-index:2;display:grid;place-items:center;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:rgba(255,255,255,.92);
  box-shadow:0 0 0 6px rgba(255,255,255,.35),0 6px 16px rgba(42,36,32,.25);font-family:'Cormorant',serif;font-weight:700;font-size:17px;color:var(--brown2)}
.x-mo .x-spot{animation:xSpot 2.6s ease-in-out infinite}
@keyframes xSpot{50%{box-shadow:0 0 0 11px rgba(255,255,255,.18),0 6px 16px rgba(42,36,32,.25)}}
/* hotspot names on the image (user 2026-10-27 써마지: «이미지 위에 부위 이름») — side = which way the name sits from its dot */
.x-spl{position:absolute;z-index:3;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid rgba(138,107,69,.32);
  box-shadow:0 6px 16px -6px rgba(42,36,32,.35);font-size:13.5px;font-weight:700;line-height:1.25;color:var(--ink);white-space:nowrap;pointer-events:none;--o:22px}
.x-spl.r{transform:translate(var(--o),-50%)}
.x-spl.l{transform:translate(calc(-100% - var(--o)),-50%)}
.x-spl.t{transform:translate(-50%,calc(-100% - var(--o)))}
.x-spl.b{transform:translate(-50%,var(--o))}
@media (max-width:599px){.x-spl{font-size:12px;padding:3px 8px;--o:19px}}

/* depth gauge: image above the side list; pills (b): photo beside the rows */
.x-dp-side{display:flex;flex-direction:column;gap:clamp(18px,2vw,28px)}
.x-dp-side .x-dp-card{padding:0;overflow:hidden}
.x-dp-side .x-dp-card img{max-height:none;width:100%}
.x-pl-fig{margin-top:clamp(22px,2.4vw,36px)}
.x-pl-fig .ph{border-radius:14px;aspect-ratio:4/5;max-width:420px}
@media (max-width:1023px){.x-pl-fig .ph{aspect-ratio:4/3;max-width:none}}
.x-intro-fig.photo{text-align:left}
.x-intro-fig.photo .ph{border-radius:14px;aspect-ratio:4/3;max-width:520px}
.x-intro-fig.photo img{max-height:none;filter:none}

/* program recipe cards (s6020 화이트닝 프로그램): white card + bronze top line, steps as a joined list of round thumbnails */
.x-pg-chips{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin-top:clamp(22px,2.4vw,34px)}
.x-pg-chips p{font-size:15.5px;font-weight:700;color:var(--brown)}
.x-pg-chips p i{font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:20px}
.x-pg-chips .chips{margin:0;justify-content:center}
.x-pg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin-top:clamp(30px,3.4vw,54px)}
.x-pg-c{display:flex;flex-direction:column;background:#fff;border-top:2px solid var(--brown);border-radius:0 0 12px 12px;box-shadow:0 24px 50px -36px rgba(98,75,51,.6);padding:clamp(24px,2.6vw,38px) clamp(20px,2.2vw,32px)}
.x-pg-k{font-family:'Cormorant',serif;font-size:14.5px;letter-spacing:.12em;color:#8a7d72}
.x-pg-en{margin-top:4px;font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:clamp(28px,2.5vw,40px);line-height:1.1;color:var(--brown)}
.x-pg-c h3{margin-top:8px;font-size:clamp(18px,16.5px + .4vw,22px);font-weight:700;line-height:1.45}
.x-pg-d{margin:8px 0 clamp(20px,2vw,28px);min-height:3.3em;font-size:15px;line-height:1.65;color:#51463e}   /* two lines: the step lists start at one height */
.x-pg-st{display:flex;flex-direction:column;gap:16px;padding-top:clamp(20px,2vw,28px);border-top:1px solid #EFE5D8}
.x-pg-st li{position:relative;display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center}
.x-pg-st li:not(:last-child)::after{content:'';position:absolute;left:32px;top:64px;height:16px;width:1px;background:#D9C3A5}
.x-pg-th{width:64px;height:64px;border-radius:50%;overflow:hidden;background:#fff;border:1px solid #E6D8C5}
.x-pg-th img{width:100%;height:100%;object-fit:cover}
.x-pg-st li.on .x-pg-th{border:1.5px solid var(--brown);box-shadow:0 0 0 4px rgba(138,107,69,.14)}
.x-pg-sx small{display:block;font-family:'Cormorant',serif;font-size:14px;letter-spacing:.1em;color:#8a7d72}
.x-pg-sx b{font-size:16.5px;font-weight:700}
.x-pg-st li.on .x-pg-sx b{color:var(--brown2)}
@media (max-width:1023px){.x-pg{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}
/* s2060 thread types: the original's feature words as small chips under each card (cards item 'chips') */
.x-cd-chips{gap:6px;margin-top:14px}
.x-cd-chips li{height:30px;padding:0 12px;border-radius:15px;font-size:13px}
/* s2060: an optional row label inside a pill row (원문 «첫 번째 추천 대상») */
.x-pl p small{display:block;margin-bottom:1px;font-size:12.5px;font-weight:500;letter-spacing:.02em;color:var(--brown)}
/* s2060: the key card's long English line («The speciality of DM thread lifting», original copy) pushes the lead down to the watermark on phones */
@media (max-width:1023px){.pg-s2060 .x-key-tx{padding-bottom:96px}}
/* s20a0: same long English line («The speciality of DM Collagen Booster», original copy) — same fix */
@media (max-width:1023px){.pg-s20a0 .x-key-tx{padding-bottom:96px}}
/* s1040 보유장비: equipment catalog (devices variant grid) — catalog heading + jump list, then per group a number, heading and
   device cards (white card, bronze top line, the clinic's device photo on an arch, never enlarged past its file) */
.x-dg-top{margin-bottom:clamp(46px,5vw,80px)}
.x-dg-nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px;max-width:980px;margin:clamp(22px,2.4vw,34px) auto 0}
.x-dg-nav a{display:inline-flex;align-items:center;height:38px;padding:0 16px;border:1px solid #E1D3C0;border-radius:19px;background:#fff;font-size:14.5px;font-weight:600;color:#4a4039;transition:border-color .3s,color .3s}
.x-dg-nav a:hover,.x-dg-nav a:focus-visible{border-color:var(--brown);color:#6F5434}
.x-dg-hd{text-align:center}
.x-dg-n{display:block;margin-bottom:6px;font-family:'Cormorant',serif;font-size:clamp(40px,4vw,58px);line-height:1;color:#CDBBA4}
.x-dg-l{--g:clamp(16px,2vw,28px);--c:3;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g);margin-top:clamp(28px,3vw,48px)}
/* scroll-margin-top 24px: html 의 scroll-padding-top 이 이미 고정 헤더 높이(--hdh)를 비우므로, 여기는 헤더 아래 띄울 만큼만 (2026-11-05 — 전에는 헤더 높이를 한 번 더 더해 목표가 112px 아래에 멈췄다) */
.x-dg{flex:0 0 calc((100% - (var(--c) - 1) * var(--g)) / var(--c));display:flex;flex-direction:column;background:#fff;border-top:2px solid var(--brown);border-radius:0 0 12px 12px;box-shadow:0 24px 50px -36px rgba(98,75,51,.6);scroll-margin-top:24px}
.x-dg-fr{position:relative;height:clamp(220px,20vw,270px);margin:clamp(18px,2vw,26px) clamp(18px,2vw,26px) 0;display:flex;justify-content:center;align-items:flex-end;overflow:hidden}
.x-dg-arch{position:absolute;left:50%;bottom:0;width:min(78%,250px);height:88%;transform:translateX(-50%);border-radius:999px 999px 0 0;background:linear-gradient(180deg,#F8F2EA,#ECDFCD)}
.x-dg-im{position:relative;max-height:94%;max-width:88%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 18px 22px rgba(42,36,32,.18))}
.x-dg-tx{display:flex;flex-direction:column;flex:1;padding:clamp(18px,1.8vw,26px) clamp(20px,2vw,28px) clamp(22px,2.2vw,30px);border-top:1px solid #EFE5D8}
.x-dg-en{font-family:'Cormorant',serif;font-style:italic;font-size:16.5px;color:var(--brown)}
.x-dg-tx h3{margin:0 0 8px;font-size:clamp(19px,17.5px + .4vw,23px);font-weight:700;line-height:1.4}
.x-dg-hl{margin-bottom:10px;font-size:15.5px;font-weight:700;line-height:1.55}
.x-dg-hl span{background:linear-gradient(transparent 60%,rgba(234,220,203,.9) 0) no-repeat}
.x-dg-tx .body{font-size:15px;line-height:1.7}
.x-dg-ck{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.x-dg-ck li{padding:4px 12px;border:1px solid #E1D3C0;border-radius:999px;font-size:13px;line-height:1.5;background:#fff;color:#5b4f46}
.x-dg-go{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:auto;padding-top:16px}
.x-dg-go a{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#6F5434;border-bottom:1px solid rgba(138,107,69,.4);padding-bottom:2px}
.x-dg-go a:hover,.x-dg-go a:focus-visible{border-color:var(--brown)}
.x-dg-go .dv-ar{width:14px}
@media (max-width:1023px){.x-dg-l{--c:2}}
@media (max-width:599px){.x-dg-l{--c:1}.x-dg-fr{height:220px}.x-dg-nav a{height:34px;padding:0 13px;font-size:13.5px}}
/* routes (MCT 피부·두피·정맥·피부+정맥, later 수액): one card per sub-menu item with its own anchor — the menu links to it.
   Jump list on top, 2 columns of white cards (bronze top line): photo + amount tag, number + English label, name, text, check rows */
.x-rt-nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px;margin:clamp(20px,2.2vw,30px) auto 0}
.x-rt-nav a{display:inline-flex;align-items:center;height:40px;padding:0 18px;border:1px solid #E1D3C0;border-radius:20px;background:#fff;font-size:15px;font-weight:600;color:#4a4039;transition:border-color .3s,color .3s}
.x-rt-nav a:hover,.x-rt-nav a:focus-visible{border-color:var(--brown);color:#6F5434}
.x-rt-l{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.2vw,32px);margin-top:clamp(30px,3.2vw,50px)}
.x-rt{display:flex;flex-direction:column;background:#fff;border-top:2px solid var(--brown);border-radius:0 0 12px 12px;box-shadow:0 24px 50px -36px rgba(98,75,51,.6);overflow:hidden;scroll-margin-top:24px}
.x-rt-ph{position:relative}
.x-rt-ph .ph{aspect-ratio:16/10}
.x-rt-tag{position:absolute;left:clamp(14px,1.4vw,20px);bottom:clamp(14px,1.4vw,20px);padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 8px 20px -10px rgba(42,36,32,.4);font-size:14px;font-weight:700;line-height:1.3;color:var(--brown2)}
.x-rt-tx{display:flex;flex-direction:column;flex:1;padding:clamp(22px,2.2vw,32px) clamp(22px,2.4vw,34px) clamp(24px,2.4vw,34px)}
.x-rt-en{display:flex;align-items:baseline;gap:12px;font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:clamp(18px,16.5px + .4vw,22px);color:var(--brown)}
.x-rt-en span{font-style:normal;font-weight:500;font-size:15px;letter-spacing:.12em;color:#8a7d72}
.x-rt-tx h3{margin:2px 0 10px;font-size:clamp(20px,18px + .5vw,25px);font-weight:700;line-height:1.4}
.x-rt-tx .body{font-size:15.5px;line-height:1.75}
.x-rt-tx .body + .body{margin-top:8px}
.x-rt-for{margin-top:18px;padding-top:16px;border-top:1px solid #EFE5D8}
.x-rt-for b{display:block;margin-bottom:6px;font-size:14px;color:var(--brown)}
.x-rt-for li{display:flex;gap:8px;padding:3px 0;font-size:15px;line-height:1.6;color:#4a4039}
@media (max-width:767px){.x-rt-l{grid-template-columns:minmax(0,1fr)}.x-rt-nav a{height:36px;padding:0 14px;font-size:14px}}
/* s2070 슈링크: long figures (1.4–4.5, 300·400) stay on one line in the 2-column phone stats band */
@media (max-width:599px){.pg-s2070 .x-st-n{font-size:clamp(30px,9vw,40px);white-space:nowrap}}
/* profile (의료진소개 s1020, template F «P02 의료진 행»): sticky photo with round lower corners left; role, name, English name, text,
   the specialist mark (a crop of the coat patch) in a white card (bronze top line) and the career in three titled, ruled groups right */
.x-pf-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,90px);align-items:start}
.x-pf-ph{margin:0;position:sticky;top:calc(var(--hdh) + 36px)}
.x-pf-ph .ph{display:block;aspect-ratio:640/860;border-radius:0 0 40px 40px;overflow:hidden;background:#E6E5E2}
.x-pf-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.x-pf-tx .eb{color:var(--brown)}
.x-pf-role{margin-top:14px;font-size:16px;font-weight:700;color:var(--brown2)}
.x-pf-name{margin-top:4px;font-size:clamp(32px,26px + 1.4vw,48px);font-weight:700;line-height:1.35}
.x-pf-name em{font-style:normal;background:linear-gradient(100deg,#B48A52,#8A6B45 55%,#B48A52);-webkit-background-clip:text;background-clip:text;color:transparent}
.x-pf-en{margin-top:2px;font-family:'Cormorant',serif;font-style:italic;font-size:clamp(18px,16px + .5vw,22px);color:var(--brown)}
.x-pf-tx .body{margin-top:16px}
.x-pf-mk{display:flex;align-items:center;gap:16px;margin-top:clamp(24px,2.6vw,36px);padding:18px 22px;background:#fff;border-top:2px solid var(--brown);border-radius:0 0 12px 12px;box-shadow:0 24px 50px -36px rgba(98,75,51,.6)}
.x-pf-logo{flex:none;width:64px;border-radius:10px;overflow:hidden;box-shadow:0 10px 22px -14px rgba(42,36,32,.5)}
.x-pf-logo img{display:block;width:100%;height:auto}
.x-pf-mk p{flex:1;font-size:15px;line-height:1.55;color:#4a4039}
.x-pf-mk b{display:block;font-size:16px;color:var(--brown2)}
.x-pf-tag{flex:none;padding:6px 14px;border:1px solid #E1D3C0;border-radius:999px;font-size:14px;font-weight:700;line-height:1.4;color:var(--brown2);white-space:nowrap}
.x-pf-car{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,36px);margin-top:clamp(28px,3vw,44px)}
.x-pf-g h3{padding-bottom:10px;border-bottom:2px solid var(--brown);font-size:17px;font-weight:700;line-height:1.4}
.x-pf-g li{padding:10px 0;border-bottom:1px solid #EFE5D8;font-size:15px;line-height:1.55;color:#4a4039}
.x-pf-g li.now{font-weight:700;color:var(--brown2)}
.x-pf-note{margin-top:16px;font-size:13.5px;color:#6f6359}
@media (max-width:1023px){.x-pf-in{grid-template-columns:minmax(0,1fr)}.x-pf-ph{position:static;width:100%;max-width:460px;margin-inline:auto}.x-pf-car{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.x-pf-car{grid-template-columns:minmax(0,1fr)}.x-pf-mk{flex-wrap:wrap;padding:16px 18px;row-gap:10px}.x-pf-logo{width:56px}
  .x-pf-mk p{flex:1 1 calc(100% - 72px)}.x-pf-tag{margin-left:72px}}
/* certs (의료진소개 s1020): the doctor's certificate scans as white cards (bronze top line) — a scan is shown at most at its own size;
   year + Korean caption + English title; three per row, the last row centred */
.x-ce{--g:clamp(14px,1.8vw,26px);--c:3;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g);margin-top:clamp(28px,3vw,48px)}
.x-ce li{flex:0 0 calc((100% - (var(--c) - 1) * var(--g)) / var(--c));display:flex}
.x-ce figure{display:flex;flex-direction:column;width:100%;margin:0;background:#fff;border-top:2px solid var(--brown);border-radius:0 0 12px 12px;box-shadow:0 24px 50px -36px rgba(98,75,51,.6)}
.x-ce-fr{display:flex;align-items:center;justify-content:center;height:clamp(140px,17vw,240px);margin:clamp(12px,1.6vw,22px) clamp(12px,1.6vw,22px) 0;background:#F8F4EE;border-radius:4px}
.x-ce-fr img{width:auto;height:auto;max-width:calc(100% - 16px);max-height:calc(100% - 16px)}
.x-ce figcaption{padding:clamp(12px,1.4vw,20px) clamp(14px,1.8vw,24px) clamp(16px,1.8vw,24px)}
.x-ce-y{display:block;font-family:'Cormorant',serif;font-weight:600;font-size:20px;line-height:1.2;color:var(--brown)}
.x-ce figcaption b{display:block;margin-top:4px;font-size:16px;line-height:1.5}
.x-ce-en{display:block;margin-top:4px;font-family:'Cormorant',serif;font-style:italic;font-size:15px;line-height:1.35;color:#6f6359}
@media (max-width:767px){.x-ce{--c:2}.x-ce figcaption b{font-size:14.5px}.x-ce-en{font-size:13.5px}}
/* arch shape:round (진정관리 s6010): the old page's six 300px round step photos — round frames on the drawn line, never larger
   than the file; 3 per row under 1024px, 2 under 768px */
.x-arch.round .x-ar-ph{width:min(100%,176px);margin-inline:auto;aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 18px 40px -26px rgba(98,75,51,.5)}
.x-arch.round .x-ar::before{top:clamp(56px,6vw,88px)}
.x-arch.round .x-ar .body{font-size:15px;line-height:1.7}
@media (max-width:1023px){.x-arch.round .x-ar{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:clamp(30px,4vw,44px)}.x-arch.round .x-ar::before{display:none}}
@media (max-width:767px){.x-arch.round .x-ar{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.x-arch.round .x-ar-ph{width:min(100%,148px)}}
/* drips (수액 iv): the IV menu as one white board (bronze top line) — a wide still photo on top, nine items in three columns split by
   hairlines (each cell draws its right and bottom line; the grid runs 1px past the board, which clips the outer lines), each item an
   anchor of the 수액 sub-menu; two columns under 1024px (an odd last item spans both), one under 600px.
   The jump list (routes' .x-rt-nav look) only shows under 1024px, where the board is long. */
.x-dm-board{margin-top:clamp(28px,3vw,46px);background:#fff;border-top:2px solid var(--brown);border-radius:0 0 14px 14px;box-shadow:0 30px 60px -40px rgba(98,75,51,.55);overflow:hidden}
.x-dm-fig{margin:0}
.x-dm-fig .ph{display:block;aspect-ratio:16/5}
.x-dm-fig img{width:100%;height:100%;object-fit:cover}
.x-dm-fig figcaption{padding:12px clamp(22px,2.2vw,32px) 0;font-size:13.5px;color:#6f6359}
.x-dm-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 -1px -1px 0}
.x-dm{padding:clamp(24px,2.4vw,36px) clamp(22px,2.2vw,32px);border-right:1px solid #EFE5D8;border-bottom:1px solid #EFE5D8;scroll-margin-top:24px}
.x-dm-k{display:flex;align-items:baseline;gap:10px;font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:clamp(17px,16px + .3vw,19px);line-height:1.3;color:var(--brown)}
.x-dm-k span{font-style:normal;font-weight:500;font-size:14px;letter-spacing:.12em;color:#8a7d72}
.x-dm h3{margin:4px 0 10px;font-size:clamp(19px,17px + .45vw,23px);font-weight:700;line-height:1.4}
.x-dm-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.x-dm-tags li{padding:3px 11px;border:1px solid #E1D3C0;border-radius:999px;background:#fff;font-size:13px;font-weight:600;line-height:1.5;color:#6F5434}
.x-dm .body{font-size:15px;line-height:1.75}
.x-dm .body + .body{margin-top:6px}
.x-dm-for{margin-top:14px;padding-top:12px;border-top:1px solid #F1E8DC}
.x-dm-for b{display:block;margin-bottom:4px;font-size:13.5px;color:var(--brown)}
.x-dm-for li{display:flex;gap:8px;padding:2px 0;font-size:14.5px;line-height:1.6;color:#4a4039}
/* 수액 메뉴 지그재그 (drips layout: zigzag — 2026-10-30 사용자 «지그재그 구성으로… 각 항목은 고급스러운 이미지») */
.x-dz-l{display:flex;flex-direction:column;gap:clamp(44px,6vw,110px);margin-top:clamp(32px,4vw,64px)}
.x-dz{display:grid;grid-template-columns:minmax(0,11fr) minmax(0,9fr);align-items:center;gap:clamp(28px,5vw,96px);scroll-margin-top:24px}
.x-dz:nth-child(even){grid-template-columns:minmax(0,9fr) minmax(0,11fr)}
.x-dz:nth-child(even) .x-dz-ph{order:2}
.x-dz-ph{display:block;transform:translate3d(0,var(--py,0px),0)}
.x-dz-ph .ph{aspect-ratio:4/3;border-radius:clamp(16px,1.6vw,26px);box-shadow:0 34px 60px -42px rgba(98,75,51,.55)}
.x-dz-ph img{width:100%;height:100%;object-fit:cover}
.x-dz-n{font-family:'Cormorant',serif;font-weight:500;font-size:clamp(52px,4.6vw,84px);line-height:.9;color:var(--brown)}
.x-dz .x-dm-k{margin-top:clamp(10px,1.2vw,16px)}
.x-dz h3{margin:6px 0 clamp(14px,1.4vw,20px);padding-bottom:clamp(14px,1.4vw,20px);border-bottom:1px solid #E6D8C5;font-size:clamp(24px,20px + 1vw,34px);font-weight:700;line-height:1.35}
.x-dz .body{font-size:clamp(16px,15px + .3vw,18.5px);line-height:1.75;color:#3d342d}
.x-dz .x-dm-tags{margin:16px 0 0}
@media (max-width:767px){.x-dz,.x-dz:nth-child(even){grid-template-columns:minmax(0,1fr);gap:20px}.x-dz:nth-child(even) .x-dz-ph{order:0}}
@media (min-width:1024px){.x-dm-nav{display:none}}
@media (max-width:1023px){.x-dm-l{grid-template-columns:repeat(2,minmax(0,1fr))}.x-dm:last-child:nth-child(odd){grid-column:1/-1}.x-dm-fig .ph{aspect-ratio:16/7}}
@media (max-width:599px){.x-dm-l{grid-template-columns:minmax(0,1fr)}.x-dm-fig .ph{aspect-ratio:16/9}}
/* hours (진료안내 s1030): opening hours as one white board (bronze top line) — day group, a bar on a shared hour axis (white gaps
   mark the hours), the time as text. Lunch = a lighter bar; 일요일·공휴일 예약제 = no bar (the clinic gives no hours), its words sit
   in the track. Phones: name and time on one line, the track full width under them; the axis shows every second hour. */
.x-hr{max-width:1000px;margin:clamp(28px,3vw,46px) auto 0;padding:clamp(22px,2.6vw,36px) clamp(20px,3vw,44px) clamp(10px,1.2vw,16px);background:#fff;border-top:2px solid var(--brown);border-radius:0 0 14px 14px;box-shadow:0 30px 60px -40px rgba(98,75,51,.55)}
.x-hr-ax,.x-hr-r{display:grid;grid-template-columns:clamp(104px,11vw,150px) minmax(0,1fr) clamp(180px,19vw,230px);column-gap:clamp(16px,2.4vw,36px);align-items:center}
.x-hr-ax ol{position:relative;height:24px}
.x-hr-ax li{position:absolute;left:var(--x);top:0;transform:translateX(-50%);font-size:13px;font-weight:600;color:#8f8073;white-space:nowrap}
.x-hr-r{padding:clamp(16px,1.6vw,22px) 0;border-top:1px solid #EFE5D8}
.x-hr-k{font-size:clamp(16px,15px + .3vw,18px);font-weight:700;color:var(--ink)}
.x-hr-tr{position:relative;display:block;height:12px;border-radius:999px;background:repeating-linear-gradient(90deg,#F2EBE1 0 calc(100% / var(--n) - 2px),#fff calc(100% / var(--n) - 2px) calc(100% / var(--n)))}
.x-hr-bar{position:absolute;top:0;bottom:0;left:var(--l);width:var(--w);border-radius:999px;background:linear-gradient(90deg,#8A6B45,#B48A52);transform-origin:0 50%}
.x-hr-r.lunch .x-hr-bar{background:#D9C3A5}
.x-hr-r.resv .x-hr-tr{height:auto;padding:6px 14px;background:none;border:1px solid #E1D3C0;text-align:center}
.x-hr-tx{font-size:14px;font-weight:600;line-height:1.5;color:#6F5434}
.x-hr-v{font-size:clamp(16px,15px + .35vw,19px);font-weight:700;color:var(--brown2);text-align:right}
.x-hr-r.lunch .x-hr-k,.x-hr-r.lunch .x-hr-v{color:#6f6359}
.x-mo .x-hr-r .x-hr-bar{transform:scaleX(0);transition:transform 1.3s cubic-bezier(.2,.7,.2,1) .25s}
.x-mo .x-hr-r.in .x-hr-bar{transform:none}
.x-hr-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px clamp(20px,3vw,40px);max-width:1000px;margin:clamp(20px,2.2vw,30px) auto 0}
.x-hr-notes li{display:flex;gap:8px;font-size:15px;line-height:1.65;color:#4a4039}
@media (max-width:767px){.x-hr-ax{grid-template-columns:minmax(0,1fr)}.x-hr-ax > span{display:none}
  .x-hr-r{grid-template-columns:minmax(0,1fr) auto;row-gap:10px}.x-hr-tr{grid-column:1/-1;order:3}
  .x-hr-notes{grid-template-columns:minmax(0,1fr)}}
@media (max-width:599px){.x-hr-ax li:nth-child(even){visibility:hidden}.x-hr-v{font-size:15.5px}}
/* contact (진료안내 s1030): the main phone number as a large white card beside the booking channels (white rows, bronze top line),
   then the messenger QR codes for patients abroad on one white board. A small QR file keeps hard pixel edges (.px). */
.x-ct-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(16px,2vw,28px);margin-top:clamp(28px,3vw,46px)}
.x-ct-main,.x-ct-l a,.x-ct-chat{background:#fff;border-top:2px solid var(--brown);border-radius:0 0 14px 14px;box-shadow:0 26px 54px -38px rgba(98,75,51,.6)}
.x-ct-main{display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,3vw,44px) clamp(24px,2.8vw,40px)}
.x-ct-main .x-ct-go{margin-top:0}
.x-ct-ic img{display:block;width:42px;height:42px}
.x-ct-main .x-ct-t{margin-top:18px;font-size:clamp(17px,16px + .3vw,19px);font-weight:700}
.x-ct-n{margin-top:6px;font-family:'Cormorant',serif;font-weight:600;font-size:clamp(40px,32px + 2vw,60px);line-height:1.1;letter-spacing:.02em;color:var(--brown2)}
.x-ct-main .x-ct-d{margin-top:14px;font-size:15.5px;line-height:1.75;color:#51463e}
.x-ct-go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:18px;font-size:14px;font-weight:700;letter-spacing:.04em;color:#6F5434}
.x-ct-go .dv-ar{width:14px;transition:transform .3s}
.x-ct-main:hover .dv-ar,.x-ct-l a:hover .dv-ar,.x-ct-main:focus-visible .dv-ar,.x-ct-l a:focus-visible .dv-ar{transform:translateX(4px)}
.x-ct-l{display:grid;gap:clamp(12px,1.4vw,18px)}
.x-ct-l a{display:flex;align-items:flex-start;gap:18px;height:100%;padding:clamp(18px,2vw,26px) clamp(20px,2.4vw,32px)}
.x-ct-l .x-ct-ic{flex:none;margin-top:2px}
.x-ct-tx{display:flex;flex-direction:column;flex:1;min-width:0}
.x-ct-l .x-ct-t{font-size:clamp(17px,16px + .3vw,19px);font-weight:700}
.x-ct-l .x-ct-d{margin-top:4px;font-size:15px;line-height:1.7;color:#51463e}
.x-ct-l .x-ct-go{padding-top:8px}
.x-ct-chat{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(20px,3vw,48px);align-items:center;margin-top:clamp(16px,2vw,28px);padding:clamp(24px,2.6vw,38px) clamp(24px,2.8vw,40px)}
.x-ct-en{font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:clamp(18px,16.5px + .4vw,22px);color:var(--brown)}
.x-ct-chd h3{margin:2px 0 8px;font-size:clamp(19px,17px + .45vw,23px);font-weight:700;line-height:1.45}
.x-ct-chd .body{font-size:15px;line-height:1.7}
.x-ct-q{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
.x-ct-q li{display:flex;align-items:center;gap:18px;padding-left:clamp(14px,2vw,28px);border-left:1px solid #EFE5D8}
.x-ct-qr{flex:none;display:grid;place-items:center;width:112px;height:112px;padding:6px;border:1px solid #E6D8C5;border-radius:10px;background:#fff}
.x-ct-qr img{display:block;width:98px;height:98px}
.x-ct-qr.px img{image-rendering:pixelated}
.x-ct-cn{display:flex;align-items:center;gap:8px}
.x-ct-cn img{width:26px;height:26px}
.x-ct-cn b{font-size:17px}
.x-ct-id{margin-top:6px;font-size:14px;font-weight:600;letter-spacing:.03em;color:#6F5434;word-break:break-word}
.x-ct-qd{margin-top:4px;font-size:13.5px;line-height:1.55;color:#6f6359}
@media (max-width:1023px){.x-ct-in,.x-ct-chat{grid-template-columns:minmax(0,1fr)}}
@media (max-width:599px){.x-ct-q{grid-template-columns:minmax(0,1fr)}.x-ct-q li{padding-left:0;border-left:0}.x-ct-l a{gap:14px}.x-ct-ic img{width:36px;height:36px}}

/* explain fig_max (s2050 울쎄라): a figure box capped in width, centred in its column — a small old model photo never grows past its file */
.x-ex-fig.fmax{justify-self:center;width:100%}
/* explain cls ex-top (s2050 부위 지도): short text beside a tall figure — the text sits at the top and stays in view while the figure scrolls */
@media (min-width:1024px){.x-explain.ex-top .x-ex-tx{position:sticky;top:calc(var(--hdh) + 36px);align-self:start}}

/* 2026-10-30 사용자 «왼쪽에 이미지가 없네?» — 주의사항 b형: 왼쪽 제목 아래 4:3 관리 사진 */
.x-ca-fig{margin-top:clamp(22px,2.4vw,36px);aspect-ratio:4/3;overflow:hidden;box-shadow:0 34px 70px -40px rgba(98,75,51,.45)}
.x-ca-fig picture{display:contents}
.x-ca-fimg{width:100%;height:100%;object-fit:cover}
@media (max-width:1023px){.x-ca-fig{max-width:560px}}

/* 2026-10-30 사용자 «텍스트 부분은 카드 가운데 정렬 맞춰줘» (쥬베룩 keycard): 글 묶음을 카드 한가운데에 두고 가운데 맞춤.
   덮개도 위쪽만 밝던 세로 그라데이션 → 가운데가 밝은 타원으로 (글이 가운데로 와서) */
.x-key-card{display:flex;flex-direction:column;justify-content:center}
.x-key-tx{text-align:center}
.x-key-ph::after{background:radial-gradient(ellipse 90% 62% at 50% 50%,rgba(251,247,241,.93) 0,rgba(251,247,241,.8) 55%,rgba(251,247,241,.32) 100%)}
/* 휴대폰·태블릿: 카드 아래 큰 장식 글자(.x-key-mark) 자리를 비워 둔다 — 가운데 맞춤 뒤 DM시그니처 리드가 «DM»과 겹쳤다 (verify overlap 390·360) */
@media (max-width:1023px){.x-key-tx{padding-bottom:clamp(96px,22vw,130px)}}

/* 2026-10-30 사용자 «이벤트 페이지도 디자인해야지. 기존 디자인으로 하면 안 돼» — 이벤트 게시판.
   목록: 메인 «DM SPECIAL EVENT» 카드(.ecard)를 정사각 포스터로 3열(포스터 파일 410px 보다 크게 늘리지 않게 폭 1280px 안), 진행 중 이벤트가 없으면 안내 상자.
   글: 포스터 + 제목·기간 + 종료 안내 + 이전·목록·다음 */
.x-ev-g{max-width:1280px;margin:clamp(40px,4.4vw,64px) auto 0}
.x-ev-k{display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid #E6DCCF;font-size:clamp(18px,1.5vw,22px);font-weight:600;color:var(--ink)}
.x-ev-n{display:inline-grid;place-items:center;min-width:28px;height:26px;padding:0 9px;border-radius:999px;background:#F3EADF;color:#6F5434;font-size:13px;font-weight:600;line-height:1}
.x-ev-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,3.4vw,48px) 32px;margin-top:clamp(24px,2.6vw,36px)}
.x-ev-l .ec-ph{aspect-ratio:1;background:#fff}
.x-ev-l .ecard h4{margin-top:18px;font-size:clamp(15px,14.308px + .1923vw,18px);font-weight:600;line-height:1.45}
.x-ev-l .ecard>a:hover h4{text-decoration:underline;text-underline-offset:3px}
.x-ev-l .date{margin-top:4px}
.x-ev-none{margin-top:clamp(20px,2.2vw,30px);padding:clamp(30px,3.6vw,52px) clamp(22px,3vw,48px);background:#fff;border-top:2px solid var(--brown);box-shadow:0 30px 60px -44px rgba(98,75,51,.45);text-align:center}
.x-ev-k + .x-ev-none{margin-top:-1px}
.x-ev-nt{font-size:clamp(18px,1.5vw,22px);font-weight:600;color:var(--ink)}
.x-ev-none .body,.x-evv-note .body{margin-top:10px}
@media (max-width:1023px){.x-ev-l{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px}}
.x-evv{display:grid;grid-template-columns:minmax(0,410px) minmax(0,1fr);gap:clamp(28px,4.4vw,72px);align-items:center;max-width:1100px;margin-inline:auto}
.x-evv-ph{aspect-ratio:1;background:#fff;box-shadow:0 34px 70px -40px rgba(98,75,51,.45)}
.x-evv-ph picture{display:contents}
.x-evv-ph img{display:block;width:100%;height:100%;object-fit:cover}
.x-evv-ph.ended img{opacity:.55}
.x-evv-tx .h2b .ec-end{vertical-align:.35em}
.x-evv-term{margin-top:16px;font-size:16px;color:rgba(34,34,34,.78)}
.x-evv-term span{margin-right:12px;color:#6F5434;font-weight:600}
.x-evv-note{margin-top:clamp(22px,2.4vw,32px);padding:clamp(22px,2.6vw,32px);background:#FBF7F1;border-top:2px solid var(--brown)}
.x-evv-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;max-width:1100px;margin:clamp(44px,4.8vw,72px) auto 0;padding-top:clamp(18px,2vw,26px);border-top:1px solid #E6DCCF}
.x-evv-pn{display:flex;flex-direction:column;gap:4px;min-width:0}
.x-evv-pn.next{align-items:flex-end;text-align:right}
.x-evv-pn small{font-size:13px;color:#7a6d63}
.x-evv-pn b{font-weight:600;color:var(--ink)}
.x-evv-pn.off b{font-weight:400;color:#8f8379}
a.x-evv-pn:hover b{text-decoration:underline;text-underline-offset:3px}
.x-evv-list{display:inline-flex;align-items:center;height:46px;padding:0 28px;border:1px solid var(--brown);border-radius:999px;background:#fff;color:#6F5434;font-size:15px;font-weight:600;transition:background .3s,color .3s,border-color .3s}
.x-evv-list:hover,.x-evv-list:focus-visible{background:var(--ink);border-color:var(--ink);color:#fff}
@media (max-width:767px){.x-evv{grid-template-columns:minmax(0,1fr)}.x-evv-ph{width:100%;max-width:410px;margin-inline:auto}
  .x-evv-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.x-evv-list{grid-column:1/-1;grid-row:2;justify-self:center}}

/* ── 다양성 시험 (2026-11-02 사용자 «빌드된 페이지들 구조가 거의 똑같아… 다양성», 물광주사) ──
   intro_ed: editorial intro, photo to the right screen edge + number card on it · plan: session track + info cards · caution c: aftercare by time */
.x-ied-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:clamp(40px,5vw,96px);align-items:start;padding-left:max(var(--gut),calc((100% - 1440px)/2))}
.x-ied .h2b{font-size:clamp(28px,19px + 1.5vw,46px);line-height:1.32}
.x-ied-tx .x-lead{margin-top:clamp(14px,1.4vw,22px)}
.x-ied-tx .body{margin-top:14px}
.x-ied-vis{position:sticky;top:calc(var(--hdh) + 40px)}
.x-ied-fig .ph{width:100%;aspect-ratio:4/5;max-height:calc(100svh - var(--hdh) - 80px);border-radius:clamp(14px,1.4vw,22px) 0 0 clamp(14px,1.4vw,22px)}
.x-ied-fig picture{display:contents}
.x-ied-fig img{width:100%;height:100%;object-fit:cover;object-position:20% 50%}
.x-ied-facts.facts{position:absolute;left:clamp(20px,2.4vw,40px);right:max(clamp(20px,2.4vw,40px),var(--gut));bottom:clamp(20px,2.4vw,40px);margin:0;grid-template-columns:repeat(3,minmax(0,1fr));padding:clamp(18px,1.8vw,28px) 0}
.x-ied-facts .fact-n{font-size:clamp(32px,2.8vw,50px)}
.x-ied-facts .fact-l{font-size:13.5px;line-height:1.45}
.x-ied-facts .fact:nth-child(3){border-left:1px solid rgba(138,107,69,.22)}
@media (max-width:1023px){
  .x-ied-in{grid-template-columns:minmax(0,1fr);padding-left:0}
  .x-ied-tx{width:min(1440px,100% - var(--gut)*2);margin-inline:auto}
  .x-ied-vis{position:relative;top:auto;margin-top:clamp(32px,5vw,48px)}
  .x-ied-fig .ph{aspect-ratio:4/3;max-height:none;border-radius:0}
  .x-ied-facts.facts{position:relative;left:auto;right:auto;bottom:auto;margin:-44px var(--gut) 0}}
@media (max-width:767px){.x-ied-facts .fact{padding:0 6px}.x-ied-facts .fact-n{font-size:30px}.x-ied-facts .fact-n small{font-size:13px}.x-ied-facts .fact-l{font-size:12.5px}}

.x-pl-card{margin-top:clamp(28px,3vw,48px);padding:clamp(26px,3vw,48px) clamp(20px,3.4vw,56px);background:#fff;border-top:2px solid var(--brown);box-shadow:0 34px 70px -40px rgba(98,75,51,.45)}
.x-pl-t{font-size:14.5px;font-weight:700;color:var(--brown);text-align:center}
.x-pl-tr{display:flex;align-items:flex-start;margin-top:clamp(18px,2vw,28px)}
.x-pl-st{flex:none;display:flex;flex-direction:column;align-items:center;gap:8px;width:clamp(100px,10vw,150px);text-align:center}
.x-pl-st b{display:inline-flex;align-items:center;height:44px;padding:0 20px;border:1px solid var(--brown);border-radius:999px;background:#fff;color:#6F5434;font-size:16px;font-weight:700;white-space:nowrap}
.x-pl-st:last-child b{background:var(--ink);border-color:var(--ink);color:#fff}
.x-pl-st.soft b{border-color:rgba(138,107,69,.45);color:#8a7660}
.x-pl-st small{font-size:13px;line-height:1.45;color:#7a6d63}
.x-pl-gap{flex:1;position:relative;display:flex;justify-content:center;min-width:56px;height:44px}
.x-pl-gap::before{content:'';position:absolute;left:4px;right:4px;top:50%;height:1px;background:var(--brown);transform-origin:0 50%;transition:transform 1s cubic-bezier(.2,.7,.2,1) .3s}
.x-pl-gap::after{content:'';position:absolute;right:5px;top:calc(50% - 3.5px);width:7px;height:7px;border-top:1px solid var(--brown);border-right:1px solid var(--brown);transform:rotate(45deg)}
.x-pl-gap span{position:relative;align-self:center;padding:0 10px;background:#fff;font-size:14px;font-weight:700;color:var(--brown);white-space:nowrap}
.x-mo .x-pl-card:not(.in) .x-pl-gap::before{transform:scaleX(0)}
.x-pl-d{max-width:760px;margin:clamp(20px,2.2vw,30px) auto 0;padding-top:clamp(16px,1.8vw,24px);border-top:1px solid #E6D8C5;text-align:center}
.x-pl-l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,24px);margin-top:clamp(14px,1.6vw,24px)}
.x-pl-l li{padding:clamp(20px,2vw,28px);background:#fff;border-top:1px solid var(--brown);box-shadow:0 20px 44px -34px rgba(98,75,51,.45)}
.x-pl-l b{display:block;font-size:15px;color:var(--brown)}
.x-pl-l p{margin-top:8px;font-size:15px;line-height:1.65;color:#4a4039}
@media (max-width:1023px){.x-pl-l{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){
  .x-pl-tr{flex-direction:column;align-items:flex-start}
  .x-pl-st{flex-direction:row;width:auto;gap:12px;text-align:left}
  .x-pl-gap{flex:none;justify-content:flex-start;height:auto;min-height:46px;margin-left:36px;padding:8px 0}
  .x-pl-gap::before{left:0;right:auto;top:0;bottom:0;width:1px;height:auto;transform-origin:50% 0}
  .x-mo .x-pl-card:not(.in) .x-pl-gap::before{transform:scaleY(0)}
  .x-pl-gap::after{display:none}
  .x-pl-gap span{padding:0 0 0 16px;background:none}
  .x-pl-d{text-align:left}}
@media (max-width:599px){.x-pl-l{grid-template-columns:minmax(0,1fr)}}

.x-cc-hd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:clamp(24px,4vw,72px);align-items:end}
.x-caution.v-c .x-ca-en{font-size:clamp(34px,3.4vw,48px)}
.x-caution.v-c .x-ca-fig{margin-top:0}
.x-cc-l{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:clamp(14px,1.6vw,24px);margin-top:clamp(32px,3.4vw,56px);padding-top:clamp(18px,1.8vw,24px);border-top:2px solid var(--ink)}
.x-cc-l>li{position:relative}
.x-cc-l>li::before{content:'';position:absolute;left:0;top:calc(clamp(18px,1.8vw,24px) * -1 - 9px);width:2px;height:16px;background:var(--brown)}
.x-cc-w{display:flex;flex-direction:column;gap:4px;min-height:3.6em;font-size:16px;font-weight:700;line-height:1.35}
.x-cc-w span{font-family:'Cormorant',serif;font-size:clamp(22px,2vw,28px);font-weight:600;line-height:1;color:var(--brown);font-variant-numeric:lining-nums}
.x-cc-l ul{display:grid;gap:12px;margin-top:14px}
.x-cc-l ul li{padding:clamp(16px,1.6vw,22px);background:#fff;border-top:1px solid var(--brown);box-shadow:0 20px 44px -34px rgba(98,75,51,.45)}
@media (min-width:1024px){.x-cc-l{grid-template-rows:repeat(4,auto);row-gap:0}.x-cc-l>li{display:grid;grid-row:span 4;grid-template-rows:subgrid}.x-cc-l>li>ul{grid-row:span 3;grid-template-rows:subgrid;row-gap:12px}}   /* 2026-11-02 전체 점검: 같은 줄 카드의 아랫선을 맞춤 */
.x-cc-l ul b{display:block;font-size:16px;margin-bottom:4px}
.x-cc-l ul p{font-size:14.5px;line-height:1.65;color:#4a4039}
.x-caution.v-c .x-ca-risk{margin-top:clamp(28px,3vw,44px)}
@media (max-width:1023px){.x-cc-hd{grid-template-columns:minmax(0,1fr)}.x-caution.v-c .x-ca-fig{max-width:560px}.x-cc-l{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}.x-cc-w{min-height:0}}
@media (max-width:599px){
  .x-cc-l{grid-template-columns:minmax(0,1fr);row-gap:28px;padding:0 0 0 20px;border-top:0;border-left:2px solid var(--ink)}
  .x-cc-l>li::before{left:-29px;top:2px;width:16px;height:2px}}

/* ── 다양성 5장 (2026-11-02 사용자 «좋아. 더 다양성이 있게 한 5개 페이지를 random으로 재구성해줘»)
   intro_bt · intro_num · info_icons · info_ph · info_hl · stats_list · caution d/e/g (sections.py) */
/* intro_bt — replaces intro_cv (user «이 layout가 너무 마음에 안 들어. 다른 layout로 해줘»): title | lead, photo = four ruled number rows in height, one reading column */
.x-ibt-hd{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(32px,4.4vw,80px);align-items:end}
.x-ibt .h2b{font-size:clamp(28px,19px + 1.5vw,46px);line-height:1.32}
.x-ibt-lead.x-lead{margin:0;padding-top:clamp(14px,1.4vw,20px);border-top:1px solid var(--brown)}
.x-ibt-vis{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,3.4vw,60px);margin-top:clamp(32px,3.6vw,56px)}
.x-ibt-fig .ph{aspect-ratio:4/3;border-radius:clamp(14px,1.4vw,22px)}
.x-ibt-fig img{object-position:50% 40%}
.x-ibt-facts.facts{grid-column:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:0;background:none;border-top:2px solid var(--ink);border-radius:0;box-shadow:none}   /* rows, not boxes (user «이러한 layout가 별로야~» on white box grids) */
.x-ibt-facts .fact{display:grid;grid-template-columns:clamp(128px,11vw,190px) minmax(0,1fr);align-items:center;gap:clamp(12px,1.4vw,24px);padding:clamp(12px,1.2vw,18px) 0;text-align:left;border-bottom:1px solid #E6D8C5}
.x-ibt-facts .fact+.fact{border-left:0}
.x-ibt-facts .fact-n{justify-content:flex-start;font-size:clamp(40px,3.6vw,62px)}
.x-ibt-facts .fact-l{margin:0;font-size:14.5px;line-height:1.55}
.x-ibt-tx{max-width:780px;margin:clamp(40px,4.4vw,72px) auto 0}
.x-ibt-tx .body:last-of-type{margin-top:clamp(20px,2vw,28px);padding:clamp(20px,2vw,28px) clamp(20px,2.4vw,32px);background:#fff;border-top:1px solid var(--brown);box-shadow:0 20px 44px -34px rgba(98,75,51,.45)}
@media (max-width:1023px){.x-ibt-hd,.x-ibt-vis{grid-template-columns:minmax(0,1fr)}.x-ibt-lead.x-lead{margin-top:clamp(16px,2vw,22px)}
  .x-ibt-facts.facts{grid-template-rows:auto}}
@media (max-width:767px){.x-ibt-facts .fact{grid-template-columns:clamp(104px,30vw,128px) minmax(0,1fr)}.x-ibt-facts .fact-n{font-size:clamp(32px,9vw,40px)}.x-ibt-facts .fact-l{font-size:13.5px}}

.x-inum-in{display:grid;grid-template-columns:clamp(170px,15vw,230px) minmax(0,1fr) minmax(0,.78fr);column-gap:clamp(28px,4vw,72px);align-items:start}
.x-inum-r{position:sticky;top:calc(var(--hdh) + 36px);border-top:2px solid var(--ink)}
.x-inum-r li{padding:clamp(14px,1.4vw,20px) 0;border-bottom:1px solid #E6D8C5}
.x-inum-k{font-family:'Cormorant',serif;font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brown)}
.x-inum-n{display:flex;align-items:baseline;flex-wrap:wrap;margin-top:2px;font-family:'Cormorant',serif;font-weight:600;font-size:clamp(38px,3.4vw,54px);line-height:1.05;color:var(--brown2);font-variant-numeric:lining-nums tabular-nums}
.x-inum-n small{margin-left:4px;font-family:'Pretendard Variable',sans-serif;font-size:15px;font-weight:600;color:var(--brown)}
.x-inum-l{margin-top:6px;font-size:13.5px;line-height:1.5;color:#5d534b}
.x-inum-fig{position:sticky;top:calc(var(--hdh) + 36px)}
.x-inum-fig .ph{aspect-ratio:3/4;border-radius:clamp(14px,1.4vw,22px)}
.x-inum-fig:not(.photo) img{display:block;max-width:100%;height:auto;margin-inline:auto}
@media (max-width:1199px){
  .x-inum-in{grid-template-columns:clamp(160px,18vw,210px) minmax(0,1fr)}
  .x-inum-fig{grid-column:2;position:relative;top:auto;max-width:560px;margin-top:clamp(28px,3vw,40px)}
  .x-inum-fig .ph{aspect-ratio:4/3}}
@media (max-width:767px){
  .x-inum-in{grid-template-columns:minmax(0,1fr)}
  .x-inum-r{position:relative;top:auto;order:1;display:grid;grid-template-columns:1fr 1fr;column-gap:16px;margin-top:28px}
  .x-inum-fig{grid-column:auto;order:2}
  .x-inum-n{font-size:34px}}

.x-icn-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(28px,3vw,48px);border-top:1px solid #E6D8C5;border-left:1px solid #E6D8C5}
.x-icn-l li{padding:clamp(22px,2.4vw,36px) clamp(18px,2.2vw,34px);border-right:1px solid #E6D8C5;border-bottom:1px solid #E6D8C5;background:rgba(255,255,255,.6)}
.x-icn-i{display:block;width:clamp(42px,3.4vw,52px);height:clamp(42px,3.4vw,52px);color:var(--brown)}
.x-icn-i svg{width:100%;height:100%}
.x-icn-l b{display:block;margin-top:14px;font-size:16px}
.x-icn-l p{margin-top:6px;font-size:15px;line-height:1.65;color:#4a4039}
.x-icn .x-note{text-align:center}
@media (max-width:1023px){.x-icn-l{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.x-icn-l{grid-template-columns:minmax(0,1fr)}.x-icn-l li{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:16px}.x-icn-i{grid-row:span 2;width:40px;height:40px}.x-icn-l b{margin-top:0}}

.x-ifp-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center}
.x-ifp-fig .ph{aspect-ratio:4/5;border-radius:clamp(14px,1.4vw,22px)}
.x-ifp-card{position:relative;z-index:1;margin-left:clamp(-120px,-7vw,-60px);padding:clamp(28px,3.4vw,56px);background:#fff;border-top:2px solid var(--brown);box-shadow:0 34px 70px -40px rgba(98,75,51,.45)}
.x-ifp-l{margin-top:clamp(18px,2vw,28px);border-top:1px solid #E6D8C5}
.x-ifp-r{display:grid;grid-template-columns:clamp(84px,8vw,112px) minmax(0,1fr);gap:14px;padding:clamp(12px,1.2vw,16px) 0;border-bottom:1px solid #E6D8C5}
.x-ifp-l dt{font-size:14.5px;font-weight:700;color:var(--brown)}
.x-ifp-l dd{font-size:15px;line-height:1.65}
@media (max-width:1023px){.x-ifp-in{grid-template-columns:minmax(0,1fr)}.x-ifp-fig .ph{aspect-ratio:16/10}.x-ifp-fig img{object-position:50% 78%}.x-ifp-card{margin:-56px clamp(10px,3vw,32px) 0}}
@media (max-width:599px){.x-ifp-r{grid-template-columns:minmax(0,1fr);gap:4px}}

.x-ihl-l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.2vw,18px);margin-top:clamp(28px,3vw,48px)}
.x-ihl-l li{padding:clamp(20px,2vw,30px);background:#fff;border-top:1px solid var(--brown);box-shadow:0 20px 44px -34px rgba(98,75,51,.45)}
.x-ihl-k{display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:700;color:var(--brown)}
.x-ihl-k span{font-family:'Cormorant',serif;font-size:20px;font-weight:600;color:#CDBBA4;font-variant-numeric:lining-nums}
.x-ihl-v{margin-top:clamp(14px,1.4vw,22px);font-size:clamp(19px,15px + .6vw,25px);font-weight:700;line-height:1.38;letter-spacing:-.01em}
.x-ihl-s{margin-top:10px;font-size:14px;line-height:1.6;color:#6d6158}
.x-ihl-s small{font-size:inherit}
.x-ihl-l .x-ihl-nt{display:flex;align-items:center;background:none;border:1px solid rgba(138,107,69,.35);box-shadow:none}
.x-ihl-nt p{font-size:14px;line-height:1.65;color:#5d534b}
@media (max-width:1023px){.x-ihl-l{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.x-ihl-l{grid-template-columns:minmax(0,1fr)}}

.x-stl-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(26px,5vw,90px);align-items:start}
.x-stl-l{border-top:2px solid var(--ink)}
.x-stl-l li{display:grid;grid-template-columns:clamp(100px,9vw,140px) clamp(220px,22vw,330px) minmax(0,1fr);align-items:baseline;gap:clamp(14px,2vw,32px);padding:clamp(18px,2vw,28px) 0;border-bottom:1px solid #E6D8C5}
.x-stl-k{font-family:'Cormorant',serif;font-size:clamp(16px,1.3vw,19px);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brown)}
.x-stl-n{font-family:'Cormorant',serif;font-weight:600;font-size:clamp(44px,4.4vw,72px);line-height:1;color:var(--ink);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.x-stl-n small{margin-left:6px;font-family:'Pretendard Variable',sans-serif;font-size:clamp(15px,1.2vw,18px);font-weight:600;color:var(--brown)}
.x-stl-d{font-size:15px;line-height:1.6;color:#4a4039}
@media (max-width:1023px){.x-stl-in{grid-template-columns:minmax(0,1fr)}}
@media (max-width:599px){.x-stl-l li{grid-template-columns:minmax(0,1fr);row-gap:8px}.x-stl-n{font-size:clamp(40px,12vw,52px)}}

.x-cg-fig .ph{aspect-ratio:21/8;border-radius:clamp(14px,1.4vw,22px)}
.x-cg-fig img{object-position:72% 50%}   /* 2026-11-03: 소품은 오른쪽, 왼쪽 아래는 흰 제목 판 자리 (휴대폰 4:3 에서도 소품 쪽) */
.x-cg-hd{position:relative;z-index:1;width:min(560px,100% - 2 * clamp(16px,3vw,48px));margin:clamp(-120px,-8vw,-64px) 0 0 clamp(16px,3vw,48px);padding:clamp(24px,2.8vw,44px);background:#fff;border-top:2px solid var(--brown);box-shadow:0 34px 70px -40px rgba(98,75,51,.45)}
.x-cg-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(26px,2.8vw,44px) clamp(20px,2.4vw,40px);margin-top:clamp(36px,4vw,60px)}
.x-cg-l li{padding-top:14px;border-top:1px solid var(--ink)}
.x-cg-l .x-ca-n{font-variant-numeric:lining-nums}
.x-cg-l b{display:block;margin-top:6px;font-size:17px}
.x-cg-l p{margin-top:6px;font-size:15px;line-height:1.65;color:#4a4039}
.x-caution.v-d .x-ca-risk,.x-caution.v-e .x-ca-risk,.x-caution.v-g .x-ca-risk{margin-top:clamp(28px,3vw,48px)}
.x-caution.v-d .x-ca-risk ul{columns:2;column-gap:44px}
.x-caution.v-d .x-ca-risk li{break-inside:avoid}
@media (max-width:1023px){.x-cg-l{grid-template-columns:repeat(2,minmax(0,1fr))}.x-cg-fig .ph{aspect-ratio:16/9}}
@media (max-width:767px){.x-caution.v-d .x-ca-risk ul{columns:1}}
@media (max-width:599px){.x-cg-l{grid-template-columns:minmax(0,1fr)}.x-cg-fig .ph{aspect-ratio:4/3}.x-cg-hd{width:auto;margin:-40px 10px 0}}

.x-caution.v-e .x-ca-en,.x-caution.v-g .x-ca-en{font-size:clamp(34px,3.4vw,48px)}
.x-caution.v-e .x-ca-fig{margin-top:0}
.x-cx{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin-top:clamp(32px,3.4vw,52px)}
.x-cx-p{padding:clamp(24px,2.8vw,44px);background:#fff;border-top:2px solid var(--brown);box-shadow:0 30px 60px -40px rgba(98,75,51,.45)}
.x-cx-p+.x-cx-p{border-top-color:var(--ink)}
.x-cx-t{display:flex;align-items:baseline;gap:12px;padding-bottom:14px;border-bottom:1px solid #E6D8C5;font-size:18px;font-weight:700}
.x-cx-t span{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(26px,2.4vw,34px);font-weight:600;line-height:1;color:var(--brown)}
.x-cx-p ul{display:grid;gap:18px;margin-top:20px}
.x-cx-p li{display:flex;gap:14px}
.x-cx-p li b{display:block;font-size:16px}
.x-cx-p li p{margin-top:4px;font-size:15px;line-height:1.65;color:#4a4039}
.x-ck.no{color:var(--ink)}
@media (max-width:1023px){.x-caution.v-e .x-ca-fig{max-width:560px}}
@media (max-width:767px){.x-cx{grid-template-columns:minmax(0,1fr)}}

/* caution g — replaces f, a bento grid of white boxes with a photo cell (user «이러한 layout가 별로야~»): title beside the photo, a two-column ruled list */
.x-caution.v-g .x-ca-fig{margin-top:0}
.x-cr-l{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,4.4vw,80px);margin-top:clamp(32px,3.6vw,56px)}
.x-cr-l>li{display:grid;grid-template-columns:clamp(44px,4vw,60px) minmax(0,1fr);gap:clamp(10px,1.2vw,16px);padding:clamp(18px,1.8vw,26px) 0;border-bottom:1px solid #E6D8C5}
.x-cr-l>li:nth-child(-n+2){border-top:2px solid var(--ink)}
.x-cr-l .x-ca-n{font-size:clamp(22px,1.9vw,28px);font-weight:600;line-height:1.1;font-variant-numeric:lining-nums}
.x-cr-l b{display:block;font-size:16.5px}
.x-cr-l p{margin-top:6px;font-size:15px;line-height:1.65;color:#4a4039}
@media (max-width:1023px){.x-caution.v-g .x-ca-fig{max-width:560px}}
@media (max-width:767px){.x-cr-l{grid-template-columns:minmax(0,1fr)}.x-cr-l>li:nth-child(2){border-top:0}}
/* intro_ed with four numbers (원데이미백): 2 × 2 on the photo — four columns are too narrow for «1064nm» */
.x-ied-facts.facts:has(>.fact:nth-child(4)){grid-template-columns:1fr 1fr;row-gap:clamp(16px,1.6vw,24px)}
.x-ied-facts.facts:has(>.fact:nth-child(4)) .fact:nth-child(3){border-left:0}
/* 2026-11-02 전체 점검: 휴대폰에서 «함께 보면 좋은 시술» 셋째 카드 사진이 카드 높이의 절반(1023px 규칙 flex:0 0 50%)으로 줄어 아래가 비었다 → 4:3 그대로 (site.css 는 고치지 않음) */
@media (max-width:767px){.rel-list li:last-child .rel-ph{flex:none}}
/* 2026-11-02 전체 점검: 짧은 값·제목의 마지막 낱말 하나가 혼자 둘째 줄로 떨어짐(아쿠아필 «안에», DM여드름모공 «세안», 진정관리 «피부») */
.x-tiles-l span:last-child{text-wrap:pretty}.x-vs-h b{text-wrap:balance}
/* 2026-11-04 오시는 길 access (사용자 «이러한 내용을 조금 더 직관적으로 보이도록 디자인 해줘. 그리고 구글 지도 프레임 사이즈를 크게»): 큰 구글 지도 + 교통수단 카드 3 */
.x-acc-hd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(20px,4vw,72px);align-items:end}
.x-acc-hd .x-hd{margin:0}
.x-acc-addr{font-size:clamp(17px,16px + .3vw,20px);line-height:1.5}
.x-acc-sub{margin-top:6px;font-size:15px;line-height:1.6;color:#6e6257}
.x-acc-btns{display:flex;flex-wrap:wrap;gap:0 10px}
.x-acc-btns .x-btn{margin-top:clamp(14px,1.4vw,20px)}
.x-acc-map{margin:clamp(28px,3vw,44px) 0 0}
.x-acc-fr{height:clamp(360px,40vw,560px);border-radius:16px;overflow:hidden;background:#EEF0F2;box-shadow:0 30px 60px -40px rgba(98,75,51,.55),0 0 0 1px #E6D8C5}
.x-acc-fr iframe{display:block;width:100%;height:100%;border:0}
.x-acc-map figcaption{margin-top:10px;font-size:14px;color:#8a7d72;text-align:center}
.x-acc-ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,1.8vw,26px);margin-top:clamp(26px,3vw,44px)}
.x-acc-w{display:flex;flex-direction:column;gap:16px;padding:clamp(22px,2.2vw,32px);background:#fff;border-top:2px solid var(--brown);border-radius:0 0 14px 14px;box-shadow:0 24px 50px -36px rgba(98,75,51,.6)}
.x-acc-wh{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center}
.x-acc-ic{grid-row:1/3;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#F3EADF;color:var(--brown)}
.x-acc-ic svg{width:32px;height:32px}
.x-acc-en{font-family:'Cormorant',serif;font-style:italic;font-size:16px;line-height:1.1;color:var(--brown)}
.x-acc-wh h3{font-size:clamp(19px,17px + .4vw,22px);font-weight:700;line-height:1.35}
.x-acc-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;font-size:17px;font-weight:700}
.x-acc-no{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff;font-size:15px;font-weight:800}
.x-acc-chip{display:inline-flex;align-items:center;height:28px;padding:0 12px;border:1.5px solid currentColor;border-radius:14px;font-size:14px;font-weight:700}
.x-acc-steps{position:relative;display:grid;gap:10px;padding-left:24px}
.x-acc-steps::before{content:"";position:absolute;left:5px;top:9px;bottom:9px;border-left:2px dotted #D9C6AC}
.x-acc-steps li{position:relative;font-size:15px;line-height:1.55;color:#4a4039}
.x-acc-steps li::before{content:"";position:absolute;left:-24px;top:6px;width:12px;height:12px;box-sizing:border-box;border-radius:50%;background:#fff;border:2px solid var(--brown)}
.x-acc-steps li:last-child::before{background:var(--point);border-color:var(--point)}
.x-acc-stop+.x-acc-stop{padding-top:14px;border-top:1px solid #EFE5D8}
.x-acc-sn{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:15px;font-weight:700;color:#2a2420}
.x-acc-sid{padding:1px 8px;border-radius:6px;background:#F4F1EC;font-size:13px;font-weight:600;color:#6e6257;font-variant-numeric:tabular-nums}
.x-acc-rt{display:flex;align-items:flex-start;gap:8px;margin-top:8px;font-size:15px;line-height:1.55}
.x-acc-kind{flex:none;display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:12px;color:#fff;font-size:13px;font-weight:700}
.x-acc-rt span:last-child{padding-top:1px;font-weight:600;color:#2a2420;font-variant-numeric:tabular-nums}
.x-acc-lead{font-size:15px;line-height:1.55;color:#4a4039}
.x-acc-search{display:grid;gap:8px}
.x-acc-search li{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 16px;border:1px solid #E1D3C0;border-radius:22px;background:#FBF7F1;font-size:15px;font-weight:700;color:#2a2420}
.x-acc-search svg{flex:none;width:16px;height:16px;color:var(--brown)}
.x-acc-checks{display:grid;gap:8px}
.x-acc-checks li{display:flex;gap:8px;font-size:15px;line-height:1.55;color:#4a4039}
.x-acc-checks .x-ck{flex:none;width:18px;height:18px;margin-top:3px;color:var(--brown)}
.x-acc-note{margin-top:auto;font-size:13px;line-height:1.55;color:#8a7d72}
@media (max-width:1023px){.x-acc-hd{grid-template-columns:1fr;align-items:start}.x-acc-ways{grid-template-columns:1fr}}
@media (max-width:767px){.x-acc-fr{height:auto;aspect-ratio:1/1}}

/* ───── 정책·비급여·언론보도 11쪽 (2026-11-04 사용자 «1번 -> 현재 디자인으로 페이지 구성해줘» — 옛 디자인으로 남은 푸터 정책 4쪽과 언론보도 게시판) ───── */
/* 언론보도: 목록은 이벤트 카드(.x-ev-l .ecard), 글은 이벤트 글 틀(.x-evv). 포스터는 통째로(contain), 병원 사진(img.cv)은 칸을 채운다 */
.x-press .ec-ph{aspect-ratio:4/3;background:#F7F1E8}
.x-press .ec-ph img.cv{object-fit:cover}
.x-evv-ph.nat{aspect-ratio:auto;background:none}
.x-evv-ph.nat img{height:auto;object-fit:contain}
.x-prv{align-items:start}
/* 정책 탭(푸터 링크와 같은 순서, 지금 문서 = 빨간 포인트) */
.x-pol{margin-bottom:clamp(32px,3.6vw,52px)}
.x-pol ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.x-pol a{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid #E1D5C6;border-radius:999px;background:#fff;color:#4B4036;font-size:15px;font-weight:500;transition:border-color .2s,color .2s}
.x-pol a:hover{border-color:var(--brown);color:var(--ink)}
.x-pol a[aria-current]{border-color:var(--point);color:var(--point);font-weight:600}
/* 약관·개인정보처리방침·환자의 권리장전(.x-lg — .x-doc 는 원장 섹션이 쓴다): 왼쪽 목차(1024 이상 따라 내려옴) + 읽는 칸 하나 */
.x-lg-in{max-width:1120px;margin-inline:auto}
.x-lg-in.has-toc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:start}
.x-lg-toc{position:sticky;top:110px;padding:22px 20px 14px;background:#FBF7F1;border-top:2px solid var(--brown)}
.x-lg-tt{font-size:15px;font-weight:600;line-height:1.5;color:var(--ink)}
.x-lg-tl{display:flex;flex-direction:column;margin-top:10px}
.x-lg-tl a{padding:8px 0;border-top:1px solid #E9DFD3;font-size:14px;line-height:1.5;color:#5E5246}
.x-lg-tl a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.x-lg-b{max-width:820px;font-size:16px;line-height:1.8;color:#3d342d;word-break:keep-all;overflow-wrap:anywhere}
.x-lg-in:not(.has-toc) .x-lg-b{margin-inline:auto}
.x-lg-lead{padding-bottom:clamp(24px,2.6vw,36px);border-bottom:1px solid #E6DCCF}
.x-lg-lead p+p{margin-top:12px}
.x-lg-p{padding-top:clamp(30px,3.2vw,46px);scroll-margin-top:110px}
.x-lg-p:first-child{padding-top:0}
.x-lg-h{padding-bottom:12px;border-bottom:1px solid #E6DCCF;font-size:clamp(20px,1.6vw,24px);font-weight:700;line-height:1.45;color:var(--ink)}
.x-lg-it{margin-top:24px}
.x-lg-it h3{font-size:17px;font-weight:600;line-height:1.5;color:#6F5434}
.x-lg-b p{margin-top:8px}
.x-lg-b .x-lg-sub{margin-top:18px;font-weight:600;color:var(--ink)}
.x-lg-l{margin-top:8px}
.x-lg-l li{margin-top:4px;padding-left:1.4em;text-indent:-1.4em}
.x-lg-l li.s{padding-left:2.8em}
.x-lg-end{margin-top:clamp(34px,3.6vw,52px);padding:20px 24px;background:#FBF7F1;border-top:2px solid var(--brown)}
.x-lg-end>:first-child{margin-top:0}
@media (max-width:1023px){.x-lg-in.has-toc{grid-template-columns:minmax(0,1fr)}.x-lg-toc{position:static}.x-lg-tl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}}
@media (max-width:767px){.x-lg-tl{grid-template-columns:minmax(0,1fr)}.x-lg-b{font-size:15px}.x-pol a{padding:0 16px;font-size:14px}}
/* 비급여 고지: 법 문장 상자 + 분류 탭·검색 + 옛 표 11칸(휴대폰은 행마다 카드, 빈 칸은 숨김) */
.x-np-intro{max-width:960px;margin:clamp(22px,2.4vw,32px) auto 0;padding:clamp(20px,2.4vw,30px);background:#FBF7F1;border-top:2px solid var(--brown);font-size:15px;line-height:1.75;color:#4a4039;word-break:keep-all}
.x-np-intro p+p{margin-top:8px}
.x-np-ctl{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;max-width:1280px;margin:clamp(34px,3.6vw,52px) auto 0}
.x-np-tabs{display:flex;flex-wrap:wrap;gap:8px}
.x-np-tab{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid #E1D5C6;border-radius:999px;background:#fff;color:#4B4036;font:inherit;font-size:15px;cursor:pointer;transition:border-color .2s,color .2s}
.x-np-tab:hover{border-color:var(--brown)}
.x-np-n{font-size:13px;color:#7a6d63}
.x-np-tab[aria-pressed=true]{border-color:var(--point);color:var(--point);font-weight:600}
.x-np-tab[aria-pressed=true] .x-np-n{color:var(--point)}
.x-np-s{display:flex;flex:1 1 300px;max-width:440px;height:46px;border:1px solid #D9CBB9;border-radius:999px;background:#fff;overflow:hidden}
.x-np-s input{flex:1;min-width:0;padding:0 20px;border:0;background:none;font:inherit;font-size:15px;color:var(--ink)}
.x-np-s input::placeholder{color:#7a6d63}
.x-np-s button{flex:none;padding:0 22px;border:0;background:var(--ink);color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.x-np-tw{max-width:1280px;margin:20px auto 0;overflow-x:auto}
.x-np-t{width:100%;border-collapse:collapse;border-top:2px solid var(--brown);background:#fff;font-size:14px;line-height:1.5;text-align:center;word-break:keep-all}
.x-np-t th{padding:12px 8px;border-bottom:1px solid #E1D5C6;background:#F7F1E8;font-weight:600;color:var(--ink)}
.x-np-t thead tr+tr th{font-size:13px;font-weight:500}
.x-np-t td{padding:14px 8px;border-bottom:1px solid #EDE5DA;color:#4a4039}
.x-np-t .x-np-nm{text-align:left;font-weight:600;color:var(--ink)}
.x-np-t .x-np-c{font-weight:600;color:var(--ink);white-space:nowrap}
.x-np-t tr[hidden]{display:none}
.x-np-empty td{padding:40px 8px;color:#7a6d63}
@media (max-width:1023px){   /* 2026-11-04 교정: 768–1023px 표 칸이 좁아 «코|드»처럼 낱말 가운데가 끊겼다 → 카드 모양을 1023px 까지 */
  .x-np-ctl{display:block}.x-np-tabs{align-items:center}.x-np-s{max-width:none;margin-top:14px}.x-np-s input{width:100%}   /* a wrapping column flex stretched the pills to the search box's width */
  .x-np-tw{overflow:visible}
  .x-np-t{display:block;border-top:0;background:none;text-align:left}
  .x-np-t thead{display:none}
  .x-np-t tbody{display:grid;gap:12px}
  .x-np-t tr{display:flex;flex-direction:column;padding:16px 18px 10px;background:#fff;border-top:2px solid var(--brown);box-shadow:0 18px 40px -32px rgba(98,75,51,.5)}
  .x-np-t tr[hidden]{display:none}
  .x-np-t td{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:0;text-align:right}
  .x-np-t td::before{content:attr(data-k);flex:none;font-size:13px;color:#7a6d63;text-align:left}
  .x-np-t td[data-e]{display:none}
  .x-np-t td[data-k="분류"]{order:-2;padding:0;font-size:13px;color:#6F5434}
  .x-np-t .x-np-nm{order:-1;margin-bottom:4px;padding:2px 0 10px;border-bottom:1px solid #EDE5DA;font-size:17px;text-align:left}
  .x-np-t td[data-k="분류"]::before,.x-np-t .x-np-nm::before,.x-np-empty td::before{content:none}
  .x-np-t .x-np-c{font-size:16px}
  .x-np-empty td{justify-content:center}
}
/* 원장님 소개(s1020)의 언론보도 카드 (2026-11-04 사용자 «언론보도는 원장님 소개 페이지에다가 배치») — 언론보도 목록 카드와 같은 모양, 5장이라 마지막 줄 가운데 */
.x-md .x-ev-g{margin-top:clamp(28px,3vw,44px)}
.x-md .x-ev-l{display:flex;flex-wrap:wrap;justify-content:center}
.x-md .x-ev-l>li{width:calc((100% - 64px)/3)}
.x-md .ecard h3{font-weight:600;line-height:1.45}
.x-md .ecard>a:hover h3{text-decoration:underline;text-underline-offset:3px}
.x-md-v{margin-top:14px;height:40px;padding:0 18px;font-size:14px}
.x-md-more{margin-top:clamp(36px,3.8vw,56px);text-align:center}
@media (max-width:1023px){.x-md .x-ev-l>li{width:calc((100% - 18px)/2)}}
/* 2026-11-04 /ko/ 교정 (사용자 «오타가 있는지, 시술명이 잘 못 표기되어 있는지, 줄바꿈이 가독성이 없는 부분이 있는지 등 다 확인하고 수정해줘»)
   제목은 줄 길이를 고르게 해 끝에 낱말 하나만 남지 않게(«…위한 디엠 / 보톡스»), 목록·칸 글은 마지막 줄에 낱말 하나만 남지 않게.
   경로 링크(«언론|보도»)와 연락처 이름(«WhatsAp|p»)은 낱말 가운데에서 끊지 않는다. 숫자 범위·가운뎃점은 pages.js 가 붙여 둔다. */
main :is(.h2b,h2,h3,h4){text-wrap:balance}
main :is(li,dd,dt,figcaption,td,th,summary,blockquote){text-wrap:pretty}
.crumb a,.x-ct-cn b{white-space:nowrap}
/* 보유장비 시술 정보 표(768–1023px): 시간 칸이 좁아 «30–9|0분»처럼 숫자 가운데가 끊겼다 → 칸이 넓어지고 표가 옆으로 밀린다(표는 원래 가로 스크롤) */
.x-mx th,.x-mx td{overflow-wrap:normal}
/* 숫자 카드 «20–40분»: 휴대폰에서 단위가 다음 줄로 떨어졌다 → 슈링크(.pg-s2070)와 같은 처리 */
@media (max-width:599px){.pg-s6030 .x-st-n{font-size:clamp(30px,9vw,40px);white-space:nowrap}}

/* 2026-11-05 체크리스트 09: 보톡스 제품 카드(.x-prod, renderer products) — 다른 병원 제품 카드(제품 사진 + 원산지·제조사·타입·특징 줄)를 본뜸.
   카드 모양은 용도별 카드(.x-rt)와 같다(흰 바탕, 위쪽 갈색 줄). 제품 사진(.x-pd-ph)은 카드 위. 섹션 사진(.x-pd-fig)을 쓰면 1024px 이상에서 왼쪽 */
.x-pd-in{display:grid;gap:clamp(20px,3vw,40px);max-width:1180px;margin-inline:auto}
.x-pd-fig .ph{display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden}
.x-pd{list-style:none;display:grid;gap:clamp(16px,2vw,24px)}
.x-pd-c{display:flex;flex-direction:column;background:#fff;border-top:2px solid var(--brown);border-radius:0 0 12px 12px;box-shadow:0 24px 50px -36px rgba(98,75,51,.6);overflow:hidden}
.x-pd-ph{display:block;aspect-ratio:4/3;border-bottom:1px solid #EFE5D8;background:#fff}
.x-pd-ph img{width:100%;height:100%;object-fit:contain}
.x-pd-tx{padding:clamp(22px,2.2vw,32px) clamp(22px,2.4vw,34px)}
.x-pd-en{display:flex;align-items:baseline;gap:12px;font-family:'Cormorant',serif;font-style:italic;font-weight:600;font-size:clamp(18px,16.5px + .4vw,22px);color:var(--brown)}
.x-pd-en span{font-style:normal;font-weight:500;font-size:15px;letter-spacing:.12em;color:#8a7d72}
.x-pd-c h3{margin:2px 0 12px;font-size:clamp(20px,18px + .5vw,25px);font-weight:700;line-height:1.4}
.x-pd-l{border-top:1px solid #EFE5D8}
.x-pd-r{display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid #EFE5D8;font-size:15px;line-height:1.65}
.x-pd-r dt{font-weight:700;color:var(--brown)}
.x-pd-r dd{color:#4a4039;word-break:keep-all}
@media (min-width:768px){.x-pd-in:not(.has-fig) .x-pd{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.x-pd-in.has-fig{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center}}

/* 2026-11-05 체크리스트 17: 의료진 소개 — 대표원장 자필 서명(.x-pf-sign, renderer profile 의 sign, 투명 바탕 그림, 획을 굵게 다듬음).
   사용자 11-05 «이 위치에 이쁘게»: 원장 사진 왼쪽 아래 모서리에 걸쳐 놓는다. 사진(figure)의 등장 효과가 clip-path 로 바깥을 자르므로
   서명은 figure 밖 감싸개(.x-pf-phw)에 두고, 사진이 따라 내려오는 sticky 도 감싸개로 옮긴다 */
.x-pf-phw{position:sticky;top:calc(var(--hdh) + 36px);align-self:start}
.x-pf-phw .x-pf-ph{position:relative;top:auto}
.x-pf-sign{position:absolute;left:clamp(-56px,-3.2vw,-24px);bottom:clamp(-44px,-3vw,-22px);width:min(88%,460px);z-index:2;pointer-events:none}
.x-pf-sign img{display:block;width:100%;height:auto}
@media (max-width:1023px){
  .x-pf-phw{position:relative;top:auto;width:100%;max-width:460px;margin-inline:auto}
  .x-pf-phw .x-pf-ph{max-width:none}
  .x-pf-sign{left:-10px;bottom:-22px;width:80%}
}

/* 2026-11-05 체크리스트 18: 의료진 소개 첫 부분의 강조 띠(.x-call, renderer callout) — «대표원장이 영어로 직접 진료 · 상담합니다».
   가운데 정렬, 큰 제목(강조 글자는 대표원장 이름과 같은 금빛 그라데이션), 아래 칩 */
.x-call{padding:clamp(48px,6vw,84px) 0}
.x-cl-in{max-width:880px;margin-inline:auto;text-align:center}
.x-cl-en{display:inline-flex;align-items:center;gap:14px;font-family:'Cormorant',serif;font-weight:600;font-size:clamp(15px,1.2vw,18px);letter-spacing:.22em;color:var(--brown)}
.x-cl-en::before,.x-cl-en::after{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.x-cl-h{margin-top:12px;font-size:clamp(28px,22px + 1.8vw,48px);font-weight:700;line-height:1.35;color:var(--ink);word-break:keep-all}
.x-cl-h em{font-style:normal;background:linear-gradient(100deg,#B48A52,#8A6B45 55%,#B48A52);-webkit-background-clip:text;background-clip:text;color:transparent}
.x-cl-b{margin-top:14px;font-size:clamp(15px,1.1vw,17px);line-height:1.75;color:rgba(34,34,34,.78);word-break:keep-all}
.x-cl-b + .x-cl-b{margin-top:4px;color:rgba(34,34,34,.6)}
.x-cl-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px;list-style:none}
.x-cl-chips li{padding:7px 16px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px rgba(116,93,68,.28);font-size:14px;font-weight:600;color:var(--brown2)}

/* 2026-11-05 체크리스트 19: 의료진 소개 증명서를 옆으로 넘기는 슬라이드로(.x-certs-sl, certs 의 slide: true).
   카드 틀(.x-ce figure)은 그대로, 줄(.x-ce)을 레일(.x-rl-t, pages.js [data-rail])로 바꾼다. 레일 카드의 흰 바탕·그림자는 figure 가 이미 갖고 있어 li 쪽은 끈다 */
.x-certs-sl .x-ce.x-rl-t{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,26vw,330px);gap:20px;flex-wrap:nowrap;justify-content:start;margin-top:0;padding:4px 2px 22px}
.x-certs-sl .x-ce.x-rl-t > li{flex:none;background:none;border:0;box-shadow:none;border-radius:0;overflow:visible}
@media (max-width:767px){.x-certs-sl .x-ce.x-rl-t{grid-auto-columns:76%}}

/* 2026-11-05 areamap (보톡스 용도별, 사용자 «정보가 너무 없어 … 부위 설명하는 이미지도»): 묶음마다 아치형 모델 사진 + 점선 부위 + 번호 이름표,
   옆에 부위 카드(같은 사진을 그 부위로 확대한 그림 · 번호 · 이름 · 영어 이름 · 설명). 짝수 묶음은 사진이 오른쪽. PC 에서 사진은 따라 내려온다 */
.x-am-g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4.4vw,72px);align-items:start;margin-top:clamp(44px,5vw,80px);scroll-margin-top:24px}
.x-am-g + .x-am-g{padding-top:clamp(44px,5vw,80px);border-top:1px solid #EFE5D8}
.x-am-g.rev .x-am-fig{order:2}
@media (min-width:1024px){.x-am-fig{position:sticky;top:calc(var(--hdh) + 30px)}}
.x-am-map{position:relative;border-radius:min(46%,300px) min(46%,300px) 22px 22px / min(38%,300px) min(38%,300px) 22px 22px;overflow:hidden;box-shadow:0 30px 60px -38px rgba(98,75,51,.55)}
.x-am-map picture,.x-am-map img{display:block;width:100%;height:auto}
.x-am-z{fill:none;stroke:#7A5130;stroke-width:var(--sw);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0 calc(var(--sw) * 2.4)}
svg.x-am-z{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.x-am-pin{position:absolute;display:flex;align-items:center;gap:6px;transform:translate(-17px,-50%);pointer-events:none}
.x-am-pin b{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.45),0 6px 14px -6px rgba(42,36,32,.5);font-family:'Cormorant',serif;font-size:19px;font-weight:600;color:var(--brown2)}
.x-am-pin i{padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.95);box-shadow:0 6px 14px -8px rgba(42,36,32,.5);font-style:normal;font-size:14px;font-weight:700;line-height:1.3;color:var(--ink);white-space:nowrap}
.x-am-tx h3{margin:2px 0 10px;font-size:clamp(22px,19px + .6vw,28px);font-weight:700;line-height:1.4}
.x-am-tx .body{font-size:15.5px;line-height:1.75}
.x-am-tx > .body + .body{margin-top:8px}
.x-am-l{display:flex;flex-direction:column;gap:12px;margin-top:clamp(20px,2vw,28px)}
.x-am-a{display:flex;gap:clamp(14px,1.6vw,22px);align-items:flex-start;padding:clamp(12px,1.2vw,16px);border-radius:14px;background:#fff;box-shadow:0 0 0 1px #F0E6D9,0 18px 36px -30px rgba(98,75,51,.5)}
.x-am-th{flex:none;width:clamp(116px,12vw,170px);aspect-ratio:4/3;height:auto;border-radius:10px;background:#F4EEE6}
.x-am-at{min-width:0;padding-top:2px}
.x-am-an{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px}
.x-am-an b{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--brown2);font-size:14px;color:#fff}
.x-am-an span{font-size:clamp(17px,16px + .3vw,19px);font-weight:700;color:var(--ink)}
.x-am-an i{font-family:'Cormorant',serif;font-style:normal;font-weight:600;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:#a08467}
.x-am-a .body{font-size:15px;line-height:1.7;color:#4a4039}
.x-am-a .body + .body{margin-top:4px}
@media (max-width:1023px){.x-am-g{grid-template-columns:minmax(0,1fr)}.x-am-g.rev .x-am-fig{order:0}.x-am-fig{width:min(100%,460px);margin:0 auto}}
@media (max-width:599px){.x-am-a{gap:12px}.x-am-th{width:96px}.x-am-a .body{font-size:14.5px}.x-am-pin b{width:28px;height:28px;font-size:16px}.x-am-pin i{padding:3px 9px;font-size:12.5px}}

/* 2026-11-05 체크리스트 14 (사용자 «해당 페이지로 바로 이동할 수 있는 버튼 추가»): 카드(.x-cd) 아래 «○○ 보기 →» 버튼 — sections.cards 의 go.
   카드 높이가 같을 때 버튼이 카드 맨 아래에 나란히 오게 하고, 마우스를 올리면 메뉴와 같은 갈색 상자로 */
.x-cd > li:has(.x-cd-gos) .x-cd-tx{flex:1;display:flex;flex-direction:column}
.x-cd-gos{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:18px}
.x-cd-go{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid rgba(138,107,69,.45);border-radius:999px;font-size:14px;font-weight:700;line-height:1.4;color:#6F5434;transition:background-color .2s,border-color .2s,color .2s}
.x-cd-go .dv-ar{width:14px;transition:transform .3s}
.x-cd-go:is(:hover,:focus-visible){background:var(--brown);border-color:var(--brown);color:#fff}
.x-cd-go:is(:hover,:focus-visible) .dv-ar{transform:translateX(3px)}
