/* Full-page storefront skeleton. */
html.skip-home-loader body .shop-skeleton-screen,
body .shop-skeleton-screen {
  display:block;
  padding:0;
  overflow-y:auto;
  color:#111;
  background:#f7f5ef;
}
.shop-skeleton-screen .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.shop-skeleton { width:min(100%, 1120px); min-height:100%; margin:0 auto; }
.skeleton-header { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; gap:18px; height:68px; padding:10px 18px; border-bottom:1px solid #e8e2d8; background:#fff; }
.skeleton-square { width:40px; height:40px; border-radius:12px; background:#e9e5dc; }
.skeleton-line { display:block; height:12px; border-radius:999px; background:#e9e5dc; }
.skeleton-brand { width:120px; height:16px; margin:auto; }
.skeleton-content { width:min(calc(100% - 32px), 980px); margin:14px auto 40px; }
.skeleton-hero { overflow:hidden; border-radius:22px; background:#fff; }
.skeleton-photo { height:260px; }
.skeleton-hero-copy { display:grid; gap:11px; padding:18px; }
.skeleton-pill { width:112px; height:24px; }
.skeleton-title { width:48%; height:25px; }
.skeleton-copy { width:76%; }
.skeleton-copy.short { width:54%; }
.skeleton-booking { display:grid; gap:10px; margin-top:14px; padding:17px; border:1px solid #eee1ba; border-radius:20px; background:#fff9e8; }
.skeleton-subtitle { width:42%; height:18px; }
.skeleton-button { display:block; height:50px; margin-top:3px; border-radius:14px; }
.skeleton-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
.skeleton-card { height:82px; border-radius:16px; }
.skeleton-section { margin-top:28px; }
.skeleton-heading { width:46%; height:20px; margin-bottom:14px; }
.skeleton-service { height:106px; margin-top:10px; border-radius:16px; }
.skeleton-team { display:flex; gap:28px; }
.skeleton-avatar { width:78px; height:78px; border-radius:50%; }
.skeleton-shimmer { position:relative; overflow:hidden; background:#e9e5dc; }
.skeleton-shimmer::after { content:""; position:absolute; inset:0; background:linear-gradient(100deg,transparent 20%,#ffffffb8 48%,transparent 76%); transform:translateX(-100%); animation:shopSkeletonShimmer 1.25s ease-in-out infinite; }
@keyframes shopSkeletonShimmer { to { transform:translateX(100%); } }
.service-card.is-option .service-media { background:linear-gradient(145deg,#fff5cf,#f4d66e); }
.option-generic-icon { display:grid; width:46px; height:46px; place-items:center; border-radius:50%; color:#ffc21a; background:#111; font-size:1.9rem; font-weight:500; line-height:1; box-shadow:0 7px 18px #11111118; }
.service-generic-icon { display:grid; width:46px; height:46px; place-items:center; border:2px solid #111; border-radius:14px; color:#111; background:#ffc21a; box-shadow:0 7px 18px #11111112; }
.service-generic-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }

/* Mobile storefront. Desktop and booking behavior retain their existing styles. */
@media (max-width: 560px) {
.skeleton-header { height:64px; }
.skeleton-content { margin-top:14px; }
.skeleton-photo { height:172px; }
body.public-shop-page .public-shop .section-link[hidden] { display:none; }
body.public-shop-page main.container.public-shop { width:calc(100% - 32px); padding-top:14px; padding-bottom:calc(112px + env(safe-area-inset-bottom, 0px)); }
body.public-shop-page .public-shop .shop-hero { overflow:hidden; border-radius:22px; background:#fff; box-shadow:0 5px 20px #11111108; }
body.public-shop-page .public-shop .shop-hero-media { position:relative; height:172px; min-height:0; }
body.public-shop-page .public-shop .shop-hero-media .slider,
body.public-shop-page .public-shop .shop-hero-media .hero-media-fallback { height:172px; min-height:0; aspect-ratio:auto; }
body.public-shop-page .public-shop .shop-hero-media .slider::before { background:linear-gradient(180deg, transparent 65%, #00000038); }
body.public-shop-page .public-shop .hero-media-fallback { padding:12px; gap:8px; }
body.public-shop-page .public-shop .shop-hero-copy { position:relative; inset:auto; min-height:0; padding:16px 18px 18px; color:#111; background:#fff; }
body.public-shop-page .public-shop #shopName { display:block; max-width:none; margin:9px 0 0; color:#111; font-size:1.6rem; line-height:1.15; letter-spacing:-.04em; overflow-wrap:anywhere; text-shadow:none; }
body.public-shop-page .public-shop #shopName::first-line { color:#111; }
body.public-shop-page .public-shop .hero-status-pill { min-height:24px; margin:0; padding:5px 8px; font-size:.68rem; line-height:1.3; }
body.public-shop-page .public-shop .hero-status-pill.is-closed { color:#6a655d; background:#f2efe8; }
body.public-shop-page .public-shop .hero-status-pill.is-open { color:#187341; background:#edf7ef; }
body.public-shop-page .public-shop .shop-rating-line { margin-top:9px; gap:5px; color:#111; font-size:.8rem; }
body.public-shop-page .public-shop .shop-rating-line small { color:#6a655d; font-size:.72rem; font-weight:500; }
body.public-shop-page .public-shop .shop-meta { margin-top:9px; gap:8px; color:#6a655d; font-size:.75rem; line-height:1.5; overflow-wrap:anywhere; }
body.public-shop-page .public-shop .instagram-link { font-weight:650; }
body.public-shop-page .public-shop .booking-callout { margin-top:14px; padding:16px; gap:12px; border:1px solid #eedfaf; border-radius:20px; background:#fff9e8; box-shadow:none; }
body.public-shop-page .public-shop .booking-callout h2 { font-size:1.12rem; }
body.public-shop-page .public-shop .booking-callout p { margin-top:5px; font-size:.78rem; line-height:1.5; }
body.public-shop-page .public-shop .primary-cta { min-height:50px; padding:13px 16px; border-radius:14px; background:#ffc21a; box-shadow:none; font-size:.94rem; }
body.public-shop-page .public-shop .shop-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
body.public-shop-page .public-shop .shop-overview-grid > .status-card { grid-column:1 / -1; padding:12px 14px; min-height:0; box-shadow:none; }
body.public-shop-page .public-shop .status-header { gap:8px; }
body.public-shop-page .public-shop .status-text { font-size:.82rem; }
body.public-shop-page .public-shop .status-sub { margin-top:4px; font-size:.72rem; line-height:1.5; }
body.public-shop-page .public-shop .shop-mini-card { min-width:0; min-height:0; padding:13px; box-shadow:none; overflow-wrap:anywhere; }
body.public-shop-page .public-shop .shop-mini-card h3 { font-size:.61rem; letter-spacing:.06em; }
body.public-shop-page .public-shop .shop-mini-card p,
body.public-shop-page .public-shop .queue-preview li { margin-top:7px; padding:0; min-height:0; font-size:.76rem; line-height:1.5; }
body.public-shop-page .public-shop .public-section { margin-top:26px; }
body.public-shop-page .public-shop .section-heading { gap:8px; }
body.public-shop-page .public-shop .section-heading h2 { font-size:1.15rem; line-height:1.25; letter-spacing:-.025em; }
body.public-shop-page .public-shop .section-link { min-height:44px; color:#695000; font-size:.73rem; gap:5px; }
body.public-shop-page .public-shop .services-list { grid-auto-flow:row; grid-template-columns:minmax(0,1fr); grid-auto-columns:auto; gap:10px; margin:0; padding:0; overflow:visible; }
body.public-shop-page .public-shop .service-card { grid-template-columns:94px minmax(0,1fr); grid-template-rows:auto; min-height:104px; border-radius:16px; box-shadow:0 3px 12px #11111104; }
body.public-shop-page .public-shop .service-media { height:100%; min-height:104px; aspect-ratio:auto; }
body.public-shop-page .public-shop .service-card > div { padding:13px 15px; }
body.public-shop-page .public-shop .service-card h3 { font-size:.94rem; }
body.public-shop-page .public-shop .service-kind { display:inline-flex; margin-bottom:4px; color:#806000; font-size:.58rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
body.public-shop-page .public-shop .service-card small { margin-top:5px; font-size:.72rem; }
body.public-shop-page .public-shop .service-card strong { margin-top:5px; font-size:.94rem; }
body.public-shop-page .public-shop .team-list { grid-auto-columns:116px; gap:12px; scroll-snap-type:x proximity; }
body.public-shop-page .public-shop .team-card { align-content:start; scroll-snap-align:start; }
body.public-shop-page .public-shop .team-card h3 { font-size:.85rem; line-height:1.35; }
body.public-shop-page .public-shop .team-card small { font-size:.68rem; line-height:1.5; }
body.public-shop-page .public-shop .team-card.is-unavailable small { color:#6a655d; }
body.public-shop-page .public-shop .loyalty-callout { margin-top:26px; border-radius:18px; box-shadow:none; }
body.public-shop-page .public-shop .loyalty-callout h2 { font-size:.94rem; }
body.public-shop-page .public-shop .loyalty-callout p { font-size:.74rem; line-height:1.5; }
body.public-shop-page footer.bottom-nav { width:calc(100% - 24px); bottom:calc(8px + env(safe-area-inset-bottom,0px)); padding:7px; border:1px solid #eae5db; border-radius:22px; background:#fffffff5; box-shadow:0 4px 24px #11111112; }
body.public-shop-page footer.bottom-nav .nav-item { min-height:54px; }
body.public-shop-page footer.bottom-nav .nav-main { border-radius:16px; }
body.public-shop-page :is(button,a):focus-visible { outline:3px solid #111; outline-offset:3px; }
}

@media (prefers-reduced-motion: reduce) {
  .skeleton-shimmer::after { animation:none; display:none; }
}
