/* ============================================================
   enhancements.css — Capa de conversión + pulido visual
   Pintores en Vigo · aditivo, no rompe estilos existentes
   ============================================================ */

/* ---------- 1. Barra de confianza (inyectada por enhance.js) ---------- */
.pev-trustbar{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;
  align-items:center;
  background:linear-gradient(180deg,#fff 0%,var(--bg-light) 100%);
  border-bottom:1px solid var(--border-color);
  padding:12px 16px;font-family:var(--font-main);
}
.pev-trustbar__item{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.9rem;font-weight:600;color:var(--primary-color);
  white-space:nowrap;
}
.pev-trustbar__item i{color:var(--secondary-color);font-size:1rem}
.pev-trustbar__item .pev-stars i{color:#f5b301}
@media (max-width:640px){
  .pev-trustbar{gap:6px 16px;padding:10px 12px}
  .pev-trustbar__item{font-size:.78rem}
  .pev-trustbar__item--hide-sm{display:none}
}

/* ---------- 2. Botones: más sólidos y táctiles ---------- */
.btn{border-radius:10px;font-weight:600;letter-spacing:.2px}
.btn-primary{
  background:linear-gradient(135deg,var(--secondary-color),var(--secondary-hover));
  border:none;box-shadow:0 6px 16px rgba(242,101,34,.28);
}
.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(242,101,34,.38);
}
.btn:active{transform:translateY(0)}
.btn:focus-visible,a:focus-visible,button:focus-visible,
.form-control:focus-visible{
  outline:3px solid rgba(12,35,64,.35);outline-offset:2px;
}

/* ---------- 3. Tarjetas: elevación y borde de acento al hover ---------- */
.service-card,.work-card,.feature-item{
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.service-card:hover,.work-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
}
.service-card{position:relative;overflow:hidden}
.service-card::before{
  content:"";position:absolute;top:0;left:0;width:100%;height:4px;
  background:var(--secondary-color);transform:scaleX(0);transform-origin:left;
  transition:transform .3s ease;
}
.service-card:hover::before{transform:scaleX(1)}

/* ---------- 4. Encabezados de sección: acento bajo el título ---------- */
.section-header h2{position:relative;display:inline-block;padding-bottom:14px}
.section-header h2::after{
  content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:64px;height:4px;border-radius:2px;background:var(--secondary-color);
}

/* ---------- 5. Formularios: foco claro y armonía ---------- */
.form-control{
  border-radius:10px;border:1.5px solid var(--border-color);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.form-control:focus{
  border-color:var(--secondary-color);
  box-shadow:0 0 0 3px rgba(242,101,34,.15);outline:none;
}

/* ---------- 6. WhatsApp flotante: pulso + etiqueta ---------- */
.whatsapp-float{position:relative}
.whatsapp-float::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:0 0 0 0 rgba(37,211,102,.6);
  animation:pevPulse 2.2s infinite;
}
@keyframes pevPulse{
  70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}
}

/* ---------- 7. Sellos de garantía (bloque reutilizable) ---------- */
.pev-seals{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:18px;margin:32px 0;
}
.pev-seal{
  display:flex;align-items:center;gap:14px;padding:18px 20px;
  background:var(--bg-white);border:1px solid var(--border-color);
  border-radius:14px;box-shadow:var(--shadow-sm);
}
.pev-seal i{
  font-size:1.6rem;color:var(--secondary-color);
  background:rgba(242,101,34,.1);width:48px;height:48px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;flex:0 0 48px;
}
.pev-seal strong{display:block;font-size:.98rem;color:var(--primary-color)}
.pev-seal span{font-size:.82rem;color:var(--text-light)}

/* ---------- 9. Mega-menú de servicios (3 columnas) ---------- */
.nav-links li.has-mega{position:relative}
.nav-links li.has-mega>a .mega-caret{font-size:.62rem;margin-left:5px;transition:transform .2s}
.mega-menu{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
  background:#fff;border-radius:14px;box-shadow:0 22px 55px rgba(12,35,64,.20);
  border:1px solid var(--border-color);padding:24px 28px;
  display:grid;grid-template-columns:repeat(3,minmax(195px,1fr));gap:6px 34px;
  min-width:680px;opacity:0;visibility:hidden;z-index:1000;transition:opacity .2s ease,transform .2s ease;
}
.mega-menu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.nav-links li.has-mega:hover .mega-menu,
.nav-links li.has-mega:focus-within .mega-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav-links li.has-mega:hover>a .mega-caret{transform:rotate(180deg)}
.mega-col{display:flex;flex-direction:column;gap:1px}
.mega-title{font-family:var(--font-heading);font-size:.71rem;font-weight:800;letter-spacing:.6px;
  text-transform:uppercase;color:var(--secondary-color);margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid #eef1f4}
.mega-col a{padding:7px 9px;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--primary-color)!important;
  text-decoration:none;transition:background .15s,color .15s;display:flex;align-items:center;gap:9px}
.mega-col a::before{content:"\f105";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.72rem;color:var(--secondary-color);opacity:.55}
.mega-col a:hover{background:var(--bg-light);color:var(--secondary-hover)!important}
.mega-col a:hover::before{opacity:1}
@media(max-width:992px){
  .mega-menu{position:static;transform:none;opacity:1;visibility:visible;min-width:0;width:100%;
    grid-template-columns:1fr;box-shadow:none;border:none;padding:4px 0 10px 12px;display:grid;gap:0}
  .nav-links li.has-mega>a .mega-caret{display:none}
  .mega-title{margin-top:12px}
}

/* ---------- 10. Componentes de página (compartidos por location/service pages) ---------- */
/* Proceso timeline */
.proceso-steps{display:flex;gap:0;counter-reset:paso;position:relative;overflow-x:auto}
.proceso-step{flex:1;min-width:140px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;padding:0 10px}
.proceso-step::before{counter-increment:paso;content:counter(paso);width:44px;height:44px;background:var(--secondary-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;position:relative;z-index:2;flex-shrink:0;box-shadow:0 2px 10px rgba(242,101,34,.35)}
.proceso-step:not(:last-child)::after{content:'';position:absolute;top:22px;left:calc(50% + 22px);right:calc(-50% + 22px);height:2px;background:linear-gradient(90deg,var(--secondary-color),#e8c4a8);z-index:1}
.proceso-step-body{margin-top:14px}
.proceso-step-body h4{font-size:.95rem;color:var(--primary-color);margin:0 0 6px;font-weight:700}
.proceso-step-body p{font-size:.82rem;color:#777;margin:0;line-height:1.5}
/* FAQ acordeón */
.faq-item{border-bottom:1px solid #e8ecf0}
.faq-item summary{padding:16px 20px;font-weight:600;font-size:.97rem;color:var(--primary-color);cursor:pointer;display:flex;justify-content:space-between;align-items:center;list-style:none;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.4rem;font-weight:300;color:var(--secondary-color);transition:transform .25s;flex-shrink:0}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{padding:0 20px 16px 20px;margin:0;color:#555;font-size:.92rem;line-height:1.7}
/* Cluster subservicios */
.cluster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.cluster-card{border:1.5px solid #e2e8f0;border-radius:10px;padding:14px 12px;background:#fff;transition:border-color .2s,box-shadow .2s,transform .2s}
.cluster-card:hover{border-color:var(--secondary-color);box-shadow:0 4px 16px rgba(242,101,34,.12);transform:translateY(-2px)}
.cluster-card i{color:var(--secondary-color);font-size:1.3rem;margin-bottom:8px;display:block}
.cluster-card h4{font-size:.88rem;margin:0 0 4px;color:var(--primary-color);font-weight:700}
.cluster-card p{font-size:.78rem;color:#777;margin:0}
/* CTA strip */
.cta-strip{background:linear-gradient(90deg,var(--primary-color) 0%,#1a3a6e 100%);padding:28px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center}
.cta-strip p{color:#fff;margin:0;font-size:1rem;font-weight:500;text-align:center}
.cta-strip p span{color:var(--secondary-color);font-weight:700}
.cta-strip a{background:var(--secondary-color);color:#fff;padding:11px 24px;border-radius:6px;text-decoration:none;font-weight:700;font-size:.95rem;white-space:nowrap;flex-shrink:0;transition:opacity .2s}
.cta-strip a:hover{opacity:.88}
/* Testimonios */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:24px;justify-items:stretch}
.review-card{background:#fff;border:1px solid #e8ecf0;border-radius:12px;padding:18px;transition:box-shadow .2s}
.review-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1)}
.review-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.review-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;flex-shrink:0}
.review-name{font-weight:700;font-size:.92rem;color:var(--primary-color);margin:0 0 2px}
.review-date{font-size:.75rem;color:#999;margin:0}
.review-stars{color:#f59e0b;font-size:.9rem;margin-bottom:8px}
.review-text{font-size:.88rem;color:#555;line-height:1.6;margin:0}
.google-badge{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #f0f0f0}
.google-badge svg{width:14px;height:14px}
.google-badge span{font-size:.72rem;color:#999}
/* Rating bar */
.rating-bar{display:flex;align-items:center;gap:14px;background:#fff7f0;border:1.5px solid #f4d0b5;border-radius:10px;padding:14px 18px;margin-top:18px}
.rating-stars{color:#f59e0b;font-size:1.2rem}
.rating-text{font-size:.85rem;color:#555;line-height:1.4}
.rating-text strong{color:var(--primary-color);font-size:1rem}
@media(max-width:640px){
  .proceso-steps{flex-direction:column}
  .proceso-step{flex-direction:row;text-align:left;gap:14px;padding:0;margin-bottom:16px}
  .proceso-step::after{display:none}
  .proceso-step-body{margin-top:0}
  .cta-strip{flex-direction:column;text-align:center}
}

/* ---------- 11. Hub de zonas + tarjetas de localidad ---------- */
.zonas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-top:8px}
.zona-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-color);border-radius:16px;overflow:hidden;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease}
.zona-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(12,35,64,.16)}
.zona-card__img{position:relative;height:170px;overflow:hidden}
.zona-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.zona-card:hover .zona-card__img img{transform:scale(1.07)}
.zona-card__img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(12,35,64,.55),transparent 60%)}
.zona-card__dist{position:absolute;top:12px;right:12px;z-index:2;background:rgba(255,255,255,.92);color:var(--primary-color);font-size:.74rem;font-weight:700;padding:5px 11px;border-radius:30px;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.zona-card__dist i{color:var(--secondary-color)}
.zona-card__body{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column}
.zona-card__body h3{font-size:1.25rem;margin:0 0 6px;color:var(--primary-color)}
.zona-card__body p{font-size:.9rem;color:var(--text-light);margin:0 0 16px;line-height:1.55;flex:1}
.zona-card__cta{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.92rem;color:var(--secondary-color)}
.zona-card__cta i{transition:transform .25s ease}
.zona-card:hover .zona-card__cta i{transform:translateX(5px)}

/* Stats animados (contadores) */
.pev-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;margin:8px 0}
.pev-stat{text-align:center;padding:24px 16px;background:#fff;border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-sm)}
.pev-stat__num{font-family:var(--font-heading);font-size:2.3rem;font-weight:800;color:var(--secondary-color);line-height:1;display:block}
.pev-stat__num small{font-size:1.4rem}
.pev-stat__label{display:block;margin-top:8px;font-size:.86rem;color:var(--text-light);font-weight:600}

/* ---------- 12. Dinamismo global: scroll-reveal + barra de progreso ---------- */
.pev-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:9999;background:linear-gradient(90deg,var(--secondary-color),var(--secondary-hover));transition:width .1s linear;pointer-events:none}
.pev-js .reveal{opacity:0;transform:translateY(26px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
.pev-js .reveal.in{opacity:1;transform:none}
.pev-js .reveal[data-delay="1"]{transition-delay:.08s}
.pev-js .reveal[data-delay="2"]{transition-delay:.16s}
.pev-js .reveal[data-delay="3"]{transition-delay:.24s}

/* ---------- 13. Dropdown de Zonas (1 columna, anclado a la izquierda) ---------- */
.nav-links li.has-mega--zonas{position:relative}
.mega-menu--zonas{
  left:0;transform:translateX(0) translateY(8px);
  grid-template-columns:1fr;min-width:230px;padding:14px 16px;gap:0;
}
.nav-links li.has-mega--zonas:hover .mega-menu--zonas,
.nav-links li.has-mega--zonas:focus-within .mega-menu--zonas{transform:translateX(0) translateY(0)}
.mega-menu--zonas .mega-col a{font-size:.92rem}
.mega-menu--zonas .mega-all{
  margin-top:7px;padding-top:11px;border-top:1px solid #eef1f4;
  font-weight:700;color:var(--secondary-color)!important;
}
.mega-menu--zonas .mega-all::before{content:"\f0ac"} /* globe */
@media(max-width:992px){
  .mega-menu--zonas{left:auto;min-width:0;width:100%}
}

/* ============================================================
   14. CAPA DE DISEÑO MODERNO — global, progressive enhancement
   ============================================================ */

/* 14.0 Base: scroll suave, selección y scrollbar de marca */
html{scroll-behavior:smooth}
::selection{background:var(--secondary-color);color:#fff}
@media(min-width:992px){
  *{scrollbar-width:thin;scrollbar-color:#c5ced8 transparent}
  ::-webkit-scrollbar{width:11px;height:11px}
  ::-webkit-scrollbar-thumb{background:#c5ced8;border-radius:8px;border:3px solid var(--bg-light)}
  ::-webkit-scrollbar-thumb:hover{background:var(--secondary-color)}
}

/* 14.1 Header: cristal esmerilado + borde fino */
.site-header{
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(12px);
  -webkit-backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid rgba(12,35,64,.07);
  box-shadow:0 1px 0 rgba(12,35,64,.04);
}
.top-bar{background:linear-gradient(90deg,var(--primary-color) 0%,#15355f 100%)}
.nav-links li.has-mega>a,.nav-links a{transition:color .18s ease}
.nav-links>li>a{position:relative}
.nav-links>li:not(.has-mega)>a::after{
  content:"";position:absolute;left:0;bottom:-6px;width:100%;height:2px;
  background:var(--secondary-color);transform:scaleX(0);transform-origin:right;
  transition:transform .25s ease;border-radius:2px;
}
.nav-links>li:not(.has-mega)>a:hover::after{transform:scaleX(1);transform-origin:left}

/* 14.2 Hero: capas de profundidad + tipografía fluida */
.hero{overflow:hidden}
.hero:not(.hero-subpage){padding:clamp(72px,11vw,128px) 0}
.hero-subpage{padding:clamp(56px,7vw,84px) 0}
.hero::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(60% 80% at 18% 12%,rgba(242,101,34,.20),transparent 60%),
    radial-gradient(55% 70% at 88% 90%,rgba(56,128,232,.22),transparent 60%);
}
.hero .container{position:relative;z-index:1}
.hero h1{font-size:clamp(2.1rem,5.2vw,3.3rem);letter-spacing:-.5px;line-height:1.12}
.hero p{font-size:clamp(1.02rem,2.2vw,1.22rem)}
.hero-subpage h1{font-size:clamp(1.9rem,5vw,2.9rem);letter-spacing:-.5px}

/* Entrada animada del hero (solo si el usuario no pide menos movimiento) */
@media (prefers-reduced-motion:no-preference){
  .hero h1{animation:pevHeroUp .7s cubic-bezier(.16,1,.3,1) both}
  .hero p{animation:pevHeroUp .7s cubic-bezier(.16,1,.3,1) .1s both}
  .hero .hero-buttons{animation:pevHeroUp .7s cubic-bezier(.16,1,.3,1) .2s both}
  .hero .trust-badges{animation:pevHeroUp .7s cubic-bezier(.16,1,.3,1) .3s both}
}
@keyframes pevHeroUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* 14.3 Badges del hero: cristal con realce */
.badge{
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);
  box-shadow:0 6px 20px rgba(0,0,0,.12);transition:transform .25s ease,background .25s ease;
}
.badge:hover{transform:translateY(-3px);background:rgba(255,255,255,.2)}

/* 14.4 Botón primario: barrido de brillo */
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{
  content:"";position:absolute;top:0;left:-130%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-18deg);transition:left .6s ease;
}
.btn-primary:hover::after{left:130%}
.btn-outline{border-width:2px;font-weight:600}

/* 14.5 Tarjetas de servicio: radio mayor + zoom de imagen */
.service-card{border-radius:16px}
.service-card .service-img{overflow:hidden}
.service-card .service-img img{transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.service-card:hover .service-img img{transform:scale(1.08)}
.service-icon{
  background:linear-gradient(135deg,rgba(242,101,34,.16),rgba(242,101,34,.06));
  box-shadow:0 6px 16px rgba(242,101,34,.16);transition:transform .3s ease;
}
.service-card:hover .service-icon{transform:scale(1.08) rotate(-4deg)}
.service-content h3 a{color:var(--primary-color)}
.service-content h3 a:hover{color:var(--secondary-color)}

/* 14.6 Encabezados de sección: barra con degradado */
.section-header h2::after{
  background:linear-gradient(90deg,var(--secondary-color),var(--secondary-hover));
  box-shadow:0 2px 8px rgba(242,101,34,.35);
}

/* 14.7 Why-us / features: tarjeta táctil con icono en gradiente */
.feature-item{border:1px solid var(--border-color);border-radius:16px;transition:transform .25s ease,box-shadow .25s ease}
.feature-item:hover{transform:translateY(-6px);box-shadow:0 18px 38px rgba(12,35,64,.12)}
.feature-item i{
  background:linear-gradient(135deg,var(--secondary-color),var(--secondary-hover));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}

/* 14.8 Tarjetas de blog/artículo: radio + zoom + flecha */
.article-card{border-radius:16px}
.article-card .article-img{transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.article-card:hover .article-img{transform:scale(1.06)}
.read-more{display:inline-flex;align-items:center;gap:7px}
.read-more::after{content:"\f061";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.78rem;transition:transform .25s ease}
.read-more:hover::after{transform:translateX(4px)}

/* 14.9 Footer: degradado profundo + acento superior */
.site-footer{
  background:linear-gradient(180deg,#0a1f38 0%,#06121f 100%);
  border-top:3px solid var(--secondary-color);
}
.footer-col a{transition:color .2s ease,padding-left .2s ease}

/* 14.10 CTA mid-page: capa de textura sutil */
.cta-section{position:relative;overflow:hidden;border-radius:0}
.cta-section::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(40% 120% at 100% 0,rgba(255,255,255,.16),transparent 60%);
}
.cta-section .container{position:relative;z-index:1}

/* 14.11 Imágenes con esquinas suaves por defecto en contenido */
.service-img,.article-img{border-top-left-radius:16px;border-top-right-radius:16px}

/* ============================================================
   §15 — Listas de features en tarjeta + bloque subclúster
   (reutilizable en todas las páginas de servicio)
   ============================================================ */
.pev-feature-list{list-style:none;padding:0;margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pev-feature-list li{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #eef1f5;border-radius:12px;padding:12px 14px;box-shadow:0 2px 10px rgba(12,35,64,.05);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.pev-feature-list li:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(12,35,64,.10);border-color:#f4d0b5}
.pev-feature-list li>span:last-child{font-size:.92rem;color:#374151;font-weight:500;line-height:1.4}
.pev-feature-ico{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--secondary-color),#d9531e);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;box-shadow:0 3px 10px rgba(230,88,14,.30)}
@media(max-width:520px){.pev-feature-list{grid-template-columns:1fr}}
.rating-bar{align-items:center}

/* Subclúster de servicios — grid de enlaces internos con relevancia */
.pev-subcluster{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:22px}
.pev-sub-card{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid #e8ecf0;border-radius:14px;padding:16px 16px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.pev-sub-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(12,35,64,.12);border-color:var(--secondary-color)}
.pev-sub-card i{flex-shrink:0;width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:1.05rem;color:var(--secondary-color);background:#fff4ec}
.pev-sub-card h4{font-size:.98rem;margin:0 0 4px;color:var(--primary-color);font-weight:700;line-height:1.25}
.pev-sub-card p{font-size:.83rem;color:#6b7280;margin:0;line-height:1.45}
.pev-sub-card .pev-sub-go{display:inline-block;margin-top:7px;font-size:.8rem;font-weight:700;color:var(--secondary-color)}

/* ============================================================
   §16 — Stats grid (clima atlántico / confianza) modernizado
   ============================================================ */
.pev-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pev-stat-box{position:relative;overflow:hidden;border-radius:16px;padding:30px 22px;text-align:center;border:1px solid #eef1f5;background:#fff;transition:transform .25s ease,box-shadow .25s ease}
.pev-stat-box:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(12,35,64,.13)}
.pev-stat-box .pev-stat-ico{font-size:1.3rem;margin-bottom:10px;display:block;opacity:.9}
.pev-stat-box .pev-stat-num{font-size:2.7rem;font-weight:800;line-height:1}
.pev-stat-box .pev-stat-lbl{font-size:.9rem;margin-top:6px}
.pev-stat-box--primary{background:linear-gradient(135deg,var(--primary-color),#1a3a6e);color:#fff;border:0}
.pev-stat-box--primary .pev-stat-num{color:var(--secondary-color)}
.pev-stat-box--primary .pev-stat-lbl,.pev-stat-box--primary .pev-stat-ico{color:#fff;opacity:.85}
.pev-stat-box--accent{background:linear-gradient(135deg,var(--secondary-color),#d9531e);color:#fff;border:0}
.pev-stat-box--accent .pev-stat-num{color:#fff}
.pev-stat-box--accent .pev-stat-lbl,.pev-stat-box--accent .pev-stat-ico{color:#fff;opacity:.9}
.pev-stat-box--light .pev-stat-num{color:var(--primary-color)}
.pev-stat-box--light .pev-stat-ico{color:var(--secondary-color)}
.pev-stat-box--light .pev-stat-lbl{color:#667085}
.pev-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
@media(max-width:860px){.pev-context-grid{grid-template-columns:1fr;gap:32px}}

/* ============================================================
   §17 — Navegación móvil: drawer lateral accesible y navegable
   (unifica el breakpoint a 992px y arregla el solape/recorte)
   ============================================================ */
@media(max-width:992px){
  .mobile-menu-btn{display:block;position:relative;z-index:1310;color:var(--primary-color)}
  .site-header{z-index:1300}

  .main-nav{
    position:fixed;top:0;right:0;left:auto;
    width:min(88vw,380px);height:100vh;height:100dvh;
    background:#fff;flex-direction:column;align-items:stretch;gap:0;
    padding:74px 16px 36px;
    box-shadow:-12px 0 44px rgba(12,35,64,.22);
    transform:translateX(100%);transition:transform .3s ease;
    display:flex;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1290;
  }
  .main-nav.active{transform:translateX(0)}

  .nav-links{flex-direction:column;width:100%;text-align:left;gap:0}
  .nav-links>li{padding:0;border-bottom:1px solid #eef1f4;text-align:left}
  .nav-links>li>a{display:flex;align-items:center;justify-content:space-between;
    padding:15px 4px;font-size:1.02rem;font-weight:700;color:var(--primary-color)}

  /* submenús: siempre desplegados dentro del drawer, sin recortes */
  .mega-menu,.mega-menu--zonas{
    position:static;transform:none;opacity:1;visibility:visible;
    width:100%;min-width:0;left:auto;right:auto;
    background:transparent;border:none;box-shadow:none;
    display:grid;grid-template-columns:1fr;gap:0;padding:0 0 12px 6px;
  }
  .mega-menu::before{display:none}
  .nav-links li.has-mega>a .mega-caret{display:none}
  .mega-title{margin-top:14px;font-size:.7rem}
  .mega-col a{padding:9px 8px;font-size:.92rem;line-height:1.3;
    white-space:normal;overflow-wrap:anywhere}

  /* botones Llamar/Presupuesto a ancho completo al final del drawer */
  .main-nav>div{flex-direction:column;width:100%;margin:22px 0 0 0!important;gap:10px!important}
  .main-nav>div .btn{width:100%;justify-content:center;padding:13px 15px!important}

  /* capa oscura tras el drawer */
  .pev-nav-overlay{position:fixed;inset:0;background:rgba(12,35,64,.5);
    opacity:0;visibility:hidden;transition:opacity .3s ease;z-index:1280}
  body.pev-nav-open .pev-nav-overlay{opacity:1;visibility:visible}
  body.pev-nav-open{overflow:hidden}
}

/* ============================================================
   §18 — Ajustes generales móvil (legibilidad y sin scroll lateral)
   ============================================================ */
@media(max-width:768px){
  .hero.hero-subpage h1{font-size:1.95rem!important;line-height:1.18!important}
  .hero .container>p{font-size:1rem!important}
  .section-header h2{font-size:1.55rem}
  .pev-context-grid h2,.section .container>div h2{word-wrap:break-word}
  .cta-strip{padding:24px 18px}
  table{display:block;width:100%;overflow-x:auto}
}
@media(max-width:992px){body{overflow-x:hidden}}

/* ---------- 8. Accesibilidad: respetar reduce-motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .service-card:hover,.work-card:hover,.btn-primary:hover{transform:none}
  .pev-js .reveal{opacity:1!important;transform:none!important}
  .pev-progress{display:none}
}
