
/*
#nombre  <- sirve para llamar un id
.nombre  <- sirve para llamar una clase

*/
/* reset de margin */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
/* Botón flotante de WhatsApp, visible en todas las páginas. */
.whatsapp-flotante{
    position: fixed;
    right: 20px;
    bottom: 20px;

    width: 58px;
    height: 58px;

    background-color: #25D366;
    border-radius: 50%;
    
    display: flex;
    justify-content: center;
    align-items: center;

    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.25);
    z-index: 1000;
    
    transition: transform 0.2s ease;
}

.whatsapp-flotante img{
    width: 32px;
    height: 32px;
}

.whatsapp-flotante:hover{
    transform: scale(1.1);
}

/* Buscador: campo de texto y botón para limpiar la búsqueda. */
.buscador {
    padding: 35px 20px;
    text-align: center;
    background-color: #f5f5f5;
}

.buscador h2 {
    margin-bottom: 10px;
}

.buscador p {
    margin-bottom: 15px;
}

.buscador-contenedor {
    display: flex;
    gap: 10px;
    max-width: 650px;
    margin: 0 auto;
}

#busqueda-productos {
    flex: 1;
    min-width: 0;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 16px;
}

#limpiar-busqueda {
    padding: 12px 18px;
    border: none;
    border-radius: 8px;
    background-color: #333;
    color: white;
    cursor: pointer;
}

/* Base visual de las tarjetas creadas dinámicamente desde Supabase. */

.tarjeta-producto {
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 20px;
  background-color: white;
  color: #222;
}

.tarjeta-producto h3 {
  margin-bottom: 12px;
}

.tarjeta-producto p {
  margin-bottom: 8px;
}

/* Botón de consulta por WhatsApp dentro de cada tarjeta. */
.boton-whatsapp {
  display: inline-block;
  background-color: #25D366;
  color: white;
  text-decoration: none;
  padding: 12px 16px;
  border-radius: 8px;
  margin-top: 12px;
  font-weight: bold;
  text-align: center;
}

.boton-whatsapp:hover {
  background-color: #128C7E;
}
/* Imagen de cada producto del catálogo. */
.imagen-producto {
  width: 100%;
  height: 220px;
  object-fit: contain;
  display: block;
  margin-bottom: 15px;
}

/* Precio de cada producto del catálogo. */
.tarjeta-producto .precio-producto {
    font-size: 1.25rem;
    font-weight: 700;
    color: #145a32;
    margin-top: 12px;
}

/* Colores y presentación compartidos por todas las páginas. */

:root {
    --verde-oscuro: #123d2a;
    --verde: #17633c;
    --verde-claro: #e8f3ed;
    --arena: #f7f5ef;
    --texto: #1c2922;
    --texto-suave: #59655e;
    --borde: #dfe7e1;
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--texto);
    background: #fff;
}

/* Encabezado compartido: usa el mismo verde oscuro del pie de página. */
.encabezado-principal {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 82px;
    padding: 10px clamp(20px, 5vw, 72px);
    background: var(--verde-oscuro);
    border-bottom: 1px solid rgba(255, 255, 255, .22);
    box-shadow: 0 5px 24px rgba(18, 61, 42, 0.22);
    text-align: left;
}

.encabezado-principal .marca-empresa {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}

.encabezado-principal .logo {
    width: min(220px, 42vw);
    max-height: 62px;
    object-fit: contain;
    margin: 0;
}

.navegacion-principal {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px 24px;
}

.navegacion-principal a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    color: #fff;
    font-size: 1.3rem;
    font-weight: 650;
    text-decoration: none;
    text-underline-offset: 5px;
}

.navegacion-principal a:hover,
.navegacion-principal a:focus-visible {
    color: #b9e6c9;
    text-decoration: underline;
}

.navegacion-principal a:focus-visible,
.sobre-nosotros a:focus-visible {
    outline: 3px solid #d09524;
    outline-offset: 4px;
}

/* Sección de presentación. */
.sobre-nosotros {
    padding: clamp(44px, 7vw, 92px) clamp(20px, 5vw, 72px) 46px;
    background: linear-gradient(120deg, var(--arena), #fff 68%);
}

.sobre-nosotros-contenido {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(330px, 0.95fr);
    align-items: center;
    gap: clamp(35px, 7vw, 90px);
    max-width: 1250px;
    margin: 0 auto;
}

.sobre-nosotros-texto {
    max-width: 670px;
}

.etiqueta-seccion {
    margin-bottom: 12px;
    color: var(--verde);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.sobre-nosotros h1 {
    max-width: 680px;
    margin-bottom: 18px;
    color: var(--verde-oscuro);
    font-size: clamp(2rem, 4vw, 4.1rem);
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.sobre-nosotros p {
    max-width: 640px;
    color: var(--texto-suave);
    font-size: 1.05rem;
    line-height: 1.7;
}

.sobre-nosotros .sobre-nosotros-resumen {
    color: var(--texto);
    font-size: clamp(1.08rem, 2vw, 1.3rem);
}

.sobre-nosotros-acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.boton-principal,
.boton-secundario {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 19px;
    border-radius: 8px;
    font-weight: 750;
    text-decoration: none;
}

.boton-principal {
    background: var(--verde);
    color: #fff;
}

.boton-principal:hover {
    background: var(--verde-oscuro);
}

.boton-secundario {
    border: 1px solid var(--verde);
    color: var(--verde);
}

.boton-secundario:hover {
    background: var(--verde-claro);
}

.sobre-nosotros-imagen {
    position: relative;
    min-height: 380px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 34px;
    border-radius: 28px;
    background: radial-gradient(circle at 50% 45%, #fff 0 22%, transparent 23%),
                linear-gradient(145deg, #d9eee1, #b2d9c2);
    overflow: hidden;
}

.sobre-nosotros-imagen::before,
.sobre-nosotros-imagen::after {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.28);
    content: "";
}

.sobre-nosotros-imagen::before { width: 250px; height: 250px; top: -100px; right: -70px; }
.sobre-nosotros-imagen::after { width: 180px; height: 180px; bottom: -80px; left: -50px; }

.sobre-nosotros-imagen img {
    position: relative;
    z-index: 1;
    width: min(100%, 420px);
    height: 300px;
    object-fit: contain;
    filter: drop-shadow(0 18px 18px rgba(18, 61, 42, 0.19));
}

.sobre-nosotros-sello {
    position: absolute;
    right: 20px;
    bottom: 20px;
    z-index: 2;
    display: grid;
    gap: 3px;
    padding: 12px 15px;
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.88);
    color: var(--verde-oscuro);
    box-shadow: 0 7px 18px rgba(18, 61, 42, 0.12);
}

.sobre-nosotros-sello span {
    color: var(--texto-suave);
    font-size: 0.85rem;
}

.beneficios-empresa {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    max-width: 1250px;
    margin: 45px auto 0;
}

.beneficios-empresa article {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.76);
}

.beneficio-icono {
    display: inline-grid;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--verde-claro);
    color: var(--verde);
    font-weight: 800;
}

.beneficios-empresa article div {
    display: grid;
    gap: 2px;
}

.beneficios-empresa span:not(.beneficio-icono) {
    color: var(--texto-suave);
    font-size: 0.9rem;
}

/* Evita que el encabezado cubra el destino de los enlaces internos. */
[id] {
    scroll-margin-top: 100px;
}

@media (max-width: 820px) {
    .encabezado-principal {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
        padding-block: 12px;
    }

    .navegacion-principal {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: nowrap;
        gap: 4px 18px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .sobre-nosotros-contenido {
        grid-template-columns: 1fr;
    }

    .sobre-nosotros-imagen {
        min-height: 300px;
    }

    .beneficios-empresa {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .encabezado-principal .logo {
        width: 185px;
    }

    .navegacion-principal a {
        white-space: nowrap;
        font-size: 0.9rem;
    }
}
/* Accesibilidad general y datos de contacto. */
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #17633c; outline-offset: 4px; }
.solo-lectores { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.saltar-contenido { position: fixed; top: -100px; left: 16px; z-index: 2000; padding: 14px; background: white; color: #123d2a; }
.saltar-contenido:focus { top: 12px; }
@media (max-width: 820px) { [id] { scroll-margin-top: 150px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Footer informativo: estructura por columnas para facilitar la navegación y el contacto. */
.footer {
    background: #123d2a;
    color: #eef7f1;
    padding: 48px 24px 18px;
    text-align: left;
}

.footer-inner {
    width: min(1280px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(220px, 1.35fr) repeat(3, minmax(170px, 1fr));
    gap: 36px;
}

.footer-col { min-width: 0; }
.footer-logo { display: inline-block; margin-bottom: 16px; }
.footer-logo img { display: block; width: 180px; max-width: 180px; height: auto; }
.footer-col p, .footer-col li { color: #d8e9df; font-size: .93rem; line-height: 1.65; }
.footer-marca > p { max-width: 280px; }
.footer-ruc { margin-top: 18px; }
.footer-col h2 { color: #fff; font-size: 1rem; margin: 0 0 14px; letter-spacing: .02em; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li + li { margin-top: 8px; }
.footer a { color: #fff; text-underline-offset: 3px; }
.footer a:hover { color: #b9e6c9; }

.footer-bottom {
    width: min(1280px, 100%);
    margin: 36px auto 0;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .22);
    color: #c9ded1;
    font-size: .86rem;
    line-height: 1.55;
}
.footer-bottom > p { margin-bottom: 14px; }
.footer-bottom-row { display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.footer-social { display: flex; gap: 10px; align-items: center; }
.footer-social a { display: inline-flex; border-radius: 50%; }
.footer-social img { width: 30px; height: 30px; object-fit: contain; }

@media (max-width: 900px) {
    .footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
}
@media (max-width: 600px) {
    .footer { padding: 38px 20px 18px; }
    .footer-inner { grid-template-columns: 1fr; gap: 26px; }
    .footer-bottom-row { align-items: flex-start; flex-direction: column; }
}

