/* =====================================================================
   SKINCARE ORDINARY — Minimalista Blanco/Negro — Mobile-first
   ===================================================================== */
:root{
  --black:#0a0a0a; --white:#ffffff; --gray-100:#f5f5f5; --gray-200:#e8e8e8;
  --gray-400:#b5b5b5; --gray-600:#777777; --gray-800:#222222;
  --star:#0a0a0a; --danger:#c0392b; --success:#1e6b3a;
  --radius:2px; --maxw:1280px;
  --ff: 'Helvetica Neue', Arial, -apple-system, BlinkMacSystemFont, sans-serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--ff);color:var(--black);background:var(--white);line-height:1.5;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 16px;}
.skip-link{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:10px;z-index:999;}
.skip-link:focus{left:0;}

/* ---------- Header ---------- */
.announce-bar{background:var(--black);color:var(--white);text-align:center;font-size:12px;letter-spacing:.04em;padding:8px 10px;}
.site-header{position:sticky;top:0;background:var(--white);z-index:100;border-bottom:1px solid var(--gray-200);}
.header-inner{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:12px 16px;position:relative;}
.menu-toggle{order:1;background:none;border:0;display:flex;flex-direction:column;gap:4px;padding:6px;flex-shrink:0;}
.menu-toggle span{width:22px;height:2px;background:var(--black);display:block;}
.logo{order:2;font-weight:700;letter-spacing:.04em;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;}
.main-nav{display:none;}
.main-nav a{display:block;padding:12px 0;font-size:14px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gray-200);}
.nav-wholesale{font-weight:700;}
.search-form{order:4;display:flex;align-items:center;flex:1 1 100%;width:100%;min-width:0;border:1px solid var(--gray-200);border-radius:20px;padding:6px 12px;margin:0;max-width:none;}
.search-form input{border:0;outline:0;flex:1;min-width:0;font-size:13px;background:transparent;}
.search-form button{background:none;border:0;color:var(--black);display:flex;flex-shrink:0;}
.cart-link{order:3;margin-left:auto;position:relative;display:flex;flex-shrink:0;}
.cart-count{position:absolute;top:-8px;right:-8px;background:var(--black);color:#fff;font-size:10px;min-width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 3px;}

@media(min-width:960px){
  .header-inner{flex-wrap:nowrap;}
  .menu-toggle{display:none;}
  .logo{order:0;font-size:18px;max-width:none;overflow:visible;}
  .main-nav{order:1;display:flex;gap:22px;position:static;background:none;padding:0;box-shadow:none;}
  .main-nav a{border:0;padding:4px 0;font-size:13px;position:relative;}
  .main-nav a:hover{opacity:.6;}
  .search-form{order:2;flex:0 1 280px;width:auto;max-width:280px;margin-left:auto;}
  .cart-link{order:3;margin-left:0;}
}
.main-nav.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:#fff;padding:8px 16px 16px;box-shadow:0 8px 16px rgba(0,0,0,.06);z-index:50;}

/* ---------- Hero ---------- */
.hero{background:var(--black);color:var(--white);padding:56px 16px;text-align:center;}
.hero h1{font-size:clamp(24px,5vw,44px);margin:0 0 12px;font-weight:800;letter-spacing:-.01em;}
.hero p{color:var(--gray-400);max-width:560px;margin:0 auto 24px;font-size:15px;}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:26px;}
.badge{border:1px solid var(--gray-600);color:var(--gray-400);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:6px 12px;border-radius:20px;}
.btn{display:inline-block;padding:13px 30px;border-radius:30px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;border:2px solid var(--black);transition:.2s;}
.btn-primary{background:var(--black);color:#fff;}
.btn-primary:hover{background:#fff;color:#000;}
.btn-outline{background:transparent;color:#fff;border-color:#fff;}
.btn-outline:hover{background:#fff;color:#000;}

/* ---------- Section titles ---------- */
.section{padding:44px 16px;}
.section-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:8px;}
.section-title h2{font-size:22px;margin:0;letter-spacing:-.01em;}
.section-title a{font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--black);}

/* ---------- Product grid & cards ---------- */
.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media(min-width:640px){.product-grid{grid-template-columns:repeat(3,1fr);gap:20px;}}
@media(min-width:1024px){.product-grid{grid-template-columns:repeat(4,1fr);}}

.product-card{border:1px solid var(--gray-200);border-radius:var(--radius);display:flex;flex-direction:column;position:relative;transition:.2s;}
.product-card:hover{border-color:var(--black);}
.product-card .badge-sale{position:absolute;top:8px;left:8px;background:var(--black);color:#fff;font-size:10px;padding:3px 8px;letter-spacing:.05em;z-index:2;}
.product-card .badge-featured{position:absolute;top:8px;right:8px;background:#fff;border:1px solid var(--black);font-size:9px;padding:3px 7px;letter-spacing:.05em;z-index:2;}
.product-card__img{aspect-ratio:1/1;overflow:hidden;background:var(--gray-100);}
.product-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.product-card:hover .product-card__img img{transform:scale(1.04);}
.product-card__body{padding:12px;display:flex;flex-direction:column;gap:5px;flex:1;}
.product-card__brand{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-600);}
.product-card__name{font-size:13.5px;font-weight:600;line-height:1.3;min-height:34px;}
.product-card__rating{display:flex;align-items:center;gap:5px;font-size:11px;}
.product-card__price{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:6px;}
.price-now{font-weight:700;font-size:15px;}
.price-before{text-decoration:line-through;color:var(--gray-600);font-size:12px;}
.product-card__cta{margin:10px 12px 12px;padding:10px;border:1.5px solid var(--black);background:#fff;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;text-align:center;}
.product-card__cta:hover{background:var(--black);color:#fff;}

.stars{color:var(--star);letter-spacing:1px;font-size:13px;white-space:nowrap;}
.star-empty{color:var(--gray-400);}
.rating-count{color:var(--gray-600);font-size:11px;}

/* ---------- Filters / sidebar ---------- */
.catalog-layout{display:grid;grid-template-columns:1fr;gap:24px;}
@media(min-width:900px){.catalog-layout{grid-template-columns:220px 1fr;}}
.filters{border:1px solid var(--gray-200);padding:16px;border-radius:var(--radius);}
.filters h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;}
.filter-group{margin-bottom:20px;}
.filter-group label{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0;}
.filter-group input[type=range]{width:100%;}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:8px;}
.toolbar select{border:1px solid var(--gray-200);padding:8px 10px;font-size:12px;}
.result-count{font-size:12px;color:var(--gray-600);}

/* ---------- Product detail ---------- */
.product-detail,
.product-detail * {
  box-sizing: border-box;
}

.product-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 28px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
  padding: 24px 16px;
}

@media (min-width: 860px) {
  .product-detail {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    padding: 40px 16px;
  }
}

.product-detail > *,
.gallery,
.pd-info {
  min-width: 0;
  max-width: 100%;
}

.gallery {
  width: 100%;
  overflow: hidden;
}

.gallery-main {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--gray-100);
  border-radius: var(--radius);
}

.gallery-main img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-thumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  margin-top: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 4px;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.gallery-thumbs img {
  display: block;
  width: 64px;
  min-width: 64px;
  height: 64px;
  object-fit: cover;
  flex: 0 0 64px;
  border: 1px solid var(--gray-200);
  cursor: pointer;
  border-radius: var(--radius);
}

.gallery-thumbs img.active-thumb {
  border-color: var(--black);
  border-width: 2px;
}

.pd-info {
  width: 100%;
  overflow-wrap: anywhere;
}

.pd-brand {
  max-width: 100%;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--gray-600);
}

.pd-title {
  max-width: 100%;
  margin: 6px 0 10px;
  font-size: clamp(21px, 5vw, 26px);
  line-height: 1.2;
  font-weight: 800;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.pd-rating {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
  margin-bottom: 14px;
}

.pd-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 100%;
  margin-bottom: 16px;
}

.pd-price .price-now {
  font-size: clamp(22px, 5vw, 26px);
}

.pd-shortdesc {
  max-width: 100%;
  margin-bottom: 18px;
  color: var(--gray-800);
  font-size: 14.5px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.pd-trust {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
  padding: 14px;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  font-size: 13px;
}

.pd-trust span {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.qty-selector {
  display: flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 14px;
  border: 1px solid var(--black);
}

.qty-selector button {
  width: 38px;
  min-width: 38px;
  height: 38px;
  border: 0;
  background: #fff;
  font-size: 16px;
}

.qty-selector input {
  width: 44px;
  min-width: 44px;
  height: 38px;
  text-align: center;
  border: 0;
  border-right: 1px solid var(--gray-200);
  border-left: 1px solid var(--gray-200);
}

.btn-add-cart {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 16px;
  background: var(--black);
  color: #fff;
  border: 0;
  border-radius: 30px;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.btn-add-cart:hover {
  opacity: .85;
}

.pd-tabs {
  display: flex;
  width: 100%;
  max-width: 100%;
  gap: 0;
  margin-top: 34px;
  overflow-x: auto;
  overflow-y: hidden;
  border-bottom: 1px solid var(--gray-200);
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.pd-tabs button {
  flex: 0 0 auto;
  padding: 12px 18px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}

.pd-tabs button.active {
  border-bottom-color: var(--black);
  font-weight: 700;
}

.pd-tab-panel {
  width: 100%;
  max-width: 100%;
  padding: 20px 4px;
  font-size: 14px;
  line-height: 1.7;
  overflow-wrap: anywhere;
  display: none;
}

.pd-tab-panel.active {
  display: block;
}

/* Ajustes adicionales para pantallas pequeñas */
@media (max-width: 480px) {
  .product-detail {
    gap: 20px;
    padding: 18px 12px;
  }

  .gallery-main {
    aspect-ratio: 1 / 1;
    border-radius: max(8px, var(--radius));
  }

  .gallery-thumbs img {
    width: 56px;
    min-width: 56px;
    height: 56px;
    flex-basis: 56px;
  }

  .pd-tabs button {
    padding: 11px 14px;
    font-size: 12px;
  }
}

/* ---------- Reviews ---------- */
.reviews-summary{display:flex;gap:24px;align-items:center;flex-wrap:wrap;padding:20px;border:1px solid var(--gray-200);margin-bottom:20px;}
.reviews-score{font-size:40px;font-weight:800;}
.review-item{border-bottom:1px solid var(--gray-200);padding:16px 0;}
.review-item.featured{background:var(--gray-100);padding:16px;border:1px solid var(--gray-200);margin-bottom:14px;}
.review-item .review-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;flex-wrap:wrap;gap:4px;}
.review-name{font-weight:700;font-size:13px;}
.review-date{font-size:11px;color:var(--gray-600);}
.review-form{border:1px solid var(--gray-200);padding:18px;margin-top:20px;border-radius:var(--radius);}
.review-form input,.review-form textarea{width:100%;padding:10px;border:1px solid var(--gray-200);margin-bottom:10px;font-family:inherit;font-size:13px;}
.star-input{display:flex;gap:4px;margin-bottom:12px;font-size:26px;cursor:pointer;}
.star-input span{color:var(--gray-400);}
.star-input span.active{color:var(--black);}

/* ---------- Cart / checkout ---------- */
.cart-table{width:100%;border-collapse:collapse;}
.cart-table td{padding:12px 6px;border-bottom:1px solid var(--gray-200);vertical-align:middle;font-size:13px;}
.cart-row-img{width:60px;height:60px;object-fit:cover;border-radius:var(--radius);}
.cart-summary{border:1px solid var(--black);padding:20px;margin-top:20px;}
.cart-summary .row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;}
.cart-summary .row.total{font-weight:800;font-size:18px;border-top:1px solid var(--gray-200);margin-top:8px;padding-top:12px;}
.checkout-form label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin:12px 0 4px;font-weight:700;}
.checkout-form input,.checkout-form select,.checkout-form textarea{width:100%;padding:12px;border:1px solid var(--gray-200);font-size:14px;font-family:inherit;}
.payment-option{border:1px solid var(--gray-200);padding:14px;display:flex;gap:10px;align-items:flex-start;margin-top:10px;}

/* ---------- Wholesale page ---------- */
.wholesale-hero{background:var(--gray-100);padding:40px 16px;text-align:center;}
.wholesale-perks{display:grid;grid-template-columns:1fr;gap:16px;margin:30px 0;}
@media(min-width:768px){.wholesale-perks{grid-template-columns:repeat(3,1fr);}}
.perk{border:1px solid var(--gray-200);padding:20px;text-align:center;}
.perk h3{font-size:24px;margin:0 0 6px;}

/* ---------- Misc ---------- */
.empty-state{text-align:center;padding:60px 16px;color:var(--gray-600);}
.footer-grid{display:grid;grid-template-columns:1fr;gap:28px;padding:44px 16px 24px;}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;}}
.site-footer{background:var(--black);color:var(--gray-400);margin-top:40px;}
.site-footer h3{color:#fff;letter-spacing:.06em;}
.site-footer h4{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;}
.site-footer ul li{margin-bottom:8px;font-size:13px;}
.site-footer a:hover{color:#fff;}
.footer-bottom{border-top:1px solid #222;padding:16px;text-align:center;font-size:11.5px;}
.breadcrumbs{font-size:12px;color:var(--gray-600);padding:14px 16px 0;max-width:var(--maxw);margin:0 auto;}
.breadcrumbs a:hover{text-decoration:underline;}

/* Lazy-load blur-up */
img[loading="lazy"]{background:var(--gray-100);}