/*
Theme Name: Loop (Chai Nest)
Theme URI: https://chainestore.com
Author: Chai Nest
Description: Loop visual identity applied to Chai Nest — pastel candy palette, Baloo 2 + DM Sans type, WooCommerce ready.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: loop-chai-nest
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root{
  --cloud:      #F8F7FB;
  --lilac:      #E2DCF5;
  --petal:      #F7D9E3;
  --sea-glass:  #D7F0E6;
  --flash:      #FF3E7F;
  --ink:        #2E2B38;

  --font-head: 'Baloo 2', system-ui, sans-serif;
  --font-body: 'DM Sans', system-ui, sans-serif;

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --radius-pill: 999px;

  --container: 1120px;
  --gutter: 24px;

  --shadow-card: 0 8px 24px rgba(46,43,56,0.08);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cloud);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{
  font-family:var(--font-head);
  font-weight:700;
  line-height:1.12;
  margin:0 0 .5em;
  color:var(--ink);
}
p{ margin:0 0 1em; }
.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--gutter);
}
.eyebrow{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:700;
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--flash);
  margin-bottom:.75rem;
}
.section{ padding:64px 0; }
.section--tight{ padding:40px 0; }

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  font-family:var(--font-body);
  font-weight:700;
  font-size:.95rem;
  padding:14px 28px;
  border-radius:var(--radius-pill);
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); }
.btn--primary{ background:var(--flash); color:#fff; }
.btn--primary:hover{ box-shadow:0 6px 18px rgba(255,62,127,.35); }
.btn--outline{ background:transparent; border-color:var(--ink); color:var(--ink); }
.btn--outline:hover{ background:var(--ink); color:#fff; }
.btn--small{ padding:8px 18px; font-size:.8rem; }
.btn--block{ width:100%; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  border-bottom:1px solid rgba(46,43,56,.08);
  background:var(--cloud);
  position:sticky;
  top:0;
  z-index:50;
}
.site-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px var(--gutter);
  max-width:var(--container);
  margin:0 auto;
}
.site-logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.3rem;
  letter-spacing:.02em;
  color:var(--ink);
}
.site-logo svg{ flex:none; }
.main-nav ul{ display:flex; gap:36px; }
.main-nav a{
  font-family:var(--font-body);
  font-weight:700;
  font-size:.95rem;
  color:var(--ink);
}
.main-nav a:hover{ color:var(--flash); }
.header-actions{ display:flex; align-items:center; gap:18px; }
.header-icon-link{ position:relative; display:inline-flex; }
.cart-count{
  position:absolute; top:-8px; right:-10px;
  background:var(--flash); color:#fff;
  font-size:.65rem; font-weight:700;
  border-radius:var(--radius-pill);
  min-width:18px; height:18px;
  display:flex; align-items:center; justify-content:center;
  padding:0 4px;
}
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; color:var(--ink); padding:4px; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{ padding:56px 0 24px; }
.hero__content{ max-width:640px; margin-bottom:40px; }
.hero h1{ font-size:clamp(2.1rem,4vw,3rem); }
.hero p{ font-size:1.05rem; color:rgba(46,43,56,.75); max-width:520px; }
.hero__actions{ display:flex; gap:16px; margin-top:28px; flex-wrap:wrap; }
.hero__image{
  border-radius:var(--radius-lg);
  background:linear-gradient(120deg,var(--petal),var(--lilac) 55%,var(--sea-glass));
  min-height:420px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.hero__image .mark-watermark{ position:absolute; top:24px; right:28px; opacity:.35; }
.hero__image .placeholder-label{
  position:absolute; bottom:20px; left:50%; transform:translateX(-50%);
  font-family:var(--font-body); font-size:.7rem; letter-spacing:.12em;
  text-transform:uppercase; color:rgba(46,43,56,.5);
}
.hero__image .placeholder-icon{ opacity:.55; }

/* ==========================================================================
   Category grid
   ========================================================================== */
.category-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.category-card{
  border-radius:var(--radius-md);
  padding:36px 20px;
  text-align:center;
  font-family:var(--font-head);
  font-weight:700;
  color:var(--ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  transition:transform .15s ease;
}
.category-card:hover{ transform:translateY(-4px); }
.category-card svg{ opacity:.85; }
.category-card--lilac{ background:var(--lilac); }
.category-card--petal{ background:var(--petal); }
.category-card--sea-glass{ background:var(--sea-glass); }
.category-card--cloud{ background:#EFEDF7; }

/* Trust badges */
.trust-bar{
  display:flex;
  justify-content:center;
  gap:56px;
  flex-wrap:wrap;
  padding:28px 0;
  border-top:1px solid rgba(46,43,56,.08);
  border-bottom:1px solid rgba(46,43,56,.08);
}
.trust-item{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:.95rem;
}
.trust-item svg{ color:var(--flash); }

/* ==========================================================================
   Section headings row
   ========================================================================== */
.section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:28px;
}
.section-head a{ font-weight:700; color:var(--flash); font-size:.95rem; }

/* ==========================================================================
   Product cards (shared: homepage + shop)
   ========================================================================== */
.product-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.product-card{
  background:#fff;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  display:flex;
  flex-direction:column;
}
.product-card__media-link,
.product-card__title-link{ display:block; }
.product-card__media{
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  font-family:var(--font-body);
  font-size:.7rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(46,43,56,.45);
}
.product-card__media--1{ background:linear-gradient(135deg,var(--lilac),var(--petal)); }
.product-card__media--2{ background:linear-gradient(135deg,var(--sea-glass),var(--lilac)); }
.product-card__media--3{ background:linear-gradient(135deg,var(--sea-glass),#fff); }
.product-card__media--4{ background:linear-gradient(135deg,var(--petal),#fff); }
.product-card__body{ padding:18px 18px 20px; display:flex; flex-direction:column; gap:6px; flex:1; }
.product-card__title{ font-family:var(--font-head); font-weight:700; font-size:1.05rem; }
.product-card__subtitle{ font-size:.85rem; color:rgba(46,43,56,.6); margin-bottom:4px; }
.product-card__footer{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.product-card__price{ font-family:var(--font-head); font-weight:700; color:var(--flash); }
.sale-badge{
  position:absolute; top:12px; left:12px;
  background:var(--flash); color:#fff;
  font-size:.7rem; font-weight:700;
  padding:4px 10px; border-radius:var(--radius-pill);
}

/* Testimonials (dark section) */
.testimonials{
  background:var(--ink);
  color:#fff;
  border-radius:var(--radius-lg);
  padding:56px 40px;
  text-align:center;
}
.testimonials h2{ color:#fff; }
.testimonials .section-sub{ color:rgba(255,255,255,.6); font-size:.9rem; margin-bottom:36px; }
.testimonial-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; text-align:left; }
.testimonial-card{
  background:rgba(255,255,255,.06);
  border-radius:var(--radius-md);
  padding:24px;
}
.stars{ color:var(--flash); letter-spacing:2px; margin-bottom:12px; font-size:.95rem; }
.testimonial-card p{ margin-bottom:16px; }
.testimonial-attr{ font-size:.8rem; color:rgba(255,255,255,.55); }

/* UGC grid */
.ugc-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.ugc-tile{
  aspect-ratio:1/1;
  border-radius:var(--radius-md);
  display:flex; align-items:flex-end; justify-content:center;
  padding-bottom:14px;
  font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(46,43,56,.45);
}
.ugc-tile:nth-child(1){ background:linear-gradient(135deg,var(--petal),var(--lilac)); }
.ugc-tile:nth-child(2){ background:linear-gradient(135deg,var(--sea-glass),var(--lilac)); }
.ugc-tile:nth-child(3){ background:linear-gradient(135deg,var(--sea-glass),#fff); }
.ugc-tile:nth-child(4){ background:linear-gradient(135deg,var(--lilac),#fff); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ background:var(--ink); color:#fff; margin-top:64px; }
.site-footer .container{ padding-top:56px; padding-bottom:24px; }
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:32px;
  padding-bottom:36px;
}
.footer-brand p{ color:rgba(255,255,255,.65); font-size:.9rem; }
.footer-logo{ display:flex; align-items:center; gap:8px; font-family:var(--font-head); font-weight:700; font-size:1.15rem; color:#fff; margin-bottom:14px; }
.social-row{ display:flex; gap:12px; margin-top:16px; }
.social-row a{
  width:36px; height:36px; border-radius:var(--radius-pill);
  background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center;
}
.footer-col h4{ color:#fff; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:16px; }
.footer-col ul li{ margin-bottom:10px; }
.footer-col a{ color:rgba(255,255,255,.7); font-size:.9rem; }
.footer-col a:hover{ color:var(--flash); }
.newsletter-row{ display:flex; margin-bottom:16px; }
.newsletter-row input{
  flex:1; border:none; border-radius:var(--radius-pill) 0 0 var(--radius-pill);
  padding:12px 16px; font-family:var(--font-body); background:rgba(255,255,255,.9);
}
.newsletter-row button{
  border-radius:0 var(--radius-pill) var(--radius-pill) 0;
  background:var(--flash); color:#fff; border:none; padding:0 22px; font-weight:700; cursor:pointer;
}
.whatsapp-link{ display:flex; align-items:center; gap:8px; font-size:.85rem; color:rgba(255,255,255,.85); }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:20px 0;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:.8rem; color:rgba(255,255,255,.5);
}
.footer-bottom a{ color:rgba(255,255,255,.5); margin-left:16px; }

/* ==========================================================================
   Generic page / contact
   ========================================================================== */
.page-hero{ padding:56px 0 32px; text-align:center; }
.page-hero h1{ font-size:clamp(2rem,4vw,2.6rem); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.contact-card{
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
  padding:32px;
}
.contact-card h3{ margin-bottom:18px; }
.contact-field{ margin-bottom:16px; }
.contact-field label{ display:block; font-weight:700; font-size:.85rem; margin-bottom:6px; }
.contact-field input,.contact-field textarea{
  width:100%; padding:12px 14px; border-radius:var(--radius-sm);
  border:1px solid rgba(46,43,56,.15); font-family:var(--font-body); font-size:.95rem;
  background:#fff;
}
.info-row{ display:flex; gap:14px; align-items:flex-start; margin-bottom:22px; }
.info-row svg{ flex:none; color:var(--flash); margin-top:2px; }
.info-row h4{ font-size:.95rem; margin-bottom:4px; }
.info-row p{ margin:0; color:rgba(46,43,56,.65); font-size:.9rem; }
.whatsapp-cta{
  display:flex; align-items:center; gap:12px;
  background:var(--sea-glass); border-radius:var(--radius-md); padding:18px 22px; margin-top:24px;
}

/* ==========================================================================
   WooCommerce
   ========================================================================== */
.woo-wrap{ padding:48px 0 72px; }
.category-back-link{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-body); font-weight:700; font-size:.85rem;
  color:var(--ink); text-decoration:none; margin-bottom:.75rem;
}
.category-back-link:hover{ color:var(--flash); }
.category-hero-description{
  font-family:var(--font-body); font-size:1rem; color:rgba(46,43,56,.7);
  max-width:560px; margin-top:8px;
}
.woocommerce ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,1fr);
  justify-content:start;
  gap:24px;
  list-style:none;
}
/* WooCommerce gives ul.products a float-era clearfix (::before/::after with
   content:" "; display:table), meant to contain floated li's. Once the list
   itself is display:grid, those two generated boxes become real anonymous
   grid items and silently eat two cells — pushing every actual product over
   by one slot (visible as a phantom empty cell before the first product).
   Kill them so only the real li.product elements are grid items. */
.woocommerce ul.products::before,
.woocommerce ul.products::after{ content:none !important; display:none !important; }
/* The <li> is just the grid cell — content-product.php puts the real
   ".product-card" component (same one the homepage Best Sellers use) inside
   it, so the li itself carries no visual styling of its own. */
.woocommerce ul.products li.product{
  width:auto !important;
  float:none !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none;
}
.woocommerce ul.products li.product .product-card{ height:100%; cursor:default; }
.woocommerce span.onsale{
  background:var(--flash); color:#fff; border-radius:var(--radius-pill);
  font-weight:700; font-size:.7rem; min-height:auto; min-width:auto;
  padding:4px 10px; line-height:1.4; top:12px; left:12px; right:auto;
}
.woocommerce nav.woocommerce-pagination ul{ border:none; gap:8px; display:flex; }
.woocommerce nav.woocommerce-pagination ul li{ border:none !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  border-radius:var(--radius-pill) !important; border:1px solid rgba(46,43,56,.15) !important;
}

/* Single product */
.woocommerce div.product .product_title{ font-family:var(--font-head); }
.woocommerce div.product p.price,
.woocommerce div.product span.price{ color:var(--flash); font-family:var(--font-head); font-size:1.4rem; }
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button{
  background:var(--flash); color:#fff; border-radius:var(--radius-pill);
  padding:14px 28px; font-weight:700; border:none;
}
.woocommerce div.product form.cart .button:hover{ background:var(--ink); }
.woocommerce div.product .woocommerce-product-gallery{ border-radius:var(--radius-lg); overflow:hidden; }

/* Cart & checkout */
.woocommerce table.shop_table{
  border-radius:var(--radius-md); overflow:hidden; border-collapse:separate; border-spacing:0;
  border:1px solid rgba(46,43,56,.1);
}
.woocommerce table.shop_table th{ background:var(--lilac); font-family:var(--font-head); }
.woocommerce-checkout #payment{ background:var(--cloud) !important; border-radius:var(--radius-md); }
.woocommerce-checkout #payment div.payment_box{ background:var(--sea-glass) !important; }
.woocommerce #order_review_heading,
.woocommerce-checkout h3{ font-family:var(--font-head); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  border-radius:var(--radius-sm); border:1px solid rgba(46,43,56,.18); padding:10px 12px;
}
.woocommerce-checkout #place_order,
.woocommerce-cart .checkout-button{
  background:var(--flash) !important; border-radius:var(--radius-pill) !important; font-weight:700 !important;
}
.checkout-steps{ display:flex; gap:16px; margin-bottom:32px; flex-wrap:wrap; }
.checkout-step{
  display:flex; align-items:center; gap:8px; font-weight:700; font-size:.85rem;
  background:#fff; border-radius:var(--radius-pill); padding:8px 16px; box-shadow:var(--shadow-card);
}
.checkout-step__num{
  width:22px; height:22px; border-radius:50%; background:var(--flash); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:.75rem;
}

/* Notices (added-to-cart, form errors) — restyled to match brand instead of default WC gray */
.woocommerce-message,
.woocommerce-info{
  border-top-color:var(--flash) !important;
  background:#fff; border-radius:var(--radius-sm); box-shadow:var(--shadow-card);
}
.woocommerce-message::before,
.woocommerce-info::before{ color:var(--flash) !important; }
.woocommerce-message .button,
.woocommerce-info .button{
  background:var(--flash); color:#fff; border-radius:var(--radius-pill);
}
.woocommerce-error{
  border-top-color:var(--ink) !important;
  background:#fff; border-radius:var(--radius-sm); box-shadow:var(--shadow-card);
}

/* ==========================================================================
   Mobile navigation (dropdown panel toggled by #nav-toggle, see footer.php)
   ========================================================================== */
.main-nav.is-open{ display:block !important; }

/* ==========================================================================
   Responsive — tablet / narrow desktop
   ========================================================================== */
@media (max-width: 900px){
  .category-grid, .product-grid, .testimonial-grid, .ugc-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .woocommerce ul.products{ grid-template-columns:repeat(2,1fr) !important; justify-content:start !important; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .contact-grid{ grid-template-columns:1fr; }

  /* WooCommerce's own woocommerce-smallscreen.css (loaded for <=768px) sets
     float:left/right + a fixed % width on each li.product for its own 2-up
     "brick" layout, which fights our CSS grid on the same element and pushes
     cards into the wrong column. Strip it so our grid is the only thing
     placing these items. */
  .woocommerce ul.products li.product{
    float:none !important;
    width:auto !important;
    margin:0 !important;
    clear:none !important;
  }

  .shop-layout{ grid-template-columns:1fr; }
  .shop-filters{ position:static; }

  .nav-toggle{ display:inline-flex; }
  .main-nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--cloud);
    border-bottom:1px solid rgba(46,43,56,.1);
    box-shadow:0 16px 28px rgba(46,43,56,.14);
    z-index:60;
  }
  .main-nav ul{ flex-direction:column; gap:0; padding:8px 0; }
  .main-nav li + li{ border-top:1px solid rgba(46,43,56,.07); }
  .main-nav a{ display:block; padding:16px var(--gutter); }

  .hero__image{ min-height:320px; }
  .testimonial-grid{ grid-template-columns:1fr !important; }
}

/* ==========================================================================
   Responsive — phone
   ========================================================================== */
@media (max-width: 600px){
  :root{ --gutter:18px; }

  .section{ padding:44px 0; }
  .section--tight{ padding:28px 0; }

  .site-header__inner{ padding:14px var(--gutter); }
  .site-logo span{ font-size:1.1rem; }
  .main-nav a{ font-size:1rem; }

  .hero{ padding:32px 0 16px; }
  .hero__content{ margin-bottom:28px; }
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .hero__actions .btn{ width:100%; }
  .hero__image{ min-height:240px; border-radius:var(--radius-md); }

  .category-grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .category-card{ padding:24px 14px; }

  .product-grid{ grid-template-columns:repeat(2,1fr) !important; gap:14px; }
  .woocommerce ul.products{ grid-template-columns:repeat(2,1fr) !important; justify-content:start !important; gap:14px; }
  .product-card__body{ padding:14px 14px 16px; }

  .shop-filters{ padding:20px; }
  .shop-toolbar{ flex-direction:column; align-items:flex-start; gap:10px; }

  .trust-bar{ gap:18px 26px; padding:20px 0; }
  .trust-item{ font-size:.82rem; }

  .testimonials{ padding:36px 20px; }
  .testimonial-grid{ grid-template-columns:1fr !important; }

  .ugc-grid{ grid-template-columns:repeat(2,1fr); gap:10px; }

  .footer-grid{ grid-template-columns:1fr; gap:28px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .footer-bottom span:last-child{ display:flex; flex-direction:column; gap:6px; }
  .footer-bottom a{ margin-left:0; }

  .checkout-steps{ gap:8px; }
  .checkout-step{ font-size:.78rem; padding:6px 12px; }

  .contact-card{ padding:22px; }

  .woocommerce div.product p.price,
  .woocommerce div.product span.price{ font-size:1.2rem; }
}

/* ==========================================================================
   Quick Add modal
   ========================================================================== */
body.qa-lock{ overflow:hidden; }
.qa-modal{
  position:fixed; inset:0; z-index:200;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  opacity:0; visibility:hidden;
  transition:opacity .2s ease, visibility .2s ease;
}
.qa-modal.is-open{ opacity:1; visibility:visible; }
.qa-modal__overlay{
  position:absolute; inset:0;
  background:rgba(46,43,56,.45);
  backdrop-filter:blur(2px);
}
.qa-modal__panel{
  position:relative;
  background:#fff;
  border-radius:var(--radius-lg);
  box-shadow:0 24px 60px rgba(46,43,56,.28);
  width:100%; max-width:560px;
  max-height:90vh;
  overflow-y:auto;
  display:grid;
  grid-template-columns:220px 1fr;
  gap:0;
  transform:translateY(12px) scale(.98);
  transition:transform .2s ease;
}
.qa-modal.is-open .qa-modal__panel{ transform:translateY(0) scale(1); }
.qa-modal__close{
  position:absolute; top:14px; right:14px;
  width:32px; height:32px; border-radius:50%;
  border:none; background:rgba(46,43,56,.06);
  color:var(--ink); font-size:1.3rem; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  z-index:2;
}
.qa-modal__close:hover{ background:rgba(46,43,56,.12); }
.qa-modal__media{
  background:linear-gradient(135deg,var(--lilac),var(--petal));
  display:flex; align-items:center; justify-content:center;
  min-height:220px;
}
.qa-modal__media img{ width:100%; height:100%; object-fit:cover; }
.qa-modal__body{ padding:32px 28px 28px; display:flex; flex-direction:column; }
.qa-modal__title{ font-family:var(--font-head); font-size:1.3rem; margin-bottom:4px; padding-right:20px; }
.qa-modal__price{ font-family:var(--font-head); font-weight:700; color:var(--flash); font-size:1.1rem; margin-bottom:20px; }
.qa-modal__field{ margin-bottom:20px; }
.qa-modal__label{
  display:flex; justify-content:space-between;
  font-weight:700; font-size:.85rem;
  text-transform:uppercase; letter-spacing:.06em;
  color:rgba(46,43,56,.7);
  margin-bottom:10px;
}
.qa-modal__value{ text-transform:none; letter-spacing:0; font-weight:700; color:var(--ink); }
.qa-swatches{ display:flex; gap:10px; }
.qa-swatch{
  width:34px; height:34px; border-radius:50%;
  border:2px solid #fff;
  box-shadow:0 0 0 1.5px rgba(46,43,56,.18);
  cursor:pointer; padding:0;
  transition:box-shadow .15s ease, transform .15s ease;
}
.qa-swatch:hover{ transform:translateY(-1px); }
.qa-swatch.is-selected{ box-shadow:0 0 0 2px var(--flash); }
.qa-sizes{ display:flex; gap:8px; flex-wrap:wrap; }
.qa-size{
  min-width:44px; padding:8px 10px;
  border-radius:var(--radius-sm);
  border:1.5px solid rgba(46,43,56,.18);
  background:#fff; color:var(--ink);
  font-family:var(--font-body); font-weight:700; font-size:.85rem;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease, color .15s ease;
}
.qa-size:hover{ border-color:var(--ink); }
.qa-size.is-selected{ background:var(--ink); border-color:var(--ink); color:#fff; }
.qa-modal__submit{ margin-top:auto; }
.qa-modal__submit[disabled]{ opacity:.65; cursor:default; }
.qa-modal__note{
  font-size:.72rem; color:rgba(46,43,56,.45);
  margin:12px 0 0; line-height:1.4;
}

/* ==========================================================================
   Added-to-cart toast
   ========================================================================== */
.cart-toast{
  position:fixed;
  right:24px; bottom:24px;
  z-index:250;
  width:320px;
  max-width:calc(100vw - 32px);
  background:#fff;
  border-radius:var(--radius-md);
  box-shadow:0 20px 48px rgba(46,43,56,.24);
  padding:16px 16px 14px;
  opacity:0;
  transform:translateY(16px) scale(.97);
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
  overflow:hidden;
}
.cart-toast.is-open{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.cart-toast__progress{
  position:absolute; left:0; top:0; height:3px;
  background:var(--flash);
  width:100%;
  transform-origin:left;
}
.cart-toast.is-open .cart-toast__progress{
  animation:cartToastProgress 5s linear forwards;
}
@keyframes cartToastProgress{ from{ transform:scaleX(1); } to{ transform:scaleX(0); } }
.cart-toast__close{
  position:absolute; top:10px; right:10px;
  width:24px; height:24px; border-radius:50%;
  border:none; background:rgba(46,43,56,.06);
  color:var(--ink); font-size:1.05rem; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.cart-toast__close:hover{ background:rgba(46,43,56,.12); }
.cart-toast__row{ display:flex; gap:12px; margin-top:6px; }
.cart-toast__media{
  width:52px; height:52px; flex:none;
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:linear-gradient(135deg,var(--lilac),var(--petal));
}
.cart-toast__media img{ width:100%; height:100%; object-fit:cover; }
.cart-toast__body{ min-width:0; padding-right:16px; }
.cart-toast__check{
  display:flex; align-items:center; gap:6px;
  font-weight:700; font-size:.82rem; color:var(--flash);
  margin-bottom:4px;
}
.cart-toast__check svg{ flex:none; }
.cart-toast__name{
  font-family:var(--font-head); font-weight:700; font-size:.95rem;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cart-toast__meta{ font-size:.78rem; color:rgba(46,43,56,.55); margin-top:2px; }
.cart-toast__actions{ display:flex; gap:8px; margin-top:14px; }
.cart-toast__actions .btn{ padding:10px 14px; font-size:.8rem; }

@media (max-width: 600px){
  .qa-modal__panel{ grid-template-columns:1fr; max-width:420px; }
  .qa-modal__media{ min-height:160px; }
  .qa-modal__body{ padding:24px 20px 20px; }

  .cart-toast{
    left:16px; right:16px; bottom:16px; width:auto;
  }
}

/* ==========================================================================
   Wishlist heart (product-card overlay + header icon, see header.php /
   front-page.php / content-product.php + the wishlist script in footer.php)
   ========================================================================== */
.product-card{ position:relative; }
.wishlist-heart{
  position:absolute; top:12px; right:12px; z-index:2;
  width:34px; height:34px; border-radius:var(--radius-pill);
  background:rgba(255,255,255,.85); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding:0;
  color:var(--ink);
  transition:transform .15s ease, color .15s ease;
}
.wishlist-heart:hover{ transform:scale(1.08); }
.wishlist-heart svg{ stroke:currentColor; }
.wishlist-heart.is-active{ color:var(--flash); }
.wishlist-heart.is-active svg{ fill:var(--flash); }

/* ==========================================================================
   Shop layout — sidebar filters + product grid (Shop / category / tag)
   ========================================================================== */
.shop-layout{
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:36px;
  align-items:start;
}
.shop-filters{
  background:#fff;
  border:1px solid rgba(46,43,56,.08);
  border-radius:var(--radius-lg);
  padding:26px;
  position:sticky;
  top:100px;
}
.shop-filters__group{ margin-bottom:30px; }
.shop-filters__group:last-of-type{ margin-bottom:0; }
.shop-filters__title{
  font-family:var(--font-head); font-weight:600; font-size:1.1rem; margin-bottom:16px;
}
.shop-filters__list{ display:flex; flex-direction:column; gap:14px; }
.shop-filter-cat{
  display:flex; align-items:center; gap:11px;
  font-size:.95rem; color:var(--ink); font-weight:400;
}
.shop-filter-cat.is-active{ font-weight:700; }
.shop-filter-cat:hover{ color:var(--flash); }
.shop-filter-cat__box{
  width:20px; height:20px; border-radius:6px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:#fff; border:1.5px solid rgba(46,43,56,.16);
  color:#fff;
}
.shop-filter-cat.is-active .shop-filter-cat__box{
  background:var(--flash); border-color:var(--flash);
}
.shop-filters__pills{ display:flex; flex-wrap:wrap; gap:8px; }
.shop-filter-pill{
  cursor:pointer; border-radius:var(--radius-pill);
  padding:9px 16px; font-family:var(--font-head); font-weight:600; font-size:.9rem;
  border:1.5px solid rgba(46,43,56,.14); background:#fff; color:var(--ink);
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.shop-filter-pill:hover{ border-color:var(--ink); }
.shop-filter-pill.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }
.shop-filters__swatches{ display:flex; flex-wrap:wrap; gap:12px; }
.shop-filter-swatch{
  width:32px; height:32px; border-radius:var(--radius-pill); cursor:pointer;
  border:none; box-shadow:none; padding:0;
  transition:box-shadow .15s ease;
}
.shop-filter-swatch.is-active{ box-shadow:0 0 0 2.5px var(--flash); }
.shop-filters__clear{
  margin-top:22px; width:100%;
  background:transparent; border:1.5px solid rgba(46,43,56,.14); border-radius:var(--radius-pill);
  padding:10px; font-family:var(--font-head); font-weight:700; font-size:.85rem; color:var(--ink);
  cursor:pointer;
}
.shop-filters__clear:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }

.shop-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-bottom:22px; flex-wrap:wrap;
}
.shop-toolbar__count{ font-size:.9rem; color:rgba(46,43,56,.65); }
.shop-toolbar__sort .woocommerce-ordering{ margin:0; }
.shop-toolbar__sort select.orderby{
  appearance:none; -webkit-appearance:none;
  background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8"><path d="M1 1l5 5 5-5" fill="none" stroke="%232E2B38" stroke-width="1.6"/></svg>') no-repeat right 16px center;
  border:1px solid rgba(46,43,56,.14); border-radius:var(--radius-pill);
  padding:11px 40px 11px 20px; font-family:var(--font-body); font-size:.9rem; font-weight:500;
  cursor:pointer; white-space:nowrap;
}
.shop-no-matches{
  text-align:center; padding:48px 20px; color:rgba(46,43,56,.6); font-size:.95rem;
}
.shop-no-matches button{
  background:none; border:none; color:var(--flash); font-weight:700; cursor:pointer; text-decoration:underline;
  font-size:inherit; padding:0; margin-left:4px;
}
.js-shop-card[hidden]{ display:none !important; }

/* ==========================================================================
   Single product page (PDP) — v1.8.0
   Rebuilt to match the "Chai Nest Product" (desktop) + "Product-Mobile"
   designs. Markup: loop_pdp_render() in functions.php. JS: loop_pdp_script().
   ========================================================================== */
.pdp{
  --pdp-muted:#5A5570;
  --pdp-line:#E2DCF5;
  --pdp-card-line:#EDEAF4;
  /* Aligned to the site header's container (design uses 1280px — see notes) */
  max-width:var(--container);
  margin:0 auto;
  padding:34px var(--gutter) 90px;
  color:var(--ink);
  font-family:var(--font-body);
}
.pdp *{ box-sizing:border-box; }
/* The header's wishlist bubble ships with [hidden] but .cart-count's display:flex overrode it */
.cart-count[hidden]{ display:none !important; }
.pdp .woocommerce-notices-wrapper:empty{ display:none; }

/* Breadcrumb / back link */
.pdp-crumbs{ font-size:13.5px; color:var(--pdp-muted); margin-bottom:30px; }
.pdp-crumbs a{ color:var(--pdp-muted); }
.pdp-crumbs a:hover{ color:var(--ink); }
.pdp-crumbs__current{ color:var(--flash); font-weight:500; }
.pdp-back{ display:none; }

/* Top grid */
.pdp-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:56px;
  align-items:start;
}
.pdp-gallery{ min-width:0; position:relative; }
.pdp-gallery__stage{ position:relative; }
.pdp-gallery__rail{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  border-radius:24px;
}
.pdp-gallery__rail::-webkit-scrollbar{ display:none; }
.pdp-slide{
  flex:0 0 100%;
  width:100%;
  aspect-ratio:1/1;
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  overflow:hidden;
  position:relative;
}
.pdp-slide img{ width:100%; height:100%; object-fit:cover; }
.pdp-slide svg{ max-width:55%; height:auto; }
.pdp-ph-label{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:#6B6580;
}
.pdp-bg-1{ background:linear-gradient(140deg,#E2DCF5,#F7D9E3); }
.pdp-bg-2{ background:linear-gradient(140deg,#F7D9E3,#D7F0E6); }
.pdp-bg-3{ background:linear-gradient(140deg,#D7F0E6,#E2DCF5); }
.pdp-bg-4{ background:linear-gradient(140deg,#F8F7FB,#E2DCF5); }

.pdp-gallery__heart,
.pdp-gallery__dots{ display:none; }

.pdp-thumbs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.pdp-thumb{
  min-width:0; background:none; border:0; padding:0; cursor:pointer;
  font:inherit; color:inherit; text-align:center;
}
.pdp-thumb__box{
  aspect-ratio:1/1; border-radius:16px; overflow:hidden;
  border:2px solid transparent;
  display:flex; align-items:center; justify-content:center;
  transition:border-color .15s ease;
}
.pdp-thumb__box img{ width:100%; height:100%; object-fit:cover; }
.pdp-thumb.is-active .pdp-thumb__box{ border-color:var(--flash); }
.pdp-thumb:hover .pdp-thumb__box{ border-color:rgba(255,62,127,.45); }
.pdp-thumb.is-active:hover .pdp-thumb__box{ border-color:var(--flash); }
.pdp-thumb__label{ display:block; margin-top:8px; font-size:11.5px; color:var(--pdp-muted); }

/* Info column */
.pdp-info{ min-width:0; }
.pdp-eyebrow{
  font-size:12.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--flash); margin-bottom:14px;
}
.pdp-eyebrow a{ color:inherit; }
.pdp .pdp-title{
  font-family:var(--font-head); font-weight:700;
  font-size:34px; line-height:1.12; margin:0 0 14px; color:var(--ink);
}
.pdp-rating{ display:flex; align-items:center; gap:10px; margin-bottom:18px; flex-wrap:wrap; }
.pdp-stars{ display:flex; gap:3px; }
.pdp-stars svg{ width:17px; height:17px; }
.pdp-rating a{ font-size:13.5px; color:var(--flash); }
.pdp-rating a:hover{ color:var(--ink); }
.pdp-price{
  font-family:var(--font-head); font-weight:700; font-size:26px;
  color:var(--flash); margin-bottom:24px; line-height:1.3;
}
.pdp-price del{ color:var(--pdp-muted); font-size:.7em; font-weight:500; margin-right:8px; }
.pdp-price ins{ text-decoration:none; }

.pdp-note{
  background:var(--sea-glass); border-radius:18px;
  padding:16px 20px; display:flex; align-items:center; gap:12px;
  margin-bottom:28px;
}
.pdp-note svg{ flex-shrink:0; }
.pdp-note__text{ font-size:15px; line-height:1.5; }
.pdp-note__text p{ margin:0; }

.pdp-field{ margin-bottom:26px; border:0; padding:0; min-width:0; }
.pdp-field--size{ margin-bottom:28px; }
.pdp-field__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin-bottom:12px; padding:0; width:100%;
}
.pdp-field__label{ font-size:15px; font-weight:700; }
.pdp-sizeguide-link{
  background:none; border:0; padding:0; cursor:pointer;
  font:inherit; font-size:13.5px; color:var(--flash);
}
.pdp-sizeguide-link:hover{ color:var(--ink); }

.pdp-swatches{ display:flex; gap:14px; flex-wrap:wrap; }
.pdp-swatch{ position:relative; display:inline-flex; cursor:pointer; }
.pdp-swatch input,
.pdp-size input{ position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
.pdp-swatch__dot{
  width:34px; height:34px; border-radius:999px; display:block;
  box-shadow:inset 0 0 0 1px rgba(46,43,56,.08);
  transition:box-shadow .15s ease;
}
.pdp-swatch input:checked + .pdp-swatch__dot{ box-shadow:0 0 0 2.5px var(--cloud), 0 0 0 5px var(--flash); }
.pdp-swatch input:focus-visible + .pdp-swatch__dot{ outline:2px solid var(--ink); outline-offset:6px; }

.pdp-sizes{ display:flex; gap:10px; flex-wrap:wrap; }
.pdp-size{ position:relative; display:inline-flex; cursor:pointer; }
.pdp-size__pill{
  border-radius:999px; padding:11px 20px; min-width:48px; text-align:center;
  font-family:var(--font-head); font-weight:600; font-size:15px; line-height:1.2;
  border:1.6px solid var(--pdp-line); background:#fff; color:var(--ink);
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.pdp-size:hover .pdp-size__pill{ border-color:var(--ink); }
.pdp-size input:checked + .pdp-size__pill{ background:var(--ink); border-color:var(--ink); color:#fff; }
.pdp-size input:focus-visible + .pdp-size__pill{ outline:2px solid var(--flash); outline-offset:2px; }

.pdp-atc{
  width:100%; background:var(--flash); color:#fff; border:none; border-radius:999px;
  padding:18px; font-family:var(--font-head); font-weight:600; font-size:18px; line-height:1.2;
  cursor:pointer; margin-bottom:24px; transition:background .15s ease;
}
.pdp-atc:hover{ background:#E52E6D; }
.pdp-atc[disabled]{ opacity:.7; cursor:default; }
.pdp-atc--oos{ background:var(--pdp-muted); }
.pdp-form-msg{ margin:-12px 0 20px; font-size:14px; color:#B3124E; }
.pdp-form-msg:empty{ display:none; }

.pdp-perks{ display:flex; flex-direction:column; gap:14px; margin-bottom:26px; }
.pdp-perk{ display:flex; align-items:center; gap:12px; font-size:14.5px; line-height:1.5; }
.pdp-perk svg{ flex-shrink:0; }
.pdp-perk a{ color:var(--flash); }
.pdp-perk a:hover{ color:var(--ink); }

.pdp-trust{
  border:1px solid var(--pdp-line); border-radius:18px;
  padding:18px 20px; display:flex; gap:28px; flex-wrap:wrap;
}
.pdp-trust__item{ display:flex; align-items:center; gap:10px; font-size:14px; font-weight:500; }
.pdp-trust__item svg{ flex-shrink:0; }

/* Placeholder marker (content the owner still has to supply) */
.pdp-ph-tag{
  display:inline-block; font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:#6B6580; background:#fff; border:1px dashed #BEB9CC; border-radius:6px;
  padding:2px 7px; vertical-align:middle;
}

/* Try-on rail */
.pdp-tryon{ margin-top:76px; }
.pdp-tryon__head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  flex-wrap:wrap; margin-bottom:22px;
}
.pdp .pdp-h2{ font-family:var(--font-head); font-weight:700; font-size:32px; margin:0 0 8px; line-height:1.15; }
.pdp-tryon__sub{ margin:0; font-size:15.5px; line-height:1.6; color:var(--pdp-muted); max-width:58ch; }
.pdp-tryon__pill{
  flex-shrink:0; background:var(--petal); color:var(--ink); border-radius:999px;
  padding:11px 18px; font-size:13.5px; font-weight:700;
}
.pdp-rail{
  display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none; padding-bottom:6px;
}
.pdp-rail::-webkit-scrollbar{ display:none; }
.pdp-clip{
  flex:0 0 auto; width:232px; scroll-snap-align:start; border-radius:20px; overflow:hidden;
  border:1px solid var(--pdp-card-line); background:#fff;
}
.pdp-clip__media{
  position:relative; aspect-ratio:9/16;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
}
.pdp-clip__play{
  width:56px; height:56px; border-radius:999px; background:rgba(255,255,255,.92);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(46,43,56,.18);
}
.pdp-clip__media .pdp-ph-label{ font-size:10.5px; letter-spacing:.08em; text-align:center; padding:0 10px; }
.pdp-clip__body{ padding:14px 16px 16px; }
.pdp-clip__name{ font-size:15.5px; font-weight:700; }
.pdp-clip__meta{ font-size:13px; color:var(--pdp-muted); margin-top:4px; }

/* Accordions */
.pdp-accs{ max-width:760px; margin:80px auto 0; display:flex; flex-direction:column; gap:14px; }
.pdp-acc{ background:#fff; border:1px solid var(--pdp-card-line); border-radius:20px; overflow:hidden; }
.pdp-acc > summary{
  list-style:none; cursor:pointer;
  padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:14px;
  font-family:var(--font-head); font-weight:600; font-size:19px;
}
.pdp-acc > summary::-webkit-details-marker{ display:none; }
.pdp-acc > summary::marker{ content:""; }
.pdp-acc > summary svg{ flex-shrink:0; transition:transform .2s ease; }
.pdp-acc[open] > summary svg{ transform:rotate(180deg); }
.pdp-acc__body{ padding:0 24px 24px; font-size:15.5px; line-height:1.7; color:var(--pdp-muted); }
.pdp-acc__body p:last-child{ margin-bottom:0; }
.pdp-acc__body h2{ display:none; }

.pdp-table-wrap{ overflow-x:auto; scrollbar-width:none; }
.pdp-table-wrap::-webkit-scrollbar{ display:none; }
.pdp-swipe-hint{ display:none; font-size:11.5px; color:var(--pdp-muted); margin-bottom:8px; }
.pdp-table{ width:100%; border-collapse:collapse; min-width:420px; font-size:15px; color:var(--ink); }
.pdp-table th{
  text-align:left; padding:10px 12px; font-family:var(--font-head); font-weight:600; font-size:15px;
  border-bottom:2px solid var(--ink); white-space:nowrap; background:none;
}
.pdp-table td{ padding:11px 12px; border-bottom:1px solid var(--pdp-card-line); color:var(--pdp-muted); }
.pdp-table td:first-child{ font-family:var(--font-head); font-weight:600; color:var(--ink); white-space:nowrap; }
.pdp-table-note{ margin:14px 0 0; font-size:13.5px; line-height:1.55; }

/* Reviews inside the accordion (WooCommerce's own reviews template) */
.pdp-acc .woocommerce-Reviews-title{ display:none; }
.pdp-acc #reviews #comments{ margin:0; }
.pdp-acc .woocommerce-noreviews{ margin:0 0 16px; color:var(--pdp-muted); }
.pdp-acc #reviews .commentlist{ margin:0 0 20px; padding:0; }
.pdp-acc #reviews .commentlist li{ list-style:none; }
.pdp-acc .comment-reply-title{ display:block; font-family:var(--font-head); font-weight:600; font-size:17px; color:var(--ink); margin-bottom:10px; }
.pdp-acc .comment-form{ color:var(--ink); font-size:14.5px; }
.pdp-acc .comment-form label{ display:block; font-weight:700; font-size:13.5px; margin-bottom:6px; }
.pdp-acc .comment-form-cookies-consent label{ display:inline; font-weight:400; }
.pdp-acc .comment-form input[type=text],
.pdp-acc .comment-form input[type=email],
.pdp-acc .comment-form textarea{
  width:100%; border:1px solid rgba(46,43,56,.18); border-radius:var(--radius-sm);
  padding:10px 12px; font:inherit; background:#fff; color:var(--ink);
}
.pdp-acc .comment-form .form-submit input[type=submit]{
  background:var(--flash); color:#fff; border:none; border-radius:999px;
  padding:13px 26px; font-family:var(--font-head); font-weight:600; font-size:15px; cursor:pointer;
}
.pdp-acc p.stars a{ color:var(--flash); }

/* Related */
.pdp-related{ margin-top:88px; }
.pdp-related .pdp-h2{ margin-bottom:26px; }
.pdp-related__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:22px; }
.pdp-card{
  display:block; background:#fff; border-radius:20px; overflow:hidden;
  border:1px solid var(--pdp-card-line); min-width:0; color:var(--ink);
  transition:border-color .15s ease;
}
.pdp-card:hover{ border-color:var(--flash); color:var(--ink); }
.pdp-card__media{
  aspect-ratio:1/1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
}
.pdp-card__media img{ width:100%; height:100%; object-fit:cover; }
.pdp-card__media .pdp-ph-label{ font-size:10.5px; letter-spacing:.08em; }
.pdp-card__body{ padding:18px; }
.pdp-card__name{ font-size:16.5px; font-weight:700; line-height:1.3; }
.pdp-card__price{ font-weight:700; font-size:17px; color:var(--flash); margin-top:12px; }
.pdp-card__price del{ color:var(--pdp-muted); font-weight:500; font-size:.85em; margin-right:6px; }
.pdp-card__price ins{ text-decoration:none; }

/* WhatsApp FAB (only rendered once a number is configured) */
.pdp-wa-fab{
  position:fixed; right:26px; bottom:26px; z-index:60;
  width:60px; height:60px; border-radius:999px; background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(37,211,102,.4);
}
.pdp-wa-fab:hover{ background:#1FBE59; }

/* Mobile-only chrome (hidden on desktop) */
.pdp-mini, .pdp-bar, .pdp-sheet, .pdp-sheet-scrim{ display:none; }

/* ---------- Tablet ---------- */
@media (max-width: 900px){
  .pdp{ padding:28px 24px 72px; }
  .pdp-grid{ gap:32px; }
  .pdp .pdp-title{ font-size:30px; }
  .pdp-thumbs{ gap:10px; }
  .pdp-trust{ gap:14px 24px; }
}

/* ---------- Phone ---------- */
@media (max-width: 767px){
  .pdp{ padding:0 0 calc(76px + env(safe-area-inset-bottom)); }
  .pdp-crumbs{ display:none; }
  .pdp-back{
    display:inline-flex; align-items:center; gap:7px; min-height:44px;
    padding:0 20px; font-size:13.5px; font-weight:500; color:var(--flash);
  }
  .pdp-grid{ display:block; }

  .pdp-gallery__rail{ border-radius:0; }
  .pdp-slide{ aspect-ratio:4/5; cursor:zoom-in; }
  .pdp-thumbs{ display:none; }
  .pdp-gallery__heart{
    position:absolute; top:14px; right:14px; z-index:2;
    width:40px; height:40px; border-radius:999px; background:rgba(255,255,255,.9);
    border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0;
    color:var(--ink);
  }
  .pdp-gallery__heart.is-active{ color:var(--flash); }
  .pdp-gallery__heart.is-active svg path{ fill:var(--flash); stroke:var(--flash); }
  .pdp-gallery__dots{
    position:absolute; left:0; right:0; bottom:6px;
    display:flex; justify-content:center; gap:0;
  }
  .pdp-dot{
    width:22px; height:22px; background:none; border:0; padding:0; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .pdp-dot span{
    width:7px; height:7px; border-radius:999px; background:rgba(46,43,56,.25);
    box-shadow:0 0 0 1px rgba(255,255,255,.7);
  }
  .pdp-dot.is-active span{ background:var(--flash); }

  .pdp-info{ padding:22px 20px 0; }
  .pdp-eyebrow{ font-size:11px; margin-bottom:10px; }
  .pdp .pdp-title{ font-size:24px; line-height:1.15; margin-bottom:10px; }
  .pdp-rating{ gap:9px; margin-bottom:12px; }
  .pdp-stars svg{ width:15px; height:15px; }
  .pdp-rating a{ font-size:13px; }
  .pdp-price{ font-size:22px; margin-bottom:18px; }
  .pdp-note{ border-radius:16px; padding:12px 14px; align-items:flex-start; gap:10px; margin-bottom:24px; }
  .pdp-note svg{ width:19px; height:19px; margin-top:1px; }
  .pdp-note__text{ font-size:12.5px; }

  .pdp-field{ margin-bottom:22px; }
  .pdp-field--size{ margin-bottom:24px; }
  .pdp-field__head{ align-items:center; margin-bottom:10px; }
  .pdp-field__label{ font-size:14px; }
  .pdp-sizeguide-link{ min-height:44px; font-size:13px; font-weight:500; }
  .pdp-swatches{ gap:6px; }
  .pdp-swatch{ width:44px; height:44px; align-items:center; justify-content:center; }
  .pdp-swatch__dot{ width:28px; height:28px; }
  .pdp-sizes{ gap:8px; }
  .pdp-size__pill{
    min-width:48px; height:44px; padding:0 12px; display:flex; align-items:center; justify-content:center;
    font-size:14.5px;
  }
  /* On phones the sticky bottom bar carries Add to Cart */
  .pdp-atc--inline{ display:none; }
  .pdp-form-msg{ margin:-8px 0 16px; }

  .pdp-perks{ gap:12px; margin-bottom:20px; }
  .pdp-perk{ font-size:13px; gap:10px; align-items:flex-start; }
  .pdp-perk svg{ width:20px; height:20px; }
  .pdp-trust{ border-radius:16px; padding:14px; gap:10px 16px; margin-bottom:32px; }
  .pdp-trust__item{ font-size:12.5px; gap:8px; }
  .pdp-trust__item svg{ width:18px; height:18px; }

  .pdp-tryon{ margin:0 0 30px; }
  .pdp-tryon__head{ display:block; padding:0 20px 12px; margin:0; }
  .pdp .pdp-h2{ font-size:20px; margin-bottom:6px; }
  .pdp-tryon__sub{ font-size:13.5px; }
  .pdp-tryon__pill{ display:block; margin:14px 20px 0; border-radius:14px; padding:13px 16px; font-size:13px; text-align:center; }
  .pdp-tryon__head .pdp-tryon__pill{ display:none; }
  .pdp-tryon__foot{ display:block; }
  .pdp-rail{ gap:12px; padding:2px 20px 4px; scroll-padding:0 20px; }
  .pdp-clip{ width:150px; border-radius:16px; }
  .pdp-clip__play{ width:46px; height:46px; }
  .pdp-clip__media{ gap:10px; }
  .pdp-clip__media .pdp-ph-label{ font-size:9.5px; }
  .pdp-clip__body{ padding:11px 12px 13px; }
  .pdp-clip__name{ font-size:14px; }
  .pdp-clip__meta{ font-size:12px; }

  .pdp-accs{ margin:0; padding:0 20px; gap:12px; }
  .pdp-acc{ border-radius:18px; }
  .pdp-acc > summary{ min-height:56px; padding:14px 18px; font-size:17px; }
  .pdp-acc__body{ padding:0 18px 20px; font-size:14px; line-height:1.65; }
  .pdp-acc--size .pdp-acc__body{ padding:0 0 18px; }
  .pdp-acc--size .pdp-swipe-hint,
  .pdp-acc--size .pdp-table-note{ padding:0 18px; }
  .pdp-acc--size .pdp-table-wrap{ padding:0 18px; }
  .pdp-swipe-hint{ display:block; }
  .pdp-table{ width:auto; min-width:440px; font-size:13px; }
  .pdp-table th{ padding:8px 10px; font-size:13px; }
  .pdp-table td{ padding:9px 10px; }
  .pdp-table-note{ font-size:12.5px; }

  .pdp-related{ margin:0; padding:34px 0 30px; }
  .pdp-related .pdp-h2{ padding:0 20px; margin-bottom:14px; }
  .pdp-related__grid{
    display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory;
    scrollbar-width:none; padding:2px 20px 4px; scroll-padding:0 20px;
  }
  .pdp-related__grid::-webkit-scrollbar{ display:none; }
  .pdp-card{ flex:0 0 auto; width:140px; scroll-snap-align:start; border-radius:18px; }
  .pdp-card__media svg{ width:56px; height:auto; }
  .pdp-card__media .pdp-ph-label{ display:none; }
  .pdp-card__body{ padding:11px 12px 13px; }
  .pdp-card__name{ font-size:13px; }
  .pdp-card__price{ font-size:14px; margin-top:7px; }

  /* Sticky mini header (slides in once the buy box has scrolled away) */
  .pdp-mini{
    display:flex; position:fixed; top:0; left:0; right:0; z-index:55;
    height:60px; background:rgba(248,247,251,.97);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--pdp-line);
    align-items:center; gap:10px; padding:0 14px;
    transform:translateY(-102%); transition:transform .24s ease;
  }
  .pdp-mini.is-visible{ transform:translateY(0); }
  .pdp-mini__thumb{
    width:40px; height:40px; border-radius:12px; flex-shrink:0; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
  }
  .pdp-mini__thumb img{ width:100%; height:100%; object-fit:cover; }
  .pdp-mini__text{ min-width:0; flex:1 1 auto; }
  .pdp-mini__name{ font-size:13px; font-weight:700; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pdp-mini__price{ font-size:12.5px; font-weight:700; color:var(--flash); margin-top:2px; }
  .pdp-mini__price del{ display:none; }
  .pdp-mini__price ins{ text-decoration:none; }
  .pdp-mini .pdp-atc{
    width:auto; flex-shrink:0; min-height:40px; margin:0; padding:0 18px; font-size:14px;
  }

  /* Sticky bottom buy bar */
  .pdp-bar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:40;
    background:rgba(248,247,251,.98);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-top:1px solid var(--pdp-line);
    padding:9px 16px calc(9px + env(safe-area-inset-bottom));
    align-items:center; gap:12px;
  }
  .pdp-bar__total{ min-width:0; }
  .pdp-bar__label{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--pdp-muted); }
  .pdp-bar__price{ font-family:var(--font-head); font-weight:700; font-size:18px; color:var(--flash); line-height:1.2; white-space:nowrap; }
  .pdp-bar__price del{ display:none; }
  .pdp-bar__price ins{ text-decoration:none; }
  .pdp-bar .pdp-atc{ flex:1 1 auto; min-height:48px; margin:0; padding:0 16px; font-size:16px; }

  .pdp-wa-fab{ right:16px; bottom:calc(84px + env(safe-area-inset-bottom)); width:48px; height:48px; box-shadow:0 6px 18px rgba(37,211,102,.4); }
  .pdp-wa-fab svg{ width:24px; height:24px; }

  /* Size-guide bottom sheet */
  .pdp-sheet-scrim{
    display:block; position:fixed; inset:0; z-index:90; background:rgba(46,43,56,.45);
    opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
  }
  .pdp-sheet-scrim.is-open{ opacity:1; visibility:visible; }
  .pdp-sheet{
    display:flex; flex-direction:column; position:fixed; left:0; right:0; bottom:0; z-index:95;
    max-height:78vh; background:var(--cloud); border-radius:20px 20px 0 0;
    box-shadow:0 -10px 40px rgba(46,43,56,.18);
    transform:translateY(105%); transition:transform .3s cubic-bezier(.22,1,.36,1);
    visibility:hidden;
  }
  .pdp-sheet.is-open{ transform:translateY(0); visibility:visible; }
  .pdp-sheet__grab{ flex-shrink:0; padding:10px 0 4px; display:flex; justify-content:center; }
  .pdp-sheet__grab span{ width:42px; height:4px; border-radius:999px; background:#DCD6EE; }
  .pdp-sheet__head{ flex-shrink:0; padding:6px 20px 10px; display:flex; align-items:center; justify-content:space-between; }
  .pdp-sheet__title{ font-family:var(--font-head); font-weight:600; font-size:19px; }
  .pdp-sheet__close{
    width:44px; height:44px; margin-right:-12px; background:none; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; padding:0; color:var(--ink);
  }
  .pdp-sheet__body{ flex:1 1 auto; overflow-y:auto; padding:0 0 calc(22px + env(safe-area-inset-bottom)); }
  .pdp-sheet__body .pdp-swipe-hint,
  .pdp-sheet__body .pdp-table-note{ padding:0 20px; }
  .pdp-sheet__body .pdp-table-wrap{ padding:0 20px; }

  /* Keep the added-to-cart toast clear of the sticky buy bar */
  body.single-product .cart-toast{ bottom:calc(76px + env(safe-area-inset-bottom)); }
  body.pdp-sheet-lock{ overflow:hidden; }
}


/* Touch devices (phones + tablets): keep every control at least 44px tall */
@media (pointer: coarse){
  .pdp-crumbs a{ display:inline-block; padding:13px 0; }
  .pdp-crumbs{ margin-bottom:16px; }
  .pdp-eyebrow a{ display:inline-flex; align-items:center; min-height:44px; }
  .pdp-eyebrow{ margin-bottom:0; }
  .pdp-perk a{ display:inline-flex; align-items:center; min-height:44px; }
  .pdp-perks{ gap:2px; }
  .pdp-sizeguide-link{ min-height:44px; }
  .pdp-swatches{ gap:6px; }
  .pdp-swatch{ width:44px; height:44px; align-items:center; justify-content:center; }
  .pdp-size__pill{ min-height:44px; display:flex; align-items:center; justify-content:center; }
  .pdp-dot{ width:28px; height:28px; }
}
@media (max-width: 767px){
  body.single-product .cart-toast{ bottom:calc(84px + env(safe-area-inset-bottom)); }
}

/* ==========================================================================
   Shop / category archive — v1.9.0
   Matches "Chai Nest Shop" (desktop) + "Shop-Mobile". Markup:
   loop_shop_render() in functions.php. JS: loop_shop_script().
   ========================================================================== */
.shop{
  --shop-muted:#5A5570;
  --shop-line:#EDEAF4;
  --shop-pill:#E8E5F0;
  --shop-box:#DCD6EE;
  max-width:var(--container);
  margin:0 auto;
  padding:34px var(--gutter) 88px;
  color:var(--ink);
}
.shop *{ box-sizing:border-box; }
.shop .woocommerce-notices-wrapper:empty{ display:none; }

.shop-crumbs{ font-size:13.5px; color:var(--shop-muted); margin-bottom:14px; }
.shop-crumbs a{ color:var(--shop-muted); }
.shop-crumbs a:hover{ color:var(--ink); }
.shop-crumbs__current{ color:var(--flash); font-weight:500; }

.shop-head{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:20px; flex-wrap:wrap; margin-bottom:38px;
}
.shop .shop-title{
  font-family:var(--font-head); font-weight:700; font-size:46px; line-height:1.05; margin:0;
}
.shop-count{ font-size:14px; color:var(--shop-muted); }
.shop-desc{ margin:-24px 0 32px; max-width:60ch; color:var(--shop-muted); font-size:15px; }

.shop-mbar{ display:none; }

.shop-layout{
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:36px;
  align-items:start;
}

/* ---- Filters (desktop sidebar) ---- */
.shop-filters{
  background:#fff; border:1px solid var(--shop-line); border-radius:24px;
  padding:26px; min-width:0; position:sticky; top:100px;
}
.shop-sheet__grab, .shop-sheet__head, .shop-sheet__foot{ display:none; }
.shop-fgroup{ margin-bottom:30px; }
.shop-fgroup:last-of-type{ margin-bottom:0; }
.shop-fgroup__title{ font-family:var(--font-head); font-weight:600; font-size:18px; margin-bottom:16px; line-height:1.3; }
.shop-cats{ display:flex; flex-direction:column; gap:14px; }
.shop-cat{ display:flex; align-items:center; gap:11px; color:var(--ink); font-size:15px; }
.shop-cat:hover{ color:var(--flash); }
.shop-cat.is-active{ font-weight:700; }
.shop-cat__box{
  width:20px; height:20px; border-radius:6px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:#fff; border:1.5px solid var(--shop-box);
}
.shop-cat.is-active .shop-cat__box{ background:var(--flash); border-color:var(--flash); }
.shop-cat__count{ display:none; }

.shop-sizes{ display:flex; flex-wrap:wrap; gap:8px; }
.shop-size{
  cursor:pointer; border-radius:999px; padding:9px 16px; min-width:44px;
  font-family:var(--font-head); font-weight:600; font-size:14.5px; line-height:1.2;
  border:1.5px solid var(--shop-pill); background:#fff; color:var(--ink);
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.shop-size:hover{ border-color:var(--ink); }
.shop-size.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }

.shop-colors{ display:flex; gap:12px; flex-wrap:wrap; }
.shop-color{
  width:32px; height:32px; border-radius:999px; padding:0; border:0; background:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.shop-color span{
  width:32px; height:32px; border-radius:999px; display:block;
  box-shadow:inset 0 0 0 1px rgba(46,43,56,.08); transition:box-shadow .15s ease;
}
.shop-color.is-active span{ box-shadow:0 0 0 2.5px #fff, 0 0 0 5px var(--flash); }
.shop-size:focus-visible, .shop-color:focus-visible, .shop-cat:focus-visible{ outline:2px solid var(--flash); outline-offset:3px; }

.shop-clear-inline{
  margin-top:24px; width:100%; background:transparent; border:1.5px solid var(--shop-pill);
  border-radius:999px; padding:10px; font-family:var(--font-head); font-weight:600; font-size:14px;
  color:var(--ink); cursor:pointer;
}
.shop-clear-inline:hover{ border-color:var(--flash); color:var(--flash); }

/* ---- Sort (desktop dropdown) ---- */
.shop-main-col{ min-width:0; }
.shop-sortbar{ display:flex; justify-content:flex-end; margin-bottom:22px; }
.shop-sort{ position:relative; }
.shop-sort > summary{
  list-style:none; cursor:pointer; user-select:none;
  display:inline-flex; align-items:center; gap:6px;
  background:#fff; border:1px solid var(--shop-pill); border-radius:999px;
  padding:11px 16px 11px 20px; font-size:14.5px; font-weight:500; white-space:nowrap;
}
.shop-sort > summary::-webkit-details-marker{ display:none; }
.shop-sort > summary::marker{ content:""; }
.shop-sort > summary:hover, .shop-sort[open] > summary{ border-color:var(--flash); }
.shop-sort > summary svg{ transition:transform .2s ease; }
.shop-sort[open] > summary svg{ transform:rotate(180deg); }
.shop-sort__menu{
  position:absolute; right:0; top:calc(100% + 8px); z-index:30; min-width:220px;
  background:#fff; border:1px solid var(--shop-line); border-radius:18px;
  box-shadow:0 16px 40px rgba(46,43,56,.14); padding:8px; margin:0; list-style:none;
}
.shop-sort__menu a{
  display:block; padding:10px 14px; border-radius:12px; font-size:14.5px; color:var(--ink);
}
.shop-sort__menu a:hover{ background:var(--cloud); color:var(--flash); }
.shop-sort__menu a.is-active{ font-weight:700; color:var(--flash); }

/* ---- Grid + cards ---- */
.shop-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(232px,1fr)); gap:22px;
  list-style:none; margin:0; padding:0;
}
.shop-card{
  position:relative; background:#fff; border-radius:20px; overflow:hidden;
  border:1px solid var(--shop-line); min-width:0; display:flex; flex-direction:column;
  transition:border-color .15s ease;
}
.shop-card:hover{ border-color:var(--flash); }
.shop-card[hidden]{ display:none; }
.shop-card__media{
  position:relative; aspect-ratio:1/1;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
}
.shop-card__media img{ width:100%; height:100%; object-fit:cover; }
.shop-card__ph{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:10.5px;
  letter-spacing:.08em; text-transform:uppercase; color:#6B6580;
}
.shop-card__sale{
  position:absolute; top:12px; left:12px; background:var(--flash); color:#fff;
  font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px;
}
.shop-bg-1{ background:linear-gradient(150deg,#F7D9E3,#E2DCF5); }
.shop-bg-2{ background:linear-gradient(150deg,#E2DCF5,#D7F0E6); }
.shop-bg-3{ background:linear-gradient(150deg,#D7F0E6,#F8F7FB); }
.shop-bg-4{ background:linear-gradient(150deg,#F8F7FB,#F7D9E3); }
.shop-bg-5{ background:linear-gradient(150deg,#E2DCF5,#F7D9E3); }
.shop-bg-6{ background:linear-gradient(150deg,#D7F0E6,#E2DCF5); }
.shop-card__heart{
  position:absolute; top:12px; right:12px; z-index:2;
  width:34px; height:34px; border-radius:999px; background:rgba(255,255,255,.85);
  border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0;
  color:var(--ink); transition:background .15s ease, color .15s ease;
}
.shop-card__heart:hover{ background:#fff; }
.shop-card__heart.is-active{ color:var(--flash); }
.shop-card__heart.is-active svg path{ fill:var(--flash); }
.shop-card__body{ padding:18px; display:flex; flex-direction:column; flex:1; }
.shop-card__name{ font-size:16.5px; font-weight:700; line-height:1.3; color:var(--ink); }
.shop-card__name:hover{ color:var(--flash); }
.shop-card__name::after{ content:""; position:absolute; inset:0; z-index:1; } /* whole card clickable */
.shop-card__fit{ font-size:13.5px; color:#6B6580; margin-top:5px; }
.shop-card__foot{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-top:auto; padding-top:16px; flex-wrap:wrap;
}
.shop-card__price{ font-weight:700; font-size:17px; color:var(--flash); white-space:nowrap; }
.shop-card__price del{ color:var(--shop-muted); font-weight:500; font-size:.85em; margin-right:6px; }
.shop-card__price ins{ text-decoration:none; }
.shop-card__qa{
  position:relative; z-index:2;
  background:transparent; border:1.5px solid var(--shop-pill); border-radius:999px;
  padding:8px 16px; font-family:var(--font-head); font-weight:600; font-size:14px; line-height:1.3;
  color:var(--ink); white-space:nowrap; transition:border-color .15s ease, color .15s ease;
}
.shop-card__qa:hover{ border-color:var(--flash); color:var(--flash); }
.shop-card__oos{ font-size:13px; color:var(--shop-muted); }

.shop-empty{ text-align:center; padding:48px 20px; color:var(--shop-muted); font-size:15px; }
.shop-empty button, .shop-empty a{
  background:none; border:0; padding:0; font:inherit; color:var(--flash); font-weight:700; cursor:pointer; text-decoration:underline;
}
.shop-more{
  display:flex; align-items:center; justify-content:center;
  width:100%; max-width:360px; min-height:48px; margin:32px auto 0;
  border:1.6px solid var(--shop-box); border-radius:999px;
  font-family:var(--font-head); font-weight:600; font-size:15.5px; color:var(--ink);
}
.shop-more:hover{ border-color:var(--flash); color:var(--flash); }

/* Phone/tablet-only chrome */
.shop-sortsheet, .shop-scrim, .shop-tabbar{ display:none; }

/* ---------- Tablet + phone: Filter/Sort buttons + bottom sheets ---------- */
@media (max-width: 900px){
  .shop{ padding:24px var(--gutter) 48px; }
  .shop-head{ margin-bottom:0; }
  .shop .shop-title{ font-size:34px; }
  .shop-desc{ margin:10px 0 0; }
  .shop-mbar{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:16px;
  }
  .shop-mbtn{
    min-height:46px; background:#fff; border:1.4px solid var(--shop-pill); border-radius:999px;
    display:flex; align-items:center; justify-content:center; gap:8px; padding:0 14px;
    font-family:var(--font-body); font-size:14.5px; font-weight:500; color:var(--ink); cursor:pointer;
  }
  .shop.has-filters .shop-mbtn[data-shop-open="filter"]{ border-color:var(--flash); }
  .shop-layout{ display:block; margin-top:20px; }
  .shop-sortbar{ display:none; }
  .shop-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }

  /* Filter panel becomes a bottom sheet */
  .shop-filters,
  .shop-sortsheet{
    display:flex; flex-direction:column; position:fixed; left:0; right:0; bottom:0; top:auto; z-index:95;
    max-height:78vh; background:var(--cloud); border:0; border-radius:20px 20px 0 0; padding:0;
    box-shadow:0 -10px 40px rgba(46,43,56,.18);
    transform:translateY(105%); visibility:hidden;
    transition:transform .3s cubic-bezier(.22,1,.36,1), visibility 0s linear .3s;
  }
  .shop-filters.is-open,
  .shop-sortsheet.is-open{ transform:translateY(0); visibility:visible; transition:transform .3s cubic-bezier(.22,1,.36,1); }
  .shop-sheet__grab{ display:flex; flex-shrink:0; padding:10px 0 4px; justify-content:center; }
  .shop-sheet__grab span{ width:42px; height:4px; border-radius:999px; background:var(--shop-box); }
  .shop-sheet__head{ display:flex; flex-shrink:0; padding:6px 20px 12px; align-items:center; justify-content:space-between; }
  .shop-sheet__title{ font-family:var(--font-head); font-weight:600; font-size:19px; }
  .shop-sheet__close{
    width:44px; height:44px; margin-right:-12px; background:none; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; padding:0;
  }
  .shop-filters__body{ flex:1 1 auto; overflow-y:auto; padding:0 20px 16px; }
  .shop-fgroup{ margin-bottom:24px; }
  .shop-fgroup__title{ font-size:16px; margin-bottom:12px; }
  .shop-fgroup:first-child .shop-fgroup__title{ margin-bottom:4px; }
  .shop-cats{ gap:0; }
  .shop-cat{ min-height:48px; gap:12px; border-bottom:1px solid var(--shop-line); }
  .shop-cat__box{ width:22px; height:22px; border-radius:7px; border-width:1.6px; }
  .shop-cat__count{ display:block; margin-left:auto; font-size:12.5px; color:var(--shop-muted); font-weight:400; }
  .shop-size{ min-width:48px; height:44px; padding:0 14px; display:flex; align-items:center; justify-content:center; }
  .shop-colors{ gap:10px; padding-bottom:8px; }
  .shop-color{ width:44px; height:44px; }
  .shop-color span{ width:28px; height:28px; box-shadow:0 0 0 1px var(--shop-box); }
  .shop-color.is-active span{ box-shadow:0 0 0 2.5px var(--flash); }
  .shop-clear-inline{ display:none; }
  .shop-sheet__foot{
    display:flex; flex-shrink:0; gap:10px; align-items:center;
    padding:12px 20px calc(18px + env(safe-area-inset-bottom));
    border-top:1px solid var(--lilac); background:var(--cloud);
  }
  .shop-sheet__clear{
    min-height:48px; flex:0 0 96px; background:transparent; border:1.6px solid var(--shop-box);
    border-radius:999px; font-family:var(--font-head); font-weight:600; font-size:15px; color:var(--ink); cursor:pointer;
  }
  .shop-sheet__show{
    min-height:48px; flex:1 1 auto; background:var(--flash); color:#fff; border:none; border-radius:999px;
    font-family:var(--font-head); font-weight:600; font-size:16px; cursor:pointer;
  }
  .shop-sheet__show:active{ background:#E52E6D; }

  .shop-sortsheet__list{ display:flex; flex-direction:column; padding:0 20px calc(20px + env(safe-area-inset-bottom)); }
  .shop-sortopt{
    min-height:52px; display:flex; align-items:center; gap:12px;
    border-bottom:1px solid var(--shop-line); font-size:15px; color:var(--ink);
  }
  .shop-sortopt__dot{
    width:20px; height:20px; border-radius:999px; flex-shrink:0; border:1.8px solid var(--shop-box);
    display:flex; align-items:center; justify-content:center;
  }
  .shop-sortopt.is-active{ font-weight:700; }
  .shop-sortopt.is-active .shop-sortopt__dot{ border-color:var(--flash); }
  .shop-sortopt.is-active .shop-sortopt__dot::after{ content:""; width:10px; height:10px; border-radius:999px; background:var(--flash); }

  .shop-scrim{
    display:block; position:fixed; inset:0; z-index:90; background:rgba(46,43,56,.45);
    opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
  }
  .shop-scrim.is-open{ opacity:1; visibility:visible; }
  body.shop-lock{ overflow:hidden; }

  .shop-more{ max-width:none; margin-top:22px; }
}

/* ---------- Phone ---------- */
@media (max-width: 767px){
  .shop{ padding:20px 20px calc(36px + 66px + env(safe-area-inset-bottom)); }
  .shop-crumbs{ display:none; }
  .shop-head{ display:block; }
  .shop .shop-title{ font-size:24px; line-height:1.1; }
  .shop-count{ display:block; font-size:12px; margin-top:4px; }
  .shop-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .shop-card{ border-radius:18px; }
  .shop-card__media svg{ width:64px; height:auto; }
  .shop-card__ph{ display:none; }
  .shop-card__heart{ top:4px; right:4px; width:40px; height:40px; background:none; }
  .shop-card__heart::before{
    content:""; position:absolute; width:30px; height:30px; border-radius:999px; background:rgba(255,255,255,.88); z-index:-1;
  }
  .shop-card__heart svg{ width:16px; height:16px; }
  .shop-card__body{ padding:12px 12px 14px; }
  .shop-card__name{ font-size:13px; }
  .shop-card__fit{ display:none; }
  .shop-card__foot{ padding-top:8px; }
  .shop-card__price{ font-size:14px; }
  .shop-card__qa{ display:none; }

  /* Bottom tab bar */
  .shop-tabbar{
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    height:calc(66px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom);
    background:rgba(248,247,251,.97); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-top:1px solid var(--lilac);
  }
  .shop-tabbar a{
    position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
    color:var(--shop-muted); font-size:10.5px; font-weight:500;
  }
  .shop-tabbar a.is-active{ color:var(--flash); font-weight:700; }
  .shop-tabbar__badge{
    position:absolute; top:8px; left:52%; min-width:16px; height:16px; border-radius:999px;
    background:var(--flash); color:#fff; font-size:10px; font-weight:700;
    display:flex; align-items:center; justify-content:center; padding:0 4px;
  }
  .shop-tabbar__badge[hidden]{ display:none; }

  /* Header slides away while scrolling down (design: hideHeaderOnScroll) */
  body.loop-shop .site-header{ transition:transform .25s ease; }
  body.loop-shop.shop-header-hidden .site-header{ transform:translateY(-100%); }

  /* Keep the added-to-cart toast above the tab bar */
  body.loop-shop .cart-toast{ bottom:calc(78px + env(safe-area-inset-bottom)); }
}

/* Touch devices: keep the desktop sidebar's controls 44px tall too */
@media (pointer: coarse) and (min-width: 901px){
  .shop-cat{ min-height:44px; }
  .shop-cats{ gap:0; }
  .shop-size{ min-height:44px; }
  .shop-color{ width:44px; height:44px; }
  .shop-card__qa{ min-height:44px; display:inline-flex; align-items:center; }
}

/* Touch devices at any width: comfortable targets on cards + breadcrumb */
@media (pointer: coarse){
  .shop-crumbs a{ display:inline-block; padding:13px 0; }
  .shop-crumbs{ margin-bottom:0; }
  .shop-card__heart{ width:44px; height:44px; top:6px; right:6px; background:none; }
  .shop-card__heart::before{
    content:""; position:absolute; width:34px; height:34px; border-radius:999px; background:rgba(255,255,255,.85); z-index:-1;
  }
  .shop-card__qa{ min-height:44px; display:inline-flex; align-items:center; }
}
@media (pointer: coarse) and (max-width: 767px){
  .shop-card__heart{ top:4px; right:4px; width:40px; height:40px; }
  .shop-card__heart::before{ width:30px; height:30px; }
}

/* ==========================================================================
   Cart page — v1.10.0 (markup: loop_cart_render() in functions.php)
   + minimal "Secure Checkout" header used on Cart and Checkout.
   ========================================================================== */
.site-header--checkout .site-header__inner{ padding-top:20px; padding-bottom:20px; }
.secure-badge{
  display:inline-flex; align-items:center; gap:9px;
  font-size:14px; font-weight:500; color:#5A5570; white-space:nowrap;
}

.cartp{
  --cp-muted:#5A5570; --cp-soft:#6B6580; --cp-line:#EDEAF4; --cp-lilac:#E2DCF5; --cp-box:#DCD6EE;
  max-width:var(--container); margin:0 auto; padding:40px var(--gutter) 90px; color:var(--ink);
}
.cartp *{ box-sizing:border-box; }
.cartp .woocommerce-notices-wrapper{ margin-bottom:18px; }
.cartp .woocommerce-notices-wrapper:empty{ display:none; }
.cartp .cartp-title{ font-family:var(--font-head); font-weight:700; font-size:44px; line-height:1.05; margin:0 0 34px; }

.cartp-grid{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:34px; align-items:start; }
.cartp-main, .cartp-side{ min-width:0; }

.cartp-items{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.cartp-item{
  background:#fff; border:1px solid var(--cp-line); border-radius:20px; padding:18px;
  display:flex; gap:18px; align-items:center; flex-wrap:wrap;
}
.cartp-item__img{
  width:86px; height:86px; border-radius:14px; flex-shrink:0; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.cartp-item__img img{ width:100%; height:100%; object-fit:cover; }
.cartp-item__info{ flex:1 1 180px; min-width:0; }
.cartp-item__name{ display:block; font-size:16.5px; font-weight:700; color:var(--ink); line-height:1.3; }
a.cartp-item__name:hover{ color:var(--flash); }
.cartp-item__variant{ font-size:13.5px; color:var(--cp-muted); margin-top:4px; }
.cartp-item__row{ display:flex; align-items:center; gap:16px; margin-top:14px; flex-wrap:wrap; }
.cartp-qty{
  display:flex; align-items:center; gap:4px; border:1.4px solid var(--cp-lilac); border-radius:999px; padding:4px;
}
.cartp-qty__btn{
  width:30px; height:30px; border:none; background:var(--cloud); border-radius:999px; cursor:pointer;
  font-size:17px; line-height:1; color:var(--ink); padding:0; display:flex; align-items:center; justify-content:center;
}
.cartp-qty__btn:hover{ background:var(--petal); }
.cartp-qty__input{
  width:32px; border:0; background:transparent; text-align:center; font:inherit; font-weight:500; color:var(--ink);
  -moz-appearance:textfield; appearance:textfield; padding:0;
}
.cartp-qty__input::-webkit-outer-spin-button,
.cartp-qty__input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.cartp-item__remove{ font-size:13.5px; font-weight:500; color:var(--flash); }
.cartp-item__remove:hover{ color:var(--ink); }
.cartp-item__price{ font-weight:700; font-size:17px; color:var(--flash); white-space:nowrap; margin-left:auto; }
.cartp-item__price del{ color:var(--cp-muted); font-weight:500; font-size:.85em; }
.cartp-item__price ins{ text-decoration:none; }
.cartp-form.is-busy .cartp-items{ opacity:.6; pointer-events:none; }

.cartp-promo{ display:flex; gap:10px; margin-top:20px; flex-wrap:wrap; align-items:center; }
.cartp-promo__input{
  flex:1 1 200px; min-width:0; background:#fff; border:1.4px solid var(--cp-lilac); border-radius:999px;
  padding:14px 20px; font-family:var(--font-body); font-size:15px; color:var(--ink); outline:none;
}
.cartp-promo__input:focus{ border-color:var(--flash); }
.cartp-promo__btn{
  background:transparent; border:1.6px solid var(--ink); border-radius:999px; padding:13px 28px;
  font-family:var(--font-head); font-weight:600; font-size:15.5px; color:var(--ink); cursor:pointer;
}
.cartp-promo__btn:hover{ background:var(--ink); color:var(--cloud); }

/* Summary card */
.cartp-sum{ background:#fff; border:1px solid var(--cp-line); border-radius:20px; padding:26px; }
.cartp .cartp-sum__title{ font-family:var(--font-head); font-weight:600; font-size:22px; margin:0 0 20px; }
.cartp-row{ display:flex; justify-content:space-between; gap:12px; font-size:15px; margin-bottom:13px; }
.cartp-row > span:first-child{ color:var(--cp-soft); }
.cartp-row > span:last-child{ font-weight:500; }
.cartp-row a{ color:var(--flash); font-size:13px; margin-left:6px; }
.cartp-row--ship{ padding-bottom:18px; border-bottom:1px solid var(--cp-line); margin-bottom:0; }
.cartp-row--ship strong{ font-weight:700; }
.cartp-total{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:18px 0 24px; }
.cartp-total > span:first-child{ font-family:var(--font-head); font-weight:600; font-size:19px; }
.cartp-total__amt{ font-family:var(--font-head); font-weight:700; font-size:23px; color:var(--flash); }

.cartp-pay{ margin-bottom:24px; }
.cartp-pay__title{ font-size:15px; font-weight:700; margin-bottom:12px; }
.cartp-pay__opt{ border-radius:18px; padding:16px 18px; border:1.4px solid var(--cp-lilac); background:#fff; }
.cartp-pay__opt + .cartp-pay__opt{ margin-top:12px; }
.cartp-pay__opt.is-selected{ border:1.8px solid var(--flash); background:var(--petal); }
.cartp-pay__head{ display:flex; align-items:center; gap:12px; }
.cartp-pay__dot{
  width:20px; height:20px; border-radius:999px; border:1.8px solid var(--cp-box); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.is-selected .cartp-pay__dot{ border-color:var(--flash); }
.is-selected .cartp-pay__dot::after{ content:""; width:10px; height:10px; border-radius:999px; background:var(--flash); }
.cartp-pay__name{ font-family:var(--font-head); font-weight:600; font-size:17px; }
.cartp-pay__desc{
  display:flex; align-items:flex-start; gap:9px; margin-top:12px; padding-left:32px;
  font-size:13.5px; line-height:1.5; color:var(--cp-muted);
}
.cartp-pay__desc svg{ flex-shrink:0; margin-top:1px; }
.cartp-pay__desc p{ margin:0; }
.cartp-pay__note{ margin:10px 0 0; font-size:13px; color:var(--cp-muted); }

.cartp-btn{
  display:flex; align-items:center; justify-content:center; width:100%;
  background:var(--flash); color:#fff; border:none; border-radius:999px; padding:17px;
  font-family:var(--font-head); font-weight:600; font-size:18px; line-height:1.2; cursor:pointer; text-align:center;
}
.cartp-btn:hover{ background:#E52E6D; color:#fff; }

.cartp-trust{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:22px 6px; }
.cartp-trust > div{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--cp-soft); }
.cartp-trust svg{ color:var(--ink); }

.cartp-delivery{ background:var(--sea-glass); border-radius:20px; padding:22px 24px; }
.cartp-delivery__title{ font-family:var(--font-head); font-weight:600; font-size:18px; margin-bottom:14px; }
.cartp-delivery__lines{ display:flex; flex-direction:column; gap:10px; font-size:14.5px; color:#3E3A4E; }

.cartp-empty{
  background:#fff; border:1px dashed var(--cp-box); border-radius:20px; padding:56px 24px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px;
  max-width:560px; margin:0 auto;
}
.cartp-empty h2{ font-family:var(--font-head); font-weight:700; font-size:24px; margin:0; }
.cartp-empty .cartp-btn{ max-width:320px; font-size:16px; padding:14px; }

.cartp-bar{ display:none; }

/* ---------- Tablet ---------- */
@media (max-width: 900px){
  .cartp-grid{ grid-template-columns:1fr; gap:24px; }
  .cartp .cartp-title{ font-size:34px; margin-bottom:24px; }
}

/* ---------- Phone ---------- */
@media (max-width: 767px){
  .site-header--checkout .site-header__inner{ padding-top:0; padding-bottom:0; height:56px; }
  .site-header--checkout .site-logo span{ font-size:19px; }
  .secure-badge{ font-size:11px; gap:6px; }
  .secure-badge svg{ width:15px; height:15px; }

  .cartp{ padding:20px 20px calc(150px + env(safe-area-inset-bottom)); }
  .cartp .cartp-title{ font-size:22px; line-height:1.1; margin-bottom:18px; }
  .cartp-grid{ gap:0; }
  .cartp-item{ padding:14px; gap:14px; align-items:flex-start; flex-wrap:nowrap; position:relative; }
  .cartp-item__img{ width:72px; height:72px; }
  .cartp-item__info{ flex:1 1 auto; }
  .cartp-item__name{ font-size:14.5px; }
  .cartp-item__variant{ font-size:12.5px; margin-top:3px; }
  .cartp-item__row{ gap:14px; margin-top:10px; flex-wrap:nowrap; }
  .cartp-qty{ gap:2px; padding:2px; }
  .cartp-qty__btn{ width:36px; height:36px; font-size:18px; }
  .cartp-qty__input{ width:26px; font-size:14.5px; }
  .cartp-item__remove{ min-height:44px; display:inline-flex; align-items:center; font-size:13px; }
  /* price sits under the controls, as in the mobile design */
  .cartp-item{ flex-direction:row; }
  .cartp-item__price{ position:absolute; left:100px; bottom:14px; margin:0; font-size:15px; }
  .cartp-item__info{ padding-bottom:28px; }

  .cartp-promo{ margin-top:18px; flex-wrap:nowrap; }
  .cartp-promo__input{ flex:1 1 auto; min-height:48px; padding:13px 18px; font-size:14.5px; }
  .cartp-promo__btn{ min-height:48px; padding:0 24px; font-size:15px; }

  /* Summary card collapses: rows/total/CTA move to the sticky bar */
  .cartp-sum{ background:none; border:0; padding:0; border-radius:0; }
  .cartp .cartp-sum__title, .cartp-sum__rows, .cartp-total, .cartp-sum__cta{ display:none; }
  .cartp-pay{ margin:28px 0 0; }
  .cartp-pay__title{ font-size:14px; }
  .cartp-pay__opt{ padding:16px; }
  .cartp-pay__opt.is-selected{ background:var(--sea-glass); }
  .cartp-pay__dot{ width:22px; height:22px; }
  .cartp-pay__name{ font-size:16px; }
  .cartp-pay__desc{ padding-left:34px; font-size:12.5px; color:#3E3A4E; margin-top:10px; }

  .cartp-trust{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:26px 0; padding:18px 0;
    border-top:1px solid var(--cp-lilac); border-bottom:1px solid var(--cp-lilac);
  }
  .cartp-trust > div{ flex-direction:column; text-align:center; gap:7px; font-size:11px; font-weight:700; color:var(--ink); line-height:1.35; }
  .cartp-delivery{ padding:18px 20px; }
  .cartp-delivery__title{ font-size:16px; margin-bottom:12px; }
  .cartp-delivery__lines{ font-size:13px; gap:9px; }

  .cartp-empty{ border:0; background:none; padding:60px 8px; }
  .cartp-empty h2{ font-size:22px; }
  .cartp-empty .cartp-btn{ max-width:none; min-height:48px; }

  .cartp-bar{
    display:block; position:fixed; left:0; right:0; bottom:0; z-index:40;
    background:rgba(248,247,251,.98); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-top:1px solid var(--cp-lilac); box-shadow:0 -6px 22px rgba(46,43,56,.07);
  }
  .cartp-bar__toggle{
    width:100%; min-height:48px; padding:0 20px; display:flex; align-items:center; justify-content:space-between; gap:12px;
    background:none; border:0; cursor:pointer; color:var(--ink); font:inherit;
  }
  .cartp-bar__label{ display:flex; align-items:center; gap:7px; font-family:var(--font-head); font-weight:600; font-size:16px; }
  .cartp-bar__label svg{ transition:transform .2s ease; }
  .cartp-bar__toggle.is-open .cartp-bar__label svg{ transform:rotate(180deg); }
  .cartp-bar__amt{ font-family:var(--font-head); font-weight:700; font-size:19px; color:var(--flash); }
  .cartp-bar__details{ padding:0 20px 6px; border-top:1px solid var(--cp-line); }
  .cartp-bar__details .cartp-row{ font-size:14px; margin:0; padding:10px 0 0; }
  .cartp-bar__details .cartp-row:last-child{ padding-bottom:12px; }
  .cartp-bar__cta{ padding:4px 20px calc(14px + env(safe-area-inset-bottom)); }
  .cartp-bar__cta .cartp-btn{ min-height:50px; padding:0 16px; font-size:17px; }

  body.woocommerce-cart .cart-toast{ bottom:calc(140px + env(safe-area-inset-bottom)); }
}

@media (pointer: coarse){
  .cartp-qty__btn{ width:40px; height:40px; }
  .cartp-item__remove{ min-height:44px; display:inline-flex; align-items:center; }
}

/* ==========================================================================
   HOMEPAGE DESIGN PASS (v1.11.0) — Main.dc.html (desktop) + Mobile Design Brief
   ========================================================================== */

/* --- Global loose ends -------------------------------------------------- */
/* Shared sections use `.section{padding:64px 0}` etc. on a `.container`, which
   wiped the container's side gutter — on phones/tablets every section ran
   flush to the screen edge. Restore the gutter wherever the two classes meet. */
.container.section,
.container.section--tight,
.container.trust-bar,
.container.hero{ padding-left:var(--gutter); padding-right:var(--gutter); }

/* Search toggle is a <button>: strip the browser's grey default button chrome */
button.header-icon-link{ background:none; border:0; padding:0; margin:0; color:inherit; font:inherit; cursor:pointer; line-height:0; }
button.header-icon-link:focus-visible{ outline:2px solid var(--flash); outline-offset:4px; border-radius:6px; }

/* Announcement strip (trust line above the header) was unstyled */
.announcement-bar{ background:var(--ink); color:var(--cloud); text-align:center; padding:8px var(--gutter); }
.announcement-bar p{ margin:0; font-size:12.5px; font-weight:600; letter-spacing:.03em; line-height:1.4; }

/* --- Home: desktop (design artboard at 1440) ---------------------------- */
body.home main h2{ font-size:28px; }

@media (min-width: 901px){
  body.home .hero.container{
    max-width:none; padding:0;
    display:grid; grid-template-columns:1fr 1fr; align-items:stretch;
    min-height:560px;
  }
  body.home .hero__content{
    max-width:none; margin:0;
    display:flex; flex-direction:column; justify-content:center;
    padding:56px 56px 56px max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
  }
  body.home .hero .eyebrow{ font-size:13px; letter-spacing:2px; margin-bottom:20px; }
  body.home .hero h1{ font-size:clamp(2.6rem, 3.75vw, 3.375rem); line-height:1.08; margin-bottom:20px; }
  body.home .hero p{ font-size:17px; line-height:1.6; color:#5B5567; max-width:420px; margin:0; }
  body.home .hero__actions{ margin-top:28px; }
  body.home .hero__image{ border-radius:0; min-height:560px; background:linear-gradient(135deg,var(--petal) 0%,var(--lilac) 55%,var(--sea-glass) 100%); }
  body.home .hero__image .mark-watermark{ top:14%; right:12%; opacity:1; }
  body.home .hero__image .mark-watermark svg{ width:56px; height:56px; }
}

body.home .category-card{ border-radius:20px; padding:28px 20px; gap:14px; }
body.home .category-card span{ font-weight:600; font-size:15px; }
body.home .category-card--cloud{ background:var(--cloud); border:1.5px solid var(--lilac); }
body.home .category-card:hover{ box-shadow:0 12px 28px rgba(46,43,56,.10); transform:translateY(-2px); }

body.home .trust-bar{ gap:64px; padding-top:48px; padding-bottom:32px; }
body.home .trust-item{ font-size:14px; font-weight:600; gap:12px; }
body.home .trust-item svg{ width:26px; height:26px; }

body.home .product-card{ border-radius:20px; transition:transform .2s ease, box-shadow .2s ease; }
body.home .product-card:hover{ box-shadow:0 12px 28px rgba(46,43,56,.10); transform:translateY(-2px); }

/* Reviews teaser: full-bleed Ink band with #3A374A cards, as in the design */
body.home .testimonials{
  border-radius:0; background:var(--ink);
  border-image:linear-gradient(var(--ink),var(--ink)) fill 0 / 0 / 0 100vmax;
  padding:72px 0;
}
body.home .testimonials h2{ color:var(--cloud); margin-bottom:8px; }
body.home .testimonials .section-sub{ color:#B7AFC7; font-size:13px; font-style:italic; margin-bottom:36px; }
body.home .testimonial-card{ background:#3A374A; border-radius:16px; padding:24px; }
body.home .testimonial-card p{ color:var(--cloud); font-size:14px; line-height:1.6; margin-bottom:14px; }
body.home .testimonial-attr{ color:#B7AFC7; font-size:12px; }

body.home main > section:last-of-type h2{ font-size:20px; }

/* WhatsApp floating bubble (desktop/tablet — phones use the tab bar's Chat) */
.home-wa-bubble{
  position:fixed; right:28px; bottom:28px; z-index:90;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,.2); transition:transform .2s ease;
}
.home-wa-bubble:hover{ transform:scale(1.06); }
body.home .cart-toast{ bottom:100px; }

.home-tabbar{ display:none; }
.home-review-dots{ display:none; }

/* --- Home: tablet --------------------------------------------------------- */
@media (max-width: 900px){
  body.home .trust-bar{ gap:24px 40px; }
}

/* --- Home: phones (≤767): bottom tab bar replaces the floating bubble --- */
@media (max-width: 767px){
  .home-wa-bubble{ display:none; }
  body.home{ padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
  body.home .cart-toast{ bottom:calc(76px + env(safe-area-inset-bottom)); }
  .home-tabbar{
    display:grid; grid-template-columns:repeat(4,1fr);
    position:fixed; left:0; right:0; bottom:0; z-index:95;
    background:rgba(248,247,251,.97); backdrop-filter:saturate(1.4) blur(10px); -webkit-backdrop-filter:saturate(1.4) blur(10px);
    border-top:1px solid rgba(46,43,56,.08);
    padding:0 0 env(safe-area-inset-bottom);
  }
  .home-tabbar__item{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
    min-height:60px; font-size:11px; font-weight:700; color:rgba(46,43,56,.62);
  }
  .home-tabbar__item.is-active{ color:var(--flash); }
  .home-tabbar__icon{ position:relative; display:inline-flex; }
  .home-tabbar__badge{
    position:absolute; top:-6px; right:-10px;
    min-width:17px; height:17px; padding:0 4px; border-radius:999px;
    background:var(--flash); color:#fff; font-size:10px; font-weight:700;
    display:flex; align-items:center; justify-content:center;
  }
  .home-tabbar__badge[hidden]{ display:none; }
}

@media (max-width: 600px){
  .announcement-bar{ padding:7px 12px; }
  .announcement-bar p{ font-size:11px; letter-spacing:0; line-height:1.35; text-wrap:balance; }
}

/* --- Home: phone layout (≤600) — Mobile Design Brief, "Home" ------------- */
@media (max-width: 600px){
  body.home main h2{ font-size:22px; }

  /* Hero: image-first stacking, full-bleed 4:3 panel */
  body.home .hero.container{ display:flex; flex-direction:column; padding-top:0; padding-bottom:12px; }
  body.home .hero__image{
    order:-1; margin:0 calc(-1 * var(--gutter)) 24px;
    border-radius:0; min-height:0; aspect-ratio:4 / 3; max-height:320px;
  }
  body.home .hero__image .placeholder-icon{ height:58%; width:auto; }
  body.home .hero__image .placeholder-label{ bottom:12px; }
  body.home .hero__content{ margin-bottom:8px; }
  body.home .hero .eyebrow{ font-size:11px; }
  body.home .hero h1{ font-size:32px; line-height:1.15; }
  body.home .hero p{ font-size:15px; line-height:1.55; }
  body.home .hero__actions{ gap:10px; margin-top:20px; }
  body.home .hero__actions .btn{ min-height:48px; }

  /* Shop by Category: swipe carousel */
  body.home .category-grid{
    display:flex !important; gap:12px;
    overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
    margin:0 calc(-1 * var(--gutter)); padding:4px var(--gutter) 10px;
    scroll-padding-left:var(--gutter); scrollbar-width:none;
  }
  body.home .category-grid::-webkit-scrollbar{ display:none; }
  body.home .category-card{ flex:0 0 132px; min-height:112px; padding:16px 10px; gap:8px; scroll-snap-align:start; }
  body.home .category-card svg{ width:34px; height:34px; }
  body.home .category-card span{ font-size:14px; }

  /* Trust badges: tight 3-column grid, icon above label */
  body.home .trust-bar{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding-top:24px; padding-bottom:8px; text-align:center; }
  body.home .trust-item{ flex-direction:column; justify-content:flex-start; gap:6px; font-size:11px; line-height:1.3; }
  body.home .trust-item svg{ width:20px; height:20px; }

  /* Best Sellers: 2x2, no fit-note line, icon-only Quick Add */
  body.home .product-card__subtitle{ display:none; }
  body.home .product-card .js-quick-add{
    font-size:0; width:32px; height:32px; min-width:32px; padding:0; border-radius:50%; flex:none; gap:0;
    position:relative;
  }
  body.home .product-card .js-quick-add::before{ content:"+"; font-size:20px; line-height:1; font-weight:600; }
  body.home .product-card .js-quick-add::after{ content:""; position:absolute; inset:-6px; } /* 44px tap area */
  body.home .section-head a{ font-size:13px; }

  /* Reviews: swipe carousel of ~85% cards + dots */
  body.home .testimonials{ padding:44px 0 36px; }
  body.home .testimonials h2{ font-size:20px; }
  body.home .testimonial-grid{
    display:flex !important; gap:12px; position:relative;
    overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
    margin:0 calc(-1 * var(--gutter)); padding:0 var(--gutter);
    scroll-padding:0 var(--gutter); scrollbar-width:none;
  }
  body.home .testimonial-grid::-webkit-scrollbar{ display:none; }
  body.home .testimonial-card{ flex:0 0 85%; scroll-snap-align:center; }
  body.home .home-review-dots{ display:flex; justify-content:center; gap:8px; margin-top:18px; }
  body.home .home-review-dots span{ width:7px; height:7px; border-radius:50%; background:rgba(248,247,251,.3); transition:background .2s; }
  body.home .home-review-dots span.is-active{ background:var(--flash); }

  /* Instagram strip: static 3-column grid */
  body.home main > section:last-of-type h2{ font-size:17px; }
  body.home .ugc-grid{ grid-template-columns:repeat(3,1fr) !important; gap:8px; }
  body.home .ugc-tile{ font-size:9px; border-radius:12px; }
  body.home .ugc-tile:nth-child(n+4){ display:none; }

  /* Footer (global): newsletter moves up under the brand block; Shop/Support become accordions */
  .footer-grid{ gap:0 !important; }
  .footer-grid > .footer-brand{ order:1; padding-bottom:24px; }
  .footer-grid > :nth-child(4){ order:2; padding-bottom:20px; }
  .footer-grid > :nth-child(2){ order:3; }
  .footer-grid > :nth-child(3){ order:4; }
  .newsletter-row{ flex-direction:column; gap:10px; }
  .newsletter-row input, .newsletter-row button{ width:100%; min-height:48px; border-radius:999px !important; }
  .footer-acc{ border-top:1px solid rgba(255,255,255,.12); }
  .footer-acc > h4{ display:none; }
  .footer-acc ul{ padding:0 0 12px; }
  .footer-bottom{ flex-direction:column; align-items:center; text-align:center; gap:6px; margin-top:24px; }
  .footer-bottom span:last-child{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 12px; }
}
.footer-acc__toggle{ display:none; }
@media (max-width: 600px){
  .footer-acc__toggle{
    display:flex; align-items:center; justify-content:space-between; width:100%;
    min-height:52px; padding:0; background:none; border:0; cursor:pointer;
    color:#fff; font-family:var(--font-head); font-weight:700; font-size:.9rem; letter-spacing:.06em; text-transform:uppercase;
  }
  .footer-acc__toggle svg{ transition:transform .2s ease; }
  .footer-acc.is-open .footer-acc__toggle svg{ transform:rotate(180deg); }
}

/* =========================================================
   HEADER + SEARCH + COLOR-MATCHED BUTTONS PASS (v1.12.0)
   ========================================================= */

/* Header icons: round hover target, consistent with the brand */
.header-actions{gap:6px}
.header-actions .header-icon-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;background:transparent;border:0;padding:0;color:var(--ink,#2E2B38);cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .2s ease}
.header-actions .header-icon-link:hover,.header-actions .header-icon-link:focus-visible{background:var(--lilac,#E2DCF5);color:var(--ink,#2E2B38)}
.header-actions .header-icon-link:focus-visible{outline:2px solid var(--flash,#FF3E7F);outline-offset:2px}
.header-actions .header-icon-link .cart-count{top:0;right:0}
#search-toggle[aria-expanded="true"]{background:var(--ink,#2E2B38);color:#fff}

/* Search overlay */
.search-overlay{position:fixed;inset:0;z-index:1200;display:block;background:rgba(46,43,56,.38);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:loopFade .2s ease}
.search-overlay[hidden]{display:none!important}
.search-overlay__inner.container{position:relative;display:flex;align-items:center;gap:14px;max-width:none;margin:0;padding:28px max(24px,calc((100vw - 1120px)/2));background:var(--cloud,#F8F7FB);border-radius:0 0 28px 28px;box-shadow:0 18px 40px rgba(46,43,56,.14);animation:loopDrop .25s ease}
.search-overlay__form{flex:1;display:flex;align-items:center;gap:10px;height:60px;padding:0 6px 0 20px;background:#fff;border:2px solid var(--lilac,#E2DCF5);border-radius:999px;transition:border-color .2s ease,box-shadow .2s ease}
.search-overlay__form:focus-within{border-color:var(--flash,#FF3E7F);box-shadow:0 0 0 4px rgba(255,62,127,.14)}
.search-overlay__form > svg{flex:none;color:var(--ink,#2E2B38);opacity:.6}
.search-overlay__form input[type="search"]{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;padding:0 4px;font:500 17px/1.2 "DM Sans",system-ui,sans-serif;color:var(--ink,#2E2B38);-webkit-appearance:none;appearance:none;border-radius:0}
.search-overlay__form input[type="search"]::placeholder{color:rgba(46,43,56,.45)}
.search-overlay__form input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}
.search-overlay__form .btn{flex:none;height:46px;padding:0 26px;border-radius:999px;border:0;font-weight:700;letter-spacing:.01em;box-shadow:0 6px 16px rgba(255,62,127,.28);transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease}
.search-overlay__form .btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(255,62,127,.34)}
.search-overlay__form .btn:active{transform:translateY(0)}
.search-overlay__close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;border-radius:999px;background:var(--lilac,#E2DCF5);color:var(--ink,#2E2B38);cursor:pointer;-webkit-appearance:none;appearance:none;transition:background-color .2s ease,color .2s ease,transform .2s ease}
.search-overlay__close:hover,.search-overlay__close:focus-visible{background:var(--ink,#2E2B38);color:#fff;transform:rotate(90deg)}
@keyframes loopFade{from{opacity:0}to{opacity:1}}
@keyframes loopDrop{from{transform:translateY(-16px);opacity:0}to{transform:none;opacity:1}}
@media (max-width:600px){
  .search-overlay__inner.container{padding:16px;gap:10px;border-radius:0 0 22px 22px}
  .search-overlay__form{height:52px;padding:0 4px 0 14px;gap:8px}
  .search-overlay__form input[type="search"]{font-size:16px}
  .search-overlay__form .btn{height:42px;padding:0 16px;font-size:14px}
  .search-overlay__close{width:42px;height:42px}
}

/* Buttons follow the chosen garment color (set by script in footer.php) */
body.loop-pick .pdp-atc,
body.loop-pick .qa-modal__submit,
body.loop-pick .cart-toast .btn--primary{background:var(--pick-bg)!important;color:var(--pick-fg)!important;border-color:var(--pick-bd)!important;box-shadow:0 6px 16px var(--pick-glow)!important;transition:background-color .25s ease,color .25s ease,box-shadow .25s ease}
body.loop-pick .pdp-atc:hover,
body.loop-pick .qa-modal__submit:hover,
body.loop-pick .cart-toast .btn--primary:hover{background:var(--pick-hover)!important;color:var(--pick-fg)!important}
body.loop-pick .pdp-atc{border:2px solid var(--pick-bd)!important}
body.loop-pick .cart-toast .btn--outline{border-color:var(--pick-strong)!important;color:var(--ink,#2E2B38)!important}
body.loop-pick input[name="pdp_size"]:checked + .pdp-size__pill,
body.loop-pick .qa-size.is-selected{background:var(--pick-bg)!important;color:var(--pick-fg)!important;border-color:var(--pick-strong)!important}
body.loop-pick input[name="pdp_color"]:checked + .pdp-swatch__dot{box-shadow:0 0 0 2.5px var(--cloud,#F8F7FB),0 0 0 5px var(--pick-strong)!important}
body.loop-pick .qa-swatch.is-selected{box-shadow:0 0 0 2.5px #fff,0 0 0 5px var(--pick-strong)!important}

/* Logged-in admins: keep the search panel below the WordPress toolbar */
body.admin-bar .search-overlay{top:var(--wp-admin--admin-bar--height,32px)}

/* =========================================================
   PAGES PASS + CHECKOUT OFFERS (v1.13.0)
   Our Story · Wishlist · 404 · Search · Contact · My Account ·
   Checkout (block) · Order received · Upsell/downsell popup
   ========================================================= */

/* ---- Shared page hero (the section's 56px shorthand was wiping the side gutter) ---- */
.page-hero.container{padding-left:var(--gutter);padding-right:var(--gutter)}
.page-hero h1{margin:0 0 .35em;line-height:1.1}
.page-hero .eyebrow{margin-bottom:.6rem}
.page-hero p,.page-hero__sub{max-width:540px;margin:0 auto;color:rgba(46,43,56,.68);font-size:1.02rem}
.page-hero--compact{padding-top:36px;padding-bottom:8px}
.page-hero--compact h1{font-size:clamp(1.8rem,3.4vw,2.3rem)}
.page-body{max-width:760px}
.page-body--wide{max-width:var(--container);padding-top:24px!important}
.page-generic .page-body h2{font-family:var(--font-head);font-size:1.6rem;margin:1.6em 0 .5em}
.page-generic .page-body p,.page-generic .page-body li{color:rgba(46,43,56,.82);line-height:1.7}
.page-generic .page-body a{color:var(--flash);font-weight:600}
.post-card{background:#fff;border:1px solid var(--lilac);border-radius:var(--radius-lg);padding:24px;margin-bottom:18px}
.post-card h2{font-family:var(--font-head);margin:0 0 6px}
.post-card h2 a{color:var(--ink);text-decoration:none}

/* ---- Checkout progress (Bag → Details → Done) ---- */
.checkout-steps-mini{display:flex;justify-content:center;gap:0;list-style:none;margin:0 0 14px;padding:0;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(46,43,56,.45)}
.checkout-steps-mini li{display:flex;align-items:center;gap:8px}
.checkout-steps-mini li+li::before{content:"";width:34px;height:2px;border-radius:2px;background:var(--lilac);margin:0 10px}
.checkout-steps-mini li::after{order:-1;content:"";width:9px;height:9px;border-radius:50%;background:var(--lilac)}
.checkout-steps-mini li.is-done{color:var(--ink)}
.checkout-steps-mini li.is-done::after{background:var(--ink)}
.checkout-steps-mini li.is-current{color:var(--flash)}
.checkout-steps-mini li.is-current::after{background:var(--flash);box-shadow:0 0 0 4px rgba(255,62,127,.18)}
.checkout-steps-mini li.is-done+li::before{background:var(--ink)}

/* ---- Contact ---- */
.contact-card{border-radius:var(--radius-lg)!important}
.contact-field input,.contact-field textarea{border-radius:14px!important;border:1.5px solid var(--lilac)!important;background:#fff;transition:border-color .2s,box-shadow .2s}
.contact-field input:focus,.contact-field textarea:focus{outline:0;border-color:var(--flash)!important;box-shadow:0 0 0 4px rgba(255,62,127,.12)}
.info-row{align-items:flex-start}
.info-row > svg{flex:none;width:44px;height:44px;padding:11px;border-radius:14px;background:var(--petal);color:var(--flash);box-sizing:border-box}

/* ---- Our Story ---- */
.story-hero{background:linear-gradient(135deg,var(--petal) 0%,var(--lilac) 55%,var(--sea-glass) 100%);overflow:hidden}
.story-hero__inner{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;min-height:480px;padding-top:56px;padding-bottom:56px}
.story-hero h1{font-family:var(--font-head);font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.02;margin:0 0 18px;letter-spacing:-.01em}
.story-lead{font-size:1.12rem;line-height:1.65;color:rgba(46,43,56,.8);max-width:480px;margin:0 0 28px}
.story-hero__ctas{display:flex;gap:12px;flex-wrap:wrap}
.story-hero__art{position:relative;height:360px}
.story-blob{position:absolute;border-radius:50%;filter:blur(2px)}
.story-blob--1{width:280px;height:280px;background:rgba(255,255,255,.55);top:30px;left:50%;transform:translateX(-50%)}
.story-blob--2{width:110px;height:110px;background:var(--flash);opacity:.9;top:40px;right:12%;animation:storyFloat 6s ease-in-out infinite}
.story-hero__mark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.story-hero__mark svg{width:220px;height:220px;animation:storySpin 18s linear infinite}
@keyframes storySpin{to{transform:rotate(360deg)}}
@keyframes storyFloat{50%{transform:translateY(14px)}}
.story-head{text-align:center;margin-bottom:34px}
.story-head h2,.story-loop h2,.story-cta h2{font-family:var(--font-head);font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.15;margin:0}
.story-values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.story-value{border-radius:24px;padding:28px 26px;transition:transform .25s ease,box-shadow .25s ease}
.story-value:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.story-value--lilac{background:var(--lilac)}.story-value--petal{background:var(--petal)}.story-value--sea{background:var(--sea-glass)}
.story-value__icon{display:inline-flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:18px;background:#fff;color:var(--flash);margin-bottom:18px}
.story-value h3{font-family:var(--font-head);font-size:1.35rem;margin:0 0 8px}
.story-value p{margin:0;color:rgba(46,43,56,.78);line-height:1.6}
.story-loop{background:var(--ink);color:#fff;padding:72px 0;text-align:center}
.story-loop .eyebrow{color:var(--petal)}
.story-steps{list-style:none;margin:36px auto 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:880px;counter-reset:s}
.story-steps li{position:relative;background:#3A374A;border-radius:22px;padding:26px 18px;display:flex;flex-direction:column;align-items:center;gap:6px}
.story-steps li:not(:last-child)::after{content:"\2192";position:absolute;right:-16px;top:50%;transform:translateY(-50%);color:var(--flash);font-weight:700;font-size:1.2rem;z-index:1}
.story-steps__icon{display:inline-flex;width:52px;height:52px;border-radius:50%;align-items:center;justify-content:center;background:var(--flash);color:#fff;margin-bottom:6px}
.story-steps strong{font-family:var(--font-head);font-size:1.3rem}
.story-steps span:last-child{color:rgba(248,247,251,.7);font-size:.92rem}
.story-note{max-width:760px;margin:0 auto;background:#fff;border:2px dashed var(--lilac);border-radius:24px;padding:34px;text-align:center}
.story-note__ph{font-size:1.05rem;color:rgba(46,43,56,.6);margin:0;line-height:1.7}
.story-note__content{text-align:left;line-height:1.75}
.story-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--petal);border-radius:28px;padding:36px 40px}
.story-cta__perks{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font-weight:600}
.story-cta__perks li{display:flex;align-items:center;gap:8px}
.story-cta__perks svg{color:var(--flash)}

/* ---- Wishlist ---- */
.wl-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.wl-card{position:relative;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 1px 0 rgba(46,43,56,.04);border:1px solid rgba(226,220,245,.8);transition:transform .25s ease,box-shadow .25s ease,opacity .2s ease}
.wl-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}
.wl-card.is-removing{opacity:0;transform:scale(.96)}
.wl-card__media{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;background:var(--lilac);text-decoration:none}
.wl-card--petal .wl-card__media{background:var(--petal)}.wl-card--sea .wl-card__media{background:var(--sea-glass)}
.wl-card__media img{width:100%;height:100%;object-fit:cover}
.wl-card__ph{font-family:var(--font-head);font-size:4rem;color:rgba(46,43,56,.25)}
.wl-card__remove{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:1.3rem;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(46,43,56,.12);transition:background .2s,color .2s}
.wl-card__remove:hover{background:var(--flash);color:#fff}
.wl-card__body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:4px}
.wl-card__cat{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--flash)}
.wl-card__name{font-family:var(--font-head);font-size:1.15rem;font-weight:600;color:var(--ink);text-decoration:none}
.wl-card__price{font-weight:700;margin-bottom:10px}
.wl-empty{text-align:center;max-width:420px;margin:10px auto 30px;padding:44px 28px;background:#fff;border-radius:28px;border:1px solid var(--lilac)}
.wl-empty__icon{display:inline-flex;width:78px;height:78px;border-radius:50%;align-items:center;justify-content:center;background:var(--petal);color:var(--flash);margin-bottom:16px}
.wl-empty h2{font-family:var(--font-head);margin:0 0 6px}
.wl-empty p{color:rgba(46,43,56,.65);margin:0 0 22px}
.wl-loading{display:flex;justify-content:center;gap:8px;padding:40px 0}
.wl-loading span{width:10px;height:10px;border-radius:50%;background:var(--flash);animation:wlDot 1s infinite ease-in-out}
.wl-loading span:nth-child(2){animation-delay:.15s}.wl-loading span:nth-child(3){animation-delay:.3s}
.wl-loading[hidden],.wl-grid[hidden],.wl-empty[hidden]{display:none!important}
@keyframes wlDot{0%,80%,100%{transform:scale(.5);opacity:.4}40%{transform:scale(1);opacity:1}}

/* ---- 404 ---- */
.nf{text-align:center;padding-top:64px;padding-bottom:84px;max-width:680px}
.nf__art{display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-head);font-weight:800;font-size:clamp(6rem,18vw,9.5rem);line-height:1;color:var(--ink);margin-bottom:10px}
.nf__mark{display:inline-flex;width:.9em;height:.9em;align-items:center;justify-content:center;border-radius:50%;background:var(--petal)}
.nf__mark svg{width:62%;height:62%;animation:storySpin 12s linear infinite}
.nf h1{font-family:var(--font-head);font-size:clamp(1.7rem,4vw,2.4rem);margin:0 0 10px}
.nf > p{color:rgba(46,43,56,.68);margin:0 auto 26px;max-width:460px}
.nf__search,.shop-search{display:flex;align-items:center;gap:10px;max-width:520px;margin:0 auto 18px;height:58px;padding:0 6px 0 18px;background:#fff;border:2px solid var(--lilac);border-radius:999px;transition:border-color .2s,box-shadow .2s}
.nf__search:focus-within,.shop-search:focus-within{border-color:var(--flash);box-shadow:0 0 0 4px rgba(255,62,127,.12)}
.nf__search svg,.shop-search svg{flex:none;opacity:.55}
.nf__search input[type=search],.shop-search input[type=search]{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;font:500 16px var(--font-body);color:var(--ink);-webkit-appearance:none;appearance:none}
.nf__search .btn,.shop-search .btn{height:44px;padding:0 22px;border:0}
.nf__links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ---- Search results with no match ---- */
.shop-empty--search{text-align:center;padding:36px 20px;background:#fff;border:1px solid var(--lilac);border-radius:24px}
.shop-empty--search strong{display:block;font-family:var(--font-head);font-size:1.4rem;margin-bottom:6px}
.shop-empty--search p{color:rgba(46,43,56,.65);margin:0 0 18px}

/* ---- WooCommerce forms (My Account, login, addresses) ---- */
.loop-page-account .woocommerce form .form-row input.input-text,
.loop-page-account .woocommerce form .form-row textarea,
.loop-page-account .woocommerce form .form-row select,
.loop-page-account .select2-container .select2-selection--single{border:1.5px solid var(--lilac)!important;border-radius:14px!important;background:#fff!important;padding:12px 14px!important;font:500 15px var(--font-body);color:var(--ink);min-height:48px;box-shadow:none;transition:border-color .2s,box-shadow .2s}
.loop-page-account .woocommerce form .form-row input.input-text:focus,.loop-page-account .woocommerce form .form-row textarea:focus{outline:0;border-color:var(--flash)!important;box-shadow:0 0 0 4px rgba(255,62,127,.12)}
.loop-page-account .woocommerce form .form-row label{font-weight:700;font-size:.85rem;margin-bottom:6px}
.loop-page-account .woocommerce .button,
.loop-page-account .woocommerce button.button,
.loop-page-account .woocommerce a.button{display:inline-flex;align-items:center;justify-content:center;background:var(--flash)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:13px 26px!important;font:700 .92rem var(--font-body)!important;text-decoration:none;transition:transform .15s,box-shadow .2s;box-shadow:0 6px 16px rgba(255,62,127,.22)}
.loop-page-account .woocommerce .button:hover{transform:translateY(-1px)}
.loop-page-account .woocommerce-form-login__rememberme{display:inline-flex!important;align-items:center;gap:8px;font-weight:500;margin-right:14px}
.loop-page-account .woocommerce-LostPassword a,.loop-page-account .woocommerce a:not(.button){color:var(--flash);font-weight:600}

/* Logged out: login + register cards */
.loop-page-account #customer_login{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:960px;margin:0 auto}
.loop-page-account #customer_login::before,.loop-page-account #customer_login::after{display:none}
.loop-page-account #customer_login > .u-column1,.loop-page-account #customer_login > .u-column2{float:none!important;width:auto!important;background:#fff;border:1px solid var(--lilac);border-radius:24px;padding:30px}
.loop-page-account #customer_login h2{font-family:var(--font-head);font-size:1.5rem;margin:0 0 14px}
.loop-page-account #customer_login form.login,.loop-page-account #customer_login form.register{border:0!important;padding:0!important;margin:0!important}
.loop-page-account .woocommerce > form.woocommerce-form-login{max-width:480px;margin:0 auto;background:#fff;border:1px solid var(--lilac)!important;border-radius:24px;padding:30px!important}

/* Logged in: tab list + content card */
.loop-page-account .woocommerce:has(.woocommerce-MyAccount-navigation){display:grid;grid-template-columns:250px 1fr;gap:28px;align-items:start}
.loop-page-account .woocommerce::before,.loop-page-account .woocommerce::after{display:none}
.woocommerce-MyAccount-navigation{float:none!important;width:auto!important}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:10px;background:#fff;border:1px solid var(--lilac);border-radius:22px;position:sticky;top:100px}
.woocommerce-MyAccount-navigation li a{display:flex;align-items:center;padding:12px 16px;border-radius:14px;color:var(--ink);font-weight:600;text-decoration:none;transition:background .2s,color .2s}
.woocommerce-MyAccount-navigation li a:hover{background:var(--cloud)}
.woocommerce-MyAccount-navigation li.is-active a{background:var(--ink);color:#fff}
.woocommerce-MyAccount-navigation-link--customer-logout a{color:var(--flash)!important}
.woocommerce-MyAccount-content{float:none!important;width:auto!important;background:#fff;border:1px solid var(--lilac);border-radius:24px;padding:30px;min-width:0}
.woocommerce-MyAccount-content > p:first-child{font-size:1.05rem}
.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3{font-family:var(--font-head)}
.woocommerce-MyAccount-content table.shop_table{border:0!important;border-collapse:separate!important;border-spacing:0 8px;width:100%}
.woocommerce-MyAccount-content table.shop_table th{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(46,43,56,.55);border:0!important;padding:6px 12px!important}
.woocommerce-MyAccount-content table.shop_table td{background:var(--cloud);border:0!important;padding:14px 12px!important}
.woocommerce-MyAccount-content table.shop_table td:first-child{border-radius:14px 0 0 14px}
.woocommerce-MyAccount-content table.shop_table td:last-child{border-radius:0 14px 14px 0}
.woocommerce-Addresses{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.woocommerce-Addresses::before,.woocommerce-Addresses::after{display:none}
.woocommerce-Addresses .woocommerce-Address{float:none!important;width:auto!important;background:var(--cloud);border-radius:18px;padding:20px}
.woocommerce-Address-title{display:flex;justify-content:space-between;align-items:center}
.woocommerce-Address-title h2,.woocommerce-Address-title h3{font-size:1.2rem;margin:0}
.loop-page-account .woocommerce-info,.loop-page-account .woocommerce-message{border-radius:16px}

/* ---- Checkout (WooCommerce block) ---- */
.loop-page-checkout .wp-block-woocommerce-checkout{padding-top:0;margin:0}
.loop-page-checkout .wc-block-components-sidebar-layout{gap:0}
.loop-page-checkout .wc-block-checkout__main .wc-block-components-checkout-step,
.loop-page-checkout .wc-block-components-checkout-step{background:#fff;border:1px solid var(--lilac);border-radius:22px;padding:22px 22px 12px!important;margin:0 0 16px!important}
.loop-page-checkout .wc-block-components-checkout-step::after{display:none!important}
.loop-page-checkout .wc-block-components-checkout-step__heading{margin:0 0 12px!important}
.loop-page-checkout .wc-block-components-checkout-step__title{font-family:var(--font-head)!important;font-weight:700!important;font-size:1.3rem!important;color:var(--ink)}
.loop-page-checkout .wc-block-components-checkout-step__container,.loop-page-checkout .wc-block-components-checkout-step__content{padding-left:0!important}
.loop-page-checkout .wc-block-components-checkout-step__description{color:rgba(46,43,56,.62)}
.loop-page-checkout .wc-block-components-text-input input,
.loop-page-checkout .wc-block-components-combobox .components-combobox-control input.components-combobox-control__input,
.loop-page-checkout .wc-block-components-select-input select,
.loop-page-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
.loop-page-checkout .wc-block-components-textarea{border:1.5px solid var(--lilac)!important;border-radius:14px!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important;transition:border-color .2s,box-shadow .2s}
.loop-page-checkout .wc-block-components-text-input input:focus,
.loop-page-checkout .wc-block-components-combobox .components-combobox-control input.components-combobox-control__input:focus,
.loop-page-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
.loop-page-checkout .wc-block-components-textarea:focus{border-color:var(--flash)!important;box-shadow:0 0 0 4px rgba(255,62,127,.12)!important;outline:0!important}
.loop-page-checkout .wc-block-components-text-input label,.loop-page-checkout .wc-blocks-components-select__label{color:rgba(46,43,56,.6)!important}
.loop-page-checkout .wc-block-components-validation-error{color:#D6245F}
.loop-page-checkout .wc-block-components-text-input.has-error input{border-color:#D6245F!important}
/* Radio cards (shipping + payment) */
.loop-page-checkout .wc-block-components-radio-control--highlight-checked,.loop-page-checkout .wc-block-components-radio-control-accordion-option{border-radius:16px!important}
.loop-page-checkout .wc-block-components-radio-control__option,
.loop-page-checkout .wc-block-components-radio-control-accordion-option{border:1.5px solid var(--lilac)!important;border-radius:16px!important;margin-bottom:10px!important;background:#fff;box-shadow:none!important}
.loop-page-checkout .wc-block-components-radio-control--highlight-checked::after,.loop-page-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,.loop-page-checkout .wc-block-components-radio-control__option--checked-option-highlighted{box-shadow:none!important}
.loop-page-checkout .wc-block-components-radio-control__option--checked-option-highlighted,
.loop-page-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted{border-color:var(--flash)!important;background:#FFF5F8!important}
.loop-page-checkout .wc-block-components-radio-control__input{border-color:rgba(46,43,56,.35)!important}
.loop-page-checkout .wc-block-components-radio-control__input:checked{border-color:var(--flash)!important}
.loop-page-checkout .wc-block-components-radio-control__input:checked::before{background:var(--flash)!important}
.loop-page-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]{border-radius:6px;border-color:rgba(46,43,56,.35)}
.loop-page-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked{background:var(--flash);border-color:var(--flash)}
.loop-page-checkout .wc-block-components-checkbox .wc-block-components-checkbox__mark{fill:#fff}
/* Place order */
.loop-page-checkout .wc-block-checkout__actions{padding-top:6px}
.loop-page-checkout .wc-block-checkout__actions_row{align-items:center}
.loop-page-checkout .wc-block-components-checkout-place-order-button{background:var(--flash)!important;color:#fff!important;border:0!important;border-radius:999px!important;min-height:58px;padding:0 34px!important;font-family:var(--font-head)!important;font-weight:700!important;font-size:1.12rem!important;box-shadow:0 10px 24px rgba(255,62,127,.3)!important;transition:transform .15s,box-shadow .2s!important}
.loop-page-checkout .wc-block-components-checkout-place-order-button:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(255,62,127,.36)!important}
.loop-page-checkout .wc-block-components-checkout-return-to-cart-button{color:var(--ink)!important;font-weight:600}
.loop-page-checkout .wc-block-checkout__terms{color:rgba(46,43,56,.6);font-size:.85rem}
.loop-page-checkout .wc-block-checkout__terms a{color:var(--ink)}
/* Order summary card */
.loop-page-checkout .wc-block-checkout__sidebar .wc-block-components-panel,
.loop-page-checkout .wp-block-woocommerce-checkout-order-summary-block{background:#fff;border:1px solid var(--lilac)!important;border-radius:22px;padding:18px 20px!important}
.loop-page-checkout .wc-block-components-checkout-order-summary__title-text,.loop-page-checkout .wc-block-components-order-summary .wc-block-components-panel__button{font-family:var(--font-head)!important;font-size:1.25rem!important;font-weight:700!important}
.loop-page-checkout .wc-block-components-order-summary-item__image img{border-radius:12px}
.loop-page-checkout .wc-block-components-order-summary-item__image{background:var(--lilac);border-radius:12px}
.loop-page-checkout .wc-block-components-order-summary-item__quantity{background:var(--ink)!important;color:#fff!important;border:2px solid #fff!important;box-shadow:none!important;font-weight:700}
.loop-page-checkout .wc-block-components-product-name{font-weight:700;color:var(--ink)}
.loop-page-checkout .wc-block-components-product-details{color:rgba(46,43,56,.62);font-size:.82rem}
.loop-page-checkout .wc-block-components-product-details__deal .wc-block-components-product-details__value,.loop-page-checkout .wc-block-components-product-details__deal{color:var(--flash)!important;font-weight:700}
.loop-page-checkout .wc-block-components-totals-wrapper{border-color:var(--lilac)!important}
.loop-page-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.loop-page-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{font-family:var(--font-head);font-size:1.35rem!important;font-weight:700}
.loop-page-checkout .wc-block-components-totals-shipping .wc-block-components-totals-item__value strong,.loop-page-checkout .wc-block-components-totals-item__value .wc-block-components-formatted-money-amount{font-weight:700}
.loop-page-checkout .wc-block-components-totals-coupon-link,.loop-page-checkout .wc-block-components-panel__button{color:var(--ink)!important}
.loop-page-checkout .wc-block-components-button:not(.wc-block-components-checkout-place-order-button).contained{background:var(--ink)!important;color:#fff!important;border-radius:12px!important}
@media (min-width:901px){
  .loop-page-checkout .wc-block-checkout__sidebar{position:sticky;top:96px;align-self:flex-start}
  .loop-page-checkout .wc-block-components-sidebar-layout .wc-block-components-main{padding-right:4%!important}
}

/* ---- Order received (block + classic) ---- */
.loop-page-thankyou .wc-block-order-confirmation-status{text-align:center;background:linear-gradient(135deg,var(--petal),var(--lilac));border-radius:26px;padding:34px 24px;margin-bottom:22px}
.loop-page-thankyou .wc-block-order-confirmation-status h1,.loop-page-thankyou .wc-block-order-confirmation-status p:first-child{font-family:var(--font-head);font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:700;margin:0 0 6px}
.loop-page-thankyou .wc-block-order-confirmation-summary,.loop-page-thankyou .woocommerce-order-overview{margin:0 0 22px}
.loop-page-thankyou .wc-block-order-confirmation-summary-list,.loop-page-thankyou ul.woocommerce-order-overview{list-style:none;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:0!important;margin:0!important}
.loop-page-thankyou .wc-block-order-confirmation-summary-list-item,.loop-page-thankyou ul.woocommerce-order-overview li{background:#fff;border:1px solid var(--lilac)!important;border-radius:16px;padding:14px 16px!important;margin:0!important;float:none!important;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:rgba(46,43,56,.55)}
.loop-page-thankyou .wc-block-order-confirmation-summary-list-item__value,.loop-page-thankyou ul.woocommerce-order-overview li strong{display:block;margin-top:4px;font-size:1rem;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:700}
.loop-page-thankyou .wc-block-order-confirmation-totals-wrapper,.loop-page-thankyou .wc-block-order-confirmation-shipping-wrapper,.loop-page-thankyou .wc-block-order-confirmation-billing-wrapper,.loop-page-thankyou .woocommerce-order-details,.loop-page-thankyou .woocommerce-customer-details{background:#fff;border:1px solid var(--lilac);border-radius:22px;padding:22px;margin-bottom:18px}
.loop-page-thankyou h2,.loop-page-thankyou h3{font-family:var(--font-head)}
.loop-page-thankyou table{border:0!important;width:100%}
.loop-page-thankyou table th,.loop-page-thankyou table td{border-color:var(--lilac)!important}
.loop-page-thankyou .woocommerce-thankyou-order-received{text-align:center;font-family:var(--font-head);font-size:1.6rem;background:linear-gradient(135deg,var(--petal),var(--lilac));border-radius:26px;padding:30px 20px}

/* ---- Upsell / downsell popup ---- */
html.offer-open{overflow:hidden}
.offer-modal{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:20px}
.offer-modal[hidden]{display:none!important}
.offer-modal__overlay{position:absolute;inset:0;background:rgba(46,43,56,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s ease}
.offer-modal__panel{position:relative;width:100%;max-width:760px;max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:28px;box-shadow:0 30px 70px rgba(46,43,56,.3);transform:translateY(18px) scale(.98);opacity:0;transition:transform .25s ease,opacity .2s ease}
.offer-modal.is-open .offer-modal__overlay{opacity:1}
.offer-modal.is-open .offer-modal__panel{transform:none;opacity:1}
.offer-modal__panel.is-swapping{transform:translateX(-14px);opacity:.2}
.offer-modal__close{position:absolute;top:14px;right:14px;z-index:2;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(46,43,56,.12)}
.offer-modal__close:hover{background:var(--ink);color:#fff}
.offer-modal__view{display:grid;grid-template-columns:.95fr 1.05fr}
.offer-modal__view[hidden]{display:none!important}
.offer-modal__media{position:relative;display:flex;align-items:center;justify-content:center;min-height:100%;background:linear-gradient(160deg,var(--lilac),var(--petal));color:var(--ink)}
.offer-modal__media--downsell{background:linear-gradient(160deg,var(--sea-glass),var(--lilac))}
.offer-modal__media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.offer-modal__media svg{width:46%;height:auto;opacity:.75}
.offer-modal__pct{position:absolute;top:18px;left:18px;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:74px;height:74px;border-radius:50%;background:var(--flash);color:#fff;font-family:var(--font-head);font-weight:800;font-size:1.4rem;transform:rotate(-10deg);box-shadow:0 10px 22px rgba(255,62,127,.35)}
.offer-modal__body{padding:32px 30px 26px}
.offer-modal__kicker{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--flash);margin-bottom:8px}
.offer-modal__title{font-family:var(--font-head);font-size:1.8rem;line-height:1.1;margin:0 0 8px}
.offer-modal__sub{margin:0 0 14px;color:rgba(46,43,56,.7);font-size:.95rem}
.offer-modal__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-bottom:18px}
.offer-modal__price s{color:rgba(46,43,56,.45);font-weight:600}
.offer-modal__price strong{font-family:var(--font-head);font-size:1.7rem;color:var(--flash)}
.offer-modal__save{background:var(--sea-glass);color:#1E6B4F;font-size:.78rem;font-weight:800;padding:4px 10px;border-radius:999px}
.offer-modal__field{margin-bottom:14px}
.offer-modal__field[hidden]{display:none}
.offer-modal__label{display:flex;gap:8px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(46,43,56,.55);margin-bottom:8px}
.offer-modal__label b{color:var(--ink);letter-spacing:0;text-transform:none;font-size:.88rem}
.offer-modal__error{background:#FFF0F4;color:#C21F55;border-radius:12px;padding:10px 12px;font-size:.88rem;margin:0 0 10px}
.offer-modal__accept{min-height:54px;font-size:1rem;margin-top:6px}
.offer-modal__accept:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.offer-modal__skip{display:block;width:100%;margin-top:8px;padding:10px;border:0;background:none;color:rgba(46,43,56,.6);font:600 .9rem var(--font-body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.offer-modal__skip:hover{color:var(--ink)}
.offer-modal__fine{display:flex;align-items:center;justify-content:center;gap:6px;margin:10px 0 0;font-size:.78rem;color:rgba(46,43,56,.55)}
.offer-modal__done{display:block!important;text-align:center;padding:44px 34px 30px;max-width:460px;margin:0 auto}
.offer-modal__done[hidden]{display:none!important}
.offer-modal__tick{display:inline-flex;width:72px;height:72px;border-radius:50%;align-items:center;justify-content:center;background:var(--sea-glass);color:#1E6B4F;margin-bottom:14px;animation:offerPop .35s ease}
.offer-modal__done h3{font-family:var(--font-head);font-size:1.7rem;margin:0 0 8px}
.offer-modal__done p{color:rgba(46,43,56,.7);margin:0 0 20px}
@keyframes offerPop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
body.loop-pick .offer-modal__accept:not(:disabled){background:var(--pick-bg)!important;color:var(--pick-fg)!important;box-shadow:0 6px 16px var(--pick-glow)!important;border:2px solid var(--pick-bd)!important}

/* ---- Tablet ---- */
@media (max-width:900px){
  .story-hero__inner{grid-template-columns:1fr;min-height:0;text-align:center;padding-top:40px;padding-bottom:20px}
  .story-lead{margin-left:auto;margin-right:auto}
  .story-hero__ctas{justify-content:center}
  .story-hero__art{height:260px}
  .story-values{grid-template-columns:1fr}
  .story-cta{flex-direction:column;text-align:center}
  .story-cta__perks{justify-content:center}
  .loop-page-account .woocommerce:has(.woocommerce-MyAccount-navigation){grid-template-columns:1fr}
  .woocommerce-MyAccount-navigation ul{position:static;display:flex;gap:6px;overflow-x:auto;padding:6px;scrollbar-width:none}
  .woocommerce-MyAccount-navigation ul::-webkit-scrollbar{display:none}
  .woocommerce-MyAccount-navigation li{flex:none}
  .woocommerce-MyAccount-navigation li a{padding:10px 14px;white-space:nowrap}
}

/* ---- Phone ---- */
@media (max-width:600px){
  .page-hero--compact{padding-top:22px}
  .checkout-steps-mini li+li::before{width:18px;margin:0 6px}
  .story-hero h1{font-size:2.3rem}
  .story-hero__art{height:210px}
  .story-hero__mark svg{width:160px;height:160px}
  .story-blob--1{width:200px;height:200px}
  .story-blob--2{width:70px;height:70px}
  .story-hero__ctas .btn{flex:1 1 100%}
  .story-loop{padding:52px 0}
  .story-steps{grid-template-columns:1fr;gap:26px}
  .story-steps li:not(:last-child)::after{content:"\2193";right:auto;left:50%;top:auto;bottom:-24px;transform:translateX(-50%)}
  .story-note{padding:24px 20px}
  .story-cta{padding:28px 22px;border-radius:24px}
  .story-cta .btn{width:100%}
  .wl-grid{grid-template-columns:1fr 1fr;gap:12px}
  .wl-card{border-radius:18px}
  .wl-card__body{padding:12px}
  .wl-card__name{font-size:1rem}
  .nf{padding-top:36px}
  .nf__search,.shop-search{height:52px}
  .nf__search .btn,.shop-search .btn{padding:0 16px;height:40px}
  .nf__links .btn{flex:1}
  .loop-page-account #customer_login{grid-template-columns:1fr}
  .loop-page-account #customer_login > .u-column1,.loop-page-account #customer_login > .u-column2,.woocommerce-MyAccount-content{padding:22px 18px;border-radius:20px}
  .woocommerce-Addresses{grid-template-columns:1fr}
  .loop-page-checkout .wc-block-components-checkout-step{padding:18px 16px 8px!important;border-radius:18px}
  .loop-page-checkout .wc-block-components-checkout-place-order-button{width:100%}
  .offer-modal{align-items:flex-end;padding:0}
  .offer-modal__panel{max-height:92vh;border-radius:26px 26px 0 0;transform:translateY(40px)}
  .offer-modal__view{grid-template-columns:1fr}
  .offer-modal__media{min-height:170px;height:170px}
  .offer-modal__media svg{width:auto;height:120px}
  .offer-modal__pct{width:62px;height:62px;font-size:1.15rem;top:14px;left:14px}
  .offer-modal__body{padding:20px 18px calc(18px + env(safe-area-inset-bottom))}
  .offer-modal__title{font-size:1.5rem}
  .offer-modal__price strong{font-size:1.45rem}
}

/* v1.13.0 fixes: large logo marks must not clip; search button inside the empty-results card */
.story-hero__mark svg,.nf__mark svg{overflow:visible}
.shop-empty--search .shop-search .btn{background:var(--flash)!important;color:#fff!important;text-decoration:none!important;border-radius:999px!important;font-weight:700;display:inline-flex;align-items:center}
.shop-empty--search > a{color:var(--ink);font-weight:600}

/* v1.13.1 My Account fixes: no sideways scroll on phones, tabs stay ink */
.loop-page-account .woocommerce > *{min-width:0}
.loop-page-account .woocommerce-MyAccount-content{overflow-wrap:anywhere}
.loop-page-account .woocommerce-MyAccount-navigation li a{color:var(--ink);font-weight:600}
.loop-page-account .woocommerce-MyAccount-navigation li.is-active a{color:#fff}
.loop-page-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a{color:var(--flash)}

/* v1.13.3 fixes */
.checkout-steps-mini li+li::before{order:-2}
.loop-page-account .woocommerce .woocommerce-MyAccount-navigation li a:not(.button){color:var(--ink)}
.loop-page-account .woocommerce .woocommerce-MyAccount-navigation li.is-active a:not(.button){color:#fff}
.loop-page-account .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:not(.button){color:var(--flash)}
.loop-page-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title,
.loop-page-checkout .wp-block-woocommerce-checkout-order-summary-block .checkout-order-summary-block-fill{border-top:0!important;border-bottom:0!important}
.loop-page-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title{padding-top:4px!important;padding-bottom:4px!important}

/* ==========================================================================
   SIMPLE CHECKOUT — v1.14.0
   Classic checkout with 4 fields (Full name, Phone, City, Address).
   ========================================================================== */
body.loop-page-checkout .page-body--wide > .woocommerce{max-width:1040px;margin:0 auto}
body.loop-page-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;align-items:start;margin:0}
body.loop-page-checkout form.checkout::before,body.loop-page-checkout form.checkout::after{content:none;display:none}
body.loop-page-checkout form.checkout > *{grid-column:1 / -1}
body.loop-page-checkout form.checkout > #customer_details{grid-column:1;display:block;width:auto;margin:0}
body.loop-page-checkout form.checkout > #order_review{grid-column:2;position:sticky;top:24px}
body.loop-page-checkout #order_review_heading{display:none}
body.loop-page-checkout #customer_details::before,body.loop-page-checkout #customer_details::after{content:none;display:none}
body.loop-page-checkout #customer_details .col-1{float:none;width:auto;max-width:none;margin:0}
body.loop-page-checkout #customer_details .col-2{display:none}

/* Cards */
body.loop-page-checkout .woocommerce-billing-fields,
body.loop-page-checkout #order_review{background:#fff;border:1px solid var(--lilac);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-card)}
body.loop-page-checkout .woocommerce-billing-fields > h3{display:none}

/* Card header */
.sc-head{display:flex;gap:14px;align-items:center;margin:0 0 22px}
.sc-head__icon{flex:none;width:46px;height:46px;border-radius:15px;background:var(--petal);color:var(--flash);display:grid;place-items:center}
.sc-head__title{font-size:1.4rem;margin:0 0 2px}
.sc-head__sub{margin:0;color:rgba(46,43,56,.62);font-size:.93rem}

/* Fields */
body.loop-page-checkout .woocommerce-billing-fields__field-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px}
body.loop-page-checkout .woocommerce-billing-fields__field-wrapper::before,
body.loop-page-checkout .woocommerce-billing-fields__field-wrapper::after{content:none;display:none}
body.loop-page-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row{float:none;width:auto;margin:0;padding:0;grid-column:1 / -1}
body.loop-page-checkout form.checkout .woocommerce-billing-fields__field-wrapper .sc-field--phone{grid-column:1 / 2}
body.loop-page-checkout form.checkout .woocommerce-billing-fields__field-wrapper .sc-field--city{grid-column:2 / 3}
body.loop-page-checkout form.checkout .sc-hidden{display:none!important}
body.loop-page-checkout form.checkout .form-row label{display:block;font-weight:700;font-size:.86rem;line-height:1.3;margin:0 0 7px;color:var(--ink)}
body.loop-page-checkout form.checkout .form-row label .required,
body.loop-page-checkout form.checkout .form-row label .optional{display:none}
body.loop-page-checkout form.checkout .form-row .woocommerce-input-wrapper{display:block}
body.loop-page-checkout form.checkout .form-row input.input-text{display:block;width:100%;height:54px;margin:0;padding:0 16px 0 46px;border:1.5px solid var(--lilac);border-radius:14px;background-color:#fff;background-repeat:no-repeat;background-position:15px 50%;background-size:20px 20px;font-family:var(--font-body);font-size:16px;color:var(--ink);box-shadow:none;transition:border-color .2s,box-shadow .2s,background-color .2s;-webkit-appearance:none;appearance:none}
body.loop-page-checkout form.checkout .form-row input.input-text::placeholder{color:rgba(46,43,56,.38)}
body.loop-page-checkout form.checkout .form-row input.input-text:hover{border-color:#CFC6EE}
body.loop-page-checkout form.checkout .form-row input.input-text:focus{border-color:var(--flash);box-shadow:0 0 0 4px rgba(255,62,127,.12);outline:0}
body.loop-page-checkout form.checkout .form-row.woocommerce-invalid input.input-text,
body.loop-page-checkout form.checkout .form-row:has(.checkout-inline-error-message) input.input-text{border-color:#D6245F!important;background-color:#FFF7FA}
body.loop-page-checkout form.checkout .form-row.woocommerce-validated input.input-text{border-color:#A9DCC5}
body.loop-page-checkout form.checkout .form-row.woocommerce-validated input.input-text:focus{border-color:var(--flash)}
body.loop-page-checkout form.checkout .checkout-inline-error-message{margin:6px 0 0;color:#D6245F;font-size:.82rem;font-weight:500}
body.loop-page-checkout form.checkout input[list]::-webkit-calendar-picker-indicator{opacity:0}
/* Field icons */
body.loop-page-checkout #billing_first_name{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A95AC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 3.6-7 8-7s8 3 8 7'/%3E%3C/svg%3E")}
body.loop-page-checkout #billing_phone{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A95AC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 005 5L15 12l5 2v4a2 2 0 01-2 2A16 16 0 013 5a2 2 0 012-2z'/%3E%3C/svg%3E")}
body.loop-page-checkout #billing_city{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A95AC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0119 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E")}
body.loop-page-checkout #billing_address_1{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A95AC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E")}

/* Order summary card */
.sc-review-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 8px}
.sc-review-head h2{font-size:1.35rem;margin:0}
.sc-review-head a{font-size:.85rem;font-weight:700;color:var(--flash)}
.sc-review-head a:hover{text-decoration:underline}
body.loop-page-checkout table.woocommerce-checkout-review-order-table{width:100%;margin:0 0 18px;border:0;border-radius:0;border-collapse:collapse;background:none;font-size:.95rem}
body.loop-page-checkout table.woocommerce-checkout-review-order-table thead{display:none}
body.loop-page-checkout table.woocommerce-checkout-review-order-table th,
body.loop-page-checkout table.woocommerce-checkout-review-order-table td{background:none;border:0;padding:10px 0;font-family:var(--font-body);vertical-align:top;line-height:1.4}
body.loop-page-checkout table.woocommerce-checkout-review-order-table tbody td{padding:14px 0}
body.loop-page-checkout table.woocommerce-checkout-review-order-table tbody tr + tr td{border-top:1px dashed var(--lilac)}
body.loop-page-checkout table.woocommerce-checkout-review-order-table td.product-name{position:relative;padding-left:68px;height:82px;font-weight:600;color:var(--ink)}
body.loop-page-checkout table.woocommerce-checkout-review-order-table td.product-total{text-align:right;white-space:nowrap;font-weight:700;padding-left:12px}
.sc-thumb{position:absolute;left:0;top:14px;width:54px;height:54px;border-radius:14px;background:var(--lilac);overflow:hidden;display:grid;place-items:center;color:var(--ink);font-family:var(--font-head);font-weight:700;font-size:1.4rem;line-height:1}
.sc-thumb img{width:100%;height:100%;object-fit:cover}
.sc-thumb svg{width:34px;height:auto}
.sc-thumb--petal{background:var(--petal)}.sc-thumb--sea{background:var(--sea-glass)}
body.loop-page-checkout td.product-name .product-quantity{color:var(--flash);font-weight:700;white-space:nowrap}
body.loop-page-checkout td.product-name dl.variation{margin:4px 0 0;font-size:.8rem;font-weight:500;color:rgba(46,43,56,.6)}
body.loop-page-checkout td.product-name dl.variation dt,
body.loop-page-checkout td.product-name dl.variation dd{display:inline;float:none;margin:0;padding:0;font-weight:500}
body.loop-page-checkout td.product-name dl.variation dd p{display:inline;margin:0}
body.loop-page-checkout td.product-name dl.variation dd::after{content:"";display:block}
body.loop-page-checkout table.woocommerce-checkout-review-order-table tfoot th{text-align:left;font-weight:500;color:rgba(46,43,56,.7)}
body.loop-page-checkout table.woocommerce-checkout-review-order-table tfoot td{text-align:right;font-weight:600}
body.loop-page-checkout table.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal th,
body.loop-page-checkout table.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td{border-top:1.5px solid var(--lilac);padding-top:16px}
body.loop-page-checkout #shipping_method{margin:0;padding:0;list-style:none}
body.loop-page-checkout #shipping_method li{margin:0;padding:0;text-indent:0}
body.loop-page-checkout #shipping_method li label{font-weight:700;color:#23865C;margin:0}
body.loop-page-checkout #shipping_method input[type=radio],body.loop-page-checkout #shipping_method input[type=hidden]{display:none}
body.loop-page-checkout table.woocommerce-checkout-review-order-table tr.order-total th,
body.loop-page-checkout table.woocommerce-checkout-review-order-table tr.order-total td{padding-top:14px;border-top:1.5px solid var(--lilac);font-family:var(--font-head);font-weight:700;font-size:1.3rem;color:var(--ink)}
body.loop-page-checkout table.woocommerce-checkout-review-order-table tr.order-total td strong{font-weight:700}

/* Payment + button */
body.loop-page-checkout #payment{background:transparent!important;border-radius:0;padding:0}
body.loop-page-checkout #payment ul.payment_methods{margin:0 0 16px;padding:0;border:0;list-style:none}
body.loop-page-checkout #payment ul.payment_methods::before,body.loop-page-checkout #payment ul.payment_methods::after{content:none;display:none}
body.loop-page-checkout #payment ul.payment_methods li{margin:0 0 10px;padding:14px 16px;border:1.5px solid var(--flash);border-radius:16px;background:#FFF5F8;line-height:1.4;list-style:none}
body.loop-page-checkout #payment ul.payment_methods li input[type=radio]{accent-color:var(--flash);margin:0 8px 0 0;vertical-align:middle}
body.loop-page-checkout #payment ul.payment_methods li label{display:inline;font-weight:700;color:var(--ink);cursor:pointer}
body.loop-page-checkout #payment div.payment_box{margin:4px 0 0!important;padding:0!important;background:transparent!important;color:rgba(46,43,56,.7);font-size:.88rem}
body.loop-page-checkout #payment div.payment_box::before{display:none}
body.loop-page-checkout #payment div.payment_box p{margin:0}
body.loop-page-checkout #payment div.form-row.place-order{margin:0;padding:0!important;float:none}
body.loop-page-checkout .woocommerce-privacy-policy-text,body.loop-page-checkout .woocommerce-terms-and-conditions-wrapper{font-size:.78rem;color:rgba(46,43,56,.6);margin:0 0 12px}
body.loop-page-checkout #place_order{display:flex;align-items:center;justify-content:center;width:100%;float:none;min-height:58px;margin:0;padding:0 28px;border:0;border-radius:999px!important;background:var(--flash)!important;color:#fff!important;font-family:var(--font-head);font-weight:700!important;font-size:1.15rem;line-height:1;box-shadow:0 10px 24px rgba(255,62,127,.3);cursor:pointer;transition:transform .15s,box-shadow .2s}
body.loop-page-checkout #place_order:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(255,62,127,.36)}
body.loop-page-checkout #place_order:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.sc-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin:14px 0 0;padding:0;list-style:none;font-size:.82rem;font-weight:600;color:rgba(46,43,56,.72)}
.sc-trust li{display:flex;align-items:center;gap:6px}
.sc-trust svg{color:var(--flash)}
body.loop-page-checkout .blockUI.blockOverlay{border-radius:var(--radius-lg)}

/* Coupon line + notices above the form */
body.loop-page-checkout .woocommerce-form-coupon-toggle .woocommerce-info{margin:0 0 16px;padding:14px 18px;border:1px dashed var(--lilac);border-radius:16px;background:#fff;font-size:.9rem;color:rgba(46,43,56,.75)}
body.loop-page-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before{display:none}
body.loop-page-checkout .woocommerce-form-coupon-toggle .showcoupon{color:var(--flash);font-weight:700}
body.loop-page-checkout form.checkout_coupon{margin:0 0 16px;padding:16px 18px;border:1px solid var(--lilac);border-radius:16px;background:#fff}
body.loop-page-checkout form.checkout_coupon p:not(.form-row){margin:0 0 10px;font-size:.88rem}
body.loop-page-checkout form.checkout_coupon .form-row{margin:0}
body.loop-page-checkout form.checkout_coupon input.input-text{height:46px;border:1.5px solid var(--lilac);border-radius:12px;padding:0 14px}
body.loop-page-checkout form.checkout_coupon button{height:46px;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;padding:0 20px;border:0}
body.loop-page-checkout .woocommerce-NoticeGroup-checkout .woocommerce-error{margin:0;border-radius:16px}
/* every error has its own inline message → hide the summary box */
body.loop-page-checkout .woocommerce-NoticeGroup-checkout:not(:has(li:not([data-id]))):has(li[data-id]){display:none}

@media (max-width:900px){
  body.loop-page-checkout form.checkout{grid-template-columns:minmax(0,1fr);gap:18px}
  body.loop-page-checkout form.checkout > #customer_details,
  body.loop-page-checkout form.checkout > #order_review{grid-column:1;position:static}
}
@media (max-width:600px){
  body.loop-page-checkout .woocommerce-billing-fields,
  body.loop-page-checkout #order_review{padding:20px 18px;border-radius:20px}
  body.loop-page-checkout .woocommerce-billing-fields__field-wrapper{grid-template-columns:minmax(0,1fr);gap:16px}
  body.loop-page-checkout form.checkout .woocommerce-billing-fields__field-wrapper .sc-field--phone,
  body.loop-page-checkout form.checkout .woocommerce-billing-fields__field-wrapper .sc-field--city{grid-column:1 / -1}
  .sc-head{margin-bottom:18px}
  .sc-head__title{font-size:1.25rem}
}

/* order-overview clearfix fix (v1.14.6): WooCommerce's float clearfix became an empty first grid cell on the thank-you page */
.woocommerce ul.order_details::before,.woocommerce ul.order_details::after,.woocommerce-order-overview::before,.woocommerce-order-overview::after{content:none!important;display:none!important}



/* ==========================================================================
   ORDER RECEIVED PAGE — v1.15.0
   ========================================================================== */
/* The designed block replaces WooCommerce's default pieces + the page hero */
body.loop-page-thankyou:has(.ty) .page-hero{display:none}
body.loop-page-thankyou:has(.ty) .page-body--wide{padding-top:12px!important}
.woocommerce-order:has(> .ty) > *:not(.ty):not(script):not(style){display:none!important}
.ty{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.ty h2{font-size:1.25rem;margin:0 0 14px}

/* Hero */
.ty-hero{position:relative;overflow:hidden;text-align:center;padding:30px 24px 30px;border-radius:28px;background:linear-gradient(135deg,var(--petal) 0%,var(--lilac) 55%,var(--sea-glass) 100%)}
.ty-hero > *{position:relative}
.ty-hero__blob{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55}
.ty-hero__blob--1{width:220px;height:220px;background:#fff;top:-110px;left:-60px}
.ty-hero__blob--2{width:160px;height:160px;background:var(--petal);bottom:-80px;right:-40px}
.ty-steps-mini{margin:0 0 22px}
.ty-steps-mini li.is-done{color:var(--ink)}
.ty-steps-mini li.is-done::after{background:var(--ink)}
.ty-steps-mini li.is-current{color:var(--flash)}
.ty-steps-mini li.is-current::after{background:var(--flash);box-shadow:0 0 0 4px rgba(255,62,127,.18)}
.ty-steps-mini li+li::before{background:var(--ink)}
.ty-hero__tick{display:grid;place-items:center;width:78px;height:78px;margin:0 auto 16px;border-radius:50%;background:#fff;color:var(--flash);box-shadow:0 12px 30px rgba(255,62,127,.25);animation:ty-pop .5s cubic-bezier(.2,1.4,.4,1) both}
.ty-hero__tick svg{stroke-width:2.4}
@keyframes ty-pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.ty-hero__title{font-size:clamp(1.9rem,5vw,2.6rem);margin:0 0 6px}
.ty-hero__sub{margin:0 auto 18px;max-width:440px;color:rgba(46,43,56,.72);font-size:1.02rem}
.ty-hero__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.ty-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.75);font-size:.85rem;font-weight:600;color:var(--ink)}
.ty-chip b{font-weight:500;color:rgba(46,43,56,.55)}
.ty-chip--status{background:var(--ink);color:#fff}
.ty-chip--status::before{content:"";width:7px;height:7px;border-radius:50%;background:#7BE0B4}
.ty-chip--cancelled::before,.ty-chip--refunded::before{background:#FF8FB1}

/* Pay on delivery */
.ty-pay{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:22px;background:#fff;border:1.5px solid var(--flash);box-shadow:0 10px 26px rgba(255,62,127,.12)}
.ty-pay__icon{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--flash);color:#fff}
.ty-pay__label{display:block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--flash)}
.ty-pay__amount{display:block;font-family:var(--font-head);font-size:1.7rem;line-height:1.15;color:var(--ink)}
.ty-pay__note{display:block;font-size:.88rem;color:rgba(46,43,56,.65)}

/* What happens next */
.ty-next{padding:22px 24px;border-radius:22px;background:#fff;border:1px solid var(--lilac)}
.ty-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;list-style:none;counter-reset:none}
.ty-timeline li{position:relative;display:flex;flex-direction:column;gap:3px;padding-top:44px}
.ty-timeline li::before{content:"";position:absolute;top:17px;left:40px;right:-14px;height:2px;background:var(--lilac)}
.ty-timeline li:last-child::before{display:none}
.ty-timeline li.is-done::before{background:linear-gradient(90deg,var(--flash),var(--lilac))}
.ty-timeline__dot{position:absolute;top:0;left:0;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--cloud);border:2px solid var(--lilac);color:rgba(46,43,56,.6)}
.ty-timeline li.is-done .ty-timeline__dot{background:var(--flash);border-color:var(--flash);color:#fff}
.ty-timeline strong{font-family:var(--font-head);font-size:1.02rem;color:var(--ink)}
.ty-timeline span:not(.ty-timeline__dot){font-size:.88rem;color:rgba(46,43,56,.65);line-height:1.45}

/* Cards */
.ty-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:18px;align-items:start}
.ty-card{padding:22px 24px;border-radius:22px;background:#fff;border:1px solid var(--lilac);box-shadow:var(--shadow-card)}
.ty-items{margin:0;padding:0;list-style:none}
.ty-item{display:flex;align-items:center;gap:14px;padding:12px 0}
.ty-item + .ty-item{border-top:1px dashed var(--lilac)}
.ty-item__media{flex:none;display:grid;place-items:center;width:58px;height:58px;border-radius:16px;overflow:hidden;background:var(--lilac);color:var(--ink)}
.ty-item__media--petal{background:var(--petal)}.ty-item__media--sea{background:var(--sea-glass)}
.ty-item__media img{width:100%;height:100%;object-fit:cover}
.ty-item__media svg{width:40px;height:auto}
.ty-item__letter{font-family:var(--font-head);font-weight:700;font-size:1.4rem}
.ty-item__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ty-item__name{font-weight:700;color:var(--ink);line-height:1.3}
.ty-item__name em{font-style:normal;color:var(--flash);white-space:nowrap}
.ty-item__meta{font-size:.82rem;color:rgba(46,43,56,.6)}
.ty-item__price{font-weight:700;white-space:nowrap}
.ty-totals{margin:10px 0 0;padding:12px 0 0;border-top:1.5px solid var(--lilac)}
.ty-totals__row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:.95rem}
.ty-totals__row dt{color:rgba(46,43,56,.65);margin:0}
.ty-totals__row dd{margin:0;font-weight:600;text-align:right}
.ty-totals__row--shipping dd{color:#23865C;font-weight:700}
.ty-totals__row--order_total{margin-top:6px;padding-top:12px;border-top:1.5px solid var(--lilac)}
.ty-totals__row--order_total dt,.ty-totals__row--order_total dd{font-family:var(--font-head);font-weight:700;font-size:1.3rem;color:var(--ink)}
.ty-totals__row--order_total small{display:none}
.ty-address{margin:0 0 16px;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.ty-address li{display:flex;align-items:flex-start;gap:12px;font-weight:600;color:var(--ink);line-height:1.4;overflow-wrap:anywhere}
.ty-address svg{flex:none;width:34px;height:34px;padding:8px;border-radius:11px;background:var(--cloud);color:var(--flash);box-sizing:border-box;margin-top:-6px}
.ty-help{margin:0;padding-top:14px;border-top:1px dashed var(--lilac);font-size:.86rem;color:rgba(46,43,56,.65)}
.ty-help a{color:var(--flash);font-weight:700}
.ty-help a:hover{text-decoration:underline}
.ty-ctas{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;padding:6px 0 10px}

@media (max-width:900px){
  .ty-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .ty{gap:14px}
  .ty-hero{padding:24px 16px 26px;border-radius:24px}
  .ty-hero__tick{width:66px;height:66px}
  .ty-pay{padding:16px 18px;gap:14px}
  .ty-pay__amount{font-size:1.45rem}
  .ty-next,.ty-card{padding:20px 18px}
  .ty-timeline{grid-template-columns:minmax(0,1fr);gap:0}
  .ty-timeline li{padding:0 0 20px 50px;min-height:36px;justify-content:center}
  .ty-timeline li:last-child{padding-bottom:0}
  .ty-timeline li::before{top:38px;bottom:0;left:17px;right:auto;width:2px;height:auto}
  .ty-timeline li.is-done::before{background:linear-gradient(180deg,var(--flash),var(--lilac))}
  .ty-ctas .btn{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){.ty-hero__tick{animation:none}}


/* ==========================================================================
   CHAI LOGO PASS - v1.17.0
   CHAI primary logo (circle mark on the i) in the header and footer, the
   plain-dot wordmark on phones, and the circle-mark pattern band above the
   footer. Source: "Chai Logomarks" canvas (Logomark 01 / 02 / 03).
   ========================================================================== */
.site-logo{ gap:0; line-height:0; }
.site-logo .chai-logo{ display:block; flex:none; transition:transform .25s ease; }
.site-logo:hover .chai-logo{ transform:rotate(-2deg); }
.site-logo .site-logo__wordmark{ display:none; }
.site-header--checkout .site-logo .site-logo__primary{ height:38px; width:auto; }
@media (max-width: 767px){
  .site-logo .site-logo__primary{ display:none; }
  .site-logo .site-logo__wordmark{ display:block; }
  .site-header--checkout .site-logo .site-logo__wordmark{ height:30px; width:auto; }
}
.footer-logo{ margin-bottom:16px; line-height:0; }
.footer-logo .chai-logo{ display:block; }
.chai-pattern-band{
  margin-top:64px;
  height:84px;
  background-color:var(--lilac);
  background-size:252px 84px;
  background-position:center top;
  background-repeat:repeat-x;
}
@media (max-width: 600px){
  .chai-pattern-band{ margin-top:40px; height:64px; background-size:192px 64px; }
}
.chai-pattern-band + .site-footer{ margin-top:0 !important; }


/* ==========================================================================
   REAL CATALOGUE PASS - v1.18.0
   Real garment colours (white needs an outline) and sold-out colour / size
   options on the product page, Quick Add popup and checkout offers.
   ========================================================================== */
.pdp-swatch__dot, .qa-swatch, .shop-color span{ box-shadow:inset 0 0 0 1px rgba(46,43,56,.16); }
.pdp-swatch.is-soldout .pdp-swatch__dot, .qa-swatch.is-soldout{ opacity:.45; background-image:linear-gradient(135deg, transparent 46%, rgba(46,43,56,.55) 47%, rgba(46,43,56,.55) 53%, transparent 54%) !important; }
.pdp-size.is-soldout .pdp-size__pill, .qa-size.is-soldout, .qa-size:disabled{ opacity:.4; text-decoration:line-through; cursor:not-allowed; }
.pdp-size.is-soldout input{ cursor:not-allowed; }
.qa-modal__field[hidden]{ display:none !important; }
.qa-modal__submit:disabled{ opacity:.55; cursor:not-allowed; }


/* ==========================================================================
   SEO COPY PASS - v1.19.0
   "About our activewear" copy under the Shop grid and the help copy under
   the Contact page, both written in wp-admin.
   ========================================================================== */
.shop-about, .contact-more{ max-width:760px; margin:56px auto 8px; padding:0 var(--gutter); color:rgba(46,43,56,.82); line-height:1.7; }
.shop-about h2, .contact-more h2{ font-family:var(--font-head); font-size:1.35rem; color:var(--ink); margin:28px 0 8px; line-height:1.25; }
.shop-about h2:first-child, .contact-more h2:first-child{ margin-top:0; }
.shop-about p, .contact-more p{ margin:0 0 12px; }
.shop-about ul, .contact-more ul{ margin:0 0 14px; padding-left:20px; list-style:disc; }
.shop-about li, .contact-more li{ margin:4px 0; }
.shop-about a, .contact-more a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--flash); text-underline-offset:3px; }
.shop-about a:hover, .contact-more a:hover{ color:var(--flash); }
@media (max-width: 600px){ .shop-about, .contact-more{ margin-top:36px; } .shop-about h2, .contact-more h2{ font-size:1.2rem; } }

/* Product description copy (v1.19.0): real bullet lists and spacing */
#pdp-description .pdp-acc__body h3{ font-family:var(--font-head); font-size:1.05rem; color:var(--ink); margin:20px 0 8px; }
#pdp-description .pdp-acc__body ul{ list-style:disc; padding-left:20px; margin:0 0 14px; }
#pdp-description .pdp-acc__body li{ margin:3px 0; }
#pdp-description .pdp-acc__body p{ margin:0 0 12px; }

/* =========================================================================
   HOVER PASS – v1.20.0
   One hover language for the whole site:
   · cards lift with a soft shadow, their photo zooms and the 2nd photo fades in
   · Flash buttons lift, glow and get a light sheen
   · outline buttons fill with Ink; Quick Add fills with Flash
   · text links draw a Flash underline from the left
   · icons, swatches and pills nudge / scale
   Mouse devices only (@media hover:hover + pointer:fine) so phones never get
   "stuck" hover states. Keyboard focus gets the same look on the main
   controls. prefers-reduced-motion switches all movement off.
   ========================================================================= */
:root{
  --hv-ease:cubic-bezier(.22,1,.36,1);
  --hv-fast:.2s;
  --hv-med:.35s;
  --hv-slow:.7s;
  --hv-shadow:0 20px 40px -16px rgba(46,43,56,.24), 0 6px 14px -8px rgba(46,43,56,.12);
  --hv-glow:0 14px 28px -10px rgba(255,62,127,.55);
  --hv-ink-glow:0 12px 24px -12px rgba(46,43,56,.55);
  --hv-sheen:linear-gradient(115deg, transparent 32%, rgba(255,255,255,.32) 48%, transparent 64%);
}

/* ---- Product photo layers (all sizes) ---- */
.shop-card__media,
.product-card__media{ overflow:hidden; }
.shop-card__media img,
.product-card__media img{ transition:transform var(--hv-slow) var(--hv-ease), opacity var(--hv-med) var(--hv-ease); }
.shop-card__media .card-hover-img,
.product-card__media .card-hover-img{
  position:absolute; inset:0; z-index:1;
  width:100% !important; height:100% !important; max-width:none;
  object-fit:cover; opacity:0; pointer-events:none;
}
/* keep badges / hearts above the hover photo */
.shop-card__heart, .wishlist-heart{ z-index:3; }

/* ---- Press feedback (all devices) ---- */
.btn:active, .pdp-atc:active, .cartp-btn:active, .qa-modal__submit:active,
.shop-card__qa:active, .shop-filters__clear:active, .shop-more:active{
  transform:translateY(0) scale(.97); transition-duration:.08s;
}

@media (hover:hover) and (pointer:fine){

  /* ---------- Product cards ---------- */
  .shop-card, .product-card, .pdp-card, .wl-card, .story-value{
    transition:transform var(--hv-med) var(--hv-ease), box-shadow var(--hv-med) var(--hv-ease), border-color var(--hv-fast) ease;
  }
  .shop-card:hover,
  body.home .product-card:hover, .product-card:hover,
  .wl-card:hover, .story-value:hover{
    transform:translateY(-6px);
    box-shadow:var(--hv-shadow);
  }
  .shop-card:hover{ border-color:var(--petal); }
  .shop-card:hover .shop-card__media img,
  .product-card:hover .product-card__media img{ transform:scale(1.06); }
  .shop-card:hover .shop-card__media .card-hover-img,
  .product-card:hover .product-card__media .card-hover-img{ opacity:1; transform:scale(1.02); }

  .shop-card__name, .product-card__title{ transition:color var(--hv-fast) ease; }
  .shop-card:hover .shop-card__name,
  .product-card:hover .product-card__title{ color:var(--flash); }

  /* Related products on the product page */
  .pdp-card:hover{ transform:translateY(-4px); box-shadow:var(--hv-shadow); }

  /* ---------- Wishlist hearts ---------- */
  .shop-card__heart, .wishlist-heart{
    transition:transform var(--hv-fast) var(--hv-ease), background var(--hv-fast) ease, color var(--hv-fast) ease, box-shadow var(--hv-fast) ease;
  }
  .shop-card__heart:hover, .wishlist-heart:hover{
    transform:scale(1.14); background:#fff; color:var(--flash);
    box-shadow:0 8px 18px -6px rgba(46,43,56,.28);
  }

  /* ---------- Flash (primary) buttons ---------- */
  .btn--primary, .pdp-atc, .qa-modal__submit, .search-overlay__form .btn{
    background-image:var(--hv-sheen); background-repeat:no-repeat;
    background-size:250% 100%; background-position:140% 0;
    transition:transform var(--hv-fast) var(--hv-ease), box-shadow var(--hv-med) var(--hv-ease), background-color var(--hv-fast) ease, background-position var(--hv-slow) var(--hv-ease);
  }
  .btn--primary:hover, .pdp-atc:not([disabled]):hover, .qa-modal__submit:not(:disabled):hover, .search-overlay__form .btn:hover,
  .btn--primary:focus-visible, .pdp-atc:focus-visible, .qa-modal__submit:focus-visible{
    transform:translateY(-2px);
    box-shadow:var(--hv-glow);
    background-image:var(--hv-sheen); background-repeat:no-repeat;
    background-size:250% 100%; background-position:-40% 0;
  }
  .cartp-btn, #place_order, .loop-page-checkout .wc-block-components-checkout-place-order-button{
    transition:transform var(--hv-fast) var(--hv-ease), box-shadow var(--hv-med) var(--hv-ease), background-color var(--hv-fast) ease;
  }
  .cartp-btn:hover{ transform:translateY(-2px); box-shadow:var(--hv-glow); }

  /* ---------- Outline buttons → Ink fill ---------- */
  .btn--outline{ transition:transform var(--hv-fast) var(--hv-ease), box-shadow var(--hv-med) var(--hv-ease), background-color var(--hv-fast) ease, color var(--hv-fast) ease, border-color var(--hv-fast) ease; }
  .btn--outline:hover, .btn--outline:focus-visible{
    background:var(--ink); border-color:var(--ink); color:#fff;
    transform:translateY(-2px); box-shadow:var(--hv-ink-glow);
  }
  .shop-filters__clear:hover, .shop-more:hover{ transform:translateY(-1px); box-shadow:var(--hv-ink-glow); }

  /* ---------- Quick Add (shop cards + Best Sellers) → Flash fill ---------- */
  .shop-card__qa, .product-card .js-quick-add{
    transition:transform var(--hv-fast) var(--hv-ease), box-shadow var(--hv-med) var(--hv-ease), background-color var(--hv-fast) ease, color var(--hv-fast) ease, border-color var(--hv-fast) ease;
  }
  .shop-card__qa:hover, .shop-card__qa:focus-visible,
  .product-card .btn--outline.js-quick-add:hover, .product-card .btn--outline.js-quick-add:focus-visible{
    background:var(--flash); border-color:var(--flash); color:#fff;
    transform:translateY(-2px); box-shadow:var(--hv-glow);
  }

  /* ---------- Text links: Flash underline drawn from the left ---------- */
  .main-nav a, .footer-col a, .section-head a, .category-back-link,
  .pdp-crumbs a, .shop-crumbs a, .shop-about a, .contact-more a,
  .pdp-sizeguide-link, .pdp-perk a, .pdp-rating a, .ty-help a, .sc-review-head a, .offer-modal__skip{
    text-decoration:none;
    background-image:linear-gradient(var(--flash), var(--flash));
    background-repeat:no-repeat; background-position:0 100%; background-size:0% 2px;
    padding-bottom:2px;
    transition:background-size var(--hv-med) var(--hv-ease), color var(--hv-fast) ease;
  }
  .main-nav a:hover, .footer-col a:hover, .section-head a:hover, .category-back-link:hover,
  .pdp-crumbs a:hover, .shop-crumbs a:hover, .shop-about a:hover, .contact-more a:hover,
  .pdp-sizeguide-link:hover, .pdp-perk a:hover, .pdp-rating a:hover, .ty-help a:hover, .sc-review-head a:hover, .offer-modal__skip:hover,
  .main-nav a:focus-visible, .footer-col a:focus-visible, .section-head a:focus-visible{
    background-size:100% 2px; color:var(--flash); text-decoration:none;
  }
  .main-nav .current-menu-item > a{ background-size:100% 2px; }

  /* ---------- Homepage category tiles ---------- */
  .category-card{ transition:transform var(--hv-med) var(--hv-ease), box-shadow var(--hv-med) var(--hv-ease), filter var(--hv-med) ease; }
  .category-card svg{ transition:transform var(--hv-med) var(--hv-ease); }
  .category-card__count{ transition:color var(--hv-fast) ease; }
  body.home .category-card:hover, .category-card:hover{
    transform:translateY(-6px); box-shadow:var(--hv-shadow); filter:saturate(1.15);
  }
  .category-card:hover svg{ transform:rotate(-8deg) scale(1.12); }
  .category-card:hover .category-card__count{ color:var(--flash); }

  /* ---------- Homepage extras ---------- */
  .trust-item svg{ transition:transform var(--hv-med) var(--hv-ease), color var(--hv-fast) ease; }
  .trust-item:hover svg{ transform:translateY(-3px) rotate(-6deg); color:var(--flash); }
  .testimonial-card{ transition:transform var(--hv-med) var(--hv-ease), background-color var(--hv-med) ease; }
  .testimonial-card:hover{ transform:translateY(-4px); background-color:#433F55; }
  .ugc-tile{ transition:transform var(--hv-med) var(--hv-ease), box-shadow var(--hv-med) var(--hv-ease); }
  .ugc-tile:hover{ transform:scale(1.03); box-shadow:var(--hv-shadow); }
  .home-wa-bubble:hover, .pdp-wa-fab:hover{ transform:scale(1.08) translateY(-2px); box-shadow:0 14px 28px -8px rgba(37,211,102,.55); }

  /* ---------- Header ---------- */
  .header-actions .header-icon-link svg{ transition:transform var(--hv-fast) var(--hv-ease); }
  .header-actions .header-icon-link:hover svg{ transform:scale(1.1); }
  .social-row a{ transition:transform var(--hv-fast) var(--hv-ease), background-color var(--hv-fast) ease, color var(--hv-fast) ease; }
  .social-row a:hover{ transform:translateY(-3px); background-color:var(--flash); color:#fff; }

  /* ---------- Swatches & size pills (never on sold-out ones) ---------- */
  .shop-color span, .pdp-swatch__dot, .qa-swatch,
  .shop-size, .shop-filter-pill, .pdp-size__pill, .qa-size{
    transition:transform var(--hv-fast) var(--hv-ease), box-shadow var(--hv-fast) ease, border-color var(--hv-fast) ease, background-color var(--hv-fast) ease, color var(--hv-fast) ease;
  }
  .shop-color:hover span,
  .pdp-swatch:not(.is-soldout):hover .pdp-swatch__dot,
  .qa-swatch:not(.is-soldout):hover{ transform:scale(1.14); }
  .shop-size:hover, .shop-filter-pill:hover,
  .pdp-size:not(.is-soldout):hover .pdp-size__pill,
  .qa-size:not(.is-soldout):not(:disabled):hover{
    transform:translateY(-2px); border-color:var(--ink); box-shadow:0 6px 12px -6px rgba(46,43,56,.35);
  }
  .shop-cat, .shop-filter-cat{ transition:color var(--hv-fast) ease, transform var(--hv-fast) var(--hv-ease); }
  .shop-cat:hover, .shop-filter-cat:hover{ transform:translateX(3px); }

  /* ---------- Product page ---------- */
  .pdp-thumb__box{ overflow:hidden; }
  .pdp-thumb__box img{ transition:transform var(--hv-med) var(--hv-ease); }
  .pdp-thumb:hover .pdp-thumb__box img{ transform:scale(1.08); }
  .pdp-acc > summary{ transition:color var(--hv-fast) ease; }
  .pdp-acc > summary:hover{ color:var(--flash); }

  /* ---------- Cart ---------- */
  .cartp-qty__btn{ transition:background-color var(--hv-fast) ease, transform var(--hv-fast) var(--hv-ease); }
  .cartp-qty__btn:hover{ transform:scale(1.08); }
}

@media (prefers-reduced-motion: reduce){
  .shop-card, .product-card, .pdp-card, .wl-card, .story-value, .category-card, .testimonial-card, .ugc-tile,
  .btn, .pdp-atc, .cartp-btn, .qa-modal__submit, .shop-card__qa, .shop-card__heart, .wishlist-heart,
  .shop-card__media img, .product-card__media img, .category-card svg, .trust-item svg, .pdp-thumb__box img{
    transition-property:color, background-color, border-color, opacity !important;
  }
  .shop-card:hover, .product-card:hover, .pdp-card:hover, .wl-card:hover, .story-value:hover, .category-card:hover,
  .testimonial-card:hover, .ugc-tile:hover, .btn:hover, .pdp-atc:hover, .cartp-btn:hover, .shop-card__qa:hover,
  .shop-card:hover .shop-card__media img, .product-card:hover .product-card__media img,
  .category-card:hover svg, .trust-item:hover svg{ transform:none !important; }
}

/* Phones / touch: never download or show the hover photo */
@media not all and (hover:hover){
  .shop-card__media .card-hover-img, .product-card__media .card-hover-img{ display:none !important; }
}

/* ==========================================================================
   PRE-LAUNCH PASS – v1.22.0
   ========================================================================== */

/* ---- 1. Photo framing: every product photo sits in a 4:5 portrait frame,
        fills it (no stretching, no letterboxing) and keeps heads in view. ---- */
.product-card__media,
.shop-card__media,
.pdp-slide,
.pdp-card__media,
.wl-card__media{
  aspect-ratio:4 / 5 !important;
  overflow:hidden;
  position:relative;
  padding:0;
}
.product-card__media > img,
.shop-card__media > img,
.pdp-slide > img,
.pdp-card__media > img,
.wl-card__media > img,
.wl-card__media img{
  position:absolute; inset:0;
  width:100% !important; height:100% !important; max-width:none;
  object-fit:cover; object-position:50% 12%;
}
.pdp-thumb__box{ aspect-ratio:4 / 5 !important; }
.pdp-thumb__box img,
.qa-modal__media img,
.cart-toast__media img,
.pdp-mini__thumb img,
.cartp-item__img img,
.sc-thumb img,
.ty-item__media img,
.offer-modal__media img,
.card-hover-img{
  object-fit:cover; object-position:50% 12%;
}
/* Small square thumbnails (cart, checkout, thank-you, toast): the product,
   not the floor — frame from the top. */
.cartp-item__img img,
.sc-thumb img,
.ty-item__media img,
.cart-toast__media img{ object-position:50% 8%; }
.qa-modal__media{ position:relative; overflow:hidden; }
.qa-modal__media img{ position:absolute; inset:0; }

/* ---- 2. Shop by Category: 6 tiles, one icon family, equal heights ---- */
.category-grid--6{ grid-template-columns:repeat(6,1fr); gap:16px; }
body.home .category-grid--6 .category-card{ padding:26px 12px 22px; gap:10px; justify-content:flex-start; min-height:0; }
.category-card .cat-icon{ color:var(--ink); opacity:1; flex:0 0 auto; }
.category-card span{ line-height:1.2; }
.category-card__count{ font-family:var(--font-body); font-weight:600; font-size:12.5px; color:rgba(46,43,56,.62); }
/* border drawn inside, so the Cloud tile is exactly as tall as the others */
body.home .category-card--cloud{ border:0 !important; box-shadow:inset 0 0 0 1.5px var(--lilac); }
.category-card--flash{ background:var(--flash); color:#fff; }
.category-card--flash .cat-icon{ color:#fff; }
.category-card--flash .category-card__count{ color:rgba(255,255,255,.85); }
body.home .category-card--flash:hover{ box-shadow:0 12px 28px rgba(255,62,127,.30); }
@media (hover:hover) and (pointer:fine){
  .category-card--flash:hover .category-card__count{ color:#fff; }
}
@media (max-width:1100px){ .category-grid--6{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px){
  body.home .category-grid--6 .category-card{ flex:0 0 118px; padding:16px 8px 14px; }
  body.home .category-grid--6 .cat-icon{ width:36px; height:36px; }
}

/* ---- 3. Hero: two real product shots from the New Drop ---- */
.hero__image--photos{
  display:grid !important; grid-template-columns:1fr 1fr; gap:10px; padding:10px;
  align-items:stretch; justify-content:stretch;
}
.hero-shot{ position:relative; display:block; overflow:hidden; border-radius:22px; min-height:0; background:#E9EAEE; }
.hero-shot img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 18%; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.hero-shot__tag{
  position:absolute; left:12px; right:12px; bottom:12px; z-index:1;
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  background:rgba(255,255,255,.92); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-radius:999px; padding:8px 14px;
  font-family:var(--font-head); font-weight:600; font-size:13px; line-height:1.2; color:var(--ink);
}
.hero-shot__tag b{ color:var(--flash); white-space:nowrap; font-weight:700; }
.hero-shot__tag .woocommerce-Price-currencySymbol{ font-size:.85em; }
.hero__image--photos .mark-watermark{ z-index:2; top:22px !important; right:22px !important; left:auto; }
.hero__image--photos .mark-watermark svg{ width:44px !important; height:44px !important; }
@media (hover:hover) and (pointer:fine){
  .hero-shot:hover img{ transform:scale(1.04); }
}
@media (prefers-reduced-motion:reduce){ .hero-shot img{ transition:none; } }
@media (max-width:900px){
  body.home .hero__image--photos{ aspect-ratio:auto !important; max-height:none !important; height:min(118vw, 460px); padding:8px; gap:8px; }
  .hero-shot{ border-radius:16px; }
  .hero-shot__tag{ left:8px; right:8px; bottom:8px; padding:6px 10px; font-size:11.5px; flex-direction:column; align-items:flex-start; gap:2px; border-radius:12px; }
  .hero__image--photos .mark-watermark{ display:none; }
}

/* ---- 4. Trust bar: 4 true promises ---- */
body.home .trust-bar{ gap:48px; }
@media (max-width:900px){ body.home .trust-bar{ gap:20px 32px; } }
@media (max-width:600px){ body.home .trust-bar{ grid-template-columns:repeat(4,1fr) !important; gap:6px; } body.home .trust-item{ font-size:10.5px; } }

/* ---- 5. Follow section: real photos ---- */
.ugc-tile--photo{ position:relative; overflow:hidden; aspect-ratio:4 / 5 !important; padding:0 !important; display:block; background:#E9EAEE; }
.ugc-tile--photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 15%; transition:transform .5s ease; }
.ugc-tile__ig{ position:absolute; right:12px; bottom:12px; width:40px; height:40px; border-radius:50%; background:rgba(46,43,56,.55); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .25s ease; }
@media (hover:hover) and (pointer:fine){
  .ugc-tile--photo:hover img{ transform:scale(1.05); }
  .ugc-tile--photo:hover .ugc-tile__ig{ opacity:1; }
}

/* ---- 6. Footer: Instagram button instead of a newsletter form that sent nothing ---- */
.footer-note{ margin:0 0 12px; font-size:.9rem; opacity:.8; }
.footer-ig-btn{ display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 20px; border-radius:999px; background:var(--flash); color:#fff !important; font-family:var(--font-head); font-weight:700; font-size:.95rem; text-decoration:none; margin-bottom:16px; transition:transform .2s ease, box-shadow .2s ease; }
@media (hover:hover) and (pointer:fine){ .footer-ig-btn:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(255,62,127,.35); } }
.social-row a svg{ stroke:#fff; }

/* ---- 7. Contact page ---- */
.info-row--link{ color:inherit; text-decoration:none; border-radius:14px; transition:background .2s ease; }
.info-row--link:hover{ background:rgba(226,220,245,.45); }
a.whatsapp-cta{ color:inherit; text-decoration:none; }
.contact-field__opt{ font-weight:500; opacity:.6; }
.contact-form__note{ margin:10px 0 0; font-size:.8rem; color:rgba(46,43,56,.6); text-align:center; }
.loop-contact-form .btn svg{ vertical-align:-3px; margin-right:6px; }

/* ---- 8. Help pages: size guide, FAQ, delivery, legal ---- */
.loop-page-help .page-body{ margin-left:auto; margin-right:auto; }
.loop-size-table{ width:100%; border-collapse:separate; border-spacing:0; font-size:14px; background:#fff; border-radius:16px; overflow:hidden; box-shadow:inset 0 0 0 1.5px var(--lilac); }
.loop-size-table th, .loop-size-table td{ padding:11px 12px; text-align:center; border-bottom:1px solid rgba(226,220,245,.9); white-space:nowrap; }
.loop-size-table thead th{ background:var(--lilac); font-family:var(--font-head); font-weight:700; font-size:13px; color:var(--ink); }
.loop-size-table tbody th{ font-family:var(--font-head); font-weight:700; color:var(--ink); }
.loop-size-table tbody tr:last-child th, .loop-size-table tbody tr:last-child td{ border-bottom:0; }
.loop-size-table caption{ caption-side:top; text-align:left; font-weight:700; padding:0 0 8px; }
.loop-size-intro{ margin:0 0 14px; font-size:.95rem; color:rgba(46,43,56,.78); }
.loop-size-tips{ margin:16px 0 8px; padding-left:18px; font-size:.9rem; line-height:1.6; color:rgba(46,43,56,.82); }
.loop-size-tips li{ margin-bottom:4px; }
.pdp-acc__body .pdp-table-note a, .pdp-sheet__body .pdp-table-note a{ color:var(--flash); font-weight:600; }
.loop-sg .pdp-table-wrap{ margin:8px 0 8px; overflow-x:auto; }
.loop-wa-btn svg{ vertical-align:-4px; margin-right:6px; }
.page-generic .page-body .loop-wa-btn{ color:#fff; }
.loop-faq{ display:flex; flex-direction:column; gap:12px; margin:8px 0 32px; }
.loop-faq__item{ background:#fff; border-radius:18px; box-shadow:inset 0 0 0 1.5px var(--lilac); padding:0 20px; }
.loop-faq__item summary{ cursor:pointer; list-style:none; padding:18px 28px 18px 0; position:relative; font-family:var(--font-head); font-weight:700; font-size:1.02rem; color:var(--ink); }
.loop-faq__item summary::-webkit-details-marker{ display:none; }
.loop-faq__item summary::after{ content:"+"; position:absolute; right:0; top:50%; transform:translateY(-50%); font-size:1.4rem; color:var(--flash); transition:transform .2s ease; }
.loop-faq__item[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.loop-faq__a{ padding:0 0 18px; }
.loop-faq__a p{ margin:0; }
.help-callout{ background:var(--sea-glass); border-radius:18px; padding:18px 20px; margin:20px 0; }
.help-callout p{ margin:0; }
.page-generic .page-body h3{ font-family:var(--font-head); font-size:1.15rem; margin:1.4em 0 .4em; }
.page-generic .page-body ol, .page-generic .page-body ul{ padding-left:20px; }
@media (max-width:600px){
  .loop-size-table th, .loop-size-table td{ padding:9px 7px; font-size:12.5px; }
  .loop-faq__item{ padding:0 16px; }
}

/* ---- 9. Size guide popup on every screen (v1.22.0) ---- */
.pdp-sheet__body .loop-size-intro,
.pdp-sheet__body .loop-size-tips{ margin-left:20px; margin-right:20px; }
@media (min-width:768px){
  .pdp-sheet-scrim{
    display:block; position:fixed; inset:0; z-index:90; background:rgba(46,43,56,.45);
    opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
  }
  .pdp-sheet-scrim.is-open{ opacity:1; visibility:visible; }
  .pdp-sheet{
    display:flex; flex-direction:column; position:fixed; left:50%; top:50%; z-index:95;
    width:min(620px, calc(100vw - 48px)); max-height:min(80vh, 720px);
    background:var(--cloud); border-radius:24px; box-shadow:0 24px 60px rgba(46,43,56,.25);
    transform:translate(-50%,-46%) scale(.98); opacity:0; visibility:hidden;
    transition:transform .25s cubic-bezier(.22,1,.36,1), opacity .2s ease, visibility .2s ease;
  }
  .pdp-sheet.is-open{ transform:translate(-50%,-50%) scale(1); opacity:1; visibility:visible; }
  .pdp-sheet__grab{ display:none; }
  .pdp-sheet__head{ flex-shrink:0; padding:20px 28px 8px; display:flex; align-items:center; justify-content:space-between; }
  .pdp-sheet__title{ font-family:var(--font-head); font-weight:700; font-size:22px; }
  .pdp-sheet__close{ width:44px; height:44px; margin-right:-10px; background:none; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; color:var(--ink); }
  .pdp-sheet__body{ flex:1 1 auto; overflow-y:auto; padding:0 8px 24px; }
  .pdp-sheet__body .pdp-table-note, .pdp-sheet__body .pdp-table-wrap{ padding:0 20px; }
  body.pdp-sheet-lock{ overflow:hidden; }
}

/* ==========================================================================
   MOTION PASS – v1.23.0
   Scroll reveals, homepage colour flow, rotating hero pairs, header state on
   scroll, scroll progress, button shine + press ripple, heart pop, category
   tiles that change colour on hover. Behaviour: js/loop-motion.js.
   Nothing is hidden unless the script runs (html.lm-js), and all of it is
   switched off for visitors who ask for reduced motion.
   ========================================================================== */

:root{ --lm-css:1; } /* tells js/loop-motion.js this stylesheet is loaded */

/* ---- Scroll progress ---- */
.lm-progress{ position:fixed; top:0; left:0; right:0; height:3px; z-index:120; pointer-events:none; background:linear-gradient(90deg,var(--flash),#FF8FB5 55%,#9C86E8); transform:scaleX(0); transform-origin:0 50%; }
body.admin-bar .lm-progress{ top:32px; }
@media (max-width:782px){ body.admin-bar .lm-progress{ top:46px; } }

/* ---- Header firms up once the page scrolls ---- */
.site-header{ transition:background-color .35s ease, box-shadow .35s ease; }
.site-header.is-scrolled{ background:rgba(248,247,251,.97); box-shadow:0 10px 28px -18px rgba(46,43,56,.38); }

/* ---- Homepage colour flow (tint set by the script per section) ---- */
body.home.lm-flow{ background-color:var(--lm-tint,var(--cloud)); transition:background-color 1s ease; }
body.home.lm-flow .site-header:not(.is-scrolled){ background:transparent; }

/* ---- Reveal on scroll ---- */
.lm-js .lm-reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--lm-delay,0ms), transform .7s cubic-bezier(.2,.7,.2,1) var(--lm-delay,0ms); }
.lm-js .lm-reveal.is-in{ opacity:1; transform:none; }

/* Section headings: a short Flash underline draws in */
.lm-js .section-head h2{ background:linear-gradient(var(--flash),var(--flash)) 0 100% / 0 3px no-repeat; padding-bottom:6px; transition:background-size .9s cubic-bezier(.2,.7,.2,1) .2s; }
.lm-js .section-head.lm-seen h2{ background-size:56px 3px; }

/* Trust icons give a small hop when they arrive */
.lm-js .trust-item.lm-seen svg{ animation:lmHop .8s cubic-bezier(.3,1.5,.5,1) var(--lm-delay,0ms) backwards; }

/* ---- Hero entrance (plain CSS, runs on first paint) ---- */
body.home .hero__content .eyebrow{ animation:lmRise .6s cubic-bezier(.2,.7,.2,1) backwards; }
body.home .hero__content h1{ animation:lmRiseSolid .7s cubic-bezier(.2,.7,.2,1) .05s backwards; }
body.home .hero__content > p{ animation:lmRise .7s cubic-bezier(.2,.7,.2,1) .15s backwards; }
body.home .hero__actions{ animation:lmRise .7s cubic-bezier(.2,.7,.2,1) .25s backwards; }
body.home .hero-shot img{ animation:lmSettle 1.4s cubic-bezier(.2,.7,.2,1) backwards; }

/* "on loop" in the headline: slow brand gradient */
.lm-hl{ background:linear-gradient(100deg,var(--flash) 0%,#7B5CD6 50%,var(--flash) 100%); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; animation:lmHue 7s ease-in-out infinite; }

/* ---- Hero: two pairs of New Drop photos, cross-fading ---- */
.hero-shot--3, .hero-shot--4{ display:none; }
.hero__image--photos.lm-rotate .hero-shot{ display:block; grid-row:1; opacity:0; transition:opacity .9s ease; }
.hero__image--photos.lm-rotate .hero-shot--1, .hero__image--photos.lm-rotate .hero-shot--3{ grid-column:1; }
.hero__image--photos.lm-rotate .hero-shot--2, .hero__image--photos.lm-rotate .hero-shot--4{ grid-column:2; transition-delay:.18s; }
.hero__image--photos.lm-rotate .hero-shot.is-on{ opacity:1; z-index:1; }
.hero__image--photos.lm-rotate .hero-shot.is-on img{ animation:lmKen 6.5s ease-out backwards; }
.hero__image--photos.lm-rotate .hero-shot:not(.is-on){ pointer-events:none; }
@media (hover:hover) and (pointer:fine){
  /* gentle depth while scrolling: the two photos drift apart a few pixels */
  .hero__image--photos .hero-shot--1, .hero__image--photos .hero-shot--3{ translate:0 calc(var(--lm-par,0px) * -1); }
  .hero__image--photos .hero-shot--2, .hero__image--photos .hero-shot--4{ translate:0 var(--lm-par,0px); }
  /* the frame behind the photos slowly shifts through the palette */
  body.home .hero__image--photos{ background-image:linear-gradient(120deg,var(--petal),var(--lilac) 35%,var(--sea-glass) 65%,var(--petal)); background-size:260% 260%; animation:lmGrad 16s ease-in-out infinite alternate; }
}

/* ---- Buttons: shine on hover, ripple on press ---- */
.btn{ position:relative; overflow:hidden; isolation:isolate; }
.btn--primary::after{ content:""; position:absolute; top:0; bottom:0; left:-70%; width:45%; z-index:-1; pointer-events:none; background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent); transform:skewX(-20deg); }
@media (hover:hover) and (pointer:fine){
  .btn--primary:hover::after{ left:130%; transition:left .75s ease; }
  .btn--outline:hover{ box-shadow:0 8px 20px -10px rgba(46,43,56,.45); }
}
.shop-card__qa{ overflow:hidden; isolation:isolate; }
.lm-ripple{ position:absolute; z-index:-1; border-radius:50%; background:currentColor; opacity:.22; transform:scale(0); pointer-events:none; animation:lmRipple .65s ease-out forwards; }

/* ---- Category tiles: colour shift + icon wiggle ---- */
.category-card:active{ transform:scale(.97); }
@media (hover:hover) and (pointer:fine){
  .category-card{ transition:transform .35s cubic-bezier(.2,.7,.2,1), background-color .35s ease, box-shadow .35s ease; }
  .category-card:hover{ box-shadow:0 14px 30px -16px rgba(46,43,56,.35); }
  .category-card--lilac:hover{ background-color:#D6CCF3; }
  .category-card--petal:hover{ background-color:#F4C8D8; }
  .category-card--sea-glass:hover{ background-color:#C4E9D9; }
  .category-card--cloud:hover{ background-color:#E3DFF3; }
  .category-card--flash:hover{ background-color:#F2266C; }
  .category-card:hover .cat-icon{ animation:lmWiggle .6s ease; }
  .ugc-tile--photo img{ transition:transform .6s cubic-bezier(.2,.7,.2,1); }
  .ugc-tile--photo:hover img{ transform:scale(1.06); }
}

/* ---- Hearts, tab bar, WhatsApp bubble ---- */
.lm-pop svg{ animation:lmPop .45s cubic-bezier(.3,1.6,.5,1); }
.home-tabbar__item{ transition:transform .12s ease; }
.home-tabbar__item:active{ transform:scale(.92); }
.home-wa-bubble::after{ content:""; position:absolute; inset:0; border-radius:50%; pointer-events:none; animation:lmPulse 3.4s ease-out 2.5s infinite; }

/* ---- Keyframes ---- */
@keyframes lmRise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
@keyframes lmRiseSolid{ from{ transform:translateY(14px); } to{ transform:none; } }
@keyframes lmSettle{ from{ transform:scale(1.07); } to{ transform:scale(1); } }
@keyframes lmKen{ from{ transform:scale(1.08); } to{ transform:scale(1); } }
@keyframes lmHue{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }
@keyframes lmGrad{ from{ background-position:0% 30%; } to{ background-position:100% 70%; } }
@keyframes lmRipple{ to{ transform:scale(1); opacity:0; } }
@keyframes lmWiggle{ 0%,100%{ transform:rotate(0); } 30%{ transform:rotate(-9deg) scale(1.07); } 60%{ transform:rotate(7deg) scale(1.07); } }
@keyframes lmPop{ 0%{ transform:scale(1); } 40%{ transform:scale(1.35); } 100%{ transform:scale(1); } }
@keyframes lmHop{ 0%{ transform:translateY(8px) scale(.8); opacity:0; } 60%{ transform:translateY(-3px) scale(1.08); opacity:1; } 100%{ transform:none; } }
@keyframes lmPulse{ 0%{ box-shadow:0 0 0 0 rgba(37,211,102,.45); } 70%,100%{ box-shadow:0 0 0 16px rgba(37,211,102,0); } }

/* ---- Reduced motion: everything above is switched off ---- */
@media (prefers-reduced-motion:reduce){
  .lm-js .lm-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  body.home .hero__content .eyebrow, body.home .hero__content h1, body.home .hero__content > p, body.home .hero__actions,
  body.home .hero-shot img, .lm-hl, .lm-pop svg, .lm-js .trust-item.lm-seen svg, .home-wa-bubble::after, body.home .hero__image--photos{ animation:none !important; }
  .lm-progress, .btn--primary::after, .lm-ripple{ display:none !important; }
  .hero__image--photos .hero-shot{ translate:none !important; }
}
