/* ============================================================
   뷰티아리아 실제 메인페이지 이미지로 교체 (dark 시안)
   - 원본은 assets/images 합성 PNG(스프라이트)를 썼으나,
     실제 사이트의 /assets/img/* 사진으로 대체한다.
   ============================================================ */

/* 히어로: 배경은 아래 슬라이더 레이어가 담당 → 단일 이미지 제거 */
.dark-hero{background-image:none !important;background-color:#171513 !important}
.theme-dark .bottom-cta{
  background-image:linear-gradient(90deg,transparent 0%,#171311bd 50%,#1713119e),
    url('/assets/img/hero/14.webp') !important;
  background-position:center 22% !important;
}

/* 시그니처(소개) 원형 인물 · 공간 오브 — 얼굴이 잘 보이게 오른쪽 위 크롭 */
.signature-portrait{background:url('/assets/img/hero/15.webp') 72% 24%/cover !important}
.room-orb{background:url('/assets/img/hero/cosmetics.jpg') center/cover !important;opacity:1 !important}

/* 스타일(프로그램) 카드 4종 → 실제 스타일 사진 */
.program-card .portrait,
.review-grid .avatar{
  background-image:none !important;background-size:cover !important;background-position:center top !important;
}
.program-grid .program-card:nth-child(1) .portrait{background-image:url('/assets/img/style/style-bridal.webp') !important}
.program-grid .program-card:nth-child(2) .portrait{background-image:url('/assets/img/style/style-mother.webp') !important}
.program-grid .program-card:nth-child(3) .portrait{background-image:url('/assets/img/style/style-party.webp') !important}
.program-grid .program-card:nth-child(4) .portrait{background-image:url('/assets/img/style/style-daily.webp') !important}

/* 갤러리(인스타) — 인스타 API가 인라인으로 채우므로 !important 미사용(폴백 이미지) */
.gallery-grid .portrait{background-image:none;background-size:cover;background-position:center}
.gallery-grid .portrait:nth-child(1){background-image:url('/assets/img/portfolio/portfolio-01.webp')}
.gallery-grid .portrait:nth-child(2){background-image:url('/assets/img/portfolio/portfolio-02.webp')}
.gallery-grid .portrait:nth-child(3){background-image:url('/assets/img/portfolio/portfolio-03.webp')}
.gallery-grid .portrait:nth-child(4){background-image:url('/assets/img/portfolio/portfolio-04.webp')}
.gallery-grid .portrait:nth-child(5){background-image:url('/assets/img/portfolio/portfolio-05.webp')}
.gallery-grid .portrait:nth-child(6){background-image:url('/assets/img/portfolio/portfolio-06.webp')}
.gallery-grid .portrait:nth-child(7){background-image:url('/assets/img/portfolio/portfolio-07.webp')}

/* 후기 아바타 */
.review-grid blockquote:nth-child(1) .avatar{background:url('/assets/img/insta/17968839602915188.jpg') center/cover !important}
.review-grid blockquote:nth-child(2) .avatar{background:url('/assets/img/insta/17973974943063060.jpg') center/cover !important}
.review-grid blockquote:nth-child(3) .avatar{background:url('/assets/img/insta/17974039838888568.jpg') center/cover !important}

/* 가격 카드: 실제 페이지는 금액 미표기 → '자세히 보기' 링크만 강조 */
.prices .price-card>a{margin-top:6px;font-weight:700}

/* ============================================================
   가독성 — 현재 메인페이지 기준으로 폰트 정렬 (dark 시안 전용)
   메인: 본문/설명 15~16.5px · 카드 제목 20~21px · 라벨 13px
        · 버튼 15px · 내비 16px
   ============================================================ */
.theme-dark{font-size:16px}
.eyebrow{font-size:13px !important;letter-spacing:.22em}
.brand small{font-size:8px !important;letter-spacing:.3em}
.main-nav{font-size:16px !important}
.pill{font-size:15px !important;min-height:46px}
.mobile-nav a{font-size:16px !important}

/* 히어로 */
.hero-copy>p{font-size:16.5px !important;line-height:1.8}
.hero-count{font-size:13px !important}

/* 소개(시그니처) */
.signature-content>p{font-size:16px !important;line-height:1.85}
.signature-benefits strong{font-size:15px !important}
.signature-benefits small{font-size:13px !important}

/* 스타일(프로그램) */
.program-top p{font-size:15px !important;line-height:1.8}
.program-body h3{font-size:20px !important}
.program-body p{font-size:14px !important;line-height:1.7}
.program-body a{font-size:13px !important}

/* 갤러리 */
.gallery-copy p{font-size:15px !important;line-height:1.85}

/* 시술안내(가격) */
.section-heading p{font-size:15px !important}
.price-card h3{font-size:20px !important}
.price-card>p{font-size:14px !important}
.price-card li{font-size:15px !important;line-height:1.9}
.price-card>a{font-size:13px !important;height:40px}

/* 예약/문의 */
.contact-info>p{font-size:15px !important;line-height:1.75}
.info-box strong{font-size:15px !important}
.info-box small{font-size:13px !important}
.contact-form label{font-size:13px !important}
.contact-form input:not([type=checkbox]),.contact-form textarea{font-size:15px !important}
.contact-form .agree{font-size:13px !important}
.contact-form button{font-size:15px !important;min-height:46px}
.location-card>p{font-size:14px !important}

/* 후기 */
.stars{font-size:18px !important}
.review-grid blockquote p{font-size:15px !important;line-height:1.8}
.review-grid footer{font-size:13px !important}

/* 하단 CTA · 푸터 */
.bottom-cta h2{font-size:30px !important}
.bottom-cta p{font-size:15px !important}
.footer-inner nav{font-size:14px !important}
.footer-inner p{font-size:13px !important;line-height:1.9}

@media(max-width:760px){
  .main-nav{font-size:15px !important}
  .hero-copy>p{font-size:15.5px !important}
  .bottom-cta h2{font-size:22px !important}
}

/* ============================================================
   추가 기능 (메인페이지 이식)
   ============================================================ */

/* ── 히어로 3장 크로스페이드 슬라이더 ── */
.dark-hero{position:relative;overflow:hidden}
.dhero-slides{position:absolute;inset:0;z-index:0;overflow:hidden}
.dhero-bg{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;
  opacity:0;animation:dkenBurns 22s ease-in-out infinite alternate, dheroFade3 27s ease-in-out infinite}
.dhero-1{background-image:url('/assets/img/hero/14.webp');opacity:1;animation-delay:0s,0s}
.dhero-2{background-image:url('/assets/img/hero/15.webp');animation-delay:0s,9s}
.dhero-3{background-image:url('/assets/img/hero/20.webp');animation-delay:0s,18s}
.dhero-scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,#100f0eec 0%,#171513c4 34%,#1715137a 60%,transparent 82%)}
.dark-hero .hero-inner{position:relative;z-index:2}
@keyframes dheroFade3{0%{opacity:1}30%{opacity:1}36%{opacity:0}94%{opacity:0}100%{opacity:1}}
@keyframes dkenBurns{0%{transform:scale(1)}100%{transform:scale(1.1)}}

/* ── 상단 헤더 스크롤 고정 + 로고 ── */
.site-header{position:fixed !important;background:transparent;transition:background .3s ease,box-shadow .3s ease}
.site-header.scrolled{background:rgba(23,19,17,.94);backdrop-filter:blur(10px);box-shadow:0 2px 22px rgba(0,0,0,.4)}
.site-header .brand-logo-img{height:34px;width:auto;display:block}
.site-footer .brand-logo-img{height:30px;width:auto;display:block}
section[id]{scroll-margin-top:76px}

/* ── 플로팅 버튼 ── */
.float-wrap{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));
  z-index:999;display:flex;flex-direction:column;gap:10px;align-items:flex-end;pointer-events:none}
.float-wrap>*{pointer-events:auto}
.fb{display:flex;align-items:center;gap:10px;width:56px;height:56px;border-radius:100px;color:#fff;border:none;
  cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:all .35s cubic-bezier(.4,.1,.25,1);
  overflow:hidden;white-space:nowrap;text-decoration:none}
.fb-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;flex-shrink:0;border-radius:50%}
.fb svg.fb-icon{width:56px;height:56px;padding:17px;box-sizing:border-box}
.naver-n{font-weight:800;font-size:26px;font-family:'Noto Sans KR',sans-serif}
.fb-lbl{padding-right:20px;opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .3s;font-size:14px;font-weight:600}
.fb:hover{width:150px;border-radius:100px}
.fb:hover .fb-lbl{opacity:1;transform:none}
.fb-naver{background:#03c75a}.fb-naver:hover{background:#02a84b}
.fb-kakao{background:#ffe812;color:#3a1c1c}.fb-kakao:hover{background:#f5d800}
.fb-call{background:linear-gradient(135deg,#e39caf,#c76b83)}.fb-call:hover{filter:brightness(1.08)}
.fb-form{background:#241d1b;border:2px solid #c76b83}.fb-form:hover{background:#c76b83}
.fb-top{background:#fff;color:#2c2320;border:1px solid #e5d8d0;opacity:0;pointer-events:none;transform:translateY(10px);transition:all .3s}
.fb-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
@media(max-width:760px){.fb-lbl{display:none}.fb:hover{width:56px}}

/* ── 네이버 리뷰 버튼 ── */
.rv-cta{text-align:center;margin-top:34px}
.rv-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:15px 32px;
  background:#03c75a;color:#fff;border-radius:12px;font-size:15px;font-weight:700;text-decoration:none;
  box-shadow:0 12px 28px -10px rgba(3,199,90,.6);transition:transform .2s,box-shadow .2s}
.rv-btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px -10px rgba(3,199,90,.7)}
.rv-btn .n-b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  background:#fff;color:#03c75a;border-radius:5px;font-size:13px;font-weight:800}

/* ── 카카오 지도(roughmap): 고정폭 지도를 중앙 정렬(마커가 항상 보이게) ── */
.map-embed{border-radius:14px;overflow:hidden;border:1px solid #ece4df;background:#f3ece7}
.map-embed .root_daum_roughmap{position:relative;left:50%;transform:translateX(-50%);max-width:none !important}
.map-embed .root_daum_roughmap .cont{display:none !important}
.map-embed .root_daum_roughmap .wrap_controllers{display:none}

/* ── 히어로 인디케이터(01·02·03) 슬라이드 동기화 ── */
.hero-count .hc{opacity:.45;color:#fff;font-weight:600;transition:opacity .3s,color .3s}
.hero-count .hc.active{opacity:1;color:#fff;font-weight:700}

/* ── 프로그램 카드: 텍스트를 이미지 위로(오버레이) + 숫자 제거 + 호버 시 컬러 버튼 ── */
.program-card{position:relative;height:420px !important;background:#171513 !important}
.program-card>.portrait{position:absolute !important;inset:0 !important;height:100% !important;border-radius:0 !important}
.program-card::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(14,11,10,.94) 0%,rgba(14,11,10,.55) 36%,rgba(14,11,10,.05) 62%,transparent 82%)}
.program-body{position:absolute !important;left:0;right:0;bottom:0;z-index:2;
  background:transparent !important;padding:22px 20px !important;min-height:0 !important;color:#fff}
.program-body .number{display:none !important}
.program-body h3{color:#fff !important;font-size:20px !important;margin:0 0 8px !important}
.program-body p{color:rgba(255,255,255,.84) !important;font-size:14px !important;line-height:1.6;margin:0 0 14px !important}
.program-body a{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:100px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.5);color:#fff !important;
  font-weight:600;font-size:13px !important;transition:background .28s,border-color .28s,box-shadow .28s,transform .28s}
.program-card:hover .program-body a{background:linear-gradient(135deg,#e39caf,#c76b83);border-color:transparent;
  box-shadow:0 10px 22px -8px rgba(199,107,131,.75)}
/* hover: 카드 이동 없이 사진만 서서히 살짝 확대 */
.program-card:hover{transform:none !important}
.program-card>.portrait{transition:transform 1.2s cubic-bezier(.2,.6,.2,1) !important}
.program-card:hover>.portrait{transform:scale(1.05) !important}
@media(max-width:760px){.program-card{height:400px !important}}

/* 좌우 이동 버튼(‹ ›): 모바일 가로 스크롤용 → 데스크톱에선 숨김, 화살표 중앙 정렬 */
.round-controls button{display:flex;align-items:center;justify-content:center;line-height:1;padding:0}
@media(min-width:761px){.round-controls{display:none}}

/* ── 섹션 상하 여백 확대 (너무 붙어 보이던 것 개선) ── */
.section{padding:110px 0 !important}
@media(max-width:760px){.section{padding:68px 0 !important}}

/* ── 모바일 히어로: 인물 얼굴(우측 상단)이 나오도록 크롭 위치 조정 ── */
@media(max-width:760px){
  .dhero-bg{background-position:70% center !important}
  .dhero-1{background-position:67% 18% !important}
  .dhero-2{background-position:70% 20% !important}
  .dhero-3{background-position:73% 16% !important}
}

/* ── 갤러리(인스타): 카피↔이미지 간격 확대 + 이미지 크게 ── */
@media(min-width:761px){
  .gallery-layout{grid-template-columns:240px 1fr !important;gap:60px !important}
  .gallery-grid{grid-template-rows:216px 216px !important;gap:10px !important}
}
@media(max-width:760px){
  .gallery-grid{grid-template-rows:158px 158px !important;gap:9px !important}
}

/* ── 개인정보 '자세히' 인라인 펼침 (메인페이지 방식) ── */
.contact-form .agree-more{color:#b5516c;text-decoration:underline;cursor:pointer;margin-left:4px;font-weight:600}
.agree-detail{margin:0}
.agree-detail .pv-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #ece4df;border-radius:8px;overflow:hidden;font-size:12px}
.agree-detail .pv-table th{background:#f7f1ee;color:#6b5d56;text-align:left;padding:8px 10px;white-space:nowrap;width:34%;font-weight:700;vertical-align:top;border-bottom:1px solid #f0e8e3}
.agree-detail .pv-table td{padding:8px 10px;color:#5a4f4b;line-height:1.55;border-bottom:1px solid #f0e8e3}
.agree-detail .pv-table tr:last-child th,.agree-detail .pv-table tr:last-child td{border-bottom:none}

/* ============================================================
   갤러리 재구성 — 헤더 상단 중앙 + 균일 정사각 타일 + 호버 인스타 오버레이
   (기존 feature 스팬 방식의 겹침 문제 해결)
   ============================================================ */
#gallery .gallery-layout{display:block !important}
#gallery .gallery-copy{max-width:660px;margin:0 auto 42px !important;text-align:center}
#gallery .gallery-copy h2{margin-bottom:14px}
#gallery .gallery-copy p{margin-left:auto;margin-right:auto}
#gallery .gallery-copy .pill{margin-top:22px}

#gallery-grid.gallery-grid{
  grid-template-columns:repeat(4,1fr) !important;
  grid-template-rows:none !important;grid-auto-rows:1fr !important;
  gap:12px !important;
}
#gallery-grid .portrait{
  aspect-ratio:1/1;height:auto !important;min-height:0 !important;width:auto !important;
  border-radius:14px;position:relative;overflow:hidden;
  transition:box-shadow .3s, filter .3s;
}
/* feature 클래스가 남아 있어도 특수 크기 해제 */
#gallery-grid .portrait.feature{grid-column:auto !important;grid-row:auto !important}
/* 어둡게 + 인스타 아이콘 오버레이 */
#gallery-grid .portrait::before{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(to top,rgba(18,13,12,.6),rgba(18,13,12,.05) 55%);
  opacity:0;transition:opacity .3s}
#gallery-grid .portrait::after{content:"";position:absolute;z-index:3;left:50%;top:50%;
  width:34px;height:34px;transform:translate(-50%,-50%) scale(.6);opacity:0;
  transition:opacity .32s,transform .32s;
  background:center/contain no-repeat
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23fff'%20stroke-width='2'%3E%3Crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='5'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='4'/%3E%3Ccircle%20cx='17.5'%20cy='6.5'%20r='1.4'%20fill='%23fff'%20stroke='none'/%3E%3C/svg%3E");
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
#gallery-grid .portrait:hover{box-shadow:0 16px 34px -14px rgba(0,0,0,.6);filter:saturate(1.05)}
#gallery-grid .portrait:hover::before{opacity:1}
#gallery-grid .portrait:hover::after{opacity:1;transform:translate(-50%,-50%) scale(1)}
/* 8번째 타일 폴백 이미지 */
.gallery-grid .portrait:nth-child(8){background-image:url('/assets/img/portfolio/portfolio-08.webp')}

@media(max-width:900px){#gallery-grid.gallery-grid{grid-template-columns:repeat(3,1fr) !important}}
@media(max-width:520px){#gallery-grid.gallery-grid{grid-template-columns:repeat(2,1fr) !important;gap:9px !important}}

/* ============================================================
   가격 카드 — 여백 확대 + 호버 효과
   ============================================================ */
.price-grid{gap:22px !important}
.price-card{padding:32px 26px 28px !important;border:1px solid #efe6e0;border-radius:16px !important;
  position:relative;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s !important}
.price-card h3{margin-bottom:8px !important}
.price-card>p{margin-bottom:22px !important;font-size:14px !important}
.price-card ul{margin-bottom:24px !important}
.price-card li{padding:7px 0 !important;line-height:1.85 !important}
/* 상단 그라데이션 액센트 바 (호버 시 좌→우) */
.price-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:2;
  background:linear-gradient(90deg,#e39caf,#c76b83);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.price-card:hover::before{transform:scaleX(1)}
.price-card:hover{transform:translateY(-8px);box-shadow:0 26px 52px -22px rgba(143,74,91,.42)}
/* '자세히 보기' 버튼: 호버 시 로즈 컬러 버튼으로 */
.price-card>a{transition:background .28s,color .28s,border-color .28s,box-shadow .28s !important}
.price-card:not(.featured):hover>a{background:linear-gradient(135deg,#e39caf,#c76b83) !important;
  border-color:transparent !important;color:#fff !important;box-shadow:0 8px 18px -8px rgba(199,107,131,.7)}
/* BEST(혼주) 다크 카드 */
.price-card.featured{transform:translateY(-10px) !important;border-color:#2c2526}
.price-card.featured:hover{transform:translateY(-16px) !important;box-shadow:0 32px 60px -22px rgba(0,0,0,.6)}
.price-card.featured:hover>a{filter:brightness(1.08)}
@media(max-width:760px){
  .price-card.featured,.price-card.featured:hover{transform:none !important}
}

/* ============================================================
   예약/문의 섹션 재구성 — [정보 | 폼] 2열 + 지도 전체폭
   ============================================================ */
.contact-grid{grid-template-columns:0.92fr 1.25fr !important;
  grid-template-areas:"info form" "map map" !important;gap:30px 34px !important;align-items:start}
.contact-info{grid-area:info}
.contact-form{grid-area:form}
.location-card{grid-area:map;background:transparent !important;box-shadow:none !important;border:none !important;padding:0 !important}
@media(max-width:760px){
  .contact-grid{grid-template-columns:1fr !important;grid-template-areas:"info" "form" "map" !important}
  .contact-info{grid-column:auto !important}
}

/* 폼: 2열 행 + 필드 크게 */
.contact-form{padding:24px !important;gap:14px !important}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cf-row>label{margin:0}
.cf-empty{display:block}
@media(max-width:520px){.cf-row{grid-template-columns:1fr}.cf-empty{display:none}}
.contact-form select{display:block;width:100%;margin-top:5px;border:1px solid #ebe7e6;border-radius:8px;
  padding:11px 12px;font-size:15px;color:#473d3d;background:#fff;outline-color:#c7788d;font-family:inherit}
.contact-form select:focus{outline:none;border-color:#c76b83}
.contact-form input:not([type=checkbox]),.contact-form textarea{border-radius:8px !important;padding:11px 12px !important}
.contact-form input[type=date],.contact-form input[type=time]{color:#473d3d}

/* 지도 하단 캡션 */
.loc-cap{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px}
.loc-cap p{margin:0;font-size:14px !important;color:#5a4f4b}
.loc-cap p b{color:#2c2320}
.loc-cap .pill{min-height:40px;padding:0 20px}

/* ============================================================
   예약/문의 섹션 — 전체 재디자인 (ct-*)
   [폼 | 정보카드] 2열 + 지도 전체폭
   ============================================================ */
.contact{background:#fff}
.ct-head{text-align:center;max-width:660px;margin:0 auto 46px}
.ct-head .eyebrow{margin-bottom:12px}
.ct-title{font:600 clamp(26px,2.6vw,36px)/1.4 'Noto Serif KR',serif;color:#2c2320;margin:0 0 14px}
.ct-sub{font-size:15px;color:#7a6e68;line-height:1.85}
.ct-sub strong{color:#c76b83}

.ct-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:26px;align-items:start}
@media(max-width:820px){.ct-grid{grid-template-columns:1fr;gap:20px}}

/* 폼 */
.ct-form{background:#faf6f3;border:1px solid #efe4dd;border-radius:20px;padding:28px;display:grid;gap:16px}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.ct-row{grid-template-columns:1fr}.ct-spacer{display:none}}
.ct-form label{display:block;font-size:13px;font-weight:600;color:#5a4f4b}
.ct-form label em{color:#c76b83;font-style:normal;margin-left:2px}
.ct-form input,.ct-form select,.ct-form textarea{font-family:inherit;font-size:15px;color:#2c2320;
  padding:12px 14px;border:1px solid #e6dcd5;border-radius:10px;background:#fff;width:100%;margin-top:7px}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{outline:none;border-color:#c76b83;box-shadow:0 0 0 3px rgba(199,107,131,.14)}
.ct-form textarea{resize:vertical;min-height:120px}
.ct-form input[readonly]{cursor:pointer;background:#fff}
.ct-form label.ct-agree{display:flex !important;flex-direction:row !important;align-items:flex-start;gap:8px;
  font-size:13px;color:#7a6e68;font-weight:400;line-height:1.6;margin-top:2px}
.ct-form label.ct-agree>input{flex:0 0 auto;margin:2px 0 0;width:auto}
.ct-form label.ct-agree>span{flex:1 1 auto;min-width:0;text-align:left}
.ct-form label.ct-agree .agree-more,.ct-form label.ct-agree .agree-link{color:#c76b83;text-decoration:underline;cursor:pointer;margin-left:6px;white-space:nowrap}
.ct-submit{border:0;border-radius:100px;background:linear-gradient(135deg,#e39caf,#c76b83);color:#fff;
  font-size:15px;font-weight:700;min-height:52px;cursor:pointer;
  box-shadow:0 14px 28px -10px rgba(199,107,131,.6);transition:filter .2s,transform .2s}
.ct-submit:hover{filter:brightness(1.05);transform:translateY(-2px)}
.ct-form .form-message{font-size:12.5px;color:#c76b83;margin:0;min-height:14px}

/* 정보 카드 */
.ct-info{display:grid;gap:12px;align-content:start}
.ct-info .ci-card{display:flex;align-items:flex-start;gap:13px;background:#fff;border:1px solid #efe4dd;border-radius:14px;padding:16px 18px}
.ct-info .ci-card>svg{flex:0 0 auto;color:#c76b83;margin-top:3px;width:22px;height:22px}
.ct-info .ci-card strong{display:block;font-size:16px;color:#2c2320;margin-bottom:5px}
.ct-info .ci-card p{margin:0;font-size:14.5px;color:#6b5f59;line-height:1.6}
.ct-info .ci-card a{color:#c76b83}

/* 지도 — 전체폭, 중앙 정렬(마커가 항상 보이게) */
.ct-map{margin-top:30px;border-radius:20px;overflow:hidden;border:1px solid #efe4dd;background:#f3ece7}
.ct-map .root_daum_roughmap{position:relative;left:50%;transform:translateX(-50%);max-width:none !important}
.ct-map .root_daum_roughmap .cont,
.ct-map .root_daum_roughmap .wrap_controllers{display:none !important}

/* ── 개인정보처리방침 레이어 팝업 ── */
.pv-modal{position:fixed;inset:0;z-index:9000;background:rgba(20,10,15,.55);
  display:flex;align-items:center;justify-content:center;padding:20px}
.pv-modal[hidden]{display:none}
.pv-modal-box{background:#fff;border-radius:14px;width:100%;max-width:640px;
  height:86vh;max-height:760px;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.35)}
.pv-modal-head{display:flex;align-items:center;justify-content:space-between;
  padding:15px 20px;border-bottom:1px solid #ebe3de;background:#fff}
.pv-modal-head b{font-size:15.5px;color:#2c2320}
.pv-modal-x{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:#999;padding:0 4px}
.pv-modal-x:hover{color:#2c2320}
.pv-modal-box iframe{flex:1;width:100%;border:0;display:block}

/* ============================================================
   FAQ 섹션 — 아코디언
   ============================================================ */
.faq{background:#faf7f5}
.faq-list{max-width:820px;margin:0 auto;display:grid;gap:0}
.faq-item{border-bottom:1px solid #ece4de}
.faq-item:first-child{border-top:1px solid #ece4de}
.faq-item dt button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;
  background:none;border:none;padding:22px 4px;cursor:pointer;
  font:600 16.5px/1.55 'Noto Sans KR',sans-serif;color:#2c2320;text-align:left;transition:color .2s}
.faq-item dt button:hover{color:#c76b83}
.faq-icon{position:relative;flex:0 0 28px;width:28px;height:28px;border-radius:50%;border:1.5px solid #ddd3cc;transition:border-color .2s,transform .3s}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;top:50%;left:50%;background:#8c7e76;border-radius:1px;transition:background .2s,transform .3s}
.faq-icon::before{width:12px;height:2px;transform:translate(-50%,-50%)}
.faq-icon::after{width:2px;height:12px;transform:translate(-50%,-50%)}
.faq-item.open .faq-icon{border-color:#c76b83}
.faq-item.open .faq-icon::before,.faq-item.open .faq-icon::after{background:#c76b83}
.faq-item.open .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item dd{overflow:hidden;max-height:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),padding .3s;
  padding:0 4px;margin:0;font-size:15px;color:#6b5f59;line-height:1.85}
.faq-item.open dd{max-height:320px;padding:0 4px 24px}
@media(max-width:760px){
  .faq-item dt button{font-size:15px;padding:18px 2px}
  .faq-item.open dd{padding:0 2px 20px}
  .faq-icon{flex:0 0 24px;width:24px;height:24px}
  .faq-icon::before{width:10px}
  .faq-icon::after{height:10px}
}

/* ============================================================
   히어로 하단 곡선 — 히어로 아래 모서리를 곡선으로 잘라내고
   소개 섹션을 그 아래로 끌어올려 소개 섹션 배경이 그대로 비치게 한다
   (타원 안쪽=히어로 사진, 바깥 모서리=소개 섹션)
   ============================================================ */
:root{--hero-curve:90px}
@media(max-width:760px){:root{--hero-curve:56px}}
.dark-hero{z-index:1;
  -webkit-mask:linear-gradient(#000,#000) top/100% calc(100% - var(--hero-curve)) no-repeat,
    radial-gradient(ellipse 50% 100% at 50% 0,#000 calc(100% - 1px),transparent 100%) bottom/100% var(--hero-curve) no-repeat;
  mask:linear-gradient(#000,#000) top/100% calc(100% - var(--hero-curve)) no-repeat,
    radial-gradient(ellipse 50% 100% at 50% 0,#000 calc(100% - 1px),transparent 100%) bottom/100% var(--hero-curve) no-repeat}
.signature.section{margin-top:calc(var(--hero-curve) * -1);padding-top:calc(110px + var(--hero-curve)) !important}
@media(max-width:760px){.signature.section{padding-top:calc(68px + var(--hero-curve)) !important}}

/* ============================================================
   후기 섹션 배경 — 메인페이지 네이버 리뷰 섹션과 같은 배경 사진 + 어두운 오버레이
   (카드는 흰색 유지, 제목·설명은 흰 글자)
   ============================================================ */
#reviews.reviews{position:relative;overflow:hidden;background:#171513}
#reviews.reviews::before{content:"";position:absolute;inset:0;z-index:0;transform:scale(1.02);
  background-image:url('/assets/img/main/19.png');
  background-image:image-set(url('/assets/img/main/19.webp') type('image/webp'),url('/assets/img/main/19.png') type('image/png'));
  background-size:cover;background-position:center}
#reviews.reviews::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(18,8,12,.58) 0%,rgba(18,8,12,.40) 45%,rgba(18,8,12,.66) 100%)}
#reviews.reviews>.wrap{position:relative;z-index:2}
#reviews .section-heading h2{color:#fff;text-shadow:0 3px 22px rgba(0,0,0,.4)}
#reviews .section-heading p{color:rgba(255,255,255,.88) !important;text-shadow:0 2px 12px rgba(0,0,0,.35)}
#reviews .section-heading .eyebrow{color:#f3b9c7}

/* 푸터: 하단 메뉴 제거에 맞춰 3열(로고 | 사업자 정보 | TOP) */
.footer-inner{grid-template-columns:auto 1fr auto}

/* 스타일(프로그램) 카드 직각 — 되돌리려면 이 블록 삭제 */
.program-card{border-radius:0 !important}

/* ── 모바일 가로 넘침(오른쪽 공백) 방지 ──
   공통 CSS 가 모바일에서 제목의 <br> 를 숨겨 '@beauty_area_makeupDaily' 가 공백 없는
   한 단어가 되어 화면 밖으로 삐져나갔다 → 줄바꿈 복원 + 긴 단어 강제 줄바꿈 */
@media(max-width:760px){
  #gallery .gallery-copy h2{overflow-wrap:anywhere;font-size:min(27px,6.4vw)}
  #gallery .gallery-copy h2 br{display:inline}
}
/* 아주 좁은 화면(≈320px 이하): 헤더 우측 버튼 축소 */
@media(max-width:340px){
  .header-actions .pill{padding:0 12px;min-height:38px;font-size:13px !important}
  .site-header .brand-logo-img{height:28px}
}

/* ── 모바일: 시술안내 카드 1열 (2열은 카드 폭 ~150px 라 글자가 단어마다 줄바꿈됨) ── */
@media(max-width:560px){
  .price-grid{grid-template-columns:1fr !important;gap:14px !important}
  .price-card{padding:26px 22px 22px !important}
  .price-card li{padding:4px 0 !important}
  .price-card.featured,.price-card.featured:hover{transform:none !important}
}

/* ── 모바일: 플로팅 버튼 축소·정리 ──
   56px 원 5개가 화면 우측을 가렸다 → 44px 로 줄이고, 예약 문의(헤더 CTA·폼과 중복)는 숨김 */
@media(max-width:760px){
  .float-wrap{right:max(12px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));gap:8px}
  .fb,.fb:hover{width:44px;height:44px;box-shadow:0 5px 16px rgba(0,0,0,.25)}
  .fb-icon{width:44px;height:44px}
  .fb svg.fb-icon{width:44px;height:44px;padding:12px}
  .naver-n{font-size:20px}
  .fb-form{display:none}
}

/* ── 모바일: 하단 CTA 버튼이 잘리지 않게 세로로 배치 ──
   텍스트 영역이 인물 사진을 피해 좁아(≈208px) 두 버튼이 한 줄에 못 들어감 */
@media(max-width:560px){
  .bottom-cta .button-row{flex-wrap:wrap;gap:8px}
  .bottom-cta .button-row .pill{flex:1 1 100%;justify-content:center;text-align:center}
}

/* ── 모바일: 우측 하단 플로팅 버튼이 푸터 글자를 가리지 않게 우측 여백 확보 ── */
@media(max-width:760px){
  .site-footer .footer-inner>p{padding-right:58px}
}

/* 실제 예약 폼 결과 메시지 */
.ct-form .form-message.ok{color:#2f8f5b;font-weight:600}
.ct-form .form-message.err{color:#c0392b}
.ct-form .form-message{min-height:20px}

/* 옛 주소(/#price 등)로 들어와도 해당 섹션 위치로 이동하게 하는 보이지 않는 앵커 */
.anchor-alias{display:block;height:0;overflow:hidden;scroll-margin-top:76px}
