/* 마사지나라 · site.css */
:root{
  --nz-bg:#130B11;
  --nz-bg-2:#1A0F17;
  --nz-card:#1E1319;
  --nz-card-2:#28161F;
  --nz-rule:rgba(255,147,182,.15);
  --nz-hd:#FFF4F8;
  --nz-tx:#EBDDE4;
  --nz-tx-2:#CDBCC5;
  --nz-mut:#A08D97;
  --nz-pk:#FF93B6;
  --nz-pk-hi:#FFD3E2;
  --nz-pk-lo:#E0668F;
  --nz-pk-rgb:255,147,182;
  --nz-ch:#FFD08C;
  --nz-ch-rgb:255,208,140;
  --nz-ink:#170A11;
  --nz-rd:19px;
  --nz-wide:1136px;
}
@font-face{font-family:"NZ Sans";src:url("/assets/fonts/nz-regular.woff2") format("woff2");font-weight:normal;font-style:normal;font-display:swap}
@font-face{font-family:"NZ Sans";src:url("/assets/fonts/nz-bold.woff2") format("woff2");font-weight:bold;font-style:normal;font-display:swap}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:74px;background:var(--nz-bg)}
body{
  margin:0;min-height:100vh;
  background:
    radial-gradient(740px 480px at 104% -4%,rgba(var(--nz-pk-rgb),.13),transparent 64%),
    radial-gradient(620px 520px at -8% 38%,rgba(var(--nz-ch-rgb),.06),transparent 62%),
    var(--nz-bg);
  color:var(--nz-tx);
  font:normal 15.6px/1.76 "NZ Sans","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  word-break:keep-all;overflow-wrap:anywhere;
  padding-bottom:calc(78px + env(safe-area-inset-bottom));
}
@media (min-width:1030px){body{padding-bottom:0;font-size:16.4px}}
img{max-width:100%;height:auto;display:block}
a{color:var(--nz-pk)}
h1,h2,h3{margin:0;color:var(--nz-hd);font-weight:bold;letter-spacing:-.022em}
p{margin:0 0 .92em}
.nz-box{width:100%;max-width:var(--nz-wide);margin-inline:auto;padding-inline:17px}
@media (min-width:740px){.nz-box{padding-inline:27px}}
@media (min-width:1190px){.nz-box{padding-inline:37px}}
:focus-visible{outline:2.5px solid var(--nz-pk);outline-offset:3.25px}

/* ========== 헤더 ========== */
.nzh{position:sticky;top:0;z-index:40;background:rgba(19,11,17,.97);border-bottom:1px solid var(--nz-rule)}
.nzh-bar{max-width:var(--nz-wide);margin-inline:auto;height:61px;padding-inline:13px 11px;display:flex;align-items:center;gap:9.25px}
@media (min-width:740px){.nzh-bar{padding-inline:27px}}
@media (min-width:1190px){.nzh-bar{padding-inline:37px}}
.nzh-logo{display:inline-flex;align-items:center;gap:8.25px;text-decoration:none;color:var(--nz-hd);font-weight:bold;font-size:19.75px;letter-spacing:-.04em;white-space:nowrap;flex-shrink:0}
.nzh-logo i{width:17.25px;height:17.25px;border-radius:6px 13px 6px 13px;background:linear-gradient(142deg,var(--nz-pk-hi),var(--nz-pk) 52%,var(--nz-pk-lo));box-shadow:0 0 15px rgba(var(--nz-pk-rgb),.5);transform:rotate(-9deg)}
.nzh-logo b{font-weight:bold}
.nzh-logo span{color:var(--nz-pk)}
.nzh-tel{margin-left:auto;display:inline-flex;align-items:center;gap:6.25px;min-height:44.25px;padding:0 15.25px;border-radius:13.25px;
  background:var(--nz-pk);color:var(--nz-ink);text-decoration:none;font-weight:bold;font-size:14.6px;white-space:nowrap}
.nzh-tel svg{width:16.25px;height:16.25px;fill:currentColor}
.nzh-tel b{display:none;font-weight:bold}
.nzh-tel em{font-style:normal}
.nzh-open{flex:none;width:45px;height:45px;border-radius:13.25px;border:1.5px solid var(--nz-rule);background:var(--nz-card);cursor:pointer;display:grid;place-content:center;gap:4.5px;padding:0}
.nzh-open span{display:block;width:19px;height:2.25px;border-radius:2.25px;background:var(--nz-hd);transition:transform .18s,opacity .18s}
.nzh.is-on .nzh-open span:nth-child(1){transform:translateY(6.5px) rotate(.7854rad)}
.nzh.is-on .nzh-open span:nth-child(2){opacity:0}
.nzh.is-on .nzh-open span:nth-child(3){transform:translateY(-6.5px) rotate(-.125turn)}
.nzh-menu{display:none;position:fixed;left:0;right:0;top:62px;bottom:0;z-index:39;overflow-y:auto;background:var(--nz-bg);padding:14px 15px calc(98px + env(safe-area-inset-bottom))}
.nzh.is-on .nzh-menu{display:block}
.nzh-menu ul{list-style:none;margin:0;padding:0}
.nzh-head{display:block;font-size:13.4px;font-weight:bold;color:var(--nz-mut);margin:4px 3px 10px;letter-spacing:.024em}
.nzh-gu{display:grid;grid-template-columns:repeat(3,minmax(1px,1fr));gap:7.25px}
.nzh-gu a{display:flex;align-items:center;justify-content:center;min-height:46.25px;padding:6px 4px;border-radius:12.25px;background:var(--nz-card);border:1px solid var(--nz-rule);color:var(--nz-tx);text-decoration:none;font-size:14.2px;text-align:center;line-height:1.36}
.nzh-gu a[aria-current="page"]{background:rgba(var(--nz-pk-rgb),.16);border-color:var(--nz-pk);color:var(--nz-pk);font-weight:bold}
.nzh-fee{display:flex;align-items:center;min-height:50px;margin-top:14.25px;padding:0 15.25px;border-radius:13.25px;background:var(--nz-card-2);color:var(--nz-hd);text-decoration:none;font-weight:bold}
.nzh-drop-btn{display:none}
.nzh-hold{overflow:hidden}
@media (min-width:1030px){
  .nzh-bar{height:71px;gap:22.25px}
  .nzh-open{display:none}
  .nzh-tel b{display:inline}.nzh-tel em{display:none}
  .nzh-menu{display:flex !important;position:static;align-items:center;gap:4px;padding:0;background:none;overflow:visible}
  .nzh-head{display:none}
  .nzh-sub{position:relative}
  .nzh-drop-btn{display:inline-flex;align-items:center;gap:8.25px;min-height:44.25px;padding:0 15.25px;border:0;border-radius:12.25px;background:none;color:var(--nz-hd);font:inherit;font-weight:bold;font-size:15.3px;cursor:pointer}
  .nzh-drop-btn::after{content:"";width:7.25px;height:7.25px;border-right:2px solid var(--nz-pk);border-bottom:2px solid var(--nz-pk);transform:translateY(-2px) rotate(.7854rad)}
  .nzh-drop-btn:hover,.nzh-sub:hover .nzh-drop-btn{background:var(--nz-card);color:var(--nz-pk)}
  .nzh-gu{display:none;position:absolute;left:-12px;top:calc(100% + 11px);width:612px;grid-template-columns:repeat(5,minmax(1px,1fr));gap:6.25px;
    padding:17px;border-radius:17px;background:linear-gradient(177deg,var(--nz-card-2),var(--nz-card));border:1px solid var(--nz-rule);box-shadow:0 26px 54px rgba(0,0,0,.5)}
  .nzh-gu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12.25px}
  .nzh-sub:hover .nzh-gu,.nzh-sub:focus-within .nzh-gu,.nzh-drop-btn[aria-expanded="true"]+.nzh-gu{display:grid}
  .nzh-gu a{min-height:40.25px;font-size:13.8px}
  .nzh-gu a:hover{border-color:var(--nz-pk);color:var(--nz-pk)}
  .nzh-fee{margin:0;min-height:44.25px;padding:0 15.25px;background:none;font-size:15.3px}
  .nzh-fee:hover{background:var(--nz-card);color:var(--nz-pk)}
  .nzh-hold{overflow:auto}
}

/* ========== KV ========== */
.nz-kv{margin:0;background:var(--nz-bg-2)}
.nz-kv img{width:100%;aspect-ratio:1.6;object-fit:cover}
@media (min-width:1030px){
  .nz-kv{background:none;padding:19px 37px 0}
  .nz-kv img{max-width:1200.25px;margin-inline:auto;border-radius:23px;box-shadow:0 30px 64px rgba(0,0,0,.46),0 0 0 1px var(--nz-rule)}
}

/* ========== 공통 섹션 ========== */
.nz-sec{position:relative;padding:47.25px 0}
@media (min-width:740px){.nz-sec{padding:71px 0}}
.nz-sec--tint{background:linear-gradient(181deg,rgba(var(--nz-pk-rgb),.045),rgba(var(--nz-pk-rgb),.012));border-block:1px solid var(--nz-rule)}
.nz-ttl{display:flex;align-items:center;gap:12.25px;margin:0 0 21.25px}
.nz-ttl h2{font-size:clamp(21.5px,5.3vw,31px);line-height:1.39}
.nz-ic{flex:none;width:41px;height:41px;border-radius:14px 5px 14px 5px;display:grid;place-items:center;background:rgba(var(--nz-pk-rgb),.13);border:1px solid rgba(var(--nz-pk-rgb),.35)}
.nz-ic svg{width:21.25px;height:21.25px;fill:none;stroke:var(--nz-pk);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* ========== 인트로 ========== */
.nz-intro{padding:33px 0 43px}
@media (min-width:740px){.nz-intro{padding:49px 0 63px}}
.nz-intro h1{font-size:clamp(25.5px,6.5vw,43px);line-height:1.29;margin:0 0 16.25px}
.nz-lead{position:relative;padding-left:17.25px;font-size:clamp(16.2px,3.7vw,18.8px);color:var(--nz-hd);margin:0 0 15.25px}
.nz-lead::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3.5px;border-radius:4.25px;background:linear-gradient(179deg,var(--nz-pk),var(--nz-ch))}
.nz-intro-txt{color:var(--nz-tx-2)}
.nz-btn{display:flex;align-items:center;justify-content:center;gap:11.25px;width:100%;max-width:448px;min-height:57px;margin-top:22px;padding:0 21px;
  border-radius:16.25px;background:linear-gradient(106deg,var(--nz-pk-hi),var(--nz-pk) 54%,var(--nz-pk-lo));color:var(--nz-ink);text-decoration:none;
  box-shadow:0 13px 29px rgba(var(--nz-pk-rgb),.27)}
.nz-btn svg{width:21.25px;height:21.25px;fill:currentColor;flex:none}
.nz-btn strong{display:block;font-size:19.4px;line-height:1.26;letter-spacing:-.014em}
.nz-btn small{display:block;font-size:12.6px;opacity:.78;line-height:1.36}

/* ========== 요금 ========== */
.nz-fee-txt{color:var(--nz-tx-2);margin:-6px 0 17px}
.nz-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;background:var(--nz-card);border:1px solid var(--nz-rule);border-radius:var(--nz-rd);overflow:hidden;font-size:15.2px}
.nz-table th,.nz-table td{padding:13.5px 5px;text-align:center;border-bottom:1px solid rgba(255,255,255,.055);line-height:1.36}
.nz-table thead th{background:rgba(var(--nz-pk-rgb),.13);color:var(--nz-pk);font-size:13.8px;border-bottom:1px solid var(--nz-rule)}
.nz-table tbody th{text-align:left;padding-left:15px;color:var(--nz-hd);width:28.5%}
.nz-table td{font-weight:bold;color:var(--nz-tx);font-variant-numeric:tabular-nums}
.nz-table tbody tr:last-child>*{border-bottom:0}
.nz-fee-note{margin:11px 2px 0;font-size:13.4px;color:var(--nz-mut)}
.nz-fee-note b{color:var(--nz-ch);font-weight:bold}
@media (max-width:420px){
  .nz-table{font-size:13.7px}
  .nz-table th,.nz-table td{padding:12.25px 2.75px;white-space:nowrap}
  .nz-table tbody th{padding-left:10px;width:24.5%}
  .nz-table thead th{font-size:12.7px}
}

/* ========== 방문일지 ========== */
.nz-diary{position:relative;padding:25px 20px 21px;border-radius:var(--nz-rd);background:linear-gradient(176deg,var(--nz-card-2),var(--nz-card));border:1px solid var(--nz-rule);overflow:hidden}
.nz-diary::after{content:"";position:absolute;right:-43px;top:-52px;width:170.25px;height:170.25px;border-radius:100%;background:radial-gradient(circle,rgba(var(--nz-pk-rgb),.2),transparent 68%);pointer-events:none}
.nz-diary>*{position:relative;z-index:1}
.nz-diary p:last-child{margin-bottom:0}
@media (min-width:740px){.nz-diary{padding:33px 35px 29px}}

/* ========== 후기 ========== */
.nz-review{margin:0;padding:23px 20px;border-radius:var(--nz-rd);background:rgba(var(--nz-ch-rgb),.07);border:1px solid rgba(var(--nz-ch-rgb),.3)}
.nz-star{display:flex;gap:3px;margin:0 0 11.25px}
.nz-star svg{width:17.25px;height:17.25px;fill:var(--nz-ch)}
.nz-review p{color:var(--nz-hd)}
.nz-review cite{display:block;font-style:normal;font-size:14.2px;color:var(--nz-mut)}
@media (min-width:740px){.nz-review{padding:31px 35px}}

/* ========== FAQ ========== */
.nz-faq{display:grid;gap:9.25px}
.nz-faq details{border-radius:16.25px;background:var(--nz-card);border:1px solid var(--nz-rule)}
.nz-faq details[open]{border-color:rgba(var(--nz-pk-rgb),.42);background:var(--nz-card-2)}
.nz-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12.25px;min-height:56.25px;padding:13px 16px}
.nz-faq summary::-webkit-details-marker{display:none}
.nz-faq summary::before{content:"Q";flex:none;width:27px;height:27px;border-radius:9.25px;display:grid;place-items:center;background:var(--nz-pk);color:var(--nz-ink);font-weight:bold;font-size:14.2px}
.nz-faq summary::after{content:"";flex:none;margin-left:auto;width:8.75px;height:8.75px;border-right:2px solid var(--nz-mut);border-bottom:2px solid var(--nz-mut);transform:rotate(.7854rad);transition:transform .2s}
.nz-faq details[open] summary::after{transform:rotate(-2.3562rad)}
.nz-faq h3{font-size:16.3px;line-height:1.47}
.nz-faq-a{padding:0 17px 17px 55px;color:var(--nz-tx-2)}
.nz-faq-a p:last-child{margin-bottom:0}

/* ========== 최종 ========== */
.nz-final{text-align:center;overflow:hidden;background:
  radial-gradient(420px 260px at 50% 0,rgba(var(--nz-pk-rgb),.22),transparent 72%),
  linear-gradient(182deg,var(--nz-bg-2),var(--nz-bg))}
.nz-final .nz-ttl{justify-content:center}
.nz-final-txt{color:var(--nz-tx-2);max-width:632px;margin-inline:auto}
.nz-num{display:inline-block;margin:9px 0 5px;font-size:clamp(29px,7.4vw,47px);font-weight:bold;letter-spacing:-.018em;text-decoration:none;
  background:linear-gradient(98deg,var(--nz-pk-hi),var(--nz-pk) 48%,var(--nz-ch));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ========== 전화·문자 버튼 (본문) ========== */
.nz-act{display:grid;grid-template-columns:repeat(2,minmax(1px,1fr));gap:10.25px;max-width:522px;margin:19px auto 0}
.nz-act a{display:flex;align-items:center;justify-content:center;gap:8.25px;min-height:55.25px;border-radius:15px;font-weight:bold;font-size:16.7px;text-decoration:none}
.nz-act svg{width:19px;height:19px;fill:currentColor}
.nz-act-tel{background:var(--nz-pk);color:var(--nz-ink)}
.nz-act-sms{border:2px solid var(--nz-pk);color:var(--nz-pk)}

/* ========== 링크 블록 ========== */
.nz-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(103px,1fr));gap:8.25px}
@media (min-width:740px){.nz-links{grid-template-columns:repeat(auto-fill,minmax(141px,1fr));gap:10.25px}}
.nz-links a{display:flex;align-items:center;justify-content:center;min-height:47.25px;padding:7px 8px;border-radius:13.25px;background:var(--nz-card);border:1px solid var(--nz-rule);color:var(--nz-tx);text-decoration:none;font-size:14.3px;text-align:center;line-height:1.36}
.nz-links a:hover{border-color:var(--nz-pk);color:var(--nz-pk)}
.nz-links li:first-child a{border-color:rgba(var(--nz-pk-rgb),.55);color:var(--nz-pk);font-weight:bold}

/* ========== 푸터 ========== */
.nzf{padding:49px 0 43px;background:linear-gradient(181deg,#0F080D,#0B060A);border-top:1px solid var(--nz-rule);color:var(--nz-tx-2);font-size:14.3px;line-height:1.82}
.nzf-name{display:flex;align-items:center;gap:9.25px;margin:0 0 19.25px;color:var(--nz-hd);font-size:20.5px;font-weight:bold;letter-spacing:-.035em}
.nzf-name i{width:15px;height:15px;border-radius:5px 11px 5px 11px;background:var(--nz-pk);transform:rotate(-9deg)}
.nzf-list{list-style:none;margin:0 0 23.25px;padding:19px 0 0;border-top:1px solid rgba(255,255,255,.075);display:grid;grid-template-columns:minmax(1px,1fr);gap:11px 29px}
@media (min-width:580px){.nzf-list{grid-template-columns:repeat(2,minmax(1px,1fr))}}
@media (min-width:1030px){.nzf-list{grid-template-columns:repeat(3,minmax(1px,1fr))}}
.nzf-list li{display:flex;gap:13.25px}
.nzf-list span{flex:0 0 86px;color:var(--nz-mut);font-size:13.2px}
.nzf-list strong{font-weight:normal;color:var(--nz-tx)}
.nzf-list .nzf-tel{color:var(--nz-pk);font-weight:bold}
.nzf-end{display:flex;flex-wrap:wrap;gap:6px 17px;justify-content:space-between;padding-top:17px;border-top:1px solid rgba(255,255,255,.075);font-size:12.7px;color:var(--nz-mut)}
.nzf-end p{margin:0}
.nzf-end a{color:var(--nz-tx-2);text-decoration:none;border-bottom:1px solid rgba(var(--nz-pk-rgb),.4)}

/* ========== 하단 고정 바 ========== */
.nzb{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(2,minmax(1px,1fr));gap:9.25px;
  padding:9px 11px calc(9px + env(safe-area-inset-bottom));background:rgba(19,11,17,.95);border-top:1px solid rgba(255,147,182,.3)}
.nzb a{display:flex;align-items:center;justify-content:center;gap:7.25px;min-height:51.25px;border-radius:15px;font-weight:bold;font-size:16.8px;text-decoration:none}
.nzb svg{width:18.25px;height:18.25px;fill:currentColor}
.nzb-tel{background:#FF93B6;color:#170A11}
.nzb-sms{border:2px solid #FF93B6;color:#FF93B6}
@media (min-width:1030px){.nzb{display:none}}

@media (prefers-reduced-motion:reduce){*{transition:none !important}}
