/* Adaptación a pantallas y controles táctiles, sin depender del dispositivo. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.about>*,.contact>*,.service-feature>*,.service-grid>*,.diagnostics>*,.gallery>*{min-width:0}
.button{max-width:100%;line-height:1.5;min-height:48px}
.brand{flex-shrink:0}
.photo .title,.photo .category,.number,.eyebrow{overflow-wrap:anywhere}
header{padding-left:max(5%,env(safe-area-inset-left));padding-right:max(5%,env(safe-area-inset-right))}
footer{flex-wrap:wrap}
dialog{max-height:94vh;max-height:94dvh;overflow:auto;overscroll-behavior:contain}

/* Menú compacto también en tabletas y ventanas medianas. */
@media(max-width:1100px){
 html{scroll-padding-top:88px}
 header{height:80px}
 .menu{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:44px;padding:10px 16px;background:#fff;border:1px solid var(--line);font-size:14px}
 nav{display:none;position:absolute;left:0;right:0;top:80px;background:#fff;padding:18px 6%;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:6px;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;box-shadow:0 15px 25px #11171912}
 nav.open{display:flex}
 nav>a{display:flex;align-items:center;min-height:48px;padding:12px 6px;font-size:14px}
 nav .button{margin-top:6px;padding:14px 18px}
 .section{padding:72px 6%}
 .about,.contact{gap:36px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-feature>div{padding:32px}
 .service-feature>img{height:100%;min-height:360px}
 .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
 .photo img{height:auto;aspect-ratio:4/5}
 .hero h1{font-size:clamp(44px,6.5vw,68px);letter-spacing:-2px}
 .actions{gap:16px;flex-direction:row;flex-wrap:wrap}
 .actions .text-link{flex-basis:100%;width:fit-content;max-width:fit-content}
 .diagnostic-copy{padding:48px 8%}
 .contact-card{padding:28px}
 .contact-card .button{display:flex;width:100%;font-size:13px;gap:12px}
}

@media(max-width:900px){
 .contact{grid-template-columns:minmax(0,1fr)}
 .contact-card{width:100%}
 .diagnostics{grid-template-columns:minmax(0,1fr)}
 .diagnostic-image{min-height:0;height:clamp(340px,55vw,510px)}
 .diagnostic-image>img{object-position:center 62%}
 .diagnostic-copy{padding:48px 6%}
 .diagnostics h2{font-size:clamp(32px,5vw,44px)}
 .diagnostic-still img{height:auto;max-height:280px;aspect-ratio:16/9;object-fit:cover}
 .contact-card .button{max-width:480px}
 .pillars span{font-size:12px}
 .pillars b{display:block;margin:0 0 8px}
}

@media(max-width:700px){
 html{scroll-padding-top:80px}
 header{height:72px}
 nav{top:72px}
 .topbar{padding:10px 6%;font-size:9px;letter-spacing:.4px;line-height:1.5;text-align:center}
 .topbar>span{display:none}
 .topbar>a{margin:auto}
 .hero{display:block;min-height:0}
 .hero-content{padding:52px 6% 34px}
 .hero h1{font-size:clamp(34px,8.2vw,55px);line-height:1.1;letter-spacing:-1.4px;margin-bottom:24px}
 .hero-content>p:not(.eyebrow){font-size:16px;line-height:1.65;max-width:540px}
 .eyebrow{font-size:10px;line-height:1.65;letter-spacing:1.6px;margin-bottom:20px}
 .hero-foot{position:static;padding:0 6% 28px;flex-direction:column;gap:10px;font-size:9px;line-height:1.6;letter-spacing:1.2px}
 .hero-photo{object-position:64% center}
 .section{padding:52px 6%}
 .about{grid-template-columns:minmax(0,1fr);gap:18px}
 h2,.energy-banner h2{font-size:clamp(29px,6.5vw,40px);line-height:1.16;letter-spacing:-1px}
 .about .lead{font-size:22px}
 .about p,.service-feature p,.service-grid p,.diagnostic-copy>p,.contact>div>p,.contact-card p{font-size:15px;line-height:1.7}
 .section-heading{display:block;margin-bottom:28px}
 .section-heading>p{font-size:14px;margin:15px 0 0}
 .service-feature{grid-template-columns:minmax(0,1fr)}
 .service-feature>img{height:320px;min-height:0;object-position:center 46%}
 .service-feature>div{padding:28px}
 .service-grid article{padding:25px}
 .service-grid h3{font-size:23px;max-width:none}
 details,details p,details ul,summary{font-size:14px}
 summary{min-height:48px;align-items:center}
 .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
 .photo img{height:auto;aspect-ratio:4/5}
 .photo .title,.gallery .title{font-size:13px;line-height:1.5}
 .photo .category{font-size:10px;line-height:1.5}
 .filters{gap:8px}
 .filters button{min-height:44px;font-size:12px;padding:10px 13px}
 .contact-phone{font-size:28px;min-height:44px;line-height:1.5}
 .email{font-size:15px;line-height:1.7;min-height:44px}
 address{font-size:14px}
 .contact-card{padding:26px}
 .contact-card .button{font-size:14px;min-height:52px;padding:15px 18px}
 .managers p{font-size:13px}
 .energy-banner{min-height:300px}
 .energy-banner>div{padding:54px 6%}
 footer{align-items:flex-start;gap:18px;padding:28px 6% max(28px,env(safe-area-inset-bottom))}
 footer p{max-width:none;flex-basis:100%;margin:0;font-size:12px}
 footer>a:last-child{min-height:44px;display:inline-flex;align-items:center;gap:8px;font-size:13px}
 dialog{width:94vw;padding:14px;max-height:94vh;max-height:94dvh}
 #large-photo{max-height:calc(94vh - 185px);max-height:calc(94dvh - 185px)}
 .close,.lightbox-controls button{min-height:44px;font-size:12px;padding:10px}
 .lightbox-controls{gap:8px}
 #photo-count{white-space:nowrap;font-size:11px}
 #photo-caption{font-size:13px;line-height:1.5}
}

@media(max-width:540px){
 .actions{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:26px}
 .actions .button{width:100%;padding:16px 20px;min-height:54px;font-size:14px}
 .actions .text-link{font-size:13px;min-height:44px;line-height:1.5}
 .service-grid{grid-template-columns:minmax(0,1fr)}
 .pillars{padding:20px 6%;gap:10px}
 .pillars span{padding:0 8px 0 0;font-size:11px;line-height:1.5}
 .process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;font-size:12px}
 .service-feature>img{height:280px}
 .diagnostic-image{height:350px}
 .diagnostic-copy>.button{width:100%}
 .gallery-section>.outline{width:100%;margin-top:28px}
 .energy-banner>img{object-position:65% center}
}

@media(max-width:360px){
 .hero h1{font-size:32px;letter-spacing:-1px}
 .gallery{grid-template-columns:minmax(0,1fr)}
 .photo img{aspect-ratio:4/3}
 .contact-card,.service-feature>div{padding:20px}
 .contact-phone{font-size:26px}
 .lightbox-controls button{gap:4px;font-size:11px;padding:8px}
}

@media(hover:none) and (pointer:coarse){
 .button:hover{transform:none}
 .photo:hover img{transform:none}
}

@media(max-height:500px) and (orientation:landscape){
 header{position:relative}
 html{scroll-padding-top:16px}
 .hero-content{padding-top:32px}
 dialog{max-height:96vh;max-height:96dvh}
 #large-photo{max-height:calc(96vh - 155px);max-height:calc(96dvh - 155px)}
}
