/* =========================================================
   ACS Inserta · Campaña de Cestas de Navidad 2026
   Sistema de diseño — maqueta estática de validación
   ========================================================= */

:root{
  /* Paleta corporativa (extraída técnicamente del archivo de logotipo,
     pendiente de validación definitiva por ACS Inserta — ver /legal.html) */
  --c-verde:        #098672;
  --c-verde-oscuro: #055a4e;
  --c-verde-suave:  #e5f3f0;
  --c-rojo:         #b3121d;
  --c-rojo-oscuro:  #8c0e17;
  --c-rojo-suave:   #fbe9ea;
  --c-coral:        #cc4d67;
  --c-coral-oscuro: #9b2d44;
  --c-naranja:      #fa8842;
  --c-naranja-oscuro:#b45a14;
  --c-naranja-suave:#fff1e6;

  --c-blanco: #ffffff;
  --c-crema:  #fbf8f3;
  --c-negro:  #1a1a1a;
  --c-gris-900:#232323;
  --c-gris-700:#4a4a4a;
  --c-gris-500:#767676;
  --c-gris-300:#d8d3ca;
  --c-gris-200:#ece7de;
  --c-gris-100:#f4f1ea;

  --c-exito: #0a7a3d;
  --c-error: #b3121d;
  --c-aviso: #8a5a00;
  --c-info:  #0a5f8a;

  --font-titulo: Georgia, 'Times New Roman', serif;
  --font-texto: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --radio: 10px;
  --radio-sm: 6px;
  --sombra: 0 2px 14px rgba(26,26,26,.08);
  --sombra-alta: 0 8px 30px rgba(26,26,26,.16);
  --ancho-max: 1240px;
  --foco: 3px solid #0a5f8a;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-texto);
  color:var(--c-negro);
  background:var(--c-blanco);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
h1,h2,h3,h4{font-family:var(--font-titulo);line-height:1.2;margin:0 0 .5em;color:var(--c-gris-900);}
h1{font-size:clamp(1.9rem,4vw,3rem);}
h2{font-size:clamp(1.5rem,3vw,2.1rem);}
h3{font-size:1.3rem;}
h4{font-size:1.05rem;}
p{margin:0 0 1em;}
a{color:var(--c-verde-oscuro);}
a:hover{color:var(--c-rojo);}
ul,ol{padding-left:1.3em;}
.container{max-width:var(--ancho-max);margin:0 auto;padding:0 24px;}

/* Foco visible accesible en toda la web */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{
  outline:var(--foco);
  outline-offset:2px;
  border-radius:4px;
}

/* Skip link */
.skip-link{
  position:absolute;left:-999px;top:auto;
  background:var(--c-negro);color:#fff;padding:12px 20px;
  z-index:1000;border-radius:0 0 8px 0;font-weight:600;
}
.skip-link:focus{left:0;top:0;}

/* Aviso de entorno de demostración */
.demo-banner{
  background:var(--c-negro);color:#fff;text-align:center;
  font-size:.82rem;padding:8px 16px;letter-spacing:.02em;
}
.demo-banner strong{color:#ffd9a8;}

/* ===== Cabecera ===== */
.site-header{
  border-bottom:1px solid var(--c-gris-200);
  background:#fff;position:sticky;top:0;z-index:100;
}
.header-top{
  background:var(--c-verde-oscuro);color:#fff;font-size:.82rem;
}
.header-top .container{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:6px;padding-bottom:6px;flex-wrap:wrap;gap:6px;
}
.header-top a{color:#fff;text-decoration:none;}
.header-top a:hover{text-decoration:underline;}
.header-main .container{
  display:flex;align-items:center;gap:18px;padding-top:14px;padding-bottom:14px;
}
.logo-link{flex-shrink:0;}
.logo-link img{height:38px;width:auto;}
.main-nav{flex:1;min-width:0;}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:13px;flex-wrap:wrap;}
.main-nav a{
  text-decoration:none;color:var(--c-gris-900);font-weight:600;font-size:.85rem;
  padding:6px 1px;border-bottom:2px solid transparent;white-space:nowrap;
}
.main-nav a:hover,.main-nav a[aria-current="page"]{
  color:var(--c-verde-oscuro);border-bottom-color:var(--c-verde);
}
.header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.header-actions a{color:var(--c-gris-900);text-decoration:none;font-size:.85rem;font-weight:600;white-space:nowrap;}
.btn-cart{
  display:inline-flex;align-items:center;gap:6px;background:var(--c-verde);
  color:#fff!important;padding:8px 14px;border-radius:30px;font-size:.82rem;
}
.btn-cart:hover{background:var(--c-verde-oscuro);}
.menu-toggle{display:none;background:none;border:2px solid var(--c-gris-300);border-radius:8px;padding:8px 10px;font-size:1.1rem;cursor:pointer;}

@media (max-width:1180px){
  .menu-toggle{display:inline-block;}
  .main-nav{
    display:none;position:absolute;left:0;right:0;top:100%;background:#fff;
    border-bottom:1px solid var(--c-gris-200);box-shadow:var(--sombra);
  }
  .main-nav.abierto{display:block;}
  .main-nav ul{flex-direction:column;gap:0;padding:8px 24px 16px;}
  .main-nav a{display:block;padding:12px 0;border-bottom:1px solid var(--c-gris-100);font-size:.95rem;}
  .header-main .container{flex-wrap:wrap;position:relative;}
}

/* ===== Botones ===== */
.btn{
  display:inline-block;padding:13px 26px;border-radius:30px;font-weight:700;
  text-decoration:none;cursor:pointer;border:2px solid transparent;font-size:.95rem;
  font-family:var(--font-texto);transition:.15s;
}
.btn-primario{background:var(--c-verde);color:#fff;}
.btn-primario:hover{background:var(--c-verde-oscuro);color:#fff;}
.btn-secundario{background:#fff;border-color:var(--c-verde);color:var(--c-verde-oscuro);}
.btn-secundario:hover{background:var(--c-verde-suave);}
.btn-rojo{background:var(--c-rojo);color:#fff;}
.btn-rojo:hover{background:var(--c-rojo-oscuro);color:#fff;}
.btn-fantasma{background:transparent;border-color:#fff;color:#fff;}
.btn-fantasma:hover{background:rgba(255,255,255,.15);}
.btn-bloque{display:block;width:100%;text-align:center;}
.btn[disabled]{opacity:.55;cursor:not-allowed;}

/* ===== Hero ===== */
.hero{
  background:linear-gradient(120deg,var(--c-verde-oscuro),var(--c-verde) 65%);
  color:#fff;padding:64px 0;position:relative;overflow:hidden;
}
.hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
.hero-etiqueta{
  display:inline-block;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.4);
  padding:6px 14px;border-radius:30px;font-size:.8rem;font-weight:700;letter-spacing:.04em;margin-bottom:16px;
}
.hero h1{color:#fff;margin-bottom:.3em;}
.hero p.lead{font-size:1.15rem;max-width:46ch;opacity:.95;}
.hero-acciones{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px;}
.hero-figura{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);
  border-radius:var(--radio);padding:20px;
}
.hero-figura img{border-radius:8px;}
.hero-video{border-radius:8px;display:block;width:100%;height:auto;background:#0009;}
.hero-video-nota{font-size:.78rem;line-height:1.4;color:rgba(255,255,255,.85);margin-top:10px;}
.hero-video-nota strong{color:#fff;}
@media (max-width:840px){.hero .container{grid-template-columns:1fr;}}

/* ===== Secciones ===== */
section{padding:56px 0;}
.section-cabecera{max-width:66ch;margin-bottom:34px;}
.section-cabecera .kicker{
  color:var(--c-rojo);font-weight:700;font-size:.8rem;letter-spacing:.08em;
  text-transform:uppercase;display:block;margin-bottom:8px;
}
.fondo-crema{background:var(--c-crema);}
.fondo-verde{background:var(--c-verde-suave);}
.fondo-oscuro{background:var(--c-negro);color:#fff;}
.fondo-oscuro h2,.fondo-oscuro h3{color:#fff;}

/* ===== Tarjetas genéricas ===== */
.grid{display:grid;gap:24px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}}

.tarjeta{
  background:#fff;border:1px solid var(--c-gris-200);border-radius:var(--radio);
  padding:24px;box-shadow:var(--sombra);
}
.tarjeta h3{margin-bottom:.4em;}
.icono-circulo{
  width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--c-verde-suave);color:var(--c-verde-oscuro);font-size:1.4rem;margin-bottom:14px;font-weight:700;
}

/* ===== Categorías ===== */
.categoria-card{
  position:relative;border-radius:var(--radio);overflow:hidden;color:#fff;
  min-height:190px;display:flex;align-items:flex-end;padding:20px;text-decoration:none;
  background-size:cover;background-position:center;box-shadow:var(--sombra);
}
.categoria-card::after{
  content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.62),rgba(0,0,0,.08) 60%);
}
.categoria-card span{position:relative;z-index:1;font-weight:700;font-size:1.05rem;font-family:var(--font-titulo);}

/* ===== Productos ===== */
.producto-card{
  background:#fff;border:1px solid var(--c-gris-200);border-radius:var(--radio);overflow:hidden;
  box-shadow:var(--sombra);display:flex;flex-direction:column;text-decoration:none;color:inherit;height:100%;
}
.producto-card:hover{box-shadow:var(--sombra-alta);transform:translateY(-2px);transition:.15s;}
.producto-imgwrap{aspect-ratio:4/5;overflow:hidden;background:var(--c-gris-100);}
.producto-imgwrap img{width:100%;height:100%;object-fit:cover;}
.producto-cuerpo{padding:16px 16px 18px;display:flex;flex-direction:column;flex:1;}
.producto-linea{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--c-rojo);margin-bottom:4px;}
.producto-nombre{font-family:var(--font-titulo);font-size:1.05rem;margin:0 0 6px;color:var(--c-gris-900);}
.producto-precio{margin-top:auto;padding-top:10px;}
.precio-base{font-size:1.2rem;font-weight:800;color:var(--c-verde-oscuro);}
.precio-iva{font-size:.78rem;color:var(--c-gris-500);}
.badge{
  display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  padding:3px 9px;border-radius:20px;background:var(--c-naranja-suave);color:var(--c-naranja-oscuro);
  border:1px solid #f3caa0;
}
.badge-verde{background:var(--c-verde-suave);color:var(--c-verde-oscuro);border-color:#bfe2da;}
.badge-rojo{background:var(--c-rojo-suave);color:var(--c-rojo-oscuro);border-color:#f0c3c7;}
.producto-ref{font-size:.72rem;color:var(--c-gris-500);margin-top:2px;}

/* ===== Barra de herramientas tienda ===== */
.tienda-toolbar{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  background:var(--c-crema);border:1px solid var(--c-gris-200);border-radius:var(--radio);
  padding:16px 20px;margin-bottom:28px;
}
.tienda-layout{display:grid;grid-template-columns:250px 1fr;gap:32px;}
@media (max-width:800px){.tienda-layout{grid-template-columns:1fr;}}
.filtro-grupo{margin-bottom:22px;}
.filtro-grupo legend{font-weight:700;margin-bottom:8px;font-family:var(--font-titulo);}
.filtro-grupo label{display:flex;gap:8px;align-items:center;margin-bottom:7px;font-size:.92rem;cursor:pointer;}

/* ===== Formularios ===== */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:640px){.form-grid{grid-template-columns:1fr;}}
.campo{margin-bottom:18px;display:flex;flex-direction:column;gap:6px;}
.campo label{font-weight:700;font-size:.9rem;}
.campo .ayuda{font-size:.8rem;color:var(--c-gris-500);}
.campo input,.campo select,.campo textarea{
  padding:11px 13px;border:1.5px solid var(--c-gris-300);border-radius:8px;font-size:1rem;
  font-family:var(--font-texto);width:100%;background:#fff;color:var(--c-negro);
}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--c-verde);}
.campo.error input,.campo.error select,.campo.error textarea{border-color:var(--c-error);}
.campo .msg-error{color:var(--c-error);font-size:.82rem;font-weight:600;display:none;}
.campo.error .msg-error{display:block;}
.checkbox-linea{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;}
.checkbox-linea input{width:auto;margin-top:3px;}
fieldset{border:1px solid var(--c-gris-200);border-radius:var(--radio);padding:18px;margin:0 0 20px;}
fieldset legend{font-weight:700;font-family:var(--font-titulo);padding:0 8px;}

.alerta{padding:14px 18px;border-radius:8px;font-size:.92rem;margin-bottom:20px;border:1px solid transparent;}
.alerta-exito{background:#e7f6ec;border-color:#bfe6cc;color:#0a5c30;}
.alerta-error{background:#fbe9ea;border-color:#f0c3c7;color:var(--c-rojo-oscuro);}
.alerta-info{background:#e7f2fa;border-color:#c3ddf0;color:#0a4c6e;}
.alerta-aviso{background:#fff6e6;border-color:#f0dca0;color:#6e4c00;}

/* ===== Notas de contenido pendiente / demo ===== */
.nota-pendiente{
  border:1.5px dashed var(--c-naranja-oscuro);background:var(--c-naranja-suave);
  color:#6e3d0e;border-radius:8px;padding:12px 16px;font-size:.88rem;margin:16px 0;
}
.nota-pendiente strong{display:block;margin-bottom:2px;}

/* ===== Migas de pan ===== */
.migas{font-size:.82rem;color:var(--c-gris-500);padding:14px 0;}
.migas a{color:var(--c-gris-500);text-decoration:none;}
.migas a:hover{color:var(--c-verde-oscuro);text-decoration:underline;}
.migas .container{display:flex;gap:6px;flex-wrap:wrap;}

/* ===== FAQ acordeón ===== */
.faq-item{border-bottom:1px solid var(--c-gris-200);}
.faq-pregunta{
  width:100%;text-align:left;background:none;border:none;padding:18px 4px;
  font-weight:700;font-size:1.02rem;cursor:pointer;display:flex;justify-content:space-between;
  align-items:center;gap:16px;color:var(--c-gris-900);font-family:var(--font-titulo);
}
.faq-pregunta .icono{font-size:1.3rem;color:var(--c-verde);flex-shrink:0;transition:.2s;}
.faq-pregunta[aria-expanded="true"] .icono{transform:rotate(45deg);}
.faq-respuesta{max-height:0;overflow:hidden;transition:max-height .25s ease;padding:0 4px;}
.faq-respuesta-inner{padding:0 0 18px;color:var(--c-gris-700);}

/* ===== Pasos / procesos ===== */
.pasos{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:paso;}
@media (max-width:900px){.pasos{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.pasos{grid-template-columns:1fr;}}
.paso{position:relative;padding-top:8px;}
.paso .num{
  counter-increment:paso;width:38px;height:38px;border-radius:50%;background:var(--c-verde);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:12px;
}
.paso .num::before{content:counter(paso);}

/* ===== Testimonios ===== */
.testimonio{background:#fff;border:1px solid var(--c-gris-200);border-radius:var(--radio);padding:22px;box-shadow:var(--sombra);}
.testimonio p{font-style:italic;color:var(--c-gris-700);}
.testimonio footer{font-weight:700;font-size:.85rem;color:var(--c-gris-900);}

/* ===== Tabla comparativa / precios ===== */
table{width:100%;border-collapse:collapse;}
th,td{padding:10px 12px;border-bottom:1px solid var(--c-gris-200);text-align:left;font-size:.92rem;}
th{font-family:var(--font-titulo);}

/* ===== Pie de página ===== */
.site-footer{background:var(--c-negro);color:#e8e5df;padding:52px 0 24px;margin-top:20px;}
.site-footer a{color:#e8e5df;text-decoration:none;}
.site-footer a:hover{color:#fff;text-decoration:underline;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;}
@media (max-width:840px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{color:#fff;font-size:.92rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px;font-family:var(--font-texto);}
.footer-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;font-size:.9rem;}
.footer-logo img{height:38px;margin-bottom:14px;}
.footer-bottom{
  border-top:1px solid #3a3a3a;margin-top:38px;padding-top:20px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.8rem;color:#a9a49a;
}
.footer-social{display:flex;gap:12px;}
.footer-social a{
  width:36px;height:36px;border:1px solid #4a4a4a;border-radius:50%;display:flex;
  align-items:center;justify-content:center;font-size:.85rem;
}
.sello-ceeis{
  display:inline-flex;align-items:center;gap:8px;background:#2a2a2a;border:1px solid #444;
  padding:8px 12px;border-radius:8px;font-size:.78rem;margin-top:12px;
}
.footer-email{margin-top:14px;font-size:.9rem;}
.footer-email a{font-weight:700;}

/* ===== Banner de cookies ===== */
.cookies-banner{
  position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:2px solid var(--c-verde);
  box-shadow:0 -6px 24px rgba(0,0,0,.18);padding:18px 20px;z-index:500;display:none;
}
.cookies-banner.visible{display:block;}
.cookies-banner .container{display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:space-between;}
.cookies-texto{max-width:64ch;font-size:.88rem;}
.cookies-acciones{display:flex;gap:10px;flex-wrap:wrap;}
.cookies-panel{
  position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:600;display:none;
  align-items:center;justify-content:center;padding:20px;
}
.cookies-panel.visible{display:flex;}
.cookies-panel-caja{background:#fff;border-radius:var(--radio);max-width:560px;width:100%;padding:28px;max-height:85vh;overflow:auto;}
.cookies-cat{border:1px solid var(--c-gris-200);border-radius:8px;padding:14px;margin-bottom:12px;}
.cookies-cat .fila{display:flex;justify-content:space-between;align-items:center;gap:12px;}

/* ===== Interruptor ===== */
.switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.slider-switch{
  position:absolute;cursor:pointer;inset:0;background:var(--c-gris-300);
  border-radius:30px;transition:.2s;
}
.slider-switch::before{
  content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;
  background:#fff;border-radius:50%;transition:.2s;
}
.switch input:checked + .slider-switch{background:var(--c-verde);}
.switch input:checked + .slider-switch::before{transform:translateX(20px);}
.switch input:disabled + .slider-switch{opacity:.6;cursor:not-allowed;}

/* ===== Utilidades ===== */
.centrado{text-align:center;}
.mt-0{margin-top:0;}
.flex{display:flex;}
.gap-12{gap:12px;}
.small{font-size:.85rem;color:var(--c-gris-500);}
.divisor{height:1px;background:var(--c-gris-200);border:none;margin:40px 0;}
.chip-lista{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;}
.chip{background:var(--c-gris-100);border:1px solid var(--c-gris-200);border-radius:20px;padding:5px 12px;font-size:.8rem;}
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.pagina-cabecera{background:var(--c-crema);padding:38px 0;border-bottom:1px solid var(--c-gris-200);}
.pagina-cabecera p{max-width:70ch;color:var(--c-gris-700);}
