/*
Theme Name:  PDP Child
Theme URI:   https://pisosdeparticulares.es
Template:    generatepress
Author:      Pisos de Particulares
Author URI:  https://pisosdeparticulares.es
Description: Tema hijo de GeneratePress para el portal Pisos de Particulares. Presentación aquí; la lógica en pdp-core.
Version:     0.3.0
Requires at least: 6.8
Requires PHP: 8.3
License:     GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pdp-child
Tags:        real-estate
*/

/* =====================================================================
   SISTEMA DE DISEÑO · Pisos de Particulares · v0.4
   Paleta monocroma verde · una sola tipografía (Inter) · superficies frías
   ===================================================================== */

:root {
	/* Verde de marca. Todos los tonos de texto cumplen WCAG 2.2 AA sobre blanco. */
	--pdp-brand:        #0e6b4a; /* 6.5:1 */
	--pdp-brand-strong: #0a543a; /* 9.0:1 */
	--pdp-brand-deep:   #073d2a; /* 12.3:1 */
	--pdp-brand-soft:   #e4efe9;
	--pdp-brand-tint:   #f2f8f5;

	/* Acento: verde vivo para resaltar. Antes era terracota; ahora la paleta es monocroma. */
	--pdp-accent:        #0f7d55; /* 5.1:1 */
	--pdp-accent-strong: #0a6243;
	--pdp-accent-deep:   #084e36;
	--pdp-accent-soft:   #dff0e7;

	/* Grises de tinte frío (antes cálidos) para que el verde sea el único color. */
	--pdp-ink:        #16211c; /* 16.6:1 */
	--pdp-ink-soft:   #38453f; /* 10.0:1 */
	--pdp-ink-muted:  #5d6b64; /*  5.6:1 */
	--pdp-ink-faded:  #8c968f;
	--pdp-ink-invert: #ffffff;

	--pdp-surface:        #ffffff;
	--pdp-surface-alt:    #f5f8f6;
	--pdp-surface-sunken: #eaf1ed;
	--pdp-border:         #dde6e1;
	--pdp-border-soft:    #edf2ef;
	/* Borde de campos de formulario: 3:1 frente al blanco (WCAG 2.2 1.4.11). */
	--pdp-border-input:   #7e8a84;

	/* Azul verdoso: única variación de matiz, para separar alquiler de venta. */
	--pdp-alquiler:      #0b5f6b;
	--pdp-alquiler-soft: #e2f0f2;

	--pdp-success:      #0e6b4a;
	--pdp-success-soft: #dcefe4;
	--pdp-warning:      #8a5a00;
	--pdp-warning-soft: #fdf1d8;
	--pdp-danger:       #9c2f1a;
	--pdp-danger-soft:  #fbe4de;

	/* Una sola familia: más limpio, más rápido y más profesional que mezclar serif y sans. */
	--pdp-font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--pdp-font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

	--pdp-radius-sm: 8px;
	--pdp-radius:    14px;
	--pdp-radius-lg: 22px;
	--pdp-radius-pill: 999px;
	--pdp-shadow-xs: 0 1px 2px rgba( 20, 40, 30, 0.04 );
	--pdp-shadow-sm: 0 2px 8px rgba( 20, 40, 30, 0.06 );
	--pdp-shadow:    0 8px 24px rgba( 20, 40, 30, 0.09 );
	--pdp-shadow-lg: 0 20px 50px rgba( 20, 40, 30, 0.16 );

	--pdp-container: 1220px;
	--pdp-container-narrow: 760px;
}

/* -------- Base ------------------------------------------------------- */

body, button, input, select, textarea {
	font-family: var(--pdp-font-body);
	color: var(--pdp-ink);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body { background: var(--pdp-surface-alt); line-height: 1.65; font-size: 1.02rem; }

/* Con una sans la jerarquía la marcan el peso y el interletrado, no la familia. */
h1, h2, h3, h4, h5, h6, .entry-title {
	font-family: var(--pdp-font-display);
	color: var(--pdp-ink);
	line-height: 1.2;
	letter-spacing: -0.021em;
	font-weight: 700;
}
h3, h4, h5, h6 { letter-spacing: -0.012em; font-weight: 600; }

a { color: var(--pdp-brand); text-decoration: none; transition: color 0.15s ease; }
a:hover, a:focus-visible { color: var(--pdp-brand-strong); }

img { max-width: 100%; height: auto; }
::selection { background: var(--pdp-brand); color: #fff; }

.site, .site-content { background: var(--pdp-surface-alt); }
.site-content { padding-block: 3rem; }

.grid-container, .inside-article,
.site-header .inside-header,
.site-footer .inside-site-info,
.site-footer .footer-widgets-container { max-width: var(--pdp-container); }

.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation {
	background: var(--pdp-surface);
	padding: 2.5rem 2.75rem;
	border: 1px solid var(--pdp-border-soft);
	border-radius: var(--pdp-radius-lg);
	box-shadow: var(--pdp-shadow-xs);
	margin-bottom: 2rem;
}

.entry-title { font-size: clamp( 1.8rem, 2.6vw, 2.5rem ); margin: 0 0 1.25rem; }

/* -------- Header ---------------------------------------------------- */

.site-header {
	background: rgba( 255, 255, 255, 0.92 );
	backdrop-filter: saturate( 1.3 ) blur( 8px );
	border-bottom: 1px solid var(--pdp-border-soft);
	box-shadow: var(--pdp-shadow-xs);
}

.site-branding .main-title a, .site-branding .main-title {
	font-family: var(--pdp-font-display);
	color: var(--pdp-ink);
	font-weight: 700;
	letter-spacing: -0.025em;
}
.main-title { font-size: 1.35rem !important; line-height: 1.15; }
.site-branding .main-title a { white-space: nowrap; }
.site-header .inside-header { padding-block: 0.85rem; }

/* Logo: isotipo (la casa) + nombre de marca en verde profundo. El texto del
   enlace se mantiene para lectores de pantalla y como nombre del enlace a la
   portada; el isotipo va como marca gráfica a su izquierda. */
.site-branding .main-title a {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	color: var(--pdp-brand-deep);
}
.site-branding .main-title a::before {
	content: "";
	flex: 0 0 auto;
	width: 2.1em;
	height: 2.1em;
	background: url( "assets/img/isotipo.svg" ) center / contain no-repeat;
}

.main-navigation .main-nav ul li a {
	font-family: var(--pdp-font-body);
	font-weight: 500;
	font-size: 0.98rem;
	color: var(--pdp-ink-soft);
	padding: 1rem 0.72rem;
	transition: color 0.15s ease;
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li a:focus-visible { color: var(--pdp-brand); background: transparent; }

.main-navigation .main-nav ul li.pdpes-nav-login a { color: var(--pdp-brand) !important; font-weight: 600; }

.main-navigation .main-nav ul li.pdpes-nav-cta a {
	color: var(--pdp-ink-invert) !important;
	background: var(--pdp-brand);
	border-radius: var(--pdp-radius-pill);
	padding: 0.55rem 1.05rem;
	margin: 0.45rem 0 0.45rem 0.5rem;
	font-weight: 600;
	box-shadow: none;
	transition: background 0.15s ease, box-shadow 0.15s ease;
}
.main-navigation .main-nav ul li.pdpes-nav-cta a:hover,
.main-navigation .main-nav ul li.pdpes-nav-cta a:focus-visible {
	background: var(--pdp-brand-strong);
	color: var(--pdp-ink-invert) !important;
	box-shadow: 0 4px 12px rgba( 14, 107, 74, 0.26 );
}

/* Cabecera con navegación flotante a la derecha: cuando el usuario inicia
   sesión aparecen más enlaces (Mis anuncios, Salir) + el botón «Publicar
   anuncio», y entre ~769 y ~1120 px ya no caben en la misma línea que el
   logo. En ese tramo bajamos todo el menú a su propia fila bajo el logo
   (patrón nativo de GeneratePress para navegación flotante), para que el
   botón no salte de línea ni se solape con la marca. Por debajo de 769 px
   entra el menú hamburguesa del tema. */
@media ( min-width: 769px ) and ( max-width: 1120px ) {
	.site-header .inside-header { flex-wrap: wrap; }
	.site-header #site-navigation { flex: 1 0 100%; }
	.site-header #site-navigation .main-nav > ul { justify-content: flex-start; }
}

/* -------- Footer ---------------------------------------------------- */

.site-footer { background: var(--pdp-brand-deep); color: #cddbd2; }
.site-footer a { color: #e7efe9; }
.site-footer a:hover { color: #fff; }
/* El fondo oscuro se repite en los bloques con texto del pie para que el
   cálculo de contraste (axe/WCAG 2.2 AA) lo resuelva contra el verde oscuro
   y no contra el body; GeneratePress pinta .site-info en claro por defecto. */
.site-info { padding: 1.75rem 0; font-size: 0.92rem; color: #cddbd2;
	background: var(--pdp-brand-deep); }

/* -------- Botones --------------------------------------------------- */

.pdpes-btn, .wp-block-button__link,
input[type="submit"], button[type="submit"]:not(.search-submit) {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	padding: 0.8rem 1.4rem;
	border: 1px solid var(--pdp-brand);
	border-radius: var(--pdp-radius-pill);
	background: var(--pdp-brand);
	color: var(--pdp-ink-invert);
	font-family: var(--pdp-font-body);
	font-size: 1rem; font-weight: 600; line-height: 1.2;
	text-decoration: none; cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.08s ease, box-shadow 0.15s ease;
}
.pdpes-btn:hover, .wp-block-button__link:hover,
input[type="submit"]:hover, button[type="submit"]:not(.search-submit):hover {
	background: var(--pdp-brand-strong); border-color: var(--pdp-brand-strong);
	color: var(--pdp-ink-invert); transform: translateY( -1px ); box-shadow: var(--pdp-shadow-sm);
}
.pdpes-btn:focus-visible { outline: 2px solid var(--pdp-brand); outline-offset: 2px; }
.pdpes-btn:active { transform: translateY( 0 ); }

.pdpes-btn-ver, .pdpes-btn-editar, .pdpes-btn-cancelar, .pdpes-btn-outline {
	background: var(--pdp-surface); color: var(--pdp-brand); border-color: var(--pdp-border);
}
.pdpes-btn-ver:hover, .pdpes-btn-editar:hover, .pdpes-btn-cancelar:hover, .pdpes-btn-outline:hover {
	background: var(--pdp-brand-soft); color: var(--pdp-brand-strong); border-color: var(--pdp-brand-soft);
}
.pdpes-btn-baja { border-color: var(--pdp-danger); background: var(--pdp-surface); color: var(--pdp-danger); }
.pdpes-btn-baja:hover { background: var(--pdp-danger); color: #fff; border-color: var(--pdp-danger); }
.pdpes-btn-accent { background: var(--pdp-brand); border-color: var(--pdp-brand); box-shadow: 0 4px 14px rgba( 14, 107, 74, 0.26 ); }
.pdpes-btn-accent:hover { background: var(--pdp-brand-strong); border-color: var(--pdp-brand-strong); }

/* Sobre las franjas verdes oscuras el botón principal se invierte: blanco con texto verde.
   Es lo que antes hacía el terracota, pero sin salirse de la paleta. */
.pdpes-hero-cta .pdpes-btn-accent,
.pdpes-cta-final .pdpes-btn-accent,
.pdpes-pasos-cta .pdpes-btn-accent {
	border-color: var(--pdp-surface);
	background: var(--pdp-surface);
	color: var(--pdp-brand-strong);
	box-shadow: 0 6px 20px rgba( 0, 0, 0, 0.18 );
}
.pdpes-hero-cta .pdpes-btn-accent:hover,
.pdpes-cta-final .pdpes-btn-accent:hover,
.pdpes-pasos-cta .pdpes-btn-accent:hover {
	border-color: var(--pdp-brand-soft);
	background: var(--pdp-brand-soft);
	color: var(--pdp-brand-deep);
}

/* -------- Formularios ----------------------------------------------- */

input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="number"], input[type="search"], input[type="url"], select, textarea {
	width: 100%; max-width: 100%;
	padding: 0.75rem 0.95rem;
	border: 1px solid var(--pdp-border);
	border-radius: var(--pdp-radius-sm);
	background: var(--pdp-surface);
	color: var(--pdp-ink);
	font-family: var(--pdp-font-body);
	font-size: 1rem; line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
input:focus, select:focus, textarea:focus {
	border-color: var(--pdp-brand); outline: none;
	box-shadow: 0 0 0 3px rgba( 27, 107, 69, 0.15 );
}
label { display: block; margin-bottom: 0.3rem; font-weight: 600; font-size: 0.92rem; color: var(--pdp-ink-soft); }

/* -------- Widgets --------------------------------------------------- */

.widget {
	background: var(--pdp-surface); padding: 1.5rem;
	border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius-lg);
	box-shadow: var(--pdp-shadow-xs); margin-bottom: 1.5rem;
}
.widget-title {
	font-family: var(--pdp-font-display); font-size: 1.1rem; font-weight: 600;
	margin: 0 0 0.75rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--pdp-brand-soft);
}

/* =====================================================================
   COMPONENTES PROPIOS (.pdpes-)
   ===================================================================== */

.pdpes-aviso {
	background: var(--pdp-brand-soft); border: 1px solid rgba( 27, 107, 69, 0.18 );
	color: var(--pdp-brand-strong); padding: 1.5rem 1.75rem; border-radius: var(--pdp-radius-lg);
}
.pdpes-aviso p { margin: 0 0 0.5rem; }
.pdpes-aviso p:last-child { margin-bottom: 0; }
.pdpes-aviso.pdpes-error { background: var(--pdp-danger-soft); border-color: rgba( 163, 52, 30, 0.22 ); color: var(--pdp-danger); }
.pdpes-aviso a { color: inherit; text-decoration: underline; font-weight: 600; }

.pdpes-form { max-width: 34rem; }
.pdpes-form .pdpes-campo { margin: 0 0 1.1rem; }
.pdpes-form-botones { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }

.pdpes-campo-checkbox { display: grid; grid-template-columns: auto 1fr; gap: 0.7rem; align-items: start; margin: 0.7rem 0; }
.pdpes-campo-checkbox input[type="checkbox"] { width: 1.2rem; height: 1.2rem; margin-top: 0.25rem; accent-color: var(--pdp-brand); }
.pdpes-campo-checkbox label { font-weight: 400; font-size: 0.95rem; color: var(--pdp-ink-muted); margin: 0; cursor: pointer; }
/* Subrayado en los enlaces incrustados en el texto de la etiqueta: el color no
   puede ser el único distintivo (WCAG 2.2 AA, enlace-en-texto). */
.pdpes-campo-checkbox label a { text-decoration: underline; }

.pdpes-estado { min-height: 1.25rem; margin: 0 0 1rem; color: var(--pdp-success); font-weight: 600; font-size: 0.95rem; }

/* --- Panel "Mis anuncios" --- */
.pdpes-mis-anuncios { max-width: var(--pdp-container); margin: 0 auto; }
.pdpes-usuario {
	display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; justify-content: space-between;
	margin: 0 0 2rem; padding: 1.1rem 1.5rem; background: var(--pdp-surface);
	border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius-lg);
	box-shadow: var(--pdp-shadow-xs); font-weight: 500;
}
.pdpes-usuario strong { font-family: var(--pdp-font-display); }
.pdpes-salir { color: var(--pdp-brand); font-weight: 600; }

.pdpes-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.75rem; grid-template-columns: 1fr; }
@media ( min-width: 48rem ) { .pdpes-lista { grid-template-columns: repeat( 2, 1fr ); } }
@media ( min-width: 72rem ) { .pdpes-lista { grid-template-columns: repeat( 3, 1fr ); } }

.pdpes-tarjeta {
	background: var(--pdp-surface); padding: 1.25rem;
	border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius-lg);
	box-shadow: var(--pdp-shadow-xs); transition: box-shadow 0.25s ease, transform 0.25s ease;
	overflow: hidden; display: flex; flex-direction: column; gap: 0.5rem;
}
.pdpes-tarjeta:hover { box-shadow: var(--pdp-shadow); transform: translateY( -3px ); }
.pdpes-portada { display: block; width: calc( 100% + 2.5rem ); margin: -1.25rem -1.25rem 0.9rem; height: 210px; object-fit: cover; background: var(--pdp-surface-sunken); }
.pdpes-tarjeta-cabecera { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: space-between; }
.pdpes-titulo { margin: 0; font-size: 1.2rem; font-weight: 600; }
.pdpes-estado-etiqueta {
	padding: 0.22rem 0.7rem; border-radius: var(--pdp-radius-pill); font-size: 0.72rem; font-weight: 700;
	letter-spacing: 0.04em; text-transform: uppercase; background: var(--pdp-border-soft); color: var(--pdp-ink-muted);
	font-family: var(--pdp-font-body);
}
.pdpes-estado-publish { background: var(--pdp-success-soft); color: var(--pdp-success); }
.pdpes-estado-pending { background: var(--pdp-warning-soft); color: var(--pdp-warning); }
.pdpes-estado-draft, .pdpes-estado-trash { background: var(--pdp-border-soft); color: var(--pdp-ink-muted); }
.pdpes-meta { margin: 0.25rem 0 0; color: var(--pdp-ink-muted); font-size: 0.95rem; }
.pdpes-fotos-contador { margin: 0.25rem 0 0.5rem; color: var(--pdp-ink-faded); font-size: 0.85rem; }
.pdpes-acciones { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: auto; padding-top: 0.85rem; }

.pdpes-tarjeta .pdpes-form { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--pdp-border); max-width: none; }
.pdpes-bloque-fotos, .pdpes-bloque-direccion { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--pdp-border); }
.pdpes-bloque-fotos h4, .pdpes-bloque-direccion h4 { margin: 0 0 0.5rem; font-size: 1.02rem; }
.pdpes-galeria { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat( auto-fill, minmax( 88px, 1fr ) ); gap: 0.5rem; }
.pdpes-miniatura { position: relative; aspect-ratio: 1; border-radius: var(--pdp-radius-sm); overflow: hidden; background: var(--pdp-surface-sunken); border: 1px solid var(--pdp-border-soft); }
.pdpes-miniatura img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pdpes-principal { position: absolute; left: 4px; bottom: 4px; padding: 2px 7px; background: var(--pdp-brand-strong); color: #fff; font-size: 0.7rem; font-weight: 600; border-radius: 4px; }
.pdpes-btn-borrar-foto { position: absolute; top: 4px; right: 4px; width: 1.6rem; height: 1.6rem; border: 0; border-radius: 50%; background: rgba( 163, 52, 30, 0.92 ); color: #fff; font-size: 1rem; line-height: 1; cursor: pointer; padding: 0; }
.pdpes-btn-borrar-foto:hover, .pdpes-btn-borrar-foto:focus-visible { background: var(--pdp-danger); outline: 2px solid #fff; outline-offset: 1px; }
.pdpes-input-fotos { position: absolute; left: -9999px; }
.pdpes-mini-mapa { margin-top: 0.75rem; height: 220px; border-radius: var(--pdp-radius); overflow: hidden; border: 1px solid var(--pdp-border); background: var(--pdp-surface-sunken); }
.pdpes-sin-fotos { grid-column: 1 / -1; color: var(--pdp-ink-faded); font-style: italic; margin: 0; padding: 1rem; border: 1px dashed var(--pdp-border); border-radius: var(--pdp-radius); text-align: center; }

/* --- Alta --- */
.pdpes-alta { max-width: 38rem; margin: 0 auto; background: var(--pdp-surface); padding: 2.5rem 2.75rem; border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow); }

/* --- Contacto --- */
.pdpes-contacto { max-width: 38rem; margin: 2.5rem 0; padding: 2rem; background: var(--pdp-surface); border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow-sm); }
.pdpes-contacto-titulo { margin: 0 0 0.4rem; font-size: 1.4rem; }
.pdpes-contacto-ayuda { margin: 0 0 1.4rem; color: var(--pdp-ink-muted); font-size: 0.95rem; }
.pdpes-contacto textarea { min-height: 7rem; resize: vertical; }
.pdpes-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* --- Legales --- */
.pdpes-documento-legal { max-width: var(--pdp-container-narrow); margin: 0 auto; font-size: 1.05rem; line-height: 1.8; color: var(--pdp-ink-soft); }
.pdpes-documento-legal h2 { margin-top: 2.5rem; font-size: 1.5rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--pdp-brand-soft); }
.pdpes-documento-legal ul { padding-left: 1.5rem; }
.pdpes-legal-borrador { padding: 1rem 1.25rem; background: var(--pdp-warning-soft); border-left: 4px solid var(--pdp-warning); color: #5a4100; border-radius: var(--pdp-radius-sm); }
.pdpes-legal-fecha { margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--pdp-border); color: var(--pdp-ink-faded); font-size: 0.9rem; font-style: italic; }
.pdpes-documento-legal table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.95rem; }
.pdpes-documento-legal th, .pdpes-documento-legal td { padding: 0.6rem 0.75rem; border: 1px solid var(--pdp-border); text-align: left; vertical-align: top; }
.pdpes-documento-legal th { background: var(--pdp-surface-alt); font-weight: 600; }

.pdpes-mapa { margin: 2rem 0; height: 360px; border-radius: var(--pdp-radius-lg); overflow: hidden; background: var(--pdp-surface-sunken); border: 1px solid var(--pdp-border); }

/* =====================================================================
   PORTADA
   ===================================================================== */

.pdpes-page-portada .site-content { padding-block: 0; }
.pdpes-page-portada .inside-article,
.pdpes-page-portada .separate-containers .inside-article { background: transparent; border: 0; box-shadow: none; padding: 0; border-radius: 0; }
.pdpes-page-portada .entry-content > *:not(.pdpes-hero):not(.pdpes-pasos-banda) { max-width: var(--pdp-container); margin-left: auto; margin-right: auto; padding-inline: clamp( 1rem, 3vw, 2rem ); }

/* --- Hero --- */
.pdpes-hero { position: relative; min-height: 560px; display: flex; align-items: center; justify-content: center; padding: 5rem 1.5rem; color: var(--pdp-ink-invert); text-align: center; background: var(--pdp-brand-deep); }
.pdpes-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
/* Capa de oscurecido: calibrada para una foto clara (pueblo blanco) de modo que
   el texto blanco mantenga contraste AA. Verde de marca con alfa alto + un refuerzo
   radial hacia el centro, donde se concentra el texto. */
.pdpes-hero::after {
	content: "";
	position: absolute; inset: 0;
	background:
		radial-gradient( 90% 80% at 50% 52%, rgba( 7, 43, 29, 0.55 ), transparent 72% ),
		linear-gradient( 180deg, rgba( 7, 43, 29, 0.74 ) 0%, rgba( 7, 43, 29, 0.66 ) 45%, rgba( 7, 43, 29, 0.84 ) 100% );
}
.pdpes-hero-inner { position: relative; z-index: 2; max-width: 820px; }
.pdpes-hero-eyebrow { display: inline-block; margin-bottom: 1.25rem; padding: 0.4rem 1rem; border-radius: var(--pdp-radius-pill); background: rgba( 255, 255, 255, 0.14 ); border: 1px solid rgba( 255, 255, 255, 0.25 ); font-size: 0.85rem; font-weight: 600; letter-spacing: 0.04em; backdrop-filter: blur( 4px ); }
.pdpes-hero h1 { color: #fff; font-size: clamp( 2.3rem, 4.6vw, 3.6rem ); margin: 0 0 1.25rem; line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; text-shadow: 0 2px 24px rgba( 0, 0, 0, 0.25 ); }
.pdpes-hero h1 em { font-style: normal; color: #8fe3ba; }
.pdpes-hero-sub { font-size: clamp( 1.1rem, 1.6vw, 1.35rem ); margin: 0 auto 2.25rem; max-width: 620px; color: #fff; line-height: 1.5; text-shadow: 0 1px 12px rgba( 0, 0, 0, 0.35 ); }

/* Pestañas Venta / Alquiler del hero */
.pdpes-hero-ops { margin: 0 auto 0.5rem; }
.pdpes-op-tabs {
	display: inline-flex; gap: 0.35rem; margin-bottom: 1.25rem;
	padding: 0.3rem; border-radius: var(--pdp-radius-pill);
	background: rgba( 255, 255, 255, 0.12 ); border: 1px solid rgba( 255, 255, 255, 0.24 );
	backdrop-filter: blur( 4px );
}
.pdpes-op-tab {
	border: 0; background: transparent; color: #fff; cursor: pointer;
	font-family: inherit; font-size: 1rem; font-weight: 600;
	padding: 0.5rem 1.6rem; border-radius: var(--pdp-radius-pill);
	transition: background 0.2s ease, color 0.2s ease;
}
.pdpes-op-tab:hover { background: rgba( 255, 255, 255, 0.16 ); }
.pdpes-op-tab.is-active { background: #fff; color: var(--pdp-brand-deep); }
.pdpes-op-tab:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.pdpes-op-panel.pdpes-hero-sub { margin-top: 0; }
.pdpes-op-panel[hidden] { display: none; }

.pdpes-buscador { display: grid; grid-template-columns: 1fr; gap: 0.4rem; max-width: 720px; margin: 0 auto; padding: 0.5rem; background: var(--pdp-surface); border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow-lg); }
@media ( min-width: 44rem ) { .pdpes-buscador { grid-template-columns: 1fr 1fr auto; } }
.pdpes-buscador select { border: 0; background: transparent; padding: 0.85rem 1rem; color: var(--pdp-ink); font-size: 1rem; font-weight: 500; border-radius: var(--pdp-radius-sm); }
.pdpes-buscador select:focus { box-shadow: 0 0 0 2px var(--pdp-brand-soft); outline: none; }
.pdpes-buscador > button { margin: 0; padding: 0.85rem 1.75rem; }

/* Selector de zona propio (desplegable con ciudades, localidades y conteo) */
.pdpes-zonapicker { position: relative; display: flex; }
.pdpes-zonapicker-boton {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
	border: 0; background: transparent; box-shadow: none; cursor: pointer; font: inherit; font-weight: 500;
	padding: 0.85rem 1rem; color: var(--pdp-ink); text-align: left; border-radius: var(--pdp-radius-sm);
}
.pdpes-zonapicker-boton:hover { color: var(--pdp-ink); background: transparent; }
.pdpes-zonapicker-boton:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--pdp-brand-soft); }
.pdpes-zonapicker-valor { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdpes-zonapicker-chevron {
	flex: 0 0 auto; width: 0.5rem; height: 0.5rem;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: translateY( -2px ) rotate( 45deg ); transition: transform 0.2s ease;
}
.pdpes-zonapicker-boton[aria-expanded="true"] .pdpes-zonapicker-chevron { transform: translateY( 1px ) rotate( -135deg ); }

.pdpes-zonapicker-panel {
	position: absolute; top: calc( 100% + 0.4rem ); left: 0; right: 0; z-index: 30;
	background: var(--pdp-surface); color: var(--pdp-ink); text-align: left;
	border: 1px solid var(--pdp-border); border-radius: var(--pdp-radius);
	box-shadow: var(--pdp-shadow-lg); max-height: 20rem; overflow-y: auto; padding: 0.4rem;
}
.pdpes-zonapicker-lista { list-style: none; margin: 0; padding: 0; }

/* Botones del panel: reseteo completo para que no hereden el estilo de botón
   del tema (que ponía texto blanco en hover y lo hacía invisible). */
.pdpes-zp-opcion, .pdpes-zp-toggle {
	border: 0; background: transparent; box-shadow: none; cursor: pointer; font: inherit;
	padding: 0; box-sizing: border-box;
	color: var(--pdp-ink); border-radius: var(--pdp-radius-sm); transition: background 0.15s ease;
}
.pdpes-zp-opcion { display: block; width: 100%; text-align: left; padding: 0.5rem 0.65rem; line-height: 1.3; }
.pdpes-zp-opcion:hover, .pdpes-zp-opcion:focus-visible,
.pdpes-zp-toggle:hover, .pdpes-zp-toggle:focus-visible {
	color: var(--pdp-ink); background: var(--pdp-surface-warm); outline: none; box-shadow: none;
}
.pdpes-zp-todas { font-weight: 600; }

.pdpes-zp-ciudad-fila { display: flex; align-items: center; gap: 0.25rem; }
.pdpes-zp-ciudad-nombre {
	flex: 1 1 auto; display: flex; align-items: baseline; justify-content: space-between; gap: 0.6rem; font-weight: 600;
}
.pdpes-zp-count { color: var(--pdp-ink-muted); font-weight: 400; font-size: 0.85em; }
.pdpes-zp-toggle {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 1.9rem; height: 1.9rem; color: var(--pdp-ink-soft);
}
.pdpes-zp-toggle-spacer { flex: 0 0 auto; width: 1.9rem; }
.pdpes-zp-toggle .pdpes-zonapicker-chevron { width: 0.42rem; height: 0.42rem; transform: translateY( -2px ) rotate( 45deg ); }
.pdpes-zp-toggle.is-open .pdpes-zonapicker-chevron { transform: translateY( 1px ) rotate( -135deg ); }
.pdpes-zp-toggle:hover .pdpes-zonapicker-chevron,
.pdpes-zp-toggle:focus-visible .pdpes-zonapicker-chevron { color: var(--pdp-ink); }

.pdpes-zp-localidades { list-style: none; margin: 0.1rem 0 0.4rem; padding: 0 0 0 0.75rem; }
.pdpes-zp-localidades .pdpes-zp-opcion { padding: 0.42rem 0.65rem; }
.pdpes-zp-toda { font-weight: 600; color: var(--pdp-brand-strong); }
.pdpes-zp-toda:hover, .pdpes-zp-toda:focus-visible { color: var(--pdp-brand-strong); }
.pdpes-zp-localidad { color: var(--pdp-ink-soft); }
.pdpes-zonapicker-panel[hidden], .pdpes-zp-localidades[hidden] { display: none; }

.pdpes-hero-cta { display: inline-flex; gap: 0.75rem; margin-top: 1.75rem; flex-wrap: wrap; justify-content: center; }
.pdpes-hero-cta .pdpes-btn-outline { background: transparent; color: #fff; border-color: rgba( 255, 255, 255, 0.5 ); }
.pdpes-hero-cta .pdpes-btn-outline:hover { background: rgba( 255, 255, 255, 0.14 ); border-color: #fff; color: #fff; }

.pdpes-hero-trust { display: flex; gap: 1.5rem 2.5rem; flex-wrap: wrap; justify-content: center; margin-top: 2.5rem; color: rgba( 255, 255, 255, 0.9 ); font-size: 0.92rem; font-weight: 500; }
.pdpes-hero-trust span { display: inline-flex; align-items: center; gap: 0.4rem; }
.pdpes-hero-trust strong { font-family: var(--pdp-font-display); font-size: 1.15rem; color: #fff; }

/* --- Secciones --- */
.pdpes-seccion { margin: 4rem 0; }
.pdpes-seccion-titulo { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 0 1.75rem; flex-wrap: wrap; }
.pdpes-seccion-titulo h2 { margin: 0; font-size: clamp( 1.6rem, 2.4vw, 2.1rem ); }
.pdpes-seccion-titulo a { font-size: 0.98rem; font-weight: 600; color: var(--pdp-brand); }


/* --- Grid anuncios --- */
.pdpes-grid-anuncios { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.75rem; grid-template-columns: 1fr; }
@media ( min-width: 42rem ) { .pdpes-grid-anuncios { grid-template-columns: repeat( 2, 1fr ); } }
@media ( min-width: 72rem ) { .pdpes-grid-anuncios { grid-template-columns: repeat( 3, 1fr ); } }

.pdpes-card { display: flex; flex-direction: column; background: var(--pdp-surface); border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow-xs); overflow: hidden; transition: box-shadow 0.25s ease, transform 0.25s ease; }
.pdpes-card:hover { box-shadow: var(--pdp-shadow); transform: translateY( -4px ); }
.pdpes-card-imagen { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--pdp-surface-sunken); position: relative; }
.pdpes-card-imagen img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.pdpes-card:hover .pdpes-card-imagen img { transform: scale( 1.05 ); }
.pdpes-card-badge { position: absolute; top: 0.85rem; left: 0.85rem; padding: 0.28rem 0.85rem; background: var(--pdp-brand); color: var(--pdp-ink-invert); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; border-radius: var(--pdp-radius-pill); box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.15 ); }
/* Alquiler en azul verdoso: se distingue de venta sin salirse de la gama fría. */
.pdpes-card-badge.pdpes-card-badge-alquiler { background: var(--pdp-alquiler); }
.pdpes-card-cuerpo { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; gap: 0.35rem; flex: 1; }
.pdpes-card-zona { color: var(--pdp-ink-muted); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }
.pdpes-card-titulo { margin: 0; font-family: var(--pdp-font-display); font-size: 1.2rem; font-weight: 600; }
.pdpes-card-titulo a { color: var(--pdp-ink); }
.pdpes-card-titulo a:hover { color: var(--pdp-brand); }
.pdpes-card-precio { font-family: var(--pdp-font-display); font-size: 1.5rem; font-weight: 700; color: var(--pdp-brand-strong); margin: 0.2rem 0; letter-spacing: -0.02em; }
.pdpes-card-meta { display: flex; flex-wrap: wrap; gap: 0.6rem 1.25rem; margin-top: auto; padding-top: 0.85rem; border-top: 1px solid var(--pdp-border-soft); color: var(--pdp-ink-muted); font-size: 0.9rem; }
.pdpes-card-meta span { display: inline-flex; align-items: center; gap: 0.35rem; }

/* --- Zonas --- */
.pdpes-zonas { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.pdpes-zona-chip { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 1.15rem; background: var(--pdp-surface); border: 1px solid var(--pdp-border); border-radius: var(--pdp-radius-pill); color: var(--pdp-ink); font-weight: 500; font-size: 0.96rem; transition: all 0.15s ease; }
.pdpes-zona-chip:hover { background: var(--pdp-brand); border-color: var(--pdp-brand); color: #fff; transform: translateY( -2px ); box-shadow: var(--pdp-shadow-sm); }

/* --- Pasos --- */
/* --- «Cómo funciona»: banda destacada (pieza de venta de la portada) ------
   Franja verde oscura a todo el ancho, con tarjetas blancas: contrasta con las
   secciones claras de alrededor para que el visitante no se la salte. */
.pdpes-pasos-banda {
	position: relative;
	margin: 0 0 4.5rem;
	padding: clamp( 3.5rem, 6vw, 5.5rem ) 0;
	background:
		radial-gradient( 120% 120% at 50% -10%, rgba( 143, 227, 186, 0.14 ), transparent 55% ),
		var(--pdp-brand-deep);
	color: var(--pdp-ink-invert);
	overflow: hidden;
}
.pdpes-pasos-inner {
	max-width: var(--pdp-container);
	margin: 0 auto;
	padding-inline: clamp( 1rem, 3vw, 2rem );
}
.pdpes-pasos-cabecera { text-align: center; max-width: 42rem; margin: 0 auto clamp( 2.25rem, 4vw, 3.25rem ); }
.pdpes-pasos-eyebrow {
	display: inline-block; margin-bottom: 1rem;
	padding: 0.35rem 0.95rem; border-radius: var(--pdp-radius-pill);
	background: rgba( 255, 255, 255, 0.12 ); border: 1px solid rgba( 255, 255, 255, 0.22 );
	font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
}
.pdpes-pasos-cabecera h2 { color: #fff; margin: 0; font-size: clamp( 1.9rem, 3.4vw, 2.6rem ); }
.pdpes-pasos-intro { margin: 0.9rem auto 0; max-width: 40ch; color: rgba( 255, 255, 255, 0.86 ); font-size: 1.08rem; }

.pdpes-pasos { display: grid; gap: 1.5rem; grid-template-columns: 1fr; list-style: none; padding: 0; margin: 0; counter-reset: paso; }
@media ( min-width: 48rem ) { .pdpes-pasos { grid-template-columns: repeat( 3, 1fr ); gap: 1.75rem; } }

.pdpes-paso {
	position: relative;
	display: flex; flex-direction: column; align-items: flex-start;
	background: var(--pdp-surface); color: var(--pdp-ink);
	padding: 2.25rem 1.75rem 2rem;
	border-radius: var(--pdp-radius-lg);
	box-shadow: var(--pdp-shadow);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pdpes-paso:hover { transform: translateY( -5px ); box-shadow: var(--pdp-shadow-lg); }

/* Numeral grande y tenue, de fondo, para dar aire «editorial». */
.pdpes-paso-num {
	position: absolute; top: 1rem; right: 1.35rem;
	font-size: 3.4rem; font-weight: 800; line-height: 1;
	letter-spacing: -0.04em; color: var(--pdp-brand-deep);
}
.pdpes-paso-icono {
	display: inline-flex; align-items: center; justify-content: center;
	width: 3.25rem; height: 3.25rem; margin-bottom: 1.25rem;
	background: var(--pdp-brand-soft); color: var(--pdp-brand-strong);
	border-radius: var(--pdp-radius); position: relative; z-index: 1;
}
.pdpes-paso-icono svg { width: 1.6rem; height: 1.6rem; }
.pdpes-paso-tag {
	display: inline-block; margin-bottom: 0.7rem;
	padding: 0.22rem 0.7rem; border-radius: var(--pdp-radius-pill);
	background: var(--pdp-accent-soft); color: var(--pdp-accent-deep);
	font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
}
.pdpes-paso-tag-fuerte { background: var(--pdp-accent-strong); color: #fff; }
.pdpes-paso h3 { margin: 0 0 0.45rem; font-size: 1.22rem; }
.pdpes-paso p { margin: 0; color: var(--pdp-ink-soft); font-size: 0.98rem; line-height: 1.55; }

/* Flecha de avance entre tarjetas (solo en fila, escritorio). */
@media ( min-width: 48rem ) {
	.pdpes-paso:not(:last-child)::after {
		content: ""; position: absolute; top: 50%; right: -1.45rem; z-index: 2;
		width: 0.95rem; height: 0.95rem; transform: translateY( -50% ) rotate( 45deg );
		border-top: 2px solid rgba( 255, 255, 255, 0.55 );
		border-right: 2px solid rgba( 255, 255, 255, 0.55 );
	}
}

.pdpes-pasos-cta { margin-top: clamp( 2.25rem, 4vw, 3rem ); text-align: center; }
.pdpes-pasos-cta .pdpes-btn-accent { padding-inline: 2rem; font-size: 1.05rem; }
.pdpes-pasos-cta-nota { display: block; margin-top: 0.9rem; color: rgba( 255, 255, 255, 0.78 ); font-size: 0.92rem; }

@media ( prefers-reduced-motion: reduce ) {
	.pdpes-paso { transition: none; }
	.pdpes-paso:hover { transform: none; }
}

/* --- Franja de valor --- */
.pdpes-valor { display: grid; gap: 1.5rem; grid-template-columns: 1fr; background: var(--pdp-surface-sunken); border-radius: var(--pdp-radius-lg); padding: 2.5rem; margin: 4rem auto; }
@media ( min-width: 48rem ) { .pdpes-valor { grid-template-columns: repeat( 3, 1fr ); } }
.pdpes-valor-item { text-align: center; }
.pdpes-valor-item strong { display: block; font-family: var(--pdp-font-display); font-size: 2rem; color: var(--pdp-brand); margin-bottom: 0.25rem; }
.pdpes-valor-item span { color: var(--pdp-ink-soft); }

/* --- CTA final --- */
.pdpes-cta-final { position: relative; overflow: hidden; background: var(--pdp-brand-deep); color: var(--pdp-ink-invert); padding: 3.5rem 2rem; border-radius: var(--pdp-radius-lg); text-align: center; margin-top: 4rem; }
.pdpes-cta-final h2 { color: #fff; margin: 0 0 0.75rem; font-size: clamp( 1.6rem, 3vw, 2.2rem ); }
.pdpes-cta-final p { color: rgba( 255, 255, 255, 0.82 ); margin: 0 auto 1.75rem; max-width: 540px; }

/* =====================================================================
   FICHA DEL INMUEBLE (Property Hive)
   ===================================================================== */

.single-property .entry-title { font-size: clamp( 1.7rem, 3vw, 2.3rem ); }
.single-property .images { position: relative; margin: 0 0 1.75rem; border-radius: var(--pdp-radius-lg); overflow: hidden; box-shadow: var(--pdp-shadow-sm); }
.single-property .images .flexslider:first-child { height: 460px; overflow: hidden; }
.single-property .images .flexslider .slides, .single-property .images .flexslider .slides > li { height: 460px; }
.single-property .images .flexslider .slides img { display: block; width: 100%; height: 460px; object-fit: cover; }
@media ( min-width: 48rem ) {
	.single-property .images .flexslider:first-child,
	.single-property .images .flexslider .slides,
	.single-property .images .flexslider .slides > li,
	.single-property .images .flexslider .slides img { height: 560px; }
}
.single-property .images .thumbnails { display: none; }
.single-property .images .flexslider .flex-control-nav { position: absolute; bottom: 1rem; left: 0; right: 0; display: flex; justify-content: center; gap: 0.5rem; list-style: none; padding: 0; margin: 0; z-index: 2; }
.single-property .images .flexslider .flex-control-nav li a { display: block; width: 10px; height: 10px; border-radius: 50%; background: rgba( 255, 255, 255, 0.6 ); text-indent: -9999px; overflow: hidden; cursor: pointer; }
.single-property .images .flexslider .flex-control-nav li a.flex-active { background: #fff; }
.single-property .images .flex-direction-nav { list-style: none; padding: 0; margin: 0; }
.single-property .images .flex-direction-nav a { position: absolute; top: 50%; transform: translateY( -50% ); display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: rgba( 255, 255, 255, 0.9 ); text-indent: -9999px; cursor: pointer; z-index: 2; box-shadow: var(--pdp-shadow); }
.single-property .images .flex-direction-nav a::before { content: ""; display: block; width: 11px; height: 11px; border-top: 2px solid var(--pdp-ink); border-left: 2px solid var(--pdp-ink); margin-left: 4px; transform: rotate( -45deg ); }
.single-property .images .flex-direction-nav a.flex-prev { left: 1rem; }
.single-property .images .flex-direction-nav a.flex-next { right: 1rem; }
.single-property .images .flex-direction-nav a.flex-next::before { transform: rotate( 135deg ); margin-left: -4px; }

.single-property .summary.entry-summary { margin: 1.75rem 0; padding: 1.75rem 2rem; background: var(--pdp-brand-tint); border: 1px solid var(--pdp-brand-soft); border-radius: var(--pdp-radius-lg); list-style: none; }
.single-property .summary.entry-summary .price, .single-property .price { display: inline-block; padding: 0.5rem 1.2rem; margin: 0 0 1rem; background: var(--pdp-brand-strong); color: #fff; border-radius: var(--pdp-radius-pill); font-family: var(--pdp-font-display); font-size: 1.5rem; font-weight: 700; }
.single-property .summary.entry-summary > ul { list-style: none; padding: 0; margin: 0.5rem 0 0; display: grid; grid-template-columns: repeat( auto-fit, minmax( 160px, 1fr ) ); gap: 0.5rem; }
.single-property .summary.entry-summary > ul li { padding: 0.55rem 0.85rem; background: var(--pdp-surface); border-radius: var(--pdp-radius-sm); font-weight: 500; }
.single-property h2, .single-property h3 { margin-top: 2rem; padding-bottom: 0.3rem; border-bottom: 2px solid var(--pdp-brand-soft); font-size: 1.3rem; }
.single-property .property_actions { display: none; }

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

@media ( max-width: 48rem ) {
	.separate-containers .inside-article { padding: 1.5rem 1.35rem; border-radius: var(--pdp-radius); }
	.pdpes-alta, .pdpes-contacto { padding: 1.5rem; }
	.pdpes-hero { min-height: 480px; padding: 3.5rem 1.25rem; }
	.site-content { padding-block: 2rem; }
}

.pdpes-fullwidth:not(.pdpes-page-portada) .inside-article,
.pdpes-fullwidth:not(.pdpes-page-portada) .separate-containers .inside-article { background: transparent; border: 0; box-shadow: none; padding: 0; }
.pdpes-fullwidth:not(.pdpes-page-portada) .entry-header { display: none; }
.pdpes-page-politica-de-privacidad .entry-content > .pdpes-documento-legal,
.pdpes-page-condiciones-de-uso .entry-content > .pdpes-documento-legal,
.pdpes-page-aviso-legal .entry-content > .pdpes-documento-legal,
.pdpes-page-politica-de-cookies .entry-content > .pdpes-documento-legal,
.pdpes-page-comunicaciones-comerciales .entry-content > .pdpes-documento-legal {
	background: var(--pdp-surface); padding: 2.5rem 2.75rem; border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow-xs);
}

/* --- Publicar anuncio nuevo (panel) --------------------------------- */
.pdpes-barra-nueva {
	display: flex; flex-wrap: wrap; gap: 0.75rem;
	align-items: center; justify-content: space-between;
	margin: 0 0 1.75rem;
}
.pdpes-barra-nueva-titulo { margin: 0; font-size: clamp( 1.5rem, 2.4vw, 1.9rem ); }
.pdpes-btn-nuevo { font-size: 1.02rem; }

.pdpes-nuevo {
	background: var(--pdp-surface);
	border: 1px solid var(--pdp-border-soft);
	border-radius: var(--pdp-radius-lg);
	box-shadow: var(--pdp-shadow);
	padding: 2rem 2.25rem;
	margin: 0 0 2rem;
	border-top: 4px solid var(--pdp-accent);
}
.pdpes-nuevo-titulo { margin: 0 0 0.4rem; font-size: 1.5rem; }
.pdpes-nuevo-ayuda { margin: 0 0 1.5rem; color: var(--pdp-ink-muted); font-size: 0.98rem; }
.pdpes-nuevo .pdpes-form { max-width: none; }
.pdpes-nuevo-fotos-nota {
	margin: 0.5rem 0 0; padding: 0.75rem 1rem;
	background: var(--pdp-accent-soft); border-radius: var(--pdp-radius-sm);
	color: var(--pdp-accent-deep); font-size: 0.9rem;
}
@media ( min-width: 40rem ) {
	.pdpes-nuevo .pdpes-form {
		display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
	}
	.pdpes-nuevo .pdpes-form > .pdpes-campo:first-child,
	.pdpes-nuevo .pdpes-bloque-direccion,
	.pdpes-nuevo-fotos-nota,
	.pdpes-nuevo .pdpes-form-botones { grid-column: 1 / -1; }
}

/* ==========================================================================
   Guías de zona (SEO local): contenido encima del listado de inmuebles
   ========================================================================== */

.pdpes-btn-acento {
	background: var(--pdp-brand); border-color: var(--pdp-brand); color: var(--pdp-ink-invert);
}
.pdpes-btn-acento:hover {
	background: var(--pdp-brand-strong); border-color: var(--pdp-brand-strong); color: var(--pdp-ink-invert);
}

.pdpes-zona-guia {
	margin: 0 0 2.5rem;
}

.pdpes-zona-migas {
	font-size: 0.88rem; color: var(--pdp-ink-muted); margin: 0 0 1.25rem;
	display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center;
}
.pdpes-zona-migas a { color: var(--pdp-brand); text-decoration: none; }
.pdpes-zona-migas a:hover { text-decoration: underline; }
.pdpes-zona-migas-sep { color: var(--pdp-ink-faded); }
.pdpes-zona-migas [aria-current="page"] { color: var(--pdp-ink-soft); font-weight: 600; }

.pdpes-zona-intro {
	font-size: 1.08rem; line-height: 1.7; color: var(--pdp-ink-soft);
	max-width: 68ch; margin: 0 0 1.75rem;
}
.pdpes-zona-intro p { margin: 0 0 0.9rem; }

/* Tarjeta de mercado -------------------------------------------------------- */
.pdpes-zona-mercado {
	background: var(--pdp-surface); border: 1px solid var(--pdp-border-soft);
	border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow-sm);
	padding: 1.6rem 1.75rem; margin: 0 0 2rem;
	border-left: 5px solid var(--pdp-brand);
}
.pdpes-zona-mercado.pdpes-nivel-caro  { border-left-color: var(--pdp-accent); }
.pdpes-zona-mercado.pdpes-nivel-barato { border-left-color: var(--pdp-brand); }
.pdpes-zona-mercado.pdpes-nivel-media { border-left-color: var(--pdp-ink-faded); }

.pdpes-zona-mercado-titulo {
	font-family: var(--pdp-font-display); font-size: clamp( 1.25rem, 2vw, 1.5rem );
	margin: 0 0 0.9rem; color: var(--pdp-ink);
}
.pdpes-zona-precio {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.75rem 1rem; margin: 0 0 0.6rem;
}
.pdpes-zona-cifra {
	font-family: var(--pdp-font-display); font-weight: 600;
	font-size: clamp( 1.8rem, 4vw, 2.4rem ); color: var(--pdp-ink); line-height: 1;
}
.pdpes-zona-badge {
	display: inline-block; padding: 0.3rem 0.8rem; border-radius: var(--pdp-radius-pill);
	font-size: 0.82rem; font-weight: 600; line-height: 1.3;
}
.pdpes-badge-caro   { background: var(--pdp-accent-soft); color: var(--pdp-accent-deep); }
.pdpes-badge-barato { background: var(--pdp-success-soft); color: var(--pdp-brand-strong); }
.pdpes-badge-media  { background: var(--pdp-surface-sunken); color: var(--pdp-ink-soft); }

.pdpes-zona-comparativa { font-size: 1rem; color: var(--pdp-ink-soft); margin: 0 0 0.5rem; }
.pdpes-zona-alquiler { font-size: 0.95rem; color: var(--pdp-ink-muted); margin: 0 0 0.75rem; }
.pdpes-zona-fuente { font-size: 0.82rem; color: var(--pdp-ink-faded); margin: 0; }
.pdpes-zona-fuente a { color: var(--pdp-ink-muted); }

/* Zonas relacionadas (chips) ----------------------------------------------- */
.pdpes-zona-relacionadas { margin: 0 0 2rem; }
.pdpes-zona-relacionadas-titulo {
	font-family: var(--pdp-font-display); font-size: 1.1rem; margin: 0 0 0.8rem; color: var(--pdp-ink);
}
.pdpes-zona-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; }
.pdpes-zona-chips a {
	display: inline-block; padding: 0.4rem 0.85rem; border-radius: var(--pdp-radius-pill);
	background: var(--pdp-brand-soft); color: var(--pdp-brand-strong);
	font-size: 0.9rem; text-decoration: none; transition: background 0.15s ease, color 0.15s ease;
}
.pdpes-zona-chips a:hover { background: var(--pdp-brand); color: var(--pdp-ink-invert); }

/* Llamada a publicar -------------------------------------------------------- */
.pdpes-zona-cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
	background: var(--pdp-brand-tint); border: 1px solid var(--pdp-brand-soft);
	border-radius: var(--pdp-radius-lg); padding: 1.4rem 1.75rem; margin: 0 0 1.5rem;
}
.pdpes-zona-cta-texto { margin: 0; font-size: 1.02rem; color: var(--pdp-ink-soft); max-width: 54ch; }
.pdpes-zona-cta .pdpes-btn-acento { white-space: nowrap; }

/* Título principal de la zona (H1) ----------------------------------------- */
.pdpes-zona-titulo {
	font-family: var(--pdp-font-display); font-weight: 600;
	font-size: clamp( 1.8rem, 3.4vw, 2.6rem ); line-height: 1.15;
	color: var(--pdp-ink); margin: 0 0 1rem;
}

/* Encabezado del listado de inmuebles -------------------------------------- */
.pdpes-zona-listado-titulo {
	font-family: var(--pdp-font-display); font-size: 1.3rem;
	color: var(--pdp-ink); margin: 0 0 1.25rem;
}

/* Estado vacío (zona sin anuncios) ----------------------------------------- */
.pdpes-zona-vacia {
	background: var(--pdp-surface-alt); border: 1px dashed var(--pdp-border);
	border-radius: var(--pdp-radius-lg); padding: 2rem 1.75rem; margin: 0 0 2rem; text-align: center;
}
.pdpes-zona-vacia-titulo {
	font-family: var(--pdp-font-display); font-size: 1.2rem; color: var(--pdp-ink); margin: 0 0 0.5rem;
}
.pdpes-zona-vacia-texto { color: var(--pdp-ink-muted); margin: 0 auto; max-width: 52ch; }

.pdpes-zona-guia-pie { margin-top: 2.5rem; }

/* ==========================================================================
   Comparador de precios «¿es caro este piso?»
   ========================================================================== */

.pdpes-comparador {
	background: var(--pdp-surface); border: 1px solid var(--pdp-border-soft);
	border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow-sm);
	padding: 1.75rem; margin: 0 0 2rem; border-top: 4px solid var(--pdp-accent);
}
.pdpes-comparador-campos {
	display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: end;
}
.pdpes-comparador .pdpes-campo { display: flex; flex-direction: column; gap: 0.35rem; }
.pdpes-comparador .pdpes-campo label { font-size: 0.9rem; font-weight: 600; color: var(--pdp-ink-soft); }
.pdpes-comparador .pdpes-campo input,
.pdpes-comparador .pdpes-campo select {
	width: 100%; padding: 0.7rem 0.85rem;
	border: 1px solid var(--pdp-border); border-radius: var(--pdp-radius-sm);
	background: var(--pdp-surface); color: var(--pdp-ink); font-size: 1rem; font-family: var(--pdp-font-body);
}
.pdpes-comparador .pdpes-campo input:focus,
.pdpes-comparador .pdpes-campo select:focus {
	outline: 2px solid var(--pdp-brand); outline-offset: 1px; border-color: var(--pdp-brand);
}
.pdpes-comparador-accion .pdpes-btn { width: 100%; }

.pdpes-comparador-resultado { margin-top: 1.5rem; }
.pdpes-comparador-tarjeta {
	background: var(--pdp-surface-alt); border: 1px solid var(--pdp-border-soft);
	border-radius: var(--pdp-radius); padding: 1.4rem 1.5rem; border-left: 5px solid var(--pdp-ink-faded);
}
.pdpes-comparador-tarjeta.pdpes-nivel-caro { border-left-color: var(--pdp-accent); }
.pdpes-comparador-tarjeta.pdpes-nivel-barato { border-left-color: var(--pdp-brand); }
.pdpes-comparador-tarjeta.pdpes-nivel-media { border-left-color: var(--pdp-ink-faded); }
.pdpes-comparador-cifra {
	font-family: var(--pdp-font-display); font-weight: 600;
	font-size: clamp( 1.6rem, 3.6vw, 2.1rem ); color: var(--pdp-ink); line-height: 1;
	display: inline-block; margin-right: 0.75rem;
}
.pdpes-comparador-badge {
	display: inline-block; padding: 0.3rem 0.8rem; border-radius: var(--pdp-radius-pill);
	font-size: 0.82rem; font-weight: 600; vertical-align: middle;
}
.pdpes-comparador-resumen { margin: 0.9rem 0 0.5rem; color: var(--pdp-ink-soft); font-size: 1.02rem; line-height: 1.6; }
.pdpes-comparador-fuente { margin: 0; font-size: 0.8rem; color: var(--pdp-ink-faded); }
.pdpes-comparador-error { margin: 0; color: var(--pdp-danger); font-weight: 600; }

/* Tarjeta de presentación del comparador (abre el formulario) */
.pdpes-comparador-titulo { margin: 0 0 0.4rem; font-size: 1.25rem; color: var(--pdp-ink); }
.pdpes-comparador-sub { margin: 0 0 1.15rem; color: var(--pdp-ink-soft); }
.pdpes-comparador-puntos { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 0.75rem; }
.pdpes-comparador-puntos li { display: flex; align-items: center; gap: 0.75rem; color: var(--pdp-ink); font-weight: 500; }
.pdpes-comparador-ico {
	display: inline-flex; flex: 0 0 auto; width: 2.1rem; height: 2.1rem;
	align-items: center; justify-content: center; border-radius: var(--pdp-radius-sm);
	background: var(--pdp-brand-soft); color: var(--pdp-brand-strong);
}
.pdpes-comparador-ico svg { width: 1.2rem; height: 1.2rem; }
.pdpes-comparador-abrir { width: 100%; background: var(--pdp-brand-deep); color: #fff; border: 0; }
.pdpes-comparador-abrir:hover,
.pdpes-comparador-abrir:focus { background: var(--pdp-brand); color: #fff; }
.pdpes-comparador-intro[hidden], .pdpes-comparador-form[hidden] { display: none; }

@media ( min-width: 48rem ) {
	.pdpes-comparador-campos { grid-template-columns: 1fr 1fr 1.4fr auto; }
}

/* ==========================================================================
   Barra superior con el reclamo (todo el sitio)
   ========================================================================== */

.pdpes-topbar {
	background: var(--pdp-brand-deep); color: var(--pdp-ink-invert);
	font-size: 0.9rem; line-height: 1.4;
}
.pdpes-topbar-inner {
	/* Fondo opaco explícito: así el cálculo de contraste (axe/WCAG) resuelve
	   el texto claro contra el verde oscuro y no contra el body (crema). */
	background: var(--pdp-brand-deep);
	max-width: var(--pdp-container); margin: 0 auto; padding: 0.55rem 20px;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem 1rem;
	text-align: center;
}
.pdpes-topbar-texto { color: rgba( 255, 255, 255, 0.92 ); }
.pdpes-topbar-texto strong { color: #fff; font-weight: 700; }
.pdpes-topbar-cta {
	color: #fff; font-weight: 600; text-decoration: none; white-space: nowrap;
	border: 1px solid rgba( 255, 255, 255, 0.45 ); border-radius: var(--pdp-radius-pill);
	padding: 0.2rem 0.85rem; transition: background 0.15s ease, border-color 0.15s ease;
}
.pdpes-topbar-cta:hover { background: rgba( 255, 255, 255, 0.16 ); border-color: #fff; color: #fff; }

/* Subtítulo introductorio de una sección de la portada */
.pdpes-seccion-intro {
	margin: -0.5rem 0 1.5rem; color: var(--pdp-ink-muted); font-size: 1.05rem; max-width: 60ch;
}

/* ==========================================================================
   Calculadora de ahorro frente a agencia
   ========================================================================== */

.pdpes-ahorro {
	background: var(--pdp-brand-tint); border: 1px solid var(--pdp-brand-soft);
	border-radius: var(--pdp-radius-lg); padding: 1.75rem; max-width: 640px;
}
.pdpes-ahorro-campo { display: flex; flex-direction: column; gap: 0.35rem; }
.pdpes-ahorro-campo label { font-size: 0.9rem; font-weight: 600; color: var(--pdp-ink-soft); }
.pdpes-ahorro-campo input {
	width: 100%; max-width: 280px; padding: 0.7rem 0.85rem;
	border: 1px solid var(--pdp-border); border-radius: var(--pdp-radius-sm);
	background: var(--pdp-surface); color: var(--pdp-ink); font-size: 1.1rem; font-family: var(--pdp-font-body);
}
.pdpes-ahorro-campo input:focus { outline: 2px solid var(--pdp-brand); outline-offset: 1px; border-color: var(--pdp-brand); }

.pdpes-ahorro-resultado { margin: 1.25rem 0 0.75rem; min-height: 2.5rem; }
.pdpes-ahorro-cifra {
	margin: 0 0 0.4rem; font-family: var(--pdp-font-display); line-height: 1.2;
	font-size: clamp( 1.4rem, 3.6vw, 2rem ); color: var(--pdp-ink);
}
.pdpes-ahorro-cifra strong { color: var(--pdp-brand-strong); font-weight: 700; }
.pdpes-ahorro-etiqueta, .pdpes-ahorro-y { font-family: var(--pdp-font-body); font-size: 0.95rem; color: var(--pdp-ink-muted); font-weight: 500; }
.pdpes-ahorro-detalle { margin: 0; color: var(--pdp-ink-soft); font-size: 1rem; line-height: 1.6; }
.pdpes-ahorro-vacio { margin: 0; color: var(--pdp-ink-muted); }
.pdpes-ahorro-nota { margin: 0.5rem 0 0; font-size: 0.8rem; color: var(--pdp-ink-soft); }

/* ==========================================================================
   Guías (tarjetas en la portada)
   ========================================================================== */

.pdpes-guias-lista {
	list-style: none; margin: 0; padding: 0;
	display: grid; gap: 1rem; grid-template-columns: 1fr;
}
.pdpes-guia-card {
	background: var(--pdp-surface); border: 1px solid var(--pdp-border-soft);
	border-radius: var(--pdp-radius-lg); box-shadow: var(--pdp-shadow-xs);
	transition: box-shadow 0.15s ease, transform 0.08s ease;
}
.pdpes-guia-card:hover { box-shadow: var(--pdp-shadow); transform: translateY( -2px ); }
.pdpes-guia-card a { display: block; padding: 1.4rem 1.5rem; text-decoration: none; color: inherit; }
.pdpes-guia-titulo {
	margin: 0 0 0.5rem; font-family: var(--pdp-font-display);
	font-size: 1.2rem; line-height: 1.25; color: var(--pdp-ink);
}
.pdpes-guia-extracto { margin: 0 0 0.75rem; color: var(--pdp-ink-muted); font-size: 0.97rem; line-height: 1.55; }
.pdpes-guia-mas { color: var(--pdp-brand); font-weight: 600; font-size: 0.95rem; }
.pdpes-guia-card:hover .pdpes-guia-mas { color: var(--pdp-brand-strong); }

@media ( min-width: 48rem ) {
	.pdpes-guias-lista { grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   Preguntas frecuentes (acordeón) y enlaces del pie
   ========================================================================== */

.pdpes-faq { max-width: 760px; margin: 0 auto; }
.pdpes-faq-item {
	border: 1px solid var(--pdp-border-soft); border-radius: var(--pdp-radius);
	background: var(--pdp-surface); margin: 0 0 0.75rem;
}
.pdpes-faq-pregunta {
	cursor: pointer; padding: 1rem 2.75rem 1rem 1.25rem;
	font-family: var(--pdp-font-body); font-weight: 600; color: var(--pdp-ink);
	list-style: none; position: relative;
}
.pdpes-faq-pregunta::-webkit-details-marker { display: none; }
.pdpes-faq-pregunta::after {
	content: "+"; position: absolute; right: 1.2rem; top: 50%; transform: translateY( -50% );
	font-size: 1.35rem; line-height: 1; color: var(--pdp-brand); font-weight: 400;
}
.pdpes-faq-item[open] .pdpes-faq-pregunta { color: var(--pdp-brand-strong); }
.pdpes-faq-item[open] .pdpes-faq-pregunta::after { content: "\2013"; }
.pdpes-faq-respuesta { padding: 0 1.25rem 1.1rem; color: var(--pdp-ink-soft); line-height: 1.65; }
.pdpes-faq-respuesta p { margin: 0 0 0.6rem; }
.pdpes-faq-respuesta p:last-child { margin-bottom: 0; }
.pdpes-faq-respuesta a { color: var(--pdp-brand); }

.pdpes-footer-nav {
	background: var(--pdp-brand-deep);
	display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; justify-content: center;
	margin: 0 0 0.6rem; font-size: 0.9rem;
}
.copyright-bar { background: var(--pdp-brand-deep); }
.pdpes-footer-nav a { color: #e7efe9; text-decoration: none; }
.pdpes-footer-nav a:hover { text-decoration: underline; color: #fff; }
.pdpes-footer-sep { opacity: 0.6; }

/* -------- Anuncios destacados -------------------------------------- */

/* Etiqueta sobre la foto de la tarjeta (tarjetas de GeneratePress .post-image
   y tarjetas propias de Property Hive .thumbnail). */
.property .post-image,
.property .thumbnail,
.pdpes-destacados-grid .post-image,
.pdpes-destacados-grid .thumbnail { position: relative; }
.pdpes-destacado-badge {
	position: absolute; top: 0.6rem; left: 0.6rem; z-index: 2;
	background: var(--pdp-brand-strong); color: #fff;
	font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	padding: 0.2rem 0.6rem; border-radius: var(--pdp-radius-pill);
	box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.22 );
}

/* Parrilla de destacados en la portada: misma tarjeta que el resto de listados
   (.pdpes-grid-anuncios), solo cambia el distintivo. */
.pdpes-destacados { margin: 2.5rem 0; }

/* Distintivo «Destacado»: chip blanco arriba a la derecha, frente al de
   venta/alquiler que va a la izquierda. */
.pdpes-card-destacado {
	position: absolute; top: 0.85rem; right: 0.85rem; z-index: 2;
	padding: 0.28rem 0.8rem;
	border-radius: var(--pdp-radius-pill);
	background: var(--pdp-surface); color: var(--pdp-brand-strong);
	font-size: 0.72rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
	box-shadow: 0 2px 10px rgba( 0, 0, 0, 0.22 );
}
.pdpes-card-destacada { border-color: var(--pdp-brand-soft); box-shadow: 0 0 0 1px var(--pdp-brand-soft), var(--pdp-shadow-xs); }

/* Aviso y estado de destacado en el panel «Mis anuncios». */
.pdpes-anuncio-destacado {
	display: inline-flex; align-items: center; gap: 0.35rem;
	background: var(--pdp-accent-soft); color: var(--pdp-accent-deep);
	font-size: 0.82rem; font-weight: 700;
	padding: 0.2rem 0.6rem; border-radius: var(--pdp-radius-pill);
}
.pdpes-destacar-panel {
	margin: 0.75rem 0 0; padding: 1rem 1.1rem;
	background: var(--pdp-surface-alt); border: 1px solid var(--pdp-border);
	border-radius: var(--pdp-radius-sm);
}
.pdpes-destacar-titulo { margin: 0 0 0.25rem; font-size: 1.05rem; }
.pdpes-destacar-ayuda { margin: 0 0 0.5rem; color: var(--pdp-ink-soft); font-size: 0.9rem; }
.pdpes-btn-destacar { border-color: var(--pdp-accent-strong); color: var(--pdp-accent-deep); background: var(--pdp-surface); }
.pdpes-btn-destacar:hover { background: var(--pdp-accent-soft); }
.pdpes-destacar-opciones { display: grid; gap: 0.75rem; margin: 0.5rem 0 0.75rem; }
.pdpes-destacar-opcion {
	display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
	gap: 0.5rem; padding: 0.9rem 1rem; border: 1px solid var(--pdp-border);
	border-radius: var(--pdp-radius-sm); background: var(--pdp-surface);
}
.pdpes-destacar-opcion-precio { font-weight: 800; color: var(--pdp-ink); }
.pdpes-destacar-opcion-nota { color: var(--pdp-ink-muted); font-size: 0.85rem; width: 100%; }

/* -------- Formulario: grupos de campos del inmueble ---------------- */

.pdpes-grupo-campos {
	margin: 1.25rem 0 0;
	padding: 0.75rem 1rem 1rem;
	border: 1px solid var(--pdp-border);
	border-radius: var(--pdp-radius-sm);
	background: var(--pdp-surface-alt);
}
.pdpes-grupo-campos legend {
	padding: 0 0.4rem;
	font-weight: 700;
	color: var(--pdp-brand-deep);
	font-size: 0.95rem;
}
.pdpes-grupo-equipamiento {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0 1.25rem;
	align-items: start;
}
.pdpes-grupo-equipamiento legend { grid-column: 1 / -1; }
.pdpes-campo-check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.pdpes-campo-check input {
	width: 1.1rem;
	height: 1.1rem;
	flex: 0 0 auto;
	accent-color: var(--pdp-brand-deep);
}
.pdpes-campo-check label { margin: 0; }
.pdpes-campo-ayuda {
	display: block;
	margin-top: 0.3rem;
	color: var(--pdp-ink-muted);
	font-size: 0.85rem;
}

/* -------- Ficha: características del inmueble ----------------------- */

.pdpes-ficha-caracteristicas {
	margin: 1.75rem 0;
	padding-top: 1.25rem;
	border-top: 1px solid var(--pdp-border);
}
.pdpes-ficha-caracteristicas h2 {
	font-size: 1.3rem;
	margin: 0 0 0.75rem;
	color: var(--pdp-ink);
}
.pdpes-caracteristicas-grupo {
	font-size: 1rem;
	margin: 1rem 0 0.5rem;
	color: var(--pdp-brand-deep);
}
.pdpes-caracteristicas-dl {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 0.4rem 1.5rem;
	margin: 0;
}
.pdpes-caracteristicas-dl dt {
	color: var(--pdp-ink-muted);
	font-size: 0.9rem;
}
.pdpes-caracteristicas-dl dd {
	margin: 0 0 0.35rem;
	font-weight: 600;
	color: var(--pdp-ink);
}
.pdpes-caracteristicas-chips {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.pdpes-caracteristica-chip {
	padding: 0.3rem 0.75rem;
	border-radius: var(--pdp-radius-pill);
	background: var(--pdp-accent-soft);
	color: var(--pdp-accent-deep);
	font-size: 0.9rem;
	font-weight: 600;
}
.pdpes-caracteristica-chip::before {
	content: "✓ ";
	font-weight: 700;
}
