/*
Theme Name: BotyLab
Theme URI: https://tienda.botylab.cl
Description: Tema hijo de Storefront para la tienda BotyLab: cabecera, pie, tarjetas y colores de la landing, y Boty.
Author: BotyLab
Template: storefront
Version: 0.2.2
Text Domain: botylab
*/

/* Colores y tipografías del brief (iguales a la landing) */
:root {
  --azul: #2d5bff;
  --azul-oscuro: #1f45d8;
  --amarillo: #ffc93c;
  --amarillo-oscuro: #f2a92a;
  --coral: #ff6b5b;
  --menta: #2ec4a6;
  --tinta: #1b1f3b;
  --tinta-suave: #4a4f6e;
  --nube: #f4f6ff;
  --borde: #dfe4fa;
  --blanco: #fff;

  --f-titulo: 'Fredoka', system-ui, sans-serif;
  --f-texto: 'Nunito', system-ui, sans-serif;
  --f-pixel: 'Pixelify Sans', 'Courier New', monospace;

  --radio: 20px;
  --sombra: 0 10px 30px rgba(27, 31, 59, 0.08);
  --barra-alto: 68px;
}

/* ---------- Base ---------- */
body.botylab { font-family: var(--f-texto); font-size: 1.0625rem; line-height: 1.6; color: var(--tinta); background: var(--blanco); }
body.botylab button, body.botylab input, body.botylab select, body.botylab textarea { font-family: var(--f-texto); color: var(--tinta); }
.botylab h1, .botylab h2, .botylab h3, .botylab h4, .botylab .product_title, .botylab .woocommerce-loop-product__title {
  font-family: var(--f-titulo); font-weight: 700; color: var(--tinta); line-height: 1.12; letter-spacing: 0;
}
.botylab h1 { font-size: clamp(2rem, 5vw, 3rem); }
.botylab h2 { font-size: clamp(1.6rem, 3.5vw, 2.2rem); }
.botylab a { color: var(--azul); }
.botylab a:hover, .botylab a:focus { color: var(--tinta); }
.botylab :focus-visible { outline: 3px solid var(--azul); outline-offset: 3px; border-radius: 6px; }
.botylab .col-full { max-width: 1160px; padding: 0 16px; }
@media (min-width: 768px) { .botylab .col-full { padding: 0 32px; } }
.botylab .site-content { padding-top: 32px; }
.botylab .hentry .entry-header { border: 0; padding-bottom: 0; margin-bottom: 16px; }
.botylab .hentry { margin-bottom: 48px; }

/* Ancho completo, sin barra lateral */
.botylab.storefront-full-width-content .content-area { width: 100%; float: none; margin: 0; }
.botylab #secondary { display: none; }

/* ---------- Cabecera (como la landing) ---------- */
.botylab .site-header {
  position: sticky; top: 0; z-index: 30;
  padding: 0; margin: 0; border-bottom: 1px solid var(--borde);
  background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(8px);
}
.admin-bar.botylab .site-header { top: 32px; }
.barra__fila { display: flex; align-items: center; gap: 24px; height: var(--barra-alto); max-width: 1160px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .barra__fila { padding: 0 32px; } }
.botylab .logo {
  display: inline-flex; align-items: center;
  font-family: var(--f-titulo); font-size: 1.75rem; font-weight: 700; color: var(--azul); text-decoration: none; line-height: 1;
}
.botylab .logo:hover { color: var(--azul-oscuro); }
.logo__o { width: 0.82em; height: auto; margin: 0 0.02em 0.04em; image-rendering: pixelated; display: inline-block; }
.botylab .logo--claro, .botylab .logo--claro:hover { color: var(--blanco); }
.barra__nav { display: none; gap: 24px; margin-left: auto; }
.barra__nav a { color: var(--tinta); font-weight: 700; text-decoration: none; }
.barra__nav a:hover { color: var(--azul); }
.barra__carro {
  display: inline-flex; align-items: center; gap: 8px; margin-left: auto; min-height: 44px; padding: 6px 16px;
  font-family: var(--f-titulo); font-weight: 600; color: var(--tinta) !important; text-decoration: none;
  background: var(--amarillo); border-radius: 999px; box-shadow: 0 3px 0 var(--amarillo-oscuro);
}
.barra__carro:hover { background: #ffd25e; }
.barra__cantidad {
  min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px;
  font-size: 0.85rem; line-height: 24px; text-align: center; color: var(--blanco); background: var(--tinta);
}
.barra__carro-texto { display: none; }
.barra__menu { position: relative; }
.barra__menu summary { display: grid; place-items: center; width: 44px; height: 44px; list-style: none; cursor: pointer; border-radius: 12px; }
.barra__menu summary::-webkit-details-marker { display: none; }
.barra__menu[open] summary { background: var(--nube); }
.barra__menu nav {
  position: absolute; right: 0; top: 52px; display: grid; min-width: 200px; padding: 8px;
  background: var(--blanco); border: 1px solid var(--borde); border-radius: 16px; box-shadow: var(--sombra);
}
.barra__menu nav a { padding: 12px 14px; color: var(--tinta); font-weight: 700; text-decoration: none; border-radius: 10px; }
.barra__menu nav a:hover { background: var(--nube); color: var(--azul); }
@media (min-width: 900px) {
  .barra__nav { display: flex; }
  .barra__carro { margin-left: 8px; }
  .barra__carro-texto { display: inline; }
  .barra__menu { display: none; }
}

/* ---------- Componentes de la landing ---------- */
.insignia {
  display: inline-block; padding: 2px 10px;
  font-family: var(--f-pixel); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--azul); background: #e3e9ff; box-shadow: 0 -2px 0 #e3e9ff, 0 2px 0 #e3e9ff;
}
.etiqueta {
  display: inline-block; padding: 4px 14px;
  font-family: var(--f-pixel); font-size: 0.9rem; color: var(--blanco); background: var(--coral); text-transform: uppercase; letter-spacing: 0.04em;
}
.confianza { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 0; margin: 0; list-style: none; font-weight: 700; font-size: 0.98rem; }
.confianza li { display: flex; align-items: center; gap: 8px; margin: 0; }
.confianza li::before { content: ''; width: 10px; height: 10px; background: var(--menta); flex: none; }
.kits__nota { margin: 32px auto 0; max-width: 640px; text-align: center; font-weight: 700; }

/* ---------- Botones ---------- */
.botylab .button, .botylab button.button, .botylab input[type='submit'], .botylab .added_to_cart {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 12px 26px;
  font-family: var(--f-titulo); font-size: 1.1rem; font-weight: 600; text-decoration: none;
  border-radius: 999px; border: 2px solid var(--azul); color: var(--azul); background: var(--blanco);
}
.botylab .button:hover { background: var(--nube); color: var(--azul-oscuro); }
.botylab .single_add_to_cart_button, .botylab .add_to_cart_button, .botylab .product_type_simple, .botylab .checkout-button,
.botylab #place_order, .botylab .botylab-avisame button {
  background: var(--amarillo) !important; color: var(--tinta) !important; border-color: transparent !important;
  box-shadow: 0 4px 0 var(--amarillo-oscuro);
}
.botylab .single_add_to_cart_button:hover, .botylab .add_to_cart_button:hover, .botylab .checkout-button:hover, .botylab #place_order:hover {
  background: #ffd25e !important;
}
.botylab .added_to_cart { border: 0; padding: 8px 0; min-height: 0; background: none; }
@media (prefers-reduced-motion: no-preference) {
  .botylab .button { transition: transform 0.15s ease, background-color 0.15s ease; }
  .botylab .button:hover { transform: translateY(-2px); }
}

/* Precios */
.botylab .price, .botylab .price .amount { font-family: var(--f-titulo); font-weight: 700; color: var(--tinta) !important; }

/* ---------- Catálogo ---------- */
.catalogo__titulo { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 8px 0 40px; }
.catalogo__titulo h1 { margin: 0 0 16px; }
.boty-slot--catalogo { margin-right: 16px; }

.botylab ul.products { display: grid; gap: 24px; margin: 0; align-items: stretch; }
.botylab ul.products::before, .botylab ul.products::after { display: none; }
@media (min-width: 768px) { .botylab ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); } .botylab ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); } }
.botylab ul.products li.product {
  position: relative; display: flex; flex-direction: column; width: auto !important; float: none !important; margin: 0 !important;
  padding: 0 0 24px; text-align: left; background: var(--blanco); border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden;
}
.botylab ul.products li.product.kit--destacado { border: 3px solid var(--azul); }
.botylab ul.products li.product > a:first-of-type, .botylab ul.products li.product .woocommerce-LoopProduct-link {
  display: flex; flex-direction: column; gap: 6px; color: inherit; text-decoration: none; flex: 1;
}
.botylab ul.products li.product img { width: 100%; margin: 0 0 16px; border-radius: 0; aspect-ratio: 4 / 3; object-fit: cover; }
.botylab ul.products li.product .insignia, .botylab ul.products li.product .woocommerce-loop-product__title,
.botylab ul.products li.product .price, .botylab ul.products li.product .kit__promesa { margin-left: 24px; margin-right: 24px; }
.botylab ul.products li.product .insignia { align-self: flex-start; }
.botylab ul.products li.product .woocommerce-loop-product__title { font-size: 1.6rem; padding: 0; margin-top: 6px; margin-bottom: 0; }
.botylab ul.products li.product .price { font-size: 1.8rem; margin-bottom: 4px; }
.botylab ul.products li.product .kit__promesa { color: var(--tinta-suave); font-size: 1rem; }
.botylab ul.products li.product .kit__promesa p { margin: 0 0 12px; }
.botylab ul.products li.product .button { display: flex; margin: auto 24px 0; width: auto; }
.botylab ul.products li.product .added_to_cart { margin: 8px 24px 0; justify-content: center; }
.botylab ul.products li.product .etiqueta { position: absolute; top: 16px; right: 16px; z-index: 2; }

/* ---------- Ficha del kit ---------- */
.botylab.single-product div.product { display: grid; gap: 32px; }
.botylab.single-product div.product::before, .botylab.single-product div.product::after { display: none; } /* clearfix de Storefront: ocuparía una celda */
@media (min-width: 900px) { .botylab.single-product div.product { grid-template-columns: 1fr 1fr; gap: 48px; } }
.botylab.single-product div.product .woocommerce-product-gallery, .botylab.single-product div.product .summary { width: auto; float: none; margin: 0; }
.botylab.single-product div.product .woocommerce-product-gallery { border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); align-self: start; }
.botylab.single-product div.product .woocommerce-product-gallery__image img { width: 100%; height: auto; }
.botylab.single-product div.product .ficha__contenido, .botylab.single-product div.product .related { grid-column: 1 / -1; }
.botylab .summary .product_title { font-size: clamp(2rem, 5vw, 2.8rem); margin: 12px 0 8px; }
.botylab .summary .price { font-size: 2rem; margin: 0 0 12px; }
.botylab .summary .woocommerce-product-details__short-description { font-size: 1.15rem; color: var(--tinta-suave); }
.botylab .summary form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 16px 0 20px; padding: 0; border: 0; }
.botylab .summary form.cart .quantity .qty { width: 72px; min-height: 48px; border-radius: 12px; border: 2px solid var(--borde); text-align: center; }
.botylab .summary .single_add_to_cart_button { flex: 1; min-width: 220px; font-size: 1.25rem; min-height: 56px; }
.botylab .summary .stock { font-weight: 700; color: #0d6b59; }
.botylab-preventa { padding: 12px 16px; background: #fff6dc; border-left: 6px solid var(--amarillo); border-radius: 12px; }
.confianza--ficha { display: grid; gap: 8px; margin: 8px 0 16px; }
.boty-slot--ficha { margin: 8px 0 0 auto; }
.ficha__contenido { max-width: 760px; margin: 16px auto 0; padding: 32px 0 0; border-top: 1px solid var(--borde); }
.ficha__contenido h2 { margin-top: 0; }
.ficha__contenido h3 { margin: 32px 0 12px; font-size: 1.4rem; }
.ficha__contenido ol { counter-reset: mision; list-style: none; margin-left: 0; }
.ficha__contenido ol li { counter-increment: mision; position: relative; padding: 6px 0 6px 52px; }
.ficha__contenido ol li::before {
  content: counter(mision); position: absolute; left: 0; top: 4px; width: 36px; height: 30px;
  font-family: var(--f-pixel); text-align: center; line-height: 30px; color: var(--blanco); background: var(--azul);
}
.ficha__contenido details { margin-top: 32px; padding: 16px 20px; background: var(--nube); border-radius: 16px; }
.ficha__contenido summary { font-family: var(--f-titulo); font-weight: 600; cursor: pointer; }
.botylab .related > h2 { text-align: center; margin: 48px 0 24px; }

/* "Avísame" en kits sin stock */
.botylab-avisame { display: grid; gap: 8px; padding: 20px; background: var(--nube); border-radius: 16px; }
.botylab-avisame input[type='email'] { min-height: 48px; padding: 10px 14px; border: 2px solid var(--borde); border-radius: 12px; }
.botylab-avisame__trampa { position: absolute; left: -9999px; }

/* ---------- Carro y pago ---------- */
.botylab .woocommerce-cart-form, .botylab .cart-collaterals .cart_totals, .botylab #order_review, .botylab .woocommerce-checkout .col2-set {
  background: var(--blanco);
}
.botylab table.shop_table { border: 1px solid var(--borde); border-radius: 16px; border-collapse: separate; overflow: hidden; }
.botylab table.shop_table th, .botylab table.shop_table td { padding: 14px 16px; background: var(--blanco); }
.botylab table.shop_table thead th { background: var(--nube); font-family: var(--f-titulo); }
.botylab .cart-collaterals .cart_totals, .botylab #order_review { padding: 24px; background: var(--nube); border-radius: var(--radio); }
.botylab .cart-collaterals .cart_totals table.shop_table, .botylab #order_review table.shop_table { background: var(--blanco); }
.botylab .checkout-button, .botylab #place_order { width: 100%; min-height: 56px; font-size: 1.25rem; }
.boty-slot--carro { margin: 0 0 16px auto; }
.botylab .woocommerce-checkout h3 { font-size: 1.4rem; margin-top: 0; }
.botylab form .form-row label { font-weight: 700; }
.botylab form .form-row input.input-text, .botylab form .form-row select, .botylab form .form-row textarea,
.botylab .select2-container .select2-selection--single {
  min-height: 48px; padding: 10px 14px; border: 2px solid var(--borde); border-radius: 12px; background: var(--blanco); box-shadow: none;
}
.botylab .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; padding-left: 0; }
.botylab .select2-container .select2-selection--single .select2-selection__arrow { top: 10px; right: 10px; }
.botylab form .form-row input.input-text:focus, .botylab form .form-row select:focus { border-color: var(--azul); outline: 0; }
.pago__confianza { margin: 12px 0 0; font-size: 0.9rem; color: var(--tinta-suave); text-align: center; }
.botylab .woocommerce-info, .botylab .woocommerce-message, .botylab .woocommerce-error {
  border-radius: 12px; background: var(--nube); color: var(--tinta); border-left: 6px solid var(--azul);
}
.botylab .woocommerce-info::before, .botylab .woocommerce-message::before { color: var(--azul); }
.botylab .woocommerce-message .button { margin-left: 12px; }

/* ---------- Pie (como la landing) ---------- */
.botylab .site-footer { padding: 56px 0 24px; background: var(--tinta); color: #d5d9ef; }
.botylab .site-footer a { color: var(--blanco); }
.pie__grilla { display: grid; gap: 32px; }
@media (min-width: 768px) { .pie__grilla { grid-template-columns: 1.4fr 1fr 1fr; } }
.pie__lema { margin-top: 12px; }
.pie__enlaces, .pie__contacto { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.pie__legal { margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.15); font-size: 0.9rem; }

/* ---------- Boty: los lugares reservan su espacio. En celular no ocupan lugar (Boty vive abajo a la derecha). ---------- */
.boty-slot { width: 128px; height: 128px; flex: none; }
@media (max-width: 767px) {
  .boty-slot { display: none; }
  .botylab .site-footer { padding-bottom: 120px; } /* que Boty no tape el pie */
}
