:root{font-family:var(--font-body);color:#1a1a1a;background:white;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:white;max-width:none;min-height:100vh;margin-inline:auto}
a{color:inherit;text-decoration:none}
/* 한글을 낱말 중간에서 끊지 않는다(«개인정/보는»). 세 브랜드 공통 · 한국어 쪽만 — 일본어·중국어는 글자 사이에서 끊어야 줄이 넘치지 않는다. 긴 낱말은 overflow-wrap 이 받는다 */
html[lang=ko] body{word-break:keep-all;overflow-wrap:break-word}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
header{height:70px;display:flex;align-items:center;gap:20px;padding:0 26px;border-bottom:1px solid #efefef;flex-wrap:wrap}
.wordmark{font-size:var(--fs-20);font-weight:800;letter-spacing:2px;color:var(--accent)}
nav{display:flex;gap:20px;margin-left:auto;font-size:var(--fs-14)}
h1{font-size:var(--fs-24);line-height:1.3}
h2{font-size:var(--fs-24);line-height:1.35}
h3{font-size:var(--fs-16);line-height:1.5;margin:0 0 8px}
p{line-height:var(--lh-body);white-space:pre-line;overflow-wrap:anywhere}
.banners{position:relative;background:#535353;color:white}
.hero{position:relative;height:min(85vh,560px);overflow:hidden}
.hero[hidden]{display:none}
.hero>img,.hero>picture>img,.hero>video{width:100%;height:100%;object-fit:cover}
.hero>picture{display:contents}/* TW-41 모바일 배너 파일 — <picture> 는 상자를 만들지 않고 안의 img 가 .hero 를 채운다 */
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#1a1a1a99,#1a1a1a11);pointer-events:none}.hero-copy{position:absolute;z-index:1;bottom:68px;left:26px;right:26px;max-width:none}
.hero-copy h2{/* 히어로 카피 크기는 원문 미정(체계에 없는 장식 글자) */font-size:32px;text-transform:uppercase;white-space:pre-line}
.hero-copy p{font-size:var(--fs-14)}
.section{padding:48px 26px 64px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}
.section-heading h2{margin:0}
.section-heading>a{font-size:var(--fs-14)}
.eyebrow{color:var(--accent);font-size:var(--fs-12);letter-spacing:2px;font-weight:700}
.package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.package-card{border-bottom:1px solid #efefef;overflow:hidden}
.package-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.package-card>div{padding:20px 0}
.package-card p{color:#777;font-size:var(--fs-14)}
.detail-link{font-size:var(--fs-13);color:var(--accent)}
.detail-heading{padding:32px 0}
.detail-image{width:100%;height:auto}
.detail-section{padding:24px 0;border-bottom:1px solid #efefef}
.price-row{display:flex;justify-content:space-between;gap:24px;padding:20px 0}
.price-row strong,.price-row del{display:block;text-align:right;white-space:nowrap}
.price-row strong{color:var(--accent)}
.price-row del{font-size:var(--fs-13);color:#777}
footer{padding:40px 26px;background:#535353;color:white}
footer p{font-size:var(--fs-12);color:#d9d9d9}
.empty{padding:48px 24px;text-align:center;color:#777;word-break:keep-all;overflow-wrap:anywhere}
.package-grid>.empty,.resource-grid>.empty{grid-column:1/-1}
.event-grid>.empty{grid-column:1/-1}
#content.event-detail>h1{padding:0 24px;text-align:center}
.preview-note{padding:12px;background:#ffead2;font-size:var(--fs-14);text-align:center}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
form{display:flex;gap:12px;align-items:center;margin:24px 0}
button,select{font:inherit;padding:9px 15px;border:1px solid #d9d9d9;background:white;border-radius:var(--radius-button);cursor:pointer}
img{max-width:100%}
@media(max-width:640px){header{height:auto;min-height:64px;padding:14px 20px;gap:12px}
.wordmark{font-size:var(--fs-16)}
header>span{font-size:12px}
nav{gap:16px}
.hero{height:auto;aspect-ratio:9/16;max-height:85vh}
.hero-copy h2{font-size:26px}
.section{padding:32px 20px 48px}
.package-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}
h1{font-size:var(--fs-24)}
.package-card h3{font-size:16px}
.price-row{flex-direction:column;gap:8px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}
}


.categories{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 28px}
.categories a{padding:8px 12px;border:1px solid #efefef;border-radius:4px;font-size:var(--fs-14)}
.categories a[aria-current=page]{color:white;background:var(--accent);border-color:var(--accent)}


body{position:relative}
.wordmark img{width:114px;display:block;filter:brightness(0)}

header nav{flex-wrap:wrap;gap:12px 18px}
header{height:auto;min-height:70px;padding-block:16px}
header nav a{white-space:nowrap}
.tour-grid,.resource-grid,.post-grid{display:grid;gap:24px}.tour-grid figure{margin:0;min-width:0}
.tour-grid img,.resource-grid img{width:100%;height:auto}
.post-grid img,.post-grid video,.resource-grid video{width:100%;height:auto}
.fee-table{max-width:100%;overflow-x:auto}
.fee-table table{border-collapse:collapse;width:100%;font-size:var(--fs-13)}
.fee-table th,.fee-table td{padding:14px;border:1px solid #e4e8e5;white-space:nowrap;text-align:left}
.fee-table th{background:#f4f6f4}
.fee-table caption{text-align:left;padding:12px 0;line-height:1.6}
.public-faq{padding:16px 0;border-bottom:1px solid #e4e8e5}
.public-faq summary{cursor:pointer;line-height:1.7}
.rich-content{overflow-wrap:anywhere;line-height:var(--lh-body)}
.rich-content img,.rich-content video{max-width:100%;height:auto}
.rich-content table{display:block;max-width:100%;overflow-x:auto}
.rich-content a{text-decoration:underline;text-underline-offset:2px}
.rich-content .ql-indent-1{margin-inline-start:2em}
.rich-content .ql-indent-2{margin-inline-start:4em}
.rich-content .ql-indent-3{margin-inline-start:6em}
.rich-content .ql-indent-4{margin-inline-start:8em}
.rich-content .ql-indent-5{margin-inline-start:10em}
.rich-content .ql-indent-6{margin-inline-start:12em}
.rich-content .ql-indent-7{margin-inline-start:14em}
.rich-content .ql-indent-8{margin-inline-start:16em}
.branch-keywords{display:flex;flex-wrap:wrap;gap:10px 18px;padding:0;list-style:none;font-size:var(--fs-12);color:#d9d9d9}


.booking-form{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:22px;padding:24px 0}
.booking-form label{display:grid;gap:10px;min-width:0;font-size:var(--fs-14);font-weight:600}
.booking-form input,.booking-form select{width:100%;min-width:0;padding:12px;border:1px solid #d9d9d9;border-radius:6px;background:white;font:inherit}
.booking-form label>span{font-size:var(--fs-12);font-weight:400;color:#666;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}
.booking-form :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.booking-submit{padding:15px;background:var(--accent);color:white;border-color:var(--accent);font-weight:700}
.booking-alert{padding:18px;background:#fff3ec;color:#923b17;border:1px solid #e6ba9c;border-radius:8px}
/* 카카오 로그인 단추 (TW-33) — 값은 데이뷰 장바구니 시안 .kk 와 같다 */
.kakao-login{display:flex;justify-content:center;align-items:center;width:100%;max-width:420px;height:51px;margin:0 0 16px;border-radius:8px;background:#fee500}.kakao-login img{display:block;max-width:100%;height:auto}
/* 장바구니 예약 진입 창 — 운영 reservation-modal.tsx: 폭 324 · 안쪽 20 · 카카오 이미지 단추 · 밑줄 비회원 예약 52 (TW-33) */
dialog.cart-reserve{width:324px;max-width:calc(100vw - 32px);height:fit-content;max-height:none;margin:auto;padding:20px;border-radius:16px;overflow:visible}
.cart-reserve-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-18)}.cart-reserve-head .dialog-close{position:static}
.cart-reserve-kakao{display:block;width:100%;margin:20px 0 4px;padding:0;border:0;background:none;cursor:pointer}.cart-reserve-kakao img{display:block;width:100%;height:auto}
.login-modal-text{margin:20px 0 12px;text-align:center;white-space:pre-line;font-size:var(--fs-14);font-weight:500;line-height:1.45;letter-spacing:-.4px;color:#777}
@media(min-width:640px){dialog.login-modal{width:380px}.login-modal-text{font-size:var(--fs-16);font-weight:400}} /* 운영 login-modal.tsx sm:!w-[380px] · sm:text-font-16-400 (세라미크) */
.cart-reserve-guest{display:flex;justify-content:center;align-items:center;height:52px;font-size:var(--fs-14);font-weight:500;color:#777;text-decoration:underline}
.history-card{margin-top:20px;padding:24px;border:1px solid #e4e8e5;border-radius:12px;overflow-wrap:anywhere}
.history-card dl{display:grid;gap:20px}
.history-card dt{color:#666;font-size:var(--fs-13)}
.history-card dd{margin:8px 0 0;line-height:var(--lh-body)}
.booking-state{display:inline-block;padding:6px 10px;background:#eef3f0;color:#234d3b;border-radius:4px;font-size:var(--fs-12)}


.booking-form [data-contact-type][hidden]{display:none}


.reservation-page>p{margin:18px 0;line-height:var(--lh-body)}
.reservation-section{padding:28px;border:1px solid #e4e8e5;border-radius:12px;min-width:0}
.reservation-section h2{font-size:var(--fs-20);margin:0 0 18px}
.reservation-section>p{line-height:var(--lh-body)}
.reservation-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:end;margin:24px 0}
.reservation-fields>div>button{min-height:46px;padding:12px 18px}
.reservation-help{grid-column:1/-1;margin:-12px 0 0;color:#666;font-size:var(--fs-12);line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}
.booking-form textarea{width:100%;min-width:0;border:1px solid #d9d9d9;border-radius:6px;padding:12px;font:inherit}
.booking-item{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:16px;padding:22px 0;border-bottom:1px solid #e4e8e5;align-items:start}
.booking-item h3{font-size:var(--fs-16);overflow-wrap:anywhere}
.booking-item p{margin-top:10px;font-size:var(--fs-13);color:#666}
.booking-item>button{justify-self:end;padding:9px}
.booking-total{display:flex;justify-content:space-between;gap:20px;margin:24px 0;font-size:var(--fs-16)}
.booking-form .booking-check{display:flex;align-items:flex-start;gap:12px;line-height:var(--lh-body);font-weight:400;margin:18px 0}
.booking-form .booking-check input{flex:none;width:18px;min-height:18px;margin:3px 0}
.reservation-section>.booking-submit{width:100%;padding:16px}
.booking-note{margin:20px 0;font-size:var(--fs-13);line-height:var(--lh-body);color:#666}
.booking-form button:disabled{opacity:.5;cursor:default}
@media(max-width:650px){.reservation-section{padding:20px}
.reservation-fields{grid-template-columns:minmax(0,1fr)}
.booking-item{grid-template-columns:minmax(0,1fr) 72px}
.reservation-section h2{font-size:20px}
}


.event-tabs{margin:24px 0;overflow-x:auto;max-width:100%}
.event-tabs a{white-space:nowrap}
.event-detail .price-row>div{min-width:0}
/* 10-29: 설명이 긴 카드에서 가격·«시술 담기» 칸까지 줄어 가격이 카드 밖으로 나가고 버튼이 두 줄로 깨졌다 — 그 칸은 제 폭을 지키고 설명 칸만 줄인다 */
.event-detail .price-row>div+div{flex:none}
.event-detail .price-row h3{overflow-wrap:anywhere}
.event-note{padding:16px;background:#f5f3ec;border-radius:8px;font-size:var(--fs-13)}
.event-notice{line-height:var(--lh-body)}
.event-notice.notice-red{color:#a82f2f}
.event-notice.notice-blue{color:#24649a}
.event-notice.notice-orange{color:#c2570c}
.event-notice.notice-green{color:#1f7a4d}
@media(max-width:650px){.event-detail .price-row{flex-direction:column;gap:10px}
.event-detail .price-row strong,.event-detail .price-row del{text-align:left}
.event-grid{gap:16px}
.event-grid h3{font-size:16px}
}


body{max-width:none;background:white;font-size:var(--fs-14)}.site-shell{display:block}.main-column{position:relative;min-width:0;width:100%;background:white;padding-bottom:83px;min-height:100vh}
.site-header{position:relative;display:flex;justify-content:space-between;align-items:center;min-height:56px;height:56px;flex-wrap:nowrap;padding:0 26px;gap:10px;background:white;z-index:10}
.wordmark img{width:117px;filter:none}
.header-actions{display:flex;align-items:center;gap:14px;min-width:0}
.header-actions button{background:none;border:0;padding:4px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-12)}
.header-actions>a{font-size:var(--fs-24)}
.section{padding:42px 26px}
.section-heading{margin-bottom:32px}
.section h2{font-size:var(--fs-24);font-weight:600}.eyebrow,.hero-copy h2,.section-heading>h2{font-family:var(--font-display)}
.hero{height:auto;aspect-ratio:9/16;max-height:85vh}
.hero-copy{left:26px;right:26px;bottom:64px;max-width:none}
.hero-copy h2{font-size:32px;font-weight:600;line-height:1.25}
.hero-copy p{font-size:var(--fs-14);line-height:1.5}
.hero::after{background:linear-gradient(270deg,#1a1a1a00,#1a1a1a88),#1a1a1a33}
.home-events{background:white;color:var(--text)}
.home-events .package-card{background:white;color:#1a1a1a;border-radius:12px;border:0}
.home-events .package-card>div{padding:20px}
.package-grid{gap:16px}
.package-card img{display:block;border-radius:8px;aspect-ratio:4/3}
.site-footer{padding:52px 34px;text-align:center;background:#535353;color:#d9d9d9}
.site-footer nav{justify-content:center;flex-wrap:wrap;gap:12px;font-size:var(--fs-12);margin:24px 0}
.site-footer .location-card{font-size:var(--fs-12)}
/* V5 시안 대조(10-28) #17: 하단 탭바 72→83 (모바일·태블릿 ~1279 만 — PC 블록은 맨 끝에서 0px) */
.site-footer p{color:#d9d9d9}.bottom-nav{position:fixed;bottom:0;left:0;right:0;transform:none;width:100%;max-width:none;padding-inline:max(0px,(100% - 600px)/2);height:83px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #efefef;background:white;z-index:20;gap:0;margin:0}
.bottom-nav>a,.bottom-nav>button{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;border:0;border-radius:0;padding:19px 4px 0;font-size:var(--fs-12);color:#535353;background:white;word-break:keep-all;text-align:center}
.bottom-nav span{font-size:var(--fs-24);color:var(--accent)}
.site-dialog{width:min(600px,100vw);height:calc(100dvh - 60px);max-height:100dvh;border:0;margin:0 auto 0;padding:26px;overflow:auto;overscroll-behavior:contain}
.site-dialog::backdrop{background:#0006}
.site-dialog>button{display:block;margin-left:auto}
.site-dialog h2{font-size:var(--fs-20);line-height:1.5}
.menu-grid{display:grid;gap:0;font-size:var(--fs-16);margin-top:24px}
.menu-grid a,.branch-links a{padding:18px;border-bottom:1px solid #efefef;display:block}
.site-search{position:relative;display:flex;margin:20px 0;gap:0}
.site-search input[name=q]{padding:16px 42px 16px 20px;border:1px solid #d9d9d9;border-radius:var(--radius-input);width:100%;font:inherit;min-width:0;background:transparent}
.site-search button{position:absolute;right:6px;border:0;background:none;font-size:var(--fs-24);padding:6px 12px}
.location-card dl{display:grid;gap:12px}
.location-card dl>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:15px}
.location-card dd{margin:0}
.skip-link{position:absolute;left:0;top:-100px;padding:12px;background:white;z-index:30}
.skip-link:focus{top:0}
.primary-button,.soft-button{display:block;text-align:center;padding:15px 20px;border-radius:8px;font-weight:500}
.primary-button{background:var(--accent);color:white}
.soft-button{background:var(--accent-soft);color:var(--accent)}

@media(min-width:640px){
.hero-copy h2{font-size:32px}}

@media(max-width:640px){.hero-copy h2{font-size:24px}
.section{padding:42px 26px}
.section-heading{gap:12px}
.section-heading>a{font-size:12px}
.section-heading h2{font-size:24px}
.header-actions{gap:6px}
.header-actions button{max-width:120px}
.site-header{padding:0 26px}
.site-footer{padding:52px 34px}}

.home-events .event-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin-right:-26px;padding-bottom:8px}
.home-events .event-grid>.empty{flex:1}
.home-events .event-grid>.package-card{flex:0 0 calc(100% - 62px);scroll-snap-align:start}
.site-footer .location-card dl{max-width:350px;margin:20px auto}
.site-header .header-actions a>svg{display:block}
svg.icon{width:24px;height:24px;display:inline-block;vertical-align:middle}
.cart-box>h2{display:flex;align-items:center;gap:12px}
.cart-box>h2 svg{color:var(--accent)}
.cart-body>svg{width:44px;height:44px;color:var(--accent-soft)}
.cart-total p{display:flex;justify-content:space-between;align-items:center}
.cart-total output{font-weight:600;color:var(--accent);font-size:var(--fs-20)}
.hero-copy h2{margin:8px 0 12px}
.hero-copy p{margin:8px 0 12px}

@media(min-width:1280px){.hero-copy{bottom:82px}
.hero-copy h2{font-size:32px}}

.hero{width:100%}
.header-actions button{color:inherit}
.home-events .package-card{border-radius:0}
.home-events .package-card>img{aspect-ratio:1;border-radius:0}
.home-events .package-card>div>p:nth-last-child(3){display:none}

.product-detail>.detail-image{display:block;margin-top:12px;width:100%}
.product-detail>.detail-heading,.product-detail>.dpl>.dpl-left>.dpl-main>.detail-heading{padding:36px 26px}
.product-detail h1{font-size:var(--fs-20);font-weight:600;margin:0 0 8px}
.product-detail .detail-heading>p{color:#777;font-size:var(--fs-14);margin:0 0 20px;line-height:var(--lh-body)}
.product-detail .detail-products{border-top:8px solid #f8f8f8;padding-top:36px}
.detail-products summary{font-size:var(--fs-16);font-weight:600;cursor:pointer;list-style-position:inside}
.detail-products h2{font-size:var(--fs-16);margin:24px 0 0}
.detail-products .price-row{display:block;border:1px solid #efefef;border-radius:8px;padding:20px;margin-top:16px}
.detail-products .price-row h3{font-size:var(--fs-16);font-weight:400}
.detail-products .price-row>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:30px}
.detail-products .price-row strong{font-size:var(--fs-16);font-weight:500}
.add-treatment{border:1px solid var(--accent);color:var(--accent);padding:12px 18px;border-radius:var(--radius-button);font-size:var(--fs-13)}
.detail-body{padding-top:0}
.detail-body h2{font-size:var(--fs-20)}
.site-header{border:0}
.detail-products details>summary::marker{color:var(--accent)}

.about-tabs,.section-tabs{display:flex;overflow-x:auto;gap:20px;padding:20px 26px;margin:0;border-bottom:1px solid #efefef;font-size:var(--fs-14)}
/* 가로 탭 줄은 밀어 넘기기만 두고 회색 스크롤 막대는 숨긴다 — ui-pill-tabs·dpc-tabs·detail-toc 는 이미 숨김, 남은 갈래를 여기 한곳에서 (TW-54) */
.about-tabs,.section-tabs,.primary-categories,.secondary-categories,.event-tabs{scrollbar-width:none}
.about-tabs::-webkit-scrollbar,.section-tabs::-webkit-scrollbar,.primary-categories::-webkit-scrollbar,.secondary-categories::-webkit-scrollbar,.event-tabs::-webkit-scrollbar{display:none}
.section .section-tabs{padding-inline:0}
.about-tabs a,.section-tabs a{white-space:nowrap}
.about-tabs a[aria-current=page]{color:var(--accent)}
.legal-page h1{font-size:var(--fs-24)}
.legal-page h2{font-size:var(--fs-16);margin-top:30px}
.legal-page p{font-size:var(--fs-14);color:#777;line-height:var(--lh-body);white-space:pre-line}
.legal-page>section{padding-bottom:20px;border-bottom:1px solid #efefef}
.pagination{display:flex;justify-content:space-between;gap:20px;padding:24px 0}
.result-group{padding:28px 0}
.result-group .price-row{border-bottom:1px solid #efefef;padding:24px 0}
.result-group .price-row>div{min-width:0}
.result-group h3{overflow-wrap:anywhere}
.result-group .add-treatment{display:inline-block;margin-top:14px}
.search-query{overflow-wrap:anywhere}
.tour-grid figure{scroll-snap-align:start}
.section-tabs a:focus-visible,.about-tabs a:focus-visible{outline-offset:-3px}

.cart-body{min-height:0;overflow:auto}
.cart-body:has(.cart-item){justify-content:flex-start;align-items:stretch}
.cart-body:has(.cart-item)>svg,.cart-body:has(.cart-item)>.soft-button{display:none}
.cart-item{padding:18px 0;border-bottom:1px solid #efefef;min-width:0;color:#1a1a1a}
.cart-item h3{font-size:var(--fs-14);font-weight:500}
.cart-item>div{display:flex;gap:12px;align-items:center}
.cart-item input{width:65px;max-width:100%;padding:8px;border:1px solid #d9d9d9;border-radius:5px;font:inherit}
.cart-item button{font-size:var(--fs-12)}
.cart-item strong{display:block;color:var(--accent);margin-top:12px}
.cart-body>[data-cart-items]{width:100%}
.cart-total [aria-disabled=true]{background:#d9d9d9;color:white;cursor:default}
.cart-total [data-cart-checkout]:hover{text-decoration:none}
.site-dialog .cart-box{height:calc(100% - 50px);padding:0;box-shadow:none;border:0}
.site-dialog .cart-box h2{font-size:var(--fs-20)}
.site-dialog .cart-body{flex:1}.site-dialog .cart-body>[data-cart-status]:empty{display:none}
.cart-total output{margin-left:auto}
.cart-total p{flex-wrap:wrap;gap:4px}

.category-tree details{border-bottom:1px solid #efefef;padding:18px 0}
.category-tree summary{font-weight:600;cursor:pointer;font-size:var(--fs-16)}
.category-tree ul{list-style:none;padding:0}
.category-tree li a{display:block;padding:14px 12px;color:#777}
.primary-categories,.secondary-categories{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;max-width:100%;gap:10px;margin-bottom:12px}
.primary-categories a,.secondary-categories a{flex:none}
.secondary-categories{margin-top:8px;margin-bottom:28px}
.parent-product{font-size:var(--fs-12);color:var(--accent);display:inline-block;margin-bottom:10px}
.pricing-page .result-group>h2{display:none}
.pricing-page .price-row{border:1px solid #efefef;border-radius:var(--radius-card);padding:20px;margin-bottom:16px;display:block}
.pricing-page .price-row>div:last-child{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:20px;gap:12px}
.pricing-page .price-row .add-treatment{margin:0}
.pricing-page h1{font-size:var(--fs-20)}

.clinic-page h1{font-size:var(--fs-24);margin:0 0 24px}
.media-button{display:block;width:100%;padding:0;border:0;background:none;text-align:left;color:inherit;border-radius:0}
.media-button>img{display:block;width:100%;height:auto;border-radius:8px}
.media-button>span{display:block;font-size:var(--fs-13);color:#777;margin-top:16px}
.media-button>strong{display:block;font-size:var(--fs-20);margin-top:8px;font-weight:600}
.tour-section .tour-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px}
.tour-section figure{flex:0 0 100%;scroll-snap-align:start}
.gallery-controls{display:flex;gap:12px;justify-content:flex-end;margin:16px 0 30px}
.site-dialog img,.site-dialog video{max-width:100%;height:auto}
.resource-grid .media-button img{aspect-ratio:1;object-fit:cover}
.site-dialog>button[data-close-dialog]{position:sticky;top:0;z-index:1;background:white}
.primary-categories a[aria-current=page],.secondary-categories a[aria-current=page]{color:white;background:var(--accent)}
[data-cart-add][aria-pressed=true]{background:var(--accent);color:white}


.search-tabs button{border:0;border-radius:0;padding:10px 0;white-space:nowrap;color:#777}
.search-tabs button[aria-pressed=true]{color:var(--accent);border-bottom:2px solid var(--accent)}
/* 탭 건수 알약 — 운영 search-tabs.tsx:64-73 (고른 탭은 브랜드 색, 나머지 회색 · 흰 글자 11px 굵게) */
.search-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:15px;min-height:15px;margin-left:4px;padding:2px 5px;border-radius:999px;background:#d1d1d1;color:#fff;font-size:var(--fs-11);font-weight:700;line-height:calc(var(--fs-11) + 0px);vertical-align:1px}
.search-tabs button[aria-pressed=true] .search-tab-count{background:var(--accent)}
[data-search-group][hidden]{display:none}
.clinic-page>.section{padding-top:26px}
.clinic-page h1,.search-page h1,.pricing-page h1{font-size:var(--fs-20)}
.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.resource-grid .media-button>strong{font-size:var(--fs-16)}
.tour-section>h2{display:none}
.tour-section .tour-grid img{aspect-ratio:16/10;object-fit:cover}


.resource-grid .media-button img{aspect-ratio:3/4}
.tour-grid figcaption{padding-top:16px}

@media(max-width:640px){.resource-grid{grid-template-columns:1fr}
}


.events-page{padding-top:26px}
.events-page h1{font-size:var(--fs-20);margin:0 0 24px}
.events-page .event-tabs{display:flex;flex-wrap:nowrap;gap:8px;margin:0 0 28px;overflow-x:auto;padding-bottom:0}
.events-page .event-tabs a{padding:12px 16px;border:1px solid #d9d9d9;border-radius:8px;color:#777;background:white;font-size:var(--fs-14)}
.events-page .event-tabs a[aria-current=page]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.event-grid{gap:24px 12px}
.event-grid .package-card{border:0}
.event-grid .package-card img{aspect-ratio:1}
.event-grid .package-card>div{padding:12px}
.event-grid h3{font-size:var(--fs-14);font-weight:500;margin:0}
.event-grid p{font-size:var(--fs-12);min-height:16px;margin:3px 0 0}


.event-detail>.detail-image{display:block;width:calc(100% + 20px);max-width:none;margin:20px -10px 0;aspect-ratio:2.2/1;object-fit:cover;object-position:center;background:#d9d9d9}
.event-detail>.detail-heading{padding:32px 0}
.event-detail>.detail-heading h1{font-size:var(--fs-20);color:var(--accent)}
.information-tabs{margin:0 -26px 26px}
.notices-page>.information-tabs{margin:0}
.notices-page>.section{padding-top:26px}
.notices-page h1{font-size:var(--fs-20)}
.equipment-tabs{padding:0;margin:24px 0 0;border:0;gap:12px}
.equipment-tabs button{border:0;white-space:nowrap;color:#777;padding:8px 16px;border-radius:20px}
.equipment-tabs button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}
[data-equipment-category][hidden]{display:none}
.equipment-tabs+.detail-section{padding-top:20px}
.resource-grid article>p{font-size:var(--fs-14);color:#777}
.event-grid strong{display:block;color:var(--accent);font-size:var(--fs-16);margin-top:10px}


.search-page>.site-search{display:none}
.search-page>.search-tabs{margin-top:-26px;padding-top:0}
.search-page .package-grid{grid-template-columns:1fr;gap:16px}
.search-page .package-card{border:1px solid #efefef;border-radius:var(--radius-card);padding:20px}
.search-page .package-card>div{padding:0}
.search-page .package-card h3{font-size:var(--fs-16)}
.search-page .package-card p{font-size:var(--fs-14);color:#777}
.search-page .package-card strong{display:block;color:var(--accent);text-align:right;font-size:var(--fs-16);margin-top:24px}
.search-page .result-group>h2,.search-page #packages>h2{font-size:var(--fs-16)}
.search-page .section-tabs button{font-size:var(--fs-14)}




/* Source c0c14f0c: shared clinic typography and popup geometry. */
html { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }

body { font-size:var(--fs-16); line-height:var(--lh-body); }

.header-actions button { font-size:var(--fs-14); font-weight:500; line-height:calc(var(--fs-14) + 7px); }

.hero-copy>p:first-child { font-weight:500; line-height:20px; margin:0 0 8px; }

.hero-copy h2 { font-weight:700; margin:0 0 16px; }

.hero-copy>p:last-of-type { color:rgb(255 255 255 / 90%); line-height:22.75px; margin:0 0 24px; max-width:500px; }


.home .section h2{ font-size:var(--fs-24); font-weight:600; line-height:calc(var(--fs-24) + 12px); }

.home .section-heading { margin-bottom:32px; align-items:baseline; }

.home .section-heading>a { font-size:var(--fs-12); font-weight:500; line-height:calc(var(--fs-12) + 4px); letter-spacing:1.2px; }

.home .section>h2:only-of-type { margin-top:0; }

.home .section:has(>.section-heading) { padding:60px 24px; }

.home-events .event-grid { margin-right:-24px; gap:16px; }

.home-events .event-grid>.package-card { flex-basis:calc(100% - 36px); }

.home-events .package-card>div { padding:12px; }

.home-events .package-card h3 { font-size:var(--fs-20); font-weight:700; line-height:1.35; color:#000; margin:0; }

.home-events .package-card p { font-size:var(--fs-12); line-height:calc(var(--fs-12) + 6px); color:#777; }



.home .section>h2 { font-family:var(--font-display); }

.cart-box>h2 { font-size:var(--fs-20); font-weight:600; line-height:28px; margin:0; }

.cart-body>[data-cart-status] { font-size:var(--fs-16); font-weight:500; line-height:calc(var(--fs-16) + 8px); }

.cart-body>.soft-button { font-size:var(--fs-14); font-weight:500; line-height:calc(var(--fs-14) + 6px); }

.cart-total p { font-size:var(--fs-13); font-weight:500; line-height:calc(var(--fs-13) + 6.5px); }
.cart-total p small { font-size:var(--fs-12); }

.cart-total .primary-button { height:44px; padding:10px 20px; font-size:var(--fs-16); font-weight:600; line-height:24px; }

.bottom-nav>a,.bottom-nav>button { font-weight:500; line-height:16px; }


.popup-entry { padding:0; }

.site-popups { width:300px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 16px); padding:0; border:0; border-radius:0; overflow:auto; outline:0; background:transparent; color:white; box-shadow:none; }

.site-popups::backdrop { background:rgb(26 26 26 / 60%); }

.popup-toolbar { display:flex; height:40px; align-items:center; justify-content:space-between; }

.popup-toolbar button { padding:0; border:0; background:none; color:white; font-size:var(--fs-14); font-weight:500; line-height:calc(var(--fs-14) + 6px); }

.popup-toolbar [data-close-popups] { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; }

.popup-toolbar svg { width:24px; height:24px; }

.site-popups .popup-slides { height:450px; touch-action:pan-y; }

.site-popups article { width:100%; height:100%; background:#d9d9d9; border-radius:12px; overflow:hidden; }

.site-popups article a { display:block; height:100%; }

.site-popups img { display:block; width:100%; height:100%; max-height:none; object-fit:contain; user-select:none; -webkit-user-drag:none; }

.popup-controls { margin:20px 0 0; height:8px; display:flex; justify-content:center; align-items:center; gap:8px; }

.popup-controls button { width:8px; height:8px; min-width:0; padding:0; border:0; border-radius:99px; background:rgb(255 255 255 / 40%); transition:width .3s,background .3s; }

.popup-controls button[aria-current=true] { width:24px; background:#b2e3f2; }

html.popup-open { overflow:hidden; }

@media(min-width:640px) {
  .home .section h2{ font-size:var(--fs-24); line-height:42px; }
}

@media(min-width:768px) {
  .site-popups { width:430px; }

  .site-popups .popup-slides { height:645px; }
}

@media(min-width:1280px) {
  .home-events .package-card h3 { font-size:20px; }
}

.category-dialog { position:fixed; inset:56px 0 var(--tabbar-height,83px) auto; margin:0; width:100%; max-width:100%; height:auto; max-height:none; padding:0; border:0; color:#1a1a1a; background:white; z-index:19; overflow:hidden; }

.category-browser { height:100%; display:flex; flex-direction:column; }

.category-sidebar { width:160px; flex:none; border-right:1px solid #efefef; overflow:auto; overflow-x:hidden; padding-bottom:20px; scrollbar-width:none; }

.category-sidebar>button { display:block; min-height:52px; width:100%; border:0; border-radius:0; padding:6px 26px; text-align:left; color:#777; font-size:var(--fs-14); font-weight:500; line-height:calc(var(--fs-14) + 7px); word-break:keep-all; transition:transform .3s,background .3s; }

.category-sidebar>button[aria-current=true] { transform:translateX(8px); background:#f8f8f8; color:var(--accent); font-weight:600; }

.category-content { flex:1; min-width:0; overflow:auto; background:white; padding-bottom:20px; }

.category-content [hidden] { display:none; }

.category-content details { border:0; padding:0; }

.category-content summary,.category-nav-row { min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 16px; list-style:none; font-size:var(--fs-14); line-height:normal; font-weight:500; color:#1a1a1a; text-align:left; word-break:keep-all; cursor:pointer; }

.category-content summary::-webkit-details-marker { display:none; }

.category-content summary>span { flex:none; width:16px; color:#777; font:400 var(--fs-16)/1 sans-serif; text-align:right; }

.category-content summary>span::after { content:'+'; }

.category-content details[open]>summary { font-weight:600; }

.category-content details[open]>summary>span::after { content:'—'; }

.category-content details.category-empty>summary>span { display:none; }

.category-content details>[data-category-packages] { display:flex; flex-direction:column; gap:16px; padding:16px; border-block:1px solid #efefef; }

[data-category-packages]>a { font-size:var(--fs-14); font-weight:400; line-height:1.35; color:#535353; word-break:keep-all; }

.category-nav-row>span:last-child { font-size:var(--fs-20); line-height:calc(var(--fs-20) - 4px); }

.category-message { padding:32px 16px; font-size:var(--fs-14); color:#777; text-align:center; }

.category-content [aria-busy=true] { opacity:.6; }

html.category-open { overflow:hidden; }

@media(min-width:1280px) { .category-sidebar { width:33.3333%; } }
body:has(.category-dialog[open]) .site-header { background:white; color:#1a1a1a; }


body:has(.category-dialog[open]) .bottom-nav [data-nav-home][aria-current=page],body:has(.category-dialog[open]) .bottom-nav [data-nav-home][aria-current=page] svg { color:#777; }



body { color:#000; }
.home .section>h2,.product-detail h1,.clinic-page h1,.search-page h1,.pricing-page h1,.events-page h1 { color:#1a1a1a; }


.events-page h1,.pricing-page h1,.clinic-page h1 { font-size:var(--fs-20); font-weight:600; line-height:calc(var(--fs-20) + 10px); }






:root { --accent-wash:#e9f5f8; }



.pricing-page .primary-categories { gap:8px; }

.pricing-page .primary-categories a { display:inline-flex; align-items:center; height:44px; flex:none; padding:0 12px; border:1px solid #d9d9d9; border-radius:var(--radius-pill); color:#535353; background:white; font-size:var(--fs-14); font-weight:500; line-height:21px; }

.pricing-page .primary-categories a[aria-current=page] { background:var(--accent-wash); border-color:var(--accent); color:var(--accent); }

.pricing-page .secondary-categories a { display:inline-flex; align-items:center; height:36px; flex:none; padding:0 16px; border-radius:99px; color:#535353; background:transparent; font-size:var(--fs-14); font-weight:500; line-height:21px; }

.pricing-page .secondary-categories a[aria-current=page] { color:var(--accent); background:var(--accent-wash); }

.pricing-page .price-row h3 { font-size:var(--fs-16); font-weight:600; line-height:calc(var(--fs-16) + 7.2px); color:#1a1a1a; }

.pricing-page .price-row p { font-size:var(--fs-12); font-weight:500; line-height:calc(var(--fs-12) + 6px); color:#777; }

.pricing-page .price-row strong { font-size:var(--fs-16); font-weight:700; line-height:calc(var(--fs-16) + 8px); }

.pricing-page .price-row .add-treatment { min-width:87px; height:42px; padding:10px 12px; text-align:center; font-size:var(--fs-13); font-weight:500; line-height:20px; }

.soft-button,.events-page .event-tabs a[aria-current=page] { background:var(--accent-wash); }

.pricing-page { padding-top:26px; }

.pricing-page h1 { margin:0 0 24px; }

.pricing-page>.site-search,.pricing-page .parent-product { display:none; }
.price-row-link{color:inherit;text-decoration:none}
.price-row-link:hover{color:var(--accent);text-decoration:none}

.pricing-category-title { margin:24px 0 16px; font-size:var(--fs-20); font-weight:600; line-height:calc(var(--fs-20) + 10px); color:#1a1a1a; }

/* Home event cards: source image + information + price form one square-edged card. */
.home-events .event-grid{gap:2px;padding-bottom:0;scrollbar-width:none;position:relative}
.home-events .event-grid::-webkit-scrollbar{display:none}
.home-events .event-grid>.package-card{flex:0 0 calc(100vw - 48px);min-width:0}
.event-image{position:relative;overflow:hidden;aspect-ratio:1}
.event-image>img{width:100%;height:100%;object-fit:cover;display:block}
.home-events .package-card>.event-image{padding:0}
/* V5 13: 홈 이벤트 썸네일 모서리 4px (.package-card img 의 8px 이 안쪽 사진에 걸리던 것) */
.home-events .event-image{border-radius:var(--radius-thumb);overflow:hidden}
.home-events .event-image>img{border-radius:0}
.home-events .package-card>.event-card-info{display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:126px;padding:18px 20px 20px}
.home-events .event-card-info p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;min-height:17px;margin:5px 0 0;font-size:12px;font-weight:500;line-height:1.4;color:#5a5a5a;overflow:hidden}
.event-card-price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.event-card-price>b{font-size:var(--fs-24);font-weight:800;line-height:1;color:var(--accent)}
.event-card-price>span{font-size:var(--fs-12);color:#444}
.home-event-indicators{display:flex;justify-content:center;gap:6px;margin:18px 0 10px;padding:0;overflow:visible}
.home-event-indicators button{width:8px;height:8px;border:0;border-radius:50%;padding:0;background:var(--line);min-width:8px;cursor:pointer}
.home-event-indicators button[aria-current=true]{width:25px;border-radius:3px;background:var(--text)}
.home-event-indicators button:focus-visible{outline:2px solid var(--text);outline-offset:4px}
.events-page .event-card-info{padding:12px}
.events-page .event-card-info p:empty{display:none}
.events-page .event-image{border-radius:var(--radius-thumb) var(--radius-thumb) 0 0}
.events-page .package-card{border-radius:0;border:0}
.event-card-info h3{min-width:0;overflow-wrap:anywhere}
.home-events .event-card-info h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:1280px){.home-events .event-grid>.package-card{flex-basis:380px}
.home-events .package-card>.event-card-info{min-height:136px;padding:20px 24px 22px}
.home-events .event-card-info p{font-size:13px}
.event-card-price>b{font-size:24px}}

.site-search input[name=q]{height:52px;padding:14px 42px 14px 16px;font-size:var(--fs-14)}
.site-search button{display:grid;place-items:center;inset:0 8px 0 auto;padding:0;width:34px;font-size:var(--fs-14)}
.site-search button svg{width:20px;height:20px;color:#777}
.cart-box{padding:26px 0}
.cart-box>h2{padding:0 26px;color:#1a1a1a}
.cart-body{padding:0 26px;color:#535353}
.cart-body .soft-button{font-size:var(--fs-14);font-weight:500;padding:0;min-height:44px;min-width:132px;display:grid;place-items:center}
.cart-total{padding:22px 26px 0}
.cart-total p{margin:0}
.cart-total [data-cart-checkout]{font-size:var(--fs-16);min-height:56px;gap:8px;margin-top:16px}
.site-footer{display:flex;flex-direction:column;align-items:center;gap:32px;padding:52px 34px}
.business-info{width:100%;margin:0}
.site-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0;font-size:var(--fs-13);font-weight:600;line-height:1.45}
.site-footer .copyright{font-size:var(--fs-12);font-weight:500;line-height:1.5;color:#ccc;margin:0}
.clinic-location dl{display:grid;gap:16px;margin:0;line-height:var(--lh-body)}
.clinic-location .location-card dl{margin:0;max-width:none;display:grid;gap:16px}
.clinic-location .location-card dl>div{display:block}
.clinic-location dt{font-size:var(--fs-16);font-weight:600;color:var(--accent);margin-bottom:8px;line-height:calc(var(--fs-16) + 8px)}
.clinic-location dd{font-size:var(--fs-14);font-weight:400;line-height:var(--lh-body);color:#7a7a7a;margin:0;white-space:pre-line}
.clinic-location dd p{margin:0 0 6px;font:inherit;color:inherit}
.location-tabs{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.location-tabs button{font:inherit;border:0;border-bottom:1px solid transparent;background:none;padding:8px;color:#777}
.location-tabs button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);font-weight:600}
.home #content>.section:has(>.clinic-location){padding:64px 26px;background:#f8f8f8}
.home #content>.section:has(>.clinic-location)>h2{margin-bottom:36px}
.back-to-top{position:fixed;bottom:92px;left:calc(50% + min(50vw,300px) - 66px);z-index:21;width:50px;height:50px;border:0;border-radius:50%;background:white;box-shadow:0 4px 12px #0002;display:grid;place-items:center;color:#535353;cursor:pointer}
body:has(dialog[open]) .back-to-top{display:none} /* 떠 있는 버튼(z 21)이 겹창 내용 위에 뜨지 않게 */
.back-to-top svg{width:20px;height:20px}
.site-dialog .dialog-close{border:0;background:transparent;color:#535353;position:absolute;top:16px;right:16px;display:grid;place-items:center;width:32px;height:32px;padding:4px}
.site-dialog .dialog-close svg{width:24px;height:24px}
.site-dialog{border:0;border-radius:16px;padding:32px;box-shadow:0 15px 60px #0003}
.site-dialog h2{font-size:var(--fs-20);margin:12px 0 26px}
.site-dialog::backdrop{background:#0006}.language-popover{position:fixed;inset:64px 12px auto auto;margin:0;width:160px;max-width:calc(100vw - 24px);border:1px solid #efefef;border-radius:8px;padding:16px 10px;box-shadow:0 8px 30px #0002;background:white;z-index:40}
.language-popover .menu-grid{display:flex;flex-direction:column;gap:4px;padding:0;margin:0}
.language-popover a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 16px;min-height:48px;font-size:var(--fs-14);font-weight:600;border:0;border-radius:5px;color:#535353}
.language-popover a[aria-current]{color:var(--accent);background:var(--accent-soft)}
.language-popover a small{font-size:var(--fs-13)}
.language-popover::backdrop{background:transparent}
.branch-dialog .branch-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.branch-dialog .branch-links a{display:block;border:1px solid #efefef;border-radius:8px;padding:16px;font-size:var(--fs-14)}
.consult-dialog .clinic-location{margin-bottom:24px}
.consult-dialog>p{padding:10px 0;border-bottom:1px solid #efefef}
.consult-dialog>a:last-child{display:block;border-radius:8px;background:var(--accent);color:white;text-align:center;padding:14px;margin-top:20px}
.pricing-category-picker{position:relative;margin:0;border-bottom:1px solid #efefef;padding-bottom:14px}
.pricing-category-picker>.pricing-category-expand{position:absolute;right:0;top:-46px;width:32px;height:32px;display:grid;place-items:center;padding:0;list-style:none;border-radius:50%;box-shadow:0 2px 10px #0001;background:white;cursor:pointer;z-index:2}
.pricing-category-picker>.pricing-category-expand::-webkit-details-marker{display:none}
.pricing-category-picker>.pricing-category-expand svg{width:22px;height:22px;transition:transform .2s}
.pricing-category-picker.expanded>summary svg{transform:rotate(180deg)}
.pricing-category-picker:not(.expanded)>nav{display:flex!important}
.pricing-category-picker.expanded>nav{flex-wrap:wrap;overflow:visible}
.pricing-page .primary-categories{margin:14px 0 0;padding:0}
.pricing-page .secondary-picker{padding-top:18px}
.pricing-page .secondary-picker>.pricing-category-expand{top:18px;box-shadow:0 2px 10px #0001}
.pricing-page .secondary-categories{margin:0 42px 0 0;padding:0}
.pricing-page .secondary-categories a{background:var(--accent-soft);color:var(--accent);border:0;font-size:var(--fs-14)}
.pricing-page .price-row p{color:var(--accent);font-size:var(--fs-12)}
.pricing-page .price-row{padding:20px;min-height:138px}
.pricing-page .price-row>div:last-child{gap:14px}
/* 수가표 가격 줄 — 세윤님 11-06 «수가표 가격 위치 왜이래»: 위 320줄 space-between 이 정가(왼쪽 끝)·할인가(카드 한가운데)·담기(오른쪽 끝)로 흩었다.
   수가표는 시안에 없어 운영이 기준(«시안에 없는 건 운영 그대로»): 운영 데이뷰(suwon.daybeauclinic.kr/products/pricing 11-06 GET, PC·390 같음)
   = 정가 윗줄 · 할인율(13px 600 주황)+할인가 아랫줄 왼쪽 붙음(간격 8px) · 시술 담기 오른쪽. 모든 폭에 같은 배치 */
.pricing-page .price-row>div:last-child{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:0;row-gap:2px}
.pricing-page .price-row>div:last-child>del{grid-area:1/1/2/3;text-align:left}
.pricing-page .price-row>div:last-child>.price-rate{grid-area:2/1;margin-right:8px;font-style:normal;font-size:var(--fs-13);font-weight:600;color:var(--accent)}
.pricing-page .price-row>div:last-child>strong{grid-area:2/2;text-align:left}
.pricing-page .price-row>div:last-child>strong:first-child{grid-area:1/1/3/3}
/* 수가표 카드 설명 줄(회색) — 운영 FE origin/prod 4c8a211 procedure-card.tsx:171-178 = 한줄 설명 아래 12px · 12px 회색 #6b6b6b(gray-400). 위 679줄 주황은 한줄 설명 몫 */
.pricing-page .price-row p.price-desc{margin-top:12px;font-size:var(--fs-12);color:#6b6b6b}
/* 이름→한줄 설명 8px — 운영 FE origin/prod 4c8a211 세 브랜드 procedure-card.tsx 모두 <Spacing size={8} /> · 운영 11-06 GET 실측 8px
   (데이뷰 수원 «소분» · 벨리셀 강남 ?category=84 «vat 포함가»). 로컬은 p 기본 위 여백 12px 이 h3 아래 8px 을 이겨 12 였다.
   한줄 설명이 빈 카드는 이름→설명 12 그대로(빈 p 여백이 설명 위 12px 과 겹쳐 큰 값만 남음) */
.pricing-page .price-row h3+p{margin-top:8px}
.pricing-page .price-row>div:last-child>.add-treatment{grid-area:1/3/3/4;margin-left:16px}

@media(min-width:600px){.site-footer{padding:64px 100px}
.clinic-location dd{font-size:var(--fs-16)}}

@media(max-width:650px){.language-popover{top:58px;left:auto;right:18px}
.home:has(.top-notice) .language-popover{top:94px}
.site-dialog{padding:28px 22px;border-radius:14px}
.branch-dialog .branch-links{grid-template-columns:1fr}
.clinic-location dt{font-size:14px;line-height:20px}
.site-footer nav{font-size:12px}
.pricing-page .price-row{min-height:138px}}

[hidden]{display:none!important}
.home-events a.package-card:hover{text-decoration:none}
.pricing-page{padding-top:21px}
.pricing-page>h1{margin-bottom:0}

.cart-box{padding-top:32px}
.cart-heading{padding:0 26px 20px;border-bottom:1px solid #efefef}
.cart-heading h2{display:flex;align-items:center;gap:8px;font-size:var(--fs-20);font-weight:600;line-height:28px;color:#1a1a1a}
.cart-heading h2 svg{color:var(--accent)}
.cart-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:24px;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 6px);color:#a1a1a1}
.cart-selection-toolbar label{display:flex;align-items:center;gap:8px}
.cart-selection-toolbar input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.cart-selection-toolbar button{border:0;padding:0;background:none;font:inherit;color:inherit}
.cart-selection-toolbar:has(input:disabled){opacity:.5}
.cart-selection-toolbar input:checked+span{color:var(--accent)}
.cart-count{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;font-size:var(--fs-12);background:white;color:var(--accent)}
.cart-total [aria-disabled=true] .cart-count{color:#c7c7c7}
.cart-total [data-cart-checkout]{display:flex;align-items:center;justify-content:center}
.cart-item-heading{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-14);font-weight:600;line-height:1.6}
.cart-item-heading input{width:16px;height:16px;flex-shrink:0;margin-top:3px;accent-color:var(--accent)}
.cart-item-heading span{overflow-wrap:anywhere}
.site-dialog .cart-heading{padding-inline:0}
.site-dialog .cart-body,.site-dialog .cart-total{padding-inline:0}
.cart-item-heading input{margin:3px 0 0}
.cart-body>[data-cart-status]{word-break:keep-all;overflow-wrap:anywhere}


/* Selector states follow the source geometry, independently of the page scroll position. */
.category-sidebar>button,.category-sidebar>button[aria-current=true]{font-size:var(--fs-16);font-weight:400;line-height:calc(var(--fs-16) + 8px)}

.header-actions [popovertarget=languages]{padding:0;width:20px;height:20px;display:grid;place-items:center}

.language-popover{padding:16px 10px;border-radius:6px}
.language-popover a[aria-current]{background:var(--accent-wash)}
.language-popover a small{font-size:var(--fs-14)}



.header-actions [popovertarget=languages][aria-expanded=true]{color:var(--accent)}

.branch-selector{position:fixed;inset:56px 0 84px;margin:0 auto;width:min(600px,100%);max-width:100%;height:auto;max-height:none;padding:0;border:0;background:white;z-index:19;color:#535353;overflow:hidden}
.branch-selector[open]{display:flex}
.branch-regions{width:33.333%;min-width:133px;padding:26px 16px 26px 26px;border-right:1px solid #efefef;display:flex;flex-direction:column;gap:8px;overflow:auto}
.branch-regions button{flex:none;text-align:left;height:48px;border:0;border-radius:8px;padding:0 16px;font-size:var(--fs-14);font-weight:600;color:#777}.branch-regions [aria-pressed=true]{background:#f8f8f8;color:var(--accent);font-weight:600}.branch-options{flex:1;min-width:0;padding:26px 26px 26px 16px;overflow:auto;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:12px}.branch-options h2{grid-column:1/-1}.branch-options[data-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.branch-options h2{font-size:var(--fs-20);font-weight:500;line-height:calc(var(--fs-20) + 10px);margin-bottom:8px}.branch-options a{display:flex;align-items:center;min-height:52px;padding:15px 20px;border:1px solid #efefef;border-radius:6px;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);color:#777}
.branch-options a[aria-current=location]{border-color:var(--accent);background:var(--accent-wash);color:var(--accent)}

body:has(.branch-selector[open]) .site-header{background:white;color:#1a1a1a}
body:has(.branch-selector[open]) [data-open-dialog=branches]{color:var(--accent)}

@media(min-width:640px){.branch-regions button{font-size:var(--fs-16)}
.branch-options a{font-size:var(--fs-16);min-height:56px}
}

.branch-regions button{white-space:nowrap}

@media(min-width:1280px){.branch-regions{min-width:213px}
}

body:has(.branch-selector[open]) .bottom-nav [data-nav-home][aria-current=page],body:has(.branch-selector[open]) .bottom-nav [data-nav-home][aria-current=page] svg{color:#777}


/* TW-12 공통 머리·꼬리 — 상단 공지 띠·GNB·하단 4탭·상담 플로팅바·맨 위로·푸터 (V5 2-1·2-2·2-3, 모바일 폭 기준) */
:root{--gnb-height:56px;--tabbar-height:83px}

.top-notice{position:relative;z-index:13;display:flex;align-items:center;justify-content:center;min-height:36px;padding:4px 20px;background:rgb(0 0 0/.32);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:white;font:500 var(--fs-12)/calc(var(--fs-12) + 6px) var(--font-body);text-align:center}

.top-notice p{margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;white-space:normal;overflow-wrap:anywhere;line-height:18px}

.site-header{position:sticky;top:0;z-index:12;height:var(--gnb-height);min-height:var(--gnb-height);padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent;color:#1a1a1a;border:0;transition:background-color .3s,color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s}

.site-header .wordmark img{display:block;width:auto;height:20px;max-width:150px;object-fit:contain;filter:brightness(0);transition:filter .3s}

body[data-scrolled] .site-header{background:rgb(255 255 255/.8);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#1a1a1a}

/* 홈 배너 위: 띠·GNB 가 배너에 겹치고, 스크롤 전엔 흰 로고·흰 아이콘 */
body.home:not([data-design-layout=compact]):has(.hero) .site-header{margin-bottom:calc(-1*var(--gnb-height))}

body.home:not([data-design-layout=compact]):has(.hero) .top-notice{position:absolute;top:0;inset-inline:0}

/* V5 1-1·2-2: GNB 위 여백(공지 높이)이 .main-column 밖으로 새 본문 전체를 밀어내리지 않게 — 공지 0~36 · GNB 36~92 */
.main-column{display:flow-root}
/* 본문이 짧은 쪽에서도 푸터가 탭바 바로 위(탭바 없으면 화면 바닥)에 붙게 — 쪽 틀(.main-column, 최소 높이 = 화면 − 탭바 여백)을 세로 flex 로 두고 본문(.page-body)이 남는 높이를 먹는다.
   본문은 .page-body 안에서 예전처럼 블록으로 흐른다(자식 배치·여백 겹침 그대로) · 개별 쪽에 min-height 를 덧대지 않는다 */
.main-column{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.main-column>.page-body{display:flow-root;flex:1 0 auto}
.main-column>*{flex-shrink:0}
/* renewal-v5 10-29: 모바일(~1279)은 쪽에 들어오면 상담 플로팅바가 펼쳐져 있다가 50px 넘게 내리면 접힌다(DIR-16).
   짧은 쪽(404 등)은 내릴 거리가 0~24px 이라 플로팅바가 끝까지 푸터 글을 가렸다 — 쪽 틀 최소 높이에 펼친 플로팅바 높이(+12px)를 더해
   본문 아래 여백이 플로팅바 높이 이상이 되게 한다. 이미 그보다 긴 쪽은 바뀌지 않는다. 플로팅바가 없으면 변수가 없어 예전 그대로 */
@media(max-width:1279px){.main-column{min-height:calc(100vh + var(--consult-float-open-h,0px));min-height:calc(100dvh + var(--consult-float-open-h,0px))}}

body.home:not([data-design-layout=compact]):has(.hero):has(.top-notice) .site-header{margin-top:var(--notice-height,36px);margin-bottom:calc(-1*(var(--gnb-height) + var(--notice-height,36px)))}

body.home:not([data-design-layout=compact]):has(.hero):not([data-scrolled]):not(:has(.category-dialog[open],.branch-selector[open])) .site-header{color:white}

body.home:not([data-design-layout=compact]):has(.hero):not([data-scrolled]):not(:has(.category-dialog[open],.branch-selector[open])) .site-header .wordmark img{filter:brightness(0) invert(1)}

.gnb-brand{display:grid;justify-items:end;gap:2px;min-width:0}

/* 지점 이름이 로고보다 길면 칸이 이름만큼 늘어난다. 로고는 왼쪽 자리에 둔다 */
.gnb-brand>.wordmark{justify-self:start}

.site-header .wordmark:has(.wordmark-symbol){display:flex;align-items:center;gap:6px}

.site-header .branch-toggle{display:flex;align-items:center;justify-content:flex-end;gap:2px;width:auto;min-width:100%;max-width:none;padding:0;border:0;border-radius:0;background:none;color:inherit;font:500 var(--fs-12)/calc(var(--fs-12) + 4px) var(--font-body);white-space:nowrap}

.branch-toggle span{min-width:0;overflow:hidden;text-overflow:ellipsis}

.branch-toggle svg{flex:none;width:12px;height:12px}

.site-header .header-actions{flex:none;gap:16px}

.site-header .header-actions>a,.site-header .header-actions>button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:none;color:inherit;font-size:0}

.site-header .header-actions svg{display:block;width:24px;height:24px}

.category-dialog,.branch-selector{top:var(--gnb-bottom,var(--gnb-height))}

/* 하단 4탭: 켜진 칸 하나만 브랜드 색. 펼친 창(장바구니·플로팅바)이 있으면 그 칸이 켜진다 */
.bottom-nav{grid-template-columns:repeat(4,minmax(0,1fr))}

.bottom-nav>a,.bottom-nav>button{position:relative;color:#777}

.bottom-nav svg{color:currentColor}

.bottom-nav>[aria-current=page],.bottom-nav>[aria-expanded=true]{color:var(--accent)}

.bottom-nav:has(>[aria-expanded=true])>[aria-current=page]{color:#777}

.bottom-nav .cart-badge{position:absolute;top:10px;left:calc(50% + 4px);min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:white;font:700 var(--fs-12)/calc(var(--fs-12) + 4px) var(--font-body);text-align:center}

/* 상담 플로팅바: 회색 #585858 85% · 흰 아이콘 · 모서리 10px, 하단 탭바 바로 위 오른쪽 */
.consult-float{position:fixed;right:max(12px,calc(50% - 300px + 12px));bottom:calc(var(--tabbar-height) + 12px);z-index:21;display:flex;flex-direction:column;padding:6px;border-radius:10px;background:rgb(88 88 88/.85);color:white}

.consult-float nav{display:flex;flex-direction:column;gap:2px}

.consult-float nav+nav{margin-top:6px;padding-top:6px;border-top:1px solid rgb(255 255 255/.24)}

.consult-float a{display:flex;flex-direction:column;align-items:center;gap:2px;width:60px;padding:6px 0;border-radius:8px;color:white;font:500 var(--fs-12)/calc(var(--fs-12) + 2px) var(--font-body);text-align:center;overflow-wrap:anywhere}

.consult-float a:hover{background:rgb(255 255 255/.12);text-decoration:none}

.consult-float .channel-icon{width:24px;height:24px}

.consult-float p{margin:0;padding:8px;font-size:var(--fs-12);line-height:calc(var(--fs-12) + 6px);white-space:pre-line;text-align:center}

.back-to-top{left:auto;right:max(12px,calc(50% - 300px + 12px));bottom:calc(var(--tabbar-height) + 12px)}

/* 푸터: ① 약관 3열 ② SNS ③ 사업자 정보(늘 펼침) ④ © — 세 브랜드 같은 어두운 회색 */
.site-footer{align-items:stretch;gap:24px;text-align:left;background:#1e1e1e;color:#d9d9d9}
.site-footer .footer-logo{display:flex;align-items:center;gap:6px}.site-footer .footer-logo img{display:block;width:auto;height:20px;max-width:150px;object-fit:contain;filter:brightness(0) invert(1)}

.site-footer .footer-policies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;margin:0;font:500 var(--fs-12)/calc(var(--fs-12) + 6px) var(--font-body)}

.site-footer .footer-policies a{color:#f5f5f5;overflow-wrap:anywhere}

.footer-sns{display:flex;gap:12px;margin:0;padding:0;list-style:none}

.footer-sns a{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgb(255 255 255/.12);color:white}

.footer-sns svg{width:20px;height:20px}

.site-footer .business-info{display:grid;gap:4px;margin:0;font:500 var(--fs-12)/calc(var(--fs-12) + 6px) var(--font-body);color:#d9d9d9}

.business-info>div{display:flex;gap:8px;min-width:0}

.business-info dt{flex:none;color:#ababab}

.business-info dd{margin:0;min-width:0;overflow-wrap:anywhere}

.site-footer .copyright{margin:0;font-size:var(--fs-12);color:#ccc}

/* 의료진 2열 카드 (TW-21) — templates/themes/clinic/staff_grid.html. 4명씩 쪽 나눔은 ui.js, 빈 자리 칸은 보이지 않게 자리만 */
.staff-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 20px}
.staff-head .staff-count{margin:0;font-size:var(--fs-16);font-weight:700}
.staff-all{flex:none;margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--text-sub);font-family:inherit;font-size:var(--fs-13);cursor:pointer;white-space:nowrap}

.staff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;margin:0;padding:0;list-style:none;touch-action:pan-y}
.staff-card{min-width:0;padding:0 0 16px;border-bottom:1px solid var(--line);text-align:left}
.staff-card[hidden],.staff-careers[hidden],.ui-pager[hidden]{display:none}
.staff-card-filler{visibility:hidden}

.staff-photo{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:0;background:#eee}
.staff-name-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 8px;margin:12px 0 0}
.staff-name-row h3{min-width:0;margin:0;font-size:var(--fs-16);font-weight:700;overflow-wrap:anywhere}
.staff-career-toggle{flex:none;margin:0 0 0 auto;padding:0;border:0;border-radius:0;background:none;color:#888;font-family:inherit;font-size:var(--fs-13);cursor:pointer;white-space:nowrap}
.staff-position{margin:4px 0 0;font-size:var(--fs-14);color:var(--text-sub)}

.staff-careers{margin:12px 0 0;font-size:var(--fs-13);line-height:var(--lh-body);color:var(--text-sub)}
.staff-career-group{margin:12px 0 4px;font-size:var(--fs-13);font-weight:700;color:var(--text)}
.staff-careers ul{margin:0;padding-left:16px}
.staff-careers li{margin:2px 0}
:lang(ko) .staff-careers li{word-break:keep-all;overflow-wrap:anywhere}

/* 소개 탭 줄 (TW-21) — 알약 탭(ui.css)이 스스로 옆으로 밀린다. 현재 탭은 굵게 + 밑줄 2px */
.about-tabs .ui-pill[aria-current=page]{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}

/* 알약 탭(about_tabs.html div)만 — 약관 탭 줄(information_tabs.html nav)은 위 flex·gap 그대로 */
div.about-tabs{display:block;overflow:visible}

/* 이벤트 목록·상세 (V5 4-1·4-2 · TW-17) — 모서리·탭 색은 tokens.css·ui.css 값만 쓴다. 세 브랜드 같은 규칙(clinic·vellicell site.css 에 같은 줄) */
.event-list-bar{display:flex;align-items:center;gap:8px;min-width:0;margin:0}
.event-list-bar>.ui-pill-tabs{flex:1;min-width:0;margin:0}
.event-view-toggle{display:flex;flex:none;gap:4px}
.event-view-toggle button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius-button);background:white;color:var(--text-sub);font-size:var(--fs-16);line-height:1;cursor:pointer}
.event-view-toggle button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.event-count{margin:12px 0 16px;font-size:var(--fs-13);color:var(--text-sub)}

.events-page .event-image{border-radius:var(--radius-thumb) var(--radius-thumb) 0 0;overflow:hidden}
.events-page img.event-image{border-radius:var(--radius-thumb) var(--radius-thumb) 0 0}
.events-page .event-image>img{border-radius:0}
.event-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;min-height:calc(2em * 1.4);margin:0;font-size:var(--fs-14);font-weight:600;line-height:1.4}
.event-card-end{margin:6px 0 0;font-size:var(--fs-12);color:var(--text-sub)}

.events-page .event-grid[data-view=list]{display:flex;flex-direction:column;gap:0}
.event-grid[data-view=list] .event-image{display:none}
.event-grid[data-view=list] .package-card{border:0;border-bottom:1px solid var(--line);border-radius:0}
.event-grid[data-view=list] .event-card-info{padding:14px 0}
.event-grid[data-view=list] .event-card-info>div{display:flex;align-items:baseline;gap:12px}
.event-grid[data-view=list] .event-card-title{flex:1;min-width:0;min-height:0;-webkit-line-clamp:1}
.event-grid[data-view=list] .event-card-end{flex:none;margin:0}

.event-back-bar{display:flex;align-items:center;gap:8px;min-width:0;padding:14px 0;background:white;border-bottom:1px solid var(--line);color:var(--text);font-size:var(--fs-16);font-weight:600;text-decoration:none}
.event-back-bar:hover{text-decoration:none}
.event-back-title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

.event-strip{display:flex;align-items:center;gap:8px;min-width:0;margin:12px 0 0}
.event-strip>.ui-pill-tabs{flex:1;min-width:0;margin:0}
.event-strip .ui-pill{display:block;flex:1 0 calc((100% - 16px) / 3);min-width:0;overflow:hidden;text-overflow:ellipsis;line-height:30px;text-align:center}
.event-strip-open{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius-pill);background:white;color:var(--text);font-size:var(--fs-20);line-height:1;cursor:pointer}

.event-strip-layer{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0 20px 24px;border:0;background:white;color:var(--text);overflow:auto;z-index:60}
.event-strip-layer::backdrop{background:rgb(0 0 0 / 40%)}
.event-strip-layer-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;margin:0 -20px;background:var(--accent);color:#fff}
.event-strip-layer-head h2{margin:0;color:#fff;font-size:var(--fs-16)}
.event-strip-layer-head button{width:40px;height:40px;margin:0;padding:0;border:0;background:none;color:#fff;font-size:var(--fs-20);cursor:pointer}
.event-strip-layer ul{list-style:none;margin:0;padding:0}
.event-strip-layer li a{display:block;padding:14px 0;border-bottom:1px solid var(--line);color:var(--text);font-size:var(--fs-14)}
.event-strip-layer li a[aria-current=page]{color:var(--accent);font-weight:600}

.event-detail>.detail-image{display:block;max-width:none;aspect-ratio:2.2/1;object-fit:cover;object-position:center;background:var(--surface-muted)}

.event-group-tabs{margin:24px 0 0}
.event-detail .detail-section{padding:24px 0 0;border-bottom:0}
.event-detail .detail-section[hidden]{display:none}
.event-group-label{padding:12px 16px;background:var(--accent);color:white;border-radius:var(--radius-card) var(--radius-card) 0 0}
.event-group-label h2{margin:0;color:inherit;font-size:var(--fs-16);font-weight:600}
.event-group-highlight{margin:0;padding:10px 16px;background:var(--accent-tint);color:var(--text);font-size:var(--fs-13)}
.event-group-cards{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius-card) var(--radius-card)}
.event-detail .event-group-cards .price-row{padding:16px;border:1px solid var(--line);border-radius:var(--radius-card)}.event-detail .event-group-cards .price-row:not(.is-arrived){background:white}
.event-detail .price-row h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 6px}
.event-detail .add-treatment{border-radius:var(--radius-button)}
.event-product-badges{color:var(--accent)}

.event-back-bar{margin:0 -26px;padding-inline:26px}


/* 학술·언론 (TW-19) — 2열 카드·썸네일 모서리는 TW-1 토큰, 제목 2줄 말줄임, 상세 이미지 폭 100%·유튜브 16:9 */
.press-page h1{font-size:var(--fs-20);margin:0 0 20px}
.press-tabs{margin:0 0 24px}
.press-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px;margin:0;padding:0;list-style:none}
.press-card{min-width:0}
.press-card>a{display:block;color:inherit;text-decoration:none}
.press-thumb-box{display:block;aspect-ratio:1200/630;overflow:hidden;border-radius:var(--radius-thumb-sm);background:#efefef}
.press-thumb{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--radius-thumb-sm)}
.press-badge{display:inline-block;margin:10px 0 6px;padding:3px 8px;border-radius:var(--radius-pill);font-size:var(--fs-12);font-weight:600;line-height:1.4}
.press-badge--academic{color:var(--accent);background:var(--accent-tint,#f2f2f2)}
.press-badge--press{color:#fff;background:var(--accent)}
.press-card h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0;font-size:var(--fs-14);font-weight:500;line-height:1.45;overflow-wrap:anywhere}
.press-meta{margin:4px 0 0;font-size:var(--fs-12);color:#777}
.press-detail h1{margin:4px 0 0;font-size:var(--fs-20);line-height:1.4;overflow-wrap:anywhere}
.press-back{display:inline-block;margin:0 0 20px;font-size:var(--fs-14);color:inherit}
.press-head{padding-bottom:20px;border-bottom:1px solid #efefef}
.press-images,.press-videos{display:flex;flex-direction:column;gap:12px;margin:24px 0}
.press-images img,.press-videos video{display:block;width:100%;height:auto}
.press-video-frame{position:relative;aspect-ratio:16/9}
.press-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.press-body{margin:24px 0}
.press-source{padding:16px;background:#f8f8f8;font-size:var(--fs-13)}
.press-source p{margin:0 0 8px;overflow-wrap:anywhere}
.press-source a{color:var(--accent)}
.press-sibling{display:flex;flex-direction:column;margin:32px 0 0;border-top:1px solid #efefef}
.press-sibling a{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid #efefef;color:inherit;font-size:var(--fs-14);min-width:0}
.press-sibling a span{flex:none;color:#777}
.press-list-button{display:block;width:fit-content;margin:24px auto 0;padding:10px 32px;border:1px solid #d9d9d9;border-radius:var(--radius-button);color:inherit}
/* TW-15 main page: banner fills the first mobile screen, white event block, signature, about, location rows. */
body{--tabbar-h:83px}

.hero>img,.hero>picture>img,.hero>video{object-fit:cover;object-position:center}

@media(max-width:1279px){.home .hero{height:calc(100svh - var(--tabbar-h,0px));aspect-ratio:auto;max-height:none}
}

.home-events{background:white;color:#1a1a1a}
.home-events .section-heading a{color:#333}

.home-events .package-card>.event-card-info{justify-content:flex-start;gap:0}

.home-events .event-card-info>p{-webkit-line-clamp:1}

.home-events .event-card-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:auto;padding-top:12px}

.home-events .event-card-meta>p{display:block;margin:0;min-height:0;font-size:var(--fs-12);color:#777;white-space:nowrap}

.home-events .event-card-meta>.event-card-price{display:flex;margin-left:auto}

/* 시트 6 «○○원 부터» 는 썸네일 오른쪽 끝에 맞춘다 — 카드 글 칸 오른쪽 안쪽 여백(20px · 1280px 이상 24px)만큼 밖으로 */
.home-events .event-card-meta{margin-right:-20px}
@media(min-width:1280px){.home-events .event-card-meta{margin-right:-24px}}

.event-card-price>b{color:var(--accent);font-weight:700}
.event-card-price>span{color:#777}

.section-heading>.section-heading-note{margin:0;font-size:var(--fs-14);color:#333;text-align:right;overflow-wrap:anywhere;max-width:60%}

.home .section-heading>.section-heading-note{font-size:var(--fs-12);font-weight:500;line-height:calc(var(--fs-12) + 4px);letter-spacing:1.2px}

.signature-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;scrollbar-width:none}
.signature-track::-webkit-scrollbar{display:none}

.signature-card{flex:0 0 calc((100% - 12px)/1.5);min-width:0;scroll-snap-align:start;color:inherit}
/* V5 8-1 PC: 시그니처는 한 줄에 5장 (모바일 1.5장 식을 그대로 두면 카드 하나가 795px) */
/* shared/detail.css 의 .signature-card 가 뒤에 로드돼 이기므로 홈 구좌로 한정해 이긴다 */
@media(min-width:1280px){.home-signature .signature-card{flex-basis:calc((100% - 48px)/5)}}
/* V5 1-3 시그니처 인디케이터 — 점 모양은 이벤트 구좌(.home-event-indicators)와 같다. 카드가 다 보이면(PC) JS 가 숨긴다 */
.home-signature-indicators{display:flex;justify-content:center;gap:6px;margin:18px 0 0;padding:0}
.home-signature-indicators[hidden]{display:none}
.home-signature-indicators button{width:8px;height:8px;min-width:8px;border:0;border-radius:50%;padding:0;background:var(--line);cursor:pointer}
.home-signature-indicators button[aria-current=true]{width:25px;border-radius:3px;background:var(--text)}
.home-signature-indicators button:focus-visible{outline:2px solid var(--text);outline-offset:4px}

.signature-card>h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:12px 0 4px;font-size:var(--fs-16);line-height:1.4}

.signature-card>p{margin:0;font-size:var(--fs-12);color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* V5 1-3 시안(p1_ex_sig_1 · 390 기준 2배 이미지 실측): 구획 배경 #f5f4f0(위아래 여백 포함) · 제목 아래 지점 한 줄 소개(회색, 왼쪽 정렬)
   · 카드 = 각진 이미지 + 아래 흰 글 상자(시술명 굵게 · 한 줄 설명 회색, 좌우 안쪽 18px) · 카드 사이 4px · 모바일은 둘째 카드가 화면 오른쪽 끝까지 */
.home-signature{background:#f5f4f0;padding-block:56px}
/* V5 시안 대조(10-28) G2: 제목-소개 간격 8→14 (p1_ex_sig_1) */
.home-signature>.section-heading{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:24px}
/* V5 시안 대조(10-28) G1: 소개 글자 15→13 */
.home-signature>.section-heading>.section-heading-note{max-width:none;text-align:left;font-size:var(--fs-13);font-weight:400;line-height:1.5;letter-spacing:0;color:#666}
.home-signature .signature-track{gap:4px}
.home-signature .signature-card{display:flex;flex-direction:column;padding-bottom:18px;background:#fff}
/* 사진 위 영문 제목 — 데이뷰 시안 .c1tt 값 그대로(DIR-45 세 브랜드 공통) · 값은 어드민 시그니처 «영문 제목», 비면 요소 없음 (DIR-48) */
.home-signature .signature-card{position:relative}
.home-signature .signature-card>h3{margin:0;padding:16px 18px 2px;font-size:var(--fs-17);font-weight:700}
.home-signature .signature-card>p{padding:0 18px;font-size:var(--fs-13);color:#6e6e6e}
/* V5 시안 대조(10-28) G4: 카드 아래 점 간격 22→26 */
.home-signature-indicators{margin-top:26px}
@media(max-width:1279px){.home-signature .signature-track{margin-right:-20px;padding-right:20px}.home-signature .signature-card{flex-basis:65%}}
@media(min-width:1280px){.home-signature .signature-card{flex-basis:calc((100% - 16px)/5)}}

.home-about{position:relative;overflow:hidden;aspect-ratio:780/1004;min-height:360px;padding-block:72px 56px;display:flex;align-items:stretch;color:white;background:#1a1a1a}
/* V5 1-4: 세로로 큰 면 — 제목은 위 가운데, 설명·둘러보기는 아래 가운데 (와이어프레임 1-4 변경안). PC 는 배너와 같은 높이 */
@media(min-width:1280px){.home-about{aspect-ratio:auto;min-height:clamp(560px,80vh,900px)}}

.home-about>.home-about-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.home-about::before{content:'';position:absolute;inset:0;background:rgb(0 0 0/.4);z-index:1}

.home-about-copy{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}
.home-about-copy h2{margin:8px 0 auto;white-space:pre-line;font-size:var(--fs-24);line-height:1.3}
.home-about-copy p{margin:0;white-space:pre-line;font-size:var(--fs-14);line-height:var(--lh-body)}

.home-about-copy a{display:inline-block;margin-top:20px;font-size:var(--fs-16);color:white}

.clinic-location .address{display:inline;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;word-break:keep-all;overflow-wrap:break-word;white-space:normal}

.clinic-location .hours-row{margin:0 0 8px}
.clinic-location .hours-row>p{margin:0}
.clinic-location .hours-row span:first-child{color:#1a1a1a}

.clinic-location .muted,.clinic-location dd p.muted{color:#9a9a9a;font-size:var(--fs-13)}

.clinic-location .parking-block{margin:0 0 8px}
.clinic-location .parking-block>p{margin:0;white-space:pre-line;word-break:keep-all}
.clinic-location .parking>p{white-space:pre-line}

.location-maps{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.location-maps a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line,#e5e5e5);border-radius:var(--radius-button,8px);background:white;font-size:var(--fs-13);color:#333}

.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h,0px) + 16px);transform:translateX(-50%);z-index:40;margin:0;padding:10px 16px;border-radius:8px;background:rgb(26 26 26/.9);color:white;font-size:var(--fs-13);white-space:nowrap}

/* TW-13 PC 전체 폭 (V5 8-1) — 0~639 모바일 그대로 · 640~1279 태블릿 · 1280~ PC. 넓은 틀 1200 · 읽기 틀 800 (body class = 쪽 이름). 다른 화면 티켓이 자기 화면 PC 배치를 정하면 그쪽이 앞선다 */
:root{--page-wide:1200px;--page-narrow:800px;--gutter:26px}
@media(min-width:640px){:root{--gutter:32px}}
@media(min-width:1280px){:root{--gutter:40px}}
body{--page-frame:var(--page-wide)}
body:is(.detail,.event_detail,.pricing,.fees,.notices,.legal,.reservation,.reservation_result,.my_reservations,.customer_login){--page-frame:var(--page-narrow)}
.hero>img,.hero>picture>img,.hero>video{object-fit:cover;object-position:center}
@media(min-width:640px){
 main#content{max-width:calc(var(--page-frame) + var(--gutter)*2);margin-inline:auto}
 main#content.section,main#content>.section,main#content>:is(.about-tabs,.section-tabs),.product-detail>.detail-heading,main#content>.dpl>.dpl-left>.section,main#content>.dpl>.dpl-left>:is(.dpl-main,.dpl-rest)>:is(.section,.detail-heading){padding-inline:var(--gutter)}
 .information-tabs{margin-inline:calc(-1*var(--gutter))}
 .notices-page>.information-tabs{margin-inline:0}
 .event-detail>.detail-image{width:calc(100% + var(--gutter)*2);margin-inline:calc(-1*var(--gutter))}
 .home main#content{max-width:none}
 .home #content>.section,.home #content>.section:has(>.clinic-location){padding-inline:max(var(--gutter),(100% - var(--page-wide))/2)}
 .site-header,.main-column>.site-footer{padding-inline:max(var(--gutter),(100% - var(--page-wide))/2)}
 .hero{aspect-ratio:auto;height:clamp(480px,80vh,900px);max-height:none}
 .hero-copy,.banners:not(:has(video)) .banner-controls{left:max(var(--gutter),(100% - var(--page-wide))/2)}
 .hero-copy{right:max(var(--gutter),(100% - var(--page-wide))/2)}
 .home #content>.home-events{padding-inline:0}
 .home-events>.section-heading,.home-events>.home-event-indicators{margin-inline:max(var(--gutter),(100% - var(--page-wide))/2)}
 .home-events .event-grid{margin-right:0;padding-inline:max(var(--gutter),(100% - var(--page-wide))/2);scroll-padding-inline:max(var(--gutter),(100% - var(--page-wide))/2)}
 .home-events .event-grid>.package-card,.staff-list[data-staff-mode=slide]>.staff-card{flex-basis:360px}
 .package-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .search-page .package-grid,.resource-grid,.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .staff-list[data-staff-mode=grid]{grid-template-columns:repeat(3,minmax(0,1fr))}
 
 
}
@media(min-width:1280px){
 .package-grid,.staff-list[data-staff-mode=grid]{grid-template-columns:repeat(4,minmax(0,1fr))}
 .search-page .package-grid,.resource-grid,.post-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .home-events .event-grid>.package-card,.staff-list[data-staff-mode=slide]>.staff-card{flex-basis:380px}
}
/* 시술 장비(/about/equipments) — 세 브랜드 같은 카드 (TW-54 · DIR-76). 휴대폰 2칸 · PC(1280 이상) 4칸. 위 640 이하 1칸 · 1280 이상 3칸 규칙보다 앞선다 */
/* 간격(DIR-84 «여백이 없어 어수선») — 운영 myeongdong.ceramiqueclinic.com/about/equipments 실측: 사진→이름 26px · PC 카드 폭 266px · 줄 간격 85px 를 근거로 넓혔다 */
body.clinic .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:40px}
@media(min-width:641px){body.clinic .resource-grid{column-gap:32px;row-gap:56px}}
/* PC(1280 이상) 한 줄 4개가 본문 폭을 다 채운다 — 3개×280px 로 묶었더니 본문 1200px 중 오른쪽 264px 가 비었다(지휘 11-06).
   4칸×1fr 이면 1440 에서 카드 264px(이전 280px 보다 작음) → 사진은 커지지 않는다 (DIR-84 «사진 작게»). 휴대폰 2칸은 위 규칙 그대로 */
@media(min-width:1280px){body.clinic .resource-grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:48px;row-gap:72px}}
/* 장비 사진 = 운영 목록 사진 그대로, 자르거나 확대하지 않는다 (DIR-83). 3:4 칸 안에 원본 비율로 담고(contain) 둘레에 여백 — 데이뷰 사진(약 1:1.8)이 3:4 cover 에 위아래가 잘리던 것 */
body.clinic .resource-grid .media-button img{aspect-ratio:3/4;object-fit:contain;box-sizing:border-box;padding:10px;background:#fff}
/* 사진→이름 여백: 머리말 줄(span, 비어도 자리 차지) 18px + 이름 6px */
body.clinic .resource-grid .media-button>span{margin-top:18px}
body.clinic .resource-grid .media-button>strong{margin-top:6px}
/* 장비 카드 = 가운데 정렬 · 둥근 테두리 칸 안 사진(contain) → 굵은 이름 → 한 줄 요약(넘치면 «…») (renewal-v5 DIR-93).
   요약은 설명 첫 줄이 아니라 따로 쓴 문장(equipment_translations.summary · DIR-101) — 비면 템플릿이 <p> 를 안 낸다. 카드를 누르면 전체 설명 (DIR-87) */
body.clinic .resource-grid .media-button{text-align:center}
body.clinic .resource-grid .media-button img{border:1px solid #e8e6e3;border-radius:16px}
body.clinic .resource-grid .media-button>strong{font-weight:700}
body.clinic .resource-grid .equipment-summary{overflow:hidden;margin:8px 0 0;font-size:var(--fs-14);line-height:1.5;color:#777;white-space:nowrap;text-overflow:ellipsis}

/* 칼럼 게시판 (TW-20) — 목록 줄·상세 블록. 썸네일 모서리 = TW-1 --radius-thumb-sm(칼럼 2px), 탭·쪽 넘김 = shared/ui.css */
.column-page h1{margin:0 0 20px}.column-page .ui-pill-tabs{margin:0 0 20px}.column-list{list-style:none;margin:0;padding:0}.column-list li{border-bottom:1px solid #eee}.column-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;padding:16px 0;color:inherit;text-decoration:none}.column-thumb{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-thumb-sm);background:var(--surface-muted,#f5f5f5)}.column-text{display:grid;gap:6px;min-width:0}.column-title{margin:0;font-size:var(--fs-16,16px);line-height:var(--lh-title,1.4);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.column-row time{font-size:var(--fs-13,13px);color:var(--text-sub,#666)}.column-page .ui-pager{margin:24px 0 0}.column-empty{padding:40px 0;text-align:center;color:var(--text-sub,#666)}
.column-article{min-width:0}.column-back{display:inline-block;margin:0 0 16px;color:var(--text-sub,#666);text-decoration:none}.column-article h1{margin:0 0 12px;overflow-wrap:anywhere}.column-byline{display:grid;gap:2px;margin:0 0 28px;padding:0 0 20px;border-bottom:1px solid #eee;font-size:var(--fs-14,14px);color:var(--text-sub,#666)}.column-author{color:var(--text,#1a1a1a);font-weight:600}.column-paragraph{margin:0 0 20px;line-height:var(--lh-body);white-space:pre-line;overflow-wrap:anywhere}.column-figure{margin:0 0 24px}.column-figure img{display:block;width:100%;height:auto;border-radius:var(--radius-thumb-sm)}.column-hero img{aspect-ratio:16/9;object-fit:cover}.column-figure figcaption{margin:8px 0 0;font-size:var(--fs-13,13px);color:var(--text-sub,#666)}.column-block{margin:0 0 32px}.column-block h2,.column-heading{margin:0 0 14px;font-size:var(--fs-20,20px);line-height:var(--lh-title,1.4)}.column-free h3{margin:0 0 10px;font-size:var(--fs-16,16px)}
.column-checks{list-style:none;margin:0;padding:16px;background:var(--surface-muted,#f5f5f5);border-radius:var(--radius-card,4px)}.column-checks li{position:relative;padding:4px 0 4px 26px;line-height:1.6}.column-checks li::before{content:"✓";position:absolute;left:4px;color:var(--accent);font-weight:700}
.column-table-wrap{max-width:100%;overflow-x:auto;margin:0 0 12px;-webkit-overflow-scrolling:touch}.column-table-wrap table{width:100%;min-width:max-content;border-collapse:collapse;font-size:var(--fs-14,14px)}.column-table-wrap th,.column-table-wrap td{padding:10px 12px;border:1px solid #e5e5e5;text-align:left;vertical-align:top;white-space:pre-line}.column-table-wrap th{background:var(--surface-muted,#f5f5f5);font-weight:600}.column-notice{margin:0;font-size:var(--fs-13,13px);line-height:1.6;color:var(--text-sub,#666)}
.column-faq details{border-bottom:1px solid #eee}.column-faq summary{display:flex;gap:6px;align-items:baseline;padding:14px 28px 14px 0;cursor:pointer;list-style:none;position:relative;font-weight:600}.column-faq summary::-webkit-details-marker{display:none}.column-faq summary::after{content:"⌄";position:absolute;right:4px;top:10px;transition:transform .15s}.column-faq details[open] summary::after{transform:rotate(180deg)}.column-faq details p{margin:0 0 14px;line-height:var(--lh-body);white-space:pre-line}.column-q,.column-a{color:var(--accent);font-weight:700}.column-divider{border:0;border-top:1px solid #e5e5e5;margin:32px 0}
.column-adjacent{display:grid;margin:40px 0 0;border-top:1px solid #ddd}.column-adjacent-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid #eee;color:inherit;text-decoration:none}.column-adjacent-row span{color:var(--text-sub,#666);font-size:var(--fs-13,13px)}.column-adjacent-row strong{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-list-link{margin:24px 0 0;text-align:center}.column-list-link .button{display:inline-flex;align-items:center;justify-content:center;min-width:120px;min-height:44px;padding:0 20px;border:1px solid var(--line,#c8c8c8);border-radius:var(--radius-button,4px);color:inherit;text-decoration:none;background:white}

/* 시술전후 (TW-18) — 목록 카드·크게 보기·상세 슬라이더가 같은 .bna-pair 를 쓴다. 잠긴 전 사진은 서버가 흐린 사본을 주므로 CSS 흐림은 쓰지 않는다 */
.bna-subtitle{margin:4px 0 0;color:var(--text-sub)}
.bna-tabs{margin:16px 0 0}
.bna-notice,.bna-viewer-notice{margin:16px 0 0;font-size:var(--fs-13);line-height:1.6;color:var(--text-sub)}
.bna-count{margin:16px 0 12px;font-size:var(--fs-14);font-weight:600}
.bna-list{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin:0;padding:0;list-style:none}
/* PC 열 규칙 (TW-13 R2 → TW-18 목록으로 옮김) — 640 부터 2열, 1280 부터 3열. 1열 기본 규칙 뒤에 둬야 이긴다 */
@media(min-width:640px){.bna-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.bna-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bna-item{position:relative;min-width:0}
.bna-card{display:block;width:100%;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.bna-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.bna-side{position:relative;margin:0;min-width:0;aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius-thumb);background:#e9e9e9}
.bna-side img{display:block;width:100%;height:100%;object-fit:cover}
.bna-side.is-locked img{filter:none}
.bna-blank{display:block;width:100%;height:100%;background:#e3e3e3}
.bna-label{position:absolute;top:8px;left:8px;padding:2px 8px;border-radius:var(--radius-thumb);background:rgb(0 0 0 / 55%);color:white;font-size:var(--fs-12);font-weight:600;line-height:1.6;letter-spacing:.02em}
.bna-lock{position:absolute;inset:auto 0 50% 0;text-align:center;font-size:var(--fs-13);font-weight:600;color:#333;text-shadow:0 0 6px white}
.bna-login{position:absolute;left:50%;top:calc(50% + 12px);transform:translateX(-50%);display:inline-flex;align-items:center;height:32px;padding:0 16px;border-radius:var(--radius-pill);background:var(--accent);color:white;font-size:var(--fs-13);font-weight:600;text-decoration:none;white-space:nowrap}
.bna-login:hover{text-decoration:none}
.bna-login-layer{position:absolute;top:0;left:0;width:calc(50% - 4px);aspect-ratio:1/1;pointer-events:none}
.bna-login-layer .bna-login{pointer-events:auto}
.bna-title{display:-webkit-box;margin:12px 0 0;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:var(--fs-16);font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.bna-category{color:var(--accent);font-weight:600}
.bna-category::before{content:"["}.bna-category::after{content:"]"}
.bna-dates{margin:4px 0 0;font-size:var(--fs-13);line-height:1.6;color:var(--text-sub);overflow-wrap:anywhere}
.bna-empty{margin:32px 0;text-align:center;color:var(--text-sub)}
/* 크게 보기: 화면 전체를 덮고, 부작용 고지는 아래에 붙어 있다 */
.bna-viewer{box-sizing:border-box;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0 16px;border:0;background:white;overflow-y:auto}
.bna-viewer[open]{display:flex;flex-direction:column}
.bna-viewer::backdrop{background:rgb(0 0 0 / 60%)}
.bna-viewer-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;background:white}
.bna-viewer-head h2{margin:0;font-size:var(--fs-16);line-height:1.5;overflow-wrap:anywhere}
.bna-close{flex:none;display:grid;place-items:center;width:40px;height:40px;margin:0;padding:0;border:0;background:none;color:inherit;cursor:pointer}
.bna-viewer-body{position:relative;width:100%;max-width:960px;margin:0 auto}
.bna-step{position:absolute;top:50%;z-index:1;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:var(--radius-pill);background:rgb(255 255 255 / 85%);font-size:var(--fs-24);line-height:1;cursor:pointer}
.bna-step[data-bna-step="-1"]{left:4px}.bna-step[data-bna-step="1"]{right:4px}
.bna-viewer>.bna-dates,.bna-viewer>.bna-go{width:100%;max-width:960px;margin-inline:auto}
.bna-viewer>.bna-dates{margin-top:12px}
.bna-go{display:flex;justify-content:center;box-sizing:border-box;margin-top:16px}
.bna-viewer-notice{position:sticky;bottom:0;margin-top:auto;padding:12px 0 16px;background:white}
/* 상세 구좌: 한 장씩 가로로 넘김 (손가락 = scroll-snap, PC = 화살표) */
.bna-slider-wrap{position:relative;container-type:inline-size}
.bna-slider{display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.bna-slider::-webkit-scrollbar{display:none}
.bna-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start}
.bna-scroll{position:absolute;top:calc(25cqw - 22px);z-index:1;width:40px;height:40px;border:0;border-radius:var(--radius-pill);background:rgb(255 255 255 / 85%);font-size:var(--fs-24);line-height:1;cursor:pointer}
.bna-scroll[data-bna-scroll="-1"]{left:4px}.bna-scroll[data-bna-scroll="1"]{right:4px}
@media(max-width:640px){.bna-scroll{display:none}}
/* TW-14 메뉴 서랍 (V5 3-1·3-4): GNB 아래~하단 4탭 위, 오른쪽에서 0.5초 밀려 들어옴 · 뒤 배경 검정 40% · 2차·3차 아코디언 0.35초
   닫힐 때도 거꾸로 0.5초 밀려 나간다: close() 로 [open] 이 빠져도 display 를 0.5초 늦춰(allow-discrete) 그동안 오른쪽으로 빠진다 — 닫는 길(메뉴 단추·스크림·ESC·지점 선택·MY·플로팅바) 전부 같은 CSS 를 탄다 */
.category-dialog{top:var(--gnb-bottom,var(--gnb-height));right:0;left:auto;bottom:var(--tabbar-height);width:100%;transform:none;transition:transform .5s ease,overlay .5s ease allow-discrete,display .5s ease allow-discrete}
.category-dialog:not([open]){transform:translateX(100%);pointer-events:none}
@starting-style{.category-dialog[open]{transform:translateX(100%)}}
@media(min-width:640px){.category-dialog{width:480px}}
.menu-scrim{position:fixed;inset:var(--gnb-bottom,var(--gnb-height)) 0 var(--tabbar-height) 0;z-index:18;background:rgb(0 0 0/.4);opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s}
body:has(.category-dialog[open]) .menu-scrim{opacity:1;visibility:visible}
.header-actions [data-open-dialog=category] .menu-icon-close,.header-actions [data-open-dialog=category][aria-expanded=true] .menu-icon-open{display:none}
.header-actions [data-open-dialog=category][aria-expanded=true] .menu-icon-close{display:contents}
.header-actions [data-open-dialog=category] .menu-icon-open{display:contents}
.menu-search{flex:none;padding:12px 16px;border-bottom:1px solid #efefef}
.menu-search .site-search{margin:0}
.category-body{flex:1;min-height:0;display:flex}
.category-sidebar>button[aria-current=true]{font-weight:600}
.category-sidebar>.category-link{display:flex;align-items:center;min-height:52px;padding:6px 26px;color:#777;font:400 var(--fs-16)/calc(var(--fs-16) + 8px) var(--font-body);word-break:keep-all}
.category-sidebar>.category-link:hover{text-decoration:none;color:var(--accent)}
.menu-acc,.menu-sub-acc{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:6px 16px;border:0;border-radius:0;background:none;color:#1a1a1a;font:500 var(--fs-14)/1.4 var(--font-body);text-align:left;word-break:keep-all}
.menu-acc[aria-expanded=true]{font-weight:600}
.menu-mark{flex:none;width:16px;color:#777;font:400 var(--fs-16)/1 sans-serif;text-align:right}
.menu-acc>.menu-mark::after,.menu-sub-acc>.menu-mark::after{content:'+'}
.menu-acc[aria-expanded=true]>.menu-mark::after{content:'−'}
.menu-sub-acc{padding-left:28px;color:#535353;font-weight:400}
.menu-sub-acc[aria-expanded=true]{color:var(--accent);font-weight:600}
.menu-sub-acc[aria-expanded=true]>.menu-mark{color:var(--accent)}
.menu-sub-acc[aria-expanded=true]>.menu-mark::after{content:'⌄';display:inline-block;transform:translateY(-3px)}
.category-empty>.menu-sub-acc{color:#c4c4c4;cursor:default}
.category-empty>.menu-sub-acc>.menu-mark{visibility:hidden}
.menu-fold{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
[aria-expanded=true]+.menu-fold{grid-template-rows:1fr}
.menu-fold-inner{min-height:0;overflow:hidden}
.menu-sub .menu-fold-inner[data-category-packages]{display:flex;flex-direction:column;gap:16px;background:#f8f8f8;padding:0 16px 0 40px}
.menu-sub-acc[aria-expanded=true]+.menu-fold>[data-category-packages]{padding-block:16px}
[data-category-packages]>a[aria-current=true]{color:var(--accent);font-weight:600}
.menu-group{border-bottom:1px solid #efefef}
.category-content [aria-busy=true]{opacity:.6}
/* MY 드롭다운 (언어 창과 같은 자리 잡기) · 뒤 화면 어둡게 */
/* 팝오버 기본 자리(inset:0·margin:auto = 화면 가운데)를 풀어야 site.js 가 준 left·top(아이콘 바로 아래)이 먹는다 (시트 45) */
.my-popover{inset:auto;margin:0;min-width:180px;padding:8px;border:0;border-radius:6px;background:white;color:#1a1a1a;box-shadow:0 4px 18px rgb(0 0 0/.12)}
.my-popover::backdrop{background:rgb(0 0 0/.4)}
.my-popover nav{display:flex;flex-direction:column}
.my-popover a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:0 12px;border-radius:4px;font:500 var(--fs-14)/calc(var(--fs-14) + 6px) var(--font-body);color:#1a1a1a}
.my-popover a:hover{background:#f8f8f8;text-decoration:none}
.header-actions [popovertarget=my-menu][aria-expanded=true]{color:var(--accent)}
/* 지점명 옆 얇은 꺾쇠: 창이 열리면 위로 */
.site-header .branch-toggle svg.chevron-thin{width:7px;height:5px;transition:transform .3s ease}
.branch-toggle[aria-expanded=true] svg.chevron-thin{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){.category-dialog,.menu-scrim,.menu-fold,.site-header .branch-toggle svg.chevron-thin{transition:none}}



/* TW-16 메인 SNS 구좌(CONTENTS) — 이미지는 원본 색 그대로(filter 없음), 칸 비율 유튜브 16:9 · 인스타 1:1 가운데 맞춤 */
.home-sns-head{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.home-sns-head h2{margin:0;font-size:var(--fs-20);letter-spacing:2px}
.home-sns-title{margin:8px 0 0;font-size:var(--fs-14);color:#555;text-align:center;overflow-wrap:anywhere}
/* TW-25 시술 ↔ 칼럼 연결 구역 — 이 블록만 자기 완결(다른 줄을 건드리지 않는다) */
.related-columns .related-column-list{display:grid;gap:0 24px;grid-template-columns:1fr}
.related-column-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #efefef;color:inherit}
.related-column-card:hover{text-decoration:none}
.related-column-card img{width:112px;aspect-ratio:112/81;object-fit:cover;display:block}
.related-column-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.related-column-body strong,.related-package-body strong{font-size:var(--fs-16);line-height:var(--lh-title);overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.related-column-body time{font-size:var(--fs-13);color:#777}
.column-related-packages{margin-top:40px}
.related-package-list{display:grid;gap:0 24px;grid-template-columns:1fr}
.related-package-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:start;padding:14px 0;border-bottom:1px solid #efefef;color:inherit}
.related-package-card:hover{text-decoration:none}
.related-package-card img{width:112px;aspect-ratio:112/81;object-fit:cover;display:block}
.related-package-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.related-package-summary{font-size:var(--fs-13);color:#777;line-height:var(--lh-body);overflow-wrap:anywhere}
.related-package-price{font-size:var(--fs-16);font-weight:700}
@media(min-width:768px){.related-columns .related-column-list{grid-template-columns:repeat(2,minmax(0,1fr))}.related-package-list{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* V5 1-6 오시는 길 — 순서·PC 2열 */
.clinic-location .location-card[hidden]{display:none}
.clinic-location .location-card dl:not(:has(dt)){display:none}
.clinic-location .location-card .location-maps{margin:20px 0 0}
.clinic-location .location-card .location-info{margin-top:24px}
.clinic-location .parking-title,.clinic-location dd p.parking-title{margin:0 0 4px;font-size:var(--fs-14);font-weight:600;color:#1a1a1a;white-space:normal}
@media(min-width:1280px){
 .clinic-location .location-card:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:start}
 .clinic-location .location-card>.location-address{grid-column:1;grid-row:1}
 .clinic-location .location-card>.location-info{grid-column:1;grid-row:2}
 .clinic-location .location-card>.location-maps{grid-column:2;grid-row:1/span 2;margin:0}
}

/* V5 1-6 오시는 길 — 그림 맞춤(지도 앱 아이콘·진료시간/주차 두 칸 줄) */
.clinic-location .location-card .location-maps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.clinic-location .location-card .location-maps a{justify-content:center;gap:6px;min-height:52px;padding:0 6px;border-radius:10px;font-size:var(--fs-13);white-space:nowrap;text-decoration:none}
.clinic-location .map-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:6px;font-size:var(--fs-13);font-weight:700;line-height:1}
.clinic-location .map-icon-naver{background:#03c75a;color:#fff}
.clinic-location .map-icon-kakao{background:#fee500;color:#1a1a1a}
.clinic-location .map-icon-google{background:#4285f4;color:#fff}
.clinic-location .location-card .hours-row{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:12px;margin:0 0 12px}
.clinic-location .location-card .hours-row>p:not(.muted){display:contents}
.clinic-location .location-card .hours-row .hours-label{grid-column:1;color:#7a7a7a}
.clinic-location .location-card .hours-row .hours-time{grid-column:2;color:#1a1a1a}
.clinic-location .location-card .hours-row>p.muted{grid-column:2}
.clinic-location .location-card .parking-block{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:12px;margin:0 0 12px}
.clinic-location .location-card .parking-block>.parking-title{grid-column:1;grid-row:1;margin:0}
.clinic-location .location-card .parking-block>p:not(.parking-title){grid-column:2}
@media(max-width:480px){.clinic-location .location-card .location-maps a{font-size:12px;gap:4px}.clinic-location .map-icon{width:20px;height:20px;font-size:12px}}

/* V5 1-6 오시는 길 지도 그림 — 주소와 지도 앱 단추 사이. 높이는 원문 미정이라 모바일 190 · 데스크톱 320 으로 둔다 */
.clinic-location .location-card>.location-map{width:100%;height:190px;margin-top:20px;border-radius:10px;overflow:hidden;background:#e9e9e9}
.clinic-location .location-card>.location-map[hidden]{display:none}
/* DIR-117 지도를 못 그린 칸(키 없음·인증 실패) — 크기는 위 지도 칸 그대로, 배경만 옅은 회색 */
.clinic-location .location-card>.location-map:not([data-naver-map]){background:var(--surface-muted,#f5f5f5)}
@media(min-width:1280px){
 /* 지도 칸이 윗줄 높이를 늘려 주소와 진료시간 사이가 294px 벌어졌다 — 오른쪽 칸은 두 줄에 걸쳐 쌓고, 늘어나는 건 아랫줄만 */
 .clinic-location .location-card:has(>.location-map:not([hidden])){grid-template-rows:auto 1fr}
 .clinic-location .location-card>.location-map{grid-column:2;grid-row:1/span 2;height:320px;margin:0}
 .clinic-location .location-card>.location-map:not([hidden])~.location-maps{grid-row:1/span 2;margin-top:332px}
}
/* ===== V5 시안 대조(10-28) — TO-BE 시안과 구현 값 맞춤 (/tmp/fc/result-tobe.md). clinic·vellicell site.css 에 같은 줄 ===== */

/* V5 시안 대조(10-28) #1: 홈 이벤트 카드 글 칸 = ①날짜+D-day 칩 ②제목 ③설명(왼)+가격(오른), 안쪽 여백 16px 0 0 (오른쪽 -20/-24 당김도 없앰) */
.home-events .package-card>.event-card-info{min-height:0;padding:16px 0 0;gap:0}
.home-events .event-card-info h3{margin:0;font-size:var(--fs-16);font-weight:700;line-height:1.4}
.home-events .event-card-meta{margin-right:0;padding-top:8px}
/* V5 시안 대조(10-28) #2: D-day 칩 — 날짜 옆 테두리 칩 */
.home-events .event-card-dates{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:var(--fs-12);line-height:calc(var(--fs-12) + 4px);color:#999}
.event-dday{display:inline-block;padding:1px 8px;border:1px solid var(--accent);border-radius:4px;font:700 var(--fs-12)/calc(var(--fs-12) + 4px) var(--font-body);color:var(--accent)}
/* V5 시안 대조(10-28) #3: 홈 이벤트 가격 b 28px · span 14px #777 */
.home-events .event-card-price>b,.event-card-price>b{font-size:var(--fs-28)}
.event-card-price>span{font-size:var(--fs-14);color:#777}
.home-events .event-card-meta>.event-card-price>span{font-size:var(--fs-14);color:#777}
/* V5 시안 대조(10-28) #3: 설명이 길어도 가격 칸이 눌려 2줄·잘림이 되지 않게 — 가격은 한 줄 고정, 설명이 말줄임으로 줄어든다 */
.home-events .event-card-meta>p{min-width:0;overflow:hidden;text-overflow:ellipsis}
.home-events .event-card-meta>.event-card-price{flex:none;flex-wrap:nowrap;white-space:nowrap}
/* V5 시안 대조(10-28) #4: 이벤트·시그니처 인디케이터 점 5px #ddd · 현재 18×6 둥근 막대 #1a1a1a */
.home-event-indicators button,.home-signature-indicators button{width:5px;height:5px;min-width:5px;border-radius:50%;background:#ddd}
.home-event-indicators button[aria-current=true],.home-signature-indicators button[aria-current=true]{width:18px;height:6px;min-width:18px;border-radius:3px;background:#1a1a1a}
/* V5 시안 대조(10-28) #5: 홈 섹션 제목 28px/700 (표기는 Event·Location — 템플릿) */
.home .section h2,.home .section-heading h2{font-size:var(--fs-28);font-weight:700;line-height:1.3}
/* V5 시안 대조(10-28) #6: «전체 이벤트 보기 ›» 14px/400 #555 · 글자 > 대신 가는 꺾쇠 아이콘 */
.home .section-heading>a,.home-events .section-heading a{font-size:var(--fs-14);font-weight:400;letter-spacing:0;line-height:calc(var(--fs-14) + 6px);color:#555}
.more-chevron{display:inline-block;width:6px;height:10px;margin-left:6px;vertical-align:-1px}
/* V5 시안 대조(10-28) #7: Location 구획 배경 흰색 */
.home #content>.section:has(>.clinic-location){background:#fff}
/* V5 시안 대조(10-28) #8·#9: 소제목 15px/700 검정 · 주소 15px/600 검정 · 대표전화 22px/400 검정 */
.clinic-location dt{font-size:var(--fs-15);font-weight:700;color:#1a1a1a;line-height:calc(var(--fs-15) + 7px)}
.clinic-location .address{font-size:var(--fs-15);font-weight:600;color:#1a1a1a}
.clinic-location dd a[href^="tel:"]{font-size:var(--fs-22);font-weight:400;color:#1a1a1a;line-height:calc(var(--fs-22) + 10px)}
/* V5 시안 대조(10-28) #10: 지도 앱 단추 36px · 모서리 6px · 13px · 테두리 #ddd (지도 높이는 그대로) */
.clinic-location .location-card .location-maps a{min-height:36px;border:1px solid #ddd;border-radius:6px;font-size:var(--fs-13)}
/* V5 시안 대조(10-28) #11: 진료시간·주차 라벨 열 84px(간격 없음) · 보조 문구 11px #aaa 시간 아래 줄 */
.clinic-location .location-card .hours-row,.clinic-location .location-card .parking-block{grid-template-columns:84px minmax(0,1fr);column-gap:0}
/* 라벨 열에 간격이 없어 긴 외국어 라벨(«Parkir gedung»)이 값에 붙었다 — 열 폭은 그대로 두고 라벨만 안쪽에서 줄바꿈 */
.clinic-location .location-card .parking-block>.parking-title{padding-right:8px}
.clinic-location .location-card .hours-row>p.muted,.clinic-location dd .hours-row p.muted{font-size:var(--fs-11);color:#aaa}
/* V5 시안 대조(10-28) #12: 푸터 약관 링크 = 글자 폭대로 줄바꿈하는 한 줄 #ddd */
.site-footer .footer-policies{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px 17px}
.site-footer .footer-policies a{color:#ddd;overflow-wrap:normal}
/* 시트 No 37: 휴대폰 폭에선 약관 링크 3열 */
@media(max-width:640px){.site-footer .footer-policies{display:grid;grid-template-columns:repeat(3,auto);justify-content:start}}
/* V5 시안 대조(10-28) #13: 푸터 SNS 동그란 바탕 없이 20px 아이콘 #ccc */
.footer-sns a{width:auto;height:auto;border-radius:0;background:none;color:#ccc}
.footer-sns svg{width:20px;height:20px;color:#ccc}
/* V5 시안 대조(10-28) #14: 사업자 정보 회색 #999 12px (이름 칸 색도 값과 같게) */
.site-footer .business-info,.business-info dt,.business-info dd{color:#999;font-size:var(--fs-12)}
/* V5 시안 대조(10-28) #15: 저작권 #777 11px */
.site-footer .copyright{color:#777;font-size:var(--fs-11)}
/* V5 시안 대조(10-28) #16: 플로팅바 항목 사이 모두 1px 구분선 · 폭 72→79 */
.consult-float nav{gap:0}
.consult-float a{width:67px}
.consult-float nav>a+a{border-top:1px solid rgb(255 255 255/.24);border-radius:0}
/* V5 시안 대조(10-28) #18: ↑ 맨 위로 42px · 그림자 없이 테두리 #ddd */
.back-to-top{width:42px;height:42px;box-shadow:none;border:1px solid #ddd}
/* V5 시안 대조(10-28) #19: 이벤트 목록 좌우 여백 16 · 사진 칸 안쪽 여백 0 · 칸 간격 24px 10px */
.events-page{padding-inline:16px}
.event-grid{gap:24px 10px}
.event-grid .package-card>.event-image{padding:0}
/* V5 시안 대조(10-28) #20: 탭 24px · 줄 구성 «탭 줄 / 개수(왼)+토글(오른)» */
.event-list-bar .ui-pill{height:24px;padding:0 12px;font-size:var(--fs-12)}
.event-count-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 16px}
.event-count-row .event-count{margin:0}
/* V5 시안 대조(10-28) #21: 보기 전환 24px · 켜진 쪽 #222 바탕 흰 글자 */
.event-view-toggle button{width:24px;height:24px;font-size:var(--fs-12);border-radius:4px}
.event-view-toggle button[aria-pressed=true]{background:#222;border-color:#222;color:#fff}
/* V5 시안 대조(10-28) #22: 목록형 행 38px · 구분선 #ededed · 날짜 #999 뒤 › */
.event-grid[data-view=list] .package-card{border-bottom-color:#ededed}
.event-grid[data-view=list] .event-card-info{padding:9px 0}
.event-grid[data-view=list] .event-card-end{color:#999}
.event-grid[data-view=list] .event-card-end::after{content:" ›"}
/* V5 시안 대조(10-28) #19·#22 다시 맞춤: 썸네일형 글 칸은 좌우 여백 0(사진 가장자리에 맞춤) · 날짜 #999 · 제목 700 / 목록형은 «제목 ··· ~날짜 ›» — 날짜를 제목 뒤 오른쪽 끝으로 */
.events-page .event-grid:not([data-view=list]) .event-card-info{padding:4px 0 0}
.events-page .event-grid .event-card-end{color:#999}
.events-page .event-grid:not([data-view=list]) .event-card-title{font-weight:700}
.event-grid[data-view=list] .event-card-end{order:2;flex:none;margin:0}
/* V5 시안 대조(10-28) #23: 이벤트 목록(/events)만 헤더 72px · 흰 바탕 · 아래 선 #ededed (다른 흰 페이지는 원문이 정하지 않아 그대로) */
body.events{--gnb-height:72px}
body.events .site-header{min-height:72px;height:72px;background:#fff;border-bottom:1px solid #ededed}
/* V5 시안 대조(10-28) #24: 이벤트 상세 카테고리 띠 — shared/detail.css 의 .detail-section h2(20px·아래 16px)가 덮던 것을 .event-detail 로 이김 */
.event-detail .event-group-label h2{margin:0;font-size:var(--fs-16);line-height:20px}
/* V5 시안 대조(10-28) #25: 이벤트 상세 카드·묶음 박스 테두리 #e9e9e9 */
.event-group-cards{border-color:#e9e9e9}
.event-detail .event-group-cards .price-row{border-color:#e9e9e9}
/* V5 시안 대조(10-28) #26: «카톡플친 적용가» 같은 태그 = 알약 */
.event-product-badges{display:flex;flex-wrap:wrap;gap:4px}
.event-product-badge{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--accent-tint);color:var(--accent);font-size:var(--fs-12);line-height:calc(var(--fs-12) + 6px)}
/* V5 시안 대조(10-28) #28: 의료진 위 탭 = 알약 아닌 글자 탭(현재 탭만 굵게+밑줄) */
.about-tabs .ui-pill{height:auto;padding:0 2px 10px;border:0;border-radius:0;background:none;color:#777}
.about-tabs .ui-pill[aria-current=page]{border:0;background:none;color:#1a1a1a;font-weight:700;border-bottom:2px solid #1a1a1a;text-decoration:none}
/* V5 시안 대조(10-28) #29: 의료진 이름+직함 한 줄 · 열 간격 10 · 구분선 #e5e5e5 */
.staff-grid{gap:28px 10px}
.staff-card{border-bottom-color:#e5e5e5}
.staff-name-row{justify-content:flex-start;gap:4px 12px}
.staff-position{margin:0;font-size:var(--fs-13);color:#999}
/* V5 시안 대조(10-28) #30: 시그니처 카드 하단 판 — 흰 바탕 12px 16px · 제목 18px/700 · 설명 13px #777 */
.home-signature .signature-card{padding-bottom:12px}
.home-signature .signature-card>h3{padding:12px 16px 2px;font-size:var(--fs-18);font-weight:700}
.home-signature .signature-card>p{padding:0 16px;font-size:var(--fs-13);color:#777}

/* V5 시안 대조(10-28) E2: 시술전후 라벨(날짜 포함)이 길면 줄바꿈해 잠금·로그인 버튼과 겹쳤다 — 한 줄 말줄임(전체 날짜는 카드 아래 줄에 있음) */
.bna-label{max-width:calc(100% - 16px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}
/* V5 시안 대조(10-28) E3: 칼럼 표 — 내용 폭(max-content)으로 늘리지 않고 칸 안에서 줄바꿈 (390 에서 508px 로 넘치던 것) */
.column-table-wrap table{min-width:0}
.column-table-wrap th,.column-table-wrap td{overflow-wrap:anywhere}

/* 세라미크·벨리셀 메인 구좌(콘텐츠·등장 움직임·시그니처 배경) 전용 규칙은 TW-54 에서 지웠다 — 세 브랜드가 데이뷰 daybeau/home.css 하나를 쓴다 (DIR-76) */
/* V5 시안 대조(10-29) B&A 검색: 원문 «메뉴 실시간 검색창과 같은 디자인 · 연한 회색 테두리 1px» — 메뉴 검색(.ranking-search --search-border)의 #C8C8C8 로 (다른 .site-search 는 원문이 정하지 않아 그대로) */
.bna-search input[name=q]{border-color:#c8c8c8}
/* DIR-17(renewal-v5): PC(1280~ · TW-13 분기점 그대로)는 하단 탭바 없음 — 4항목이 헤더로(로고=홈 · 이벤트 글 메뉴 · 문의·예약 강조 단추 · 장바구니 아이콘).
   탭바 높이(--tabbar-height·--tabbar-h)를 0 으로 둬 메뉴 서랍·스크림·랭킹 창·토스트·푸터 바닥 붙음이 화면 바닥 기준이 된다. 플로팅바·↑ 단추는 화면 오른쪽 아래 */
.site-header .header-actions>.header-pc{display:none}
.site-header .header-actions>.header-cart{position:relative;overflow:visible}
.site-header .header-cart .cart-badge{position:absolute;top:-6px;left:14px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:white;font:700 var(--fs-11)/calc(var(--fs-11) + 5px) var(--font-body);text-align:center}
@media(min-width:1280px){
:root{--tabbar-height:0px}
body{--tabbar-h:0px}
.bottom-nav{display:none}
.main-column{padding-bottom:0}
.site-header .header-actions{gap:20px}
.site-header .header-actions>.header-pc{display:grid}
.site-header .header-actions>.header-link{width:auto;font:600 var(--fs-nav-1)/24px var(--font-body);white-space:nowrap}
.site-header .header-actions>.header-link[aria-current=page]{color:var(--accent)}
.site-header .header-actions>.header-consult{width:auto;height:36px;max-width:none;padding:0 18px;border-radius:18px;background:var(--accent);color:white;font:600 var(--fs-14)/36px var(--font-body)}
.site-header .header-actions>.header-consult[aria-expanded=false]{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}
.site-header .header-actions>.header-cart[aria-expanded=true]{color:var(--accent)}
/* 세윤님 11-06 «헤더 너무 꽉차보인다»: 머리엔 돋보기 단추만(.header-search-toggle) — 입력칸은 헤더 바로 아래 오른쪽에 떠서 열린다(닫히면 hidden). 열기·닫기는 site.js «PC 헤더 검색» */
.site-header .header-actions{position:relative}
.site-header .header-actions>.header-search-toggle{place-items:center;width:32px;height:32px;padding:0;border:0;background:none;color:inherit}
.site-header .header-actions>.header-search-toggle svg{width:22px;height:22px}
.site-header .header-actions>.header-search-toggle[aria-expanded=true]{color:var(--accent)}
.site-header .header-actions>.header-search[hidden]{display:none}
.site-header .header-actions>.header-search{position:absolute;top:calc(100% + 14px);right:0;z-index:1;display:flex;align-items:center;width:420px;height:44px;margin:0;box-shadow:0 8px 20px rgb(0 0 0/.1);border:1px solid #c8c8c8;border-radius:6px;background:#fff;color:#1a1a1a}
.site-header .header-search input[name=q]{box-sizing:border-box;width:100%;height:100%;min-width:0;padding:0 34px 0 12px;border:0;border-radius:6px;background:transparent;color:inherit;font:400 var(--fs-13)/22px var(--font-body);text-overflow:ellipsis}
.site-header .header-search input[name=q]::placeholder{color:#999;text-overflow:ellipsis}
.site-header .header-search input[name=q]:focus{outline:0}
.site-header .header-search input[name=q]::-webkit-search-cancel-button{display:none}
.site-header .header-search:focus-within{border-color:var(--accent)}
.site-header .header-actions>.header-search button{position:absolute;top:0;right:2px;bottom:0;display:grid;place-items:center;width:32px;height:auto;padding:0;color:#777}
.site-header .header-actions>.header-search svg{width:18px;height:18px}
/* DIR-107: PC 는 햄버거를 숨겨 «실시간 인기 검색 TOP 5» 순위를 돋보기 판 입력칸 아래에 띄운다(header_search.html) — 입력칸 폭 그대로 흰 판 */
.site-header .header-search-rank{position:absolute;top:calc(100% + 6px);left:-1px;right:-1px;padding:14px 16px 8px;border:1px solid #e6e6e6;border-radius:6px;background:#fff;box-shadow:0 8px 20px rgb(0 0 0/.1)}
.site-header .header-search-rank p{margin:0 0 4px;color:#1a1a1a;font:500 var(--fs-13)/normal var(--font-body)}
.site-header .header-search-rank small{display:block;padding:8px 0;color:#999;font:400 var(--fs-13)/normal var(--font-body)}
.site-header .header-search-rank a{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;padding:9px 0;border-top:1px solid #f2f2f2;color:#333;font:400 var(--fs-13)/normal var(--font-body)}
.site-header .header-search-rank a:first-of-type{border-top:0}
.site-header .header-search-rank a:hover{color:var(--accent);text-decoration:none}
.site-header .header-search-rank b{color:#b7ada6;font-weight:600}
.site-header .header-search-rank a:nth-of-type(-n+2) b{color:var(--accent)}
.site-header .header-search-rank span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .site-header .header-actions>[data-open-dialog=category]{display:none} /* DIR-107: PC 햄버거 빼기 — 판 항목은 헤더 탭·B안 메뉴 줄·«전체 시술 보기» 판·지점 판·돋보기 판 순위로 다 닿는다. 휴대폰은 그대로 */
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .site-header .header-actions>[data-shell-search=gnb]{display:none} /* 입력칸이 있으니 PC 에선 돋보기를 접는다(검색 화면은 모바일·태블릿 돋보기·메뉴 줄이 계속 연다) */
.consult-float,.back-to-top{right:24px;bottom:24px}
/* DIR-18(renewal-v5): PC 는 플로팅바가 늘 펼쳐져 있어 ↑ 단추를 그 위로 올린다(--consult-float-h 는 site.js 가 잰 플로팅바 높이).
   헤더 문의·예약을 누르면 접는 대신 플로팅바를 1.2초 강조한다 */
.back-to-top{bottom:calc(24px + var(--consult-float-h,0px) + 12px)}
.consult-float{transition:box-shadow .2s}
.consult-float.is-attention{box-shadow:0 0 0 3px var(--accent),0 4px 16px #0003}
/* renewal-v5 10-30(⑮): PC 는 서랍이 열려도 플로팅바가 펼친 채라(DIR-18) z-index 21 인 플로팅바·↑ 가 서랍(19) 오른쪽 «+» 줄을 덮었다.
   숨기지 않고 서랍을 그 위 층으로 올린다 — 플로팅바는 계속 떠 있고(DIR-18 «항상 노출») 서랍이 안 덮는 자리(화면 가운데 지점 창의 바깥)에선 그대로 보이고 눌린다.
   랭킹 창(.ranking-dialog)은 메뉴 서랍 안에 있어 서랍 층을 따라 올라간다. 모바일은 플로팅바를 펼치면 서랍을 닫아(DIR-16) 겹칠 일이 없어 그대로 */
.category-dialog,.branch-selector{z-index:22}
}

/* 일본어·중국어 문단에 keep-all 이 걸리면 문장 전체가 한 덩어리가 되어 줄 끝에서 억지로 끊기고 «。» 가 홀로 떨어졌다 */
:is(:lang(ja),:lang(zh)) p{word-break:normal!important}

/* 병원 소개·홈 소개 구역 — 어드민에서 넣은 문구에 띄어쓰기 없는 긴 문자열이 와도 폭을 넘지 않는다(세 브랜드 공통) */
:is(.section,.home-about-copy) :is(h1,h2,h3,p,b,q,em,strong,span){overflow-wrap:anywhere}

/* 예약 화면 — 운영(Next.js) 모바일과 같은 구조. 이 안의 규칙은 전부 .reservation-page 로 좁혀 결과·조회·본인확인 화면에 번지지 않게 한다. 값은 운영 실측(products/thedaylabs/evidence/reservation-mobile/prod) */
body[data-theme=ceramique]{--rv-p:#2498bd;--rv-p6:#1c7692;--rv-p50:#e9f5f8;--rv-grad:linear-gradient(100deg,#2498bd,#b2e3f2);--rv-park:rgb(233 245 248/.5);--rv-off:rgb(233 245 248);--rv-sun:#ff4e51;--rv-sat:#c99a1f;--rv-today:#1c7692;--rv-nav:#e9f5f8;--rv-navoff:#f8f8f8;--rv-late:#1c7692;--rv-late-w:500}
body[data-theme=vellicell]{--rv-p:#ff4400;--rv-p6:#c43400;--rv-p50:#fff1ec;--rv-grad:linear-gradient(90deg,#ff8153,#ffa435 51%,#fcdeb6);--rv-park:rgb(255 241 236/.5);--rv-off:rgb(255 129 83);--rv-sun:#f87171;--rv-sunday:#dc0000;--rv-sat:#c99a1f;--rv-today:#1a1a1a;--rv-nav:#ff8153;--rv-navoff:#f8f8f8;--rv-late:#c43400;--rv-late-w:500}
body[data-theme=daybeau]{--rv-p:#e86d26;--rv-p6:#b64f13;--rv-p50:#ffddcb;--rv-grad:#e86d26;--rv-park:rgb(255 221 203/.15);--rv-off:rgb(255 221 203/.7);--rv-sun:#ff4e51;--rv-sat:#5825a3;--rv-today:#b64f13;--rv-nav:rgb(255 221 203/.7);--rv-navoff:#efefef;--rv-late:#b64f13;--rv-late-w:600}
.reservation-page{padding:42px 0 77px;font-size:var(--fs-14);letter-spacing:-.025em}
.reservation-page .rv-head h1,.reservation-page .rv-card h3,.reservation-page .rv-label,.reservation-page .rv-head h2{letter-spacing:normal}
.reservation-page .rv-head{border:0;flex-wrap:nowrap;display:flex;align-items:baseline;gap:8px;height:36px;padding:0 26px;margin:0 0 24px}
.reservation-page .rv-head h1{margin:0;font-size:var(--fs-24);line-height:calc(var(--fs-24) + 12px);font-weight:600;color:#1a1a1a}
.reservation-page .rv-head h2{margin:0;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);font-weight:600;color:#6b6b6b}
.reservation-page .booking-alert{margin:0 26px 16px}
.reservation-page .booking-form{display:block;padding:0;font-size:var(--fs-14)}
.reservation-page .booking-form label{display:block;font-size:var(--fs-14);font-weight:500;line-height:calc(var(--fs-14) + 7px);letter-spacing:-.35px;color:#1a1a1a}
.reservation-page .rv-card{margin:0 26px;padding:16px;border:1px solid #efefef;border-radius:8px;background:#fff}
.reservation-page .rv-card h3{margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid #efefef;font-size:var(--fs-16);font-weight:600;line-height:normal;color:#1a1a1a}
.reservation-page .rv-empty{margin:0;padding:40px 0;text-align:center;font-size:var(--fs-14);color:#6b6b6b}
.reservation-page .rv-card .booking-total{margin:16px 0 0;font-size:var(--fs-14)}
/* 담긴 줄 — 운영 cart-items-section.tsx 값(벨리셀·세라미크 공통, 데이뷰는 아래에서 덮는다). 빈 카드(.rv-card 만)는 위 값 그대로 */
.reservation-page .rv-cart{padding:0}
.reservation-page .rv-cart>h3{margin:0;padding:16px 16px 0;border:0;letter-spacing:-.4px}
.reservation-page .rv-cart .rv-all{margin:20px 0 0;padding:0 16px 20px;border-bottom:1px solid #efefef;align-items:center}
.reservation-page .rv-cart .rv-all input{margin:0}
.reservation-page .rv-cart .rv-all span{font-size:var(--fs-14);font-weight:500;letter-spacing:normal;color:#44403c}
.reservation-page .rv-cart .rv-all.on span{font-weight:600;color:var(--rv-p6)}
.reservation-page .rv-items{max-height:700px;overflow-y:auto;margin:4px 4px 4px 0;padding:0 16px 16px}
.reservation-page .rv-item{display:block;padding:24px 0;border-bottom:1px solid #efefef}
.reservation-page .rv-item:last-child{border-bottom:0}
.reservation-page .rv-item-head{display:flex;align-items:flex-start;gap:8px}
.reservation-page .rv-item-head .rv-check input{margin:4px 0 0}
.reservation-page .rv-item-text{flex:1;min-width:0}
.reservation-page .rv-item h4{margin:0;font-size:var(--fs-16);font-weight:600;line-height:1.45;letter-spacing:-.4px;color:#1a1a1a;overflow-wrap:anywhere}
.reservation-page .rv-item p{margin:0;white-space:pre-line;font-size:var(--fs-12);font-weight:500;line-height:normal;letter-spacing:-.3px}
.reservation-page .rv-item .rv-item-short{margin-top:8px;color:var(--rv-p6)}
.reservation-page .rv-item .rv-item-desc{margin-top:12px;color:#6b6b6b}
.reservation-page .rv-item-foot{display:flex;justify-content:space-between;align-items:center;margin-top:19px;padding-left:24px}
.reservation-page .rv-qty{display:flex;align-items:center;gap:12px}
.reservation-page .rv-qty button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid #efefef;border-radius:9999px;background:#fff;color:#535353;cursor:pointer}
.reservation-page .rv-qty button:disabled{color:#d9d9d9;cursor:default;opacity:1}
.reservation-page .rv-qty span{width:26px;text-align:center;font-size:var(--fs-16);font-weight:600;line-height:1.45;letter-spacing:-.4px;color:#1a1a1a}
.reservation-page .booking-form .rv-qty .rv-qty-native{width:72px;height:36px;padding:0 8px}
.reservation-page .rv-js .rv-qty .rv-qty-native,.reservation-page form:not(.rv-js) .rv-qty :is(button,span),.reservation-page form:not(.rv-js) .rv-cart .rv-check{display:none}
.reservation-page .rv-price{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.reservation-page .rv-price s{font-size:var(--fs-12);font-weight:500;line-height:normal;letter-spacing:-.3px;color:#6b6b6b}
.reservation-page .rv-price p{display:flex;align-items:center;gap:4px;margin:0;white-space:normal}
.reservation-page .rv-price b{font-size:var(--fs-14);font-weight:600;letter-spacing:-.35px;color:var(--rv-p6)}
.reservation-page .rv-price strong{font-size:var(--fs-16);font-weight:700;line-height:normal;letter-spacing:-.4px;color:var(--rv-p6)}
.reservation-page .rv-cart .booking-total{display:flex;justify-content:space-between;align-items:center;margin:0;padding:26px 16px;border-top:1px solid #f8f8f8}
.reservation-page .rv-cart .booking-total span{font-size:var(--fs-14);font-weight:600;line-height:normal;letter-spacing:-.325px;color:#b3b3b3}
.reservation-page .rv-cart .booking-total small{margin-left:0;font-size:var(--fs-12);font-weight:500;letter-spacing:-.3px;color:var(--rv-p6)}
.reservation-page .rv-cart .booking-total strong{font-size:var(--fs-20);font-weight:700;line-height:normal;letter-spacing:-.5px;color:var(--rv-p6)}
.reservation-page .rv-cart>.booking-note,.reservation-page .rv-cart>.rv-check:not(.rv-all){margin-left:16px;margin-right:16px}
/* 데이뷰 운영 값(apps/daybeau cart-items-section) — 검정 제목·Pretendard 줄 제목·13px 전체 선택·줄 간격 26 */
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-cart>h3{font-weight:600;color:#000}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-cart .rv-all span{font-size:var(--fs-13);font-weight:600;letter-spacing:-.325px;color:#6b6b6b}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-cart .rv-all.on span{letter-spacing:normal;color:var(--rv-p6)}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-item{padding:26px 0}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-item h4{font-family:Pretendard,system-ui,sans-serif;line-height:normal;color:#000}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-item .rv-item-short{font-weight:600}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-item .rv-item-desc{font-family:Pretendard,system-ui,sans-serif;line-height:1.45}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-item-foot{margin-top:28px}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-qty button{color:#343434}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-qty button:disabled{color:#dbdbdb}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-qty span{color:#000}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-price{gap:2px}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-price s{font-weight:600}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-price b{font-size:var(--fs-13);letter-spacing:-.325px}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-cart .booking-total{padding:21px 16px 29px;border-top-color:#efefef}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-cart .booking-total span{font-size:var(--fs-13);color:#343434}
/* 외국인 SNS — 운영 sns-input.tsx: 종류 74px + ID 나머지, 사이 8px */
.reservation-page .rv-sns{display:flex;gap:8px}
.reservation-page .booking-form .rv-field .rv-sns select{flex:none;width:74px;padding:0 8px}
.reservation-page .booking-form .rv-field .rv-sns input{flex:1;min-width:0}
.reservation-page .rv-section{padding:40px 26px 0;border:0;border-radius:0}
.reservation-page .rv-section>h3{margin:0 0 16px;font-size:var(--fs-20);line-height:calc(var(--fs-20) + 10px);font-weight:600;letter-spacing:-.5px;color:#1a1a1a}
.reservation-page .rv-lead{margin:0 0 16px;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);color:#535353}
.reservation-page .rv-radios{display:flex;gap:16px;align-items:center;margin:0 0 24px}
.reservation-page .rv-field .rv-radios{margin:0}
.reservation-page .rv-radio{display:flex!important;align-items:center;gap:8px;cursor:pointer;position:relative}
.reservation-page .rv-radio input{position:absolute;width:1px;height:1px;opacity:0;padding:0;border:0}
.reservation-page .rv-radio i{display:block;width:16px;height:16px;border:1px solid #b3b3b3;border-radius:9999px;box-sizing:border-box;position:relative}
.reservation-page .rv-radio input:checked+i{border-color:var(--rv-p)}
.reservation-page .rv-radio input:checked+i::after{content:"";position:absolute;inset:3px;border-radius:9999px;background:var(--rv-p)}
.reservation-page .rv-radio span{font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);font-weight:500;letter-spacing:-.35px;color:#535353}
.reservation-page .rv-radio input:checked~span{color:var(--rv-p6)}
.reservation-page .rv-radio input:focus-visible+i{outline:2px solid var(--rv-p);outline-offset:2px}
.reservation-page .rv-field{display:grid;gap:8px;margin:0 0 32px;padding:0;border:0;min-width:0}
.reservation-page .rv-field em,.reservation-page .rv-consent em{font-style:normal;color:var(--rv-p6)}
.reservation-page .rv-label{font-size:var(--fs-14);font-weight:500;line-height:normal;color:#000;padding:0}
.reservation-page .booking-form .rv-field input:not([type=radio]),.reservation-page .booking-form .rv-field select,.reservation-page .booking-form .rv-field textarea{width:100%;height:48px;padding:0 16px;border:1px solid #d9d9d9;border-radius:8px;background:#fff;font:500 var(--fs-14)/calc(var(--fs-14) + 7px) var(--font-body);letter-spacing:-.35px;color:#1a1a1a;box-sizing:border-box}
.reservation-page .booking-form .rv-field textarea{height:132px;padding:16px;font-size:var(--fs-13);line-height:19.5px;letter-spacing:-.325px;resize:none}
.reservation-page .booking-form .rv-field ::placeholder{color:#b3b3b3}
.reservation-page .rv-birth{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.reservation-page .rv-birth[hidden],.reservation-page .rv-cal[hidden],.reservation-page .rv-time-pick[hidden],.reservation-page .rv-native-schedule[hidden],.reservation-page .rv-birth-native[hidden]{display:none}
.reservation-page .booking-form .rv-birth select{font-weight:400;font-size:var(--fs-13);letter-spacing:-.325px;color:#535353}
.reservation-page .rv-parking{margin:0 26px;padding:26px;border-radius:8px;background:var(--rv-park)}
.reservation-page .rv-parking h3{margin:0 0 12px;font-size:var(--fs-16);line-height:calc(var(--fs-16) + 8px);font-weight:600;letter-spacing:-.4px;color:#1a1a1a}
.reservation-page .rv-parking p{margin:0 0 6px;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);font-weight:500;letter-spacing:-.35px;color:#535353}
.reservation-page .rv-parking .rv-fixed{margin-top:12px;font-weight:600;color:#ff4e51}
.reservation-page .rv-parking+.rv-section{margin-top:40px;border-top:8px solid #efefef;padding-top:50px;margin-left:0;margin-right:0;padding-left:26px;padding-right:26px}
.reservation-page .rv-cal-head{display:flex;justify-content:space-between;align-items:center;height:32px;margin:0 0 20px}
.reservation-page .rv-cal-head strong{font-size:var(--fs-18);line-height:calc(var(--fs-18) + 9px);font-weight:600;letter-spacing:-.45px;color:#1a1a1a}
.reservation-page .rv-cal-head span{display:flex;gap:16px}
.reservation-page .rv-cal-head button{width:32px;height:32px;border:0;border-radius:9999px;background:var(--rv-nav);color:#1a1a1a;font-size:var(--fs-18);line-height:1;cursor:pointer;padding:0}
.reservation-page .rv-cal-head button:disabled{background:var(--rv-navoff);color:#b3b3b3;cursor:default;opacity:1}
.reservation-page .rv-cal-wrap[hidden]{display:none}
.reservation-page .rv-cal{border:1px solid #efefef;border-radius:12px;padding:4px 5px;background:#fff}
.reservation-page .rv-cal-week,.reservation-page .rv-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.reservation-page .rv-cal-week i{font-style:normal;text-align:center;font-size:var(--fs-18);line-height:calc(var(--fs-18) + 29px);font-weight:500;color:#535353}
.reservation-page .rv-cal-week i:first-child{color:var(--rv-sun)}
.reservation-page .rv-cal-week i:last-child{color:var(--rv-sat)}
.reservation-page .rv-cal-grid button{height:47px;border:0;border-radius:9999px;background:none;font:500 var(--fs-18)/calc(var(--fs-18) + 9px) var(--font-body);color:#535353;cursor:pointer;padding:0}
.reservation-page .rv-cal-grid button.rv-sun{color:var(--rv-sunday,var(--rv-sun))}
.reservation-page .rv-cal-grid button.rv-sat{color:var(--rv-sat)}
.reservation-page .rv-cal-grid button:disabled{color:#b3b3b3;cursor:default}
.reservation-page .rv-cal-grid button.rv-sun:disabled{color:#ffc4c5}
.reservation-page .rv-cal-grid button[aria-pressed=true]{background:var(--rv-p);color:#fff}
.reservation-page .rv-time{margin:4px -5px 0;border-top:1px solid #efefef;padding:20px 0 0;text-align:center}
.reservation-page .rv-time>p[data-time-hint]{margin:60px 0;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);font-weight:500;letter-spacing:-.35px;color:#535353}
.reservation-page .rv-time-pick{display:flex;gap:10px;padding:20px 16px 8px}
.reservation-page .booking-form .rv-time-pick select{flex:1;height:48px;padding:0 16px;border:1px solid #d9d9d9;border-radius:8px;background:#fff;font:500 var(--fs-14)/calc(var(--fs-14) + 7px) var(--font-body);color:#1a1a1a}
.reservation-page .rv-legend{display:flex;justify-content:center;gap:16px;margin:0;padding:16px 0;font-size:var(--fs-12);line-height:calc(var(--fs-12) + 6px);font-weight:500;letter-spacing:-.3px;color:#535353}
.reservation-page .rv-legend span{display:flex;align-items:center;gap:4px}
.reservation-page .rv-legend span::before{content:"";width:16px;height:16px;border-radius:9999px;background:#efefef;box-sizing:border-box}
.reservation-page .rv-legend span.on::before{background:#fff;border:1px solid #b3b3b3}
.reservation-page .rv-consents{padding:32px 26px 0}
.reservation-page .rv-consent{display:flex;justify-content:space-between;align-items:flex-start;margin:0 0 16px}
.reservation-page .rv-consent button{border:0;background:none;padding:0;font:500 var(--fs-14)/calc(var(--fs-14) + 6.3px) var(--font-body);color:var(--rv-p6);text-decoration:underline;cursor:pointer}
.reservation-page .rv-check{display:flex!important;gap:8px;align-items:flex-start;cursor:pointer}
.reservation-page .rv-check input{appearance:none;flex:none;width:16px;height:16px;margin:2px 0 0;padding:0;border:1px solid #d9d9d9;border-radius:4px;background:#fff;box-sizing:border-box}
.reservation-page .rv-check input:checked{background:var(--rv-p) url('./icons/check-white.svg') center/16px no-repeat;border-color:var(--rv-p)}
.reservation-page .rv-check span{font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);font-weight:500;letter-spacing:-.35px;color:#1a1a1a}
.reservation-page .rv-minor{margin:24px -26px 0;border:1px solid #d9d9d9;border-width:1px 0}
.reservation-page .rv-minor summary{padding:18px 26px;font-size:var(--fs-15);line-height:calc(var(--fs-15) + 7.5px);font-weight:600;letter-spacing:-.38px;color:#1a1a1a;cursor:pointer}
.reservation-page .rv-minor p{margin:0;padding:0 26px 18px;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);color:#535353}
.reservation-page .rv-consents .booking-note{margin:16px 0 0}
.reservation-page .rv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.reservation-page .rv-submit-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:var(--tabbar-height);z-index:9998;box-sizing:border-box;width:min(100%,600px);height:77px;padding:10px 26px;background:#fff;border:1px solid #efefef}
/* DIR-46 PC(≥1280) = 운영 모바일 예약 화면을 PC 폭(본문 880)으로 펼친 모양 — 하단 단추 띠도 본문과 같은 폭, 단추는 카드와 같은 폭(좌우 66 = 쪽 여백 40 + 카드 26) */
@media(min-width:1280px){.reservation-page .rv-submit-bar{width:880px;padding:10px 66px}}
.reservation-page .rv-submit-bar .booking-submit{display:block;width:100%;height:56px;padding:0 16px;border:0;border-radius:8px;background:var(--rv-grad);color:#fff;font:600 var(--fs-18)/normal var(--font-body)}
.reservation-page .rv-submit-bar .booking-submit:disabled{opacity:.5}
.reservation-page .rv-modal{max-width:min(90vw,420px);border:0;border-radius:12px;padding:24px}
.reservation-page .rv-modal h3{margin:0 0 12px;font-size:var(--fs-16)}
.reservation-page .rv-modal p{margin:0 0 16px;font-size:var(--fs-14);line-height:calc(var(--fs-14) + 7px);color:#535353}
.reservation-page .rv-modal button{width:100%;height:48px;border:0;border-radius:8px;background:var(--rv-p);color:#fff;font:600 var(--fs-16) var(--font-body)}
/* 모바일 /reservation 은 하단 단추가 위치를 쓴다 — 우하단 플로팅바·맨위로 단추는 숨긴다(DIR-16 예외) */
@media(max-width:1279px){body.reservation .consult-float,body.reservation .back-to-top{display:none!important}}
.reservation-page [hidden]{display:none!important}
.reservation-page .rv-cal-grid button.rv-today{color:var(--rv-today)}
.reservation-page .rv-cal-grid button.rv-today[aria-pressed=true]{color:#fff}
/* 명동(KOS) 날짜 밑 한 줄 — 운영 calendar.css:255-307 (.day-label · --has-label · --open/--closed · 선택 칸은 숫자 색 88%) */
.reservation-page .rv-cal-grid button.rv-has-label{position:relative}
.reservation-page .rv-cal-grid button.rv-has-label>span:first-child{display:inline-block;transform:translateY(-6px)}
.reservation-page .rv-day-label{position:absolute;bottom:3px;left:0;right:0;padding:0 1px;text-align:center;font-size:var(--fs-8-5);line-height:1.1;letter-spacing:-.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reservation-page .rv-day-label--open{color:var(--rv-p)}
.reservation-page .rv-day-label--closed{color:#b3b3b3}
.reservation-page .rv-cal-grid button[aria-pressed=true] .rv-day-label{color:inherit;opacity:.88}
.reservation-page .rv-tag{font-weight:500;color:#6b6b6b}
.reservation-page .rv-tag.on{color:var(--rv-p6)}
.reservation-page .rv-minor summary{display:flex;align-items:center;gap:8px;list-style:none}
.reservation-page .rv-minor summary::-webkit-details-marker{display:none}
.reservation-page .rv-minor summary::before{content:"";flex:none;width:6px;height:6px;border-radius:9999px;background:var(--rv-p)}
.reservation-page .rv-minor summary::after{content:"";margin-left:auto;width:8px;height:8px;border:solid #6b6b6b;border-width:0 1.5px 1.5px 0;transform:rotate(45deg) translateY(-2px)}
.reservation-page .rv-minor[open] summary::after{transform:rotate(-135deg)}
.reservation-page .rv-field .rv-radio span{font-weight:400}
.reservation-page .rv-cal{letter-spacing:normal}
.reservation-page .rv-empty{letter-spacing:normal;line-height:normal}
main.reservation-page.section{padding:42px 0 77px}
.reservation-page .rv-late{margin:40px 0 32px;padding-top:6px;font-size:var(--fs-14);line-height:145%;font-weight:var(--rv-late-w);color:var(--rv-late)}
.reservation-page em,.reservation-page .rv-consent button,.reservation-page .rv-submit-bar .booking-submit,.reservation-page .rv-cal-week i,.reservation-page .rv-cal-grid button{letter-spacing:normal}
.reservation-page .rv-label em{font-weight:600}
.reservation-page .rv-field .rv-radio span{line-height:normal}
/* 예약 화면 값 — 세 브랜드 같음(DIR-76). 브랜드마다 다른 건 색뿐: 벨리셀 주차 안내 연한 빨강 */
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page :is(.rv-head h1,.rv-card h3,.rv-section>h3,.rv-parking h3,.rv-cal-head strong,.rv-minor summary,.rv-check span){color:#000}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page :is(.rv-card h3,.rv-section>h3,.rv-parking h3,.rv-cal-head strong){font-weight:700}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-submit-bar .booking-submit{font-weight:700;letter-spacing:-.45px}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page :is(.rv-check span,.rv-tag,.rv-consent button,.rv-field .rv-radio span){font-weight:600}
body[data-theme=vellicell] .reservation-page .rv-parking .rv-fixed{color:#f87171}
.reservation-page .rv-consent button{border-radius:8px}
/* DIR-38 — 예약 모바일은 운영 머리 값(높이 56·좌우 26·흰 배경·그림자)을 따른다. 다른 화면은 시안 값 그대로 */
@media(max-width:1279px){body.reservation[data-theme] .site-header{height:56px;min-height:56px;padding-left:26px;padding-right:26px;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 4px 10px rgba(0,0,0,.04)}}
body:is([data-theme=daybeau],[data-theme=ceramique],[data-theme=vellicell]) .reservation-page .rv-time>p[data-time-hint]{font-weight:600;color:#000}
.reservation-page .rv-time>p.rv-star::before{content:"* ";color:var(--rv-p6)}
.reservation-page .booking-form label em{font-weight:500}
/* 운영 바닥글 «상담문의» 전화 상자 (renewal-v5 DIR-41 · TW-12 전 모양 그대로) */
.site-footer .footer-contact{width:300px;max-width:100%;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:8px;background:#4a4a4a;padding:0 16px;color:#f5f5f5;font-size:var(--fs-14);font-weight:700;line-height:1.5;text-decoration:none}
@media(min-width:600px){.site-footer .footer-contact{width:378px;gap:20px;padding:0 20px;font-size:var(--fs-16)}}
/* renewal-v5 floating-overlap (TW-35): 모바일·태블릿(~1279)은 상담 플로팅바가 쪽마다 펼친 채 시작한다(DIR-16).
   히어로 글(작은 제목·큰 제목·설명)이 그 밑으로 들어가지 않게 오른쪽을 비운다 — 플로팅바 오른쪽 띄움(위 .consult-float 의 right 와 같은 식: 390 폭 12px · 768 폭 96px)
   + 79px(플로팅바 폭: 칸 67 + 안쪽 여백 6×2) + 12px(사이). 히어로가 화면 폭 그대로라 vw 로 맞춘다.
   세라미크·벨리셀 공통(벨리셀은 이 파일 다음에 자기 site.css 를 얹는다). PC(1280~)는 플로팅바가 쪽 밖 오른쪽 아래라 그대로 */
@media(max-width:1279px){.hero-copy{right:calc(max(12px,50vw - 288px) + 91px)}}
/* 404 «이전 페이지로» — 홈으로 링크 옆 (TW-54) */
.not-found-page .not-found-back{margin-left:16px;color:var(--text-sub,#6b6b6b)}
