/* ==========================================================================
   Costa Sistemas — main.css (v2, 2026-10-07)
   Dirección Verisure/Yale: fotografía protagonista, fondos claros y cálidos,
   paneles y tarjetas redondeadas, botones píldora, rojo de marca en CTA.
   Las clases son las mismas que usan las plantillas (parts/secciones, etc.).
   ========================================================================== */

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ font-family:var(--font-body); font-size:var(--fs-body); line-height:1.6; color:var(--ink); background:var(--canvas); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img,svg,video{ display:block; max-width:100%; height:auto; }
ul,ol{ padding-left:1.2em; }
a{ color:var(--brand); text-underline-offset:3px; }
::selection{ background:var(--brand); color:#fff; }
:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:6px; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.12; letter-spacing:-.02em; color:var(--ink); }
strong,b{ font-weight:600; }

/* ---------- Layout ---------- */
.container{ width:100%; max-width:calc(var(--content) + var(--gutter) * 2); margin-inline:auto; padding-inline:var(--gutter); }
.flow > * + *{ margin-top:1em; }
.skip-link{ position:absolute; left:-9999px; top:0; z-index:100; background:var(--ink); color:#fff; padding:12px 18px; }
.skip-link:focus{ left:0; }

/* ---------- Animación de entrada (suave) ---------- */
@keyframes rl{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.rl{ animation:rl .7s var(--ease) both; animation-delay:var(--d,0s); }
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s var(--ease), transform .7s var(--ease); transition-delay:var(--d,0s); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Etiquetas ---------- */
.eyebrow,.hero__kicker{ display:inline-flex; align-items:center; gap:.5rem; font-size:var(--fs-label); font-weight:600; color:var(--brand); background:var(--brand-soft); padding:6px 14px; border-radius:var(--radius-pill); }
.eyebrow .dot,.hero__kicker .dot{ width:7px; height:7px; border-radius:50%; background:currentColor; }

/* ---------- Botones (píldora) ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.55em; font-family:var(--font-body); font-weight:600; font-size:1rem; line-height:1.2; white-space:nowrap; text-decoration:none; cursor:pointer; padding:13px 24px; border-radius:var(--radius-button); border:1.5px solid transparent; transition:background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease); }
.btn:hover{ transform:translateY(-1px); }
.btn .arrow{ transition:transform .25s var(--ease); }
.btn:hover .arrow{ transform:translateX(3px); }
.btn svg{ width:1.2em; height:1.2em; }
.btn--brand{ background:var(--brand); color:#fff; }
.btn--brand:hover{ background:var(--brand-strong); color:#fff; }
.btn--ghost{ background:#fff; color:var(--ink); border-color:var(--hairline); }
.btn--ghost:hover{ border-color:var(--ink); color:var(--ink); }
.btn--ink{ background:var(--ink); color:#fff; }
.btn--ink:hover{ background:#000; color:#fff; }
.btn--ghost-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.btn--ghost-light:hover{ background:#fff; color:var(--ink); }
.btn--lg{ padding:16px 28px; font-size:1.02rem; }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; }

/* ---------- Cabecera ---------- */
.site-header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid transparent; transition:border-color .2s, box-shadow .2s; }
.site-header.scrolled{ border-bottom-color:var(--hairline); box-shadow:0 4px 20px rgba(29,29,31,.04); }
.site-header__inner{ display:flex; align-items:center; gap:var(--space-24); min-height:76px; max-width:calc(var(--content) + var(--gutter) * 2); }
.site-brand{ display:inline-flex; align-items:center; flex:0 0 auto; }
.site-brand img,.site-brand svg{ height:38px; width:auto; }
.primary-nav{ margin-left:auto; }
.primary-nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:var(--space-8); align-items:center; }
.primary-nav a{ display:block; font-weight:500; font-size:.98rem; color:var(--ink); text-decoration:none; padding:8px 14px; border-radius:var(--radius-pill); transition:background-color .2s; }
.primary-nav a:hover,.primary-nav .current-menu-item > a{ background:var(--surface); color:var(--ink); }
.header-cta{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.header-phone{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--brand); text-decoration:none; padding:11px 18px; border:1.5px solid var(--brand); border-radius:var(--radius-pill); white-space:nowrap; transition:background-color .2s, color .2s; }
.header-phone:hover{ background:var(--brand); color:#fff; }
.header-cta .btn{ padding:12px 20px; }
.nav-toggle{ display:none; margin-left:auto; background:#fff; border:1px solid var(--hairline); border-radius:12px; width:44px; height:44px; cursor:pointer; align-items:center; justify-content:center; }
.nav-toggle span{ position:relative; }
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{ content:""; display:block; width:20px; height:2px; border-radius:2px; background:var(--ink); transition:.2s; }
.nav-toggle span::before{ position:absolute; left:0; top:-6px; }
.nav-toggle span::after{ position:absolute; left:0; top:6px; }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after{ top:0; transform:rotate(-45deg); }

/* ---------- Hero (servicios y home) ---------- */
.hero{ padding-top:clamp(16px,2.5vw,32px); }
.hero__inner{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(24px,3vw,48px); align-items:center; background:var(--surface); border-radius:var(--radius-panel); padding:clamp(28px,5vw,72px); }
.hero--img .hero__inner{ grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); padding:clamp(20px,2.5vw,28px) clamp(20px,2.5vw,28px) clamp(20px,2.5vw,28px) clamp(28px,5vw,64px); }
.hero__h1{ font-weight:600; font-size:var(--fs-mega); line-height:1.04; letter-spacing:-.03em; max-width:16ch; margin-top:clamp(16px,2vw,22px); }
.hero__lead{ font-size:var(--fs-lead); color:var(--ink-soft); max-width:48ch; margin-top:clamp(14px,2vw,20px); line-height:1.55; }
.hero__meta{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:var(--space-20); font-size:var(--fs-sm); font-weight:500; color:var(--ink-soft); }
.hero__meta span{ display:inline-flex; align-items:center; gap:8px; }
.hero__meta span::before,.trust-check::before{ content:""; width:18px; height:18px; flex:0 0 18px; border-radius:50%; background:var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/12px no-repeat; }
.hero__cta{ margin-top:clamp(22px,3vw,32px); }
.hero__link{ margin-top:var(--space-16); font-weight:600; }
.hero__link a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--brand); text-decoration-thickness:2px; text-underline-offset:5px; }
.hero__link a:hover{ color:var(--brand); }
.hero__media{ margin:0; height:100%; }
.hero__media img{ width:100%; height:100%; min-height:clamp(280px,34vw,520px); max-height:600px; object-fit:cover; border-radius:var(--radius-media); }
@media (max-width:900px){
  .hero--img .hero__inner{ grid-template-columns:minmax(0,1fr); padding:clamp(20px,5vw,28px); }
  .hero__media{ order:-1; }
  .hero__media img{ min-height:240px; max-height:380px; }
}

/* Home: foto grande a todo el ancho con la tarjeta de texto encima */
.hero--home .hero__inner{ position:relative; display:block; padding:0; background:none; min-height:clamp(520px,46vw,680px); }
.hero--home .hero__media{ position:absolute; inset:0; }
.hero--home .hero__media img{ height:100%; min-height:0; max-height:none; }
.hero--home .hero__text{ position:relative; z-index:1; width:min(560px,100%); margin:clamp(20px,3vw,40px); background:#fff; border-radius:var(--radius-card); padding:clamp(24px,3.2vw,44px); box-shadow:var(--shadow-md); }
.hero--home .hero__h1{ font-size:clamp(2rem,1.4rem + 2.3vw,3.3rem); }
.hero--home:not(.hero--img) .hero__inner{ background:var(--surface); border-radius:var(--radius-panel); min-height:0; }
@media (max-width:760px){
  .hero--home .hero__inner{ min-height:0; }
  .hero--home .hero__media{ position:relative; inset:auto; }
  .hero--home .hero__media img{ height:auto; aspect-ratio:4/3; }
  .hero--home .hero__text{ margin:-48px 12px 0; }
}

/* ---------- Datos de confianza (antes banda roja) ---------- */
.stats{ padding-top:clamp(16px,2vw,24px); }
.stats__row{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; background:#fff; border:var(--border); border-radius:var(--radius-card); padding:clamp(18px,2.4vw,28px) 0; }
.stat{ display:flex; flex-direction:column; gap:4px; padding-inline:clamp(16px,2.4vw,32px); border-left:var(--border); }
.stat:first-child{ border-left:0; }
.stat__n{ font-family:var(--font-display); font-weight:600; font-size:clamp(1.25rem,1rem + 1vw,1.8rem); line-height:1.1; letter-spacing:-.02em; color:var(--brand); }
.stat__l{ font-size:var(--fs-sm); color:var(--ink-soft); }
@media (max-width:760px){ .stats__row{ grid-template-columns:repeat(2,1fr); row-gap:18px; } .stat:nth-child(3){ border-left:0; } }

/* ---------- Marquee de zonas (discreto) ---------- */
.marquee{ overflow:hidden; padding-block:clamp(18px,2.4vw,28px); margin-top:var(--section); }
.marquee__track{ display:inline-flex; align-items:center; white-space:nowrap; animation:marquee 46s linear infinite; will-change:transform; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__item{ font-weight:500; font-size:clamp(1rem,.9rem + .5vw,1.3rem); color:var(--ink-mute); padding-inline:1.1rem; }
.marquee__sep{ color:var(--brand); font-size:.7em; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- Secciones (bandas → paneles) ----------
   light = fondo blanco · soft/ink = panel cálido redondeado · brand = panel rojo */
.page-sections{ padding-top:clamp(8px,1.5vw,16px); }
.costa-sec{ counter-reset:cstep; position:relative; padding-block:clamp(40px,5.5vw,80px); padding-inline:max(var(--gutter), calc((100vw - var(--content)) / 2)); }
.costa-sec--soft,.costa-sec--ink,.costa-sec--brand{
  margin-inline:max(var(--gutter), calc((100vw - var(--content)) / 2 - clamp(0px,3vw,48px)));
  padding-inline:clamp(22px,4vw,56px); border-radius:var(--radius-panel); margin-block:clamp(10px,1.4vw,16px);
}
.costa-sec--soft,.costa-sec--ink{ background:var(--surface); }
.costa-sec--brand{ background:var(--brand); color:#fff; }
.costa-sec--light{ background:transparent; }
.costa-sec > * + *{ margin-top:clamp(16px,2vw,24px); }
.costa-sec > *{ max-width:100%; }
.sec__title{ font-size:var(--fs-h2); max-width:24ch; }
.costa-sec--brand h2,.costa-sec--brand h3,.costa-sec--brand h4{ color:#fff; }
.costa-sec--brand.prose p,.costa-sec--brand.prose li{ color:rgba(255,255,255,.9); }
.costa-sec--brand.prose a:not(.btn){ color:#fff; }
.sec__body{ max-width:72ch; }
.sec__body > * + *{ margin-top:1em; }
.sec__body,.sec__body a{ overflow-wrap:anywhere; }

/* ---------- Prosa ---------- */
.prose p,.prose li{ color:var(--ink-soft); }
.prose strong,.prose b{ color:var(--ink); }
.prose h3{ font-size:var(--fs-h3); margin-top:1.2em; }
.prose h4{ font-size:1.08rem; margin-top:1.2em; }
.prose a:not(.btn){ color:var(--brand); text-decoration:underline; text-decoration-color:color-mix(in srgb,var(--brand) 35%,transparent); }
.prose a:not(.btn):hover{ text-decoration-color:var(--brand); }
.prose ul{ list-style:none; padding-left:0; }
.prose ul li{ position:relative; padding-left:1.9em; margin-top:.55em; }
.prose ul li::before{ content:""; position:absolute; left:0; top:.2em; width:1.25em; height:1.25em; border-radius:50%; background:var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat; }
.costa-sec--brand.prose ul li::before{ background-color:rgba(255,255,255,.18); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.prose blockquote{ font-size:var(--fs-lead); color:var(--ink); border-left:3px solid var(--brand); padding-left:1em; margin:1.4em 0; }
.prose figure{ margin:1.4em 0; }
.prose table{ width:100%; border-collapse:collapse; font-size:var(--fs-sm); }
.prose th,.prose td{ border:var(--border); padding:12px; text-align:left; }
.prose .btn{ text-decoration:none; }
.prose .btn--brand{ color:#fff; }
.prose .btn--ghost{ color:var(--ink); }
.prose .btn--ghost-light{ color:#fff; }
.prose .btn--ghost-light:hover{ color:var(--ink); }

/* ---------- Tarjetas ---------- */
.prose .cards,.prose .points,.prose .logos,.prose .contact__ways{ list-style:none; padding:0; margin-inline:0; }
.prose .cards > li,.prose .points > li,.prose .logos > li,.prose .contact__ways > li{ padding-left:0; margin-top:0; }
.prose .cards > li::before,.prose .points > li::before,.prose .logos > li::before,.prose .contact__ways > li::before{ content:none; }
.cards{ display:grid; grid-template-columns:repeat(var(--cols,3),minmax(0,1fr)); gap:clamp(14px,1.8vw,22px); }
.costa-sec > .cards{ margin-top:clamp(24px,3.2vw,40px); }
@media (max-width:900px){ .cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .cards{ grid-template-columns:minmax(0,1fr); } }

.costa-card{ position:relative; display:flex; flex-direction:column; background:#fff; border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.costa-sec--light .costa-card{ background:var(--surface); box-shadow:none; }
.costa-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.costa-card__media{ margin:0; padding:10px 10px 0; }
.costa-card__media img{ width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; border-radius:calc(var(--radius-card) - 8px); }
.costa-card h3{ font-size:1.15rem; line-height:1.25; margin:clamp(16px,1.8vw,20px) clamp(18px,2vw,24px) 0; }
.costa-card .costa-card__text{ margin:.5em clamp(18px,2vw,24px) clamp(18px,2vw,24px); }
.costa-card .costa-card__text p{ margin:0; font-size:var(--fs-sm); line-height:1.6; color:var(--ink-soft); }
.costa-card .costa-card__text p + p{ margin-top:.6em; }
.costa-card > .costa-card__text:first-child{ margin-top:clamp(18px,2vw,24px); }
/* Solo texto: acento con el escudo de marca */
.costa-card--text{ padding-top:clamp(18px,2vw,24px); }
.costa-card--text::before{ content:""; display:block; width:40px; height:40px; margin:0 clamp(18px,2vw,24px) 4px; border-radius:12px; background:var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.6-7 9-4-1.4-7-4.5-7-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center/22px no-repeat; }
.prose .cards > .costa-card--text::before{ content:""; }
.costa-card--text > h3:first-of-type{ margin-top:12px; }
/* Icono numerado */
.costa-card--icon{ counter-increment:cstep; padding-top:clamp(18px,2vw,24px); }
.prose .cards > .costa-card--icon::before{ content:counter(cstep); display:flex; align-items:center; justify-content:center; width:36px; height:36px; margin:0 clamp(18px,2vw,24px); border-radius:50%; background:var(--brand); color:#fff; font-weight:600; font-size:1rem; }
.costa-card--icon .costa-card__media{ padding:12px clamp(18px,2vw,24px) 0; }
.costa-card--icon .costa-card__media img{ width:48px; height:48px; aspect-ratio:auto; object-fit:contain; border-radius:0; }
/* Ilustración grande */
.costa-card--illus{ background:transparent !important; box-shadow:none !important; }
.costa-card--illus:hover{ transform:none; }
.costa-card--illus .costa-card__media{ padding:0; }
.costa-card--illus .costa-card__media img{ aspect-ratio:auto; height:clamp(180px,20vw,280px); object-fit:contain; }
.costa-card--illus h3,.costa-card--illus .costa-card__text{ margin-inline:0; }
/* Tarjeta enlazada (servicios home) */
.costa-card--link > a{ display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none !important; }
.costa-card__more{ display:inline-flex; align-items:center; gap:6px; margin:auto clamp(18px,2vw,24px) clamp(18px,2vw,22px); font-weight:600; font-size:var(--fs-sm); color:var(--brand); }
.costa-card__more::before{ content:"Ver servicio"; }
.costa-card--link:hover .costa-card__more{ gap:10px; }

/* ---------- Texto + imagen ---------- */
.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,4.5vw,72px); align-items:center; }
.costa-sec > .split{ margin-top:clamp(20px,3vw,36px); }
.split--solo{ grid-template-columns:minmax(0,1fr); }
.split--img-izquierda .split__media{ order:-1; }
.split__text > * + *{ margin-top:var(--space-20); }
.prose .split__media{ margin:0; }
.split__media img{ width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; border-radius:var(--radius-media); }
.points{ display:grid; gap:10px; }
.costa-card--point{ flex-direction:row; align-items:flex-start; gap:12px; padding:16px 18px; box-shadow:none; background:#fff; }
.costa-sec--light .costa-card--point{ background:var(--surface); }
.costa-card--point:hover{ transform:none; box-shadow:none; }
.costa-card--point::before{ content:""; flex:0 0 22px; width:22px; height:22px; margin-top:2px; border-radius:50%; background:var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat; }
.prose .points > .costa-card--point::before{ content:""; }
.costa-card--point p{ margin:0; color:var(--ink) !important; }
@media (max-width:760px){ .split{ grid-template-columns:minmax(0,1fr); } .split--img-izquierda .split__media{ order:0; } }

/* ---------- FAQ ---------- */
.faq{ max-width:880px; display:grid; gap:10px; }
.costa-sec > .faq{ margin-top:clamp(20px,3vw,32px); }
.prose .wp-block-details{ background:#fff; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); }
.costa-sec--light .wp-block-details{ background:var(--surface); box-shadow:none; }
.prose .wp-block-details summary{ cursor:pointer; list-style:none; padding:18px 22px; font-weight:600; font-size:1.05rem; color:var(--ink); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.prose .wp-block-details summary::-webkit-details-marker{ display:none; }
.prose .wp-block-details summary::after{ content:""; flex:0 0 28px; width:28px; height:28px; border-radius:50%; background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/14px no-repeat; transition:transform .2s var(--ease); }
.costa-sec--light .wp-block-details summary::after{ background-color:#fff; }
.prose .wp-block-details[open] summary::after{ transform:rotate(45deg); }
.prose .wp-block-details > *:not(summary){ padding:0 22px; margin-top:0; }
.prose .wp-block-details > *:not(summary) + *:not(summary){ margin-top:.8em; }
.prose .wp-block-details > *:not(summary):last-child{ padding-bottom:20px; }

/* ---------- Galería ---------- */
.gallery{ display:grid; grid-template-columns:repeat(var(--cols,3),minmax(0,1fr)); gap:clamp(12px,1.6vw,20px); }
.costa-sec > .gallery{ margin-top:clamp(20px,3vw,32px); }
.prose .gallery figure{ margin:0; }
.gallery img{ width:100%; height:clamp(200px,22vw,320px); object-fit:cover; border-radius:var(--radius-media); }
@media (max-width:760px){ .gallery{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ---------- Logos de marcas ---------- */
.logos{ display:flex; flex-wrap:wrap; gap:clamp(12px,2vw,20px); align-items:center; }
.costa-sec > .logos{ margin-top:clamp(18px,2.4vw,28px); }
.logos li{ background:#fff; border:var(--border); border-radius:var(--radius-card); padding:18px 28px; }
.logos img{ height:clamp(40px,4.4vw,60px); width:auto; object-fit:contain; mix-blend-mode:multiply; }

/* ---------- Panel genérico ---------- */
.panel{ border-radius:var(--radius-card); padding:clamp(24px,3vw,40px); background:#fff; box-shadow:var(--shadow-sm); }
.panel > * + *{ margin-top:var(--space-24); }
.panel--ink{ background:var(--ink); color:#fff; box-shadow:none; }
.prose .panel--ink p,.prose .panel--ink li{ color:#d9d9db; }
.prose .panel--ink strong,.prose .panel--ink b{ color:#fff; }
.prose .panel--ink ul li::before{ background-color:rgba(255,255,255,.14); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.panel__media{ margin:0; }
.panel__media img{ border-radius:calc(var(--radius-card) - 6px); }

/* ---------- Precios (home) ---------- */
.split--precios{ align-items:start; }
.price-table{ margin:var(--space-24) 0 0; background:var(--surface); border-radius:var(--radius-card); padding:6px clamp(18px,2.4vw,26px); }
.price-table__row{ display:flex; justify-content:space-between; align-items:baseline; gap:var(--space-16); padding:16px 0; border-bottom:var(--border); }
.price-table__row:last-child{ border-bottom:0; }
.price-table dt{ color:var(--ink); font-weight:500; }
.price-table dd{ margin:0; font-weight:600; font-size:1.12rem; color:var(--brand); white-space:nowrap; text-align:right; }
.note{ font-size:var(--fs-sm); color:var(--ink-mute) !important; max-width:80ch; }
.sec--precios .btn-row,.sec--comparativa > .btn-row,.sec--porque > .btn-row{ margin-top:var(--space-32); }

/* ---------- Comparativa ---------- */
.cases{ align-items:stretch; }
.prose .cards > .case{ padding:clamp(20px,2.4vw,28px); }
.case h3{ margin:0 0 .7em !important; font-size:1.08rem; }
.case .costa-card__text{ margin:0 !important; }
.case--ours{ box-shadow:0 0 0 2px var(--brand), var(--shadow-md); }
.case--ours h3{ color:var(--brand); }

/* ---------- Opiniones ---------- */
.reviews{ align-items:stretch; }
.costa-sec > .reviews{ margin-top:clamp(28px,4vw,48px); }
.prose .cards > .review{ padding:clamp(20px,2.4vw,28px); justify-content:space-between; gap:var(--space-16); }
.review:hover{ transform:none; }
.prose .review blockquote{ border:0; padding:0; margin:0; font-size:var(--fs-body); line-height:1.6; }
.prose .review blockquote p{ color:var(--ink); }
/* Comillas (no estrellas: no conocemos la puntuación de cada reseña) */
.review blockquote p::before{ content:"\201C"; display:block; font-weight:600; font-size:2.8rem; line-height:.7; color:var(--brand); margin-bottom:.2em; }
.review__meta{ font-size:var(--fs-sm) !important; color:var(--ink-mute) !important; }
.review__meta strong{ color:var(--ink) !important; }

/* ---------- CTA final ---------- */
.cta{ padding-inline:var(--gutter); margin-top:var(--section); }
.cta__inner{ max-width:var(--content); margin-inline:auto; background:var(--brand); color:#fff; border-radius:var(--radius-panel); padding:clamp(36px,6vw,80px); position:relative; overflow:hidden; }
.cta__inner::after{ content:""; position:absolute; right:-70px; bottom:-110px; width:420px; height:420px; background:#fff; -webkit-mask:url("../img/simbolo.png") center/contain no-repeat; mask:url("../img/simbolo.png") center/contain no-repeat; opacity:.08; pointer-events:none; }
.cta .eyebrow{ color:#fff; background:rgba(255,255,255,.14); }
.cta h2{ color:#fff; font-weight:600; font-size:var(--fs-display); line-height:1.05; letter-spacing:-.025em; max-width:20ch; margin-top:var(--space-16); }
.cta p,.cta__body p,.cta__body li{ color:rgba(255,255,255,.9); font-size:var(--fs-lead); max-width:52ch; }
.cta > .cta__inner > p{ margin-top:1rem; }
.cta__body{ margin-top:1rem; position:relative; z-index:1; }
.cta__body p + p,.cta__body ul{ margin-top:.6em; }
.cta__body ul{ list-style:none; padding:0; }
.cta__body strong{ color:#fff; }
.cta .btn-row{ margin-top:clamp(24px,3vw,32px); position:relative; z-index:1; }
.cta .btn--brand{ background:#fff; color:var(--brand); }
.cta .btn--brand:hover{ background:var(--ink); color:#fff; }
.cta .btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.cta .btn--ghost:hover{ background:#fff; color:var(--brand); border-color:#fff; }

/* ---------- Página estándar ---------- */
.page-hero{ padding-top:clamp(16px,2.5vw,32px); }
.page-hero__inner{ background:var(--surface); border-radius:var(--radius-panel); padding:clamp(36px,6vw,80px) clamp(28px,5vw,64px); }
.page-hero h1{ font-weight:600; font-size:var(--fs-display); line-height:1.05; letter-spacing:-.03em; max-width:22ch; }
.page-hero .hero__lead{ margin-top:var(--space-12); }
.page-body{ padding-block:clamp(36px,6vw,72px); }

/* ---------- Contacto ---------- */
.contact{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:clamp(20px,3vw,36px); align-items:start; }
.contact__ways{ display:grid; gap:12px; }
.prose .contact__ways > li{ padding:clamp(18px,2vw,24px); }
.way{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.way:hover{ transform:none; }
.way__ico img{ width:36px; height:36px; object-fit:contain; margin-bottom:4px; }
.way__label{ font-size:var(--fs-sm); font-weight:500; color:var(--ink-mute); }
.prose .way__value{ font-weight:600; font-size:clamp(1.35rem,1.1rem + .9vw,1.8rem); color:var(--ink); text-decoration:none; line-height:1.15; }
.prose .way__value--sm{ font-size:1.12rem; }
.way__note{ font-size:var(--fs-sm); color:var(--ink-soft); }
@media (max-width:900px){ .contact{ grid-template-columns:minmax(0,1fr); } }

/* ---------- Formulario CF7 ---------- */
.wpcf7 form > p,.wpcf7 form label{ display:block; }
.wpcf7 form p{ margin-top:var(--space-16); }
.wpcf7 label{ font-size:var(--fs-sm); font-weight:600; color:var(--ink); }
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 textarea{ display:block; width:100%; margin-top:8px; padding:14px 16px; font:inherit; font-weight:400; font-size:var(--fs-body); color:var(--ink); background:var(--surface); border:1.5px solid transparent; border-radius:14px; transition:border-color .2s var(--ease), background-color .2s; }
.wpcf7 textarea{ min-height:150px; resize:vertical; }
.wpcf7 input:focus,.wpcf7 textarea:focus{ outline:none; background:#fff; border-color:var(--brand); }
.wpcf7 .wpcf7-acceptance label{ font-weight:400; color:var(--ink-soft); display:inline-flex; gap:10px; align-items:flex-start; }
.wpcf7 .wpcf7-list-item{ margin:0; }
.wpcf7 input[type="submit"]{ appearance:none; cursor:pointer; margin-top:var(--space-8); font:inherit; font-weight:600; font-size:1.02rem; padding:16px 32px; border-radius:var(--radius-button); border:0; background:var(--brand); color:#fff; transition:background-color .2s var(--ease); }
.wpcf7 input[type="submit"]:hover{ background:var(--brand-strong); }
.wpcf7-not-valid-tip{ font-size:var(--fs-sm); color:var(--brand); margin-top:6px; }
.wpcf7 form .wpcf7-response-output{ margin:var(--space-16) 0 0; border-radius:14px; padding:12px 16px; font-size:var(--fs-sm); }

/* ---------- Mapa a demanda ---------- */
.map{ position:relative; border-radius:var(--radius-media); overflow:hidden; background:var(--surface); aspect-ratio:16/7; min-height:320px; }
.costa-sec > .map{ margin-top:var(--space-24); }
.map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.map__placeholder{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-16); text-align:center; padding:var(--space-24); }
.map__addr{ font-weight:600; font-size:1.2rem; color:var(--ink) !important; }
.map__note{ font-size:var(--fs-sm); color:var(--ink-mute) !important; max-width:44ch; }
.map__link{ margin-top:var(--space-16); font-weight:600; }
@media (max-width:760px){ .map{ aspect-ratio:4/5; } }

/* ---------- Pie ---------- */
.site-footer{ background:var(--ink); color:#c9c9cc; margin-top:var(--section); border-radius:var(--radius-panel) var(--radius-panel) 0 0; }
.site-footer .footer-wordmark{ display:flex; align-items:center; gap:12px; font-weight:600; font-size:1.5rem; letter-spacing:-.02em; color:#fff; padding-block:clamp(40px,5vw,64px) clamp(20px,3vw,32px); }
.site-footer .footer-wordmark img{ width:40px; height:40px; }
.site-footer a{ color:#e6e6e8; text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:var(--space-40); padding-bottom:var(--space-56); }
.site-footer h4,.site-footer .footer-col__title{ font-size:1rem; font-weight:600; color:#fff; margin-bottom:var(--space-16); }
.site-footer p,.site-footer li{ font-size:var(--fs-sm); line-height:1.7; }
.site-footer ul{ list-style:none; padding:0; }
.footer-meta{ font-size:var(--fs-sm); color:#a3a3a8; }
.footer-bottom{ border-top:1px solid #333336; padding-block:var(--space-24); display:flex; flex-wrap:wrap; gap:var(--space-16); justify-content:space-between; font-size:.85rem; color:#a3a3a8; }

/* WhatsApp flotante */
.wa-float{ position:fixed; right:clamp(16px,3vw,28px); bottom:clamp(16px,3vw,28px); z-index:90; width:60px; height:60px; border-radius:50%; background:#25d366; color:#fff; display:inline-flex; align-items:center; justify-content:center; box-shadow:0 12px 30px rgba(0,0,0,.2); transition:transform .2s var(--ease); }
.wa-float:hover{ transform:scale(1.07); color:#fff; }
.wa-float svg{ width:30px; height:30px; }

/* ---------- Responsive cabecera / pie ---------- */
@media (max-width:980px){
  .nav-toggle{ display:inline-flex; order:3; margin-left:0; }
  .header-cta{ margin-left:auto; }
  .primary-nav{ display:none; position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:var(--border); padding:var(--space-16) var(--gutter); }
  .primary-nav.is-open{ display:block; }
  .primary-nav ul{ flex-direction:column; align-items:stretch; }
  .site-header__inner{ position:relative; }
  .footer-grid{ grid-template-columns:1fr; gap:var(--space-32); }
}
@media (max-width:560px){
  .header-phone{ display:none; }
  .site-brand img{ height:32px; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .rl,.reveal{ opacity:1; transform:none; }
  .marquee__track{ animation:none; }
}

/* ---------- Ancho común de los paneles (cabecera, datos, secciones) ---------- */
.hero,.page-hero,.stats{ padding-inline:var(--gutter); }
.hero .hero__inner,.page-hero .page-hero__inner,.stats .stats__row{ max-width:calc(var(--content) + 2 * clamp(0px,3vw,48px)); margin-inline:auto; }
.stats .stats__row{ padding-inline:0; }

/* Los pseudo-elementos de tarjetas/puntos no usan la posición absoluta de la viñeta de prosa */
.prose .points > .costa-card--point::before,.prose .cards > .costa-card--text::before,.prose .cards > .costa-card--icon::before{ position:static; top:auto; left:auto; }
.prose .points > .costa-card--point{ padding:16px 18px; }
.sec__title{ max-width:34ch; }

/* Escudo de las tarjetas de texto (más específico que la viñeta de la prosa) */
.prose .cards > .costa-card--text::before{ display:block; width:40px; height:40px; margin:0 clamp(18px,2vw,24px) 4px; border-radius:12px; background:var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.6-7 9-4-1.4-7-4.5-7-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center/22px no-repeat; }
/* Fotos de producto sobre blanco en las tarjetas de servicios de la home: sin recortar */
.sec--servicios .costa-card__media img{ object-fit:contain; background:#fff; }
@media (max-width:760px){ .hero--home .hero__inner{ display:flex; flex-direction:column; } .hero--home .hero__media{ order:-1; } .hero--home .hero__text{ margin:-40px 10px 0; width:auto; } }

/* ==========================================================================
   Home v2.1 — más imagen (skill de diseño aplicada)
   ========================================================================== */
/* Sin puntos decorativos en etiquetas */
.eyebrow .dot,.hero__kicker .dot{ display:none; }

/* Tarjeta con foto a sangre y texto encima */
.costa-card--photo{ min-height:320px; background:var(--ink); }
.costa-card--photo > a{ position:relative; display:flex; flex-direction:column; justify-content:flex-end; height:100%; min-height:inherit; }
.costa-card__bg{ position:absolute; inset:0; margin:0; }
.prose .costa-card__bg{ margin:0; }
.costa-card__bg img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.costa-card--photo:hover .costa-card__bg img{ transform:scale(1.04); }
.costa-card--photo .costa-card__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,20,22,0) 35%, rgba(20,20,22,.78) 100%); }
.costa-card__body{ position:relative; z-index:1; display:flex; flex-direction:column; }
.costa-card--photo .costa-card__body{ padding:clamp(18px,2.2vw,28px); }
.costa-card--photo h3{ color:#fff; margin:0; font-size:clamp(1.2rem,1rem + .7vw,1.6rem); }
.costa-card--photo .costa-card__text{ margin:.45em 0 0; }
.prose .costa-card--photo .costa-card__text p{ color:rgba(255,255,255,.88); }
.costa-card--photo .costa-card__more{ margin:14px 0 0; color:#fff; }
.costa-card--text .costa-card__body{ flex:1; }
.costa-card--text .costa-card__body .costa-card__more{ margin-top:auto; padding-top:8px; }

/* Mosaico: una grande + dos */
.cards--bento{ grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); grid-auto-rows:minmax(280px,1fr); }
.cards--bento > li:first-child{ grid-row:span 2; min-height:600px; }
/* Tarjetas altas */
.cards--tall > .costa-card--photo{ min-height:440px; }
@media (max-width:900px){
  .cards--bento{ grid-template-columns:minmax(0,1fr); grid-auto-rows:auto; }
  .cards--bento > li:first-child{ grid-row:auto; min-height:420px; }
  .cards--tall > .costa-card--photo{ min-height:360px; }
}

/* Banda de imagen panorámica con texto */
.band{ padding-inline:var(--gutter); margin-block:clamp(10px,1.4vw,16px); }
.band__inner{ position:relative; max-width:calc(var(--content) + 2 * clamp(0px,3vw,48px)); margin-inline:auto; border-radius:var(--radius-panel); overflow:hidden; min-height:clamp(420px,38vw,560px); display:flex; align-items:center; }
.band__media{ position:absolute; inset:0; margin:0; }
.band__media img{ width:100%; height:100%; object-fit:cover; }
.band__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,20,22,.72) 0%, rgba(20,20,22,.35) 45%, rgba(20,20,22,0) 70%); }
.band__text{ position:relative; z-index:1; max-width:520px; padding:clamp(28px,5vw,64px); }
.band__text h2{ color:#fff; font-size:var(--fs-h2); }
.band__text p{ color:rgba(255,255,255,.9); font-size:var(--fs-lead); margin-top:var(--space-16); }
.band__text .btn-row{ margin-top:var(--space-24); }
@media (max-width:760px){ .band__media::after{ background:linear-gradient(180deg, rgba(20,20,22,.2) 0%, rgba(20,20,22,.8) 100%); } .band__inner{ align-items:flex-end; } }

/* Hero home: titular en 2 líneas */
.hero--home .hero__text{ width:min(640px,100%); }
.hero--home .hero__h1{ font-size:clamp(1.9rem,1.3rem + 1.9vw,2.9rem); max-width:20ch; }
.hero--home .hero__inner{ display:flow-root; }
@media (max-width:760px){ .hero--home .hero__inner{ display:flex; } }
/* La tarjeta del hero no debe tapar la placa del pilar (centro de la foto) */
.hero--home .hero__text{ width:min(570px,100%); }
.hero--home .hero__h1{ font-size:clamp(1.85rem,1.3rem + 1.7vw,2.65rem); }
.hero--home .hero__media img{ object-position:62% 50%; }

/* ==========================================================================
   v2.2 — reglas de la skill aplicadas a todas las páginas
   ========================================================================== */
/* Tarjeta con foto sin enlace (mosaico de secciones) */
.costa-card--photo > .costa-card__inner{ position:relative; display:flex; flex-direction:column; justify-content:flex-end; height:100%; min-height:inherit; }
.costa-card--photo .costa-card__text p{ color:rgba(255,255,255,.9) !important; }
.costa-card--photo:hover{ transform:none; }
/* Texto + imagen apilado: imagen panorámica arriba, texto debajo en dos columnas */
.split--stack{ grid-template-columns:minmax(0,1fr); gap:clamp(20px,3vw,32px); }
.split--stack .split__media{ order:-1; }
.split--stack .split__media img{ aspect-ratio:21/9; }
.split--stack .split__text{ max-width:72ch; }
/* Fotos de producto del pack (fondo cálido, sin recortar) */
.cards--foto .costa-card__media img[src*="producto-"]{ object-fit:contain; background:var(--surface); padding:12px; }
/* Segundo mosaico de la página en espejo (foto grande a la derecha) */
.cards--bento-rev{ grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); }
.cards--bento-rev > li:first-child{ grid-column:2; grid-row:1 / span 2; }
.cards--bento-rev > li:nth-child(2){ grid-column:1; grid-row:1; }
.cards--bento-rev > li:nth-child(3){ grid-column:1; grid-row:2; }
@media (max-width:900px){ .cards--bento-rev{ grid-template-columns:minmax(0,1fr); } .cards--bento-rev > li{ grid-column:auto !important; grid-row:auto !important; } }

/* ==========================================================================
   Menú con desplegables (Particulares / Empresas) y pie con 3 menús
   ========================================================================== */
.primary-nav li{ position:relative; }
.primary-nav .menu-item-has-children > a{ display:inline-flex; align-items:center; gap:6px; }
.primary-nav .menu-item-has-children > a::after{ content:""; width:8px; height:8px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .2s var(--ease); }
.primary-nav .menu-item-has-children.is-open > a::after{ transform:translateY(1px) rotate(-135deg); }
.primary-nav .sub-menu{ list-style:none; margin:0; padding:8px; position:absolute; top:calc(100% + 8px); left:0; min-width:280px; background:#fff; border:var(--border); border-radius:16px; box-shadow:var(--shadow-md); display:flex; flex-direction:column; gap:2px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s var(--ease), transform .18s var(--ease), visibility .18s; z-index:60; }
.primary-nav .sub-menu::before{ content:""; position:absolute; left:0; right:0; top:-10px; height:10px; } /* puente para el hover */
.primary-nav .sub-menu a{ display:block; padding:10px 14px; border-radius:10px; font-weight:500; white-space:nowrap; }
.primary-nav .sub-menu a:hover,.primary-nav .sub-menu .current-menu-item > a{ background:var(--surface); color:var(--brand); }
.primary-nav .menu-item-has-children:hover > .sub-menu,
.primary-nav .menu-item-has-children:focus-within > .sub-menu,
.primary-nav .menu-item-has-children.is-open > .sub-menu{ opacity:1; visibility:visible; transform:none; }
.primary-nav .current-menu-ancestor > a{ background:var(--surface); }
@media (max-width:980px){
  .primary-nav .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:0 0 6px 14px; min-width:0; display:none; }
  .primary-nav .menu-item-has-children.is-open > .sub-menu,
  .primary-nav .menu-item-has-children:focus-within > .sub-menu{ display:flex; }
  .primary-nav .sub-menu a{ white-space:normal; }
}

/* Pie: marca + contacto, Servicios, Zonas, Información */
.footer-grid{ grid-template-columns:1.6fr 1fr 1fr 1fr; padding-top:clamp(40px,5vw,64px); }
.footer-col--brand .footer-wordmark{ padding:0 0 var(--space-16); }
.footer-col--brand > * + *{ margin-top:var(--space-16); }
.footer-contact{ display:grid; gap:4px; }
.footer-contact a{ font-weight:600; }
.site-footer .footer-col ul a{ color:#d9d9db; }
.site-footer .footer-col ul a:hover{ color:#fff; }
@media (max-width:980px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-col--brand{ grid-column:1 / -1; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.primary-nav .sub-menu{ align-items:stretch; }
.primary-nav .sub-menu a{ text-align:left; }

/* ==========================================================================
   Oferta comercial: barra de anuncio, planes, garantías, calculadora
   ========================================================================== */
.announce{ background:var(--ink); text-align:center; }
.announce a{ display:block; padding:9px var(--gutter); color:#fff; font-size:.92rem; font-weight:500; text-decoration:none; }
.announce a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* Selector segmentado (Particulares/Empresas, plan, periodo) */
.seg{ display:inline-flex; gap:4px; padding:4px; background:#fff; border:var(--border); border-radius:var(--radius-pill); }
.seg__btn{ position:relative; appearance:none; border:0; background:transparent; font:inherit; font-size:.94rem; font-weight:600; color:var(--ink-soft); padding:9px 16px; border-radius:var(--radius-pill); cursor:pointer; white-space:nowrap; }
.seg__btn[aria-pressed="true"],.seg__btn:has(input:checked){ background:var(--ink); color:#fff; }
.seg__btn input{ position:absolute; opacity:0; inset:0; cursor:pointer; margin:0; }
.seg__btn:has(input:focus-visible){ outline:2px solid var(--brand); outline-offset:2px; }
.seg--block{ display:flex; flex-wrap:wrap; }
.seg--block .seg__btn{ flex:1 1 auto; text-align:center; }

/* Planes */
.oferta__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:var(--space-16) var(--space-32); }
.oferta__head .sec__title{ flex:1 1 100%; }
.prose .oferta__sub{ flex:1 1 380px; font-size:var(--fs-lead); margin:0; max-width:52ch; }
.plans{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,2vw,24px); }
.costa-sec > .plans{ margin-top:clamp(28px,3vw,40px); }
.plan{ position:relative; display:flex; flex-direction:column; background:#fff; border-radius:var(--radius-card); padding:clamp(24px,3vw,36px); box-shadow:var(--shadow-sm); }
.plan--featured{ box-shadow:0 0 0 2px var(--brand), var(--shadow-md); }
.plan__badge{ position:absolute; top:-13px; left:clamp(24px,3vw,36px); background:var(--brand); color:#fff; font-size:.82rem; font-weight:600; padding:5px 12px; border-radius:var(--radius-pill); }
.prose .plan__name{ margin:0; font-size:1.45rem; }
.prose .plan__desc{ margin-top:6px; }
.prose .plan__trial{ margin-top:var(--space-20); font-size:.95rem; }
.prose .plan__trial strong{ color:var(--brand); }
.plan__price{ display:flex; align-items:baseline; gap:6px; margin-top:2px; }
.plan__amount{ font-weight:600; font-size:clamp(2.6rem,2rem + 2vw,3.4rem); line-height:1; letter-spacing:-.03em; color:var(--ink); font-variant-numeric:tabular-nums; }
.plan__unit{ font-weight:600; color:var(--ink-soft); }
.prose .plan__tax{ margin-top:6px; font-size:.88rem; color:var(--ink-mute); }
.prose .plan__day{ display:inline-block; align-self:flex-start; margin-top:var(--space-12); font-size:.86rem; font-weight:600; color:var(--ok); background:#e9f4ee; padding:4px 10px; border-radius:var(--radius-pill); }
.prose .plan__base{ margin-top:var(--space-20); font-weight:600; color:var(--ink); }
.prose .plan__list{ margin-top:var(--space-12); }
.prose .plan__list li{ margin-top:.5em; }
.plan__cta{ margin-top:auto; padding-top:var(--space-24); }
.plan__cta .btn{ width:100%; }
[data-iva-mode="bruto"] .only-neto,[data-iva-mode="neto"] .only-bruto{ display:none; }
@media (max-width:760px){ .plans{ grid-template-columns:minmax(0,1fr); } }

/* Garantías */
.costa-sec > .guarantees{ margin-top:clamp(28px,4vw,48px); }
.prose .guarantees__title{ margin:0 0 var(--space-16); font-size:1.2rem; }
.guarantees__list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; }
.prose .guarantees__list{ list-style:none; padding:0; }
.prose .guarantees__list > li{ padding-left:0; margin:0; }
.prose .guarantees__list > li::before{ content:none; }
.guarantee{ display:flex; gap:14px; align-items:flex-start; background:#fff; border-radius:16px; padding:18px 20px; }
.guarantee__ico{ flex:0 0 40px; height:40px; border-radius:12px; background:var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.6-7 9-4-1.4-7-4.5-7-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center/22px no-repeat; }
.prose .guarantee h4{ margin:0; font-size:1.02rem; }
.prose .guarantee p{ margin-top:4px; font-size:var(--fs-sm); }
.costa-sec > .oferta__nota{ margin-top:var(--space-24); }

/* Calculadora */
.prose .calc__sub{ font-size:var(--fs-lead); max-width:60ch; }
.calc{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(16px,2.4vw,28px); }
.costa-sec > .calc{ margin-top:clamp(20px,3vw,32px); }
.calc__form{ display:grid; gap:12px; align-content:start; }
.calc__group{ border:0; margin:0; padding:clamp(18px,2.2vw,26px); background:var(--surface); border-radius:var(--radius-card); display:grid; gap:12px; min-width:0; }
.calc__group legend{ float:left; width:100%; font-weight:600; font-size:1.05rem; margin-bottom:4px; color:var(--ink); }
.calc__field{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:.96rem; color:var(--ink); }
.calc__input{ display:inline-flex; align-items:center; background:#fff; border:1.5px solid var(--hairline); border-radius:12px; padding:0 12px 0 0; }
.calc__input:focus-within{ border-color:var(--brand); }
.calc__input input{ width:88px; border:0; background:transparent; font:inherit; font-weight:600; text-align:right; padding:10px 8px 10px 12px; color:var(--ink); font-variant-numeric:tabular-nums; }
.calc__input input:focus{ outline:none; }
.calc__input em{ font-style:normal; font-size:.86rem; color:var(--ink-mute); min-width:44px; }
.prose .calc__hint{ font-size:.86rem; color:var(--ink-mute); margin:0; }
.prose .calc__legend2{ font-weight:600; margin:6px 0 0; color:var(--ink); }
.prose .calc__facts{ display:flex; flex-wrap:wrap; gap:6px 16px; margin:0; }
.prose .calc__facts li{ margin:0; font-size:.92rem; color:var(--ink); }
.calc__out{ background:#fff; border:var(--border); border-radius:var(--radius-card); padding:clamp(20px,2.6vw,32px); display:flex; flex-direction:column; gap:var(--space-16); min-width:0; }
.prose .calc__hero-label{ margin:0; font-weight:600; color:var(--ink-soft); }
.prose .calc__hero-num{ margin:0; font-weight:600; font-size:clamp(2.6rem,2rem + 2.4vw,3.8rem); line-height:1; letter-spacing:-.03em; color:var(--ok); font-variant-numeric:tabular-nums; }
.prose .calc--neg .calc__hero-num{ color:var(--ink); }
.calc__totals{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; }
.calc__total{ background:var(--surface); border-radius:14px; padding:12px 14px; }
.calc__total dt{ display:flex; align-items:center; gap:8px; font-size:.86rem; color:var(--ink-soft); }
.calc__total dd{ margin:4px 0 0; font-weight:600; font-size:1.25rem; color:var(--ink); font-variant-numeric:tabular-nums; }
.sw{ display:inline-block; width:14px; height:3px; border-radius:2px; flex:0 0 14px; }
.sw--costa{ background:#b3121b; }
.sw--otra{ background:repeating-linear-gradient(90deg,#7d8187 0 4px,transparent 4px 7px); }
.prose .calc__chart{ position:relative; margin:0; }
.chart{ display:block; width:100%; height:auto; aspect-ratio:640/260; overflow:visible; }
.chart__grid{ stroke:#ebe8e3; stroke-width:1; }
.chart__axis{ font-size:11px; fill:#8a8b8f; font-family:var(--font-body); }
.chart__line{ fill:none; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.chart__line--costa{ stroke:#b3121b; }
.chart__line--otra{ stroke:#7d8187; stroke-dasharray:6 5; }
.chart__dot{ stroke:#fff; stroke-width:2; }
.chart__dot--costa{ fill:#b3121b; }
.chart__dot--otra{ fill:#7d8187; }
.chart__label{ font-size:12px; font-weight:600; fill:#1d1d1f; font-family:var(--font-body); paint-order:stroke; stroke:#fff; stroke-width:4px; }
.chart__cross{ stroke:#1d1d1f; stroke-width:1; stroke-dasharray:3 3; }
.chart__tip{ position:absolute; top:4px; transform:translateX(-50%); background:#fff; border:var(--border); border-radius:12px; box-shadow:var(--shadow-md); padding:8px 12px; font-size:.84rem; display:grid; gap:2px; pointer-events:none; white-space:nowrap; color:var(--ink); }
.chart__tip span{ display:flex; align-items:center; gap:6px; font-variant-numeric:tabular-nums; }
.chart__tip .sw{ width:12px; }
.prose .calc__chart figcaption{ margin-top:6px; font-size:.82rem; color:var(--ink-mute); }
.prose .calc__perm{ margin:0; font-size:.92rem; background:var(--brand-soft); color:var(--ink); border-radius:12px; padding:10px 14px; }
.prose .calc__perm:empty{ display:none; }
.calc__table summary{ cursor:pointer; font-size:.9rem; font-weight:600; color:var(--ink-soft); }
.calc__table table{ margin-top:8px; font-variant-numeric:tabular-nums; }
.calc__out .btn-row{ margin-top:auto; }
@media (max-width:900px){ .calc{ grid-template-columns:minmax(0,1fr); } }
@media (max-width:420px){ .calc__totals{ grid-template-columns:1fr; } .calc__input input{ width:72px; } .calc__field{ font-size:.9rem; } }
/* La coma de Schibsted con tabular-nums se ve separada: cifras con números proporcionales */
.plan__amount,.prose .calc__hero-num,.calc__total dd,.calc__input input,.chart__tip span,.calc__table table{ font-variant-numeric:normal; }
@media (max-width:560px){ .announce a{ font-size:.8rem; padding:7px 12px; line-height:1.35; } }

/* ==========================================================================
   Calculadora v2: oferta (chips de color) → plan → total en barras
   ========================================================================== */
.calc2{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(16px,2.4vw,28px); }
.costa-sec > .calc2{ margin-top:clamp(20px,3vw,32px); }
.calc2__form{ display:grid; gap:12px; align-content:start; }
.calc2__step{ border:0; margin:0; min-width:0; padding:clamp(18px,2.2vw,26px); background:var(--surface); border-radius:var(--radius-card); display:grid; gap:14px; }
.calc2__step legend{ float:left; width:100%; display:flex; align-items:center; gap:10px; font-weight:600; font-size:1.1rem; color:var(--ink); }
.calc2__n{ flex:0 0 28px; height:28px; border-radius:50%; background:var(--brand); color:#fff; font-size:.9rem; display:inline-flex; align-items:center; justify-content:center; }

/* Chips de oferta */
.offers{ display:grid; gap:8px; }
.offer{ position:relative; display:flex; align-items:center; gap:14px; background:#fff; border:2px solid transparent; border-radius:14px; padding:12px 14px; cursor:pointer; transition:border-color .15s var(--ease), box-shadow .15s var(--ease); }
.offer:hover{ border-color:var(--hairline); }
.offer input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.offer:has(input:checked){ border-color:var(--ink); box-shadow:var(--shadow-sm); }
.offer:has(input:focus-visible){ outline:2px solid var(--brand); outline-offset:2px; }
.offer__sw{ flex:0 0 34px; height:34px; border-radius:10px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.offer__sw--sm{ flex-basis:12px; width:12px; height:12px; border-radius:4px; display:inline-block; }
.offer__txt{ display:flex; flex-direction:column; min-width:0; }
.offer__name{ font-weight:600; color:var(--ink); }
.offer__sum{ font-size:.88rem; color:var(--ink-soft); }
.offer--custom .offer__sw{ background:repeating-linear-gradient(135deg,#d9d6d1 0 6px,#eceae6 6px 12px) !important; }
.offer:has(input:checked)::after{ content:""; margin-left:auto; flex:0 0 22px; height:22px; border-radius:50%; background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/13px no-repeat; }

.calc2__edit summary{ cursor:pointer; font-size:.92rem; font-weight:600; color:var(--ink); }
.calc2__fields{ display:grid; gap:10px; margin-top:12px; }
.prose .calc2__src{ margin:0; font-size:.8rem; color:var(--ink-mute); }
.prose .calc2__src:empty{ display:none; }

/* Resultado */
.calc2__out{ background:#fff; border:var(--border); border-radius:var(--radius-card); padding:clamp(20px,2.6vw,32px); display:flex; flex-direction:column; gap:var(--space-16); min-width:0; position:sticky; top:96px; align-self:start; }
.calc2__top{ display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:12px; }
.prose .calc2__label{ margin:0; font-weight:600; color:var(--ink-soft); }
.prose .calc2__num{ margin:2px 0 0; font-weight:600; font-size:clamp(2.6rem,2rem + 2.4vw,3.8rem); line-height:1; letter-spacing:-.03em; color:var(--ok); }
.prose .calc2--neg .calc2__num{ color:var(--ink); }
.calc2__period .seg__btn{ padding:8px 12px; font-size:.88rem; }
.prose .calc2__barstitle{ margin:6px 0 0; font-weight:600; color:var(--ink); }
.bars{ display:grid; gap:16px; }
.bar__head{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.bar__name{ display:inline-flex; align-items:center; gap:8px; font-size:.95rem; color:var(--ink); }
.bar__total{ font-size:1.25rem; color:var(--ink); white-space:nowrap; }
.bar__track{ margin-top:6px; height:14px; background:var(--surface); border-radius:999px; overflow:hidden; }
.bar__fill{ height:100%; border-radius:999px; transition:width .45s var(--ease); min-width:4px; }
.bar--costa .bar__fill{ background:#b3121b; }
.prose .bar__how{ margin:6px 0 0; font-size:.86rem; color:var(--ink-soft); }
.calc2__out .btn-row{ margin-top:4px; }
@media (max-width:900px){ .calc2{ grid-template-columns:minmax(0,1fr); } .calc2__out{ position:static; } }

/* ==========================================================================
   Bloque final con formulario (todas las páginas)
   ========================================================================== */
.cta--form .cta__inner{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(24px,4vw,56px); align-items:start; }
.cta--form h2{ font-size:clamp(1.9rem,1.3rem + 2vw,3rem); }
.cta--form .cta__text{ position:relative; z-index:1; }
.cta--form .cta__text .eyebrow{ margin:0; }
.cta--form .cta__body{ margin-top:1rem; }
.cta--form .cta__body ul{ list-style:none; padding:0; display:grid; gap:6px; }
.cta--form .cta__body li{ position:relative; padding-left:1.6em; }
.cta--form .cta__body li::before{ content:""; position:absolute; left:0; top:.35em; width:1.05em; height:1.05em; border-radius:50%; background:rgba(255,255,255,.2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat; }
.cta__alt{ margin-top:clamp(24px,3vw,36px) !important; font-weight:600; color:#fff !important; font-size:1rem !important; }
.cta--form .btn-row{ margin-top:12px; }
.cta--form .btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.cta--form .btn--ghost:hover{ background:#fff; color:var(--brand); border-color:#fff; }
.cta__form{ position:relative; z-index:1; background:#fff; color:var(--ink); border-radius:var(--radius-card); padding:clamp(22px,3vw,34px); box-shadow:0 20px 50px rgba(60,0,0,.25); }
.cta .cta__form-title{ margin:0 0 4px; font-weight:600; font-size:1.25rem; color:var(--ink); max-width:none; }
.cta__form p,.cta__form li{ color:var(--ink-soft); font-size:var(--fs-body); max-width:none; }
.cta__form .wpcf7 form > p:first-child,.cta__form .lead-grid{ margin-top:12px; }
.lead-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lead-grid label{ display:block; }
.cta__form .wpcf7 select{ display:block; width:100%; margin-top:8px; padding:14px 16px; font:inherit; font-size:var(--fs-body); color:var(--ink); background:var(--surface); border:1.5px solid transparent; border-radius:14px; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1d1f' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:18px; }
.cta__form .wpcf7 select:focus{ outline:none; border-color:var(--brand); background-color:#fff; }
.cta__form .wpcf7 textarea{ min-height:96px; }
.cta__form .wpcf7 input[type="submit"]{ width:100%; }
.cta__form .wpcf7 .wpcf7-acceptance label{ font-size:.86rem; }
.cta__form .wpcf7 a{ color:var(--brand); }
.cta__form .wpcf7-response-output{ color:var(--ink); }
@media (max-width:900px){ .cta--form .cta__inner{ grid-template-columns:minmax(0,1fr); } }
@media (max-width:480px){ .lead-grid{ grid-template-columns:1fr; } }
/* CF7 envuelve los campos en <p>/<br>: que no rompan la rejilla nombre/teléfono */
.lead-grid > p{ display:contents; }
.lead-grid br,.cta__form .wpcf7 label br{ display:none; }
.cta__form .wpcf7 form > p{ margin-top:12px; }

/* ==========================================================================
   Calculadora en formato asistente (form.quiz)
   ========================================================================== */
.quiz{ background:var(--surface); border-radius:var(--radius-panel); padding:clamp(20px,3.4vw,44px); }
.costa-sec > .quiz{ margin-top:clamp(20px,3vw,32px); }
.quiz__bar{ display:none; }
.quiz.is-quiz .quiz__bar{ display:grid; grid-template-columns:auto 1fr; align-items:center; gap:6px 16px; margin-bottom:clamp(18px,2.6vw,28px); }
.quiz__back{ grid-row:1; appearance:none; border:0; background:#fff; color:var(--ink); font:inherit; font-weight:600; font-size:.92rem; padding:8px 14px; border-radius:var(--radius-pill); cursor:pointer; }
.quiz__back[hidden]{ display:none; }
.prose .quiz__progress{ grid-row:1; margin:0; font-size:.92rem; font-weight:600; color:var(--ink-soft); }
.quiz__track{ grid-column:1 / -1; height:6px; background:#fff; border-radius:999px; overflow:hidden; }
.quiz__fill{ height:100%; width:0; background:var(--brand); border-radius:999px; transition:width .35s var(--ease); }

.quiz__step{ border:0; margin:0; padding:0; min-width:0; display:grid; gap:16px; }
.quiz__step + .quiz__step{ margin-top:clamp(28px,3vw,40px); } /* sin JS: todas visibles */
.quiz.is-quiz .quiz__step{ display:none; margin-top:0; }
.quiz.is-quiz .quiz__step.is-active{ display:grid; animation:quizIn .35s var(--ease); }
@keyframes quizIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.quiz__step legend{ float:left; width:100%; font-weight:600; font-size:clamp(1.35rem,1.1rem + 1vw,1.8rem); line-height:1.2; color:var(--ink); margin-bottom:4px; outline:none; }

/* Opciones grandes (proteger / plan) */
.choices{ display:grid; gap:12px; }
.choices--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.choices--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.choice{ position:relative; display:flex; flex-direction:column; gap:6px; background:#fff; border:2px solid transparent; border-radius:var(--radius-card); padding:clamp(18px,2.2vw,24px); cursor:pointer; transition:border-color .15s var(--ease), transform .15s var(--ease), box-shadow .15s var(--ease); }
.choice:hover{ border-color:var(--hairline); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.choice input{ position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.choice:has(input:checked){ border-color:var(--ink); }
.choice:has(input:focus-visible){ outline:2px solid var(--brand); outline-offset:2px; }
.choice__ico{ width:44px; height:44px; border-radius:12px; background:var(--brand-soft) center/24px no-repeat; margin-bottom:6px; }
.choice__ico--vivienda{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E"); }
.choice__ico--segunda-residencia{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Ccircle cx='12' cy='14' r='2.5'/%3E%3Cpath d='M12 11.5V10'/%3E%3C/svg%3E"); }
.choice__ico--negocio{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-5h13L20 9'/%3E%3Cpath d='M4 9h16v2a3 3 0 0 1-5.3 2 3 3 0 0 1-5.4 0A3 3 0 0 1 4 11z'/%3E%3Cpath d='M5 13v7h14v-7'/%3E%3C/svg%3E"); }
.choice__name{ font-weight:600; font-size:1.15rem; color:var(--ink); }
.choice__sum{ font-size:.92rem; color:var(--ink-soft); }
.choice__price{ font-weight:600; font-size:1.9rem; letter-spacing:-.02em; color:var(--ink); line-height:1.1; }
.choice__price small{ font-size:.9rem; color:var(--ink-soft); font-weight:600; letter-spacing:0; }
.choice__badge{ align-self:flex-start; background:var(--brand); color:#fff; font-size:.78rem; font-weight:600; padding:4px 10px; border-radius:var(--radius-pill); }
.choice__badge[hidden]{ display:none; }
.quiz .offers{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.quiz .offer{ border-radius:var(--radius-card); padding:16px 18px; }
.quiz .offer:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }

.quiz__custom{ background:#fff; border-radius:var(--radius-card); padding:clamp(18px,2.2vw,24px); display:grid; gap:12px; }
.quiz__custom[hidden]{ display:none; }
.prose .quiz__custom-title{ margin:0; font-weight:600; color:var(--ink); }
.quiz__custom-title span{ font-weight:400; color:var(--ink-mute); }
.quiz__custom .btn{ justify-self:start; }

/* Resultado */
.quiz__result{ background:#fff; border-radius:var(--radius-card); padding:clamp(20px,3vw,36px); }
.quiz__res-head{ display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:12px; }
.quiz__res-body{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(20px,3vw,40px); align-items:start; margin-top:8px; }
.quiz__res-side{ display:grid; gap:14px; }
.quiz .calc2__label{ outline:none; }
.quiz .bars{ gap:18px; }
@media (max-width:900px){
  .choices--3{ grid-template-columns:minmax(0,1fr); }
  .quiz .offers{ grid-template-columns:minmax(0,1fr); }
  .quiz__res-body{ grid-template-columns:minmax(0,1fr); }
  .choice__ico{ margin-bottom:0; }
}
@media (max-width:560px){ .choices--2{ grid-template-columns:minmax(0,1fr); } }

/* ==========================================================================
   Reseñas de Google (plugin Rich Showcase): integración con el estilo del tema.
   Solo tipografía, colores y radios; el carrusel lo gestiona el plugin.
   ========================================================================== */
.costa-sec > .resenas{ margin-top:clamp(16px,2.4vw,28px); }
.resenas .wp-gr,.resenas .wp-gr *:not(.rpi-stars):not(.rpi-star){ font-family:var(--font-body) !important; }
.resenas .wp-gr .grw-review-inner.grw-backgnd{ background:var(--surface) !important; border-radius:var(--radius-card) !important; box-shadow:none !important; }
.resenas .wp-gr .wp-google-name,.resenas .wp-gr .wp-google-name a{ color:var(--ink) !important; font-weight:600 !important; text-decoration:none !important; }
.resenas .wp-gr .wp-google-time{ color:var(--ink-mute) !important; }
.resenas .wp-gr .wp-google-text,.resenas .wp-gr .wp-google-feedback{ color:var(--ink-soft) !important; line-height:1.6 !important; }
.resenas .wp-gr .wp-google-wr a{ background:var(--ink) !important; border-radius:var(--radius-pill) !important; }
.resenas .wp-gr .grw-header-inner .wp-google-name{ font-size:1.15rem !important; }

/* Calculadora (asistente) sobre el fondo oscuro del pie, para diferenciarla */
.quiz{ background:var(--ink); color:#fff; }
.quiz__step legend{ color:#fff; }
.prose .quiz__progress{ color:rgba(255,255,255,.72); }
.quiz__track{ background:rgba(255,255,255,.14); }
.quiz__fill{ background:#ff4d55; }
.quiz__back{ background:rgba(255,255,255,.12); color:#fff; }
.quiz__back:hover{ background:rgba(255,255,255,.22); }
.quiz .choice,.quiz .offer{ border-color:transparent; }
.quiz .choice:hover,.quiz .offer:hover{ border-color:rgba(255,255,255,.5); }
.quiz .choice:has(input:checked),.quiz .offer:has(input:checked){ border-color:#ff4d55; box-shadow:0 0 0 2px #ff4d55; }
.quiz .choice:has(input:focus-visible),.quiz .offer:has(input:focus-visible){ outline-color:#fff; }

/* Formularios: campo trampa antispam (fuera de pantalla) y capa básica RGPD */
.cs-hp{ position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden; }
.rgpd,.cta__form .rgpd{ margin:14px 0 0; font-size:.78rem; line-height:1.5; color:var(--ink-mute); }
.rgpd a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
.resenas__nota{ margin-top:14px; text-align:center; }

/* ==========================================================================
   Tarjeta de cifras de la cabecera (flota sobre la foto)
   ========================================================================== */
.hero__media{ position:relative; }
.claim{ position:absolute; z-index:2; left:clamp(14px,2vw,24px); bottom:clamp(14px,2vw,24px); margin:0; background:#fff; color:var(--ink); border-radius:var(--radius-card); padding:clamp(14px,1.6vw,20px) clamp(16px,1.8vw,22px); box-shadow:0 18px 44px rgba(20,10,10,.22); animation:claim-in .7s var(--ease) .55s both; }
@keyframes claim-in{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .claim{ animation:none; } }
.claim p{ margin:0; max-width:none; }
.claim__badge{ display:inline-block; background:var(--brand); color:#fff !important; font-weight:700; font-size:.8rem; letter-spacing:.01em; padding:5px 12px; border-radius:var(--radius-pill); }
.claim__price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:0 6px; margin-top:10px !important; line-height:1; }
.claim__from{ flex-basis:100%; font-size:.82rem; font-weight:500; color:var(--ink-mute); margin-bottom:4px; }
.claim__price strong{ font-size:clamp(2.1rem,1.6rem + 1.4vw,2.9rem); font-weight:700; letter-spacing:-.03em; font-variant-numeric:normal; }
.claim__unit{ font-size:1rem; font-weight:600; color:var(--ink-soft); }
.claim__line{ margin-top:8px !important; font-size:.82rem; color:var(--ink-soft); }
.claim__link{ display:inline-block; margin-top:10px; font-size:.88rem; font-weight:700; color:var(--brand); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.claim__link:hover{ color:var(--brand-strong); }
.claim--nums{ display:grid; grid-template-columns:repeat(3,auto); gap:clamp(14px,2vw,26px); list-style:none; padding-left:clamp(18px,2vw,24px); }
.claim--nums li{ display:flex; flex-direction:column; gap:4px; margin:0; padding:0; max-width:15ch; }
.claim--nums li::before{ display:none; }
.claim--nums li + li{ border-left:1px solid rgba(29,29,31,.12); padding-left:clamp(14px,2vw,26px); }
.claim--nums strong{ font-size:clamp(1.3rem,1.1rem + .6vw,1.65rem); font-weight:700; letter-spacing:-.02em; color:var(--brand); line-height:1.05; }
.claim--nums span{ font-size:.8rem; line-height:1.35; color:var(--ink-soft); }
/* Cabecera sin foto: la tarjeta va en la columna de texto */
.hero__text > .claim{ position:static; display:inline-grid; margin-top:clamp(20px,2.4vw,28px); box-shadow:var(--shadow-md); }
.hero__text > .claim--oferta{ display:inline-block; }
/* Home: abajo a la derecha de la foto */
.hero--home .hero__inner > .claim{ left:auto; right:clamp(20px,3vw,40px); bottom:clamp(20px,3vw,40px); min-width:240px; }
@media (max-width:900px){
  .claim{ left:10px; bottom:10px; padding:12px 14px; border-radius:16px; }
  .claim__price strong{ font-size:1.9rem; }
  .claim__line,.claim__link{ display:none; }
  .claim--nums{ right:10px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .claim--nums li + li{ padding-left:10px; }
  .claim--nums strong{ font-size:1.05rem; }
  .claim--nums span{ font-size:.72rem; }
}
@media (max-width:760px){
  .hero--home .hero__inner > .claim{ top:12px; bottom:auto; right:12px; min-width:0; }
}

/* ==========================================================================
   Botón flotante de la calculadora
   ========================================================================== */
.calc-float{ position:fixed; z-index:89; left:clamp(16px,3vw,28px); bottom:clamp(16px,3vw,28px); display:flex; align-items:center; gap:4px; max-width:calc(100% - 120px); background:var(--ink); color:#fff; border-radius:var(--radius-pill); padding:6px; box-shadow:0 16px 40px rgba(0,0,0,.28); opacity:0; visibility:hidden; transform:translateY(24px); transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s; }
.calc-float.is-on{ opacity:1; visibility:visible; transform:none; }
.calc-float__link{ display:flex; align-items:center; gap:12px; min-width:0; padding:2px 10px 2px 2px; color:#fff; text-decoration:none; }
.calc-float__link:hover{ color:#fff; }
.calc-float__ico{ flex:0 0 46px; width:46px; height:46px; border-radius:50%; background:#ff4d55; display:inline-flex; align-items:center; justify-content:center; }
.calc-float__ico svg{ width:23px; height:23px; }
.calc-float__link:hover .calc-float__ico{ transform:scale(1.06); }
.calc-float__ico{ transition:transform .2s var(--ease); }
.calc-float__txt{ display:flex; flex-direction:column; min-width:0; line-height:1.2; }
.calc-float__txt strong{ font-size:.95rem; font-weight:700; }
.calc-float__txt span{ font-size:.8rem; color:rgba(255,255,255,.75); }
.calc-float__close{ flex:0 0 32px; width:32px; height:32px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:1.2rem; line-height:1; cursor:pointer; }
.calc-float__close:hover{ background:rgba(255,255,255,.24); }
.calc-float__close:focus-visible,.calc-float__link:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
@media (max-width:480px){
  .calc-float{ left:12px; bottom:18px; max-width:calc(100% - 96px); }
  .calc-float__ico{ flex-basis:40px; width:40px; height:40px; }
  .calc-float__txt strong{ font-size:.88rem; }
  .calc-float__txt span{ font-size:.74rem; }
}
@media (prefers-reduced-motion:reduce){ .calc-float{ transition:none; } }
.claim--oferta{ width:max-content; max-width:calc(100% - 28px); }
.claim__price{ display:block; }
.claim__from{ display:block; }
.claim__price strong{ margin-right:4px; }
@media (max-width:900px){
  .claim--oferta{ max-width:calc(100% - 20px); }
  .claim--nums{ left:10px; right:10px; gap:8px; padding:12px; }
  .claim--nums li{ max-width:none; min-width:0; }
  .claim--nums li + li{ padding-left:8px; }
  .claim--nums strong{ font-size:.98rem; overflow-wrap:anywhere; }
}
@media (max-width:900px){
  .claim--nums{ grid-template-columns:auto auto auto; }
  .claim--nums strong{ overflow-wrap:normal; font-size:.95rem; }
}

/* ==========================================================================
   QA visual previa a la entrega (2026-10-07)
   ========================================================================== */
/* Anclas: que la cabecera fija no tape el destino */
#calculadora,#solicitud,#planes,#opiniones{ scroll-margin-top:96px; }

/* Cabecera entre 981 y 1180 px: sin el botón de teléfono (no cabe con el menú) */
@media (min-width:981px) and (max-width:1180px){ .header-phone{ display:none; } }

/* Menú móvil: sin desplazamiento de fondo y con llamada directa */
.menu-call{ display:none; }
@media (max-width:980px){
  body.nav-open{ overflow:hidden; }
  .primary-nav.is-open{ max-height:calc(100vh - 80px); overflow-y:auto; box-shadow:0 24px 40px rgba(0,0,0,.12); }
  .menu-call{ display:block; margin-top:8px; }
  .primary-nav .menu-call a{ display:flex; justify-content:center; background:var(--brand); color:#fff; font-weight:600; }
}

/* Tarjetas con ilustración: títulos sin recorte */
.costa-card--illus h3,.costa-card--illus .costa-card__text{ padding-inline:3px; }

/* Logos de marcas: margen interior también dentro de .prose */
.prose .logos > li{ padding:18px 28px; }

/* Tarjetas con foto: texto legible sobre fondos claros */
.costa-card--photo .costa-card__bg::after{ background:linear-gradient(180deg, rgba(20,20,22,0) 25%, rgba(20,20,22,.55) 55%, rgba(20,20,22,.9) 100%); }
.costa-card--photo .costa-card__body{ text-shadow:0 1px 12px rgba(0,0,0,.35); }

/* Rejillas de 3 columnas con 5 tarjetas: la última fila centrada */
@media (min-width:901px){
  .cards[style*="--cols:3"]:has(> li:nth-child(5):last-child){ grid-template-columns:repeat(6,minmax(0,1fr)); }
  .cards[style*="--cols:3"]:has(> li:nth-child(5):last-child) > li{ grid-column:span 2; }
  .cards[style*="--cols:3"]:has(> li:nth-child(5):last-child) > li:nth-child(4){ grid-column:2 / span 2; }
}

/* Ritmo de fondos: paneles grises seguidos se funden en uno; blancos seguidos, sin doble hueco */
.costa-sec--soft:has(+ .costa-sec--soft){ margin-bottom:0; border-bottom-left-radius:0; border-bottom-right-radius:0; padding-bottom:clamp(20px,2.6vw,40px); }
.costa-sec--soft + .costa-sec--soft{ margin-top:0; border-top-left-radius:0; border-top-right-radius:0; padding-top:clamp(20px,2.6vw,40px); }
.costa-sec--light + .costa-sec--light{ padding-top:clamp(8px,1.2vw,20px); }

/* Texto + imagen: a una columna antes (tablet) y alineado arriba */
@media (max-width:900px){ .split{ grid-template-columns:minmax(0,1fr); } .split--img-izquierda .split__media{ order:0; } }

/* Foto de cabecera en tablet: encuadre más alto (no corta cabezas) */
@media (min-width:761px) and (max-width:900px){ .hero__media img{ object-position:50% 22%; } }

/* Banda de imagen: texto sobre panel oscuro y foto a la derecha (sin la costura del ampliado) */
.band__inner{ background:var(--ink); }
@media (min-width:761px){
  .band__media{ left:auto; width:48%; }
  .band__media img{ object-position:100% 50%; }
  .band__media::after{ background:linear-gradient(90deg, var(--ink) 0%, rgba(29,29,31,0) 22%); }
  .band__text{ max-width:min(600px,52%); }
}
@media (max-width:760px){
  .band__inner{ flex-direction:column; align-items:stretch; min-height:0; }
  .band__media{ position:relative; inset:auto; }
  .band__media img{ aspect-ratio:1/1; height:auto; object-position:100% 50%; }
  .band__media::after{ background:linear-gradient(180deg, rgba(29,29,31,0) 60%, var(--ink) 100%); }
}

/* Formularios CF7: sin saltos de línea sueltos */
.wpcf7-form br{ display:none; }

/* Contacto: tarjetas sin iconos de mapa de bits sueltos (estilo coherente) */
.way__ico{ display:none; }

/* Calculadora en móvil: nombre y plan en líneas separadas si no caben */
.bar__name{ flex-wrap:wrap; row-gap:2px; }

/* Cifras de la tira en móvil: misma altura */
@media (max-width:560px){ .stat__n{ font-size:1.1rem; } }

/* Pie en móvil: Servicios y Zonas en dos columnas */
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr 1fr; column-gap:20px; }
  .footer-col--brand{ grid-column:1 / -1; }
  .site-footer{ padding-bottom:88px; }
}

/* WhatsApp flotante: se oculta sobre el formulario final (ya tiene su botón) */
.wa-float{ transition:transform .2s var(--ease),opacity .25s,visibility .25s; }
.wa-float.is-off{ opacity:0; visibility:hidden; }

/* Tarjetas «con foto» en las que alguna no tiene imagen: bloque de marca a la misma altura que las fotos */
.cards--foto .costa-card--text{ padding-top:0; }
.prose .cards--foto > .costa-card--text::before{ width:auto; height:auto; aspect-ratio:4/3; margin:10px 10px 0; border-radius:calc(var(--radius-card) - 8px); background-size:clamp(48px,5vw,72px); }
.cards--foto .costa-card--text > h3:first-of-type{ margin-top:0; }

/* Marquee: copia en su propio bloque, pausa con foco o botón, menos hueco encima */
.marquee{ position:relative; margin-top:clamp(24px,3vw,48px); }
.marquee__run{ display:inline-flex; align-items:center; }
.marquee:focus-within .marquee__track,.marquee.is-paused .marquee__track{ animation-play-state:paused; }
.marquee__pause{ position:absolute; right:max(var(--gutter), calc((100vw - var(--content)) / 2)); top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; border:1px solid var(--hairline); background:#fff; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); }
.marquee__pause span{ width:10px; height:12px; border-inline:3px solid var(--ink); }
.marquee.is-paused .marquee__pause span{ width:0; height:0; border:0; border-left:11px solid var(--ink); border-block:7px solid transparent; margin-left:3px; }
@media (prefers-reduced-motion:reduce){ .marquee__pause{ display:none; } }

/* Accesibilidad (auditoría técnica 2026-10-07) */
html{ scroll-padding-top:100px; }
.prose .plan__day{ color:#276b43; }
/* Foco visible sobre fondos rojos u oscuros */
.cta :focus-visible,.site-footer :focus-visible,.announce :focus-visible,.quiz :focus-visible,.costa-sec--brand :focus-visible,.band :focus-visible,.calc-float :focus-visible{ outline-color:#fff; }
/* WhatsApp flotante: icono con contraste suficiente (verde más oscuro) */
.wa-float{ background:#1a8f47; }
.wa-float:hover{ background:#167a3c; }
/* Submenú cerrado con Escape aunque conserve el foco */
.primary-nav .menu-item-has-children.is-dismissed > .sub-menu{ opacity:0 !important; visibility:hidden !important; }
@media (max-width:980px){ .primary-nav .menu-item-has-children.is-dismissed > .sub-menu{ display:none !important; } }
.quiz p:empty,.cta p:empty{ display:none; }
/* Formularios: separación uniforme entre campos (los <br> de CF7 ya no cuentan) */
.wpcf7-form label{ display:block; margin-top:14px; }
.wpcf7-form .wpcf7-list-item label{ display:inline; margin-top:0; }
.wpcf7-form .lead-grid label{ margin-top:0; }
.wpcf7-form .wpcf7-acceptance{ display:block; margin-top:16px; }
.contact__form .wpcf7 textarea{ height:150px; }
.contact__form .wpcf7 input[type="submit"]{ width:100%; margin-top:16px; }

/* ==========================================================================
   Ronda de ajustes del responsable (2026-10-07, tarde)
   ========================================================================== */
/* Garantías: el icono no toca el borde de su tarjeta */
.prose .guarantees__list > .guarantee{ padding:18px 20px; }

/* Preguntas frecuentes a todo el ancho del bloque */
.faq{ max-width:none; }

/* Tarjetas «con foto» sin foto: bloque con icono, misma geometría que las fotos */
.costa-card__media--ico img,.costa-card__ph{ display:block; width:100%; aspect-ratio:4/3; height:auto; background:var(--brand-soft); border-radius:calc(var(--radius-card) - 8px); }
.costa-card__media--ico img{ object-fit:contain; padding:22% 0; }
.costa-card__ph{ background:var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23990000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.6-7 9-4-1.4-7-4.5-7-9V6z'/%3E%3Cpath d='M9 12l2.2 2.2L15.2 10'/%3E%3C/svg%3E") center/clamp(56px,6vw,84px) no-repeat; }

/* Tarjetas con icono: baldosa de marca, sin número cuando hay icono */
.prose .cards > .costa-card--icon-img::before{ content:none; }
.costa-card--icon-img .costa-card__media{ padding:clamp(18px,2vw,24px) clamp(18px,2vw,24px) 0; }
.costa-card--icon-img .costa-card__media img{ width:60px; height:60px; padding:13px; aspect-ratio:auto; object-fit:contain; background:var(--brand-soft); border-radius:18px; }
/* Reseñas → formulario: sin el doble hueco */
.sec--resenas{ padding-bottom:clamp(12px,1.6vw,24px); }
.sec--resenas + .cta{ margin-top:clamp(12px,1.6vw,24px); }
.costa-card--icon-img{ padding-top:0; }
.prose .costa-card--icon-img > h3{ margin-top:18px; }
.prose .costa-card--icon-img .costa-card__media{ margin:0; }
.costa-card > h3:last-child{ margin-bottom:clamp(18px,2vw,24px); }
/* Marquee: velocidad constante con cualquier número de zonas; control de pausa sobre fundido */
.marquee__track{ animation-duration:var(--dur,46s); }
.marquee__ctrl{ position:absolute; top:0; bottom:0; right:0; width:clamp(96px,10vw,160px); display:flex; align-items:center; justify-content:flex-end; padding-right:max(var(--gutter), calc((100vw - var(--content)) / 2)); background:linear-gradient(90deg, rgba(255,255,255,0) 0%, #fff 55%); pointer-events:none; }
.marquee__ctrl .marquee__pause{ position:static; transform:none; pointer-events:auto; }
@media (prefers-reduced-motion:reduce){ .marquee__ctrl{ display:none; } }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Mapa: el aviso queda encima hasta que Google Maps termina de pintar */
.map iframe{ opacity:0; transition:opacity .4s var(--ease); }
.map.is-loaded iframe{ opacity:1; }
.map.is-loaded .map__placeholder{ display:none; }
.map__placeholder{ z-index:1; }
.map.is-loading .map__load{ cursor:progress; opacity:.85; }
.marquee__ctrl{ width:calc(max(var(--gutter), calc((100vw - var(--content)) / 2)) + 150px); background:linear-gradient(90deg, rgba(255,255,255,0) 0, #fff 110px); }
.costa-card__media--ico img{ padding:27% 0; }
.map__consent{ margin-top:10px; font-size:var(--fs-sm); color:var(--ink-mute); }
.map__forget{ background:none; border:0; padding:0; font:inherit; color:var(--ink-soft); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.map__forget:hover{ color:var(--brand); }
.site-footer .footer-wordmark img{ width:clamp(170px,16vw,210px); height:auto; display:block; }

/* Planes: «desde» y aviso (p. ej. «Según existencias») */
.plan__from{ font-size:1rem; font-weight:600; color:var(--ink-soft); }
.prose .plan__aviso{ display:inline-block; align-self:flex-start; margin-top:var(--space-8); padding:4px 10px; border-radius:var(--radius-pill); background:var(--brand-soft); color:var(--brand); font-size:.84rem; font-weight:700; }

/* ==========================================================================
   Segunda ronda del cliente (2026-10-19)
   ========================================================================== */
/* Logo mucho más grande */
.site-header__inner{ min-height:96px; }
.site-brand img,.site-brand svg{ height:62px; }
.site-header.scrolled .site-brand img{ height:50px; }
.site-brand img{ transition:height .2s var(--ease); }
@media (max-width:1180px){ .site-brand img,.site-brand svg{ height:52px; } }
@media (max-width:560px){ .site-header__inner{ min-height:76px; } .site-brand img{ height:44px; } .site-header.scrolled .site-brand img{ height:40px; } }
#calculadora,#solicitud,#planes,#opiniones{ scroll-margin-top:116px; }
html{ scroll-padding-top:120px; }

/* Tarjeta de precio: «Después, desde» grande, en negrita y en color de marca */
.claim__from{ font-size:1.05rem; font-weight:700; color:var(--brand); margin-bottom:6px; letter-spacing:-.005em; }
@media (max-width:900px){ .claim__from{ font-size:.95rem; } }

/* ==========================================================================
   Aviso de cookies (inc/consent.php): Aceptar y Rechazar con el mismo peso
   ========================================================================== */
.cs-consent{ position:fixed; z-index:120; left:clamp(12px,3vw,28px); bottom:clamp(12px,3vw,28px); width:min(480px,calc(100% - 24px)); background:#fff; color:var(--ink); border:1px solid var(--hairline); border-radius:var(--radius-card); box-shadow:0 24px 60px rgba(20,10,10,.22); padding:clamp(18px,2.4vw,24px); }
.cs-consent[hidden]{ display:none; }
.cs-consent p{ margin:0; max-width:none; }
.cs-consent__t{ font-weight:700; font-size:1.05rem; }
.cs-consent__d{ margin-top:8px !important; font-size:.92rem; line-height:1.55; color:var(--ink-soft); }
.cs-consent__d a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; margin-left:4px; white-space:nowrap; }
.cs-consent__btns{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.cs-consent__btn{ justify-content:center; width:100%; background:var(--ink); color:#fff; border:0; }
.cs-consent__btn:hover{ background:#000; color:#fff; }
.cs-consent__btn:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; }
body.cs-consent-open .calc-float,body.cs-consent-open .wa-float{ display:none; }
.footer-cookies{ background:none; border:0; padding:0; font:inherit; font-size:inherit; color:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; opacity:.85; }
.footer-cookies:hover{ opacity:1; }
.footer-cookies:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
