/*
Theme Name: Wanaframe
Theme URI: https://www.wanatop.com/
Author: Wanatop
Author URI: https://www.wanatop.com/
Description: 
Version: 1.0.0
Requires at least: 4.5.0
Tested up to: 5.7
Requires PHP: 5.4.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wanaframe
Tags: 

Template: generatepress
*/

/***** FONTS ******/
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap');

body {
  font-family: 'Lato', sans-serif;
}

h1, h2, h3, p, a, button {
  font-family: 'Lato', sans-serif;
}

/*** CTA con flecha ****/
.btn-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-width: 160px;
    height: 40px;
    background: #70B344;
    color: #fff;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    padding: 0px 20px 0px 20px;
}

.btn-arrow::after {
  content: "→";
  /* Como la flecha de los botones de producto (.producto-hero__button-arrow) */
  font-size: 22px;
  font-weight: 300;
  line-height: .8;
}

.btn-arrow:hover {
  background: #1F574C;
  color: #fff;
}

/**** CTA Transparente *****/
.btn-trans {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-width: 160px;
    height: 40px;
    background: transparent;
    color: #fff;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    padding: 0px 20px 0px 20px;
    border: solid 1px;
    border-color: white;
}

.btn-trans::after {
  content: "→";
  /* Como la flecha de los botones de producto (.producto-hero__button-arrow) */
  font-size: 22px;
  font-weight: 300;
  line-height: .8;
}

.btn-trans:hover {
  background: #BECA31;
  color: #fff;
}

/**** Tag title ****/

.tag-title {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 8px 12px;
    background: #f4f5f6;
    border-radius: 10px;
    color: #358D63;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 4px;
    text-transform: uppercase;
}

.tag-wrap {
  text-align: center;
}


.card-ganaderia {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #f5f6f7;
    border-radius: 28px;
    box-shadow: 10px 12px 18px rgba(0, 0, 0, 0.22);
    overflow: hidden;
    margin: 30px;
}

.card-ganaderia h2,
.card-ganaderia h3,
.card-ganaderia .elementor-heading-title {
  margin: 0;

  color: #4b4b4b;
  font-family: 'Lato', sans-serif;
  font-size: 33px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 10px;
  text-transform: uppercase;
  text-align: center;
}

.card-ganaderia-p {
    text-align: center;
    font-weight: 500;
    letter-spacing: 5px;
}

/* Tipos de producto de la home ([somvital_tipos]): 4 por fila, la última centrada */
.home-tipos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.home-tipo {
  flex: 0 1 calc((100% - 3 * 28px) / 4);
  min-width: 0;
}
@media (max-width: 1024px) {
  .home-tipo {
    flex-basis: calc((100% - 2 * 28px) / 3);
  }
}
@media (max-width: 767px) {
  .home-tipos {
    gap: 14px;
  }
  .home-tipo {
    flex-basis: calc((100% - 14px) / 2);
  }
}

/* Tarjeta de categoría sin foto (template-parts/catalogo/tarjeta-categoria.php):
   blanca con franja, hoja y flecha en el color del tipo (--svc-color-tipo en
   el enlace; verde si no tiene). Al pasar el ratón se rellena del color. */
.svc-categoria {
  --cat-color: var(--svc-color-tipo, #70B344);
  --cat-texto: var(--svc-color-tipo-texto, #fff);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  height: 100%;
  min-height: 168px;
  padding: 28px 24px 24px 34px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e8ece8;
  border-radius: 20px;
  box-shadow: 0 12px 32px rgba(0, 45, 25, .09);
  color: #231F20;
  text-decoration: none;
  transition: background-color .3s ease, color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.svc-categoria::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 6px;
  background: var(--cat-color);
}
.svc-categoria::after {
  content: "";
  position: absolute;
  right: -18px;
  bottom: -36px;
  width: 112px;
  height: 151px;
  background: var(--cat-color);
  opacity: .13;
  -webkit-mask: url("img/catalogo/hoja-logo.png") no-repeat center / contain;
  mask: url("img/catalogo/hoja-logo.png") no-repeat center / contain;
  transform: rotate(-12deg);
  transition: background-color .3s ease, opacity .3s ease;
  pointer-events: none;
}
.svc-categoria__nombre {
  position: relative;
  z-index: 1;
  font-family: 'Lato', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
}
.svc-categoria__flecha {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  width: 44px;
  height: 44px;
  border: 2px solid var(--cat-color);
  border-radius: 50%;
  color: var(--cat-color);
  transition: background-color .3s ease, border-color .3s ease, color .3s ease, transform .3s ease;
}
.svc-categoria:hover,
.svc-categoria:focus-visible {
  background: var(--cat-color);
  border-color: var(--cat-color);
  color: var(--cat-texto);
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0, 45, 25, .16);
}
.svc-categoria:focus-visible {
  outline: 3px solid #231F20;
  outline-offset: 3px;
}
.svc-categoria:hover::after,
.svc-categoria:focus-visible::after {
  background: var(--cat-texto);
  opacity: .16;
}
.svc-categoria:hover .svc-categoria__flecha,
.svc-categoria:focus-visible .svc-categoria__flecha {
  background: var(--cat-texto);
  border-color: var(--cat-texto);
  color: var(--cat-color);
  transform: translateX(4px);
}
@media (max-width: 767px) {
  .svc-categoria {
    gap: 18px;
    min-height: 132px;
    padding: 20px 16px 18px 24px;
    border-radius: 16px;
  }
  .svc-categoria__nombre {
    font-size: 16px;
  }
  .svc-categoria__flecha {
    width: 36px;
    height: 36px;
  }
  .svc-categoria::after {
    width: 84px;
    height: 113px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .svc-categoria,
  .svc-categoria__flecha {
    transition: none;
  }
  .svc-categoria:hover,
  .svc-categoria:focus-visible,
  .svc-categoria:hover .svc-categoria__flecha {
    transform: none;
  }
}


/**** NEWSLETTER ****/

.form-suscripcion .form-row {
  margin-bottom: 18px;
}

.form-suscripcion input[type="text"],
.form-suscripcion input[type="email"] {
  width: 100%;
  height: 50px;
  padding: 0 40px;

  background: #fff;
  border: 0;
  border-radius: 10px;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.16);

  color: #777;
  font-size: 16px;
  font-weight: 300;
  outline: none;
}

.form-suscripcion input::placeholder {
  color: #777;
  opacity: 1;
}

.form-suscripcion .form-check {
  margin: 10px 0;
  color: #fff;
  font-size: 10px;
  font-weight: 300;
}

.form-suscripcion .form-check label {
  display: flex;
  align-items: center;
  gap: 18px;
}

.form-suscripcion input[type="checkbox"] {
  width: 14px;
  height: 14px;
  margin: 0;
  flex: 0 0 14px;
  accent-color: #1f6257;
}

.form-suscripcion .form-submit {
  display: flex;
  justify-content: flex-end;
  margin-top: 26px;
}

.form-suscripcion input[type="submit"] {
  min-width: 256px;
  height: 50px;
  padding: 0 42px;

  background: #1f6257;
  color: #fff;
  border: 0;
  border-radius: 999px;

  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}

.form-suscripcion input[type="submit"]:hover {
  background: #19554b;
}

@media (max-width: 767px) {
  .form-suscripcion {
    padding: 24px 18px;
  }

  .form-suscripcion input[type="text"],
  .form-suscripcion input[type="email"] {
    height: 50px;
    padding: 0 24px;
    font-size: 16px;
  }

  .form-suscripcion .form-check {
    font-size: 10px;
  }

  .form-suscripcion .form-submit {
    justify-content: center;
    margin-top: 24px;
  }

  .form-suscripcion input[type="submit"] {
    width: 100%;
    min-width: 0;
    height: 50px;
    font-size: 16px;
  }
}


/* Play video hero */

.play-video-home {
  position: absolute;
  right: 10%;
  bottom: 18%;

  display: flex;
  justify-content: center;
  align-items: center;
}

.play-video-home__button {
  position: relative;
  width: 115px;
  height: 115px;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}

.play-video-home__text {
  position: absolute;
  inset: 0;
  animation: playVideoHomeRotate 9s linear infinite;
}

.play-video-home__text span {
  position: absolute;
  left: 50%;
  top: 0;

  color: #fff;
  font-family: 'Lato', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;

  transform-origin: 0 57px;
}

.play-video-home__icon {
  position: absolute;
  left: 50%;
  top: 50%;

  width: 0;
  height: 0;

  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  border-left: 19px solid #fff;

  transform: translate(-35%, -50%);
}

.play-video-home__button:hover .play-video-home__text {
  animation-duration: 4s;
}

@keyframes playVideoHomeRotate {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}


/* Diagrama HOME */

.somvital-partner {
  position: relative;
  overflow: hidden;
  min-height: 580px;
  padding: 90px 70px 100px;
  border-radius: 70px;
  background:
    linear-gradient(rgba(18, 103, 112, 0.62), rgba(35, 95, 58, 0.45)),
    url("http://somvital.wanatop.eu/wp-content/uploads/aerial-view-road-mountains.jpeg") center / cover no-repeat;
  font-family: 'Lato', sans-serif;
}

.somvital-partner h2 {
  margin: 0 0 80px;
  color: #fff;
  font-size: 46px;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
}

.partner-grid {
  position: relative;
  min-height: 500px;
}

.partner-card {
  position: absolute;
  z-index: 3;
  width: 25%;
  max-width: 400px;
  padding: 20px 20px;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
}

.partner-card h3 {
  margin: 0 0 4px;
  color: #369269;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}

.partner-card p {
  margin: 0;
  color: #252525;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
}

.card-left {
  left: 0;
}

.card-right {
  right: 0;
}

.card-top {
  top: 50px;
}

.card-bottom {
  bottom: 0;
}

.partner-center {
  position: absolute;
  inset: 30px 0 0;
  z-index: 2;
  width: 350px;
  height: 350px;
  margin: auto;
}

.partner-circle {
  width: 100%;
  height: 100%;
  border: 5px solid #fff;
  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;
}

.partner-circle img {
  width: 58%;
  max-width: 290px;
  height: auto;
  display: block;
}

.icon-bubble {
  position: absolute;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: #c7d423;
  color: #fff;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 28px;
  font-weight: 300;
  line-height: 1;
}

.icon-1 {
  top: 38px;
  left: -12px;
}

.icon-2 {
  top: 38px;
  right: -12px;
}

.icon-3 {
  bottom: 0;
  right: -12px;
}

.icon-4 {
  bottom: 0;
  left: -12px;
}

@media (max-width: 1024px) {
  .somvital-partner {
    padding: 70px 30px;
    border-radius: 42px;
  }

  .somvital-partner h2 {
    font-size: 28px;
    margin-bottom: 50px;
  }

  .partner-grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-height: 0;
  }

  .partner-card,
  .partner-center {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: none;
  }

  .partner-center {
    order: -1;
    width: 360px;
    height: 360px;
    margin: 0 auto 20px;
  }

  .icon-bubble {
    width: 82px;
    height: 82px;
    font-size: 38px;
  }
}

@media (max-width: 767px) {
  .somvital-partner {
    padding: 48px 18px;
    border-radius: 28px;
  }

  .somvital-partner h2 {
    font-size: 28px;
  }

  .partner-card {
    padding: 26px 24px;
    border-radius: 18px;
  }

  .partner-card h3 {
    font-size: 22px;
  }

  .partner-card p {
    font-size: 16px;
  }

  .partner-center {
    width: 280px;
    height: 280px;
  }

  .partner-circle {
    border-width: 7px;
  }

  .icon-bubble {
    width: 66px;
    height: 66px;
    font-size: 30px;
  }
}


/**** SAIB (página Servicios) ****/

.saib-verde {
  color: #70B344;
}

/* Las 10 ventajas: marca de agua del hexágono, cortada abajo a la derecha */
.saib-ventajas {
  overflow: hidden;
  background: #f5f6f7 url("img/saib-marca-agua.png") no-repeat right 4% bottom -170px / 430px auto;
}

.saib-ventajas__lista {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 60px 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.saib-ventajas__lista li {
  display: flex;
  flex-direction: column;
  margin: 0;
}

.saib-ventajas__num {
  padding-bottom: 20px;
  border-bottom: 1px solid #b8c4be;
  color: #358D63;
  font-size: 72px;
  font-weight: 900;
  line-height: 1;
}

.saib-ventajas__texto {
  padding-top: 18px;
  color: #1F574C;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .5px;
  text-transform: uppercase;
}

/* Plataforma: tarjeta gris sobre una franja verde inclinada */
.saib-plataforma {
  position: relative;
}

.saib-plataforma::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #70B344;
  clip-path: polygon(38% 0, 100% 0, 100% 100%, 21% 100%);
}

.saib-plataforma > .elementor-container {
  position: relative;
  z-index: 1;
}

.saib-plataforma__tarjeta > .elementor-widget-wrap {
  background: #f4f4f4;
  border-radius: 40px;
}

/* Foto en hexágono con otro hexágono verde detrás, desplazado */
.saib-hexagono .elementor-widget-container {
  position: relative;
  max-width: 440px;
  margin: 0 auto;
}

.saib-hexagono .elementor-widget-container::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #70B344;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
  transform: translate(-8px, 14px);
}

.saib-hexagono img {
  position: relative;
  display: block;
  width: 100% !important;
  aspect-ratio: 1.15;
  object-fit: cover;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}

/* Mucho más que gestión: franja verde inclinada, texto en tarjeta gris
   que pasa por debajo del portátil y sello SAIB en su esquina */
.saib-gestion {
  position: relative;
  overflow: hidden;
}

.saib-gestion::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #70B344;
  clip-path: polygon(36% 0, 100% 0, 100% 100%, 25% 100%);
}

.saib-gestion > .elementor-container {
  position: relative;
  z-index: 1;
}

/* min-width: 0 para que la tarjeta más ancha (120 %) no ensanche la columna */
.saib-gestion__texto {
  align-self: center;
  min-width: 0;
}

/* La tarjeta se alarga un 20 % por debajo del portátil; el texto conserva casi todo el ancho de la columna */
.saib-gestion__texto > .elementor-widget-wrap {
  flex: none;
  width: 120% !important;
  padding: 80px calc(20% + 10px) 80px 88px !important;
  border-radius: 50px;
  background: #f3f3f3;
}

.saib-gestion__destacado {
  color: #231F20;
  font-size: 16px;
  font-weight: 700;
}

.saib-gestion__imagen {
  z-index: 1;
}

/* El portátil empieza sobre la tarjeta (proporciones de la maqueta) */
.saib-gestion__imagen > .elementor-widget-wrap {
  position: relative;
  width: 96%;
  margin-left: -13%;
}

.saib-gestion__portatil {
  margin-bottom: 0 !important;
}

.saib-gestion__portatil img {
  display: block;
  width: 100%;
}

/* Sello sobre la esquina del portátil (posición medida en la maqueta) */
.elementor-widget.saib-gestion__sello {
  position: absolute;
  top: -4.7%;
  left: 88.3%;
  width: 30.2%;
  margin: 0;
}

.saib-gestion__sello img {
  display: block;
  width: 100%;
  border-radius: 50%;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .18);
}

/* Utilidades: 5 + 5 numeradas a los lados del móvil, que apoya en la sección siguiente */
.saib-utilidades__lista {
  display: flex;
  flex-direction: column;
  gap: 34px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.saib-utilidades__lista li {
  display: flex;
  align-items: center;
  gap: 24px;
  margin: 0;
}

.saib-utilidades__lista--izq li {
  flex-direction: row-reverse;
  text-align: right;
}

.saib-utilidades__num {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 32px;
  padding: 0 6px;
  border-radius: 4px;
  background: #358D63;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}

.saib-utilidades__texto {
  color: #3c3c3c;
  font-family: "Lato", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.saib-utilidades__movil {
  margin-bottom: 0 !important;
}

.saib-utilidades__movil img {
  display: block;
  width: 100%;
  max-width: 290px;
  margin: 0 auto;
}

@media (max-width: 1024px) {
  .saib-ventajas__lista {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 45px 30px;
  }

  .saib-ventajas__num {
    font-size: 60px;
  }
}

@media (max-width: 767px) {
  .saib-ventajas {
    background-position: right -60px bottom -90px;
    background-size: 260px auto;
  }

  .saib-ventajas__lista {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 35px 20px;
  }

  .saib-ventajas__num {
    padding-bottom: 14px;
    font-size: 48px;
  }

  .saib-ventajas__texto {
    padding-top: 12px;
    font-size: 12px;
  }

  .saib-plataforma::before {
    clip-path: polygon(70% 0, 100% 0, 100% 100%, 30% 100%);
  }

  .saib-plataforma__tarjeta > .elementor-widget-wrap {
    border-radius: 24px;
  }

  .saib-hexagono .elementor-widget-container {
    max-width: 320px;
  }

  /* Gestión: tarjeta y portátil apilados, la franja verde detrás del portátil */
  .saib-gestion::before {
    clip-path: polygon(100% 45%, 100% 100%, 0 100%, 0 65%);
  }

  .saib-gestion__texto > .elementor-widget-wrap {
    width: 100% !important;
    padding: 40px 24px !important;
    border-radius: 24px;
  }

  .saib-gestion__imagen {
    margin-top: 40px;
  }

  .saib-gestion__imagen > .elementor-widget-wrap {
    width: 80%;
    margin-left: 0;
  }

  /* Utilidades: las dos listas seguidas y el móvil al final */
  .saib-utilidades__fila .elementor-column:nth-child(2) {
    order: 3;
    margin-top: 40px;
  }

  .saib-utilidades__fila .elementor-column:nth-child(3) {
    margin-top: 22px;
  }

  .saib-utilidades__lista {
    gap: 22px;
  }

  .saib-utilidades__lista--izq li {
    flex-direction: row;
    text-align: left;
  }

  .saib-utilidades__lista li {
    gap: 16px;
  }

  .saib-utilidades__texto {
    font-size: 15px;
  }

  .saib-utilidades__movil img {
    max-width: 240px;
  }
}

/**** EQUIPOS (reutiliza las piezas de SAIB) ****/

/* Las anclas del índice no quedan bajo la cabecera */
.equipos-intro,
.equipos-ficha {
  scroll-margin-top: 90px;
}

.equipos-intro__texto {
  max-width: 820px;
  margin-right: auto;
  margin-left: auto;
}

/* Índice de los tres equipos: números de «Las 10 ventajas», en 3 columnas */
.saib-ventajas__lista.equipos-indice {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.equipos-indice a {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.equipos-indice__nombre {
  padding-top: 18px;
  color: #231F20;
  font-size: 26px;
  font-weight: 900;
  line-height: 1.2;
}

.equipos-indice .saib-ventajas__texto {
  padding-top: 6px;
}

.equipos-indice a:hover .saib-ventajas__num,
.equipos-indice a:focus .saib-ventajas__num {
  border-bottom-color: #70B344;
  color: #70B344;
}

.equipos-aplicaciones .elementor-widget-container {
  padding: 24px 28px;
  border-left: 4px solid #70B344;
  border-radius: 0 20px 20px 0;
  background: #f5f6f7;
}

.saib-plataforma .equipos-aplicaciones .elementor-widget-container {
  background: #fff;
}

.equipos-aplicaciones p:last-child {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .saib-ventajas__lista.equipos-indice {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .equipos-indice__nombre {
    font-size: 22px;
  }
}

/**** SOMVITAL (página corporativa, piezas de SAIB) ****/

#certificaciones,
#idi {
  scroll-margin-top: 90px;
}

/* Galería de la fábrica (widget «Galería básica» de Elementor, clase
   somvital-galeria; ampliación con el lightbox de Elementor). Las cinco
   primeras forman un mosaico: una ancha, dos pequeñas y dos altas; si se
   añaden más, siguen en filas de cuatro. */
.somvital-galeria .gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(2, 240px);
  grid-auto-rows: 240px;
  gap: 20px;
  margin: 0;
}

.somvital-galeria .gallery .gallery-item {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 24px;
  isolation: isolate; /* Que el redondeo recorte también la foto al hacer zoom */
}

.somvital-galeria .gallery-icon,
.somvital-galeria .gallery-icon a {
  display: block;
  height: 100%;
  border-radius: inherit;
  cursor: zoom-in;
}

.somvital-galeria .gallery-icon img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: inherit;
  object-fit: cover;
  transition: transform .4s ease;
}

.somvital-galeria .gallery-icon a:hover img,
.somvital-galeria .gallery-icon a:focus img {
  transform: scale(1.04);
}

.somvital-galeria .gallery .gallery-item:nth-child(1) {
  grid-column: 1 / 3;
  grid-row: 1;
}

.somvital-galeria .gallery .gallery-item:nth-child(4) {
  grid-column: 3;
  grid-row: 1 / 3;
}

.somvital-galeria .gallery .gallery-item:nth-child(5) {
  grid-column: 4;
  grid-row: 1 / 3;
}

/* Certificaciones: tarjetas con el sello arriba */
.somvital-sellos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.somvital-sello {
  margin: 0;
  padding: 36px 32px;
  background: #fff;
  border-radius: 28px;
  box-shadow: 0 10px 30px rgba(31, 87, 76, .08);
}

.somvital-sello__logo {
  display: flex;
  align-items: center;
  height: 110px;
  margin-bottom: 24px;
}

.somvital-sello__logo img {
  width: auto;
  max-width: 100%;
  max-height: 110px;
}

.somvital-sello__titulo {
  margin: 0 0 12px;
  color: #1F574C;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.3;
}

.somvital-sello p {
  margin: 0;
  color: #555;
  font-size: 15px;
  line-height: 1.6;
}

/* Política «Compromiso 360º» (PDF), tras los sellos */
.somvital-politica {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 30px;
  padding: 34px 40px;
  background: #1F574C;
  border-radius: 28px;
  color: #fff;
}
.somvital-politica__icono {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background: rgba(255, 255, 255, .12);
  border-radius: 50%;
  color: #A6D17F;
}
.somvital-politica__texto {
  flex: 1 1 auto;
  min-width: 0;
}
.somvital-politica__etiqueta {
  margin: 0 0 6px;
  color: #A6D17F;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}
.somvital-politica__titulo {
  margin: 0 0 8px;
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.3;
}
.somvital-politica__texto p:last-child {
  margin: 0;
  color: rgba(255, 255, 255, .85);
  font-size: 15px;
  line-height: 1.6;
}
.somvital-politica__boton {
  flex: none;
  padding: 14px 26px;
  background: #70B344;
  border-radius: 50px;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .2s ease;
}
.somvital-politica__boton:hover,
.somvital-politica__boton:focus-visible {
  background: #5e9a37;
  color: #fff;
}
.somvital-politica__boton:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.somvital-politica__boton span {
  font-weight: 400;
  opacity: .85;
}
@media (max-width: 767px) {
  .somvital-politica {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    padding: 28px 24px;
  }
  .somvital-politica__titulo {
    font-size: 18px;
  }
}

/* Proyecto TDI-FEDER dentro de la tarjeta de I+D+i */
.somvital-feder {
  padding-top: 70px;
  border-top: 1px solid #d5dcd8;
}

.somvital-datos {
  margin: 10px 0 0;
}

.somvital-datos > div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #d5dcd8;
  font-size: 15px;
  line-height: 1.5;
}

.somvital-datos dt {
  color: #358D63;
  font-weight: 700;
}

.somvital-datos dd {
  margin: 0;
  color: #555;
}

.somvital-cartel img {
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
}

.somvital-lema {
  margin: 0;
  color: #fff;
  font-size: 32px;
  font-weight: 900;
  letter-spacing: .5px;
}

@media (max-width: 1024px) {
  .somvital-sellos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .somvital-galeria .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    grid-auto-rows: 170px;
    gap: 12px;
  }

  .somvital-galeria .gallery .gallery-item {
    border-radius: 16px;
  }

  .somvital-galeria .gallery .gallery-item:nth-child(n) {
    grid-row: auto;
    grid-column: auto;
  }

  .somvital-galeria .gallery .gallery-item:nth-child(1) {
    grid-column: 1 / 3;
  }

  .somvital-sellos {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .somvital-sello {
    padding: 28px 24px;
  }

  .somvital-feder {
    padding-top: 50px;
  }

  .somvital-datos > div {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .somvital-lema {
    font-size: 26px;
  }
}

/**** SOMVITAL (página corporativa: filosofía, valores, CEO y propuesta de valor) ****/

/* Anclas del índice y del botón de la cabecera bajo la cabecera fija */
#quienes-somos,
#propuesta-de-valor,
#investigacion,
#calidad,
#asesoramiento,
#internacional,
#tecnologia {
  scroll-margin-top: 90px;
}

/* Imagen de los niños a todo el ancho; recorta el cielo, nunca el lema de abajo */
.somvital-banner .elementor-widget-image {
  margin-bottom: 0;
}

.somvital-banner__imagen img {
  display: block;
  width: 100%;
  max-height: 720px;
  object-fit: cover;
  object-position: center bottom;
}

/* Filosofía (como la intro de Empleo; css/empleo.css solo se carga allí):
   título, frase y lema a la izquierda, texto a la derecha con un filete verde */
.somvital-filosofia__texto > .elementor-widget-wrap {
  border-left: 3px solid #70B344;
}

.somvital-titulo .elementor-heading-title {
  color: #3c3c3c;
  font-size: clamp(28px, 2.6vw, 40px);
  font-weight: 900;
  line-height: 1.2;
}

.somvital-frase .elementor-heading-title {
  color: #3c3c3c;
  font-size: clamp(18px, 1.5vw, 23px);
  font-weight: 700;
  line-height: 1.4;
}

.somvital-texto {
  color: #444;
  font-size: 15px;
  line-height: 1.65;
}

.somvital-texto p:last-child,
.somvital-ceo__texto p:last-child {
  margin-bottom: 0;
}

.somvital-destacado {
  color: #358D63;
  font-size: 17px;
}

.somvital-hashtag .elementor-heading-title {
  color: #70B344;
  font-size: clamp(22px, 1.9vw, 30px);
  font-weight: 900;
}

/* Lo que nos mueve: título a la izquierda y tarjetas blancas con icono, de 2 en 2 */
.somvital-valores-seccion > .elementor-container {
  align-items: center;
}

.somvital-valores {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.somvital-valor {
  margin: 0;
  padding: 32px 30px 30px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(31, 87, 76, .08);
  transition: transform .25s ease, box-shadow .25s ease;
}

.somvital-valor:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(31, 87, 76, .14);
}

.somvital-valor__icono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #eaf4e3;
  color: #358D63;
}

.somvital-valor__nombre {
  margin: 0 0 10px;
  color: #1F574C;
  font-size: 19px;
  font-weight: 900;
  line-height: 1.3;
}

.somvital-valor__texto {
  margin: 0;
  color: #555;
  font-size: 15px;
  line-height: 1.6;
}

/* Fotos: «marco» con la misma forma en verde detrás, desplazada por igual a la izquierda y abajo,
   y «arco»: vertical, con las esquinas redondeadas (sin curva arriba) */
.somvital-foto img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.somvital-foto--marco .elementor-widget-container {
  position: relative;
  max-width: 92%;
  margin-right: auto;
  margin-left: auto;
}

/* El ancho lo da el contenedor (92 %): la foto lo llena y el verde mide lo mismo */
.somvital-foto--marco img {
  width: 100% !important;
}

.somvital-foto--marco .elementor-widget-container::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 24px;
  background: #70B344;
  transform: translate(-12px, 12px); /* asoma lo mismo por el lado que por abajo */
}

.somvital-foto--marco img {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: 24px;
}

.somvital-foto--arco img {
  aspect-ratio: 4 / 5;
  border-radius: 24px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .12);
}

/* Mensaje del CEO: texto centrado en una columna estrecha y firma */
.somvital-ceo__texto {
  max-width: 780px;
  margin-right: auto;
  margin-left: auto;
}

.somvital-firma {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  max-width: 780px;
  margin: 40px auto 0;
  padding-top: 24px;
  border-top: 1px solid #b8c4be;
  color: #555;
  font-size: 15px;
  text-align: center;
}

.somvital-firma strong {
  color: #231F20;
  font-size: 20px;
  font-weight: 900;
}

/* Índice de la propuesta de valor: 5 apartados en una fila */
.saib-ventajas__lista.equipos-indice.somvital-indice {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 40px 30px;
}

.somvital-indice .equipos-indice__nombre {
  font-size: 20px;
}

@media (max-width: 1024px) {
  .saib-ventajas__lista.equipos-indice.somvital-indice {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .somvital-valores,
  .saib-ventajas__lista.equipos-indice.somvital-indice {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .somvital-valor {
    padding: 26px 22px;
  }

  .somvital-filosofia__texto > .elementor-widget-wrap {
    padding-left: 20px !important;
  }


  /* Ficha con la foto a la izquierda: en móvil, el texto primero */
  .somvital-ficha--invertida > .elementor-container {
    flex-direction: column-reverse;
  }
}

/***** SELECTOR DE IDIOMA (cabecera de Elementor) *****/
/* Widget «Language switcher» de Polylang (clase cabecera-idiomas) en las dos
   secciones de la cabecera: pestaña colgada bajo el aviso con el código del
   idioma actual («ES ▾»); al pasar o enfocar, despliega los demás. */

/* El de la bandera dentro del menú ya no se usa */
.hfe-nav-menu .pll-parent-menu-item {
  display: none !important;
}

#masthead .elementor-top-section:has(.cabecera-idiomas) > .elementor-container,
#masthead .elementor-top-section:has(.cabecera-idiomas) .elementor-column,
#masthead .elementor-top-section:has(.cabecera-idiomas) .elementor-widget-wrap {
  position: static;
}

#masthead .elementor-top-section:has(.cabecera-idiomas) {
  position: relative;
}

.cabecera-idiomas.elementor-widget {
  position: absolute;
  top: 0;
  /* Mismo margen que la columna del menú (8,4 %, en Elementor): acaba con él */
  right: 8.4%;
  z-index: 30;
  width: auto;
  margin: 0 !important;
}

.cabecera-idiomas ul {
  margin: 0;
  padding: 0;
  list-style: none;
  background: rgba(70, 70, 70, .6);
  border-radius: 0 0 8px 8px;
  overflow: hidden;
}

.cabecera-idiomas li {
  margin: 0;
}

/* Primero el idioma actual; el resto, ocultos hasta desplegar */
.cabecera-idiomas li.current-lang {
  order: -1;
}

.cabecera-idiomas ul {
  display: flex;
  flex-direction: column;
}

.cabecera-idiomas li:not(.current-lang) {
  display: none;
}

.cabecera-idiomas:hover li,
.cabecera-idiomas:focus-within li {
  display: block;
}

/* Desplegado: fondo opaco para que se lea sobre cualquier imagen */
.cabecera-idiomas:hover ul,
.cabecera-idiomas:focus-within ul {
  background: #3a3a3a;
}

/* Código del idioma en lugar del nombre (Polylang no lo ofrece en el widget) */
.cabecera-idiomas a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 18px 12px;
  color: #c0d42f;
  font-size: 0;
  line-height: 1;
  text-decoration: none;
}

.cabecera-idiomas a::before {
  content: attr(lang);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
}

.cabecera-idiomas .lang-item-es a::before { content: "ES"; }
.cabecera-idiomas .lang-item-en a::before { content: "EN"; }
/* Traducción automática (Google), definidos en inc/idiomas.php */
.cabecera-idiomas .lang-item-fr a::before { content: "FR"; }
.cabecera-idiomas .lang-item-ar a::before { content: "AR"; }
.cabecera-idiomas .lang-item-vi a::before { content: "VI"; }
.cabecera-idiomas .lang-item-ru a::before { content: "RU"; }
.cabecera-idiomas .lang-item-ur a::before { content: "UR"; }

/* Widget de Google Translate (solo cargado al elegir FR, AR…): sin su barra
   superior, sin los globos con el texto original y sin resaltar al pasar. */
.traduccion-auto body {
  top: 0 !important;
}

.traduccion-auto iframe.skiptranslate,
.traduccion-auto .goog-te-banner-frame,
.traduccion-auto #goog-gt-tt,
.traduccion-auto .goog-te-balloon-frame,
.traduccion-auto .VIpgJd-ZVi9od-ORHb-OEVmcd,
.traduccion-auto .VIpgJd-ZVi9od-aZ2wEe-wOHMyf,
.traduccion-auto .VIpgJd-yAWNEb-L7lbkb {
  display: none !important;
}

.traduccion-auto .VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q,
.traduccion-auto .goog-text-highlight {
  background: none !important;
  box-shadow: none !important;
}

/* Flecha del idioma actual */
.cabecera-idiomas li.current-lang a::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
}

.cabecera-idiomas:hover li.current-lang a::after,
.cabecera-idiomas:focus-within li.current-lang a::after {
  margin-top: 3px;
  transform: rotate(-135deg);
}

.cabecera-idiomas li:not(.current-lang) a {
  color: #fff;
}

.cabecera-idiomas a:hover,
.cabecera-idiomas a:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, .12);
  outline: none;
}

/* Tableta y móvil: sobre el botón del menú */
@media (max-width: 1024px) {
  .cabecera-idiomas.elementor-widget {
    right: 76px;
  }
}

/***** MENÚ PRINCIPAL (escritorio, sección .menu-header de la cabecera) *****/
/* Elemento en hover, abierto o de la página actual: pastilla verde con la
   flecha hacia arriba. Submenús del mismo estilo, tan anchos como su
   contenido (máx. 250px) y centrados bajo su elemento. El menú de móvil
   (hamburguesa) no cambia. */

#masthead .menu-header .hfe-nav-menu > li.menu-item {
  padding: 10px 4px; /* Zona de paso hasta el submenú */
}

#masthead .menu-header .hfe-nav-menu > li > a.hfe-menu-item,
#masthead .menu-header .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item {
  align-items: center;
  gap: 14px;
  padding: 9px 18px;
  border-radius: 10px;
  transition: background-color .2s ease;
}

#masthead .menu-header .hfe-nav-menu > li:hover > a.hfe-menu-item,
#masthead .menu-header .hfe-nav-menu > li:hover > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .menu-header .hfe-nav-menu > li:focus-within > a.hfe-menu-item,
#masthead .menu-header .hfe-nav-menu > li:focus-within > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .menu-header .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
#masthead .menu-header .hfe-nav-menu > li.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .menu-header .hfe-nav-menu > li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item {
  background: #85b550;
  color: #fff;
}

/* Flecha: hacia arriba con el submenú abierto */
#masthead .menu-header .hfe-nav-menu > li .hfe-menu-toggle {
  margin: 0;
  transition: transform .2s ease;
}

#masthead .menu-header .hfe-nav-menu > li:hover > .hfe-has-submenu-container .hfe-menu-toggle,
#masthead .menu-header .hfe-nav-menu > li:focus-within > .hfe-has-submenu-container .hfe-menu-toggle {
  transform: rotate(180deg);
}

/* Submenús */

#masthead .menu-header .hfe-nav-menu ul.sub-menu {
  width: max-content;
  min-width: 200px;
  max-width: 250px;
  padding: 0;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
}

/* Primer nivel: centrado bajo su elemento */
#masthead .menu-header .hfe-nav-menu > li > ul.sub-menu {
  left: 50%;
  transform: translateX(-50%);
}

/* Niveles siguientes: a la derecha, alineados con su elemento */
#masthead .menu-header .hfe-nav-menu ul.sub-menu ul.sub-menu {
  top: 0;
  left: calc(100% + 8px);
  transform: none;
}

/* Separación entre elementos: el activo no se junta con el hover del vecino */
#masthead .menu-header .hfe-nav-menu .sub-menu li.menu-item {
  background: none;
}

#masthead .menu-header .hfe-nav-menu .sub-menu li.menu-item + li.menu-item {
  margin-top: 3px;
}

#masthead .menu-header .hfe-nav-menu .sub-menu li a.hfe-sub-menu-item {
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  color: #231F20;
  border-radius: 0;
  font-size: 15px;
  line-height: 1.25;
  white-space: normal;
  transition: background-color .2s ease;
}

#masthead .menu-header .hfe-nav-menu .sub-menu li:hover > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu li:hover > .hfe-has-submenu-container > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu li:focus-within > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu li:focus-within > .hfe-has-submenu-container > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu li.current-menu-item > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu li.current-menu-item > .hfe-has-submenu-container > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-sub-menu-item {
  background: #85b550;
  color: #fff;
}

/* Primero y último: siguen las esquinas del submenú (sin overflow:hidden, que
   recortaría el siguiente nivel) */
#masthead .menu-header .hfe-nav-menu .sub-menu > li:first-child > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu > li:first-child > .hfe-has-submenu-container > a.hfe-sub-menu-item {
  border-radius: 12px 12px 0 0;
}

#masthead .menu-header .hfe-nav-menu .sub-menu > li:last-child > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu > li:last-child > .hfe-has-submenu-container > a.hfe-sub-menu-item {
  border-radius: 0 0 12px 12px;
}

#masthead .menu-header .hfe-nav-menu .sub-menu > li:only-child > a.hfe-sub-menu-item,
#masthead .menu-header .hfe-nav-menu .sub-menu > li:only-child > .hfe-has-submenu-container > a.hfe-sub-menu-item {
  border-radius: 12px;
}

/* Flecha de los submenús con hijos: la de HFE (ya apunta a la derecha) */
#masthead .menu-header .hfe-nav-menu .sub-menu .hfe-menu-toggle {
  margin: 0;
  transform: none;
}

/* -------------------------------
 ***** PÁGINAS LEGALES (Aviso legal, Privacidad, Cookies) *****
 ------------------------------- */
/* Índice lateral: fijo al hacer scroll (sticky sobre el widget, la columna ocupa todo el alto). */
.legal-lateral > .elementor-widget-wrap {
  height: 100%;
  align-content: flex-start;
}
.legal-lateral .elementor-widget-html {
  position: sticky;
  top: 120px;
}
.legal-indice {
  padding: 28px 26px;
  background: #F4F4F4;
  border-radius: 24px;
  font-family: Lato, sans-serif;
}
.legal-indice__titulo {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #70B344;
}
.legal-indice ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.legal-indice a {
  display: block;
  padding: 6px 0;
  font-size: 14px;
  line-height: 1.35;
  color: #231F20;
  text-decoration: none;
  transition: color .2s;
}
.legal-indice a:hover,
.legal-indice a:focus-visible {
  color: #70B344;
}

/* Texto */
.legal-texto {
  max-width: 780px;
  font-family: Lato, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #555555;
}
.legal-texto p {
  margin: 0 0 16px;
}
.legal-texto h2 {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 56px 0 18px;
  font-family: Lato, sans-serif;
  font-size: 26px;
  font-weight: 900;
  line-height: 1.25;
  color: #231F20;
  scroll-margin-top: 120px;
}
.legal-texto .elementor-widget-container > h2:first-child {
  margin-top: 0;
}
.legal-texto .legal-fecha + h2 {
  margin-top: 24px;
}
.legal-num {
  flex: none;
  font-size: 15px;
  color: #70B344;
}
.legal-texto h3 {
  margin: 30px 0 10px;
  font-family: Lato, sans-serif;
  font-size: 19px;
  font-weight: 900;
  color: #231F20;
}
.legal-texto ul {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}
.legal-texto ul li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 24px;
}
.legal-texto ul li::before {
  content: "";
  position: absolute;
  top: .65em;
  left: 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #70B344;
}
.legal-texto a {
  color: #70B344;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.legal-texto a:hover {
  color: #231F20;
}
.legal-texto .legal-fecha {
  display: inline-block;
  margin-bottom: 24px;
  padding: 6px 16px;
  border-radius: 20px;
  background: #F4F4F4;
  font-size: 14px;
  font-weight: 700;
  color: #231F20;
}
.legal-destacado {
  padding: 18px 22px;
  border-left: 4px solid #70B344;
  border-radius: 0 12px 12px 0;
  background: #F4F4F4;
}
.legal-texto .legal-firma {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #E2E2E2;
  font-weight: 700;
  color: #231F20;
}
.legal-texto .legal-opciones {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.legal-texto .legal-opciones li {
  margin: 0;
  padding: 8px 18px;
  border: 2px solid #70B344;
  border-radius: 30px;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  color: #231F20;
}
.legal-texto .legal-opciones li::before {
  display: none;
}

/* Datos del titular y fichas de cada tratamiento: filas etiqueta / texto */
.legal-datos,
.legal-ficha {
  margin: 0 0 24px;
  border-radius: 24px;
  background: #F4F4F4;
  overflow: hidden;
}
.legal-datos > div,
.legal-ficha > div {
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 20px;
  padding: 18px 28px;
}
.legal-datos > div + div,
.legal-ficha > div + div {
  border-top: 1px solid #E2E2E2;
}
.legal-datos dt,
.legal-ficha dt {
  font-weight: 900;
  color: #231F20;
}
.legal-datos dd,
.legal-ficha dd {
  margin: 0;
}
.legal-ficha dd p:last-child {
  margin-bottom: 0;
}

@media (max-width: 1024px) {
  .legal-texto h2 {
    font-size: 23px;
  }
}
@media (max-width: 767px) {
  .legal-lateral {
    display: none;
  }
  .legal-texto h2 {
    margin-top: 44px;
    font-size: 21px;
  }
  .legal-datos > div,
  .legal-ficha > div {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 16px 20px;
  }
}

/**** PORTADA: pestañas «Nuestros productos son el reflejo…» (js/somvital-temas.js) ****/
/* Menú de temas a la izquierda y el tema activo a la derecha, en una tarjeta
   blanca con la hoja del logo. Sin JS (o en el editor antes de cargar) se ven
   todos los temas seguidos y el menú queda oculto. */

.somvital-temas:not(.is-pestanas) .somvital-temas__lateral {
  display: none;
}
.somvital-temas:not(.is-pestanas) .elementor-column.somvital-temas__contenido {
  width: 100%;
}
.somvital-temas .elementor-column.somvital-temas__lateral > .elementor-widget-wrap {
  align-content: flex-start;
  padding-right: 30px;
}

.somvital-temas__menu {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.somvital-temas__menu [role="tab"] {
  position: relative;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 16px;
  align-items: center;
  width: 100%;
  padding: 16px 18px;
  background: transparent;
  border: 0;
  border-radius: 18px;
  color: #231F20;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color .2s ease, box-shadow .2s ease;
}
.somvital-temas__menu [role="tab"]:hover {
  background: rgba(255, 255, 255, .6);
}
.somvital-temas__menu [role="tab"]:focus-visible {
  outline: 2px solid #358D63;
  outline-offset: 2px;
}
.somvital-temas__menu [role="tab"].is-activo {
  background: #fff;
  box-shadow: 0 10px 28px rgba(0, 45, 25, .08);
}
.somvital-temas__num {
  grid-row: 1 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  background: #e6efe0;
  border-radius: 50%;
  color: #358D63;
  font-size: 15px;
  font-weight: 700;
  transition: background-color .2s ease, color .2s ease;
}
.is-activo .somvital-temas__num {
  background: #70B344;
  color: #fff;
}
.somvital-temas__nombre {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
}
.somvital-temas__sub {
  margin-top: 3px;
  color: #6b6b6b;
  font-size: 13px;
  line-height: 1.3;
}

/* Tema: tarjeta blanca con la hoja */
.somvital-tema[hidden] {
  display: none !important;
}
.somvital-tema > .elementor-widget-container {
  position: relative;
  overflow: hidden;
  padding: 48px 56px 52px;
  background: #fff;
  border-radius: 30px;
  box-shadow: 0 14px 40px rgba(0, 45, 25, .07);
}
.somvital-temas:not(.is-pestanas) .somvital-tema + .somvital-tema {
  margin-top: 24px;
}
.somvital-tema > .elementor-widget-container::after {
  content: "";
  position: absolute;
  right: -30px;
  bottom: -40px;
  width: 230px;
  height: 235px;
  background: #70B344;
  opacity: .08;
  -webkit-mask: url("img/catalogo/hoja-aviso.png") no-repeat center / contain;
  mask: url("img/catalogo/hoja-aviso.png") no-repeat center / contain;
  pointer-events: none;
}
.somvital-tema > .elementor-widget-container > * {
  position: relative;
  z-index: 1;
}
.somvital-tema__titulo {
  margin: 0 0 18px;
  color: #231F20;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
}
.somvital-tema__claim {
  margin: 0 0 26px;
  padding-left: 18px;
  border-left: 4px solid #70B344;
  color: #358D63;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}
.somvital-tema p:not(.somvital-tema__claim) {
  margin: 0 0 14px;
  color: #555;
  font-size: 15px;
  line-height: 1.7;
}
.somvital-tema p:last-child {
  margin-bottom: 0;
}

/* Texto en dos columnas en pantallas anchas */
@media (min-width: 1200px) {
  .somvital-tema > .elementor-widget-container {
    column-count: 2;
    column-gap: 44px;
  }
  .somvital-tema__titulo,
  .somvital-tema__claim {
    column-span: all;
  }
  .somvital-tema p:not(.somvital-tema__claim) {
    break-inside: avoid;
  }
}

@media (max-width: 1024px) {
  .somvital-temas .elementor-column.somvital-temas__lateral > .elementor-widget-wrap {
    padding-right: 16px;
  }
  .somvital-tema > .elementor-widget-container {
    padding: 38px 36px 40px;
  }
  .somvital-tema__titulo {
    font-size: 27px;
  }
}

/* Móvil: el menú pasa a una tira horizontal deslizable encima del tema */
@media (max-width: 767px) {
  .somvital-temas .elementor-column.somvital-temas__lateral > .elementor-widget-wrap {
    padding: 0 0 16px;
  }
  .somvital-temas__menu {
    flex-direction: row;
    gap: 10px;
    margin: 0 -40px;
    padding: 4px 40px 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 40px;
    scrollbar-width: none;
  }
  .somvital-temas__menu::-webkit-scrollbar {
    display: none;
  }
  .somvital-temas__menu [role="tab"] {
    flex: 0 0 auto;
    grid-template-columns: 36px auto;
    grid-template-rows: auto;
    column-gap: 10px;
    width: auto;
    max-width: 230px;
    padding: 10px 16px 10px 10px;
    background: rgba(255, 255, 255, .6);
    scroll-snap-align: start;
  }
  .somvital-temas__num {
    grid-row: auto;
    width: 36px;
    height: 36px;
    font-size: 13px;
  }
  .somvital-temas__nombre {
    font-size: 14px;
  }
  .somvital-temas__sub {
    display: none;
  }
  .somvital-tema > .elementor-widget-container {
    padding: 30px 22px 34px;
    border-radius: 22px;
  }
  .somvital-tema__titulo {
    font-size: 24px;
  }
  .somvital-tema__claim {
    font-size: 17px;
  }
}

/**** PIE: sellos de certificación (los de «Calidad e innovación») ****/
.footer-sellos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 28px 64px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 34px 20px;
  list-style: none;
}
.footer-sellos li {
  margin: 0;
}
.footer-sellos img {
  display: block;
  width: auto;
  height: 74px;
  max-width: 120px;
  object-fit: contain;
}
@media (max-width: 767px) {
  .footer-sellos {
    display: grid;
    grid-template-columns: repeat(3, auto);
    justify-items: center;
    gap: 22px 34px;
    padding: 28px 16px;
  }
  .footer-sellos img {
    height: 54px;
    max-width: 90px;
  }
}

/***** CABECERA: LOGO *****/
/* Sin tarjeta: arriba, sobre la foto, el logo en blanco
   (img/somvital-logo-blanco.png, todo en blanco, de fondo del enlace con la imagen a color
   transparente); con la cabecera fija (más abajo), el logo a color.
   En escritorio empieza donde el contenido («ANCHO COMÚN», al final). */
#masthead .menu-header {
  container-type: inline-size;
}
#masthead .cabecera-logo .hfe-site-logo,
#masthead .cabecera-logo .hfe-site-logo-container {
  text-align: left !important;
}
#masthead .cabecera-logo .hfe-site-logo > a {
  display: inline-block;
  background: url("img/somvital-logo-blanco.png") no-repeat left center / contain;
  line-height: 0;
}
#masthead .cabecera-logo .hfe-site-logo-img {
  max-width: 100% !important;
  opacity: 0;
}
/* Mismo contenedor que el contenido y el pie («ANCHO COMÚN», al final),
   sea cual sea el ancho de la sección en Elementor (1600 px o completo) */
#masthead .menu-header > .elementor-container {
  max-width: var(--somvital-ancho) !important;
  margin-right: auto;
  margin-left: auto;
}
/* El menú acaba donde el contenido, con el mismo margen que el logo a la
   izquierda (no depende del relleno de la columna en Elementor) */
#masthead .menu-header .elementor-column:last-child > .elementor-widget-wrap {
  padding-right: 10px !important;
}
#masthead .menu-header .cabecera-idiomas.elementor-widget {
  right: calc((100cqw - min(var(--somvital-ancho), 100cqw - 40px)) / 2 + 10px);
}
@media (max-width: 1024px) {
  #masthead .cabecera-logo .hfe-site-logo-container img {
    width: 150px !important;
  }
}

/***** CABECERA FIJA (js/cabecera.js) *****/
/* Al pasar la cabecera baja fija solo la franja del menú (sin el aviso):
   fondo blanco, logo a color y menú en oscuro. */
@keyframes cabecera-baja {
  from { transform: translateY(-100%); }
  to { transform: none; }
}

body #masthead.cabecera-fija .elementor-top-section.cabecera-menu {
  position: fixed !important;
  top: var(--wp-admin--admin-bar--height, 0px);
  right: 0;
  left: 0 !important;
  z-index: 999;
  width: 100% !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  background: #fff !important;
  box-shadow: 0 6px 24px rgba(0, 40, 25, .1);
  animation: cabecera-baja .35s ease;
}

#masthead.cabecera-fija .cabecera-logo .hfe-site-logo > a {
  background: none;
}
#masthead.cabecera-fija .cabecera-logo .hfe-site-logo-img {
  opacity: 1;
}
/* Menos aire en la franja fija */
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li.menu-item {
  padding-top: 4px;
  padding-bottom: 4px;
}
#masthead.cabecera-fija .cabecera-menu > .elementor-container > .elementor-column > .elementor-widget-wrap {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}
/* Menú centrado en vertical: sin el margen inferior que Elementor deja al
   widget del menú (el del idioma va detrás, oculto aquí) */
#masthead.cabecera-fija .cabecera-menu .elementor-widget {
  margin-bottom: 0 !important;
}
#masthead.cabecera-fija .cabecera-logo .hfe-site-logo {
  padding: 0 !important;
  font-size: 0;
  line-height: 0;
}
#masthead.cabecera-fija .cabecera-menu > .elementor-container > .elementor-column > .elementor-widget-wrap {
  align-content: center;
  align-items: center;
}

/* El idioma solo arriba, en la cabecera completa */
#masthead.cabecera-fija .cabecera-idiomas.elementor-widget {
  display: none;
}

/* Menú en oscuro; la pastilla verde del elemento activo no cambia */
#masthead.cabecera-fija .hfe-nav-menu > li > a.hfe-menu-item,
#masthead.cabecera-fija .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item {
  color: #231f20 !important;
}
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li:hover > a.hfe-menu-item,
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li:hover > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li:focus-within > a.hfe-menu-item,
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li:focus-within > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead.cabecera-fija .menu-header .hfe-nav-menu > li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item {
  color: #fff !important;
}

/* Botón del menú móvil */
#masthead.cabecera-fija .hfe-nav-menu-icon,
#masthead.cabecera-fija .hfe-nav-menu-icon:hover {
  color: #231f20 !important;
}
#masthead.cabecera-fija .hfe-nav-menu-icon svg {
  fill: #231f20 !important;
}

@media (prefers-reduced-motion: reduce) {
  body #masthead.cabecera-fija .elementor-top-section.cabecera-menu {
    animation: none;
  }
}

/***** PORTADA: CABECERA DEL VÍDEO *****/
/* Título, subtítulo y botón alineados a la izquierda, con el logo */
.home-hero__subtitulo {
  max-width: 620px;
}

/***** PORTADA: BLOQUE 1, EL PROPÓSITO *****/
.home-proposito .home-proposito__imagen img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 30px;
  box-shadow: 0 24px 50px rgba(31, 87, 76, .16);
}
.home-proposito__hashtag {
  margin: 14px 0 0;
  color: #70B344;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .5px;
}
.home-proposito .elementor-widget-heading .elementor-heading-title {
  line-height: 1.12;
}

/* Las dos líneas de actuación */
.home-lineas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.home-linea {
  position: relative;
  margin: 0;
  padding: 40px 40px 38px;
  background: #fff;
  border: 1px solid #e8ece8;
  border-radius: 24px;
  overflow: hidden;
}
.home-linea::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 6px;
  background: linear-gradient(90deg, #358D63, #70B344 55%, #BECA31);
}
.home-linea__icono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #eef6e8;
  color: #358D63;
}
.home-linea__titulo {
  margin: 0 0 12px;
  color: #1F574C;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 700;
}
.home-linea p {
  margin: 0;
  color: #404041;
  font-size: 17px;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .home-lineas {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .home-linea {
    padding: 30px 24px 28px;
  }
  .home-linea__titulo {
    font-size: 20px;
  }
  .home-linea p {
    font-size: 16px;
  }
}

/***** PIE: CONTACTO Y HORARIO *****/
.pie-contacto,
.pie-horario {
  margin: 0 0 12px;
  line-height: 1.6;
}
.pie-contacto__dato {
  color: inherit;
  white-space: nowrap;
  text-decoration: none;
}
.pie-contacto__dato:hover,
.pie-contacto__dato:focus-visible {
  color: #BECA31;
}

/* Pestañas: el tema activo y el menú, a la misma altura (manda el más alto) */
@media (min-width: 768px) {
  .somvital-temas.is-pestanas > .elementor-container {
    align-items: stretch;
  }
  .somvital-temas.is-pestanas .elementor-column.somvital-temas__lateral > .elementor-widget-wrap,
  .somvital-temas.is-pestanas .elementor-column.somvital-temas__contenido > .elementor-widget-wrap {
    align-content: stretch;
    align-items: stretch;
  }
  .somvital-temas.is-pestanas .somvital-temas__lateral .elementor-widget,
  .somvital-temas.is-pestanas .somvital-temas__lateral .elementor-widget-container,
  .somvital-temas.is-pestanas .somvital-tema,
  .somvital-temas.is-pestanas .somvital-tema > .elementor-widget-container {
    height: 100%;
  }
  .somvital-temas.is-pestanas .somvital-temas__menu {
    height: 100%;
  }
  .somvital-temas.is-pestanas .somvital-temas__menu [role="tab"] {
    flex: 1 1 0;
  }
}

/* Botones: el texto nunca se parte en dos líneas */
.btn-arrow,
.btn-trans {
  white-space: nowrap;
}

/* Etiqueta larga (franja del mapa): menos espaciado para que quepa en una línea */
.tag-title.tag-title--larga {
  letter-spacing: 2px;
  font-size: 14px;
  line-height: 1.3;
}

/* Móvil: el logo, alineado con el título (la sección del vídeo tiene un 8 % de margen) */
@media (max-width: 767px) {
  #masthead .cabecera-logo {
    margin-left: 8vw;
  }
}

/***** CALIDAD (nov. 2026): galería con pies, capacidad industrial y FEDER compacto *****/

/* Galería de 4 fotos: dos anchas a la izquierda y dos altas a la derecha */
@media (min-width: 768px) {
  .somvital-galeria .gallery .gallery-item:nth-child(2) {
    grid-column: 1 / 3;
    grid-row: 2;
  }

  .somvital-galeria .gallery .gallery-item:nth-child(3) {
    grid-column: 3;
    grid-row: 1 / 3;
  }

  .somvital-galeria .gallery .gallery-item:nth-child(4) {
    grid-column: 4;
    grid-row: 1 / 3;
  }
}

/* Pie de foto sobre la imagen, con un degradado para que se lea */
.somvital-galeria .gallery .gallery-item {
  position: relative;
}

.somvital-galeria .gallery-caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  margin: 0;
  padding: 40px 20px 16px;
  background: linear-gradient(to top, rgba(12, 42, 34, .85), rgba(12, 42, 34, 0));
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  pointer-events: none;
}

/* Capacidad industrial: tres preguntas de cliente con su respuesta */
.calidad-capacidad__etiqueta {
  margin: 0 0 14px;
  color: #358D63;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 3px;
  text-align: center;
  text-transform: uppercase;
}

.calidad-capacidad__titulo {
  max-width: 820px;
  margin: 0 auto 44px;
  color: #231F20;
  font-size: clamp(28px, 2.8vw, 42px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.calidad-capacidad__lista {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.calidad-capacidad__item {
  position: relative;
  margin: 0;
  padding: 34px 30px 32px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e6ebe7;
  border-radius: 22px;
  box-shadow: 0 12px 32px rgba(0, 45, 25, .05);
}

.calidad-capacidad__item::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #358D63, #70B344 55%, #BECA31);
}

.calidad-capacidad__item h3 {
  margin: 0 0 12px;
  color: #1F574C;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.calidad-capacidad__item p {
  margin: 0;
  color: #555;
  font-size: 16px;
  line-height: 1.6;
}

/* Ejemplos de I+D+i */
.calidad-ejemplos {
  margin: 18px 0 0;
  padding: 18px 22px;
  list-style: none;
  background: #eef6e8;
  border-radius: 16px;
}

.calidad-ejemplos li {
  margin: 0;
  padding: 4px 0;
  color: #404041;
}

.calidad-ejemplos strong {
  color: #1F574C;
}

/* TDI-FEDER compacto: menos aire, cartel más pequeño y datos en línea */
.somvital-feder--compacto {
  padding-top: 40px;
}

.somvital-feder--compacto .elementor-heading-title {
  font-size: 22px !important;
}

.somvital-feder--compacto .somvital-datos > div {
  padding: 6px 0;
  font-size: 14px;
}

.somvital-feder--compacto .somvital-cartel img {
  max-width: 360px;
  margin-left: auto;
}

@media (max-width: 1024px) {
  .calidad-capacidad__lista {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

@media (max-width: 767px) {
  .somvital-galeria .gallery-caption {
    padding: 30px 12px 10px;
    font-size: 12px;
  }

  .somvital-feder--compacto .somvital-cartel img {
    max-width: 100%;
  }
}

/***** PORTADA: forma verde inclinada detrás de la tarjeta gris de los pilares *****/
/* La misma que asoma tras el panel de bloques de los tipos de producto
   (.catalogo-bloques::before en css/catalogo.css). */
.elementor-section.somvital-reflejo {
  position: relative;
}

.elementor-section.somvital-reflejo::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 22%;
  background: #72b345;
  clip-path: polygon(240px 0, 100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}

.elementor-section.somvital-reflejo > .elementor-container {
  position: relative;
  z-index: 1;
}

@media (max-width: 767px) {
  .elementor-section.somvital-reflejo::before {
    top: 30px;
    left: 30%;
    clip-path: polygon(60px 0, 100% 0, 100% 100%, 0 100%);
  }
}

/***** BLOQUE VERDE DESTACADO (portada, Somvital, Calidad, Servicio, Equipos…) *****/
/* La imagen apaisada Fondo_seccion_destacada.png con «cover» se amplía y
   la hoja sale deformada: el mismo fondo que el aviso del catálogo
   (css/catalogo-aviso.css), verde liso y la hoja a toda la altura.
   `.somvital-destacado` la pone functions.php en cualquier sección con ese
   fondo; los ID (de producción) cubren las secciones aunque esa clase no
   llegue (caché de Elementor o del servidor). Una sección nueva con este
   fondo: añadir aquí su ID (data-id en el HTML). */
.elementor-element.somvital-destacado:not(.elementor-motion-effects-element-type-background),
.elementor-element-764de4e:not(.elementor-motion-effects-element-type-background),
.elementor-element-44c6637:not(.elementor-motion-effects-element-type-background),
.elementor-element-9fcf550:not(.elementor-motion-effects-element-type-background),
.elementor-element-e0b6315:not(.elementor-motion-effects-element-type-background),
.elementor-element-1e3a361:not(.elementor-motion-effects-element-type-background),
.elementor-element-b395fa3:not(.elementor-motion-effects-element-type-background),
.elementor-element-79e5e3d:not(.elementor-motion-effects-element-type-background) {
  background: #388d62 url("img/catalogo/hoja-aviso.png") no-repeat right top / auto 100% !important;
}

@media (max-width: 767px) {
  .elementor-element.somvital-destacado:not(.elementor-motion-effects-element-type-background),
  .elementor-element-764de4e:not(.elementor-motion-effects-element-type-background),
  .elementor-element-44c6637:not(.elementor-motion-effects-element-type-background),
  .elementor-element-9fcf550:not(.elementor-motion-effects-element-type-background),
  .elementor-element-e0b6315:not(.elementor-motion-effects-element-type-background),
  .elementor-element-1e3a361:not(.elementor-motion-effects-element-type-background),
  .elementor-element-b395fa3:not(.elementor-motion-effects-element-type-background),
  .elementor-element-79e5e3d:not(.elementor-motion-effects-element-type-background) {
    background-size: auto 60% !important;
    background-position: right bottom !important;
  }
}

/***** ANCHO COMÚN: cabecera, contenido y pie *****/
/* El del catálogo (.productos-container: 1230 px de contenido, 30 px de
   margen mínimo). Los contenedores de Elementor llevan 10 px de hueco por
   columna, así que miden 20 px más. Se aplica a las secciones anchas de las
   páginas (en Elementor tienen 1120-1366 px); las estrechas a propósito
   (p. ej. el formulario de contacto, 800 px) y las de ancho completo no
   cambian. */
:root {
  --somvital-ancho: 1250px;
}

@media (min-width: 768px) {
  #masthead .menu-header > .elementor-container,
  #colophon .elementor-top-section.elementor-section-boxed > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed:not(.elementor-element-c0212e9) > .elementor-container {
    max-width: min(var(--somvital-ancho), calc(100% - 40px)) !important;
  }
}

/* Cabeceras (hero) de las páginas: el texto empieza donde el logo (la columna
   lleva 40 px de relleno en Elementor) */
@media (min-width: 1025px) {
  .elementor-element-08cb03f > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-a1e2307 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-4666961 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-f0f3b36 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-702a477 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-e18c506 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-4f13f42 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-ce0c196 > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .elementor-element-041bc0b > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap {
    padding-left: 10px !important;
  }
}

/* Secciones con tarjeta o columnas sin relleno: el borde de la tarjeta o el
   contenido va al ancho del catálogo (1230 px) */
@media (min-width: 768px) {
  #content .elementor-top-section.elementor-section-boxed.elementor-element-a8acbbf > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-f121857 > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-3494e4c > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-a36f2be > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-0d9d4fb > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-8fa5c71 > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-a02461b > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-bce2f32 > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-27595cc > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-13e031e > .elementor-container,
  #content .elementor-top-section.elementor-section-boxed.elementor-element-3263243 > .elementor-container {
    max-width: min(calc(var(--somvital-ancho) - 20px), calc(100% - 60px)) !important;
  }

  /* Propósito de la portada: columnas con 20 px de hueco */
  #content .elementor-top-section.elementor-section-boxed.elementor-element-ed08398 > .elementor-container {
    max-width: min(calc(var(--somvital-ancho) + 20px), calc(100% - 20px)) !important;
  }
}

/* «Más de 40 países»: la sección interior (1140 px) ocupa todo el contenido */
.elementor-element-5770da5 .elementor-inner-section > .elementor-container {
  max-width: none !important;
}

/***** SOMVITAL Y EQUIPOS: marca de agua con la hoja de SomVital *****/
/* Estas secciones reutilizan el estilo de «Las 10 ventajas» de SAIB, pero
   el hexágono es la marca de SAIB: aquí va la hoja del logo de SomVital. */
.saib-ventajas.somvital-valores-seccion,
.saib-ventajas.equipos-intro {
  position: relative;
  background-image: none;
}

.saib-ventajas.somvital-valores-seccion::after,
.saib-ventajas.equipos-intro::after {
  content: "";
  position: absolute;
  right: 4%;
  bottom: -60px;
  width: 300px;
  aspect-ratio: 500 / 677;
  background: #e4e7e6;
  -webkit-mask: url("img/catalogo/hoja-logo-grande.png") no-repeat center bottom / contain;
  mask: url("img/catalogo/hoja-logo-grande.png") no-repeat center bottom / contain;
  transform: rotate(-10deg);
  pointer-events: none;
}

.saib-ventajas.somvital-valores-seccion > .elementor-container,
.saib-ventajas.equipos-intro > .elementor-container {
  position: relative;
  z-index: 1;
}

@media (max-width: 767px) {
  .saib-ventajas.somvital-valores-seccion::after,
  .saib-ventajas.equipos-intro::after {
    width: 180px;
  }
}
