/* Single visual owner for the approved photo-led storefront. */
body.massage-storefront{--ink:#202124;--muted:#72737a;--line:#e8e8ed;--accent:#7660ae;color:var(--ink);background:#fff;font-family:Arial,"Noto Sans",system-ui,sans-serif;padding-bottom:100px!important}
body.massage-storefront main{max-width:1040px;padding:0 24px 40px;margin:auto;background:white}
body.massage-storefront .app-header{max-width:1040px;min-height:68px;margin:auto;padding:14px 24px;background:white;border-bottom:1px solid #f2f2f5;color:var(--ink);box-shadow:none}
body.massage-storefront .brand{font-size:22px;font-weight:800;letter-spacing:-1px;color:var(--ink)}
body.massage-storefront .brand:after{content:'.';color:var(--accent)}
body.massage-storefront .app-header select{font-size:13px;min-height:40px;max-width:108px;padding:6px 10px;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:white}
body.massage-storefront .booking-panel{display:grid;gap:24px;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
body.massage-storefront .outcall-hero,body.massage-storefront .panel-title,body.massage-storefront .massage-booking-steps,body.massage-storefront .wellness-step-actions,body.massage-storefront #massageSupplyStatus{display:none!important}
body.massage-storefront .massage-browse-intro{display:grid!important;gap:14px;padding:36px 0 24px;background:none;color:var(--ink);margin:0}
body.massage-storefront .storefront-kicker{font-size:14px;color:var(--muted);font-weight:600;letter-spacing:.04em}
body.massage-storefront .massage-browse-intro h1{font-size:clamp(30px,5vw,48px);line-height:1.24;letter-spacing:-.055em;white-space:pre-line;font-weight:750;margin:0;color:var(--ink)}
body.massage-storefront .massage-browse-intro p{font-size:15px;color:var(--muted);margin:0;line-height:1.65}
body.massage-storefront .massage-browse-intro{grid-template-columns:1fr auto;align-items:center}
body.massage-storefront .massage-browse-intro h1,body.massage-storefront .massage-browse-intro p,body.massage-storefront .storefront-badges{grid-column:1/-1}
body.massage-storefront .massage-browse-intro .massage-share-button{grid-column:2;grid-row:1;font-size:12px;padding:8px 12px}
body.massage-storefront .storefront-badges{display:flex;flex-wrap:wrap;gap:8px}
body.massage-storefront .storefront-badges span{font-size:12px;line-height:1.5;background:#f5f1fb;color:#685198;padding:7px 11px;border-radius:30px}
body.massage-storefront .storefront-browse{display:grid;gap:20px;min-width:0}
body.massage-storefront .storefront-native-control{display:none!important}
body.massage-storefront .massage-city-buttons{display:flex;gap:6px;background:#f5f5f7;padding:5px;border-radius:30px;justify-self:start;margin:0;max-width:100%}
body.massage-storefront .massage-city-buttons button{font-size:14px;min-height:44px;padding:9px 20px;border:0;border-radius:24px;background:transparent;color:var(--muted)}
body.massage-storefront .massage-city-buttons button[aria-pressed=true]{background:white;box-shadow:0 2px 5px #00000012;color:var(--ink);font-weight:700}
body.massage-storefront #massagePhotoPicker{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin:0;padding:0;border:0;background:transparent;min-width:0}
body.massage-storefront .photo-help,body.massage-storefront .photo-selection,body.massage-storefront .photo-experience{display:none}
body.massage-storefront .storefront-list-title{font-size:22px;letter-spacing:-.035em;margin:0;line-height:1.4;color:var(--ink)}
body.massage-storefront .massage-sort-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:0}
body.massage-storefront .massage-sort-buttons button{border:1px solid var(--line)!important;border-radius:30px!important;padding:9px 14px!important;min-height:44px!important;background:white!important;color:#686870!important;font-size:13px!important;line-height:1.4}
body.massage-storefront .massage-sort-buttons button[aria-pressed=true]{color:#685198!important;background:#f5f1fb!important;border-color:#dcd1ee!important}
body.massage-storefront .photo-rail{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 20px;overflow:visible;padding:0;min-width:0}
body.massage-storefront .photo-person{display:flex;flex-direction:column;gap:8px;padding:0;background:transparent;border:0;border-radius:0;min-width:0;text-align:left;box-shadow:none}
body.massage-storefront .photo-preview{border-radius:18px!important;position:relative;isolation:isolate;margin:0}
body.massage-storefront .photo-person .photo-preview img{width:100%;height:auto!important;aspect-ratio:3/4;object-fit:cover;object-position:center 25%;border-radius:0}
body.massage-storefront .photo-person strong{font-size:18px;font-weight:700;color:var(--ink);letter-spacing:-.02em;overflow-wrap:anywhere}
body.massage-storefront .photo-person small{font-size:12px;line-height:1.5;color:var(--muted);padding:0;overflow-wrap:anywhere}
body.massage-storefront .photo-person .photo-rating{color:#645184}
body.massage-storefront .photo-person>[data-photo-person]{display:none!important}
body.massage-storefront .photo-preview:after{content:'↗';position:absolute;right:10px;bottom:10px;width:28px;height:28px;border-radius:50%;background:#ffffffed;color:#29292d;display:grid;place-items:center;pointer-events:none}
body.massage-storefront .photo-empty:empty{display:none}
body.massage-storefront .massage-share-button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:24px;background:#fff;color:#48484e;font-size:14px;justify-self:start;cursor:pointer}
body.massage-storefront .massage-share-status,body.massage-storefront .massage-share-fallback{overflow-wrap:anywhere;font-size:14px}
body.massage-storefront .massage-share-status:empty{display:none}
body.massage-storefront .wellness-fields{gap:20px;min-width:0}
body.massage-storefront .storefront-step-title{grid-column:1/-1;font-size:27px;letter-spacing:-.04em;line-height:1.3;margin:0 0 6px}
body.massage-storefront .storefront-chosen{grid-column:1/-1;margin:0;color:#7660ae;font-size:16px;font-weight:700}
body.massage-storefront .storefront-back{justify-self:start;margin-top:22px;padding:8px 0;min-height:44px;border:0;background:white;color:#696570;font-size:14px}
body.massage-storefront .storefront-back:before{content:'← ';}
body.massage-storefront .tm-massage-options{gap:14px;margin:0;padding:0}
body.massage-storefront .wellness-course-cards{grid-template-columns:1fr;gap:10px}
body.massage-storefront .wellness-course-cards button{align-items:flex-start;text-align:left;min-height:78px;padding:16px 18px;background:white;border:1px solid var(--line);border-radius:16px;color:var(--ink)}
body.massage-storefront .wellness-course-cards strong{font-size:17px}
body.massage-storefront .wellness-course-cards small{font-size:13px;color:var(--muted)}
body.massage-storefront .wellness-course-cards button.active,body.massage-storefront .wellness-duration-cards button.active{background:#f8f5ff;border-color:var(--accent);color:#55407f}
body.massage-storefront .wellness-course-cards button.active strong,body.massage-storefront .wellness-course-cards button.active small{color:#55407f!important}
body.massage-storefront .wellness-duration-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.massage-storefront .wellness-duration-cards button{border:1px solid var(--line);min-height:64px;padding:10px;border-radius:14px;color:var(--ink)}
body.massage-storefront #massageImmediatePrice{background:#f8f8fa;color:var(--ink);font-size:22px;padding:18px;text-align:left;border-radius:16px}
body.massage-storefront label,body.massage-storefront legend{font-size:15px;color:var(--ink)}
body.massage-storefront input,body.massage-storefront select,body.massage-storefront textarea{border:1px solid #dedee5;border-radius:12px;background:white;color:var(--ink);font-size:16px;min-width:0;max-width:100%}
body.massage-storefront .primary,body.massage-storefront #createBooking{background:#232327;color:white;min-height:54px;border:0;border-radius:14px;padding:14px 18px}
body.massage-storefront #wellnessHotelStep{padding:0;margin:0}
body.massage-storefront .tm-massage-entry{background:#f8f8fa;border:0;padding:18px;border-radius:16px;gap:16px}
body.massage-storefront #massageRooms{grid-template-columns:1fr}
body.massage-storefront #massageSingleGuestNotice{background:#f8f8fa!important;color:#65616b!important;font-size:14px!important;padding:16px!important;margin:0!important;border-radius:12px}
body.massage-storefront #quoteBox{margin:0;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fafafa}
body.massage-storefront .booking-agreement{margin:0}
body.massage-storefront[data-storefront-stage=browse] #wellnessMassageStep,body.massage-storefront[data-storefront-stage=browse] #wellnessHotelStep,body.massage-storefront[data-storefront-stage=browse] .storefront-back,body.massage-storefront[data-storefront-stage=browse] .storefront-next{display:none!important}
body.massage-storefront:not([data-storefront-stage=browse]) .storefront-browse{display:none!important}
body.massage-storefront[data-storefront-stage=course] #wellnessHotelStep,body.massage-storefront[data-storefront-stage=hotel] #wellnessMassageStep,body.massage-storefront[data-storefront-stage=hotel] .storefront-next{display:none!important}
body.massage-storefront:not([data-storefront-stage=hotel]) #quoteBox,body.massage-storefront:not([data-storefront-stage=hotel]) .booking-agreement,body.massage-storefront:not([data-storefront-stage=hotel]) #createBooking{display:none!important}
body.massage-storefront.storefront-review #wellnessMassageStep,body.massage-storefront.storefront-review #wellnessHotelStep,body.massage-storefront.storefront-review .storefront-back,body.massage-storefront.storefront-review .storefront-next{display:none!important}
body.massage-storefront.storefront-review #quoteBox,body.massage-storefront.storefront-review .booking-agreement,body.massage-storefront.storefront-review #createBooking{display:none!important}
.storefront-nav{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;justify-content:center;background:#fffffff5;backdrop-filter:blur(12px);border-top:1px solid #ededf1;padding:8px 16px calc(8px + env(safe-area-inset-bottom))}
.storefront-nav>a,.storefront-nav>button{display:grid;gap:3px;justify-items:center;align-content:center;flex:1;max-width:180px;min-height:48px;background:none;border:0;color:#7b7b85;text-decoration:none;font-size:12px}
.storefront-nav>button{color:#7660ae}.storefront-nav span:first-child{font-size:24px;line-height:1}
body.massage-storefront .massage-photo-detail{position:fixed;inset:0;display:block;width:min(100% - 24px,500px);max-width:500px;max-height:90dvh;padding:0;margin:auto;border:0;border-radius:24px;background:white;box-shadow:0 24px 100px #0003;overflow:auto;color:var(--ink)}
body.massage-storefront .massage-photo-detail[hidden]{display:none!important}
body.massage-storefront .massage-photo-detail::backdrop{background:#19182080;backdrop-filter:blur(3px)}
body.massage-storefront .massage-photo-detail>.detail-close{position:absolute;right:8px;top:8px;width:44px;min-height:44px;border:0;background:#ffffffee;color:var(--ink);border-radius:50%;z-index:2;margin:0;font-size:25px;padding:0}
body.massage-storefront .massage-photo-detail>img{width:100%;max-height:52dvh;aspect-ratio:3/4;object-fit:contain;background-color:#f4f3f6}
body.massage-storefront .detail-info{padding:24px;display:grid;gap:14px}
body.massage-storefront .detail-info h2,body.massage-storefront .detail-info p{margin:0;color:var(--ink)}
body.massage-storefront .detail-info p{font-size:14px;color:var(--muted);line-height:1.6}
body.massage-storefront #massagePhotoPicker .detail-choose{background:#232327;color:white;border:0;border-radius:14px;min-height:54px}
body.massage-storefront button:focus-visible,body.massage-storefront a:focus-visible{outline:3px solid #9b85c9;outline-offset:3px}
@media(max-width:600px){body.massage-storefront main{padding:0 20px 32px}body.massage-storefront .app-header{padding:12px 20px}body.massage-storefront .photo-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}body.massage-storefront .massage-browse-intro{padding:26px 0 4px}body.massage-storefront .massage-photo-detail{inset:auto 0 0;width:100%;max-height:92dvh;border-radius:24px 24px 0 0}body.massage-storefront .photo-person strong{font-size:17px}}
@media(max-width:370px){body.massage-storefront main{padding-inline:16px}body.massage-storefront .app-header{padding-inline:16px}body.massage-storefront .brand{font-size:20px}body.massage-storefront .photo-rail{gap:22px 12px}body.massage-storefront .wellness-fields>label{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){body.massage-storefront *{scroll-behavior:auto!important}}
