/* Electricidad Garibo — identidad corporativa azul eléctrico, amarillo y blanco */
:root{--blue:#073B82;--blue-2:#1254A0;--blue-dark:#061D49;--blue-bright:#1685E8;--yellow:#FFB900;--yellow-2:#EFA900;--ink:#17233a;--muted:#69758a;--pale:#f4f7fb;--white:#fff;--line:#e3e9f1;--radius:18px;--shadow:0 18px 55px rgba(7,59,130,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;font-family:"DM Sans",Arial,sans-serif;color:var(--ink);line-height:1.65;background:#fff}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.container{width:min(1160px,calc(100% - 48px));margin-inline:auto}.topbar{background:var(--blue);color:#dce7fa;font-size:12px}.topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-inner div{display:flex;gap:13px;align-items:center}.topbar a{color:var(--yellow);font-weight:700}.topbar-separator{opacity:.35}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(7,59,130,.07)}.nav-wrap{height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:11px;flex-shrink:0}.brand-mark{width:43px;height:43px;border-radius:13px;background:var(--yellow);display:grid;place-items:center;color:var(--blue);font:800 27px Manrope,sans-serif;position:relative}.brand-mark span{font-size:13px;position:absolute;right:5px;top:3px}.brand-name{font:800 19px Manrope,sans-serif;letter-spacing:1px;color:var(--blue);line-height:1.1}.brand-name small{display:block;font:700 8px "DM Sans",sans-serif;letter-spacing:1.5px;margin-top:5px;color:#7a8496}.main-nav{display:flex;align-items:center;gap:27px;font-size:13px;font-weight:700;color:#34445d}.main-nav>a:not(.nav-cta){transition:color .2s}.main-nav>a:hover,.main-nav>a.active{color:var(--blue-2)}.nav-cta{padding:13px 17px;background:var(--yellow);color:var(--blue);border-radius:8px;display:flex;gap:15px;align-items:center;transition:transform .2s,background .2s}.nav-cta:hover,.btn:hover{transform:translateY(-2px);background:var(--yellow-2)}.menu-toggle{display:none;border:0;background:transparent;padding:10px}.menu-toggle span{display:block;width:24px;height:2px;background:var(--blue);margin:5px}
.hero{background:var(--blue);color:white;position:relative;overflow:hidden}.hero-grid{position:absolute;inset:0 0 0 42%;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,transparent,black)}.hero-layout{position:relative;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;min-height:625px;padding-top:42px;padding-bottom:42px;gap:40px}.hero-copy{position:relative;z-index:2;padding:20px 0 5px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:2px;font-weight:800;color:var(--blue-2);margin-bottom:17px}.hero .eyebrow{color:#c4d5f3}.eyebrow-line{display:inline-block;width:27px;height:3px;background:var(--yellow);border-radius:3px}.hero h1{font:800 clamp(42px,5vw,66px)/1.08 Manrope,sans-serif;letter-spacing:-2.8px;margin:0 0 22px;max-width:630px}.hero h1 span,.section h2 span,.projects-heading h2 span,.testimonial-layout h2 span,.contact-copy h2 span{color:var(--yellow)}.hero-lead{max-width:490px;color:#c8d5e8;font-size:16px;line-height:1.8;margin:0 0 30px}.hero-actions{display:flex;align-items:center;gap:23px;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;gap:22px;border:0;border-radius:8px;padding:15px 20px;font-weight:800;font-size:13px;cursor:pointer;transition:transform .2s,background .2s}.btn-yellow{background:var(--yellow);color:var(--blue)}.btn-blue{background:var(--blue);color:white}.btn-blue:hover{background:var(--blue-2)}.text-link{font-size:12px;font-weight:700;color:white;display:inline-flex;align-items:center;gap:10px}.play-icon{display:grid;place-items:center;width:31px;height:31px;border:1px solid #7890b3;border-radius:50%;font-size:9px;color:var(--yellow);padding-left:2px}.hero-proof{display:flex;align-items:center;gap:14px;margin-top:38px}.avatar-stack{display:flex;align-items:center;padding-left:0}.avatar-stack span,.avatar-stack b{width:30px;height:30px;border:2px solid var(--blue);border-radius:50%;display:grid;place-items:center;margin-left:-6px;background:#d9e5f7;color:var(--blue);font-size:10px;font-weight:800}.avatar-stack span:first-child{margin-left:0;background:#e6bd9b}.avatar-stack span:nth-child(2){background:#9fc9b8}.avatar-stack span:nth-child(3){background:#c8b2e4}.avatar-stack b{background:var(--yellow);font-size:12px}.hero-proof strong,.hero-proof small{display:block}.hero-proof strong{font-size:11px}.hero-proof small{font-size:10px;color:#aebed5;margin-top:2px}.hero-stats{display:flex;gap:32px;margin-top:40px;padding-top:23px;border-top:1px solid rgba(255,255,255,.17);max-width:500px}.hero-stats div{display:flex;flex-direction:column}.hero-stats strong{font:800 26px Manrope,sans-serif}.hero-stats strong span{color:var(--yellow)}.hero-stats small{font-size:10px;color:#b6c5dc;margin-top:3px}.hero-visual{height:515px;position:relative;display:flex;align-items:center;justify-content:center}.hero-image{position:absolute;inset:22px 8px 22px 12px;border-radius:180px 180px 22px 22px;overflow:hidden;box-shadow:0 25px 70px rgba(0,0,0,.25);border:7px solid rgba(255,255,255,.09)}.yellow-orb{position:absolute;width:130px;height:130px;border-radius:50%;background:var(--yellow);right:-25px;top:5px;z-index:0;opacity:.98}.floating-bolt{position:absolute;right:19px;top:35px;color:var(--blue);font:800 68px Manrope;z-index:1;transform:rotate(8deg)}.image-label{position:absolute;left:-25px;bottom:54px;display:flex;align-items:center;gap:13px;background:white;color:var(--blue);padding:15px 19px;border-radius:12px;box-shadow:var(--shadow);z-index:2}.label-icon{width:37px;height:37px;display:grid;place-items:center;background:var(--yellow);border-radius:10px;font-size:21px}.image-label strong,.image-label small{display:block}.image-label strong{font-size:12px}.image-label small{font-size:10px;color:var(--muted)}.hero-bottom{position:relative;display:flex;gap:17px;align-items:center;padding:17px 0 22px;border-top:1px solid rgba(255,255,255,.13);color:#9fb1cc;font-size:9px;font-weight:800;letter-spacing:1.5px}.hero-bottom i{width:4px;height:4px;background:var(--yellow);border-radius:50%}.trust-strip{background:#fff;border-bottom:1px solid var(--line)}.trust-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}.trust-inner>span{font-weight:800;color:var(--blue);font-size:12px}.trust-item{display:flex;align-items:center;gap:8px;color:#667187;font-size:11px;font-weight:600}.trust-item b{width:19px;height:19px;display:grid;place-items:center;background:#fff5c9;color:#8b6b00;border-radius:50%;font-size:11px}
.section{padding:100px 0}.section-heading{text-align:center;max-width:650px;margin:0 auto 45px}.section-heading .eyebrow{justify-content:center}.section h2,.projects-heading h2,.testimonial-layout h2,.contact-copy h2{font:800 clamp(31px,3.6vw,43px)/1.2 Manrope,sans-serif;letter-spacing:-1.7px;color:var(--blue);margin:0 0 17px}.section-heading p{color:var(--muted);font-size:14px;max-width:570px;margin:0 auto}.services-section{background:var(--pale)}.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.service-card{background:white;padding:27px 23px 24px;border:1px solid #e8edf4;border-radius:13px;position:relative;min-height:280px;transition:transform .25s,box-shadow .25s}.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.service-card.featured{background:var(--blue);color:white;border-color:var(--blue)}.service-icon{width:52px;height:52px;background:#fff4c4;border-radius:13px;display:grid;place-items:center;color:var(--blue);font-size:29px;font-weight:800;margin-bottom:22px}.featured .service-icon{background:var(--yellow)}.card-number{position:absolute;top:32px;right:23px;color:#a1aabd;font-size:10px;font-weight:800}.featured .card-number{color:#8ea6ca}.service-card h3{font:800 17px/1.35 Manrope,sans-serif;color:var(--blue);margin:0 0 11px}.featured h3{color:white}.service-card p{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 20px}.featured p{color:#c4d2e7}.card-link{font-size:11px;font-weight:800;color:var(--blue);display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px}.featured .card-link{color:var(--yellow);border-color:#38527b}
.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.about-visual{height:475px;position:relative}.about-photo{position:absolute;inset:0 40px 35px 0;border-radius:12px;overflow:hidden}.experience-badge{position:absolute;right:0;top:35px;width:139px;height:139px;border-radius:50%;background:var(--yellow);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--blue);border:8px solid white}.experience-badge strong{font:800 38px Manrope;line-height:1.1}.experience-badge strong span{font-size:20px}.experience-badge small{font-size:9px;letter-spacing:1.3px;font-weight:800;text-align:center;line-height:1.4;margin-top:6px}.about-note{position:absolute;left:-25px;bottom:0;background:white;box-shadow:var(--shadow);border-radius:12px;padding:17px 20px;display:flex;align-items:center;gap:13px}.about-note>span{display:grid;place-items:center;background:var(--blue);color:var(--yellow);width:42px;height:42px;border-radius:10px;font-size:23px}.about-note p{margin:0;font-size:11px;line-height:1.6;color:var(--muted)}.about-note strong{color:var(--blue)}.about-copy h2{max-width:500px}.about-copy h2 span,.projects-heading h2 span,.testimonial-layout h2 span,.contact-copy h2 span{color:#e5b900}.about-intro{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:23px}.check-list{display:grid;gap:18px;margin-bottom:28px}.check-list>div{display:flex;gap:12px;align-items:flex-start}.check-list>div>span{flex-shrink:0;width:23px;height:23px;background:#fff3bf;border-radius:50%;display:grid;place-items:center;color:var(--blue);font-weight:900;font-size:12px}.check-list p{margin:0}.check-list strong,.check-list small{display:block}.check-list strong{font-size:12px;color:var(--blue)}.check-list small{font-size:11px;color:var(--muted);margin-top:3px}
.numbers-section{background:var(--blue);color:white;padding:38px 0}.numbers-grid{display:grid;grid-template-columns:repeat(4,1fr)}.numbers-grid>div{padding:4px 28px;border-right:1px solid rgba(255,255,255,.16);display:grid;grid-template-columns:40px auto;align-items:center;column-gap:10px}.numbers-grid>div:last-child{border:0}.number-icon{grid-row:span 2;color:var(--yellow);font-size:25px}.numbers-grid strong{font:800 29px Manrope;line-height:1.2}.numbers-grid strong span{color:var(--yellow)}.numbers-grid small{font-size:10px;color:#b8c8df}
.projects-section{background:#fff}.projects-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:35px}.projects-heading h2{max-width:600px;margin-bottom:0}.dark-link{color:var(--blue);padding-bottom:7px;white-space:nowrap}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card{min-width:0}.project-image{height:235px;border-radius:12px;position:relative;overflow:hidden;background-color:#d8e1ed;background-size:cover;background-position:center;transition:background-size .3s}.project-img-one{background-color:#d8e1ed}.project-img-two{background-color:#d8e1ed}.project-img-three{background-color:#d8e1ed}.project-image>span{position:absolute;top:15px;left:15px;background:var(--yellow);color:var(--blue);font-size:9px;font-weight:800;letter-spacing:1px;padding:7px 10px;border-radius:5px}.project-info{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 2px}.project-info h3{font:800 14px/1.4 Manrope;color:var(--blue);margin:0 0 5px}.project-info p{font-size:10px;color:var(--muted);margin:0}.project-info>a{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:var(--blue);font-size:15px;transition:all .2s}.project-info>a:hover{background:var(--yellow);border-color:var(--yellow)}
.process-section{background:var(--pale)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.process-step{position:relative;text-align:center;background:white;border:1px solid #e7edf5;border-radius:13px;padding:31px 26px}.process-step>span{position:absolute;right:20px;top:17px;color:#b6c0d0;font:800 12px Manrope}.process-icon{width:61px;height:61px;margin:0 auto 17px;background:#fff3bf;color:var(--blue);display:grid;place-items:center;border-radius:16px;font-size:28px}.process-step h3{font:800 16px Manrope;color:var(--blue);margin:0 0 10px}.process-step p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}
.contact-section{background:var(--blue);color:white;position:relative;overflow:hidden}.contact-section:before{content:"";position:absolute;width:450px;height:450px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-120px;top:-160px;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.02)}.contact-layout{position:relative;display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:start}.contact-copy{padding-top:28px}.contact-copy .eyebrow{color:#c4d5f3}.contact-copy h2{color:white;font-size:43px}.contact-copy>p{font-size:14px;line-height:1.9;color:#c3d0e4;margin-bottom:33px}.contact-detail{display:flex;align-items:center;gap:14px;margin-top:21px}.contact-detail>span{width:43px;height:43px;display:grid;place-items:center;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:var(--yellow);font-size:20px}.contact-detail small{display:block;color:#9fb2ce;font-size:9px;font-weight:800;letter-spacing:1.4px}.contact-detail a,.contact-detail p{display:block;color:white;font-size:13px;font-weight:700;margin:3px 0 0}.contact-form{background:white;color:var(--ink);padding:34px 35px;border-radius:15px;box-shadow:0 25px 70px rgba(0,0,0,.16)}.contact-form h3{font:800 23px Manrope;color:var(--blue);margin:0 0 5px}.contact-form>p{font-size:11px;color:var(--muted);margin:0 0 20px}.contact-form label{display:block;font-size:11px;font-weight:700;color:#39475d;margin-bottom:14px}.contact-form input:not([type=checkbox]):not([type=hidden]),.contact-form textarea,.contact-form select{display:block;width:100%;margin-top:7px;border:1px solid #dfe6ef;background:#fbfcfe;border-radius:7px;padding:12px 13px;color:var(--ink);outline:none;font-size:12px;transition:border .2s,box-shadow .2s}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:#4a78b9;box-shadow:0 0 0 3px rgba(74,120,185,.12)}.contact-form textarea{resize:vertical;min-height:100px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.privacy-check{display:flex!important;align-items:flex-start;gap:9px;font-weight:500!important;font-size:10px!important}.privacy-check input{margin-top:3px;accent-color:var(--blue)}.form-submit{width:100%;justify-content:space-between;margin-top:3px}.form-privacy-note{display:block;font-size:9px;color:#8a94a4;margin-top:12px;line-height:1.6}.form-alert{padding:11px 13px;border-radius:7px;font-size:11px;margin:0 0 17px}.form-alert.success{background:#e8f7ed;color:#176b38;border:1px solid #bce8c9}.form-alert.error{background:#fff0ef;color:#a82e28;border:1px solid #f2c5c1}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}
.site-footer{background:#061D49;color:#b7c6dc}.footer-main{padding:54px 0 43px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:45px}.brand-light .brand-name{color:white}.brand-light .brand-name small{color:#91a5c3}.footer-brand p{max-width:245px;font-size:11px;line-height:1.8;margin-top:20px;color:#91a5c3}.footer-main h2{font:800 12px Manrope;color:white;margin:7px 0 18px}.footer-main>div:not(:first-child){display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-main>div>a:not(.brand){font-size:11px;color:#9eb0ca;transition:color .2s}.footer-main>div>a:hover{color:var(--yellow)}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:10px;color:#8398b7}.footer-bottom>div{display:flex;gap:20px}.footer-bottom a:hover{color:var(--yellow)}.back-top{width:31px;height:31px;display:grid;place-items:center;background:var(--yellow);border-radius:7px;color:var(--blue);font-size:17px;font-weight:800}
@media(max-width:1000px){.main-nav{gap:16px}.nav-cta{padding:12px;font-size:11px}.hero-layout{gap:20px}.hero-visual{height:450px}.hero-stats{gap:20px}.services-grid{grid-template-columns:repeat(2,1fr)}.about-layout,.testimonial-layout,.contact-layout{gap:45px}.numbers-grid>div{padding:4px 15px}.projects-grid{gap:14px}.project-image{height:200px}}
@media(max-width:760px){.container{width:min(100% - 34px,560px)}.topbar-inner{justify-content:center;min-height:36px}.topbar-inner>span{display:none}.topbar-inner div{gap:9px}.nav-wrap{height:72px}.menu-toggle{display:block;z-index:3}.main-nav{display:none;position:fixed;inset:72px 0 0;background:white;padding:25px 24px 40px;flex-direction:column;align-items:stretch;gap:0;overflow:auto;box-shadow:0 15px 25px rgba(7,59,130,.12)}.main-nav.is-open{display:flex}.main-nav>a:not(.nav-cta){padding:16px 5px;border-bottom:1px solid var(--line)}.nav-cta{justify-content:space-between;margin-top:18px;padding:15px}.hero-layout{grid-template-columns:1fr;padding-top:53px;padding-bottom:22px;gap:15px}.hero-copy{padding:0}.hero h1{font-size:clamp(43px,12vw,60px);letter-spacing:-2px}.hero-lead{font-size:14px}.hero-actions{gap:17px}.hero-actions .btn{padding:14px 15px}.text-link{font-size:11px}.hero-stats{gap:0;justify-content:space-between;margin-top:29px;padding-top:18px}.hero-stats strong{font-size:23px}.hero-stats small{font-size:9px}.hero-visual{height:360px;margin:10px 7px 0 20px}.hero-image{inset:5px 14px 18px 10px;border-radius:150px 150px 15px 15px}.yellow-orb{width:90px;height:90px;right:-5px;top:-8px}.floating-bolt{font-size:48px;right:25px;top:0}.image-label{left:-18px;bottom:29px;padding:11px 14px}.hero-bottom{flex-wrap:wrap;gap:9px 12px;font-size:8px;padding:14px 0 18px}.trust-inner{padding-top:18px;padding-bottom:18px;display:grid;grid-template-columns:1fr 1fr;gap:13px}.trust-inner>span{grid-column:1/-1}.trust-item{font-size:10px}.section{padding:70px 0}.section-heading{margin-bottom:30px}.section h2,.projects-heading h2,.testimonial-layout h2,.contact-copy h2{font-size:33px;letter-spacing:-1.1px}.services-grid{grid-template-columns:1fr;gap:13px}.service-card{min-height:auto;padding:23px}.service-icon{margin-bottom:17px}.service-card p{margin-bottom:17px}.about-layout{grid-template-columns:1fr;gap:45px}.about-visual{height:370px;margin:0 8px 0 15px}.about-photo{inset:0 28px 25px 0}.experience-badge{width:115px;height:115px;right:-5px;top:20px}.experience-badge strong{font-size:31px}.about-note{left:-15px;padding:12px 14px}.about-copy h2{font-size:34px}.numbers-grid{grid-template-columns:1fr 1fr;row-gap:25px}.numbers-grid>div{padding:5px 12px;border-right:0}.numbers-grid>div:nth-child(odd){border-right:1px solid rgba(255,255,255,.16)}.numbers-grid strong{font-size:25px}.projects-heading{display:block}.projects-heading h2{margin-bottom:17px}.projects-grid{grid-template-columns:1fr;gap:12px}.project-image,.project-large .project-image{height:235px}.process-grid{grid-template-columns:1fr;gap:13px}.process-step{padding:25px}.testimonial-layout{grid-template-columns:1fr;gap:28px}.testimonial-layout h2{font-size:34px}.testimonial-card{padding:25px 22px}.testimonial-card blockquote{font-size:16px}.contact-layout{grid-template-columns:1fr;gap:32px}.contact-copy{padding-top:0}.contact-copy h2{font-size:36px}.contact-form{padding:25px 20px}.form-row{grid-template-columns:1fr;gap:0}.footer-main{grid-template-columns:1fr 1fr;gap:28px 22px;padding:42px 0 32px}.footer-brand{grid-column:1/-1}.footer-bottom{padding:16px 0;flex-wrap:wrap;justify-content:space-between}.footer-bottom>span{width:100%}}
@media(max-width:380px){.container{width:calc(100% - 26px)}.hero h1{font-size:40px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-stats strong{font-size:21px}.hero-stats small{max-width:85px}.footer-main{gap:25px 15px}.contact-form{padding:22px 16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* Preparador de consulta local — no transmite ni conserva selecciones */
.consultation-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:58px;align-items:start;position:relative}
.consultation-intro{padding-top:18px}
.consultation-intro h2{font:800 clamp(35px,4vw,49px)/1.12 Manrope,sans-serif;letter-spacing:-1.8px;color:white;margin:0 0 20px}
.consultation-intro h2 span{color:var(--yellow)}
.consultation-lead{font-size:15px;line-height:1.85;color:#d1dced;max-width:400px}
.private-note{display:flex;align-items:flex-start;gap:10px;color:#b6c8e2;font-size:11px;line-height:1.7;margin:24px 0}
.private-note span{color:var(--yellow);font-size:23px;line-height:1}
.danger-note{border:1px solid rgba(255,212,59,.42);background:rgba(255,212,59,.07);border-radius:10px;padding:17px 18px;color:#e3eaf4;font-size:11px;line-height:1.8}
.danger-note strong{color:var(--yellow);font-size:12px}
.danger-note p{margin:7px 0 0}
.danger-note a{color:var(--yellow);font-weight:800;text-decoration:underline}
.consultation-contact{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.btn-emergency{background:#d92d20;color:#fff;box-shadow:0 7px 18px rgba(217,45,32,.2)}
.btn-emergency:hover,.btn-emergency:focus-visible{background:#b42318;color:#fff}
.btn-emergency:focus-visible{outline:3px solid #ffb900;outline-offset:3px}
.consultation-contact .btn-emergency{min-width:190px;justify-content:center}
.btn-whatsapp{background:#20c765;color:#062d1a}
.btn-whatsapp:hover{background:#16b557;transform:translateY(-2px)}
.whatsapp-symbol{font-size:18px;line-height:1}
.wizard-card{background:#fff;color:var(--ink);border-radius:17px;padding:30px 30px 20px;box-shadow:0 25px 70px rgba(0,0,0,.18);min-width:0}
.wizard-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.wizard-kicker{display:block;color:#7c8798;font-size:9px;font-weight:800;letter-spacing:1.7px;margin-bottom:7px}
.wizard-heading h3{font:800 24px/1.25 Manrope,sans-serif;color:var(--blue);margin:0}
.wizard-spark{display:grid;place-items:center;flex-shrink:0;width:39px;height:39px;background:#fff3bf;color:var(--blue);border-radius:11px;font-size:21px}
.wizard-description{font-size:12px;color:var(--muted);line-height:1.7;margin:10px 0 19px}
.wizard-progress{display:flex;align-items:center;gap:8px;padding:13px 0 20px;border-bottom:1px solid var(--line);margin-bottom:20px}
.wizard-progress-step{display:flex;align-items:center;gap:7px;min-width:0;color:#9aa4b3}
.wizard-progress-step span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#eef1f5;font-size:10px;font-weight:800;flex-shrink:0}
.wizard-progress-step b{font-size:10px;white-space:nowrap}
.wizard-progress-step.is-current{color:var(--blue)}
.wizard-progress-step.is-current span,.wizard-progress-step.is-complete span{background:var(--yellow);color:var(--blue)}
.wizard-progress-step.is-complete{color:#52647d}
.wizard-progress>i{height:1px;flex:1;min-width:6px;background:#dce3ed}
.wizard-panel[hidden]{display:none!important}
.topic-fieldset,.wizard-question{padding:0;border:0;margin:0 0 16px;min-width:0}
.topic-fieldset legend,.wizard-question legend{font-size:11px;font-weight:800;color:var(--blue);margin-bottom:10px}
.topic-option{display:flex;align-items:center;gap:11px;position:relative;border:1px solid #e2e8f0;border-radius:9px;padding:12px 12px;margin:8px 0;cursor:pointer;transition:border .18s,background .18s}
.topic-option:hover{border-color:#9aadd0;background:#fbfcff}
.topic-option:has(input:checked){border-color:#c4a000;background:#fffbea;box-shadow:0 0 0 1px #f4d74b}
.topic-option input{position:absolute;opacity:0;pointer-events:none}
.topic-check{width:17px;height:17px;border:1.5px solid #b8c3d2;border-radius:50%;flex-shrink:0;position:relative}
.topic-option input:checked+.topic-check{border-color:var(--blue);background:var(--blue);box-shadow:inset 0 0 0 4px #fff}
.topic-copy{display:block;min-width:0;flex:1}
.topic-copy strong,.topic-copy small{display:block}
.topic-copy strong{font-size:11px;color:var(--blue);line-height:1.5}
.topic-copy small{font-size:10px;color:#778397;line-height:1.5;margin-top:2px}
.topic-arrow{font-size:21px;color:#9ba7b7}
.wizard-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}
.wizard-actions-end{justify-content:flex-end}
.wizard-actions .btn,.summary-call-actions .btn{font-size:11px;padding:12px 15px;gap:12px}
.btn-outline{background:white;color:var(--blue);border:1px solid #d9e1ec}
.btn-outline:hover{background:#f4f7fb;transform:translateY(-1px)}
.wizard-error{color:#a82e28;background:#fff0ef;padding:9px 11px;border-radius:6px;font-size:11px}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice-grid-three{grid-template-columns:repeat(3,1fr)}
.choice-grid label{cursor:pointer;min-width:0}
.choice-grid input{position:absolute;opacity:0;pointer-events:none}
.choice-grid label span{display:flex;align-items:center;min-height:44px;height:100%;padding:10px;border:1px solid #e0e7f0;border-radius:8px;color:#45536a;font-size:10px;line-height:1.5;transition:all .18s}
.choice-grid label span:hover{border-color:#9aadd0}
.choice-grid input:checked+span{border-color:#c4a000;background:#fffbea;color:var(--blue);font-weight:800;box-shadow:inset 0 0 0 1px #f4d74b}
.wizard-text-label{display:block;font-size:11px;font-weight:800;color:var(--blue);margin-top:18px}
.wizard-text-label small{display:block;font-weight:400;color:#7a8698;font-size:10px;margin-top:3px}
#extra-details{display:block;width:100%;resize:vertical;border:1px solid #dfe6ef;background:#fbfcfe;border-radius:8px;padding:11px 12px;margin-top:8px;color:var(--ink);font:12px/1.6 "DM Sans",sans-serif;outline:none}
#extra-details:focus{border-color:#4a78b9;box-shadow:0 0 0 3px rgba(74,120,185,.12)}
.wizard-safety-hint{font-size:10px;color:#8b5b14;background:#fff7df;padding:10px 12px;border-radius:7px;line-height:1.6}
.wizard-footnote{border-top:1px solid var(--line);padding-top:14px;margin:18px 0 0;font-size:9px;color:#8792a4;line-height:1.6}
.summary-badge{display:inline-flex;align-items:center;gap:7px;border-radius:6px;padding:7px 10px;background:#fff3bf;color:#6c5700;font-size:10px;font-weight:800}
.summary-intro{font-size:11px;color:var(--muted);line-height:1.7;margin:13px 0 15px}
.summary-list{border:1px solid #e3e9f1;border-radius:9px;overflow:hidden}
.summary-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px;padding:12px 13px;border-bottom:1px solid #e7edf4}
.summary-row:last-child{border-bottom:0}
.summary-row span{font-size:10px;color:#7d899b}
.summary-row strong{font-size:11px;color:var(--blue);overflow-wrap:anywhere}
.summary-extra{padding:12px 13px;background:#f5f8fc;border-radius:8px;margin-top:10px}
.summary-extra strong{font-size:10px;color:var(--blue)}
.summary-extra p{font-size:11px;color:#53627a;white-space:normal;overflow-wrap:anywhere;margin:5px 0 0}
.summary-reminder{margin-top:14px;padding:12px 13px;border-radius:8px;background:#fff7df;border:1px solid #f2e1a1}
.summary-reminder strong{font-size:10px;color:#775b00}
.summary-reminder p{font-size:10px;line-height:1.7;color:#6f5a1a;margin:4px 0 0}
.summary-call-actions{display:flex;gap:9px;margin-top:13px}
.summary-call-actions .btn{flex:1;justify-content:center}
@media(max-width:1000px){.consultation-layout{gap:28px}.wizard-card{padding:25px 22px}.wizard-progress{gap:5px}.wizard-progress-step{gap:5px}.wizard-progress-step b{font-size:9px}}
@media(max-width:760px){.consultation-layout{grid-template-columns:1fr;gap:28px}.consultation-intro{padding-top:0}.consultation-intro h2{font-size:39px}.wizard-card{padding:23px 17px 18px}.wizard-heading h3{font-size:21px}.wizard-progress{gap:5px}.wizard-progress-step{gap:4px}.wizard-progress-step span{width:23px;height:23px}.wizard-progress-step b{font-size:9px}.wizard-progress>i{min-width:3px}.choice-grid-three{grid-template-columns:1fr}.choice-grid-three label span{min-height:39px}.consultation-contact .btn{flex:1;justify-content:center}.summary-call-actions{flex-direction:column}}


/* Ajustes finales de compatibilidad móvil y estados de interacción */
@media (hover: hover) and (pointer: fine) {
  .service-card,
  .service-card.featured {
    transition: background-color .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
  }
  .service-card:hover,
  .service-card:focus-within {
    background: var(--yellow);
    color: var(--blue);
    border-color: var(--yellow);
    transform: translateY(-5px);
    box-shadow: 0 18px 42px rgba(7, 59, 130, .18);
  }
  .service-card:hover h3,
  .service-card:focus-within h3 { color: var(--blue); }
  .service-card:hover p,
  .service-card:focus-within p { color: #34445d; }
  .service-card:hover .card-number,
  .service-card:focus-within .card-number { color: #53627a; }
  .service-card:hover .card-link,
  .service-card:focus-within .card-link { color: var(--blue); border-color: rgba(7, 59, 130, .2); }
  .service-card:hover .service-icon,
  .service-card:focus-within .service-icon { background: var(--blue); color: var(--yellow); }
}
/* Los enlaces y controles conservan un área táctil cómoda en móviles */
button, .btn, .nav-cta, .back-top { touch-action: manipulation; }
.back-top { flex: 0 0 40px; width: 40px; height: 40px; position: relative; z-index: 2; cursor: pointer; }
img, video, iframe { max-width: 100%; }
input, textarea, select { max-width: 100%; }
@media (max-width: 760px) {
  .topbar-inner div { flex-wrap: wrap; justify-content: center; text-align: center; }
  .hero h1 { overflow-wrap: anywhere; }
  .hero-actions .btn { min-height: 46px; }
  .service-card { overflow-wrap: anywhere; }
  .footer-bottom { padding-bottom: max(16px, env(safe-area-inset-bottom)); }
  .back-top { margin-left: auto; }
  .consultation-contact .btn { min-height: 46px; }
}
@media (max-width: 420px) {
  .brand { gap: 8px; }
  .brand-mark { width: 38px; height: 38px; }
  .brand-name { font-size: 16px; }
  .brand-name small { font-size: 7px; letter-spacing: 1px; }
  .topbar-inner div { font-size: 11px; }
  .section { padding: 56px 0; }
  .consultation-intro h2, .contact-copy h2 { font-size: clamp(30px, 9vw, 36px); }
  .wizard-card { min-width: 0; }
  .wizard-actions { flex-wrap: wrap; }
  .wizard-actions .btn { flex: 1 1 120px; }
  .footer-bottom > div { gap: 12px; }
}
@media (max-width: 340px) {
  .container { width: calc(100% - 22px); }
  .brand-name { font-size: 14px; }
  .hero h1 { font-size: 36px; }
  .hero-stats strong { font-size: 19px; }
  .wizard-progress-step b { font-size: 8px; }
}


/* RESPONSIVE REWORK v3 — compatibilidad con Safari iOS, Chrome Android y pantallas estrechas */
html { width: 100%; max-width: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { width: 100%; min-width: 0; max-width: 100%; overflow-x: hidden; overflow-x: clip; }
main, section, header, footer, .container, .hero-layout, .about-layout,
.contact-layout, .consultation-layout, .wizard-card, .wizard-panel,
.services-grid, .projects-grid, .process-grid, .numbers-grid, .footer-main { min-width: 0; }
.container { width: calc(100% - 48px); max-width: 1160px; }
.hero h1, h2, h3, p, a, button, small, strong, span { overflow-wrap: break-word; }
img, svg, video, iframe { max-width: 100%; height: auto; }
button, .btn, .nav-cta, .back-top, .topic-option, .choice-grid label { -webkit-tap-highlight-color: transparent; }

@media screen and (max-width: 1024px) {
  .container { width: calc(100% - 40px); }
  .nav-wrap { gap: 14px; }
  .main-nav { gap: 14px; }
  .main-nav a { white-space: normal; }
  .hero-layout { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 24px; }
  .hero-visual { min-width: 0; }
  .about-layout { gap: 42px; }
  .contact-layout { gap: 32px; }
  .consultation-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 28px; }
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-large { grid-column: 1 / -1; }
}

@media screen and (max-width: 760px) {
  html { scroll-padding-top: 74px; }
  .container { width: calc(100% - 32px); max-width: 560px; }
  .topbar { font-size: 11px; }
  .topbar-inner { width: calc(100% - 24px); min-height: 36px; justify-content: center; }
  .topbar-inner > span { display: none; }
  .topbar-inner > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 8px; text-align: center; }
  .topbar-separator { display: none; }
  .nav-wrap { height: 68px; gap: 8px; }
  .brand { gap: 8px; min-width: 0; }
  .brand-mark { flex: 0 0 38px; width: 38px; height: 38px; }
  .brand-name { font-size: 16px; letter-spacing: .5px; }
  .brand-name small { font-size: 7px; letter-spacing: .8px; }
  .menu-toggle { display: flex; flex: 0 0 44px; width: 44px; min-height: 44px; align-items: center; justify-content: center; flex-direction: column; padding: 8px; margin-right: -5px; }
  .menu-toggle span { margin: 3px 0; }
  .main-nav { display: none; position: fixed; top: 68px; right: 0; bottom: 0; left: 0; z-index: 100; width: 100%; max-width: none; height: auto; padding: 18px 20px calc(28px + env(safe-area-inset-bottom)); flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; background: #fff; box-shadow: 0 14px 30px rgba(7,59,130,.15); }
  .main-nav.is-open { display: flex; }
  .main-nav > a:not(.nav-cta) { display: flex; align-items: center; min-height: 48px; padding: 12px 4px; border-bottom: 1px solid var(--line); font-size: 15px; }
  .main-nav .nav-cta { min-height: 48px; margin-top: 16px; padding: 13px 15px; font-size: 14px; }
  .hero-layout { display: grid; grid-template-columns: minmax(0, 1fr); min-height: 0; gap: 22px; padding-top: 38px; padding-bottom: 20px; }
  .hero-copy { padding: 0; min-width: 0; }
  .eyebrow { font-size: 9px; letter-spacing: 1.4px; gap: 8px; }
  .hero h1 { max-width: 100%; font-size: clamp(34px, 9.5vw, 52px); line-height: 1.08; letter-spacing: -1.5px; }
  .hero-lead { max-width: 100%; font-size: 15px; line-height: 1.7; }
  .hero-actions { align-items: stretch; gap: 12px; }
  .hero-actions .btn { min-height: 48px; width: 100%; padding: 13px 15px; justify-content: space-between; }
  .text-link { min-height: 42px; font-size: 12px; }
  .hero-proof { margin-top: 25px; gap: 10px; }
  .hero-proof strong { font-size: 12px; }
  .hero-proof small { font-size: 11px; }
  .hero-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: 100%; margin-top: 25px; padding-top: 17px; }
  .hero-stats div { min-width: 0; }
  .hero-stats strong { font-size: clamp(19px, 5.8vw, 25px); }
  .hero-stats small { max-width: 100%; font-size: 10px; line-height: 1.4; }
  .hero-visual { height: clamp(240px, 78vw, 350px); width: calc(100% - 12px); min-width: 0; margin: 0 0 0 12px; }
  .hero-image { inset: 5px 12px 17px 8px; border-radius: 120px 120px 14px 14px; }
  .yellow-orb { width: 76px; height: 76px; right: -3px; top: -4px; }
  .floating-bolt { right: 17px; top: 5px; font-size: 43px; }
  .image-label { left: -12px; bottom: 25px; max-width: calc(100% - 8px); padding: 10px 12px; gap: 9px; }
  .image-label strong { font-size: 11px; }
  .image-label small { font-size: 10px; }
  .hero-bottom { flex-wrap: wrap; gap: 8px 10px; font-size: 8px; line-height: 1.5; letter-spacing: 1px; }
  .trust-inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 17px; padding-bottom: 17px; }
  .trust-inner > span { grid-column: 1 / -1; }
  .trust-item { min-width: 0; font-size: 11px; line-height: 1.4; }
  .section { padding: 58px 0; }
  .section-heading { margin-bottom: 28px; }
  .section-heading h2, .section h2, .projects-heading h2, .contact-copy h2, .consultation-intro h2 { font-size: clamp(28px, 7.5vw, 36px); line-height: 1.18; letter-spacing: -1px; }
  .section-heading p { font-size: 14px; }
  .services-grid { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .service-card { min-height: 0; padding: 22px; overflow-wrap: anywhere; }
  .service-card h3 { font-size: 18px; }
  .service-card p { font-size: 13px; line-height: 1.65; }
  .service-card .card-link { min-height: 40px; align-items: center; font-size: 12px; }
  .about-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .about-visual { height: clamp(270px, 78vw, 360px); margin: 0 8px 0 12px; }
  .about-photo { inset: 0 24px 22px 0; }
  .experience-badge { width: 100px; height: 100px; border-width: 6px; right: -4px; top: 14px; }
  .experience-badge strong { font-size: 28px; }
  .experience-badge small { font-size: 8px; }
  .about-note { left: -10px; max-width: calc(100% + 4px); padding: 11px 12px; gap: 9px; }
  .about-note p { font-size: 10px; }
  .numbers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  .numbers-grid > div { min-width: 0; padding: 5px 10px; grid-template-columns: 30px minmax(0, 1fr); column-gap: 8px; border-right: 0; }
  .numbers-grid > div:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.16); }
  .numbers-grid strong { font-size: clamp(20px, 6vw, 25px); }
  .numbers-grid small { font-size: 10px; line-height: 1.4; }
  .projects-heading { display: block; margin-bottom: 25px; }
  .projects-heading h2 { margin-bottom: 15px; }
  .dark-link { white-space: normal; }
  .projects-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .project-large { grid-column: auto; }
  .project-image, .project-large .project-image { height: clamp(190px, 58vw, 260px); }
  .project-info { align-items: flex-start; padding-top: 13px; }
  .project-info h3 { font-size: 14px; }
  .project-info p { font-size: 11px; }
  .process-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .process-step { padding: 24px 20px; }
  .contact-layout, .consultation-layout { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .contact-copy, .consultation-intro { padding-top: 0; }
  .contact-copy > p, .consultation-lead { font-size: 14px; }
  .wizard-card { width: 100%; padding: 20px 14px 16px; border-radius: 13px; }
  .wizard-heading { gap: 10px; }
  .wizard-heading h3 { font-size: 20px; }
  .wizard-description { font-size: 13px; }
  .wizard-progress { gap: 5px; padding: 12px 0 16px; }
  .wizard-progress-step { gap: 4px; }
  .wizard-progress-step span { width: 23px; height: 23px; }
  .wizard-progress-step b { font-size: 9px; white-space: normal; line-height: 1.2; }
  .wizard-progress > i { min-width: 3px; }
  .topic-option { padding: 12px 9px; gap: 8px; }
  .topic-copy strong { font-size: 12px; }
  .topic-copy small { font-size: 11px; }
  .choice-grid, .choice-grid-three { grid-template-columns: minmax(0, 1fr); }
  .choice-grid label span { min-height: 44px; font-size: 12px; }
  .wizard-text-label { font-size: 12px; }
  #extra-details { font-size: 16px; min-height: 90px; }
  .wizard-actions { flex-wrap: wrap; }
  .wizard-actions .btn, .summary-call-actions .btn { flex: 1 1 130px; min-height: 44px; font-size: 12px; padding: 11px 12px; }
  .summary-call-actions { flex-direction: column; }
  .summary-row { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 8px; padding: 11px 10px; }
  .summary-row span { font-size: 11px; }
  .summary-row strong { font-size: 12px; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; padding: 38px 0 30px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-main > div { min-width: 0; }
  .footer-main h2 { margin-bottom: 12px; }
  .footer-main > div > a:not(.brand) { font-size: 12px; }
  .footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 15px 0 calc(15px + env(safe-area-inset-bottom)); }
  .footer-bottom > span { width: 100%; }
  .footer-bottom > div { display: flex; flex-wrap: wrap; gap: 14px; }
  .back-top { margin-left: auto; flex: 0 0 44px; width: 44px; height: 44px; }
}

@media screen and (max-width: 420px) {
  .container { width: calc(100% - 26px); }
  .nav-wrap { height: 64px; }
  .main-nav { top: 64px; }
  .brand-name { font-size: 15px; }
  .hero-layout { padding-top: 30px; }
  .hero h1 { font-size: clamp(32px, 9.4vw, 40px); letter-spacing: -1.1px; }
  .hero-stats { gap: 6px; }
  .hero-stats strong { font-size: 20px; }
  .hero-stats small { font-size: 9px; }
  .wizard-card { padding-inline: 12px; }
  .wizard-progress-step b { font-size: 8px; }
  .wizard-progress-step span { width: 21px; height: 21px; }
  .footer-main { gap: 23px 12px; }
}

@media screen and (max-width: 350px) {
  .container { width: calc(100% - 22px); }
  .brand-mark { flex-basis: 34px; width: 34px; height: 34px; font-size: 23px; }
  .brand-name { font-size: 13px; }
  .brand-name small { font-size: 6px; letter-spacing: .5px; }
  .hero h1 { font-size: 31px; }
  .hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hero-stats strong { font-size: 18px; }
  .hero-stats small { font-size: 8px; }
  .wizard-progress-step b { display: none; }
  .wizard-progress { justify-content: space-between; }
  .wizard-progress > i { flex: 1; }
  .footer-main { grid-template-columns: minmax(0, 1fr); }
  .footer-brand { grid-column: auto; }
}

@media screen and (max-height: 500px) and (orientation: landscape) and (max-width: 900px) {
  .main-nav { padding-bottom: 20px; }
  .hero-layout { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 18px; }
  .hero-visual { height: 250px; }
  .hero h1 { font-size: clamp(30px, 5vw, 42px); }
}

@media (hover: none) {
  .service-card:active, .service-card:focus-within { background: var(--yellow); border-color: var(--yellow); color: var(--blue); }
  .service-card:active h3, .service-card:focus-within h3 { color: var(--blue); }
  .service-card:active p, .service-card:focus-within p { color: #34445d; }
  .service-card:active .card-link, .service-card:focus-within .card-link { color: var(--blue); border-color: rgba(7,59,130,.2); }
}

/* NAVIGATION FIX v4: menu mobile full-height and global floating back-to-top */
@media screen and (max-width: 760px) {
  /* backdrop-filter can trap fixed descendants in a short containing block on iOS */
  .site-header { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  .site-header .main-nav {
    position: fixed !important;
    top: var(--mobile-menu-top, 68px) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: auto !important;
    max-height: calc(100vh - var(--mobile-menu-top, 68px)) !important;
    max-height: calc(100dvh - var(--mobile-menu-top, 68px) - env(safe-area-inset-bottom, 0px)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 9999 !important;
    background: #fff !important;
    -webkit-overflow-scrolling: touch;
  }
  .site-header .main-nav:not(.is-open) { display: none !important; }
  .site-header .main-nav.is-open { display: flex !important; }
}

/* El acceso a inicio permanece visible mientras se recorre cualquier sección. */
.back-top {
  position: fixed !important;
  right: max(20px, env(safe-area-inset-right, 0px) + 12px) !important;
  bottom: max(20px, env(safe-area-inset-bottom, 0px) + 12px) !important;
  z-index: 10000 !important;
  display: grid !important;
  place-items: center;
  width: 46px !important;
  height: 46px !important;
  flex: 0 0 46px !important;
  border: 0;
  border-radius: 12px;
  box-shadow: 0 5px 18px rgba(11, 29, 60, .24);
  cursor: pointer;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.back-top.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0);
}
@media (max-width: 760px) {
  .back-top { right: max(14px, env(safe-area-inset-right, 0px) + 8px) !important; bottom: max(14px, env(safe-area-inset-bottom, 0px) + 8px) !important; width: 46px !important; height: 46px !important; }
}
@media (prefers-reduced-motion: reduce) { .back-top { transition: none; transform: none; } }


/* Panel de consentimiento de cookies: accesible, adaptable y sin preferencias premarcadas. */
.cookie-banner[hidden], .cookie-settings-backdrop[hidden] { display: none !important; }
.cookie-banner { position: fixed; z-index: 12000; left: 18px; right: 18px; bottom: 18px; display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1120px; margin: 0 auto; padding: 22px 24px; background: #fff; color: #182b49; border: 1px solid #dce3ed; border-radius: 16px; box-shadow: 0 18px 60px rgba(9, 28, 59, .24); }
.cookie-banner-copy { max-width: 650px; }
.cookie-kicker { display: block; margin-bottom: 7px; color: #5b6d87; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; }
.cookie-banner h2, .cookie-settings h2 { margin: 0 0 8px; color: #073B82; font-size: 20px; line-height: 1.3; }
.cookie-banner p, .cookie-settings p { margin: 0 0 9px; color: #53627a; font-size: 13px; line-height: 1.6; }
.cookie-banner-copy a { color: #164c9a; text-decoration: underline; font-size: 12px; font-weight: 700; }
.cookie-banner-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; min-width: 290px; }
.cookie-btn { min-height: 42px; padding: 10px 14px; border: 1px solid #aebbd0; border-radius: 8px; background: #fff; color: #073B82; font-family: inherit; font-size: 12px; font-weight: 700; line-height: 1.25; cursor: pointer; }
.cookie-btn:hover { border-color: #073B82; }
.cookie-btn-primary { background: #ffcf35; border-color: #ffcf35; color: #073B82; }
.cookie-btn-primary:hover { background: #f2bf20; border-color: #f2bf20; }
.cookie-btn-config { background: #f4f7fb; }
.cookie-settings-backdrop { position: fixed; inset: 0; z-index: 12001; display: grid; place-items: center; padding: 18px; background: rgba(5, 17, 37, .62); }
.cookie-settings { position: relative; width: min(100%, 560px); max-height: min(90dvh, 760px); overflow: auto; padding: 28px; background: #fff; border-radius: 16px; box-shadow: 0 20px 70px rgba(0,0,0,.25); }
.cookie-close { position: absolute; top: 12px; right: 15px; border: 0; background: transparent; color: #073B82; font-size: 28px; cursor: pointer; }
.cookie-category { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 0; border-top: 1px solid #e4eaf2; }
.cookie-category strong { display: block; color: #073B82; font-size: 14px; }
.cookie-category p { margin: 4px 0 0; font-size: 12px; }
.cookie-category input { width: 20px; height: 20px; accent-color: #073B82; flex: 0 0 auto; }
.cookie-always { flex: 0 0 auto; color: #50617b; font-size: 11px; font-weight: 700; }
.cookie-settings-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; margin-top: 15px; }
.cookie-reopen { position: fixed; left: 14px; bottom: 14px; z-index: 11000; min-height: 34px; padding: 7px 11px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #073B82; box-shadow: 0 4px 14px rgba(11,29,60,.12); font-size: 11px; font-weight: 700; cursor: pointer; }
@media (max-width: 760px) { .cookie-banner { left: 10px; right: 10px; bottom: 10px; display: block; max-height: 78dvh; overflow-y: auto; padding: 18px; border-radius: 14px; } .cookie-banner h2, .cookie-settings h2 { font-size: 18px; } .cookie-banner p { font-size: 12px; } .cookie-banner-actions { display: grid; grid-template-columns: 1fr 1fr; min-width: 0; margin-top: 15px; } .cookie-banner-actions .cookie-btn:first-child { grid-column: 1 / -1; } .cookie-btn { min-height: 42px; padding: 9px; font-size: 11px; } .cookie-settings { padding: 24px 18px 18px; } .cookie-settings-actions { display: grid; grid-template-columns: 1fr; } .cookie-reopen { left: 10px; bottom: 10px; } }


/* Identidad visual Electricidad Garibo */
.brand-logo{display:block;width:148px;height:auto;max-height:82px;object-fit:contain;object-position:left center;}
.brand{min-width:0;}
.brand:hover .brand-logo{filter:drop-shadow(0 2px 5px rgba(7,59,130,.12));}
.brand-light .brand-logo{background:#fff;border-radius:7px;padding:3px;}
.nav-cta,.btn-yellow,.cookie-btn-primary{background:var(--yellow);color:#061D49;}
.nav-cta:hover,.btn-yellow:hover,.cookie-btn-primary:hover{background:var(--yellow-2);color:#061D49;}
.service-card:hover .service-icon{background:var(--yellow);color:#061D49;}
.service-card:not(.featured):hover h3,.service-card:not(.featured):hover .card-link{color:var(--blue-2);}
@media(max-width:760px){.brand-logo{width:126px;max-height:76px}.nav-wrap{height:82px}}

/* GARIBO — hover coherente: tarjeta e icono intercambian azul y amarillo */
@media (hover: hover) and (pointer: fine) {
  .services-section .service-card,
  .services-section .service-card.featured {
    transition: background-color .24s ease, color .24s ease, border-color .24s ease,
      transform .24s ease, box-shadow .24s ease;
  }
  .services-section .service-card:hover,
  .services-section .service-card:focus-within {
    background: var(--yellow) !important;
    color: var(--blue) !important;
    border-color: var(--yellow) !important;
    transform: translateY(-6px);
    box-shadow: 0 18px 42px rgba(7, 59, 130, .18);
  }
  .services-section .service-card:hover .service-icon,
  .services-section .service-card:focus-within .service-icon {
    background: var(--blue) !important;
    color: var(--yellow) !important;
    border: 1px solid var(--blue);
  }
  .services-section .service-card:hover h3,
  .services-section .service-card:focus-within h3,
  .services-section .service-card:hover .card-link,
  .services-section .service-card:focus-within .card-link,
  .services-section .service-card:hover .card-number,
  .services-section .service-card:focus-within .card-number {
    color: var(--blue) !important;
  }
  .services-section .service-card:hover p,
  .services-section .service-card:focus-within p { color: #263d5c !important; }
  .services-section .service-card:hover .card-link,
  .services-section .service-card:focus-within .card-link { border-color: rgba(7,59,130,.28) !important; }
}
@media (hover: none) {
  .services-section .service-card:active,
  .services-section .service-card:focus-within {
    background: var(--yellow) !important;
    color: var(--blue) !important;
    border-color: var(--yellow) !important;
  }
  .services-section .service-card:active .service-icon,
  .services-section .service-card:focus-within .service-icon {
    background: var(--blue) !important;
    color: var(--yellow) !important;
  }
  .services-section .service-card:active h3,
  .services-section .service-card:focus-within h3,
  .services-section .service-card:active .card-link,
  .services-section .service-card:focus-within .card-link { color: var(--blue) !important; }
  .services-section .service-card:active p,
  .services-section .service-card:focus-within p { color: #263d5c !important; }
}


/* ==========================================================
   ACCESIBILIDAD VISUAL Y DE INTERACCIÓN — GARIBO
   Base legible, controles amplios, foco visible y movimiento reducido.
   ========================================================== */
:root { font-size: 100%; scroll-behavior: smooth; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-size: 18px !important;
  line-height: 1.65 !important;
  color: #17263d;
  overflow-wrap: break-word;
}
body p, body li { line-height: 1.7; }
body p { font-size: 1rem; }
/* El texto auxiliar deja de depender de tamaños diminutos heredados. */
.topbar, .main-nav, .eyebrow, .hero-proof small, .hero-stats small,
.hero-bottom, .trust-item, .service-card p, .card-link,
.experience-badge small, .about-note, .check-list small,
.numbers-grid small, .project-image span, .project-info p,
.process-step p, .wizard-kicker, .wizard-description,
.wizard-progress, .topic-copy small, .wizard-text-label,
.wizard-safety-hint, .wizard-footnote, .summary-intro,
.summary-reminder p, .cookie-kicker, .cookie-banner p,
.cookie-banner a, .cookie-category p, .cookie-category strong,
.cookie-always, .cookie-btn, .cookie-reopen, .footer-main,
.footer-bottom, .image-label small {
  font-size: 1rem !important;
  line-height: 1.55 !important;
}
.topbar { padding-block: 9px; }
.main-nav { gap: clamp(14px, 2vw, 28px); }
.main-nav a, .footer-main a, .footer-bottom a { min-height: 44px; display: inline-flex; align-items: center; }
.eyebrow, .hero-bottom, .card-number, .project-image span, .wizard-kicker,
.cookie-kicker { letter-spacing: .06em; }
.hero-lead, .section-heading > p, .about-intro,
.service-card p, .project-info p, .process-step p { font-size: 1.1rem !important; line-height: 1.7 !important; }
.hero-proof strong, .image-label strong, .check-list strong,
.service-card h3, .project-info h3, .process-step h3 { line-height: 1.35; }
.btn, .nav-cta, .cookie-btn, .cookie-reopen, button,
input[type="submit"], input[type="button"] {
  min-height: 50px;
  font-size: 1rem !important;
  line-height: 1.35;
}
.btn, .cookie-btn { padding: 12px 20px; }
input:not([type="radio"]):not([type="checkbox"]), select, textarea {
  font: inherit;
  font-size: 1rem !important;
  line-height: 1.5;
  min-height: 48px;
}
textarea { min-height: 120px; padding: 12px 14px; }
input[type="radio"], input[type="checkbox"] { width: 22px; height: 22px; accent-color: #073B82; }
.topic-option, .choice-grid label, .cookie-category { min-height: 54px; }
.topic-option, .choice-grid label { padding-block: 12px; }
.wizard-progress { gap: 10px; }
.wizard-progress-step span { width: 34px; height: 34px; }
.cookie-banner { max-width: min(760px, calc(100vw - 32px)); }
.cookie-banner p, .cookie-settings p, .cookie-category p { font-size: 1rem !important; }
.cookie-banner-actions { gap: 10px; }
.cookie-reopen { min-height: 48px; padding: 10px 16px; }
.back-top { min-width: 50px; min-height: 50px; display: grid; place-items: center; font-size: 1.5rem; }
/* Enlaces distinguibles sin depender únicamente del color. */
main a:not(.btn):not(.card-link), .site-footer a { text-underline-offset: .18em; }
main a:focus-visible, header a:focus-visible, footer a:focus-visible,
button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, .topic-option:focus-within, .choice-grid label:focus-within {
  outline: 3px solid #B45B00 !important;
  outline-offset: 4px !important;
  border-radius: 4px;
}
:focus:not(:focus-visible) { outline: none; }
.skip-link {
  position: fixed; top: 12px; left: 12px; z-index: 20000;
  transform: translateY(-180%); padding: 14px 18px;
  background: #061D49; color: #fff; border: 3px solid #F6C945;
  border-radius: 8px; font-weight: 700; font-size: 1rem;
}
.skip-link:focus { transform: translateY(0); }
section[id], main[id] { scroll-margin-top: 110px; }
/* Evita que textos largos o el zoom rompan la composición. */
img, video, iframe { max-width: 100%; }
@media (max-width: 760px) {
  body { font-size: 17px !important; }
  .topbar { font-size: 15px !important; }
  .topbar-inner { gap: 8px; flex-wrap: wrap; }
  .main-nav { font-size: 17px !important; }
  .main-nav a { min-height: 48px; }
  .hero-lead, .section-heading > p, .about-intro,
  .service-card p, .project-info p, .process-step p { font-size: 1.05rem !important; }
  .cookie-banner { padding: 20px !important; }
  .cookie-banner h2, .cookie-settings h2 { font-size: clamp(1.35rem, 5vw, 1.7rem) !important; line-height: 1.25; }
  .cookie-banner-actions { grid-template-columns: 1fr !important; }
  .cookie-banner-actions .cookie-btn:first-child { grid-column: auto; }
  .cookie-btn { min-height: 48px !important; font-size: 1rem !important; }
  .footer-bottom { gap: 12px; flex-wrap: wrap; }
}
@media (max-width: 380px) {
  .container { width: min(100% - 28px, 1180px); }
  .btn { white-space: normal; }
  .wizard-actions, .summary-call-actions { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
@media (prefers-contrast: more) {
  body { color: #000 !important; }
  a { text-decoration: underline; }
  .btn, .cookie-btn, .nav-cta { border: 2px solid currentColor; }
}
@media (forced-colors: active) {
  .btn, .cookie-btn, .nav-cta, .topic-option, .choice-grid label { border: 1px solid ButtonText; }
  :focus-visible { outline: 3px solid Highlight !important; }
}


/* Transiciones de entrada inspiradas en Voltra: suaves, discretas y accesibles. */
.motion-reveal {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition: opacity .72s cubic-bezier(.2,.7,.2,1), transform .72s cubic-bezier(.2,.7,.2,1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.motion-reveal.is-visible { opacity: 1; transform: translate3d(0,0,0); }
.hero-copy > .motion-reveal { transform: translate3d(0,18px,0); }
.hero-copy > .motion-reveal.is-visible { transform: translate3d(0,0,0); }
.service-card, .project-card, .process-step { transition: transform .32s cubic-bezier(.2,.7,.2,1), box-shadow .32s ease, border-color .32s ease; }
.service-card:hover, .project-card:hover, .process-step:hover { transform: translateY(-5px); }
.service-icon, .project-info>a, .btn, .nav-cta, .card-link { transition: transform .28s ease, background-color .28s ease, color .28s ease, box-shadow .28s ease; }
@media (max-width: 700px) {
  .motion-reveal { transform: translate3d(0,18px,0); transition-duration: .58s; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-reveal, .motion-reveal.is-visible { opacity: 1 !important; transform: none !important; transition: none !important; will-change: auto; }
  .service-card, .project-card, .process-step, .service-icon, .project-info>a, .btn, .nav-cta, .card-link { transition: none !important; }
  .service-card:hover, .project-card:hover, .process-step:hover { transform: none !important; }
}


/* FOOTER — distribución limpia; el botón flotante conserva su posición original */
.site-footer { overflow: visible; }
.footer-main { align-items: start; }
.footer-main > div { min-width: 0; }
.footer-brand p { max-width: 290px; font-size: 12px; line-height: 1.7; }
.footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  min-height: 0;
  padding: 18px 78px 18px 0;
  line-height: 1.5;
}
.footer-bottom > span {
  display: block;
  width: 100%;
  line-height: 1.6;
}
.footer-legal-links {
  display: flex;
  width: 100%;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 8px 22px;
  min-width: 0;
}
.footer-legal-links > a,
.footer-legal-links > button {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  max-width: 100%;
  line-height: 1.4;
  text-align: left;
}
.cookie-reopen-footer {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: .18em;
  cursor: pointer;
}
.cookie-reopen-footer:hover,
.cookie-reopen-footer:focus-visible,
.footer-developer a:hover { color: var(--yellow); }
.cookie-reopen-footer:focus-visible,
.footer-developer a:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 3px;
  border-radius: 3px;
}
.footer-developer {
  display: block;
  width: 100%;
  margin: 4px 0 0;
  line-height: 1.6;
  white-space: nowrap;
}
.footer-developer a {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .18em;
}
@media (max-width: 760px) {
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom {
    align-items: flex-start;
    gap: 8px;
    padding: 16px 68px max(18px, env(safe-area-inset-bottom)) 0;
  }
  .footer-legal-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .footer-legal-links > a,
  .footer-legal-links > button { min-height: 38px; font-size: 12px; }
  .footer-developer { margin-top: 7px; font-size: 12px; }
}
@media (max-width: 380px) {
  .footer-main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 23px 14px; }
  .footer-bottom > span { font-size: 11px; }
  .footer-bottom { padding-right: 62px; }
}

/* SEO landing: bloque de preguntas frecuentes */
.faq-section { background: #f5f7fb; }
.faq-list { width: min(900px, 100%); margin: 38px auto 0; display: grid; gap: 14px; }
.faq-item { background: #fff; border: 1px solid rgba(7, 59, 130, .12); border-radius: 14px; padding: 0 22px; box-shadow: 0 8px 24px rgba(7, 35, 75, .045); }
.faq-item summary { cursor: pointer; list-style: none; position: relative; padding: 21px 38px 21px 0; color: #073b82; font-weight: 700; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); font-size: 1.45rem; font-weight: 500; }
.faq-item[open] summary::after { content: '−'; }
.faq-item p { margin: 0; padding: 0 34px 21px 0; line-height: 1.7; color: #46566b; }
.faq-item summary:focus-visible { outline: 3px solid #f4c400; outline-offset: 4px; border-radius: 4px; }
@media (max-width: 640px) { .faq-item { padding: 0 16px; } .faq-item summary { padding-top: 18px; padding-bottom: 18px; } }


/* FOOTER FINAL — jerarquía clara y espacio reservado para el botón fijo */
.site-footer { overflow: visible; }
.footer-bottom {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  justify-content: start !important;
  gap: 12px !important;
  min-height: 0 !important;
  padding: 22px 92px 24px 0 !important;
  line-height: 1.55;
}
.footer-copyright {
  margin: 0 !important;
  color: #aab9cf !important;
  font-size: 11px !important;
  line-height: 1.6 !important;
}
.footer-bottom-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
}
.footer-legal-links {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: wrap !important;
  gap: 7px 20px !important;
  width: 100% !important;
  min-width: 0 !important;
}
.footer-legal-links > a,
.footer-legal-links > button {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 34px !important;
  max-width: 100% !important;
  margin: 0 !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
  white-space: normal !important;
}
.cookie-reopen-footer {
  appearance: none;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font: inherit !important;
  text-decoration: underline;
  text-underline-offset: .18em;
  cursor: pointer;
}
.footer-developer {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  color: #aab9cf !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
  white-space: normal !important;
}
.footer-developer a {
  display: inline !important;
  color: #fff !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: .18em;
}
.footer-developer a:hover,
.cookie-reopen-footer:hover { color: var(--yellow) !important; }
.footer-developer a:focus-visible,
.cookie-reopen-footer:focus-visible {
  outline: 3px solid var(--yellow) !important;
  outline-offset: 3px;
  border-radius: 3px;
}
/* El botón vuelve a su esquina inferior derecha; el footer reserva su área de solape. */
.back-top {
  position: fixed !important;
  right: max(20px, env(safe-area-inset-right, 0px) + 12px) !important;
  bottom: max(20px, env(safe-area-inset-bottom, 0px) + 12px) !important;
  z-index: 10000 !important;
}
@media (max-width: 760px) {
  .footer-bottom {
    gap: 10px !important;
    padding: 18px 72px max(22px, env(safe-area-inset-bottom)) 0 !important;
  }
  .footer-bottom-content { gap: 8px !important; }
  .footer-legal-links {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
  }
  .footer-legal-links > a,
  .footer-legal-links > button {
    min-height: 36px !important;
    font-size: 12px !important;
  }
  .footer-developer {
    margin-top: 5px !important;
    font-size: 12px !important;
  }
  .back-top {
    right: max(14px, env(safe-area-inset-right, 0px) + 8px) !important;
    bottom: max(14px, env(safe-area-inset-bottom, 0px) + 8px) !important;
  }
}

/* AJUSTE FINAL SOLICITADO: atribución a la derecha y botón sin solapar el footer */
.footer-bottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 8px !important;
  padding: 18px 0 82px !important;
  font-size: 10px !important;
  line-height: 1.5 !important;
}
.footer-copyright {
  font-size: 10px !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}
.footer-bottom-content {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  width: 100% !important;
}
.footer-legal-links {
  flex: 1 1 auto !important;
  width: auto !important;
  gap: 6px 18px !important;
}
.footer-legal-links > a,
.footer-legal-links > button {
  min-height: 30px !important;
  font-size: 10px !important;
  line-height: 1.4 !important;
}
.footer-developer {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 0 0 auto !important;
  text-align: right !important;
  white-space: nowrap !important;
  font-size: 10px !important;
  line-height: 1.5 !important;
}
.footer-developer a { font-size: inherit !important; }
.back-top {
  position: fixed !important;
  right: max(20px, env(safe-area-inset-right, 0px) + 12px) !important;
  bottom: max(20px, env(safe-area-inset-bottom, 0px) + 12px) !important;
  z-index: 10000 !important;
}
@media (max-width: 760px) {
  .footer-bottom {
    padding: 16px 0 max(82px, calc(env(safe-area-inset-bottom) + 76px)) !important;
    gap: 7px !important;
  }
  .footer-bottom-content {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
  }
  .footer-legal-links {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
  }
  .footer-legal-links > a,
  .footer-legal-links > button {
    min-height: 32px !important;
    font-size: 10px !important;
  }
  .footer-developer {
    align-self: flex-end !important;
    margin: 2px 0 0 auto !important;
    text-align: right !important;
    font-size: 10px !important;
  }
  .back-top {
    right: max(14px, env(safe-area-inset-right, 0px) + 8px) !important;
    bottom: max(14px, env(safe-area-inset-bottom, 0px) + 8px) !important;
  }
}


/* Separador visual entre "Cómo trabajo" y "Dudas habituales" */
.faq-section {
  position: relative;
  background: #fff;
  border-top: 1px solid rgba(7, 59, 130, .08);
  padding-top: clamp(82px, 8vw, 112px);
}
.faq-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: min(260px, 58%);
  height: 4px;
  transform: translateX(-50%);
  border-radius: 0 0 8px 8px;
  background: linear-gradient(90deg, #f4c400 0%, #f4c400 28%, #073b82 50%, #f4c400 72%, #f4c400 100%);
  box-shadow: 0 3px 12px rgba(7, 59, 130, .12);
}
@media (max-width: 640px) {
  .faq-section {
    padding-top: 76px;
  }
  .faq-section::before {
    width: 44%;
    height: 4px;
  }
}


/* Separador de confianza: lectura clara y adaptación accesible */
.numbers-section { position: relative; }
.numbers-grid small { font-size: 12px; line-height: 1.5; }
.numbers-grid > div { min-width: 0; }
@media (max-width: 760px) {
  .numbers-grid { row-gap: 22px; }
  .numbers-grid > div { padding: 7px 12px; }
  .numbers-grid small { font-size: 12px; line-height: 1.45; }
}
@media (max-width: 360px) {
  .numbers-grid { column-gap: 8px; }
  .numbers-grid > div { grid-template-columns: 26px minmax(0, 1fr); column-gap: 7px; padding-inline: 7px; }
  .numbers-grid strong { font-size: 21px; }
  .numbers-grid small { overflow-wrap: anywhere; }
}

/* FOOTER: recuperar tamaño de lectura manteniendo la atribución a la derecha */
.footer-bottom {
  font-size: 12px !important;
}
.footer-copyright {
  font-size: 12px !important;
  line-height: 1.55 !important;
}
.footer-legal-links > a,
.footer-legal-links > button {
  font-size: 12px !important;
  line-height: 1.45 !important;
}
.footer-developer {
  font-size: 12px !important;
  line-height: 1.55 !important;
  margin-left: auto !important;
  text-align: right !important;
  white-space: nowrap !important;
}
.footer-developer a {
  font-size: inherit !important;
}
@media (max-width: 760px) {
  .footer-copyright,
  .footer-legal-links > a,
  .footer-legal-links > button,
  .footer-developer {
    font-size: 12px !important;
  }
  .footer-developer {
    align-self: flex-end !important;
    margin-left: auto !important;
    text-align: right !important;
    white-space: normal !important;
  }
}


/* Colaboración con aseguradoras */
.insurers-section { background: #f5f8fc; }
.insurers-panel {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding: clamp(22px, 4vw, 38px);
  background: #fff;
  border: 1px solid rgba(7, 59, 130, .14);
  border-radius: 18px;
  box-shadow: 0 16px 44px rgba(7, 59, 130, .07);
}
.insurers-mark {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: #f4c400;
  color: #073b82;
  font-size: 28px;
  font-weight: 900;
}
.insurers-panel h3 { margin: 0 0 8px; color: #073b82; }
.insurers-panel p { margin: 0; line-height: 1.7; }
.insurers-note {
  max-width: 900px;
  margin: 18px auto 0;
  color: #43536a;
  font-size: 13px;
  line-height: 1.65;
  text-align: center;
}
@media (max-width: 820px) {
  .insurers-panel { grid-template-columns: 48px minmax(0, 1fr); }
  .insurers-panel .btn { grid-column: 1 / -1; justify-self: start; }
}

/* Refuerzo de accesibilidad: teclado, foco visible, contraste y preferencias del sistema */
:focus-visible {
  outline: 3px solid #b28d00;
  outline-offset: 3px;
}
a, button, input, select, textarea, summary { touch-action: manipulation; }
button, .btn, .nav-cta { min-height: 44px; }
.skip-link {
  position: fixed;
  z-index: 20000;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  transform: translateY(-160%);
  background: #073b82;
  color: #fff;
  border: 2px solid #f4c400;
  border-radius: 8px;
  font-weight: 800;
}
.skip-link:focus { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
@media (forced-colors: active) {
  :focus-visible { outline: 3px solid Highlight; }
  .btn, .nav-cta, .topic-option { border: 1px solid ButtonText; }
}

/* SEO/UX: imágenes reales para indexación, texto alternativo y carga diferida; el aspecto visual se conserva. */
.hero-image > img,.about-photo > img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.hero-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(145deg,rgba(10,35,74,.05),rgba(10,35,74,.25))}
.about-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(7,59,130,.03),rgba(7,59,130,.15))}
.project-image{isolation:isolate}
.project-image > .project-photo{position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.project-image::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,rgba(10,34,70,.3),transparent 60%)}
.project-image>span{z-index:2}
