/*
Theme Name: Everhome
Theme URI: https://everhome.es
Author: Everhome ASC SL
Description: Tema a medida para Everhome, constructora de villas llave en mano (Vinalopó, Alicante). Basado en el mockup HTML aprobado.
Version: 2.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: everhome
*/

/* ---------- reset de margen del footer ---------- */
.wp-site-blocks > footer { margin-block-start: 0; }

/* ---------- tipografía de sección ---------- */
.eh-display { font-size: clamp(2.2rem, 4.2vw, 3.6rem) !important; font-weight: 300 !important; line-height: 1.08; letter-spacing: -0.01em; margin: 0 0 22px; }
.eh-lede { font-size: 1.1rem; line-height: 1.65; max-width: 52ch; color: var(--wp--preset--color--ink-soft); }
.eh-link a { font-weight: 600; text-decoration: none; border-bottom: 1.5px solid var(--wp--preset--color--green); padding-bottom: 2px; }
.eh-link a:hover { border-color: currentColor; }

/* ---------- hero ---------- */
/* El efecto de scroll (foto quieta mientras la página sube) lo mueve
   assets/js/everhome.js con transform; aquí solo el recorte y el degradado. */
.eh-hero { min-height: calc(100svh - 100px) !important; overflow: hidden; }
.eh-hero { background-color: #153c29; background-size: cover; background-position: center; }
.eh-hero .wp-block-cover__video-background { opacity: 0; transition: opacity .3s ease; }
.eh-hero.is-playing .wp-block-cover__video-background { opacity: 1; }
.eh-hero .wp-block-cover__image-background,
.eh-hero .wp-block-cover__video-background,
.eh-hero .wp-block-cover__background,
.eh-hero .wp-block-cover__inner-container { will-change: transform; }
.eh-hero .wp-block-cover__background {
  opacity: 1 !important;
  background: linear-gradient(90deg, rgba(12,26,19,.88) 0%, rgba(12,26,19,.66) 20%, rgba(12,26,19,.22) 36%, rgba(12,26,19,0) 48%) !important;
}
.eh-hero .wp-block-cover__inner-container { max-width: 1200px; }
.eh-hero .wp-block-cover__inner-container > * { max-width: min(360px, 26vw); }
.eh-hero h1 { color: #fff; font-weight: 700 !important; font-size: clamp(1.7rem, 2.7vw, 2.4rem) !important; line-height: 1.08; letter-spacing: -0.01em; margin-bottom: 12px; }
.eh-hero p.eh-hero-sub { color: #EDE9DD; font-size: .95rem; line-height: 1.55; margin-bottom: 20px; }
.eh-hero .wp-block-button__link { padding: 11px 20px; font-size: .9rem; }

/* Frases del relato: capa HTML sincronizada con el vídeo (assets/js/everhome.js). */
.eh-hero-caption {
  position: absolute; right: clamp(24px, 4vw, 64px); bottom: clamp(28px, 6vh, 60px); z-index: 2;
  margin: 0; opacity: 0; pointer-events: none; text-align: left; line-height: 1.2;
  padding: 12px 18px 12px 16px; border-left: 3px solid var(--wp--preset--color--green); border-radius: 4px;
  background: rgba(21,60,41,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(1.3rem, 2.15vw, 2rem);
  color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.5);
}
.eh-hero-sub-moved { display: none; }

/* Móvil y tablet en vertical: texto arriba sobre el cielo, vídeo limpio abajo. */
@media (max-width: 781px), (max-width: 1024px) and (orientation: portrait) {
  .eh-hero { min-height: calc(100svh - 170px) !important; }
  .eh-hero .wp-block-cover__background {
    background: linear-gradient(180deg, rgba(12,26,19,.9) 0%, rgba(12,26,19,.62) 24%, rgba(12,26,19,.18) 44%, rgba(12,26,19,0) 58%) !important;
  }
  .eh-hero .wp-block-cover__inner-container { align-self: flex-start; padding-top: 6px; }
  .eh-hero .wp-block-cover__inner-container > * { max-width: none; }
  .eh-hero-caption { display: none; }
  .eh-hero h1 { font-size: clamp(1.9rem, 7.4vw, 2.6rem) !important; }
  .eh-hero p.eh-hero-sub { display: none; }
  .eh-standout .eh-hero-sub-moved {
    display: block; max-width: 40ch; margin: 0 auto 26px !important; padding-bottom: 22px;
    border-bottom: 1px solid var(--wp--preset--color--line);
    font-weight: 600; color: var(--wp--preset--color--ink); text-align: center;
  }
}

/* ---------- frase destacada: panel que sube sobre el hero ---------- */
.eh-standout { position: relative; z-index: 1; text-align: center; box-shadow: 0 -24px 48px rgba(12,26,19,.28); }
.eh-standout h2 { font-weight: 700 !important; max-width: 16ch; margin-left: auto; margin-right: auto; }
.eh-standout p { color: var(--wp--preset--color--ink-soft); max-width: 56ch; margin-left: auto; margin-right: auto; }

/* ---------- reencuadre: comprar hecha o a medida ---------- */
.eh-path { background: #E1D7C2; }
.eh-path-inner { max-width: 1200px; margin: 0 auto; }
.eh-path-inner > * { margin: 0 !important; }
.eh-path-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 20px 56px; align-items: end; margin-bottom: 36px !important; }
.eh-path-head > *, .eh-path-title > * { margin: 0 !important; }
.eh-path-title .eh-kicker { margin-bottom: 10px !important; }
.eh-path .eh-display { max-width: 18ch; }
.eh-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.eh-compare > * { margin: 0 !important; }
.eh-compare-col { padding: 0 0 22px; background: rgba(248,244,234,.45); }
.eh-compare-col > * { margin: 0 24px 12px !important; }
.eh-compare-col > .eh-compare-photo { margin: 0 0 20px !important; }
.eh-compare-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center bottom; display: block; }
.eh-compare-col h3 { font-size: 1.35rem; font-weight: 500 !important; }
.eh-compare-col p { font-size: .98rem; line-height: 1.6; color: var(--wp--preset--color--ink-soft); }
.eh-compare-col.is-ours { background: var(--wp--preset--color--card); box-shadow: inset 0 -3px 0 var(--wp--preset--color--green-deep); }
.eh-compare-col.is-ours h3 { color: var(--wp--preset--color--green-deep); }
.eh-compare-col .eh-link { margin-top: 18px !important; }
.eh-but { font-weight: 700; color: var(--wp--preset--color--ink); }
@media (max-width: 781px) {
  .eh-path-head { grid-template-columns: 1fr; }
  .eh-compare { grid-template-columns: 1fr; }
}

/* ---------- ritmo vertical común: menos aire muerto entre bloques ---------- */
.wp-site-blocks > .alignfull:not(.eh-hero):not(.eh-standout):not(.eh-muro-hero) {
  padding-top: clamp(56px, 6vw, 84px) !important;
  padding-bottom: clamp(56px, 6vw, 84px) !important;
}
.eh-standout { padding-top: 48px !important; padding-bottom: 48px !important; }

/* ---------- pensamientos en voz alta ---------- */
.eh-thought-card {
  background: var(--wp--preset--color--card);
  border-radius: 14px;
  box-shadow: 0 12px 28px -18px rgba(34,29,21,.35);
  padding: 30px 28px 26px;
}
.eh-thought-card .eh-q {
  display: block;
  font-family: var(--wp--preset--font-family--heading);
  font-style: italic;
  font-weight: 500;
  margin-bottom: 18px;
}
.eh-thought-card .eh-a {
  display: block;
  font-weight: 600;
  color: var(--wp--preset--color--green-deep);
  padding-top: 14px;
  border-top: 1px solid var(--wp--preset--color--line);
}
.eh-thoughts-close { text-align: center; font-style: italic; }
.eh-thoughts-close em { color: var(--wp--preset--color--green-deep); }

/* ---------- kicker ---------- */
.eh-kicker {
  color: var(--wp--preset--color--clay);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.03em;
  text-transform: none;
}

/* ---------- así construimos (bloque oscuro) ---------- */
.eh-build { color: var(--wp--preset--color--card); }
.eh-build-inner { max-width: 1200px; margin: 0 auto; }
.eh-build .eh-display { color: #fff; max-width: 14ch; margin-bottom: 36px; }
.eh-build-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 56px; }
.eh-build-grid > * { margin: 0 !important; }
.eh-build-item { position: relative; padding: 26px 0 34px; border-top: 1px solid rgba(248,244,234,.22); }
.eh-build-item::before {
  content: ""; position: absolute; top: -1px; left: 0; width: 48px; height: 3px;
  background: var(--wp--preset--color--green); transition: width .45s ease;
}
.eh-build-item:hover::before { width: 100%; }
.eh-build-item h3 { color: #fff; font-weight: 300 !important; font-size: clamp(1.6rem, 2.3vw, 2.1rem); line-height: 1.12; margin: 0 0 14px; }
.eh-build-item p { color: #B9C9BE; font-size: 1rem; line-height: 1.6; margin: 0; max-width: 34ch; }
@media (max-width: 900px) { .eh-build-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .eh-build-grid { grid-template-columns: 1fr; } .eh-build .eh-display { margin-bottom: 36px; } }

/* ---------- obra: fotos a pantalla completa ---------- */
.eh-obra { --eh-gutter: clamp(24px, 4vw, 64px); background: var(--wp--preset--color--card); }
.eh-obra > * { margin-block: 0 !important; }
.eh-obra-head { padding: 0 var(--eh-gutter) 32px; }
.eh-obra-head .eh-display { max-width: 16ch; }
.eh-obra-track {
  position: relative; display: flex; gap: 18px;
  overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  padding: 0 var(--eh-gutter); scroll-padding: 0 var(--eh-gutter);
  scrollbar-width: none;
}
.eh-obra-track::-webkit-scrollbar { display: none; }
.eh-obra-track > * { margin: 0 !important; }
.eh-obra-slide { flex: 0 0 min(58vw, 780px); aspect-ratio: 3 / 2; scroll-snap-align: start; }
.eh-obra-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eh-obra-nav { display: flex; align-items: center; gap: 14px; padding: 20px var(--eh-gutter) 0; }
.eh-obra-dots { display: flex; gap: 8px; margin-left: 12px; }
.eh-obra-dot {
  width: 28px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; position: relative;
}
.eh-obra-dot::after {
  content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 3px; margin-top: -1.5px;
  background: var(--wp--preset--color--line); transition: background-color .2s;
}
.eh-obra-dot[aria-current="true"]::after { background: var(--wp--preset--color--ink); }
.eh-obra-btn {
  width: 52px; height: 52px; display: grid; place-items: center; cursor: pointer;
  background: transparent; color: var(--wp--preset--color--ink);
  border: 1px solid var(--wp--preset--color--ink); border-radius: 50%;
  transition: background-color .2s, color .2s, opacity .2s;
}
.eh-obra-btn:hover:not(:disabled) { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--card); }
.eh-obra-btn:disabled { opacity: .3; cursor: default; }
.eh-obra-count { font-size: .95rem; color: var(--wp--preset--color--ink-soft); font-variant-numeric: tabular-nums; }
@media (max-width: 781px) { .eh-obra-slide { flex-basis: 80vw; aspect-ratio: 4 / 5; } .eh-obra-track { gap: 10px; } .eh-obra-count { display: none; } }

/* ---------- el muro: texto + foto en horizontal ---------- */
.eh-wall.wp-block-columns { gap: clamp(32px, 6vw, 88px); }
.eh-wall-photo { display: flex; flex-wrap: wrap; gap: 8px; }
.eh-wall-photo > * { margin: 0 !important; }
.eh-wall-photo > figure { flex: 0 0 100%; margin-bottom: 6px !important; }
.eh-wall-photo img { width: 100%; height: auto; display: block; }
.eh-wall-label {
  flex: 1 1 0; padding: 12px 14px; font-size: .9rem; line-height: 1.3;
  background: var(--wp--preset--color--card); color: var(--wp--preset--color--ink-soft);
  border-top: 3px solid #6B6B6B;
}
.eh-wall-label strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 1.35rem; font-weight: 600; color: var(--wp--preset--color--ink); }
.eh-wall-label.is-core { flex-grow: 1.4; border-top-color: #B9B3A8; }
@media (max-width: 600px) { .eh-wall-label { font-size: .8rem; padding: 10px; } .eh-wall-label strong { font-size: 1.1rem; } }

/* ---------- ensayos: termografía a pantalla completa ---------- */
.eh-proof .wp-block-cover__background {
  opacity: 1 !important;
  background: linear-gradient(90deg, rgba(20,17,12,.92) 0%, rgba(20,17,12,.78) 38%, rgba(20,17,12,.2) 72%, rgba(20,17,12,0) 100%) !important;
}
.eh-proof { min-height: 68svh !important; }
.eh-proof .wp-block-cover__inner-container { max-width: 1200px; margin: 0 auto; }
.eh-proof .wp-block-cover__inner-container > * { max-width: 560px; }
.eh-proof .eh-display { color: #fff; }
.eh-proof .eh-lede { color: #E4DDCD; }
.eh-proof .eh-link a { color: #fff; }
.eh-thermal-flag {
  display: inline-block; margin: 8px 0 26px;
  border: 1px solid rgba(255,255,255,.55); color: #fff;
  padding: 9px 16px; font-size: 0.9rem; font-weight: 600;
}

/* ---------- trayectoria / archivo ---------- */
.eh-archive-wrap { position: relative; box-shadow: 0 10px 20px rgba(0,0,0,.19), 0 6px 6px rgba(0,0,0,.23); }
.eh-archive-wrap img { aspect-ratio: 5/4; object-fit: cover; width: 100%; }
.eh-archive-stamp {
  position: absolute; top: 22px; right: 22px;
  border: 1px solid rgba(255,255,255,.7); color: #fff; background: rgba(0,0,0,.35);
  font-size: 0.72rem; padding: 5px 10px; transform: rotate(3deg); letter-spacing: 0.03em;
}
.eh-archive-cap {
  position: absolute; bottom: 24px; left: 24px; right: 24px;
  color: #EDE9DD; font-size: 0.85rem;
}

/* ---------- modelos ---------- */
.eh-models.wp-block-columns { gap: 1px; background: var(--wp--preset--color--line); border: 1px solid var(--wp--preset--color--line); }
.eh-model-card { background: var(--wp--preset--color--card); padding: 34px; }
.eh-model-card .eh-for { font-size: 0.84rem; color: var(--wp--preset--color--ink-soft); margin-bottom: 6px; }
.eh-model-card .eh-price { font-weight: 700; font-size: 1.9rem; color: var(--wp--preset--color--green-deep); margin: 6px 0 16px; }
.eh-model-card .eh-specs { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 0.86rem; color: var(--wp--preset--color--ink-soft); border-top: 1px solid var(--wp--preset--color--line); padding-top: 16px; }

/* ---------- FAQ ---------- */
.eh-faq-item { border-bottom: 1px solid var(--wp--preset--color--line); padding: 22px 0; }
.eh-faq-item h3 { font-family: var(--wp--preset--font-family--heading); font-weight: 600 !important; font-size: 1.1rem; margin-bottom: 6px; }
.eh-faq-item p { margin: 0; color: var(--wp--preset--color--ink-soft); }

/* ---------- timeline curvo (Cómo trabajamos) ---------- */
.eh-timeline { position: relative; }
.eh-tl-spine { position: relative; padding-left: 52px; }
.eh-tl-spine::before { content: ""; position: absolute; left: 19px; top: 20px; bottom: 20px; width: 2px; background: var(--wp--preset--color--green-deep); }
.eh-tl-row { position: relative; padding: 0 0 30px; }
.eh-tl-row .eh-dot {
  position: absolute; left: -52px; top: 0; width: 40px; height: 40px; border-radius: 50%;
  background: var(--wp--preset--color--card); border: 2px solid var(--wp--preset--color--green-deep);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wp--preset--font-family--heading); font-weight: 700; color: var(--wp--preset--color--green-deep); font-size: 0.9rem;
}
.eh-tl-row .eh-lbl { font-weight: 600; padding-top: 8px; }
.eh-tl-fork-label {
  display: inline-block; margin: 0 0 20px; padding: 8px 16px;
  background: var(--wp--preset--color--stone); border: 1px solid var(--wp--preset--color--ink-soft); border-radius: 20px;
  font-size: 0.82rem; font-weight: 600;
}
.eh-tl-fork { display: flex; gap: 14px; margin-bottom: 20px; }
.eh-tl-branch-col { flex: 1; position: relative; padding-left: 34px; }
.eh-tl-branch-col::before { content: ""; position: absolute; left: 13px; top: 8px; bottom: 8px; width: 2px; background: var(--wp--preset--color--green-deep); }
.eh-tl-branch-col.si::before { background: var(--wp--preset--color--clay); }
.eh-tl-branch-col .eh-tag { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 10px; display: block; }
.eh-tl-branch-col.si .eh-tag { color: var(--wp--preset--color--clay); }
.eh-tl-branch-col.no .eh-tag { color: var(--wp--preset--color--green-deep); }
.eh-tl-branch-col .eh-step { position: relative; margin-bottom: 14px; font-size: 0.9rem; color: var(--wp--preset--color--ink-soft); }
.eh-tl-branch-col .eh-step::before {
  content: ""; position: absolute; left: -25px; top: 4px; width: 9px; height: 9px; border-radius: 50%;
  background: var(--wp--preset--color--card); border: 2px solid var(--wp--preset--color--green-deep);
}
.eh-tl-branch-col.si .eh-step::before { border-color: var(--wp--preset--color--clay); border-style: dashed; }
.eh-tl-branch-col .eh-step b { color: var(--wp--preset--color--ink); display: block; font-weight: 600; }

/* ---------- lista de gestión (Cómo trabajamos) ---------- */
.eh-manage-row { display: grid; grid-template-columns: 220px 1fr; gap: 28px; padding: 24px 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.eh-manage-row .eh-k { font-weight: 600; }
.eh-manage-row.is-layout-constrained > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; margin-block: 0 !important; }
.eh-manage-row p { margin: 0; color: var(--wp--preset--color--ink-soft); }
@media(max-width:600px){ .eh-manage-row { grid-template-columns: 1fr; gap: 6px; } }

/* ---------- cifra destacada (2 obras) ---------- */
.eh-big-stat { font-family: var(--wp--preset--font-family--heading); font-weight: 700 !important; font-size: 3.4rem; color: var(--wp--preset--color--green-deep); line-height: 1; }

/* ---------- logo cabecera ---------- */
.eh-logo-block { line-height: 1.1; }
.eh-logo-block > * { margin-block: 0 !important; }
.eh-logo { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.3rem; color: #fff; letter-spacing: .01em; }
.eh-logo b { color: var(--wp--preset--color--green); font-weight: 700; }
.eh-logo-block > .eh-logo-tag { font-size: .68rem; color: #B9C9BE; letter-spacing: .03em; margin-top: 3px !important; }

/* ---------- accesibilidad y movimiento ---------- */
a:focus-visible, button:focus-visible { outline: 2px solid var(--wp--preset--color--green); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ---------- pie: enlaces legales ---------- */
.eh-footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 24px; font-size: .88rem; margin-bottom: 14px !important; }
.eh-footer-links a { color: var(--wp--preset--color--ink-soft); text-decoration: none; }
.eh-footer-links a:hover { color: var(--wp--preset--color--ink); text-decoration: underline; }

/* ---------- páginas legales ---------- */
.eh-legal-date { color: var(--wp--preset--color--ink-soft); font-size: .9rem; }
.wp-block-post-content > h2.wp-block-heading:not([class*="font-size"]) { font-size: 1.45rem; font-weight: 500; margin-top: 2.2em; margin-bottom: .5em; }
.wp-block-post-content > .wp-block-list li { margin-bottom: .5em; }

/* ---------- páginas interiores (qué incluye, preguntas…) ---------- */
.wp-block-post-content > .eh-lede { font-size: 1.2rem; max-width: 60ch; color: var(--wp--preset--color--ink); }
.wp-block-post-content > h2.eh-page-h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important; font-weight: 300 !important; margin: 2.2em 0 .6em; }
.wp-block-post-content > h3.eh-page-h3 { font-size: 1.2rem; font-weight: 600 !important; margin: 1.8em 0 .2em; }
.eh-small { font-size: .92rem; color: var(--wp--preset--color--ink-soft); }
.eh-gamas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 22px 0 14px !important; }
.eh-gamas > * { margin: 0 !important; }
.eh-gama { background: var(--wp--preset--color--card); padding: 22px 22px 18px; border-top: 3px solid var(--wp--preset--color--green-deep); }
.eh-gama > * { margin: 0 !important; }
.eh-gama-name { font-weight: 600; color: var(--wp--preset--color--ink-soft); font-size: .95rem; }
.eh-gama-price { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 600; color: var(--wp--preset--color--green-deep); margin: 6px 0 4px !important; }
.eh-gama-note { font-size: .88rem; color: var(--wp--preset--color--ink-soft); }
@media (max-width: 600px) { .eh-gamas { grid-template-columns: 1fr; } }

.eh-faq { border-bottom: 1px solid var(--wp--preset--color--line); margin: 0 !important; padding: 0; }
.eh-faq summary {
  list-style: none; cursor: pointer; position: relative; padding: 20px 44px 20px 0;
  font-family: var(--wp--preset--font-family--heading); font-size: 1.15rem; font-weight: 500; color: var(--wp--preset--color--ink);
}
.eh-faq summary::-webkit-details-marker { display: none; }
.eh-faq summary::after {
  content: ""; position: absolute; right: 8px; top: 50%; width: 10px; height: 10px; margin-top: -8px;
  border-right: 2px solid var(--wp--preset--color--green-deep); border-bottom: 2px solid var(--wp--preset--color--green-deep);
  transform: rotate(45deg); transition: transform .2s ease;
}
.eh-faq[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.eh-faq summary:hover { color: var(--wp--preset--color--green-deep); }
.eh-faq > p { margin: 0 0 14px; color: var(--wp--preset--color--ink-soft); max-width: 68ch; }
.eh-faq > p:last-child { margin-bottom: 22px; }

.wp-block-post-content > .eh-page-cierre { margin-top: 64px; padding: 56px 30px; }
.eh-page-cierre h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem) !important; font-weight: 300 !important; max-width: 22ch; margin: 0 auto 24px !important; }

/* ---------- página de modelos ---------- */
.eh-modelos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 36px 0 12px !important; }
.eh-modelos > *, .eh-modelo > *, .eh-modelo-gamas > * { margin: 0 !important; }
.eh-modelo { background: var(--wp--preset--color--card); display: flex; flex-direction: column; }
.eh-modelo > :not(.eh-modelo-foto) { padding-left: 26px; padding-right: 26px; }
.eh-modelo-foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.eh-modelo-para { padding-top: 22px; font-size: .9rem; font-weight: 600; color: var(--wp--preset--color--clay); }
.wp-block-post-content h2.eh-modelo-nombre { font-size: clamp(1.8rem, 3vw, 2.4rem) !important; font-weight: 300 !important; margin-top: 6px !important; }
.eh-modelo-desc { color: var(--wp--preset--color--ink-soft); margin-top: 10px !important; }
.eh-modelo-specs { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .9rem; color: var(--wp--preset--color--ink); margin-top: 14px !important; }
.eh-modelo-specs span + span::before { content: "·"; margin-right: 18px; color: var(--wp--preset--color--line); }
.eh-modelo-gamas { margin-top: auto !important; padding-top: 22px; padding-bottom: 24px; }
.eh-modelo-gamas p { display: flex; justify-content: space-between; align-items: baseline; padding: 11px 0; border-top: 1px solid var(--wp--preset--color--line); margin: 0 !important; }
.eh-modelo-gamas strong { font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; font-weight: 600; color: var(--wp--preset--color--green-deep); }
.eh-modelo-gamas .is-recomendada { background: rgba(47,168,118,.08); margin: 0 -26px !important; padding: 11px 26px; }
.eh-modelo-gamas em { font-style: normal; font-size: .75rem; font-weight: 600; color: var(--wp--preset--color--green-deep); margin-left: 8px; }
@media (max-width: 781px) { .eh-modelos { grid-template-columns: 1fr; } }
.wp-block-post-content > .eh-modelos { max-width: none !important; margin-left: auto !important; margin-right: auto !important; width: min(1120px, calc(100vw - 60px)); position: relative; left: 50%; transform: translateX(-50%); }
.eh-modelo-gamas { padding-bottom: 8px; }
.eh-modelo-nota { padding-bottom: 24px; font-size: .82rem; line-height: 1.5; }
.eh-modelo-nota a { color: var(--wp--preset--color--ink-soft); text-decoration: underline; text-decoration-color: var(--wp--preset--color--line); text-underline-offset: 3px; }
.eh-modelo-nota a:hover { color: var(--wp--preset--color--ink); }

/* ---------- formulario de solicitud de llamada ---------- */
.eh-form { background: var(--wp--preset--color--card); color: var(--wp--preset--color--ink); padding: clamp(22px, 4vw, 36px); margin-top: 32px !important; text-align: left; }
.eh-form a { color: var(--wp--preset--color--green-deep); }
.eh-form-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.eh-form-entrada { font-weight: 600; margin: 0 0 16px; }
.eh-form-progreso { height: 4px; background: var(--wp--preset--color--line); margin-bottom: 8px; display: none; }
.eh-form-progreso span { display: block; height: 100%; width: 0; background: var(--wp--preset--color--green); transition: width .3s ease; }
.eh-form-paso-texto { font-size: .82rem; color: var(--wp--preset--color--ink-soft); margin: 0 0 14px; display: none; }
.eh-form.is-pasos .eh-form-progreso, .eh-form.is-pasos .eh-form-paso-texto { display: block; }
.eh-form-paso { border: 0; padding: 0; margin: 0 0 24px; min-width: 0; }
.eh-form-paso[hidden] { display: none; }
.eh-form-paso legend { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.3rem, 2.4vw, 1.6rem); font-weight: 500; padding: 0; margin-bottom: 14px; }
.eh-form-ayuda { font-size: .88rem; color: var(--wp--preset--color--ink-soft); margin: -6px 0 14px; }
.eh-opciones { display: grid; gap: 10px; }
.eh-opciones-linea { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); margin-bottom: 14px; }
.eh-opcion { display: block; cursor: pointer; }
.eh-opcion input { position: absolute; opacity: 0; }
.eh-opcion span { display: block; padding: 14px 16px; border: 1px solid var(--wp--preset--color--line); background: #fff; transition: border-color .15s, background-color .15s; }
.eh-opcion:hover span { border-color: var(--wp--preset--color--green-deep); }
.eh-opcion input:checked + span { border-color: var(--wp--preset--color--green-deep); background: rgba(47,168,118,.1); box-shadow: inset 3px 0 0 var(--wp--preset--color--green-deep); }
.eh-opcion input:focus-visible + span { outline: 2px solid var(--wp--preset--color--green); outline-offset: 2px; }
.eh-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; margin-bottom: 18px; }
.eh-campo { display: flex; flex-direction: column; gap: 6px; font-size: .88rem; font-weight: 600; }
.eh-campo input, .eh-campo select { font: inherit; font-weight: 400; font-size: 1rem; padding: 12px; border: 1px solid var(--wp--preset--color--line); background: #fff; color: var(--wp--preset--color--ink); border-radius: 0; }
.eh-campo input:focus, .eh-campo select:focus { outline: 2px solid var(--wp--preset--color--green); outline-offset: 0; border-color: var(--wp--preset--color--green-deep); }
.eh-form-sub { font-size: .88rem; font-weight: 600; margin: 4px 0 8px; }
.eh-casilla { display: flex; gap: 10px; align-items: flex-start; font-size: .88rem; margin: 10px 0; cursor: pointer; }
.eh-casilla input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--wp--preset--color--green-deep); }
.eh-form-enviar, .eh-form-siguiente { background: var(--wp--preset--color--green); color: #fff; border: 0; padding: 14px 26px; font: inherit; font-weight: 600; cursor: pointer; }
.eh-form-enviar { width: 100%; margin: 14px 0 12px; }
.eh-form-enviar:hover, .eh-form-siguiente:hover { background: var(--wp--preset--color--green-deep); }
.eh-form-atras { background: transparent; border: 0; padding: 14px 0; font: inherit; color: var(--wp--preset--color--ink-soft); cursor: pointer; text-decoration: underline; }
.eh-form-nav { display: flex; justify-content: space-between; align-items: center; }
.eh-form-nav .eh-form-siguiente { margin-left: auto; }
.eh-form-legal { font-size: .74rem; line-height: 1.5; color: var(--wp--preset--color--ink-soft); margin: 8px 0 0; }
.eh-form-whatsapp { font-size: .88rem; color: var(--wp--preset--color--ink-soft); margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--wp--preset--color--line); text-align: center; }
.eh-form-error { background: #fbe9e5; border-left: 3px solid var(--wp--preset--color--clay); padding: 10px 14px; font-size: .9rem; }
.eh-form-gracias-titulo { font-family: var(--wp--preset--font-family--heading); font-size: 1.8rem; font-weight: 500; margin: 0 0 8px; }
@media (max-width: 600px) { .eh-campos { grid-template-columns: 1fr; } }

/* ---------- página del muro ---------- */

/* Portada: la foto manda, el titular se apoya sobre ella. */
.eh-muro-hero { align-items: flex-end; }
.eh-muro-hero .wp-block-cover__background { background: linear-gradient(to top, rgba(12,26,19,.9) 0%, rgba(12,26,19,.74) 20%, rgba(12,26,19,.32) 38%, rgba(12,26,19,0) 52%) !important; opacity: 1 !important; }
.eh-muro-hero .wp-block-cover__image-background { object-position: 50% 54%; }
.eh-muro-hero .wp-block-cover__inner-container { max-width: 1120px; width: 100%; margin: auto auto 0; align-self: flex-end; text-align: left; padding-bottom: clamp(20px, 3vw, 44px); }
.eh-muro-hero h1 { color: #fff; font-weight: 300; font-size: clamp(1.8rem, 3.2vw, 2.9rem); line-height: 1.08; max-width: 24ch; margin: 0 0 14px; text-shadow: 0 1px 14px rgba(12,26,19,.45); }
.eh-muro-hero .eh-lede { color: #D7E3DA; max-width: 46ch; margin: 0; }

/* Bandas a sangre dentro del contenido: el main deja 30 px a cada lado. */
.eh-muro-main > .wp-block-post-content { max-width: none !important; width: 100%; }
.wp-block-post-content > .eh-band { width: calc(100% + 60px); max-width: none !important; margin: 0 0 0 -30px !important; padding: clamp(60px, 7vw, 104px) 30px; }
.eh-band-stone { background: var(--wp--preset--color--stone); }
.eh-band-stone + .eh-band-stone { padding-top: 0 !important; }
.eh-band-deep { background: var(--wp--preset--color--green-deep); color: var(--wp--preset--color--card); }
.eh-band-inner { max-width: 1120px; margin: 0 auto; }
.eh-band > *, .eh-band-inner > * { margin-top: 0 !important; }
.eh-band .eh-display { font-weight: 300; font-size: clamp(1.8rem, 3.2vw, 2.8rem); line-height: 1.1; max-width: 20ch; margin-bottom: 28px !important; }
.eh-band-deep .eh-display, .eh-band-deep strong { color: #fff; }
.eh-band-deep p { color: #C7D6CC; }
.eh-band .eh-lede { max-width: 58ch; }
.eh-band-deep .eh-lede { color: #D7E3DA; }
.eh-band p { max-width: 66ch; }

/* S2 - la pieza: foto grande con los rótulos encima. */
.eh-muro-dos { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 60px); align-items: center; }
.eh-muro-dos > * { margin: 0 !important; }
.eh-muro-texto > * { margin-top: 0 !important; }
.eh-muro-texto .eh-small { margin-top: 20px !important; }
.eh-cotas > figure { margin: 0 !important; }
.eh-cotas img { width: 100%; height: auto; display: block; }

/* Rótulos: línea fina que sube hasta su capa. La foto va recortada al bloque (9:8), 1 % de alto = 0,889cqw. */
.eh-cotas { position: relative; container-type: inline-size; }
.eh-cotas > .eh-cota {
  position: absolute; margin: 0 !important; white-space: nowrap; max-width: none;
  font-size: clamp(.74rem, 2.4cqw, .85rem); line-height: 1.25; color: var(--wp--preset--color--ink);
  background: rgba(237,230,214,.95); padding: 9px 14px 10px; border-left: 2px solid var(--wp--preset--color--green);
}
.eh-cota strong { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(1.15rem, 4cqw, 1.4rem); line-height: 1.05; margin-bottom: 2px; }
.eh-cota::before { content: ""; position: absolute; left: -2px; bottom: 100%; width: 2px; background: var(--wp--preset--color--green); transform-origin: 50% 100%; }
.eh-cota-ext { left: 35%; top: 64%; }
.eh-cota-ext::before { height: 8.9cqw; }
.eh-cota-hor { left: 24%; top: 75%; }
.eh-cota-hor::before { height: 18.7cqw; }
.eh-cota-int { left: 14%; top: 86%; }
.eh-cota-int::before { height: 28.4cqw; }
/* Único momento animado de la página: las líneas se dibujan al entrar. */
.eh-cotas.eh-anim > .eh-cota { opacity: 0; }
.eh-cotas.eh-anim > .eh-cota::before { transform: scaleY(0); }
.eh-cotas.eh-anim.is-in > .eh-cota { opacity: 1; transition: opacity .35s ease .45s; }
.eh-cotas.eh-anim.is-in > .eh-cota::before { transform: scaleY(1); transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.eh-cotas.eh-anim.is-in > .eh-cota-hor::before { transition-delay: .12s; }
.eh-cotas.eh-anim.is-in > .eh-cota-int::before { transition-delay: .24s; }
.eh-cotas.eh-anim.is-in > .eh-cota-hor { transition-delay: .55s; }
.eh-cotas.eh-anim.is-in > .eh-cota-int { transition-delay: .65s; }
@media (prefers-reduced-motion: reduce) {
  .eh-cotas.eh-anim > .eh-cota { opacity: 1; }
  .eh-cotas.eh-anim > .eh-cota::before { transform: none; }
}

/* S3 - tres capas sobre verde. */
.eh-capas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(24px, 4vw, 56px); }
.eh-capas > *, .eh-capa > * { margin: 0 !important; }
.eh-capa { padding: 24px 0 30px; border-top: 1px solid rgba(248,244,234,.22); }
.eh-capa-titulo strong { font-family: var(--wp--preset--font-family--heading); font-weight: 400; font-size: clamp(1.25rem, 1.9vw, 1.6rem); line-height: 1.15; display: block; margin-bottom: 12px; }
.eh-capa p:last-child { font-size: 1rem; }
.eh-muro-frase { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.3rem, 2.3vw, 1.75rem); line-height: 1.32; color: #fff !important; max-width: 30ch !important; margin-top: 44px !important; border-left: 2px solid var(--wp--preset--color--green); padding-left: 22px; }

/* S4 - bodega: foto a sangre por un lado. */
.wp-block-post-content > .eh-muro-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding-top: 0 !important; padding-bottom: 0 !important; padding-left: 0 !important; }
.eh-muro-split > * { margin: 0 !important; }
.eh-split-foto figure { margin: 0 !important; }
.eh-split-foto img { width: 100%; height: 100%; min-height: clamp(300px, 46vw, 560px); object-fit: cover; display: block; }
.eh-split-texto { padding: clamp(48px, 6vw, 88px) 30px clamp(48px, 6vw, 88px) 0; max-width: 620px; }
.eh-split-texto > * { margin-top: 0 !important; }
.eh-split-texto p + p { margin-top: 16px !important; }

/* S6 - lo que se nota. */
.eh-vivir { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(20px, 3vw, 40px); }
.eh-vivir > *, .eh-vivir-item > * { margin: 0 !important; }
.eh-vivir-item { padding: 20px 0 26px; border-top: 1px solid var(--wp--preset--color--line); }
.eh-vivir-k strong { font-family: var(--wp--preset--font-family--heading); font-weight: 400; font-size: 1.25rem; display: block; margin-bottom: 8px; }
.eh-vivir-item p:last-child { font-size: .98rem; color: var(--wp--preset--color--ink-soft); }
.eh-muro-vivir .eh-small { margin-top: 26px !important; }

/* S7 - secuencia de obra: cinco pasos en línea. */
.eh-pasos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 clamp(14px, 1.6vw, 24px); }
.eh-pasos > *, .eh-paso > * { margin: 0 !important; }
.eh-paso { display: flex; flex-direction: column; }
.eh-paso figure { margin: 0 0 18px !important; }
.eh-paso img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.eh-paso-num { position: relative; font-family: var(--wp--preset--font-family--heading); font-size: .95rem; color: var(--wp--preset--color--ink-soft); padding-top: 14px; border-top: 1px solid var(--wp--preset--color--line); }
.eh-paso-num::before { content: ""; position: absolute; top: -4px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--wp--preset--color--green-deep); }
.eh-paso-titulo strong { font-family: var(--wp--preset--font-family--heading); font-weight: 400; font-size: 1.18rem; line-height: 1.2; display: block; margin-top: 6px; }
.eh-paso-desc { font-size: .93rem; line-height: 1.55; color: var(--wp--preset--color--ink-soft); margin-top: 8px !important; }

.eh-muro-cierre { text-align: center; }
.eh-muro-cierre .eh-display { max-width: 22ch; margin: 0 auto 28px !important; }
.eh-muro-cierre .wp-block-buttons { justify-content: center; }

@media (max-width: 1000px) {
  .eh-vivir { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .eh-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 20px; }
}
@media (max-width: 781px) {
  .eh-muro-dos, .eh-capas, .wp-block-post-content > .eh-muro-split { grid-template-columns: 1fr; }
  .wp-block-post-content > .eh-muro-split { padding-right: 0 !important; }
  .eh-muro-s2 .eh-cotas { order: 2; margin-top: 32px !important; }
  .eh-split-texto { padding: clamp(36px, 8vw, 56px) 30px; max-width: none; }
  .eh-split-foto img { min-height: 58vw; }
  .eh-muro-hero .eh-lede { max-width: none; }
}
/* Móvil: la foto es casi tan alargada como el hueco, así que recortar no sirve
   y el titular acababa cruzando el bloque. Foto arriba, texto en banda verde debajo. */
@media (max-width: 700px) {
  .eh-muro-hero { display: block; min-height: 0 !important; padding: 0 !important; background: var(--wp--preset--color--green-deep); }
  .eh-muro-hero .wp-block-cover__background { display: none; }
  .eh-muro-hero .wp-block-cover__image-background { position: relative; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 62%; }
  .eh-muro-hero .wp-block-cover__inner-container { max-width: none; width: auto; margin: 0; padding: 26px 30px 34px; }
  .eh-muro-hero h1 { text-shadow: none; margin-bottom: 12px; }
}

/* Pantallas estrechas: la foto se queda pequeña y los rótulos se solaparían.
   Debajo de 700 px pasan a leyenda bajo la foto, que se lee sin ampliar. */
@media (max-width: 700px) {
  .eh-cotas { display: flex; flex-direction: column; gap: 10px; }
  .eh-cotas > figure { margin: 0 0 6px !important; }
  .eh-cotas > .eh-cota { position: static; white-space: normal; background: transparent; padding: 2px 0 2px 14px; font-size: .95rem; }
  .eh-cotas > .eh-cota strong { display: inline; font-size: 1.3rem; margin-right: 8px; }
  .eh-cotas > .eh-cota::before { display: none; }
  .eh-cotas.eh-anim > .eh-cota { opacity: 1; }
}

@media (max-width: 560px) {
  .eh-vivir, .eh-pasos { grid-template-columns: 1fr; }
}

/* ---------- llamada a la acción: cabecera, menú y botón flotante ---------- */
/* En el escritorio manda el botón de la cabecera; el enlace del menú sobra. */
.wp-block-navigation .eh-nav-cta { display: none !important; }

@media (max-width: 781px) {
  /* En el móvil el botón verde de la cabecera ocupaba una franja entera
     y repetía la llamada de la portada: se va al menú y al botón flotante. */
  header.wp-block-template-part .wp-block-buttons { display: none; }
  .wp-block-navigation .eh-nav-cta { display: block !important; margin-top: 6px; }
  .eh-nav-cta a {
    display: inline-block; background: var(--wp--preset--color--green); color: #fff !important;
    padding: 12px 22px; font-weight: 600; text-decoration: none;
  }
}

.eh-flotante { display: none; }
@media (max-width: 781px) {
  .eh-flotante {
    display: block; position: fixed; z-index: 30; left: 16px; right: 16px; bottom: 14px;
    padding: 15px 18px; text-align: center; text-decoration: none;
    background: var(--wp--preset--color--green); color: #fff; font-weight: 600; font-size: 1rem;
    box-shadow: 0 8px 24px -10px rgba(12,26,19,.75);
    opacity: 0; visibility: hidden; transform: translateY(12px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
  }
  .eh-flotante.is-visible { opacity: 1; visibility: visible; transform: none; }
  /* Que no tape el final de la página ni el propio formulario. */
  .wp-site-blocks > footer { padding-bottom: 86px; }
}
@media (prefers-reduced-motion: reduce) { .eh-flotante { transition: none; } }
