.page-intro{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:clamp(19px,4vw,32px);border-radius:24px;background:var(--tile);border:1px solid color-mix(in srgb,var(--accent) 10%,transparent)}
.page-intro h1{font:700 clamp(34px,6.4vw,59px)/.97 var(--serif);letter-spacing:-.062em;margin:6px 0 8px}
.page-intro p{color:var(--muted);max-width:48ch}
.intro-icon{display:grid;place-items:center;flex:none;width:clamp(45px,10vw,78px);height:clamp(45px,10vw,78px);border-radius:19px;background:var(--icon);color:var(--accent)}
.intro-icon .icon{width:54%;height:54%}
.notice{background:#f8ecf1;color:#642c45;border-left:3px solid #a05c76;padding:9px 12px;border-radius:3px 9px 9px 3px;margin:14px 0;font-size:12px}
.service-list{display:grid;gap:9px}
.service-card,.panel,.look{background:var(--white);border:1px solid var(--line);border-radius:16px}
.service-card{display:flex;justify-content:space-between;gap:13px;padding:15px}
.mini-tag{display:inline-flex;align-items:center;gap:4px;border-radius:20px;background:var(--rose);color:var(--wine);padding:3px 8px;font-size:10px;font-weight:840;letter-spacing:.04em;width:max-content;max-width:100%}
.mini-tag .icon{width:14px;height:14px}
.service-card h2,.panel h2{font:700 25px/1.05 var(--serif);letter-spacing:-.04em;margin:7px 0}
.service-copy p,.panel p{font-size:13px;color:var(--muted)}
.time{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);font-weight:700;margin-top:7px}.time .icon{width:14px;height:14px}
.service-price{min-width:66px;display:grid;align-content:center;text-align:right;color:var(--wine)}
.service-price strong{font-size:22px;line-height:1}.service-price small{font-size:9px;font-weight:800}
.service-price a{display:inline-flex;gap:3px;align-items:center;justify-content:flex-end;min-height:44px;font-size:11px;font-weight:850}
.service-price .icon{width:14px;height:14px}
.filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 10px}
.chip{border:1px solid var(--line);background:var(--white);min-height:44px;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:750}
.chip[aria-pressed="true"]{background:var(--wine);color:white;border-color:var(--wine)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.look{overflow:hidden;min-width:0}
.look-open{display:block;width:100%;border:0;padding:0;background:var(--rose)}
.look-open:focus-visible{outline-offset:-4px}
.look img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.look figcaption{padding:8px 10px;font-size:12px;display:flex;justify-content:space-between;align-items:baseline;gap:6px;flex-wrap:wrap}
.look figcaption span{font-size:10px;color:var(--muted)}
.look-dialog img{width:100%;height:min(49dvh,360px);margin-top:8px;object-fit:contain;background:var(--rose);border-radius:12px}
.panel{padding:17px;margin-top:12px}
.booking{display:grid;gap:7px;max-width:570px}
.booking label,.booking legend{font-size:13px;font-weight:850}
.booking small{color:var(--muted);font-size:11px}
.booking input,.booking select{min-width:0;width:100%;height:45px;padding:7px 10px;border:1px solid #d0b8c2;border-radius:9px;background:#fffdfa}
.booking input:read-only{color:var(--muted)}
.booking fieldset{margin:3px 0;border:1px solid var(--line);border-radius:10px;padding:8px 10px 10px;min-width:0}
.slots{display:flex;gap:6px;flex-wrap:wrap}
.slots label{display:flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:20px;padding:6px 8px;min-height:44px}
.slots label:has(:checked){background:var(--rose);border-color:var(--wine)}
.slots input{width:15px;height:15px;margin:0;accent-color:var(--wine)}
.booking .button{justify-self:start;margin-top:6px}
.result{max-width:570px}
.result dl{margin-bottom:9px}
.result dl div,.hours div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.result dd,.hours dd{text-align:right;font-weight:750}
.promo-grid,.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.promo{background:var(--tile)}
.promo strong{display:block;color:var(--wine);font:700 32px/1 var(--serif);margin:14px 0 4px}
.promo strong small{font:800 10px/1 system-ui,sans-serif}
.panel .button,.after-panel{margin-top:12px}
.care-list details+details{border-top:1px solid var(--line)}
.care-list summary{font-weight:800;cursor:pointer;min-height:44px;padding:11px 0}
.care-list details p{padding:0 4px 12px}
.studio-card p+p,.studio-card .hours+p{margin-top:10px}
@media(max-width:560px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.promo-grid,.studio-grid{grid-template-columns:1fr;gap:0}.page-intro{align-items:flex-start}.intro-icon{border-radius:12px}}
