/* ==========================================================================
   JAP Formación GC · Diseño 2026
   --------------------------------------------------------------------------
   Una sola hoja para todo el aspecto de la web nueva. Las páginas se montan
   con widgets nativos de Elementor; aquí se les da forma por las clases de sus
   bloques. Índice:
     1. Letra y colores        5. Carrusel de páginas reales
     2. Base de página          6. Datos, conceptos y opiniones
     3. Bloques (jap-s)         7. Cabecera y pie
     4. Botones                 8. Movimiento y fondo vivo
     (al final) 9. Tienda, documentos, páginas antiguas y aviso de cookies
   Colores del escudo y base de la landing publicada (/prueba-gratis/).
   ========================================================================== */

/* 1. Letra y colores ------------------------------------------------------ */
@font-face {
  font-family: "Archivo";
  src: url("fuentes/archivo-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
}

:root {
  --jap-noche: #121A18;      /* cabecera, pie y bloques oscuros */
  --jap-noche-2: #1B2623;
  --jap-verde: #314543;      /* verde del escudo */
  --jap-papel: #F4F2ED;
  --jap-blanco: #FFFFFF;
  --jap-tinta: #151B19;
  --jap-tinta-2: #55605C;
  --jap-linea: #D9D5CB;
  --jap-linea-noche: rgba(255, 255, 255, .16);
  --jap-oro: #F9CD17;        /* amarillo del escudo: solo comprar y acentos */
  --jap-oro-suave: #E5C76D;  /* dorado del filete del escudo */
  --jap-rojo: #AE0817;
  --jap-radio: 3px;
  --jap-curva: cubic-bezier(.16, 1, .3, 1);
  --jap-letra: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  /* la bandera, como cinta fina: rojo, amarillo, rojo */
  --jap-cinta: linear-gradient(to bottom, var(--jap-rojo) 0 25%, var(--jap-oro) 25% 75%, var(--jap-rojo) 75% 100%);
}

/* 2. Base de página ------------------------------------------------------- */
body.jap-2026 {
  background: var(--jap-papel);
  color: var(--jap-tinta);
  font-family: var(--jap-letra);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.jap-2026 #page,
body.jap-2026 #content,
body.jap-2026 .site-content { background: transparent; }
body.jap-2026 .entry-content > .elementor { overflow-x: clip; }

body.jap-2026 .elementor :is(h1, h2, h3, h4, p, li, figcaption, a, span, div, button, label, legend) { font-family: var(--jap-letra); }
body.jap-2026 .elementor-widget-text-editor,
body.jap-2026 .elementor-widget-text-editor p { color: inherit; font-size: inherit; line-height: 1.6; }
body.jap-2026 .elementor-widget-text-editor p { margin: 0; }
body.jap-2026 .elementor-widget-text-editor p + p { margin-top: .9em; }
body.jap-2026 .elementor-widget-text-editor a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.jap-2026 .elementor-widget-text-editor a:hover { text-decoration-color: var(--jap-oro); }
body.jap-2026 .elementor img { height: auto; }
body.jap-2026 ::selection { background: var(--jap-oro); color: var(--jap-tinta); }
body.jap-2026 :focus-visible { outline: 2px solid var(--jap-oro); outline-offset: 3px; }

/* 3. Bloques -------------------------------------------------------------- */
body.jap-2026 .elementor .jap-s.e-con {
  --padding-top: clamp(56px, 8vw, 104px);
  --padding-bottom: clamp(56px, 8vw, 104px);
  --padding-left: clamp(20px, 4vw, 40px);
  --padding-right: clamp(20px, 4vw, 40px);
  --row-gap: 28px;
  color: var(--jap-tinta);
}
/* --jap-borde: lo que hay desde el borde de la pantalla hasta donde empieza el contenido (bloques de 1200 px).
   --jap-fondo: el color del bloque, para difuminar hacia él lo que se sale por los lados. */
body.jap-2026 { --jap-borde: max(clamp(20px, 4vw, 40px), calc((100vw - 1200px) / 2)); }
body.jap-2026 .jap-s--papel { background: var(--jap-papel); --jap-fondo: var(--jap-papel); }
body.jap-2026 .jap-s--blanco { background: var(--jap-blanco); --jap-fondo: var(--jap-blanco); }
body.jap-2026 .jap-s--noche { --jap-fondo: var(--jap-noche); }
body.jap-2026 .elementor .jap-s--noche.e-con { background: var(--jap-noche); color: #fff; }

/* Titulares */
body.jap-2026 .jap-s .elementor-heading-title {
  margin: 0;
  color: inherit;
  font-family: var(--jap-letra);
  font-stretch: 62%;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
  line-height: .95;
}
body.jap-2026 .jap-s h1.elementor-heading-title { font-size: clamp(3.5rem, 11vw, 7.5rem); line-height: .88; }
body.jap-2026 .jap-s h2.elementor-heading-title { font-size: clamp(2.1rem, 5.4vw, 3.6rem); }
body.jap-2026 .jap-s h3.elementor-heading-title { font-size: 1.35rem; font-stretch: 75%; font-weight: 700; letter-spacing: .01em; line-height: 1.1; }
body.jap-2026 .jap-s h4.elementor-heading-title { font-size: 1.15rem; font-stretch: 75%; font-weight: 700; letter-spacing: .02em; line-height: 1.15; }

/* Bajo cada titular de bloque, una línea dorada que se dibuja al llegar */
body.jap-2026 .jap-s h2.elementor-heading-title::after {
  content: ""; display: block; width: 56px; height: 4px; margin-top: 18px;
  background: linear-gradient(90deg, var(--jap-oro), #F0B400);
  transform-origin: left; transition: transform 1.1s var(--jap-curva) .25s;
}
body.jap-2026 .jap-s :is(.jap-sub, .jap-frase) .elementor-heading-title::after { display: none; }
body.jap-2026 .jap-cierre h2.elementor-heading-title::after { margin-inline: auto; transform-origin: center; }
body.jap-2026 .jap-espera:not(.jap-entra) h2.elementor-heading-title::after { transform: scaleX(0); }

/* La cinta bajo el titular principal */
body.jap-2026 .jap-h1 .elementor-heading-title::after {
  content: "";
  display: block;
  width: 72px;
  height: 6px;
  margin-top: clamp(16px, 2.4vw, 26px);
  background: var(--jap-cinta);
}

/* Subtítulo y frase: en minúsculas, para que respiren junto a los titulares */
body.jap-2026 .jap-s .jap-sub .elementor-heading-title {
  font-stretch: 100%;
  font-weight: 500;
  font-size: clamp(1.2rem, 2.3vw, 1.55rem);
  line-height: 1.3;
  text-transform: none;
  letter-spacing: -.005em;
  color: var(--jap-tinta-2);
}
body.jap-2026 .jap-s--noche .jap-sub .elementor-heading-title { color: rgba(255, 255, 255, .78); }
body.jap-2026 .jap-s .jap-frase .elementor-heading-title {
  font-stretch: 88%;
  font-weight: 600;
  font-size: clamp(1.7rem, 3.8vw, 2.75rem);
  line-height: 1.12;
  text-transform: none;
  letter-spacing: -.012em;
  text-wrap: balance;
  max-width: 21em;
}
body.jap-2026 .jap-texto { max-width: 46em; color: var(--jap-tinta-2); }
body.jap-2026 .jap-s--noche .jap-texto { color: rgba(255, 255, 255, .74); }
body.jap-2026 .jap-nota { font-size: .8rem; line-height: 1.4; color: var(--jap-tinta-2); opacity: .85; }

/* Primera pantalla */
body.jap-2026 .elementor .jap-hero.e-con {
  --padding-top: clamp(40px, 6vw, 84px);
  --padding-bottom: clamp(48px, 7vw, 96px);
  position: relative;
}
body.jap-2026 .jap-hero .jap-sub { margin-top: 4px; }
/* Curvas de nivel de fondo, muy suaves (dibujo propio: ../relieve.py) */
body.jap-2026 .elementor .jap-hero.e-con {
  background-image: url("relieve-claro.svg");
  background-repeat: no-repeat;
  background-position: right -180px top -120px;
  background-size: 1500px auto;
}
body.jap-2026 .elementor .jap-s--noche.jap-hero.e-con,
body.jap-2026 .elementor .jap-cierre.e-con {
  background-image: url("relieve-oscuro.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1600px auto;
}

/* El dato (99/100): número grande y, al lado, qué es */
body.jap-2026 .jap-s .jap-dato .elementor-heading-title {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 24em;
  font-stretch: 100%;
  font-weight: 500;
  font-size: .98rem;
  line-height: 1.3;
  text-transform: none;
  letter-spacing: 0;
  color: var(--jap-tinta-2);
}
body.jap-2026 .jap-s .jap-dato strong {
  flex: none;
  padding-right: 16px;
  border-right: 1px solid var(--jap-linea);
  font-stretch: 62%;
  font-weight: 800;
  font-size: clamp(2.6rem, 6vw, 3.6rem);
  line-height: 1;
  color: var(--jap-tinta);
  font-variant-numeric: tabular-nums;
}
body.jap-2026 .jap-s--noche .jap-dato .elementor-heading-title { color: rgba(255, 255, 255, .78); }
body.jap-2026 .jap-s--noche .jap-dato strong { color: #fff; border-color: var(--jap-linea-noche); }

/* Páginas reales como hojas sobre la mesa (solo sombra y giro: el contenido no se toca) */
body.jap-2026 .jap-hojas { position: relative; }
body.jap-2026 .elementor .jap-vista--pdf.e-con { position: relative; --padding-top: 2%; --padding-left: 9%; padding: 2% 0 0 9%; }

/* PDF o Impreso: al marcar «Impreso» en el selector, las hojas dejan paso al libro de anillas.
   Lo hace el CSS solo, mirando qué opción está marcada (:has). En un navegador muy antiguo se quedan las hojas. */
body.jap-2026 .jap-vista { transition: opacity .45s ease, transform .7s var(--jap-curva), visibility 0s linear 0s; }
body.jap-2026 .elementor .jap-vista--impreso {
  position: absolute;
  inset: 0 0 auto 0;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(22px) rotate(2deg) scale(.96);
  transition-delay: 0s, 0s, .45s;
}
body.jap-2026 .jap-vista--impreso .elementor-widget-container { height: 100%; display: flex; align-items: center; justify-content: center; }
body.jap-2026 .jap-vista--impreso img { width: auto; max-width: 92%; max-height: 100%; filter: drop-shadow(0 30px 34px rgba(21, 27, 25, .28)); }
body.jap-2026 .jap-s:has(.jap-f-r1:checked) .jap-vista--impreso { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition-delay: .12s, .12s, 0s; }
body.jap-2026 .jap-s:has(.jap-f-r1:checked) .jap-vista--pdf { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-14px) scale(.97); transition-delay: 0s, 0s, .45s; }
body.jap-2026 .jap-hoja img {
  display: block;
  width: 100%;
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 1px 2px rgba(21, 27, 25, .10), 0 22px 44px -18px rgba(21, 27, 25, .38);
}
body.jap-2026 .elementor .jap-hoja--atras {
  position: absolute;
  top: 0;
  left: 0;
  width: 76%;
  transform: rotate(-5deg);
  transform-origin: 30% 60%;
  z-index: 0;
}
body.jap-2026 .elementor .jap-hoja--frente {
  position: relative;
  z-index: 1;
  width: 84%;
  margin-left: auto;
  transform: rotate(1.5deg);
  transition: transform .5s var(--jap-curva);
}
body.jap-2026 .jap-hojas .jap-nota { width: 84%; margin: 18px 0 0 auto; }

/* Cierre: la compra repetida al final */
body.jap-2026 .jap-cierre .elementor-widget-shortcode { width: 100%; }

/* 4. Botones -------------------------------------------------------------- */
body.jap-2026 .jap-s .elementor-button {
  display: inline-flex;
  align-items: center;
  padding: 15px 22px;
  border: 1px solid currentColor;
  border-radius: var(--jap-radio);
  background: transparent;
  color: var(--jap-tinta);
  fill: currentColor;
  font-family: var(--jap-letra);
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
body.jap-2026 .jap-s .elementor-button:hover,
body.jap-2026 .jap-s .elementor-button:focus-visible { background: var(--jap-tinta); border-color: var(--jap-tinta); color: var(--jap-papel); }
body.jap-2026 .jap-s--noche .elementor-button { color: #fff; }
body.jap-2026 .jap-s--noche .elementor-button:hover,
body.jap-2026 .jap-s--noche .elementor-button:focus-visible { background: #fff; border-color: #fff; color: var(--jap-noche); }

/* Principal: el amarillo del escudo */
body.jap-2026 .jap-s .jap-btn--oro .elementor-button { background: var(--jap-oro); border-color: var(--jap-oro); color: var(--jap-tinta); }
body.jap-2026 .jap-s .jap-btn--oro .elementor-button:hover { background: #FFDA45; border-color: #FFDA45; color: var(--jap-tinta); }

/* Halo de luz: el botón principal brilla, y la luz sigue al ratón (diseno.js mueve --jap-luz-x) */
body.jap-2026 .jap-s .jap-btn--oro .elementor-button {
  position: relative;
  background: radial-gradient(140% 220% at var(--jap-luz-x, 28%) -40%, #FFF3B0 0%, var(--jap-oro) 46%, #F0B400 100%);
  box-shadow: 0 0 0 1px rgba(249, 205, 23, .40), 0 10px 30px -6px rgba(249, 205, 23, .70), 0 0 64px -6px rgba(249, 205, 23, .50);
  transition: box-shadow .35s ease, transform .35s var(--jap-curva), background-color .2s ease;
}
body.jap-2026 .jap-s .jap-btn--oro .elementor-button:hover {
  background: radial-gradient(140% 220% at var(--jap-luz-x, 28%) -40%, #FFF8CF 0%, #FFD83A 46%, #F5BD08 100%);
  box-shadow: 0 0 0 1px rgba(249, 205, 23, .65), 0 14px 40px -6px rgba(249, 205, 23, .90), 0 0 90px -4px rgba(249, 205, 23, .70);
  transform: translateY(-1px);
}
/* Los botones de línea se encienden al pasar */
body.jap-2026 .jap-s .elementor-widget-button:not(.jap-btn--oro):not(.jap-btn--texto):not(.jap-btn--verde) .elementor-button:hover { box-shadow: 0 10px 34px -10px rgba(21, 27, 25, .55); }
body.jap-2026 .jap-s--noche .elementor-widget-button:not(.jap-btn--oro):not(.jap-btn--texto):not(.jap-btn--verde) .elementor-button { box-shadow: 0 0 26px -8px rgba(255, 255, 255, .35); }
body.jap-2026 .jap-s--noche .elementor-widget-button:not(.jap-btn--oro):not(.jap-btn--texto):not(.jap-btn--verde) .elementor-button:hover { box-shadow: 0 0 44px -6px rgba(255, 255, 255, .70); }

/* Secundario: pequeño y en el verde del escudo, hermano del de comprar («Ver ejemplo», «Descargar muestra») */
body.jap-2026 .jap-s .jap-btn--verde .elementor-button {
  position: relative;
  padding: 13px 16px;
  border-color: var(--jap-verde);
  background: radial-gradient(150% 240% at var(--jap-luz-x, 28%) -50%, #5C7A75 0%, var(--jap-verde) 48%, #22312F 100%);
  color: #fff;
  font-size: .75rem;
  box-shadow: 0 0 0 1px rgba(49, 69, 67, .35), 0 10px 24px -10px rgba(49, 69, 67, .85), 0 0 34px -12px rgba(49, 69, 67, .7);
  transition: box-shadow .35s ease, transform .35s var(--jap-curva), border-color .2s ease;
}
body.jap-2026 .jap-s .jap-btn--verde .elementor-button::after { content: "→"; margin-left: 10px; font-size: .95rem; letter-spacing: 0; transition: transform .3s var(--jap-curva); }
body.jap-2026 .jap-s .jap-btn--verde.jap-btn--baja .elementor-button::after { content: "↓"; }
body.jap-2026 .jap-s .jap-btn--verde .elementor-button:hover,
body.jap-2026 .jap-s .jap-btn--verde .elementor-button:focus-visible {
  border-color: #46615D;
  background: radial-gradient(150% 240% at var(--jap-luz-x, 28%) -50%, #73928C 0%, #3A524F 48%, #283A37 100%);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(70, 97, 93, .6), 0 14px 30px -10px rgba(49, 69, 67, .95), 0 0 46px -8px rgba(92, 122, 117, .85);
  transform: translateY(-1px);
}
body.jap-2026 .jap-s .jap-btn--verde .elementor-button:hover::after { transform: translateX(4px); }
body.jap-2026 .jap-s .jap-btn--verde.jap-btn--baja .elementor-button:hover::after { transform: translateY(3px); }
body.jap-2026 .jap-s--noche .jap-btn--verde .elementor-button { border-color: rgba(255, 255, 255, .22); box-shadow: 0 0 0 1px rgba(255, 255, 255, .05), 0 0 34px -10px rgba(110, 190, 170, .55); }
body.jap-2026 .jap-s--noche .jap-btn--verde .elementor-button:hover { border-color: rgba(255, 255, 255, .45); background: radial-gradient(150% 240% at var(--jap-luz-x, 28%) -50%, #73928C 0%, #3A524F 48%, #283A37 100%); color: #fff; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12), 0 0 50px -8px rgba(110, 190, 170, .8); }

/* De texto: una línea debajo y una flecha */
body.jap-2026 .jap-s .jap-btn--texto .elementor-button {
  padding: 6px 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  background: none;
}
body.jap-2026 .jap-s .jap-btn--texto .elementor-button::after { content: "→"; margin-left: 10px; font-size: 1rem; letter-spacing: 0; transition: transform .3s var(--jap-curva); }
body.jap-2026 .jap-s .jap-btn--texto .elementor-button:hover { background: none; color: inherit; border-color: var(--jap-oro); }
body.jap-2026 .jap-s .jap-btn--texto .elementor-button:hover::after { transform: translateX(4px); }
body.jap-2026 .jap-s .jap-btn--baja .elementor-button::after { content: "↓"; }
body.jap-2026 .jap-s .jap-btn--baja .elementor-button:hover::after { transform: translateY(3px); }

/* 5. Carrusel de páginas reales ------------------------------------------- */
/* Pasarela de páginas: más pequeñas y de lado a lado de la pantalla; por los lados se difuminan */
body.jap-2026 .elementor .jap-s > .e-con-inner > .elementor-element.elementor-widget-image-carousel { position: relative; width: min(100vw, 1560px); max-width: none !important; margin-inline: calc(50% - min(50vw, 780px)); }
body.jap-2026 .jap-s > .e-con-inner > .elementor-widget-image-carousel::before,
body.jap-2026 .jap-s > .e-con-inner > .elementor-widget-image-carousel::after {
  content: ""; position: absolute; top: 0; bottom: 64px; width: min(var(--jap-borde), 18vw); z-index: 2; pointer-events: none;
}
body.jap-2026 .jap-s > .e-con-inner > .elementor-widget-image-carousel::before { left: 0; background: linear-gradient(90deg, var(--jap-fondo), transparent); }
body.jap-2026 .jap-s > .e-con-inner > .elementor-widget-image-carousel::after { right: 0; background: linear-gradient(270deg, var(--jap-fondo), transparent); }
body.jap-2026 .jap-s .elementor-image-carousel-wrapper { padding-bottom: 6px; }
body.jap-2026 .jap-s .swiper-slide a { display: block; text-decoration: none; }
body.jap-2026 .jap-s .swiper-slide-inner { margin: 0; }
body.jap-2026 .jap-s .swiper-slide-image { display: block; width: 100%; background: #fff; border-radius: 2px; transition: transform .5s var(--jap-curva); }
body.jap-2026 .jap-s .swiper-slide a:hover .swiper-slide-image { transform: translateY(-4px); }
body.jap-2026 .jap-s .elementor-image-carousel-caption {
  margin-top: 16px;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: left;
  color: var(--jap-tinta-2);
}
body.jap-2026 .jap-s--noche .elementor-image-carousel-caption { color: var(--jap-oro-suave); }
body.jap-2026 .jap-s--papel .swiper-slide-image,
body.jap-2026 .jap-s--blanco .swiper-slide-image { box-shadow: 0 0 0 1px var(--jap-linea); }
body.jap-2026 .jap-s .elementor-swiper-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--jap-linea);
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--jap-tinta);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
body.jap-2026 .jap-s .elementor-swiper-button svg { width: 14px; height: 14px; fill: currentColor; }
body.jap-2026 .jap-s .elementor-swiper-button i { font-size: 14px; }
body.jap-2026 .jap-s .elementor-swiper-button:hover { background: var(--jap-oro); border-color: var(--jap-oro); color: var(--jap-tinta); }
body.jap-2026 .jap-s .elementor-swiper-button { z-index: 3; }
body.jap-2026 .jap-s .elementor-swiper-button-prev { left: max(12px, calc(var(--jap-borde) - 64px)); }
body.jap-2026 .jap-s .elementor-swiper-button-next { right: max(12px, calc(var(--jap-borde) - 64px)); }
body.jap-2026 .jap-s .swiper-pagination { position: static; margin-top: 22px; }
body.jap-2026 .jap-s .swiper-pagination-bullet { width: 26px; height: 2px; margin: 0 3px !important; border-radius: 0; background: currentColor; opacity: .25; transition: opacity .2s ease, background-color .2s ease; }
body.jap-2026 .jap-s .swiper-pagination-bullet-active { opacity: 1; background: var(--jap-oro); }
body.jap-2026 .jap-s--papel .swiper-pagination-bullet-active,
body.jap-2026 .jap-s--blanco .swiper-pagination-bullet-active { background: var(--jap-tinta); }

/* 6. Datos, conceptos y opiniones ------------------------------------------ */
/* Conceptos numerados: 01 CONTENIDO TRABAJADO · 02 DISTRACTORES… */
body.jap-2026 .elementor .jap-conceptos.e-con { counter-reset: concepto; --gap: 0px; --row-gap: 0px; --column-gap: 0px; border-top: 1px solid var(--jap-linea); margin-top: 12px; }
body.jap-2026 .elementor .jap-conceptos > .e-con { counter-increment: concepto; --padding-top: 22px; --padding-right: 20px; --padding-bottom: 4px; --padding-left: 20px; border-left: 1px solid var(--jap-linea); }
body.jap-2026 .elementor .jap-conceptos > .e-con:first-child { --padding-left: 0px; border-left: 0; }
/* El número va en el titular: Elementor ya usa el ::before de los contenedores */
body.jap-2026 .jap-conceptos > .e-con .elementor-heading-title::before {
  content: "0" counter(concepto);
  display: block;
  margin-bottom: 12px;
  font-stretch: 100%;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .14em;
  color: var(--jap-verde);
}
body.jap-2026 .jap-s--noche .jap-conceptos,
body.jap-2026 .jap-s--noche .jap-conceptos > .e-con { border-color: var(--jap-linea-noche); }
body.jap-2026 .jap-s--noche .jap-conceptos > .e-con .elementor-heading-title::before { color: var(--jap-oro-suave); }

/* Cifras: tres fichas. El número sube hasta su cifra (diseno.js) y una línea dorada se va llenando */
body.jap-2026 .elementor .jap-cifras.e-con { --gap: 16px; --column-gap: 16px; --row-gap: 16px; align-items: stretch; }
body.jap-2026 .elementor .jap-cifras > .e-con {
  --padding-top: 30px; --padding-bottom: 30px; --padding-left: 28px; --padding-right: 28px; --row-gap: 8px;
  position: relative;
  overflow: hidden;
  align-items: flex-start;
  border: 1px solid var(--jap-linea);
  border-radius: var(--jap-radio);
  background: var(--jap-blanco);
  box-shadow: 0 26px 50px -38px rgba(21, 27, 25, .55);
  transition: transform .55s var(--jap-curva), box-shadow .55s ease, border-color .3s ease;
}
body.jap-2026 .jap-cifras > .e-con::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
  background: linear-gradient(90deg, var(--jap-oro), #F0B400);
  transform-origin: left;
}
.jap-mov body.jap-2026 .jap-cifras > .e-con::after { transform: scaleX(0); transition: transform 2.3s var(--jap-curva); }
.jap-mov body.jap-2026 .jap-cifras > .e-con.jap-contado::after { transform: scaleX(1); }
body.jap-2026 .jap-cifras > .e-con:hover { transform: translateY(-4px); border-color: rgba(249, 205, 23, .9); box-shadow: 0 30px 56px -34px rgba(21, 27, 25, .6), 0 0 50px -14px rgba(249, 205, 23, .75); }
body.jap-2026 .jap-s .jap-cifras h3.elementor-heading-title { font-stretch: 62%; font-weight: 800; font-size: clamp(3rem, 6.4vw, 4.5rem); line-height: .95; letter-spacing: 0; text-align: left; font-variant-numeric: tabular-nums; white-space: nowrap; }
body.jap-2026 .jap-cifras .elementor-widget-text-editor,
body.jap-2026 .jap-cifras .elementor-widget-text-editor p { font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; text-align: left; color: var(--jap-tinta-2); line-height: 1.4; }
body.jap-2026 .jap-s--noche .jap-cifras > .e-con { border-color: var(--jap-linea-noche); background: rgba(255, 255, 255, .04); box-shadow: none; }
body.jap-2026 .jap-s--noche .jap-cifras .elementor-widget-text-editor p { color: rgba(255, 255, 255, .7); }

/* Opiniones reales: tarjetas con profundidad, comillas, estrellas e iniciales. Se elevan y se encienden
   al pasar, y una luz las recorre de una en una (diseno.js). En el ordenador van escalonadas. */
body.jap-2026 .elementor .jap-citas.e-con { --gap: 20px; --column-gap: 20px; --row-gap: 16px; }
body.jap-2026 .jap-citas > .e-con { align-self: stretch; }
body.jap-2026 .jap-citas .elementor-widget-testimonial,
body.jap-2026 .jap-citas .elementor-widget-testimonial > .elementor-widget-container { height: 100%; }
body.jap-2026 .jap-citas .elementor-testimonial-wrapper {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 34px 30px 26px;
  border: 1px solid var(--jap-linea);
  border-radius: var(--jap-radio);
  background: linear-gradient(180deg, #fff 0%, #FBFAF6 100%);
  box-shadow: 0 32px 60px -44px rgba(21, 27, 25, .6);
  text-align: left;
  transition: transform .6s var(--jap-curva), box-shadow .6s ease, border-color .35s ease;
}
body.jap-2026 .jap-citas .elementor-testimonial-wrapper::before {
  content: "\201C"; position: absolute; top: 4px; right: 22px;
  font-stretch: 62%; font-weight: 800; font-size: 6.5rem; line-height: 1; color: var(--jap-oro); pointer-events: none;
}
body.jap-2026 .jap-citas .elementor-testimonial-wrapper::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 32%, rgba(249, 205, 23, .20) 49%, transparent 66%);
  transform: translateX(-130%); transition: transform 1.2s var(--jap-curva);
}
body.jap-2026 .jap-citas .elementor-testimonial-wrapper:hover,
body.jap-2026 .jap-citas .elementor-testimonial-wrapper.jap-cita--luz {
  transform: translateY(-6px);
  border-color: rgba(249, 205, 23, .95);
  box-shadow: 0 36px 66px -40px rgba(21, 27, 25, .65), 0 0 0 1px rgba(249, 205, 23, .55), 0 0 64px -14px rgba(249, 205, 23, .8);
}
body.jap-2026 .jap-citas .elementor-testimonial-wrapper:hover::after,
body.jap-2026 .jap-citas .elementor-testimonial-wrapper.jap-cita--luz::after { transform: translateX(130%); }
body.jap-2026 .jap-citas .elementor-testimonial-content { position: relative; margin: 0 0 24px; font-size: 1.04rem; font-style: normal; line-height: 1.62; color: var(--jap-tinta); }
body.jap-2026 .jap-citas .elementor-testimonial-content::before { content: "★★★★★"; display: block; margin-bottom: 16px; font-size: .95rem; letter-spacing: .2em; color: #E0A800; }
body.jap-2026 .jap-citas .elementor-testimonial-meta { position: relative; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--jap-linea); width: 100%; }
body.jap-2026 .jap-citas .elementor-testimonial-meta .elementor-testimonial-meta-inner { display: flex; align-items: center; gap: 12px; }
body.jap-2026 .jap-citas .elementor-testimonial-details { display: block; padding: 0; }
body.jap-2026 .jap-avatar { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--jap-verde); color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .06em; box-shadow: 0 0 0 3px rgba(49, 69, 67, .14); }
body.jap-2026 .jap-citas .elementor-testimonial-name { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--jap-tinta-2); }
@media (min-width: 1025px) {
  body.jap-2026 .jap-citas:not(.jap-pasarela) > .e-con:nth-child(2) { margin-top: 28px; }
  body.jap-2026 .jap-citas:not(.jap-pasarela) > .e-con:nth-child(3) { margin-top: 56px; }
}

/* Pasarela infinita: las opiniones en una sola fila que se desliza sin fin, de lado a lado de la pantalla.
   La primera tarjeta arranca alineada con el contenido; por los lados se difuminan. La mueve diseno.js;
   sin JavaScript sigue siendo una fila que se desliza con el dedo. */
body.jap-2026 .elementor .jap-pasarela.e-con {
  --width: 100vw;
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin: -22px calc(50% - 50vw) -30px;
  padding: 22px var(--jap-borde) 56px;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 20px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--jap-borde);
  scrollbar-width: none;
  cursor: grab;
  outline-offset: -4px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 calc(var(--jap-borde) - 2px), #000 calc(100% - var(--jap-borde) + 2px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 calc(var(--jap-borde) - 2px), #000 calc(100% - var(--jap-borde) + 2px), transparent 100%);
}
body.jap-2026 .jap-pasarela::-webkit-scrollbar { display: none; }
body.jap-2026 .elementor .jap-pasarela > .e-con { --width: min(390px, 82vw); flex: 0 0 auto; width: min(390px, 82vw); scroll-snap-align: start; }
body.jap-2026 .jap-pasarela.jap-arrastra { scroll-snap-type: none; cursor: grabbing; user-select: none; }
body.jap-2026 .jap-pasarela-nav { display: flex; gap: 10px; }
body.jap-2026 .jap-flecha {
  display: grid; place-items: center;
  width: 48px; height: 48px; margin: 0; padding: 0;
  border: 1px solid var(--jap-linea); border-radius: 50%;
  background: var(--jap-blanco); color: var(--jap-tinta);
  font-family: var(--jap-letra); font-size: 1.15rem; font-weight: 500; line-height: 1;
  box-shadow: 0 12px 26px -16px rgba(21, 27, 25, .55);
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .35s ease, transform .35s var(--jap-curva);
}
@media (hover: hover) { body.jap-2026 .jap-flecha:hover { background: var(--jap-oro); border-color: var(--jap-oro); color: var(--jap-tinta); box-shadow: 0 0 0 1px rgba(249, 205, 23, .5), 0 0 34px -4px rgba(249, 205, 23, .8); transform: translateY(-1px); } }
body.jap-2026 .jap-flecha:active,
body.jap-2026 .jap-flecha:focus-visible { background: var(--jap-oro); border-color: var(--jap-oro); color: var(--jap-tinta); box-shadow: 0 0 0 1px rgba(249, 205, 23, .5), 0 0 34px -4px rgba(249, 205, 23, .8); transform: translateY(-1px); }
body.jap-2026 .jap-s--noche .jap-flecha { border-color: var(--jap-linea-noche); background: rgba(255, 255, 255, .06); color: #fff; box-shadow: none; }
@media (hover: hover) { body.jap-2026 .jap-s--noche .jap-flecha:hover { background: var(--jap-oro); border-color: var(--jap-oro); color: var(--jap-tinta); } }

/* Segundo tono oscuro, para alternar bloques en las páginas oscuras (Everest) */
body.jap-2026 .elementor .jap-s--noche2.e-con { background-color: var(--jap-noche-2); --jap-fondo: var(--jap-noche-2); }

/* Titular principal largo («Especialistas en conocimientos») */
body.jap-2026 .jap-s .jap-h1--largo h1.elementor-heading-title { font-size: clamp(2.9rem, 7.4vw, 5.5rem); line-height: .92; }

/* Dobles páginas apaisadas (Libro Resumen) como hojas */
body.jap-2026 .jap-hojas:has(.jap-vista--apaisada) { min-height: clamp(340px, 36vw, 540px); justify-content: center; }
body.jap-2026 .elementor .jap-vista--apaisada.e-con { padding: 9% 0 3% 5%; }
body.jap-2026 .elementor .jap-vista--apaisada .jap-hoja--atras { width: 88%; }
body.jap-2026 .elementor .jap-vista--apaisada .jap-hoja--frente { width: 93%; }
body.jap-2026 .jap-s--noche .jap-hoja img { box-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 30px 60px -22px rgba(0, 0, 0, .75); }
body.jap-2026 .jap-s--noche .jap-vista--impreso img { filter: drop-shadow(0 34px 40px rgba(0, 0, 0, .55)); }
body.jap-2026 .jap-s--noche .jap-nota { color: rgba(255, 255, 255, .55); }

/* El libro de anillas como hoja de delante (primera pantalla de Inicio) */
body.jap-2026 .jap-hoja--libro img { display: block; width: 100%; background: none; box-shadow: none; filter: drop-shadow(0 34px 40px rgba(0, 0, 0, .55)); }
/* Frase destacada escrita como texto (para los textos pendientes) */
body.jap-2026 .jap-frase-texto, body.jap-2026 .jap-frase-texto p { max-width: 26em; font-stretch: 88%; font-weight: 600; font-size: clamp(1.4rem, 3vw, 2.1rem); line-height: 1.2; letter-spacing: -.01em; }

/* Imagen destacada: los banners aprobados (TEST JAP, Everest), con su halo */
body.jap-2026 .jap-visual img {
  display: block; width: 100%; border-radius: 4px;
  box-shadow: 0 34px 70px -34px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .08), 0 0 110px -24px rgba(249, 205, 23, .42);
}
body.jap-2026 .jap-s--papel .jap-visual img,
body.jap-2026 .jap-s--blanco .jap-visual img { box-shadow: 0 34px 70px -40px rgba(21, 27, 25, .7), 0 0 0 1px var(--jap-linea); }

/* Capturas reales del Campus, como pantallas: marco, tres puntos y sombra (el contenido no se toca) */
body.jap-2026 .jap-pantalla > .elementor-widget-container {
  position: relative; padding-top: 28px; overflow: hidden;
  border: 1px solid var(--jap-linea); border-radius: 8px; background: #ECE9E2;
  box-shadow: 0 34px 64px -44px rgba(21, 27, 25, .7);
  transition: transform .6s var(--jap-curva), box-shadow .6s ease, border-color .3s ease;
}
body.jap-2026 .jap-pantalla > .elementor-widget-container::before {
  content: ""; position: absolute; top: 10px; left: 14px; width: 8px; height: 8px; border-radius: 50%;
  background: #C6C1B5; box-shadow: 14px 0 0 #C6C1B5, 28px 0 0 #C6C1B5;
}
body.jap-2026 .jap-pantalla img { display: block; width: 100%; }
body.jap-2026 .jap-pantalla figure { margin: 0; }
body.jap-2026 .jap-pantalla .widget-image-caption { margin: 0; padding: 12px 16px 13px; background: var(--jap-blanco); border-top: 1px solid var(--jap-linea); font-size: .72rem; font-style: normal; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; text-align: left; line-height: 1.35; color: var(--jap-tinta-2); }
body.jap-2026 .jap-pantalla:hover > .elementor-widget-container { transform: translateY(-5px); border-color: rgba(249, 205, 23, .9); box-shadow: 0 38px 70px -40px rgba(21, 27, 25, .75), 0 0 60px -16px rgba(249, 205, 23, .7); }
body.jap-2026 .jap-s--noche .jap-pantalla > .elementor-widget-container { border-color: var(--jap-linea-noche); background: #26322F; box-shadow: 0 34px 64px -40px rgba(0, 0, 0, .9); }
body.jap-2026 .jap-s--noche .jap-pantalla > .elementor-widget-container::before { background: rgba(255, 255, 255, .28); box-shadow: 14px 0 0 rgba(255, 255, 255, .28), 28px 0 0 rgba(255, 255, 255, .28); }
body.jap-2026 .jap-s--noche .jap-pantalla .widget-image-caption { background: #1B2623; border-color: var(--jap-linea-noche); color: var(--jap-oro-suave); }

/* Lista de lo que incluye: una línea por cosa, con su marca dorada */
body.jap-2026 .jap-lista .elementor-icon-list-items { margin: 0; padding: 0; border-top: 1px solid var(--jap-linea); }
body.jap-2026 .jap-lista .elementor-icon-list-item { display: flex; align-items: center; margin: 0; padding: 17px 0; border-bottom: 1px solid var(--jap-linea); }
body.jap-2026 .jap-lista .elementor-icon-list-item::after { display: none; }
body.jap-2026 .jap-lista .elementor-icon-list-icon { flex: none; display: grid; place-items: center; width: 28px; height: 28px; margin-right: 14px; border-radius: 50%; background: var(--jap-oro); box-shadow: 0 0 22px -4px rgba(249, 205, 23, .8); }
body.jap-2026 .jap-lista .elementor-icon-list-icon :is(i, svg) { width: 12px; height: 12px; font-size: 12px; color: var(--jap-tinta); fill: var(--jap-tinta); }
body.jap-2026 .jap-lista .elementor-icon-list-text { padding: 0; font-size: 1.08rem; font-weight: 500; line-height: 1.35; color: inherit; }
body.jap-2026 .jap-s--noche .jap-lista .elementor-icon-list-items,
body.jap-2026 .jap-s--noche .jap-lista .elementor-icon-list-item { border-color: var(--jap-linea-noche); }

/* Tarjetas: productos, los dos caminos del Campus, las puertas de Materiales */
body.jap-2026 .elementor .jap-tarjetas.e-con { --gap: 20px; --column-gap: 20px; --row-gap: 20px; align-items: stretch; }
body.jap-2026 .elementor .jap-tarjetas > .e-con {
  --padding-top: 22px; --padding-bottom: 26px; --padding-left: 22px; --padding-right: 22px; --row-gap: 12px;
  position: relative; overflow: hidden;
  border: 1px solid var(--jap-linea); border-radius: var(--jap-radio);
  background: linear-gradient(180deg, #fff 0%, #FBFAF6 100%);
  box-shadow: 0 32px 60px -46px rgba(21, 27, 25, .65);
  transition: transform .6s var(--jap-curva), box-shadow .6s ease, border-color .35s ease;
}
body.jap-2026 .jap-tarjetas > .e-con:hover { transform: translateY(-6px); border-color: rgba(249, 205, 23, .95); box-shadow: 0 38px 68px -42px rgba(21, 27, 25, .7), 0 0 0 1px rgba(249, 205, 23, .5), 0 0 64px -16px rgba(249, 205, 23, .75); }
body.jap-2026 .jap-tarjetas .elementor-widget-image img { border-radius: 2px; transition: transform .7s var(--jap-curva); }
body.jap-2026 .jap-tarjetas > .e-con:hover .elementor-widget-image img { transform: scale(1.03); }
body.jap-2026 .jap-s .jap-tarjetas h3.elementor-heading-title { font-stretch: 62%; font-weight: 800; font-size: 1.9rem; line-height: 1; letter-spacing: 0; }
body.jap-2026 .jap-tarjetas .elementor-widget-text-editor { color: var(--jap-tinta-2); font-size: .98rem; }
body.jap-2026 .jap-tarjetas > .e-con > .elementor-widget-button { margin-top: auto; padding-top: 6px; }
body.jap-2026 .jap-precio-grande, body.jap-2026 .jap-precio-grande p { font-stretch: 62%; font-weight: 800; font-size: 2.1rem; line-height: 1; color: var(--jap-tinta); font-variant-numeric: tabular-nums; }
body.jap-2026 .jap-precio-grande small { font-stretch: 100%; font-weight: 500; font-size: .9rem; letter-spacing: 0; color: var(--jap-tinta-2); }
body.jap-2026 .jap-s--noche .jap-tarjetas > .e-con { border-color: var(--jap-linea-noche); background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .03)); box-shadow: none; }
body.jap-2026 .jap-s--noche .jap-tarjetas .elementor-widget-text-editor { color: rgba(255, 255, 255, .74); }
body.jap-2026 .jap-s--noche .jap-precio-grande, body.jap-2026 .jap-s--noche .jap-precio-grande p { color: #fff; }

/* Las dos tarjetas de «Temas y packs»: tema suelto y pack, cada una con su desplegable */
body.jap-2026 .elementor .jap-tarjetas--elegir > .e-con { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 30px; --padding-right: 30px; overflow: visible; }
body.jap-2026 .jap-tarjetas--elegir > .e-con:hover { transform: none; }
body.jap-2026 .jap-s .jap-tarjetas--elegir h2.elementor-heading-title { font-size: clamp(1.9rem, 3.4vw, 2.7rem); }
body.jap-2026 .jap-tarjetas--elegir .jap-e { max-width: none; }
/* La portada del tema o del pack elegido. El desplegable la saca junto al formulario; para poder colocarla
   a la izquierda de toda la tarjeta, los envoltorios del widget se «disuelven» (display: contents). */
body.jap-2026 .jap-tarjetas--elegir .elementor-widget-shortcode,
body.jap-2026 .jap-tarjetas--elegir .elementor-widget-shortcode > .elementor-widget-container,
body.jap-2026 .jap-tarjetas--elegir .elementor-shortcode { display: contents; }
body.jap-2026 .jap-tarjetas--elegir .jap-e-imagen { order: -1; align-self: center; margin: 0 0 10px; }
@media (min-width: 768px) {
  body.jap-2026 .elementor .jap-tarjetas--elegir > .e-con { display: grid; grid-template-columns: minmax(150px, 36%) minmax(0, 1fr); column-gap: 32px; row-gap: 14px; align-content: center; align-items: start; }
  body.jap-2026 .jap-tarjetas--elegir > .e-con > .elementor-element,
  body.jap-2026 .jap-tarjetas--elegir .jap-e { grid-column: 2; width: auto; max-width: none; }
  body.jap-2026 .jap-tarjetas--elegir .jap-e-imagen { grid-column: 1; grid-row: 1 / span 6; align-self: center; width: 100%; margin: 0; }
}

/* Cifras pequeñas, dentro de un bloque con texto */
body.jap-2026 .elementor .jap-cifras--mini > .e-con { --padding-top: 20px; --padding-bottom: 22px; --padding-left: 20px; --padding-right: 20px; }
body.jap-2026 .jap-s .jap-cifras--mini h3.elementor-heading-title { font-size: clamp(2rem, 3.6vw, 2.9rem); }

/* Banda centrada (prueba gratis, promesa de Everest). Sin fondo propio: la luz la pone el fondo único de la página */
body.jap-2026 .jap-banda h2.elementor-heading-title::after { margin-inline: auto; transform-origin: center; }
body.jap-2026 .jap-banda .jap-texto { max-width: none; font-size: 1.1rem; }

/* Opiniones y cifras sobre fondo oscuro */
body.jap-2026 .jap-s--noche .jap-citas .elementor-testimonial-wrapper { border-color: var(--jap-linea-noche); background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .03)); box-shadow: none; }
body.jap-2026 .jap-s--noche .jap-citas .elementor-testimonial-content { color: #fff; }
body.jap-2026 .jap-s--noche .jap-citas .elementor-testimonial-meta { border-color: var(--jap-linea-noche); }
body.jap-2026 .jap-s--noche .jap-citas .elementor-testimonial-name { color: rgba(255, 255, 255, .72); }
body.jap-2026 .jap-s--noche .jap-avatar { background: var(--jap-oro); color: var(--jap-tinta); box-shadow: 0 0 0 3px rgba(249, 205, 23, .18); }
body.jap-2026 .jap-s--noche .jap-citas .elementor-testimonial-wrapper:hover { border-color: rgba(249, 205, 23, .95); box-shadow: 0 0 0 1px rgba(249, 205, 23, .5), 0 0 64px -14px rgba(249, 205, 23, .7); }

/* Tienda dentro de Materiales: los productos de WooCommerce como fichas */
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products::before,
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products::after { display: none; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product {
  display: flex; flex-direction: column; float: none; width: auto; margin: 0; padding: 0 0 20px; overflow: hidden;
  border: 1px solid var(--jap-linea); border-radius: var(--jap-radio); background: var(--jap-blanco); text-align: left;
  box-shadow: 0 30px 56px -46px rgba(21, 27, 25, .6);
  transition: transform .6s var(--jap-curva), box-shadow .6s ease, border-color .35s ease;
}
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product:hover { transform: translateY(-5px); border-color: rgba(249, 205, 23, .95); box-shadow: 0 36px 64px -42px rgba(21, 27, 25, .7), 0 0 56px -16px rgba(249, 205, 23, .7); }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .astra-shop-thumbnail-wrap { margin: 0; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product img { display: block; width: 100%; margin: 0; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .astra-shop-summary-wrap { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 16px 18px 0; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .ast-woo-product-category { display: none; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .woocommerce-loop-product__title { margin: 0; padding: 0; font-family: var(--jap-letra); font-size: 1.02rem; font-weight: 600; line-height: 1.3; color: var(--jap-tinta); }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .price { margin: 0; font-family: var(--jap-letra); font-stretch: 62%; font-weight: 800; font-size: 1.7rem; line-height: 1; color: var(--jap-tinta); }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .star-rating { display: none; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product a.button {
  align-self: flex-start; margin: auto 0 0; padding: 12px 15px; border: 1px solid var(--jap-verde); border-radius: var(--jap-radio);
  background: var(--jap-verde); color: #fff; font-family: var(--jap-letra); font-size: .72rem; font-weight: 600; line-height: 1; letter-spacing: .12em; text-transform: uppercase;
  box-shadow: 0 10px 22px -12px rgba(49, 69, 67, .9); transition: background-color .2s ease, box-shadow .35s ease;
}
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product a.button:hover { background: #3F5855; box-shadow: 0 0 36px -8px rgba(92, 122, 117, .9); }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product a.added_to_cart { margin: 8px 0 0; font-size: .78rem; font-weight: 600; color: var(--jap-tinta); text-decoration: underline; }
body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .onsale { display: none; }

/* 7. Cabecera y pie -------------------------------------------------------- */
#masthead:has(.jap-cab) { position: sticky; top: 0; z-index: 990; }
.admin-bar #masthead:has(.jap-cab) { top: 32px; }
#masthead .elementor .jap-cab.e-con {
  --padding-top: 0px; --padding-bottom: 0px;
  --padding-left: clamp(16px, 3vw, 32px); --padding-right: clamp(16px, 3vw, 32px);
  --min-height: 76px;
  position: relative;
  background: var(--jap-noche);
  font-family: var(--jap-letra);
  transition: box-shadow .3s ease;
}
#masthead .jap-cab::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--jap-cinta); }
#masthead .jap-cab > .e-con-inner { flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; }
.jap-cab--baja #masthead .jap-cab, #masthead.jap-cab--baja .jap-cab { box-shadow: 0 10px 30px -14px rgba(0, 0, 0, .55); }
#masthead.jap-cab--baja .elementor .jap-cab.e-con { background: rgba(18, 26, 24, .94); -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3); }
#masthead .jap-cab-logo { flex: none; width: auto; }
#masthead .jap-cab-logo img { display: block; width: auto; height: 46px; max-width: none; }
#masthead .jap-cab-menu { flex: 1 1 auto; width: auto; }
#masthead .jap-cab-menu > .elementor-widget-container { margin: 0; padding: 0; }
#masthead .jap-cab .wpr-nav-menu { display: flex; justify-content: center; gap: 4px; }
#masthead .jap-cab .wpr-nav-menu > li { margin: 0; }
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item {
  padding: 10px 14px;
  background: none;
  color: rgba(255, 255, 255, .86);
  font-family: var(--jap-letra);
  font-size: .8rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: color .2s ease;
}
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item:hover,
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item.wpr-active-menu-item { color: #fff; }
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item::before { display: none; }
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; top: auto; width: auto; height: 2px;
  background: var(--jap-oro); opacity: 1; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--jap-curva);
}
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item:hover::after,
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item.wpr-active-menu-item::after { transform: scaleX(1); }
#masthead .jap-cab-campus { flex: none; width: auto; }
#masthead .jap-cab-campus .elementor-button {
  padding: 13px 18px;
  border: 1px solid var(--jap-oro-suave);
  border-radius: var(--jap-radio);
  background: transparent;
  color: #fff;
  font-family: var(--jap-letra);
  font-size: .76rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .13em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .35s ease;
}
#masthead .jap-cab-campus .elementor-button { box-shadow: 0 0 22px -6px rgba(249, 205, 23, .55), inset 0 0 18px -10px rgba(249, 205, 23, .55); }
#masthead .jap-cab-campus .elementor-button:hover { background: var(--jap-oro); border-color: var(--jap-oro); color: var(--jap-tinta); box-shadow: 0 0 0 1px rgba(249, 205, 23, .5), 0 0 40px -2px rgba(249, 205, 23, .85); }

/* Menú desplegable del móvil */
#masthead .jap-cab .wpr-mobile-toggle-wrap { display: flex; align-items: center; justify-content: flex-end; }
#masthead .jap-cab .wpr-mobile-toggle { display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 44px; height: 44px; padding: 0 9px; border: 0; background: none; cursor: pointer; }
#masthead .jap-cab .wpr-mobile-toggle-line { display: block; width: 100%; height: 2px; margin: 0; background: #fff; border-radius: 0; transition: background-color .2s ease; }
#masthead .jap-cab .wpr-mobile-toggle:hover .wpr-mobile-toggle-line { background: var(--jap-oro); }
#masthead .jap-cab .wpr-mobile-mega-menu-wrap { margin-top: 10px; border-top: 1px solid var(--jap-linea-noche); background: var(--jap-noche); box-shadow: 0 24px 40px -20px rgba(0, 0, 0, .6); }
#masthead .jap-cab .wpr-mobile-nav-menu { margin: 0; padding: 6px 0 14px; list-style: none; }
#masthead .jap-cab .wpr-mobile-nav-menu > li { margin: 0; border: 0; }
#masthead .jap-cab .wpr-mobile-nav-menu .wpr-mobile-menu-item {
  display: block;
  padding: 17px 22px;
  border: 0;
  border-bottom: 1px solid var(--jap-linea-noche);
  background: none;
  color: #fff;
  font-family: var(--jap-letra);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .13em;
  text-transform: uppercase;
}
#masthead .jap-cab .wpr-mobile-nav-menu > li:last-child .wpr-mobile-menu-item { border-bottom: 0; }
#masthead .jap-cab .wpr-mobile-nav-menu .wpr-mobile-menu-item:hover,
#masthead .jap-cab .wpr-mobile-nav-menu .current-menu-item > .wpr-mobile-menu-item { background: none; color: var(--jap-oro); }

/* Pie */
#colophon .elementor .jap-pie.e-con {
  --padding-top: clamp(48px, 7vw, 80px); --padding-bottom: 36px;
  --padding-left: clamp(20px, 4vw, 40px); --padding-right: clamp(20px, 4vw, 40px);
  position: relative;
  background: var(--jap-noche);
  color: rgba(255, 255, 255, .74);
  font-family: var(--jap-letra);
  font-size: .95rem;
}
#colophon .jap-pie::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--jap-cinta); }
#colophon .jap-pie :is(p, a, li, span, h2, h3, h4, div) { font-family: var(--jap-letra); }
#colophon .jap-pie-logo img { display: block; width: auto; height: 64px; }
#colophon .jap-pie .elementor-heading-title { margin: 0 0 6px; color: #fff; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; line-height: 1.3; }
#colophon .jap-pie a { color: rgba(255, 255, 255, .78); text-decoration: none; transition: color .2s ease; }
#colophon .jap-pie a:hover { color: #fff; }
#colophon .jap-pie .elementor-icon-list-items { margin: 0; padding: 0; }
#colophon .jap-pie .elementor-icon-list-item { padding: 5px 0; }
#colophon .jap-pie .elementor-icon-list-item::after { display: none; }
#colophon .jap-pie .elementor-icon-list-text { padding: 0; color: inherit; font-size: .95rem; line-height: 1.4; }
#colophon .jap-pie-logo, #colophon .jap-pie-logo .elementor-widget-container { text-align: left; }
#colophon .jap-pie .hfe-nav-menu, #colophon .jap-pie .hfe-nav-menu ul { margin: 0; padding: 0; list-style: none; }
#colophon .jap-pie .hfe-nav-menu a.hfe-menu-item { justify-content: flex-start; padding: 5px 0; font-family: var(--jap-letra); font-size: .95rem; font-weight: 400; line-height: 1.4; color: rgba(255, 255, 255, .78); }
#colophon .jap-pie .hfe-nav-menu a.hfe-menu-item:hover { color: #fff; }
#colophon .jap-pie .elementor-social-icons-wrapper { display: flex; gap: 10px; justify-content: flex-start; }
#colophon .jap-pie .elementor-grid-item { margin: 0; }
#colophon .jap-pie .elementor-widget-button .elementor-widget-container { text-align: left; }
#colophon .jap-pie .elementor-social-icon { width: 40px; height: 40px; border: 1px solid var(--jap-linea-noche); border-radius: 50%; background: transparent; color: #fff; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
#colophon .jap-pie .elementor-social-icon :is(i, svg) { width: 16px; height: 16px; font-size: 16px; color: #fff; fill: #fff; }
#colophon .jap-pie .elementor-social-icon:hover { background: var(--jap-oro); border-color: var(--jap-oro); }
#colophon .jap-pie .elementor-social-icon:hover :is(i, svg) { color: var(--jap-tinta); fill: var(--jap-tinta); }
#colophon .jap-pie .elementor-button { padding: 13px 18px; border: 1px solid var(--jap-linea-noche); border-radius: var(--jap-radio); background: transparent; color: #fff; font-family: var(--jap-letra); font-size: .76rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; line-height: 1; }
#colophon .jap-pie .elementor-button:hover { background: #fff; border-color: #fff; color: var(--jap-noche); }
#colophon .elementor .jap-pie-legal.e-con { --padding-top: 20px; --padding-bottom: 0px; margin-top: 12px; border-top: 1px solid var(--jap-linea-noche); }
#colophon .jap-pie-legal, #colophon .jap-pie-legal p { margin: 0; font-size: .8rem; color: rgba(255, 255, 255, .5); }

/* 8. Movimiento ------------------------------------------------------------ */
@keyframes jap-sube { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes jap-flota { from { transform: translateY(0); } to { transform: translateY(-12px); } }
@keyframes jap-hoja-atras { from { opacity: 0; transform: rotate(0deg) translateY(24px); } to { opacity: 1; transform: rotate(-5deg); } }
@keyframes jap-hoja-frente { from { opacity: 0; transform: rotate(0deg) translateY(32px); } to { opacity: 1; transform: rotate(1.5deg); } }

@media (prefers-reduced-motion: no-preference) {
  /* La primera pantalla entra sola, sin depender de JavaScript */
  body.jap-2026 .jap-hero .e-con-inner > .e-con > .e-con:first-child > .elementor-element { animation: jap-sube .8s var(--jap-curva) both; }
  body.jap-2026 .jap-hero .e-con-inner > .e-con > .e-con:first-child > .elementor-element:nth-child(2) { animation-delay: .07s; }
  body.jap-2026 .jap-hero .e-con-inner > .e-con > .e-con:first-child > .elementor-element:nth-child(3) { animation-delay: .14s; }
  body.jap-2026 .jap-hero .e-con-inner > .e-con > .e-con:first-child > .elementor-element:nth-child(4) { animation-delay: .21s; }
  body.jap-2026 .jap-hero .e-con-inner > .e-con > .e-con:first-child > .elementor-element:nth-child(5) { animation-delay: .28s; }
  body.jap-2026 .elementor .jap-hoja--atras { animation: jap-hoja-atras 1.1s var(--jap-curva) .15s both; }
  body.jap-2026 .elementor .jap-hoja--frente { animation: jap-hoja-frente 1.1s var(--jap-curva) .3s both; }

  /* Las hojas y el libro flotan despacio, siempre, y siguen un poco al ratón (diseno.js mueve --jap-x y --jap-y) */
  body.jap-2026 .jap-hoja--frente > .elementor-widget-container { animation: jap-flota 7s ease-in-out 1.4s infinite alternate; }
  body.jap-2026 .jap-hoja--atras > .elementor-widget-container { animation: jap-flota 9s ease-in-out 1.4s infinite alternate-reverse; }
  body.jap-2026 .jap-vista--impreso > .elementor-widget-container { animation: jap-flota 8s ease-in-out infinite alternate; }
  body.jap-2026 .jap-hero .jap-visual > .elementor-widget-container { animation: jap-flota 8s ease-in-out infinite alternate; }
  body.jap-2026 .jap-e-imagen img { animation: jap-flota 7s ease-in-out infinite alternate; }
  body.jap-2026 .jap-tarjetas--elegir > .e-con:last-child .jap-e-imagen img { animation-duration: 9s; animation-direction: alternate-reverse; }
  body.jap-2026 .jap-hero .e-con-inner > .e-con > .e-con:last-child:not(.jap-hojas) { animation: jap-sube 1s var(--jap-curva) .25s both; }
  body.jap-2026 .jap-hoja--frente img { transform: translate3d(calc(var(--jap-x, 0) * -12px), calc(var(--jap-y, 0) * -9px), 0); transition: transform .6s var(--jap-curva); }
  body.jap-2026 .jap-hoja--atras img { transform: translate3d(calc(var(--jap-x, 0) * 10px), calc(var(--jap-y, 0) * 7px), 0); transition: transform .6s var(--jap-curva); }
  body.jap-2026 .jap-vista--impreso img { transform: perspective(1100px) rotateY(calc(var(--jap-x, 0) * 9deg)) rotateX(calc(var(--jap-y, 0) * -6deg)); transition: transform .6s var(--jap-curva); }

  /* El resto entra al llegar (diseno.js pone «jap-espera» solo a lo que aún no se ve) */
  body.jap-2026 .jap-espera { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--jap-curva), transform .8s var(--jap-curva); }
  body.jap-2026 .jap-espera.jap-entra { opacity: 1; transform: none; }
  body.jap-2026 .jap-espera:nth-child(2) { transition-delay: .08s; }
  body.jap-2026 .jap-espera:nth-child(3) { transition-delay: .16s; }
  body.jap-2026 .jap-espera:nth-child(4) { transition-delay: .24s; }
}

/* Fondo vivo: UNO solo para toda la página. diseno.js pone un lienzo fijo del tamaño de la pantalla, por
   delante de los fondos de los bloques y por detrás de su contenido, y dibuja ahí las curvas moviéndose.
   Las líneas se mezclan con el fondo (exclusion): claras sobre lo oscuro, oscuras sobre lo claro.
   Encima, dos halos de luz que se desplazan (screen: solo se notan sobre lo oscuro). Así no hay cortes
   entre bloques ni patrones repetidos. Sin JavaScript queda el dibujo fijo de la primera pantalla. */
body.jap-2026 .jap-relieve { position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; height: 100lvh; z-index: 1; pointer-events: none; mix-blend-mode: exclusion; }
body.jap-2026 .jap-luz { position: fixed; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; mix-blend-mode: screen; }
body.jap-2026 .jap-luz::before,
body.jap-2026 .jap-luz::after { content: ""; position: absolute; width: 90vmax; height: 90vmax; border-radius: 50%; }
body.jap-2026 .jap-luz::before { right: -22vmax; top: -34vmax; background: radial-gradient(closest-side, rgba(249, 205, 23, .17), rgba(249, 205, 23, 0)); animation: jap-luz-a 34s ease-in-out infinite alternate; }
body.jap-2026 .jap-luz::after { left: -30vmax; bottom: -40vmax; background: radial-gradient(closest-side, rgba(110, 190, 170, .13), rgba(110, 190, 170, 0)); animation: jap-luz-b 42s ease-in-out infinite alternate; }
body.jap-2026 .jap-luz--quieta::before,
body.jap-2026 .jap-luz--quieta::after { animation: none; }
@keyframes jap-luz-a { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-26vmax, 22vmax, 0); } }
@keyframes jap-luz-b { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(30vmax, -18vmax, 0); } }
.jap-fondo-unico body.jap-2026 .elementor .jap-s.e-con { background-image: none; }
.jap-fondo-unico body.jap-2026 .jap-s > .e-con-inner { position: relative; z-index: 2; }
.jap-fondo-unico body.jap-2026 #colophon { position: relative; z-index: 2; }

/* Tableta y móvil ---------------------------------------------------------- */
@media (max-width: 1024px) {
  body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Aquí el menú ya es desplegable: logo, botón del Campus y las tres rayas */
  #masthead .jap-cab-menu { flex: none; order: 3; position: static; }
  #masthead .jap-cab-campus { order: 2; margin-left: auto; }
  #masthead .jap-cab .wpr-mobile-nav-menu-container { position: static; }
  #masthead .jap-cab .wpr-mobile-mega-menu-wrap { position: absolute; top: 100%; left: 0 !important; width: 100% !important; margin-top: 0; }
  #masthead .jap-cab .wpr-mobile-nav-menu .wpr-mobile-menu-item { padding-left: clamp(16px, 3vw, 32px); padding-right: clamp(16px, 3vw, 32px); }
}
@media (max-width: 767px) {
  body.jap-2026 { font-size: 16px; }
  body.jap-2026 .jap-hojas { max-width: 440px; margin: 12px auto 0; }
  body.jap-2026 .elementor .jap-vista--pdf.e-con { padding-left: 7%; }
  body.jap-2026 .elementor .jap-hero.e-con { background-position: right -420px top -60px; background-size: 1100px auto; }
  body.jap-2026 .elementor .jap-conceptos.e-con { --flex-direction: row; flex-direction: row; flex-wrap: wrap; }
  body.jap-2026 .elementor .jap-conceptos > .e-con { --width: 50%; width: 50%; --padding-left: 16px; --padding-right: 12px; --padding-bottom: 20px; }
  body.jap-2026 .elementor .jap-conceptos > .e-con:nth-child(odd) { --padding-left: 0px; border-left: 0; }
  body.jap-2026 .elementor .jap-conceptos > .e-con:nth-child(n+3) { border-top: 1px solid var(--jap-linea); }
  body.jap-2026 .elementor .jap-s > .e-con-inner > .elementor-element.elementor-widget-image-carousel { width: 66%; max-width: 66% !important; margin-inline: auto; }
  body.jap-2026 .jap-s > .e-con-inner > .elementor-widget-image-carousel::before,
  body.jap-2026 .jap-s > .e-con-inner > .elementor-widget-image-carousel::after { display: none; }
  body.jap-2026 .jap-s .elementor-image-carousel-wrapper { overflow: visible; }
  body.jap-2026 .jap-s .elementor-swiper-button-prev { left: -19vw; }
  body.jap-2026 .jap-s .elementor-swiper-button-next { right: -19vw; }
  body.jap-2026 .jap-pasarela-nav { justify-content: center; }
  body.jap-2026 .jap-hojas:has(.jap-vista--apaisada) { min-height: 0; }
  body.jap-2026 .jap-hojas:has(.jap-vista--apaisada):has(.jap-vista--impreso) { min-height: 380px; }
  body.jap-2026 .jap-hojas:has(.jap-vista--impreso) { min-height: 0; }
  body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .astra-shop-summary-wrap { padding: 12px 12px 0; }
  body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product .woocommerce-loop-product__title { font-size: .92rem; }
  body.jap-2026 :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product a.button { padding: 11px 10px; font-size: .66rem; letter-spacing: .08em; }
  /* Tarjetas que se deslizan con el dedo (los cuatro productos de Inicio) */
  body.jap-2026 .elementor .jap-tarjetas--elegir > .e-con { --padding-top: 24px; --padding-bottom: 24px; --padding-left: 20px; --padding-right: 20px; }
  body.jap-2026 .elementor .jap-tarjetas--desliza.e-con { flex-direction: row; flex-wrap: nowrap; width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw); padding: 10px var(--jap-borde) 40px; margin-bottom: -30px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--jap-borde); scrollbar-width: none; }
  body.jap-2026 .jap-tarjetas--desliza::-webkit-scrollbar { display: none; }
  body.jap-2026 .elementor .jap-tarjetas--desliza > .e-con { --width: 76vw; width: 76vw; flex: 0 0 auto; scroll-snap-align: start; }
  body.jap-2026 .jap-s .swiper-pagination-bullet { width: 14px; }
  /* Las cifras, en una fila compacta de tres (Germán, 01/10): más pequeñas, pero no empujan las reseñas hacia abajo */
  body.jap-2026 .elementor .jap-cifras.e-con { --flex-direction: row; flex-direction: row; flex-wrap: nowrap; --gap: 8px; --column-gap: 8px; gap: 8px; align-items: stretch; }
  body.jap-2026 .elementor .jap-cifras > .e-con { --width: 33.33%; width: 33.33%; min-width: 0; flex: 1 1 0; --padding-top: 16px; --padding-bottom: 18px; --padding-left: 11px; --padding-right: 8px; --row-gap: 6px; }
  body.jap-2026 .jap-s .jap-cifras h3.elementor-heading-title { font-size: clamp(1.7rem, 8.4vw, 2.3rem); min-width: 0 !important; }
  body.jap-2026 .jap-cifras .elementor-widget-text-editor,
  body.jap-2026 .jap-cifras .elementor-widget-text-editor p { font-size: .58rem; letter-spacing: .08em; line-height: 1.35; }
  body.jap-2026 .jap-citas .elementor-testimonial-wrapper { padding: 28px 22px 22px; }
  #masthead .elementor .jap-cab.e-con { --min-height: 64px; }
  #masthead .jap-cab > .e-con-inner { min-height: 64px; gap: 10px; }
  #masthead .jap-cab-logo img { height: 38px; }
  #masthead .jap-cab-campus .elementor-button { padding: 11px 12px; font-size: .68rem; letter-spacing: .1em; }
  #colophon .jap-pie-logo img { height: 54px; }
}

/* ==========================================================================
   9. Tienda (WooCommerce), documentos y páginas antiguas
   --------------------------------------------------------------------------
   jap-diseno.php pone al <body>:
     jap-2026 jap-tienda  → ficha de producto, carrito, pago y mi cuenta
     jap-2026 jap-doc     → páginas de texto (legales, error 404)
     jap-antigua          → páginas viejas de Elementor que no se rehacen
   No se cambia cómo funciona WooCommerce: solo su aspecto.
   ========================================================================== */

/* 9.1 Marco común --------------------------------------------------------- */
body.jap-2026:is(.jap-tienda, .jap-doc) #content > .ast-container {
  display: block; max-width: 1280px;
  padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 40px) clamp(56px, 8vw, 104px);
}
body.jap-2026:is(.jap-tienda, .jap-doc) #primary { float: none; width: 100%; margin: 0; padding: 0; border: 0; }
body.jap-2026:is(.jap-tienda, .jap-doc) :is(article, .ast-article-single, .ast-woocommerce-container) { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
body.jap-2026:is(.jap-tienda, .jap-doc) #content :is(p, li, td, th, dt, dd, label, legend, input, select, textarea, button, a, span, strong, small, h1, h2, h3, h4, h5, h6, div) { font-family: var(--jap-letra); }
body.jap-2026:is(.jap-tienda, .jap-doc) #content { color: var(--jap-tinta); }
body.jap-2026:is(.jap-tienda, .jap-doc) .entry-header { margin: 0 0 clamp(26px, 4vw, 44px); padding: 0; text-align: left; }
body.jap-2026:is(.jap-tienda, .jap-doc) h1.entry-title {
  margin: 0; color: var(--jap-tinta);
  font-stretch: 62%; font-weight: 800; font-size: clamp(2.7rem, 7vw, 4.8rem); line-height: .92; text-transform: uppercase; letter-spacing: 0;
}
body.jap-2026:is(.jap-tienda, .jap-doc) h1.entry-title::after { content: ""; display: block; width: 72px; height: 6px; margin-top: clamp(14px, 2vw, 22px); background: var(--jap-cinta); }

/* Caja: el recuadro blanco de totales, pedido, formularios… */
body.jap-2026 .jap-caja,
body.jap-tienda :is(.cart_totals, #order_review, form.woocommerce-cart-form, form.woocommerce-form-login, form.woocommerce-form-register, form.checkout_coupon, form.lost_reset_password, .woocommerce-MyAccount-content, .woocommerce-order) {
  margin: 0; padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--jap-linea); border-radius: var(--jap-radio);
  background: linear-gradient(180deg, #fff 0%, #FBFAF6 100%);
  box-shadow: 0 32px 60px -46px rgba(21, 27, 25, .6);
}

/* 9.2 Documentos (legales) ------------------------------------------------ */
body.jap-doc .entry-content { max-width: 800px; font-size: 1.04rem; line-height: 1.7; }
body.jap-doc article:has(.entry-content > h1:first-child) .entry-header { display: none; }
body.jap-doc .entry-content :is(p, li, td, th, span, strong, em, h1, h2, h3, h4, h5, h6) { color: var(--jap-tinta) !important; }
body.jap-doc .entry-content :is(h1, h2, h3, h4) { margin: 1.9em 0 .6em; font-stretch: 75%; font-weight: 700; line-height: 1.15; letter-spacing: 0; }
body.jap-doc .entry-content > h1:first-child { margin: 0 0 clamp(26px, 4vw, 44px); font-stretch: 62%; font-weight: 800; font-size: clamp(2.7rem, 7vw, 4.8rem); line-height: .92; text-transform: uppercase; }
body.jap-doc .entry-content > h1:first-child::after { content: ""; display: block; width: 72px; height: 6px; margin-top: clamp(14px, 2vw, 22px); background: var(--jap-cinta); }
body.jap-doc .entry-content h2 { font-size: 1.6rem; }
body.jap-doc .entry-content h3 { font-size: 1.25rem; }
body.jap-doc .entry-content p { margin: 0 0 1.05em; }
body.jap-doc .entry-content :is(ul, ol) { margin: 0 0 1.05em 1.3em; }
body.jap-doc .entry-content a { color: var(--jap-verde) !important; text-decoration: underline; text-underline-offset: 3px; }
body.jap-doc .entry-content table { width: 100%; border-collapse: collapse; }
body.jap-doc .entry-content :is(td, th) { padding: 10px 12px; border: 1px solid var(--jap-linea); background: var(--jap-blanco); }

/* 9.3 Avisos, botones, formularios y tablas de la tienda ------------------- */
body.jap-tienda .woocommerce-notices-wrapper:empty { display: none; }
body.jap-tienda :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;
  margin: 0 0 20px; padding: 15px 20px; list-style: none;
  border: 1px solid var(--jap-linea); border-left: 4px solid var(--jap-oro); border-radius: var(--jap-radio);
  background: var(--jap-blanco); color: var(--jap-tinta); font-size: .98rem; line-height: 1.45; box-shadow: none;
}
body.jap-tienda :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before,
body.jap-tienda :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::after { display: none; }
body.jap-tienda .woocommerce-error { border-left-color: var(--jap-rojo); }
body.jap-tienda :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) li { margin: 0; padding: 0; list-style: none; }
body.jap-tienda :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--jap-tinta); text-decoration: underline; text-underline-offset: 3px; }
body.jap-tienda :is(.woocommerce-message, .woocommerce-info) .button { order: 2; margin-left: auto; float: none; }

/* Botones: verde para lo secundario, amarillo con halo para avanzar en la compra */
body.jap-tienda #content :is(a.button, button.button, input.button, button[type="submit"]) {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; margin: 0; padding: 0 20px;
  border: 1px solid var(--jap-verde); border-radius: var(--jap-radio);
  background: var(--jap-verde); color: #fff;
  font-size: .76rem; font-weight: 600; line-height: 1.1; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
  box-shadow: 0 10px 22px -12px rgba(49, 69, 67, .9);
  cursor: pointer; transition: background-color .2s ease, border-color .2s ease, box-shadow .35s ease, transform .35s var(--jap-curva);
}
body.jap-tienda #content :is(a.button, button.button, input.button, button[type="submit"]):hover { background: #3F5855; border-color: #3F5855; color: #fff; box-shadow: 0 0 36px -8px rgba(92, 122, 117, .9); }
body.jap-tienda #content :is(a.button, button.button, input.button):is(.disabled, :disabled) { opacity: .45; cursor: not-allowed; box-shadow: none; }
body.jap-tienda #content :is(a.checkout-button, #place_order, .single_add_to_cart_button, .woocommerce-form-login__submit, .woocommerce-form-register__submit, button[name="save_address"], button[name="save_account_details"]) {
  min-height: 58px; padding: 0 24px;
  border-color: var(--jap-oro);
  background: radial-gradient(140% 220% at 28% -40%, #FFF3B0 0%, var(--jap-oro) 46%, #F0B400 100%);
  color: var(--jap-tinta); font-size: .86rem; font-weight: 700;
  box-shadow: 0 0 0 1px rgba(249, 205, 23, .40), 0 10px 30px -6px rgba(249, 205, 23, .70), 0 0 64px -6px rgba(249, 205, 23, .50);
}
body.jap-tienda #content :is(a.checkout-button, #place_order, .single_add_to_cart_button, .woocommerce-form-login__submit, .woocommerce-form-register__submit, button[name="save_address"], button[name="save_account_details"]):hover {
  border-color: #FFD83A;
  background: radial-gradient(140% 220% at 28% -40%, #FFF8CF 0%, #FFD83A 46%, #F5BD08 100%);
  color: var(--jap-tinta); transform: translateY(-1px);
  box-shadow: 0 0 0 1px rgba(249, 205, 23, .65), 0 14px 40px -6px rgba(249, 205, 23, .90), 0 0 90px -4px rgba(249, 205, 23, .70);
}
body.jap-tienda #content :is(a.checkout-button, #place_order) { display: flex; width: 100%; }

/* Formularios (también el de Contacto, que es Contact Form 7) */
body.jap-tienda #content :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], textarea, select),
body.jap-2026 .jap-s .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select) {
  width: 100%; min-height: 52px; margin: 0; padding: 12px 14px;
  border: 1px solid var(--jap-linea); border-radius: var(--jap-radio);
  background: var(--jap-blanco); color: var(--jap-tinta);
  font-family: var(--jap-letra); font-size: 16px; line-height: 1.3; box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
body.jap-tienda #content :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], textarea, select):focus,
body.jap-2026 .jap-s .wpcf7 :is(input, textarea, select):focus { border-color: var(--jap-tinta); outline: 2px solid var(--jap-oro); outline-offset: 2px; }
body.jap-tienda #content textarea, body.jap-2026 .jap-s .wpcf7 textarea { min-height: 140px; resize: vertical; }
body.jap-tienda #content .form-row { margin: 0 0 16px; padding: 0; }
body.jap-tienda #content .form-row > label:not(.checkbox):not(.woocommerce-form__label-for-checkbox),
body.jap-2026 .jap-s .wpcf7 label { display: block; margin: 0 0 7px; font-size: .74rem; font-weight: 600; line-height: 1.3; letter-spacing: .12em; text-transform: uppercase; color: var(--jap-tinta-2); }
body.jap-tienda #content :is(label.checkbox, .woocommerce-form__label-for-checkbox) { display: inline-flex; align-items: center; gap: 9px; font-size: .95rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--jap-tinta); }
body.jap-tienda #content input[type="checkbox"], body.jap-tienda #content input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--jap-verde); }
body.jap-tienda #content .required { color: var(--jap-rojo); text-decoration: none; }
body.jap-tienda #content .select2-container .select2-selection--single { height: 52px; border: 1px solid var(--jap-linea); border-radius: var(--jap-radio); background: var(--jap-blanco); }
body.jap-tienda #content .select2-container .select2-selection__rendered { padding: 0 38px 0 14px; line-height: 50px; color: var(--jap-tinta); font-size: 16px; }
body.jap-tienda #content .select2-container .select2-selection__arrow { height: 50px; right: 8px; }
body.jap-tienda #content .password-input { display: block; position: relative; }
body.jap-tienda #content .show-password-input { position: absolute; right: 6px; top: 50%; min-height: 0; width: 40px; height: 40px; padding: 0; border: 0; background: none; box-shadow: none; color: var(--jap-tinta-2); transform: translateY(-50%); }
body.jap-tienda #content .show-password-input:hover { background: none; box-shadow: none; color: var(--jap-tinta); }

/* Tablas */
body.jap-tienda #content table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; border-radius: 0; background: transparent; }
body.jap-tienda #content table.shop_table :is(th, td) { padding: 16px 10px; border: 0; border-bottom: 1px solid var(--jap-linea); background: transparent; color: var(--jap-tinta); text-align: left; vertical-align: middle; font-size: .98rem; line-height: 1.4; }
body.jap-tienda #content table.shop_table thead th { padding-top: 12px; padding-bottom: 12px; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--jap-tinta-2); }
body.jap-tienda #content table.shop_table tr:last-child > :is(th, td) { border-bottom: 0; }
body.jap-tienda #content table.shop_table a { color: var(--jap-tinta); font-weight: 600; text-decoration: none; }
body.jap-tienda #content table.shop_table a:hover { text-decoration: underline; }
body.jap-tienda #content table.shop_table .amount { font-variant-numeric: tabular-nums; }
body.jap-tienda #content :is(.order-total, .cart-subtotal) .amount { font-stretch: 62%; font-weight: 800; font-size: 1.7rem; line-height: 1; }
body.jap-tienda #content :is(h2, h3):not(.woocommerce-loop-product__title) { margin: 0 0 16px; color: var(--jap-tinta); font-stretch: 75%; font-weight: 700; font-size: 1.45rem; line-height: 1.1; letter-spacing: .01em; text-transform: uppercase; }

/* 9.4 Carrito -------------------------------------------------------------- */
body.woocommerce-cart.jap-tienda .entry-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: 28px; align-items: start; }
body.woocommerce-cart.jap-tienda .woocommerce-notices-wrapper,
body.woocommerce-cart.jap-tienda :is(.cart-empty, .return-to-shop, .wc-empty-cart-message) { grid-column: 1 / -1; }
body.woocommerce-cart.jap-tienda form.woocommerce-cart-form { padding-top: 8px; }
body.woocommerce-cart.jap-tienda .cart-collaterals { float: none; width: auto; margin: 0; }
body.woocommerce-cart.jap-tienda .cart-collaterals .cart_totals { float: none; width: 100%; }
body.woocommerce-cart.jap-tienda .cart_totals > h2 { font-stretch: 62%; font-weight: 800; font-size: 1.9rem; }
body.woocommerce-cart.jap-tienda td.product-thumbnail { width: 84px; }
body.woocommerce-cart.jap-tienda td.product-thumbnail img { display: block; width: 64px; height: auto; border-radius: 2px; box-shadow: 0 10px 20px -12px rgba(21, 27, 25, .6); }
body.woocommerce-cart.jap-tienda td.product-remove { width: 44px; }
body.woocommerce-cart.jap-tienda td.product-remove a.remove { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--jap-linea); border-radius: 50%; background: none; color: var(--jap-tinta-2) !important; font-size: 18px; font-weight: 400; line-height: 1; }
body.woocommerce-cart.jap-tienda td.product-remove a.remove:hover { border-color: var(--jap-rojo); background: var(--jap-rojo); color: #fff !important; text-decoration: none; }
body.woocommerce-cart.jap-tienda td.actions { padding: 18px 0 0 !important; border: 0 !important; }
body.woocommerce-cart.jap-tienda td.actions .coupon { display: flex; flex-wrap: wrap; gap: 10px; float: left; }
body.woocommerce-cart.jap-tienda td.actions .coupon .input-text { width: 190px !important; min-height: 48px; }
body.woocommerce-cart.jap-tienda td.actions > .button { float: right; }
body.woocommerce-cart.jap-tienda .wc-proceed-to-checkout { padding: 18px 0 0; }
body.woocommerce-cart.jap-tienda .quantity .qty { width: 76px; min-height: 44px; text-align: center; }
body.woocommerce-cart.jap-tienda .cart-empty { margin: 0 0 18px; font-size: 1.15rem; }

/* 9.5 Pago ----------------------------------------------------------------- */
body.woocommerce-checkout.jap-tienda form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 440px); column-gap: 32px; row-gap: 0; align-items: start; }
body.woocommerce-checkout.jap-tienda form.checkout > * { grid-column: 1 / -1; }
body.woocommerce-checkout.jap-tienda form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; float: none; width: auto; margin: 0; padding: 0; }
body.woocommerce-checkout.jap-tienda form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; float: none; width: auto; padding: 0; border: 0; }
body.woocommerce-checkout.jap-tienda form.checkout > #order_review { grid-column: 2; grid-row: 2; float: none; width: auto; }
body.woocommerce-checkout.jap-tienda #customer_details :is(.col-1, .col-2) { float: none; width: 100%; margin: 0; padding: 0; }
body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; }
body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper > .form-row { grid-column: 1 / -1; float: none; width: auto; }
body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1; }
body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 2; }
body.woocommerce-checkout.jap-tienda #ship-to-different-address { margin: 18px 0 12px; font-size: 1rem; text-transform: none; letter-spacing: 0; }
body.woocommerce-checkout.jap-tienda #payment { margin: 8px 0 0; border-radius: 0; background: transparent; }
body.woocommerce-checkout.jap-tienda #payment ul.payment_methods { margin: 0; padding: 14px 0; border: 0; border-top: 1px solid var(--jap-linea); border-bottom: 1px solid var(--jap-linea); list-style: none; }
body.woocommerce-checkout.jap-tienda #payment ul.payment_methods li { margin: 0; padding: 6px 0; line-height: 1.4; }
body.woocommerce-checkout.jap-tienda #payment ul.payment_methods li label { display: inline; margin: 0 0 0 6px; font-size: 1rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--jap-tinta); }
body.woocommerce-checkout.jap-tienda #payment div.payment_box { margin: 10px 0 4px; padding: 14px 16px; border-radius: var(--jap-radio); background: var(--jap-papel); color: var(--jap-tinta); font-size: .92rem; }
body.woocommerce-checkout.jap-tienda #payment div.payment_box::before { display: none; }
body.woocommerce-checkout.jap-tienda #payment .place-order { margin: 0; padding: 16px 0 0; }
body.woocommerce-checkout.jap-tienda .woocommerce-privacy-policy-text, body.woocommerce-checkout.jap-tienda .woocommerce-privacy-policy-text p { margin: 0 0 14px; font-size: .84rem; line-height: 1.5; color: var(--jap-tinta-2); }
body.woocommerce-checkout.jap-tienda .woocommerce-privacy-policy-text a { color: var(--jap-tinta); text-decoration: underline; }
body.woocommerce-checkout.jap-tienda :is(form.woocommerce-form-login, form.checkout_coupon) { margin: 0 0 20px; }
body.woocommerce-checkout.jap-tienda form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
body.woocommerce-checkout.jap-tienda form.checkout_coupon .form-row { float: none; width: auto; margin: 0; flex: 1 1 200px; }
body.woocommerce-checkout.jap-tienda form.checkout_coupon .form-row-last { flex: 0 0 auto; }
body.woocommerce-checkout.jap-tienda .woocommerce-order :is(ul.order_details) { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 0 0 24px; padding: 0; list-style: none; }
body.woocommerce-checkout.jap-tienda .woocommerce-order ul.order_details li { margin: 0; padding: 0 0 0 14px; border: 0; border-left: 2px solid var(--jap-oro); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--jap-tinta-2); }
body.woocommerce-checkout.jap-tienda .woocommerce-order ul.order_details li strong { display: block; margin-top: 4px; font-size: 1.05rem; letter-spacing: 0; text-transform: none; color: var(--jap-tinta); }

/* 9.6 Ficha de producto ---------------------------------------------------- */
body.single-product.jap-tienda div.product { display: grid; grid-template-columns: minmax(0, 44%) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
body.single-product.jap-tienda div.product > :is(.woocommerce-tabs, section.related, section.upsells) { grid-column: 1 / -1; }
body.single-product.jap-tienda div.product > .woocommerce-product-gallery { float: none; width: auto !important; margin: 0; }
body.single-product.jap-tienda div.product > .summary { float: none; width: auto !important; margin: 0; padding: 0; }
body.single-product.jap-tienda .woocommerce-product-gallery :is(.flex-viewport, .woocommerce-product-gallery__wrapper) img { border-radius: 2px; }
body.single-product.jap-tienda .woocommerce-product-gallery .flex-viewport { border-radius: 2px; box-shadow: 0 34px 64px -36px rgba(21, 27, 25, .7); }
body.single-product.jap-tienda .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 14px 0 0; padding: 0; }
body.single-product.jap-tienda .flex-control-thumbs li { float: none; width: auto !important; margin: 0 !important; }
body.single-product.jap-tienda .flex-control-thumbs img { border-radius: 2px; opacity: .6; transition: opacity .2s ease; }
body.single-product.jap-tienda .flex-control-thumbs img:is(.flex-active, :hover) { opacity: 1; }
body.single-product.jap-tienda .flex-direction-nav { display: none; }
body.single-product.jap-tienda .woocommerce-breadcrumb { margin: 0 0 14px; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--jap-tinta-2); }
body.single-product.jap-tienda .woocommerce-breadcrumb a { color: inherit; text-decoration: none; }
body.single-product.jap-tienda .woocommerce-breadcrumb a:hover { color: var(--jap-tinta); }
body.single-product.jap-tienda h1.product_title { margin: 0 0 16px; color: var(--jap-tinta); font-stretch: 62%; font-weight: 800; font-size: clamp(2.3rem, 5.2vw, 3.8rem); line-height: .94; text-transform: uppercase; letter-spacing: 0; }
body.single-product.jap-tienda h1.product_title::after { content: ""; display: block; width: 64px; height: 6px; margin-top: 16px; background: var(--jap-cinta); }
body.single-product.jap-tienda .summary > p.price { margin: 0 0 16px; color: var(--jap-tinta); font-stretch: 62%; font-weight: 800; font-size: 2.6rem; line-height: 1; }
body.single-product.jap-tienda .woocommerce-product-details__short-description { color: var(--jap-tinta-2); font-size: 1.03rem; line-height: 1.6; }
body.single-product.jap-tienda .woocommerce-product-details__short-description :is(p, li, span, strong) { color: inherit; }
body.single-product.jap-tienda .woocommerce-product-details__short-description strong { color: var(--jap-tinta); }
body.single-product.jap-tienda .woocommerce-product-details__short-description p { margin: 0 0 .8em; }
body.single-product.jap-tienda .summary form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin: 24px 0; padding: 0; border: 0; }
body.single-product.jap-tienda .summary form.cart .quantity .qty { width: 84px; min-height: 58px; text-align: center; }
body.single-product.jap-tienda .summary form.cart .single_add_to_cart_button { flex: 1 1 240px; max-width: 420px; }
body.single-product.jap-tienda .product_meta { margin: 0; padding: 16px 0 0; border-top: 1px solid var(--jap-linea); font-size: .82rem; color: var(--jap-tinta-2); }
body.single-product.jap-tienda .product_meta a { color: var(--jap-tinta); text-decoration: underline; }
body.single-product.jap-tienda .woocommerce-tabs { margin: clamp(28px, 5vw, 56px) 0 0; padding: 0; border: 0; }
body.single-product.jap-tienda .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--jap-linea); list-style: none; }
body.single-product.jap-tienda .woocommerce-tabs ul.tabs::before, body.single-product.jap-tienda .woocommerce-tabs ul.tabs li::before, body.single-product.jap-tienda .woocommerce-tabs ul.tabs li::after { display: none; }
body.single-product.jap-tienda .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
body.single-product.jap-tienda .woocommerce-tabs ul.tabs li a { display: block; margin-bottom: -1px; padding: 14px 18px; border-bottom: 2px solid transparent; color: var(--jap-tinta-2); font-size: .76rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
body.single-product.jap-tienda .woocommerce-tabs ul.tabs li.active a { border-color: var(--jap-oro); color: var(--jap-tinta); }
body.single-product.jap-tienda .woocommerce-tabs .panel { max-width: 860px; margin: 0; padding: 26px 0 0; color: var(--jap-tinta); font-size: 1.02rem; line-height: 1.65; }
body.single-product.jap-tienda .woocommerce-tabs .panel > h2:first-child { display: none; }
body.single-product.jap-tienda .woocommerce-tabs .panel :is(p, li, span, strong, em) { color: var(--jap-tinta) !important; }
body.single-product.jap-tienda .woocommerce-tabs .panel hr { margin: 20px 0; border: 0; border-top: 1px solid var(--jap-linea); }
body.single-product.jap-tienda section:is(.related, .upsells) { margin: clamp(36px, 6vw, 72px) 0 0; }
body.single-product.jap-tienda section:is(.related, .upsells) > h2 { font-stretch: 62%; font-weight: 800; font-size: clamp(2rem, 4.6vw, 3rem); line-height: .95; }
body.single-product.jap-tienda section:is(.related, .upsells) > h2::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 16px; background: linear-gradient(90deg, var(--jap-oro), #F0B400); }
body.single-product.jap-tienda section:is(.related, .upsells) ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 24px; }
body.single-product.jap-tienda .onsale { display: none; }

/* 9.7 Mi cuenta ------------------------------------------------------------ */
body.woocommerce-account.jap-tienda:not(.logged-in) .entry-content > .woocommerce { max-width: 520px; }
body.woocommerce-account.jap-tienda .u-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
body.woocommerce-account.jap-tienda .u-columns > div { float: none; width: auto; }
body.woocommerce-account.jap-tienda .lost_password { margin: 14px 0 0; font-size: .92rem; }
body.woocommerce-account.jap-tienda .lost_password a { color: var(--jap-tinta); text-decoration: underline; }
body.woocommerce-account.jap-tienda.logged-in .entry-content > .woocommerce { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 28px; align-items: start; }
body.woocommerce-account.jap-tienda.logged-in .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation { float: none; width: auto; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation ul { margin: 0; padding: 8px; list-style: none; border: 1px solid var(--jap-linea); border-radius: var(--jap-radio); background: var(--jap-blanco); }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; border: 0; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a { display: block; padding: 13px 14px; border-radius: 2px; color: var(--jap-tinta); font-size: .78rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a:hover { background: var(--jap-papel); }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li.is-active a { background: var(--jap-noche); color: #fff; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content { float: none; width: auto; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content :is(p, li, address) { color: var(--jap-tinta); }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content a:not(.button) { color: var(--jap-tinta); text-decoration: underline; text-underline-offset: 3px; }
body.woocommerce-account.jap-tienda .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
body.woocommerce-account.jap-tienda .woocommerce-Addresses > div { float: none; width: auto; }
body.woocommerce-account.jap-tienda fieldset { margin: 20px 0 0; padding: 18px; border: 1px solid var(--jap-linea); border-radius: var(--jap-radio); }
body.woocommerce-account.jap-tienda fieldset legend { padding: 0 8px; font-size: .76rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--jap-tinta-2); }

/* 9.8 Contacto y Quiénes somos (páginas rehechas) --------------------------- */
body.jap-2026 .jap-s .wpcf7 form p { margin: 0 0 16px; }
body.jap-2026 .jap-s .wpcf7 br { display: none; }
body.jap-2026 .jap-s .wpcf7 input[type="submit"] {
  min-height: 58px; padding: 0 28px; border: 1px solid var(--jap-oro); border-radius: var(--jap-radio);
  background: radial-gradient(140% 220% at 28% -40%, #FFF3B0 0%, var(--jap-oro) 46%, #F0B400 100%); color: var(--jap-tinta);
  font-family: var(--jap-letra); font-size: .86rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; cursor: pointer;
  box-shadow: 0 0 0 1px rgba(249, 205, 23, .40), 0 10px 30px -6px rgba(249, 205, 23, .70), 0 0 64px -6px rgba(249, 205, 23, .50);
  transition: box-shadow .35s ease, transform .35s var(--jap-curva);
}
body.jap-2026 .jap-s .wpcf7 input[type="submit"]:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(249, 205, 23, .65), 0 14px 40px -6px rgba(249, 205, 23, .90), 0 0 90px -4px rgba(249, 205, 23, .70); }
body.jap-2026 .jap-s .wpcf7 .wpcf7-response-output { margin: 16px 0 0; padding: 14px 16px; border: 1px solid var(--jap-linea); border-left: 4px solid var(--jap-oro); border-radius: var(--jap-radio); background: var(--jap-blanco); color: var(--jap-tinta); font-size: .95rem; }
body.jap-2026 .jap-s .wpcf7 .wpcf7-not-valid-tip { margin-top: 6px; font-size: .85rem; color: var(--jap-rojo); }
body.jap-2026 .elementor .jap-caja.e-con { border: 1px solid var(--jap-linea); border-radius: var(--jap-radio); background: linear-gradient(180deg, #fff 0%, #FBFAF6 100%); box-shadow: 0 32px 60px -46px rgba(21, 27, 25, .6); --padding-top: 30px; --padding-bottom: 30px; --padding-left: 30px; --padding-right: 30px; --row-gap: 20px; }
/* Datos de contacto: una línea por dato, con su icono en un círculo */
body.jap-2026 .jap-contacto .elementor-icon-list-items { margin: 0; padding: 0; }
body.jap-2026 .jap-contacto .elementor-icon-list-item { display: flex; align-items: center; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--jap-linea); }
body.jap-2026 .jap-contacto .elementor-icon-list-item:first-child { padding-top: 0; }
body.jap-2026 .jap-contacto .elementor-icon-list-item::after { display: none; }
body.jap-2026 .jap-contacto .elementor-icon-list-item > a { display: flex; align-items: center; width: 100%; color: var(--jap-tinta); text-decoration: none; }
body.jap-2026 .jap-contacto .elementor-icon-list-icon { flex: none; display: grid; place-items: center; width: 40px; height: 40px; margin-right: 14px; border-radius: 50%; background: var(--jap-verde); }
body.jap-2026 .jap-contacto .elementor-icon-list-icon :is(i, svg) { width: 16px; height: 16px; font-size: 16px; color: #fff; fill: #fff; }
body.jap-2026 .jap-contacto .elementor-icon-list-text { padding: 0; font-size: 1.05rem; font-weight: 600; color: var(--jap-tinta); overflow-wrap: anywhere; }
body.jap-2026 .jap-contacto .elementor-icon-list-item > a:hover .elementor-icon-list-text { text-decoration: underline; text-underline-offset: 3px; }
/* Objetivos: cada párrafo, una línea con su marca */
body.jap-2026 .jap-objetivos p { position: relative; margin: 0; padding: 18px 0 18px 44px; border-bottom: 1px solid var(--jap-linea); color: var(--jap-tinta-2); line-height: 1.55; }
body.jap-2026 .jap-objetivos p::before { content: "✓"; position: absolute; left: 0; top: 17px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--jap-oro); color: var(--jap-tinta); font-size: .85rem; font-weight: 800; box-shadow: 0 0 22px -4px rgba(249, 205, 23, .8); }
body.jap-2026 .jap-objetivos strong { color: var(--jap-tinta); }
body.jap-2026 .jap-retrato img { display: block; width: 100%; border-radius: 4px; box-shadow: 0 34px 70px -34px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .08); }
body.jap-2026 .jap-texto strong { color: var(--jap-tinta); }
body.jap-2026 .jap-s--noche .jap-texto strong { color: #fff; }

/* 9.9 Páginas antiguas que no se rehacen: fondo y letra del diseño nuevo ---- */
body.jap-antigua { background: var(--jap-noche) !important; }
body.jap-antigua #content :is(p, li, h1, h2, h3, h4, h5, a, label, td, th) { font-family: var(--jap-letra); }

/* 9.10 Aviso de cookies (CookieYes): mismos colores y botones --------------- */
.cky-consent-container .cky-consent-bar { padding: 22px clamp(18px, 3vw, 30px) !important; border: 0 !important; border-top: 1px solid rgba(255, 255, 255, .16) !important; background: var(--jap-noche) !important; box-shadow: 0 -24px 60px -24px rgba(0, 0, 0, .7) !important; font-family: var(--jap-letra); }
.cky-consent-container :is(.cky-title, .cky-preference-title) { color: #fff !important; font-family: var(--jap-letra) !important; font-stretch: 62%; font-weight: 800 !important; font-size: 1.5rem !important; line-height: 1 !important; text-transform: uppercase; letter-spacing: 0; }
.cky-consent-container :is(.cky-notice-des, .cky-notice-des p, .cky-preference-content-wrapper, .cky-preference-content-wrapper p, .cky-accordion-header-des, .cky-accordion-header-des p) { color: rgba(255, 255, 255, .78) !important; font-family: var(--jap-letra) !important; font-size: .92rem !important; line-height: 1.5 !important; }
.cky-consent-container :is(.cky-policy, .cky-show-desc-btn) { color: #fff !important; text-decoration: underline !important; text-underline-offset: 3px; }
.cky-consent-container .cky-btn { min-height: 46px; padding: 0 18px !important; border-width: 1px !important; border-radius: 3px !important; font-family: var(--jap-letra) !important; font-size: .76rem !important; font-weight: 600 !important; letter-spacing: .12em; text-transform: uppercase; transition: background-color .2s ease, color .2s ease, box-shadow .35s ease; }
.cky-consent-container .cky-btn-accept { border-color: var(--jap-oro) !important; background: var(--jap-oro) !important; color: var(--jap-tinta) !important; box-shadow: 0 0 34px -8px rgba(249, 205, 23, .8); }
.cky-consent-container .cky-btn-accept:hover { background: #FFDA45 !important; box-shadow: 0 0 50px -6px rgba(249, 205, 23, .95); }
.cky-consent-container :is(.cky-btn-reject, .cky-btn-preferences, .cky-btn-customize) { border-color: rgba(255, 255, 255, .4) !important; background: transparent !important; color: #fff !important; }
.cky-consent-container :is(.cky-btn-reject, .cky-btn-preferences, .cky-btn-customize):hover { background: #fff !important; color: var(--jap-noche) !important; }
.cky-consent-container .cky-preference-center, .cky-modal .cky-preference-center { border: 1px solid rgba(255, 255, 255, .16) !important; border-radius: 3px !important; background: var(--jap-noche) !important; color: #fff !important; font-family: var(--jap-letra); }
.cky-consent-container :is(.cky-accordion-btn, .cky-preference-header, .cky-footer-wrapper) { color: #fff !important; }
.cky-consent-container .cky-accordion, .cky-consent-container .cky-preference-header, .cky-consent-container .cky-footer-wrapper { border-color: rgba(255, 255, 255, .16) !important; }
.cky-consent-container .cky-footer-shadow { display: none !important; }

/* 9.11 Tableta y móvil ------------------------------------------------------ */
@media (max-width: 980px) {
  body.woocommerce-cart.jap-tienda .entry-content > .woocommerce,
  body.woocommerce-checkout.jap-tienda form.checkout,
  body.woocommerce-account.jap-tienda.logged-in .entry-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
  body.woocommerce-checkout.jap-tienda form.checkout > #customer_details,
  body.woocommerce-checkout.jap-tienda form.checkout > #order_review_heading,
  body.woocommerce-checkout.jap-tienda form.checkout > #order_review { grid-column: 1; grid-row: auto; }
  body.woocommerce-checkout.jap-tienda form.checkout > #order_review_heading { margin-top: 28px; }
  body.single-product.jap-tienda section:is(.related, .upsells) ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  body.single-product.jap-tienda div.product { grid-template-columns: minmax(0, 1fr); }
  body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
  body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper > :is(.form-row-first, .form-row-last) { grid-column: 1; }
  /* El carrito, en fichas: WooCommerce ya pasa la tabla a filas con su rótulo */
  body.woocommerce-cart.jap-tienda table.cart thead { display: none; }
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item { display: grid; grid-template-columns: 76px minmax(0, 1fr) 36px; column-gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--jap-linea); }
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item td { display: block; padding: 2px 0 !important; border: 0 !important; text-align: left !important; }
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item td::before { display: none; }
  body.woocommerce-cart.jap-tienda table.cart td.product-thumbnail { grid-column: 1; grid-row: 1 / span 4; width: auto; }
  body.woocommerce-cart.jap-tienda table.cart td.product-remove { grid-column: 3; grid-row: 1; width: auto; }
  body.woocommerce-cart.jap-tienda table.cart td:is(.product-name, .product-price, .product-quantity, .product-subtotal) { grid-column: 2; }
  body.woocommerce-cart.jap-tienda table.cart td.product-price { display: none; }
  body.woocommerce-cart.jap-tienda td.actions .coupon { float: none; width: 100%; }
  body.woocommerce-cart.jap-tienda td.actions .coupon .input-text { flex: 1 1 140px; width: auto !important; }
  body.woocommerce-cart.jap-tienda td.actions > .button { float: none; width: 100%; margin-top: 10px; }
  body.woocommerce-cart.jap-tienda table.shop_table_responsive:not(.cart) tr { display: flex; justify-content: space-between; gap: 12px; }
  body.woocommerce-cart.jap-tienda .cart_totals table.shop_table :is(th, td) { display: block; border: 0; padding: 10px 0; }
  body.woocommerce-cart.jap-tienda .cart_totals table.shop_table td::before { display: none; }
  body.woocommerce-cart.jap-tienda .cart_totals table.shop_table tr { border-bottom: 1px solid var(--jap-linea); }
  .cky-consent-container .cky-notice-btn-wrapper { gap: 8px; }
}

/* 9.12 Ajustes tras verlo montado ------------------------------------------- */
body.single-product.jap-tienda .summary form.cart .quantity:has(input[type="hidden"]),
body.single-product.jap-tienda .summary form.cart .quantity.hidden { display: none; }
body.single-product.jap-tienda .summary form.cart::before, body.single-product.jap-tienda .summary form.cart::after { display: none; }
body.single-product.jap-tienda .joinchat__woo-btn__wrapper { margin-top: 16px; }
body.jap-tienda #content .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-direction: column; align-items: stretch; gap: 16px; margin: 6px 0 0; }
body.jap-tienda #content .woocommerce-form-login__submit { width: 100%; }
body.woocommerce-account.jap-tienda:not(.logged-in) .entry-content > .woocommerce { margin-inline: 0; }
body.woocommerce-account.jap-tienda:not(.logged-in) .entry-content > .woocommerce > h2 { margin-bottom: 14px; }
body.woocommerce-checkout.jap-tienda form.checkout > #order_review_heading { margin: 0 0 16px; padding: 0; border: 0; background: none; box-shadow: none; }
body.woocommerce-checkout.jap-tienda form.checkout > #order_review { margin: 0; }
body.woocommerce-checkout.jap-tienda #customer_details h3 { margin-bottom: 18px; }
body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper > .form-row :is(strong, .select2-selection) { font-weight: 500; }
body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper > .wooccm-type-hidden { display: none; }
body.woocommerce-cart.jap-tienda table.cart thead th { background: transparent; }
body.woocommerce-cart.jap-tienda .cart_totals > h2 { margin: 0 0 6px; padding: 0; border: 0; background: none; }
body.woocommerce-checkout.jap-tienda form.checkout { grid-template-rows: auto 1fr; }
body.woocommerce-checkout.jap-tienda form.checkout > #order_review_heading { margin: 0 0 16px !important; padding: 0 !important; border: 0 !important; background: none !important; width: auto !important; }
body.woocommerce-checkout.jap-tienda form.checkout > #order_review { align-self: start; width: auto !important; border-color: var(--jap-linea) !important; }
@media (max-width: 980px) { body.woocommerce-checkout.jap-tienda form.checkout { grid-template-rows: none; } }
body.jap-tienda #content .select2-container .select2-selection--single { display: flex; align-items: center; }
body.jap-tienda #content .select2-container .select2-selection__rendered { padding-top: 0; padding-bottom: 0; line-height: 1.3; }

/* ==========================================================================
   9.13 Tienda, segunda vuelta (Germán, 02/10/2026)
   - Fuera los recuadros blancos sobre el fondo animado: quedan las casillas.
   - Más aire entre bordes y contenido.
   - «Mi cuenta» con sesión iniciada: menú a la izquierda y contenido a todo el ancho.
   - Ficha de producto sin pestañas: bandas (ver componentes/tienda/jap-tienda.php).
   ========================================================================== */

/* El fondo único pasa por detrás de todo: en vez de subir el contenedor entero, se sube cada pieza.
   Así las bandas de la ficha pueden tener su color y las curvas se siguen viendo encima. */
.jap-fondo-unico body.jap-2026:is(.jap-tienda, .jap-doc) #content > .ast-container { position: static; z-index: auto; }
.jap-fondo-unico body.jap-2026:is(.jap-tienda, .jap-doc) #primary :is(.entry-header, .entry-content, .ast-woocommerce-container > .woocommerce-notices-wrapper, div.product > :not(.jap-t-banda), .jap-t-dentro) { position: relative; z-index: 2; }
body.jap-2026:is(.jap-tienda, .jap-doc) #content { overflow-x: clip; }

/* Los contenedores en rejilla de WooCommerce traen un ::before y un ::after para «limpiar» los flotantes:
   en una rejilla ocupan una casilla y lo descolocan todo (era lo que rompía «Mi cuenta»). */
body.jap-tienda :is(.entry-content > .woocommerce, form.checkout, div.product, .u-columns, .woocommerce-Addresses, .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper)::before,
body.jap-tienda :is(.entry-content > .woocommerce, form.checkout, div.product, .u-columns, .woocommerce-Addresses, .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper)::after { display: none !important; content: none !important; }

/* Sin recuadros blancos: los paneles son transparentes. Los de resumen (totales, tu pedido, acceso) llevan
   solo una línea fina alrededor y aire dentro; los anchos (productos del carrito, contenido de la cuenta), nada. */
body.jap-tienda #content :is(.cart_totals, #order_review, form.woocommerce-cart-form, form.woocommerce-form-login, form.woocommerce-form-register, form.checkout_coupon, form.lost_reset_password, .woocommerce-MyAccount-content, .woocommerce-order) {
  background: transparent !important; box-shadow: none !important;
}
body.jap-tienda #content :is(.cart_totals, #order_review, form.woocommerce-form-login, form.woocommerce-form-register, form.checkout_coupon, form.lost_reset_password) {
  padding: clamp(22px, 3vw, 34px) !important; border: 1px solid rgba(21, 27, 25, .22) !important; border-radius: var(--jap-radio);
}
body.jap-tienda #content :is(form.woocommerce-cart-form, .woocommerce-MyAccount-content, .woocommerce-order) { padding: 0 !important; border: 0 !important; }
body.jap-tienda #content table.shop_table :is(thead, thead tr, thead th, tbody, tr, td, th, tfoot) { background: transparent !important; }
body.jap-tienda #content table.shop_table { border: 0 !important; }
body.jap-tienda #content table.shop_table :is(th, td) { border-color: rgba(21, 27, 25, .16) !important; }
body.jap-tienda #content table.shop_table :is(th, td):first-child { padding-left: 0; }
body.jap-tienda #content table.shop_table :is(th, td):last-child { padding-right: 0; }
body.jap-tienda #content table.shop_table thead th { border-bottom: 1px solid rgba(21, 27, 25, .35) !important; }
body.jap-tienda #content fieldset { background: transparent; }

/* Aire: separación entre avisos, entre campos y entre bloques */
body.jap-tienda #content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { margin: 0 0 14px; padding: 16px 22px; }
body.jap-tienda #content .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 14px; }
body.jap-tienda #content .form-row { margin: 0 0 20px; }
body.jap-tienda #content :is(.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle) + form { margin-top: 0; }
body.woocommerce-checkout.jap-tienda form.checkout { margin-top: clamp(22px, 3vw, 36px); column-gap: clamp(28px, 4vw, 56px); }
body.woocommerce-checkout.jap-tienda #customer_details h3,
body.woocommerce-checkout.jap-tienda form.checkout > #order_review_heading { margin: 0 0 22px !important; padding: 0 0 14px !important; border: 0 !important; border-bottom: 1px solid rgba(21, 27, 25, .35) !important; font-stretch: 62%; font-weight: 800; font-size: 1.9rem; line-height: 1; }
body.woocommerce-checkout.jap-tienda .woocommerce-billing-fields__field-wrapper, body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields__field-wrapper { column-gap: 18px; }
body.woocommerce-checkout.jap-tienda .woocommerce-account-fields, body.woocommerce-checkout.jap-tienda .woocommerce-additional-fields { margin-top: 8px; }
body.woocommerce-checkout.jap-tienda #payment ul.payment_methods { padding: 18px 0; }
body.woocommerce-checkout.jap-tienda #payment div.payment_box { margin: 12px 0 2px; padding: 16px 18px; background: rgba(21, 27, 25, .06); }
body.woocommerce-checkout.jap-tienda #payment .place-order { padding-top: 22px; }
body.woocommerce-cart.jap-tienda .entry-content > .woocommerce { column-gap: clamp(28px, 4vw, 56px); }
body.woocommerce-cart.jap-tienda form.woocommerce-cart-form { padding-top: 0 !important; }
body.woocommerce-cart.jap-tienda td.actions { padding-top: 24px !important; }

/* Dirección de envío en el pago: mismos campos en rejilla que la facturación */
body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields { margin-top: 30px; }
body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; }
body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields__field-wrapper > .form-row { grid-column: 1 / -1; float: none; width: auto; }
body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields__field-wrapper > .form-row-first { grid-column: 1; }
body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields__field-wrapper > .form-row-last { grid-column: 2; }
body.woocommerce-checkout.jap-tienda #ship-to-different-address { margin: 0 0 22px !important; }
body.woocommerce-checkout.jap-tienda #ship-to-different-address label { font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; gap: 0; }
/* Con algo impreso, la dirección de envío no es opcional: la casilla no se ve (viene marcada) */
body.jap-pedido-impreso #ship-to-different-address input[type="checkbox"] { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
body.jap-pedido-impreso #ship-to-different-address label { pointer-events: none; }
body.jap-pedido-impreso .shipping_address { display: block !important; }

/* Mi cuenta con sesión iniciada: menú a la izquierda, contenido a todo el ancho que queda */
body.woocommerce-account.jap-tienda.logged-in .entry-content > .woocommerce { grid-template-columns: 250px minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); }
body.woocommerce-account.jap-tienda.logged-in .entry-content > .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; width: auto !important; float: none !important; }
body.woocommerce-account.jap-tienda.logged-in .entry-content > .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; width: auto !important; float: none !important; min-width: 0; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation ul { padding: 0; border: 0; border-top: 1px solid rgba(21, 27, 25, .35); background: transparent; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li { border-bottom: 1px solid rgba(21, 27, 25, .16) !important; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a { position: relative; padding: 16px 14px 16px 0; border-radius: 0; transition: padding-left .35s var(--jap-curva), color .2s ease; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a::before { content: ""; position: absolute; left: 0; top: 50%; width: 0; height: 2px; background: var(--jap-oro); transition: width .35s var(--jap-curva); }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a:hover { padding-left: 22px; background: transparent; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a:hover::before { width: 14px; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li.is-active a { padding-left: 22px; background: transparent; color: var(--jap-tinta); }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li.is-active a::before { width: 14px; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content > p { margin: 0 0 16px; font-size: 1.04rem; line-height: 1.6; }
/* Botones de las tablas (Ver, Factura…): legibles y sin pisarse */
body.jap-tienda #content table.shop_table td :is(a.button, .woocommerce-button) { min-height: 40px; margin: 0 8px 8px 0; padding: 0 16px; color: #fff !important; font-size: .7rem; }
body.jap-tienda #content table.shop_table td :is(a.button, .woocommerce-button):last-child { margin-right: 0; }
body.jap-tienda #content table.shop_table td.woocommerce-orders-table__cell-order-actions { padding-top: 16px; padding-bottom: 8px; white-space: normal; }
body.jap-tienda #content table.woocommerce-orders-table :is(th, td) { font-size: 1rem; }
body.jap-tienda #content :is(a.button, button.button):not(.checkout-button):not(#place_order):not(.single_add_to_cart_button):not(.woocommerce-form-login__submit):not([name="save_address"]):not([name="save_account_details"]):not(.jap-f-comprar) { color: #fff !important; }
/* Formularios de la cuenta (detalles, direcciones): campos en dos columnas */
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form:is(.edit-account, .woocommerce-EditAccountForm),
body.woocommerce-account.jap-tienda .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; max-width: 820px; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form:is(.edit-account, .woocommerce-EditAccountForm) > *,
body.woocommerce-account.jap-tienda .woocommerce-address-fields__field-wrapper > .form-row { grid-column: 1 / -1; float: none; width: auto; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form:is(.edit-account, .woocommerce-EditAccountForm) > .form-row-first,
body.woocommerce-account.jap-tienda .woocommerce-address-fields__field-wrapper > .form-row-first { grid-column: 1; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form:is(.edit-account, .woocommerce-EditAccountForm) > .form-row-last,
body.woocommerce-account.jap-tienda .woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: 2; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content .clear { display: none; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form em, body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form .description { display: block; margin-top: 8px; font-size: .86rem; font-style: normal; line-height: 1.45; color: var(--jap-tinta-2); }
body.woocommerce-account.jap-tienda fieldset { margin: 14px 0 26px; padding: 26px 26px 8px; border: 1px solid rgba(21, 27, 25, .22); }
body.woocommerce-account.jap-tienda fieldset legend { width: auto !important; margin: 0 !important; padding: 0 10px !important; border: 0 !important; }
body.woocommerce-account.jap-tienda .woocommerce-Addresses { gap: clamp(20px, 3vw, 40px); margin-top: 8px; }
body.woocommerce-account.jap-tienda .woocommerce-Address { padding: 26px; border: 1px solid rgba(21, 27, 25, .22); border-radius: var(--jap-radio); }
body.woocommerce-account.jap-tienda .woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin: 0 0 14px; }
body.woocommerce-account.jap-tienda .woocommerce-Address-title :is(h2, h3) { margin: 0 !important; }
body.woocommerce-account.jap-tienda .woocommerce-Address-title a.edit { float: none; font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
body.woocommerce-account.jap-tienda .woocommerce-Address address { font-style: normal; line-height: 1.6; color: var(--jap-tinta-2); }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content :is(.woocommerce-customer-details, .woocommerce-order-details) { margin-top: 30px; }
body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content mark { background: none; color: var(--jap-tinta); font-weight: 700; }

/* Ficha de producto: sin pestañas. Arriba, la compra; debajo, bandas a todo el ancho. */
body.single-product.jap-tienda div.product { row-gap: 0; }
body.single-product.jap-tienda div.product > .woocommerce-product-gallery { position: relative; }
body.single-product.jap-tienda div.product > .woocommerce-product-gallery::before { content: ""; position: absolute; inset: -8% -10%; z-index: -1; background: radial-gradient(closest-side, rgba(249, 205, 23, .32), rgba(249, 205, 23, 0)); pointer-events: none; }
body.single-product.jap-tienda .jap-t-garantias { margin: 0 0 22px; padding: 0; list-style: none; border-top: 1px solid rgba(21, 27, 25, .16); }
body.single-product.jap-tienda .jap-t-garantias li { position: relative; margin: 0; padding: 14px 0 14px 40px; border-bottom: 1px solid rgba(21, 27, 25, .16); font-size: 1rem; font-weight: 500; color: var(--jap-tinta); }
body.single-product.jap-tienda .jap-t-garantias li::before { content: "✓"; position: absolute; left: 0; top: 11px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--jap-oro); color: var(--jap-tinta); font-size: .8rem; font-weight: 800; box-shadow: 0 0 22px -4px rgba(249, 205, 23, .8); }
body.single-product.jap-tienda .summary form.cart { margin: 24px 0 22px; }
body.single-product.jap-tienda .product_meta { border-top: 0; padding-top: 0; }
body.jap-tienda .jap-t-banda { grid-column: 1 / -1; width: 100vw; max-width: none; margin: clamp(48px, 7vw, 88px) calc(50% - 50vw) 0; padding: clamp(56px, 8vw, 104px) 0; }
body.jap-tienda .jap-t-banda + .jap-t-banda { margin-top: 0; }
body.jap-tienda .jap-t-banda--noche { background: var(--jap-noche); color: #fff; --jap-fondo: var(--jap-noche); }
body.jap-tienda .jap-t-banda--papel { background: transparent; --jap-fondo: var(--jap-papel); }
body.jap-tienda .jap-t-dentro { width: min(1200px, 100vw - 2 * clamp(20px, 4vw, 40px)); margin: 0 auto; }
body.jap-tienda #content .jap-t-titulo { margin: 0 0 clamp(22px, 3vw, 34px); color: inherit; font-family: var(--jap-letra); font-stretch: 62%; font-weight: 800; font-size: clamp(2.1rem, 5.4vw, 3.6rem); line-height: .95; letter-spacing: 0; text-transform: uppercase; }
body.jap-tienda #content .jap-t-titulo::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 18px; background: linear-gradient(90deg, var(--jap-oro), #F0B400); }
body.jap-tienda .jap-t-texto { max-width: 46em; font-size: 1.12rem; line-height: 1.65; }
body.jap-tienda .jap-t-banda--noche .jap-t-texto :is(p, li, span, strong, em, a, h2, h3, h4) { color: rgba(255, 255, 255, .82) !important; }
body.jap-tienda .jap-t-banda--noche .jap-t-texto strong { color: #fff !important; }
body.jap-tienda .jap-t-texto p { margin: 0 0 1em; }
body.jap-tienda .jap-t-texto hr { margin: 22px 0; border: 0; border-top: 1px solid var(--jap-linea-noche); }
body.jap-tienda .jap-t-banda .jap-pasarela { margin-top: -12px; }
body.single-product.jap-tienda section:is(.related, .upsells) { margin: 0; padding: clamp(40px, 6vw, 80px) 0 0; }
body.single-product.jap-tienda .jap-t-banda--papel + section:is(.related, .upsells) { padding-top: 0; }
body.single-product.jap-tienda #content > .ast-container { padding-bottom: clamp(56px, 8vw, 104px); }

@media (max-width: 980px) {
  body.woocommerce-account.jap-tienda.logged-in .entry-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
  body.woocommerce-account.jap-tienda.logged-in .entry-content > .woocommerce > :is(.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content) { grid-column: 1; }
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0 22px; }
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li { border-bottom: 0 !important; }
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a { padding: 14px 0; }
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li :is(a:hover, a), body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li.is-active a { padding-left: 0; }
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a::before { top: auto; bottom: 6px; }
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li.is-active a::before, body.woocommerce-account.jap-tienda .woocommerce-MyAccount-navigation li a:hover::before { width: 100%; }
}
@media (max-width: 767px) {
  body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields__field-wrapper,
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form:is(.edit-account, .woocommerce-EditAccountForm),
  body.woocommerce-account.jap-tienda .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
  body.woocommerce-checkout.jap-tienda .woocommerce-shipping-fields__field-wrapper > :is(.form-row-first, .form-row-last),
  body.woocommerce-account.jap-tienda .woocommerce-MyAccount-content form > :is(.form-row-first, .form-row-last),
  body.woocommerce-account.jap-tienda .woocommerce-address-fields__field-wrapper > :is(.form-row-first, .form-row-last) { grid-column: 1; }
  /* Pedidos en el móvil: cada pedido, una ficha con su rótulo a la izquierda */
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table thead { display: none; }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table tr { display: block; padding: 14px 0; border-bottom: 1px solid rgba(21, 27, 25, .35); }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table :is(th, td) { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0 !important; border: 0 !important; text-align: right !important; }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table :is(th, td)::before { content: attr(data-title); float: none; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--jap-tinta-2); }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions { justify-content: flex-start; flex-wrap: wrap; padding-top: 12px !important; }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions::before { display: none; }
}

/* 9.14 Remates de la segunda vuelta */
body.jap-2026 .elementor .jap-pasarela.e-con { display: flex; }
body.jap-2026 .elementor .jap-pasarela > .e-con { display: flex; flex-direction: column; padding: 0; }
body.jap-tienda .jap-t-banda .jap-citas .elementor-widget-testimonial { width: 100%; }
body.jap-tienda #content h2.jap-t-titulo { margin: 0 0 clamp(22px, 3vw, 34px); color: inherit; font-stretch: 62%; font-weight: 800; font-size: clamp(2.1rem, 5.4vw, 3.6rem); line-height: .95; letter-spacing: 0; text-transform: uppercase; }
body.jap-tienda #content .jap-t-banda--noche h2.jap-t-titulo { color: #fff; }
body.woocommerce-checkout.jap-tienda #customer_details h3,
body.woocommerce-checkout.jap-tienda form.checkout > h3#order_review_heading { font-size: 1.9rem !important; font-stretch: 62%; font-weight: 800 !important; line-height: 1 !important; }
/* Los avisos, sin fondo blanco: una línea dorada a la izquierda y basta */
body.jap-tienda #content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { border: 0; border-left: 3px solid var(--jap-oro); background: rgba(21, 27, 25, .05); box-shadow: none; }
body.jap-tienda #content .woocommerce-error { border-left-color: var(--jap-rojo); background: rgba(174, 8, 23, .07); }
body.jap-tienda #content .woocommerce-message:focus-visible, body.jap-tienda #content .woocommerce-message { outline: 0; }
/* Direcciones de la cuenta: sin franjas blancas en el encabezado */
body.woocommerce-account.jap-tienda .woocommerce-Address :is(header, .title, address) { padding: 0 !important; border: 0 !important; background: transparent !important; }
body.woocommerce-account.jap-tienda .woocommerce-Address-title :is(h2, h3) { font-size: 1.3rem !important; }
/* Con algo impreso: calle, código postal y provincia son obligatorios (lo exige jap-tienda.php); fuera el «(opcional)» */
body.jap-pedido-impreso :is(#shipping_address_1_field, #shipping_postcode_field, #shipping_city_field, #shipping_state_field) .optional { display: none; }
body.jap-pedido-impreso :is(#shipping_address_1_field, #shipping_postcode_field, #shipping_state_field) > label::after { content: " *"; color: var(--jap-rojo); }
/* Ficha: orden de las piezas bajo el botón (el tema las recoloca a su manera) y título de «relacionados» */
body.single-product.jap-tienda div.product > .summary { display: flex; flex-direction: column; }
body.single-product.jap-tienda .summary > .jap-t-garantias { order: 1; }
body.single-product.jap-tienda .summary > .product_meta { order: 2; }
body.single-product.jap-tienda .summary > .joinchat__woo-btn__wrapper { order: 3; }
body.single-product.jap-tienda #content section:is(.related, .upsells) > h2 { font-stretch: 62%; font-weight: 800; font-size: clamp(2.1rem, 5.4vw, 3.6rem); line-height: .95; }
/* Detalle de un pedido y «pedido recibido»: sin franjas blancas */
body.jap-tienda #content :is(.woocommerce-customer-details, .woocommerce-order-details, .woocommerce-order) :is(h2, h3, address, header, .woocommerce-column__title, section) { background: transparent !important; box-shadow: none !important; }
body.jap-tienda #content .woocommerce-customer-details address { margin: 0; padding: 20px 22px !important; border: 1px solid rgba(21, 27, 25, .22) !important; border-radius: var(--jap-radio); font-style: normal; line-height: 1.6; color: var(--jap-tinta); }
body.jap-tienda #content .woocommerce-customer-details :is(h2, .woocommerce-column__title) { padding: 0 !important; border: 0 !important; }
body.jap-tienda #content :is(.woocommerce-customer-details, .woocommerce-order-details) { margin: 34px 0 0; }
body.jap-tienda #content .woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
body.jap-tienda #content .woocommerce-columns--addresses > div { float: none; width: auto; }
body.jap-tienda #content .woocommerce-columns--addresses::before, body.jap-tienda #content .woocommerce-columns--addresses::after { display: none; }
body.jap-tienda #content .woocommerce-thankyou-order-received { margin: 0 0 22px; font-size: 1.2rem; font-weight: 600; }
/* Direcciones de la cuenta: título a la izquierda y enlace debajo */
body.woocommerce-account.jap-tienda .woocommerce-Address-title { display: block; text-align: left; }
body.woocommerce-account.jap-tienda .woocommerce-Address-title :is(h2, h3) { margin: 0 0 8px !important; text-align: left; }
body.woocommerce-account.jap-tienda .woocommerce-Address-title a.edit { display: inline-block; }
@media (max-width: 767px) {
  body.single-product.jap-tienda div.product > .woocommerce-product-gallery { max-width: 300px; margin: 0 auto; }
  body.jap-tienda #content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button { order: 0; margin: 0; width: 100%; height: auto; min-height: 46px; padding: 12px 16px; white-space: normal; text-align: center; line-height: 1.3; }
  body.jap-tienda #content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { flex-direction: column-reverse; align-items: stretch; }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table :is(th, td) { display: block; overflow: hidden; }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table :is(th, td)::before { float: left; margin-right: 16px; line-height: 1.9; }
  body.woocommerce-account.jap-tienda table.woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions { display: flex; text-align: left !important; }
}
/* El ojo de ver/ocultar contraseña, centrado en la casilla */
body.jap-tienda #content .password-input { display: block; position: relative; }
body.jap-tienda #content .password-input input { padding-right: 52px; }
body.jap-tienda #content button.show-password-input {
  position: absolute !important; top: 0 !important; bottom: 0 !important; right: 8px !important;
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; min-height: 0; margin: auto 0 !important; padding: 0; line-height: 1;
  border: 0; background: none; box-shadow: none; transform: none !important; translate: none !important;
}
body.jap-tienda #content button.show-password-input::after,
body.jap-tienda #content button.show-password-input::before { position: static !important; margin: 0 !important; line-height: 1 !important; transform: none !important; }

/* ==========================================================================
   10. Repaso en el móvil (Germán, 02/10/2026)
   ========================================================================== */

/* La barra de WordPress (solo la ven los administradores con sesión): en el móvil mide 46 px y no es fija,
   se va al bajar. La cabecera no puede guardarle el hueco. */
@media (max-width: 782px) { .admin-bar #masthead:has(.jap-cab) { top: 46px; } }
@media (max-width: 600px) { .admin-bar #masthead:has(.jap-cab) { top: 0; } }

@media (max-width: 767px) {
  /* Primera pantalla más compacta, para que la imagen asome sin tener que bajar */
  body.jap-2026 .elementor .jap-hero.e-con { --padding-top: 24px; --padding-bottom: 40px; }
  body.jap-2026 .elementor .jap-hero > .e-con-inner > .e-con { --gap: 22px; --row-gap: 22px; gap: 22px; }
  body.jap-2026 .elementor .jap-hero > .e-con-inner > .e-con > .e-con:first-child { --gap: 13px; --row-gap: 13px; gap: 13px; }
  body.jap-2026 .jap-s h1.elementor-heading-title { font-size: clamp(2.9rem, 13.5vw, 3.4rem); }
  body.jap-2026 .jap-s .jap-h1--largo h1.elementor-heading-title { font-size: clamp(2.3rem, 10.4vw, 2.9rem); }
  body.jap-2026 .jap-h1 .elementor-heading-title::after { width: 56px; height: 5px; margin-top: 12px; }
  body.jap-2026 .jap-s .jap-sub .elementor-heading-title { font-size: 1.08rem; }
  body.jap-2026 .jap-s .jap-dato .elementor-heading-title { gap: 12px; font-size: .9rem; }
  body.jap-2026 .jap-s .jap-dato strong { padding-right: 12px; font-size: 2.3rem; }

  /* Botones más pequeños en toda la web */
  body.jap-2026 .jap-s .elementor-button { padding: 12px 15px; font-size: .7rem; letter-spacing: .09em; }
  body.jap-2026 .jap-s .jap-btn--verde .elementor-button { padding: 11px 12px; font-size: .66rem; letter-spacing: .07em; }
  body.jap-2026 .jap-s .jap-btn--oro .elementor-button { padding: 13px 16px; }
  /* «Ver ejemplo» y «Descargar muestra gratuita», en una sola línea (sin las flechas, que no caben) */
  body.jap-2026 .elementor .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde) { --flex-wrap: nowrap; flex-wrap: nowrap; --gap: 8px; --column-gap: 8px; gap: 8px; }
  body.jap-2026 .jap-s .jap-btn--verde + .jap-btn--verde,
  body.jap-2026 .jap-s .jap-btn--verde:has(+ .jap-btn--verde) { flex: 0 1 auto; min-width: 0; width: auto; }
  body.jap-2026 .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde) .elementor-button { padding: 11px 10px; font-size: min(.62rem, 2.6vw); letter-spacing: .05em; white-space: nowrap; }
  body.jap-2026 .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde) .elementor-button::after { display: none; }

  /* Hojas y libro: más pequeños y centrados, sin tocar los bordes de la pantalla */
  body.jap-2026 .jap-hojas { max-width: 270px; margin: 4px auto 0; }
  body.jap-2026 .jap-hojas:has(.jap-vista--apaisada) { max-width: 330px; }
  body.jap-2026 .elementor .jap-vista--pdf.e-con { padding: 3% 4% 0 12%; }
  body.jap-2026 .elementor .jap-vista--apaisada.e-con { padding: 9% 3% 3% 8%; }
  body.jap-2026 .jap-hojas:has(.jap-vista--apaisada):has(.jap-vista--impreso) { min-height: 320px; }
  body.jap-2026 .jap-hojas .jap-nota { width: auto; margin: 14px 0 0; font-size: .74rem; text-align: center; }

  /* Opiniones: tarjeta más estrecha y centrada, para que asomen la anterior y la siguiente */
  body.jap-2026 .elementor .jap-pasarela.e-con {
    gap: 12px; padding-inline: 13vw; scroll-padding-inline: 13vw;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7vw, #000 93vw, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 7vw, #000 93vw, transparent 100%);
  }
  body.jap-2026 .elementor .jap-pasarela > .e-con { --width: 74vw; width: 74vw; scroll-snap-align: center; }
  body.jap-2026 .jap-citas .elementor-testimonial-wrapper { padding: 24px 18px 18px; }
  body.jap-2026 .jap-citas .elementor-testimonial-wrapper::before { top: 2px; right: 14px; font-size: 5rem; }
  body.jap-2026 .jap-citas .elementor-testimonial-content { margin-bottom: 18px; font-size: .95rem; line-height: 1.55; }
  body.jap-2026 .jap-citas .elementor-testimonial-content::before { margin-bottom: 12px; font-size: .85rem; }
  body.jap-2026 .jap-avatar { width: 34px; height: 34px; font-size: .7rem; }
  body.jap-2026 .jap-flecha { width: 42px; height: 42px; }

  /* Tienda: botones más contenidos */
  body.jap-tienda #content :is(a.button, button.button, input.button, button[type="submit"]) { min-height: 44px; padding: 0 16px; font-size: .7rem; }
  body.jap-tienda #content :is(a.checkout-button, #place_order, .single_add_to_cart_button, .woocommerce-form-login__submit, .woocommerce-form-register__submit, button[name="save_address"], button[name="save_account_details"]) { min-height: 52px; font-size: .8rem; }

  /* Fichas de producto en rejilla (relacionados y Materiales): el botón cabe dentro de la ficha */
  body.jap-2026 #content :is(.jap-s .woocommerce, section.related, section.upsells) ul.products li.product a.button {
    align-self: stretch; width: auto; min-height: 40px; height: auto; margin: auto 0 0; padding: 10px 6px;
    font-size: .6rem; letter-spacing: .05em; line-height: 1.25; white-space: normal; text-align: center;
  }
  body.jap-2026 #content :is(section.related, section.upsells) ul.products { gap: 12px; }
  body.jap-2026 #content :is(section.related, section.upsells) ul.products li.product .astra-shop-summary-wrap { padding: 12px 10px 0; }

  /* Carrito: cada dato con su rótulo, y el cupón y los botones a todo el ancho */
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item { row-gap: 2px; }
  body.woocommerce-cart.jap-tienda table.cart td.product-name { padding-bottom: 8px !important; font-size: 1.02rem; }
  body.woocommerce-cart.jap-tienda table.cart td:is(.product-price, .product-quantity, .product-subtotal) { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 0 !important; }
  body.woocommerce-cart.jap-tienda table.cart td:is(.product-price, .product-quantity, .product-subtotal)::before { content: attr(data-title); display: block; float: none; font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--jap-tinta-2); }
  body.woocommerce-cart.jap-tienda table.cart td.product-subtotal { font-weight: 700; }
  body.woocommerce-cart.jap-tienda table.cart td.actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; padding-top: 20px !important; text-align: center; }
  body.woocommerce-cart.jap-tienda td.actions .coupon { display: flex; flex-direction: column; align-items: stretch; gap: 10px; float: none; width: 100%; margin: 0; padding: 0; }
  body.woocommerce-cart.jap-tienda td.actions .coupon .input-text { flex: none; width: 100% !important; max-width: none; margin: 0; float: none; text-align: center; }
  body.woocommerce-cart.jap-tienda td.actions :is(.coupon .button, > .button) { float: none; width: 100% !important; margin: 0 !important; }
}
@media (max-width: 767px) {
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item { align-items: start; align-content: start; grid-auto-rows: min-content; }
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item td { min-height: 0 !important; height: auto !important; line-height: 1.35; }
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item td:is(.product-price, .product-quantity, .product-subtotal) { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 0 !important; border-top: 1px solid rgba(21, 27, 25, .12) !important; }
  body.woocommerce-cart.jap-tienda table.cart tr.cart_item td:is(.product-price, .product-quantity, .product-subtotal)::before { content: attr(data-title) !important; display: block !important; float: none; font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--jap-tinta-2); }
  body.woocommerce-cart.jap-tienda table.cart td.product-thumbnail { grid-row: 1 / span 2 !important; }
  body.woocommerce-cart.jap-tienda table.cart td:is(.product-price, .product-quantity, .product-subtotal) { grid-column: 1 / -1 !important; }
  body.woocommerce-cart.jap-tienda table.cart td.product-name { align-self: center; }
  body.woocommerce-cart.jap-tienda table.cart td.product-price { margin-top: 12px; }
  body.woocommerce-cart.jap-tienda td.actions > .button { align-self: stretch; box-sizing: border-box; max-width: 100%; }
  body.single-product.jap-tienda #content section:is(.related, .upsells) > h2,
  body.jap-tienda #content h2.jap-t-titulo { font-size: clamp(1.7rem, 8.6vw, 2.3rem); }
}
@media (max-width: 767px) {
  body.woocommerce-cart.jap-tienda td.actions > .button, body.woocommerce-cart.jap-tienda td.actions .coupon .button { float: none; width: 100% !important; margin: 0 !important; }
}

/* ==========================================================================
   11. Nada de texto amarillo sobre fondo claro (Germán, 02/10/2026)
   El tema antiguo pinta de amarillo los enlaces y los títulos, y hay textos con el amarillo puesto a mano
   (pensados para el fondo verde de antes). Sobre papel o blanco no se leen: pasan a tinta o a verde oscuro.
   Se comprueba con herramientas/contraste-amarillo.js.
   ========================================================================== */
body.jap-2026:is(.jap-tienda, .jap-doc) #content a:not(.button):not(.jap-f-comprar):not(.remove):not(.jap-flecha) { color: var(--jap-verde); }
body.jap-2026:is(.jap-tienda, .jap-doc) #content a:not(.button):not(.jap-f-comprar):not(.remove):hover { color: var(--jap-tinta); }
body.jap-2026:is(.jap-tienda, .jap-doc) #content :is(h1, h2, h3, h4, h5, h6, legend, label, dt, th, .page-title, .page-sub-title) { color: var(--jap-tinta); }
/* Amarillos puestos a mano dentro de los textos (descripciones de producto, páginas de texto) */
body.jap-2026 #content :is(.summary, .woosb-wrap, .entry-content, .jap-s--papel, .jap-s--blanco, .page-content)
  :is([style*="#ffff00" i], [style*="#ff0;" i], [style*="yellow" i], [style*="255, 255, 0" i], [style*="#f7ec02" i], [style*="#fdf900" i], [style*="#fffa04" i], [style*="#f9cd17" i], [style*="#eaff00" i], [style*="#fff300" i], [style*="#feff00" i], [style*="#f9f302" i], [style*="#f7e303" i]) {
  color: var(--jap-verde) !important;
}
/* …salvo dentro de los bloques oscuros, donde el amarillo sí se lee */
body.jap-2026 #content :is(.jap-s--noche, .jap-t-banda--noche) :is([style*="#ffff00" i], [style*="yellow" i], [style*="255, 255, 0" i], [style*="#f7ec02" i], [style*="#f9cd17" i]) { color: var(--jap-oro) !important; }
/* Lista de temas de un pack */
body.jap-tienda #content .woosb-wrap { margin: 18px 0 0; border-top: 1px solid rgba(21, 27, 25, .16); }
body.jap-tienda #content .woosb-product { border-color: rgba(21, 27, 25, .16); background: transparent; }
body.jap-tienda #content .woosb-name a { color: var(--jap-tinta); font-weight: 600; text-decoration: none; }
body.jap-tienda #content .woosb-name a:hover { text-decoration: underline; }
/* Página de error 404 */
body.jap-doc .error-404 { padding: 0; text-align: left; }
body.jap-doc .error-404 .page-title { margin: 0 0 18px; font-stretch: 62%; font-weight: 800; font-size: clamp(2.7rem, 7vw, 4.8rem); line-height: .92; text-transform: uppercase; }
body.jap-doc .error-404 .page-sub-title { margin: 0 0 22px; font-size: 1.15rem; font-weight: 500; line-height: 1.5; color: var(--jap-tinta-2); }

/* 9.15 Ficha de un producto rebajado (los packs): la etiqueta «¡Oferta!» del tema es un hijo más de la ficha y,
   en la rejilla, ocupaba la primera casilla: la imagen saltaba a la derecha, enorme, y la compra bajaba.
   Cada pieza va ahora en su sitio fijo y la etiqueta, encima de la imagen. */
body.single-product.jap-tienda div.product > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; }
body.single-product.jap-tienda div.product > .summary { grid-column: 2; grid-row: 1; }
body.jap-2026 #content :is(.ast-onsale-card, span.onsale) {
  display: inline-flex !important; align-items: center; position: absolute; top: 14px; left: 14px; right: auto; z-index: 3;
  min-width: 0; min-height: 0; height: auto; margin: 0; padding: 7px 11px; border: 0; border-radius: var(--jap-radio);
  background: var(--jap-oro); color: var(--jap-tinta) !important;
  font-family: var(--jap-letra); font-size: .68rem; font-weight: 700; line-height: 1; letter-spacing: .12em; text-transform: uppercase;
  box-shadow: 0 0 26px -6px rgba(249, 205, 23, .9);
}
body.jap-2026 #content ul.products li.product { position: relative; }
body.jap-2026 #content ul.products li.product :is(.ast-onsale-card, span.onsale) { top: 10px; left: 10px; padding: 6px 9px; font-size: .6rem; }
/* Precio rebajado: el de antes, pequeño y tachado; el de ahora, grande */
body.jap-tienda #content .price del { margin-right: 8px; font-stretch: 100%; font-weight: 500; font-size: .5em; color: var(--jap-tinta-2); opacity: 1; }
body.jap-tienda #content .price ins { background: none; text-decoration: none; }
@media (max-width: 767px) {
  body.single-product.jap-tienda div.product > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; }
  body.single-product.jap-tienda div.product > .summary { grid-column: 1; grid-row: 2; }
  body.single-product.jap-tienda div.product > :is(.ast-onsale-card, span.onsale) { left: calc(50% - 150px + 10px); top: 10px; }
}
body.single-product.jap-tienda div.product > :is(.ast-onsale-card, span.onsale) { position: absolute !important; z-index: 4 !important; grid-column: auto; grid-row: auto; width: auto; }

/* ==========================================================================
   12. Fundido entre bloques (idea de Germán, 02/10/2026)
   En vez de un corte seco entre bloques, un degradado corto. Lo pinta el bloque de abajo con un ::after junto
   a la frontera. Va por detrás del fondo animado y de los textos.
   Para cambiar el tamaño del fundido, tocar --jap-fundido. Para quitarlo, ponerlo a 0px.
   ========================================================================== */
body.jap-2026 { --jap-fundido: clamp(20px, 2.5vw, 36px); }   /* era 90-170 px: a Germán le pareció demasiado; 0px = corte seco */
/* Dos clases de fundido (Germán, 02/10):
   a) Entre el verde y un tono claro (papel o blanco): el verde se desvanece hacia el claro, de color a sin color.
      El bloque verde llega entero hasta su borde y el fundido cae todo en el lado claro. Nunca se mete claro en el verde.
   b) Entre los dos tonos claros (papel y blanco): mezcla de los dos, mitad en cada bloque. */
body.jap-2026 .elementor .jap-s + .jap-s::after { content: ""; position: absolute; left: 0; right: 0; z-index: 0; pointer-events: none; height: var(--jap-fundido); }

/* a) verde arriba, claro abajo: el verde baja desvaneciéndose dentro del bloque claro */
body.jap-2026 .elementor .jap-s--noche + :is(.jap-s--papel, .jap-s--blanco)::after {
  top: 0;
  background: linear-gradient(to bottom, rgba(18, 26, 24, 1) 0%, rgba(18, 26, 24, .72) 28%, rgba(18, 26, 24, .30) 62%, rgba(18, 26, 24, 0) 100%);
}
/* a) claro arriba, verde abajo: el verde sube desvaneciéndose sobre el final del bloque claro */
body.jap-2026 .elementor :is(.jap-s--papel, .jap-s--blanco) + .jap-s--noche::after {
  top: calc(var(--jap-fundido) * -1);
  background: linear-gradient(to top, rgba(18, 26, 24, 1) 0%, rgba(18, 26, 24, .72) 28%, rgba(18, 26, 24, .30) 62%, rgba(18, 26, 24, 0) 100%);
}
/* b) papel y blanco: mezcla de los dos, a caballo de la frontera */
body.jap-2026 .jap-s--papel + .jap-s--blanco { --jap-antes: var(--jap-papel); }
body.jap-2026 .jap-s--blanco + .jap-s--papel { --jap-antes: var(--jap-blanco); }
body.jap-2026 .elementor :is(.jap-s--papel + .jap-s--blanco, .jap-s--blanco + .jap-s--papel)::after {
  top: calc(var(--jap-fundido) / -2);
  background: linear-gradient(to bottom, var(--jap-antes), var(--jap-fondo));
}
/* Entre dos bloques del mismo tono no hay nada que fundir */
body.jap-2026 .elementor :is(.jap-s--noche + .jap-s--noche, .jap-s--papel + .jap-s--papel, .jap-s--blanco + .jap-s--blanco)::after { content: none; }
/* Ficha de producto: la banda oscura se funde con el papel por arriba y por abajo */
body.jap-tienda .jap-t-banda--noche {
  padding-top: calc(clamp(56px, 8vw, 104px) + var(--jap-fundido)); padding-bottom: calc(clamp(56px, 8vw, 104px) + var(--jap-fundido));
  background: linear-gradient(to bottom, rgba(18, 26, 24, 0) 0, rgba(18, 26, 24, .3) calc(var(--jap-fundido) * .38), rgba(18, 26, 24, .72) calc(var(--jap-fundido) * .72), var(--jap-noche) var(--jap-fundido), var(--jap-noche) calc(100% - var(--jap-fundido)), rgba(18, 26, 24, .72) calc(100% - var(--jap-fundido) * .72), rgba(18, 26, 24, .3) calc(100% - var(--jap-fundido) * .38), rgba(18, 26, 24, 0) 100%);
}
/* Tarjetas deslizantes del móvil (los cuatro productos de Inicio): la fila recorta lo que sobresale por abajo, y la
   sombra larga de las tarjetas quedaba cortada en una franja recta justo encima del fundido. Sombra más corta. */
@media (max-width: 767px) {
  body.jap-2026 .elementor .jap-tarjetas--desliza > .e-con { box-shadow: 0 14px 22px -18px rgba(21, 27, 25, .5); }
  body.jap-2026 .elementor .jap-tarjetas--desliza.e-con { padding-bottom: 34px; margin-bottom: -22px; }
}

/* Frase destacada con dos párrafos (Libro Resumen): el segundo, como remate */
body.jap-2026 .jap-frase-texto p + p { margin-top: .55em; }
body.jap-2026 .jap-frase-texto strong { font-weight: 800; }

/* Colegio de Guardias Jóvenes: portada de un producto como pieza suelta, y tarjetas con su compra dentro */
body.jap-2026 .jap-portada { width: min(240px, 62vw); }
body.jap-2026 .jap-portada img { display: block; width: 100%; border-radius: 2px; transform: rotate(3deg); box-shadow: 0 1px 2px rgba(21, 27, 25, .12), 0 30px 54px -22px rgba(21, 27, 25, .55); transition: transform .6s var(--jap-curva); }
body.jap-2026 .jap-portada a:hover img { transform: rotate(0deg) translateY(-4px); }
body.jap-2026 .elementor .jap-tarjetas--compra > .e-con { --padding-top: 26px; --padding-bottom: 28px; --padding-left: 26px; --padding-right: 26px; overflow: visible; }
body.jap-2026 .jap-tarjetas--compra > .e-con:hover { transform: none; }
body.jap-2026 .jap-tarjetas--compra .elementor-widget-shortcode { margin-top: auto; }
body.jap-2026 .jap-tarjetas--compra .jap-f { max-width: none; }
body.jap-2026 .jap-tarjetas--compra .elementor-widget-image img { width: auto !important; max-width: 100%; margin: 0 auto; object-fit: contain; box-shadow: 0 20px 36px -20px rgba(21, 27, 25, .55); }
@media (prefers-reduced-motion: no-preference) { body.jap-2026 .jap-portada > .elementor-widget-container { animation: jap-flota 8s ease-in-out infinite alternate; } }
@media (max-width: 767px) { body.jap-2026 .jap-portada { width: 190px; margin: 6px auto 0; } }
/* El precio grande de las tarjetas, también cuando WordPress le quita el párrafo (pasa si el texto es solo el shortcode) */
body.jap-2026 .elementor .jap-tarjetas .jap-precio-grande.elementor-widget-text-editor,
body.jap-2026 .elementor .jap-tarjetas .jap-precio-grande .jap-precio { font-stretch: 62%; font-weight: 800; font-size: 2.1rem; line-height: 1; color: var(--jap-tinta); font-variant-numeric: tabular-nums; }
body.jap-2026 .elementor .jap-s--noche .jap-tarjetas .jap-precio-grande.elementor-widget-text-editor,
body.jap-2026 .elementor .jap-s--noche .jap-tarjetas .jap-precio-grande .jap-precio { color: #fff; }

/* ==========================================================================
   13. Avisos cortos (03/10/2026)
   ========================================================================== */
/* «Actualizado cada semana» en la primera pantalla de Inicio (Jose Antonio): una línea con un punto que late,
   bajo los botones. Sobre fondo oscuro; si algún día va sobre claro, el punto pasa a verde (nada de amarillo). */
body.jap-2026 .jap-al-dia { margin-top: 6px; }
body.jap-2026 .jap-al-dia p { position: relative; display: inline-block; max-width: 34em; margin: 0; padding: 11px 16px 11px 38px; border: 1px solid var(--jap-linea-noche); border-radius: 3px; background: rgba(255, 255, 255, .04); font-size: .9rem; line-height: 1.45; color: rgba(255, 255, 255, .78); }
body.jap-2026 .jap-al-dia strong { color: #fff; font-weight: 700; }
body.jap-2026 .jap-al-dia p::before,
body.jap-2026 .jap-al-dia p::after { content: ""; position: absolute; left: 16px; top: 1.05em; width: 9px; height: 9px; margin-top: 2px; border-radius: 50%; background: var(--jap-oro); }
body.jap-2026 .jap-s--papel .jap-al-dia p::before, body.jap-2026 .jap-s--blanco .jap-al-dia p::before,
body.jap-2026 .jap-s--papel .jap-al-dia p::after, body.jap-2026 .jap-s--blanco .jap-al-dia p::after { background: var(--jap-verde); }
@media (prefers-reduced-motion: no-preference) {
  body.jap-2026 .jap-al-dia p::after { animation: jap-late 2.4s ease-out infinite; }
}
@keyframes jap-late { 0% { transform: scale(1); opacity: .7; } 70%, 100% { transform: scale(2.8); opacity: 0; } }
@media (max-width: 767px) { body.jap-2026 .jap-al-dia p { display: block; font-size: .84rem; padding: 10px 14px 10px 34px; } body.jap-2026 .jap-al-dia p::before, body.jap-2026 .jap-al-dia p::after { left: 14px; } }

/* Aviso de bajas bajo la compra de las mensualidades: legible (no tan apagado como las notas de «pendiente») */
body.jap-2026 .jap-s--noche .jap-nota--baja { opacity: 1; color: rgba(255, 255, 255, .72); font-size: .86rem; margin-top: 4px; }
body.jap-2026 .jap-nota--baja strong { color: #fff; }
body.jap-2026 .jap-nota--baja a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
/* El mismo aviso en la tienda (ficha, «pedido recibido» y «Mi cuenta») */
body.jap-2026 .jap-t-baja { margin: 18px 0; padding: 14px 18px; border-left: 3px solid var(--jap-verde); background: rgba(49, 69, 67, .07); font-size: .92rem; line-height: 1.5; color: var(--jap-tinta); }
body.jap-2026 .jap-t-baja a { color: var(--jap-verde); text-decoration: underline; text-underline-offset: 3px; }

/* Carrito de la cabecera ([jap_carrito]): siempre a la vista, con el número de productos en amarillo */
#masthead .jap-cab-carrito { flex: none; width: auto; }
#masthead .jap-cab-carrito > .elementor-widget-container, #masthead .jap-cab-carrito .elementor-shortcode { margin: 0; padding: 0; line-height: 0; }
.jap-carrito { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--jap-radio, 3px); color: #fff; transition: color .2s ease, background-color .2s ease; }
.jap-carrito:hover, .jap-carrito:focus-visible { color: var(--jap-oro); background: rgba(255, 255, 255, .06); }
.jap-carrito:focus-visible { outline: 2px solid var(--jap-oro); outline-offset: 2px; }
.jap-carrito svg { display: block; width: 23px; height: 23px; }
.jap-carrito-n { position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--jap-oro); color: var(--jap-tinta); font: 700 11px/18px var(--jap-letra, sans-serif); text-align: center; box-shadow: 0 0 0 2px var(--jap-noche); }
.jap-carrito-n[hidden] { display: none; }
.jap-carrito--punto .jap-carrito-n { min-width: 10px; width: 10px; height: 10px; padding: 0; top: 8px; right: 7px; }
@media (prefers-reduced-motion: no-preference) { .jap-carrito-n:not([hidden]) { animation: jap-carrito-entra .35s var(--jap-curva, ease-out); } }
@keyframes jap-carrito-entra { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (max-width: 1024px) {
  #masthead .jap-cab-carrito { order: 2; margin-left: auto; }
  #masthead .jap-cab-campus { margin-left: 0; }
}
@media (max-width: 767px) {
  #masthead .jap-cab > .e-con-inner { gap: 6px; }
  #masthead .jap-cab-logo img { height: 37px; }
  #masthead .jap-cab-campus .elementor-button { padding: 11px 9px; font-size: .66rem; letter-spacing: .07em; }
  .jap-carrito { width: 40px; height: 40px; }
  #masthead .jap-cab .wpr-mobile-toggle { width: 40px; padding: 0 8px; }
}
@media (max-width: 374px) {
  #masthead .jap-cab-logo img { height: 34px; }
  #masthead .jap-cab-campus .elementor-button { padding: 10px 8px; font-size: .62rem; letter-spacing: .06em; }
}

/* Inicio sin precios (03/10): en las cuatro tarjetas, el dato que engancha ocupa el sitio del precio; la explicación
   va debajo, en su propia línea */
body.jap-2026 .elementor .jap-tarjetas .jap-gancho.elementor-widget-text-editor small { display: block; margin-top: 6px; font-size: .86rem; line-height: 1.35; }
body.jap-2026 .elementor .jap-tarjetas .jap-gancho.elementor-widget-text-editor { margin-top: auto; } /* los cuatro datos, a la misma altura */
/* El botón ya no se empuja solo hacia abajo cuando lleva el dato encima: si no, el hueco sobrante (Everest, con la frase
   en una línea) se repartía entre el dato y el botón y quedaba más aire que en las otras tres */
body.jap-2026 .jap-tarjetas > .e-con > .jap-gancho + .elementor-widget-button { margin-top: 0; }
/* Botones de las cuatro tarjetas: un poco más pequeños y siempre en una línea («VER LIBRO RESUMEN JAP» se partía) */
body.jap-2026 .jap-tarjetas--desliza .elementor-button { font-size: .72rem; letter-spacing: .09em; white-space: nowrap; }
/* Portátiles pequeños: cuatro tarjetas en fila quedan muy estrechas (menos de 233 px por dentro, lo que necesita el
   botón del Libro Resumen); mejor dos y dos. La fila tiene que poder partirse en dos líneas. */
@media (min-width: 1025px) and (max-width: 1259px) {
  body.jap-2026 .elementor .jap-tarjetas--desliza.e-con { --flex-wrap: wrap; flex-wrap: wrap; }
  body.jap-2026 .elementor .jap-tarjetas--desliza > .e-con { --width: calc(50% - 10px); width: calc(50% - 10px); }
}

/* Rótulo pequeño encima de un titular (franja de Guardias Jóvenes en Inicio): dice a quién va dirigido el bloque.
   Verde sobre claro; nunca amarillo sobre fondo claro. */
body.jap-2026 .jap-ante p { margin: 0; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--jap-verde); }
body.jap-2026 .jap-ante p::before { content: ""; display: inline-block; width: 22px; height: 2px; margin: 0 10px 4px 0; vertical-align: middle; background: var(--jap-verde); }
body.jap-2026 .jap-s--noche .jap-ante p, body.jap-2026 .jap-s--noche .jap-ante p::before { color: var(--jap-oro); background-color: transparent; }
body.jap-2026 .jap-s--noche .jap-ante p::before { background: var(--jap-oro); }
/* Titular largo de bloque (una frase entera): algo más pequeño que el de un nombre de producto */
body.jap-2026 .jap-s .jap-h2--largo h2.elementor-heading-title { font-size: clamp(1.9rem, 3.6vw, 2.7rem); line-height: 1; }
/* Remate en mayúsculas tras el texto («Si vas en serio a por tu plaza, elige JAP.») */
body.jap-2026 .jap-remate p { margin: 0; font-stretch: 75%; font-weight: 800; font-size: 1.2rem; letter-spacing: .03em; line-height: 1.2; color: var(--jap-tinta); }
body.jap-2026 .jap-s--noche .jap-remate p { color: #fff; }

/* ==========================================================================
   14. Portadas como libros de tapa dura (03/10/2026)
   ========================================================================== */
/* diseno.js mete cada portada vertical en <span class="jap-libro">. El libro tiene tres capas:
   las hojas (::before), que asoman por abajo y por la derecha; la tapa (la imagen); y la bisagra de la tapa dura
   con un brillo suave (::after). El grosor depende del producto: fino (un tema), medio (packs, test, otros), grueso
   (temarios completos). */
body.jap-2026 { --jap-grosor: 7px; }
body.jap-2026 .jap-grosor--fino, body.jap-2026 .product_cat-temas-y-packs { --jap-grosor: 4px; }
body.jap-2026 .jap-grosor--medio,
body.jap-2026 :is(.post-1068, .post-1071, .post-1144, .post-1146, .post-1148) { --jap-grosor: 7px; }   /* los cinco packs */
body.jap-2026 .jap-grosor--grueso, body.jap-2026 .jap-portada,
body.jap-2026 :is(.post-1290, .product_cat-temario-jap, .product_cat-libro-resumen-jap) { --jap-grosor: 11px; }

.jap-libro {
  --g: var(--jap-grosor, 7px);
  position: relative; display: inline-block; vertical-align: top; line-height: 0;
  max-width: calc(100% - var(--g) * .55);
  margin: 0 calc(var(--g) * .55) var(--g) 0;
}
.jap-libro > img {
  position: relative; z-index: 1; display: block; max-width: 100%; height: auto;
  border-radius: 1px 3px 3px 1px !important; box-shadow: 0 1px 1px rgba(21, 27, 25, .18) !important;
  transform: none !important; animation: none !important;
}
/* Las hojas y el lomo. El bloque empieza justo en el borde izquierdo de la tapa (las hojas van cosidas al lomo; si
   empezaba más a la derecha quedaba un escalón, como si no estuvieran unidas: Germán, 03/10) y asoma por abajo y por la
   derecha. Capas, de arriba abajo:
     1. el lomo: abajo a la izquierda, la tapa dura da la vuelta y cierra las hojas (tan ancho como el grosor);
     2. el canto de la derecha, con rayas verticales (hojas vistas de lado);
     3. una sombra suave hacia abajo;
     4. las hojas vistas desde abajo, con rayas horizontales.
   La línea oscura de abajo y de la derecha es el canto de la tapa trasera. */
.jap-libro { --lomo: #1d2421; }
.jap-libro::before {
  content: ""; position: absolute; z-index: 0; top: 2px; left: 0;
  right: calc(var(--g) * -.55); bottom: calc(var(--g) * -1);
  border-radius: 0 3px 3px calc(var(--g) * .45); /* el lomo, redondeado abajo como uno de verdad */
  background:
    linear-gradient(90deg, var(--lomo) 0, #34403b calc(var(--g) * .75), #262e2a calc(var(--g) * 1.1), rgba(38, 46, 42, 0) calc(var(--g) * 1.1 + .5px)),
    repeating-linear-gradient(to right, #e6e0d3 0 1px, #fbf8f1 1px 2px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0) 55%, rgba(120, 104, 80, .16)),
    repeating-linear-gradient(to bottom, #fbf8f1 0 1px, #e6e0d3 1px 2px);
  background-size: 100% 100%, calc(var(--g) * .55) 100%, 100% 100%, 100% 100%;
  background-position: 0 0, right top, 0 0, 0 0;
  background-repeat: no-repeat, no-repeat, no-repeat, repeat;
  box-shadow: 1px 1px 0 0 rgba(29, 36, 33, .85), 0 1px 3px rgba(21, 27, 25, .18), 0 26px 44px -20px rgba(21, 27, 25, .55);
}
/* La bisagra de la tapa dura (franja oscura y clara a la izquierda) y un brillo muy suave en diagonal */
.jap-libro::after {
  content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none; border-radius: 1px 3px 3px 1px;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, .42) 0, rgba(0, 0, 0, .1) 1.3%, rgba(255, 255, 255, .24) 2.6%, rgba(0, 0, 0, .2) 4.4%,
                    rgba(255, 255, 255, .08) 5.8%, rgba(255, 255, 255, 0) 9%),
    linear-gradient(118deg, rgba(255, 255, 255, .14) 0, rgba(255, 255, 255, 0) 42%);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1);
}
/* Donde la portada flotaba o iba girada, ahora lo hace el libro entero (con sus hojas) */
@media (prefers-reduced-motion: no-preference) {
  body.jap-2026 .jap-e-imagen .jap-libro { animation: jap-flota 7s ease-in-out infinite alternate; }
  body.jap-2026 .jap-tarjetas--elegir > .e-con:last-child .jap-e-imagen .jap-libro { animation-duration: 9s; animation-direction: alternate-reverse; }
}
body.jap-2026 .jap-portada .jap-libro { display: block; transform: rotate(3deg); transition: transform .6s var(--jap-curva); }
body.jap-2026 .jap-portada a:hover .jap-libro { transform: rotate(0deg) translateY(-4px); }
body.jap-2026 .jap-tarjetas--compra .elementor-widget-image .jap-libro { display: inline-block; }
body.jap-2026 .jap-tarjetas--compra .elementor-widget-image .elementor-widget-container { text-align: center; }
/* Listados de la tienda: el libro centrado y con aire alrededor (a todo lo ancho no se veían ni las hojas ni la bisagra) */
body.jap-2026 ul.products li.product .jap-libro { display: block; width: 72%; max-width: 260px; margin: 26px auto calc(20px + var(--g)); }
body.jap-2026 ul.products li.product .jap-libro > img { width: 100%; margin: 0 !important; }
body.jap-2026 ul.products li.product a:hover .jap-libro { transform: translateY(-4px); }
body.jap-2026 ul.products li.product .jap-libro { transition: transform .5s var(--jap-curva); }

/* ==========================================================================
   15. Preguntas frecuentes, edición impresa y remates (04/10/2026)
   ========================================================================== */
/* Preguntas frecuentes: el «conmutador» de Elementor, como una lista limpia. Cada pregunta, una línea; el + a la derecha. */
body.jap-2026 .jap-faq { width: 100%; }
body.jap-2026 .jap-faq .elementor-toggle { border-top: 1px solid var(--jap-linea); }
body.jap-2026 .jap-faq .elementor-toggle-item { border-bottom: 1px solid var(--jap-linea); }
body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-title {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  margin: 0; padding: 21px 2px; border: 0; cursor: pointer;
  font-family: var(--jap-letra); font-size: 1.14rem; font-weight: 700; font-stretch: 82%; line-height: 1.25; letter-spacing: 0;
  color: var(--jap-tinta); transition: color .2s ease;
}
body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-title::after { display: none; }
body.jap-2026 .jap-faq .elementor-toggle .elementor-toggle-title { flex: 1 1 auto; order: 1; color: inherit; text-decoration: none; }
body.jap-2026 .jap-faq .elementor-toggle .elementor-toggle-icon {
  order: 2; flex: none; float: none; display: grid; place-items: center; width: 34px; height: 34px;
  border: 1px solid var(--jap-linea); border-radius: 50%; color: var(--jap-verde); transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
body.jap-2026 .jap-faq .elementor-toggle .elementor-toggle-icon :is(i, svg) { width: 12px; height: 12px; font-size: 12px; fill: currentColor; }
body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-title:is(:hover, .elementor-active) { color: var(--jap-verde); }
body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-title:is(:hover, .elementor-active) .elementor-toggle-icon { background: var(--jap-verde); border-color: var(--jap-verde); color: #fff; }
body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-title:focus-visible { outline: 2px solid var(--jap-verde); outline-offset: 2px; }
body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-content {
  padding: 0 52px 24px 2px; border: 0; font-size: 1rem; line-height: 1.65; color: var(--jap-tinta-2);
}
body.jap-2026 .jap-faq .elementor-tab-content p { margin: 0 0 .8em; max-width: 68ch; }
body.jap-2026 .jap-faq .elementor-tab-content p:last-child { margin-bottom: 0; }
body.jap-2026 .jap-faq .elementor-tab-content strong { color: var(--jap-tinta); font-weight: 700; }
body.jap-2026 .jap-faq .elementor-tab-content a { color: var(--jap-verde); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
  body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-title { padding: 17px 0; font-size: 1.04rem; gap: 12px; }
  body.jap-2026 .jap-faq .elementor-toggle .elementor-toggle-icon { width: 30px; height: 30px; }
  body.jap-2026 .jap-faq .elementor-toggle .elementor-tab-content { padding: 0 0 20px; font-size: .97rem; }
}

/* Rótulo pequeño centrado (lema «Conocimientos · Método · Entrenamiento»): sin la rayita de delante */
body.jap-2026 .jap-ante--centro p { text-align: center; letter-spacing: .2em; }
body.jap-2026 .jap-ante--centro p::before { display: none; }

/* Bloque «Edición impresa» de Temario: el libro de anillas, suelto y con su sombra */
body.jap-2026 .jap-impreso-foto { width: 100%; text-align: center; }
body.jap-2026 .jap-impreso-foto img { display: block; width: min(400px, 78%); height: auto; margin: 0 auto; filter: drop-shadow(0 26px 30px rgba(21, 27, 25, .32)); }
@media (prefers-reduced-motion: no-preference) { body.jap-2026 .jap-impreso-foto > .elementor-widget-container { animation: jap-flota 8s ease-in-out infinite alternate; } }
@media (max-width: 767px) { body.jap-2026 .jap-impreso-foto img { width: min(300px, 74%); } }

/* Textos del cliente con dos párrafos dentro de una tarjeta de compra (Guardias Jóvenes) */
body.jap-2026 .jap-tarjetas--compra .jap-texto p { margin: 0 0 .7em; font-size: .97rem; line-height: 1.55; }
body.jap-2026 .jap-tarjetas--compra .jap-texto p:last-child { margin-bottom: 0; }
body.jap-2026 .jap-tarjetas--compra .jap-texto strong { color: var(--jap-tinta); }

/* Preguntas frecuentes: buscador entre las cinco destacadas y las demás (diseno.js, punto 10) */
body.jap-2026 :is(.jap-faq, .jap-faq-busca) [hidden], body.jap-2026 .jap-faq[hidden] { display: none !important; }
body.jap-2026 .jap-faq-busca { display: none; margin: 30px 0 4px; }
.jap-faq-js body.jap-2026 .jap-faq-busca { display: block; }
body.jap-2026 .jap-faq-busca label { display: block; margin: 0 0 12px; font-family: var(--jap-letra); font-size: 1.3rem; font-weight: 800; font-stretch: 75%; line-height: 1.15; color: var(--jap-tinta); }
body.jap-2026 .jap-faq-campo { position: relative; }
body.jap-2026 .jap-faq-campo svg { position: absolute; left: 17px; top: 50%; width: 19px; height: 19px; transform: translateY(-50%); color: var(--jap-verde); pointer-events: none; }
body.jap-2026 .jap-faq-campo input {
  display: block; width: 100%; height: auto; margin: 0; padding: 16px 16px 16px 48px;
  border: 1px solid var(--jap-linea); border-radius: var(--jap-radio, 3px); background: #fff; box-shadow: 0 1px 0 rgba(21, 27, 25, .04);
  font-family: var(--jap-letra); font-size: 16px; line-height: 1.3; color: var(--jap-tinta); -webkit-appearance: none; appearance: none;
}
body.jap-2026 .jap-faq-campo input::placeholder { color: #8A938F; }
body.jap-2026 .jap-faq-campo input:focus { outline: 2px solid var(--jap-verde); outline-offset: 1px; border-color: var(--jap-verde); }
body.jap-2026 .jap-faq-estado { min-height: 1.4em; margin: 12px 0 0; font-size: .9rem; line-height: 1.4; color: var(--jap-tinta-2); }
/* Las de arriba que también coinciden: un botón que sube hasta ellas */
body.jap-2026 .jap-faq-arriba { display: flex; flex-direction: column; gap: 8px; margin: 10px 0 4px; }
body.jap-2026 .jap-faq-busca .jap-faq-sube {
  display: block; width: 100%; padding: 13px 16px; border: 1px solid var(--jap-linea); border-left: 3px solid var(--jap-verde); border-radius: 0;
  background: rgba(49, 69, 67, .06); box-shadow: none; text-align: left; text-transform: none; letter-spacing: 0;
  font-family: var(--jap-letra); font-size: 1rem; font-weight: 700; font-stretch: 82%; line-height: 1.3; color: var(--jap-tinta); cursor: pointer;
}
body.jap-2026 .jap-faq-busca .jap-faq-sube::before { content: "↑"; display: inline-block; margin-right: 10px; color: var(--jap-verde); }
body.jap-2026 .jap-faq-busca .jap-faq-sube:hover { background: rgba(49, 69, 67, .12); color: var(--jap-tinta); }
body.jap-2026 .jap-faq-busca .jap-faq-todas {
  display: inline-block; margin: 2px 0 0; padding: 8px 0; border: 0; border-radius: 0; background: none; box-shadow: none;
  font-family: var(--jap-letra); font-size: .95rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--jap-verde);
  text-decoration: underline; text-underline-offset: 4px; cursor: pointer;
}
body.jap-2026 .jap-faq-busca .jap-faq-todas:hover { background: none; color: var(--jap-tinta); }
body.jap-2026 .jap-faq-busca .jap-faq-wa {
  display: inline-block; margin: 6px 0 0; padding: 13px 20px; border-radius: var(--jap-radio, 3px); background: var(--jap-verde); color: #fff;
  font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; text-decoration: none;
}
body.jap-2026 .jap-faq--resto { margin-top: 6px; }

/* Menú de la cabecera con seis apartados (se añadió «Guardias Jóvenes» el 04/10): en los portátiles más estrechos
   pisaba el logo y el carrito. Entre 1025 y 1199 px, apartados más juntos y letra algo menor; el hueco entre piezas, menor. */
@media (min-width: 1025px) and (max-width: 1199px) {
  #masthead .jap-cab > .e-con-inner { gap: 12px; }
  #masthead .jap-cab .wpr-nav-menu { gap: 0; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item { padding: 10px 8px; font-size: .72rem; letter-spacing: .07em; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item::after { left: 8px; right: 8px; }
  #masthead .jap-cab-logo img { height: 40px; }
  #masthead .jap-cab-campus .elementor-button { padding: 12px 13px; font-size: .7rem; letter-spacing: .1em; }
}

/* 16. Menú con «Test y simulacros», página de «no existe» y aviso de TEST JAP (04/10/2026, por la noche) ---------- */
/* «Inicio» solo se ve en el menú del móvil: en ordenador el logo ya lleva a Inicio, y así cabe «Test y simulacros». */
#masthead .jap-cab .wpr-nav-menu > li.jap-solo-movil { display: none; }
/* El menú es ahora más largo y no cabía con el tamaño de antes (los apartados de dos palabras se partían en dos líneas).
   Cada apartado va siempre en una línea, y el tamaño baja por tramos según el ancho de la pantalla. */
#masthead .jap-cab .wpr-nav-menu .wpr-menu-item { white-space: nowrap; }
@media (min-width: 1300px) {
  #masthead .jap-cab .wpr-nav-menu { gap: 0; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item { padding: 10px 11px; font-size: .76rem; letter-spacing: .1em; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item::after { left: 11px; right: 11px; }
}
@media (min-width: 1140px) and (max-width: 1299px) {
  #masthead .jap-cab .wpr-nav-menu { gap: 0; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item { padding: 10px 8px; font-size: .72rem; letter-spacing: .07em; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item::after { left: 8px; right: 8px; }
}
@media (min-width: 1025px) and (max-width: 1139px) {
  #masthead .jap-cab > .e-con-inner { gap: 10px; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item { padding: 10px 6px; font-size: .68rem; letter-spacing: .05em; }
  #masthead .jap-cab .wpr-nav-menu .wpr-menu-item::after { left: 6px; right: 6px; }
  #masthead .jap-cab-campus .elementor-button { padding: 12px 11px; font-size: .68rem; letter-spacing: .08em; }
}

/* Página de «no existe»: tres salidas debajo del buscador */
/* El recuadro blanco es .error-404; el tema le da el relleno a la pieza de dentro, así que los botones traen el suyo. */
body.jap-doc .error-404 .ast-404-layout-1 { padding-bottom: 30px; }
body.jap-doc .error-404 .jap-404-salidas { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0; padding: 0 16px 48px; background: #fff; }
body.jap-doc .error-404 .jap-404-boton {
  display: inline-flex; align-items: center; padding: 15px 22px; border: 1px solid currentColor; border-radius: var(--jap-radio);
  background: transparent; color: var(--jap-tinta); font-family: var(--jap-letra); font-size: .8125rem; font-weight: 600; line-height: 1;
  letter-spacing: .12em; text-transform: uppercase; text-decoration: none; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
body.jap-doc .error-404 .jap-404-boton:hover,
body.jap-doc .error-404 .jap-404-boton:focus-visible { background: var(--jap-tinta); border-color: var(--jap-tinta); color: var(--jap-papel); }
body.jap-doc .error-404 .jap-404-boton--oro { background: var(--jap-oro); border-color: var(--jap-oro); color: var(--jap-tinta); }
body.jap-doc .error-404 .jap-404-boton--oro:hover,
body.jap-doc .error-404 .jap-404-boton--oro:focus-visible { background: #FFDA45; border-color: #FFDA45; color: var(--jap-tinta); }
@media (max-width: 480px) { body.jap-doc .error-404 .jap-404-salidas { padding-bottom: 24px; } body.jap-doc .error-404 .jap-404-boton { flex: 1 1 100%; justify-content: center; } }

/* Aviso «también online» en la página de test en PDF: quien busca «test» puede querer la plataforma (TEST JAP) */
body.jap-2026 .elementor .jap-tambien.e-con {
  --padding-top: 14px; --padding-bottom: 14px; --padding-left: 20px; --padding-right: 20px;
  justify-content: space-between; border: 1px solid var(--jap-linea); border-left: 3px solid var(--jap-oro); border-radius: var(--jap-radio); background: #fff;
}
body.jap-2026 .jap-tambien p { margin: 0; font-size: 1rem; line-height: 1.45; color: var(--jap-tinta); }
body.jap-2026 .elementor .jap-tambien > .e-con:last-child { align-items: flex-end; }
@media (max-width: 767px) { body.jap-2026 .elementor .jap-tambien > .e-con:last-child { align-items: flex-start; } }

/* Formulario de tarjeta (Stripe). En la copia no se ve (Stripe está apagado): se comprobó con herramientas/ver-tarjeta.js,
   que abre el pago de la web real y le pone este diseño. Stripe coge él solo los colores de la página (rótulos y casillas).
   Aquí solo se quitan los dos marcos blancos que el tema pinta alrededor del formulario y debajo, y el icono de la
   tarjeta se queda en la línea del nombre. */
body.woocommerce-checkout.jap-tienda #payment div.payment_box fieldset { margin: 0; padding: 0; border: 0; }
body.woocommerce-checkout.jap-tienda #payment div.payment_box fieldset + fieldset:not(:empty) { margin-top: 10px; }
body.woocommerce-checkout.jap-tienda #payment ul.payment_methods li label :is(img, svg) { display: inline-block; float: none; width: auto; max-height: 20px; margin: 0 0 0 8px; vertical-align: -4px; }

/* Línea de renovación que el plugin de suscripciones añade al resumen del pedido (carrito y pago) cuando se compra una
   mensualidad. Venía como un titular en inglés («Renewal For TEST JAP · Mensual») con una lista dentro. Se vio por
   primera vez al publicar (06/10/2026): en la copia ese plugin no se carga. Queda como una fila más: «Renovación · 15 € / 30 días». */
body.jap-tienda .wps_recurring_bifurcation_wrapper th h4 { margin: 0; font-size: 0; line-height: 0; }
body.jap-tienda .wps_recurring_bifurcation_wrapper th h4::before { content: "Renovación"; font-family: var(--jap-letra); font-size: 1rem; font-weight: 400; line-height: 1.4; letter-spacing: 0; text-transform: none; color: var(--jap-tinta); }
body.jap-tienda .wps_recurring_bifurcation_wrapper th h4 br { display: none; }
body.jap-tienda .wps_recurring_bifurcation_wrapper td ul { margin: 0; padding: 0; list-style: none; }
body.jap-tienda .wps_recurring_bifurcation_wrapper td li { margin: 0; padding: 0; border: 0; font-size: 1rem; line-height: 1.4; }
body.jap-tienda .wps_recurring_bifurcation_wrapper td li:first-child, body.jap-tienda .wps_recurring_bifurcation_wrapper td li label { display: none; }
body.jap-tienda .wps_recurring_bifurcation_wrapper td .wps_sfw_interval { color: var(--jap-tinta-2); }

/* Botones verdes juntos en el móvil («Ver ejemplo» y las muestras gratuitas, en Temario y Libro Resumen). Estaban forzados
   a ir en una fila sin partir el texto (reglas de arriba, pensadas para una sola muestra); desde que hay dos muestras
   (04/10) no cabían y se montaban unos sobre otros. Lo vio Germán en su móvil el 06/10/2026, recién publicada la web.
   Ahora: se reparten el ancho a partes iguales, el rótulo puede ir en dos líneas, y con tres botones el primero ocupa
   su propia fila. Lo vigila herramientas/prueba-botones.js. */
@media (max-width: 767px) {
  body.jap-2026 .elementor .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde) { --flex-wrap: wrap; flex-wrap: wrap; --gap: 8px; --row-gap: 8px; --column-gap: 8px; gap: 8px; align-items: stretch; }
  body.jap-2026 .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde) > .jap-btn--verde { flex: 1 1 calc(50% - 4px); min-width: 0; width: auto; }
  body.jap-2026 .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde + .jap-btn--verde) > .jap-btn--verde:first-child { flex-basis: 100%; }
  body.jap-2026 .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde) > .jap-btn--verde > .elementor-widget-container { height: 100%; }
  body.jap-2026 .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde) .elementor-button { display: flex; width: 100%; height: 100%; justify-content: center; padding: 11px 10px; font-size: .66rem; line-height: 1.3; letter-spacing: .06em; white-space: normal; text-align: center; text-wrap: balance; }
  body.jap-2026 .jap-s .e-con:has(> .jap-btn--verde + .jap-btn--verde + .jap-btn--verde) > .jap-btn--verde:first-child .elementor-button::after { display: inline; }
}

/* Avisos de la tienda con un enlace dentro de la frase («¿Ya eres cliente? Haz clic aquí para acceder», el error al
   procesar el pedido…). El aviso era una fila flexible para poder poner el botón «Ver carrito» a un lado, y en el móvil
   se invertía el orden para dejar el botón debajo. Pero en un aviso sin botón eso parte la frase en trozos (texto,
   enlace, texto) y en el móvil los ponía al revés: se leía «antes de volver a realizar el pedido. / historial de
   pedidos / Se produjo un error…» (captura de Jose Antonio, 06/10/2026). Ahora solo es fila flexible el aviso que
   lleva botón; los demás son texto normal. Y en el móvil el botón baja debajo del texto sin invertir nada. */
body.jap-tienda #content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error):not(:has(> .button)) { display: block; }
body.jap-tienda #content form.checkout > .woocommerce-NoticeGroup { margin-bottom: 20px; }
@media (max-width: 767px) {
  body.jap-tienda #content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error):has(> .button) { flex-direction: column; }
  body.jap-tienda #content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) > .button { order: 2; }
}
