/* Layout polish: retain the existing brand tokens, fonts and content. */
.header-slot{height:auto;min-height:0;padding-bottom:174px}
.header{position:absolute;inset:auto 0 0;width:100%}
.header.is-compact{position:fixed;inset:0 0 auto}
.header .nav{height:174px;padding-block:12px;align-items:center}
.header .brand{height:150px;min-width:150px;justify-content:center}
.header .brand-picture{width:150px;height:150px}
.header.is-compact .nav{height:114px;padding-block:12px}
.header.is-compact .brand{height:90px}
.header.is-compact .brand-picture{width:90px;height:90px}
@media(min-width:1100px){
 .header .nav{display:grid;width:min(1240px,calc(100% - 64px));grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);column-gap:16px}
 .header .nav-half{display:flex;align-items:center;gap:28px;flex-wrap:nowrap}
 .header .nav-half a{font-size:clamp(16px,1.25vw,19px);line-height:1.4;letter-spacing:.04em;white-space:nowrap}
 .header .nav-right{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:16px;min-width:0}
 .header .nav-right .nav-half{flex:0 0 auto}
 .header .nav-right .header-book{display:inline-flex!important;flex:0 0 auto;padding:0 12px!important;gap:8px;white-space:nowrap;min-height:56px}
 .header .menu-toggle,.header .mobile-menu{display:none!important}
}
@media(min-width:1280px){.header .nav{width:min(1240px,calc(100% - 192px))}}
@media(max-width:1099px){
 .header-slot{padding-bottom:134px}
 .header .nav{display:grid;width:calc(100% - 40px);height:134px;grid-template-columns:minmax(0,1fr) 48px 56px;gap:12px;padding-block:12px}
 .header .brand{grid-column:1;grid-row:1;justify-self:start;height:110px;min-width:110px}
 .header .brand-picture{height:110px;width:110px}
 .header.is-compact .brand{height:90px;min-width:110px}
 .header .nav-half{display:none}
 .header .nav-right{display:contents}
 .header .nav-right .header-book{display:inline-flex!important;grid-column:3;grid-row:1;align-self:center;justify-self:end;width:56px;height:48px;min-height:48px;padding:0!important;border-radius:999px}
 .header .header-book>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
 .header .menu-toggle{grid-column:2;grid-row:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:48px;height:48px;padding:0;border:0;background:transparent}
 .header .menu-toggle span{height:1px;width:26px;background:var(--brown);display:block}
 .header .mobile-menu:not([hidden]){display:flex;position:absolute;top:100%;left:0;right:0;height:calc(100dvh - 134px);background:var(--cream-light);flex-direction:column;align-items:center;gap:8px;padding:25px 20px 80px;overflow-y:auto}
 .header.is-compact .mobile-menu:not([hidden]){top:100%;height:calc(100dvh - 114px)}
 .header .mobile-menu>a:not(.btn){font:22px/1.5 'Marcellus',serif;padding:8px 15px}
 .header .mobile-menu>a[aria-current]{text-decoration:underline;text-underline-offset:7px}
}
/* The card label never grows. Desktop captions occupy the bottom of the photo. */
.service-grid>.service-tile>img{aspect-ratio:4/5;width:100%;height:auto;object-fit:cover}
.service-grid>.service-tile>div{height:96px;min-height:96px;max-height:96px;display:flex;align-items:center;justify-content:center;padding:12px 16px}
.service-grid>.service-tile>div:before{inset:8px}
.service-grid>.service-tile h3{position:static;inset:auto;margin:0;transform:none;max-width:100%;text-align:center}
.service-grid>.service-tile p{position:absolute;inset:auto 0 100%;max-width:none;margin:0;padding:40px 24px 18px;background:linear-gradient(0deg,color-mix(in srgb,var(--brown) 85%,transparent),color-mix(in srgb,var(--brown) 0%,transparent));color:var(--cream);opacity:1;transform:none;text-align:center;pointer-events:none}
@media(hover:hover) and (pointer:fine) and (min-width:1024px){
 .service-grid>.service-tile p{opacity:0;transform:translateY(8px)}
 .service-grid>.service-tile:hover p,.service-grid>.service-tile:focus-visible p{opacity:1;transform:none}
 .service-grid>.service-tile:hover h3,.service-grid>.service-tile:focus-visible h3{transform:none}
}
@media(max-width:1023px){
 .service-grid>.service-tile>div{height:84px;min-height:84px;max-height:84px;flex-direction:column;gap:6px;padding:12px 14px}
 .service-grid>.service-tile>div:has(p){height:120px;min-height:120px;max-height:120px}
 .service-grid>.service-tile p{position:static;inset:auto;padding:0;background:none;opacity:1;transform:none;line-height:1.5}
}
/* All gallery tiles and pedicure image areas share the requested landscape crop. */
.signature .tray-placeholder,.pedi-grid .tray-placeholder,.gallery-grid .gallery-item,.gallery-grid.preview .gallery-item{aspect-ratio:4/3}
.gallery-grid .gallery-item>.tray-placeholder{aspect-ratio:auto}
.tray-placeholder.tray-real>.tray-main,.tray-placeholder.tray-landscape>.tray-main,.tray-placeholder.tray-portrait>.tray-main{object-fit:cover;object-position:center;filter:none;transform:none;opacity:1}
.tray-placeholder.tray-real>.tray-main[src$="pedi-nabi.webp"]{object-position:center 55%}
.gallery-grid .gallery-item>img,.gallery-grid .lightbox-open>img{object-fit:cover;object-position:center}
/* Footer columns use the available width after the 64px gutter. */
.footer-main{gap:64px;align-items:start}
.footer-brand{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.footer-brand>.brand{margin:0}
.footer-brand>.brand+p{width:max-content;max-width:360px;margin:20px 0}
.footer-keywords{width:100%;max-width:360px;contain:inline-size}
.footer-line{display:block;white-space:nowrap}
.footer-line-separator{display:none}
@media(min-width:1024px){
 .footer-main{grid-template-columns:minmax(0,38fr) minmax(0,62fr)}
 .footer-details{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;column-gap:32px}
 .footer-brand{width:max-content;max-width:100%}
 .footer-brand>.brand+p{white-space:nowrap}
 .footer-details h4{margin-top:0}
}
@media(max-width:1023px){.footer-main{gap:38px}.footer-brand>.brand+p{width:auto;max-width:100%}.footer-keywords{max-width:360px}}
/* One clipping boundary and inset stroke keep the booking arch coincident. */
.booking-grid .photo-frame{padding:0;border:0;overflow:hidden;border-radius:150px 150px 14px 14px}
.booking-grid .photo-frame:after{inset:0;border-radius:inherit;box-sizing:border-box}
.booking-grid .photo-frame>img{width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:center;transform:none}
.about-lumina .about-photos{overflow:hidden;border-radius:170px 170px 14px 14px}
.about-lumina .about-photos img{border-radius:inherit}
@media(max-width:760px){.booking-grid .photo-frame{border-radius:130px 130px 12px 12px}.about-lumina .about-photos{border-radius:150px 150px 14px 14px}}
@media(prefers-reduced-motion:reduce){.service-grid>.service-tile p{opacity:1;transform:none;transition:none}.service-grid>.service-tile h3{transform:none;transition:none}}
