/* Shared storefront styles: design tokens, header, footer and back-to-top button.
   Page-specific styles load after this file.
   Palette follows the logo: cream paper, ink-black wordmark, rose "BOUTIQUE". */
:root{
  --bg:#f8f3ec;
  --strip:#f3ece3;
  --card:#ffffff;
  --text:#1c1516;
  --muted:#777;
  --line:#e6dbcf;
  --rose:#c2456f;
  --rose-dark:#9c3257;
  --rose-soft:#f7e3ea;
  --offer:#d6457a;
  --green:#d9608a; /* historical name: the active-link underline, now logo pink */
  --shadow:0 2px 10px rgba(0,0,0,.06);
  --radius:4px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

/* ===== Shared Header ===== */
/* Same light pink as the footer; the logo is the transparent cut-out so it sits
   straight on the pink. */
.topbar{
  height:104px;background:linear-gradient(180deg,#fdf1f5 0%,#fae4ec 100%);
  display:flex;align-items:center;padding:0 28px;
  border-bottom:1px solid #f1cfdc;position:sticky;top:0;z-index:50
}
.logo{display:inline-flex;align-items:center;margin-right:44px}
.logo-img{height:96px;width:auto;display:block}
.main-menu{display:flex;gap:34px;align-items:center;flex:1;min-width:0;margin-right:22px}
.main-menu a{
  font-size:13px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase;
  position:relative;padding:43px 0
}
.main-menu a.offer{color:var(--offer)}
.main-menu a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:33px;height:2px;background:var(--green)
}

/* ===== Header search (after "Contact Us") ===== */
.main-menu > a,.main-menu .menu-trigger{white-space:nowrap;flex:none}
.header-search{
  position:relative;flex:1 1 320px;max-width:400px;min-width:160px;margin-left:auto;display:flex;align-items:center;
  height:46px;border:1px solid #1c1516;border-radius:6px;background:#fff;
  transition:border-color .2s ease,box-shadow .2s ease
}
.header-search:focus-within{border-color:var(--rose);box-shadow:0 0 0 3px rgba(194,69,111,.14)}
.header-search input{
  flex:1;min-width:0;height:100%;border:0;outline:none;background:transparent;
  padding:0 8px 0 16px;font-size:15px;color:var(--text)
}
.header-search input::placeholder{color:#9a9aa2}
.header-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.header-search button{
  flex:none;width:46px;height:100%;border:0;background:none;cursor:pointer;color:#1c1516;
  display:grid;place-items:center
}
.header-search button:hover{color:var(--rose)}
.header-search svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
/* The box replaces the Search icon on wide screens; phones keep the icon. */
.icon-menu .icon-item[title="Search"]{display:none}

/* ===== "All Categories" dropdown ===== */
.menu-item{position:relative;display:flex;align-items:center}
.menu-trigger{display:inline-flex;align-items:center;gap:6px}
.menu-trigger .caret{
  width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease
}
.menu-item:hover .caret,
.menu-item:focus-within .caret,
.menu-item.is-open .caret{transform:rotate(180deg)}

.mega-menu{
  position:absolute;top:100%;left:-28px;z-index:60;
  display:grid;grid-template-columns:repeat(3,minmax(158px,1fr));gap:22px 34px;
  width:max-content;max-width:min(94vw,1000px);padding:24px 30px 26px;
  background:#fff;border:1px solid #eee4d9;border-top:2px solid #c2456f;
  border-radius:0 0 10px 10px;box-shadow:0 18px 44px rgba(0,0,0,.14);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s
}
.menu-item:hover .mega-menu,
.menu-item:focus-within .mega-menu,
.menu-item.is-open .mega-menu{opacity:1;visibility:visible;transform:translateY(0)}

.mega-col h3{
  margin:0 0 13px;font-size:11px;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:#c2456f
}
.mega-col ul{list-style:none;margin:0;padding:0}
.mega-col li{margin:0 0 9px}
/* Two classes here so these beat the uppercase .main-menu a rules above. */
.main-menu .mega-menu a{
  display:block;padding:0;font-size:13px;font-weight:500;letter-spacing:0;
  text-transform:none;color:#555;transition:color .18s ease
}
.main-menu .mega-menu a:hover{color:#c2456f;text-decoration:underline;text-underline-offset:3px}
.main-menu .mega-menu a.mega-all{margin-top:4px;font-weight:800;color:#c2456f}
/* Column headings link to the whole category but keep the heading look. */
.main-menu .mega-menu .mega-col h3 a{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.main-menu .mega-menu .mega-col h3 a:hover{color:#9c3257;text-decoration:none}
.icon-menu{display:flex;gap:26px;align-items:center}
.icon-item{position:relative;width:56px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#333}
/* Saved-item count on the wishlist icon. */
.icon-badge{
  position:absolute;top:-5px;right:8px;min-width:17px;height:17px;padding:0 4px;
  border-radius:999px;background:#c2456f;color:#fff;
  font-size:10px;font-weight:800;font-style:normal;line-height:17px;text-align:center
}
.icon-item svg{width:19px;height:19px;stroke-width:1.8}
.icon-item span{font-size:9px;letter-spacing:.7px;text-transform:uppercase}

/* ===== Prices: "Rs. 450.00 INR  ~~Rs. 900.00 INR~~" ===== */
.price-now{color:var(--text);font-weight:600}
.price-sale{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:0 8px}
.price-now.is-sale{color:var(--offer);font-weight:700}
.price-was{color:#8a8078;font-weight:400;text-decoration:line-through;text-decoration-thickness:1px}
.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}

/* ===== Toast (wishlist confirmations) ===== */
.mb-toast{
  position:fixed;left:50%;bottom:28px;transform:translate(-50%,14px);
  background:#1c1516;color:#fff;border-radius:999px;padding:11px 22px;
  font-size:13px;letter-spacing:.01em;box-shadow:0 10px 30px rgba(0,0,0,.24);
  opacity:0;pointer-events:none;z-index:60;
  transition:opacity .22s ease,transform .22s ease
}
.mb-toast.show{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.mb-toast{transition:none}}

/* ===== WhatsApp ===== */
/* Floating chat button, stacked above the back-to-top button; the label slides out on hover. */
.wa-fab{
  position:fixed;right:24px;bottom:92px;z-index:41;height:56px;min-width:56px;padding:0 16px;
  display:flex;align-items:center;gap:0;border-radius:999px;background:#25d366;color:#fff;
  box-shadow:0 10px 26px rgba(18,140,76,.35);text-decoration:none;
  transition:gap .25s ease,box-shadow .2s ease,transform .2s ease
}
.wa-fab svg{width:26px;height:26px;flex:none;margin:0 -1px}
.wa-fab span{max-width:0;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:700;transition:max-width .3s ease}
.wa-fab:hover,.wa-fab:focus-visible{gap:10px;transform:translateY(-2px);box-shadow:0 14px 30px rgba(18,140,76,.42)}
.wa-fab:hover span,.wa-fab:focus-visible span{max-width:140px}
.wa-fab:focus-visible{outline:3px solid #1c1516;outline-offset:3px}
/* Product-card icon and cart button */
.icon-btn.wa-btn{color:#1f9d55}
.icon-btn.wa-btn svg{width:21px;height:21px}
.icon-btn.wa-btn:hover{color:#128c4c}
.cart-whatsapp{
  display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:10px;
  height:48px;border:1.5px solid #25d366;border-radius:999px;background:#fff;color:#128c4c;
  font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer
}
.cart-whatsapp:hover{background:#25d366;color:#fff}
.cart-whatsapp svg{width:20px;height:20px}
[data-whatsapp-product][hidden],[data-whatsapp-cart][hidden]{display:none}
@media (prefers-reduced-motion:reduce){.wa-fab,.wa-fab span{transition:none}}

/* ===== Floating to top ===== */
.to-top{
  position:fixed;right:24px;bottom:24px;width:52px;height:52px;border-radius:50%;
  border:1px solid #ddd;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.13);
  display:grid;place-items:center;cursor:pointer;z-index:40
}
.to-top svg{width:22px;height:22px}

/* ===== Shared Footer ===== */
/* Light pink taken from the logo's rose "BOUTIQUE" and flower, with the logo's
   thin rose rules echoed as a fading line along the top edge. */
.site-footer{
  position:relative;color:#3a2a30;
  background:
    radial-gradient(circle at 8% 0%,rgba(255,255,255,.7),transparent 42%),
    radial-gradient(circle at 96% 100%,rgba(217,96,138,.12),transparent 46%),
    linear-gradient(180deg,#fdf1f5 0%,#fae4ec 100%);
  border-top:1px solid #f1cfdc
}
.site-footer::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:2px;
  background:linear-gradient(90deg,transparent,#d9608a 25%,#c2456f 50%,#d9608a 75%,transparent)
}
.footer-inner{max-width:1440px;margin:0 auto;padding:68px 28px 34px}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1.15fr 1fr 1.7fr;gap:42px;align-items:start}
/* Transparent cut-out of the logo, so it sits straight on the pink. */
.footer-brand{display:inline-block;margin-bottom:14px}
.footer-brand img{width:auto;max-width:160px;height:auto;display:block}
.footer-tagline{margin:0 0 20px;color:#7a5a66;font-size:14px;line-height:1.7;max-width:260px;font-style:italic}
.footer-heading{
  position:relative;margin:0 0 20px;padding-bottom:10px;color:#9c3257;font-size:12px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase
}
.footer-heading::after{
  content:"";position:absolute;left:0;bottom:0;width:34px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,#c2456f,#f0a9c1)
}
.footer-links{list-style:none;margin:0;padding:0}
.footer-links li{margin:0 0 10px}
.footer-links a,.footer-contact a{
  color:#6b4d58;text-decoration:none;font-size:14px;line-height:1.5;
  display:inline-block;transition:color .2s ease,transform .2s ease
}
.footer-links a:hover,.footer-contact a:hover{color:#c2456f}
.footer-links a:hover{transform:translateX(3px)}
.footer-social{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.footer-social .social-icon{
  width:36px;height:36px;border:1px solid #efbccd;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;color:#c2456f;
  text-decoration:none;background:#fff;box-shadow:0 3px 10px rgba(194,69,111,.1);
  transition:all .2s ease
}
.footer-social .social-icon:hover{
  background:#c2456f;border-color:#c2456f;color:#fff;transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(194,69,111,.3)
}
.footer-social .social-icon svg,.footer-contact-icon svg{
  width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round
}
.footer-contact{display:flex;flex-direction:column;gap:13px}
.footer-contact-item{display:flex;align-items:flex-start;gap:10px;color:#6b4d58;font-size:14px;line-height:1.55}
.footer-contact-icon{flex:0 0 18px;margin-top:2px;color:#c2456f}
.footer-bottom{
  position:relative;margin-top:46px;padding-top:22px;
  display:flex;align-items:center;justify-content:center;gap:24px;text-align:center
}
.footer-bottom::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,#e7a8bf 15%,#e7a8bf 85%,transparent)
}
.footer-copy{color:#8a6a76;font-size:13px}
@media (prefers-reduced-motion:reduce){
  .footer-links a,.footer-social .social-icon{transition:none}
  .footer-links a:hover,.footer-social .social-icon:hover{transform:none}
}

/* ===== Responsive ===== */
@media(max-width:1100px){
  .topbar{padding:0 18px;height:92px}
  .logo{margin-right:22px}
  .logo-img{height:82px}
  .main-menu{gap:22px}
  .main-menu a{font-size:11px;padding:37px 0}
  .main-menu{margin-right:12px}
  .header-search{flex-basis:200px;height:42px}
  .header-search input{font-size:13.5px;padding-left:12px}
  .main-menu a.active::after{bottom:28px}
  .icon-menu{gap:10px}
  .mega-menu{min-width:560px;left:-20px;padding:20px 24px 22px;gap:18px 24px}
  .main-menu .mega-menu a{font-size:12.5px}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:760px){
  .topbar{
    height:auto;min-height:64px;padding:10px 14px;display:grid;
    grid-template-columns:1fr auto;gap:8px
  }
  .logo{margin:0}
  .logo-img{height:62px}
  /* The nav scrolls sideways here, which would clip an absolutely positioned panel,
     so the list is fixed to the screen instead (site.js sets its top) and opens on tap. */
  .mega-menu{
    position:fixed;left:12px;right:12px;width:auto;min-width:0;max-width:none;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:14px 18px;
    padding:18px 18px 10px;border-radius:10px;max-height:70vh;overflow-y:auto
  }
  .menu-item:hover .mega-menu,
  .menu-item:focus-within .mega-menu{opacity:0;visibility:hidden}
  .menu-item.is-open .mega-menu{opacity:1;visibility:visible;transform:translateY(0)}
  .main-menu{
    grid-column:1/-1;order:3;gap:22px;overflow-x:auto;padding:8px 0 3px;
    scrollbar-width:none
  }
  .main-menu::-webkit-scrollbar{display:none}
  .main-menu .header-search{display:none}
  .icon-menu .icon-item[title="Search"]{display:flex}
  .main-menu a{font-size:10px;white-space:nowrap;padding:5px 0}
  .main-menu a.active::after{bottom:0}
  .icon-menu{gap:8px}
  .icon-item{width:35px}
  .icon-item span{display:none}
  .icon-item:first-child{display:none}
  .to-top{right:14px;bottom:14px;width:46px;height:46px}
  .wa-fab{right:14px;bottom:72px;height:50px;min-width:50px;padding:0 12px}
}

@media(max-width:640px){
  .footer-inner{padding:38px 20px 28px}
  .footer-grid{grid-template-columns:1fr;gap:28px;text-align:center}
  .footer-tagline{max-width:none;margin-left:auto;margin-right:auto}
  .footer-heading::after{left:50%;transform:translateX(-50%)}
  .footer-social{justify-content:center}
  .footer-contact{align-items:center}
  .footer-contact-item{justify-content:center;max-width:320px}
  .footer-bottom{margin-top:32px}
}
