/* ProMonumenta — Custom CSS overrides and enhancements */

/* Card hover effects */
.pm-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  display: flex;
  flex-direction: column;
}

.pm-card:hover {
  transform: translateY(-4px);
  box-shadow: rgba(0,0,0,0.12) 0px 16px 32px 0px !important;
}

.pm-card .wp-block-post-featured-image img {
  transition: transform 0.4s ease;
}

.pm-card:hover .wp-block-post-featured-image img {
  transform: scale(1.04);
}

/* Category badge on cards */
.pm-card .wp-block-post-terms a {
  display: inline-block;
  background: #C4963A;
  color: #FFFFFF !important;
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 0.25rem 0.6rem;
  border-radius: 3px;
  text-decoration: none !important;
}

/* Navigation link hover */
.pm-nav .wp-block-navigation-item__content:hover {
  color: #C4963A !important;
}

/* Topbar links */
.pm-topbar a {
  color: #C5B090;
  text-decoration: none;
  transition: color 0.2s ease;
}

.pm-topbar a:hover {
  color: #FFFFFF;
}

/* Hero overlay */
.pm-hero .wp-block-cover__background {
  background: linear-gradient(135deg, rgba(42,61,35,0.75) 0%, rgba(42,61,35,0.5) 100%);
}

/* Lista Roja section image */
.pm-lista-roja-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 340px;
}

/* News grid responsive */
@media (max-width: 1024px) {
  .pm-news-grid .wp-block-post-template {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .pm-news-grid .wp-block-post-template {
    grid-template-columns: 1fr !important;
  }

  .pm-hero .wp-block-cover__inner-container {
    padding: 4rem 1.5rem;
  }
}

/* Sticky header shadow on scroll */
.pm-header.is-sticky {
  box-shadow: rgba(0,0,0,0.08) 0px 4px 16px 0px;
}

/* Hazte socio CTA button pulse */
.pm-header-cta .wp-block-button__link {
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.pm-header-cta .wp-block-button__link:hover {
  transform: translateY(-1px);
}

/* Pagination */
.wp-block-query-pagination {
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
}

.wp-block-query-pagination-numbers .page-numbers {
  padding: 0.5rem 0.9rem;
  border: 1px solid #C5B090;
  border-radius: 3px;
  color: #4A6741;
  transition: all 0.2s ease;
}

.wp-block-query-pagination-numbers .page-numbers.current,
.wp-block-query-pagination-numbers .page-numbers:hover {
  background: #2A3D23;
  border-color: #2A3D23;
  color: #FFFFFF;
}

/* Footer columns */
.pm-footer-inner .wp-block-heading {
  border-bottom: 1px solid rgba(197,176,144,0.2);
  padding-bottom: 0.75rem;
  margin-bottom: 1.25rem !important;
}

/* Separator ornament */
.wp-block-separator.is-style-wide {
  border-color: #C5B090 !important;
  opacity: 0.5;
}

/* Search form */
.wp-block-search__inside-wrapper {
  border-radius: 4px;
  overflow: hidden;
}

.wp-block-search__input {
  font-family: var(--wp--preset--font-family--lato) !important;
}

.wp-block-search__button {
  background: #2A3D23 !important;
  color: #FFFFFF !important;
  border: none !important;
  transition: background 0.2s ease;
}

.wp-block-search__button:hover {
  background: #C4963A !important;
}

/* ============================================================
   MVP HOME — secciones visuales (brief rediseño 2026)
   ============================================================ */

/* Hero */
.pm-hero .wp-block-cover__inner-container { width: 100%; }
.pm-hero-accent {
  color: #C4963A;
  display: inline-block;
  margin-top: 0.3em;
}

/* Verbos: Estudia / Divulga / Activa / Defiende */
.pm-verb { text-align: center; }
.pm-verb-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto;
  border-radius: 50%;
  background-color: #F5F0E8;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 34px 34px;
  border: 1px solid #E3D9C6;
  transition: transform 0.25s ease, background-color 0.25s ease;
}
.pm-verb:hover .pm-verb-icon {
  transform: translateY(-4px);
  background-color: #ECE3D2;
}
.pm-icon-estudia  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A6741' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5a2 2 0 0 1 2-2h6v16H5a2 2 0 0 0-2 2z'/%3E%3Cpath d='M21 5a2 2 0 0 0-2-2h-6v16h6a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); }
.pm-icon-divulga  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A6741' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l14-7v16L3 13z'/%3E%3Cpath d='M3 11v2'/%3E%3Cpath d='M17 8a4 4 0 0 1 0 8'/%3E%3C/svg%3E"); }
.pm-icon-activa   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A6741' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='7' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3 20a6 6 0 0 1 12 0'/%3E%3Cpath d='M15 20a5 5 0 0 1 6-4'/%3E%3C/svg%3E"); }
.pm-icon-defiende { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B1A1A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4-3 7-7 8-4-1-7-4-7-8V6z'/%3E%3Cpath d='M9.5 12l1.8 1.8L15 10'/%3E%3C/svg%3E"); }

/* Tarjetas de alerta */
.pm-alert-card { transition: transform 0.25s ease, box-shadow 0.25s ease; height: 100%; }
.pm-alert-card:hover { transform: translateY(-3px); box-shadow: rgba(0,0,0,0.12) 0px 16px 32px 0px !important; }
.pm-alert-campaign a:hover { text-decoration: underline !important; }

/* Placeholder de fotografía patrimonial (motivo de arco) */
.pm-img-placeholder, .pm-map-placeholder, .pm-pub-cover {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  overflow: hidden;
}
.pm-img-placeholder {
  min-height: 420px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M40 180V90a60 60 0 0 1 120 0v90' fill='none' stroke='%23ffffff' stroke-opacity='0.10' stroke-width='10'/%3E%3C/svg%3E") center/220px no-repeat,
    linear-gradient(135deg, #4A6741 0%, #2A3D23 100%);
  box-shadow: rgba(0,0,0,0.15) 0px 14px 30px 0px;
}
.pm-img-tall { min-height: 480px; }

/* Placeholder mapa */
.pm-map-placeholder {
  min-height: 440px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 300'%3E%3Cg fill='none' stroke='%232A3D23' stroke-opacity='0.18' stroke-width='2'%3E%3Cpath d='M40 60l80-20 90 30 120-25v210l-120 25-90-30-80 20z'/%3E%3Cpath d='M120 40v240M210 70v235'/%3E%3C/g%3E%3Cg fill='%238B1A1A'%3E%3Ccircle cx='150' cy='120' r='7'/%3E%3C/g%3E%3Cg fill='%23C4963A'%3E%3Ccircle cx='240' cy='180' r='6'/%3E%3Ccircle cx='90' cy='200' r='6'/%3E%3C/g%3E%3Cg fill='%234A6741'%3E%3Ccircle cx='300' cy='90' r='6'/%3E%3Ccircle cx='180' cy='230' r='6'/%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat,
    #F5F0E8;
  border: 1px solid #C5B090;
  align-items: flex-end;
  padding: 1.2rem;
}
.pm-map-placeholder p { background: rgba(255,255,255,0.85); padding: 0.5rem 1rem; border-radius: 6px; margin: 0; }

/* Chips de filtro del mapa */
.pm-chip {
  display: inline-block;
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 0.78rem !important;
  letter-spacing: 0.04em;
  color: #C5B090 !important;
  border: 1px solid rgba(197,176,144,0.5);
  border-radius: 999px;
  padding: 0.35rem 0.9rem !important;
  margin: 0 !important;
}
.pm-chip-alert { color: #FFFFFF !important; background: #8B1A1A; border-color: #8B1A1A; }

/* Portadas de publicaciones */
.pm-pub-cover {
  aspect-ratio: 3/4;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 260'%3E%3Cpath d='M40 240V120a60 60 0 0 1 120 0v120' fill='none' stroke='%23ffffff' stroke-opacity='0.12' stroke-width='9'/%3E%3C/svg%3E") center/150px no-repeat,
    linear-gradient(160deg, #C5B090 0%, #4A6741 100%);
  box-shadow: rgba(0,0,0,0.12) 0px 10px 22px 0px;
  transition: transform 0.25s ease;
}
.pm-pub-cover:hover { transform: translateY(-5px); }

/* Responsive */
@media (max-width: 900px) {
  .pm-verbs .wp-block-columns,
  .pm-publicaciones .wp-block-columns { flex-wrap: wrap !important; }
  .pm-verbs .wp-block-column { flex-basis: 45% !important; }
  .pm-publicaciones .wp-block-column { flex-basis: 45% !important; }
  .pm-img-placeholder, .pm-img-tall { min-height: 320px; }
}
@media (max-width: 600px) {
  .pm-verbs .wp-block-column,
  .pm-publicaciones .wp-block-column { flex-basis: 100% !important; }
}

/* ============================================================
   FOTOGRAFÍAS REALES (sustituyen placeholders)
   ============================================================ */

/* Hero con foto de fondo + degradado translúcido para legibilidad */
.pm-hero {
  background-image: url("../img/gistredo-eolico.png");
  background-size: cover;
  background-position: center;
}
.pm-hero > .wp-block-cover__background {
  background: linear-gradient(120deg, rgba(31,46,26,0.88) 0%, rgba(42,61,35,0.72) 45%, rgba(74,103,65,0.55) 100%) !important;
}

/* Monumento del mes */
.pm-destacado .pm-img-monumento {
  background: url("../img/torreon-pernia.png") center/cover no-repeat !important;
}

/* Tarjetas de actualidad con foto */
.pm-news-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.4s ease;
}
.pm-card:hover .pm-news-img { transform: scale(1.04); }
.pm-news-medulas    { background-image: url("../img/conferencia-medulas.jpg"); }
.pm-news-hacendera1 { background-image: url("../img/hacendera-1.jpg"); }
.pm-news-hacendera2 { background-image: url("../img/gistredo-eolico.png"); }

/* Badge de categoría estático (tarjetas no dinámicas) */
.pm-cat-badge {
  display: inline-block;
  width: fit-content;
  background: #C4963A;
  color: #FFFFFF !important;
  padding: 0.25rem 0.6rem !important;
  border-radius: 3px;
  margin: 0 !important;
}
.pm-cat-alerta { background: #8B1A1A; }

/* Portada de revista real */
.pm-pub-revista {
  background: url("../img/revista-xviii.jpg") center/cover no-repeat !important;
}

/* Logo de marca en el header (coloca assets/img/logo.png) */
.pm-logo-link { display: inline-block; line-height: 0; }
.pm-logo-img {
  display: inline-block;
  width: 200px;
  height: 66px;
  background-image: url("../img/logo.jpg");
  background-size: contain;
  background-position: left center;
  background-repeat: no-repeat;
  text-indent: -9999px;
  overflow: hidden;
  white-space: nowrap;
}
.pm-footer .pm-logo-img {
  width: 220px;
  height: 110px;
  background-color: #FFFFFF;
  border-radius: 8px;
  padding: 8px 14px;
  background-size: contain;
  background-origin: content-box;
}
@media (max-width: 600px) { .pm-logo-img { width: 150px; height: 50px; } }

/* ============================================================
   RESPONSIVE — header, topbar, overflow y secciones
   ============================================================ */

/* Seguridad anti-desbordamiento horizontal */
html, body { overflow-x: hidden; max-width: 100%; }
img { max-width: 100%; height: auto; }

/* El botón Hazte Socio nunca debe partirse letra a letra */
.pm-header-cta .wp-block-button__link { white-space: nowrap; }
.pm-header-cta { flex-shrink: 0; }

/* ---- TABLET/MÓVIL (<= 960px): hamburguesa activa ---- */
@media (max-width: 960px) {
  /* El header se reorganiza: logo + hamburguesa visibles, CTA queda al lado */
  .pm-header > .wp-block-group {
    flex-wrap: nowrap !important;
    gap: 0.75rem 0.5rem;
    justify-content: space-between;
    align-items: center;
  }
  /* Mostrar el botón hamburguesa (override de @media min-width:600px del core) */
  .pm-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
  /* Ocultar el contenedor inline; queda como overlay al abrir */
  .pm-nav .wp-block-navigation__responsive-container:not(.is-menu-open):not(.has-modal-open) {
    display: none !important;
  }
  /* La CTA "Hazte Socio" sigue visible pero más compacta */
  .pm-header-cta .wp-block-button__link {
    padding: 0.55rem 1rem !important;
    font-size: 0.72rem !important;
  }
}

/* ---- ESCRITORIO (>= 961px): forzar nav inline y ocultar hamburguesa ---- */
@media (min-width: 961px) {
  .pm-nav .wp-block-navigation__responsive-container-open { display: none !important; }
  .pm-nav .wp-block-navigation__responsive-container {
    display: flex !important;
    position: relative !important;
    width: auto !important;
    background: transparent !important;
    padding: 0 !important;
  }
  .pm-nav .wp-block-navigation__container {
    display: flex !important;
    flex-wrap: nowrap;
    gap: 2rem;
  }
}

/* ---- TOPBAR responsive (<= 760px) ---- */
@media (max-width: 760px) {
  .pm-topbar > .wp-block-group {
    flex-wrap: wrap !important;
    justify-content: center;
    gap: 0.35rem 1rem;
    text-align: center;
  }
  .pm-topbar-left { font-size: 0.72rem !important; width: 100%; text-align: center; }
}

/* ---- MÓVIL (<= 600px) ---- */
@media (max-width: 600px) {
  .pm-nav ul { gap: 0.4rem 1rem !important; }
  .pm-nav .wp-block-navigation-item__content { font-size: 0.78rem !important; }

  /* Hero más compacto y legible en móvil */
  .pm-hero { min-height: 520px !important; }
  .pm-hero .wp-block-cover__inner-container > .wp-block-group { padding: 3.5rem 1.25rem !important; }
  .pm-hero-title { font-size: clamp(1.7rem, 7.5vw, 2.3rem) !important; }

  /* Padding lateral general en secciones */
  .pm-verbs, .pm-alertas, .pm-destacado, .pm-mapa,
  .pm-noticias, .pm-publicaciones { padding-left: 1rem; padding-right: 1rem; }

  /* Imágenes destacadas y mapa más bajas */
  .pm-img-placeholder, .pm-img-tall { min-height: 260px !important; }
  .pm-map-placeholder { min-height: 300px !important; }
}

/* ---- Asegura apilado de columnas con anchos fijos (<= 782px core) ---- */
@media (max-width: 781px) {
  .pm-destacado .wp-block-column,
  .pm-mapa .wp-block-column,
  .pm-alertas .wp-block-column { flex-basis: 100% !important; }
  .pm-mapa .wp-block-columns,
  .pm-destacado .wp-block-columns { gap: 2rem !important; }
}

/* ============================================================
   HAMBURGUESA — estilo de marca + overlay
   ============================================================ */
.pm-nav .wp-block-navigation__responsive-container-open {
  background: transparent;
  border: 1px solid #C5B090;
  border-radius: 6px;
  color: #2A3D23 !important;
  padding: 0;
  width: 44px;
  height: 44px;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.pm-nav .wp-block-navigation__responsive-container-open:hover {
  background: #F5F0E8;
  border-color: #2A3D23;
}
.pm-nav .wp-block-navigation__responsive-container-open svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}

/* Overlay abierto: fondo musgo, texto piedra-claro, jerarquía clara */
.pm-nav .wp-block-navigation__responsive-container.is-menu-open {
  background-color: #2A3D23 !important;
  padding: 5rem 1.5rem 2rem !important;
}
.pm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  gap: 1.4rem !important;
  font-size: 1.15rem !important;
  letter-spacing: 0.08em;
}
.pm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  color: #F5F0E8 !important;
  padding: 0.5rem 0;
  display: inline-block;
}
.pm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
  color: #C4963A !important;
}
.pm-nav .wp-block-navigation__responsive-container-close {
  color: #F5F0E8 !important;
  width: 44px;
  height: 44px;
}

/* Bloquear scroll cuando el overlay está abierto */
.has-modal-open { overflow: hidden; }

/* ============================================================
   ACCESIBILIDAD — skip-link, focus, touch targets, reduced-motion
   ============================================================ */

/* Skip-link: oculto hasta tener foco por teclado */
.pm-skip-link {
  position: absolute;
  left: -9999px;
  top: 8px;
  z-index: 100000;
  padding: 0.75rem 1.25rem;
  background: #2A3D23;
  color: #FFFFFF;
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  border: 2px solid #C4963A;
}
.pm-skip-link:focus {
  left: 8px;
  outline: 3px solid #C4963A;
  outline-offset: 2px;
}

/* Focus visible en todos los elementos interactivos (solo teclado) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible,
.wp-block-button__link:focus-visible,
.wp-block-navigation-item__content:focus-visible,
.wp-block-social-link a:focus-visible {
  outline: 3px solid #C4963A !important;
  outline-offset: 3px;
  border-radius: 3px;
}
/* Quitar el outline solo cuando el foco viene del ratón */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible) { outline: none; }

/* Touch targets >= 44x44 px en móvil (WCAG 2.2 AA) */
@media (max-width: 960px) {
  .pm-nav .wp-block-navigation-item__content,
  .pm-topbar a,
  .pm-footer a,
  .wp-block-social-link a {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.6rem;
  }
  .pm-header-cta .wp-block-button__link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}

/* prefers-reduced-motion: anular transiciones/transformaciones */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .pm-card:hover,
  .pm-alert-card:hover,
  .pm-pub-cover:hover,
  .pm-verb:hover .pm-verb-icon,
  .pm-header-cta .wp-block-button__link:hover {
    transform: none !important;
  }
  .pm-card:hover .pm-news-img,
  .pm-card:hover .wp-block-post-featured-image img { transform: none !important; }
}

/* Mejora de contraste para enlaces sobre fondos claros */
a:focus { outline-color: #C4963A; }

/* Visible-only para lectores de pantalla */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================
   BANNER DE COOKIES (RGPD + AEPD)
   Primera capa flotante + modal de preferencias granular.
   ============================================================ */

/* CRÍTICO: el atributo HTML `hidden` debe ganar siempre.
   Sin esto, el `display:flex` del modal lo dejaría siempre visible. */
.pm-cookie-banner[hidden],
.pm-cookie-modal[hidden] { display: none !important; }

.pm-cookie-banner {
  position: fixed;
  left: 1.25rem;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 9999;
  max-width: 520px;
  margin: 0 auto 0 0;
  background: #2A3D23;
  color: #F5F0E8;
  border: 1px solid rgba(196,150,58,0.45);
  border-radius: 14px;
  box-shadow: 0 22px 60px rgba(0,0,0,0.35);
  padding: 1.5rem 1.5rem 1.25rem;
  font-family: var(--wp--preset--font-family--lato);
  animation: pm-cookie-in 0.45s cubic-bezier(0.2,0.7,0.2,1);
}
@keyframes pm-cookie-in {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .pm-cookie-banner { animation: none; }
}

.pm-cookie-title {
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #C4963A;
  margin: 0 0 0.6rem;
}
.pm-cookie-text {
  font-size: 0.92rem;
  line-height: 1.65;
  color: #F5F0E8;
  margin: 0 0 1.1rem;
}
.pm-cookie-link {
  color: #C4963A;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pm-cookie-link:hover { color: #F5F0E8; }

/* Las tres acciones del banner deben ser EQUIVALENTES en jerarquía
   visual (requisito de la AEPD: aceptar y rechazar igual de visibles). */
.pm-cookie-actions {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.6rem;
}
.pm-cookie-btn {
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 0.75rem 0.6rem;
  min-height: 44px;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid #C5B090;
  background: transparent;
  color: #F5F0E8;
  transition: background-color 0.2s ease, transform 0.15s ease, border-color 0.2s ease;
}
.pm-cookie-btn:hover { background: rgba(245,240,232,0.08); border-color: #F5F0E8; }
.pm-cookie-btn-primary {
  background: #C4963A;
  border-color: #C4963A;
  color: #2A3D23;
}
.pm-cookie-btn-primary:hover {
  background: #D9A845;
  border-color: #D9A845;
  color: #2A3D23;
}
.pm-cookie-btn:focus-visible {
  outline: 3px solid #F5F0E8;
  outline-offset: 3px;
}

/* En pantallas estrechas las acciones se apilan */
@media (max-width: 560px) {
  .pm-cookie-banner { left: 0.75rem; right: 0.75rem; bottom: 0.75rem; padding: 1.25rem 1.25rem 1rem; }
  .pm-cookie-actions { grid-template-columns: 1fr; }
}

/* ----- MODAL DE PREFERENCIAS ----- */
.pm-cookie-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.pm-cookie-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(31,46,26,0.78);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.pm-cookie-modal-dialog {
  position: relative;
  width: 100%;
  max-width: 620px;
  max-height: calc(100vh - 3rem);
  overflow-y: auto;
  background: #F5F0E8;
  border-radius: 16px;
  box-shadow: 0 30px 80px rgba(0,0,0,0.4);
  padding: 2.5rem 2rem 2rem;
  font-family: var(--wp--preset--font-family--lato);
  animation: pm-cookie-modal-in 0.35s cubic-bezier(0.2,0.7,0.2,1);
}
@keyframes pm-cookie-modal-in {
  from { opacity: 0; transform: translateY(20px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .pm-cookie-modal-dialog { animation: none; }
}

.pm-cookie-modal-close {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  font-size: 1.6rem;
  line-height: 1;
  color: #2A3D23;
  cursor: pointer;
  border-radius: 50%;
}
.pm-cookie-modal-close:hover { background: rgba(42,61,35,0.08); }
.pm-cookie-modal-close:focus-visible { outline: 3px solid #C4963A; outline-offset: 2px; }

.pm-cookie-modal-title {
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #2A3D23;
  margin: 0 0 0.4rem;
}
.pm-cookie-modal-intro {
  font-size: 0.92rem;
  line-height: 1.65;
  color: #4A6741;
  margin: 0 0 1.5rem;
}

.pm-cookie-category {
  border-top: 1px solid rgba(197,176,144,0.6);
  padding: 1.1rem 0;
}
.pm-cookie-category:last-of-type { border-bottom: 1px solid rgba(197,176,144,0.6); margin-bottom: 1.5rem; }
.pm-cookie-category-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.35rem;
}
.pm-cookie-category h3 {
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 1.05rem;
  font-weight: 600;
  color: #2A3D23;
  margin: 0;
}
.pm-cookie-category p {
  font-size: 0.88rem;
  line-height: 1.55;
  color: #4A6741;
  margin: 0;
}
.pm-cookie-required {
  font-family: var(--wp--preset--font-family--cinzel);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #C5B090;
  background: rgba(74,103,65,0.1);
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
}

/* Toggle accesible (input checkbox visualmente oculto + track/thumb) */
.pm-cookie-toggle { position: relative; display: inline-block; }
.pm-cookie-toggle input {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.pm-cookie-toggle-track {
  display: inline-block;
  width: 46px;
  height: 26px;
  background: #C5B090;
  border-radius: 999px;
  position: relative;
  cursor: pointer;
  transition: background-color 0.25s ease;
}
.pm-cookie-toggle-track::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background: #FFFFFF;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.18);
  transition: transform 0.25s ease;
}
.pm-cookie-toggle input:checked + .pm-cookie-toggle-track { background: #C4963A; }
.pm-cookie-toggle input:checked + .pm-cookie-toggle-track::after { transform: translateX(20px); }
.pm-cookie-toggle input:focus-visible + .pm-cookie-toggle-track {
  outline: 3px solid #C4963A;
  outline-offset: 3px;
}

.pm-cookie-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
}
.pm-cookie-modal-actions .pm-cookie-btn { color: #2A3D23; border-color: #2A3D23; }
.pm-cookie-modal-actions .pm-cookie-btn-primary { color: #FFFFFF; background: #2A3D23; }
.pm-cookie-modal-actions .pm-cookie-btn-primary:hover { background: #4A6741; }

.pm-cookie-modal-foot {
  font-size: 0.8rem;
  color: #4A6741;
  text-align: center;
  margin: 1.25rem 0 0;
}
.pm-cookie-modal-foot a { color: #4A6741; text-decoration: underline; }

/* Bloquear scroll de fondo cuando el modal está abierto */
html.pm-modal-open, html.pm-modal-open body { overflow: hidden; }

/* CTA final (Cada generacion...) - overlay uniforme top-to-bottom para legibilidad
   sobre foto de personas/bandera, mas fuerte abajo donde va el texto y los botones */
.pm-cta-final > .wp-block-cover__background {
  background: linear-gradient(180deg, rgba(31,46,26,0.5) 0%, rgba(20,26,15,0.8) 100%) !important;
}
