/*
Theme Name:   Rebeca Pal
Theme URI:    https://rebecapal.com
Description:  Child theme de Hello Elementor con el system design v3 de Rebeca Pal. Fuentes locales (Manrope, Lora, Nanum Pen Script), tokens medidos en Figma a 375/1280, CPT "libro", plantilla single-libro y carruseles móviles. Header/footer se montan con Elementor Theme Builder (ver README.md).
Author:       Nef / Inventiva
Author URI:   https://rebecapal.com
Template:     hello-elementor
Version:      0.2.2
Requires at least: 6.0
Requires PHP: 7.4
License:      GNU General Public License v3 or later
Text Domain:  rebeca-pal
*/
/* ══════════════════════════════════════════════════════════
   FUENTES LOCALES — @font-face en assets/css/rp-fonts.css
   (Manrope 400-800, Lora 700 + italic, Nanum Pen Script 400;
   latin + latin-ext, font-display:swap). Se encola por separado
   (ver functions.php, rp-fonts) y es lo único que recibe el
   editor de Elementor para no contaminar su interfaz.
   ══════════════════════════════════════════════════════════
/* ══════════════════════════════════════════════════════════
   TOKENS — escala MOBILE (frame 375). Sin clamp(): el diseño
   está fijado en 375 y 1280; lo desktop va en el media 1024.
   ══════════════════════════════════════════════════════════ */
:root{
  /* color */
  --rp-oro:        #B9AE5E;  /* barra del header */
  --rp-oro-txt:    #7D6C3E;  /* bio, títulos de libro, meta, "obras publicadas" */
  --rp-vino:       #55191B;  /* botones */
  --rp-borgona:    #600912;  /* regla bajo "Yo soy" */
  --rp-ciruela:    #3D192E;  /* titulares, cuerpo y fondo del footer */
  --rp-hueso:      #F8F8F6;  /* fondo de secciones, texto sobre vino */
  --rp-blanco:     #FFFFFF;
  --rp-input:      #D9D9D9;  /* campo de contacto */
  --rp-input-txt:  #8E848B;
  --rp-nota-txt:   #432A37;  /* texto de la nota dorada */

  /* tipografía */
  --rp-font-sans:  "Manrope", sans-serif;
  --rp-font-serif: "Lora", serif;
  --rp-font-mano:  "Nanum Pen Script", cursive;

  /* escala mobile */
  --rp-gutter: 25px;                     /* 40px en el footer */

  --rp-h2-size: 40px;   --rp-h2-ls: 5.2px;  --rp-h2-lh: 43px;
  --rp-sub-size: 21px;  --rp-sub-ls: 2.7px;
  --rp-body-size: 15px; --rp-body-ls: 1.95px; --rp-body-lh: 20px;
  --rp-bio-size: 14px;  --rp-bio-ls: 1.8px;   --rp-bio-lh: 20px;
  --rp-libro-size: 20px;
  --rp-meta-size: 15px; --rp-meta-ls: 1.4px;
  --rp-btn-size: 18px;  --rp-btn-h: 38px;     --rp-btn-px: 25px;
  --rp-social-size: 17px;
  --rp-legal-size: 11px;

  --rp-radio-btn: 8px;
  --rp-radio-input: 10px;

  /* transiciones */
  --rp-t-rapida: .2s ease;
  --rp-t-suave:  .35s ease;
}

/* ══════════════════════════════════════════════════════════
   BASE
   ══════════════════════════════════════════════════════════ */
*,*::before,*::after{ box-sizing:border-box; }
html,body{ overflow-x:clip; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--rp-blanco);
  color:var(--rp-ciruela);
  font-family:var(--rp-font-sans);
  font-weight:500;
  font-size:var(--rp-body-size);
  letter-spacing:var(--rp-body-ls);
  line-height:var(--rp-body-lh);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
h1,h2,h3{ margin:0; }

/* contenedor del sistema: ancho 1100, gutter según breakpoint */
.rp-contenedor{
  width:min(1100px, 100% - (var(--rp-gutter) * 2));
  margin-inline:auto;
}

/* ══════════════════════════════════════════════════════════
   UTILIDADES rp-* — usar como CSS Class en widgets/contenedores
   de Elementor. Funcionan sueltos dentro de cualquier contenedor.
   ══════════════════════════════════════════════════════════ */

/* título de sección: YO SOY · LIBROS · FRASES · CONTACTO */
.rp-titulo-seccion{
  font-family:var(--rp-font-sans);
  font-weight:800;
  font-size:var(--rp-h2-size);
  letter-spacing:var(--rp-h2-ls);
  line-height:var(--rp-h2-lh);
  text-transform:uppercase;
  color:var(--rp-ciruela);
}

/* regla borgoña bajo "Yo soy" (5px, sangra al borde izquierdo en móvil) */
.rp-regla{
  display:block;
  height:5px;
  background:var(--rp-borgona);
  margin:13px 35px 0 calc(var(--rp-gutter) * -1);
}

/* botones — el widget Button de Elementor pone las clases rp-btn en el
   wrapper; se estiliza el <a> interno (elementor-button) */
.rp-btn,
.elementor-widget-button.rp-btn .elementor-button{
  display:inline-flex; align-items:center; justify-content:center; gap:.45em;
  height:var(--rp-btn-h);
  padding-inline:var(--rp-btn-px);
  font-family:var(--rp-font-sans);
  font-weight:600;
  font-size:var(--rp-btn-size);
  letter-spacing:0;
  line-height:1;
  border:0; border-radius:var(--rp-radio-btn);
  text-decoration:none; cursor:pointer;
  transition:filter var(--rp-t-rapida), background-color var(--rp-t-rapida), color var(--rp-t-rapida);
}
.rp-btn:hover,
.elementor-widget-button.rp-btn:hover .elementor-button{ filter:brightness(1.15); }
.rp-btn--vino,
.elementor-widget-button.rp-btn--vino .elementor-button{ background:var(--rp-vino); color:var(--rp-hueso); }
.rp-btn--hueso,
.elementor-widget-button.rp-btn--hueso .elementor-button{ background:#F4EFE9; color:var(--rp-ciruela); }
.rp-btn svg{ width:1.05em; height:1.05em; fill:currentColor; }

/* bio ("Nacida un 28…") — sin el <b> en Lora: usa .rp-bio b */
.rp-bio{
  font-weight:500;
  font-size:var(--rp-bio-size);
  letter-spacing:var(--rp-bio-ls);
  line-height:var(--rp-bio-lh);
  color:var(--rp-oro-txt);
}
.rp-bio b{
  font-family:var(--rp-font-serif);
  font-weight:700; font-style:italic;
  font-size:1em; letter-spacing:2.6px;
}

/* título de libro (Lora 700, sin tracking: el del body se hereda y ensancha) */
.rp-libro-titulo{
  font-family:var(--rp-font-serif);
  font-weight:700; font-size:var(--rp-libro-size);
  letter-spacing:0;
  line-height:1.2; text-transform:uppercase;
  color:var(--rp-oro-txt);
}

/* género · año */
.rp-libro-meta{
  margin:13px 0 16px;
  font-weight:700;
  font-size:var(--rp-meta-size); letter-spacing:var(--rp-meta-ls); line-height:1.1;
  color:var(--rp-oro-txt);
}

/* nota adhesiva de Frases.
   En Elementor: contenedor con clase rp-nota → widget Image (portada)
   + contenedor anidado rp-nota__texto (texto, absolute). La rotación
   se puede poner con el control Transform del contenedor o con --rot. */
.rp-nota{
  position:relative;
  width:212px; /* móvil: -30% vs el original */
  margin-inline:auto;
  transform:rotate(var(--rot, 0deg));
}
.rp-nota > img,
.rp-nota .elementor-widget-image img,
.rp-nota img.rp-nota-img{ width:100%; }

/* indicadores de slider */
.rp-puntos{ display:flex; justify-content:center; gap:6.5px; }
.rp-puntos button{
  width:7px; height:7px; padding:0; border:0; border-radius:50%;
  background:rgb(255 255 255 / .55); cursor:pointer;
}
.rp-puntos button[aria-current="true"]{ background:var(--rp-blanco); }
.rp-puntos--tinta button{ background:#CFCBCB; }
.rp-puntos--tinta button[aria-current="true"]{ background:#8C8489; }

/* carrusel móvil (una tarjeta a la vez).
   Marcar el contenedor con data-carrusel y los puntos con data-puntos;
   el JS es assets/js/rp-carrusel.js. En Elementor la pista real es el
   .elementor-container interno (las columnas son los ítems). */
.rp-carrusel,
.rp-carrusel > .elementor-container{
  list-style:none; margin:0; padding:0;
  display:grid; grid-auto-flow:column; grid-auto-columns:100%;
  overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
}
.rp-carrusel::-webkit-scrollbar,
.rp-carrusel > .elementor-container::-webkit-scrollbar{ display:none; }
.rp-carrusel, .rp-carrusel > .elementor-container{
  scroll-behavior:smooth; scroll-snap-stop:always;
}
.rp-carrusel > *,
.rp-carrusel > .elementor-container > .elementor-column{
  scroll-snap-align:start; min-width:0;
}

/* ══════════════ TABLET: el carrusel pasa a grid ══════════════ */
@media (min-width: 768px){
  :root{ --rp-gutter:40px; }
  .rp-regla{ margin:16px 0 0; }
  .rp-carrusel{ overflow:visible; display:block; }
  .rp-carrusel > .elementor-container{
    grid-auto-flow:column; grid-auto-columns:333px; column-gap:20px;
  }
  .rp-nota{ width:100%; margin-inline:0; }

  .rp-hero .rp-puntos{ display:flex; }
}

/* ══════════════ DESKTOP · referencia 1280 ══════════════ */
@media (min-width: 1024px){
  :root{
    --rp-gutter: 90px;
    --rp-sub-size: 25px;  --rp-sub-ls: 3.25px;
    --rp-body-size: 22px; --rp-body-ls: 2.86px; --rp-body-lh: 30px;
    --rp-bio-size: 20px;  --rp-bio-ls: 1.26px;  --rp-bio-lh: 24.5px;
    --rp-libro-size: 20px;
    --rp-meta-size: 15px; --rp-meta-ls: 1.4px;
    --rp-btn-size: 21.25px; --rp-btn-h: 47px;   --rp-btn-px: 24px;
    --rp-social-size: 20px;
  }
}

/* ══════════════════════════════════════════════════════════
   PLANTILLA single-libro.php — réplica de 01-html/voragine.html
   (mobile first)
   ══════════════════════════════════════════════════════════ */
.libro-single{ background:var(--rp-blanco); padding-block:40px 42px; }
.libro-single .rp-contenedor{ text-align:center; }
.libro-single__portada{ width:250px; margin:0 auto 33px; }
.libro-single__portada img{ width:100%; aspect-ratio:250/388; object-fit:cover; }
.libro-single h1{
  font-family:var(--rp-font-sans);
  font-weight:800;
  font-size:39px; letter-spacing:5px; line-height:1.1;
  overflow-wrap:anywhere;
  text-transform:uppercase;
  color:var(--rp-ciruela);
}
.libro-single h1.es-largo{ font-size:28px; letter-spacing:3.6px; }
.libro-single__meta{
  margin:18px 0 0;
  font-weight:700; font-size:15px; letter-spacing:1.95px;
  color:var(--rp-oro-txt);
}
.libro-single__desc{
  margin:36px 0 0;
  text-align:left;
  font-weight:500; font-size:13px; letter-spacing:1.7px; line-height:16px;
  color:var(--rp-ciruela);
}
.libro-single__desc p{ margin:0 0 6px; }
.libro-single__acciones{ margin-top:29px; display:flex; flex-direction:column; align-items:center; gap:32px; }
.libro-single__acciones .rp-btn--hueso{ width:100%; height:29px; font-size:15px; }
.libro-single__acciones .rp-btn--vino{ height:40px; padding-inline:26px; font-size:17px; }

@media (min-width: 1024px){
  .libro-single{ padding-block:111px 113px; }
  .libro-single .rp-contenedor{
    display:grid; grid-template-columns:496px 549px; column-gap:60px;
    justify-content:start; align-items:start; text-align:left;
  }
  .libro-single__portada{ grid-column:1; grid-row:1; width:386px; margin:0 0 34px 49px; }
  .libro-single__portada img{ aspect-ratio:386/600; }
  .libro-single__col-texto{ grid-column:2; grid-row:1 / span 2; }
  .libro-single__acciones{ grid-column:1; grid-row:2; }
  .libro-single h1{ font-size:50px; letter-spacing:6.5px; line-height:1.05; }
  .libro-single h1.es-largo{ font-size:44px; letter-spacing:5.7px; }
  .libro-single__meta{ margin:46px 0 0; font-size:24px; letter-spacing:3.1px; }
  .libro-single__desc{
    margin:36px 0 0;
    font-size:20px; letter-spacing:2.6px; line-height:25px;
  }
  .libro-single__acciones{ display:block; margin:0 0 0 49px; }
  .libro-single__acciones .rp-btn--hueso{ display:none; }  /* en desktop el texto completo está visible */
  .libro-single__acciones .rp-btn--vino{ height:71px; padding-inline:56px; font-size:26px; }
}

/* ══════════════════════════════════════════════════════════
   SOPORTE DE MONTAJE EN ELEMENTOR
   Clases que consumen las plantillas del Theme Builder y la home
   construida en el editor (ver README §6). Portadas de rp.css.
   ══════════════════════════════════════════════════════════ */

/* ── header ──
   Alto medido en Figma: 108px en móvil, 110px en escritorio, con el logo a
   45px y 53px. Se anula el padding propio de la sección y de las columnas de
   Elementor, que era quien inflaba la barra. */
.rp-header{ min-height:108px; padding-block:0; }
.rp-header > .elementor-container{
  width:100%; max-width:1100px; margin-inline:auto;
  min-height:108px;
  justify-content:space-between; align-items:center;
  flex-wrap:nowrap;
}
.rp-header .elementor-column{ width:auto; }
.rp-header .elementor-widget-wrap{ padding-block:0; align-content:center; }
.rp-header .elementor-widget{ margin-block:0; }
.rp-logo{ line-height:0; }
.rp-logo img{ height:45px; width:auto; display:block; }
.rp-nav .elementor-nav-menu--main .elementor-item{
  font-weight:800; font-size:15px; letter-spacing:1.9px; text-transform:uppercase;
  color:var(--rp-ciruela);
}
.rp-nav .elementor-nav-menu--main .elementor-item{
  transition:color var(--rp-t-rapida), opacity var(--rp-t-rapida);
}
.rp-nav .elementor-nav-menu--main .elementor-item:hover{ color:var(--rp-borgona); }
.rp-nav .elementor-menu-toggle{
  color:var(--rp-ciruela);
  background:transparent;
  padding:10px;
  transition:opacity var(--rp-t-rapida);
}
.rp-nav .elementor-menu-toggle:hover{ background:transparent; opacity:.7; }
.rp-nav .elementor-menu-toggle svg{ width:26px; height:26px; fill:currentColor; }

/* panel desplegable: ancho completo bajo la barra dorada, no una cajita */
/* el header es el bloque contenedor y el widget deja de serlo: así el panel
   ocupa el ancho completo sin depender de 100vw ni de transforms */
.rp-header{ position:relative; }
.rp-header .elementor-widget-nav-menu{ position:static; }
.rp-nav .elementor-nav-menu--dropdown{
  position:absolute; top:100%; left:0; right:0; width:auto; max-width:none;
  margin-top:0;
  background:var(--rp-oro);
  border:0;
  border-top:1px solid rgb(61 25 46 / .18);
  box-shadow:0 18px 30px -22px rgb(61 25 46 / .55);
}
.rp-nav .elementor-nav-menu--dropdown .elementor-item{
  justify-content:center;
  padding:18px var(--rp-gutter);
  font-weight:800; font-size:17px; letter-spacing:2.2px;
  text-transform:uppercase;
  color:var(--rp-ciruela);
  background:transparent;
  transition:background var(--rp-t-rapida), color var(--rp-t-rapida);
}
.rp-nav .elementor-nav-menu--dropdown li:not(:last-child) .elementor-item{
  border-bottom:1px solid rgb(61 25 46 / .12);
}
.rp-nav .elementor-nav-menu--dropdown .elementor-item:hover,
.rp-nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{
  background:rgb(61 25 46 / .06);
  color:var(--rp-borgona);
}
/* el toggle de Elementor anima con slideToggle; esto sólo suaviza el fundido */
.rp-nav .elementor-nav-menu__container{ transition:opacity .25s ease; }
.rp-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown{ opacity:1; }

/* ── sub de sección ("Obras publicadas") ── */
.rp-sub{
  display:block; font-weight:700;
  font-size:var(--rp-sub-size); letter-spacing:var(--rp-sub-ls); line-height:1.1;
  text-transform:uppercase; color:var(--rp-oro-txt);
}

/* ── hero: fade slider (3 imágenes apiladas, sin swiper) ── */
.rp-hero{ position:relative; background:var(--rp-blanco); }
.rp-hero-slides{
  position:relative; width:100%; height:0;
  padding-top:54.61%; /* 699/1280 — horizontal; vertical solo <480 */
  overflow:hidden;
}
@media (max-width: 479px){
  .rp-hero-slides{ padding-top:188.27%; } /* 375/706 */
}
.elementor-section.elementor-section-boxed.rp-hero-slides > .elementor-container{ position:absolute; inset:0; max-width:100%; }
.rp-hero-slides .elementor-column{
  position:absolute; inset:0; opacity:0;
  transition:opacity var(--rp-t-suave); pointer-events:none;
}
.rp-hero-slides .elementor-column.is-activo{ opacity:1; pointer-events:auto; }
.rp-hero-slides .elementor-widget-wrap,
.rp-hero-slides .elementor-widget-image,
.rp-hero-slides .elementor-widget-container{ height:100%; }
.rp-hero-slides img{
  width:100%; height:100%; object-fit:cover; object-position:44% center;
}
.rp-hero{ position:relative; }
.rp-hero .rp-puntos{
  position:absolute; left:0; right:0; bottom:19px;
  z-index:3; margin:0;
}
/* sobre la foto los puntos van claros aunque el markup traiga --tinta */
.rp-hero .rp-puntos button{ background:rgb(255 255 255 / .55); }
.rp-hero .rp-puntos button[aria-current="true"]{ background:var(--rp-blanco); }
/* (sin chevrones: solo puntos en los sliders) */

/* ── engine atomic: no aplica anchos de columna (elementor-col-*) ni
   distingue contenedor boxed/full: se fijan a mano ── */
.rp-hero.elementor-section-boxed > .elementor-container,
.rp-hero > .elementor-container{ width:100%; max-width:100%; }
.rp-hero > .elementor-container > .elementor-column{ width:100%; }
.rp-yosoy > .elementor-container,
.rp-libros > .elementor-container,
.rp-frases > .elementor-container,
.rp-footer > .elementor-container{ width:100%; max-width:1100px; margin-inline:auto; }
.rp-yosoy > .elementor-container > .elementor-column,
.rp-libros > .elementor-container > .elementor-column,
.rp-frases > .elementor-container > .elementor-column,
.rp-footer > .elementor-container > .elementor-column,
.libro-single > .elementor-container > .elementor-column{ width:100%; }
.rp-yosoy-grid > .elementor-container,
.rp-footer-grid > .elementor-container,
.rp-ficha-grid > .elementor-container,
.rp-carrusel > .elementor-container{ width:100%; max-width:100%; }

/* footer: contenido flexible + firma auto ── */
.rp-footer-grid > .elementor-container > .elementor-column:first-child{ flex:1 1 auto; width:auto; }
.rp-footer-grid > .elementor-container > .elementor-column:last-child{ flex:0 0 auto; width:auto; }

/* ── yo soy ── */
.rp-yosoy-grid{ position:relative; }
.rp-yosoy-grid .rp-yosoy-foto{ aspect-ratio:375/423; }
.rp-yosoy-grid .rp-yosoy-foto img{ width:100%; height:100%; object-fit:cover; display:block; }
.rp-yosoy-grid .rp-yosoy-parrafos p{ margin:0 0 24px; }
.rp-yosoy-grid .rp-yosoy-parrafos p:last-child{ margin-bottom:0; }
.rp-cabeza{ display:none; } /* solo desktop (se dibuja sobre el borde Yo soy/Libros) */
.rp-cabeza img{ width:308px; max-width:100%; height:auto; display:block; }

/* ── libros ── */
.rp-libros-head{ margin-bottom:46px; }
.rp-libros-head .rp-sub{ margin-top:4px; }
.rp-libros-head .elementor-container{ justify-content:flex-start; align-items:baseline; }
.rp-libros .rp-puntos{ margin-top:26px; }
.rp-frases .rp-puntos{ margin-top:29px; }
.rp-frases .rp-carrusel{ margin-top:64px; }
.rp-libro-card .rp-libro-meta p{ margin:0; }
.rp-bio p{ margin:0; }
.rp-nota-texto p{ margin:0; }
.rp-libro-card{
  text-align:center;
  display:flex; flex-direction:column;
}
.rp-libro-card .rp-libro-titulo{ min-height:2.4em; } /* 2 líneas reservadas: metas y botones alineados */
.rp-libro-card .elementor-button{ margin-top:auto; }
.rp-libro-card .rp-libro-card__media{ width:202px; margin:0 auto 8px; display:block; }
.rp-libro-card .rp-libro-card__media img{ width:100%; aspect-ratio:202/298; object-fit:cover; }

/* ── frases ── */
.rp-frases .rp-titulo-seccion{ text-align:center; }
/* el texto se ancla al wrap (la caja que contiene el papel) y la
   tipografía escala con el ancho de la nota (cqw = % del contenedor) */
.rp-nota .elementor-widget-wrap{
  position:relative;
  padding:0;
  container-type:inline-size;
}
.rp-nota > .elementor-container{ width:100%; max-width:100%; }
.rp-nota .elementor-widget-image,
.rp-nota .elementor-widget-image .elementor-widget-container{ margin:0; }
.rp-nota .rp-nota-texto{
  position:absolute;
  inset:36% 11% 10%;            /* área útil del papel, bajo la pinza */
  display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:var(--rp-font-mano);
  font-weight:400;
  font-size:7.3cqw;             /* = 22px cuando la nota mide 302px */
  letter-spacing:1.02cqw;       /* = 3.08px a 302px */
  line-height:1.05;
  overflow-wrap:break-word;
  color:var(--rp-nota-txt);
}
.rp-nota--vino .rp-nota-texto{ color:var(--rp-hueso); }
.rp-nota--1{ --rot:6.07deg; }
.rp-nota--2{ --rot:-1.68deg; }
.rp-nota--3{ --rot:3.5deg; }

/* ── footer ── */
.rp-footer .rp-titulo-seccion--claro{
  color:var(--rp-blanco); font-size:30px; letter-spacing:3.9px;
}
.rp-form-contacto .elementor-form-fields-wrapper{
  display:flex; flex-direction:column; align-items:flex-start; gap:34px; margin-top:33px;
}
.rp-form-contacto .elementor-field-group{ width:100%; }
.rp-form-contacto .elementor-field{
  width:100%; height:47px; padding-inline:22px;
  font-family:var(--rp-font-sans); font-weight:400;
  font-size:20px; letter-spacing:1.4px;
  border:0; border-radius:var(--rp-radio-input);
  background:var(--rp-input); color:var(--rp-ciruela); outline:none;
}
.rp-form-contacto .elementor-field::placeholder{ color:var(--rp-input-txt); }
.rp-form-contacto .elementor-field-type-submit{ width:auto; }
.rp-form-contacto .elementor-button{
  background:var(--rp-vino); color:var(--rp-hueso);
  font-family:var(--rp-font-sans); font-weight:600; font-size:20px;
  height:47px; padding-inline:31px; letter-spacing:0;
  border-radius:var(--rp-radio-btn);
}
.rp-social-list{ margin-top:33px; list-style:none; display:flex; flex-direction:column; gap:20px; }
.rp-social-list .elementor-icon-list-item a{ display:flex; align-items:center; gap:19px; color:var(--rp-blanco); }
.rp-social-list .elementor-icon-list-icon{
  background:var(--rp-blanco); border-radius:50%;
  width:32px; height:32px; padding:7px;
  display:flex; align-items:center; justify-content:center;
}
.rp-social-list .elementor-icon-list-icon i{ color:var(--rp-ciruela); font-size:17px; }
.rp-social-list .elementor-icon-list-text{ font-weight:500; font-size:var(--rp-social-size); letter-spacing:1.8px; }
.rp-legal{
  margin-top:34px; text-align:center;
  font-weight:400; font-size:var(--rp-legal-size); letter-spacing:0; line-height:19px;
  color:rgb(255 255 255 / .85);
}
.rp-legal p{ margin:0; }
.rp-firma-img .elementor-widget-container{ text-align:center; }
.rp-firma-img img{ width:224px; max-width:100%; margin-inline:auto; }

/* ── ficha de libro (plantilla single) ── */
.rp-ficha-grid{ text-align:center; }
.rp-ficha-grid .rp-ficha-leer .elementor-button{ width:100%; height:29px; font-size:15px; }
.rp-ficha-grid .rp-ficha-comprar .elementor-button{ height:40px; padding-inline:26px; font-size:17px; }

/* ══════════ móvil: orden del grid (display:contents) ══════════ */
@media (max-width: 1279px){
  .rp-yosoy-grid > .elementor-container{ display:grid; grid-template-columns:1fr; }
  .rp-yosoy-grid > .elementor-container > .elementor-column,
  .rp-yosoy-grid > .elementor-container > .elementor-column > .elementor-widget-wrap{ display:contents; }
  .rp-yosoy-grid .rp-yosoy-foto{ width:100%; max-width:none; margin-left:0; }
  @media (max-width: 767px){
    .rp-yosoy-grid .rp-yosoy-foto{
      width:calc(100% + (var(--rp-gutter) * 2));
      margin-left:calc(var(--rp-gutter) * -1);
    }
  }
  .rp-yosoy-grid .rp-yosoy-h2{ order:1; }
  .rp-yosoy-grid .rp-yosoy-regla{ order:2; }
  .rp-yosoy-grid .rp-yosoy-bio{ order:3; }
  .rp-yosoy-grid .rp-yosoy-foto{ order:4; }
  .rp-yosoy-grid .rp-yosoy-parrafos{ order:5; }

  .rp-ficha-grid > .elementor-container{ display:grid; grid-template-columns:1fr; }
  .rp-ficha-grid > .elementor-container > .elementor-column,
  .rp-ficha-grid > .elementor-container > .elementor-column > .elementor-widget-wrap{ display:contents; }
  .rp-ficha-grid .rp-ficha-portada{ order:1; }
  .rp-ficha-grid .rp-ficha-titulo{ order:2; }
  .rp-ficha-grid .rp-ficha-meta{ order:3; }
  .rp-ficha-grid .rp-ficha-desc{ order:4; }
  .rp-ficha-grid .rp-ficha-leer{ order:5; }
  .rp-ficha-grid .rp-ficha-comprar{ order:6; }
}

@media (max-width: 1023px){
  .rp-footer-grid > .elementor-container{ display:grid; grid-template-columns:1fr; }
  .rp-footer-grid > .elementor-container > .elementor-column,
  .rp-footer-grid > .elementor-container > .elementor-column > .elementor-widget-wrap{ display:contents; }
  .rp-footer-grid .rp-f-h2{ order:1; }
  .rp-footer-grid .rp-f-form{ order:2; }
  .rp-footer-grid .rp-f-social{ order:3; }
  .rp-footer-grid .rp-f-firma{ order:4; }
  .rp-footer-grid .rp-f-legal{ order:5; }
}

/* ══════════ desktop ══════════ */
@media (min-width: 1024px){
  .rp-header,
  .rp-header > .elementor-container{ min-height:110px; }
  .rp-logo img{ height:53px; }
  .rp-nav .elementor-nav-menu--main .elementor-item{ font-size:18px; letter-spacing:2.3px; }

  .rp-hero-slides img{ object-position:center 32%; }
  .rp-hero .rp-puntos{ bottom:47px; gap:19px; }
  .rp-hero .rp-puntos button{ width:11px; height:11px; }

  .rp-footer .rp-titulo-seccion--claro{ font-size:40px; letter-spacing:5.2px; }
  .rp-social-list{
    flex-direction:row; justify-content:space-between; gap:0;
    margin-top:33px; padding-bottom:24px;
    border-bottom:1px solid rgb(255 255 255 / .22);
  }
  .rp-firma-img img{ width:245px; margin-right:40px; }
  .rp-legal{ margin-top:12px; }

  /* form nativo en fila: input 376 + botón */
  .rp-form-contacto .elementor-form-fields-wrapper{ display:flex; flex-direction:row; align-items:center; gap:9px; margin-top:24px; }
  .rp-form-contacto .elementor-field-group{ width:auto; flex:1 1 376px; max-width:376px; }
  .rp-form-contacto .elementor-field-type-submit{ flex:0 0 auto; max-width:none; }
}

/* ══════════ desktop grande · referencia 1280 ══════════ */
@media (min-width: 1280px){
  .rp-yosoy-grid > .elementor-container{ display:flex; column-gap:62px; }
  .rp-yosoy-grid > .elementor-container > .elementor-column:first-child{ width:457px; max-width:457px; }
  .rp-yosoy-grid > .elementor-container > .elementor-column:last-child{ width:549px; max-width:549px; }
  .rp-yosoy-grid .rp-yosoy-foto{ aspect-ratio:457/494; margin-top:18px; }
  .rp-yosoy-grid .rp-yosoy-regla{ margin:33px 0 0; width:510px; }
  .rp-yosoy-grid .rp-yosoy-parrafos{ margin-top:33px; }
  .rp-yosoy-grid .rp-yosoy-parrafos p{ margin:0 0 31px; }
  .rp-yosoy-grid .rp-yosoy-bio{ position:absolute; top:589px; left:0; width:423px; margin:0 0 0 13px; }
  .rp-cabeza{
    display:block;
    width:308px; margin:8px 127px -161px auto;
    position:relative; z-index:1;
  }

  .rp-libros-head{ margin-bottom:0; }
  .rp-libros-head .elementor-container{ gap:27px; }
  .rp-libros-head .rp-sub{ margin-top:0; }
  .rp-libros .rp-carrusel > .elementor-container{ grid-auto-columns:333px; column-gap:20px; }
  .rp-libros .rp-carrusel{ margin-top:64px; }
  .rp-libro-card{ text-align:left; }
  .rp-libro-card .rp-libro-card__media{ width:100%; padding:35px 55px; background:var(--rp-hueso); margin:0 0 27px; }
  .rp-libro-card .rp-libro-card__media img{ aspect-ratio:222/342; }

  .rp-frases .rp-titulo-seccion{ text-align:left; }
  .rp-frases .rp-carrusel > .elementor-container{ grid-auto-columns:333px; column-gap:20px; }
  .rp-frases .rp-carrusel{ margin-top:26px; }
  .rp-nota--1, .rp-nota--2, .rp-nota--3{ width:100%; margin:0; }

  .rp-ficha-grid{ text-align:left; }
  .rp-ficha-grid > .elementor-container{ display:flex; column-gap:60px; }
  .rp-ficha-grid > .elementor-container > .elementor-column:first-child{ width:496px; max-width:496px; }
  .rp-ficha-grid > .elementor-container > .elementor-column:last-child{ width:549px; max-width:549px; }
  .rp-ficha-grid .rp-ficha-comprar .elementor-button{ height:71px; padding-inline:56px; font-size:26px; }
  .rp-ficha-grid .rp-ficha-leer{ display:none; }
}

/* ── estados: foco visible con teclado + hover sutil ── */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible,
.rp-puntos button:focus-visible{
  outline:2px solid var(--rp-borgona);
  outline-offset:3px;
  border-radius:2px;
}
.rp-libro-card__media img{
  transition:transform var(--rp-t-suave);
}
.rp-libro-card:hover .rp-libro-card__media img{ transform:scale(1.03); }
.rp-puntos button{
  transition:transform var(--rp-t-rapida), background-color var(--rp-t-rapida);
}
.rp-puntos button:hover{ transform:scale(1.25); }

/* viudas: los titulares cortos no dejan palabra huérfana */
.rp-titulo-seccion,
.libro-single h1,
.rp-libro-titulo{ text-wrap:balance; }

/* ══════════════════════════════════════════════════════════
   BLOG (home.php + single.php) — dentro del sistema
   ══════════════════════════════════════════════════════════ */
.rp-blog{ background:var(--rp-blanco); padding-block:var(--rp-seccion); }
.rp-blog .rp-titulo-seccion{ margin-bottom:48px; }
.rp-blog__grid{
  display:grid; grid-template-columns:1fr; gap:40px;
}
.rp-blog__card{ text-align:left; }
.rp-blog__media{
  display:block; background:var(--rp-hueso);
  padding:20px; margin-bottom:24px;
}
.rp-blog__media img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.rp-blog__titulo{
  font-family:var(--rp-font-sans); font-weight:700;
  font-size:22px; letter-spacing:1.2px; line-height:1.3;
  color:var(--rp-ciruela); text-wrap:balance;
}
.rp-blog__titulo a{ text-decoration:none; }
.rp-blog__titulo a:hover{ color:var(--rp-borgona); }
.rp-blog__meta{
  margin:8px 0 12px;
  font-weight:500; font-size:14px; letter-spacing:1.2px;
  color:var(--rp-oro-txt);
}
.rp-blog__extracto{
  font-weight:500; font-size:15px; letter-spacing:1.2px; line-height:1.6;
  color:var(--rp-texto);
}
.rp-blog__extracto p{ margin:0; }

.rp-post{ background:var(--rp-blanco); padding-block:var(--rp-seccion); }
.rp-post__articulo{ max-width:720px; margin-inline:auto; }
.rp-post__portada{
  margin:0 0 40px;
  background:var(--rp-hueso); padding:20px;
}
.rp-post__portada img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.rp-post__titulo{
  font-family:var(--rp-font-sans); font-weight:800;
  font-size:clamp(28px, 4vw, 44px);
  letter-spacing:3px; line-height:1.1;
  text-transform:uppercase; color:var(--rp-ciruela);
  text-wrap:balance;
}
.rp-post__meta{
  margin:14px 0 28px;
  font-weight:500; font-size:15px; letter-spacing:1.4px;
  color:var(--rp-oro-txt);
}
.rp-post__contenido{
  font-weight:500; font-size:18px; letter-spacing:1.4px; line-height:1.7;
  color:var(--rp-ciruela);
}
.rp-post__contenido p{ margin:0 0 1.4em; }
.rp-post__contenido img{ margin-block:1.4em; }

@media (min-width: 768px){
  .rp-blog__grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:32px; }
}

/* ══════════════════════════════════════════════════════════
   ACCESIBILIDAD
   ══════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .rp-btn,
  .elementor-button.rp-btn,
  .rp-hero-slides .elementor-column,
  .rp-libro-card__media img,
  .rp-puntos button{ transition:none; }
  .rp-carrusel,
  .rp-carrusel > .elementor-container{ scroll-behavior:auto; }
}
