/* Reformas y Pinturas Laszlo — hoja de estilos global
   Ajustada 1:1 al boceto brandbook/home-laszlo.html
   Nota: Elementor NO imprime las clases CSS de los contenedores, así que las
   secciones se enganchan por su _element_id, que sí se imprime. */

:root{
  --lz-azul:#416DB8;
  --lz-azul-osc:#35599A;
  --lz-oscuro:#16233A;
  --lz-fondo:#F5F8FC;
  --lz-texto:#5B6675;
  --lz-naranja:#FF8A3D;
  --lz-borde:#E4EBF5;
  --lz-overlay:46,54,70;
}

body{font-family:'Manrope',sans-serif;background:var(--lz-fondo);color:var(--lz-oscuro);line-height:1.5;padding-bottom:74px;}
h1,h2,h3,h4,h5,h6{font-family:'Sora',sans-serif;color:var(--lz-oscuro);line-height:1.2;}
/* El CSS de página de Elementor pinta TODOS los titulares con el color principal
   (.elementor-widget-heading .elementor-heading-title -> --e-global-color-primary).
   Se devuelven al oscuro de marca; las excepciones (eyebrow, chip, tag, número y
   secciones oscuras) van más abajo y ganan por orden o por ID. */
.elementor-widget-heading .elementor-heading-title{color:var(--lz-oscuro);}
img{max-width:100%;height:auto;}
.elementor a{text-decoration:none;}
.elementor-widget-text-editor{color:var(--lz-texto);font-size:15px;}

/* ---------- botones ---------- */
.lz-btn{display:inline-block;padding:13px 24px;border-radius:10px;font-family:'Manrope',sans-serif;font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap;transition:background .25s ease,color .25s ease,box-shadow .2s ease,transform .2s ease;}
.lz-btn-primary{background:var(--lz-azul);color:#fff;box-shadow:0 2px 8px rgba(65,109,184,.22);}
.lz-btn-primary:hover{background:var(--lz-azul-osc);color:#fff;box-shadow:0 8px 20px rgba(65,109,184,.34);transform:translateY(-1px);}
.lz-btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px rgba(65,109,184,.22);}
.lz-btn:focus-visible{outline:3px solid rgba(255,138,61,.75);outline-offset:2px;}

/* ---------- utilidades de sección ---------- */
.lz-eyebrow .elementor-heading-title{color:var(--lz-azul);font-family:'Manrope',sans-serif;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;}
.lz-h2 .elementor-heading-title{font-size:30px;font-weight:700;}
.lz-lead{color:var(--lz-texto);font-size:16px;}

/* ---------- secciones oscuras ---------- */
#como-trabajamos h1,#como-trabajamos h2,#como-trabajamos h3,#como-trabajamos h4,
#comunidades h1,#comunidades h2,#comunidades h3,#comunidades h4{color:#fff;}
#como-trabajamos .elementor-widget-text-editor,
#comunidades .elementor-widget-text-editor{color:#AFC3DE;}
#como-trabajamos .lz-eyebrow .elementor-heading-title,
#comunidades .lz-eyebrow .elementor-heading-title{color:#8FAFDD;}
#como-trabajamos .lz-lead,#comunidades .lz-lead{color:#F5F8FC;}

/* ---------- HERO ----------
   El boceto usa grid 1.15fr/.85fr: con flex + gap las columnas se encogen y
   la tarjeta del formulario sale estrecha. */
/* El degradado del boceto tiene 4 paradas; el control de Elementor sólo admite
   2, así que se pinta aquí sobre la capa de superposición que él genera. */
#inicio::before{
  background-image:linear-gradient(100deg,
    rgba(var(--lz-overlay),.92) 0%,
    rgba(var(--lz-overlay),.78) 38%,
    rgba(var(--lz-overlay),.42) 62%,
    rgba(var(--lz-overlay),.20) 100%)!important;
  opacity:1!important;
}
#hero-row > .e-con-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
#hero-row > .e-con-inner > .e-con{width:auto!important;max-width:none;}

.lz-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:100px;padding:8px 16px;font-size:13px;font-weight:600;color:#F5F8FC;width:fit-content;margin-bottom:24px;}
.lz-hero-h1 .elementor-heading-title span{color:var(--lz-naranja);}
.lz-hero-lead{margin-bottom:40px;}
/* Elementor fuerza max-width:100% en los widgets de un contenedor con un selector
   de 4 clases, así que el ancho del texto de apoyo necesita superarlo. */
.elementor.elementor .e-con > .elementor-widget.lz-hero-lead{max-width:460px;}
.lz-trust{display:flex;gap:32px;flex-wrap:wrap;}
.lz-trust div{font-family:'Sora',sans-serif;font-weight:800;font-size:21px;color:#fff;line-height:1.2;}
.lz-trust span{display:block;font-family:'Manrope',sans-serif;font-weight:500;font-size:13px;color:#fff;margin-top:2px;}

/* ---------- formularios ---------- */
.lz-form-card{background:#fff;border-radius:16px;padding:32px 28px;box-shadow:0 20px 50px rgba(20,24,34,.28);}
.lz-form-card h3{font-family:'Sora',sans-serif;font-size:20px;font-weight:700;margin:0 0 6px;}
.lz-form-card p.sub{color:var(--lz-texto);font-size:14px;margin:0 0 22px;}
.lz-field{margin-bottom:16px;}
.lz-field label{display:block;font-size:13px;font-weight:600;color:var(--lz-oscuro);margin-bottom:6px;}
.lz-field input,.lz-field select,.lz-field textarea{width:100%;padding:12px 14px;border:1.5px solid #DCE6F3;border-radius:9px;font-family:'Manrope',sans-serif;font-size:14px;color:var(--lz-oscuro);background:var(--lz-fondo);}
.lz-field input:focus,.lz-field select:focus,.lz-field textarea:focus{outline:none;border-color:var(--lz-azul);}
.lz-field textarea{resize:none;height:70px;}
.lz-check{display:flex;align-items:flex-start;gap:8px;margin-bottom:16px;}
.lz-check input{width:16px;height:16px;min-width:16px;margin-top:2px;accent-color:var(--lz-azul);flex-shrink:0;}
.lz-check label{font-size:12px;font-weight:500;line-height:1.4;color:var(--lz-texto);}
.lz-check a{color:var(--lz-azul);font-weight:600;}
.lz-form button{width:100%;border:none;cursor:pointer;font-family:'Manrope',sans-serif;margin-top:4px;}

/* formulario sobre el azul del pie */
.lz-form-dark{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:28px;}
.lz-form-dark .lz-field{margin-bottom:14px;}
.lz-form-dark .lz-field label{color:#F5F8FC;}
.lz-form-dark .lz-field input,.lz-form-dark .lz-field select{border:1.5px solid rgba(255,255,255,.24);color:#fff;background:rgba(255,255,255,.08);}
.lz-form-dark .lz-field input::placeholder{color:#C2D2E8;}
.lz-form-dark .lz-check label{color:#D2E0F1;}
.lz-form-dark .lz-check a{color:#fff;font-weight:700;}
.lz-form-dark .lz-btn-primary{background:#fff;color:var(--lz-azul);box-shadow:0 2px 10px rgba(20,24,34,.18);}
.lz-form-dark .lz-btn-primary:hover{background:#EAF1FB;color:var(--lz-azul);}

/* ---------- tarjetas de servicio (image-box) ---------- */
.lz-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 14px rgba(62,79,110,.06);height:100%;}
.lz-card .elementor-image-box-wrapper{display:block;text-align:left;}
.lz-card .elementor-image-box-img{width:100%!important;margin:0!important;float:none!important;}
.lz-card .elementor-image-box-img img{width:100%;height:160px;object-fit:cover;display:block;transition:transform .45s ease;border-radius:0;}
.lz-card:hover .elementor-image-box-img img{transform:scale(1.06);}
.lz-card .elementor-image-box-content{padding:20px 22px 26px;}
.lz-card .elementor-image-box-title{font-family:'Sora',sans-serif;font-size:16px;font-weight:700;margin:0 0 8px;color:var(--lz-oscuro);}
.lz-card .elementor-image-box-description{font-size:14px;color:var(--lz-texto);margin:0;}

/* ---------- iconos de "por qué elegirnos" ---------- */
#por-que-elegirnos .elementor-icon{border-radius:10px;}

/* ---------- tarjetas de proceso ---------- */
#proceso-grid > .e-con{background:rgba(255,255,255,.05);border-radius:14px;}
#proceso-grid .elementor-widget-heading .elementor-heading-title,
#proceso-grid .elementor-widget-text-editor{text-align:left;}
#proceso-grid .elementor-widget-text-editor{color:#fff;}
.lz-num .elementor-heading-title{font-family:'Sora',sans-serif;font-weight:800;font-size:34px;color:#6F9AE0;margin-bottom:8px;}

/* ---------- chips de zona ---------- */
.lz-chip{background:var(--lz-fondo);border-radius:12px;box-shadow:0 2px 10px rgba(62,79,110,.05);}
.lz-chip .elementor-heading-title{font-family:'Sora',sans-serif;font-weight:700;font-size:15px;color:var(--lz-azul);}

/* ---------- marcas ---------- */
.lz-marcas{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.lz-marcas div{background:#fff;border:1px solid var(--lz-borde);border-radius:10px;height:60px;display:flex;align-items:center;justify-content:center;padding:12px 14px;}
.lz-marcas img{max-width:100%;max-height:26px;width:auto;object-fit:contain;}

/* ---------- caso destacado ---------- */
.lz-tag .elementor-heading-title{display:inline-block;background:var(--lz-azul);color:#fff;font-family:'Manrope',sans-serif;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 14px;border-radius:100px;}
#flagship-row{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center;}
#flagship-row > .e-con{width:auto!important;max-width:none;}

/* ---------- comunidades ---------- */
#comunidades-row > .e-con-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
#comunidades-row > .e-con-inner > .e-con{width:auto!important;max-width:none;}
.lz-com-list{list-style:none;margin:0;padding:0;}
.lz-com-list li{list-style:none;padding:14px 0;border-top:1px solid rgba(245,241,232,.14);font-size:15px;color:#D7E2F2;}
.lz-com-list li:last-child{border-bottom:1px solid rgba(245,241,232,.14);}
.lz-com-list strong{display:block;font-family:'Sora',sans-serif;font-weight:700;color:#fff;margin-bottom:4px;}

/* ---------- sobre nosotros ---------- */
#sobre-row > .e-con-inner{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center;}
#sobre-row > .e-con-inner > .e-con{width:auto!important;max-width:none;}
.lz-sobre-img img{border-radius:14px;box-shadow:0 8px 30px rgba(62,79,110,.14);width:100%;display:block;transition:transform .45s ease;}
.lz-sobre-img:hover img{transform:scale(1.03);}

/* ---------- fotos con etiqueta antes/después ---------- */
.lz-foto{position:relative;border-radius:12px;overflow:hidden;}
.lz-foto img{width:100%;object-fit:cover;transition:transform .45s ease;display:block;}
.lz-foto:hover img{transform:scale(1.06);}
.lz-foto::after{position:absolute;background:rgba(46,54,70,.75);color:#fff;font-family:'Manrope',sans-serif;font-weight:700;letter-spacing:.03em;border-radius:100px;}
.lz-antes::after{content:'ANTES';}
.lz-despues::after{content:'DESPUÉS';}
.lz-foto-sm img{height:150px;}
.lz-foto-md img{height:190px;}
.lz-foto-lg img{height:340px;border-radius:14px;}
.lz-foto-lg{border-radius:14px;box-shadow:0 8px 30px rgba(62,79,110,.14);}
.lz-foto-lg::after{top:16px;left:16px;font-size:12px;padding:6px 12px;}
.lz-foto-sm::after,.lz-foto-md::after{top:10px;left:10px;font-size:11px;padding:4px 10px;}

/* ---------- CABECERA ---------- */
.lz-nav{position:sticky;top:0;z-index:90;background:var(--lz-fondo);border-bottom:1px solid rgba(62,79,110,.12);}
.lz-nav-in{max-width:1180px;margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
/* el enlace del logo se encogía al no caber la fila y deformaba la imagen */
.lz-nav-in > a{flex-shrink:0;}
.lz-nav-in img.lz-logo{height:38px;width:auto;max-width:none;display:block;}
.lz-links{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:600;flex-shrink:0;}
.lz-links a{color:var(--lz-oscuro);text-decoration:none;}
.lz-links a:hover{color:var(--lz-azul);}
.lz-menu{display:flex;gap:22px;list-style:none;margin:0;padding:0;}
.lz-menu li{list-style:none;}

/* ---------- desplegable de Servicios ---------- */
.lz-menu > li{position:relative;padding:10px 0;}
.lz-menu .menu-item-has-children > a::after{content:'';display:inline-block;width:5px;height:5px;margin-left:7px;vertical-align:2px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .2s ease;}
.lz-menu .menu-item-has-children:hover > a::after{transform:rotate(-135deg);}
.lz-menu .sub-menu{position:absolute;top:100%;left:-12px;min-width:236px;margin:0;padding:8px;list-style:none;background:#fff;border:1px solid var(--lz-borde);border-radius:12px;box-shadow:0 16px 34px rgba(20,24,34,.16);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:5;}
.lz-menu > li:hover > .sub-menu,.lz-menu > li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
.lz-menu .sub-menu a{display:block;padding:9px 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--lz-oscuro);white-space:nowrap;}
.lz-menu .sub-menu a:hover{background:var(--lz-fondo);color:var(--lz-azul);}
@media(prefers-reduced-motion:reduce){.lz-menu .sub-menu{transition:none;}}
/* .lz-links a (0,2,1) pisaba a .lz-tel y a .lz-btn-primary: hay que igualar el peso */
.lz-links a.lz-tel{color:var(--lz-azul);}
.lz-links a.lz-btn-primary,.lz-links a.lz-btn-primary:hover{color:#fff;}
/* ---------- MENÚ MÓVIL ---------- */
.lz-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:0;border:1px solid rgba(62,79,110,.18);border-radius:10px;background:#fff;cursor:pointer;flex-shrink:0;}
.lz-burger span{display:block;width:20px;height:2px;margin:0 auto;border-radius:2px;background:var(--lz-oscuro);transition:transform .2s ease,opacity .2s ease;}
.lz-burger-abierto span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.lz-burger-abierto span:nth-child(2){opacity:0;}
.lz-burger-abierto span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.lz-burger:focus-visible{outline:3px solid rgba(255,138,61,.75);outline-offset:2px;}

.lz-mobile{display:none;}
.lz-mobile[hidden]{display:none;}
.lz-mobile-menu{list-style:none;margin:0;padding:0;}
.lz-mobile-menu li{list-style:none;border-bottom:1px solid rgba(62,79,110,.10);}
.lz-mobile-menu a{display:block;padding:14px 4px;color:var(--lz-oscuro);text-decoration:none;font-size:15px;font-weight:600;}
.lz-mobile-menu .sub-menu{list-style:none;margin:0 0 10px;padding:0 0 0 14px;border-left:2px solid var(--lz-borde);}
.lz-mobile-menu .sub-menu li{border:0;}
.lz-mobile-menu .sub-menu a{padding:9px 4px;font-size:14px;font-weight:500;color:var(--lz-texto);}
.lz-mobile-menu .sub-menu a:hover{color:var(--lz-azul);}
.lz-mobile-menu a:hover{color:var(--lz-azul);}
.lz-mobile-acciones{display:flex;align-items:center;gap:14px;padding-top:16px;}
.lz-mobile-acciones .lz-btn{flex:1;text-align:center;}
.lz-mobile-tel{color:var(--lz-azul);font-weight:700;font-size:15px;text-decoration:none;white-space:nowrap;}

/* Por debajo de 1180px el menú no cabe en una línea. En vez de desaparecer
   (todavía no hay menú hamburguesa) baja a una segunda fila centrada. */
@media(max-width:1180px) and (min-width:901px){
  .lz-nav-in{row-gap:10px;padding:12px 24px;}
  .lz-links{flex-wrap:wrap;justify-content:flex-end;gap:16px;}
  .lz-menu{order:3;width:100%;justify-content:center;flex-wrap:wrap;gap:6px 18px;font-size:13px;}
}
/* Por debajo de 900px el menú pasa a hamburguesa. */
@media(max-width:900px){
  .lz-menu{display:none;}
  .lz-links{gap:14px;}
  .lz-burger{display:flex;}
  .lz-mobile{display:block;position:absolute;top:100%;left:0;right:0;background:var(--lz-fondo);border-bottom:1px solid rgba(62,79,110,.12);box-shadow:0 14px 26px rgba(20,24,34,.14);padding:4px 20px 20px;}
  .lz-mobile[hidden]{display:none;}
}
@media(max-width:640px){.lz-tel,.lz-nav .lz-links > .lz-btn{display:none;}.lz-nav-in{padding:14px 20px;}.lz-nav-in img.lz-logo{height:32px;}}

/* ---------- PIE ---------- */
.lz-footer{background:var(--lz-azul);color:#F5F8FC;}
.lz-footer a{color:#D2E0F1;text-decoration:none;font-size:14px;}
.lz-footer a:hover{color:#fff;text-decoration:underline;}
.lz-footer h4{font-family:'Sora',sans-serif;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;margin:0 0 4px;}
.lz-cta{max-width:1180px;margin:0 auto;padding:88px 32px 56px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.lz-cta h2{color:#fff;font-size:28px;font-weight:700;margin:0 0 14px;}
.lz-cta p{color:#D2E0F1;margin:0 0 28px;}
.lz-cta .lz-btn-primary{background:#fff;color:var(--lz-azul);box-shadow:0 2px 10px rgba(20,24,34,.18);}
.lz-cta .lz-btn-primary:hover{background:#EAF1FB;color:var(--lz-azul);}
.lz-foot-in{max-width:1180px;margin:0 auto;padding:44px 32px 8px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px;border-top:1px solid rgba(245,248,252,.14);}
.lz-foot-col{display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.lz-foot-col img{height:30px;width:auto;filter:brightness(0) invert(1);margin-bottom:4px;}
.lz-foot-col p{color:#D2E0F1;font-size:13px;max-width:220px;margin:0;}
.lz-foot-bottom{max-width:1180px;margin:0 auto;padding:28px 32px;border-top:1px solid rgba(245,248,252,.16);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:#C2D2E8;}

/* ---------- BARRA FIJA ---------- */
.lz-sticky{position:fixed;bottom:0;left:0;right:0;z-index:95;display:flex;background:#fff;box-shadow:0 -6px 24px rgba(20,24,34,.14);}
.lz-sticky a{flex:1;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 12px;text-decoration:none;}
.lz-sticky svg{width:20px;height:20px;flex-shrink:0;}
.lz-sticky .eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.8;}
.lz-sticky .main{display:block;font-size:14px;font-weight:700;}
.lz-sticky .lz-s-cta{background:var(--lz-azul);color:#fff;}
.lz-sticky .lz-s-tel{background:#fff;color:var(--lz-oscuro);border-left:1px solid #E6EEF8;border-right:1px solid #E6EEF8;}
.lz-sticky .lz-s-tel .eyebrow{display:flex;align-items:center;gap:5px;color:var(--lz-azul);}
.lz-sticky .dot{width:6px;height:6px;border-radius:50%;background:#4CAF6D;display:inline-block;}
.lz-sticky .lz-s-wa{background:#25D366;color:#fff;flex:0 0 auto;padding:14px 26px;}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  #hero-row > .e-con-inner,
  #comunidades-row > .e-con-inner,
  #sobre-row > .e-con-inner,
  #flagship-row{grid-template-columns:1fr;}
  .lz-cta{grid-template-columns:1fr;text-align:center;gap:32px;}
  .lz-foot-in{grid-template-columns:1fr 1fr;}
  .elementor.elementor .e-con > .elementor-widget.lz-hero-lead{max-width:100%;}
  .lz-hero-h1 .elementor-heading-title{font-size:32px!important;}
  #inicio{min-height:0!important;}
}
@media(max-width:700px){
  .lz-h2 .elementor-heading-title{font-size:24px;}
  .elementor-115 > .e-con{padding-top:56px!important;padding-bottom:56px!important;}
  .elementor-115 .e-con-boxed > .e-con-inner{padding-left:20px!important;padding-right:20px!important;}
}
@media(max-width:640px){
  .lz-sticky .eyebrow{display:none;}
  .lz-sticky a{padding:14px 8px;gap:8px;}
  .lz-sticky .lz-s-wa{padding:14px 18px;}
}
@media(max-width:520px){
  .lz-marcas{grid-template-columns:repeat(2,1fr);}
  .lz-foot-in{grid-template-columns:1fr;padding:36px 20px 8px;}
  .lz-foot-bottom{padding:24px 20px;}
  .lz-cta{padding:56px 20px 40px;}
  .lz-foto-sm img{height:120px;}
  .lz-foto-md img{height:150px;}
  .lz-foto-lg img{height:240px;}
}
@media(max-width:900px) and (min-width:521px){
  .lz-marcas{grid-template-columns:repeat(3,1fr);}
}
@media(prefers-reduced-motion:reduce){
  .lz-card img,.lz-foto img,.lz-sobre-img img,.lz-btn{transition:none;}
  .lz-btn-primary:hover{transform:none;}
}
