/* ==========================================================================
   SISTEMA fgx-* — importado del proyecto Vite anterior (src/css/estilos2.css)
   --------------------------------------------------------------------------
   Se han quitado los 7 bloques @font-face: declaraban Raleway Bold,
   ExtraBold y Black, ficheros que nunca llegaron a existir en aquel
   proyecto. La tipografia la sirve rediseno.css con Raleway variable.
   El resto se conserva tal cual para no alterar el diseno.
   ========================================================================== */

/* =========================================================
   FUENTE Raleway
   Ruta esperada:
   /fonts/raleway/
========================================================= */



/* Si tienes versión Bold */


/* Si tienes versión ExtraBold */


/* Si tienes versión Black */




html,
body {
  font-family: "Raleway", Arial, Helvetica, sans-serif;
}

/* Textos generales */
body,
p,
li,
a,
span,
button,
input,
textarea,
select,
label {
  font-family: "Raleway", Arial, Helvetica, sans-serif;
}

/* Títulos */
h1,
h2,
h3,
h4,
h5,
h6,
.section_title h1,
.section_title h2,
.fgx-page-hero__title,
.fgx-about__title,
.fgx-why__title,
.fgx-faq__title {
  font-family: "Raleway", Arial, Helvetica, sans-serif;
  font-weight: 600;
}

/* Botones y navegación */
.navbar,
.navbar a,
.btn,
.fgx-page-hero__btn,
.fgx-about__btn,
.fgx-why__btn,
.fgx-faq__btn {
  font-family: "Raleway", Arial, Helvetica, sans-serif;
  font-weight: 800;
}

/* Carta / menús */
.carta,
.carta h1,
.carta h2,
.carta h3,
.carta p,
.menu-item,
.menu-price {
  font-family: "Raleway", Arial, Helvetica, sans-serif;
}

/* =========================================================
   FLOR DE GALICIA · NAVBAR PREMIUM
   Bootstrap 5 · Clases aisladas fgx-nav-*
========================================================= */

.fgx-nav {
  z-index: 1030;
  min-height: 86px;
  padding: .55rem 0;
  background:
    linear-gradient(135deg, rgba(0, 101, 209, .96), rgba(0, 40, 90, .98));
  border-bottom: 1px solid rgba(209, 186, 144, .28);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .18);
  backdrop-filter: blur(16px);
}

.fgx-nav::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 20%, rgba(255,255,255,.10) 0%, transparent 28%),
    radial-gradient(circle at 88% 80%, rgba(202, 162, 74, .18) 0%, transparent 32%);
  pointer-events: none;
}

.fgx-nav__container {
  position: relative;
  z-index: 2;
}

/* Logo */

.fgx-nav__brand {
  display: inline-flex;
  align-items: center;
  padding: 0;
  margin-right: 1.2rem;
}

.fgx-nav__logo {
  display: block;
  width: 172px;
  max-width: 172px;
  height: auto;
  filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .18));
}

/* Toggle móvil */

.fgx-nav__toggle {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  padding: .55rem .75rem;
  border-radius: 999px;
  color: var(--blanco);
  border: 1px solid rgba(209, 186, 144, .34);
  background: rgba(255,255,255,.10);
  box-shadow: none;
}

.fgx-nav__toggle:focus {
  box-shadow: 0 0 0 .2rem rgba(202, 162, 74, .20);
}

.fgx-nav__toggle .navbar-toggler-icon {
  width: 1.2rem;
  height: 1.2rem;
}

.fgx-nav__toggle-text {
  color: var(--blanco);
  font-size: .85rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* Menú */

.fgx-nav__collapse {
  align-items: center;
}

.fgx-nav__menu {
  align-items: center;
  gap: .15rem;
}

.fgx-nav__item {
  position: relative;
}

.fgx-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: .55rem .72rem !important;
  border-radius: 999px;
  color: rgba(255,255,255,.88) !important;
  font-size: .89rem;
  font-weight: 850;
  letter-spacing: .01em;
  text-decoration: none;
  transition:
    color .22s ease,
    background .22s ease,
    transform .22s ease;
}

.fgx-nav__link:hover,
.fgx-nav__link.active,
.fgx-nav__item.show > .fgx-nav__link {
  color: var(--blanco) !important;
  background: rgba(255,255,255,.12);
  transform: translateY(-1px);
}

.fgx-nav__link.active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: .28rem;
  width: 28px;
  height: 3px;
  border-radius: 999px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

/* Dropdown */

.fgx-nav .dropdown-toggle::after {
  margin-left: .42rem;
  vertical-align: middle;
  border-top-color: var(--dorado);
}

.fgx-nav__dropdown {
  overflow: hidden;
  min-width: 230px;
  margin-top: .7rem !important;
  padding: .55rem;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 22px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

.fgx-nav__dropdown--wide {
  min-width: 270px;
}

.fgx-nav__dropdown .dropdown-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 42px;
  padding: .65rem .75rem;
  border-radius: 16px;
  color: var(--azul);
  font-size: .9rem;
  line-height: 1.25;
  font-weight: 850;
  text-decoration: none;
  transition:
    background .2s ease,
    color .2s ease,
    transform .2s ease;
}

.fgx-nav__dropdown .dropdown-item::before {
  content: "";
  flex: 0 0 auto;
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 4px rgba(202, 162, 74, .16);
}

.fgx-nav__dropdown .dropdown-item:hover,
.fgx-nav__dropdown .dropdown-item:focus {
  color: var(--azul);
  background: rgba(209, 186, 144, .22);
  transform: translateX(3px);
}

/* Botón reservas */

.fgx-nav__item--cta {
  margin-left: .55rem;
}

/* CTA de reservas. El circulo del icono ya existia, pero con el mismo amarillo
   del boton detras: no se veia. Ahora lleva el azul de marca, que es el mismo
   juego que el resto del sitio (circulo dorado con icono azul) pero al reves,
   porque aqui la pastilla ya es dorada. */
.fgx-nav__reservation {
  position: relative;
  align-items: center;
  gap: .6rem;
  min-height: 52px;
  /* Menos relleno por la izquierda: ahi manda el circulo. */
  padding: .45rem 1.05rem .45rem .5rem;
  border-radius: 999px;
  color: var(--azul);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .30), rgba(255, 255, 255, 0) 58%),
    var(--amarillo);
  border: 1px solid rgba(255, 255, 255, .45);
  box-shadow:
    0 10px 26px rgba(255, 183, 3, .34),
    0 2px 6px rgba(0, 0, 0, .16),
    inset 0 1px 0 rgba(255, 255, 255, .55);
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease;
}

.fgx-nav__reservation:hover,
.fgx-nav__reservation:focus-visible {
  color: var(--azul);
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow:
    0 16px 38px rgba(255, 183, 3, .46),
    0 3px 10px rgba(0, 0, 0, .20),
    inset 0 1px 0 rgba(255, 255, 255, .60);
}

/* El foco general del sitio es un contorno amarillo: sobre un boton amarillo
   no se ve. Aqui va en blanco. */
.fgx-nav__reservation:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.fgx-nav__reservation-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: var(--amarillo);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow:
    0 4px 12px rgba(0, 40, 90, .35),
    inset 0 1px 0 rgba(255, 255, 255, .18);
  transition: transform .22s ease, box-shadow .22s ease;
}

.fgx-nav__reservation:hover .fgx-nav__reservation-icon,
.fgx-nav__reservation:focus-visible .fgx-nav__reservation-icon {
  transform: scale(1.08);
  box-shadow:
    0 6px 16px rgba(0, 40, 90, .42),
    inset 0 1px 0 rgba(255, 255, 255, .24);
}

/* Onda que sale del circulo, solo al pasar por encima: quieto no distrae y en
   el momento en que el raton llega, señala que eso llama por telefono.
   base.css anula las animaciones con prefers-reduced-motion. */
.fgx-nav__reservation-icon::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, .55);
  opacity: 0;
  pointer-events: none;
}

.fgx-nav__reservation:hover .fgx-nav__reservation-icon::after {
  animation: fgx-nav-onda 1.6s ease-out infinite;
}

@keyframes fgx-nav-onda {
  0%   { opacity: .75; transform: scale(.92); }
  100% { opacity: 0;   transform: scale(1.4); }
}

.fgx-nav__reservation-text {
  display: block;
  line-height: 1.05;
}

/* La etiqueta acompaña; el numero es la accion, asi que manda el numero. */
.fgx-nav__reservation-text strong {
  display: block;
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  opacity: .78;
}

.fgx-nav__reservation-text small {
  display: block;
  margin-top: .12rem;
  font-size: .95rem;
  font-weight: 800;
  letter-spacing: .01em;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1199.98px) {
  .fgx-nav__logo {
    width: 150px;
    max-width: 150px;
  }

  .fgx-nav__link {
    padding-inline: .55rem !important;
    font-size: .84rem;
  }

  .fgx-nav__reservation {
    /* Asimetrico como en pantalla grande: por la izquierda manda el circulo. */
    padding-inline: .45rem .8rem;
  }
}

@media (max-width: 991.98px) {
  .fgx-nav {
    min-height: 78px;
    padding: .5rem 0;
  }

  .fgx-nav__logo {
    width: 142px;
    max-width: 142px;
  }

  .fgx-nav__collapse {
    margin-top: .8rem;
    padding: .85rem;
    border-radius: 26px;
    background: rgba(0, 40, 90, .96);
    border: 1px solid rgba(209, 186, 144, .24);
    box-shadow: 0 20px 48px rgba(0, 0, 0, .22);
  }

  .fgx-nav__menu {
    align-items: stretch;
    gap: .35rem;
  }

  .fgx-nav__link {
    display: flex;
    justify-content: space-between;
    width: 100%;
    min-height: 46px;
    padding: .75rem .9rem !important;
    border-radius: 18px;
  }

  .fgx-nav__link.active::after {
    left: .9rem;
    bottom: .35rem;
    transform: none;
  }

  .fgx-nav__dropdown {
    margin-top: .35rem !important;
    margin-bottom: .35rem;
    padding: .45rem;
    border-radius: 18px;
    box-shadow: none;
  }

  .fgx-nav__dropdown .dropdown-item {
    min-height: 40px;
    border-radius: 14px;
  }

  .fgx-nav__item--cta {
    margin-left: 0;
    margin-top: .35rem;
  }

  .fgx-nav__reservation {
    display: inline-flex !important;
    width: 100%;
    justify-content: flex-start;
    border-radius: 18px;
  }
}

@media (max-width: 575.98px) {
  .fgx-nav__logo {
    width: 128px;
    max-width: 128px;
  }

  .fgx-nav__toggle {
    min-height: 42px;
    padding: .5rem .68rem;
  }

  .fgx-nav__toggle-text {
    font-size: .78rem;
  }
}

  /* =========================================================
   FLOR DE GALICIA · HERO MODERNO PREMIUM
   Módulo aislado con clases fgx-*
========================================================= */

.fgx-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  align-items: center;
  min-height: clamp(850px, 92vh, 920px);
  margin-top: -1px;
  background: #000;
}
.fgx-hero__title span {
    display: block;
    margin-top: .3rem;
    color: var(--dorado);
    font-size: .42em;
    line-height: 1.05;
    letter-spacing: -.035em;
}
/* Carrusel */
.fgx-hero__carousel,
.fgx-hero__inner,
.fgx-hero__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.fgx-hero__carousel {
  z-index: 1;
}

.fgx-hero__slide {
  overflow: hidden;
}

.fgx-hero__slide picture {
  display: block;
  width: 100%;
  height: 100%;
}

.fgx-hero__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform-origin: center center;
  filter: saturate(1.05) contrast(1.02);
}

/* Ken Burns */
.fgx-hero__slide.active .fgx-hero__img {
  animation: fgxHeroKenBurns 12s ease-out forwards;
}

@keyframes fgxHeroKenBurns {
  0% {
    transform: scale(1.13) translateY(0);
  }

  100% {
    transform: scale(1.02) translateY(-10px);
  }
}

/* Overlay suave: deja ver más la foto */
.fgx-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(
      circle at 50% 42%,
      rgba(0, 40, 90, .10) 0%,
      rgba(0, 0, 0, .08) 42%,
      rgba(0, 0, 0, .38) 100%
    ),
    linear-gradient(
      90deg,
      rgba(0, 0, 0, .48) 0%,
      rgba(0, 40, 90, .16) 45%,
      rgba(0, 0, 0, .42) 100%
    ),
    linear-gradient(
      180deg,
      rgba(0, 0, 0, .18) 0%,
      rgba(0, 40, 90, .06) 45%,
      rgba(0, 0, 0, .48) 100%
    );
}

/* Textura decorativa muy discreta */
.fgx-hero__grain {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  opacity: .035;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.35), transparent 78%);
}

/* Contenido */
.fgx-hero__content {
  position: relative;
  z-index: 5;
  padding-top: 2rem;
  padding-bottom: 5rem;
  pointer-events: none;
}

.fgx-hero__content a {
  pointer-events: auto;
}

.fgx-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .55rem 1.05rem;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-hero__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .22);
}

.fgx-hero__title {
  max-width: 1050px;
  margin: 0 auto;
  color: #ffffff;
  font-family: "Raleway", Arial, Helvetica, sans-serif;
  font-size: clamp(2.5rem, 6vw, 5.65rem);
  line-height: .95;
  font-weight: 950;
  letter-spacing: -.06em;
  text-transform: uppercase;
  text-wrap: balance;
  text-shadow:
    0 16px 44px rgba(0,0,0,.42),
    0 2px 12px rgba(0,0,0,.32);
}

.fgx-hero__title::after {
  content: "";
  display: block;
  width: 112px;
  height: 4px;
  margin: 1.25rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--dorado), var(--amarillo));
  box-shadow: 0 8px 24px rgba(202, 162, 74, .35);
}

.fgx-hero__subtitle {
  max-width: 900px;
  margin: 1.35rem auto 0;
  color: rgba(255,255,255,.92);
  font-size: clamp(1rem, 1.6vw, 1.28rem);
  line-height: 1.7;
  font-weight: 500;
  text-shadow: 0 10px 26px rgba(0,0,0,.38);
}

.fgx-hero__subtitle strong {
  color: #ffffff;
  font-weight: 850;
}

/* Botones */
.fgx-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin-top: 2rem;
}

.fgx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  min-width: 205px;
  min-height: 62px;
  padding: .85rem 1.15rem;
  border-radius: 999px;
  text-decoration: none;
  text-align: left;
  transition:
    transform .24s ease,
    box-shadow .24s ease,
    background .24s ease,
    color .24s ease,
    border-color .24s ease;
}

.fgx-btn__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 999px;
}

.fgx-btn strong {
  display: block;
  font-size: .94rem;
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: -.015em;
}

.fgx-btn small {
  display: block;
  margin-top: .2rem;
  font-size: .74rem;
  line-height: 1.1;
  font-weight: 750;
  opacity: .82;
}

.fgx-btn--primary {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .75);
  box-shadow:
    0 18px 44px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.48);
}

.fgx-btn--primary .fgx-btn__icon {
  color: var(--azul);
  background: rgba(255,255,255,.35);
}

.fgx-btn--secondary {
  color: #ffffff;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 18px 44px rgba(0,40,90,.28);
}

.fgx-btn--secondary .fgx-btn__icon {
  color: #ffffff;
  background: rgba(255,255,255,.13);
}

.fgx-btn--ghost {
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.32);
  backdrop-filter: blur(10px);
}

.fgx-btn--ghost .fgx-btn__icon {
  color: #ffffff;
  background: rgba(255,255,255,.12);
}

.fgx-btn:hover {
  transform: translateY(-3px);
  text-decoration: none;
}

.fgx-btn--primary:hover {
  color: var(--azul);
  box-shadow:
    0 24px 54px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.6);
}

.fgx-btn--secondary:hover {
  color: #ffffff;
  box-shadow: 0 24px 54px rgba(0,40,90,.36);
}

.fgx-btn--ghost:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

.fgx-btn--ghost:hover .fgx-btn__icon {
  color: var(--azul);
  background: rgba(0,40,90,.08);
}

/* Trust */
.fgx-hero__trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .7rem;
  margin-top: 1.35rem;
}

.fgx-hero__trust span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .5rem .75rem;
  border-radius: 999px;
  color: rgba(255,255,255,.92);
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(8px);
  font-size: .8rem;
  font-weight: 800;
}

.fgx-hero__trust i {
  color: var(--amarillo);
}

/* Indicadores */
.fgx-hero__indicators {
  z-index: 6;
  bottom: 38px;
  margin-bottom: 0;
}

.fgx-hero__indicators [data-bs-target] {
  width: 9px;
  height: 9px;
  margin: 0 5px;
  border: 0;
  border-radius: 999px;
  background-color: rgba(255,255,255,.48);
  opacity: 1;
  transition: width .25s ease, background .25s ease;
}

.fgx-hero__indicators .active {
  width: 30px;
  background-color: #ffffff;
}

/* Controles */
.fgx-hero__control {
  z-index: 7;
  top: 50%;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(0,0,0,.24);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(8px);
  opacity: 1;
  transition:
    transform .24s ease,
    background .24s ease,
    opacity .24s ease;
}

.fgx-hero__control:hover {
  background: rgba(0,0,0,.42);
  transform: translateY(-50%) scale(1.04);
}

.fgx-hero__control--prev {
  left: 18px;
}

.fgx-hero__control--next {
  right: 18px;
}

.fgx-hero__control .carousel-control-prev-icon,
.fgx-hero__control .carousel-control-next-icon {
  width: 1.35rem;
  height: 1.35rem;
}

/* Progreso */
.fgx-hero__progress {
  position: absolute;
  left: 50%;
  bottom: 24px;
  z-index: 6;
  width: min(420px, 78%);
  height: 3px;
  transform: translateX(-50%);
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.24);
  backdrop-filter: blur(4px);
}

.fgx-hero__progress span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #ffffff;
  opacity: .9;
  animation: fgxHeroProgress 4.5s linear infinite;
}

@keyframes fgxHeroProgress {
  0% {
    width: 0;
  }

  100% {
    width: 100%;
  }
}

/* Onda inferior */
.fgx-hero__wave {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  z-index: 5;
  width: 100%;
  line-height: 0;
  pointer-events: none;
}

.fgx-hero__wave svg {
  display: block;
  width: 100%;
  height: 150px;
}

/* Animaciones texto */
@keyframes fgxHeroFadeUp {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fgx-hero__animate {
  opacity: 0;
  animation: fgxHeroFadeUp .7s ease both;
}

.fgx-hero__animate--1 {
  animation-delay: .05s;
}

.fgx-hero__animate--2 {
  animation-delay: .15s;
}

.fgx-hero__animate--3 {
  animation-delay: .25s;
}

.fgx-hero__animate--4 {
  animation-delay: .35s;
}

.fgx-hero__animate--5 {
  animation-delay: .45s;
}

/* Responsive tablet */
@media (max-width: 1199.98px) {
  .fgx-hero {
    min-height: clamp(800px, 86vh, 860px);
  }

  .fgx-hero__title {
    font-size: clamp(2.35rem, 6vw, 4.8rem);
  }
}

@media (max-width: 991.98px) {
  .fgx-hero {
    margin-top: 0;
    min-height: clamp(620px, 82vh, 820px);
  }

  .fgx-hero__content {
    padding-bottom: 4.4rem;
  }

  .fgx-hero__control {
    width: 42px;
    height: 42px;
  }

  .fgx-hero__wave svg {
    height: 120px;
  }
}

/* Móvil */
@media (max-width: 767.98px) {
  .fgx-hero {
    min-height: auto;
    display: block;
    background: linear-gradient(180deg, var(--azul), #06172d);
  }

  .fgx-hero__carousel,
  .fgx-hero__inner,
  .fgx-hero__slide {
    position: relative;
    height: clamp(360px, 52vh, 540px);
  }

  .fgx-hero__overlay {
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.18) 0%,
        rgba(0,0,0,.04) 46%,
        rgba(0,0,0,.30) 100%
      );
  }

  .fgx-hero__grain {
    display: none;
  }

  .fgx-hero__content {
    position: relative;
    z-index: 8;
    padding: 2rem 1rem 2.4rem;
    background:
      radial-gradient(circle at 20% 0%, rgba(202,162,74,.20) 0%, transparent 34%),
      linear-gradient(180deg, var(--azul), #06172d);
    pointer-events: auto;
  }

  .fgx-hero__eyebrow {
    font-size: .68rem;
    line-height: 1.3;
  }

  .fgx-hero__title {
    font-size: clamp(2.05rem, 11vw, 3.25rem);
    line-height: 1;
  }

  .fgx-hero__subtitle {
    font-size: .98rem;
    line-height: 1.65;
  }

  .fgx-hero__actions {
    flex-direction: column;
    align-items: stretch;
    margin-top: 1.5rem;
  }

  .fgx-btn {
    width: 100%;
    justify-content: flex-start;
    min-height: 58px;
  }

  .fgx-hero__trust {
    flex-direction: column;
    align-items: stretch;
  }

  .fgx-hero__trust span {
    justify-content: center;
  }

  .fgx-hero__indicators {
    bottom: 18px;
  }

  .fgx-hero__progress {
    display: none;
  }

  .fgx-hero__control {
    width: 40px;
    height: 40px;
  }

  .fgx-hero__wave {
    display: none;
  }
}

/* Móvil pequeño */
@media (max-width: 575.98px) {
  .fgx-hero {
    margin-top: -3px;
  }

  .fgx-hero__carousel,
  .fgx-hero__inner,
  .fgx-hero__slide {
    height: clamp(340px, 50vh, 500px);
  }

  .fgx-hero__control {
    display: none;
  }

  .fgx-hero__indicators [data-bs-target] {
    width: 7px;
    height: 7px;
  }

  .fgx-hero__indicators .active {
    width: 24px;
  }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .fgx-hero__slide.active .fgx-hero__img,
  .fgx-hero__animate,
  .fgx-hero__progress span {
    animation: none !important;
  }

  .fgx-hero__animate {
    opacity: 1;
  }
}

/* =========================================================
   FLOR DE GALICIA · ABOUT MODERNO PREMIUM
   Clases aisladas fgx-about-*
========================================================= */

.fgx-about {
  position: relative;
  overflow: hidden;
  padding: 10px 0 120px;
  background:
    radial-gradient(circle at 8% 12%, rgba(238, 238, 238, 0.08) 0%, transparent 34%),
    radial-gradient(circle at 92% 86%, rgba(202, 162, 74, .14) 0%, transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-about::before {
  content: "";
  position: absolute;
  inset: 38px auto auto -120px;
  width: 310px;
  height: 310px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  filter: blur(2px);
  pointer-events: none;
}

.fgx-about::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -130px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-about .container {
  position: relative;
  z-index: 2;
}

/* =========================================================
   CONTENIDO
========================================================= */

.fgx-about__content {
  position: relative;
  padding: 10px 0;
}

.fgx-about__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .48rem .95rem;
  border-radius: 999px;
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  color: var(--azul);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-about__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-about__title {
  margin: 0;
  color: var(--azul);
  font-size: clamp(2.65rem, 5vw, 3.3rem);
  line-height: .92;
  font-weight: 600;
  letter-spacing: 2px;
}

.fgx-about__title::after {
  content: "";
  display: block;
  width: 86px;
  height: 4px;
  margin-top: 1.05rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-about__lead {
  margin: 1.5rem 0 1.25rem;
  color: #1f2937;
  font-size: clamp(1.15rem, 1.5vw, 1.38rem);
  line-height: 1.55;
  font-weight: 700;
}

.fgx-about__content p {
  color: #393939;
  font-size: 1rem;
  line-height: 1.82;
  margin-bottom: 1rem;
}

.fgx-about__content strong {
  color: var(--azul);
  font-weight: 700;
}

/* =========================================================
   FEATURES
========================================================= */

.fgx-about__features {
  display: grid;
  grid-template-columns: 1fr;
  gap: .85rem;
  margin: 1.55rem 0 1.35rem;
}

.fgx-about__feature {
  display: flex;
  align-items: center;
  gap: .95rem;
  padding: .9rem 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 14px 38px rgba(0, 40, 90, .07);
}

.fgx-about__feature span {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  color: var(--azul);
  background: linear-gradient(135deg, rgba(209, 186, 144, .72), rgba(249, 182, 0, 1));
  box-shadow: 0 10px 24px rgba(202, 162, 74, .22);
}

.fgx-about__feature p {
  margin: 0;
  color: #404040;
  font-size: .92rem;
  line-height: 1.35;
}

.fgx-about__feature strong {
  display: block;
  margin-bottom: .18rem;
  color: var(--azul);
  font-size: .98rem;
}

/* =========================================================
   ACORDEÓN
========================================================= */

.fgx-about__accordion {
  margin-top: 1.15rem;
}

.fgx-about__accordion .accordion-item {
  overflow: hidden;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 24px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 16px 44px rgba(0, 40, 90, .07);
}

.fgx-about__accordion .accordion-button {
  padding: 1rem 1.15rem;
  color: var(--azul);
  background: rgba(255,255,255,.86);
  font-size: .95rem;
  font-weight: 900;
  box-shadow: none;
}

.fgx-about__accordion .accordion-button:not(.collapsed) {
  color: var(--azul);
  background: rgba(209, 186, 144, .22);
}

.fgx-about__accordion .accordion-button:focus {
  border-color: rgba(202, 162, 74, .6);
  box-shadow: 0 0 0 .2rem rgba(202, 162, 74, .18);
}

.fgx-about__accordion .accordion-button::after {
  width: 1rem;
  height: 1rem;
  background-size: 1rem;
}

.fgx-about__accordion .accordion-body {
  padding: 0 1.15rem 1.15rem;
}

.fgx-about__accordion a {
  color: var(--azulc);
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.fgx-about__accordion a:hover {
  color: var(--azul);
}

.fgx-about__highlight {
  margin-top: 1.1rem;
  padding: 1rem 1.1rem;
  border-left: 4px solid var(--amarillo);
  border-radius: 18px;
  color: var(--azul) !important;
  background: rgba(209, 186, 144, .18);
  font-weight: 900;
  line-height: 1.55 !important;
}

/* =========================================================
   BOTONES
========================================================= */

.fgx-about__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 1.6rem;
}

.fgx-about__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.15rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 900;
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-about__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-about__btn--primary {
  color: var(--blanco);
  border: 1px solid var(--azul);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 16px 38px rgba(0, 40, 90, .22);
  font-size: 1.1rem;
}

.fgx-about__btn--primary:hover {
  color: var(--blanco);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .30);
}

.fgx-about__btn--outline {
  color: var(--azul);
  border: 1px solid rgba(0, 40, 90, .18);
  background: var(--amarillo);
  font-size: 1.1rem;
}

.fgx-about__btn--outline:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: rgba(209, 186, 144, .22);
}

/* =========================================================
   IMÁGENES
========================================================= */

.fgx-about__media {
  position: relative;
  min-height: 650px;
  padding: 22px;
}

.fgx-about__media::before {
  content: "";
  position: absolute;
  inset: 70px 40px 50px 70px;
  z-index: 0;
  border-radius: 42px;
  background: linear-gradient(135deg, rgba(0, 40, 90, .12), rgba(202, 162, 74, .18));
  transform: rotate(-3deg);
}

.fgx-about__photo {
  position: absolute;
  overflow: hidden;
  z-index: 2;
  border-radius: 34px;
  background: #ddd;
  box-shadow: 0 28px 80px rgba(0, 40, 90, .22);
}

.fgx-about__photo picture,
.fgx-about__photo img {
  display: block;
  width: 100%;
  height: 100%;
}

.fgx-about__photo img {
  object-fit: cover;
  transition: transform .6s ease;
}

.fgx-about__photo:hover img {
  transform: scale(1.045);
}

.fgx-about__photo--main {
  left: 0;
  top: 20px;
  width: 66%;
  height: 560px;
}

.fgx-about__photo--secondary {
  right: 0;
  bottom: 10px;
  width: 46%;
  height: 385px;
  border: 8px solid #fff;
}

.fgx-about__badge {
  position: absolute;
  z-index: 3;
  right: 28px;
  top: 42px;
  width: 166px;
  min-height: 166px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 1rem;
  border-radius: 50%;
  color: var(--azul);
  background:
    radial-gradient(circle at 30% 20%, #fff 0%, var(--amarillo) 70%);
  border: 1px solid rgba(202, 162, 74, .42);
  box-shadow: 0 24px 54px rgba(0, 40, 90, .18);
}

.fgx-about__badge strong {
  display: block;
  color: var(--azul);
  font-size: 2rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -.04em;
}

.fgx-about__badge span {
  display: block;
  max-width: 112px;
  margin: .35rem auto 0;
  color: var(--azul);
  font-size: .78rem;
  line-height: 1.25;
  font-weight: 900;
  text-transform: uppercase;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1199.98px) {
  .fgx-about__media {
    min-height: 590px;
  }

  .fgx-about__photo--main {
    height: 505px;
  }

  .fgx-about__photo--secondary {
    height: 340px;
  }
}

@media (max-width: 991.98px) {
  .fgx-about {
    padding: 90px 0 100px;
  }

  .fgx-about__content {
    max-width: 760px;
    margin-inline: auto;
  }

  .fgx-about__media {
    max-width: 760px;
    min-height: 610px;
    margin-inline: auto;
  }
}

@media (max-width: 767.98px) {
  .fgx-about {
    padding: 72px 0 82px;
  }

  .fgx-about__title {
    font-size: clamp(2.45rem, 13vw, 3.8rem);
  }

  .fgx-about__lead {
    font-size: 1.08rem;
  }

  .fgx-about__content p {
    font-size: .96rem;
    line-height: 1.72;
  }

  .fgx-about__media {
    min-height: auto;
    padding: 0;
    display: grid;
    gap: 1rem;
  }

  .fgx-about__media::before {
    display: none;
  }

  .fgx-about__photo {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    border-radius: 28px;
  }

  .fgx-about__photo--main,
  .fgx-about__photo--secondary {
    width: 100%;
    height: auto;
  }

  .fgx-about__photo--secondary {
    border: 0;
  }

  .fgx-about__photo img {
    aspect-ratio: 4 / 3;
  }

  .fgx-about__badge {
    position: absolute;
    right: 18px;
    top: 18px;
    width: 132px;
    min-height: 132px;
  }

  .fgx-about__badge strong {
    font-size: 1.55rem;
  }

  .fgx-about__badge span {
    font-size: .66rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-about__features {
    gap: .7rem;
  }

  .fgx-about__feature {
    align-items: flex-start;
    padding: .85rem;
    border-radius: 18px;
  }

  .fgx-about__feature span {
    width: 40px;
    height: 40px;
    border-radius: 14px;
  }

  .fgx-about__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-about__btn {
    width: 100%;
  }

  .fgx-about__badge {
    width: 118px;
    min-height: 118px;
  }

  .fgx-about__badge strong {
    font-size: 1.38rem;
  }
}
/* =========================================================
   FLOR DE GALICIA · BLOQUE SEO INTRO
   Clases aisladas fgx-seo-intro-*
========================================================= */

.fgx-seo-intro {
  position: relative;
  overflow: hidden;
  padding: 46px 0 64px;
  background:
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-seo-intro::before {
  content: "";
  position: absolute;
  top: -120px;
  left: -120px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-seo-intro::after {
  content: "";
  position: absolute;
  right: -140px;
  bottom: -160px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-seo-intro .container {
  position: relative;
  z-index: 2;
}

.fgx-seo-intro__card {
  position: relative;
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 1.45rem;
  padding: 2.1rem;
  border-radius: 34px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.82));
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 22px 64px rgba(0, 40, 90, .09);
}

.fgx-seo-intro__card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    rgba(202, 162, 74, .42),
    rgba(0, 40, 90, .08),
    rgba(209, 186, 144, .36)
  );
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  pointer-events: none;
}

.fgx-seo-intro__icon {
  display: grid;
  place-items: center;
  width: 86px;
  height: 86px;
  border-radius: 28px;
  color: var(--azul);
  font-size: 2rem;
  background:
    linear-gradient(135deg, rgba(209, 186, 144, .82), rgba(202, 162, 74, .96));
  box-shadow: 0 18px 42px rgba(202, 162, 74, .23);
}

.fgx-seo-intro__eyebrow {
  display: inline-flex;
  align-items: center;
  margin-bottom: .75rem;
  color: var(--azulc);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-seo-intro__title {
  max-width: 880px;
  margin: 0 0 1.05rem;
  color: var(--azul);
  font-size: clamp(1.7rem, 3vw, 2.65rem);
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.fgx-seo-intro__content p {
  max-width: 940px;
  margin: 0 0 1rem;
  color: #3a3a3a;
  font-size: 1.02rem;
  line-height: 1.82;
}

.fgx-seo-intro__content p:last-of-type {
  margin-bottom: 0;
}

.fgx-seo-intro__content strong {
  color: var(--azul);
  font-weight: 700;
}

.fgx-seo-intro__links {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin-top: 1.45rem;
}

.fgx-seo-intro__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 43px;
  padding: .68rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0, 40, 90, .12);
  font-size: .9rem;
  font-weight: 900;
  text-decoration: none;
  transition:
    transform .22s ease,
    color .22s ease,
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease;
}

.fgx-seo-intro__links a i {
  color: var(--amarillo);
}

.fgx-seo-intro__links a:hover {
  color: var(--azul);
  border-color: rgba(202, 162, 74, .8);
  background: rgba(209, 186, 144, .20);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .08);
  transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 767.98px) {
  .fgx-seo-intro {
    padding: 34px 0 54px;
  }

  .fgx-seo-intro__card {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.35rem;
    border-radius: 28px;
  }

  .fgx-seo-intro__icon {
    width: 64px;
    height: 64px;
    border-radius: 22px;
    font-size: 1.45rem;
  }

  .fgx-seo-intro__title {
    font-size: clamp(1.55rem, 8vw, 2.2rem);
  }

  .fgx-seo-intro__content p {
    font-size: .96rem;
    line-height: 1.72;
  }

  .fgx-seo-intro__links {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-seo-intro__links a {
    width: 100%;
  }
}

/* =========================================================
   FLOR DE GALICIA · PROMO CENA TAPAS 25€
   Clases aisladas fgx-tapas-*
========================================================= */

.fgx-tapas {
  position: relative;
  overflow: hidden;
  padding: 54px 0 74px;
  background:
    radial-gradient(circle at 8% 16%, rgba(209, 186, 144, .18) 0%, transparent 34%),
    radial-gradient(circle at 92% 84%, rgba(0, 101, 209, .10) 0%, transparent 36%),
    linear-gradient(180deg, #f8f5ef 0%, #ffffff 100%);
}

.fgx-tapas .container {
  position: relative;
  z-index: 2;
}

.fgx-tapas__box {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2rem;
  padding: clamp(1.5rem, 3.5vw, 3rem);
  border-radius: 38px;
  color: var(--blanco);
  background:
    linear-gradient(135deg, rgba(0, 40, 90, .98), rgba(0, 101, 209, .88)),
    var(--azul);
  box-shadow: 0 28px 78px rgba(0, 40, 90, .24);
}

.fgx-tapas__box::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 16% 18%, rgba(255, 255, 255, .16) 0%, transparent 26%),
    radial-gradient(circle at 82% 78%, rgba(202, 162, 74, .30) 0%, transparent 32%);
  pointer-events: none;
}

.fgx-tapas__box::after {
  content: "";
  position: absolute;
  right: -86px;
  top: -86px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .34);
  background: rgba(255, 255, 255, .05);
  pointer-events: none;
}

.fgx-tapas__content,
.fgx-tapas__cta {
  position: relative;
  z-index: 2;
}

.fgx-tapas__label {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .9rem;
  padding: .48rem .9rem;
  border-radius: 999px;
  color: var(--dorado);
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(209, 186, 144, .30);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-tapas__label i {
  color: var(--amarillo);
}

.fgx-tapas__title {
  max-width: 760px;
  margin: 0;
  color: var(--blanco);
  font-size: clamp(2rem, 4.2vw, 4rem);
  line-height: .98;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-tapas__title::after {
  content: "";
  display: block;
  width: 86px;
  height: 4px;
  margin-top: 1rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-tapas__text {
  max-width: 760px;
  margin: 1.15rem 0 0;
  color: rgba(255, 255, 255, .88);
  font-size: 1.04rem;
  line-height: 1.72;
}

.fgx-tapas__text strong {
  color: var(--blanco);
  font-weight: 700;
}

.fgx-tapas__features {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.25rem;
}

.fgx-tapas__features span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .48rem .75rem;
  border-radius: 999px;
  color: rgba(255, 255, 255, .88);
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .14);
  font-size: .86rem;
  font-weight: 800;
}

.fgx-tapas__features i {
  color: var(--amarillo);
}

/* CTA */
.fgx-tapas__cta {
  display: grid;
  gap: .85rem;
  min-width: 260px;
}

.fgx-tapas__btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .8rem;
  min-height: 64px;
  padding: .8rem 1rem;
  border-radius: 999px;
  text-decoration: none;
  line-height: 1.05;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-tapas__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-tapas__btn-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1rem;
}

.fgx-tapas__btn strong {
  display: block;
  font-size: .96rem;
  font-weight: 950;
}

.fgx-tapas__btn small {
  display: block;
  margin-top: .22rem;
  font-size: .76rem;
  font-weight: 800;
  opacity: .82;
}

.fgx-tapas__btn--primary {
  color: var(--azul);
  background: var(--blanco);
  border: 1px solid rgba(255, 255, 255, .74);
  box-shadow: 0 16px 42px rgba(0, 0, 0, .22);
}

.fgx-tapas__btn--primary .fgx-tapas__btn-icon {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-tapas__btn--primary:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: var(--amarillo);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .28);
}

.fgx-tapas__btn--secondary {
  color: var(--blanco);
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(209, 186, 144, .34);
  backdrop-filter: blur(12px);
}

.fgx-tapas__btn--secondary .fgx-tapas__btn-icon {
  color: var(--azul);
  background: var(--dorado);
}

.fgx-tapas__btn--secondary:hover {
  color: var(--blanco);
  background: rgba(255, 255, 255, .16);
  border-color: var(--amarillo);
}

/* Responsive */
@media (max-width: 991.98px) {
  .fgx-tapas__box {
    grid-template-columns: 1fr;
    gap: 1.7rem;
  }

  .fgx-tapas__cta {
    display: flex;
    flex-wrap: wrap;
    min-width: 0;
  }

  .fgx-tapas__btn {
    flex: 1 1 230px;
  }
}

@media (max-width: 575.98px) {
  .fgx-tapas {
    padding: 40px 0 56px;
  }

  .fgx-tapas__box {
    padding: 1.35rem;
    border-radius: 30px;
  }

  .fgx-tapas__label {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-tapas__title {
    font-size: clamp(1.85rem, 10vw, 2.75rem);
  }

  .fgx-tapas__text {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-tapas__features {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-tapas__features span {
    width: 100%;
  }

  .fgx-tapas__cta {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-tapas__btn {
    width: 100%;
  }
}

/* =========================================================
   FLOR DE GALICIA · CARTAS Y MENÚS
   Clases aisladas fgx-cards-*
========================================================= */

.fgx-cards {
  position: relative;
  overflow: hidden;
  padding: 90px 0 105px;
  background:
    radial-gradient(circle at 8% 18%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 86%, rgba(202, 162, 74, .16) 0%, transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-cards::before {
  content: "";
  position: absolute;
  left: -120px;
  top: 80px;
  width: 310px;
  height: 310px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-cards::after {
  content: "";
  position: absolute;
  right: -140px;
  bottom: -130px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-cards .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */
.fgx-cards__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-cards__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-cards__title {
  max-width: 920px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-cards__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-cards__intro {
  max-width: 780px;
  margin: 1.25rem auto 2.75rem;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.75;
}

/* Tarjetas */
.fgx-cards__item {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  height: 100%;
  padding: 1.55rem;
  border-radius: 32px;
  color: #383838;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.86));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 20px 58px rgba(0, 40, 90, .08);
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease,
    background .25s ease;
}

.fgx-cards__item::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0;
  background:
    radial-gradient(circle at 18% 18%, rgba(209, 186, 144, .24) 0%, transparent 34%),
    linear-gradient(135deg, rgba(0, 40, 90, .04), rgba(202, 162, 74, .08));
  transition: opacity .25s ease;
  pointer-events: none;
}

.fgx-cards__item::after {
  content: "";
  position: absolute;
  right: -52px;
  top: -52px;
  width: 128px;
  height: 128px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .05);
  border: 1px solid rgba(202, 162, 74, .20);
  pointer-events: none;
  transition: transform .25s ease, opacity .25s ease;
}

.fgx-cards__item > * {
  position: relative;
  z-index: 1;
}

.fgx-cards__item:hover {
  color: #383838;
  text-decoration: none;
  transform: translateY(-7px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 28px 76px rgba(0, 40, 90, .15);
}

.fgx-cards__item:hover::before {
  opacity: 1;
}

.fgx-cards__item:hover::after {
  transform: scale(1.16);
}

/* Destacada */
.fgx-cards__item--featured {
  border-color: rgba(202, 162, 74, .45);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(209, 186, 144, .18));
}

.fgx-cards__item--featured .fgx-cards__icon {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

/* Icono */
.fgx-cards__icon {
  display: inline-grid;
  place-items: center;
  width: 62px;
  height: 62px;
  margin-bottom: 1rem;
  border-radius: 22px;
  color: var(--blanco);
  font-size: 1.35rem;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 16px 36px rgba(0, 40, 90, .18);
}

.fgx-cards__tag {
  display: inline-flex;
  width: fit-content;
  margin-bottom: .85rem;
  padding: .35rem .68rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .06);
  border: 1px solid rgba(0, 40, 90, .08);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.fgx-cards__item h3 {
  margin: 0 0 .75rem;
  color: var(--azul);
  font-size: 1.45rem;
  line-height: 1.05;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fgx-cards__item p {
  flex: 1;
  margin: 0 0 1.25rem;
  color: #464646;
  font-size: .96rem;
  line-height: 1.68;
}

.fgx-cards__item p strong {
  color: var(--azul);
  font-weight: 700;
}

.fgx-cards__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  width: 100%;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 40, 90, .08);
  color: var(--azul);
  font-size: .92rem;
  font-weight: 950;
}

.fgx-cards__cta i {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: var(--azul);
  background: rgba(209, 186, 144, .36);
  transition: transform .25s ease, background .25s ease;
}

.fgx-cards__item:hover .fgx-cards__cta i {
  transform: translateX(4px);
  background: rgba(202, 162, 74, .58);
}

/* Responsive */
@media (max-width: 991.98px) {
  .fgx-cards {
    padding: 76px 0 86px;
  }

  .fgx-cards__intro {
    margin-bottom: 2.2rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-cards {
    padding: 62px 0 72px;
  }

  .fgx-cards__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-cards__title {
    font-size: clamp(1.85rem, 10vw, 2.75rem);
  }

  .fgx-cards__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-cards__item {
    padding: 1.25rem;
    border-radius: 28px;
  }

  .fgx-cards__icon {
    width: 56px;
    height: 56px;
    border-radius: 19px;
    font-size: 1.2rem;
  }

  .fgx-cards__item h3 {
    font-size: 1.32rem;
  }

  .fgx-cards__item p {
    font-size: .93rem;
  }
}
/* =========================================================
   FLOR DE GALICIA · ESPECIALIDADES
   Cards con foto · Clases aisladas fgx-specialties-*
========================================================= */

.fgx-specialties {
  position: relative;
  overflow: hidden;
  padding: 96px 0 110px;
  background:
    radial-gradient(circle at 10% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-specialties::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 110px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-specialties::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-specialties .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */
.fgx-specialties__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-specialties__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-specialties__title {
  max-width: 920px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.7rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-specialties__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-specialties__intro {
  max-width: 840px;
  margin: 1.25rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-specialties__intro strong {
  color: var(--azul);
  font-weight: 850;
}

.fgx-specialties__grid {
  margin-top: 3rem;
}

/* Card */
.fgx-specialties__card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  border-radius: 34px;
  color: #383838;
  text-decoration: none;
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 22px 64px rgba(0, 40, 90, .09);
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.fgx-specialties__card:hover {
  color: #383838;
  text-decoration: none;
  transform: translateY(-8px);
  border-color: rgba(202, 162, 74, .52);
  box-shadow: 0 32px 86px rgba(0, 40, 90, .17);
}

/* Imagen */
.fgx-specialties__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: #ddd;
}

.fgx-specialties__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, .28) 100%),
    radial-gradient(circle at 80% 20%, rgba(202, 162, 74, .14), transparent 38%);
  pointer-events: none;
}

.fgx-specialties__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s ease;
}

.fgx-specialties__card:hover .fgx-specialties__image img {
  transform: scale(1.055);
}

/* Contenido */
.fgx-specialties__content {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.35rem 1.35rem 1.45rem;
}

.fgx-specialties__badge {
  display: inline-flex;
  width: fit-content;
  margin-top: -2.1rem;
  margin-bottom: .95rem;
  padding: .46rem .78rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 3px solid #fff;
  box-shadow: 0 12px 28px rgba(0, 40, 90, .16);
  font-size: .75rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fgx-specialties__content h3 {
  margin: 0 0 .75rem;
  color: var(--azul);
  font-size: 1.38rem;
  line-height: 1.12;
  font-weight: 950;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.fgx-specialties__content p {
  flex: 1;
  margin: 0 0 1.2rem;
  color: #484848;
  font-size: .96rem;
  line-height: 1.68;
}

.fgx-specialties__content p strong {
  color: var(--azul);
  font-weight: 700;
}

.fgx-specialties__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  width: 100%;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 40, 90, .08);
  color: var(--azul);
  font-size: .92rem;
  font-weight: 950;
}

.fgx-specialties__cta i {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: var(--azul);
  background: rgba(209, 186, 144, .36);
  transition:
    transform .25s ease,
    background .25s ease;
}

.fgx-specialties__card:hover .fgx-specialties__cta i {
  transform: translateX(4px);
  background: rgba(202, 162, 74, .58);
}

/* Responsive */
@media (max-width: 991.98px) {
  .fgx-specialties {
    padding: 78px 0 90px;
  }

  .fgx-specialties__grid {
    margin-top: 2.3rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-specialties {
    padding: 62px 0 74px;
  }

  .fgx-specialties__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-specialties__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-specialties__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-specialties__card {
    border-radius: 28px;
  }

  .fgx-specialties__content {
    padding: 1.15rem 1.15rem 1.25rem;
  }

  .fgx-specialties__badge {
    margin-top: -1.95rem;
    font-size: .68rem;
  }

  .fgx-specialties__content h3 {
    font-size: 1.25rem;
  }

  .fgx-specialties__content p {
    font-size: .93rem;
  }
}
/* =========================================================
   FLOR DE GALICIA · CTA TODAS LAS ESPECIALIDADES
   Clases aisladas fgx-specialties-cta-*
========================================================= */

.fgx-specialties-cta {
  position: relative;
  overflow: hidden;
  padding: 0 0 58px;
  background: linear-gradient(180deg, #f8f5ef 0%, #ffffff 100%);
}

.fgx-specialties-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  max-width: 620px;
  min-height: 72px;
  padding: .9rem 1.35rem;
  border-radius: 999px;
  color: var(--azul);
  text-decoration: none;
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(0, 40, 90, .12);
  box-shadow: 0 18px 48px rgba(0, 40, 90, .10);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease,
    background .22s ease;
}

.fgx-specialties-cta__btn:hover {
  color: var(--azul);
  text-decoration: none;
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .72);
  background: rgba(209, 186, 144, .18);
  box-shadow: 0 24px 62px rgba(0, 40, 90, .16);
}

.fgx-specialties-cta__icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  box-shadow: 0 12px 28px rgba(202, 162, 74, .24);
}

.fgx-specialties-cta__btn strong {
  display: block;
  font-size: 1rem;
  font-weight: 950;
  letter-spacing: -.01em;
}

.fgx-specialties-cta__btn small {
  display: block;
  margin-top: .22rem;
  color: #555;
  font-size: .78rem;
  font-weight: 800;
}

/* =========================================================
   FLOR DE GALICIA · UBICACIÓN
   Clases aisladas fgx-location-*
========================================================= */

.fgx-location {
  position: relative;
  overflow: hidden;
  padding: 88px 0 104px;
  background:
    radial-gradient(circle at 10% 16%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 82%, rgba(202, 162, 74, .16) 0%, transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-location::before {
  content: "";
  position: absolute;
  left: -130px;
  top: 70px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-location::after {
  content: "";
  position: absolute;
  right: -160px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-location .container {
  position: relative;
  z-index: 2;
}

/* Texto */
.fgx-location__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-location__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-location__title {
  max-width: 760px;
  margin: 0;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-location__title::after {
  content: "";
  display: block;
  width: 88px;
  height: 4px;
  margin-top: 1.2rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-location__lead {
  margin-top: 1.45rem;
  color: #28313f;
  font-size: 1.14rem;
  line-height: 1.65;
  font-weight: 700;
}

.fgx-location__content p {
  max-width: 840px;
  margin-bottom: 1rem;
  color: #454545;
  font-size: 1rem;
  line-height: 1.8;
}

.fgx-location__content strong {
  color: var(--azul);
  font-weight: 700;
}

/* Features */
.fgx-location__features {
  display: grid;
  grid-template-columns: 1fr;
  gap: .85rem;
  margin-top: 1.5rem;
}

.fgx-location__feature {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: .9rem 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 14px 38px rgba(0, 40, 90, .07);
}

.fgx-location__feature i {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 15px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-location__feature span {
  color: #454545;
  font-size: .92rem;
  line-height: 1.35;
  font-weight: 700;
}

.fgx-location__feature strong {
  display: block;
  margin-bottom: .18rem;
  color: var(--azul);
  font-size: .98rem;
}

/* Botones */
.fgx-location__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 1.65rem;
}

.fgx-location__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.16rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-location__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-location__btn--primary {
  color: var(--blanco);
  border: 1px solid var(--azul);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 16px 38px rgba(0, 40, 90, .22);
}

.fgx-location__btn--primary:hover {
  color: var(--blanco);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .30);
}

.fgx-location__btn--outline {
  color: var(--azul);
  border: 1px solid rgba(0, 40, 90, .18);
  background: rgba(255,255,255,.76);
}

.fgx-location__btn--outline:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: rgba(209, 186, 144, .22);
}

/* Tarjeta lateral */
.fgx-location__card {
  position: relative;
  overflow: hidden;
  padding: 2rem;
  border-radius: 36px;
  color: var(--blanco);
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.15) 0%, transparent 30%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .28) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 28px 78px rgba(0, 40, 90, .24);
}

.fgx-location__card::after {
  content: "";
  position: absolute;
  right: -70px;
  top: -70px;
  width: 190px;
  height: 190px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .34);
  background: rgba(255,255,255,.06);
  pointer-events: none;
}

.fgx-location__card > * {
  position: relative;
  z-index: 2;
}

.fgx-location__card-icon {
  display: inline-grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin-bottom: 1.15rem;
  border-radius: 22px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: 1.55rem;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .18);
}

.fgx-location__card h3 {
  margin: 0 0 .65rem;
  color: var(--blanco);
  font-size: 2rem;
  line-height: 1.05;
  font-weight: 950;
  letter-spacing: -.035em;
}

.fgx-location__card p {
  margin: 0 0 1.3rem;
  color: rgba(255,255,255,.86);
  font-size: 1rem;
  line-height: 1.65;
}

.fgx-location__card ul {
  display: grid;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-location__card li {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  color: rgba(255,255,255,.9);
  font-size: .94rem;
  line-height: 1.45;
  font-weight: 750;
}

.fgx-location__card li i {
  margin-top: .18rem;
  color: var(--amarillo);
}

.fgx-location__map-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-top: 1.5rem;
  min-height: 46px;
  padding: .76rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: var(--blanco);
  border: 1px solid rgba(255,255,255,.7);
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease;
}

.fgx-location__map-link:hover {
  color: var(--azul);
  text-decoration: none;
  transform: translateY(-2px);
  border-color: var(--amarillo);
  box-shadow: 0 14px 32px rgba(0, 0, 0, .18);
}

.fgx-location__map-link i {
  transition: transform .22s ease;
}

.fgx-location__map-link:hover i {
  transform: translateX(4px);
}

/* Responsive */
@media (max-width: 991.98px) {
  .fgx-location {
    padding: 76px 0 88px;
  }

  .fgx-location__card {
    max-width: 680px;
  }
}

@media (max-width: 575.98px) {
  .fgx-specialties-cta {
    padding: 0 0 42px;
  }

  .fgx-specialties-cta__btn {
    width: 100%;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
    border-radius: 28px;
  }

  .fgx-specialties-cta__btn small {
    font-size: .74rem;
    line-height: 1.35;
  }

  .fgx-location {
    padding: 62px 0 72px;
  }

  .fgx-location__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-location__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-location__lead {
    font-size: 1.03rem;
  }

  .fgx-location__content p {
    font-size: .95rem;
    line-height: 1.68;
  }

  .fgx-location__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-location__btn {
    width: 100%;
  }

  .fgx-location__card {
    padding: 1.35rem;
    border-radius: 30px;
  }

  .fgx-location__card h3 {
    font-size: 1.65rem;
  }
}
/* =========================================================
   FLOR DE GALICIA · RESEÑAS Y OPINIONES
   Clases aisladas fgx-reviews-*
========================================================= */

.fgx-reviews {
  position: relative;
  overflow: hidden;
  padding: 94px 0 110px;
  background:
    radial-gradient(circle at 10% 16%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 90% 84%, rgba(202, 162, 74, .16) 0%, transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-reviews::before {
  content: "";
  position: absolute;
  left: -130px;
  top: 80px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-reviews::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-reviews .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

.fgx-reviews__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-reviews__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-reviews__title {
  max-width: 920px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-reviews__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-reviews__intro {
  max-width: 780px;
  margin: 1.25rem auto 2.8rem;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.75;
}

.fgx-reviews__intro strong {
  color: var(--azul);
  font-weight: 850;
}

/* Panel principal */

.fgx-reviews__panel {
  position: relative;
  overflow: hidden;
  padding: clamp(1.2rem, 3vw, 2rem);
  border-radius: 38px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.86));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 28px 78px rgba(0, 40, 90, .12);
}

.fgx-reviews__panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 12%, rgba(209, 186, 144, .22) 0%, transparent 32%),
    radial-gradient(circle at 86% 88%, rgba(0, 101, 209, .08) 0%, transparent 34%);
  pointer-events: none;
}

.fgx-reviews__panel > * {
  position: relative;
  z-index: 2;
}

/* Resumen superior */

.fgx-reviews__summary {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.35rem;
  padding: 1.15rem;
  border-radius: 28px;
  color: var(--blanco);
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.14) 0%, transparent 28%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 18px 46px rgba(0, 40, 90, .18);
}

.fgx-reviews__icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  border-radius: 20px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: 1.35rem;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .18);
}

.fgx-reviews__summary h3 {
  margin: 0 0 .25rem;
  color: var(--blanco);
  font-size: clamp(1.25rem, 2vw, 1.85rem);
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fgx-reviews__summary p {
  margin: 0;
  color: rgba(255,255,255,.84);
  font-size: .96rem;
  line-height: 1.55;
}

/* Widget */

.fgx-reviews__widget {
  overflow: hidden;
  border-radius: 28px;
  background: #ffffff;
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.65);
}

/* Ajuste defensivo por si el widget genera cajas internas */
.fgx-reviews__widget reputation-widget {
  display: block;
  width: 100%;
}


/* Responsive */

@media (max-width: 991.98px) {
  .fgx-reviews {
    padding: 78px 0 90px;
  }

  .fgx-reviews__intro {
    margin-bottom: 2.2rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-reviews {
    padding: 62px 0 74px;
  }

  .fgx-reviews__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-reviews__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-reviews__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-reviews__panel {
    padding: 1rem;
    border-radius: 30px;
  }

  .fgx-reviews__summary {
    align-items: flex-start;
    padding: 1rem;
    border-radius: 24px;
  }

  .fgx-reviews__icon {
    width: 48px;
    height: 48px;
    border-radius: 17px;
    font-size: 1.1rem;
  }

  .fgx-reviews__summary p {
    font-size: .88rem;
  }

  .fgx-reviews__widget {
    border-radius: 24px;
  }
}
/* =========================================================
   FLOR DE GALICIA · SERVICIOS STRIPES PREMIUM
   Clases aisladas fgx-stripes-*
========================================================= */

.fgx-stripes {
  position: relative;
  overflow: hidden;
  padding: 96px 0 112px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-stripes::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 120px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-stripes::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-stripes .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

.fgx-stripes__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-stripes__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-stripes__title {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-stripes__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-stripes__intro {
  max-width: 860px;
  margin: 1.25rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-stripes__intro strong {
  color: var(--azul);
  font-weight: 850;
}

/* Lista */

.fgx-stripes__list {
  display: grid;
  gap: 2rem;
  margin-top: 3.4rem;
}

/* Item principal */

.fgx-stripes__item {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: stretch;
  min-height: 430px;
  border-radius: 40px;
  background: rgba(255, 255, 255, .96);
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 28px 78px rgba(0, 40, 90, .11);
}

.fgx-stripes__item--reverse {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
}

.fgx-stripes__item--reverse .fgx-stripes__media {
  order: 2;
}

.fgx-stripes__item--reverse .fgx-stripes__content {
  order: 1;
}

/* Imagen */

.fgx-stripes__media {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  background: #ddd;
}

.fgx-stripes__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, .30) 100%),
    radial-gradient(circle at 72% 18%, rgba(202, 162, 74, .16), transparent 36%);
  pointer-events: none;
}

.fgx-stripes__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 430px;
  object-fit: cover;
  transition: transform .7s ease;
}

.fgx-stripes__item:hover .fgx-stripes__media img {
  transform: scale(1.055);
}

/* Contenido */

.fgx-stripes__content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.6rem, 3vw, 3.2rem);
}

.fgx-stripes__content::before {
  content: "";
  position: absolute;
  right: -72px;
  top: -72px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .05);
  border: 1px solid rgba(202, 162, 74, .18);
  pointer-events: none;
}

.fgx-stripes__content > * {
  position: relative;
  z-index: 2;
}

.fgx-stripes__tag {
  display: inline-flex;
  width: fit-content;
  margin-bottom: .95rem;
  padding: .46rem .82rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: 0 12px 28px rgba(202, 162, 74, .22);
}

.fgx-stripes__content h3 {
  max-width: 620px;
  margin: 0 0 .95rem;
  color: var(--azul);
  font-size: clamp(1.7rem, 3vw, 2.85rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.fgx-stripes__content p {
  max-width: 700px;
  margin: 0;
  color: #454545;
  font-size: 1rem;
  line-height: 1.78;
}

.fgx-stripes__content p strong {
  color: var(--azul);
  font-weight: 700;
}

/* Checks */

.fgx-stripes__checks {
  display: grid;
  gap: .55rem;
  margin: 1.1rem 0 1.35rem;
  padding: 0;
  list-style: none;
}

.fgx-stripes__checks li {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  color: #3f3f3f;
  font-size: .94rem;
  line-height: 1.45;
  font-weight: 750;
}

.fgx-stripes__checks i {
  margin-top: .18rem;
  color: var(--amarillo);
}

/* Botones */

.fgx-stripes__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  width: fit-content;
  min-height: 48px;
  padding: .82rem 1.16rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-stripes__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-stripes__btn i {
  transition: transform .22s ease;
}

.fgx-stripes__btn:hover i {
  transform: translateX(4px);
}

.fgx-stripes__btn--primary {
  color: var(--blanco);
  border: 1px solid var(--azul);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 16px 38px rgba(0, 40, 90, .22);
}

.fgx-stripes__btn--primary:hover {
  color: var(--blanco);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .30);
}

.fgx-stripes__btn--outline {
  color: var(--azul);
  border: 1px solid rgba(0, 40, 90, .18);
  background: rgba(255,255,255,.76);
}

.fgx-stripes__btn--outline:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: rgba(209, 186, 144, .22);
}

/* Responsive */

@media (max-width: 991.98px) {
  .fgx-stripes {
    padding: 78px 0 90px;
  }

  .fgx-stripes__list {
    margin-top: 2.5rem;
    gap: 1.5rem;
  }

  .fgx-stripes__item,
  .fgx-stripes__item--reverse {
    grid-template-columns: 1fr;
    min-height: auto;
    border-radius: 34px;
  }

  .fgx-stripes__item--reverse .fgx-stripes__media,
  .fgx-stripes__item--reverse .fgx-stripes__content {
    order: initial;
  }

  .fgx-stripes__media img {
    min-height: 320px;
    max-height: 430px;
  }
}

@media (max-width: 575.98px) {
  .fgx-stripes {
    padding: 62px 0 74px;
  }

  .fgx-stripes__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-stripes__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-stripes__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-stripes__item,
  .fgx-stripes__item--reverse {
    border-radius: 28px;
  }

  .fgx-stripes__media img {
    min-height: 240px;
  }

  .fgx-stripes__content {
    padding: 1.25rem;
  }

  .fgx-stripes__tag {
    font-size: .68rem;
  }

  .fgx-stripes__content h3 {
    font-size: clamp(1.45rem, 8vw, 2.15rem);
  }

  .fgx-stripes__content p {
    font-size: .94rem;
    line-height: 1.68;
  }

  .fgx-stripes__checks li {
    font-size: .9rem;
  }

  .fgx-stripes__btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · CTA FINAL
   Clases aisladas fgx-final-cta-*
========================================================= */

.fgx-final-cta {
  position: relative;
  overflow: hidden;
  padding: 92px 0 110px;
  background:
    radial-gradient(circle at 10% 16%, rgba(0, 101, 209, .10) 0%, transparent 34%),
    radial-gradient(circle at 90% 86%, rgba(202, 162, 74, .18) 0%, transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-final-cta::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 70px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-final-cta::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .09);
  pointer-events: none;
}

.fgx-final-cta .container {
  position: relative;
  z-index: 2;
}

.fgx-final-cta__box {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 4.2rem);
  border-radius: 44px;
  color: var(--blanco);
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.16) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .28) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 32px 90px rgba(0, 40, 90, .25);
}

.fgx-final-cta__box::before {
  content: "";
  position: absolute;
  left: -90px;
  bottom: -90px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .30);
  background: rgba(255,255,255,.05);
  pointer-events: none;
}

.fgx-final-cta__box::after {
  content: "";
  position: absolute;
  right: -80px;
  top: -80px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .30);
  background: rgba(255,255,255,.06);
  pointer-events: none;
}

.fgx-final-cta__content {
  position: relative;
  z-index: 2;
  max-width: 920px;
  margin-inline: auto;
}

.fgx-final-cta__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .52rem 1rem;
  border-radius: 999px;
  color: var(--dorado);
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(209, 186, 144, .34);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-final-cta__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-final-cta__title {
  max-width: 900px;
  margin: 0 auto;
  color: var(--blanco);
  font-size: clamp(2rem, 4.5vw, 4.3rem);
  line-height: 1;
  font-weight: 950;
  letter-spacing: -.05em;
  text-wrap: balance;
}

.fgx-final-cta__title::after {
  content: "";
  display: block;
  width: 104px;
  height: 4px;
  margin: 1.25rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-final-cta__lead {
  max-width: 860px;
  margin: 1.45rem auto 0;
  color: rgba(255,255,255,.91);
  font-size: clamp(1.06rem, 1.5vw, 1.25rem);
  line-height: 1.72;
  font-weight: 600;
}

.fgx-final-cta__text {
  max-width: 820px;
  margin: 1rem auto 0;
  color: rgba(255,255,255,.84);
  font-size: 1rem;
  line-height: 1.75;
}

.fgx-final-cta__lead strong,
.fgx-final-cta__text strong {
  color: var(--blanco);
  font-weight: 900;
}

/* Botones */

.fgx-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin-top: 2rem;
}

.fgx-final-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .78rem;
  min-width: 210px;
  min-height: 64px;
  padding: .78rem 1.05rem;
  border-radius: 999px;
  text-decoration: none;
  line-height: 1.05;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-final-cta__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-final-cta__btn-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1rem;
}

.fgx-final-cta__btn strong {
  display: block;
  font-size: .96rem;
  font-weight: 950;
}

.fgx-final-cta__btn small {
  display: block;
  margin-top: .22rem;
  font-size: .76rem;
  font-weight: 800;
  opacity: .82;
}

.fgx-final-cta__btn--primary {
  color: var(--azul);
  background: var(--blanco);
  border: 1px solid rgba(255,255,255,.74);
  box-shadow: 0 16px 42px rgba(0,0,0,.20);
}

.fgx-final-cta__btn--primary .fgx-final-cta__btn-icon {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-final-cta__btn--primary:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(0,0,0,.28);
}

.fgx-final-cta__btn--secondary {
  color: var(--blanco);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(209, 186, 144, .34);
  backdrop-filter: blur(12px);
}

.fgx-final-cta__btn--secondary .fgx-final-cta__btn-icon {
  color: var(--azul);
  background: var(--dorado);
}

.fgx-final-cta__btn--secondary:hover {
  color: var(--blanco);
  background: rgba(255,255,255,.18);
  border-color: var(--amarillo);
}

.fgx-final-cta__btn--ghost {
  color: var(--blanco);
  background: rgba(0,0,0,.14);
  border: 1px solid rgba(255,255,255,.18);
}

.fgx-final-cta__btn--ghost .fgx-final-cta__btn-icon {
  color: var(--azul);
  background: var(--blanco);
}

.fgx-final-cta__btn--ghost:hover {
  color: var(--blanco);
  background: rgba(0,0,0,.22);
  border-color: rgba(209, 186, 144, .54);
}

/* Responsive */

@media (max-width: 991.98px) {
  .fgx-final-cta {
    padding: 78px 0 90px;
  }

  .fgx-final-cta__box {
    border-radius: 38px;
  }
}

@media (max-width: 575.98px) {
  .fgx-final-cta {
    padding: 62px 0 74px;
  }

  .fgx-final-cta__box {
    padding: 1.45rem;
    border-radius: 30px;
  }

  .fgx-final-cta__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-final-cta__title {
    font-size: clamp(1.85rem, 10vw, 2.75rem);
  }

  .fgx-final-cta__lead {
    font-size: .98rem;
    line-height: 1.65;
  }

  .fgx-final-cta__text {
    font-size: .94rem;
    line-height: 1.65;
  }

  .fgx-final-cta__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-final-cta__btn {
    width: 100%;
    justify-content: flex-start;
  }
}
/* =========================================================
   FLOR DE GALICIA · GALERÍA PREMIUM
   GLightbox · Clases aisladas fgx-gallery-*
========================================================= */

.fgx-gallery {
  position: relative;
  overflow: hidden;
  padding: 96px 0 112px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-gallery::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 120px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-gallery::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-gallery .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

.fgx-gallery__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-gallery__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-gallery__title {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-gallery__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-gallery__intro {
  max-width: 860px;
  margin: 1.25rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-gallery__intro strong {
  color: var(--azul);
  font-weight: 850;
}

/* Grid */

.fgx-gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 3rem;
}

/* Item */

.fgx-gallery__item {
  position: relative;
  overflow: hidden;
  display: block;
  aspect-ratio: 3 / 2;
  border-radius: 26px;
  isolation: isolate;
  background: #ddd;
  border: 1px solid rgba(0, 40, 90, .10);
  box-shadow: 0 18px 46px rgba(0, 40, 90, .10);
  text-decoration: none;
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.fgx-gallery__item:hover {
  transform: translateY(-6px);
  border-color: rgba(202, 162, 74, .58);
  box-shadow: 0 28px 72px rgba(0, 40, 90, .18);
  text-decoration: none;
}

.fgx-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition:
    transform .65s ease,
    filter .3s ease;
}

.fgx-gallery__item:hover img {
  transform: scale(1.07);
  filter: saturate(1.05) contrast(1.03);
}

/* Overlay */

.fgx-gallery__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1rem;
  color: var(--blanco);
  background:
    linear-gradient(180deg, transparent 35%, rgba(0, 0, 0, .72) 100%),
    radial-gradient(circle at 84% 16%, rgba(202, 162, 74, .18), transparent 34%);
  opacity: 0;
  transition: opacity .28s ease;
}

.fgx-gallery__item:hover .fgx-gallery__overlay {
  opacity: 1;
}

.fgx-gallery__overlay span {
  display: block;
  max-width: 95%;
  color: var(--blanco);
  font-size: .96rem;
  font-weight: 950;
  line-height: 1.15;
  text-shadow: 0 8px 24px rgba(0,0,0,.45);
}

.fgx-gallery__overlay small {
  display: inline-flex;
  width: fit-content;
  margin-top: .42rem;
  padding: .3rem .55rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* Destacadas */

.fgx-gallery__item--featured {
  border-color: rgba(202, 162, 74, .42);
}

.fgx-gallery__item--featured::after {
  content: "";
  position: absolute;
  top: .75rem;
  right: .75rem;
  z-index: 3;
  width: .72rem;
  height: .72rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 6px rgba(202, 162, 74, .22);
}

/* CTA inferior */

.fgx-gallery__actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 2.5rem;
}

.fgx-gallery__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.16rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-gallery__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-gallery__btn--primary {
  color: var(--blanco);
  border: 1px solid var(--azul);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 16px 38px rgba(0, 40, 90, .22);
}

.fgx-gallery__btn--primary:hover {
  color: var(--blanco);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .30);
}

.fgx-gallery__btn--outline {
  color: var(--azul);
  border: 1px solid rgba(0, 40, 90, .18);
  background: rgba(255,255,255,.76);
}

.fgx-gallery__btn--outline:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: rgba(209, 186, 144, .22);
}

/* Responsive */

@media (max-width: 1199.98px) {
  .fgx-gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .fgx-gallery {
    padding: 78px 0 90px;
  }

  .fgx-gallery__grid {
    margin-top: 2.5rem;
  }
}

@media (max-width: 767.98px) {
  .fgx-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
  }

  .fgx-gallery__overlay {
    opacity: 1;
    padding: .8rem;
    background:
      linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, .68) 100%);
  }

  .fgx-gallery__overlay span {
    font-size: .82rem;
  }

  .fgx-gallery__overlay small {
    font-size: .58rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-gallery {
    padding: 62px 0 74px;
  }

  .fgx-gallery__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-gallery__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-gallery__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-gallery__grid {
    gap: .7rem;
  }

  .fgx-gallery__item {
    border-radius: 20px;
  }

  .fgx-gallery__overlay {
    padding: .65rem;
  }

  .fgx-gallery__overlay span {
    font-size: .74rem;
  }

  .fgx-gallery__overlay small {
    display: none;
  }

  .fgx-gallery__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-gallery__btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · FAQ RESTAURANTE GALLEGO MADRID
   Bootstrap Accordion · Clases aisladas fgx-faq-*
========================================================= */

.fgx-faq {
  position: relative;
  overflow: hidden;
  padding: 96px 0 112px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-faq::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 120px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-faq::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-faq .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

.fgx-faq__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-faq__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-faq__title {
  max-width: 920px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-faq__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-faq__intro {
  max-width: 790px;
  margin: 1.25rem auto 2.75rem;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.75;
}

.fgx-faq__intro strong {
  color: var(--azul);
  font-weight: 850;
}

/* Panel */

.fgx-faq__panel {
  position: relative;
  overflow: hidden;
  padding: clamp(1rem, 2.5vw, 1.6rem);
  border-radius: 36px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.86));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 28px 78px rgba(0, 40, 90, .12);
}

.fgx-faq__panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 16% 12%, rgba(209, 186, 144, .20) 0%, transparent 32%),
    radial-gradient(circle at 86% 88%, rgba(0, 101, 209, .08) 0%, transparent 34%);
  pointer-events: none;
}

.fgx-faq__panel > * {
  position: relative;
  z-index: 2;
}

/* Accordion */

.fgx-faq__accordion {
  display: grid;
  gap: .85rem;
}

.fgx-faq__item {
  overflow: hidden;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 22px !important;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 12px 32px rgba(0, 40, 90, .06);
}

.fgx-faq__item:not(:first-of-type) {
  border-top: 1px solid rgba(0, 40, 90, .10);
}

.fgx-faq__button {
  position: relative;
  padding: 1.1rem 1.25rem;
  color: var(--azul);
  background: rgba(255,255,255,.92);
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 950;
  box-shadow: none !important;
}

.fgx-faq__button::before {
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  width: .55rem;
  height: .55rem;
  margin-right: .75rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .16);
}

.fgx-faq__button:not(.collapsed) {
  color: var(--azul);
  background:
    linear-gradient(135deg, rgba(209, 186, 144, .28), rgba(255,255,255,.96));
}

.fgx-faq__button:focus {
  border-color: rgba(202, 162, 74, .62);
  box-shadow: 0 0 0 .2rem rgba(202, 162, 74, .18) !important;
}

.fgx-faq__button::after {
  width: 1rem;
  height: 1rem;
  background-size: 1rem;
  filter: sepia(1) saturate(2) hue-rotate(350deg);
}

.fgx-faq__body {
  padding: 20px;
  color: #444;
  font-size: .98rem;
  line-height: 1.75;
  background: rgba(255,255,255,.72);
}

.fgx-faq__body strong {
  color: var(--azul);
  font-weight: 700;
}

.fgx-faq__body a {
  color: var(--azulc);
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.fgx-faq__body a:hover {
  color: var(--azul);
}

/* CTA inferior */

.fgx-faq__actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 1.75rem;
}

.fgx-faq__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.16rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-faq__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-faq__btn--primary {
  color: var(--blanco);
  border: 1px solid var(--azul);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 16px 38px rgba(0, 40, 90, .22);
}

.fgx-faq__btn--primary:hover {
  color: var(--blanco);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .30);
}

.fgx-faq__btn--outline {
  color: var(--azul);
  border: 1px solid rgba(0, 40, 90, .18);
  background: rgba(255,255,255,.76);
}

.fgx-faq__btn--outline:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: rgba(209, 186, 144, .22);
}

/* Responsive */

@media (max-width: 991.98px) {
  .fgx-faq {
    padding: 78px 0 90px;
  }

  .fgx-faq__intro {
    margin-bottom: 2.25rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-faq {
    padding: 62px 0 74px;
  }

  .fgx-faq__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-faq__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-faq__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-faq__panel {
    padding: .85rem;
    border-radius: 30px;
  }

  .fgx-faq__item {
    border-radius: 18px !important;
  }

  .fgx-faq__button {
    padding: 1rem;
    font-size: .94rem;
  }

  .fgx-faq__button::before {
    width: .46rem;
    height: .46rem;
    margin-right: .58rem;
    box-shadow: 0 0 0 4px rgba(202, 162, 74, .14);
  }

  .fgx-faq__body {
    padding: 0 1rem 1rem 2.05rem;
    font-size: .93rem;
    line-height: 1.65;
  }

  .fgx-faq__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-faq__btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · HORARIO Y CONTACTO
   Clases aisladas fgx-contact-*
========================================================= */

.fgx-contact {
  position: relative;
  overflow: hidden;
  padding: 96px 0 112px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-contact::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 120px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-contact::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-contact .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

.fgx-contact__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-contact__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-contact__title {
  max-width: 900px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-contact__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-contact__intro {
  max-width: 780px;
  margin: 1.25rem auto 2.75rem;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.75;
}

.fgx-contact__intro strong {
  color: var(--azul);
  font-weight: 850;
}

/* Panel */

.fgx-contact__panel {
  position: relative;
  overflow: hidden;
  padding: clamp(1rem, 2.4vw, 1.5rem);
  border-radius: 40px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.86));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 28px 78px rgba(0, 40, 90, .12);
}

.fgx-contact__panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 14%, rgba(209, 186, 144, .20) 0%, transparent 32%),
    radial-gradient(circle at 88% 88%, rgba(0, 101, 209, .08) 0%, transparent 34%);
  pointer-events: none;
}

.fgx-contact__panel > * {
  position: relative;
  z-index: 2;
}

/* Cards */

.fgx-contact__card {
  position: relative;
  overflow: hidden;
  height: 100%;
  min-height: 100%;
  padding: clamp(1.25rem, 2vw, 1.75rem);
  border-radius: 32px;
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 18px 48px rgba(0, 40, 90, .08);
}

.fgx-contact__card::after {
  content: "";
  position: absolute;
  right: -58px;
  top: -58px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .05);
  border: 1px solid rgba(202, 162, 74, .18);
  pointer-events: none;
}

.fgx-contact__card > * {
  position: relative;
  z-index: 2;
}

/* Card head */

.fgx-contact__card-head {
  display: flex;
  align-items: center;
  gap: .95rem;
  margin-bottom: 1.2rem;
}

.fgx-contact__icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  border-radius: 20px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: 1.3rem;
  box-shadow: 0 14px 30px rgba(202, 162, 74, .22);
}

.fgx-contact__card-label {
  display: block;
  margin-bottom: .18rem;
  color: var(--azulc);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.fgx-contact__card h3 {
  margin: 0;
  color: var(--azul);
  font-size: 1.42rem;
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.025em;
}

/* Horario */

.fgx-contact__schedule {
  display: grid;
  gap: .85rem;
}

.fgx-contact__schedule-row {
  display: grid;
  gap: .2rem;
  padding: 1rem;
  border-radius: 22px;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(0, 40, 90, .08);
}

.fgx-contact__schedule-row span {
  color: var(--azul);
  font-size: .82rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fgx-contact__schedule-row strong {
  color: #252525;
  font-size: 1rem;
  font-weight: 900;
}

.fgx-contact__schedule-row small {
  color: #666;
  font-size: .82rem;
  line-height: 1.35;
  font-weight: 700;
}

.fgx-contact__schedule-row--closed {
  background: rgba(209, 186, 144, .18);
  border-color: rgba(202, 162, 74, .30);
}

/* Lista dirección */

.fgx-contact__list {
  display: grid;
  gap: .95rem;
  margin: 0 0 1.25rem;
  padding: 0;
  list-style: none;
}

.fgx-contact__list li {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  color: #474747;
  font-size: .95rem;
  line-height: 1.45;
}

.fgx-contact__list li > i {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  margin-top: .1rem;
  border-radius: 13px;
  color: var(--azul);
  background: rgba(209, 186, 144, .32);
}

.fgx-contact__list strong {
  display: block;
  margin-bottom: .15rem;
  color: var(--azul);
  font-weight: 950;
}

.fgx-contact__list a {
  color: var(--azulc);
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.fgx-contact__list a:hover {
  color: var(--azul);
}

.fgx-contact__separator {
  color: #999;
  font-weight: 900;
}

/* Mapa */

.fgx-contact__map {
  position: relative;
  overflow: hidden;
  height: 235px;
  border-radius: 24px;
  background: #ddd;
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 14px 34px rgba(0, 40, 90, .08);
}

.fgx-contact__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Marca */

.fgx-contact__card--brand {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: center;
  background:
    radial-gradient(circle at 20% 18%, rgba(255,255,255,.14) 0%, transparent 28%),
    radial-gradient(circle at 88% 86%, rgba(202, 162, 74, .26) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  color: var(--blanco);
}

.fgx-contact__card--brand::after {
  border-color: rgba(209, 186, 144, .30);
  background: rgba(255,255,255,.06);
}

.fgx-contact__brand-top {
  max-width: 330px;
  margin-inline: auto;
}

.fgx-contact__logo {
  display: block;
  max-width: 220px;
  height: auto;
  margin: 0 auto 1rem;
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.16));
}

.fgx-contact__brand-top p {
  margin: 0 0 1.2rem;
  color: rgba(255,255,255,.86);
  font-size: .96rem;
  line-height: 1.65;
}

.fgx-contact__photo {
  overflow: hidden;
  border-radius: 26px;
  background: #ddd;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 20px 52px rgba(0,0,0,.24);
}

.fgx-contact__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform .65s ease;
}

.fgx-contact__photo:hover img {
  transform: scale(1.045);
}

/* CTA inferior */

.fgx-contact__actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 2rem;
}

.fgx-contact__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .78rem;
  min-width: 210px;
  min-height: 64px;
  padding: .78rem 1.05rem;
  border-radius: 999px;
  text-decoration: none;
  line-height: 1.05;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-contact__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-contact__btn-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1rem;
}

.fgx-contact__btn strong {
  display: block;
  font-size: .96rem;
  font-weight: 950;
}

.fgx-contact__btn small {
  display: block;
  margin-top: .22rem;
  font-size: .76rem;
  font-weight: 800;
  opacity: .82;
}

.fgx-contact__btn--primary {
  color: var(--blanco);
  border: 1px solid var(--azul);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 16px 38px rgba(0, 40, 90, .22);
}

.fgx-contact__btn--primary .fgx-contact__btn-icon {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-contact__btn--primary:hover {
  color: var(--blanco);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .30);
}

.fgx-contact__btn--secondary {
  color: var(--azul);
  border: 1px solid rgba(0, 40, 90, .14);
  background: rgba(255,255,255,.9);
  box-shadow: 0 16px 38px rgba(0, 40, 90, .10);
}

.fgx-contact__btn--secondary .fgx-contact__btn-icon {
  color: var(--azul);
  background: rgba(209, 186, 144, .42);
}

.fgx-contact__btn--secondary:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: rgba(209, 186, 144, .18);
}

.fgx-contact__btn--outline {
  color: var(--azul);
  border: 1px solid rgba(0, 40, 90, .18);
  background: rgba(255,255,255,.76);
}

.fgx-contact__btn--outline .fgx-contact__btn-icon {
  color: var(--azul);
  background: rgba(209, 186, 144, .32);
}

.fgx-contact__btn--outline:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: rgba(209, 186, 144, .22);
}

/* Responsive */

@media (max-width: 991.98px) {
  .fgx-contact {
    padding: 78px 0 90px;
  }

  .fgx-contact__intro {
    margin-bottom: 2.25rem;
  }

  .fgx-contact__map {
    height: 260px;
  }
}

@media (max-width: 575.98px) {
  .fgx-contact {
    padding: 62px 0 74px;
  }

  .fgx-contact__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-contact__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-contact__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-contact__panel {
    padding: .85rem;
    border-radius: 30px;
  }

  .fgx-contact__card {
    padding: 1.1rem;
    border-radius: 26px;
  }

  .fgx-contact__card-head {
    align-items: flex-start;
  }

  .fgx-contact__icon {
    width: 48px;
    height: 48px;
    border-radius: 17px;
    font-size: 1.1rem;
  }

  .fgx-contact__card h3 {
    font-size: 1.25rem;
  }

  .fgx-contact__map {
    height: 230px;
    border-radius: 20px;
  }

  .fgx-contact__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-contact__btn {
    width: 100%;
    justify-content: flex-start;
  }
}
/* =========================================================
   FLOR DE GALICIA · FOOTER PREMIUM
   Clases aisladas fgx-footer-*
========================================================= */

.fgx-footer {
  position: relative;
  overflow: hidden;
  color: var(--blanco);
  background: var(--azul);
}

.fgx-footer__main {
  position: relative;
  overflow: hidden;
  padding: 84px 0 34px;
  background:
    radial-gradient(circle at 12% 16%, rgba(255,255,255,.10) 0%, transparent 34%),
    radial-gradient(circle at 88% 82%, rgba(202, 162, 74, .20) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul) 48%, #001b3d 100%);
}

.fgx-footer__main::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 80px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .26);
  background: rgba(255,255,255,.05);
  pointer-events: none;
}

.fgx-footer__main::after {
  content: "";
  position: absolute;
  right: -140px;
  bottom: -150px;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .22);
  background: rgba(0,0,0,.10);
  pointer-events: none;
}

.fgx-footer .container {
  position: relative;
  z-index: 2;
}

/* Top grid */

.fgx-footer__top {
  display: grid;
  /* La segunda columna aloja el widget de resenas, que trae un ancho propio
     de 260px y no encoge. El minimo era 260 y no descontaba el relleno de la
     tarjeta (1.35rem por lado), asi que a la caja blanca le quedaban 231 y el
     widget se salia 30px por la derecha, recortado por el overflow. */
  grid-template-columns: minmax(0, 1.2fr) minmax(310px, .9fr) minmax(0, 1fr) minmax(0, .9fr);
  gap: 1.4rem;
  align-items: start;
}

/* Bloques generales */

.fgx-footer__brand,
.fgx-footer__reviews,
.fgx-footer__nav,
.fgx-footer__contact {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  padding: 1.35rem;
  border-radius: 30px;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.13);
  box-shadow: 0 22px 58px rgba(0,0,0,.16);
  backdrop-filter: blur(12px);
}

.fgx-footer__brand::after,
.fgx-footer__reviews::after,
.fgx-footer__nav::after,
.fgx-footer__contact::after {
  content: "";
  position: absolute;
  right: -52px;
  top: -52px;
  width: 126px;
  height: 126px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .20);
  background: rgba(255,255,255,.04);
  pointer-events: none;
}

.fgx-footer__brand > *,
.fgx-footer__reviews > *,
.fgx-footer__nav > *,
.fgx-footer__contact > * {
  position: relative;
  z-index: 2;
}

/* Marca */

.fgx-footer__logo {
  display: block;
  max-width: 210px;
  height: auto;
  margin-bottom: 1rem;
  filter: drop-shadow(0 14px 30px rgba(0,0,0,.18));
}

.fgx-footer__brand h2,
.fgx-footer__reviews h3,
.fgx-footer__nav h3,
.fgx-footer__contact h3 {
  margin: 0 0 1rem;
  color: var(--blanco);
  font-size: 1.25rem;
  line-height: 1.12;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fgx-footer__brand h2::after,
.fgx-footer__reviews h3::after,
.fgx-footer__nav h3::after,
.fgx-footer__contact h3::after {
  content: "";
  display: block;
  width: 58px;
  height: 3px;
  margin-top: .72rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-footer__brand p {
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: .95rem;
  line-height: 1.72;
}

.fgx-footer__brand strong {
  color: var(--blanco);
  font-weight: 900;
}

/* Acciones marca */

.fgx-footer__quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.15rem;
}

.fgx-footer__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 42px;
  padding: .62rem .88rem;
  border-radius: 999px;
  color: var(--blanco);
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(209, 186, 144, .28);
  font-size: .84rem;
  font-weight: 900;
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-footer__action:hover {
  color: var(--blanco);
  text-decoration: none;
  transform: translateY(-2px);
  border-color: var(--amarillo);
  background: rgba(255,255,255,.16);
}

.fgx-footer__action--primary {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border-color: rgba(202, 162, 74, .7);
}

.fgx-footer__action--primary:hover {
  color: var(--azul);
  background: var(--amarillo);
}

/* Widget reseñas */

/* La caja blanca se ajusta al ancho real del widget en vez de imponerle uno.
   Con un ancho fijo el contenido, que mide 260px y no estira, quedaba pegado
   a la izquierda y dejaba una franja blanca a la derecha: de ahi que las
   resenas se vieran descentradas. Ahora la caja se ajusta al contenido y es
   ella la que se centra en la columna. */
.fgx-footer__widget {
  overflow: hidden;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  border-radius: 24px;
  background: #ffffff;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 18px 42px rgba(0,0,0,.14);
}

.fgx-footer__widget reputation-widget {
  display: block;
  width: 100%;
}

/* Enlaces */

.fgx-footer__nav ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .48rem .85rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-footer__nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  color: rgba(255,255,255,.82);
  font-size: .9rem;
  line-height: 1.35;
  font-weight: 750;
  text-decoration: none;
  transition: color .22s ease, transform .22s ease;
}

.fgx-footer__nav a::before {
  content: "";
  display: inline-block;
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--amarillo);
  opacity: .9;
}

.fgx-footer__nav a:hover {
  color: var(--blanco);
  transform: translateX(3px);
  text-decoration: none;
}

/* Contacto */

.fgx-footer__contact ul {
  display: grid;
  gap: .9rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-footer__contact li {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  color: rgba(255,255,255,.82);
  font-size: .92rem;
  line-height: 1.45;
}

.fgx-footer__contact li > i {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  margin-top: .05rem;
  border-radius: 13px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-footer__contact strong {
  display: block;
  margin-bottom: .12rem;
  color: var(--blanco);
  font-weight: 950;
}

.fgx-footer__contact a {
  color: rgba(255,255,255,.88);
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.fgx-footer__contact a:hover {
  color: var(--dorado);
}

/* Redes */

.fgx-footer__social {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
  padding: 1.1rem;
  border-radius: 28px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
}

.fgx-footer__social span {
  color: rgba(255,255,255,.78);
  font-size: .86rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fgx-footer__social ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-footer__social a {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--azul);
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(209, 186, 144, .30);
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

/* El selector lleva .fgx-footer delante a proposito. Mas abajo, en el bloque
   de estilos generales del pie, hay un `.fgx-footer a:hover{color:var(--dorado)}`
   con la misma especificidad que este; al ir despues, ganaba, y el icono se
   pintaba dorado sobre el degradado dorado del hover: circulo amarillo y nada
   dentro. Con la clase del pie delante, el boton manda sobre su propio color. */
.fgx-footer .fgx-footer__social a:hover,
.fgx-footer .fgx-footer__social a:focus-visible {
  color: var(--azul);
  text-decoration: none;
  transform: translateY(-3px);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border-color: var(--amarillo);
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
}

.fgx-footer__social i {
  font-size: 1.15rem;
}

.fgx-footer__social img {
  display: block;
  width: 24px;
  height: 24px;
}

/* Bottom */

.fgx-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.4rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,.13);
}

.fgx-footer__bottom p {
  margin: 0;
  color: rgba(255,255,255,.74);
  font-size: .88rem;
  line-height: 1.5;
}

.fgx-footer__legal {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-footer__legal a {
  color: rgba(255,255,255,.74);
  font-size: .86rem;
  font-weight: 800;
  text-decoration: none;
  transition: color .22s ease;
}

.fgx-footer__legal a:hover {
  color: var(--dorado);
  text-decoration: none;
}

/* =========================================================
   BARRA FIJA MÓVIL
========================================================= */

.fgx-mobile-cta {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 1040;
  display: none;
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
  padding: .55rem;
  border-radius: 999px;
  background: rgba(0, 40, 90, .92);
  border: 1px solid rgba(209, 186, 144, .34);
  box-shadow: 0 18px 48px rgba(0,0,0,.28);
  backdrop-filter: blur(14px);
}

.fgx-mobile-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 48px;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease;
}

.fgx-mobile-cta__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-mobile-cta__btn--call {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-mobile-cta__btn--call:hover {
  color: var(--azul);
}

.fgx-mobile-cta__btn--map {
  color: var(--blanco);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
}

.fgx-mobile-cta__btn--map:hover {
  color: var(--blanco);
  background: rgba(255,255,255,.18);
}

/* Responsive */

@media (max-width: 1199.98px) {
  .fgx-footer__top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fgx-footer__widget {
    max-width: 320px;
  }
}

@media (max-width: 767.98px) {
  .fgx-footer__main {
    padding: 64px 0 104px;
  }

  .fgx-footer__top {
    grid-template-columns: 1fr;
  }

  .fgx-footer__brand,
  .fgx-footer__reviews,
  .fgx-footer__nav,
  .fgx-footer__contact {
    border-radius: 26px;
  }

  .fgx-footer__logo {
    max-width: 190px;
  }

  .fgx-footer__widget {
    max-width: 100%;
  }

  .fgx-footer__nav ul {
    grid-template-columns: 1fr;
  }

  .fgx-footer__bottom {
    display: grid;
    text-align: center;
    justify-content: center;
  }

  .fgx-footer__legal {
    justify-content: center;
  }

  .fgx-mobile-cta {
    display: grid;
  }
}

@media (max-width: 380px) {
  .fgx-mobile-cta {
    left: 8px;
    right: 8px;
    bottom: 8px;
    gap: .45rem;
    padding: .45rem;
  }

  .fgx-mobile-cta__btn {
    min-height: 45px;
    font-size: .82rem;
  }
}
/* =========================================================
   FLOR DE GALICIA · HERO LANDING INTERNA
   Clases aisladas fgx-page-hero-*
========================================================= */

.fgx-page-hero {
  position: relative;
  min-height: 850px;
  height: 88vh;
  max-height: 920px;
  overflow: hidden;
  isolation: isolate;
  background: var(--black);
  margin-top: -2px;
}

.fgx-page-hero__media,
.fgx-page-hero__media picture,
.fgx-page-hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.fgx-page-hero__media img {
  object-fit: cover;
  object-position: center;
  transform: scale(1.03);
}

.fgx-page-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  /*background:
    radial-gradient(circle at 50% 42%, rgba(0, 40, 90, .26) 0%, rgba(0, 0, 0, .16) 34%, rgba(0, 0, 0, .78) 100%),
    linear-gradient(90deg, rgba(0, 0, 0, .84) 0%, rgba(0, 40, 90, .40) 42%, rgba(0, 0, 0, .80) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, .36) 0%, rgba(0, 40, 90, .16) 38%, rgba(0, 0, 0, .80) 100%);*/
   background:
  radial-gradient(
    circle at 50% 42%,
    rgba(0, 40, 90, 0.20) 0%,
    rgba(0, 0, 0, 0.18) 42%,
    rgba(0, 0, 0, 0.54) 100%
  ),
  linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.64) 0%,
    rgba(0, 40, 90, 0.28) 45%,
    rgba(0, 0, 0, 0.58) 100%
  ),
  linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.30) 0%,
    rgba(0, 40, 90, 0.12) 45%,
    rgba(0, 0, 0, 0.64) 100%
  );
}

/* En pantallas grandes se ve mucha mas foto a los lados del texto, y ahi el
   velo la dejaba casi negra: en las esquinas se acumulaban los tres
   degradados y tapaban el 94% de la imagen.
   Se aclaran SOLO los extremos. El centro, que es donde cae el titular, se
   deja practicamente igual (del 49% al 48% de velo), asi que el contraste del
   texto blanco no se toca. Medido sobre la captura: en /especialidades el
   titular estaba en 3.55:1 y el subtitulo en 4.74:1, con AA pidiendo 3:1 para
   texto grande y 4.5:1 para el pequeno; no habia margen para aclarar el
   centro, si para los bordes.
   El velo reforzado (--fuerte, base.css) manda sobre esto donde se use. */
@media (min-width: 1200px) {
  .fgx-page-hero__overlay {
    background:
      radial-gradient(
        circle at 50% 42%,
        rgba(0, 40, 90, 0.20) 0%,
        rgba(0, 0, 0, 0.18) 42%,
        rgba(0, 0, 0, 0.34) 100%
      ),
      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.40) 0%,
        rgba(0, 40, 90, 0.28) 45%,
        rgba(0, 0, 0, 0.36) 100%
      ),
      linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.18) 0%,
        rgba(0, 40, 90, 0.12) 45%,
        rgba(0, 0, 0, 0.46) 100%
      );
  }
}

.fgx-page-hero__content {
  position: relative;
  z-index: 5;
  min-height: inherit;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 120px;
  padding-bottom: 150px;
}

.fgx-page-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1.1rem;
  padding: .55rem 1.05rem;
  border-radius: 999px;
  color: var(--dorado);
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(209, 186, 144, .34);
  backdrop-filter: blur(14px);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
  box-shadow: 0 12px 34px rgba(0,0,0,.22);
}

.fgx-page-hero__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-page-hero__title {
  max-width: 980px;
  margin: 0 auto;
  color: var(--blanco);
  font-size: clamp(3rem, 6.6vw, 5.2rem);
  line-height: .94;
  font-weight: 950;
  letter-spacing: -.065em;
  text-wrap: balance;
  text-shadow: 0 18px 60px rgba(0,0,0,.60);
}

.fgx-page-hero__title span {
  display: block;
  margin-top: .28rem;
  color: var(--dorado);
  font-size: clamp(1.55rem, 3.5vw, 3.1rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}

.fgx-page-hero__title::after {
  content: "";
  display: block;
  width: 108px;
  height: 4px;
  margin: 1.25rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-page-hero__subtitle {
  max-width: 840px;
  margin: 1.4rem auto 0;
  color: rgba(255,255,255,.9);
  font-size: clamp(1.05rem, 1.45vw, 1.34rem);
  line-height: 1.68;
  font-weight: 550;
  text-wrap: balance;
  text-shadow: 0 8px 28px rgba(0,0,0,.45);
}

.fgx-page-hero__subtitle strong {
  color: var(--blanco);
  font-weight: 900;
}

.fgx-page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin-top: 2.1rem;
}

.fgx-page-hero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  min-width: 210px;
  min-height: 64px;
  padding: .78rem 1.05rem;
  border-radius: 999px;
  text-decoration: none;
  line-height: 1.05;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-page-hero__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-page-hero__btn-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1rem;
}

.fgx-page-hero__btn strong {
  display: block;
  font-size: 1.1rem;
  font-weight: 950;
}

.fgx-page-hero__btn small {
  display: block;
  margin-top: .22rem;
  font-size: .76rem;
  font-weight: 800;
  opacity: .82;
}

.fgx-page-hero__btn--primary {
  color: var(--azul);
  background: var(--blanco);
  border: 1px solid rgba(255,255,255,.74);
  box-shadow: 0 16px 42px rgba(0,0,0,.20);
}

.fgx-page-hero__btn--primary .fgx-page-hero__btn-icon {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-page-hero__btn--primary:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(0,0,0,.28);
}

.fgx-page-hero__btn--secondary {
  color: var(--blanco);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border: 1px solid rgba(202, 162, 74, .62);
  box-shadow: 0 16px 42px rgba(0,40,90,.28);
}

.fgx-page-hero__btn--secondary .fgx-page-hero__btn-icon {
  color: var(--azul);
  background: var(--dorado);
}

.fgx-page-hero__btn--secondary:hover {
  color: var(--blanco);
  border-color: var(--amarillo);
  box-shadow: 0 20px 50px rgba(0,40,90,.34);
}

.fgx-page-hero__btn--ghost {
  color: var(--azul);
  background: var(--amarillo);
  border: 1px solid rgba(209, 186, 144, .34);
  backdrop-filter: blur(12px);
}

.fgx-page-hero__btn--ghost .fgx-page-hero__btn-icon {
  color: var(--azul);
  background: var(--blanco);
}

.fgx-page-hero__btn--ghost:hover {
  color: var(--blanco);
  background: rgba(255,255,255,.18);
  border-color: var(--amarillo);
}

.fgx-page-hero__trust {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .65rem 1rem;
  margin-top: 1.35rem;
  color: rgba(255,255,255,.84);
  font-size: .9rem;
  font-weight: 800;
}

.fgx-page-hero__trust span {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
}

.fgx-page-hero__trust i {
  color: var(--amarillo);
}

.fgx-page-hero__wave {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  z-index: 6;
  height: 100px;
  pointer-events: none;
}

.fgx-page-hero__wave svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Responsive */

@media (max-width: 991.98px) {
  .fgx-page-hero {
    min-height: 790px;
    height: 90vh;
    max-height: none;
  }

  .fgx-page-hero__content {
    padding-top: 110px;
    padding-bottom: 130px;
  }
}

@media (max-width: 575.98px) {
  .fgx-page-hero {
    min-height: 800px;
    height: 92vh;
    margin-top: -3px;
  }

  .fgx-page-hero__content {
    padding-top: 100px;
    padding-bottom: 105px;
  }

  .fgx-page-hero__eyebrow {
    max-width: 94%;
    font-size: .66rem;
    letter-spacing: .08em;
  }

  .fgx-page-hero__title {
    font-size: clamp(2.6rem, 14vw, 4rem);
  }

  .fgx-page-hero__title span {
    font-size: clamp(1.3rem, 7vw, 2rem);
  }

  .fgx-page-hero__subtitle {
    font-size: .96rem;
    line-height: 1.58;
  }

  .fgx-page-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 1.55rem;
  }

  .fgx-page-hero__btn {
    width: min(100%, 345px);
    margin-inline: auto;
    justify-content: flex-start;
  }

  .fgx-page-hero__trust {
    max-width: 340px;
    margin-inline: auto;
    font-size: .78rem;
  }

  .fgx-page-hero__wave {
    height: 0;
  }
}
/* =========================================================
   FLOR DE GALICIA · MENÚS DEL DÍA PREMIUM
   Rediseño sobre HTML actual de #menus-dia
========================================================= */

#menus-dia {
  position: relative;
  z-index: 2;
  padding-top: 40px !important;
  padding-bottom: 110px !important;
}

/* =========================================================
   CABECERA
========================================================= */

#menus-dia .section_title {
  max-width: 980px;
  margin-inline: auto;
}

#menus-dia .section_title span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

#menus-dia .section_title span:first-child::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

#menus-dia .section_title h2 {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

#menus-dia .section_title h2::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#menus-dia .section_title .lead {
  max-width: 860px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

#menus-dia .section_title .lead strong {
  color: var(--azul);
  font-weight: 850;
}

/* =========================================================
   BOTONERA DÍAS ESCRITORIO
========================================================= */

/* La barra blanca que envolvia la botonera se ha retirado: apuntaba a
   .btn-group, que ya no existe en el marcado. Ademas su contenedor es hoy
   el mismo que el de los paneles, asi que un fondo suyo pintaria por detras
   de todo. El aspecto de pildora lo llevan ahora los propios botones. */

#menus-dia .fgx-carta__btn,
#menus-dia .pantallas-pequenas .btn {
  border-radius: 999px !important;
  border: 1px solid rgba(0, 40, 90, .14);
  color: var(--azul);
  background: rgba(255,255,255,.82);
  font-size: .86rem;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: none;
  transition:
    transform .2s ease,
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

#menus-dia .fgx-carta__btn:hover,
#menus-dia .fgx-carta__btn.is-active,
#menus-dia .pantallas-pequenas .btn:hover,
#menus-dia .pantallas-pequenas .btn.is-active {
  color: var(--blanco);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border-color: var(--amarillo);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 40, 90, .18);
}

/* =========================================================
   BOTONERA MÓVIL
========================================================= */

#menus-dia .pantallas-pequenas {
  position: relative;
  z-index: 2;
}

#menus-dia .pantallas-pequenas .btn-group-vertical {
  display: grid;
  gap: .85rem;
  width: 100%;
}

#menus-dia .pantallas-pequenas .btn {
  width: 100%;
  min-height: 52px;
  border-radius: 20px !important;
  text-align: left;
  padding: .85rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#menus-dia .pantallas-pequenas .btn::after {
  font-size: .8rem;
  color: var(--amarillo);
}

/* =========================================================
   CONTENEDORES DE SECCIÓN
========================================================= */

#menus-dia .section-content {
  display: none;
}

#menus-dia .section-content.active-section,
#menus-dia .section-content.show {
  display: block;
}

/* La tarjeta del panel, que estaba escrita contra #large-screen-content: el
   contenedor del bloque de escritorio de cuando el menu se pintaba dos veces.
   Al unificarlo (modulos/fgx-menu.php) ese id desaparecio del marcado y la
   caja dejo de dibujarse; en pantalla quedaba la sombra generica de Bootstrap
   sin nada que la sostuviera. Ahora apunta a .fgx-carta__panel, la clase que
   pinta el generador, y va acotada a escritorio para no pisar la del movil.
   Se retira el `padding: 0 !important` que traia: el marcado actual pide su
   propio respiro lateral con px-md-5, y aquel important lo anulaba. */
@media (min-width: 768px) {

  #menus-dia .fgx-carta__panel {
    position: relative;
    overflow: hidden;
    border-radius: 42px !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.88));
    border: 1px solid rgba(0, 40, 90, .09);
    box-shadow: 0 28px 78px rgba(0, 40, 90, .12) !important;
  }

  #menus-dia .fgx-carta__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 14% 10%, rgba(209, 186, 144, .20) 0%, transparent 32%),
      radial-gradient(circle at 88% 90%, rgba(0, 101, 209, .08) 0%, transparent 34%);
    pointer-events: none;
  }

  #menus-dia .fgx-carta__panel > * {
    position: relative;
    z-index: 2;
  }
}

/* =========================================================
   TÍTULO DE CADA MENÚ
========================================================= */

#menus-dia .nombreMenu {
  margin: 0 auto;
  padding-top: 3rem;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.7rem);
  line-height: 1.02;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

#menus-dia .nombreMenu span {
  display: inline-flex;
  margin-top: .65rem;
  padding: .45rem .9rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: clamp(.95rem, 1.6vw, 1.3rem);
  line-height: 1.2;
  letter-spacing: .01em;
  box-shadow: 0 12px 28px rgba(202, 162, 74, .22);
}

#menus-dia .section-content > .row > .col-10 .lead,
#menus-dia .pantallas-pequenas .section-content > .lead {
  max-width: 760px;
  margin: 1rem auto 0;
  color: #4b4b4b;
  font-size: 1.03rem;
  line-height: 1.7;
}

/* Precio superior */
#menus-dia .precio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  margin: 0;
  padding: .65rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(202, 162, 74, .36);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .08);
  font-size: 1rem;
  font-weight: 900;
}

#menus-dia .precio span {
  color: var(--azul);
  font-size: 1.25rem;
  font-weight: 950;
}

/* =========================================================
   COLUMNAS PRIMEROS / SEGUNDOS
========================================================= */

#menus-dia .menu-section {
  position: relative;
  margin-top: .5rem;
}

#menus-dia .menu-section > .row {
  gap: 0;
}

#menus-dia .menu-section .col-md-6 {
  padding: 1rem;
}

#menus-dia .menu-section .col-md-6 > h2,
#menus-dia .pantallas-pequenas h3.guiones-titulo {
  margin: 0 0 1.15rem;
  color: var(--azul);
  font-size: clamp(1.35rem, 2.6vw, 2.05rem);
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.03em;
}

/* La barrita dorada solo vale para titulos SIN rayas laterales. Aplicada a un
   .guiones-titulo no se anade debajo: sustituye a la raya derecha, que es su
   ::after, y como flor.css le pone flex-grow:1 el ancho de 68px se ignora y
   solo cuenta el alto. El titulo quedaba con 2px a la izquierda y 3px a la
   derecha. */
#menus-dia .menu-section .col-md-6 > h2::after {
  content: "";
  display: block;
  width: 68px;
  height: 3px;
  margin: .7rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#menus-dia ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#menus-dia .menu-section ul {
  display: grid;
  gap: .8rem;
}

/* =========================================================
   ITEMS DEL MENÚ
========================================================= */

#menus-dia li.menu-item {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 82px;
  padding: .72rem;
  border-radius: 24px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .06);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

#menus-dia li.menu-item:hover {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 18px 42px rgba(0, 40, 90, .12);
}

#menus-dia li.menu-item img {
  flex: 0 0 auto;
  width: 68px;
  height: 68px;
  object-fit: cover;
  border-radius: 18px;
  background: #ddd;
  box-shadow: 0 10px 22px rgba(0, 40, 90, .10);
}

#menus-dia li.menu-item span {
  display: block;
  color: var(--azul);
  font-size: .98rem;
  line-height: 1.25;
  font-weight: 900;
  text-align: left;
}

/* =========================================================
   BLOQUE INCLUYE + PRECIO
========================================================= */

#menus-dia .precioMenu {
  position: relative;
  margin: 2rem auto 0;
  padding: 2.2rem !important;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.16) 0%, transparent 28%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

#menus-dia .precioMenu h3,
#menus-dia .precioMenu strong {
  color: var(--blanco);
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  font-weight: 950;
}

#menus-dia .precioMenu ul {
  display: grid;
  gap: .55rem;
  margin-top: 1rem;
}

#menus-dia .precioMenu li {
  position: relative;
  padding-left: 1.45rem;
  color: rgba(255,255,255,.9);
  font-size: .98rem;
  line-height: 1.5;
  font-weight: 750;
}

#menus-dia .precioMenu li::before {
  position: absolute;
  left: 0;
  top: .05rem;
  color: var(--amarillo);
}

/* Círculo precio */
#menus-dia .circle {
  display: grid;
  place-items: center;
  width: 190px;
  height: 190px;
  margin-inline: auto;
  padding: 1rem;
  border-radius: 50%;
  color: var(--azul);
  background:
    radial-gradient(circle at 30% 20%, #ffffff 0%, var(--dorado) 72%);
  border: 1px solid rgba(202, 162, 74, .48);
  box-shadow: 0 24px 54px rgba(0,0,0,.22);
  text-align: center;
}

#menus-dia .circle p {
  margin: 0;
  color: var(--azul);
  font-size: 3.1rem !important;
  line-height: .9;
  font-weight: 950;
  letter-spacing: -.06em;
}

#menus-dia .circle .small-text {
  display: block;
  color: var(--azul);
  font-size: 1rem !important;
  line-height: 1.1;
  font-weight: 950;
}

#menus-dia .circle .small-text2 {
  display: block;
  max-width: 120px;
  color: var(--azul);
  font-size: .75rem !important;
  line-height: 1.15;
  font-weight: 900;
  text-transform: uppercase;
}

/* Separadores */
#menus-dia hr {
  width: min(100%, 920px);
  margin: 2rem auto 0;
  border: 0;
  height: 1px;
  opacity: 1;
  background: linear-gradient(90deg, transparent, rgba(202, 162, 74, .55), transparent);
}

/* =========================================================
   MÓVIL
========================================================= */

#menus-dia .pantallas-pequenas .section-content {
  margin: .9rem 0 1.1rem;
  padding: 1rem;
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.9));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 18px 48px rgba(0, 40, 90, .10);
}

#menus-dia .pantallas-pequenas .nombreMenu {
  padding-top: .5rem;
}

#menus-dia .pantallas-pequenas ul {
  display: grid;
  gap: .65rem;
  margin-bottom: 1.4rem;
}

#menus-dia .pantallas-pequenas li:not(.menu-item) {
  position: relative;
  padding-left: 1.35rem;
  color: #454545;
  font-size: .96rem;
  line-height: 1.55;
  font-weight: 750;
}

#menus-dia .pantallas-pequenas li:not(.menu-item)::before {
  position: absolute;
  left: 0;
  top: .05rem;
  color: var(--amarillo);
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991.98px) {
  #menus-dia {
    padding-top: 72px !important;
    padding-bottom: 90px !important;
  }

  #menus-dia .fgx-carta__panel {
    border-radius: 34px !important;
  }

  #menus-dia .circle {
    width: 165px;
    height: 165px;
  }

  #menus-dia .circle p {
    font-size: 2.55rem !important;
  }
}

@media (max-width: 767.98px) {
  #menus-dia {
    padding-top: 60px !important;
    padding-bottom: 76px !important;
  }

  #menus-dia .section_title h2 {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  #menus-dia .section_title .lead {
    font-size: .96rem;
    line-height: 1.65;
  }

  #menus-dia .nombreMenu {
    font-size: clamp(1.7rem, 9vw, 2.45rem);
  }

  #menus-dia .nombreMenu span {
    font-size: .95rem;
  }

  #menus-dia li.menu-item {
    min-height: 76px;
    padding: .62rem;
    border-radius: 20px;
  }

  #menus-dia li.menu-item img {
    width: 58px;
    height: 58px;
    border-radius: 16px;
  }

  #menus-dia li.menu-item span {
    font-size: .9rem;
  }

  #menus-dia .precio {
    font-size: .9rem;
  }

  #menus-dia .precio span {
    font-size: 1.05rem;
  }
}

@media (max-width: 420px) {
  #menus-dia .pantallas-pequenas .section-content {
    padding: .85rem;
    border-radius: 24px;
  }

  #menus-dia li.menu-item {
    gap: .65rem;
  }

  #menus-dia li.menu-item img {
    width: 52px;
    height: 52px;
  }

  #menus-dia li.menu-item span {
    font-size: .84rem;
  }
}
/* =========================================================
   FLOR DE GALICIA · POR QUÉ ELEGIR
   Módulo reutilizable fgx-why-*
========================================================= */

.fgx-why {
  position: relative;
  overflow: hidden;
  padding: 96px 0 110px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-why::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 110px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-why::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-why .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

.fgx-why__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-why__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-why__title {
  max-width: 920px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-why__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-why__intro {
  max-width: 840px;
  margin: 1.25rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-why__intro strong {
  color: var(--azul);
  font-weight: 850;
}

/* Grid */

.fgx-why__grid {
  margin-top: 3rem;
}

/* Cards */

.fgx-why__card {
  position: relative;
  overflow: hidden;
  padding: 2rem 1.45rem;
  border-radius: 34px;
  text-align: center;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.88));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 22px 64px rgba(0, 40, 90, .09);
  transition:
    transform .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

.fgx-why__card::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  background:
    radial-gradient(circle at 18% 18%, rgba(209, 186, 144, .24) 0%, transparent 34%),
    linear-gradient(135deg, rgba(0, 40, 90, .04), rgba(202, 162, 74, .08));
  transition: opacity .25s ease;
  pointer-events: none;
}

.fgx-why__card::after {
  content: "";
  position: absolute;
  right: -58px;
  top: -58px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .05);
  border: 1px solid rgba(202, 162, 74, .20);
  pointer-events: none;
}

.fgx-why__card > * {
  position: relative;
  z-index: 2;
}

.fgx-why__card:hover {
  transform: translateY(-7px);
  border-color: rgba(202, 162, 74, .52);
  box-shadow: 0 30px 82px rgba(0, 40, 90, .16);
}

.fgx-why__card:hover::before {
  opacity: 1;
}

.fgx-why__icon {
  display: inline-grid;
  place-items: center;
  width: 70px;
  height: 70px;
  margin: 0 auto 1.15rem;
  border-radius: 24px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: 1.55rem;
  box-shadow: 0 16px 36px rgba(202, 162, 74, .24);
}

.fgx-why__card h3 {
  margin: 0 0 .75rem;
  color: var(--azul);
  font-size: 1.45rem;
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fgx-why__card p {
  margin: 0;
  color: #474747;
  font-size: .96rem;
  line-height: 1.68;
}

.fgx-why__card p strong {
  color: var(--azul);
  font-weight: 850;
}

/* Bloque inferior */

.fgx-why__bottom {
  max-width: 920px;
  margin: 2.5rem auto 0;
  padding: clamp(1.35rem, 3vw, 2rem);
  border-radius: 34px;
  text-align: center;
  color: var(--blanco);
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.16) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .26) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 28px 78px rgba(0, 40, 90, .20);
}

.fgx-why__bottom p {
  max-width: 790px;
  margin: 0 auto;
  color: rgba(255,255,255,.88);
  font-size: 1.02rem;
  line-height: 1.75;
}

.fgx-why__bottom strong {
  color: var(--blanco);
  font-weight: 900;
}

/* Botones */

.fgx-why__actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 1.55rem;
}

.fgx-why__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .78rem;
  min-width: 210px;
  min-height: 64px;
  padding: .78rem 1.05rem;
  border-radius: 999px;
  text-decoration: none;
  line-height: 1.05;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-why__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-why__btn-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1rem;
}

.fgx-why__btn strong {
  display: block;
  font-size: 1.1rem;
  font-weight: 950;
}

.fgx-why__btn small {
  display: block;
  margin-top: .22rem;
  font-size: .76rem;
  font-weight: 800;
  opacity: .82;
}

.fgx-why__btn--primary {
  color: var(--azul);
  background: var(--blanco);
  border: 1px solid rgba(255,255,255,.74);
  box-shadow: 0 16px 42px rgba(0,0,0,.18);
}

.fgx-why__btn--primary .fgx-why__btn-icon {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-why__btn--primary:hover {
  color: var(--azul);
  border-color: var(--amarillo);
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(0,0,0,.24);
}

.fgx-why__btn--outline {
  color: var(--blanco);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(209, 186, 144, .34);
  backdrop-filter: blur(12px);
}

.fgx-why__btn--outline .fgx-why__btn-icon {
  color: var(--azul);
  background: var(--dorado);
}

.fgx-why__btn--outline:hover {
  color: var(--blanco);
  background: rgba(255,255,255,.18);
  border-color: var(--amarillo);
}

/* Responsive */

@media (max-width: 991.98px) {
  .fgx-why {
    padding: 78px 0 90px;
  }

  .fgx-why__grid {
    margin-top: 2.4rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-why {
    padding: 62px 0 74px;
  }

  .fgx-why__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-why__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-why__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-why__card {
    padding: 1.5rem 1.15rem;
    border-radius: 28px;
  }

  .fgx-why__icon {
    width: 60px;
    height: 60px;
    border-radius: 21px;
    font-size: 1.3rem;
  }

  .fgx-why__card h3 {
    font-size: 1.28rem;
  }

  .fgx-why__bottom {
    border-radius: 28px;
  }

  .fgx-why__bottom p {
    font-size: .94rem;
    line-height: 1.65;
  }

  .fgx-why__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-why__btn {
    width: 100%;
    justify-content: flex-start;
  }
}
/* =========================================================
   FLOR DE GALICIA · MENÚS CENA DE TAPAS
   Clases aisladas fgx-dinner-menus-*
========================================================= */

.fgx-dinner-menus {
  position: relative;
  overflow: hidden;
  padding: 96px 0 112px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-dinner-menus::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 120px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-dinner-menus::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-dinner-menus .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

.fgx-dinner-menus__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-dinner-menus__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-dinner-menus__title {
  max-width: 920px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-dinner-menus__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-dinner-menus__intro {
  max-width: 810px;
  margin: 1.25rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-dinner-menus__intro strong {
  color: var(--azul);
  font-weight: 850;
}

.fgx-dinner-menus__grid {
  margin-top: 3rem;
}

/* Card */

.fgx-dinner-menus__card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: 34px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.88));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 22px 64px rgba(0, 40, 90, .09);
  transition:
    transform .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

.fgx-dinner-menus__card:hover {
  transform: translateY(-7px);
  border-color: rgba(202, 162, 74, .52);
  box-shadow: 0 30px 82px rgba(0, 40, 90, .16);
}

.fgx-dinner-menus__card-header {
  position: relative;
  overflow: hidden;
  padding: 1.45rem 1.35rem;
  color: var(--blanco);
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.14) 0%, transparent 28%),
    linear-gradient(135deg, var(--azulc), var(--azul));
}

.fgx-dinner-menus__card-header::after {
  content: "";
  position: absolute;
  right: -55px;
  top: -55px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 1px solid rgba(209, 186, 144, .28);
  background: rgba(255,255,255,.06);
  pointer-events: none;
}

.fgx-dinner-menus__card-header > * {
  position: relative;
  z-index: 2;
}

.fgx-dinner-menus__num,
.fgx-dinner-menus__featured-label {
  display: inline-flex;
  width: fit-content;
  margin-bottom: .75rem;
  padding: .38rem .72rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fgx-dinner-menus__card-header h3 {
  margin: 0;
  color: var(--blanco);
  font-size: clamp(1.45rem, 2.6vw, 2.1rem);
  line-height: 1.05;
  font-weight: 950;
  letter-spacing: -.035em;
}

.fgx-dinner-menus__card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.35rem;
}

/* Platos */

.fgx-dinner-menus__plates {
  display: grid;
  gap: .68rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-dinner-menus__plates li {
  position: relative;
  padding-left: 1.45rem;
  color: #3f3f3f;
  font-size: .98rem;
  line-height: 1.42;
  font-weight: 800;
}

.fgx-dinner-menus__plates li::before {
  position: absolute;
  left: 0;
  top: .04rem;
  color: var(--amarillo);
}

/* Incluye */

.fgx-dinner-menus__includes {
  display: grid;
  gap: .55rem;
  margin-top: 1.25rem;
  padding: 1rem;
  border-radius: 22px;
  background: rgba(0, 40, 90, .05);
  border: 1px solid rgba(0, 40, 90, .08);
}

.fgx-dinner-menus__includes p {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  margin: 0;
  color: #4a4a4a;
  font-size: .9rem;
  line-height: 1.45;
  font-weight: 750;
}

.fgx-dinner-menus__includes i {
  margin-top: .15rem;
  color: var(--amarillo);
}

/* Precio */

.fgx-dinner-menus__price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(0, 40, 90, .08);
}

.fgx-dinner-menus__price {
  display: block;
  color: var(--azul);
  font-size: 2.35rem;
  line-height: .9;
  font-weight: 950;
  letter-spacing: -.06em;
}

.fgx-dinner-menus__price-note {
  display: block;
  margin-top: .3rem;
  color: #666;
  font-size: .76rem;
  line-height: 1.25;
  font-weight: 800;
}

.fgx-dinner-menus__reserve {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: .68rem .95rem;
  border-radius: 999px;
  color: var(--blanco);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border: 1px solid var(--azul);
  font-size: .86rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-dinner-menus__reserve:hover {
  color: var(--blanco);
  text-decoration: none;
  transform: translateY(-2px);
  border-color: var(--amarillo);
  box-shadow: 0 14px 32px rgba(0, 40, 90, .24);
}

/* Featured */

.fgx-dinner-menus__card--featured .fgx-dinner-menus__card-header {
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
    linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-dinner-menus__card--featured .fgx-dinner-menus__card-header h3 {
  color: var(--azul);
}

.fgx-dinner-menus__card--featured .fgx-dinner-menus__featured-label {
  color: var(--blanco);
  background: var(--azul);
}

.fgx-dinner-menus__featured-text {
  margin: 0 0 1rem;
  color: #4a4a4a;
  font-size: .95rem;
  line-height: 1.6;
  font-weight: 650;
}

.fgx-dinner-menus__options {
  display: grid;
  gap: .75rem;
}

.fgx-dinner-menus__option {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: .8rem;
  padding: .9rem;
  border-radius: 22px;
  color: var(--azul);
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(0, 40, 90, .09);
  text-decoration: none;
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease,
    background .22s ease;
}

.fgx-dinner-menus__option:hover {
  color: var(--azul);
  text-decoration: none;
  transform: translateY(-2px);
  border-color: rgba(202, 162, 74, .52);
  background: rgba(209, 186, 144, .18);
  box-shadow: 0 14px 34px rgba(0, 40, 90, .10);
}

.fgx-dinner-menus__option-icon {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
}

.fgx-dinner-menus__option strong {
  display: block;
  color: var(--azul);
  font-size: .95rem;
  line-height: 1.2;
  font-weight: 950;
}

.fgx-dinner-menus__option small {
  display: block;
  margin-top: .22rem;
  color: #666;
  font-size: .76rem;
  line-height: 1.3;
  font-weight: 750;
}

.fgx-dinner-menus__option > i {
  color: var(--azul);
  opacity: .55;
}

.fgx-dinner-menus__help {
  margin-top: auto;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(0, 40, 90, .08);
}

.fgx-dinner-menus__help p {
  margin: 0 0 .65rem;
  color: #666;
  font-size: .82rem;
  line-height: 1.4;
  font-weight: 750;
}

.fgx-dinner-menus__help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  width: 100%;
  min-height: 46px;
  padding: .75rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .72);
  font-size: .95rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease;
}

.fgx-dinner-menus__help-btn:hover {
  color: var(--azul);
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(202, 162, 74, .24);
}

/* Responsive */

@media (max-width: 991.98px) {
  .fgx-dinner-menus {
    padding: 78px 0 90px;
  }

  .fgx-dinner-menus__grid {
    margin-top: 2.4rem;
  }
}

@media (max-width: 575.98px) {
  .fgx-dinner-menus {
    padding: 62px 0 74px;
  }

  .fgx-dinner-menus__eyebrow {
    font-size: .68rem;
    letter-spacing: .08em;
  }

  .fgx-dinner-menus__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-dinner-menus__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-dinner-menus__card {
    border-radius: 28px;
  }

  .fgx-dinner-menus__card-header {
    padding: 1.25rem;
  }

  .fgx-dinner-menus__card-body {
    padding: 1.15rem;
  }

  .fgx-dinner-menus__price-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fgx-dinner-menus__reserve {
    width: 100%;
  }

  .fgx-dinner-menus__option {
    grid-template-columns: 40px 1fr auto;
    padding: .8rem;
  }

  .fgx-dinner-menus__option-icon {
    width: 40px;
    height: 40px;
  }
}
/* =========================================================
   FLOR DE GALICIA · MENÚS PARA GRUPOS
   Estilo igual a MENÚS DEL DÍA
========================================================= */

.fgx-menu-section {
  width: 100%;
  position: relative;
  background: #ffffff;
  overflow: hidden;
}

.fgx-menu-section::before {
  content: "";
  position: absolute;
  left: -180px;
  top: 160px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .16);
  pointer-events: none;
}

.fgx-menu-section::after {
  content: "";
  position: absolute;
  right: -180px;
  bottom: 80px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .06);
  pointer-events: none;
}

.fgx-menu-section > .container {
  position: relative;
  z-index: 2;
}

/* Cabecera igual a menús del día */

#menus-grupos .section_title {
  max-width: 980px;
  margin-inline: auto;
}

#menus-grupos .section_title span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

#menus-grupos .section_title span:first-child::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

#menus-grupos .section_title h2 {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

#menus-grupos .section_title h2::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#menus-grupos .section_title .lead {
  max-width: 900px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

#menus-grupos .section_title .lead strong {
  color: var(--azul);
  font-weight: 850;
}

/* Botonera igual a menús del día */

/* La barra blanca que envolvia la botonera se ha retirado: apuntaba a
   .btn-group, que ya no existe en el marcado. Ademas su contenedor es hoy
   el mismo que el de los paneles, asi que un fondo suyo pintaria por detras
   de todo. El aspecto de pildora lo llevan ahora los propios botones. */

#menus-grupos .fgx-carta__btn,
#menus-grupos .pantallas-pequenas .btn {
  border-radius: 999px !important;
  border: 1px solid rgba(0, 40, 90, .14);
  color: var(--azul);
  background: rgba(255,255,255,.86);
  font-size: .86rem;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: none;
  transition:
    transform .2s ease,
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

#menus-grupos .fgx-carta__btn:hover,
#menus-grupos .fgx-carta__btn.is-active,
#menus-grupos .pantallas-pequenas .btn:hover,
#menus-grupos .pantallas-pequenas .btn.is-active {
  color: var(--blanco);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border-color: var(--amarillo);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 40, 90, .18);
}

/* Mostrar/ocultar */

#menus-grupos .section-content {
  display: none;
}

#menus-grupos .section-content.active-section,
#menus-grupos .section-content.show {
  display: block;
}

/* Caja del menú igual a menús del día */

/* La tarjeta del panel, que estaba escrita contra #large-screen-content: el
   contenedor del bloque de escritorio de cuando el menu se pintaba dos veces.
   Al unificarlo (modulos/fgx-menu.php) ese id desaparecio del marcado y la
   caja dejo de dibujarse; en pantalla quedaba la sombra generica de Bootstrap
   sin nada que la sostuviera. Ahora apunta a .fgx-carta__panel, la clase que
   pinta el generador, y va acotada a escritorio para no pisar la del movil.
   Se retira el `padding: 0 !important` que traia: el marcado actual pide su
   propio respiro lateral con px-md-5, y aquel important lo anulaba. */
@media (min-width: 768px) {

  #menus-grupos .fgx-carta__panel {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem !important;
    background: #ffffff;
    border: 1px solid rgba(0, 40, 90, .09);
    box-shadow: 0 28px 78px rgba(0, 40, 90, .12) !important;
  }

  #menus-grupos .fgx-carta__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 14% 10%, rgba(209, 186, 144, .16) 0%, transparent 32%),
      radial-gradient(circle at 88% 90%, rgba(0, 101, 209, .06) 0%, transparent 34%);
    pointer-events: none;
  }

  #menus-grupos .fgx-carta__panel > * {
    position: relative;
    z-index: 2;
  }
}

/* Título de cada menú */

#menus-grupos .nombreMenu {
  margin: 0 auto;
  padding-top: 3rem;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.02;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

#menus-grupos .nombreMenu span {
  display: inline-flex;
  margin-top: .65rem;
  padding: .45rem .9rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: clamp(.95rem, 1.6vw, 1.25rem);
  line-height: 1.2;
  letter-spacing: .01em;
  box-shadow: 0 12px 28px rgba(202, 162, 74, .22);
}

/* Texto y precio */

#menus-grupos .section-content .lead,
#menus-grupos .section-content > .row > .col-10 p,
#menus-grupos .pantallas-pequenas .section-content > p {
  max-width: 820px;
  margin: 1rem auto 0;
  color: #4b4b4b;
  font-size: 1.03rem;
  line-height: 1.7;
}

#menus-grupos .precio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  margin: 0;
  padding: .65rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(202, 162, 74, .36);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .08);
  font-size: 1rem;
  font-weight: 900;
}

#menus-grupos .precio span {
  color: var(--azul);
  font-size: 1.25rem;
  font-weight: 950;
}

/* Primeros / segundos */

#menus-grupos .menu-section {
  position: relative;
  margin-top: .5rem;
}

#menus-grupos .menu-section .col-md-6 {
  padding: 1rem;
}

#menus-grupos .menu-section .col-md-6 > h2,
#menus-grupos .pantallas-pequenas h3.guiones-titulo {
  margin: 0 0 1.15rem;
  color: var(--azul);
  font-size: clamp(1.35rem, 2.6vw, 2.05rem);
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.03em;
}

/* La barrita dorada solo vale para titulos SIN rayas laterales. Aplicada a un
   .guiones-titulo no se anade debajo: sustituye a la raya derecha, que es su
   ::after, y como flor.css le pone flex-grow:1 el ancho de 68px se ignora y
   solo cuenta el alto. El titulo quedaba con 2px a la izquierda y 3px a la
   derecha. */
#menus-grupos .menu-section .col-md-6 > h2::after {
  content: "";
  display: block;
  width: 68px;
  height: 3px;
  margin: .7rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#menus-grupos ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#menus-grupos .menu-section ul {
  display: grid;
  gap: .8rem;
}

/* Platos */

#menus-grupos li.menu-item {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 82px;
  padding: .72rem;
  border-radius: 24px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .06);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

#menus-grupos li.menu-item:hover {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 18px 42px rgba(0, 40, 90, .12);
}

#menus-grupos li.menu-item img {
  flex: 0 0 auto;
  width: 68px;
  height: 68px;
  object-fit: cover;
  border-radius: 18px;
  background: #ddd;
  box-shadow: 0 10px 22px rgba(0, 40, 90, .10);
}

#menus-grupos li.menu-item span {
  display: block;
  color: var(--azul);
  font-size: .98rem;
  line-height: 1.25;
  font-weight: 900;
  text-align: left;
}

#menus-grupos .small-text2 {
  color: #555 !important;
  font-size: .78rem !important;
  line-height: 1.25;
  font-weight: 800;
}

/* Bloque incluye + precio */

#menus-grupos hr {
  width: min(100%, 920px);
  margin: 2rem auto 0;
  border: 0;
  height: 1px;
  opacity: 1;
  background: linear-gradient(90deg, transparent, rgba(202, 162, 74, .55), transparent);
}

#menus-grupos .precioMenu {
  position: relative;
  margin: 2rem auto 0;
  padding: 2.2rem !important;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.16) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .26) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

#menus-grupos .precioMenu h3,
#menus-grupos .precioMenu strong {
  color: var(--blanco) !important;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  font-weight: 950;
}

#menus-grupos .precioMenu ul {
  display: grid;
  gap: .55rem;
  margin-top: 1rem;
}

#menus-grupos .precioMenu li {
  position: relative;
  padding-left: 3rem;
  color: var(--azul);
  font-size: .98rem;
  line-height: 1.5;
  font-weight: 750;
}

#menus-grupos .precioMenu li::before {
  position: absolute;
  left: 0;
  top: .05rem;
  color: var(--amarillo);
}

/* Círculo precio */

#menus-grupos .circle {
  display: grid;
  place-items: center;
  width: 190px;
  height: 190px;
  margin-inline: auto;
  padding: 1rem;
  border-radius: 50%;
  color: var(--azul);
  background:
    radial-gradient(circle at 30% 20%, #ffffff 0%, var(--amarillo) 72%);
  border: 1px solid rgba(202, 162, 74, .48);
  box-shadow: 0 24px 54px rgba(0,0,0,.22);
  text-align: center;
}

#menus-grupos .circle p {
  margin: 0;
  color: var(--azul);
  font-size: 3rem !important;
  line-height: .9;
  font-weight: 950;
  letter-spacing: -.06em;
}

#menus-grupos .circle .small-text {
  display: block;
  color: var(--azul);
  font-size: 1rem !important;
  line-height: 1.1;
  font-weight: 950;
}

#menus-grupos .circle .small-text2 {
  display: block;
  max-width: 120px;
  color: var(--azul) !important;
  font-size: .75rem !important;
  line-height: 1.15;
  font-weight: 900;
  text-transform: uppercase;
}

/* Móvil */

#menus-grupos .pantallas-pequenas .btn-group-vertical {
  display: grid;
  gap: .85rem;
  width: 100%;
}

#menus-grupos .pantallas-pequenas .btn {
  width: 100%;
  min-height: 52px;
  border-radius: 20px !important;
  padding: .85rem 1rem;
  text-align: left;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#menus-grupos .pantallas-pequenas .btn::after {
  font-size: .8rem;
  color: var(--amarillo);
}

#menus-grupos .pantallas-pequenas .section-content {
  margin: .9rem 0 1.1rem;
  padding: 1rem;
  border-radius: 28px;
  background: #ffffff;
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 18px 48px rgba(0, 40, 90, .10);
}

#menus-grupos .pantallas-pequenas .nombreMenu {
  padding-top: .5rem;
}

#menus-grupos .pantallas-pequenas ul {
  display: grid;
  gap: .65rem;
  margin-bottom: 1.4rem;
}

#menus-grupos .pantallas-pequenas li:not(.menu-item) {
  position: relative;
  padding-left: 1.35rem;
  color: #454545;
  font-size: .96rem;
  line-height: 1.55;
  font-weight: 750;
}

#menus-grupos .pantallas-pequenas li:not(.menu-item)::before {
  position: absolute;
  left: 0;
  top: .05rem;
  color: var(--amarillo);
}

/* Responsive */

@media (max-width: 991.98px) {
  #menus-grupos .fgx-carta__panel {
    border-radius: 34px !important;
  }

  #menus-grupos .circle {
    width: 165px;
    height: 165px;
  }

  #menus-grupos .circle p {
    font-size: 2.4rem !important;
  }
}

@media (max-width: 767.98px) {
  #menus-grupos .section_title h2 {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  #menus-grupos .section_title .lead {
    font-size: .96rem;
    line-height: 1.65;
  }

  #menus-grupos .nombreMenu {
    font-size: clamp(1.7rem, 9vw, 2.45rem);
  }

  #menus-grupos .nombreMenu span {
    font-size: .95rem;
  }

  #menus-grupos li.menu-item {
    min-height: 76px;
    padding: .62rem;
    border-radius: 20px;
  }

  #menus-grupos li.menu-item img {
    width: 58px;
    height: 58px;
    border-radius: 16px;
  }

  #menus-grupos li.menu-item span {
    font-size: .9rem;
  }

  #menus-grupos .precio {
    font-size: .9rem;
  }

  #menus-grupos .precio span {
    font-size: 1.05rem;
  }
}

/* =========================================================
   SAN VALENTÍN · MISMO ESTILO QUE MENÚS DEL DÍA
========================================================= */

#menus-sanvalentin {
  position: relative;
  z-index: 2;
  width: 100%;
  background: #ffffff;
  overflow: hidden;
}

#menus-sanvalentin::before {
  content: "";
  position: absolute;
  left: -180px;
  top: 160px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .16);
  pointer-events: none;
}

#menus-sanvalentin::after {
  content: "";
  position: absolute;
  right: -180px;
  bottom: 80px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .06);
  pointer-events: none;
}

#menus-sanvalentin > .container {
  position: relative;
  z-index: 2;
}

/* Cabecera */

#menus-sanvalentin .section_title {
  max-width: 980px;
  margin-inline: auto;
}

#menus-sanvalentin .section_title span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

#menus-sanvalentin .section_title span:first-child::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

#menus-sanvalentin .section_title h2 {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

#menus-sanvalentin .section_title h2::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#menus-sanvalentin .section_title .lead {
  max-width: 900px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

#menus-sanvalentin .section_title .lead strong {
  color: var(--azul);
  font-weight: 850;
}

/* Caja del menú */

#menus-sanvalentin .section-content {
  position: relative;
  overflow: hidden;
  margin-top: 2rem;
  padding: 0 !important;
  border-radius: 1.5rem !important;
  background: #ffffff;
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 28px 78px rgba(0, 40, 90, .12) !important;
}

#menus-sanvalentin .section-content::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 10%, rgba(209, 186, 144, .16) 0%, transparent 32%),
    radial-gradient(circle at 88% 90%, rgba(0, 101, 209, .06) 0%, transparent 34%);
  pointer-events: none;
}

#menus-sanvalentin .section-content > * {
  position: relative;
  z-index: 2;
}

/* Título del menú */

#menus-sanvalentin .nombreMenu {
  margin: 0 auto;
  padding-top: 3rem;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.02;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

#menus-sanvalentin .nombreMenu span {
  display: inline-flex;
  margin-top: .65rem;
  padding: .45rem .9rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: clamp(.95rem, 1.6vw, 1.25rem);
  line-height: 1.2;
  letter-spacing: .01em;
  box-shadow: 0 12px 28px rgba(202, 162, 74, .22);
}

/* Precio superior */

#menus-sanvalentin .precio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  margin: 0;
  padding: .65rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(202, 162, 74, .36);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .08);
  font-size: 1rem;
  font-weight: 900;
}

#menus-sanvalentin .precio span {
  color: var(--azul);
  font-size: 1.25rem;
  font-weight: 950;
}

/* Primeros / segundos */

#menus-sanvalentin .menu-section {
  position: relative;
  margin-top: .5rem;
}

#menus-sanvalentin .menu-section .col-md-6 {
  padding: 1rem;
}

#menus-sanvalentin .menu-section .col-md-6 > h2 {
  margin: 0 0 1.15rem;
  color: var(--azul);
  font-size: clamp(1.35rem, 2.6vw, 2.05rem);
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.03em;
  text-align: center;
}

#menus-sanvalentin .menu-section .col-md-6 > h2::after {
  content: "";
  display: block;
  width: 68px;
  height: 3px;
  margin: .7rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#menus-sanvalentin .fgx-menu-note {
  max-width: 430px;
  margin: 0 auto 1.2rem;
  color: #4b4b4b;
  font-size: .98rem;
  line-height: 1.55;
}

#menus-sanvalentin ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#menus-sanvalentin .menu-section ul {
  display: grid;
  gap: .8rem;
}

/* Platos */

#menus-sanvalentin li.menu-item {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 82px;
  padding: .72rem;
  border-radius: 24px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .06);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

#menus-sanvalentin li.menu-item:hover {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 18px 42px rgba(0, 40, 90, .12);
}

#menus-sanvalentin li.menu-item img {
  flex: 0 0 auto;
  width: 68px;
  height: 68px;
  object-fit: cover;
  border-radius: 18px !important;
  background: #ddd;
  box-shadow: 0 10px 22px rgba(0, 40, 90, .10);
}

#menus-sanvalentin li.menu-item span {
  display: block;
  color: var(--azul);
  font-size: .98rem;
  line-height: 1.25;
  font-weight: 900;
  text-align: left;
}

#menus-sanvalentin .small-text2 {
  color: #555 !important;
  font-size: .78rem !important;
  line-height: 1.25;
  font-weight: 800;
}

/* Separador */

#menus-sanvalentin hr {
  width: min(100%, 920px);
  margin: 2rem auto 0;
  border: 0;
  height: 1px;
  opacity: 1;
  background: linear-gradient(90deg, transparent, rgba(202, 162, 74, .55), transparent);
}

/* Bloque incluye + precio */

#menus-sanvalentin .precioMenu {
  position: relative;
  margin: 2rem auto 0;
  padding: 2.2rem !important;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.16) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .26) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

#menus-sanvalentin .precioMenu h3,
#menus-sanvalentin .precioMenu strong {
  color: var(--blanco) !important;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  font-weight: 950;
}

#menus-sanvalentin .precioMenu ul {
  display: grid;
  gap: .55rem;
  margin-top: 1rem;
}

#menus-sanvalentin .precioMenu li {
  position: relative;
  padding-left: 1.45rem;
  color: rgba(255,255,255,.9);
  font-size: .98rem;
  line-height: 1.5;
  font-weight: 750;
}

#menus-sanvalentin .precioMenu li::before {
  position: absolute;
  left: 0;
  top: .05rem;
  color: var(--amarillo);
}

/* Círculo precio */

#menus-sanvalentin .circle {
  display: grid;
  place-items: center;
  width: 190px;
  height: 190px;
  margin-inline: auto;
  padding: 1rem;
  border-radius: 50%;
  color: var(--azul);
  background:
    radial-gradient(circle at 30% 20%, #ffffff 0%, var(--dorado) 72%);
  border: 1px solid rgba(202, 162, 74, .48);
  box-shadow: 0 24px 54px rgba(0,0,0,.22);
  text-align: center;
}

#menus-sanvalentin .circle p {
  margin: 0;
  color: var(--azul);
  font-size: 3rem !important;
  line-height: .9;
  font-weight: 950;
  letter-spacing: -.06em;
}

#menus-sanvalentin .circle .small-text {
  display: block;
  color: var(--azul);
  font-size: 1rem !important;
  line-height: 1.1;
  font-weight: 950;
}

#menus-sanvalentin .circle .small-text2 {
  display: block;
  max-width: 120px;
  color: var(--azul) !important;
  font-size: .75rem !important;
  line-height: 1.15;
  font-weight: 900;
  text-transform: uppercase;
}

/* Botón reserva */

#menus-sanvalentin .fgx-sanvalentin-btn {
  border-radius: 999px;
  padding: .9rem 1.45rem;
  font-weight: 900;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border: 1px solid var(--azul);
  color: var(--blanco);
  box-shadow: 0 16px 36px rgba(0, 40, 90, .18);
}

#menus-sanvalentin .fgx-sanvalentin-btn:hover {
  color: var(--blanco);
  transform: translateY(-2px);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .25);
}

/* Responsive */

@media (max-width: 767.98px) {
  #menus-sanvalentin .container {
    margin-top: 0 !important;
    padding-top: 3rem !important;
  }

  #menus-sanvalentin .section_title h2 {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  #menus-sanvalentin .section_title .lead {
    font-size: .96rem;
    line-height: 1.65;
  }

  #menus-sanvalentin .section-content {
    padding-inline: 1rem !important;
    border-radius: 28px !important;
  }

  #menus-sanvalentin .nombreMenu {
    font-size: clamp(1.7rem, 9vw, 2.45rem);
  }

  #menus-sanvalentin .nombreMenu span {
    font-size: .95rem;
  }

  #menus-sanvalentin li.menu-item {
    min-height: 76px;
    padding: .62rem;
    border-radius: 20px;
  }

  #menus-sanvalentin li.menu-item img {
    width: 58px;
    height: 58px;
    border-radius: 16px !important;
  }

  #menus-sanvalentin li.menu-item span {
    font-size: .9rem;
  }

  #menus-sanvalentin .precio {
    font-size: .9rem;
  }

  #menus-sanvalentin .precio span {
    font-size: 1.05rem;
  }

  #menus-sanvalentin .precioMenu {
    padding: 1.4rem !important;
  }

  #menus-sanvalentin .circle {
    width: 165px;
    height: 165px;
    margin-top: 1.5rem;
  }

  #menus-sanvalentin .circle p {
    font-size: 2.4rem !important;
  }

  #menus-sanvalentin .fgx-sanvalentin-btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · WHY SECTION
========================================================= */

.fgx-why {
  position: relative;
  overflow: hidden;
  padding: 95px 0 105px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .14) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-why::before {
  content: "";
  position: absolute;
  left: -160px;
  top: 140px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-why::after {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -140px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-why > .container {
  position: relative;
  z-index: 2;
}

.fgx-why__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-why__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-why__title {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-why__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-why__intro {
  max-width: 900px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-why__intro strong,
.fgx-why__bottom strong {
  font-weight: 850;
}

/* Era `display: flex` con `grid-template-columns` debajo, y en un contenedor
   flex esa propiedad no hace nada: las tres tarjetas se quedaban en una sola
   fila a cualquier ancho, encogiendose hasta los 113 px en el movil. Encima,
   al repartirse por contenido salian desiguales (382, 495 y 419 px en
   escritorio) y sin separacion, porque tampoco habia `gap`.

   Con `display: grid` la declaracion que ya estaba escrita empieza a hacer su
   trabajo: tres columnas iguales arriba y una sola por debajo de 992 px, que
   es lo que pedia la media query de mas abajo y tampoco llegaba a aplicarse. */
.fgx-why__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 3rem;
}

.fgx-why__card {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  padding: 2rem 1.5rem;
  border-radius: 30px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 22px 56px rgba(0, 40, 90, .10);
  text-align: center;
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-why__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 16%, rgba(209, 186, 144, .18) 0%, transparent 34%),
    radial-gradient(circle at 86% 92%, rgba(0, 101, 209, .07) 0%, transparent 34%);
  pointer-events: none;
}

.fgx-why__card > * {
  position: relative;
  z-index: 2;
}

.fgx-why__card:hover {
  transform: translateY(-5px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 30px 72px rgba(0, 40, 90, .15);
}

.fgx-why__icon {
  display: grid;
  place-items: center;
  width: 74px;
  height: 74px;
  margin: 0 auto 1.15rem;
  border-radius: 22px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  box-shadow: 0 16px 34px rgba(202, 162, 74, .26);
  font-size: 1.7rem;
}

.fgx-why__card h3 {
  margin: 0 0 .75rem;
  color: var(--azul);
  font-size: 1.25rem;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fgx-why__card p {
  margin: 0;
  color: #4a4a4a;
  font-size: .98rem;
  line-height: 1.65;
}

.fgx-why__bottom {
  max-width: 980px;
  margin: 2.4rem auto 0;
  padding: 2rem;
  border-radius: 32px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.22) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
  text-align: center;
}

.fgx-why__bottom p {
  max-width: 850px;
  margin: 0 auto;
  color: rgba(255,255,255,.92);
  font-size: 1rem;
  line-height: 1.75;
}



.fgx-why__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin-top: 1.4rem;
}

.fgx-why__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.15rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-why__btn--primary {
  color: var(--azul);
  background: #fff;
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
  font-size: 1.1rem;
}

.fgx-why__btn--outline {
  color: var(--azul );
  background: var(--amarillo);
  border: 1px solid rgba(255,255,255,.35);
  font-size: 1.1rem;
}

.fgx-why__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-why__btn--primary:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.fgx-why__btn--outline:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

@media (max-width: 991.98px) {
  .fgx-why__card {
    padding: 1.7rem 1.25rem;
  }
}

/* Las tres tarjetas siguen en fila mientras quepan: a 768 px salen a 224 px
   cada una, que es estrecho pero legible. Por debajo se apilan. El corte
   estaba en 992 px, y entonces a 900 px salia una unica tarjeta de 858 px de
   ancho para tres lineas de texto. */
@media (max-width: 767.98px) {
  .fgx-why__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px) {
  .fgx-why {
    padding: 70px 0 80px;
  }

  .fgx-why__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-why__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-why__bottom {
    padding: 1.4rem;
    border-radius: 26px;
  }

  .fgx-why__actions {
    flex-direction: column;
  }

  .fgx-why__btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · ALÉRGENOS Y QR
========================================================= */

.fgx-allergens {
  position: relative;
  overflow: hidden;
  padding: 80px 0 95px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .07) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .14) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-allergens::before {
  content: "";
  position: absolute;
  left: -150px;
  top: 120px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-allergens::after {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -130px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-allergens > .container {
  position: relative;
  z-index: 2;
}

.fgx-allergens__panel {
  padding: 2.2rem;
  border-radius: 34px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 24px 64px rgba(0, 40, 90, .10);
}

.fgx-allergens__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-allergens__eyebrow::before {
  content: "";
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-allergens__title,
.fgx-allergens__qrText h2 {
  max-width: 900px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(1.9rem, 3.5vw, 3rem);
  line-height: 1.06;
  font-weight: 950;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.fgx-allergens__title::after {
  content: "";
  display: block;
  width: 86px;
  height: 4px;
  margin: 1rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-allergens__intro {
  max-width: 760px;
  margin: 1.2rem auto 0;
  color: #4b4b4b;
  font-size: 1rem;
  line-height: 1.7;
}

.fgx-allergens__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2rem;
}

.fgx-allergens__item {
  display: grid;
  place-items: center;
  gap: .65rem;
  min-height: 150px;
  margin: 0;
  padding: 1rem;
  border-radius: 24px;
  background: #ffffff;
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 14px 34px rgba(0, 40, 90, .07);
  text-align: center;
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-allergens__item:hover {
  transform: translateY(-4px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 22px 52px rgba(0, 40, 90, .13);
}

.fgx-allergens__item img {
  width: 50px;
  height: 50px;
  object-fit: contain;
}

.fgx-allergens__item figcaption {
  color: var(--azul);
  font-size: .9rem;
  line-height: 1.2;
  font-weight: 900;
}

.fgx-allergens__qr {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(220px, .7fr);
  align-items: center;
  gap: 2rem;
  margin-top: 2rem;
  padding: 2.2rem;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

.fgx-allergens__qrText {
  color: #ffffff;
}

.fgx-allergens__qrText .fgx-allergens__eyebrow {
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.22);
}

.fgx-allergens__qrText h2 {
  margin: 0;
  color: #ffffff;
}

.fgx-allergens__qrText p {
  max-width: 720px;
  margin: 1rem 0 0;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  line-height: 1.7;
}

.fgx-allergens__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-top: 1.35rem;
  min-height: 48px;
  padding: .82rem 1.15rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease;
}

.fgx-allergens__btn:hover {
  color: var(--azul);
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
  text-decoration: none;
}

.fgx-allergens__qrImage {
  display: grid;
  place-items: center;
}

.fgx-allergens__qrImage img {
  width: min(100%, 260px);
  height: auto;
  padding: .85rem;
  border-radius: 28px;
  background: #ffffff;
  box-shadow: 0 20px 48px rgba(0,0,0,.22);
}

@media (max-width: 991.98px) {
  .fgx-allergens__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fgx-allergens__qr {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .fgx-allergens__qrText p {
    margin-inline: auto;
  }
}

@media (max-width: 575.98px) {
  .fgx-allergens {
    padding: 64px 0 76px;
  }

  .fgx-allergens__panel,
  .fgx-allergens__qr {
    padding: 1.25rem;
    border-radius: 26px;
  }

  .fgx-allergens__grid {
    grid-template-columns: 1fr;
  }

  .fgx-allergens__item {
    min-height: 128px;
  }

  .fgx-allergens__btn {
    width: 100%;
  }
}



/* =========================================================
   FLOR DE GALICIA · CARTA DE VINOS
   CSS aislado para evitar conflictos con otras cartas
========================================================= */

#carta-vinos {
  position: relative;
  overflow: hidden;
  width: 100%;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .07) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .14) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

#carta-vinos > .container {
  position: relative;
  z-index: 2;
}

#carta-vinos::before {
  content: "";
  position: absolute;
  left: -160px;
  top: 130px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

#carta-vinos::after {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -140px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

#carta-vinos .section_title {
  max-width: 980px;
  margin-inline: auto;
}

#carta-vinos .section_title span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

#carta-vinos .section_title span:first-child::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

#carta-vinos .section_title h1 {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

#carta-vinos .section_title h1::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#carta-vinos .section_title .lead {
  max-width: 900px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

/* La barra blanca que envolvia la botonera se ha retirado: apuntaba a
   .btn-group, que ya no existe en el marcado. Ademas su contenedor es hoy
   el mismo que el de los paneles, asi que un fondo suyo pintaria por detras
   de todo. El aspecto de pildora lo llevan ahora los propios botones. */

#carta-vinos .fgx-carta__btn,
#carta-vinos .pantallas-pequenas .btn {
  border-radius: 999px !important;
  border: 1px solid rgba(0, 40, 90, .14);
  color: var(--azul);
  background: rgba(255,255,255,.86);
  font-size: .82rem;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

#carta-vinos .fgx-carta__btn:hover,
#carta-vinos .fgx-carta__btn.is-active,
#carta-vinos .pantallas-pequenas .btn:hover,
#carta-vinos .pantallas-pequenas .btn.is-active {
  color: var(--blanco);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border-color: var(--amarillo);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 40, 90, .18);
}

#carta-vinos .section-content {
  display: none;
}

#carta-vinos .section-content.active-section,
#carta-vinos .section-content.show {
  display: block;
}

/* El primer selector apuntaba a #carta-vinos-large-screen-content, el id del
   bloque de escritorio de cuando la bodega se pintaba dos veces; ya no existe.
   El segundo si vive, y es el que venia dibujando la caja en las dos anchuras.
   El !important de la sombra es para ganarle a la clase .shadow que el marcado
   pone en el panel: sin el, la caja se quedaba con la sombra generica. */
#carta-vinos .guiones-titulo,
#carta-vinos .section-content > h2 {
  color: var(--azul);
  font-size: clamp(1.8rem, 3vw, 2.65rem);
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.035em;
}

/* Aqui habia una barrita dorada para el titulo de cada apartado. Sus dos
   selectores apuntaban al mismo elemento, el h2 del panel, que lleva
   .guiones-titulo: en vez de anadirse debajo, sustituia a la raya derecha y
   la dejaba en 4px frente a los 2px de la izquierda. Los titulos de la bodega
   usan ahora el mismo trazo simetrico que los de /carta y /barra. */

#carta-vinos .pantallas-pequenas .btn-group-vertical {
  display: grid;
  gap: .85rem;
  width: 100%;
}

#carta-vinos .pantallas-pequenas .btn {
  width: 100%;
  min-height: 52px;
  border-radius: 20px !important;
  padding: .85rem 1rem;
  text-align: left;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#carta-vinos .pantallas-pequenas .btn::after {
  font-size: .8rem;
  color: var(--amarillo);
}

@media (max-width: 767.98px) {
  #carta-vinos .section_title h1 {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  #carta-vinos .section_title .lead {
    font-size: .96rem;
    line-height: 1.65;
  }

  #carta-vinos .menu-price {
    font-size: .92rem !important;
  }
}

/* =========================================================
   FLOR DE GALICIA · QR CARTA DE VINOS
========================================================= */

.fgx-wine-qr {
  position: relative;
  overflow: hidden;
  padding: 80px 0 95px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .07) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .14) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-wine-qr::before {
  content: "";
  position: absolute;
  left: -150px;
  top: 110px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-wine-qr::after {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -130px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-wine-qr > .container {
  position: relative;
  z-index: 2;
}

.fgx-wine-qr__panel {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr);
  align-items: center;
  gap: 2rem;
  padding: 2.4rem;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

.fgx-wine-qr__content {
  color: #ffffff;
}

.fgx-wine-qr__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.22);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-wine-qr__eyebrow::before {
  content: "";
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .22);
}

.fgx-wine-qr__title {
  max-width: 780px;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.9rem, 3.6vw, 3.15rem);
  line-height: 1.06;
  font-weight: 950;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.fgx-wine-qr__text {
  max-width: 760px;
  margin: 1rem 0 0;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  line-height: 1.7;
}

.fgx-wine-qr__text strong {
  color: #ffffff;
  font-weight: 900;
}

.fgx-wine-qr__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 1.4rem;
}

.fgx-wine-qr__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.15rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-wine-qr__btn--primary {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
}

.fgx-wine-qr__btn--outline {
  color: #ffffff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.35);
}

.fgx-wine-qr__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-wine-qr__btn--primary:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.fgx-wine-qr__btn--outline:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

.fgx-wine-qr__image {
  display: grid;
  place-items: center;
}

.fgx-wine-qr__image img {
  width: min(100%, 280px);
  height: auto;
  padding: .9rem;
  border-radius: 28px;
  background: #ffffff;
  box-shadow: 0 20px 48px rgba(0,0,0,.22);
}

@media (max-width: 991.98px) {
  .fgx-wine-qr__panel {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .fgx-wine-qr__text {
    margin-inline: auto;
  }

  .fgx-wine-qr__actions {
    justify-content: center;
  }
}

@media (max-width: 575.98px) {
  .fgx-wine-qr {
    padding: 64px 0 76px;
  }

  .fgx-wine-qr__panel {
    padding: 1.3rem;
    border-radius: 26px;
  }

  .fgx-wine-qr__actions {
    flex-direction: column;
  }

  .fgx-wine-qr__btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · ESPECIALIDADES / CARDS
========================================================= */

.fgx-specialties {
  position: relative;
  overflow: hidden;
  padding: 95px 0 105px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .14) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-specialties::before {
  content: "";
  position: absolute;
  left: -160px;
  top: 150px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-specialties::after {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -140px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-specialties > .container {
  position: relative;
  z-index: 2;
}

.fgx-specialties__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-specialties__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-specialties__title {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-specialties__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-specialties__intro {
  max-width: 900px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-specialties__intro strong {
  color: var(--azul);
  font-weight: 700;
}

/*.fgx-specialties__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
}*/

.fgx-specialties__card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border-radius: 30px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 22px 56px rgba(0, 40, 90, .10);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-specialties__card:hover {
  transform: translateY(-5px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 30px 72px rgba(0, 40, 90, .15);
}

.fgx-specialties__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: #ddd;
}

.fgx-specialties__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.fgx-specialties__card:hover .fgx-specialties__image img {
  transform: scale(1.045);
}

.fgx-specialties__content {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.35rem;
}

.fgx-specialties__badge {
  display: inline-flex;
  align-self: flex-start;
  margin-bottom: .85rem;
  padding: .42rem .8rem;
  border-radius: 999px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  font-size: .72rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
  box-shadow: 0 12px 28px rgba(202, 162, 74, .22);
}

.fgx-specialties__content h3 {
  margin: 0 0 .75rem;
  color: var(--azul);
  font-size: 1.3rem;
  line-height: 1.13;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fgx-specialties__content p {
  margin: 0;
  color: #4a4a4a;
  font-size: .98rem;
  line-height: 1.65;
  padding-bottom: 1.25rem;
}

.fgx-specialties__note {
  max-width: 980px;
  margin: 2.5rem auto 0;
  padding: 2rem;
  border-radius: 32px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
  text-align: center;
}

.fgx-specialties__note p {
  max-width: 860px;
  margin: 0 auto;
  color: rgba(255,255,255,.92);
  font-size: 1.05rem;
  line-height: 1.75;
}

.fgx-specialties__note strong {
  color: #ffffff;
  font-weight: 950;
}

.fgx-specialties__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin-top: 1.4rem;
}

.fgx-specialties__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.15rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-specialties__btn--primary {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
}

.fgx-specialties__btn--outline {
  color: #ffffff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.35);
}

.fgx-specialties__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-specialties__btn--primary:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.fgx-specialties__btn--outline:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

@media (max-width: 1199.98px) {
  .fgx-specialties__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .fgx-specialties {
    padding: 70px 0 80px;
  }

  .fgx-specialties__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-specialties__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-specialties__grid {
    grid-template-columns: 1fr;
  }

  .fgx-specialties__note {
    padding: 1.35rem;
    border-radius: 26px;
  }

  .fgx-specialties__actions {
    flex-direction: column;
  }

  .fgx-specialties__btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · CTA CARD
========================================================= */

.fgx-cta-card {
  position: relative;
  overflow: hidden;
  padding: 45px 0;
  background: #ffffff;
}

.fgx-cta-card__panel {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.6rem;
  padding: 1.8rem;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .18);
}

.fgx-cta-card__panel::before {
  content: "";
  position: absolute;
  left: -90px;
  top: -90px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-cta-card__brand,
.fgx-cta-card__content,
.fgx-cta-card__actions {
  position: relative;
  z-index: 2;
}

.fgx-cta-card__brand {
  display: grid;
  place-items: center;
  width: 150px;
  min-height: 110px;
  border-radius: 26px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(255,255,255,.42);
  box-shadow: 0 18px 42px rgba(0,0,0,.18);
}

.fgx-cta-card__brand img {
  width: 120px;
  height: auto;
}

.fgx-cta-card__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .7rem;
  padding: .45rem .85rem;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.22);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.fgx-cta-card__eyebrow::before {
  content: "";
  width: .44rem;
  height: .44rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .22);
}

.fgx-cta-card__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.55rem, 3vw, 2.45rem);
  line-height: 1.08;
  font-weight: 950;
  letter-spacing: -.035em;
}

.fgx-cta-card__text {
  max-width: 720px;
  margin: .75rem 0 0;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  line-height: 1.65;
}

.fgx-cta-card__text strong {
  color: #ffffff;
  font-weight: 900;
}

.fgx-cta-card__actions {
  display: grid;
  gap: .75rem;
  min-width: 220px;
}

.fgx-cta-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 50px;
  padding: .86rem 1.2rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 950;
  text-decoration: none;
  white-space: nowrap;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-cta-card__btn--primary {
  color: var(--azul);
  background: #fff;
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
  font-size: 1.1rem;
}

.fgx-cta-card__btn--outline {
  color: var(--azul);
  background: var(--amarillo);
  border: 1px solid rgba(255,255,255,.35);
  font-size: 1.1rem;
}

.fgx-cta-card__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-cta-card__btn--primary:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.fgx-cta-card__btn--outline:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

@media (max-width: 991.98px) {
  .fgx-cta-card__panel {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .fgx-cta-card__brand {
    margin-inline: auto;
  }

  .fgx-cta-card__text {
    margin-inline: auto;
  }

  .fgx-cta-card__actions {
    width: 100%;
    max-width: 420px;
    margin-inline: auto;
  }
}

@media (max-width: 575.98px) {
  .fgx-cta-card {
    padding: 32px 0;
  }

  .fgx-cta-card__panel {
    padding: 1.25rem;
    border-radius: 26px;
  }

  .fgx-cta-card__brand {
    width: 130px;
    min-height: 96px;
  }

  .fgx-cta-card__brand img {
    width: 105px;
  }

  .fgx-cta-card__btn {
    width: 100%;
    white-space: normal;
  }
}
/* =========================================================
   FLOR DE GALICIA · ESPECIALIDADES RELACIONADAS
========================================================= */

.fgx-related-specialties {
  position: relative;
  overflow: hidden;
  padding: 95px 0 105px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .14) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-related-specialties::before {
  content: "";
  position: absolute;
  left: -160px;
  top: 150px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-related-specialties::after {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -140px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-related-specialties > .container {
  position: relative;
  z-index: 2;
}

.fgx-related-specialties__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-related-specialties__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-related-specialties__title {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-related-specialties__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-related-specialties__intro {
  max-width: 900px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-related-specialties__intro strong {
  color: var(--azul);
  font-weight: 850;
}

.fgx-related-specialties__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}

.fgx-related-specialties__card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.7rem 1.35rem;
  border-radius: 30px;
  color: inherit;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 22px 56px rgba(0, 40, 90, .10);
  text-decoration: none;
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-related-specialties__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 16%, rgba(209, 186, 144, .18) 0%, transparent 34%),
    radial-gradient(circle at 86% 92%, rgba(0, 101, 209, .07) 0%, transparent 34%);
  pointer-events: none;
}

.fgx-related-specialties__card > * {
  position: relative;
  z-index: 2;
}

.fgx-related-specialties__card:hover {
  transform: translateY(-5px);
  border-color: rgba(202, 162, 74, .48);
  box-shadow: 0 30px 72px rgba(0, 40, 90, .15);
  text-decoration: none;
}

.fgx-related-specialties__icon {
  display: grid;
  place-items: center;
  width: 70px;
  height: 70px;
  margin-bottom: 1rem;
  border-radius: 22px;
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  box-shadow: 0 16px 34px rgba(202, 162, 74, .26);
  font-size: 1.65rem;
}

/* Foto de la especialidad.
   Llega hasta los bordes de la tarjeta tirando del relleno hacia fuera con
   margen negativo; de redondearla se encarga el overflow:hidden de la propia
   tarjeta. Si una tarjeta no lleva foto, sigue funcionando como antes. */
.fgx-related-specialties__media {
  position: relative;
  overflow: hidden;
  margin: -1.7rem -1.35rem 1.35rem;
  aspect-ratio: 16 / 10;
  background: rgba(0, 40, 90, .06);
}

.fgx-related-specialties__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.fgx-related-specialties__card:hover .fgx-related-specialties__media img {
  transform: scale(1.05);
}

/* Oscurecido al pie de la foto: sostiene el icono, que si no queda flotando
   sobre lo que toque de la imagen, y separa la foto del texto. */
.fgx-related-specialties__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 40, 90, 0) 45%, rgba(0, 40, 90, .42) 100%);
  pointer-events: none;
}

/* El icono no desaparece: se va a la esquina inferior izquierda de la foto,
   a plomo con el texto que viene debajo. */
.fgx-related-specialties__media .fgx-related-specialties__icon {
  position: absolute;
  left: 1.35rem;
  bottom: .9rem;
  z-index: 2;
  width: 54px;
  height: 54px;
  margin: 0;
  border-radius: 16px;
  border: 2px solid rgba(255, 255, 255, .85);
  box-shadow: 0 10px 24px rgba(0, 40, 90, .30);
  font-size: 1.25rem;
}

.fgx-related-specialties__label {
  display: inline-flex;
  align-self: flex-start;
  margin-bottom: .75rem;
  padding: .38rem .75rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .09);
  font-size: .72rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fgx-related-specialties__card h3 {
  margin: 0 0 .75rem;
  color: var(--azul);
  font-size: 1.22rem;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fgx-related-specialties__card p {
  margin: 0;
  color: #4a4a4a;
  font-size: .96rem;
  line-height: 1.62;
}

.fgx-related-specialties__card p strong {
  color: var(--azul);
  font-weight: 850;
}

.fgx-related-specialties__btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: auto;
  padding-top: 1.1rem;
  color: var(--azul);
  font-size: .9rem;
  font-weight: 950;
}

.fgx-related-specialties__btn i {
  transition: transform .22s ease;
}

.fgx-related-specialties__card:hover .fgx-related-specialties__btn i {
  transform: translateX(4px);
}

@media (max-width: 1199.98px) {
  .fgx-related-specialties__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .fgx-related-specialties {
    padding: 70px 0 80px;
  }

  .fgx-related-specialties__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-related-specialties__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-related-specialties__grid {
    grid-template-columns: 1fr;
  }
}
/* =========================================================
   FLOR DE GALICIA · LOCATION CTA
========================================================= */

.fgx-location-cta {
  position: relative;
  overflow: hidden;
  padding: 70px 0;
  background: #ffffff;
}

.fgx-location-cta__panel {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2rem;
  padding: 2.2rem;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

.fgx-location-cta__panel::before {
  content: "";
  position: absolute;
  left: -110px;
  top: -110px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-location-cta__content,
.fgx-location-cta__actions {
  position: relative;
  z-index: 2;
}

.fgx-location-cta__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .85rem;
  padding: .48rem .95rem;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.22);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.fgx-location-cta__eyebrow::before {
  content: "";
  width: .46rem;
  height: .46rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .22);
}

.fgx-location-cta__title {
  max-width: 860px;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.75rem, 3.6vw, 3.1rem);
  line-height: 1.06;
  font-weight: 950;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.fgx-location-cta__text {
  max-width: 860px;
  margin: 1rem 0 0;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  line-height: 1.7;
}

.fgx-location-cta__text strong {
  color: #ffffff;
  font-weight: 900;
}

.fgx-location-cta__features {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.25rem;
}

.fgx-location-cta__feature {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .85rem;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  font-size: .88rem;
  font-weight: 850;
}

.fgx-location-cta__feature i {
  color: var(--amarillo);
}

.fgx-location-cta__actions {
  display: grid;
  gap: .8rem;
  min-width: 230px;
}

.fgx-location-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 50px;
  padding: .86rem 1.2rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 950;
  text-decoration: none;
  white-space: nowrap;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-location-cta__btn--primary {
  color: var(--azul);
  background: #fff;
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
  font-size: 1.1rem;
}

.fgx-location-cta__btn--outline {
  color: var(--azul);
  background: var(--amarillo);
  border: 1px solid rgba(255,255,255,.35);
  font-size: 1.1rem;
}

.fgx-location-cta__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-location-cta__btn--primary:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.fgx-location-cta__btn--outline:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

@media (max-width: 991.98px) {
  .fgx-location-cta__panel {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .fgx-location-cta__text {
    margin-inline: auto;
  }

  .fgx-location-cta__features {
    justify-content: center;
  }

  .fgx-location-cta__actions {
    width: 100%;
    max-width: 420px;
    margin-inline: auto;
  }
}

@media (max-width: 575.98px) {
  .fgx-location-cta {
    padding: 50px 0;
  }

  .fgx-location-cta__panel {
    padding: 1.25rem;
    border-radius: 26px;
  }

  .fgx-location-cta__features {
    flex-direction: column;
  }

  .fgx-location-cta__feature,
  .fgx-location-cta__btn {
    width: 100%;
  }
}
/* =========================================================
   FLOR DE GALICIA · CIERRE SEO / FINAL COPY
========================================================= */

.fgx-final-copy {
  position: relative;
  overflow: hidden;
  padding: 70px 0 85px;
  background: #ffffff;
}

.fgx-final-copy__panel {
  max-width: 980px;
  margin: 0 auto;
  padding: 2.3rem;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
}

.fgx-final-copy__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.22);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-final-copy__eyebrow::before {
  content: "";
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .22);
}

.fgx-final-copy__title {
  max-width: 860px;
  margin: 0 auto;
  color: #ffffff;
  font-size: clamp(1.85rem, 3.8vw, 3.25rem);
  line-height: 1.06;
  font-weight: 950;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.fgx-final-copy__text {
  max-width: 820px;
  margin: 1.1rem auto 0;
  color: rgba(255,255,255,.92);
  font-size: 1.05rem;
  line-height: 1.75;
}

.fgx-final-copy__text strong {
  color: #ffffff;
  font-weight: 950;
}

.fgx-final-copy__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin-top: 1.5rem;
}

.fgx-final-copy__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.15rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-final-copy__btn--primary {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
}

.fgx-final-copy__btn--outline {
  color: #ffffff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.35);
}

.fgx-final-copy__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-final-copy__btn--primary:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.fgx-final-copy__btn--outline:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

@media (max-width: 575.98px) {
  .fgx-final-copy {
    padding: 50px 0 65px;
  }

  .fgx-final-copy__panel {
    padding: 1.35rem;
    border-radius: 26px;
  }

  .fgx-final-copy__actions {
    flex-direction: column;
  }

  .fgx-final-copy__btn {
    width: 100%;
  }
}

  /* =========================================================
   GALERÍA FLOR DE GALICIA
========================================================= */

.fgx-gallery {
  position: relative;
  overflow: hidden;
  padding: 95px 0 105px;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-gallery::before {
  content: "";
  position: absolute;
  left: -160px;
  top: 160px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

.fgx-gallery::after {
  content: "";
  position: absolute;
  right: -180px;
  bottom: -140px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

.fgx-gallery > .container {
  position: relative;
  z-index: 2;
}

.fgx-gallery__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-gallery__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-gallery__title {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.65rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.fgx-gallery__title span {
  display: block;
  margin-top: .25rem;
  color: var(--azulc);
  font-size: .55em;
  letter-spacing: -.025em;
}

.fgx-gallery__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-gallery__intro {
  max-width: 940px;
  margin: 1.35rem auto 0;
  color: #444;
  font-size: 1.05rem;
  line-height: 1.78;
}

.fgx-gallery__intro strong {
  color: var(--azul);
  font-weight: 850;
}

.fgx-gallery__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .8rem;
  margin-top: 1.8rem;
}

.fgx-gallery__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.18rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-gallery__btn--primary {
  color: #ffffff;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border: 1px solid rgba(0, 40, 90, .25);
  box-shadow: 0 14px 34px rgba(0, 40, 90, .18);
}

.fgx-gallery__btn--outline {
  color: var(--azul);
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(0, 40, 90, .14);
}

.fgx-gallery__btn--phone {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(202, 162, 74, .22);
}

.fgx-gallery__btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-gallery__btn--primary:hover {
  color: #ffffff;
  box-shadow: 0 18px 42px rgba(0, 40, 90, .24);
}

.fgx-gallery__btn--outline:hover {
  color: #ffffff;
  background: var(--azul);
  border-color: var(--azul);
}

.fgx-gallery__btn--phone:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(202, 162, 74, .30);
}

/* Grid tipo mosaico */
.fgx-gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: 1rem;
  margin-top: 3.2rem;
}

.fgx-gallery__item {
  position: relative;
  min-height: 220px;
}

.fgx-gallery__item--large {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 456px;
}

.fgx-gallery__item--wide {
  grid-column: span 2;
}

.fgx-gallery__link {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  height: 100%;
  min-height: inherit;
  border-radius: 30px;
  background: #111;
  box-shadow: 0 22px 56px rgba(0, 40, 90, .13);
  border: 1px solid rgba(255,255,255,.85);
  text-decoration: none;
  isolation: isolate;
}

.fgx-gallery__link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.16) 42%, rgba(0, 40, 90, .78) 100%);
  opacity: .95;
  transition: opacity .28s ease;
  pointer-events: none;
}

/* .fgx-gallery__* no lo usa ninguna pagina: es el bloque de la galeria del
   proyecto Vite anterior, que en el sitio se quedo en .fgm-gallery__*. Se le
   quita el glifo de Font Awesome para no dejar ninguna referencia viva a una
   fuente que ya no se carga; el bloque entero se puede borrar el dia que se
   haga limpieza, como se hizo con .fgx-christmas-menu. */
.fgx-gallery__link::after {
  content: "";
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  transform: translateY(-8px);
  opacity: 0;
  transition: opacity .28s ease, transform .28s ease;
}

.fgx-gallery__link img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform .5s ease, filter .5s ease;
}

.fgx-gallery__overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  padding: 1.15rem;
  color: #ffffff;
  transform: translateY(0);
  transition: transform .28s ease;
}

.fgx-gallery__overlay strong {
  display: block;
  font-size: 1rem;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: -.02em;
  text-shadow: 0 2px 12px rgba(0,0,0,.25);
}

.fgx-gallery__overlay small {
  display: block;
  margin-top: .35rem;
  color: rgba(255,255,255,.86);
  font-size: .82rem;
  font-weight: 700;
}

.fgx-gallery__link:hover img {
  transform: scale(1.08);
  filter: saturate(1.08) contrast(1.04);
}

.fgx-gallery__link:hover::after {
  opacity: 1;
  transform: translateY(0);
}

.fgx-gallery__link:hover::before {
  opacity: 1;
}

/* Bloque inferior */
.fgx-gallery__bottom {
  max-width: 980px;
  margin: 2.6rem auto 0;
  padding: 2rem;
  border-radius: 32px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.22) 0%, transparent 28%),
    radial-gradient(circle at 86% 86%, rgba(202, 162, 74, .24) 0%, transparent 34%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .20);
  text-align: center;
}

.fgx-gallery__bottom p {
  max-width: 820px;
  margin: 0 auto;
  color: rgba(255,255,255,.92);
  font-size: 1.5rem;
  line-height: 1.75;
}

.fgx-gallery__bottom strong {
  color: #ffffff;
  font-weight: 900;
}

.fgx-gallery__bottom-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin-top: 1.4rem;
}

.fgx-gallery__bottom-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .82rem 1.15rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 950;
  text-decoration: none;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.fgx-gallery__bottom-btn--primary {
  color: var(--azul);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  border: 1px solid rgba(202, 162, 74, .58);
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
}

.fgx-gallery__bottom-btn--outline {
  color: #ffffff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.35);
}

.fgx-gallery__bottom-btn:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.fgx-gallery__bottom-btn--primary:hover {
  color: var(--azul);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.fgx-gallery__bottom-btn--outline:hover {
  color: var(--azul);
  background: #ffffff;
  border-color: #ffffff;
}

/* Responsive */
@media (max-width: 1199.98px) {
  .fgx-gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .fgx-gallery__item--large {
    grid-column: span 2;
    grid-row: span 2;
  }
}

@media (max-width: 991.98px) {
  .fgx-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fgx-gallery__item,
  .fgx-gallery__item--large,
  .fgx-gallery__item--wide {
    grid-column: span 1;
    grid-row: span 1;
    min-height: 240px;
  }
}

@media (max-width: 767.98px) {
  .fgx-gallery {
    padding: 70px 0 80px;
  }

  .fgx-gallery__title {
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }

  .fgx-gallery__intro {
    font-size: .96rem;
    line-height: 1.65;
  }

  .fgx-gallery__actions {
    flex-direction: column;
  }

  .fgx-gallery__btn {
    width: 100%;
  }

  .fgx-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 2.2rem;
  }

  .fgx-gallery__item,
  .fgx-gallery__item--large,
  .fgx-gallery__item--wide {
    min-height: 175px;
  }

  .fgx-gallery__link {
    border-radius: 22px;
  }

  .fgx-gallery__overlay {
    padding: .8rem;
  }

  .fgx-gallery__overlay strong {
    font-size: .82rem;
  }

  .fgx-gallery__overlay small {
    display: none;
  }

  .fgx-gallery__bottom {
    padding: 1.4rem;
    border-radius: 26px;
  }

  .fgx-gallery__bottom-actions {
    flex-direction: column;
  }

  .fgx-gallery__bottom-btn {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .fgx-gallery__grid {
    grid-template-columns: 1fr;
  }

  .fgx-gallery__item,
  .fgx-gallery__item--large,
  .fgx-gallery__item--wide {
    min-height: 230px;
  }
} 
   :root{
  --azul:#00285a;
  --azulc:#0065d1;
  --black:#000;
  --blanco:#fff;
  --amarillo:#ffb703;
  --dorado:#d1ba90;
  --fgx-bg:#f8f5ef;
  --fgx-text:#343434;
}



html{
}
body{
  margin:0;
  color:var(--fgx-text);
  background:#fff;
  font-family:"Raleway",Arial,Helvetica,sans-serif;
}
a{
}
img{
  max-width:100%;
}
strong{
}
.fgx-nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1030;
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.10);
}
.fgx-nav .navbar-brand img{
  width:170px;
  height:auto;
}
.fgx-nav .nav-link{
  color:rgba(255,255,255,.92)!important;
  font-weight:800;
  font-size:.88rem;
  letter-spacing:.02em;
}
.fgx-nav .nav-link:hover,.fgx-nav .nav-link:focus{
}
.fgx-nav .dropdown-menu{
  border:0;
  border-radius:18px;
  padding:.6rem;
}
.fgx-nav .dropdown-item{
  border-radius:12px;
  font-weight:750;
}
.fgx-nav .dropdown-item:hover{
  background:rgba(0,40,90,.07);
}
.fgx-nav__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.72rem 1rem;
  border-radius:999px;
  color:var(--azul)!important;
  background:linear-gradient(135deg,var(--dorado),var(--amarillo));
  font-weight:950;
  text-decoration:none;
}
.fgx-page-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:grid;
  align-items:center;
  min-height:clamp(680px,92vh,920px);
  margin-top: 2px;
}
.fgx-page-hero__media,.fgx-page-hero__media picture,.fgx-page-hero__media img{
  position:absolute;
  inset:0;
  width:100%;
}
.fgx-page-hero__media{
}
.fgx-page-hero__media img{
  object-fit:cover;
  object-position:center;
  filter:saturate(1.06) contrast(1.03);
  transform:scale(1.04);
}
@keyframes fgxHeroKenBurns{
  from{
  }
  to{
  }
}
.fgx-page-hero__overlay{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
.fgx-page-hero__content{
  position:relative;
  z-index:5;
  padding-top:2rem;
}
.fgx-page-hero__eyebrow,.fgx-section__eyebrow,.fgx-about__eyebrow,.fgx-specialties__eyebrow,.fgx-why__eyebrow,.fgx-faq__eyebrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  margin-bottom:1rem;
  padding:.5rem 1rem;
  border-radius:999px;
  color:var(--azul);
  background:rgba(0,40,90,.07);
  border:1px solid rgba(0,40,90,.10);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.11em;
}
.fgx-page-hero__eyebrow{
  color:#fff;
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.28);
  backdrop-filter:blur(10px);
}
.fgx-page-hero__eyebrow::before,.fgx-section__eyebrow::before,.fgx-about__eyebrow::before,.fgx-specialties__eyebrow::before,.fgx-why__eyebrow::before,.fgx-faq__eyebrow::before{
  content:"";
  display:inline-block;
  width:.48rem;
  height:.48rem;
  border-radius:50%;
  background:var(--amarillo);
}
.fgx-page-hero__title{
  max-width:1050px;
  margin:0 auto;
  color:#fff;
  font-size:clamp(2.5rem,6vw,5.65rem);
  line-height:.95;
  font-weight:950;
  letter-spacing:-.06em;
  text-transform:uppercase;
  text-wrap:balance;
}
.fgx-page-hero__title span{
  display:block;
  margin-top:.3rem;
  color:var(--dorado);
  font-size:.42em;
}
.fgx-page-hero__title::after,.fgx-section__title::after,.fgx-about__title::after,.fgx-specialties__title::after,.fgx-why__title::after,.fgx-faq__title::after{
  content:"";
  display:block;
  width:112px;
  height:4px;
  margin:1.25rem auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--dorado),var(--amarillo));
}
.fgx-page-hero__subtitle{
  max-width:930px;
  margin:1.35rem auto 0;
  color:rgba(255,255,255,.94);
  font-size:clamp(1rem,1.6vw,1.28rem);
  line-height:1.7;
  font-weight:500;
}
.fgx-page-hero__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.85rem;
}
.fgx-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  min-width:205px;
  min-height:62px;
  padding:.85rem 1.15rem;
  border-radius:999px;
  text-decoration:none;
  text-align:left;
}
.fgx-btn__icon{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:40px;
  height:40px;
}
.fgx-btn strong{
  display:block;
  font-size:.94rem;
  line-height:1.1;
}
.fgx-btn small{
  display:block;
  margin-top:.2rem;
  font-size:.80rem;
  line-height:1.1;
  font-weight:750;
}
.fgx-btn--primary{
  color:var(--azul);
  background:var(--amarillo);
  border:1px solid rgba(202,162,74,.75);
}
.fgx-btn--secondary{
  color:#fff;
  background:linear-gradient(135deg,var(--azulc),var(--azul));
  border:1px solid rgba(255,255,255,.18);
}
.fgx-btn--ghost{
  color:#fff;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.32);
}
.fgx-btn:hover{
  transform:translateY(-3px);
}
.fgx-page-hero__trust{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.7rem;
}
.fgx-page-hero__trust span{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.5rem .75rem;
  border-radius:999px;
  color:rgba(255,255,255,.92);
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  font-size:.8rem;
}
.fgx-page-hero__trust i{
}
.fgx-page-hero__wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  z-index:5;
  width:100%;
  line-height:0;
}
.fgx-page-hero__wave svg{
  display:block;
  width:100%;
}
.fgx-section,.fgx-about,.fgx-specialties,.fgx-why,.fgx-faq,.fgx-cta-band{
  position:relative;
  overflow:hidden;
}
.fgx-specialties,.fgx-faq{
}
.fgx-about,.fgx-why{
}
.fgx-section__title,.fgx-about__title,.fgx-specialties__title,.fgx-why__title,.fgx-faq__title{
  max-width:980px;
  margin:0 auto;
  color:var(--azul);
  font-size:clamp(2rem,4vw,2.65rem);
  line-height:1.04;
  font-weight:950;
  letter-spacing:-.045em;
}
.fgx-section__intro,.fgx-about__lead,.fgx-specialties__intro,.fgx-why__intro,.fgx-faq__intro{
  max-width:940px;
  margin:1.35rem auto 0;
  color:#444;
  font-size:1.05rem;
}
.fgx-section__intro strong,.fgx-about__lead strong,.fgx-specialties__intro strong,.fgx-why__intro strong,.fgx-faq__intro strong{
  color:var(--azul);
}
.fgx-about__content p{
  color:#424242;
  font-size:1rem;
}
.fgx-about__features{
  display:grid;
  gap:.85rem;
}
.fgx-about__feature{
  display:flex;
  gap:.85rem;
  align-items:flex-start;
  padding:.95rem;
  border-radius:20px;
  background:rgba(0,40,90,.04);
}
.fgx-about__feature span{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:42px;
  height:42px;
  border-radius:16px;
  color:var(--azul);
}
.fgx-about__feature p{
  margin:0;
}
.fgx-about__feature strong{
  display:block;
  color:var(--azul);
}
.fgx-about__actions,.fgx-specialties__actions,.fgx-why__actions,.fgx-faq__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
}
.fgx-section-btn,.fgx-specialties__btn,.fgx-faq__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:48px;
  padding:.82rem 1.15rem;
  border-radius:999px;
  font-size:1.1rem;
  font-weight:950;
  text-decoration:none;
}
.fgx-section-btn--primary,.fgx-specialties__btn--primary,.fgx-faq__btn--primary{
  color:var(--azul);
  background: #fff;
  border:1px solid rgba(202,162,74,.58);
}
.fgx-section-btn--outline,.fgx-specialties__btn--outline,.fgx-faq__btn--outline{
  color:var(--azul);
  background:rgba(255,255,255,.88);
}
.fgx-about__media{
  position:relative;
}
.fgx-about__photo{
  position:absolute;
  overflow:hidden;
  border-radius:34px;
  box-shadow:var(--fgx-shadow);
}
.fgx-about__photo img{
  width:100%;
  height:100%;
}
.fgx-about__photo--main{
  left:0;
  top:0;
  width:70%;
}
.fgx-about__photo--secondary{
  right:0;
  bottom:0;
  width:48%;
}
.fgx-about__badge{
  position:absolute;
  z-index:3;
  max-width:260px;
  padding:1rem 1.1rem;
  color:#fff;
}
.fgx-about__badge strong{
  display:block;
  font-size:1.3rem;
  line-height:1;
}
.fgx-about__badge span{
  display:block;
  margin-top:.25rem;
  font-size:.84rem;
  font-weight:750;
}
.fgx-specialties__grid{
}
.fgx-specialties__card{
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
  border-radius:30px;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(0,40,90,.09);
  box-shadow:0 22px 56px rgba(0,40,90,.10);
  text-decoration:none;
}
.fgx-specialties__card:hover{
  transform:translateY(-5px);
  border-color:rgba(202,162,74,.48);
  box-shadow:0 30px 72px rgba(0,40,90,.15);
}
.fgx-specialties__image{
  position:relative;
  overflow:hidden;
  aspect-ratio:3/2;
}
.fgx-specialties__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.01);
}
.fgx-specialties__card:hover .fgx-specialties__image img{
  transform:scale(1.07);
}
.fgx-specialties__content{
  display:flex;
  flex-direction:column;
  flex-grow:1;
}
.fgx-specialties__badge{
  display:inline-flex;
  align-self:flex-start;
  margin-bottom:.85rem;
  padding:.42rem .72rem;
  border-radius:999px;
  color:var(--azul);
  background:rgb(202 162 74);
  border:1px solid rgba(202,162,74,.36);
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.08em;
}
.fgx-specialties__content h3{
  margin:0 0 .75rem;
  color:var(--azul);
  font-size:1.25rem;
  line-height:1.15;
  font-weight:950;
}
.fgx-specialties__content p{
  margin:0;
  color:#4a4a4a;
  font-size:.98rem;
}
.fgx-specialties__cta{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-top:auto;
  padding-top:1rem;
  color:var(--azulc);
  font-weight:950;
}
.fgx-specialties__note{
  max-width:980px;
  margin:2.4rem auto 0;
  padding:2rem;
  border-radius:32px;
  color:#fff;
  background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.22) 0%,transparent 28%),radial-gradient(circle at 86% 86%,rgba(202,162,74,.24) 0%,transparent 34%),linear-gradient(135deg,var(--azulc),var(--azul));
  box-shadow:0 24px 64px rgba(0,40,90,.20);
}
.fgx-specialties__note p{
  max-width:860px;
  margin:0 auto;
  color:rgba(255,255,255,.92);
  font-size:1.5rem;
}
.fgx-specialties__note strong{
  color:#fff;
}
.fgx-specialties__actions{
}
.fgx-specialties__note .fgx-specialties__btn--outline{
  color: var(--azul);
  background:var(--amarillo);
}
.fgx-cta-band{
  padding:70px 0;
}
.fgx-cta-band__box{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:1.5rem;
  padding:1.6rem;
  border-radius:34px;
  color:#fff;
  background:linear-gradient(135deg,var(--azulc),var(--azul));
}
.fgx-cta-band__logo{
  width:138px;
  padding:.7rem;
  border-radius:22px;
}
.fgx-cta-band__text p{
  margin:0;
  font-size:1.1rem;
  line-height:1.55;
}
.fgx-cta-band__actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}
.fgx-why__card{
  position:relative;
  overflow:hidden;
  min-height:100%;
  padding:2rem 1.5rem;
  border-radius:30px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(0,40,90,.09);
  box-shadow:0 22px 56px rgba(0,40,90,.10);
  text-align:center;
}
.fgx-why__card:hover{
  transform:translateY(-5px);
  border-color:rgba(202,162,74,.48);
}
.fgx-why__icon{
  display:grid;
  place-items:center;
  width:74px;
  height:74px;
  margin:0 auto 1.15rem;
  border-radius:22px;
  color:var(--azul);
  background:linear-gradient(135deg,var(--dorado),var(--amarillo));
  box-shadow:0 16px 34px rgba(202,162,74,.26);
}
.fgx-why__card h3{
  margin:0 0 .75rem;
  color:var(--azul);
  font-size:1.25rem;
  line-height:1.15;
  font-weight:950;
}
.fgx-why__card p{
  margin:0;
  color:#4a4a4a;
  font-size:.98rem;
}
.fgx-faq__panel{
  margin-top:3rem;
  padding:1.2rem;
  border-radius:34px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(0,40,90,.09);
}
.fgx-faq__item{
  overflow:hidden;
  margin-bottom:.85rem;
  border:1px solid rgba(0,40,90,.10)!important;
  border-radius:22px!important;
}
.fgx-faq__button{
  color:var(--azul);
  background:#fff;
  font-weight:950;
  font-size:1rem;
  line-height:1.35;
}
.fgx-faq__button:not(.collapsed){
  color:var(--azul);
}
.fgx-faq__body{
  color:#444;
  font-size:.98rem;
  line-height:1.7;
}
.fgx-faq__actions{
  justify-content:center;
}
.fgx-footer{
  padding:70px 0 30px;
  color:rgba(255,255,255,.86);
}
.fgx-footer h3{
  color:#fff;
  font-size:1.1rem;
  font-weight:950;
}
.fgx-footer p,.fgx-footer li{
  color:rgba(255,255,255,.78);
  line-height:1.65;
}
.fgx-footer ul{
  list-style:none;
  padding:0;
}
.fgx-footer a{
  color:rgba(255,255,255,.78);
}
.fgx-footer a:hover{
  color:var(--dorado);
}
.fgx-footer__logo{
  max-width:180px;
}
.fgx-footer__social{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}
.fgx-footer__social a{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:999px;
  color:var(--azul);
}
.fgx-footer__bottom{
  margin-top:2.5rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.12);
  text-align:center;
  color:rgba(255,255,255,.62);
}
@media(max-width:991.98px){
  .fgx-about__media{
    min-height:520px;
  }
  .fgx-about__photo--main{
  }
  .fgx-about__photo--secondary{
  }
  .fgx-cta-band__box{
    grid-template-columns:1fr;
  }
  .fgx-cta-band__logo{
  }
  .fgx-cta-band__actions{
  }
}
@media(max-width:767.98px){
  .fgx-page-hero{
    min-height:auto;
    display:block;
  }
  .fgx-page-hero__media,.fgx-page-hero__media picture,.fgx-page-hero__media img{
    position:relative;
    display:block;
  }
  .fgx-page-hero__overlay{
  }
  .fgx-page-hero__content{
    position:relative;
    z-index:8;
    padding:2rem 1rem 2.4rem;
  }
  .fgx-page-hero__title{
    font-size:clamp(2.05rem,11vw,3.25rem);
  }
  .fgx-page-hero__subtitle{
    font-size:.98rem;
  }
  .fgx-page-hero__actions,.fgx-page-hero__trust,.fgx-about__actions,.fgx-specialties__actions,.fgx-faq__actions{
    flex-direction:column;
  }
  .fgx-btn,.fgx-section-btn,.fgx-specialties__btn,.fgx-faq__btn{
  }
  .fgx-page-hero__wave{
  }
  .fgx-section,.fgx-about,.fgx-specialties,.fgx-why,.fgx-faq,.fgx-cta-band{
  }
  .fgx-section__title,.fgx-about__title,.fgx-specialties__title,.fgx-why__title,.fgx-faq__title{
  }
  .fgx-section__intro,.fgx-about__lead,.fgx-specialties__intro,.fgx-why__intro,.fgx-faq__intro{
    font-size:.96rem;
  }
  .fgx-about__media{
  }
  .fgx-about__photo{
    position:relative;
    width:100%!important;
    height:auto!important;
  }
  .fgx-about__photo img{
  }
  .fgx-about__badge{
    position:relative;
    left:auto;
    bottom:auto;
    margin-top:.5rem;
  }
  .fgx-faq__panel,.fgx-specialties__note{
    padding:1.25rem;
  }
}
 







    :root {
      --azul: #00285a;
      --azulc: #0065d1;
      --black: #000000;
      --blanco: #ffffff;
      --amarillo: #ffb703;
      --dorado: #d1ba90;
    }

    /* =========================================================
       FLOR DE GALICIA · BLOG PREMIUM
       Clases aisladas fgx-blog-*
    ========================================================= */

    /* Sin overflow:hidden: convertia la seccion en contenedor de scroll y eso
       anulaba el `position: sticky` del aside, que nunca llegaba a pegarse.
       Los circulos decorativos se recortan ahora en su propia capa. */
    .fgx-blog {
      position: relative;
      padding: 6rem 0 5rem;
      background:
        radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
        radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
        linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
    }

    .fgx-blog__deco {
      position: absolute;
      inset: 0;
      overflow: hidden;
      pointer-events: none;
    }

    .fgx-blog__deco::before {
      content: "";
      position: absolute;
      left: -140px;
      top: 160px;
      width: 330px;
      height: 330px;
      border-radius: 50%;
      background: rgba(209, 186, 144, .18);
    }

    .fgx-blog__deco::after {
      content: "";
      position: absolute;
      right: -150px;
      bottom: 260px;
      width: 390px;
      height: 390px;
      border-radius: 50%;
      background: rgba(0, 40, 90, .08);
    }

    .fgx-blog > .container {
      position: relative;
      z-index: 2;
    }

    .fgx-blog__header {
      max-width: 900px;
      margin: 0 auto 3rem;
      text-align: center;
    }

    .fgx-blog__eyebrow,
    .fgx-blog-sidebar__eyebrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      margin-bottom: 1rem;
      padding: .5rem 1rem;
      border-radius: 999px;
      color: var(--azul);
      background: rgba(0, 40, 90, .07);
      border: 1px solid rgba(0, 40, 90, .10);
      font-size: .78rem;
      font-weight: 900;
      letter-spacing: .11em;
      text-transform: uppercase;
    }

    .fgx-blog__eyebrow::before,
    .fgx-blog-sidebar__eyebrow::before {
      content: "";
      display: inline-block;
      width: .48rem;
      height: .48rem;
      border-radius: 50%;
      background: var(--amarillo);
      box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
    }

    .fgx-blog__title {
      max-width: 980px;
      margin: 0 auto;
      color: var(--azul);
      font-size: clamp(2.35rem, 5vw, 4.75rem);
      line-height: 1;
      font-weight: 950;
      letter-spacing: -.055em;
      text-wrap: balance;
    }

    .fgx-blog__title span {
      display: block;
      color: var(--amarillo);
    }

    .fgx-blog__title::after {
      content: "";
      display: block;
      width: 104px;
      height: 4px;
      margin: 1.2rem auto 0;
      border-radius: 999px;
      background: linear-gradient(90deg, var(--amarillo), var(--dorado));
    }

    .fgx-blog__intro {
      max-width: 820px;
      margin: 1.35rem auto 0;
      color: #444;
      font-size: 1.08rem;
      line-height: 1.78;
    }

    .fgx-blog__intro strong {
      color: var(--azul);
      font-weight: 850;
    }

    .fgx-blog__toolbar {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
      gap: 1rem;
      margin-bottom: 1.5rem;
      padding: 1rem;
      border-radius: 28px;
      background: rgba(255,255,255,.86);
      border: 1px solid rgba(0, 40, 90, .09);
      box-shadow: 0 18px 48px rgba(0, 40, 90, .10);
    }

    .fgx-blog__field {
      position: relative;
    }

    .fgx-blog__field label {
      display: block;
      margin: 0 0 .45rem;
      color: var(--azul);
      font-size: .78rem;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .fgx-blog__field .form-select,
    .fgx-blog__field .form-control {
      min-height: 52px;
      border-radius: 18px;
      border: 1px solid rgba(0, 40, 90, .14);
      background-color: #fff;
      color: #333;
      font-weight: 700;
      box-shadow: none;
    }

    .fgx-blog__field .form-select:focus,
    .fgx-blog__field .form-control:focus {
      border-color: rgba(202, 162, 74, .75);
      box-shadow: 0 0 0 .22rem rgba(202, 162, 74, .18);
    }

    /* La columna del aside tiene que medir lo que la fila. Con flex-start se
       encogia a la altura del propio aside (583px) y `sticky` no tenia por
       donde recorrer, asi que no se pegaba. Mismo caso que en los articulos. */
    .fgx-blog__layout {
      align-items: stretch;
    }

    .fgx-blog__content {
      min-height: 520px;
    }

    .fgx-blog .articles-list {
      display: grid;
      gap: 1.25rem;
    }

    .fgx-blog .article-card {
      position: relative;
      overflow: hidden;
      margin: 0 !important;
      padding: 1rem;
      border-radius: 32px;
      background: rgba(255,255,255,.95);
      border: 1px solid rgba(0, 40, 90, .09);
      box-shadow: 0 20px 54px rgba(0, 40, 90, .10);
      transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
    }

    .fgx-blog .article-card:hover {
      transform: translateY(-4px);
      border-color: rgba(202, 162, 74, .48);
      box-shadow: 0 26px 68px rgba(0, 40, 90, .15);
    }

    .fgx-blog .article-card img {
      width: 100%;
      height: 100%;
      min-height: 220px;
      max-height: 260px;
      object-fit: cover;
      border-radius: 24px;
      box-shadow: 0 14px 34px rgba(0, 40, 90, .08);
    }

    .fgx-blog .article-description {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: .5rem 1rem .5rem 1.25rem;
    }

    .fgx-blog .article-description h2 {
      margin: 0 0 .75rem;
      color: var(--azul);
      font-size: clamp(1.25rem, 2vw, 1.75rem);
      line-height: 1.12;
      font-weight: 950;
      letter-spacing: -.035em;
      text-wrap: balance;
    }

    .fgx-blog .article-description p {
      margin: 0 0 1rem;
      color: #4a4a4a;
      line-height: 1.66;
    }

    .fgx-blog .btn-read-more,
    .fgx-blog .article-description .btn,
    .fgx-blog .page-link {
      border-radius: 999px;
      font-weight: 900;
    }

    .fgx-blog .article-description .btn {
      align-self: flex-start;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .45rem;
      min-height: 44px;
      padding: .7rem 1.05rem;
      color: #fff;
      background: linear-gradient(135deg, var(--azulc), var(--azul));
      border: 1px solid var(--azul);
      box-shadow: 0 14px 30px rgba(0, 40, 90, .16);
    }

    .fgx-blog .article-description .btn:hover {
      color: #fff;
      border-color: var(--amarillo);
      transform: translateY(-1px);
    }

    .fgx-blog .pagination {
      margin: 2rem 0 0;
      gap: .35rem;
      flex-wrap: wrap;
      /* En movil las pastillas pasan a dos filas: sin esto la segunda se
         quedaba pegada a la izquierda. */
      justify-content: center;
    }

    .fgx-blog .page-link {
      min-width: 42px;
      min-height: 42px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: var(--azul);
      border: 1px solid rgba(0, 40, 90, .12);
      background: #fff;
      box-shadow: 0 10px 22px rgba(0, 40, 90, .06);
    }

    .fgx-blog .page-item.active .page-link,
    .fgx-blog .page-link:hover {
      color: #fff;
      background: linear-gradient(135deg, var(--azulc), var(--azul));
      border-color: var(--amarillo);
    }

    /* Los controles son <button>, no enlaces: la pagina activa no viaja en la
       URL, la paginacion es solo visual. De ahi el font-family y el cursor,
       que un boton no hereda. Bootstrap junta las pastillas con margin
       negativo y redondea solo los extremos; aqui van sueltas y todas
       redondas, y hace falta la especificidad del .page-item para ganarle. */
    .fgx-blog .page-item .page-link {
      margin-left: 0;
      border-radius: 999px;
      font-family: inherit;
      font-size: .95rem;
      cursor: pointer;
    }

    .fgx-blog .page-item.disabled .page-link,
    .fgx-blog .page-item.disabled .page-link:hover {
      color: rgba(0, 40, 90, .35);
      background: #fff;
      border-color: rgba(0, 40, 90, .08);
      box-shadow: none;
      cursor: default;
    }

    /* Los puntos suspensivos entre tramos: ni boton ni pastilla. */
    .fgx-blog .page-item--hueco .page-link,
    .fgx-blog .page-item--hueco .page-link:hover {
      background: none;
      border-color: transparent;
      box-shadow: none;
      color: rgba(0, 40, 90, .45);
      cursor: default;
    }

    .fgx-blog__pagination {
      display: flex;
      justify-content: center;
      margin-top: 2.6rem;
    }

    .fgx-blog-sidebar {
      position: sticky;
      top: 110px;
    }

    .fgx-blog-sidebar__card {
      position: relative;
      overflow: hidden;
      padding: 2rem;
      border-radius: 34px;
      background:
        radial-gradient(circle at 18% 10%, rgba(255,255,255,.18) 0%, transparent 30%),
        linear-gradient(135deg, var(--azulc), var(--azul));
      box-shadow: 0 28px 78px rgba(0, 40, 90, .18);
      color: #fff;
      text-align: center;
    }

    .fgx-blog-sidebar__card::before {
      content: "";
      position: absolute;
      inset: 1rem;
      border: 1px solid rgba(255,255,255,.16);
      border-radius: 26px;
      pointer-events: none;
    }

    .fgx-blog-sidebar__card > * {
      position: relative;
      z-index: 2;
    }

    .fgx-blog-sidebar__logo {
      width: 170px;
      height: auto;
      padding: .9rem;
      border-radius: 24px;
      background: #fff;
      box-shadow: 0 18px 44px rgba(0,0,0,.18);
      margin-bottom: 1.25rem;
    }

    .fgx-blog-sidebar__card h2,
    .fgx-blog-sidebar__card h3 {
      color: #fff;
      font-size: clamp(1.45rem, 2.4vw, 2rem);
      line-height: 1.08;
      font-weight: 950;
      letter-spacing: -.04em;
    }

    .fgx-blog-sidebar__card p {
      color: rgba(255,255,255,.88);
      line-height: 1.65;
    }

    .fgx-blog-sidebar__btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      min-height: 50px;
      padding: .82rem 1.2rem;
      border-radius: 999px;
      color: var(--azul);
      background: #fff;
      border: 1px solid rgba(255,255,255,.55);
      font-size: .92rem;
      line-height: 1.2;
      font-weight: 950;
      text-decoration: none;
      box-shadow: 0 16px 38px rgba(0,0,0,.16);
    }

    .fgx-blog-sidebar__btn:hover {
      color: var(--azul);
      background: var(--dorado);
      text-decoration: none;
    }

    .fgx-blog-sidebar__meta {
      display: grid;
      gap: .65rem;
      margin-top: 1.2rem;
      padding-top: 1.2rem;
      border-top: 1px solid rgba(255,255,255,.18);
      color: rgba(255,255,255,.9);
      font-size: .92rem;
      font-weight: 750;
    }

    .fgx-blog-sidebar__meta span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .5rem;
    }

    .fgx-blog__fallback {
      margin-top: 1.25rem;
      padding: 1.25rem;
      border-radius: 26px;
      background: rgba(255,255,255,.86);
      border: 1px solid rgba(0, 40, 90, .09);
      box-shadow: 0 18px 48px rgba(0, 40, 90, .08);
      color: #555;
      line-height: 1.65;
    }

    @media (max-width: 991.98px) {
      .fgx-blog {
        padding: 4.5rem 0 4rem;
      }

      .fgx-blog__toolbar {
        grid-template-columns: 1fr;
      }

      .fgx-blog-sidebar {
        position: static;
        margin-top: 2rem;
      }
    }

    @media (max-width: 767.98px) {
      .fgx-blog {
        padding: 3.4rem 0;
      }

      .fgx-blog__title {
        font-size: clamp(2.1rem, 12vw, 3.4rem);
      }

      .fgx-blog .article-card {
        border-radius: 26px;
      }

      .fgx-blog .article-card img {
        min-height: 190px;
      }

      .fgx-blog .article-description {
        padding: 1rem .25rem .25rem;
      }
    }
   /* =========================================================
       CSS REUTILIZABLE PARA TODOS LOS ARTÍCULOS DEL BLOG
       Copiar a estilos2.css si se quiere usar globalmente.
       Clases base:
       fgx-article-*
       fgx-article-hero-*
       fgx-article-toc-*
       fgx-article-sidebar-*
       fgx-article-cta-*
  ========================================================== */
    :root {
      --azul: #00285a;
      --azulc: #0065d1;
      --black: #000000;
      --blanco: #ffffff;
      --amarillo: #ffb703;
      --dorado: #d1ba90;
    }

    .fgx-article {
      position: relative;
      /* `clip` y no `hidden`: los dos recortan los dos circulos decorativos de
         mas abajo, pero `hidden` convierte al <main> en contenedor de
         desplazamiento y eso anula el `position: sticky` del aside, que se iba
         por arriba en cuanto se bajaba. `clip` no crea ese contenedor. */
      overflow: clip;
      background:
        radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
        radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
        linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
    }

    .fgx-article::before {
      content: "";
      position: absolute;
      left: -150px;
      top: 280px;
      width: 360px;
      height: 360px;
      border-radius: 50%;
      background: rgba(209, 186, 144, .18);
      pointer-events: none;
    }

    .fgx-article::after {
      content: "";
      position: absolute;
      right: -170px;
      bottom: 400px;
      width: 420px;
      height: 420px;
      border-radius: 50%;
      background: rgba(0, 40, 90, .08);
      pointer-events: none;
    }

    .fgx-article > * {
      position: relative;
      z-index: 2;
    }

    .fgx-article-hero {
      position: relative;
      overflow: hidden;
      padding: 5.5rem 0 4.5rem;
      color: #fff;
      background:
        radial-gradient(circle at 14% 12%, rgba(255,255,255,.16) 0%, transparent 32%),
        linear-gradient(135deg, var(--azulc), var(--azul));
    }

    /* El velo oscurecia la foto de fondo. Ya no hay foto, asi que se queda
       solo con el reflejo dorado: sin el, el azul salia plano; con la capa
       oscura de antes, apagado. */
    .fgx-article-hero__overlay {
      position: absolute;
      inset: 0;
      z-index: 2;
      background:
        radial-gradient(circle at 50% 18%, rgba(202, 162, 74, .20) 0%, transparent 42%),
        radial-gradient(circle at 85% 90%, rgba(0, 101, 209, .28) 0%, transparent 46%);
    }

    .fgx-article-hero__content {
      position: relative;
      z-index: 3;
      max-width: 980px;
      margin-inline: auto;
      text-align: center;
    }

    .fgx-article-hero__eyebrow,
    .fgx-article__eyebrow,
    .fgx-article-sidebar__eyebrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      margin-bottom: 1rem;
      padding: .5rem 1rem;
      border-radius: 999px;
      color: var(--azul);
      background: rgba(255,255,255,.90);
      border: 1px solid rgba(255,255,255,.35);
      font-size: .78rem;
      font-weight: 900;
      letter-spacing: .11em;
      text-transform: uppercase;
    }

    .fgx-article__eyebrow,
    .fgx-article-sidebar__eyebrow {
      background: rgba(0, 40, 90, .07);
      border-color: rgba(0, 40, 90, .10);
    }

    .fgx-article-hero__eyebrow::before,
    .fgx-article__eyebrow::before,
    .fgx-article-sidebar__eyebrow::before {
      content: "";
      display: inline-block;
      width: .48rem;
      height: .48rem;
      border-radius: 50%;
      background: var(--amarillo);
      box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
    }

    .fgx-article-hero__title {
      max-width: 1050px;
      margin: 0 auto;
      color: #fff;
      font-size: clamp(2.45rem, 5.2vw, 5rem);
      line-height: 1;
      font-weight: 950;
      letter-spacing: -.06em;
      text-wrap: balance;
    }

    .fgx-article-hero__title::after {
      content: "";
      display: block;
      width: 104px;
      height: 4px;
      margin: 1.2rem auto 0;
      border-radius: 999px;
      background: linear-gradient(90deg, var(--amarillo), var(--dorado));
    }

    .fgx-article-hero__subtitle {
      max-width: 840px;
      margin: 1.4rem auto 0;
      color: rgba(255,255,255,.88);
      font-size: 1.12rem;
      line-height: 1.75;
    }

    .fgx-article-hero__meta {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: .7rem;
      margin-top: 1.35rem;
    }

    .fgx-article-hero__meta span {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      padding: .52rem .85rem;
      border-radius: 999px;
      color: #fff;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.16);
      font-size: .9rem;
      font-weight: 800;
    }

    .fgx-article-main {
      padding: 5rem 0;
    }

    .fgx-article-layout {
      align-items: flex-start;
    }

    .fgx-article-card {
      overflow: hidden;
      border-radius: 38px;
      background: rgba(255,255,255,.96);
      border: 1px solid rgba(0, 40, 90, .09);
      box-shadow: 0 28px 78px rgba(0, 40, 90, .12);
    }

    .fgx-article-card__image img {
      width: 100%;
      height: auto;
      object-fit: cover;
      aspect-ratio: 2 / 1;
    }

    .fgx-article-content {
      padding: clamp(1.25rem, 4vw, 3rem);
    }

    .fgx-article-content p {
      color: #414141;
      font-size: 1.06rem;
      line-height: 1.82;
      margin-bottom: 1.15rem;
    }

    .fgx-article-content a {
      color: var(--azulc);
      font-weight: 850;
      text-decoration: none;
    }

    .fgx-article-content a:hover {
      color: var(--azul);
      text-decoration: underline;
    }

    .fgx-article-content h2 {
      margin: 3rem 0 1rem;
      color: var(--azul);
      font-size: clamp(1.8rem, 3vw, 2.75rem);
      line-height: 1.08;
      font-weight: 950;
      letter-spacing: -.045em;
      text-wrap: balance;
    }

    .fgx-article-content h2::after {
      content: "";
      display: block;
      width: 82px;
      height: 4px;
      margin: .9rem 0 0;
      border-radius: 999px;
      background: linear-gradient(90deg, var(--amarillo), var(--dorado));
    }

    .fgx-article-content h3 {
      margin: 2rem 0 .8rem;
      color: var(--azul);
      font-size: clamp(1.25rem, 2vw, 1.55rem);
      line-height: 1.18;
      font-weight: 920;
      letter-spacing: -.025em;
    }

    .fgx-article-content .lead,
    .fgx-article-content .display-2 {
      padding: 1.25rem 1.4rem;
      border-radius: 28px;
      color: var(--azul);
      background:
        radial-gradient(circle at 12% 18%, rgba(255,255,255,.55) 0%, transparent 30%),
        linear-gradient(135deg, rgba(209, 186, 144, .35), rgba(255,255,255,.92));
      border: 1px solid rgba(202, 162, 74, .38);
      box-shadow: 0 18px 46px rgba(0, 40, 90, .08);
      font-size: 1.12rem !important;
      line-height: 1.62;
      font-weight: 850;
    }

    .fgx-article-content ul,
    .fgx-article-content ol {
      display: grid;
      gap: .75rem;
      margin: 1.2rem 0 1.6rem;
      padding: 0;
      list-style: none;
    }

    .fgx-article-content li {
      position: relative;
      padding: 1rem 1rem 1rem 3rem;
      border-radius: 22px;
      color: #414141;
      background: rgba(255,255,255,.82);
      border: 1px solid rgba(0, 40, 90, .08);
      box-shadow: 0 12px 30px rgba(0, 40, 90, .05);
      line-height: 1.62;
    }

    /* La vineta de las listas del articulo. Era un glifo de Font Awesome
       (U+F00C) dentro de un circulo dorado; al retirarse la fuente, el
       navegador pintaba el cuadradito de caracter desconocido en todas las
       listas del blog. Ahora el check es un SVG en linea, que no depende de
       ninguna fuente.

       La imagen va DENTRO del atajo `background`, junto al dorado del circulo:
       como declaracion suelta la borraria ese mismo atajo.

       Se retiran tambien font-family y font-weight: no solo sobraban, es que
       se heredaban a reglas que si escriben texto en este pseudo-elemento -los
       numeros de `.prep-steps`, por ejemplo- y les cambiaban la tipografia. */
    /* Solo las listas de prosa. Las que traen su propio distintivo se quedan
       fuera: .ol-modern numera, .ul-modern.ul-tick dibuja su check con una
       mascara, y .list-group agrupa los pasos de receta y los ingredientes.
       La regla generica empataba en especificidad con la de .ol-modern y, por
       ir despues, le quitaba el numero y le ponia este check.

       Las exclusiones van en :where() para que no suban la especificidad y
       esta regla siga siendo la mas debil de todas. */
    .fgx-article-content :where(ul, ol):not(:where(.ol-modern, .ul-modern, .list-group, .toc-list, .toc-hidden-list)) > li::before {
      content: "";
      position: absolute;
      left: 1rem;
      top: 1.05rem;
      width: 1.35rem;
      height: 1.35rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      color: var(--azul);
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%2300285a' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / .78rem .78rem no-repeat, var(--dorado);
      font-size: .72rem;
    }

    .fgx-article-toc {
      margin: 2rem 0;
      padding: 1.4rem;
      border-radius: 30px;
      background: rgba(255,255,255,.95);
      border: 1px solid rgba(0, 40, 90, .09);
      box-shadow: 0 18px 48px rgba(0, 40, 90, .08);
    }

    .fgx-article-toc__header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      margin-bottom: .85rem;
    }

    .fgx-article-toc__header h2,
    .fgx-article-toc__header h3,
    .fgx-article-toc__header h4 {
      margin: 0;
      color: var(--azul);
      font-size: 1.25rem;
      font-weight: 950;
      letter-spacing: -.03em;
    }

    .fgx-article-toc__list {
      display: grid;
      gap: .5rem;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .fgx-article-toc__list li {
      padding: 0;
      border: 0;
      box-shadow: none;
      background: transparent;
    }

    .fgx-article-toc__list li::before {
      display: none;
    }

    .fgx-article-toc__list a {
      display: flex;
      align-items: center;
      gap: .55rem;
      padding: .75rem .85rem;
      border-radius: 18px;
      color: var(--azul);
      background: rgba(0, 40, 90, .05);
      text-decoration: none;
      font-weight: 850;
      line-height: 1.35;
    }

    .fgx-article-toc__list a::before {
      color: var(--amarillo);
    }

    .fgx-article-toc__list a:hover {
      background: linear-gradient(135deg, var(--azulc), var(--azul));
      color: #fff;
      text-decoration: none;
    }

    .fgx-article-cta {
      position: relative;
      overflow: hidden;
      margin: 2.5rem 0;
      padding: clamp(1.4rem, 4vw, 2.2rem);
      border-radius: 34px;
      background:
        radial-gradient(circle at 16% 18%, rgba(255,255,255,.18) 0%, transparent 28%),
        linear-gradient(135deg, var(--azulc), var(--azul));
      color: #fff;
      box-shadow: 0 28px 78px rgba(0, 40, 90, .18);
      text-align: center;
    }

    .fgx-article-cta__logo {
      width: 170px;
      height: auto;
      padding: .8rem;
      margin-bottom: 1rem;
      border-radius: 22px;
      background: #fff;
      box-shadow: 0 18px 44px rgba(0,0,0,.18);
    }

    .fgx-article-cta h2,
    .fgx-article-cta h3 {
      color: #fff;
      font-size: clamp(1.65rem, 3vw, 2.35rem);
      line-height: 1.1;
      font-weight: 950;
      letter-spacing: -.04em;
    }

    .fgx-article-cta p {
      color: rgba(255,255,255,.88);
      max-width: 780px;
      margin-inline: auto;
    }

    .fgx-article-cta__actions {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: .8rem;
      margin-top: 1.2rem;
    }

    .fgx-article-cta__btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      min-height: 50px;
      padding: .82rem 1.2rem;
      border-radius: 999px;
      color: var(--azul);
      background: #fff;
      border: 1px solid rgba(255,255,255,.55);
      font-size: .92rem;
      line-height: 1.2;
      font-weight: 950;
      text-decoration: none;
      box-shadow: 0 16px 38px rgba(0,0,0,.16);
    }

    .fgx-article-cta__btn:hover {
      color: var(--azul);
      background: var(--dorado);
      text-decoration: none;
    }

    .fgx-article-sidebar {
      position: sticky;
      top: 112px;
      display: grid;
      gap: 1.2rem;
    }

    .fgx-article-sidebar__card {
      padding: 1.5rem;
      border-radius: 32px;
      background: rgba(255,255,255,.95);
      border: 1px solid rgba(0, 40, 90, .09);
      box-shadow: 0 22px 58px rgba(0, 40, 90, .10);
    }

    .fgx-article-sidebar__card--blue {
      color: #fff;
      background:
        radial-gradient(circle at 16% 18%, rgba(255,255,255,.16) 0%, transparent 28%),
        linear-gradient(135deg, var(--azulc), var(--azul));
    }

    .fgx-article-sidebar__logo {
      width: 155px;
      height: auto;
      padding: .75rem;
      border-radius: 22px;
      background: #fff;
      margin-bottom: 1rem;
      box-shadow: 0 16px 38px rgba(0,0,0,.15);
    }

    .fgx-article-sidebar h2,
    .fgx-article-sidebar h3 {
      color: var(--azul);
      font-size: 1.35rem;
      line-height: 1.15;
      font-weight: 950;
      letter-spacing: -.035em;
    }

    .fgx-article-sidebar__card--blue h2,
    .fgx-article-sidebar__card--blue h3 {
      color: #fff;
    }

    .fgx-article-sidebar p {
      color: #555;
      line-height: 1.65;
    }

    .fgx-article-sidebar__card--blue p {
      color: rgba(255,255,255,.88);
    }

    .fgx-article-sidebar__btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      width: 100%;
      min-height: 48px;
      padding: .78rem 1rem;
      border-radius: 999px;
      color: var(--azul);
      background: #fff;
      font-size: .9rem;
      line-height: 1.2;
      font-weight: 950;
      text-decoration: none;
      box-shadow: 0 14px 34px rgba(0,0,0,.14);
    }

    .fgx-article-sidebar__btn:hover {
      color: var(--azul);
      background: var(--dorado);
      text-decoration: none;
    }

    .fgx-article-breadcrumb {
      padding: 1rem 0;
      background: #fff;
      border-bottom: 1px solid rgba(0, 40, 90, .08);
    }

    .fgx-article-breadcrumb ol {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: .45rem;
      margin: 0;
      padding: 0;
      list-style: none;
      font-size: .9rem;
      font-weight: 800;
    }

    .fgx-article-breadcrumb li {
      color: #666;
    }

    .fgx-article-breadcrumb a {
      color: var(--azul);
      text-decoration: none;
    }

    .fgx-article-breadcrumb a:hover {
      color: var(--azulc);
      text-decoration: underline;
    }

    .fgx-article-breadcrumb li + li::before {
      content: "/";
      margin-right: .45rem;
      color: var(--amarillo);
      font-weight: 950;
    }

    @media (max-width: 991.98px) {
      .fgx-article-hero {
        padding: 8rem 0 3.8rem;
      }

      .fgx-article-main {
        padding: 3.5rem 0;
      }

      .fgx-article-sidebar {
        position: static;
        margin-top: 2rem;
      }
    }

    @media (max-width: 767.98px) {
      .fgx-article-hero__title {
        font-size: clamp(2.1rem, 12vw, 3.4rem);
      }

      .fgx-article-hero__subtitle {
        font-size: 1rem;
      }

      .fgx-article-card {
        border-radius: 28px;
      }

      .fgx-article-content {
        padding: 1.2rem;
      }

      .fgx-article-content p {
        font-size: 1rem;
      }
    }
  /* =========================================================
   BLOG · ENTRADAS RECIENTES
   Usa el HTML existente:
   .fgx-article-sidebar__card
   .fgx-article-sidebar__title
   #recentArticles
   ========================================================= */

.fgx-article-sidebar__card:has(#recentArticles) {
  position: relative;
  overflow: hidden;
  padding: 2rem;
  border: 1px solid rgba(0, 40, 90, 0.14);
  border-radius: 28px;
  background:
    radial-gradient(circle at top left, rgba(202, 162, 74, 0.12), transparent 34%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 253, 0.96));
  box-shadow: 0 22px 55px rgba(0, 40, 90, 0.10);
}

.fgx-article-sidebar__card:has(#recentArticles)::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: linear-gradient(90deg, var(--azul), var(--amarillo), var(--azulc));
}

.fgx-article-sidebar__card:has(#recentArticles) .fgx-article-sidebar__title {
  position: relative;
  margin: 0 0 1.5rem;
  color: var(--azul);
  font-weight: 800;
  line-height: 1.08;
  text-align: center;
}

.fgx-article-sidebar__card:has(#recentArticles) .fgx-article-sidebar__title::before,
.fgx-article-sidebar__card:has(#recentArticles) .fgx-article-sidebar__title::after {
  content: "";
  display: inline-block;
  width: 38px;
  height: 2px;
  margin: 0 12px 8px;
  background: var(--amarillo);
  opacity: 0.9;
}

#recentArticles {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

#recentArticles li {
  margin: 0;
  padding: 0;
}

#recentArticles a {
  position: relative;
  display: block;
  padding: 1.15rem 1.15rem 1.15rem 3.25rem;
  border: 1px solid rgba(0, 40, 90, 0.12);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.84);
  color: var(--azul);
  font-weight: 700;
  line-height: 1.34;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(0, 40, 90, 0.06);
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    border-color 0.22s ease,
    background 0.22s ease,
    color 0.22s ease;
}

#recentArticles a::before {
  content: "";
  position: absolute;
  left: 1.15rem;
  top: 50%;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 8px rgba(202, 162, 74, 0.16);
  transform: translateY(-50%);
}

#recentArticles a:hover {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, 0.48);
  background: #ffffff;
  color: var(--azulc);
  box-shadow: 0 18px 38px rgba(0, 40, 90, 0.12);
}

#recentArticles a:focus-visible {
  outline: 3px solid rgba(202, 162, 74, 0.45);
  outline-offset: 3px;
}
@media (max-width: 767.98px) {
  .fgx-article-sidebar__card:has(#recentArticles) {
    padding: 1.35rem;
    border-radius: 22px;
  }

  .fgx-article-sidebar__card:has(#recentArticles) .fgx-article-sidebar__title {
    font-size: 1.45rem;
  }

  .fgx-article-sidebar__card:has(#recentArticles) .fgx-article-sidebar__title::before,
  .fgx-article-sidebar__card:has(#recentArticles) .fgx-article-sidebar__title::after {
    width: 24px;
    margin-inline: 8px;
  }

  #recentArticles a {
    padding: 1rem 1rem 1rem 2.85rem;
    border-radius: 18px;
    font-size: 0.96rem;
  }
}
/* ===== TOC (Tabla de contenidos) ===== */
:root {
  --toc-accent: #ffb703;
  --toc-accent-2: #ffd166;
  --toc-bg: #f6f7f9;
  --toc-ink: #111827;
  --toc-muted: #6b7280;
  --toc-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
}

[data-bs-theme="dark"] {
  --toc-bg: #0f1115;
  --toc-ink: #e5e7eb;
  --toc-muted: #9ca3af;
  --toc-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
}
#tocContainer {
  padding: 40px 60px;
  border-radius: 20px;
  max-width: 100%;
  margin: auto;
}
.toc {
  padding: clamp(16px, 2.4vw, 26px);
  margin: 40px 0;
}

/* Cabecera con línea a ambos lados */
.toc-header {
  position: relative;
  margin-bottom: 0.75rem;
}
.toc-header h4 {
  color: var(--toc-ink);
  font-weight: 800;
  letter-spacing: 0.2px;
  position: relative;
  text-align: center;
  width: 100%;
}
.toc-header h4::before,
.toc-header h4::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 28%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--toc-accent), var(--toc-accent-2));
  opacity: 0.8;
}
.toc-header h4::before {
  left: 0;
}
.toc-header h4::after {
  right: 0;
}

/* Botón toggle (móvil) */
.toc-btn {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: 0;
  color: var(--toc-muted);
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.toc[aria-collapsed="true"] .toc-btn i {
  transform: rotate(-90deg);
}
.toc-btn i {
  transition: transform 0.2s ease;
}

/* Enlaces */
.toc-list a {
  color: #2563eb; /* Bootstrap link-ish */
  text-decoration: none;
  font-weight: 600;
  transition:
    color 0.15s ease,
    transform 0.15s ease,
    text-shadow 0.15s ease;
}
.toc-list a:hover {
  color: #1d4ed8;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.05);
  transform: translateX(2px);
}

/* Nivel 2+ (si generas sub-listas) */
.toc-list ul {
  list-style: none;
  padding-left: 16px;
  margin-top: 8px;
}
.toc-list ul li {
  margin: 8px 0;
}
.toc-list ul li::before {
  width: 8px;
  height: 8px;
  top: 9px;
  background: radial-gradient(circle at 30% 30%, #fff, var(--toc-accent));
}

/* Activo durante el scroll */
.toc-list a.is-active {
  color: var(--toc-ink);
  background: linear-gradient(
    90deg,
    rgba(255, 209, 102, 0.3),
    rgba(255, 183, 3, 0.15)
  );
  padding: 2px 6px;
  border-radius: 8px;
}

/* Sticky opcional para desktop (añade .toc-sticky al contenedor si lo quieres) */
.toc-sticky {
  position: sticky;
  top: 92px;
}

/* Responsive: colapsar por defecto en móvil */
@media (max-width: 575.98px) {
  #tocContainer {
    aria-collapsed: true;
  }
  .toc-header h4::before,
  .toc-header h4::after {
    width: 18%;
  }
}
/* =========================================================
   FIX TOC · QUITAR TICKS / ICONOS HEREDADOS
   ========================================================= */

#tocContainer ul,
#tocContainer li,
#tocContainer .toc-list,
#tocContainer .toc-hidden-list {
  list-style: none !important;
}

#tocContainer li {
  position: static !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

#tocContainer li::before,
#tocContainer li::after,
#tocContainer .toc-list li::before,
#tocContainer .toc-list li::after,
#tocContainer .toc-hidden-list li::before,
#tocContainer .toc-hidden-list li::after {
  content: none !important;
  display: none !important;
}
/* =========================================================
   BLOG · SIDEBAR STICKY
   ========================================================= */

.fgx-article-main,
.fgx-article-layout,
.fgx-article-card,
.fgx-article-content {
  overflow: visible;
}

/* La columna del sidebar tiene que medir lo que la fila: con flex-start se
   encogia a la altura del propio aside y entonces `sticky` no tenia por donde
   recorrer, asi que no se pegaba a nada. */
.fgx-article-layout {
  align-items: stretch;
}

/* El aside mide del orden de 1.200 px y la ventana ronda los 700-800: pegado
   solo con `top`, la mitad de abajo no habia forma de verla nunca.

   Se probo a anclarlo por `bottom`, que seria lo natural, pero en este layout
   no engancha: el navegador lo deja irse por arriba igual. Lo que si funciona,
   y ademas es mas solido, es limitarle la altura a lo que queda de pantalla
   bajo la barra y darle desplazamiento propio. Asi el aside cabe entero en
   pantalla, se queda fijo mientras se lee el articulo y, si algun dia crece
   mas de la cuenta, se recorre por dentro en vez de cortarse.

   overscroll-behavior evita que al llegar a su final el gesto arrastre la
   pagina de golpe. */
.fgx-article-sidebar {
  position: sticky;
  /* js/entradas-recientes.js recalcula este `top`: si el aside no cabe en la
     ventana le pone un valor negativo, y entonces se detiene cuando su pie
     llega al borde inferior en vez de pegarse arriba y dejar la mitad fuera.
     El indice va al final del aside justamente por eso: es el tramo que se
     queda a la vista. Este 110px es el valor de partida y el respaldo si no
     llega a ejecutarse el JS. */
  top: 110px;
  bottom: auto;
  z-index: 2;
}

@media (max-width: 991.98px) {
  .fgx-article-sidebar {
    position: static;
    top: auto;
  }
}

  /* =========================================================
   FLOR DE GALICIA · PROMO CENA TAPAS 25€
   ========================================================= */

.fgx-tapas {
  padding: clamp(3rem, 7vw, 6rem) 0;
  background:
    radial-gradient(circle at top left, rgba(202, 162, 74, 0.14), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%);
}

.fgx-tapas__box {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  overflow: hidden;
  border: 1px solid rgba(0, 40, 90, 0.12);
  border-radius: 32px;
  background: #ffffff;
  box-shadow: 0 28px 70px rgba(0, 40, 90, 0.12);
}

.fgx-tapas__image {
  height: 100%;
  min-height: 360px;
}

.fgx-tapas__image picture,
.fgx-tapas__image img {
  display: block;
  width: 100%;
  height: 100%;
}

.fgx-tapas__image img {
  object-fit: cover;
}

.fgx-tapas__content {
  padding: clamp(2rem, 5vw, 4rem);
}

.fgx-tapas__label {
  display: inline-flex;
  align-items: center;
  margin-bottom: 1rem;
  padding: 0.5rem 0.9rem;
  border: 1px solid rgba(202, 162, 74, 0.35);
  border-radius: 999px;
  background: rgba(202, 162, 74, 0.12);
  color: var(--azul);
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.fgx-tapas__title {
  margin: 0;
  color: var(--azul);
  font-size: clamp(2rem, 4vw, 3.35rem);
  font-weight: 850;
  line-height: 1.04;
  letter-spacing: -0.04em;
}

.fgx-tapas__text {
  max-width: 620px;
  margin: 1.25rem 0 0;
  color: rgba(0, 0, 0, 0.74);
  font-size: clamp(1rem, 1.5vw, 1.16rem);
  line-height: 1.65;
}

.fgx-tapas__text strong {
  color: var(--azul);
}

.fgx-tapas__features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.5rem;
}

.fgx-tapas__features span {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  background: rgba(0, 40, 90, 0.06);
  color: var(--azul);
  font-size: 0.92rem;
  font-weight: 750;
}

.fgx-tapas__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}

.fgx-tapas__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.85rem 1.25rem;
  border-radius: 999px;
  font-weight: 850;
  text-decoration: none;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.fgx-tapas__btn--primary {
  background: var(--azul);
  color: #ffffff;
  box-shadow: 0 16px 34px rgba(0, 40, 90, 0.22);
}

.fgx-tapas__btn--primary:hover {
  background: var(--amarillo);
  color: var(--azul);
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(0, 40, 90, 0.18);
}

.fgx-tapas__btn--secondary {
  border: 1px solid rgba(0, 40, 90, 0.18);
  background: #ffffff;
  color: var(--azul);
}

.fgx-tapas__btn--secondary:hover {
  border-color: rgba(202, 162, 74, 0.6);
  background: rgba(202, 162, 74, 0.12);
  color: var(--azul);
  transform: translateY(-2px);
}

@media (max-width: 991.98px) {
  .fgx-tapas__box {
    grid-template-columns: 1fr;
  }

  .fgx-tapas__image {
    min-height: 280px;
  }

  .fgx-tapas__content {
    padding-top: 0;
  }
}

@media (max-width: 575.98px) {
  .fgx-tapas {
    padding: 2.5rem 0;
  }

  .fgx-tapas__box {
    border-radius: 24px;
  }

  .fgx-tapas__image {
    min-height: 230px;
  }

  .fgx-tapas__content {
    padding: 1.5rem;
  }

  .fgx-tapas__features {
    gap: 0.5rem;
  }

  .fgx-tapas__features span {
    font-size: 0.86rem;
  }

  .fgx-tapas__cta {
    display: grid;
  }

  .fgx-tapas__btn {
    width: 100%;
  }
}

/* =========================================================
   FLOR DE GALICIA · GALERÍA MODERNA DE PLATOS
   Clases aisladas fgm-gallery-*
   ========================================================= */

.fgm-gallery {
  position: relative;
  overflow: hidden;
  padding: clamp(4rem, 8vw, 7rem) 0;
  background:
    radial-gradient(circle at 8% 10%, rgba(202, 162, 74, 0.16), transparent 28%),
    radial-gradient(circle at 92% 18%, rgba(0, 101, 209, 0.10), transparent 32%),
    linear-gradient(180deg, #ffffff 0%, #f4f8fd 58%, #ffffff 100%);
}

.fgm-gallery::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(0, 40, 90, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 40, 90, 0.035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, transparent, #000 12%, #000 82%, transparent);
}

.fgm-gallery .container {
  position: relative;
  z-index: 1;
}

.fgm-gallery__head {
  max-width: 980px;
  margin: 0 auto clamp(2rem, 5vw, 4rem);
  text-align: center;
}

.fgm-gallery__kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 1rem;
  padding: 0.55rem 0.95rem;
  border: 1px solid rgba(202, 162, 74, 0.38);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--azul, #00285a);
  font-size: 0.82rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 14px 34px rgba(0, 40, 90, 0.08);
}

.fgm-gallery__kicker i {
  color: var(--amarillo, #caa24a);
}

.fgm-gallery__title {
  margin: 0;
  color: var(--azul, #00285a);
  font-size: clamp(2.25rem, 5.6vw, 5.1rem);
  font-weight: 900;
  line-height: 0.98;
  letter-spacing: -0.06em;
}

.fgm-gallery__title span {
  display: block;
  margin-top: 0.35rem;
  color: rgba(0, 40, 90, 0.58);
  font-size: clamp(1rem, 2vw, 1.35rem);
  font-weight: 750;
  letter-spacing: -0.02em;
}

.fgm-gallery__intro {
  max-width: 840px;
  margin: 1.25rem auto 0;
  color: rgba(0, 0, 0, 0.72);
  font-size: clamp(1rem, 1.45vw, 1.18rem);
  line-height: 1.7;
}

.fgm-gallery__intro strong {
  color: var(--azul, #00285a);
}

.fgm-gallery__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
  margin-top: 1.75rem;
}

.fgm-gallery__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 50px;
  padding: 0.82rem 1.18rem;
  border-radius: 999px;
  font-weight: 850;
  text-decoration: none;
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    background 0.22s ease,
    color 0.22s ease,
    border-color 0.22s ease;
}

.fgm-gallery__btn--primary {
  background: var(--azul, #00285a);
  color: #fff;
  box-shadow: 0 18px 36px rgba(0, 40, 90, 0.22);
}

.fgm-gallery__btn--primary:hover {
  background: var(--amarillo, #caa24a);
  color: var(--azul, #00285a);
  transform: translateY(-3px);
}

.fgm-gallery__btn--outline {
  border: 1px solid rgba(0, 40, 90, 0.18);
  background: rgba(255, 255, 255, 0.78);
  color: var(--azul, #00285a);
}

.fgm-gallery__btn--outline:hover {
  border-color: rgba(202, 162, 74, 0.65);
  background: rgba(202, 162, 74, 0.12);
  color: var(--azul, #00285a);
  transform: translateY(-3px);
}

.fgm-gallery__mosaic {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: 104px;
  gap: clamp(0.75rem, 1.7vw, 1.25rem);
}

.fgm-gallery__tile {
  position: relative;
  grid-column: span 3;
  grid-row: span 3;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 54px rgba(0, 40, 90, 0.12);
  isolation: isolate;
}

.fgm-gallery__tile--hero {
  grid-column: span 6;
  grid-row: span 5;
}

.fgm-gallery__tile--wide {
  grid-column: span 6;
  grid-row: span 3;
}

.fgm-gallery__tile--tall {
  grid-column: span 3;
  grid-row: span 5;
}

.fgm-gallery__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  color: #fff;
  text-decoration: none;
}

.fgm-gallery__link img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition:
    transform 0.55s ease,
    filter 0.55s ease;
}

.fgm-gallery__link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, transparent 18%, rgba(0, 0, 0, 0.12) 48%, rgba(0, 25, 58, 0.80) 100%);
  opacity: 0.88;
  transition: opacity 0.35s ease;
}

/* El badge de la lupa era un glifo de Font Awesome; sin la fuente salia el
   cuadradito de caracter desconocido al pasar el raton por una foto. Ahora es
   un SVG en linea, con el mismo blanco que tenia el icono. */
.fgm-gallery__link::after {
  content: "";
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  /* La imagen va DENTRO del atajo: como declaracion suelta la borraba este
     mismo `background`, que viene despues y reinicia background-image. */
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 20 20M10.5 7.5v6M7.5 10.5h6'/%3E%3C/g%3E%3C/svg%3E") center / 20px 20px no-repeat, rgba(255, 255, 255, 0.18);
  color: #fff;
  backdrop-filter: blur(10px);
  opacity: 0;
  transform: translateY(-8px) scale(0.94);
  transition:
    opacity 0.28s ease,
    transform 0.28s ease,
    background 0.28s ease;
}

.fgm-gallery__caption {
  position: absolute;
  left: 1.15rem;
  right: 1.15rem;
  bottom: 1.15rem;
  z-index: 2;
  display: grid;
  gap: 0.2rem;
  transform: translateY(8px);
  transition: transform 0.35s ease;
}

.fgm-gallery__caption strong {
  color: #fff;
  font-size: clamp(1.02rem, 1.35vw, 1.35rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.025em;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.38);
}

.fgm-gallery__caption small {
  color: rgba(255, 255, 255, 0.84);
  font-size: 0.86rem;
  font-weight: 700;
}

.fgm-gallery__tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: calc(100% - 5rem);
  padding: 0.42rem 0.68rem;
  border-radius: 999px;
  background: rgba(202, 162, 74, 0.92);
  color: var(--azul, #00285a);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16);
}

.fgm-gallery__tile:hover .fgm-gallery__link img {
  transform: scale(1.09);
  filter: saturate(1.08) contrast(1.03);
}

.fgm-gallery__tile:hover .fgm-gallery__link::before {
  opacity: 1;
}

.fgm-gallery__tile:hover .fgm-gallery__link::after {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.fgm-gallery__tile:hover .fgm-gallery__caption {
  transform: translateY(0);
}

.fgm-gallery__foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.5rem;
  margin-top: clamp(2rem, 4vw, 3rem);
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid rgba(0, 40, 90, 0.12);
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(0, 40, 90, 0.96), rgba(0, 101, 209, 0.86)),
    var(--azul, #00285a);
  color: #fff;
  box-shadow: 0 24px 56px rgba(0, 40, 90, 0.18);
  max-width: 85%;
  margin: 3rem auto 0;
}

.fgm-gallery__foot p {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(1rem, 1.4vw, 1.5rem);
  line-height: 1.55;
}

.fgm-gallery__foot strong {
  color: #fff;
}

.fgm-gallery__foot-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: flex-end;
}

.fgm-gallery__foot-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 48px;
  padding: 0.8rem 1.05rem;
  border-radius: 999px;
  font-weight: 850;
  text-decoration: none;
  transition:
    transform 0.22s ease,
    background 0.22s ease,
    color 0.22s ease,
    border-color 0.22s ease;
}

.fgm-gallery__foot-btn--primary {
  background: var(--amarillo, #caa24a);
  color: var(--azul, #00285a);
}

.fgm-gallery__foot-btn--primary:hover {
  background: #fff;
  color: var(--azul, #00285a);
  transform: translateY(-2px);
}

.fgm-gallery__foot-btn--outline {
  border: 1px solid rgba(255, 255, 255, 0.42);
  color: #fff;
}

.fgm-gallery__foot-btn--outline:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  transform: translateY(-2px);
}

@media (max-width: 1199.98px) {
  .fgm-gallery__mosaic {
    grid-auto-rows: 92px;
  }

  .fgm-gallery__tile {
    grid-column: span 4;
    grid-row: span 3;
  }

  .fgm-gallery__tile--hero,
  .fgm-gallery__tile--wide {
    grid-column: span 8;
  }

  .fgm-gallery__tile--tall {
    grid-column: span 4;
    grid-row: span 4;
  }
}

@media (max-width: 991.98px) {
  .fgm-gallery__mosaic {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-rows: 94px;
  }

  .fgm-gallery__tile,
  .fgm-gallery__tile--hero,
  .fgm-gallery__tile--wide,
  .fgm-gallery__tile--tall {
    grid-column: span 3;
    grid-row: span 3;
  }

  .fgm-gallery__foot {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .fgm-gallery__foot-actions {
    justify-content: center;
  }
}

@media (max-width: 575.98px) {
  .fgm-gallery {
    padding: 3rem 0;
  }

  .fgm-gallery__actions,
  .fgm-gallery__foot-actions {
    display: grid;
  }

  .fgm-gallery__btn,
  .fgm-gallery__foot-btn {
    width: 100%;
  }

  .fgm-gallery__mosaic {
    display: grid;
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 1rem;
  }

  .fgm-gallery__tile,
  .fgm-gallery__tile--hero,
  .fgm-gallery__tile--wide,
  .fgm-gallery__tile--tall {
    grid-column: auto;
    grid-row: auto;
    aspect-ratio: 4 / 3;
    border-radius: 22px;
  }

  .fgm-gallery__caption {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
  }

  .fgm-gallery__link::after {
    display: none;
  }
}
/* =========================================================
   FIX MÓVIL · HERO MENÚS V2
   Foto completa arriba + texto debajo
   ========================================================= */

@media (max-width: 575.98px) {

  .fgm-menu-hero {
    display: block;
    min-height: 0 !important;
    height: auto !important;
    padding: 0;
    overflow: visible;
    background: #ffffff;
  }

  .fgm-menu-hero__media {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    z-index: 1;
    overflow: hidden;
    background: #f5f5f5;
  }

  .fgm-menu-hero__media picture {
    display: block;
    width: 100%;
    height: auto !important;
  }

  .fgm-menu-hero__media img {
    display: block;
    width: 100%;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .fgm-menu-hero__shade,
  .fgm-menu-hero__wave {
    display: none !important;
  }

  .fgm-menu-hero__inner {
    position: relative !important;
    z-index: 2;
    padding: 0 !important;
    margin: 0;
  }

  .fgm-menu-hero__card {
    position: relative !important;
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 1.6rem 1.25rem 2.25rem;
    border: 0;
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
    backdrop-filter: none;
    text-align: left;
  }

  .fgm-menu-hero__eyebrow {
    margin-bottom: 0.9rem;
    padding: 0.48rem 0.75rem;
    border-radius: 999px;
    font-size: 0.68rem;
    line-height: 1.35;
    letter-spacing: 0.05em;
  }

  .fgm-menu-hero__title {
    max-width: 100%;
    margin: 0;
    color: var(--azul, #00285a);
    font-size: clamp(2rem, 11vw, 2.85rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.055em;
    text-wrap: balance;
  }

  .fgm-menu-hero__title span {
    display: block;
    margin-top: 0.25rem;
    font-size: clamp(1.35rem, 7vw, 1.85rem) !important;
    line-height: 1.08;
  }

  .fgm-menu-hero__subtitle {
    margin-top: 1rem;
    color: rgba(0, 0, 0, 0.76);
    font-size: 1rem;
    line-height: 1.6;
  }

  .fgm-menu-hero__actions {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.5rem;
  }

  .fgm-menu-hero__btn {
    width: 100%;
    min-height: 56px;
    border-radius: 16px;
  }

  .fgm-menu-hero__trust {
    display: grid;
    gap: 0.55rem;
    margin-top: 1.25rem;
  }

  .fgm-menu-hero__trust span {
    width: 100%;
    justify-content: flex-start;
  }
}

  /* =========================================================
   FLOR DE GALICIA · HERO LANDING MENÚS V2
   Clases aisladas fgm-menu-hero-*
   ========================================================= */

.fgm-menu-hero {
  position: relative;
  min-height: clamp(720px, 88vh, 920px);
  overflow: hidden;
  display: flex;
  align-items: center;
  background: #f6f8fb;
}

.fgm-menu-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.fgm-menu-hero__media picture,
.fgm-menu-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
}

.fgm-menu-hero__media img {
  object-fit: cover;
  object-position: center center;
}

.fgm-menu-hero__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      rgba(255, 255, 255, 0.92) 0%,
      rgba(255, 255, 255, 0.78) 34%,
      rgba(255, 255, 255, 0.34) 60%,
      rgba(255, 255, 255, 0.10) 100%
    ),
    linear-gradient(180deg,
      rgba(0, 40, 90, 0.05) 0%,
      rgba(0, 40, 90, 0.10) 100%
    );
}

.fgm-menu-hero__inner {
  position: relative;
  z-index: 2;
  padding-top: 7rem;
  padding-bottom: 8rem;
}

.fgm-menu-hero__card {
  max-width: 760px;
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 28px 80px rgba(0, 40, 90, 0.16);
  backdrop-filter: blur(14px);
}

.fgm-menu-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  margin-bottom: 1.1rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid rgba(202, 162, 74, 0.45);
  border-radius: 999px;
  background: rgba(202, 162, 74, 0.13);
  color: var(--azul, #00285a);
  font-size: 0.82rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.fgm-menu-hero__title {
  margin: 0;
  color: var(--azul, #00285a);
  font-size: clamp(2.8rem, 6vw, 5.6rem);
  font-weight: 950;
  line-height: 0.94;
  letter-spacing: -0.07em;
}

.fgm-menu-hero__title span {
  display: block;
  margin-top: 0.25rem;
  color: var(--amarillo, #caa24a);
  font-size: clamp(1.75rem, 3.8vw, 3.25rem);
  letter-spacing: -0.045em;
}

.fgm-menu-hero__subtitle {
  max-width: 660px;
  margin: 1.35rem 0 0;
  color: rgba(0, 0, 0, 0.76);
  font-size: clamp(1.05rem, 1.45vw, 1.22rem);
  line-height: 1.65;
}

.fgm-menu-hero__subtitle strong {
  color: var(--azul, #00285a);
}

.fgm-menu-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}

.fgm-menu-hero__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 58px;
  padding: 0.78rem 1rem;
  border-radius: 18px;
  text-decoration: none;
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    background 0.22s ease,
    color 0.22s ease,
    border-color 0.22s ease;
}

.fgm-menu-hero__btn i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
}

.fgm-menu-hero__btn strong,
.fgm-menu-hero__btn small {
  display: block;
  line-height: 1.12;
}

.fgm-menu-hero__btn strong {
  font-size: 0.98rem;
  font-weight: 900;
}

.fgm-menu-hero__btn small {
  margin-top: 0.22rem;
  font-size: 0.78rem;
  font-weight: 700;
  opacity: 0.82;
}

.fgm-menu-hero__btn--primary {
  background: var(--azul, #00285a);
  color: #ffffff;
  box-shadow: 0 18px 36px rgba(0, 40, 90, 0.24);
}

.fgm-menu-hero__btn--primary i {
  background: rgba(255, 255, 255, 0.14);
  color: var(--amarillo, #caa24a);
}

.fgm-menu-hero__btn--primary:hover {
  background: var(--amarillo, #caa24a);
  color: var(--azul, #00285a);
  transform: translateY(-3px);
}

.fgm-menu-hero__btn--primary:hover i {
  background: rgba(0, 40, 90, 0.10);
  color: var(--azul, #00285a);
}

.fgm-menu-hero__btn--secondary {
  background: #ffffff;
  color: var(--azul, #00285a);
  border: 1px solid rgba(0, 40, 90, 0.14);
  box-shadow: 0 14px 30px rgba(0, 40, 90, 0.10);
}

.fgm-menu-hero__btn--secondary i {
  background: rgba(202, 162, 74, 0.16);
  color: var(--azul, #00285a);
}

.fgm-menu-hero__btn--secondary:hover {
  border-color: rgba(202, 162, 74, 0.55);
  background: rgba(202, 162, 74, 0.12);
  color: var(--azul, #00285a);
  transform: translateY(-3px);
}

.fgm-menu-hero__btn--ghost {
  background: rgba(255, 255, 255, 0.62);
  color: var(--azul, #00285a);
  border: 1px solid rgba(0, 40, 90, 0.12);
}

.fgm-menu-hero__btn--ghost i {
  background: rgba(0, 101, 209, 0.10);
  color: var(--azulc, #0065d1);
}

.fgm-menu-hero__btn--ghost:hover {
  background: #ffffff;
  color: var(--azul, #00285a);
  transform: translateY(-3px);
}

.fgm-menu-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.6rem;
}

.fgm-menu-hero__trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.52rem 0.8rem;
  border-radius: 999px;
  background: rgba(0, 40, 90, 0.06);
  color: var(--azul, #00285a);
  font-size: 0.86rem;
  font-weight: 800;
}

.fgm-menu-hero__trust i {
  color: var(--amarillo, #caa24a);
}

.fgm-menu-hero__wave {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  z-index: 3;
  height: clamp(80px, 12vw, 150px);
  pointer-events: none;
}

.fgm-menu-hero__wave svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Tablet */
@media (max-width: 991.98px) {
  .fgm-menu-hero {
    min-height: auto;
  }

  .fgm-menu-hero__shade {
    background:
      linear-gradient(180deg,
        rgba(255, 255, 255, 0.18) 0%,
        rgba(255, 255, 255, 0.82) 58%,
        rgba(255, 255, 255, 0.96) 100%
      );
  }

  .fgm-menu-hero__inner {
    padding-top: 8rem;
    padding-bottom: 7rem;
  }

  .fgm-menu-hero__card {
    max-width: 720px;
    margin: 0 auto;
  }
}

/* Móvil: foto completa arriba + texto debajo */
@media (max-width: 575.98px) {
  .fgm-menu-hero {
    display: block;
    min-height: 0;
    padding: 0;
    background: #ffffff;
  }

  .fgm-menu-hero__media {
    position: relative;
    inset: auto;
    height: auto;
    z-index: 0;
    background: #f3f5f8;
  }

  .fgm-menu-hero__media picture,
  .fgm-menu-hero__media img {
    width: 100%;
    height: auto;
  }

  .fgm-menu-hero__media img {
    object-fit: contain;
    object-position: center;
  }

  .fgm-menu-hero__shade,
  .fgm-menu-hero__wave {
    display: none;
  }

  .fgm-menu-hero__inner {
    padding: 1.25rem 0 2.5rem;
  }

  .fgm-menu-hero__card {
    margin: 0;
    padding: 1.45rem;
    border: 0;
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
    backdrop-filter: none;
    text-align: left;
  }

  .fgm-menu-hero__eyebrow {
    font-size: 0.72rem;
    line-height: 1.35;
  }

  .fgm-menu-hero__title {
    font-size: clamp(2.15rem, 13vw, 3.2rem);
    line-height: 0.98;
  }

  .fgm-menu-hero__title span {
    font-size: clamp(1.35rem, 8vw, 2rem);
  }

  .fgm-menu-hero__subtitle {
    font-size: 1rem;
    line-height: 1.6;
  }

  .fgm-menu-hero__actions {
    display: grid;
    gap: 0.75rem;
  }

  .fgm-menu-hero__btn {
    width: 100%;
    min-height: 56px;
  }

  .fgm-menu-hero__trust {
    display: grid;
    gap: 0.55rem;
  }

  .fgm-menu-hero__trust span {
    width: 100%;
    justify-content: flex-start;
  }
}


/* =========================================================
   CARTA
========================================================= */
#carta {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

#carta::before {
  content: "";
  position: absolute;
  left: -140px;
  top: 120px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .18);
  pointer-events: none;
}

#carta::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: 200px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .08);
  pointer-events: none;
}

#carta > .container,
#carta .container {
  position: relative;
  z-index: 2;
}

/* =========================================================
   CABECERA DE CARTA
========================================================= */

#carta .section_title {
  max-width: 920px;
  margin-inline: auto;
}

#carta .section_title span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

#carta .section_title span:first-child::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

#carta .section_title h1 {
  max-width: 980px;
  margin: 0 auto;
  color: var(--azul);
  font-size: clamp(2.3rem, 5vw, 4.9rem);
  line-height: 1;
  font-weight: 950;
  letter-spacing: -.055em;
  text-wrap: balance;
}

#carta .section_title h1::after {
  content: "";
  display: block;
  width: 104px;
  height: 4px;
  margin: 1.2rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

#carta .section_title .lead {
  max-width: 850px;
  margin: 1.35rem auto 1.3rem;
  color: #444;
  font-size: 1.08rem;
  line-height: 1.78;
}

#carta .section_title .lead strong {
  color: var(--azul);
  font-weight: 850;
}

/* Botón PDF */
#carta .section_title a.display-2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 50px;
  padding: .82rem 1.2rem;
  border-radius: 999px;
  color: var(--blanco);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border: 1px solid var(--azul);
  box-shadow: 0 16px 38px rgba(0, 40, 90, .22);
  font-size: .9rem !important;
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: .05em;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

#carta .section_title a.display-2::before {
  color: var(--amarillo);
}

#carta .section_title a.display-2:hover {
  color: var(--blanco);
  text-decoration: none;
  transform: translateY(-2px);
  border-color: var(--amarillo);
  box-shadow: 0 20px 46px rgba(0, 40, 90, .30);
}

/* =========================================================
   BOTONERA DE CATEGORÍAS
========================================================= */

/* Antes había dos botoneras: una .btn-group para escritorio y otra
   .btn-group-vertical para el móvil. Al unificar la carta en una sola copia
   (modulos/fgx-carta.php) quedó solo la segunda —con los botones y los paneles
   como hermanos—, así que todo lo escrito contra .btn-group dejó de aplicarse
   y las pestañas de escritorio se quedaron con los estilos del acordeón:
   rectangulares, a lo ancho y con el rótulo a la izquierda.

   Aquí va el aspecto común de los botones; lo propio de cada modo está en su
   media query: la píldora justo debajo, el acordeón en el bloque siguiente.

   La barra blanca que envolvía la botonera no vuelve. Su contenedor es ahora
   el mismo que el de los paneles, así que un fondo suyo pintaría por detrás de
   la carta entera; el tratamiento de píldora pasa a los propios botones. */

#carta .fgx-carta__btn,
#carta .pantallas-pequenas .btn {
  border-radius: 999px !important;
  border: 1px solid rgba(0, 40, 90, .14);
  color: var(--azul);
  background: rgba(255,255,255,.78);
  font-size: .84rem;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
  box-shadow: none;
  transition:
    transform .2s ease,
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

#carta .fgx-carta__btn:hover,
#carta .fgx-carta__btn.is-active,
#carta .pantallas-pequenas .btn:hover,
#carta .pantallas-pequenas .btn.is-active {
  color: var(--blanco);
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  border-color: var(--amarillo);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 40, 90, .18);
}

/* Pestañas: píldoras centradas. flor.css les da 12px 15px de relleno, que en
   una píldora se queda corto de lado. */
@media (min-width: 768px) {
  #carta .fgx-carta__btn {
    min-height: 0;
    padding: .72rem 1.25rem;
    text-align: center;
    justify-content: center;
  }
}

/* =========================================================
   BOTONERA MÓVIL
========================================================= */

#carta .pantallas-pequenas {
  position: relative;
  z-index: 2;
}

/* Acordeón: botones de lado a lado con la flecha a la derecha.
   Va acotado a móvil porque .pantallas-pequenas ya no es el bloque del móvil:
   desde que la carta se pinta una sola vez es también el de escritorio, y sin
   esta media query estos estilos le quitaban la forma a las pestañas. */
@media (max-width: 767.98px) {

  #carta .pantallas-pequenas .btn-group-vertical {
    display: grid;
    gap: .85rem;
    width: 100%;
  }

  #carta .pantallas-pequenas .btn {
    width: 100%;
    min-height: 48px;
    border-radius: 20px !important;
    text-align: left;
    padding: .85rem 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}

/* La flecha del acordeón la dibuja css/base.css (apartado 13) con bordes.
   Aquí había un glifo de Font Awesome, que ya no se carga en el sitio. */

/* =========================================================
   CONTENEDORES DE SECCIÓN
========================================================= */

#carta .section-content {
  display: none;
}

#carta .section-content.active-section,
#carta .section-content.show {
  display: block;
}

/* La tarjeta del panel.

   Estaba escrita contra #large-screen-content, el contenedor del bloque de
   escritorio de cuando la carta se pintaba dos veces. Al unificarla
   (modulos/fgx-carta.php) ese id desapareció del marcado y con él se fue la
   caja entera: en escritorio los platos quedaban sueltos sobre el fondo,
   pegados al borde y con una sombra de Bootstrap sin nada que la sostuviera.
   En móvil sí se veía, porque su versión de la tarjeta está más abajo, en la
   media query de 767.98px.

   Ahora apunta a .fgx-carta__panel, que es la clase que pinta el generador, y
   va acotada a escritorio para no pisar la del móvil. El margen superior lo
   sigue poniendo css/base.css (apartado 15), que es quien monta el layout. */
@media (min-width: 768px) {

  #carta-vinos .fgx-carta__panel,
  #carta .fgx-carta__panel {
    position: relative;
    overflow: hidden;
    padding: 0;
    border-radius: 42px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.88));
    border: 1px solid rgba(0, 40, 90, .09);
    box-shadow: 0 28px 78px rgba(0, 40, 90, .12) !important;
  }

  #carta-vinos .fgx-carta__panel::before,
  #carta .fgx-carta__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 14% 10%, rgba(209, 186, 144, .20) 0%, transparent 32%),
      radial-gradient(circle at 88% 90%, rgba(0, 101, 209, .08) 0%, transparent 34%);
    pointer-events: none;
  }

  #carta-vinos .fgx-carta__panel > *,
  #carta .fgx-carta__panel > * {
    position: relative;
    z-index: 2;
  }

  /* Espaciado interior: sin esto las fichas van pegadas al borde de la caja. */
  #carta-vinos .fgx-carta__panel .row,
  #carta .fgx-carta__panel .row {
    padding: 2.5rem 2rem 3rem !important;
    row-gap: 1.4rem;
  }

  #carta-vinos .fgx-carta__panel > .lead,
  #carta .fgx-carta__panel > .lead {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}

/* Titular y entradilla de cada apartado, en los dos modos. */
#carta-vinos .pantallas-pequenas .section-content > h2,
#carta .pantallas-pequenas .section-content > h2 {
  color: var(--azul);
  font-size: clamp(1.9rem, 4vw, 3.4rem);
  line-height: 1.04;
  font-weight: 950;
  letter-spacing: -.045em;
}

#carta-vinos .pantallas-pequenas .section-content > .lead,
#carta .pantallas-pequenas .section-content > .lead {
  max-width: 760px;
  margin: 1rem auto 0;
  color: #555;
  font-size: 1.02rem;
  line-height: 1.65;
}

/* =========================================================
   GRID DE PLATOS · CORREGIDO
========================================================= */

#carta-vinos .section-content .row,
#carta .section-content .row {
  row-gap: 1.4rem;
}

/* Columna del plato */
#carta-vinos .menu-item,
#carta .menu-item {
  position: relative;
  margin-bottom: 0;
  height: auto;
}

/* Imagen del plato */
#carta-vinos .menu-item > img,
#carta .menu-item > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 24px 24px 0 0;
  background: #ddd;
  box-shadow: 0 12px 30px rgba(0, 40, 90, .08);
  transition:
    transform .35s ease,
    filter .25s ease;
}

/* Caja blanca inferior */
#carta-vinos .menu-item .media-body,
#carta .menu-item .media-body {
  position: relative;
  min-height: 178px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 1rem .8rem .95rem;
  border-radius: 0 0 24px 24px;
  background: #ffffff;
  border: 1px solid rgba(0, 40, 90, .09);
  border-top: 0;
  box-shadow: 0 16px 38px rgba(0, 40, 90, .08);
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

/* Contenedor de alérgenos */
#carta-vinos .menu-item .alergenos,
#carta .menu-item .alergenos {
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .22rem;
  margin: .15rem 0 .55rem;
}

/* Precio */
#carta-vinos .menu-price,
#carta .menu-price {
  margin: auto 0 0 !important;
  padding-top: .6rem;
  color: var(--azul) !important;
  font-size: 1rem !important;
  line-height: 1.2;
  font-weight: 950;
}

/* Evita que Bootstrap o estilos antiguos agranden precios */
#carta-vinos .menu-item .h2,
#carta .menu-item .h2 {
  font-size: 1rem !important;
}

/* Línea dorada sobre precio */
#carta-vinos .menu-price::before,
#carta .menu-price::before {
  content: "";
  display: block;
  width: 46px;
  height: 3px;
  margin: 0 auto .55rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

/* Hover limpio */
#carta-vinos .menu-item:hover > img,
#carta .menu-item:hover > img {
  transform: translateY(-3px);
  filter: saturate(1.04) contrast(1.02);
}

#carta-vinos .menu-item:hover .media-body,
#carta .menu-item:hover .media-body {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .45);
  box-shadow: 0 22px 54px rgba(0, 40, 90, .14);
}

/* =========================================================
   ALÉRGENOS · CORREGIDO
========================================================= */

#carta-vinos .alergenos img,
#carta .alergenos img {
  width: 24px;
  height: 24px;
  padding: 3px;
  border-radius: 999px;
  background: rgba(209, 186, 144, .20);
  border: 1px solid rgba(0, 40, 90, .08);
  object-fit: contain;
}

/* =========================================================
   ALERTA MARISCO
========================================================= */

#carta .alert.alert-primary {
  width: 100%;
  max-width: 920px;
  margin-inline: auto;
  border: 1px solid rgba(202, 162, 74, .42);
  border-radius: 28px;
  color: var(--azul);
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.38) 0%, transparent 28%),
    linear-gradient(135deg, rgba(209, 186, 144, .34), rgba(255,255,255,.88));
  box-shadow: 0 18px 46px rgba(0, 40, 90, .10);
  font-size: 1.15rem !important;
  line-height: 1.55;
  font-weight: 900;
}

/* =========================================================
   LEYENDA DE ALÉRGENOS
=========================================================
   Marcado en modulos/fgx-alergenos.php. Todo va por clase propia: el bloque
   anterior colgaba de `.leyenda_ale h3` y se quedo sin estilo en cuanto el
   titular subio a <h2>.

   La rejilla usa un numero de columnas que divide a 8 en cada tramo (8, 4 y
   2), asi que nunca queda una ficha suelta en la ultima fila. */

.fgx-alergenos {
  position: relative;
  z-index: 2;
}

.fgx-alergenos__caja {
  padding: 2.6rem 1.8rem 2.8rem;
  border: 1px solid rgba(0, 40, 90, .09);
  border-radius: 36px;
  background:
    radial-gradient(circle at 12% 8%, rgba(209, 186, 144, .16) 0%, transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.9));
  box-shadow: 0 24px 64px rgba(0, 40, 90, .10);
}

.fgx-alergenos__titulo {
  margin: 0;
  color: var(--azul);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: -.03em;
  text-align: center;
}

.fgx-alergenos__titulo::after {
  content: "";
  display: block;
  width: 82px;
  height: 4px;
  margin: .9rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-alergenos__intro {
  max-width: 56ch;
  margin: 1.05rem auto 0;
  color: #555;
  font-size: 1rem;
  line-height: 1.6;
  text-align: center;
}

.fgx-alergenos__lista {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: .9rem;
  margin: 2.1rem 0 0;
  padding: 0;
  list-style: none;
}

.fgx-alergenos__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: .6rem;
  padding: 1.15rem .7rem 1.1rem;
  border-radius: 22px;
  background: #ffffff;
  border: 1px solid rgba(0, 40, 90, .08);
  box-shadow: 0 10px 26px rgba(0, 40, 90, .06);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.fgx-alergenos__item:hover {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .45);
  box-shadow: 0 18px 40px rgba(0, 40, 90, .12);
}

.fgx-alergenos__icono {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
}

.fgx-alergenos__nombre {
  color: var(--azul);
  font-size: .8rem;
  line-height: 1.25;
  font-weight: 850;
  text-align: center;
  text-wrap: balance;
}

@media (max-width: 1199.98px) {
  .fgx-alergenos__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
  .fgx-alergenos__caja { padding: 1.9rem 1.1rem 2rem; border-radius: 28px; }
  .fgx-alergenos__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .fgx-alergenos__item { border-radius: 18px; padding: 1rem .6rem; }
  .fgx-alergenos__icono { width: 40px; height: 40px; }
}

/* =========================================================
   QR CARTA
========================================================= */

.qr {
  position: relative;
  overflow: hidden;
  border-radius: 36px;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.16) 0%, transparent 28%),
    linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 28px 78px rgba(0, 40, 90, .18);
}

.qr p {
  color: var(--blanco) !important;
  font-size: clamp(1.25rem, 2.4vw, 2rem);
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: -.03em;
}

.qr img {
  max-width: 230px;
  padding: .8rem;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 20px 48px rgba(0,0,0,.22);
}

/* =========================================================
   RESPONSIVE TABLET
========================================================= */

@media (max-width: 991.98px) {
  #carta .container.carta {
    padding-top: 4rem !important;
  }

  #carta-vinos .fgx-carta__panel,
  #carta .fgx-carta__panel {
    border-radius: 34px;
  }
}

/* =========================================================
   RESPONSIVE MÓVIL
========================================================= */

@media (max-width: 767.98px) {
  #carta .section_title h1 {
    font-size: clamp(2.1rem, 12vw, 3.4rem);
  }

  #carta .section_title .lead {
    font-size: .98rem;
    line-height: 1.65;
  }

  #carta-vinos .pantallas-pequenas .section-content,
  #carta .pantallas-pequenas .section-content {
    margin: .9rem 0 1.1rem;
    padding: 1rem;
    border-radius: 28px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.9));
    border: 1px solid rgba(0, 40, 90, .09);
    /* El marcado trae la clase .shadow de Bootstrap, que lleva !important:
       sin esto la tarjeta del movil se quedaba con la sombra generica. */
    box-shadow: 0 18px 48px rgba(0, 40, 90, .10) !important;
  }

  #carta-vinos .pantallas-pequenas .section-content .row,
  #carta .pantallas-pequenas .section-content .row {
    padding-top: 1rem !important;
  }

  #carta-vinos .menu-item,
  #carta .menu-item {
    margin-bottom: 0;
  }

  #carta-vinos .menu-item > img,
  #carta .menu-item > img {
    border-radius: 20px 20px 0 0;
  }

  #carta-vinos .menu-item .media-body,
  #carta .menu-item .media-body {
    min-height: 145px;
    padding: .78rem .55rem .75rem;
    border-radius: 0 0 20px 20px;
  }

  #carta .menu-price,
  #carta-vinos .menu-price,
  #carta .menu-item .h2,
  #carta-vinos .menu-item .h2 {
    font-size: .86rem !important;
  }

  #carta-vinos .alergenos img,
  #carta .alergenos img {
    width: 20px;
    height: 20px;
    padding: 2px;
  }

  .qr {
    padding: 2rem 1rem !important;
    border-radius: 28px;
  }
}

/* =========================================================
   MÓVIL PEQUEÑO
========================================================= */

@media (max-width: 420px) {
  #carta-vinos .menu-price,
  #carta .menu-price {
    font-size: .8rem !important;
  }

  #carta-vinos .alergenos,
  #carta .alergenos {
    gap: .18rem;
  }

  #carta .alergenos img {
    width: 18px;
    height: 18px;
  }
}

/* =========================================================
   PESTANAS DE ESCRITORIO - MENUS Y BODEGA
=========================================================
   Las tres paginas arrastraban el mismo problema que /carta: sus botones se
   estilizan con `#X .pantallas-pequenas .btn`, y ese contenedor dejo de ser el
   del movil cuando las cartas pasaron a pintarse una sola vez. Desde entonces
   las pestanas de escritorio salian con la forma del acordeon: rectangulares,
   a lo ancho y con el rotulo a la izquierda.

   Esto va al final del fichero a proposito. Las reglas del acordeon tienen la
   misma especificidad, asi que lo unico que decide es el orden; envolverlas a
   ellas en una media query obligaria a tocar tres bloques mas y aqui se ve de
   un vistazo que las cuatro paginas hacen lo mismo.

   La flecha del acordeon ya la oculta css/base.css (apartado 15) en este
   tramo, y el ancho automatico de los botones lo pone su apartado 15 tambien.
========================================================= */
@media (min-width: 768px) {

  #menus-dia .pantallas-pequenas .btn,
  #menus-grupos .pantallas-pequenas .btn,
  #carta-vinos .pantallas-pequenas .btn {
    width: auto;
    min-height: 0;
    border-radius: 999px !important;
    padding: .72rem 1.25rem;
    text-align: center;
    justify-content: center;
  }
}

/* Lo unico que la bodega no comparte con /carta: el recorte de la foto.

   Las fichas de plato recortan a 4:3 con object-fit: cover, que a una foto
   de comida le sienta bien. Las de vino son botellas de 100x100 centradas
   sobre blanco: recortarlas a 4:3 les cortaria el cuello y la base.

   scale-down deja la botella a su tamano real, centrada en la banda, y no
   la amplia: con 100 px de alto, estirarla a los 139 px de la banda solo
   conseguiria emborronarla. El fondo va en blanco, como el de las propias
   fotos, en vez del gris que llevan las de plato mientras cargan. */
#carta-vinos .menu-item > img {
  object-fit: scale-down;
  background: #ffffff;
}

/* La otra diferencia: la ficha de plato reserva una fila de 30 px para los
   iconos de alergenos. Ningun vino declara alergenos, asi que esa fila se
   quedaba vacia y abria un hueco de 59 px entre el nombre y el precio, que
   va anclado abajo. Se descuenta esa fila y las fichas siguen alineadas
   entre si, que es para lo que esta el min-height. */
#carta-vinos .menu-item .media-body {
  min-height: 148px;
}

/* =========================================================
   PORTADA DEL ARTICULO
=========================================================
   La foto que antes iba de fondo en el banner, al 38 % de opacidad y bajo un
   velo oscuro. Aqui se ve, y ademas cuenta como contenido del articulo. Va la
   primera, antes de cualquier titular o parrafo. */

.fgx-article-portada {
  margin: 0 0 2rem;
}

.fgx-article-portada img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  border-radius: 26px;
  background: #eef1f5;
  box-shadow: 0 20px 48px rgba(0, 40, 90, .12);
}

@media (max-width: 575.98px) {
  .fgx-article-portada { margin-bottom: 1.5rem; }
  .fgx-article-portada img { border-radius: 18px; }
}

/* =========================================================
   INDICE DEL ARTICULO
=========================================================
   Un solo diseño para los dos sitios donde vive el indice:

     · dentro del articulo, en movil y tablet;
     · en el aside, en escritorio, con .toc--lateral (lo mueve alli
       js/entradas-recientes.js).

   Los selectores llevan DOS id (#tocContainer #tableOfContents) porque el
   estilo anterior esta en flor.css escrito contra #tableOfContents y con
   clases no habia forma de ganarle. Por eso los ajustes del lateral, mas
   abajo, tambien tienen que llevar los dos.

   Se retira la piel antigua -degradado azul grisaceo, cajas anidadas, azul
   electrico y puntos naranjas- y se cambia por la paleta de la casa:
   apartados numerados sobre una linea vertical, en azul y dorado. */

/* El marcado trae `rounded-4 mb-4` de Bootstrap, y las dos van con
   !important; de ahi los de aqui. */
#tocContainer {
  margin: 2.5rem 0 !important;
  padding: 1.9rem 1.7rem 2rem;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 10% 6%, rgba(209, 186, 144, .14) 0%, transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.9));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 18px 44px rgba(0, 40, 90, .09);
}

/* --- Cabecera --- */

#tocContainer .toc-header {
  display: block;
  margin-bottom: 1.4rem;
}

#tocContainer .toc-header h4 {
  margin: 0;
  color: var(--azul);
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: -.01em;
  text-align: center;
}

/* Las rayas laterales iban en position:absolute al 28 % del ancho, asi que en
   cuanto el titular ocupaba mas de la mitad se le cruzaban por encima y
   parecia tachado. Se sustituyen por la barrita dorada del resto del sitio. */
#tocContainer .toc-header h4::before {
  content: none;
}

#tocContainer .toc-header h4::after {
  content: "";
  position: static;
  display: block;
  width: 64px;
  height: 3px;
  margin: .7rem auto 0;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
  opacity: 1;
  transform: none;
}

/* --- La lista --- */

/* La caja interior sobraba: era un recuadro dentro de otro recuadro, y en
   movil se comia el ancho que necesita el texto. */
#tocContainer #tableOfContents {
  counter-reset: fgxtoc;
  max-width: none;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

#tocContainer #tableOfContents .toc-list,
#tocContainer #tableOfContents .toc-hidden-list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Linea que hilvana los apartados. */
#tocContainer #tableOfContents .toc-list::before,
#tocContainer #tableOfContents .toc-hidden-list::before {
  content: "";
  position: absolute;
  top: 1.1rem;
  bottom: 1.1rem;
  left: 14px;
  width: 2px;
  border-radius: 999px;
  background: rgba(0, 40, 90, .10);
}

/* Dentro del articulo, `.fgx-article-content li` convierte en tarjeta blanca
   cualquier elemento de lista. Al indice no le viene bien: metia un recuadro
   por apartado dentro del recuadro del propio indice. En el aside no pasaba,
   porque alli esa regla no alcanza. */
#tocContainer #tableOfContents .toc-list li,
#tocContainer #tableOfContents .toc-hidden-list li {
  counter-increment: fgxtoc;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

#tocContainer #tableOfContents .toc-list li::before,
#tocContainer #tableOfContents .toc-hidden-list li::before {
  content: none;
}

#tocContainer #tableOfContents .toc-list a,
#tocContainer #tableOfContents .toc-hidden-list a {
  position: relative;
  display: block;
  padding: .7rem .5rem .7rem 2.75rem;
  background: none;
  border: 0;
  border-radius: 14px;
  box-shadow: none;
  color: var(--azul);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
  text-decoration: none;
  transform: none;
  transition: color .18s ease, background .18s ease;
}

#tocContainer #tableOfContents .toc-list a::before,
#tocContainer #tableOfContents .toc-hidden-list a::before {
  content: counter(fgxtoc);
  position: absolute;
  top: .62rem;
  left: 0;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: #fff;
  border: 2px solid rgba(202, 162, 74, .55);
  color: var(--azul);
  font-size: .8rem;
  font-weight: 900;
  line-height: 1;
  transform: none;
  box-shadow: none;
  transition: background .18s ease, border-color .18s ease;
}

#tocContainer #tableOfContents .toc-list a:hover,
#tocContainer #tableOfContents .toc-hidden-list a:hover {
  transform: none;
  background: rgba(0, 101, 209, .06);
  border: 0;
  box-shadow: none;
  color: var(--azulc);
}

#tocContainer #tableOfContents .toc-list a:hover::before,
#tocContainer #tableOfContents .toc-hidden-list a:hover::before {
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  border-color: var(--amarillo);
}

#tocContainer .toc-hidden-list {
  margin-top: 0 !important;
}

/* --- Boton de ver mas --- */

#tocContainer .toc-toggle-btn {
  width: 100%;
  min-width: 0;
  margin-top: 1.3rem;
  padding: .7rem 1.1rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  font-size: .9rem;
  font-weight: 850;
  box-shadow: 0 12px 26px rgba(0, 40, 90, .20);
}

/* =======================  variante del lateral  ======================= */

/* El aside es estrecho: mismo diseño, todo un punto mas apretado. */

#tocContainer.toc--lateral {
  margin: 0 !important;
  padding: 1.5rem 1.3rem 1.6rem;
  border-radius: 32px !important;
  box-shadow: 0 22px 58px rgba(0, 40, 90, .10);
}

#tocContainer.toc--lateral .toc-header {
  margin-bottom: 1.1rem;
}

#tocContainer.toc--lateral .toc-header h4 {
  font-size: 1.02rem;
}

#tocContainer.toc--lateral .toc-header h4::after {
  width: 54px;
  margin-top: .55rem;
}

#tocContainer.toc--lateral #tableOfContents .toc-list::before,
#tocContainer.toc--lateral #tableOfContents .toc-hidden-list::before {
  top: .9rem;
  bottom: .9rem;
  left: 11px;
}

#tocContainer.toc--lateral #tableOfContents .toc-list a,
#tocContainer.toc--lateral #tableOfContents .toc-hidden-list a {
  padding: .55rem .2rem .55rem 2.15rem;
  font-size: .88rem;
  line-height: 1.4;
}

#tocContainer.toc--lateral #tableOfContents .toc-list a::before,
#tocContainer.toc--lateral #tableOfContents .toc-hidden-list a::before {
  top: .5rem;
  width: 24px;
  height: 24px;
  font-size: .7rem;
}

#tocContainer.toc--lateral .toc-toggle-btn {
  margin-top: 1.1rem;
  padding: .6rem 1rem;
  font-size: .82rem;
  box-shadow: 0 10px 22px rgba(0, 40, 90, .18);
}

/* --- Movil --- */

@media (max-width: 575.98px) {
  #tocContainer {
    margin: 2rem 0 !important;
    padding: 1.5rem 1.1rem 1.6rem;
    border-radius: 22px !important;
  }

  #tocContainer .toc-header h4 { font-size: 1.05rem; }

  #tocContainer #tableOfContents .toc-list a,
  #tocContainer #tableOfContents .toc-hidden-list a {
    padding: .6rem .2rem .6rem 2.5rem;
    font-size: .94rem;
  }

  #tocContainer #tableOfContents .toc-list a::before,
  #tocContainer #tableOfContents .toc-hidden-list a::before {
    top: .55rem;
    width: 27px;
    height: 27px;
  }

  #tocContainer #tableOfContents .toc-list::before,
  #tocContainer #tableOfContents .toc-hidden-list::before {
    left: 12.5px;
  }
}

/* =========================================================
   PÁGINAS LEGALES · Clases aisladas fgx-legal-*
   ---------------------------------------------------------
   Aviso legal, protección de datos y política de cookies:
   documentos largos, sin imágenes, que hasta ahora salían
   con el HTML crudo del proveedor y sin ningún estilo.
   La navbar es fija, así que el bloque abre su propio hueco
   por arriba (no hay hero que lo haga).
========================================================= */

/* Sin overflow:hidden a proposito: recortaria el sticky del indice. Los
   circulos decorativos se recortan en su propia capa, .fgx-legal__deco. */
.fgx-legal,
.fgx-mapa,
.fgx-404 {
  position: relative;
  padding: clamp(118px, 13vw, 168px) 0 clamp(56px, 8vw, 96px);
  background:
    radial-gradient(circle at 8% 10%, rgba(0, 101, 209, .07) 0%, transparent 32%),
    radial-gradient(circle at 92% 92%, rgba(202, 162, 74, .15) 0%, transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8f5ef 100%);
}

.fgx-legal__deco,
.fgx-mapa__deco,
.fgx-404__deco {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.fgx-legal__deco::before,
.fgx-mapa__deco::before,
.fgx-404__deco::before {
  content: "";
  position: absolute;
  left: -150px;
  top: 150px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: rgba(209, 186, 144, .16);
}

.fgx-legal__deco::after,
.fgx-mapa__deco::after,
.fgx-404__deco::after {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -170px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .07);
}

.fgx-legal .container,
.fgx-mapa .container,
.fgx-404 .container {
  position: relative;
  z-index: 2;
}

/* --- Cabecera --- */

.fgx-legal__head,
.fgx-mapa__head,
.fgx-404__head {
  max-width: 860px;
  margin: 0 auto clamp(2.2rem, 4vw, 3.2rem);
  text-align: center;
}

.fgx-legal__eyebrow,
.fgx-mapa__eyebrow,
.fgx-404__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  color: var(--azul);
  background: rgba(0, 40, 90, .07);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-legal__eyebrow::before,
.fgx-mapa__eyebrow::before,
.fgx-404__eyebrow::before {
  content: "";
  display: inline-block;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-legal__title,
.fgx-mapa__title,
.fgx-404__title {
  margin: 0;
  color: var(--azul);
  font-size: clamp(2rem, 3.6vw, 3.1rem);
  line-height: 1.06;
  font-weight: 800;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.fgx-legal__title::after,
.fgx-mapa__title::after,
.fgx-404__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 4px;
  margin: 1.1rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--amarillo), var(--dorado));
}

.fgx-legal__intro,
.fgx-mapa__intro,
.fgx-404__intro {
  max-width: 720px;
  margin: 1.25rem auto 0;
  color: #4a4a4a;
  font-size: 1.02rem;
  line-height: 1.75;
}

.fgx-legal__updated {
  display: inline-block;
  margin: 1.2rem 0 0;
  padding: .35rem .9rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .8);
  border: 1px solid rgba(0, 40, 90, .10);
  color: #5c5c5c;
  font-size: .8rem;
  font-weight: 700;
}

/* --- Rejilla índice + documento --- */

.fgx-legal__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.4rem, 3vw, 2.4rem);
  align-items: start;
}

@media (min-width: 992px) {
  .fgx-legal__layout {
    grid-template-columns: 288px minmax(0, 1fr);
  }
}

/* --- Índice --- */

.fgx-legal__toc {
  padding: 1.4rem 1.25rem 1.5rem;
  border-radius: 26px;
  background: linear-gradient(180deg, #ffffff, rgba(255, 255, 255, .88));
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 18px 46px rgba(0, 40, 90, .10);
}

@media (min-width: 992px) {
  .fgx-legal__toc {
    position: sticky;
    top: 108px;
  }
}

.fgx-legal__toc-title {
  margin: 0 0 .85rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid rgba(0, 40, 90, .10);
  color: var(--azul);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-legal__toc ol {
  counter-reset: fgx-legal-toc;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-legal__toc a {
  position: relative;
  display: block;
  padding: .52rem .5rem .52rem 2.3rem;
  border-radius: 12px;
  color: #4a4a4a;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}

.fgx-legal__toc a::before {
  counter-increment: fgx-legal-toc;
  content: counter(fgx-legal-toc);
  position: absolute;
  left: 0;
  top: .42rem;
  display: grid;
  place-items: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 50%;
  background: rgba(0, 40, 90, .06);
  border: 1px solid rgba(0, 40, 90, .10);
  color: var(--azul);
  font-size: .74rem;
  font-weight: 800;
}

.fgx-legal__toc a:hover,
.fgx-legal__toc a:focus {
  background: rgba(0, 40, 90, .05);
  color: var(--azul);
}

.fgx-legal__toc a:hover::before,
.fgx-legal__toc a:focus::before {
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  border-color: transparent;
  color: var(--azul);
}

/* --- Documento --- */

.fgx-legal__doc {
  counter-reset: fgx-legal-sec;
  padding: clamp(1.4rem, 3.2vw, 3rem);
  border-radius: 32px;
  background: #fff;
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 28px 78px rgba(0, 40, 90, .10);
}

.fgx-legal__doc p,
.fgx-legal__doc li {
  color: #444;
  font-size: 1.01rem;
  line-height: 1.8;
}

.fgx-legal__doc > p {
  margin: 0 0 1.15rem;
}

.fgx-legal__doc > p:last-child {
  margin-bottom: 0;
}

.fgx-legal__doc h2 {
  position: relative;
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 2.5rem 0 1.15rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid rgba(0, 40, 90, .10);
  color: var(--azul);
  font-size: clamp(1.12rem, 1.9vw, 1.4rem);
  font-weight: 800;
  letter-spacing: -.015em;
  line-height: 1.3;
}

.fgx-legal__doc h2::before {
  counter-increment: fgx-legal-sec;
  content: counter(fgx-legal-sec);
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  color: var(--azul);
  font-size: .82rem;
  font-weight: 800;
  box-shadow: 0 6px 16px rgba(202, 162, 74, .30);
}

.fgx-legal__doc h2:first-child {
  margin-top: 0;
}

.fgx-legal__doc a {
  color: var(--azulc);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(0, 101, 209, .35);
}

.fgx-legal__doc a:hover,
.fgx-legal__doc a:focus {
  color: var(--azul);
  text-decoration-color: currentColor;
}

.fgx-legal__doc strong {
  color: var(--azul);
  font-weight: 800;
}

/* Listas numeradas del articulado */

.fgx-legal__list {
  counter-reset: fgx-legal-item;
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
}

.fgx-legal__list > li {
  position: relative;
  margin-bottom: 1rem;
  padding-left: 2.6rem;
}

.fgx-legal__list > li:last-child {
  margin-bottom: 0;
}

.fgx-legal__list > li::before {
  counter-increment: fgx-legal-item;
  content: counter(fgx-legal-item);
  position: absolute;
  left: 0;
  top: .25rem;
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: rgba(0, 40, 90, .06);
  border: 1px solid rgba(0, 40, 90, .10);
  color: var(--azul);
  font-size: .8rem;
  font-weight: 800;
}

.fgx-legal__list > li strong {
  color: var(--azul);
  font-weight: 800;
}

/* Variante sin numerar: los apartados que solo enumeran supuestos, donde el
   numero no significa nada, llevan punto dorado en vez de cifra. */
.fgx-legal__list--puntos > li {
  padding-left: 1.9rem;
}

.fgx-legal__list--puntos > li::before {
  content: "";
  counter-increment: none;
  top: .72rem;
  left: .3rem;
  width: .55rem;
  height: .55rem;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  border: 0;
  box-shadow: 0 0 0 4px rgba(202, 162, 74, .18);
}

/* --- Ficha de datos identificativos --- */

.fgx-legal__datos {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.1rem 1.8rem;
  margin: 0 0 1.4rem;
  padding: clamp(1.1rem, 2.4vw, 1.7rem);
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(0, 40, 90, .045), rgba(209, 186, 144, .12));
  border: 1px solid rgba(0, 40, 90, .10);
}

@media (min-width: 576px) {
  .fgx-legal__datos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.fgx-legal__dato {
  min-width: 0;
}

.fgx-legal__dato dt {
  margin-bottom: .15rem;
  color: #6a6a6a;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.fgx-legal__dato dd {
  margin: 0;
  color: var(--azul);
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.fgx-legal__dato dd a {
  color: var(--azul);
  text-decoration-color: rgba(0, 40, 90, .35);
}

.fgx-legal__dato--ancho {
  grid-column: 1 / -1;
}

/* --- Documento sin indice lateral (la declaracion de cookies) --- */

.fgx-legal__doc--solo {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

/* --- Declaracion de cookies ---------------------------------------------
   El HTML lo inyecta Cookiebot (cd.js) y no se puede tocar: llega con sus
   propias clases CookieDeclaration*, tres bloques por categoria y una tabla
   de cinco columnas. Aqui solo se le pone el aspecto del sitio.
   Comprobado contra lo que sirve consent.cookiebot.com en produccion.
------------------------------------------------------------------------ */

.fgx-legal .CookieDeclaration {
  color: #444;
  font-size: 1.01rem;
  line-height: 1.8;
}

.fgx-legal .CookieDeclaration p {
  margin: 0 0 1.15rem;
}

/* Cookiebot deja un parrafo vacio de separacion. */
.fgx-legal .CookieDeclaration p:empty {
  display: none;
}

.fgx-legal .CookieDeclaration a {
  color: var(--azulc);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(0, 101, 209, .35);
  overflow-wrap: anywhere;
}

.fgx-legal .CookieDeclaration a:hover,
.fgx-legal .CookieDeclaration a:focus {
  color: var(--azul);
  text-decoration-color: currentColor;
}

/* Titulares: Cookiebot los emite como h3.h4 y h4 sueltos. */
.fgx-legal .CookieDeclaration h2,
.fgx-legal .CookieDeclaration h3,
.fgx-legal .CookieDeclaration h4 {
  margin: 2.4rem 0 1.1rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid rgba(0, 40, 90, .10);
  color: var(--azul);
  font-size: clamp(1.12rem, 1.9vw, 1.4rem);
  font-weight: 800;
  letter-spacing: -.015em;
  line-height: 1.3;
}

.fgx-legal .CookieDeclaration > :first-child {
  margin-top: 0;
}

/* Entradilla: el mismo texto del banner, destacado como lo estan las fichas
   de datos de las otras dos paginas legales. */
.fgx-legal .CookieDeclarationDialogText {
  padding: clamp(1rem, 2.2vw, 1.5rem);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(0, 40, 90, .045), rgba(209, 186, 144, .12));
  border: 1px solid rgba(0, 40, 90, .10);
  color: #3d3d3d;
  font-size: .98rem;
}

/* Lista de tipos de cookies del texto introductorio. */
.fgx-legal .CookieDeclaration ul {
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
}

.fgx-legal .CookieDeclaration ul > li {
  position: relative;
  margin-bottom: .8rem;
  padding-left: 1.9rem;
  line-height: 1.75;
}

.fgx-legal .CookieDeclaration ul > li::before {
  content: "";
  position: absolute;
  left: .3rem;
  top: .72rem;
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  box-shadow: 0 0 0 4px rgba(202, 162, 74, .18);
}

/* Panel de estado del consentimiento (solo aparece si hay decision tomada). */
.fgx-legal #CookieDeclarationUserStatusPanel,
.fgx-legal .CookieDeclarationChangeConsent {
  padding: 1rem 1.2rem;
  border-radius: 18px;
  background: rgba(0, 40, 90, .04);
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .94rem;
}

.fgx-legal .CookieDeclarationLastUpdated {
  display: inline-block;
  margin: 0 0 1.6rem;
  padding: .35rem .9rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(0, 40, 90, .10);
  color: #5c5c5c;
  font-size: .8rem;
  font-weight: 700;
}

/* Bloque por categoria: tecnicas, analisis, publicidad... */
.fgx-legal .CookieDeclarationType {
  margin: 0 0 1.4rem;
  padding: clamp(1rem, 2.2vw, 1.5rem);
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(0, 40, 90, .035), rgba(209, 186, 144, .10));
  border: 1px solid rgba(0, 40, 90, .10);
}

.fgx-legal .CookieDeclarationTypeHeader {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin: 0 0 .5rem;
  color: var(--azul);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -.01em;
}

.fgx-legal .CookieDeclarationTypeHeader::before {
  content: "";
  flex: 0 0 auto;
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  box-shadow: 0 0 0 4px rgba(202, 162, 74, .18);
}

.fgx-legal .CookieDeclarationTypeDescription {
  margin: 0 0 1.15rem;
  color: #4a4a4a;
  font-size: .95rem;
  line-height: 1.7;
}

/* Tabla de cookies: nombre, proveedor, proposito, caducidad y tipo. */
.fgx-legal .CookieDeclarationTable {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0, 40, 90, .10);
  font-size: .86rem;
}

.fgx-legal .CookieDeclarationTableHeader {
  padding: .7rem .8rem;
  background: var(--azul);
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: left;
  white-space: nowrap;
}

.fgx-legal .CookieDeclarationTableCell {
  padding: .7rem .8rem;
  border-top: 1px solid rgba(0, 40, 90, .08);
  color: #4a4a4a;
  line-height: 1.55;
  vertical-align: top;
  overflow-wrap: break-word;
}

.fgx-legal .CookieDeclarationTable tbody tr:nth-child(even) {
  background: rgba(0, 40, 90, .025);
}

/* overflow:hidden no recorta las celdas de una tabla, asi que las esquinas
   se redondean celda a celda. */
.fgx-legal .CookieDeclarationTable thead tr th:first-child {
  border-top-left-radius: 15px;
}

.fgx-legal .CookieDeclarationTable thead tr th:last-child {
  border-top-right-radius: 15px;
}

.fgx-legal .CookieDeclarationTable tbody tr:last-child td:first-child {
  border-bottom-left-radius: 15px;
}

.fgx-legal .CookieDeclarationTable tbody tr:last-child td:last-child {
  border-bottom-right-radius: 15px;
}

/* En movil cinco columnas no caben: la tarjeta de la categoria hace de
   carril de scroll y la tabla conserva un ancho legible. */
@media (max-width: 767.98px) {
  .fgx-legal .CookieDeclarationType {
    overflow-x: auto;
  }

  .fgx-legal .CookieDeclarationTable {
    min-width: 700px;
  }
}

/* --- Enlaces a los otros documentos --- */

.fgx-legal__links,
.fgx-mapa__links,
.fgx-404__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .8rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}

.fgx-legal__link,
.fgx-mapa__link,
.fgx-404__link {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .8rem 1.35rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(0, 40, 90, .12);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .09);
  color: var(--azul);
  font-size: .92rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.fgx-legal__link:hover,
.fgx-legal__link:focus,
.fgx-mapa__link:hover,
.fgx-404__link:hover,
.fgx-mapa__link:focus,
.fgx-404__link:focus {
  transform: translateY(-2px);
  background: var(--azul);
  border-color: var(--azul);
  box-shadow: 0 16px 36px rgba(0, 40, 90, .22);
  color: #fff;
}

.fgx-legal__link .ico,
.fgx-mapa__link .ico,
.fgx-404__link .ico {
  color: var(--amarillo);
}

.fgx-legal__link:hover .ico,
.fgx-legal__link:focus .ico,
.fgx-mapa__link:hover .ico,
.fgx-404__link:hover .ico,
.fgx-mapa__link:focus .ico,
.fgx-404__link:focus .ico {
  color: var(--dorado);
}

/* En movil los circulos decorativos quedan justo detras de la entradilla y le
   restan contraste: ahi no aportan nada, asi que se retiran. */
@media (max-width: 991.98px) {
  .fgx-legal__deco,
  .fgx-mapa__deco,
  .fgx-404__deco {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .fgx-legal__doc {
    border-radius: 24px;
  }

  .fgx-legal__doc h2 {
    margin-top: 2rem;
    gap: .6rem;
  }

  .fgx-legal__toc {
    border-radius: 22px;
  }
}

/* =========================================================
   MAPA WEB · Clases aisladas fgx-mapa-*
   ---------------------------------------------------------
   La envoltura (fondo, circulos y cabecera) es la misma que
   la de las paginas legales: las reglas estan compartidas
   ahi arriba, con el selector duplicado, para no repetir las
   declaraciones. Lo propio de esta pagina es la rejilla de
   tarjetas con los enlaces de cada seccion.
========================================================= */

/* Columnas, no rejilla: las tarjetas tienen alturas muy distintas (catorce
   especialidades frente a un solo enlace de blog) y con grid quedaban huecos
   enormes. Asi el navegador equilibra las columnas y las empaqueta. */
.fgx-mapa__grid {
  column-width: 300px;
  column-count: 4;
  column-gap: clamp(1rem, 2vw, 1.6rem);
}

.fgx-mapa__card {
  break-inside: avoid;
  margin: 0 0 clamp(1rem, 2vw, 1.6rem);
  padding: clamp(1.3rem, 2.6vw, 1.9rem);
  border-radius: 28px;
  background: #fff;
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 22px 60px rgba(0, 40, 90, .10);
}

.fgx-mapa__card-title {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin: 0 0 .9rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid rgba(0, 40, 90, .10);
  color: var(--azul);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.3;
}

.fgx-mapa__card-ico {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.3rem;
  height: 2.3rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  color: var(--azul);
  box-shadow: 0 6px 16px rgba(202, 162, 74, .30);
}

.fgx-mapa__card-ico .ico {
  width: 1.05em;
  height: 1.05em;
  vertical-align: 0;
}

.fgx-mapa__lista {
  margin: 0;
  padding: 0;
  list-style: none;
}

.fgx-mapa__lista a {
  position: relative;
  display: block;
  padding: .5rem .6rem .5rem 1.55rem;
  border-radius: 12px;
  color: #4a4a4a;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.45;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, padding-left .2s ease;
}

.fgx-mapa__lista a::before {
  content: "";
  position: absolute;
  left: .5rem;
  top: .95rem;
  width: .4rem;
  height: .4rem;
  border-radius: 50%;
  background: var(--dorado);
  transition: background .2s ease, box-shadow .2s ease;
}

.fgx-mapa__lista a:hover,
.fgx-mapa__lista a:focus {
  padding-left: 1.75rem;
  background: rgba(0, 40, 90, .05);
  color: var(--azul);
}

.fgx-mapa__lista a:hover::before,
.fgx-mapa__lista a:focus::before {
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  box-shadow: 0 0 0 4px rgba(202, 162, 74, .18);
}

@media (max-width: 575.98px) {
  .fgx-mapa__card {
    border-radius: 22px;
  }
}

/* =========================================================
   PAGINA 404 · Clases aisladas fgx-404-*
   ---------------------------------------------------------
   La envoltura (fondo, circulos, cabecera y botones del pie)
   la comparte con las paginas legales y el mapa web; las
   reglas estan ahi arriba con el selector duplicado.
   Lo propio de aqui: la cifra grande y las tarjetas de
   destino, que son el trabajo real de un 404: sacar al
   visitante del callejon sin salida.
========================================================= */

.fgx-404__cifra {
  margin: 0 0 1.2rem;
  background: linear-gradient(135deg, var(--azulc), var(--azul) 55%, var(--dorado));
  -webkit-background-clip: text;
  background-clip: text;
  color: var(--azul);
  font-size: clamp(4.2rem, 13vw, 8rem);
  font-weight: 800;
  line-height: .95;
  letter-spacing: -.06em;
}

/* Sin el color transparente el degradado no se ve, pero si el navegador no
   soporta background-clip:text el texto desaparece. Solo se aplica donde va. */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .fgx-404__cifra {
    color: transparent;
  }
}

.fgx-404__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: clamp(.9rem, 1.8vw, 1.3rem);
  max-width: 980px;
  margin: 0 auto;
}

.fgx-404__destino {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: 1.15rem 1.25rem;
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(0, 40, 90, .09);
  box-shadow: 0 18px 46px rgba(0, 40, 90, .10);
  color: inherit;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.fgx-404__destino:hover,
.fgx-404__destino:focus {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .45);
  box-shadow: 0 24px 58px rgba(0, 40, 90, .16);
}

.fgx-404__destino-ico {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  color: var(--azul);
  box-shadow: 0 6px 16px rgba(202, 162, 74, .30);
}

.fgx-404__destino-ico .ico {
  width: 1.1em;
  height: 1.1em;
  vertical-align: 0;
}

.fgx-404__destino-texto {
  min-width: 0;
}

.fgx-404__destino-texto strong {
  display: block;
  margin-bottom: .15rem;
  color: var(--azul);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -.01em;
}

.fgx-404__destino-texto span {
  display: block;
  color: #5c5c5c;
  font-size: .88rem;
  line-height: 1.5;
}

/* =========================================================
   RESUMEN DEL WIDGET DE RESEÑAS
   ---------------------------------------------------------
   La columna de la izquierda del widget (nota media, estrellas y botón) venía
   como texto suelto centrado. Aquí se convierte en una ficha con la nota como
   protagonista, que es lo que se mira de un vistazo.

   El marcado lo genera widg3t.io y no se puede tocar: clases con hash
   (main-container_uL, rating_21...) y estilos en linea puestos desde los
   atributos del componente. Por eso:
     - se selecciona por subcadena, que sobrevive a sus recompilaciones;
     - hay !important solo donde pisa un estilo en linea, y se dice cuál.

   Acotado a .fgx-reviews__widget: la tarjeta del pie se queda como está.
========================================================= */

/* La ficha. El widget trae en linea background, padding y border-radius. */
.fgx-reviews__widget [class*="main-container"] {
  /* Al quitarle el relleno al botón, la ficha se encogía a lo que mide el
     texto. El mínimo la deja con cuerpo sin imponerle un ancho fijo. */
  min-width: 264px;
  max-width: 100%;
  padding: 1.8rem 1.6rem !important;
  border-radius: 26px !important;
  background: linear-gradient(180deg, #ffffff, #f8f5ef) !important;
  border: 1px solid rgba(0, 40, 90, .10);
  box-shadow: 0 18px 44px rgba(0, 40, 90, .10);
}

/* "Excelente" pasa de titular a distintivo. Trae color, font-weight y
   display en linea. */
.fgx-reviews__widget [class*="main-container"] h3 {
  display: inline-flex !important;
  margin: 0 0 1rem;
  padding: .4rem .9rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  color: var(--azul) !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  letter-spacing: .1em;
  text-transform: uppercase;
  box-shadow: 0 6px 16px rgba(202, 162, 74, .28);
}

.fgx-reviews__widget [class*="star-rating"] {
  margin-bottom: .9rem;
  filter: drop-shadow(0 4px 10px rgba(202, 162, 74, .35));
}

.fgx-reviews__widget [class*="texts-container"] {
  align-items: center;
}

/* Primer párrafo: "4.29 Promedio". El número manda y "Promedio" queda
   debajo como pie. Los dos párrafos traen color y font-weight en linea. */
.fgx-reviews__widget [class*="texts-container"] > span:first-of-type {
  margin-bottom: .35rem;
  color: rgba(0, 40, 90, .62) !important;
  font-size: .74rem !important;
  font-weight: 700 !important;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
}

.fgx-reviews__widget [class*="texts-container"] > span:first-of-type b {
  display: block;
  margin-bottom: .1rem;
  color: var(--azul);
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.04em;
}

/* Segundo párrafo: el recuento, en segundo plano. */
.fgx-reviews__widget [class*="texts-container"] > span:nth-of-type(2) {
  margin-bottom: .7rem;
  color: rgba(0, 40, 90, .68) !important;
  font-size: .86rem !important;
  text-align: center;
}

.fgx-reviews__widget [class*="texts-container"] > span:nth-of-type(2) b {
  color: var(--azul);
  font-weight: 800;
}

/* Los logotipos de Google y Facebook, montados uno sobre otro. */
.fgx-reviews__widget [class*="group_"] {
  align-items: center;
  gap: .55rem;
}

.fgx-reviews__widget [class*="avatar-group"] {
  display: flex;
}

.fgx-reviews__widget [class*="avatar-group"] [class*="avatar_"] + [class*="avatar_"] {
  margin-left: -.6rem;
}

.fgx-reviews__widget [class*="avatar-group"] svg {
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 4px 10px rgba(0, 40, 90, .18);
}

.fgx-reviews__widget [class*="group_"] > span:last-child {
  color: rgba(0, 40, 90, .68) !important;
  font-size: .84rem !important;
  font-weight: 700 !important;
}

/* El botón, con la misma pastilla que el resto de llamadas del sitio.
   El border-radius viene en linea desde los atributos del widget. */
/* El widget le mete al contenedor del botón 3rem de relleno arriba y a los
   lados: dejaba un hueco muerto y estrechaba el botón. Su regla es
   `.main-container_uL .btn-container-full-width_FM`, así que hace falta un
   selector de tres clases para ganarle sin recurrir a !important. */
.fgx-reviews__widget [class*="main-container"] [class*="btn-container"] {
  width: 100%;
  margin-top: 1.2rem;
  padding: 0;
}

.fgx-reviews__widget [class*="button_"] {
  width: 100%;
  min-height: 46px;
  padding: .7rem 1.2rem;
  border: 0;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  box-shadow: 0 14px 30px rgba(0, 40, 90, .22);
  font-family: inherit;
  font-size: .92rem;
  font-weight: 800;
  letter-spacing: .01em;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.fgx-reviews__widget [class*="button_"]:hover,
.fgx-reviews__widget [class*="button_"]:focus-visible {
  transform: translateY(-2px);
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  box-shadow: 0 18px 38px rgba(202, 162, 74, .34);
}

@media (max-width: 991.98px) {
  .fgx-reviews__widget [class*="main-container"] {
    padding: 1.5rem 1.2rem !important;
  }

  .fgx-reviews__widget [class*="texts-container"] > span:first-of-type b {
    font-size: 2.5rem;
  }
}

/* =========================================================
   CENA DE TAPAS · la foto, entera en pantallas grandes
   ---------------------------------------------------------
   La columna de la imagen es alta y estrecha (546x720 a 1440px) y la foto es
   apaisada (720x520), asi que con object-fit: cover se recortaban 325px de
   ancho: se veia el 55% de la imagen y el plato salia partido.
   A partir de 992px la imagen deja de estirarse hasta el alto de la columna y
   se muestra entera, a su proporcion, centrada en la tarjeta.
   Por debajo de 992px no se toca: ahi la caja pasa a una sola columna y el
   recorte cuadra con el hueco.
========================================================= */

@media (min-width: 992px) {
  .fgx-tapas__image {
    align-self: center;
    height: auto;
    min-height: 0;
  }

  .fgx-tapas__image picture,
  .fgx-tapas__image img {
    height: auto;
  }

  .fgx-tapas__image img {
    object-fit: contain;
    border-radius: 24px;
  }
}

/* =========================================================
   BANNER DE CARTA DE LOS ARTÍCULOS DEL BLOG
   ---------------------------------------------------------
   El marcado está copiado a mano en 36 artículos, así que aquí solo se
   reescribe el aspecto: ni una etiqueta cambia. Venía de la etapa anterior
   (degradado crema, botón naranja #ff5400 y texto azul encima) y no se
   parecía a nada del sitio.

   Ahora es el panel azul de marca con la llamada en dorado, como el resto de
   las llamadas a la acción. Estas reglas van en fgx.css, que carga después de
   flor.css, así que ganan sin pelear por especificidad; solo hace falta
   !important donde la hoja antigua ya lo usaba o donde hay estilo en línea.
========================================================= */

.banner-carta {
  overflow: hidden;
  border-radius: 30px;
  background:
    radial-gradient(circle at 14% 18%, rgba(255, 255, 255, .12) 0%, transparent 30%),
    radial-gradient(circle at 88% 82%, rgba(202, 162, 74, .28) 0%, transparent 34%),
    linear-gradient(135deg, var(--azul), var(--azulc));
  border: 1px solid rgba(209, 186, 144, .28);
  box-shadow: 0 26px 60px rgba(0, 40, 90, .26);
  animation: none;
}

.banner-carta:hover {
  transform: translateY(-3px);
  box-shadow: 0 32px 72px rgba(0, 40, 90, .32);
}

/* El velo blanco de la hoja antigua apagaba el azul. */
.banner-carta::before {
  background: none;
}

.banner-inner {
  gap: clamp(1rem, 2.5vw, 2rem);
  padding: clamp(1.4rem, 3vw, 2.2rem) clamp(1.4rem, 3vw, 2.4rem) !important;
  backdrop-filter: none;
}

/* El logotipo de color no se lee sobre el azul, y el marcado de los 36
   artículos apunta al de color. Pasarlo a blanco por filtro evita tener que
   tocarlos: es el mismo logotipo que ya usan la cabecera y el pie en azul. */
.banner-carta .banner-logo {
  filter: brightness(0) invert(1);
  opacity: .95;
}

.banner-carta .banner-lead {
  margin: 0;
  color: rgba(255, 255, 255, .92);
  font-size: clamp(1rem, 1.25vw, 1.12rem) !important;   /* pisa el style en línea */
  line-height: 1.6;
  text-wrap: balance;
}

.banner-carta .banner-lead strong {
  color: var(--amarillo);
  font-weight: 800;
}

.banner-cta-wrap {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

/* El segundo botón trae la utilidad .mt-4 de Bootstrap en el marcado de los
   36 artículos, y esa lleva !important; sin esto, el hueco lo manda ella y no
   el gap de aquí arriba. */
.banner-cta-wrap .btn + .btn,
.banner-carta .banner-cta-wrap .btn.mt-4 {
  margin-top: 0 !important;
}

/* La hoja antigua arrancaba los botones con opacity:0 y los hacía aparecer
   con una animación. En mitad de un artículo, una llamada a la acción no
   puede depender de que una animación llegue a ejecutarse. */
.banner-carta .btn-carta {
  min-width: 12.5rem;
  min-height: 50px;
  padding: .85rem 1.6rem;
  border: 1px solid transparent;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  color: var(--azul);
  font-size: .98rem;
  font-weight: 800;
  letter-spacing: .01em;
  text-shadow: none;
  opacity: 1;
  transform: none;
  animation: none;
  box-shadow: 0 12px 26px rgba(202, 162, 74, .32);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.banner-carta .btn-carta:hover,
.banner-carta .btn-carta:focus-visible {
  transform: translateY(-2px);
  background: linear-gradient(135deg, var(--dorado), var(--amarillo));
  box-shadow: 0 16px 34px rgba(202, 162, 74, .42);
  color: var(--azul);
}

/* El segundo botón, el del teléfono, en versión contorno sobre el azul.
   La hoja antigua lo fija con !important, así que aquí también. */
.banner-carta .btn-reservas {
  background: rgba(255, 255, 255, .10) !important;
  border: 1px solid rgba(255, 255, 255, .55) !important;
  color: #fff !important;
  line-height: 1.25;
  box-shadow: none;
}

.banner-carta .btn-reservas:hover,
.banner-carta .btn-reservas:focus-visible {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--azul) !important;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .22);
}

@media (max-width: 1199.98px) {
  .banner-carta .banner-lead {
    text-align: center;
  }

  .banner-cta-wrap {
    align-items: center;
  }
}

@media (max-width: 575.98px) {
  .banner-carta {
    border-radius: 24px;
  }

  .banner-carta .btn-carta {
    width: 100%;
    min-width: 0;
  }
}

/* =========================================================
   AVISO DE RESERVA DE LOS ARTÍCULOS (.alert-warning.lead)
   ---------------------------------------------------------
   Está copiado a mano en 77 artículos y por dentro tiene ocho formas
   distintas -unos llevan un botón, otros dos, otros un párrafo de más-, así
   que aquí solo se reescribe el aspecto y se respeta el apilado: cualquier
   maquetación por posiciones se rompería en las variantes.

   De dónde venía el aspecto actual: de `.fgx-article-content .lead`, una
   regla pensada para los párrafos de entradilla que este bloque heredaba de
   rebote por llevar la clase `lead`. De ahí el texto en negrita 850 y el
   botón ámbar de Bootstrap con letra azul.

   El selector lleva `.alert-warning.lead` a propósito: deja fuera el aviso de
   error del formulario de contacto y el bloque de "Respuesta rápida", que
   también son .alert-warning pero no son esto.

   Es el hermano tranquilo del banner azul de la carta: los dos conviven en 25
   artículos, y dos paneles oscuros seguidos serían un muro de publicidad.
========================================================= */

.fgx-article-content .alert-warning.lead {
  padding: clamp(1.5rem, 3vw, 2.1rem) clamp(1.3rem, 3vw, 2.2rem);
  border-radius: 30px;
  background: linear-gradient(180deg, #ffffff, #f8f5ef);
  border: 1px solid rgba(0, 40, 90, .10);
  box-shadow: 0 22px 56px rgba(0, 40, 90, .09);
  color: #4a4a4a;
  /* La regla de .lead fija el tamaño con !important. */
  font-size: 1.02rem !important;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}

.fgx-article-content .alert-warning.lead strong {
  color: var(--azul);
  font-weight: 800;
}

/* El logotipo venía a 200px desde flor.css y dominaba el bloque. */
.fgx-article-content .alert-warning.lead img {
  width: 132px;
  height: auto;
  margin-inline: auto;
}

.fgx-article-content .alert-warning.lead > div {
  padding: 0 !important;   /* .py-3.px-4 de Bootstrap */
}

/* Los huecos venían de utilidades de Bootstrap (.mb-4, .mt-5, .pt-3), que
   llevan !important y dejaban el bloque en 454px de alto para tres líneas. */
.fgx-article-content .alert-warning.lead p,
.fgx-article-content .alert-warning.lead > div > div {
  margin: 0 0 1.1rem !important;
  padding: 0 !important;
}

.fgx-article-content .alert-warning.lead p:last-child {
  margin-bottom: 0 !important;
}

/* La línea de la dirección, en segundo plano. */
.fgx-article-content .alert-warning.lead .small-text {
  color: #6a6a6a;
  font-size: .88rem;
  font-weight: 500;
}

.fgx-article-content .alert-warning.lead .small-text strong {
  color: #4a4a4a;
  font-weight: 700;
}

/* El botón: la misma pastilla azul que el resto de llamadas del sitio.
   Bootstrap pinta .btn-outline-secondary con variables propias, así que se
   fijan color y fondo aquí. */
.fgx-article-content .alert-warning.lead .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .8rem 1.6rem;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  color: #fff;
  font-size: .95rem;
  font-weight: 800;
  box-shadow: 0 14px 30px rgba(0, 40, 90, .22);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.fgx-article-content .alert-warning.lead .btn:hover,
.fgx-article-content .alert-warning.lead .btn:focus-visible {
  transform: translateY(-2px);
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  color: var(--azul);
  box-shadow: 0 18px 38px rgba(202, 162, 74, .34);
}

/* Los artículos que llevan dos botones seguidos. */
.fgx-article-content .alert-warning.lead .btn + .btn {
  margin-left: .6rem;
}

@media (max-width: 575.98px) {
  .fgx-article-content .alert-warning.lead {
    border-radius: 24px;
  }

  .fgx-article-content .alert-warning.lead .btn {
    width: 100%;
  }

  .fgx-article-content .alert-warning.lead .btn + .btn {
    margin-left: 0;
    margin-top: .6rem !important;
  }
}

/* =========================================================
   BLOG · CIERRE DEL ARTÍCULO
   Los dos bloques que van bajo el texto:
     .fgx-share    compartir en redes  (lo pinta modulos/redesscript.php)
     .fgx-navart   artículo anterior / siguiente  (js/entradas-recientes.js)

   Antes: `.redesSociales` era un `margin:60px` suelto con tres PNG de tamaños
   distintos en fila, y la navegación eran dos `d-flex` enfrentados sin caja,
   cuyos títulos casi se tocaban en el centro a 1440px. Los dos bloques tenían
   la misma pinta de HTML sin terminar; ahora son dos tarjetas del sitio.
========================================================= */

/* ------------------------------------------------- Compartir en redes */

#social-share-container {
  margin-top: clamp(2rem, 5vw, 3.25rem);
}

.fgx-share {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.15rem 1.1rem;
  padding: clamp(1.35rem, 3vw, 1.85rem) clamp(1.35rem, 3vw, 2rem);
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 28px;
  background: linear-gradient(135deg, #ffffff, var(--fgx-bg));
  box-shadow: 0 20px 48px rgba(0, 40, 90, .08);
}

.fgx-share__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .6rem;
  padding: .38rem .85rem;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 999px;
  background: rgba(0, 40, 90, .07);
  color: var(--azul);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-share__eyebrow::before {
  content: "";
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-share__titulo {
  margin: 0;
  color: var(--azul);
  font-size: clamp(1.05rem, 2.2vw, 1.2rem);
  font-weight: 800;
  line-height: 1.25;
}

.fgx-share__links {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

.fgx-share__link {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  min-height: 48px;
  padding: .5rem 1rem .5rem .5rem;
  border: 1px solid rgba(0, 40, 90, .12);
  border-radius: 999px;
  background: #ffffff;
  color: var(--azul);
  font-size: .95rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(0, 40, 90, .08);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    color .22s ease;
}

/* El disco del icono: es lo que se tiñe con el color de cada red al pasar por
   encima, para no repintar la pastilla entera y perder el contraste del texto. */
.fgx-share__ico {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(0, 40, 90, .07);
  color: var(--azul);
  transition: background .22s ease, color .22s ease, transform .22s ease;
}

/* base.css se carga después que este archivo y fija .ico a 1em; hacen falta
   dos clases para ganarle. */
.fgx-share__ico .ico {
  width: 17px;
  height: 17px;
  vertical-align: 0;
}

.fgx-share__link:hover,
.fgx-share__link:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(0, 40, 90, .18);
  box-shadow: 0 18px 36px rgba(0, 40, 90, .16);
}

.fgx-share__link:focus-visible {
  outline: 3px solid rgba(202, 162, 74, .45);
  outline-offset: 3px;
}

.fgx-share__link:hover .fgx-share__ico,
.fgx-share__link:focus-visible .fgx-share__ico {
  transform: scale(1.06);
  color: #ffffff;
}

.fgx-share__link--facebook:hover .fgx-share__ico,
.fgx-share__link--facebook:focus-visible .fgx-share__ico { background: #1877f2; }

.fgx-share__link--x:hover .fgx-share__ico,
.fgx-share__link--x:focus-visible .fgx-share__ico { background: #000000; }

.fgx-share__link--instagram:hover .fgx-share__ico,
.fgx-share__link--instagram:focus-visible .fgx-share__ico {
  background: linear-gradient(45deg, #f09433, #dc2743 55%, #bc1888);
}

/* --------------------------------- Artículo anterior / siguiente */

.fgx-navart {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: clamp(1.5rem, 4vw, 2.25rem) 0 0;
}

/* Los huecos se quedan vacíos en el primer y el último artículo: el que exista
   mantiene su lado en lugar de saltar al centro. */
.fgx-navart__hueco:empty {
  display: none;
}

.fgx-navart__hueco:empty + .fgx-navart__hueco--sig {
  grid-column: 2;
}

.fgx-navart__card {
  display: flex;
  align-items: center;
  gap: 1rem;
  height: 100%;
  padding: .85rem;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 24px;
  background: #ffffff;
  color: var(--azul);
  text-decoration: none;
  box-shadow: 0 14px 34px rgba(0, 40, 90, .07);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease;
}

.fgx-navart__card:hover,
.fgx-navart__card:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(202, 162, 74, .45);
  color: var(--azul);
  text-decoration: none;
  box-shadow: 0 22px 46px rgba(0, 40, 90, .14);
}

.fgx-navart__card:focus-visible {
  outline: 3px solid rgba(202, 162, 74, .45);
  outline-offset: 3px;
}

.fgx-navart__media {
  flex: 0 0 auto;
  display: block;
  width: 88px;
  height: 88px;
  overflow: hidden;
  border-radius: 18px;
  background: var(--fgx-bg);
}

.fgx-navart__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.fgx-navart__card:hover .fgx-navart__media img {
  transform: scale(1.06);
}

.fgx-navart__texto {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  min-width: 0;      /* sin esto el título largo desborda la rejilla */
}

.fgx-navart__label {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: #6a6a6a;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.fgx-navart__label .ico {
  width: 13px;
  height: 13px;
  vertical-align: 0;
  color: var(--amarillo);
  transition: transform .22s ease;
}

/* La flecha del sprite apunta a la derecha; en "anterior" se voltea. */
.fgx-navart__card:not(.fgx-navart__card--sig) .fgx-navart__label .ico {
  transform: scaleX(-1);
}

.fgx-navart__card:not(.fgx-navart__card--sig):hover .fgx-navart__label .ico {
  transform: scaleX(-1) translateX(3px);
}

.fgx-navart__card--sig:hover .fgx-navart__label .ico {
  transform: translateX(3px);
}

.fgx-navart__titulo {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--azul);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.35;
}

/* La tarjeta de "siguiente" es la misma en espejo. */
.fgx-navart__card--sig {
  text-align: right;
}

.fgx-navart__card--sig .fgx-navart__texto {
  align-items: flex-end;
}

@media (max-width: 767.98px) {
  .fgx-share {
    padding: 1.25rem;
    border-radius: 22px;
  }

  .fgx-share__links {
    width: 100%;
    gap: .55rem;
  }

  .fgx-share__link {
    flex: 1 1 auto;
    justify-content: center;
    min-height: 44px;
    padding: .4rem .9rem .4rem .4rem;
    font-size: .9rem;
  }

  .fgx-share__ico {
    width: 32px;
    height: 32px;
  }

  /* Una debajo de otra: dos tarjetas con foto no caben en una fila de móvil. */
  .fgx-navart {
    grid-template-columns: 1fr;
  }

  .fgx-navart__hueco:empty + .fgx-navart__hueco--sig {
    grid-column: 1;
  }

  /* Y en columna las dos se leen igual, de izquierda a derecha. */
  .fgx-navart__card--sig {
    flex-direction: row-reverse;
    text-align: left;
  }

  .fgx-navart__card--sig .fgx-navart__texto {
    align-items: flex-start;
  }

  .fgx-navart__media {
    width: 76px;
    height: 76px;
    border-radius: 16px;
  }

  .fgx-navart__titulo {
    font-size: .95rem;
  }
}

/* Los dos bloques viven dentro de .fgx-article-content, y sus reglas de
   párrafo y de enlace (`.fgx-article-content p` y `.fgx-article-content a`)
   pesan 0-1-1: le ganan a una sola clase. De ahí que el texto de las pastillas
   saliera en azul claro y con el peso 850 de los enlaces del artículo, y que el
   titular heredara el gris de los párrafos. Se repiten aquí con el contenedor
   delante, que es lo único que cambia. */

.fgx-article-content .fgx-share__titulo {
  margin: 0;
  color: var(--azul);
  font-size: clamp(1.05rem, 2.2vw, 1.2rem);
  font-weight: 800;
  line-height: 1.25;
}

.fgx-article-content .fgx-share__link {
  color: var(--azul);
  font-weight: 700;
}

.fgx-article-content .fgx-share__link:hover,
.fgx-article-content .fgx-share__link:focus-visible {
  color: var(--azul);
  text-decoration: none;
}

.fgx-article-content .fgx-navart__card {
  color: var(--azul);
  font-weight: 700;
}

.fgx-article-content .fgx-navart__card:hover,
.fgx-article-content .fgx-navart__card:focus-visible {
  color: var(--azul);
  text-decoration: none;
}

/* Entre 992 y 1199 px el artículo comparte fila con el aside y su columna baja
   a unos 580 px: dos tarjetas ahí dejan el título en 170 px y lo parten a media
   palabra. En ese tramo van una debajo de otra, como en móvil. Por debajo de
   992 el aside se apila y la columna vuelve a ser ancha, así que las dos
   tarjetas caben otra vez. */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .fgx-navart {
    grid-template-columns: 1fr;
  }

  .fgx-navart__hueco:empty + .fgx-navart__hueco--sig {
    grid-column: 1;
  }

  .fgx-navart__card--sig {
    flex-direction: row-reverse;
    text-align: left;
  }

  .fgx-navart__card--sig .fgx-navart__texto {
    align-items: flex-start;
  }
}

/* =========================================================
   LISTAS .ol-modern DENTRO DE UN ARTÍCULO
   ---------------------------------------------------------
   Venían de flor.css con aspecto propio -tarjeta de 14px, sombra más marcada,
   disco amarillo de 36px y un salto de 2px al pasar por encima- y no se
   parecían a ninguna otra lista del blog, que son tarjetas de 22px con un
   check dorado. Aquí pasan a ser esa misma tarjeta: cambia solo el distintivo.

   Y el distintivo cambia según la etiqueta, no según la clase: de las
   diecisiete listas que llevan `ol-modern`, catorce son `<ul>`. Numerar una
   enumeración sin orden -"un restaurante cuidado", "una ubicación cómoda"...-
   hacía leer una secuencia donde no la hay, así que el número se queda solo
   en los `<ol>` y los `<ul>` llevan el check del resto de listas.

   El relleno se repite aquí con el mismo valor que la regla genérica de `li`
   en vez de fiarse de heredarlo: el número era lo que tapaba las primeras
   letras cuando flor.css reservaba 64px y fgx.css bajaba el relleno a 48.

   El marcador va en posición absoluta, no como elemento de una fila flex: la
   mitad de estos `<li>` empiezan por un `<strong>`, y en flex ese `<strong>`
   se convierte en una columna aparte y parte el texto en dos bloques.
========================================================= */

.fgx-article-content .ol-modern {
  counter-reset: li;
}

.fgx-article-content .ol-modern > li {
  counter-increment: li;
  position: relative;
  padding: 1rem 1rem 1rem 3rem;
  border-radius: 22px;
  border: 1px solid rgba(0, 40, 90, .08);
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 12px 30px rgba(0, 40, 90, .05);
  color: #414141;
  line-height: 1.62;
}

/* El número: 1,55rem desde left:1rem, así que acaba en 2,55 y el texto entra
   en 3. El disco amarillo de antes medía 36px y llegaba hasta 54. */
.fgx-article-content .ol-modern > li::before {
  content: counter(li);
  position: absolute;
  left: 1rem;
  top: 1.02rem;
  display: grid;
  place-items: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--azulc), var(--azul));
  color: #ffffff;
  font-size: .8rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 6px 14px rgba(0, 40, 90, .22);
}

/* Sin orden, sin número: el mismo check dorado que las demás listas del
   artículo, con la imagen dentro del atajo `background` porque como
   declaración suelta la borraría ese mismo atajo. */
.fgx-article-content ul.ol-modern > li::before {
  content: "";
  top: 1.05rem;
  width: 1.35rem;
  height: 1.35rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%2300285a' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / .78rem .78rem no-repeat, var(--dorado);
  box-shadow: none;
}

.fgx-article-content .ol-modern > li > strong {
  color: var(--azul);
  font-weight: 800;
}

.fgx-article-content .ol-modern > li > small {
  color: #6a6a6a;
}

@media (max-width: 575.98px) {
  .fgx-article-content .ol-modern > li {
    padding: .9rem .95rem .9rem 2.8rem;
    border-radius: 18px;
  }

  .fgx-article-content .ol-modern > li::before {
    left: .85rem;
    top: .92rem;
  }

  .fgx-article-content ul.ol-modern > li::before {
    top: .95rem;
  }
}

/* =========================================================
   TABLAS DENTRO DE UN ARTÍCULO
   ---------------------------------------------------------
   Son doce, repartidas en once artículos, y hasta ahora eran Bootstrap en
   crudo: rejilla de bordes grises, cebra gris y esquinas rectas. Aquí pasan a
   ser la misma tarjeta que el resto del blog, con la cabecera en la banda azul
   de la web.

   El estilo cuelga de `.table`, no de las clases que trae cada una: entre las
   doce hay `table-bordered table-striped align-middle`, `table-modern`, un
   `thead-dark` de Bootstrap 4 que ya no pinta nada y una `table` a secas. Así
   quedan todas iguales sin tocar el marcado de once ficheros.

   Tres formas que hay que respetar:
     · con `<thead>`, que es lo normal;
     · sin `<thead>` y con `<th scope="row">` en la primera columna, que es
       una tabla de dato y valor (el valor nutricional del changurro);
     · sin envoltorio `.table-responsive` -esa misma-, así que la tarjeta la
       dibuja la tabla y no el envoltorio.

   Sin sombra a propósito: `.table-responsive` es un `overflow-x: auto`, o sea
   una caja que recorta, y cualquier sombra de la tabla se cortaría por los
   lados. El borde y la banda de cabecera bastan para separarla del texto.
========================================================= */

.fgx-article-content .table-responsive {
  margin: 1.8rem 0;
}

.fgx-article-content .table {
  width: 100%;
  margin: 1.8rem 0;
  /* `separate` con espaciado cero es lo que permite redondear las esquinas:
     con `collapse` el navegador ignora el recorte y la cabecera vuelve a
     salir en pico. */
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 22px;
  overflow: hidden;
  background: #ffffff;
  color: #414141;
  font-size: .98rem;
}

/* Dentro del envoltorio, los márgenes los pone el envoltorio. */
.fgx-article-content .table-responsive > .table {
  margin: 0;
}

/* Bootstrap tiñe las celdas con una sombra interior de 9999px sobre
   `--bs-table-bg-type`, así que la cebra no se puede cambiar poniendo un
   fondo al `<tr>`: hay que apagar la suya primero. */
.fgx-article-content .table > :not(caption) > * > * {
  --bs-table-accent-bg: transparent;
  --bs-table-bg-type: transparent;
  --bs-table-bg-state: transparent;
  padding: .95rem 1.1rem;
  border: 0;
  border-bottom: 1px solid rgba(0, 40, 90, .07);
  background-color: transparent;
  box-shadow: none;
  vertical-align: middle;
}

/* La cabecera, la banda azul de la web. */
.fgx-article-content .table > thead > tr > * {
  border-bottom: 0;
  /* Vertical y corta: en diagonal, sobre una banda tan ancha, la primera
     columna salía notablemente más clara que la última. */
  background: linear-gradient(180deg, #00397c, var(--azul));
  color: #ffffff;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .09em;
  line-height: 1.35;
  text-transform: uppercase;
}

/* Cebra tenue, la misma para todas: da igual que la tabla traiga
   `table-striped` o no. */
.fgx-article-content .table > tbody > tr:nth-of-type(even) > * {
  background-color: rgba(0, 40, 90, .025);
}

.fgx-article-content .table > tbody > tr:hover > * {
  background-color: rgba(202, 162, 74, .10);
}

.fgx-article-content .table > tbody > tr:last-child > * {
  border-bottom: 0;
}

/* La primera columna es la etiqueta de la fila en las doce tablas, venga como
   `<th scope="row">` o como un `<td>`. Se marca por posición y no por el
   `<strong>` que llevan diez de ellas: hay celdas de texto corrido que
   empiezan por un `<strong>` -"<strong>centro de mesa variado</strong> con
   1-2 entrantes..."- y se habrían teñido de azul sin venir a cuento. */
.fgx-article-content .table > tbody > tr > th,
.fgx-article-content .table > tbody > tr > td:first-child {
  color: var(--azul);
  font-weight: 800;
}

.fgx-article-content .table > tbody > tr > th {
  font-size: .98rem;
  text-align: left;
}

.fgx-article-content .table a {
  font-weight: 800;
}

.fgx-article-content .table caption {
  padding: .9rem 1.1rem 0;
  color: #6a6a6a;
  font-size: .88rem;
}

@media (max-width: 767.98px) {
  .fgx-article-content .table {
    border-radius: 18px;
    font-size: .92rem;
  }

  .fgx-article-content .table > :not(caption) > * > * {
    padding: .75rem .8rem;
  }

  .fgx-article-content .table > thead > tr > * {
    font-size: .7rem;
    letter-spacing: .06em;
  }
}

/* En un móvil, una tabla de tres columnas con texto dentro se encoge hasta
   dejar dos o tres palabras por línea: la de "Restaurante en Madrid" medía
   800px de alto en una pantalla de 390. Se le pone un ancho mínimo para que
   `.table-responsive` haga lo que se supone que hace, que es desplazarse en
   horizontal, y las filas se lean como filas.

   Solo las que tienen `<thead>`. La de dato y valor -el valor nutricional del
   changurro- son dos columnas cortas que caben de sobra, y forzarlas a
   desplazarse sería empeorarlas. */
@media (max-width: 767.98px) {
  .fgx-article-content .table-responsive > .table:has(thead) {
    min-width: 30rem;
  }
}

/* Y el aviso de que hay tabla a la derecha, que si no la única pista es el
   corte. Va pegado a la izquierda con `sticky` porque vive DENTRO de la caja
   que se desplaza: sin eso se iría con la tabla en cuanto deslizas. */
@media (max-width: 575.98px) {
  .fgx-article-content .table-responsive:has(> .table thead)::after {
    content: "Desliza la tabla para ver el resto →";
    position: sticky;
    left: 0;
    display: block;
    width: min(100%, 22rem);
    margin-top: .6rem;
    color: #6a6a6a;
    font-size: .8rem;
    font-weight: 600;
  }
}

/* =========================================================
   TARJETAS DE PLAN DENTRO DE UN ARTÍCULO (.fgx-planes)
   ---------------------------------------------------------
   Cuatro momentos -entre semana, trabajo, grupos y carta- que antes eran
   `p-4 border rounded-4 h-100` de Bootstrap: caja gris de un pixel, esquinas
   de 16px y nada más. Ahora son la tarjeta del sitio, con foto.

   La foto de cada una es el banner de la página a la que enlaza, recortado a
   600x375, para que la tarjeta enseñe a dónde lleva. Las de `/menus`,
   `/menus/menu-para-grupos` y `/carta` salen del banner de esa página; la de
   trabajo es la imagen del propio artículo enlazado.

   Va con `alt=""`: la foto acompaña, no informa. Lo que hay que leer está en
   el titular y en el texto, y el enlace ya lleva su `title`.

   El enlace se queda dentro del texto, donde estaba. Convertir la tarjeta
   entera en enlace obligaría a reescribir las cuatro frases -en tres de ellas
   el enlace va a mitad- y dejaría dos enlaces al mismo sitio en la misma
   tarjeta.
========================================================= */

.fgx-planes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 1.9rem 0 2.2rem;
}

.fgx-planes__card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff, var(--fgx-bg));
  box-shadow: 0 16px 38px rgba(0, 40, 90, .07);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease;
}

.fgx-planes__card:hover {
  transform: translateY(-4px);
  border-color: rgba(202, 162, 74, .45);
  box-shadow: 0 26px 54px rgba(0, 40, 90, .14);
}

.fgx-planes__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--fgx-bg);
}

.fgx-planes__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}

.fgx-planes__card:hover .fgx-planes__media img {
  transform: scale(1.05);
}

.fgx-planes__cuerpo {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  padding: 1.25rem 1.35rem 1.4rem;
}

/* `.fgx-article-content h3` trae su propio tamaño y sus propios márgenes; hace
   falta el contenedor delante para ganarle. */
.fgx-article-content .fgx-planes__titulo {
  margin: 0;
  color: var(--azul);
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.3;
}

.fgx-article-content .fgx-planes__texto {
  margin: 0;
  color: #4a4a4a;
  font-size: .99rem;
  line-height: 1.62;
}

@media (max-width: 575.98px) {
  .fgx-planes {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }

  .fgx-planes__card {
    border-radius: 20px;
  }

  .fgx-planes__cuerpo {
    padding: 1.1rem 1.15rem 1.25rem;
  }
}

/* =========================================================
   FORMULARIO DE CONTACTO (.formulario-contacto)
   ---------------------------------------------------------
   Era Bootstrap en crudo: campos de 38px con borde gris y esquinas de 6px, y
   un botón amarillo a todo lo ancho con el texto en mayúsculas pegado a la
   izquierda. Ahora es la tarjeta del sitio y los campos respiran.

   La tarjeta es el propio `<form>`: así no hace falta un `<div>` de más, y el
   aviso de error se queda fuera, encima, que es donde se ve antes.

   El fondo continúa el del bloque de contacto que va justo arriba, que acaba
   en #f8f5ef: de ahí a blanco, para que no se vea el corte entre los dos.
========================================================= */

.formulario-contacto {
  background: linear-gradient(180deg, var(--fgx-bg), #ffffff);
}

#contacto_form {
  padding: clamp(1.5rem, 4vw, 2.6rem);
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 30px;
  background: #ffffff;
  box-shadow: 0 26px 60px rgba(0, 40, 90, .09);
}

.formulario-contacto .form-label {
  margin-bottom: .45rem;
  color: var(--azul);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.formulario-contacto .form-control {
  min-height: 54px;
  padding: .85rem 1.1rem;
  border: 1px solid rgba(0, 40, 90, .14);
  border-radius: 16px;
  background: var(--fgx-bg);
  color: #333333;
  font-size: 1rem;
  box-shadow: none;
  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}

.formulario-contacto textarea.form-control {
  min-height: 170px;
  resize: vertical;
}

.formulario-contacto .form-control::placeholder {
  color: #9a9a9a;
  opacity: 1;           /* Firefox lo baja a .54 por su cuenta */
}

/* El foco se ve: es el único momento en que se sabe en qué campo se escribe.
   Bootstrap trae su propio `:focus` con dos clases, así que hacen falta tres. */
.formulario-contacto .form-control:focus {
  border-color: rgba(0, 101, 209, .55);
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(0, 101, 209, .14);
  outline: none;
}

/* La casilla de privacidad venía en el tamaño de sistema, 13px: en un móvil
   es un objetivo muy pequeño para el dedo.

   Y en fila, no con el `padding-left` + margen negativo de Bootstrap: en un
   móvil la etiqueta ocupa dos líneas y con ese apaño la casilla se descolgaba
   a la segunda. */
.formulario-contacto .form-check {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding-left: 0;
}

.formulario-contacto .form-check-input {
  flex: 0 0 auto;
  float: none;
  width: 1.3rem;
  height: 1.3rem;
  margin-top: .17rem;
  margin-left: 0;
  border: 1px solid rgba(0, 40, 90, .30);
  border-radius: .45rem;
  background-color: #ffffff;
  cursor: pointer;
}

.formulario-contacto .form-check-input:checked {
  border-color: var(--azul);
  background-color: var(--azul);
}

.formulario-contacto .form-check-input:focus {
  border-color: rgba(0, 101, 209, .55);
  box-shadow: 0 0 0 4px rgba(0, 101, 209, .14);
}

.formulario-contacto .form-check-label {
  color: #4a4a4a;
  font-size: .96rem;
  line-height: 1.55;
  cursor: pointer;
}

/* El botón, la misma pastilla azul del resto del sitio. Va por id porque
   flor.css pinta `.btn-primary` en amarillo, con el texto en mayúsculas y
   alineado a la izquierda. */
.formulario-contacto #contacto_submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  width: 100%;
  min-height: 58px;
  padding: .9rem 2rem;
  border: 0;
  border-radius: 999px;
  /* Vertical: en diagonal, a todo lo ancho, la mitad izquierda salía mucho
     más clara y el botón parecía una barra de progreso. */
  background: linear-gradient(180deg, #00397c, var(--azul));
  /* flor.css pinta .btn-primary con `color: var(--azul)!important` y le fija
     70px de alto; sin !important el texto seguiría saliendo azul sobre azul. */
  color: #ffffff !important;
  height: auto;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: .01em;
  text-align: center;
  text-transform: none;
  box-shadow: 0 18px 38px rgba(0, 40, 90, .22);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease;
}

.formulario-contacto #contacto_submit .ico {
  width: 15px;
  height: 15px;
  vertical-align: 0;
  transition: transform .22s ease;
}

/* El `:hover` solo donde hay ratón: en una pantalla táctil se queda pegado
   después de tocar y el botón se queda dorado hasta que tocas en otro sitio.
   El `:focus-visible` sí va siempre, que es lo que se ve al tabular. */
.formulario-contacto #contacto_submit:focus-visible {
  transform: translateY(-2px);
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  color: var(--azul) !important;
  box-shadow: 0 22px 44px rgba(202, 162, 74, .34);
}

@media (hover: hover) {
  .formulario-contacto #contacto_submit:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg, var(--amarillo), var(--dorado));
    color: var(--azul) !important;
    box-shadow: 0 22px 44px rgba(202, 162, 74, .34);
  }

  .formulario-contacto #contacto_submit:hover .ico {
    transform: translateX(3px);
  }
}

.formulario-contacto #contacto_submit:focus-visible {
  outline: 3px solid rgba(202, 162, 74, .45);
  outline-offset: 3px;
}

.fgx-form__nota {
  margin: 1rem 0 0;
  color: #6a6a6a;
  font-size: .88rem;
  text-align: center;
}

/* El aviso de que el envío ha fallado. Se estiliza aquí dentro y no en
   `.alert-warning` a secas: esa clase la usan también los avisos de los
   artículos y el bloque de "Respuesta rápida". */
.formulario-contacto .alert-warning {
  margin-bottom: 1.5rem;
  padding: 1.1rem 1.3rem;
  border: 1px solid rgba(176, 32, 32, .20);
  border-left: 4px solid #c0392b;
  border-radius: 18px;
  background: #fff8f7;
  color: #7d2b25;
  font-weight: 600;
}

.formulario-contacto .alert-warning a {
  color: #7d2b25;
  font-weight: 800;
  text-decoration: underline;
}

@media (max-width: 575.98px) {
  #contacto_form {
    border-radius: 24px;
  }

  .formulario-contacto .form-control {
    min-height: 50px;
    border-radius: 14px;
  }
}

/* Email o teléfono: la línea que explica que basta con uno, y el aviso que
   aparece cuando falta algo. */

.fgx-form__ayuda {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: .55rem 0 1.15rem;
  color: #6a6a6a;
  font-size: .88rem;
}

.fgx-form__ayuda::before {
  content: "";
  flex: 0 0 auto;
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 4px rgba(202, 162, 74, .18);
}

.fgx-form__error {
  margin: 0 0 1rem;
  padding: .85rem 1.1rem;
  border: 1px solid rgba(176, 32, 32, .20);
  border-left: 4px solid #c0392b;
  border-radius: 16px;
  background: #fff8f7;
  color: #7d2b25;
  font-size: .96rem;
  font-weight: 600;
}

/* El campo que hay que corregir. Bootstrap trae `.is-invalid` con su propio
   borde rojo y un icono de fondo; aquí se sustituye por el borde y el halo
   que ya usan estos campos al recibir el foco, para que sea el mismo lenguaje. */
.formulario-contacto .form-control.is-invalid {
  border-color: rgba(192, 57, 43, .55);
  background-color: #fff8f7;
  background-image: none;
  padding-right: 1.1rem;
}

.formulario-contacto .form-control.is-invalid:focus {
  border-color: rgba(192, 57, 43, .75);
  box-shadow: 0 0 0 4px rgba(192, 57, 43, .14);
}

.formulario-contacto .form-check-input.is-invalid {
  border-color: rgba(192, 57, 43, .60);
}

/* =========================================================
   PAGINA DE AGRADECIMIENTO (.fgx-gracias)
   ---------------------------------------------------------
   Era un display-4 en negro, dos botones amarillos apilados a la izquierda
   -flor.css le da a .btn-primary display:flex y width:200px, asi que no se
   ponian en fila- y un margin-bottom de 200px que dejaba media pantalla en
   blanco antes del pie.

   Ahora es la confirmacion del sitio: la marca de recibido, el aviso de que
   para hoy mejor llamar, y tres sitios a los que ir. Quien acaba de escribir
   no tiene que quedarse mirando una pagina vacia.
========================================================= */

.fgx-gracias {
  position: relative;
  padding: clamp(3rem, 8vw, 6rem) 0 clamp(3.5rem, 8vw, 6rem);
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 101, 209, .08) 0%, transparent 34%),
    radial-gradient(circle at 92% 88%, rgba(202, 162, 74, .16) 0%, transparent 35%),
    linear-gradient(180deg, #ffffff 0%, var(--fgx-bg) 100%);
}

/* Los circulos, en su propia capa. Ponerlos en la seccion obligaria a un
   overflow:hidden ahi, y eso convierte la seccion en una caja de scroll. */
.fgx-gracias__deco {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.fgx-gracias__deco::before,
.fgx-gracias__deco::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.fgx-gracias__deco::before {
  left: -120px;
  top: 60px;
  width: 320px;
  height: 320px;
  background: rgba(0, 40, 90, .05);
}

.fgx-gracias__deco::after {
  right: -140px;
  bottom: 40px;
  width: 380px;
  height: 380px;
  background: rgba(202, 162, 74, .10);
}

.fgx-gracias .container {
  position: relative;
  z-index: 1;
}

.fgx-gracias__card {
  padding: clamp(2rem, 5vw, 3.2rem) clamp(1.5rem, 5vw, 3.2rem);
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 32px;
  background: #ffffff;
  box-shadow: 0 30px 70px rgba(0, 40, 90, .10);
  text-align: center;
}

/* La marca de recibido. El circulo va en dorado y no en verde: el verde de
   "correcto" no esta en ninguna otra parte del sitio. */
.fgx-gracias__marca {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  margin: 0 auto 1.4rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--amarillo), var(--dorado));
  box-shadow: 0 16px 34px rgba(202, 162, 74, .34);
}

.fgx-gracias__marca .ico {
  width: 38px;
  height: 38px;
  vertical-align: 0;
  color: var(--azul);
}

.fgx-gracias__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding: .45rem 1rem;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 999px;
  background: rgba(0, 40, 90, .07);
  color: var(--azul);
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-gracias__eyebrow::before {
  content: "";
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: var(--amarillo);
  box-shadow: 0 0 0 5px rgba(202, 162, 74, .18);
}

.fgx-gracias__title {
  margin: 0 0 .9rem;
  color: var(--azul);
  font-size: clamp(1.9rem, 5vw, 2.9rem);
  font-weight: 800;
  line-height: 1.15;
}

.fgx-gracias__lead {
  max-width: 34rem;
  margin: 0 auto 1.6rem;
  color: #4a4a4a;
  font-size: clamp(1rem, 2.4vw, 1.1rem);
  line-height: 1.7;
}

.fgx-gracias__aviso {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 0 1.8rem;
  padding: .8rem 1.2rem;
  border: 1px solid rgba(202, 162, 74, .32);
  border-radius: 18px;
  background: rgba(202, 162, 74, .10);
  color: #5a4a28;
  font-size: .96rem;
  font-weight: 600;
}

.fgx-gracias__aviso .ico {
  width: 16px;
  height: 16px;
  vertical-align: 0;
  color: var(--dorado);
}

.fgx-gracias__aviso a {
  color: var(--azul);
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.fgx-gracias__aviso a:hover {
  text-decoration: underline;
}

.fgx-gracias__acciones {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  justify-content: center;
}

/* Botones propios: flor.css pinta .btn-primary en amarillo, con display:flex
   y 200px de ancho fijo, y por eso los dos de antes salian uno debajo del
   otro y alineados a la izquierda. */
.fgx-gracias__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 54px;
  padding: .85rem 1.7rem;
  border: 1px solid rgba(0, 40, 90, .14);
  border-radius: 999px;
  background: #ffffff;
  color: var(--azul);
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 12px 26px rgba(0, 40, 90, .08);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease;
}

.fgx-gracias__btn .ico {
  width: 16px;
  height: 16px;
  vertical-align: 0;
}

.fgx-gracias__btn--principal {
  border-color: transparent;
  background: linear-gradient(180deg, #00397c, var(--azul));
  color: #ffffff;
  box-shadow: 0 18px 38px rgba(0, 40, 90, .24);
}

.fgx-gracias__btn:focus-visible {
  outline: 3px solid rgba(202, 162, 74, .45);
  outline-offset: 3px;
}

@media (hover: hover) {
  .fgx-gracias__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px rgba(0, 40, 90, .16);
    color: var(--azul);
  }

  .fgx-gracias__btn--principal:hover {
    background: linear-gradient(135deg, var(--amarillo), var(--dorado));
    color: var(--azul);
    box-shadow: 0 22px 44px rgba(202, 162, 74, .34);
  }
}

/* ------------------------------------------- Mientras tanto, puedes ver */

.fgx-gracias__mientras {
  margin: clamp(2rem, 5vw, 2.8rem) 0 1rem;
  color: #6a6a6a;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-align: center;
  text-transform: uppercase;
}

.fgx-gracias__enlaces {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.fgx-gracias__enlace {
  display: flex;
  align-items: center;
  gap: .9rem;
  height: 100%;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(0, 40, 90, .10);
  border-radius: 22px;
  background: rgba(255, 255, 255, .92);
  color: var(--azul);
  text-decoration: none;
  box-shadow: 0 14px 32px rgba(0, 40, 90, .07);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease;
}

.fgx-gracias__enlace:focus-visible {
  outline: 3px solid rgba(202, 162, 74, .45);
  outline-offset: 3px;
}

@media (hover: hover) {
  .fgx-gracias__enlace:hover {
    transform: translateY(-3px);
    border-color: rgba(202, 162, 74, .45);
    color: var(--azul);
    box-shadow: 0 22px 44px rgba(0, 40, 90, .13);
  }
}

.fgx-gracias__enlace-ico {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: rgba(0, 40, 90, .07);
  color: var(--azul);
}

.fgx-gracias__enlace-ico .ico {
  width: 19px;
  height: 19px;
  vertical-align: 0;
}

.fgx-gracias__enlace-texto {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  min-width: 0;
  color: #6a6a6a;
  font-size: .88rem;
  line-height: 1.4;
}

.fgx-gracias__enlace-texto strong {
  color: var(--azul);
  font-size: 1.02rem;
  font-weight: 800;
}

@media (max-width: 767.98px) {
  .fgx-gracias__enlaces {
    grid-template-columns: minmax(0, 1fr);
  }

  .fgx-gracias__card {
    border-radius: 26px;
  }

  .fgx-gracias__acciones .fgx-gracias__btn {
    width: 100%;
  }
}

/* El horario dentro de la tarjeta de gracias. Va separado por una linea de
   pelo, no en otra caja: es informacion de apoyo, no un bloque aparte. */

.fgx-gracias__horario {
  margin-top: clamp(1.6rem, 4vw, 2.2rem);
  padding-top: clamp(1.4rem, 4vw, 1.9rem);
  border-top: 1px solid rgba(0, 40, 90, .10);
}

.fgx-gracias__horario-titulo {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 1rem;
  color: var(--azul);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.fgx-gracias__horario-titulo .ico {
  width: 15px;
  height: 15px;
  vertical-align: 0;
  color: var(--dorado);
}

.fgx-gracias__horario-lista {
  margin: 0;
  text-align: left;
}

.fgx-gracias__horario-fila {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: .7rem .95rem;
  border-radius: 14px;
}

/* Las filas alternas con un fondo tenue: es una tabla de dos columnas
   disfrazada y sin la banda cuesta seguir la linea de izquierda a derecha. */
.fgx-gracias__horario-fila:nth-child(odd) {
  background: rgba(0, 40, 90, .03);
}

.fgx-gracias__horario-fila dt {
  margin: 0;
  color: var(--azul);
  font-size: .98rem;
  font-weight: 800;
}

.fgx-gracias__horario-fila dd {
  margin: 0;
  color: #4a4a4a;
  font-size: .98rem;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

/* El dia de cierre, en gris: que se vea de un vistazo que ese no cuenta. */
.fgx-gracias__horario-fila--cerrado dt,
.fgx-gracias__horario-fila--cerrado dd {
  color: #8a8a8a;
  font-weight: 700;
}

@media (max-width: 419.98px) {
  .fgx-gracias__horario-fila {
    flex-direction: column;
    align-items: flex-start;
    gap: .15rem;
  }

  .fgx-gracias__horario-fila dd {
    text-align: left;
  }
}
