/*
Theme Name:   BARF Canine
Theme URI:    https://barfcanine.com
Description:  Tema hijo de Kadence para BARF Canine — Comida natural para perros. La identidad (logo, Quicksand, verde/naranja/crema) es un activo bloqueado: no modificar los tokens sin validar contra el vector maestro.
Author:       BARF Canine
Template:     kadence
Version:      1.0.0
Text Domain:  barf-canine
*/

/* ---------------------------------------------------------------
   TOKENS DE MARCA
   Valores de identidad aprobados. Antes de impresión masiva hay que
   validarlos contra el archivo vectorial maestro (ver contexto §10).
   --------------------------------------------------------------- */
:root {
  /* Aprobados en el manual de marca */
  --bc-verde:        #1B4332;
  --bc-naranja:      #FF8A00;
  --bc-crema:        #F2EFE6;
  --bc-negro:        #000000;

  /* Derivados para pantalla — NO son colores de marca, son tonos de
     interfaz calculados a partir del verde bosque. Ajustables. */
  --bc-verde-hondo:  #0D1F17;  /* fondo de header y hero */
  --bc-verde-claro:  #2C6A4F;  /* hover, estados activos */
  --bc-naranja-hover:#E67A00;
  --bc-crema-hondo:  #E6E2D6;  /* bordes y separadores sobre crema */
  --bc-texto:        #1A1A18;
  --bc-texto-suave:  #5B5F58;
  --bc-blanco:       #FFFFFF;

  /* Alturas mínimas táctiles (contexto §13) */
  --bc-boton-alto:   52px;
}

/* ---------------------------------------------------------------
   BOTONES
   El naranja es exclusivamente el color de acción. No usarlo para
   texto decorativo ni para fondos amplios.
   --------------------------------------------------------------- */
.wp-block-button__link,
.button,
button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  font-family: Quicksand, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 600;
  letter-spacing: .01em;
  border-radius: 6px;
  min-height: var(--bc-boton-alto);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color .18s ease, color .18s ease;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.bc-cta-primaria .wp-block-button__link {
  background-color: var(--bc-naranja);
  color: var(--bc-negro);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.bc-cta-primaria .wp-block-button__link:hover {
  background-color: var(--bc-naranja-hover);
  color: var(--bc-negro);
}

.bc-cta-secundaria .wp-block-button__link {
  background-color: transparent;
  color: var(--bc-verde);
  box-shadow: inset 0 0 0 2px var(--bc-verde);
}
.bc-cta-secundaria .wp-block-button__link:hover {
  background-color: var(--bc-verde);
  color: var(--bc-crema);
}

/* ---------------------------------------------------------------
   SECCIONES OSCURAS (header, hero, bloque de suscripción, footer)
   --------------------------------------------------------------- */
.bc-oscuro {
  background-color: var(--bc-verde-hondo);
  color: var(--bc-crema);
}
.bc-oscuro h1, .bc-oscuro h2, .bc-oscuro h3 { color: var(--bc-crema); }
.bc-oscuro a:not(.wp-block-button__link) { color: var(--bc-naranja); }

/* ---------------------------------------------------------------
   FOCO VISIBLE — accesibilidad, no quitar
   --------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 3px solid var(--bc-naranja);
  outline-offset: 2px;
}

/* ---------------------------------------------------------------
   MOBILE (contexto §13) — mobile-first, no desktop reducido
   --------------------------------------------------------------- */
@media (max-width: 767px) {
  body { font-size: 17px; }

  /* Una acción principal por sección: los botones ocupan el ancho */
  .bc-cta-primaria .wp-block-button__link,
  .bc-cta-secundaria .wp-block-button__link,
  .woocommerce div.product form.cart .button { width: 100%; }

  /* Carrusel horizontal de recetas: 1–1.2 tarjetas visibles */
  .bc-scroller {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
    scrollbar-width: none;
  }
  .bc-scroller::-webkit-scrollbar { display: none; }
  .bc-scroller > * {
    flex: 0 0 82%;
    scroll-snap-align: start;
  }

  /* Espacio para la barra fija de compra */
  body.bc-con-cta-fija { padding-bottom: 76px; }
}

/* CTA fija inferior en móvil — "COMPRAR BARF" (contexto §13) */
.bc-cta-fija {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 999;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: var(--bc-verde-hondo);
  display: none;
}
.bc-cta-fija a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--bc-boton-alto);
  background: var(--bc-naranja);
  color: var(--bc-negro);
  font-weight: 700;
  border-radius: 6px;
  text-decoration: none;
}
@media (max-width: 767px) { .bc-cta-fija { display: block; } }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------------------------------------------------------------
   VERIFICADOR DE COBERTURA  [barf_cobertura]
   Lo sirve el plugin barf-canine-entregas.
   --------------------------------------------------------------- */
.bc-cobertura { max-width: 460px; }
.bc-cobertura > label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: inherit;
}
.bc-cobertura__fila { display: flex; gap: 8px; }
.bc-cobertura__fila input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: var(--bc-boton-alto);
  padding: 0 14px;
  border: 2px solid var(--bc-crema-hondo);
  border-radius: 6px;
  font-family: inherit;
  font-size: 16px; /* 16px evita el zoom automático en iOS */
  background: var(--bc-blanco);
  color: var(--bc-texto);
}
.bc-cobertura__fila input:focus { border-color: var(--bc-verde); }
.bc-cobertura__fila button {
  flex: 0 0 auto;
  min-height: var(--bc-boton-alto);
  padding: 0 22px;
  border: 0;
  border-radius: 6px;
  background: var(--bc-verde);
  color: var(--bc-crema);
  font-family: inherit;
  font-weight: 600;
  cursor: pointer;
}
.bc-cobertura__fila button:hover { background: var(--bc-verde-claro); }

.bc-cobertura__resp:empty { display: none; }
.bc-cobertura__resp {
  margin: 10px 0 0;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 15px;
  line-height: 1.45;
}
.bc-cobertura__resp.bc-ok    { background: rgba(27,67,50,.10);  color: var(--bc-verde); }
.bc-cobertura__resp.bc-no    { background: rgba(255,138,0,.12); color: #8A4B00; }
.bc-cobertura__resp.bc-aviso { background: var(--bc-crema-hondo); color: var(--bc-texto-suave); }

/* Sobre fondo oscuro el verde no contrasta: se invierte */
.bc-oscuro .bc-cobertura__resp.bc-ok { background: rgba(242,239,230,.12); color: var(--bc-crema); }
.bc-oscuro .bc-cobertura__fila input { border-color: rgba(242,239,230,.25); }

/* Precio por kilo junto al precio de la bolsa */
.bc-por-kg { font-size: .85em; color: var(--bc-texto-suave); font-weight: 500; }

/* Aviso de "te faltan X para envío gratis" en el carrito */
.bc-envio-aviso{
  background:var(--bc-crema-hondo);
  font-size:14px;
  padding:10px 14px !important;
  border-radius:5px;
  color:var(--bc-texto);
}
.bc-envio-aviso.bc-envio-ok{
  background:rgba(27,67,50,.10);
  color:var(--bc-verde);
  font-weight:600;
}
