/* =====================================================================
   NOVUHOMES · Estilos plantilla CPT "localidad"
   Archivo: nvh-localidad.css  (súbelo al tema hijo → /assets/ o raíz)
   Clona el look de /madrid/: verde oscuro corporativo + acento amarillo,
   secciones alternas claro/gris/oscuro.
   ===================================================================== */

:root{
  --nvh-green-900:#12261d;      /* verde muy oscuro (hero, secciones dark) */
  --nvh-green-800:#1c3327;      /* verde oscuro tarjeta */
  --nvh-green-band:#3a4a40;     /* verde apagado banda CTA intermedia */
  --nvh-yellow:#f0b429;         /* acento amarillo botones/detalles */
  --nvh-yellow-600:#d99a1c;     /* amarillo hover */
  --nvh-ink:#12261d;            /* texto oscuro */
  --nvh-body:#3c4a43;           /* texto cuerpo */
  --nvh-light:#faf9f6;          /* fondo claro */
  --nvh-muted:#ecebe6;          /* fondo gris apagado */
  --nvh-white:#ffffff;
  --nvh-radius:6px;
  --nvh-maxw:1180px;
}

/* ---------- Base / contenedor ---------- */
.nvh-loc{ color:var(--nvh-body); font-size:1.0625rem; line-height:1.7; }
.nvh-container{ max-width:var(--nvh-maxw); margin:0 auto; padding:0 24px; }
.nvh-loc h1,.nvh-loc h2,.nvh-loc h3{ line-height:1.12; letter-spacing:-.01em; }
/* Color oscuro SOLO en headings que van sobre fondo claro.
   Excluye hero, banda CTA, secciones oscuras y tarjetas oscuras,
   que llevan su propio color claro definido más abajo. */
.nvh-loc h1:not(.nvh-hero__title),
.nvh-loc :not(.nvh-hero):not(.nvh-cta-band):not(.nvh-section--dark):not(.nvh-card-dark) > h2,
.nvh-loc :not(.nvh-hero):not(.nvh-cta-band):not(.nvh-section--dark):not(.nvh-card-dark) > h3{ color:var(--nvh-ink); }
.nvh-loc h2{ font-size:clamp(1.7rem,3.4vw,2.6rem); font-weight:800; margin:0 0 .6em; }
.nvh-loc h3{ font-size:1.15rem; font-weight:700; margin:.4em 0; }
.nvh-loc p{ margin:0 0 1em; }
.nvh-loc img{ max-width:100%; height:auto; display:block; }

.nvh-section{ padding:88px 0; }
.nvh-section--light{ background:var(--nvh-light); }
.nvh-section--muted{ background:var(--nvh-muted); }
.nvh-section--dark{ background:var(--nvh-green-900); }
.nvh-section--dark h1,.nvh-section--dark h2,.nvh-section--dark h3{ color:var(--nvh-white); }
.nvh-section--dark p{ color:rgba(255,255,255,.85); }

.nvh-center{ text-align:center; max-width:820px; margin-inline:auto; }
.nvh-center__lead{ font-size:1.075rem; }
.nvh-kicker,.nvh-eyebrow{ text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; font-weight:700; color:var(--nvh-yellow); margin:0 0 .8em; }
.nvh-dash{ color:var(--nvh-yellow); }

/* ---------- Botones ---------- */
.nvh-btn{ display:inline-block; padding:16px 30px; border-radius:var(--nvh-radius); font-weight:700; text-decoration:none; transition:background .2s, transform .2s; }
.nvh-btn--yellow{ background:var(--nvh-yellow); color:var(--nvh-green-900); }
.nvh-btn--yellow:hover{ background:var(--nvh-yellow-600); transform:translateY(-1px); }

/* ---------- HERO ---------- */
.nvh-hero{ position:relative; background-size:cover; background-position:center; padding:150px 0 130px; }
.nvh-hero__overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,38,29,.86), rgba(18,38,29,.78)); }
.nvh-hero__inner{ position:relative; z-index:2; max-width:760px; }
.nvh-hero__title{ color:var(--nvh-white); font-size:clamp(2.4rem,6vw,4.4rem); font-weight:800; margin:0 0 .3em; }
.nvh-hero__rule{ width:56px; height:5px; background:var(--nvh-yellow); border-radius:3px; margin:0 0 28px; }
.nvh-hero__lead{ color:rgba(255,255,255,.9); font-size:1.12rem; margin-bottom:32px; }
.nvh-hero__lead strong{ color:var(--nvh-white); }

/* ---------- Split (texto + imagen alternos) ---------- */
.nvh-split{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.nvh-split--reverse .nvh-split__media{ order:-1; }
.nvh-split__media{ position:relative; }
.nvh-split__media img{ border-radius:var(--nvh-radius); position:relative; z-index:2; box-shadow:0 20px 50px rgba(0,0,0,.12); }
.nvh-accent-box{ position:absolute; right:-22px; bottom:-22px; width:180px; height:120px; background:var(--nvh-yellow); border-radius:var(--nvh-radius); z-index:1; }
.nvh-accent-box--tl{ right:auto; bottom:auto; left:-22px; top:-22px; }

/* ---------- Galería ---------- */
.nvh-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:40px; }
.nvh-gallery__item{ margin:0; overflow:hidden; border-radius:var(--nvh-radius); }
.nvh-gallery__item img{ width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .4s; }
.nvh-gallery__item:hover img{ transform:scale(1.04); }

/* ---------- Beneficios (tarjeta oscura) ---------- */
.nvh-card-dark{ background:var(--nvh-green-800); border-radius:12px; padding:56px; }
.nvh-feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:44px; }
.nvh-feat{ padding:26px; border:1px solid rgba(255,255,255,.12); border-radius:var(--nvh-radius); }
.nvh-feat__icon{ display:inline-grid; place-items:center; width:38px; height:38px; border-radius:50%; border:2px solid var(--nvh-yellow); color:var(--nvh-yellow); font-weight:700; margin-bottom:14px; }
.nvh-feat h3{ color:var(--nvh-white); }
.nvh-feat p{ color:rgba(255,255,255,.8); font-size:.97rem; margin:0; }

/* ---------- Banda CTA intermedia ---------- */
.nvh-cta-band{ background:var(--nvh-green-band); }
.nvh-cta-band h2,.nvh-cta-band p{ color:var(--nvh-white); }
.nvh-cta-band p{ margin-bottom:26px; }

/* ---------- FAQ ---------- */
.nvh-faq{ max-width:820px; margin:32px auto 0; }
.nvh-faq details{ border-bottom:1px solid #e2e0d9; padding:18px 4px; }
.nvh-faq summary{ cursor:pointer; font-weight:700; color:var(--nvh-ink); list-style:none; display:flex; justify-content:space-between; gap:16px; }
.nvh-faq summary::after{ content:'+'; color:var(--nvh-yellow); font-size:1.4rem; line-height:1; }
.nvh-faq details[open] summary::after{ content:'–'; }
.nvh-faq p{ margin:14px 0 4px; }

/* ---------- Enlazado interno (chips) ---------- */
.nvh-links .nvh-chips{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:28px; }
.nvh-chip{ display:inline-block; padding:12px 22px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:40px; color:var(--nvh-white); text-decoration:none; font-weight:600; transition:background .2s, border-color .2s; }
.nvh-chip:hover{ background:var(--nvh-yellow); color:var(--nvh-green-900); border-color:var(--nvh-yellow); }
.nvh-chip--parent{ background:var(--nvh-yellow); color:var(--nvh-green-900); border-color:var(--nvh-yellow); }
.nvh-chip--static{ cursor:default; }
.nvh-chip--static:hover{ background:rgba(255,255,255,.06); color:var(--nvh-white); border-color:rgba(255,255,255,.18); }

/* ---------- Prosa (contenido libre editor) ---------- */
.nvh-prose{ max-width:820px; margin-inline:auto; }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .nvh-section{ padding:60px 0; }
  .nvh-split{ grid-template-columns:1fr; gap:32px; }
  .nvh-split--reverse .nvh-split__media{ order:0; }
  .nvh-gallery{ grid-template-columns:repeat(2,1fr); }
  .nvh-feats{ grid-template-columns:1fr; }
  .nvh-card-dark{ padding:32px; }
  .nvh-hero{ padding:110px 0 90px; }
}
@media (max-width:520px){
  .nvh-gallery{ grid-template-columns:1fr; }
  .nvh-accent-box{ display:none; }
}

/* ================================================================
   OVERRIDES DE ALTA ESPECIFICIDAD (anclados a #content)
   Un ID (#content) gana a cualquier .elementor-kit-XXX del kit
   global de Elementor. Se cubre además:
     - color heredado en <span> internos del H1
     - -webkit-text-fill-color (degradados de texto de Elementor
       que anulan el color normal y dejan el texto oscuro)
   ================================================================ */

/* ---- HERO: H1 y subtítulo SIEMPRE blancos ---- */
#content.nvh-loc .nvh-hero .nvh-hero__title,
#content.nvh-loc .nvh-hero .nvh-hero__title *,
#content.nvh-loc .nvh-hero__inner h1{
	color:#ffffff !important;
	-webkit-text-fill-color:#ffffff !important;
	background:none !important;
	-webkit-background-clip:border-box !important;
	text-shadow:none;
}
#content.nvh-loc .nvh-hero .nvh-hero__lead,
#content.nvh-loc .nvh-hero .nvh-hero__lead *{
	color:rgba(255,255,255,.92) !important;
	-webkit-text-fill-color:rgba(255,255,255,.92) !important;
}

/* ---- BOTONES amarillos: texto verde oscuro legible ---- */
#content.nvh-loc a.nvh-btn--yellow,
#content.nvh-loc a.nvh-btn--yellow *,
#content.nvh-loc .nvh-btn--yellow,
#content.nvh-loc button.nvh-btn--yellow{
	color:#12261d !important;
	-webkit-text-fill-color:#12261d !important;
	background:#f0b429 !important;
	background-image:none !important;
	border:none;
	text-shadow:none;
	opacity:1 !important;
}
#content.nvh-loc a.nvh-btn--yellow:hover,
#content.nvh-loc .nvh-btn--yellow:hover{
	color:#12261d !important;
	-webkit-text-fill-color:#12261d !important;
	background:#d99e06 !important;
}

/* ---- BANDA CTA oscura ---- */
#content.nvh-loc .nvh-cta-band h2,
#content.nvh-loc .nvh-cta-band h2 *,
#content.nvh-loc .nvh-cta-band p,
#content.nvh-loc .nvh-cta-band p *{
	color:#ffffff !important;
	-webkit-text-fill-color:#ffffff !important;
}

/* ---- Secciones oscuras genéricas ---- */
#content.nvh-loc .nvh-section--dark h1,
#content.nvh-loc .nvh-section--dark h2,
#content.nvh-loc .nvh-section--dark h3{
	color:#ffffff !important;
	-webkit-text-fill-color:#ffffff !important;
}

/* ---------- Migas de pan Rank Math (dentro del hero) ---------- */
.nvh-hero .nvh-breadcrumbs{ margin:0 0 20px; font-size:.86rem; line-height:1.5; }
.nvh-hero .nvh-breadcrumbs .rank-math-breadcrumb p{ margin:0; }
.nvh-hero .nvh-breadcrumbs a{ color:rgba(255,255,255,.78); text-decoration:none; transition:color .2s; }
.nvh-hero .nvh-breadcrumbs a:hover{ color:var(--nvh-yellow); }
.nvh-hero .nvh-breadcrumbs .separator{ color:rgba(255,255,255,.4); margin:0 8px; }
.nvh-hero .nvh-breadcrumbs .last,
.nvh-hero .nvh-breadcrumbs span[aria-current="page"]{ color:#ffffff; font-weight:600; }
