/* =====================================================
   PREMIUM SHELL
   Cabecera y pie aislados; activos solo por functions.php
   ===================================================== */

body.rl-premium-shell-active {
  --rl-shell-navy-950: #020d21;
  --rl-shell-navy-900: #04152f;
  --rl-shell-navy-850: #071c3c;
  --rl-shell-navy-800: #0b2850;
  --rl-shell-aqua: #00d7a3;
  --rl-shell-mint: #60f0cd;
  --rl-shell-champagne: #e8c86a;
  --rl-shell-white: #f8fbff;
  --rl-shell-muted: #b7c5d8;
  --rl-shell-border: rgba(96, 240, 205, 0.22);
  --rl-premium-header-height: 84px;
  --rl-shell-admin-offset: 0px;
}

body.rl-premium-shell-active.admin-bar {
  --rl-shell-admin-offset: 32px;
}

body.rl-premium-shell-active #masthead,
body.rl-premium-shell-active #site-navigation,
body.rl-premium-shell-active .main-navigation,
body.rl-premium-shell-active #site-footer,
body.rl-premium-shell-active .site-footer,
body.rl-premium-shell-active .footer-widgets,
body.rl-premium-shell-active .site-info {
  display: none !important;
}

body.rl-premium-shell-active.rl-premium-nav-open {
  overscroll-behavior: contain;
}

body.rl-premium-shell-active.rl-premium-nav-open .generate-back-to-top {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.rl-premium-shell-active #rutas,
body.rl-premium-shell-active #metodo-clases,
body.rl-premium-shell-active #como-son-las-clases,
body.rl-premium-shell-active #sobre-mi,
body.rl-premium-shell-active #que-puedes-aprender,
body.rl-premium-shell-active #confianza,
body.rl-premium-shell-active #encaja-contigo,
body.rl-premium-shell-active #preguntas-frecuentes,
body.rl-premium-shell-active #contacto {
  scroll-margin-top: calc(
    var(--rl-premium-header-height) +
    var(--rl-shell-admin-offset) +
    22px
  );
}

.rl-premium-header,
.rl-premium-header *,
.rl-premium-footer,
.rl-premium-footer * {
  box-sizing: border-box;
}

.rl-premium-shell__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* =====================================================
   HEADER
   ===================================================== */

.rl-premium-skip-link {
  position: absolute;
  z-index: 6;
  top: 10px;
  left: max(14px, env(safe-area-inset-left));
  padding: 11px 16px;
  color: var(--rl-shell-navy-950);
  background: var(--rl-shell-mint);
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(0, 7, 24, 0.32);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform 160ms ease;
}

.rl-premium-skip-link:focus {
  transform: translateY(0);
}

.rl-premium-header {
  position: sticky;
  top: var(--rl-shell-admin-offset);
  z-index: 1000;
  width: 100%;
  color: var(--rl-shell-white);
  background:
    linear-gradient(
      90deg,
      rgba(2, 13, 33, 0.98),
      rgba(7, 28, 60, 0.94) 64%,
      rgba(5, 39, 64, 0.95)
    );
  border-bottom: 1px solid rgba(96, 240, 205, 0.15);
  box-shadow: 0 18px 45px rgba(0, 7, 24, 0.2);
  backdrop-filter: blur(18px) saturate(130%);
  -webkit-backdrop-filter: blur(18px) saturate(130%);
  transition:
    background-color 180ms ease,
    box-shadow 180ms ease;
}

.rl-premium-header::after {
  content: "";
  position: absolute;
  right: 3%;
  bottom: -1px;
  width: min(38vw, 540px);
  height: 1px;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(96, 240, 205, 0.9),
      rgba(232, 200, 106, 0.55),
      transparent
    );
}

.rl-premium-header.is-scrolled {
  background: rgba(2, 13, 33, 0.96);
  box-shadow: 0 18px 48px rgba(0, 7, 24, 0.34);
}

.rl-premium-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(22px, 3vw, 54px);
  width: min(100% - 48px, 1500px);
  min-height: 84px;
  margin-inline: auto;
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

.rl-premium-header__brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  border-radius: 12px;
  text-decoration: none;
}

.rl-premium-header__brand:focus-visible,
.rl-premium-header__toggle:focus-visible,
.rl-premium-nav a:focus-visible,
.rl-premium-footer a:focus-visible {
  outline: 3px solid var(--rl-shell-champagne);
  outline-offset: 4px;
}

.rl-premium-header__logo {
  display: block;
  width: clamp(188px, 14.25vw, 228px);
  height: auto;
}

.rl-premium-header__toggle {
  display: none;
}

/* =====================================================
   NAVEGACIÓN
   ===================================================== */

.rl-premium-nav {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(22px, 2.2vw, 42px);
}

.rl-premium-nav__list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, 0.6vw, 12px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.rl-premium-nav__list li {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
}

.rl-premium-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  color: rgba(248, 251, 255, 0.8);
  border-radius: 999px;
  font-size: clamp(14px, 0.88vw, 16px);
  font-weight: 750;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  transition:
    color 180ms ease,
    background-color 180ms ease,
    transform 180ms ease;
}

.rl-premium-nav__link::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: 6px;
  left: 14px;
  height: 2px;
  border-radius: 99px;
  background:
    linear-gradient(
      90deg,
      var(--rl-shell-mint),
      var(--rl-shell-aqua)
    );
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 180ms ease;
}

.rl-premium-nav__link:hover,
.rl-premium-nav__link.is-current {
  color: var(--rl-shell-white);
  background: rgba(96, 240, 205, 0.08);
  transform: translateY(-1px);
}

.rl-premium-nav__link:hover::after,
.rl-premium-nav__link.is-current::after {
  transform: scaleX(1);
}

.rl-premium-nav__cta,
.rl-premium-footer__cta > a {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  overflow: hidden;
  background:
    linear-gradient(
      108deg,
      #53e4bd 0%,
      #08d2a4 42%,
      #00bf8e 100%
    );
  border: 1px solid rgba(160, 255, 231, 0.78);
  border-radius: 999px;
  box-shadow:
    0 12px 30px rgba(0, 215, 163, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
  font-weight: 850;
  line-height: 1.1;
  text-decoration: none;
  transition:
    color 180ms ease,
    transform 180ms ease,
    box-shadow 180ms ease;
}

.rl-premium-nav__cta {
  flex: 0 0 auto;
  min-height: 50px;
  padding: 14px 22px;
  color: var(--rl-shell-white);
  font-size: clamp(14px, 0.92vw, 16px);
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 32, 35, 0.3);
}

.rl-premium-footer__cta > a {
  color: var(--rl-shell-white);
}

.rl-premium-nav__cta::before,
.rl-premium-footer__cta > a::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -70%;
  bottom: -70%;
  left: -35%;
  width: 24%;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.62),
      transparent
    );
  transform: skewX(-18deg);
  transition: left 600ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.rl-premium-nav__cta:hover,
.rl-premium-footer__cta > a:hover {
  transform: translateY(-2px);
  box-shadow:
    0 16px 38px rgba(0, 215, 163, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.rl-premium-nav__cta:hover,
.rl-premium-nav__cta:focus-visible {
  color: var(--rl-shell-white);
}

.rl-premium-footer__cta > a:hover,
.rl-premium-footer__cta > a:focus-visible {
  color: var(--rl-shell-white);
}

.rl-premium-nav__cta:hover::before,
.rl-premium-footer__cta > a:hover::before {
  left: 118%;
}

/* =====================================================
   ESCRITORIO >= 1025px
   Enlaces centrados de verdad; CTA independiente a derecha
   ===================================================== */

@media (min-width: 1025px) {
  .rl-premium-nav {
    justify-content: flex-end;
  }

  .rl-premium-nav__list {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .rl-premium-nav__cta {
    z-index: 2;
    margin-left: auto;
    margin-right: 2px;
  }
}

/* =====================================================
   FOOTER
   ===================================================== */

.rl-premium-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  color: var(--rl-shell-muted);
  background:
    linear-gradient(
      128deg,
      rgba(0, 215, 163, 0.045),
      transparent 32%
    ),
    radial-gradient(
      circle at 92% 4%,
      rgba(232, 200, 106, 0.08),
      transparent 25%
    ),
    linear-gradient(
      145deg,
      var(--rl-shell-navy-950),
      #061833 58%,
      #092344
    );
  border-top: 1px solid rgba(96, 240, 205, 0.2);
}

.rl-premium-footer::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  opacity: 0.26;
  -webkit-mask-image:
    linear-gradient(
      to bottom,
      transparent,
      #000 20%,
      #000 80%,
      transparent
    );
  background-image:
    linear-gradient(
      rgba(96, 240, 205, 0.045) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(96, 240, 205, 0.045) 1px,
      transparent 1px
    );
  background-size: 76px 76px;
  mask-image:
    linear-gradient(
      to bottom,
      transparent,
      #000 20%,
      #000 80%,
      transparent
    );
}

.rl-premium-footer__glow {
  position: absolute;
  z-index: -1;
  right: -12%;
  bottom: -48%;
  width: min(60vw, 900px);
  aspect-ratio: 1;
  border: 1px solid rgba(96, 240, 205, 0.13);
  border-radius: 50%;
  box-shadow: 0 0 120px rgba(0, 215, 163, 0.05);
}

.rl-premium-footer__inner {
  display: grid;
  grid-template-columns:
    minmax(270px, 1.3fr)
    minmax(150px, 0.66fr)
    minmax(170px, 0.74fr)
    minmax(285px, 1.08fr);
  gap: clamp(36px, 4vw, 72px);
  width: min(100% - 56px, 1500px);
  margin-inline: auto;
  padding-block:
    clamp(72px, 7vw, 112px)
    clamp(58px, 5vw, 86px);
}

.rl-premium-footer__brand,
.rl-premium-footer__nav,
.rl-premium-footer__cta {
  min-width: 0;
}

.rl-premium-footer__logo-link {
  display: inline-flex;
  border-radius: 10px;
}

.rl-premium-footer__logo {
  display: block;
  width: min(226px, 100%);
  height: auto;
}

.rl-premium-footer h2,
.rl-premium-footer h3,
.rl-premium-footer p {
  margin-top: 0;
}

.rl-premium-footer__brand h2 {
  max-width: 430px;
  margin: 30px 0 14px;
  color: var(--rl-shell-white);
  font-size: clamp(24px, 1.7vw, 32px);
  line-height: 1.12;
}

.rl-premium-footer__brand p {
  max-width: 490px;
  margin-bottom: 22px;
  font-size: 16px;
  line-height: 1.75;
}

.rl-premium-footer__email {
  display: inline-flex;
  color: var(--rl-shell-mint);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(96, 240, 205, 0.45);
}

.rl-premium-footer__nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding-top: 7px;
}

.rl-premium-footer__nav h3,
.rl-premium-footer__cta h3 {
  margin-bottom: 12px;
  color: var(--rl-shell-white);
  font-size: 17px;
  line-height: 1.2;
}

.rl-premium-footer__nav a {
  position: relative;
  color: var(--rl-shell-muted);
  font-size: 15px;
  line-height: 1.45;
  text-decoration: none;
  transition:
    color 160ms ease,
    transform 160ms ease;
}

.rl-premium-footer__nav a::before {
  content: "";
  position: absolute;
  top: 0.65em;
  left: -14px;
  width: 6px;
  height: 1px;
  background: var(--rl-shell-aqua);
  opacity: 0;
  transition:
    opacity 160ms ease,
    transform 160ms ease;
}

.rl-premium-footer__nav a:hover {
  color: var(--rl-shell-white);
  transform: translateX(5px);
}

.rl-premium-footer__nav a:hover::before {
  opacity: 1;
  transform: translateX(-2px);
}

.rl-premium-footer__cta {
  align-self: start;
  padding: clamp(26px, 2.4vw, 38px);
  background:
    linear-gradient(
      145deg,
      rgba(16, 47, 86, 0.78),
      rgba(5, 25, 52, 0.92)
    );
  border: 1px solid rgba(232, 200, 106, 0.28);
  border-radius: 24px;
  box-shadow:
    0 24px 60px rgba(0, 6, 22, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.rl-premium-footer__eyebrow {
  display: block;
  margin-bottom: 14px;
  color: var(--rl-shell-champagne);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

.rl-premium-footer__cta h3 {
  margin-bottom: 14px;
  font-size: clamp(23px, 1.55vw, 30px);
  line-height: 1.14;
}

.rl-premium-footer__cta p {
  margin-bottom: 22px;
  font-size: 15px;
  line-height: 1.65;
}

.rl-premium-footer__cta > a {
  width: 100%;
  min-height: 54px;
  padding: 15px 20px;
  color: var(--rl-shell-white);
  font-size: 15px;
}

.rl-premium-footer__cta > a:hover,
.rl-premium-footer__cta > a:focus-visible {
  color: var(--rl-shell-white);
}

.rl-premium-footer__cta small {
  display: none;
}

.rl-premium-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(100% - 56px, 1500px);
  margin-inline: auto;
  padding-block:
    24px
    calc(24px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(96, 240, 205, 0.14);
}

.rl-premium-footer__bottom p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}

.rl-premium-footer__signature {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(248, 251, 255, 0.78);
}

.rl-premium-footer__signature span {
  width: 24px;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      var(--rl-shell-aqua),
      var(--rl-shell-champagne)
    );
}

/* =====================================================
   <= 1240px
   ===================================================== */

@media (max-width: 1240px) {
  .rl-premium-header__inner {
    width: min(100% - 36px, 1180px);
  }

  .rl-premium-nav {
    gap: 14px;
  }

  .rl-premium-nav__link {
    padding-inline: 10px;
  }

  .rl-premium-footer__inner {
    grid-template-columns: 1.2fr 0.7fr 0.75fr;
  }

  .rl-premium-footer__cta {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns:
      minmax(0, 1fr)
      minmax(250px, 0.55fr);
    align-items: center;
    gap: 10px 34px;
  }

  .rl-premium-footer__cta .rl-premium-footer__eyebrow,
  .rl-premium-footer__cta h3,
  .rl-premium-footer__cta p {
    grid-column: 1;
  }

  .rl-premium-footer__cta > a,
  .rl-premium-footer__cta small {
    grid-column: 2;
  }

  .rl-premium-footer__cta > a {
    grid-row: 1 / span 3;
  }
}

/* =====================================================
   TABLET Y MÓVIL <= 1024px
   ===================================================== */

@media (max-width: 1024px) {
  body.rl-premium-shell-active {
    --rl-premium-header-height: 76px;
  }

  .rl-premium-header__inner {
    flex-wrap: wrap;
    min-height: 76px;
  }

  body.rl-premium-shell-ready .rl-premium-header__inner {
    flex-wrap: nowrap;
  }

  .rl-premium-header__logo {
    width: clamp(166px, 25vw, 204px);
  }

  body.rl-premium-shell-ready .rl-premium-header__toggle {
    position: relative;
    z-index: 4;
    display: inline-flex;
    flex: 0 0 48px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 48px;
    height: 48px;
    padding: 0;
    color: var(--rl-shell-white);
    background:
      linear-gradient(
        145deg,
        rgba(20, 54, 94, 0.92),
        rgba(5, 24, 50, 0.96)
      );
    border: 1px solid rgba(96, 240, 205, 0.32);
    border-radius: 16px;
    box-shadow:
      0 10px 28px rgba(0, 6, 22, 0.24),
      inset 0 1px 0 rgba(255, 255, 255, 0.04);
    cursor: pointer;
  }

  .rl-premium-header__toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 99px;
    transform-origin: center;
    transition:
      transform 180ms ease,
      opacity 180ms ease;
  }

  .rl-premium-header.is-menu-open
  .rl-premium-header__toggle
  span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }

  .rl-premium-header.is-menu-open
  .rl-premium-header__toggle
  span:nth-child(2) {
    opacity: 0;
  }

  .rl-premium-header.is-menu-open
  .rl-premium-header__toggle
  span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }

  /*
   * Estado previo a JS: el menú móvil permanece totalmente oculto.
   * Evita el FOUC lateral al recargar antes de que se añada
   * .rl-premium-shell-ready.
   */
  .rl-premium-nav {
    display: none;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }

  body.rl-premium-shell-ready .rl-premium-nav {
    position: absolute;
    z-index: 3;
    top: calc(100% + 9px);
    left: 50%;
    right: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    flex: none;
    width: min(340px, calc(100vw - 40px));
    max-height:
      calc(
        100vh -
        var(--rl-premium-header-height) -
        var(--rl-shell-admin-offset) -
        28px
      );
    max-height:
      calc(
        100dvh -
        var(--rl-premium-header-height) -
        var(--rl-shell-admin-offset) -
        28px
      );
    padding: 12px 12px 13px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    visibility: hidden;
    opacity: 0;
    isolation: isolate;
    background:
      radial-gradient(
        circle at 84% 8%,
        rgba(96, 240, 205, 0.11),
        transparent 29%
      ),
      linear-gradient(
        155deg,
        rgba(9, 37, 76, 0.985) 0%,
        rgba(4, 22, 49, 0.992) 54%,
        rgba(2, 13, 33, 0.996) 100%
      );
    border: 1px solid rgba(96, 240, 205, 0.24);
    border-radius: 22px;
    box-shadow:
      0 24px 58px rgba(0, 5, 22, 0.42),
      inset 0 1px 0 rgba(255, 255, 255, 0.045);
    transform: translate(-50%, -8px) scale(0.985);
    transform-origin: top center;
    pointer-events: none;
    transition:
      opacity 180ms ease,
      transform 180ms ease,
      visibility 180ms ease;
  }

  /* Dibujo circular moderno: decorativo, sutil y sin imágenes externas. */

  body.rl-premium-shell-ready .rl-premium-nav::before,
  body.rl-premium-shell-ready .rl-premium-nav::after {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    border-radius: 50%;
  }

  body.rl-premium-shell-ready .rl-premium-nav::before {
    top: -78px;
    right: -72px;
    width: 178px;
    height: 178px;
    border: 1px solid rgba(96, 240, 205, 0.16);
    box-shadow:
      0 0 0 22px rgba(0, 215, 163, 0.025),
      0 0 0 48px rgba(96, 240, 205, 0.018);
  }

  body.rl-premium-shell-ready .rl-premium-nav::after {
    left: -38px;
    bottom: 38px;
    width: 84px;
    height: 84px;
    border: 1px solid rgba(232, 200, 106, 0.1);
    box-shadow: 0 0 34px rgba(0, 215, 163, 0.045);
  }

  body.rl-premium-shell-ready
  .rl-premium-header.is-menu-open
  .rl-premium-nav {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0) scale(1);
    pointer-events: auto;
  }

  .rl-premium-nav__list {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    gap: 0;
    margin: 0;
    padding: 4px 6px 5px;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transform: none;
  }

  .rl-premium-nav__list::before,
  .rl-premium-nav__list::after {
    content: none;
  }

  .rl-premium-nav__list li {
    position: relative;
    z-index: 1;
    width: 100%;
  }

  .rl-premium-nav__link {
    width: 100%;
    min-height: 44px;
    justify-content: center;
    padding: 10px 14px;
    color: rgba(248, 251, 255, 0.86);
    border-radius: 11px;
    font-size: 15px;
    line-height: 1.2;
    text-align: center;
  }

  .rl-premium-nav__link::after {
    right: 50%;
    bottom: 5px;
    left: 50%;
    width: 22px;
    height: 1px;
    transform: translateX(-50%) scaleX(0);
  }

  .rl-premium-nav__link:hover,
  .rl-premium-nav__link.is-current {
    color: var(--rl-shell-white);
    background:
      linear-gradient(
        90deg,
        transparent,
        rgba(96, 240, 205, 0.085),
        transparent
      );
    transform: none;
  }

  .rl-premium-nav__link:hover::after,
  .rl-premium-nav__link.is-current::after {
    transform: translateX(-50%) scaleX(1);
  }

  .rl-premium-nav__cta {
    z-index: 1;
    width: calc(100% - 24px);
    max-width: 276px;
    min-height: 46px;
    margin: 8px auto 0;
    padding: 12px 17px;
    justify-self: center;
    color: var(--rl-shell-white);
    background:
      linear-gradient(
        110deg,
        #20caa5 0%,
        #08b991 48%,
        #009f7d 100%
      );
    border-color: rgba(151, 255, 229, 0.55);
    font-size: 14px;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 37, 38, 0.36);
    box-shadow:
      0 10px 24px rgba(0, 215, 163, 0.16),
      inset 0 1px 0 rgba(255, 255, 255, 0.22);
  }

  .rl-premium-nav__cta:hover,
  .rl-premium-nav__cta:focus-visible {
    color: var(--rl-shell-white);
  }

  .rl-premium-footer__inner {
    grid-template-columns:
      minmax(0, 1.3fr)
      minmax(150px, 0.7fr)
      minmax(160px, 0.75fr);
    width: min(100% - 40px, 920px);
  }

  .rl-premium-footer__bottom {
    width: min(100% - 40px, 920px);
  }
}

/* Seguridad anti-FOUC: mientras JS no haya terminado de inicializar,
   el menú responsive nunca puede entrar en el flujo ni aparecer lateralmente. */
@media (max-width: 1024px) {
  body.rl-premium-shell-active:not(.rl-premium-shell-ready) .rl-premium-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

/* =====================================================
   ADMIN BAR
   ===================================================== */

@media (max-width: 782px) {
  body.rl-premium-shell-active.admin-bar {
    --rl-shell-admin-offset: 46px;
  }
}

@media (max-width: 600px) {
  body.rl-premium-shell-active.admin-bar {
    --rl-shell-admin-offset: 0px;
  }
}

/* =====================================================
   <= 767px
   ===================================================== */

@media (max-width: 767px) {
  .rl-premium-header__inner {
    width: calc(100% - 28px);
  }

  body.rl-premium-shell-ready .rl-premium-nav {
    width: min(328px, calc(100vw - 32px));
  }

  .rl-premium-footer__inner {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
    gap: 42px 28px;
    width: calc(100% - 36px);
    padding-block: 66px 52px;
  }

  .rl-premium-footer__brand,
  .rl-premium-footer__cta {
    grid-column: 1 / -1;
  }

  .rl-premium-footer__brand p {
    max-width: 600px;
  }

  .rl-premium-footer__cta {
    display: block;
  }

  .rl-premium-footer__cta > a {
    margin-top: 8px;
  }

  .rl-premium-footer__cta small {
    margin-top: 14px;
  }

  .rl-premium-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    width: calc(100% - 36px);
  }
}

/* =====================================================
   <= 479px
   ===================================================== */

@media (max-width: 479px) {
  body.rl-premium-shell-active {
    --rl-premium-header-height: 70px;
  }

  .rl-premium-header__inner {
    min-height: 70px;
  }

  .rl-premium-header__logo {
    width: clamp(148px, 46vw, 166px);
  }

  .rl-premium-header__toggle {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }

  body.rl-premium-shell-ready .rl-premium-nav {
    top: calc(100% + 8px);
    width: min(316px, calc(100vw - 28px));
    padding: 10px 10px 11px;
    border-radius: 19px;
  }

  body.rl-premium-shell-ready .rl-premium-nav::before {
    top: -68px;
    right: -66px;
    width: 156px;
    height: 156px;
  }

  body.rl-premium-shell-ready .rl-premium-nav::after {
    left: -34px;
    bottom: 34px;
    width: 72px;
    height: 72px;
  }

  .rl-premium-nav__list {
    padding: 3px 5px 4px;
  }

  .rl-premium-nav__link {
    min-height: 43px;
    padding: 9px 12px;
    font-size: 15px;
    border-radius: 10px;
  }

  .rl-premium-nav__cta {
    width: calc(100% - 20px);
    min-height: 46px;
    margin-top: 7px;
    padding: 11px 15px;
    font-size: 14px;
  }

  .rl-premium-footer__inner {
    grid-template-columns: 1fr;
    gap: 38px;
    padding-block: 58px 46px;
  }

  .rl-premium-footer__brand,
  .rl-premium-footer__cta,
  .rl-premium-footer__nav {
    grid-column: 1;
  }

  .rl-premium-footer__brand h2 {
    margin-top: 24px;
  }

  .rl-premium-footer__nav {
    padding-top: 0;
  }

  .rl-premium-footer__cta {
    padding: 26px 22px;
    border-radius: 20px;
  }

  .rl-premium-footer__bottom {
    gap: 14px;
    padding-block:
      22px
      calc(22px + env(safe-area-inset-bottom));
  }
}

/* =====================================================
   <= 359px
   ===================================================== */

@media (max-width: 359px) {
  .rl-premium-header__inner {
    width: calc(100% - 22px);
  }

  body.rl-premium-shell-ready .rl-premium-nav {
    width: calc(100vw - 22px);
  }

  .rl-premium-footer__inner,
  .rl-premium-footer__bottom {
    width: calc(100% - 28px);
  }
}

/* =====================================================
   REDUCED MOTION
   ===================================================== */

@media (prefers-reduced-motion: reduce) {
  .rl-premium-header,
  .rl-premium-header *,
  .rl-premium-footer * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* =====================================================
   PARCHE LOGO BLANCO · TAMAÑO ORIGINAL
   Cambia únicamente la imagen y conserva las medidas
   originales del Premium Shell.
   ===================================================== */

/* CABECERA · PC */
body.rl-premium-shell-active .rl-premium-header__logo {
  content: url("https://ricardolozano.es/wp-content/themes/ricardo-child/assets/images/logo-ricardo-lozano-blanco-v2.png") !important;
  display: block !important;
  width: clamp(188px, 14.25vw, 228px) !important;
  height: auto !important;
  max-width: none !important;
}

/* PIE DE PÁGINA */
body.rl-premium-shell-active .rl-premium-footer__logo {
  content: url("https://ricardolozano.es/wp-content/themes/ricardo-child/assets/images/logo-ricardo-lozano-blanco-v2.png") !important;
  display: block !important;
  width: min(226px, 100%) !important;
  height: auto !important;
}

/* TABLET */
@media (max-width: 1024px) {
  body.rl-premium-shell-active .rl-premium-header__logo {
    width: clamp(166px, 25vw, 204px) !important;
    height: auto !important;
  }
}

/* MÓVIL */
@media (max-width: 479px) {
  body.rl-premium-shell-active .rl-premium-header__logo {
    width: clamp(148px, 46vw, 166px) !important;
    height: auto !important;
  }
}

/* =====================================================
   PARCHE PREMIUM SHELL · MENÚ TABLET MÁS ANCHO
   - Solo tablet 768px–1024px
   - Menú más amplio
   - Enlaces alineados a la izquierda
   - Botón CTA permanece centrado
   - Móvil y PC no se modifican
   ===================================================== */

@media (min-width: 768px) and (max-width: 1024px) {

  /* PANEL DEL MENÚ */
  body.rl-premium-shell-ready .rl-premium-nav {
    width: min(680px, calc(100vw - 64px)) !important;
    padding: 18px 20px 20px !important;
    border-radius: 24px !important;
  }


  /* LISTA DE ENLACES */
  body.rl-premium-shell-ready .rl-premium-nav__list {
    width: 100% !important;
    padding: 5px 8px 8px !important;
    gap: 4px !important;
  }


  /* CADA ENLACE */
  body.rl-premium-shell-ready .rl-premium-nav__link {
    width: 100% !important;
    min-height: 50px !important;

    justify-content: flex-start !important;

    padding: 12px 22px !important;

    text-align: left !important;

    font-size: 16px !important;
    border-radius: 13px !important;
  }


  /* SUBRAYADO / INDICADOR ACTIVO
     también alineado a la izquierda */
  body.rl-premium-shell-ready .rl-premium-nav__link::after {
    right: auto !important;
    left: 22px !important;

    width: 28px !important;

    transform-origin: left center !important;
    transform: scaleX(0) !important;
  }

  body.rl-premium-shell-ready .rl-premium-nav__link:hover::after,
  body.rl-premium-shell-ready .rl-premium-nav__link.is-current::after {
    transform: scaleX(1) !important;
  }


  /* BOTÓN CTA
     SE MANTIENE CENTRADO */
  body.rl-premium-shell-ready .rl-premium-nav__cta {
    width: min(78%, 390px) !important;
    max-width: 390px !important;

    min-height: 50px !important;

    margin: 14px auto 2px !important;

    padding: 13px 22px !important;

    justify-self: center !important;
    text-align: center !important;
  }

}

/* =====================================================
   PARCHE PREMIUM SHELL · TIPOGRAFÍA MENÚ RESPONSIVE
   Solo aumenta el tamaño de textos.
   No cambia anchos, posiciones ni estructura.
   ===================================================== */


/* TABLET · 768px - 1024px */
@media (min-width: 768px) and (max-width: 1024px) {

  body.rl-premium-shell-ready .rl-premium-nav__link {
    font-size: clamp(17px, 1.9vw, 19px) !important;
    line-height: 1.25 !important;
  }

  body.rl-premium-shell-ready .rl-premium-nav__cta {
    font-size: clamp(16px, 1.7vw, 18px) !important;
    line-height: 1.2 !important;
  }

}


/* MÓVIL GRANDE · 480px - 767px */
@media (min-width: 480px) and (max-width: 767px) {

  body.rl-premium-shell-ready .rl-premium-nav__link {
    font-size: clamp(16px, 2.5vw, 17px) !important;
    line-height: 1.25 !important;
  }

  body.rl-premium-shell-ready .rl-premium-nav__cta {
    font-size: 16px !important;
    line-height: 1.2 !important;
  }

}


/* MÓVIL · hasta 479px */
@media (max-width: 479px) {

  body.rl-premium-shell-ready .rl-premium-nav__link {
    font-size: clamp(15.5px, 4.2vw, 16.5px) !important;
    line-height: 1.25 !important;
  }

  body.rl-premium-shell-ready .rl-premium-nav__cta {
    font-size: clamp(15px, 4vw, 16px) !important;
    line-height: 1.2 !important;
  }

}

/* =====================================================
   PARCHE FINAL PREMIUM SHELL · TIPOGRAFÍA MENÚ PC
   Solo escritorio desde 1025px.
   Aumenta enlaces y CTA sin alterar posiciones,
   centrado, estructura ni responsive móvil/tablet.
   ===================================================== */

@media (min-width: 1025px) {

  /* ENLACES DEL MENÚ */
  body.rl-premium-shell-active .rl-premium-nav__link {
    font-size: clamp(16px, 1vw, 18px) !important;
    line-height: 1.15 !important;
    font-weight: 760 !important;
  }

  /* BOTÓN CTA DERECHO */
  body.rl-premium-shell-active .rl-premium-nav__cta {
    font-size: clamp(16px, 1vw, 18px) !important;
    line-height: 1.15 !important;
    font-weight: 850 !important;
  }

}

/* =====================================================
   PARCHE FINAL · MENÚ TABLET CENTRADO
   Solo centra los enlaces del menú en tablet.
   No toca móvil ni PC.
   ===================================================== */

@media (min-width: 768px) and (max-width: 1024px) {

  body.rl-premium-shell-ready .rl-premium-nav__link {
    justify-content: center !important;
    text-align: center !important;
  }

  body.rl-premium-shell-ready .rl-premium-nav__link::after {
    right: 50% !important;
    left: 50% !important;
    transform-origin: center !important;
    transform: translateX(-50%) scaleX(0) !important;
  }

  body.rl-premium-shell-ready .rl-premium-nav__link:hover::after,
  body.rl-premium-shell-ready .rl-premium-nav__link.is-current::after {
    transform: translateX(-50%) scaleX(1) !important;
  }

}
