/*
 * NanaLuxe – Boutique & Tendances
 * Koulè yo (--sky, --navy, elatriye) enjekte pa PHP a (paj Réglages).
 * Direction: minimalist / maison de luxe — liy fen, kare, anpil espas blan,
 * tipografi disipline, aksan koulè itilize avèk mezi.
 * Tout klas yo gen prefiks "nanaluxe-" pou yo pa antre an konfli ak tèm WordPress la.
 */

:root{ --nlx-radius: 1px; }

.nanaluxe-container,
#nanaluxe-shop,
#nanaluxe-trending,
#nanaluxe-product-overlay,
#nanaluxe-cart-overlay{
  font-family:'Montserrat', sans-serif;
  color: var(--navy);
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  box-sizing:border-box;
}
#nanaluxe-shop *,
#nanaluxe-trending *,
#nanaluxe-product-overlay *,
#nanaluxe-cart-overlay *{ box-sizing:border-box; }
#nanaluxe-shop h1,#nanaluxe-shop h2,#nanaluxe-shop h3,
#nanaluxe-trending h1,#nanaluxe-trending h2,#nanaluxe-trending h3,
#nanaluxe-product-overlay h1,#nanaluxe-product-overlay h2,#nanaluxe-product-overlay h3,
#nanaluxe-cart-overlay h1,#nanaluxe-cart-overlay h2,#nanaluxe-cart-overlay h3{
  font-family:'Montserrat', sans-serif; font-weight:500; letter-spacing:0;
}
#nanaluxe-shop a, #nanaluxe-trending a,
#nanaluxe-product-overlay a, #nanaluxe-cart-overlay a{ color:inherit; text-decoration:none; }
#nanaluxe-shop img, #nanaluxe-trending img,
#nanaluxe-product-overlay img, #nanaluxe-cart-overlay img{ max-width:100%; display:block; }
#nanaluxe-shop button, #nanaluxe-trending button,
#nanaluxe-product-overlay button, #nanaluxe-cart-overlay button{
  font-family:inherit; cursor:pointer; border:none; background:none;
  box-shadow:none; border-radius:0; -webkit-appearance:none; appearance:none;
}

.nanaluxe-container{ max-width:1180px; margin:0 auto; padding:0 32px; }
.nanaluxe-eyebrow{
  font-size:0.7rem; letter-spacing:0.26em; text-transform:uppercase;
  color:var(--sky); font-weight:500; display:block; margin-bottom:10px;
}

/* ---------- Collection (Boutique) ---------- */
.nanaluxe-collection{background:var(--white); padding:48px 0 100px;}
.nanaluxe-search-bar{
  max-width:420px; margin:0 auto 36px; position:relative;
  display:flex; align-items:center; gap:10px;
  border:none; border-bottom:1px solid var(--line); padding:10px 2px;
  background:none; transition:border-color .25s ease;
}
.nanaluxe-search-bar:focus-within{ border-bottom-color:var(--navy); }
.nanaluxe-search-bar svg{width:16px; height:16px; stroke:#8592a0; flex:0 0 auto;}
.nanaluxe-search-bar input{
  border:none; background:none; outline:none; width:100%;
  font-family:'Montserrat',sans-serif; font-weight:300; font-size:16px; color:var(--navy);
  -webkit-appearance:none; appearance:none; touch-action:manipulation;
}
.nanaluxe-search-bar input::placeholder{color:#a3aebb;}

.nanaluxe-filters{
  display:flex; justify-content:center; gap:0; flex-wrap:wrap; margin-bottom:56px;
}
.nanaluxe-filter-btn{
  padding:11px 20px; border:none; border-bottom:1px solid transparent;
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:#8592a0;
  transition:.2s ease; flex:0 0 auto; white-space:nowrap; background:none;
}
.nanaluxe-filter-btn.active, .nanaluxe-filter-btn:hover{ color:var(--navy); border-bottom-color:var(--navy); }

/* Lè gen twòp kategori pou yo antre sou yon sèl liy (menm sou gran ekran/laptop),
   fè yo defile orizontalman olye yo kwape/pase liy oswa depase kad la. */
@media (max-width: 900px){
  .nanaluxe-filters{
    flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; overflow-y:hidden;
    -webkit-overflow-scrolling:touch; scrollbar-width:thin;
    padding-bottom:10px; margin-left:-32px; margin-right:-32px; padding-left:32px; padding-right:32px;
  }
}

.nanaluxe-no-results{
  display:none; text-align:center; padding:60px 20px; color:#8592a0;
  font-family:'Montserrat',sans-serif; font-weight:300; font-size:1rem; letter-spacing:0.02em;
}
.nanaluxe-no-results.show{display:block;}

/* ---------- Trending (Accueil) ---------- */
.nanaluxe-trending{background:var(--white); padding:70px 0 80px;}
.nanaluxe-trending-head{
  display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap;
  gap:20px; margin-bottom:44px;
}
.nanaluxe-trending-head h2{font-size:clamp(1.7rem,3vw,2.3rem); font-weight:500;}
.nanaluxe-trending-head p{color:#5a6a79; font-size:0.92rem; margin-top:8px; max-width:420px; font-weight:300;}
.nanaluxe-btn-outline{
  display:inline-block; padding:14px 26px; border:1px solid var(--navy); color:var(--navy);
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; border-radius:var(--nlx-radius);
  transition:.25s ease; white-space:nowrap;
}
.nanaluxe-btn-outline:hover{background:var(--navy); color:var(--white);}

/* ---------- Grille de produits ---------- */
.nanaluxe-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:40px 30px; }
.nanaluxe-card{
  position:relative; border:none; box-shadow:none; border-radius:0; overflow:visible;
  background:none; cursor:pointer;
}
.nanaluxe-card-visual{
  aspect-ratio:3/4; position:relative; overflow:hidden; background:var(--sky-pale);
  border-bottom:1px solid var(--line);
}
.nanaluxe-card-visual img{
  width:100%; height:100%; object-fit:contain; object-position:center;
  transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.nanaluxe-card:hover .nanaluxe-card-visual img{ transform:scale(1.045); }
.nanaluxe-visual-badges{
  position:absolute; top:0; left:0; z-index:2;
  display:flex; align-items:stretch; gap:0;
}
.nanaluxe-card-tag{
  background:var(--white);
  font-size:0.62rem; font-weight:500; letter-spacing:0.12em; text-transform:uppercase;
  padding:7px 12px; color:var(--navy); display:flex; align-items:center;
}
.nanaluxe-discount-pill{
  background:var(--pink);
  color:var(--white); font-size:0.64rem; font-weight:600; letter-spacing:0.04em;
  padding:7px 11px; display:flex; align-items:center;
}
.nanaluxe-outofstock{
  position:absolute; left:0; right:0; bottom:0; background:rgba(255,255,255,0.92);
  color:var(--navy); font-size:0.66rem; font-weight:500; letter-spacing:0.14em;
  text-transform:uppercase; padding:10px; z-index:2; text-align:center;
  border-top:1px solid var(--line);
}
.nanaluxe-card-body{padding:18px 16px 20px;}
.nanaluxe-card-body h3{font-size:1.02rem; font-weight:500; letter-spacing:0.01em; margin-bottom:2px; line-height:1.35;}
.nanaluxe-price-row{display:flex; align-items:baseline; gap:8px; margin-bottom:14px; min-height:1.2em;}
.nanaluxe-price{font-family:'Montserrat',sans-serif; font-weight:600; font-size:1.05rem; color:var(--navy); letter-spacing:0.02em;}
.nanaluxe-price.old{font-weight:300; color:#a3aebb; text-decoration:line-through; font-size:0.8rem;}
.nanaluxe-price-htg{font-size:0.76rem; font-weight:400; color:#8592a0;}
.nanaluxe-card-foot{display:flex; align-items:center; justify-content:space-between;}
.nanaluxe-card-cta{
  font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase;
  border-bottom:1px solid #614fed; padding-bottom:2px; position:relative; z-index:2;
  color:#614fed; transition:.2s ease;
}
.nanaluxe-card-cta:hover{color:#4c3bd1; border-color:#4c3bd1;}
.nanaluxe-card-cta.in-cart{color:#4c3bd1; border-color:#4c3bd1;}

/* ---------- Panye ---------- */
.nanaluxe-cart-fab{
  position:fixed; bottom:26px; right:26px; z-index:200;
  display:none; align-items:center; gap:12px;
  background:#614fed; color:var(--white);
  padding:15px 22px; border-radius:var(--nlx-radius);
  box-shadow:none; transition:.25s ease;
}
.nanaluxe-cart-fab.show{display:flex;}
.nanaluxe-cart-fab:hover{background:#4c3bd1;}
.nanaluxe-cart-fab svg{width:17px; height:17px; stroke:currentColor;}
.nanaluxe-cart-count{
  background:rgba(255,255,255,0.22); color:var(--white); font-size:0.7rem; font-weight:600;
  min-width:20px; height:20px; padding:0 5px; border-radius:20px; display:flex; align-items:center; justify-content:center;
}
.nanaluxe-cart-fab .nanaluxe-label{font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;}

.nanaluxe-cart-items{margin:6px 0 10px; max-height:300px; overflow-y:auto;}
.nanaluxe-cart-item{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 0; border-bottom:1px solid var(--line);
}
.nanaluxe-cart-item:first-child{padding-top:0;}
.nanaluxe-cart-item-info{font-family:'Montserrat',sans-serif; font-weight:400; font-size:0.92rem; line-height:1.4;}
.nanaluxe-cart-item-info .nanaluxe-cart-item-price{display:block; font-family:'Montserrat',sans-serif; font-size:0.76rem; font-weight:500; color:var(--navy); margin-top:3px;}
.nanaluxe-cart-item-actions{display:flex; align-items:center; gap:12px; flex:0 0 auto;}
.nanaluxe-cart-item-actions .nanaluxe-qty-stepper button{width:28px; height:28px; font-size:0.95rem; background:none; box-shadow:none; border:none;}
.nanaluxe-cart-item-actions .nanaluxe-qty-stepper input{width:30px; font-size:13px;}
.nanaluxe-cart-item-actions button.nanaluxe-remove{
  font-family:'Montserrat',sans-serif; font-size:0.64rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--navy); border:none; border-bottom:1px solid var(--navy);
  background:none; box-shadow:none; padding:0;
}
.nanaluxe-cart-item-actions button.nanaluxe-remove:hover{color:#c0392b; border-color:#c0392b;}
.nanaluxe-cart-empty{color:#8592a0; font-size:0.88rem; font-weight:300; padding:10px 0 20px;}
.nanaluxe-cart-total{
  display:flex; align-items:flex-end; justify-content:space-between;
  padding:18px 0; margin-bottom:10px; border-top:1px solid var(--navy);
  font-family:'Montserrat',sans-serif;
}
.nanaluxe-cart-total .nanaluxe-label{font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; font-family:'Montserrat',sans-serif; color:#5a6a79;}
.nanaluxe-amounts{display:flex; align-items:baseline; gap:8px;}
.nanaluxe-amount{font-size:1.35rem; font-weight:500; color:var(--navy);}
.nanaluxe-amount-htg{font-size:0.82rem; font-weight:400; color:#8592a0; font-family:'Montserrat',sans-serif;}

/* Coordonnées + zone livrezon */
.nanaluxe-checkout-fields{margin:22px 0 24px; padding-top:20px; border-top:1px solid var(--line);}
.nanaluxe-returning-customer{margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--line);}
.nanaluxe-checkbox-row{display:flex; align-items:flex-start; gap:10px; cursor:pointer;}
.nanaluxe-checkbox-row input[type="checkbox"]{
  width:18px; height:18px; margin-top:1px; flex:0 0 auto; accent-color:#614fed; cursor:pointer;
}
.nanaluxe-checkbox-row span{
  font-family:'Montserrat',sans-serif; font-weight:400; font-size:0.86rem; color:var(--navy); line-height:1.4;
}
.nanaluxe-returning-summary{
  display:none; margin:10px 0 0 28px; font-family:'Montserrat',sans-serif; font-weight:500;
  font-size:0.8rem; color:#614fed;
}
.nanaluxe-returning-summary.show{display:block;}
.nanaluxe-checkout-fields .nanaluxe-field{margin-bottom:16px;}
.nanaluxe-checkout-fields .nanaluxe-field input,
.nanaluxe-checkout-fields .nanaluxe-field select{
  width:100%; padding:11px 2px; border:none; border-bottom:1px solid var(--line); border-radius:0;
  font-family:'Montserrat',sans-serif; font-weight:300; font-size:16px; background:none; color:var(--navy);
  transition:border-color .2s ease;
}
.nanaluxe-checkout-fields .nanaluxe-field input:focus,
.nanaluxe-checkout-fields .nanaluxe-field select:focus{outline:none; border-bottom-color:var(--navy);}
.nanaluxe-checkout-fields .nanaluxe-field label{display:block; font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:#8592a0; margin-bottom:8px;}
.nanaluxe-checkout-fields .nanaluxe-field.error input{border-bottom-color:#c0392b;}
.nanaluxe-field-error{display:none; color:#c0392b; font-size:0.74rem; margin-top:6px;}
.nanaluxe-checkout-fields .nanaluxe-field.error .nanaluxe-field-error{display:block;}
.nanaluxe-field.error select{border-bottom-color:#c0392b;}

/* Toast */
.nanaluxe-toast{
  position:fixed; left:50%; bottom:30px; transform:translate(-50%, 20px);
  background:var(--navy); color:var(--white); padding:14px 24px; border-radius:var(--nlx-radius);
  font-size:0.8rem; font-weight:300; letter-spacing:0.03em; z-index:1200;
  opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease;
  display:flex; align-items:center; gap:10px; box-shadow:0 10px 24px rgba(28,43,58,0.26);
}
.nanaluxe-toast.show{opacity:1; transform:translate(-50%, 0);}
.nanaluxe-toast svg{width:16px; height:16px; stroke:var(--sky-light); flex:0 0 auto;}

/* Boutons */
.nanaluxe-btn-primary{
  display:inline-block; padding:16px 34px; background:#614fed; color:var(--white);
  font-size:0.74rem; font-weight:500; letter-spacing:0.16em; text-transform:uppercase;
  border-radius:var(--nlx-radius); border:1px solid #614fed; transition:.25s ease; text-align:center; width:100%;
}
.nanaluxe-btn-primary:hover{background:var(--white); color:#614fed;}

#nanaluxe-product-overlay, #nanaluxe-cart-overlay{
  position:fixed !important; inset:0; background:rgba(20,24,29,0.45); backdrop-filter:blur(2px);
  display:none; align-items:center; justify-content:center; z-index:2147483000; padding:20px;
}
#nanaluxe-product-overlay.open, #nanaluxe-cart-overlay.open{display:flex;}
#nanaluxe-product-overlay .nanaluxe-modal,
#nanaluxe-cart-overlay .nanaluxe-modal,
#nanaluxe-product-overlay .nanaluxe-product-modal{
  background:var(--white); width:100%; max-width:430px; border-radius:0;
  padding:42px 36px 36px; position:relative;
  max-height:90vh !important; height:auto !important;
  overflow-y:scroll !important; overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important; overscroll-behavior:contain; touch-action:pan-y;
}
.nanaluxe-modal-close{
  position:absolute; top:20px; right:22px; font-size:1.2rem; font-weight:400; color:var(--navy);
  width:26px; height:26px; display:flex; align-items:center; justify-content:center; transition:.2s ease;
}
.nanaluxe-modal-close:hover{ color:#614fed; }
.nanaluxe-modal h3{font-size:1.4rem; font-weight:500; margin-bottom:6px;}
.nanaluxe-modal p.nanaluxe-sub{font-size:0.84rem; font-weight:300; color:#5a6a79; margin-bottom:30px;}
.nanaluxe-field{margin-bottom:20px;}
.nanaluxe-field-row{display:flex; gap:16px;}
.nanaluxe-field-row .nanaluxe-field{flex:1; min-width:0;}
.nanaluxe-field label{display:block; font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:#8592a0; margin-bottom:8px;}
.nanaluxe-field select{
  width:100%; padding:11px 2px; border:none; border-bottom:1px solid var(--line); border-radius:0;
  font-family:'Montserrat',sans-serif; font-weight:300; font-size:16px; background:none;
  transition:border-color .2s ease;
}
.nanaluxe-field select:focus{outline:none; border-bottom-color:var(--navy);}
.nanaluxe-qty-stepper{
  display:flex; align-items:center; border:1px solid var(--line); border-radius:0;
  width:100%; background:none;
}
.nanaluxe-qty-stepper button{
  flex:1; height:44px; font-size:1.05rem; font-weight:300; color:var(--navy);
  display:flex; align-items:center; justify-content:center; transition:.2s ease;
  background:none; box-shadow:none; border:none;
}
.nanaluxe-qty-stepper button:hover{background:none; color:#614fed;}
.nanaluxe-qty-stepper input{
  width:60px; flex:0 0 60px; text-align:center; border:none; border-left:1px solid var(--line); border-right:1px solid var(--line);
  background:none; outline:none;
  font-family:'Montserrat',sans-serif; font-size:16px; color:var(--navy); font-weight:500;
  -moz-appearance:textfield; -webkit-appearance:none; appearance:none;
}
.nanaluxe-qty-stepper input::-webkit-outer-spin-button,
.nanaluxe-qty-stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.nanaluxe-cart-item-actions .nanaluxe-qty-stepper{ width:auto; }
.nanaluxe-cart-item-actions .nanaluxe-qty-stepper button{ flex:0 0 auto; }
.nanaluxe-cart-item-actions .nanaluxe-qty-stepper input{ flex:0 0 30px; }

/* Popup detay pwodwi */
#nanaluxe-product-overlay .nanaluxe-product-modal{ max-width:500px; padding:0; overflow-x:hidden !important; overflow-y:scroll !important; -webkit-overflow-scrolling:touch !important; overscroll-behavior:contain; touch-action:pan-y; }
.nanaluxe-product-modal .nanaluxe-modal-close{
  background:var(--white); border-radius:50%; width:30px; height:30px;
  display:flex; align-items:center; justify-content:center; z-index:5;
}
.nanaluxe-modal-sticky-bar{
  position:sticky; top:0; z-index:15; height:0; overflow:visible;
}
.nanaluxe-modal-sticky-bar .nanaluxe-visual-badges{ position:absolute; top:0; left:0; }
.nanaluxe-modal-sticky-bar .nanaluxe-modal-close{ position:absolute; top:20px; right:22px; }
.nanaluxe-product-visual-big{ aspect-ratio:3/4; position:relative; overflow:hidden; background:var(--sky-pale); }
.nanaluxe-product-visual-big img{ width:100%; height:100%; object-fit:cover; }
.nanaluxe-product-modal-body{padding:30px 32px 34px;}
.nanaluxe-product-modal-body h3{font-size:1.45rem; font-weight:500; margin-bottom:10px;}
.nanaluxe-product-modal-body .nanaluxe-price-row{display:flex; align-items:baseline; gap:10px; margin-bottom:26px;}
.nanaluxe-product-modal-body .nanaluxe-price{font-family:'Montserrat',sans-serif; font-weight:500; font-size:1.1rem; color:var(--navy);}
.nanaluxe-product-modal-body .nanaluxe-price.old{font-weight:300; color:#a3aebb; text-decoration:line-through; font-size:0.92rem;}
.nanaluxe-product-modal-body .nanaluxe-price-htg{font-size:0.82rem; font-weight:400; color:#8592a0;}

#nanaluxe-shop :focus-visible, #nanaluxe-trending :focus-visible{ outline:1px solid var(--navy); outline-offset:2px; }

/* Popup detay pwodwi — vèsyon desktop: imaj on bò, enfo yo on lòt bò */
@media (min-width: 881px){
  #nanaluxe-product-overlay .nanaluxe-product-modal{
    max-width:860px; display:flex; align-items:flex-start;
  }
  .nanaluxe-modal-sticky-bar{ position:absolute; top:0; left:0; width:100%; }
  .nanaluxe-product-visual-big{ flex:0 0 46%; max-width:46%; }
  .nanaluxe-product-modal-body{ flex:1 1 54%; min-width:0; padding:60px 40px 40px; }
}

@media (max-width: 880px){
  .nanaluxe-grid{grid-template-columns:repeat(2, minmax(0,1fr)); gap:30px 18px;}
  .nanaluxe-container{padding:0 18px;}
}
@media (max-width:520px){
  .nanaluxe-grid{grid-template-columns:repeat(2, minmax(0,1fr)); gap:24px 12px;}
  .nanaluxe-container{padding:0 10px;}
  .nanaluxe-card-body{padding:14px 12px 16px;}
  .nanaluxe-card-body h3{font-size:0.92rem;}
  .nanaluxe-price{font-size:0.84rem;}
  .nanaluxe-price-htg{font-size:0.72rem;}
  .nanaluxe-card-cta{font-size:0.64rem;}
  .nanaluxe-search-bar{margin-left:0; margin-right:0;}
  .nanaluxe-trending-head{flex-direction:column; align-items:flex-start;}
}
@media (max-width:360px){
  .nanaluxe-container{padding:0 8px;}
  .nanaluxe-grid{gap:20px 10px;}
}
@media (prefers-reduced-motion: reduce){
  #nanaluxe-shop *, #nanaluxe-trending *{transition-duration:0.01ms !important;}
}
