/*
 * PUBLIMPACTO · FOOTER PREMIUM GLOBAL · V1
 * ------------------------------------------------------------
 * Componente global autónomo.
 * No depende del CSS específico de Storytelling.
 *
 * HTML:
 *   /components/footer-premium.html
 *
 * Loader:
 *   /js/footer-shell.js
 *
 * La geometría 3D vive DENTRO del HTML del componente.
 * Este CSS contiene su construcción, posición, animación y visibilidad.
 */

.pi-footer-premium {
  --pi-footer-bg: var(--pi-ink, #111111);
  --pi-footer-black: #000;
  --pi-footer-white: #fff;
  --pi-footer-live: var(--pi-brand-live-color, #e3063b);
  --pi-footer-line: rgba(255,255,255,.14);
  --pi-footer-muted: rgba(255,255,255,.56);
  --pi-footer-soft: rgba(255,255,255,.76);
  --pi-footer-fast: 180ms;
  --pi-footer-ease: cubic-bezier(.2,.8,.2,1);

  /*
   * RETÍCULA HORIZONTAL DEL FOOTER
   * --------------------------------------------------------
   * La referencia aprobada es la sección de formulario de
   * Storytelling: contenido útil de hasta 1380 px y 20 px
   * exteriores (16 px en teléfono). El fondo negro continúa
   * ocupando todo el viewport.
   */
  --pi-footer-content-max: 1380px;
  --pi-footer-edge: 20px;

  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  padding: clamp(2rem, 3vw, 2.65rem) 0 clamp(1.65rem, 2.5vw, 2.1rem);
  background: var(--pi-footer-bg) !important;
  color: var(--pi-footer-white);
}

.pi-footer-premium,
.pi-footer-premium * {
  box-sizing: border-box;
}

.pi-footer-premium > .mi-invert-fix {
  position: relative;
  z-index: 2;
  height: auto;
}

.pi-footer-premium .pi-footer-premium__container {
  position: relative;
  z-index: 2;

  /*
   * Mismo eje REAL que .pi-audit-wrap:
   * - hasta 1380 px de contenido;
   * - 20 px exteriores cuando el viewport es menor;
   * - sin padding interno añadido por Bootstrap/.container.
   */
  width: min(calc(100% - (2 * var(--pi-footer-edge))), var(--pi-footer-content-max));
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
  padding-block: 0;
}

/* ==========================================================
   GEOMETRÍA · AUTÓNOMA
   ----------------------------------------------------------
   La forma viaja con el componente. No requiere:
   - PublimpactoGeometry
   - hidden elements
   - MutationObserver
   - clonación desde la Home
   ========================================================== */

.pi-footer-premium .pi-footer-geometry {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.pi-footer-premium .pi-footer-geometry .mil-animation {
  position: absolute;
  top: 50%;
  right: -118px;
  bottom: auto;
  left: auto;
  display: block;
  width: 440px;
  height: 440px;

  /* Antes el sistema global llegaba a ~.07.
     Subimos solo un punto de presencia: sigue siendo fondo. */
  opacity: .16;

  transform: translateY(-50%) scale(.94);
  pointer-events: none;
}

.pi-footer-premium .pi-footer-geometry .mil-dodecahedron {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100px;
  height: 223px;
  transform-style: preserve-3d;
  translate: -50% -50%;
  scale: 1.55;
  animation: pi-footer-dodecahedron-rotate 118s linear infinite;
}

.pi-footer-premium .pi-footer-geometry .mil-pentagon {
  position: absolute;
  width: 100px;
}

.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(1) {
  transform: rotateY(.2turn) translateZ(69px) rotateX(26.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(2) {
  transform: rotateY(.4turn) translateZ(69px) rotateX(26.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(3) {
  transform: rotateY(.6turn) translateZ(69px) rotateX(26.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(4) {
  transform: rotateY(.8turn) translateZ(69px) rotateX(26.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(5) {
  transform: rotateY(1turn) translateZ(69px) rotateX(26.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(6) {
  bottom: 0;
  transform: rotateY(.2turn) translateZ(-69px) rotateX(206.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(7) {
  bottom: 0;
  transform: rotateY(.4turn) translateZ(-69px) rotateX(206.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(8) {
  bottom: 0;
  transform: rotateY(.6turn) translateZ(-69px) rotateX(206.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(9) {
  bottom: 0;
  transform: rotateY(.8turn) translateZ(-69px) rotateX(206.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(10) {
  bottom: 0;
  transform: rotateY(1turn) translateZ(-69px) rotateX(206.5deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(11) {
  transform: translateZ(69px) rotateX(-90deg);
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon:nth-child(12) {
  bottom: 0;
  transform: translateZ(-69px) rotateX(90deg);
}

.pi-footer-premium .pi-footer-geometry .mil-pentagon div {
  position: absolute;
  width: 100px;
  height: 69px;
  border-top: 1px solid rgba(255,255,255,.72);
  transform-origin: bottom;
}
.pi-footer-premium .pi-footer-geometry .mil-pentagon div:nth-child(1) { transform: rotate(.2turn); }
.pi-footer-premium .pi-footer-geometry .mil-pentagon div:nth-child(2) { transform: rotate(.4turn); }
.pi-footer-premium .pi-footer-geometry .mil-pentagon div:nth-child(3) { transform: rotate(.6turn); }
.pi-footer-premium .pi-footer-geometry .mil-pentagon div:nth-child(4) { transform: rotate(.8turn); }
.pi-footer-premium .pi-footer-geometry .mil-pentagon div:nth-child(5) { transform: rotate(1turn); }

@keyframes pi-footer-dodecahedron-rotate {
  from { transform: rotateX(0deg) rotateY(360deg) rotateZ(360deg); }
  to   { transform: rotateX(360deg) rotateY(0deg) rotateZ(-360deg); }
}

/* ==========================================================
   PARTE SUPERIOR
   ========================================================== */

.pi-footer-premium .pi-footer-premium__top {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(1.25rem, 2.2vw, 2.25rem);
  row-gap: 0;
  align-items: start;
}

.pi-footer-premium .pi-footer-premium__statement {
  grid-column: 1 / span 4;
}

.pi-footer-premium .pi-footer-premium__statement {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: clamp(1.9rem, 2.7vw, 2.45rem);
  align-items: flex-start;
}

.pi-footer-premium .pi-footer-premium__rotator {
  display: flex;
  align-items: flex-start;
  width: min(100%, 430px);
  max-width: 20ch;
  height: auto;
  min-height: clamp(106px, 8vw, 124px);
  max-height: none;
  margin: 0;
  overflow: visible;
  color: rgba(255,255,255,.82);
  font-size: clamp(1.5rem, 1.9vw, 1.9rem);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.18;
}

.pi-footer-premium .pi-footer-rotator__text {
  display: inline;
  transition: opacity 280ms ease;
}

.pi-footer-premium .pi-footer-premium__navigation {
  grid-column: 6 / -1;

  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  column-gap: clamp(2rem, 3.8vw, 4rem);

  min-width: 0;
}

.pi-footer-premium .pi-footer-premium__navigation > .pi-footer-premium__group:first-child {
  margin-right: clamp(1rem, 2vw, 2rem);
}

.pi-footer-premium .pi-footer-premium__heading {
  margin: 0 0 .85rem;
  color: #fff;
  font-size: .875rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -.01em;
}

.pi-footer-premium .pi-footer-premium__links {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pi-footer-premium .pi-footer-premium__links li {
  margin: 0 0 .12rem;
  padding: 0;
  border: 0;
}

.pi-footer-premium .pi-footer-premium__links a {
  display: flex;
  width: 100%;
  min-height: 34px;
  align-items: center;

  padding: .18rem 0 .42rem;
  border-bottom: 1px dotted rgba(255,255,255,.12);

  color: var(--pi-footer-muted);
  font-size: .875rem;
  line-height: 1.38;
  text-decoration: none;

  transition:
    color var(--pi-footer-fast) ease,
    border-color var(--pi-footer-fast) ease;
}

.pi-footer-premium .pi-footer-premium__links a:hover,
.pi-footer-premium .pi-footer-premium__links a:focus-visible,
.pi-footer-premium .pi-footer-premium__links a[aria-current="page"],
.pi-footer-premium .pi-footer-premium__links a.is-section-current {
  border-bottom-color: color-mix(
    in srgb,
    var(--pi-footer-live) 48%,
    rgba(255,255,255,.12)
  );
}

.pi-footer-premium .pi-footer-premium__links a:hover,
.pi-footer-premium .pi-footer-premium__links a:focus-visible,
.pi-footer-premium .pi-footer-premium__links a[aria-current="page"],
.pi-footer-premium .pi-footer-premium__links a.is-section-current {
  color: var(--pi-footer-live);
}

/* ==========================================================
   CTA ¿HABLAMOS? · MISMA IDENTIDAD QUE HERO
   ========================================================== */

.pi-footer-premium a.pi-footer-premium__cta.mil-button {
  position: relative;
  isolation: isolate;

  display: inline-flex !important;
  align-self: flex-start;
  align-items: center;
  justify-content: space-between;
  gap: 0;

  width: 262px !important;
  max-width: 262px;
  min-width: 262px;
  height: 64px !important;
  min-height: 64px;
  max-height: 64px;

  margin: 0;
  padding: 0 !important;

  overflow: hidden;
  border: 0 !important;
  border-radius: 0 !important;

  background: rgba(255,255,255,.16) !important;
  box-shadow: inset -1px 0 0 rgba(255,255,255,.16) !important;

  color: #fff !important;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .125rem;
  line-height: 1.2;
  text-decoration: none !important;
  text-transform: uppercase;

  transition:
    background var(--pi-footer-fast) ease,
    box-shadow var(--pi-footer-fast) ease,
    transform var(--pi-footer-fast) ease;
}

.pi-footer-premium a.pi-footer-premium__cta.mil-button::before {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  inset: 1px !important;
  display: block !important;

  background: var(--pi-footer-bg) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;

  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%,
    15px 100%,
    0 calc(100% - 15px)
  );

  pointer-events: none;
}

.pi-footer-premium a.pi-footer-premium__cta.mil-button::after {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  top: 50% !important;
  right: 58px !important;

  display: block !important;
  width: 1px !important;
  height: 28px !important;

  background: var(--pi-footer-live) !important;
  border: 0 !important;

  transform: translateY(-50%) !important;
  pointer-events: none;
}

.pi-footer-premium a.pi-footer-premium__cta.mil-button > span {
  position: relative;
  z-index: 1;
  display: block;
  flex: 1 1 auto;
  margin: 0;
  padding: 0 1.65rem;
  color: #fff !important;
  opacity: 1 !important;
  font: inherit;
  text-align: left;
}

.pi-footer-premium a.pi-footer-premium__cta.mil-button > svg {
  position: relative;
  z-index: 1;
  display: block !important;
  flex: 0 0 58px !important;
  width: 58px !important;
  height: 62px !important;
  min-width: 58px !important;
  margin: 0 !important;
  padding: 20px 18px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  fill: var(--pi-footer-live) !important;
  transition: transform var(--pi-footer-fast) ease;
}

.pi-footer-premium a.pi-footer-premium__cta.mil-button > svg path {
  fill: var(--pi-footer-live) !important;
}

.pi-footer-premium a.pi-footer-premium__cta.mil-button:hover,
.pi-footer-premium a.pi-footer-premium__cta.mil-button:focus-visible {
  background: rgba(255,255,255,.28) !important;
  box-shadow: inset -1px 0 0 rgba(255,255,255,.28) !important;
  color: #fff !important;
  transform: translateY(-2px);
}

.pi-footer-premium a.pi-footer-premium__cta.mil-button:hover > svg,
.pi-footer-premium a.pi-footer-premium__cta.mil-button:focus-visible > svg {
  transform: translateX(3px);
}

/* ==========================================================
   DIVISOR + PARTE INFERIOR
   ========================================================== */

.pi-footer-premium .pi-footer-premium__divider {
  width: 100%;
  height: 1px;
  margin: clamp(1.95rem, 2.8vw, 2.35rem) 0 clamp(1.35rem, 2vw, 1.75rem);
  background: var(--pi-footer-line);
}

.pi-footer-premium .pi-footer-premium__bottom {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(1.25rem, 2.2vw, 2.25rem);
  row-gap: 0;
  align-items: start;
}

.pi-footer-premium .pi-footer-premium__office-card,
.pi-footer-premium .pi-footer-premium__contact {
  min-width: 0;
}

.pi-footer-premium .pi-footer-premium__office-card--admin {
  grid-column: 1 / span 3;
}

.pi-footer-premium .pi-footer-premium__office-card--studio {
  grid-column: 4 / span 3;
}

.pi-footer-premium .pi-footer-premium__contact {
  grid-column: 8 / span 3;
}

.pi-footer-premium .pi-footer-premium__office-copy {
  margin: 0;
  color: rgba(255,255,255,.54);
  font-size: .8125rem;
  line-height: 1.58;
}

.pi-footer-premium .pi-footer-premium__label {
  display: block;
  margin-bottom: .55rem;
  color: rgba(255,255,255,.72);
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.pi-footer-premium .pi-footer-premium__contact-links,
.pi-footer-premium .pi-footer-premium__contact-links a,
.pi-footer-premium .pi-footer-premium__contact-links span {
  color: rgba(255,255,255,.54);
  font-size: .8125rem;
  line-height: 1.58;
}

.pi-footer-premium .pi-footer-premium__contact-links {
  display: grid;
  gap: .2rem;
}

.pi-footer-premium .pi-footer-premium__contact-links a {
  text-decoration: none;
  transition: color var(--pi-footer-fast) ease;
}

.pi-footer-premium .pi-footer-premium__contact-links a:hover,
.pi-footer-premium .pi-footer-premium__contact-links a:focus-visible {
  color: #fff;
}

.pi-footer-premium .pi-footer-premium__external {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: .9em;
  height: .9em;
  margin-left: .24em;
  background: none !important;
  color: inherit;
  vertical-align: -.05em;
}

.pi-footer-premium .pi-footer-premium__external svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

.pi-footer-premium .pi-footer-premium__meta {
  display: flex;
  gap: 2rem;
  align-items: center;
  justify-content: space-between;
  margin-top: clamp(1.45rem, 2.3vw, 1.95rem);
  padding-top: 1.05rem;
  border-top: 1px solid var(--pi-footer-line);
}

.pi-footer-premium .pi-footer-premium__meta p {
  margin: 0;
  color: rgba(255,255,255,.42);
  font-size: .6875rem;
  line-height: 1.45;
}

.pi-footer-premium .pi-footer-premium__legal {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
  justify-content: flex-end;
}

.pi-footer-premium .pi-footer-premium__legal,
.pi-footer-premium .pi-footer-premium__legal a {
  color: rgba(255,255,255,.38);
  font-size: .6875rem;
  text-decoration: none;
}

.pi-footer-premium .pi-footer-premium__legal a:hover,
.pi-footer-premium .pi-footer-premium__legal a:focus-visible {
  color: #fff;
}

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

@media (max-width: 1023px) {
  .pi-footer-premium {
    padding-top: 2.6rem;
  }

  .pi-footer-premium .pi-footer-premium__top {
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    gap: 3rem;
  }

  .pi-footer-premium .pi-footer-premium__statement,
  .pi-footer-premium .pi-footer-premium__navigation,
  .pi-footer-premium .pi-footer-premium__office-card--admin,
  .pi-footer-premium .pi-footer-premium__office-card--studio,
  .pi-footer-premium .pi-footer-premium__contact {
    grid-column: auto;
  }

  .pi-footer-premium .pi-footer-premium__bottom {
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 2rem;
  }

  .pi-footer-premium .pi-footer-geometry .mil-animation {
    right: -145px;
    width: 380px;
    height: 380px;
    opacity: .14;
    transform: translateY(-50%) scale(.84);
  }
}

@media (max-width: 767px) {
  .pi-footer-premium {
    --pi-footer-edge: 16px;
    /* LOTE 163 · móvil: +~26 px de aire superior; cierre intacto. */
    padding: 4rem 0 1.8rem;
  }

  .pi-footer-premium .pi-footer-premium__top,
  .pi-footer-premium .pi-footer-premium__bottom {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .pi-footer-premium .pi-footer-premium__heading {
    font-size: .84rem;
  }

  .pi-footer-premium .pi-footer-premium__navigation {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 1.5rem;
  }

  .pi-footer-premium .pi-footer-premium__navigation > .pi-footer-premium__group:first-child {
    margin-right: 0;
  }

  .pi-footer-premium .pi-footer-premium__rotator {
    max-width: 21ch;
    min-height: 0;
  }

  .pi-footer-premium a.pi-footer-premium__cta.mil-button {
    width: min(100%,262px) !important;
    min-width: 0;
    margin-top: 0;
  }

  .pi-footer-premium .pi-footer-premium__office-card--admin,
  .pi-footer-premium .pi-footer-premium__office-card--studio,
  .pi-footer-premium .pi-footer-premium__contact {
    grid-column: auto;
  }

  .pi-footer-premium .pi-footer-premium__meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }

  .pi-footer-premium .pi-footer-premium__legal {
    justify-content: flex-start;
  }

  .pi-footer-premium .pi-footer-geometry .mil-animation {
    top: 40%;
    right: -165px;
    width: 300px;
    height: 300px;
    opacity: .105;
    transform: translateY(-50%) scale(.72);
  }
}

@media (max-width: 479px) {
  .pi-footer-premium .pi-footer-premium__navigation {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pi-footer-premium .pi-footer-geometry .mil-dodecahedron,
  .pi-footer-premium a.pi-footer-premium__cta.mil-button,
  .pi-footer-premium a.pi-footer-premium__cta.mil-button > svg,
  .pi-footer-premium .pi-footer-rotator__text {
    animation: none !important;
    transition: none !important;
  }

  .pi-footer-premium a.pi-footer-premium__cta.mil-button:hover,
  .pi-footer-premium a.pi-footer-premium__cta.mil-button:focus-visible,
  .pi-footer-premium a.pi-footer-premium__cta.mil-button:hover > svg,
  .pi-footer-premium a.pi-footer-premium__cta.mil-button:focus-visible > svg {
    transform: none !important;
  }
}


/* ==========================================================
   PUBLIMPACTO · LOTE 152
   FOOTER · TABLET HORIZONTAL · SAFE AREA
   ----------------------------------------------------------
   El footer vive fuera de .pi-service-experience-story, por
   lo que no heredaba las variables laterales 88 / 108 px.

   Aplicamos al contenedor interno exactamente el mismo eje que:
   - Hero
   - 01–05
   - banner / formulario

   Resultado:
   - el contenido del footer no pasa por debajo del logo P;
   - tampoco invade la zona de la hamburguesa;
   - no cambia la retícula interna ni la altura del footer.
   ========================================================== */

@media
  (min-width:1024px) and
  (max-width:1600px) and
  (orientation:landscape) and
  (any-pointer:coarse) {

  .pi-footer-premium .pi-footer-premium__container {
    /*
     * En tablet horizontal el formulario reserva 88/108 px.
     * El ancho exterior crece hasta contenido 1380 + reservas,
     * para que el contenido útil siga coincidiendo con el formulario.
     */
    width:min(100%, calc(var(--pi-footer-content-max) + 196px));
    max-width:none;
    margin-inline:auto;
    padding-left:88px;
    padding-right:108px;
  }
}


/* ==========================================================
   PUBLIMPACTO · LOTE 158
   FOOTER · TABLET HORIZONTAL · MÁS AIRE SUPERIOR
   ----------------------------------------------------------
   Ajuste exclusivo del arranque negro del footer:
   - aumenta el espacio superior antes del contenido;
   - el cierre inferior queda como estaba;
   - no modifica la retícula ni el safe-area lateral.
   ========================================================== */

@media
  (min-width:900px) and
  (max-width:1365px) and
  (orientation:landscape) {

  .pi-footer-premium {
    padding-top:64px;
  }
}

/* ==========================================================
   PUBLIMPACTO · LOTE 159
   FOOTER · ESCRITORIO · MISMO EJE QUE FORMULARIO
   ----------------------------------------------------------
   En escritorio el footer queda fuera del sistema de rail.
   Por tanto no necesita la reserva lateral 88 / 108 px que
   protege logo, hamburguesa y navegación en 01–05.

   Recuperamos el gutter horizontal base del site, el mismo
   eje usado por la sección de formulario inmediatamente
   superior. El ajuste de tablet horizontal permanece intacto.
   ========================================================== */

@media
  (min-width:1024px) and
  (orientation:landscape) and
  (pointer:fine) {

  .pi-footer-premium .pi-footer-premium__container {
    padding-left:0;
    padding-right:0;
  }
}


/* ==========================================================
   PUBLIMPACTO · LOTE 160
   FOOTER · ESCRITORIO · MÁS AIRE SUPERIOR
   ----------------------------------------------------------
   El arranque del footer en escritorio gana 36 px respecto
   al padding superior base. No altera el ancho recuperado en
   Lote 159, ni la retícula, ni el cierre inferior del footer.
   Tablet horizontal conserva su ajuste específico de 64 px.
   ========================================================== */

@media
  (min-width:1024px) and
  (orientation:landscape) and
  (pointer:fine) {

  .pi-footer-premium {
    padding-top:calc(clamp(2rem, 3vw, 2.65rem) + 36px);
  }
}

/* ==========================================================
   PUBLIMPACTO · LOTE 173
   FOOTER · TELÉFONO · SAFE AREA INFERIOR PARA CONTROLES FIJOS
   ----------------------------------------------------------
   El final del footer gana recorrido inferior suficiente para
   que el acceso flotante de Cookies y el botón Volver arriba
   no tapen Privacidad / Términos / Cookies en el último scroll.
   ========================================================== */
@media (max-width: 767.98px) {
  .pi-footer-premium {
    padding-bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}
