/* ==========================================================================
   MANGUAN E HIJOS · NARANJAS BENI — Sistema de diseño web
   Extraído de los PDF aprobados por cliente (export 7 sept).
   Autor: TOYO Comunicación y Diseño
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root {
  /* Color */
  --mg-cream:        #F3F1EA;
  --mg-cream-deep:   #E9E6E0;
  --mg-green-dark:   #51603C;
  --mg-green:        #019439;
  --mg-green-hover:  #017A2F;
  --mg-orange:       #E07A20;
  --mg-orange-soft:  #E69751;
  --mg-white:        #FFFFFF;
  --mg-text:         #51603C;
  --mg-text-soft:    #707D5E;

  /* Tipografía */
  --mg-serif: "new-kansas", "New Kansas", Georgia, "Times New Roman", serif;
  --mg-sans:  "Kanit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Escala tipográfica (fluida) */
  --mg-fs-display: clamp(2.75rem, 6.2vw, 5.5rem);   /* H1 home */
  --mg-fs-h1:      clamp(2.5rem, 5.4vw, 4.75rem);   /* H1 interiores */
  --mg-fs-h2:      clamp(1.875rem, 3.1vw, 2.75rem);
  --mg-fs-h3:      clamp(1.25rem, 1.7vw, 1.5rem);
  --mg-fs-lead:    clamp(1.375rem, 2.1vw, 1.875rem);
  --mg-fs-body:    1rem;
  --mg-fs-small:   0.8125rem;
  --mg-fs-eyebrow: 0.75rem;

  /* Ritmo */
  --mg-section-y:  clamp(56px, 5.8vw, 112px);
  --mg-gap:        clamp(20px, 2.7vw, 52px);   /* 52px a 1920, medido del PDF */
  --mg-container:  1720px;  /* ancho de contenido del PDF aprobado */
  --mg-gutter:     clamp(20px, 5.2vw, 100px); /* margen lateral: 100px a 1920 */
  --mg-hero-h:     clamp(520px, 43vw, 824px); /* alto del hero en el PDF */

  /* Forma */
  --mg-radius-card:  20px;
  --mg-radius-pill:  999px;
  --mg-curve:        clamp(120px, 26vw, 420px); /* cuarto de círculo de las fotos */
  --mg-shadow-card:  0 2px 18px rgba(81, 96, 60, .07);
  --mg-shadow-soft:  0 10px 30px rgba(81, 96, 60, .10);

  /* Movimiento (animaciones muy sutiles, como pide el brief) */
  --mg-ease: cubic-bezier(.22, .61, .36, 1);
}

/* --------------------------------------------------------------------------
   2. BASE
   -------------------------------------------------------------------------- */
body,
.ast-container {
  background-color: var(--mg-cream);
}

body {
  font-family: var(--mg-sans);
  font-weight: 300;
  font-size: var(--mg-fs-body);
  line-height: 1.65;
  color: var(--mg-text);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.mg-serif {
  font-family: var(--mg-serif);
  font-weight: 500;
  color: var(--mg-green-dark);
  line-height: 1.08;
  letter-spacing: -0.01em;
}

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--mg-orange); text-decoration: none; transition: color .25s var(--mg-ease); }
a:hover, a:focus-visible { color: var(--mg-green); }

::selection { background: var(--mg-green); color: #fff; }

:focus-visible {
  outline: 2px solid var(--mg-green);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   3. TIPOGRAFÍA · CLASES DE COMPOSICIÓN
   -------------------------------------------------------------------------- */
.mg-display  { font-size: var(--mg-fs-display); }
.mg-h1       { font-size: var(--mg-fs-h1); }
.mg-h2       { font-size: var(--mg-fs-h2); }
.mg-h3       { font-size: var(--mg-fs-h3); }

/* Subtítulo serif light italic bajo el titular — gesto característico del diseño */
.mg-sub {
  font-family: var(--mg-serif);
  font-weight: 300;
  font-style: italic;
  font-size: clamp(1rem, 1.3vw, 1.1875rem);
  color: var(--mg-green-dark);
  line-height: 1.4;
  margin: .35em 0 0;
}

/* Regla corta naranja de separación */
.mg-rule::after,
.mg-rule--el {
  content: "";
  display: block;
  width: 84px;
  height: 2px;
  background: var(--mg-orange);
  margin: 1.35rem 0 1.5rem;
}
.mg-rule--center::after { margin-inline: auto; }

/* Antetítulo / etiqueta en Kanit con tracking amplio */
.mg-eyebrow {
  font-family: var(--mg-sans);
  font-weight: 500;
  font-size: var(--mg-fs-eyebrow);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--mg-green);
}
.mg-eyebrow--orange { color: var(--mg-orange); }

/* Lead de bloque introductorio */
.mg-lead {
  font-family: var(--mg-serif);
  font-size: var(--mg-fs-lead);
  line-height: 1.22;
  color: var(--mg-green-dark);
}

.mg-small { font-size: var(--mg-fs-small); }
.mg-italic-list {
  font-style: italic;
  font-size: var(--mg-fs-small);
  color: var(--mg-text-soft);
}

/* Encabezado de sección centrado */
.mg-section-head { text-align: center; max-width: 46rem; margin-inline: auto; }
.mg-section-head .mg-sub { margin-top: .5em; }

/* --------------------------------------------------------------------------
   4. BOTONES
   -------------------------------------------------------------------------- */
.mg-btn,
.elementor-button.mg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-family: var(--mg-sans);
  font-weight: 600;
  font-size: .8125rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 1.05em 2.1em;
  border-radius: 6px;
  border: 2px solid var(--mg-green);
  background: var(--mg-green);
  color: #fff;
  line-height: 1;
  transition: background-color .25s var(--mg-ease),
              border-color .25s var(--mg-ease),
              color .25s var(--mg-ease),
              transform .25s var(--mg-ease);
}
.mg-btn:hover,
.mg-btn:focus-visible {
  background: var(--mg-green-hover);
  border-color: var(--mg-green-hover);
  color: #fff;
  transform: translateY(-1px);
}

/* Secundario: contorno sobre crema */
.mg-btn--outline {
  background: transparent;
  border-color: rgba(81, 96, 60, .35);
  color: var(--mg-green-dark);
}
.mg-btn--outline:hover,
.mg-btn--outline:focus-visible {
  background: var(--mg-green-dark);
  border-color: var(--mg-green-dark);
  color: #fff;
}

/* Sobre banda verde */
.mg-btn--white {
  background: #fff;
  border-color: #fff;
  color: var(--mg-green);
}
.mg-btn--white:hover,
.mg-btn--white:focus-visible {
  background: var(--mg-cream);
  border-color: var(--mg-cream);
  color: var(--mg-green-hover);
}

/* Enlace "Saber más >" */
.mg-link-more {
  font-family: var(--mg-sans);
  font-size: var(--mg-fs-small);
  color: var(--mg-orange);
}
.mg-link-more::after { content: " ›"; }

/* --------------------------------------------------------------------------
   5. BANDAS Y SECCIONES
   -------------------------------------------------------------------------- */
.mg-section  { padding-block: var(--mg-section-y); }
.mg-section--tight { padding-block: clamp(2.25rem, 4vw, 3.5rem); }

.mg-band-cream  { background: var(--mg-cream); }
.mg-band-grey   { background: var(--mg-cream-deep); }
.mg-band-white  { background: var(--mg-white); }
.mg-band-green  { background: var(--mg-green); color: #fff; }
.mg-band-orange { background: var(--mg-orange); color: #fff; }

.mg-band-green h1, .mg-band-green h2, .mg-band-green h3,
.mg-band-green .mg-sub, .mg-band-green p,
.mg-band-orange h1, .mg-band-orange h2, .mg-band-orange h3,
.mg-band-orange .mg-sub, .mg-band-orange p { color: #fff; }

.mg-band-green .mg-rule::after,
.mg-band-orange .mg-rule::after { background: rgba(255,255,255,.6); }

/* Franja verde fina que cierra el hero */
.mg-strip-green {
  height: 26px; /* medido del PDF, no 10px */
  background: var(--mg-green);
}

/* --------------------------------------------------------------------------
   6. CURVAS — recorte de fotografías en cuarto de círculo
   -------------------------------------------------------------------------- */
.mg-curve-tl { border-top-left-radius:     var(--mg-curve); overflow: hidden; }
.mg-curve-tr { border-top-right-radius:    var(--mg-curve); overflow: hidden; }
.mg-curve-bl { border-bottom-left-radius:  var(--mg-curve); overflow: hidden; }
.mg-curve-br { border-bottom-right-radius: var(--mg-curve); overflow: hidden; }

/* Aplicado a un contenedor de Elementor con imagen de fondo */
[class*="mg-curve-"] > .elementor-widget-image img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* --------------------------------------------------------------------------
   7. HERO
   -------------------------------------------------------------------------- */
.mg-hero { position: relative; background: var(--mg-cream); }
.mg-hero__title { font-size: var(--mg-fs-display); }

/* Hero de páginas interiores: foto a sangre, titular blanco */
.mg-hero--media { position: relative; }
.mg-hero--media h1 {
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, .28);
}

/* --------------------------------------------------------------------------
   8. BANDA DE CIFRAS
   -------------------------------------------------------------------------- */
.mg-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--mg-gap); text-align: center; }
.mg-stat__num {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: clamp(2.25rem, 3.6vw, 3.25rem);
  color: #fff;
  line-height: 1;
}
.mg-stat__label {
  font-family: var(--mg-sans);
  font-weight: 300;
  font-size: var(--mg-fs-small);
  color: rgba(255, 255, 255, .92);
  margin-top: .6rem;
  line-height: 1.35;
}
.mg-stat__label::before {
  content: "";
  display: block;
  width: 28px; height: 1px;
  background: rgba(255,255,255,.5);
  margin: .75rem auto .75rem;
}

/* --------------------------------------------------------------------------
   9. TARJETAS
   -------------------------------------------------------------------------- */
.mg-card {
  background: var(--mg-white);
  border-radius: var(--mg-radius-card);
  box-shadow: var(--mg-shadow-card);
  overflow: hidden;
  transition: transform .3s var(--mg-ease), box-shadow .3s var(--mg-ease);
}
.mg-card:hover { transform: translateY(-3px); box-shadow: var(--mg-shadow-soft); }

/* Tarjeta de valor (¿Por qué Manguan?) */
.mg-card--value {
  background: #EDEAE3;
  padding: clamp(1.5rem, 2.2vw, 2.25rem);
  box-shadow: none;
}
.mg-card--value .mg-icon {
  width: 78px; height: 78px;
  border-radius: var(--mg-radius-pill);
  background: #fff;
  display: grid; place-items: center;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.mg-card--value .mg-icon svg { width: 40px; height: 40px; stroke: var(--mg-green-dark); fill: none; stroke-width: 1.25; }

/* Tarjeta de variedad (Productos) */
.mg-variety { background: #fff; border-radius: var(--mg-radius-card); box-shadow: var(--mg-shadow-card); padding: clamp(1.5rem, 2.2vw, 2.25rem); }
.mg-variety__name {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: clamp(1.625rem, 2.4vw, 2.125rem);
  color: var(--mg-orange);
  text-align: center;
  margin: 0 0 1rem;
}
.mg-variety__img { display: block; width: 100%; height: auto; margin-bottom: 1.5rem; }
.mg-variety__harvest {
  font-family: var(--mg-sans);
  font-weight: 400;
  font-size: var(--mg-fs-small);
  color: var(--mg-orange);
  margin-bottom: .65rem;
}
.mg-variety__claim {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: clamp(1.125rem, 1.6vw, 1.375rem);
  color: var(--mg-green-dark);
  line-height: 1.2;
  margin: 0;
}

/* Logos de certificación */
.mg-certs { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(2rem, 7vw, 7rem); }
.mg-cert {
  width: clamp(96px, 11vw, 148px);
  aspect-ratio: 1;
  border-radius: var(--mg-radius-pill);
  background: #fff;
  display: grid; place-items: center;
  padding: 1.25rem;
}
.mg-cert img { max-width: 100%; height: auto; }

/* --------------------------------------------------------------------------
   10. MAPA DE PUESTOS (Mercamadrid)
   -------------------------------------------------------------------------- */
.mg-nave { border: 2px solid var(--mg-green); border-radius: var(--mg-radius-card); padding: clamp(1rem, 1.8vw, 1.75rem); background: var(--mg-cream); }
.mg-nave__label { font-family: var(--mg-sans); font-weight: 600; font-size: .875rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mg-green); margin-bottom: .5rem; }
.mg-puestos { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.5rem, 1vw, 1rem); }
.mg-puesto { border: 1.5px solid var(--mg-orange); border-radius: 12px; padding: 1.1rem .5rem; text-align: center; }
.mg-puesto__num { font-family: var(--mg-serif); font-weight: 500; font-size: clamp(1.75rem, 2.6vw, 2.5rem); color: var(--mg-orange); line-height: 1; }
.mg-puesto__type { font-family: var(--mg-sans); font-weight: 400; font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: var(--mg-green-dark); margin-top: .5rem; }
.mg-nave__tags { font-family: var(--mg-sans); font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: var(--mg-green-dark); text-align: center; margin-top: 1rem; }

/* --------------------------------------------------------------------------
   11. HEADER / FOOTER (sobre Astra)
   -------------------------------------------------------------------------- */
.site-header, .ast-main-header-wrap { background: #fff !important; }

.main-header-menu > .menu-item > a,
.ast-header-break-point .main-header-menu > .menu-item > a {
  font-family: var(--mg-sans);
  font-weight: 500;
  font-size: .8125rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--mg-green-dark);
}
.main-header-menu > .menu-item > a:hover,
.main-header-menu > .current-menu-item > a { color: var(--mg-green); }

/* El último ítem del menú se pinta como botón (clase css-classes en el menú: mg-menu-cta) */
.main-header-menu .mg-menu-cta > a {
  background: var(--mg-green);
  color: #fff !important;
  border-radius: 6px;
  padding-inline: 1.85em !important;
  margin-left: 1rem;
}
.main-header-menu .mg-menu-cta > a:hover { background: var(--mg-green-hover); }

.mg-footer { background: var(--mg-cream); padding-block: var(--mg-section-y) 0; }
.mg-footer__card { background: #fff; border-radius: var(--mg-radius-card); padding: clamp(2rem, 4vw, 3.5rem); }
.mg-footer__nav a {
  display: block;
  font-family: var(--mg-sans);
  font-weight: 500;
  font-size: .875rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--mg-green-dark);
  padding-block: .55rem;
}
.mg-footer__nav a:hover { color: var(--mg-green); }
.mg-footer__legal { font-size: var(--mg-fs-small); color: var(--mg-text-soft); }

/* --------------------------------------------------------------------------
   12. FORMULARIOS (Fluent Forms / CF7 con estilo del sistema)
   -------------------------------------------------------------------------- */
.mg-form input[type="text"],
.mg-form input[type="email"],
.mg-form input[type="tel"],
.mg-form select,
.mg-form textarea,
.frm-fluent-form input:not([type="submit"]),
.frm-fluent-form select,
.frm-fluent-form textarea {
  width: 100%;
  background: #fff;
  border: 1px solid rgba(81, 96, 60, .18);
  border-radius: 10px;
  padding: .9rem 1.1rem;
  font-family: var(--mg-sans);
  font-size: .9375rem;
  color: var(--mg-text);
  transition: border-color .2s var(--mg-ease), box-shadow .2s var(--mg-ease);
}
.frm-fluent-form input:focus,
.frm-fluent-form select:focus,
.frm-fluent-form textarea:focus {
  border-color: var(--mg-green);
  box-shadow: 0 0 0 3px rgba(1, 148, 57, .12);
  outline: none;
}
.frm-fluent-form label,
.mg-form label {
  font-family: var(--mg-sans);
  font-weight: 500;
  font-size: var(--mg-fs-small);
  color: var(--mg-green-dark);
  letter-spacing: .02em;
}
.frm-fluent-form .ff-btn-submit { /* hereda el botón del sistema */
  background: var(--mg-green) !important;
  border-radius: 6px !important;
  font-family: var(--mg-sans) !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  padding: 1.05em 2.1em !important;
}

/* --------------------------------------------------------------------------
   13. ANIMACIONES MUY SUTILES
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .mg-reveal {
    opacity: 0;
    transform: translateY(14px);
    animation: mg-reveal .7s var(--mg-ease) forwards;
    animation-timeline: view();
    animation-range: entry 5% cover 22%;
  }
  @keyframes mg-reveal { to { opacity: 1; transform: none; } }
}

/* --------------------------------------------------------------------------
   14. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .mg-stats { grid-template-columns: repeat(2, 1fr); row-gap: 2.25rem; }
}

@media (max-width: 767px) {
  :root { --mg-curve: 110px; }
  .mg-stats  { grid-template-columns: repeat(2, 1fr); }
  .mg-puestos { grid-template-columns: repeat(3, 1fr); }
  .mg-certs  { gap: 2rem; }
  .mg-card--value .mg-icon { margin-bottom: 1.5rem; }
}

@media (max-width: 480px) {
  .mg-stats { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   15. BLOQUE DE NOTICIAS (shortcode [mg_ultimas_noticias])
   -------------------------------------------------------------------------- */
.mg-news {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--mg-gap);
}
.mg-news__item { display: flex; flex-direction: column; }
.mg-news__media { display: block; aspect-ratio: 76 / 52; overflow: hidden; }
.mg-news__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--mg-ease); }
.mg-news__item:hover .mg-news__media img { transform: scale(1.04); }
.mg-news__body { padding: clamp(1.25rem, 1.8vw, 1.75rem); display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.mg-news__title {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: clamp(1.125rem, 1.5vw, 1.375rem);
  line-height: 1.15;
  margin: 0;
}
.mg-news__title a { color: var(--mg-green-dark); }
.mg-news__title a:hover { color: var(--mg-green); }
.mg-news__title + .mg-news__excerpt { margin-top: .9rem; }
.mg-news__title::after {
  content: "";
  display: block;
  width: 64px; height: 2px;
  background: var(--mg-orange);
  margin-top: .9rem;
}
.mg-news__excerpt { font-size: var(--mg-fs-small); color: var(--mg-text-soft); margin: 0; }
.mg-news__body .mg-link-more { margin-top: auto; padding-top: 1rem; }

@media (max-width: 1024px) { .mg-news { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .mg-news { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   16. INTEGRACIÓN CON CONTENEDORES DE ELEMENTOR
   El CSS por elemento de Elementor se carga después del tema, así que las
   clases del sistema se escriben con .elementor-element por delante para
   ganar en especificidad sin recurrir a !important.
   -------------------------------------------------------------------------- */
.elementor-element.mg-section        { padding-block: var(--mg-section-y); }
.elementor-element.mg-section--tight { padding-block: clamp(2.25rem, 4vw, 3.5rem); }
.elementor-element.mg-strip-green    { height: 10px; min-height: 10px; padding: 0; background: var(--mg-green); }

/* El contenedor interior centra el contenido a la anchura del sistema */
.elementor-element.mg-inner { --content-width: var(--mg-container); width: 100%; }

/* Elementor mete márgenes en los widgets de texto; los normalizamos */
.mg-inner .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.mg-inner .elementor-widget:not(:last-child) { margin-block-end: 0; }

/* --------------------------------------------------------------------------
   17. HERO Y BLOQUES PARTIDOS
   -------------------------------------------------------------------------- */
.mg-hero__row { align-items: stretch; gap: 0; }
.mg-hero__text {
  padding-block: clamp(3.5rem, 8vw, 8rem);
  padding-inline-start: max(1.25rem, calc((100vw - var(--mg-container)) / 2));
  padding-inline-end: clamp(1.25rem, 4vw, 4rem);
  justify-content: center;
}
.mg-hero__sub { margin-top: .25rem; }
.mg-hero__actions { margin-top: clamp(1.75rem, 3vw, 2.75rem); flex-wrap: wrap; }
.mg-hero__media { padding: 0; align-self: stretch; }

/* Bloque texto + imagen a media pantalla */
.mg-split__row { gap: 0; align-items: stretch; }
.mg-split__text {
  justify-content: center;
  padding-inline-start: max(1.25rem, calc((100vw - var(--mg-container)) / 2));
  padding-inline-end: clamp(1.25rem, 4vw, 4.5rem);
}
.mg-split:nth-of-type(even) .mg-split__text,
.mg-split__row > .mg-split__media:first-child + .mg-split__text {
  padding-inline-start: clamp(1.25rem, 4vw, 4.5rem);
  padding-inline-end: max(1.25rem, calc((100vw - var(--mg-container)) / 2));
}
.mg-split__media { padding: 0; align-self: stretch; min-height: clamp(280px, 42vw, 620px); }

/* La imagen llena su contenedor y la curva la recorta */
.mg-media { padding: 0; height: 100%; overflow: hidden; }
.mg-media .elementor-widget-image,
.mg-media .elementor-widget-container { height: 100%; }
.mg-media__img img,
.mg-media .elementor-widget-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}

/* El logo Beni no se recorta: se muestra completo y centrado */
.mg-brand__logo .mg-media { display: grid; place-items: center; padding: clamp(2rem, 5vw, 4.5rem); }
.mg-brand__logo .mg-media__img img { object-fit: contain; height: auto; max-height: 340px; width: auto; max-width: 100%; }

/* --------------------------------------------------------------------------
   18. DETALLES SUELTOS
   -------------------------------------------------------------------------- */
/* Hueco del tercer sello de calidad, pendiente de que el cliente lo facilite */
.mg-cert--empty {
  border: 1px dashed rgba(81, 96, 60, .35);
  background: transparent;
  color: var(--mg-text-soft);
  font-family: var(--mg-serif);
  font-size: .875rem;
  text-align: center;
  line-height: 1.25;
}

/* Trazo decorativo de la sección Calidad */
.mg-quality__deco {
  min-height: clamp(160px, 22vw, 300px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 260' fill='none' stroke='%2351603C' stroke-opacity='.22' stroke-width='1.2'%3E%3Cpath d='M120 60c40 0 70 34 70 78s-30 78-70 78-70-34-70-78 30-78 70-78z'/%3E%3Cpath d='M120 60c-26 26-40 56-40 92 0 30 12 50 30 62'/%3E%3Cpath d='M120 60c26 26 40 56 40 92 0 30-12 50-30 62'/%3E%3Cpath d='M120 58c0-18 4-32 14-44 8-10 20-12 28-6'/%3E%3Cpath d='M132 22c16-6 34-2 44 10-14 8-32 8-44-10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

@media (max-width: 880px) {
  .mg-hero__row,
  .mg-split__row { flex-direction: column; }
  .mg-hero__text,
  .mg-split__text,
  .mg-hero__media,
  .mg-split__media { width: 100% !important; }
  .mg-hero__text,
  .mg-split__text,
  .mg-split__row > .mg-split__media:first-child + .mg-split__text {
    padding-inline: 1.25rem;
  }
  .mg-split__media { min-height: 280px; order: -1; }
  .mg-quality__deco { display: none; }
}

/* --------------------------------------------------------------------------
   19. HERO DE PÁGINAS INTERIORES
   -------------------------------------------------------------------------- */
.mg-hero--media__inner {
  min-height: clamp(320px, 46vw, 620px);
  justify-content: flex-end;
  padding-block: clamp(2.5rem, 6vw, 5rem);
  gap: clamp(1.25rem, 2.5vw, 2rem);
}
.mg-hero--media__inner .elementor-heading-title { color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.3); }

/* --------------------------------------------------------------------------
   20. TEXTO CENTRADO DE SECCIÓN
   -------------------------------------------------------------------------- */
.mg-prose-center { max-width: 60rem; margin-inline: auto; text-align: center; }
.mg-prose-center p { margin-bottom: .75em; }

/* --------------------------------------------------------------------------
   21. LISTA DE COMPROBACIÓN
   -------------------------------------------------------------------------- */
.mg-check { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .7rem; }
.mg-check li {
  position: relative;
  padding-left: 2rem;
  font-family: var(--mg-sans);
  font-size: .9375rem;
  color: var(--mg-text);
}
.mg-check li::before {
  content: "";
  position: absolute;
  left: 0; top: .35em;
  width: 1.1rem; height: 1.1rem;
  border-radius: 50%;
  background: var(--mg-green);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
  background-size: 70%;
  background-position: center;
  background-repeat: no-repeat;
}

.mg-certs--stack { gap: clamp(1.5rem, 4vw, 3rem); }

/* --------------------------------------------------------------------------
   22. REJILLA DE VARIEDADES
   -------------------------------------------------------------------------- */
.mg-varieties {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
}
.mg-variety__desc { font-size: .9375rem; margin-top: .9rem; }
.mg-variety__claim + .mg-variety__desc { margin-top: 1.1rem; }
.mg-variety__claim::after {
  content: "";
  display: block;
  width: 56px; height: 2px;
  background: rgba(81,96,60,.25);
  margin-top: 1rem;
}
.mg-variety .mg-italic-list { margin-top: 1.1rem; }

@media (max-width: 720px) { .mg-varieties { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   23. CALENDARIO (hueco a la espera del gráfico definitivo)
   -------------------------------------------------------------------------- */
.mg-calendar { display: grid; place-items: center; padding: clamp(1.5rem, 4vw, 3.5rem); min-height: clamp(240px, 30vw, 420px); }
.mg-cal-placeholder {
  border: 1px dashed rgba(81,96,60,.3);
  border-radius: var(--mg-radius-card);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  text-align: center;
  color: var(--mg-text-soft);
  font-size: .875rem;
  max-width: 30rem;
}
.mg-cal-placeholder strong { font-family: var(--mg-serif); color: var(--mg-green-dark); font-size: 1.125rem; font-weight: 500; }

/* --------------------------------------------------------------------------
   24. PUESTOS DE MERCAMADRID
   -------------------------------------------------------------------------- */
.mg-puestos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--mg-gap); align-items: start; }
.mg-puesto-card { display: flex; flex-direction: column; }
.mg-puesto-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--mg-cream-deep); }
.mg-puesto-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mg-puesto-card__ph {
  width: 100%; height: 100%;
  display: grid; place-items: center;
  text-align: center;
  font-family: var(--mg-sans);
  font-size: .8125rem;
  color: var(--mg-text-soft);
  background: repeating-linear-gradient(135deg, #E9E6E0 0 10px, #E3DFD7 10px 20px);
}
.mg-puesto-card__ph em { font-size: .75rem; opacity: .8; }
.mg-puesto-card__body { padding: clamp(1.25rem, 2vw, 1.75rem); display: flex; flex-direction: column; gap: .5rem; }
.mg-puesto-card__claim {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: clamp(1.125rem, 1.5vw, 1.375rem);
  color: var(--mg-green-dark);
  line-height: 1.15;
  margin: .35rem 0 0;
}
.mg-puesto-card__claim::after { content:""; display:block; width:56px; height:2px; background: var(--mg-orange); margin-top: .9rem; }
.mg-puesto-card__extra { margin-top: auto; padding-top: 1rem; color: var(--mg-text-soft); }

.mg-naves { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1.5rem, 4vw, 4rem); }

@media (max-width: 900px) {
  .mg-puestos-grid { grid-template-columns: 1fr; }
  .mg-naves { grid-template-columns: 1fr; }
}

/* ==========================================================================
   25. CAPA DE INTEGRACIÓN CON ELEMENTOR · IMPRESCINDIBLE
   Tres cosas que Elementor hace y que obligan a escribir así:
   a) las clases CSS de un widget se aplican al contenedor del widget,
      no a la etiqueta interna → selectores descendentes;
   b) el border-radius de los contenedores se pinta con --border-radius;
   c) max-width y gap se escriben por elemento, con más peso que una
      clase → de ahí los !important, que están acotados a estas reglas.
   Medidas tomadas del PDF aprobado sobre lienzo de 1920 px.
   ========================================================================== */

/* --- Titulares --- */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--mg-serif);
  font-weight: 500;
  color: var(--mg-green-dark);
  line-height: 1.08;
  letter-spacing: -.01em;
  margin: 0;
}
.mg-display .elementor-heading-title { font-size: var(--mg-fs-display); line-height: 1.04; }
.mg-h1 .elementor-heading-title      { font-size: var(--mg-fs-h1); }
.mg-h2 .elementor-heading-title      { font-size: var(--mg-fs-h2); }
.mg-h3 .elementor-heading-title      { font-size: var(--mg-fs-h3); line-height: 1.15; }
.mg-lead .elementor-heading-title    { font-size: var(--mg-fs-lead); line-height: 1.2; }

.mg-band-green .elementor-heading-title,
.mg-band-orange .elementor-heading-title,
.mg-hero--media .elementor-heading-title { color: #fff; }
.mg-band-green .mg-sub, .mg-band-orange .mg-sub,
.mg-band-green p, .mg-band-orange p { color: #fff; }
.mg-band-green .mg-italic-list, .mg-band-orange .mg-italic-list { color: rgba(255,255,255,.85); }

/* --- Botones --- */
.elementor-element.mg-btn .elementor-button {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mg-sans); font-weight: 600; font-size: .8125rem;
  letter-spacing: .1em; text-transform: uppercase; line-height: 1;
  padding: 1.05em 2.1em; border-radius: 6px;
  border: 2px solid var(--mg-green);
  background-color: var(--mg-green); color: #fff;
  transition: background-color .25s var(--mg-ease), border-color .25s var(--mg-ease),
              color .25s var(--mg-ease), transform .25s var(--mg-ease);
}
.elementor-element.mg-btn .elementor-button:hover,
.elementor-element.mg-btn .elementor-button:focus-visible {
  background-color: var(--mg-green-hover); border-color: var(--mg-green-hover);
  color: #fff; transform: translateY(-1px);
}
.elementor-element.mg-btn--outline .elementor-button {
  background-color: transparent; border-color: rgba(81,96,60,.35); color: var(--mg-green-dark);
}
.elementor-element.mg-btn--outline .elementor-button:hover,
.elementor-element.mg-btn--outline .elementor-button:focus-visible {
  background-color: var(--mg-green-dark); border-color: var(--mg-green-dark); color: #fff;
}
.elementor-element.mg-btn--white .elementor-button {
  background-color: #fff; border-color: #fff; color: var(--mg-green);
}
.elementor-element.mg-btn--white .elementor-button:hover,
.elementor-element.mg-btn--white .elementor-button:focus-visible {
  background-color: var(--mg-cream); border-color: var(--mg-cream); color: var(--mg-green-hover);
}

/* --- Cuerpo --- */
.elementor-widget-text-editor { font-family: var(--mg-sans); font-weight: 300; line-height: 1.65; color: var(--mg-text); }
.mg-prose-center .elementor-widget-text-editor { text-align: center; }

/* --- Curvas de las fotografías --- */
.e-con.mg-curve-tl { --border-radius: var(--mg-curve) 0 0 0; overflow: hidden; }
.e-con.mg-curve-tr { --border-radius: 0 var(--mg-curve) 0 0; overflow: hidden; }
.e-con.mg-curve-bl { --border-radius: 0 0 0 var(--mg-curve); overflow: hidden; }
.e-con.mg-curve-br { --border-radius: 0 0 var(--mg-curve) 0; overflow: hidden; }
.e-con[class*="mg-curve-"] img { border-radius: inherit; }

/* --- Anchura de contenido: 1720px con 100px de margen a 1920 --- */
.mg-inner > .e-con-inner {
  max-width: min(var(--mg-container), calc(100vw - var(--mg-gutter) * 2)) !important;
  margin-inline: auto;
  width: 100%;
}
.elementor-element.mg-inner { padding-inline: 0; }
.mg-inner > .e-con-inner > .e-con,
.mg-inner > .e-con-inner > .e-con > .e-con-inner { padding-inline: 0; }

/* --- Separaciones fluidas --- */
.mg-inner .e-con.e-child { gap: var(--mg-gap) !important; }
.mg-hero__row, .mg-split__row { gap: 0 !important; }
.mg-hero__text, .mg-split__text { gap: 0 !important; }
.mg-hero__actions { gap: 12px !important; flex-wrap: wrap; }

/* --- Bloques a sangre: sin relleno de Elementor --- */
.e-con.mg-hero, .e-con.mg-split, .e-con.mg-strip-green,
.e-con.mg-hero--media, .mg-hero__row, .mg-split__row,
.mg-hero__media, .mg-split__media, .mg-media { padding: 0 !important; }

.elementor-element.mg-strip-green { height: 26px; min-height: 26px; }
.elementor-element.mg-section        { padding-block: var(--mg-section-y); }
.elementor-element.mg-section--tight { padding-block: clamp(28px, 2.4vw, 44px); }

/* --- Alturas y márgenes del hero y de los bloques partidos --- */
.mg-hero__row { min-height: var(--mg-hero-h); }
.mg-hero__media { min-height: var(--mg-hero-h); }
.mg-hero__text {
  padding-block: clamp(40px, 4vw, 72px);
  padding-inline-start: max(var(--mg-gutter), calc((100vw - var(--mg-container)) / 2));
  padding-inline-end: clamp(24px, 3.5vw, 72px);
  justify-content: center;
}
.mg-hero__actions { margin-top: clamp(28px, 3vw, 52px); }

.mg-split__row { min-height: clamp(320px, 30vw, 582px); }
.mg-split__media { min-height: clamp(280px, 30vw, 582px); }
.mg-split__text {
  padding-inline-start: max(var(--mg-gutter), calc((100vw - var(--mg-container)) / 2));
  padding-inline-end: clamp(24px, 4vw, 96px);
  justify-content: center;
}
.mg-split__row > .mg-split__media:first-child + .mg-split__text {
  padding-inline-start: clamp(24px, 4vw, 96px);
  padding-inline-end: max(var(--mg-gutter), calc((100vw - var(--mg-container)) / 2));
}

/* --- Astra: fuera el título de página duplicado --- */
.elementor-page .entry-header { display: none; }
.ast-page-builder-template .entry-content,
.ast-page-builder-template .site-content > .ast-container { padding: 0; margin: 0; max-width: none; }

/* --- Header --- */
.site-header .site-title, .site-header .site-description { display: none !important; }
.ast-primary-header-bar, .site-header { background: #fff; }
.site-logo-img img { max-width: 190px; height: auto; }
.main-header-menu > .menu-item > .menu-link {
  font-family: var(--mg-sans); font-weight: 500; font-size: .8125rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--mg-green-dark);
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link { color: var(--mg-green); }
.main-header-menu > .mg-menu-cta > .menu-link {
  background: var(--mg-green); color: #fff; border-radius: 6px;
  padding-inline: 1.6em; margin-left: .75rem;
}
.main-header-menu > .mg-menu-cta > .menu-link:hover { background: var(--mg-green-hover); color: #fff; }

/* --- Tarjetas de valor: aire interno del PDF --- */
.mg-card--value { padding: clamp(20px, 2.1vw, 40px); }
.mg-card--value .mg-icon { margin-bottom: clamp(28px, 4.4vw, 84px); }

@media (max-width: 880px) {
  .mg-hero__row, .mg-split__row { flex-direction: column; min-height: 0; }
  .mg-hero__text, .mg-split__text, .mg-hero__media, .mg-split__media { width: 100% !important; }
  .mg-hero__media, .mg-split__media { min-height: 260px; order: -1; }
  .mg-hero__text, .mg-split__text,
  .mg-split__row > .mg-split__media:first-child + .mg-split__text { padding-inline: var(--mg-gutter); }
  .mg-quality__deco { display: none; }
}

/* ==========================================================================
   26. PIE DE PÁGINA
   Tarjeta blanca redondeada sobre crema, con el patrón de líneas verdes
   al pie, tal y como está en el PDF aprobado.
   ========================================================================== */
.site-footer, .ast-footer-overlay { background: var(--mg-cream) !important; }
.site-below-footer-wrap, .ast-below-footer-wrap { display: none; }

.mg-footer {
  background: var(--mg-cream);
  padding-block: var(--mg-section-y) 0;
}
.mg-footer__card {
  width: min(var(--mg-container), calc(100% - var(--mg-gutter) * 2));
  margin-inline: auto;
  background: #fff;
  border-radius: var(--mg-radius-card);
  padding: clamp(28px, 3.6vw, 68px);
  display: grid;
  grid-template-columns: minmax(200px, 1fr) minmax(180px, 1fr) minmax(240px, 1.1fr);
  gap: clamp(28px, 3vw, 60px);
  align-items: start;
}
.mg-footer__brand img { width: clamp(140px, 13vw, 230px); height: auto; display: block; }
.mg-footer__brand p {
  font-size: var(--mg-fs-small);
  color: var(--mg-text-soft);
  margin-top: 1.25rem;
  max-width: 26ch;
}

.mg-footer__nav { display: flex; flex-direction: column; }
.mg-footer__nav a {
  font-family: var(--mg-sans);
  font-weight: 500;
  font-size: .875rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--mg-green-dark);
  padding-block: .6rem;
}
.mg-footer__nav a:hover { color: var(--mg-green); }

.mg-footer__contact { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.mg-footer__contact .mg-footer__btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mg-sans); font-weight: 600; font-size: .8125rem;
  letter-spacing: .1em; text-transform: uppercase; line-height: 1;
  padding: 1.05em 2.4em; border-radius: 6px;
  background: var(--mg-green); color: #fff;
  transition: background-color .25s var(--mg-ease);
}
.mg-footer__contact .mg-footer__btn:hover { background: var(--mg-green-hover); color: #fff; }

.mg-footer__data { font-size: var(--mg-fs-small); color: var(--mg-text-soft); line-height: 1.7; }
.mg-footer__data strong { color: var(--mg-green-dark); font-weight: 500; display: block; }
.mg-footer__data a { color: var(--mg-text-soft); }
.mg-footer__data a:hover { color: var(--mg-green); }
.mg-footer__pending {
  display: inline-block;
  margin-top: .5rem;
  padding: .2em .6em;
  border: 1px dashed rgba(224,122,32,.6);
  border-radius: 4px;
  font-size: .6875rem;
  letter-spacing: .04em;
  color: var(--mg-orange);
}

.mg-footer__legal {
  width: min(var(--mg-container), calc(100% - var(--mg-gutter) * 2));
  margin: clamp(20px, 2vw, 32px) auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  font-size: var(--mg-fs-small);
  color: var(--mg-text-soft);
}
.mg-footer__legal nav { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
.mg-footer__legal a { color: var(--mg-text-soft); }
.mg-footer__legal a:hover { color: var(--mg-green); }

.mg-footer__pattern {
  margin-top: clamp(16px, 2vw, 28px);
  height: clamp(70px, 8vw, 150px);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
}

@media (max-width: 900px) {
  .mg-footer__card { grid-template-columns: 1fr 1fr; }
  .mg-footer__contact { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .mg-footer__card { grid-template-columns: 1fr; }
  .mg-footer__legal { justify-content: flex-start; }
}
/* ==========================================================================
   27. PÁGINA DE CONTACTO
   ========================================================================== */
.mg-hero--plain__inner { max-width: 54rem; padding-block: clamp(48px, 6vw, 104px); }
.mg-lead-sm .elementor-widget-container,
.mg-lead-sm { font-size: 1.0625rem; max-width: 46rem; }

/* Tarjeta del formulario */
.mg-form-card {
  background: #fff;
  border-radius: var(--mg-radius-card);
  box-shadow: var(--mg-shadow-card);
  padding: clamp(24px, 3vw, 56px) !important;
  gap: 0 !important;
}
.mg-form-card__title .elementor-heading-title { font-size: clamp(1.5rem, 2.2vw, 2rem); }
.mg-form-card > .elementor-widget-text-editor { margin-top: .6rem; color: var(--mg-text-soft); }
.mg-form-card .mg-form { margin-top: clamp(20px, 2.4vw, 36px); }

/* Columna lateral: área comercial */
.mg-aside {
  border-left: 2px solid rgba(81, 96, 60, .12);
  padding-left: clamp(20px, 2.4vw, 44px);
}
.mg-aside__title {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: clamp(1.375rem, 2vw, 1.75rem);
  color: var(--mg-green-dark);
  line-height: 1.15;
  margin: .6rem 0 1rem;
}
.mg-aside__note { margin-top: 1.75rem; color: var(--mg-text-soft); }

.mg-contact-list { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: 1.1rem; }
.mg-contact-list li {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: .75rem;
  align-items: baseline;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid rgba(81, 96, 60, .1);
}
.mg-contact-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.mg-contact-list__k {
  font-family: var(--mg-sans);
  font-weight: 500;
  font-size: .6875rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--mg-green);
}
.mg-contact-list__v { font-size: .9375rem; color: var(--mg-green-dark); }

/* Marcador de dato pendiente: visible a propósito, para que nadie publique
   la web creyendo que los datos están puestos. */
.mg-pending {
  display: inline-block;
  padding: .25em .7em;
  border: 1px dashed rgba(224, 122, 32, .65);
  border-radius: 4px;
  background: rgba(224, 122, 32, .06);
  font-family: var(--mg-sans);
  font-size: .6875rem;
  letter-spacing: .03em;
  color: #B85F12;
  line-height: 1.4;
}

/* Ubicaciones */
.mg-locations { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--mg-gap); align-items: start; }
.mg-location { padding: clamp(24px, 2.6vw, 44px); display: flex; flex-direction: column; gap: 1rem; }
.mg-location__head h3 {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  color: var(--mg-green-dark);
  line-height: 1.1;
  margin: .4rem 0 0;
}
.mg-location__head h3::after {
  content: ""; display: block; width: 64px; height: 2px;
  background: var(--mg-orange); margin-top: 1rem;
}
.mg-location__data { margin: .5rem 0 0; }
.mg-location__data dt {
  font-family: var(--mg-sans); font-weight: 500; font-size: .6875rem;
  letter-spacing: .16em; text-transform: uppercase; color: var(--mg-green);
  margin-bottom: .5rem;
}
.mg-location__data dd { margin: 0; font-size: .9375rem; }
.mg-location__naves {
  display: flex; flex-wrap: wrap; gap: 1rem 2.5rem;
  padding: 1.1rem 0; border-block: 1px solid rgba(81, 96, 60, .1);
}
.mg-location__naves > div { display: flex; flex-direction: column; gap: .35rem; }
.mg-location__nums {
  font-family: var(--mg-serif); font-weight: 500;
  font-size: 1.375rem; color: var(--mg-orange); line-height: 1;
}

/* Cierre con accesos a las otras secciones */
.mg-closing { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--mg-gap); }
.mg-closing__item {
  display: flex; flex-direction: column; gap: .6rem;
  padding: clamp(20px, 2.2vw, 34px);
  background: #fff;
  border-radius: var(--mg-radius-card);
  box-shadow: var(--mg-shadow-card);
  transition: transform .3s var(--mg-ease), box-shadow .3s var(--mg-ease);
}
.mg-closing__item:hover { transform: translateY(-3px); box-shadow: var(--mg-shadow-soft); }
.mg-closing__t {
  font-family: var(--mg-serif); font-weight: 500;
  font-size: 1.125rem; color: var(--mg-green-dark); line-height: 1.2;
}

@media (max-width: 900px) {
  .mg-aside { border-left: 0; border-top: 2px solid rgba(81,96,60,.12); padding-left: 0; padding-top: clamp(24px,3vw,40px); }
  .mg-locations, .mg-closing { grid-template-columns: 1fr; }
}

/* ==========================================================================
   28. FLUENT FORMS · ESTILO DEL SISTEMA
   ========================================================================== */
.mg-form .frm-fluent-form { --ff-gap: 1.1rem; }
.mg-form .ff-el-group { margin-bottom: 1.1rem; }
.mg-form .ff-el-input--label label {
  font-family: var(--mg-sans); font-weight: 500; font-size: .75rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--mg-green);
  margin-bottom: .45rem;
}
.mg-form .ff-el-input--label.asterisk-right label:after { color: var(--mg-orange); }
.mg-form input:not([type="submit"]):not([type="checkbox"]),
.mg-form select,
.mg-form textarea {
  width: 100%;
  background: var(--mg-cream);
  border: 1px solid rgba(81, 96, 60, .16);
  border-radius: 10px;
  padding: .9rem 1.1rem;
  font-family: var(--mg-sans);
  font-weight: 300;
  font-size: .9375rem;
  color: var(--mg-text);
  box-shadow: none;
  transition: border-color .2s var(--mg-ease), box-shadow .2s var(--mg-ease), background-color .2s var(--mg-ease);
}
.mg-form input:focus, .mg-form select:focus, .mg-form textarea:focus {
  background: #fff;
  border-color: var(--mg-green);
  box-shadow: 0 0 0 3px rgba(1, 148, 57, .12);
  outline: none;
}
.mg-form textarea { min-height: 8rem; resize: vertical; }

.mg-form .ff-el-tc { font-size: .8125rem; color: var(--mg-text-soft); }
.mg-form .ff-el-tc p { margin-bottom: .6rem; }
.mg-form .ff_tc_checkbox + label,
.mg-form .ff-el-form-check-label { font-size: .8125rem; color: var(--mg-green-dark); }

.mg-form .ff-btn-submit {
  background: var(--mg-green) !important;
  border: 2px solid var(--mg-green) !important;
  border-radius: 6px !important;
  font-family: var(--mg-sans) !important;
  font-weight: 600 !important;
  font-size: .8125rem !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  padding: 1.05em 2.4em !important;
  color: #fff !important;
  transition: background-color .25s var(--mg-ease), transform .25s var(--mg-ease);
}
.mg-form .ff-btn-submit:hover {
  background: var(--mg-green-hover) !important;
  border-color: var(--mg-green-hover) !important;
  transform: translateY(-1px);
}
.mg-form .ff-el-is-error input, .mg-form .ff-el-is-error textarea, .mg-form .ff-el-is-error select { border-color: #C0392B; }
.mg-form .error-text, .mg-form .text-danger { font-size: .75rem; color: #C0392B; }
.mg-form .ff-message-success {
  background: rgba(1, 148, 57, .08);
  border: 1px solid rgba(1, 148, 57, .3);
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  color: var(--mg-green-dark);
  font-size: .9375rem;
}

/* ==========================================================================
   29. BLOG · ÍNDICE Y ENTRADA
   ========================================================================== */
.mg-archive-head { background: var(--mg-cream); }
.mg-archive-head__inner {
  width: min(var(--mg-container), calc(100% - var(--mg-gutter) * 2));
  margin-inline: auto;
  padding-block: clamp(48px, 6vw, 104px);
  text-align: center;
}
.mg-archive-head__title {
  font-family: var(--mg-serif);
  font-weight: 500;
  font-size: var(--mg-fs-h1);
  color: var(--mg-green-dark);
  line-height: 1.05;
  margin: 0;
}
.mg-archive-head .mg-sub { margin-top: .6rem; }
.mg-strip-green[role="presentation"] { height: 26px; background: var(--mg-green); }

/* Índice: las entradas con el mismo lenguaje que las tarjetas de la Home */
.blog .site-content > .ast-container,
.archive .site-content > .ast-container,
.single-post .site-content > .ast-container {
  width: min(var(--mg-container), calc(100% - var(--mg-gutter) * 2));
  max-width: none;
  margin-inline: auto;
  padding-block: var(--mg-section-y);
}
.blog .ast-row, .archive .ast-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--mg-gap); }
.blog .ast-article-post, .archive .ast-article-post {
  background: #fff;
  border-radius: var(--mg-radius-card);
  box-shadow: var(--mg-shadow-card);
  overflow: hidden;
  padding: 0;
  border: 0;
  transition: transform .3s var(--mg-ease), box-shadow .3s var(--mg-ease);
}
.blog .ast-article-post:hover, .archive .ast-article-post:hover {
  transform: translateY(-3px); box-shadow: var(--mg-shadow-soft);
}
.blog .post-thumb img, .archive .post-thumb img { width: 100%; aspect-ratio: 76/52; object-fit: cover; display: block; }
.blog .ast-article-post .entry-content,
.blog .ast-article-post .entry-header,
.archive .ast-article-post .entry-content,
.archive .ast-article-post .entry-header { padding-inline: clamp(20px, 2vw, 28px); }
.blog .ast-article-post .entry-header { padding-top: clamp(18px, 2vw, 26px); }
.blog .ast-article-post .entry-content { padding-bottom: clamp(20px, 2vw, 28px); }
.blog .entry-title, .archive .entry-title {
  font-family: var(--mg-serif); font-weight: 500;
  font-size: clamp(1.125rem, 1.5vw, 1.375rem); line-height: 1.15;
}
.blog .entry-title a, .archive .entry-title a { color: var(--mg-green-dark); }
.blog .entry-title a:hover, .archive .entry-title a:hover { color: var(--mg-green); }

/* Entrada individual: ancho de lectura cómodo */
.single-post .entry-content > * { max-width: 46rem; margin-inline: auto; }
.single-post .entry-title { font-size: clamp(2rem, 3.6vw, 3.25rem); max-width: 46rem; margin-inline: auto; }
.single-post .entry-content h2 {
  font-family: var(--mg-serif); font-weight: 500;
  font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--mg-green-dark);
  margin-top: 2.25em; margin-bottom: .6em;
}
.single-post .entry-content p, .single-post .entry-content li { font-size: 1.0625rem; line-height: 1.75; }
.single-post .entry-content ul { padding-left: 1.2em; }
.single-post .entry-content li { margin-bottom: .5em; }
.single-post .entry-content a { text-decoration: underline; text-underline-offset: .2em; }

@media (max-width: 900px) { .blog .ast-row, .archive .ast-row { grid-template-columns: 1fr; } }

/* Crédito de estudio en el pie */
.mg-footer__credito { margin: 0; width: 100%; padding-top: .6rem; }
.mg-footer__credito a { color: var(--mg-green-dark); border-bottom: 1px solid rgba(81,96,60,.25); }
.mg-footer__credito a:hover { color: var(--mg-green); border-bottom-color: var(--mg-green); }
@media (min-width: 720px) {
  .mg-footer__legal { align-items: baseline; }
  .mg-footer__credito { width: auto; padding-top: 0; margin-left: auto; }
}

/* La barra de copyright de Astra se oculta: duplica el aviso legal
   y añade la coletilla del tema. */
.site-footer .site-below-footer-wrap,
.site-below-footer-wrap,
.ast-below-footer-wrap { display: none !important; }

/* Noticias de la Home: tres artículos */
.mg-news { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .mg-news { grid-template-columns: 1fr; } }
.e-con.mg-center-btn { align-items: center !important; margin-inline: auto !important; }
