/* ---------------------------------------------------------
   Tipografías autoalojadas (woff2). Se retiró Google Fonts:
   evitaba el consentimiento previo al transferir la IP a Google
   y añadía dos conexiones externas en la ruta crítica.
   --------------------------------------------------------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/inter-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/inter-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/inter-latin-ext-500-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/inter-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/inter-latin-ext-600-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/inter-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/inter-latin-ext-700-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/inter-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-ext-500-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-ext-600-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-ext-700-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* =========================================================
   Abonos y Cereales Vallecillo — Sistema de diseño
   HTML5 estático · sin dependencias externas
   ========================================================= */

:root{
  /* Paleta agrícola */
  --verde:        #78a020;  /* verde intenso del logo */
  --verde-osc:    #234f2e;
  --verde-claro:  #93bf3f;
  --trigo:        #d7a13b;
  --trigo-claro:  #ecca7d;
  --tierra:       #6b4f3a;
  --crema:        #faf8f3;
  --crema-2:      #f3eee3;
  --linea:        #e4ddce;
  --tinta:        #262521;
  --tinta-suave:  #5c584f;
  --blanco:       #ffffff;

  --sombra-sm: 0 1px 3px rgba(38,37,33,.06), 0 1px 2px rgba(38,37,33,.08);
  --sombra:    0 4px 14px rgba(38,37,33,.08);
  --sombra-lg: 0 18px 40px -12px rgba(35,79,46,.28);

  --radio: 12px;
  --radio-sm: 8px;
  --ancho: 1180px;
  --serif: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --paso: cubic-bezier(.4,.15,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--sans);
  color:var(--tinta);
  background:var(--crema);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--verde); text-decoration:none; transition:color .2s var(--paso); }
a:hover{ color:var(--verde-osc); }

h1,h2,h3,h4{ font-family:var(--serif); color:var(--verde-osc); line-height:1.18; font-weight:700; letter-spacing:-.01em; }
h1{ font-size:clamp(2rem,4.4vw,3.1rem); }
h2{ font-size:clamp(1.55rem,3vw,2.2rem); }
h3{ font-size:1.28rem; }
p{ margin:0 0 1rem; }
ul{ padding-left:1.15rem; margin:0 0 1rem; }
li{ margin-bottom:.4rem; }
strong{ color:var(--verde-osc); }

.contenedor{ width:100%; max-width:var(--ancho); margin-inline:auto; padding-inline:22px; }
.seccion{ padding:clamp(3rem,6vw,5.5rem) 0; }
.seccion--crema{ background:var(--crema-2); }
.seccion--verde{ background:var(--verde-osc); color:#eef4ee; }
.seccion--verde h2,.seccion--verde h3{ color:#fff; }
.centrado{ text-align:center; }
.medida{ max-width:66ch; }
.medida.centrado{ margin-inline:auto; }

.eyebrow{
  display:inline-block; font-family:var(--sans); font-weight:700;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--trigo); margin-bottom:.7rem;
}
.seccion--verde .eyebrow{ color:var(--trigo-claro); }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--sans); font-weight:600; font-size:1rem;
  padding:.85rem 1.6rem; border-radius:999px; border:2px solid transparent;
  cursor:pointer; transition:transform .2s var(--paso), box-shadow .2s var(--paso), background .2s var(--paso);
  line-height:1;
}
.btn--primario{ background:var(--trigo); color:#3a2a06; box-shadow:var(--sombra); }
.btn--primario:hover{ background:var(--trigo-claro); color:#3a2a06; transform:translateY(-2px); box-shadow:var(--sombra-lg); }
.btn--verde{ background:var(--verde); color:#fff; }
.btn--verde:hover{ background:var(--verde-osc); color:#fff; transform:translateY(-2px); }
.btn--linea{ background:transparent; border-color:currentColor; color:var(--verde-osc); }
.btn--linea:hover{ background:var(--verde-osc); color:#fff; }
/* Botón de línea sobre fondos oscuros (hero, CTA final, sección verde): texto/borde en blanco */
.seccion--verde .btn--linea,
.hero .btn--linea,
.cta-final .btn--linea{ color:#fff; border-color:rgba(255,255,255,.7); }
.seccion--verde .btn--linea:hover,
.hero .btn--linea:hover,
.cta-final .btn--linea:hover{ background:#fff; color:var(--verde-osc); border-color:#fff; }

/* ---------- Topbar ---------- */
.topbar{ background:var(--verde-osc); color:#dce8dc; font-size:.85rem; }
.topbar .contenedor{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:40px; flex-wrap:wrap; }
.topbar a{ color:#dce8dc; }
.topbar a:hover{ color:#fff; }
.topbar__datos{ display:flex; gap:1.4rem; flex-wrap:wrap; align-items:center; }
.topbar__datos span,.topbar__datos a{ display:inline-flex; align-items:center; gap:.4rem; }
.idiomas{ display:flex; gap:.35rem; align-items:center; }
.idiomas a{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.15rem .5rem; border-radius:6px; font-weight:600; font-size:.8rem;
  border:1px solid transparent;
}
.idiomas a.activo{ background:var(--trigo); color:#3a2a06; }
.idiomas a:not(.activo){ border-color:rgba(255,255,255,.25); }
.lang-icon{ width:20px; height:13px; border-radius:2px; display:block; flex:0 0 auto;
  box-shadow:0 0 0 1px rgba(0,0,0,.12); }

/* Selector de idioma dentro del menú móvil (oculto en escritorio) */
.nav__idiomas{ display:none; }

/* ---------- Cabecera / nav ---------- */
.cabecera{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.96); backdrop-filter:saturate(1.4) blur(8px); border-bottom:1px solid var(--linea); }
.cabecera .contenedor{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.4rem 1rem; min-height:84px; padding-block:.5rem; }
.logos{ display:flex; align-items:center; gap:1rem; }
.logo{ display:inline-flex; align-items:center; }
.logo img{ height:78px; width:auto; }
.logo--cereales{ border-left:1px solid var(--linea); padding-left:1rem; }
/* Menú en su propia fila, bajo los logotipos (estilo cabecera de dos filas) */
.nav{ display:flex; align-items:center; justify-content:center; gap:.2rem; order:3; flex-basis:100%; flex-wrap:wrap; border-top:1px solid var(--linea); padding-top:.35rem; }
.nav a{
  font-family:var(--sans); font-weight:600; color:var(--tinta); font-size:.95rem;
  padding:.55rem .7rem; border-radius:8px; white-space:nowrap;
}
.nav a:hover{ color:var(--verde); background:var(--crema-2); }
.nav a.activo{ color:var(--verde); }
.nav a.activo::after{ content:""; display:block; height:2px; background:var(--trigo); border-radius:2px; margin-top:3px; }
.nav__cta{ margin-left:.5rem; }
/* Logotipo reutilizable dentro del contenido */
.brand-logo{ height:60px; width:auto; margin-bottom:1.4rem; }
.brand-logo--centro{ display:block; margin-inline:auto; }

.menu-btn{ display:none; background:none; border:0; cursor:pointer; padding:.4rem; }
.menu-btn span{ display:block; width:26px; height:2px; background:var(--verde-osc); margin:5px 0; transition:.25s var(--paso); }

/* ---------- Hero ---------- */
.hero{ position:relative; color:#fff; overflow:hidden; }
.hero__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
/* Slideshow del hero */
.hero__slides{ position:absolute; inset:0; z-index:-2; }
.hero__slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; }
.hero__slide.is-active{ opacity:1; }
.hero__slide img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Oscurecido neutro (no verde), más intenso a la izquierda para legibilidad del texto */
.hero::after{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg, rgba(12,12,12,.74) 0%, rgba(12,12,12,.5) 42%, rgba(12,12,12,.22) 100%); }
.hero__inner{ padding:clamp(3.5rem,9vw,7rem) 0; max-width:640px; }
.hero h1{ color:#fff; }
.hero p{ font-size:1.15rem; color:#eaf2ea; margin-top:1rem; }
.hero__ctas{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.8rem; }

/* ---------- Tiras de confianza ---------- */
.tira{ background:var(--verde); color:#fff; }
.tira .contenedor{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding-block:1.4rem; text-align:center; }
.tira b{ display:block; font-family:var(--serif); font-size:1.5rem; color:var(--trigo-claro); }
.tira small{ font-size:.85rem; color:rgba(255,255,255,.92); }

/* ---------- Rejillas ---------- */
.rejilla{ display:grid; gap:1.5rem; }
.rejilla--3{ grid-template-columns:repeat(3,1fr); }
.rejilla--2{ grid-template-columns:repeat(2,1fr); }

/* Tarjetas de servicio */
.tarjeta{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio);
  overflow:hidden; box-shadow:var(--sombra-sm);
  transition:transform .25s var(--paso), box-shadow .25s var(--paso);
  display:flex; flex-direction:column;
}
.tarjeta:hover{ transform:translateY(-4px); box-shadow:var(--sombra-lg); }
.tarjeta__img{ aspect-ratio:16/9; overflow:hidden; }
.tarjeta__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--paso); }
.tarjeta:hover .tarjeta__img img{ transform:scale(1.05); }
.tarjeta__cuerpo{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.tarjeta__cuerpo h3{ margin-bottom:.4rem; }
.tarjeta__cuerpo p{ color:var(--tinta-suave); font-size:.96rem; flex:1; }
.tarjeta__mas{ font-weight:600; margin-top:.6rem; display:inline-flex; align-items:center; gap:.35rem; }

/* Bloques de característica / confianza */
.features{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem 2rem; }
.feature{ display:flex; gap:.9rem; }
.feature__ico{ flex:0 0 auto; width:44px; height:44px; border-radius:10px; background:var(--crema-2); display:grid; place-items:center; color:var(--verde); }
.seccion--verde .feature__ico{ background:rgba(255,255,255,.1); color:var(--trigo-claro); }
.feature h3{ font-size:1.05rem; margin-bottom:.2rem; }
.feature p{ font-size:.92rem; color:var(--tinta-suave); margin:0; }
.seccion--verde .feature p{ color:#cddccd; }

/* ---------- Dos columnas texto+imagen ---------- */
.duo{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.duo__img img{ border-radius:var(--radio); box-shadow:var(--sombra); width:100%; height:auto; }
.lista-check{ list-style:none; padding:0; }
.lista-check li{ position:relative; padding-left:1.8rem; margin-bottom:.55rem; }
.lista-check li::before{ content:"✓"; position:absolute; left:0; top:0; color:var(--verde); font-weight:700; background:var(--crema-2); width:1.3rem; height:1.3rem; border-radius:50%; display:grid; place-items:center; font-size:.8rem; }
.seccion--verde .lista-check li::before{ background:rgba(255,255,255,.12); color:var(--trigo-claro); }

/* ---------- Breadcrumbs ---------- */
.migas{ background:var(--crema-2); border-bottom:1px solid var(--linea); font-size:.85rem; }
.migas ol{ list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; padding:.7rem 0; margin:0; }
.migas li{ margin:0; color:var(--tinta-suave); }
.migas li+li::before{ content:"›"; margin-right:.4rem; color:var(--linea); }
.migas a{ color:var(--tinta-suave); }
.migas a:hover{ color:var(--verde); }

/* ---------- Página interior: encabezado ---------- */
.page-head{ background:var(--verde-osc); color:#fff; padding:clamp(2.2rem,5vw,3.4rem) 0; }
.page-head h1{ color:#fff; }
.page-head p{ color:#d6e4d6; max-width:60ch; margin:.6rem 0 0; }

/* ---------- CTA final ---------- */
.cta-final{ background:linear-gradient(120deg,var(--verde) 0%, var(--verde-osc) 100%); color:#fff; border-radius:var(--radio); padding:clamp(2rem,5vw,3.2rem); text-align:center; }
.cta-final h2{ color:#fff; }
.cta-final p{ color:#e7f1e7; max-width:60ch; margin-inline:auto; }
.cta-final .hero__ctas{ justify-content:center; }

/* ---------- Contacto ---------- */
.contacto-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:start; }
.datos-contacto li{ list-style:none; display:flex; gap:.7rem; margin-bottom:1rem; align-items:flex-start; }
.datos-contacto{ padding:0; }
.datos-contacto .ico{ color:var(--verde); flex:0 0 auto; margin-top:.15rem; }
.mapa{ aspect-ratio:4/3; background:var(--crema-2); border-radius:var(--radio); overflow:hidden; border:1px solid var(--linea); position:relative; }
.mapa iframe{ width:100%; height:100%; border:0; }
.mapa__placeholder{ position:absolute; inset:0; display:grid; place-items:center; text-align:center; cursor:pointer; padding:1rem; }

/* ---------- Footer ---------- */
.footer{ background:#1f2a20; color:#c2cfc2; font-size:.92rem; padding-top:3rem; }
.footer a{ color:#c2cfc2; }
.footer a:hover{ color:#fff; }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:2rem; padding-bottom:2.5rem; }
.footer h4{ color:#fff; font-family:var(--sans); font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1rem; }
.footer ul{ list-style:none; padding:0; }
.footer li{ margin-bottom:.5rem; }
.footer__logos{ display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; margin-bottom:1.1rem; }
.footer__logo{ height:56px; background:#fff; padding:.5rem .8rem; border-radius:10px; display:inline-flex; align-items:center; }
.footer__logo img{ height:100%; width:auto; }
.footer__legal{ border-top:1px solid rgba(255,255,255,.12); padding:1.2rem 0; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem; color:#93a293; }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .rejilla--3,.features,.tira .contenedor{ grid-template-columns:repeat(2,1fr); }
  .footer__grid{ grid-template-columns:1fr 1fr; }
  .duo,.contacto-grid{ grid-template-columns:1fr; }
  .duo__img{ order:-1; }
  .logo img{ height:60px; }
}
@media (max-width:1200px){
  .nav{
    position:fixed; inset:84px 0 auto 0; background:#fff; flex-direction:column; align-items:stretch;
    padding:1rem 22px 1.6rem; gap:.1rem; border-bottom:1px solid var(--linea); box-shadow:var(--sombra-lg);
    transform:translateY(-140%); transition:transform .3s var(--paso); max-height:calc(100vh - 84px); overflow:auto;
  }
  .nav.abierto{ transform:translateY(0); }
  .nav a{ padding:.8rem .4rem; font-size:1.05rem; border-bottom:1px solid var(--crema-2); }
  .nav a.activo::after{ display:none; }
  .nav__cta{ margin:.6rem 0 0; text-align:center; }
  .menu-btn{ display:block; }
  .menu-btn.activo span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .menu-btn.activo span:nth-child(2){ opacity:0; }
  .menu-btn.activo span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .topbar__datos{ display:none; }
  .nav__idiomas{ display:flex; gap:.6rem; margin-top:.8rem; padding:.9rem .4rem 0; border-top:1px solid var(--crema-2); }
  .nav__idiomas a{ display:inline-flex; align-items:center; gap:.45rem; font-weight:600; color:var(--tinta); font-size:1.05rem; border:0; padding:.2rem 0; }
  .nav__idiomas a.activo{ color:var(--verde); }
  .nav__idiomas a::after{ display:none; }
  .nav__idiomas .lang-icon{ width:26px; height:17px; }
}
@media (max-width:520px){
  .rejilla--3,.rejilla--2,.features,.tira .contenedor,.footer__grid{ grid-template-columns:1fr; }
  body{ font-size:16px; }
  .logo img{ height:44px; }
  .logos{ gap:.55rem; }
  .logo--cereales{ padding-left:.55rem; }
  .brand-logo{ height:52px; }
}

/* Subenlaces legales del pie */
.footer__sub{ padding-left:.9rem; }
.footer__sub a{ font-size:.9rem; opacity:.85; }

/* ---------- Páginas legales ---------- */
.legal h2{ margin-top:2.4rem; padding-top:.4rem; border-top:1px solid var(--linea); }
.legal h2:first-child{ margin-top:0; padding-top:0; border-top:0; }
.legal p{ margin-bottom:.9rem; }
.legal ul{ margin:0 0 1rem 1.1rem; }
.legal ul li{ margin-bottom:.35rem; }
.nota-legal{ color:var(--tinta-suave); font-size:.9rem; margin-top:1.8rem; padding:1rem 1.1rem; background:var(--crema-2); border-radius:var(--radio-sm); }

/* ---------- Páginas legales: tabla de cookies y CTA ---------- */
.legal .nota{ color:var(--tinta-suave); font-size:.92rem; background:var(--crema-2); border-left:3px solid var(--verde); padding:.85rem 1rem; border-radius:var(--radio-sm); margin:1.1rem 0 1.4rem; }
.legal code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; background:var(--crema-2); padding:.12em .4em; border-radius:4px; }
.tabla-legal{ width:100%; border-collapse:collapse; margin:1.1rem 0 1.4rem; font-size:.92rem; display:block; overflow-x:auto; }
.tabla-legal thead th{ text-align:left; background:var(--verde-osc); color:#fff; font-weight:600; padding:.7rem .8rem; white-space:nowrap; }
.tabla-legal td{ padding:.7rem .8rem; border-bottom:1px solid var(--linea); vertical-align:top; min-width:130px; }
.tabla-legal tbody tr:nth-child(even){ background:var(--crema-2); }
.cta-linea{ display:flex; gap:.7rem; flex-wrap:wrap; margin-top:2rem; }
@media (min-width:760px){ .tabla-legal{ display:table; } }

/* ---------- Preguntas frecuentes (FAQ) ---------- */
.faq{ max-width:840px; margin-inline:auto; }
.faq details{ border:1px solid var(--linea); border-radius:var(--radio-sm); background:#fff; margin-bottom:.7rem; box-shadow:var(--sombra-sm); }
.faq summary{ cursor:pointer; padding:1.05rem 1.2rem; font-family:var(--serif); font-weight:600; font-size:1.02rem; color:var(--verde-osc); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.5rem; color:var(--trigo); line-height:1; flex:0 0 auto; transition:transform .2s var(--paso); }
.faq details[open] summary{ color:var(--verde); }
.faq details[open] summary::after{ content:"–"; }
.faq details p{ padding:0 1.2rem 1.15rem; color:var(--tinta-suave); margin:0; }
.prosa p{ margin-bottom:1rem; }
.prosa p:last-child{ margin-bottom:0; }

/* ---------- Slideshow: flechas ---------- */
.hero__nav{ position:absolute; right:clamp(1rem,3vw,2.5rem); bottom:clamp(1.2rem,4vw,2.2rem); z-index:3; display:flex; gap:.5rem; }
.hero__arrow{ width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.55); background:rgba(0,0,0,.32); color:#fff; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .2s var(--paso), transform .2s var(--paso); }
.hero__arrow:hover{ background:rgba(0,0,0,.62); transform:translateY(-1px); }
.hero__arrow svg{ width:22px; height:22px; }

/* ---------- Galería de instalaciones ---------- */
.galeria__img{ display:block; }
.galeria__img img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radio); box-shadow:var(--sombra); }

/* ---------- Botón de subir a inicio ---------- */
.ir-arriba{
  position:fixed; right:18px; bottom:calc(18px + var(--cc-alto, 0px)); z-index:120;
  width:46px; height:46px; display:grid; place-items:center;
  border:0; border-radius:50%; cursor:pointer;
  background:var(--verde-osc); color:#fff;
  box-shadow:0 8px 22px -6px rgba(35,79,46,.55), 0 2px 6px rgba(0,0,0,.18);
  opacity:0; visibility:hidden; transform:translateY(12px) scale(.9);
  transition:opacity .28s var(--paso), transform .28s var(--paso), bottom .28s var(--paso), visibility 0s linear .28s, background .2s;
}
.ir-arriba.is-visible{ opacity:1; visibility:visible; transform:none; transition-delay:0s; }
.ir-arriba:hover{ background:var(--verde); }
.ir-arriba:focus-visible{ outline:3px solid var(--trigo); outline-offset:3px; }
.ir-arriba svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
/* Se aparta del panel de cookies mientras este ocupa la esquina */
@media (max-width:480px){ .ir-arriba{ right:12px; bottom:calc(12px + var(--cc-alto, 0px)); width:42px; height:42px; } }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .ir-arriba{ transition:opacity .01s, visibility 0s; transform:none; }
}

/* ---------- Crédito Artemovil en el pie ---------- */
.footer__credito{ display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .9rem; border:1px solid rgba(255,255,255,.2); border-radius:999px; font-size:.8rem; color:#cdd8cd; transition:border-color .2s var(--paso), color .2s var(--paso), background .2s var(--paso); }
.footer__credito:hover{ color:#fff; border-color:var(--verde-claro); background:rgba(255,255,255,.06); }
.footer__credito b{ color:#fff; font-weight:600; }

/* Accesibilidad */
:focus-visible{ outline:3px solid var(--trigo); outline-offset:2px; border-radius:4px; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); border:0; }
@media (prefers-reduced-motion:reduce){ *{ animation:none!important; transition:none!important; } html{ scroll-behavior:auto; } }
