/* RubyRose V10.37 — Mobile-first footer, navigation, product delight and page loader. */
:root{--rr-mobile-dock-height:68px}

/* Page transition loader */
.rr-page-loader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:var(--rr-loader-bg,#fff8fb);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
.rr-page-loader.is-active{opacity:1;visibility:visible;pointer-events:auto}
.rr-page-loader-inner{display:grid;place-items:center;gap:18px;transform:translateY(-2vh)}
.rr-page-loader .rr-wordmark-logo{display:block!important;width:min(190px,52vw)!important;background:var(--rr-loader-accent,#e74d87)!important;filter:drop-shadow(0 14px 28px color-mix(in srgb,var(--rr-loader-accent,#e74d87) 20%,transparent))}
.rr-loader-dots{display:flex;align-items:center;gap:7px;height:12px}
.rr-loader-dots i{width:7px;height:7px;border-radius:50%;background:var(--rr-loader-accent,#e74d87);animation:rrLoaderDot 1s ease-in-out infinite}
.rr-loader-dots i:nth-child(2){animation-delay:.14s}.rr-loader-dots i:nth-child(3){animation-delay:.28s}
@keyframes rrLoaderDot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}

/* Managed footer. These rules intentionally load last to replace the historical override stack. */
html body footer.site-footer.rr-footer-managed{position:relative!important;isolation:isolate!important;width:100%!important;margin:0!important;padding:clamp(48px,7vw,88px) max(20px,calc((100vw - 1280px)/2)) max(22px,env(safe-area-inset-bottom))!important;overflow:hidden!important;border:0!important;border-radius:0!important;background:radial-gradient(circle at 12% 0,color-mix(in srgb,var(--rr-footer-accent) 24%,transparent),transparent 31%),linear-gradient(150deg,var(--rr-footer-surface),var(--rr-footer-bg) 58%)!important;color:var(--rr-footer-text)!important}
html body footer.rr-footer-managed::before{right:-8%!important;bottom:-.2em!important;display:block!important;content:"RubyRose"!important;color:color-mix(in srgb,var(--rr-footer-text) 4%,transparent)!important;font-size:clamp(120px,23vw,350px)!important;pointer-events:none!important}
html body footer.rr-footer-managed .rr-footer-shell{position:relative!important;z-index:2!important;display:grid!important;grid-template-columns:minmax(260px,1.1fr) minmax(250px,.9fr) minmax(250px,.9fr)!important;gap:clamp(28px,5vw,70px)!important;width:100%!important;max-width:1280px!important;margin:0 auto!important;padding:0!important}
html body footer.rr-footer-managed .rr-footer-brand-block,html body footer.rr-footer-managed .rr-footer-links-block,html body footer.rr-footer-managed .rr-footer-contact-block{min-width:0!important;padding:0!important;border:0!important;background:transparent!important}
html body footer.rr-footer-managed .rr-footer-logo{display:inline-flex!important;margin:0 0 18px!important}
html body footer.rr-footer-managed .rr-wordmark-logo{background:var(--rr-footer-accent)!important}
html body footer.rr-footer-managed .rr-footer-brand-block p{max-width:390px!important;margin:0!important;color:var(--rr-footer-muted)!important;font-size:14px!important;line-height:1.9!important}
html body footer.rr-footer-managed h4{margin:0 0 20px!important;padding:0 0 11px!important;color:var(--rr-footer-text)!important;font-size:12px!important;letter-spacing:.12em!important;text-transform:uppercase!important}
html body footer.rr-footer-managed h4::after{width:34px!important;background:var(--rr-footer-accent)!important}
html body footer.rr-footer-managed a{color:var(--rr-footer-muted)!important}
html body footer.rr-footer-managed .rr-footer-links-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px 14px!important}
html body footer.rr-footer-managed .rr-footer-links-grid a{display:flex!important;align-items:center!important;min-height:38px!important;margin:0!important;padding:7px 10px!important;border-radius:12px!important;font-size:12px!important;line-height:1.35!important;transition:background .2s ease,color .2s ease,transform .2s ease!important}
html body footer.rr-footer-managed .rr-footer-links-grid a:hover{background:color-mix(in srgb,var(--rr-footer-text) 8%,transparent)!important;color:var(--rr-footer-text)!important;transform:translateX(3px)!important}
html[dir="rtl"] body footer.rr-footer-managed .rr-footer-links-grid a:hover{transform:translateX(-3px)!important}
html body footer.rr-footer-managed .rr-footer-contact-line{display:flex!important;flex-direction:column!important;gap:3px!important;margin:0 0 10px!important;padding:10px 12px!important;border:1px solid color-mix(in srgb,var(--rr-footer-text) 9%,transparent)!important;border-radius:14px!important;background:color-mix(in srgb,var(--rr-footer-surface) 78%,transparent)!important;text-decoration:none!important}
html body footer.rr-footer-managed .rr-footer-contact-line small{color:var(--rr-footer-muted)!important;font-size:9px!important;letter-spacing:.08em!important}
html body footer.rr-footer-managed .rr-footer-contact-line span{color:var(--rr-footer-text)!important;font-size:12px!important;overflow-wrap:anywhere!important}
html body footer.rr-footer-managed .rr-footer-wholesale-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;margin-top:8px!important;padding:10px 18px!important;border:1px solid var(--rr-footer-accent)!important;border-radius:999px!important;background:var(--rr-footer-accent)!important;color:#fff!important;font-weight:800!important;text-decoration:none!important}
html body footer.rr-footer-managed .footer-social{display:flex!important;gap:10px!important;margin:22px 0 0!important}
html body footer.rr-footer-managed .footer-social a{display:grid!important;width:42px!important;height:42px!important;place-items:center!important;margin:0!important;border:1px solid color-mix(in srgb,var(--rr-footer-text) 14%,transparent)!important;border-radius:50%!important;background:color-mix(in srgb,var(--rr-footer-surface) 72%,transparent)!important;color:var(--rr-footer-text)!important}
html body footer.rr-footer-managed .footer-bottom.rr-footer-bottom-clean{position:relative!important;z-index:2!important;display:flex!important;justify-content:space-between!important;gap:16px!important;width:100%!important;max-width:1280px!important;margin:42px auto 0!important;padding:20px 0 0!important;border-top:1px solid color-mix(in srgb,var(--rr-footer-text) 10%,transparent)!important;color:var(--rr-footer-muted)!important;font-size:10px!important}
.rr-footer-petal{position:absolute;z-index:0;width:120px;height:72px;border-radius:100% 0 100% 0;background:color-mix(in srgb,var(--rr-footer-accent) 12%,transparent);filter:blur(.2px);pointer-events:none;transform:rotate(24deg)}
.rr-footer-petal-one{top:18px;right:-30px}.rr-footer-petal-two{bottom:82px;left:-45px;transform:rotate(205deg) scale(.75)}
html body footer.rr-footer-style-pearl,html body footer.rr-footer-style-minimal{box-shadow:inset 0 1px color-mix(in srgb,var(--rr-footer-text) 10%,transparent)!important}

/* Fixed mobile navigation is deliberately independent from the footer flow. */
.rr-mobile-dock{display:none}

/* Product cards: soft, editorial and touch-first. */
.shop-product-card{position:relative!important;isolation:isolate!important;border:1px solid rgba(178,74,116,.1)!important;border-radius:26px!important;background:linear-gradient(160deg,#fff 0%,#fffafd 72%,#fff2f8 100%)!important;box-shadow:0 18px 50px rgba(95,36,61,.075)!important;overflow:hidden!important;transition:transform .3s ease,box-shadow .3s ease!important}
.shop-product-card:hover{transform:translateY(-5px)!important;box-shadow:0 24px 64px rgba(110,38,69,.13)!important}
.shop-card-media{background:radial-gradient(circle at 72% 18%,rgba(240,95,152,.13),transparent 30%),linear-gradient(145deg,#fff,#fdf2f7)!important}
.rr-product-favorite{position:absolute;z-index:8;top:12px;inset-inline-end:12px;display:grid;width:42px;height:42px;place-items:center;padding:0;border:1px solid rgba(167,60,105,.12);border-radius:50%;background:rgba(255,255,255,.9);color:#a84970;box-shadow:0 8px 24px rgba(104,35,64,.1);cursor:pointer;backdrop-filter:blur(8px)}
.rr-product-favorite svg{width:20px;height:20px;fill:transparent;stroke:currentColor;stroke-width:1.8;transition:fill .2s ease,transform .2s ease}
.rr-product-favorite.is-favorite{color:#dd3979}.rr-product-favorite.is-favorite svg{fill:currentColor;transform:scale(1.08)}
.rr-product-featured-badge{position:absolute;z-index:7;top:62px;inset-inline-start:14px;display:inline-flex;align-items:center;min-height:30px;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.9);color:#a52f62;font-size:9px;font-weight:900;letter-spacing:.08em;box-shadow:0 8px 24px rgba(104,35,64,.08);backdrop-filter:blur(8px)}
.shop-product-card .shop-card-body{padding:18px!important}.shop-product-card h3{font-size:clamp(16px,4.2vw,20px)!important;line-height:1.35!important}
.shop-product-card .shop-cart-form button{min-height:48px!important;border-radius:999px!important;background:linear-gradient(135deg,#c83270,#ef6aa0)!important;box-shadow:0 10px 24px rgba(205,52,111,.2)!important}
.shop-product-card .rr-product-view-icon{min-width:46px!important;min-height:46px!important;border-radius:50%!important}

@media(max-width:900px){
  html body footer.site-footer.rr-footer-managed{padding:38px 16px max(22px,env(safe-area-inset-bottom))!important}
  html body footer.rr-footer-managed .rr-footer-shell{grid-template-columns:1fr 1fr!important;gap:16px!important}
  html body footer.rr-footer-managed .rr-footer-brand-block{grid-column:1/-1!important;padding:22px!important;border:1px solid color-mix(in srgb,var(--rr-footer-text) 9%,transparent)!important;border-radius:var(--rr-footer-radius)!important;background:color-mix(in srgb,var(--rr-footer-surface) 78%,transparent)!important}
  html body footer.rr-footer-managed .rr-footer-links-block,html body footer.rr-footer-managed .rr-footer-contact-block{padding:20px!important;border:1px solid color-mix(in srgb,var(--rr-footer-text) 9%,transparent)!important;border-radius:var(--rr-footer-radius)!important;background:color-mix(in srgb,var(--rr-footer-surface) 78%,transparent)!important}
}

@media(max-width:768px){
  body.rr-has-mobile-dock{padding-bottom:calc(var(--rr-mobile-dock-height) + env(safe-area-inset-bottom))!important}
  .rr-mobile-dock{position:fixed;right:10px;bottom:8px;left:10px;z-index:9000;display:grid;grid-template-columns:repeat(4,1fr);min-height:var(--rr-mobile-dock-height);padding:7px 8px calc(7px + env(safe-area-inset-bottom));border:1px solid color-mix(in srgb,var(--rr-footer-text) 13%,transparent);border-radius:22px;background:color-mix(in srgb,var(--rr-footer-surface) 94%,transparent);box-shadow:0 18px 48px rgba(26,11,19,.24);backdrop-filter:blur(18px)}
  .rr-mobile-dock a{position:relative;display:flex;min-width:0;min-height:52px;align-items:center;justify-content:center;flex-direction:column;gap:3px;border-radius:16px;color:var(--rr-footer-muted);font-size:9px;font-weight:700;text-decoration:none;transition:background .2s ease,color .2s ease}
  .rr-mobile-dock a.active{background:color-mix(in srgb,var(--rr-footer-accent) 16%,transparent);color:var(--rr-footer-accent)}
  .rr-mobile-dock svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .rr-mobile-dock-cart b{position:absolute;top:2px;inset-inline-end:18%;display:grid;min-width:17px;height:17px;place-items:center;padding:0 4px;border-radius:999px;background:var(--rr-footer-accent);color:#fff;font-size:9px}
  body.rr-has-mobile-dock .rr-chatbot{bottom:calc(var(--rr-mobile-dock-height) + 22px + env(safe-area-inset-bottom))!important}
  html body footer.rr-footer-managed .rr-footer-shell{grid-template-columns:1fr!important}
  html body footer.rr-footer-managed .rr-footer-brand-block{grid-column:auto!important;text-align:center!important}
  html body footer.rr-footer-managed .rr-footer-logo{justify-content:center!important}
  html body footer.rr-footer-managed .rr-footer-brand-block p{margin-inline:auto!important;font-size:12px!important;line-height:1.75!important}
  html body footer.rr-footer-managed .footer-social{justify-content:center!important;margin-top:16px!important}
  html body footer.rr-footer-managed .rr-footer-links-grid{grid-template-columns:1fr 1fr!important}
  html body footer.rr-footer-managed .footer-bottom.rr-footer-bottom-clean{align-items:center!important;flex-direction:column!important;margin-top:22px!important;padding-top:16px!important;text-align:center!important}
  html body footer.rr-footer-mobile-compact{padding-top:24px!important}
  html body footer.rr-footer-mobile-compact .rr-footer-brand-block,html body footer.rr-footer-mobile-compact .rr-footer-links-block,html body footer.rr-footer-mobile-compact .rr-footer-contact-block{padding:16px!important}
  html body footer.rr-footer-mobile-compact h4{margin-bottom:11px!important}
  .shopping-grid{gap:14px 10px!important}
  .shop-product-card{border-radius:20px!important}.shop-product-card:hover{transform:none!important}
  .shop-card-media{min-height:210px!important;padding:12px!important}.shop-card-media img{height:190px!important}
  .shop-product-card .shop-card-body{padding:13px!important}.shop-product-card h3{margin:8px 0!important;font-size:15px!important}
  .rr-product-favorite{top:9px;inset-inline-end:9px;width:38px;height:38px}.rr-product-featured-badge{top:54px;inset-inline-start:10px;min-height:26px;padding:5px 8px;font-size:8px}
  .shop-product-card .product-share-row{display:none!important}
  .shop-product-card .shop-cart-form button{min-height:44px!important;padding-inline:9px!important;font-size:10px!important}
}

@media(max-width:420px){.rr-mobile-dock{right:6px;bottom:5px;left:6px;border-radius:19px}.shopping-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.shop-card-media{min-height:180px!important}.shop-card-media img{height:160px!important}.shop-short-desc{display:none!important}}

@media(prefers-reduced-motion:reduce){.rr-loader-dots i,.shop-product-card,.rr-product-favorite svg{animation:none!important;transition:none!important}.shop-product-card:hover{transform:none!important}}
