html[data-ifaire-native] { background: #f2f5ee; }
html[data-ifaire-native] .ifaire-loader { display: none; z-index: 100000; }
html[data-ifaire-native].ifaire-js .ifaire-loader { display: grid; }
html[data-ifaire-native].ifaire-js[data-ifaire-intro="skip"] .ifaire-loader { display: none; }
html[data-ifaire-native].ifaire-js:not(.ifaire-intro-complete) .ifaire-loader { animation: ifaire-intro-failsafe 0s 4s forwards; }
@keyframes ifaire-intro-failsafe { to { visibility: hidden; pointer-events: none; } }
html[data-ifaire-native]:not(.ifaire-js) [style*="opacity:0"],
html[data-ifaire-native]:not(.ifaire-js) [style*="opacity: 0"] { opacity: 1 !important; visibility: visible !important; }
html[data-ifaire-native]:not(.ifaire-js) [data-pop] { transform: none !important; opacity: 1 !important; visibility: visible !important; }
html[data-ifaire-native]:not(.ifaire-js) [aria-label="Page loading"] { display: none !important; }
html[data-ifaire-native]:not(.ifaire-js) .sr-only { position: static; width: auto; height: auto; clip: auto; clip-path: none; overflow: visible; white-space: normal; margin: 0; }
html[data-ifaire-native]:not(.ifaire-js) .sr-only + [aria-hidden="true"] { display: none !important; }
html[data-ifaire-native]:not(.ifaire-js) .opacity-0,
html.ifaire-static-fallback [style*="opacity:0"], html.ifaire-static-fallback [style*="opacity: 0"],
html.ifaire-static-fallback .opacity-0 { opacity: 1 !important; visibility: visible !important; }
html.ifaire-static-fallback [data-pop] { opacity: 1 !important; visibility: visible !important; transform: none !important; }
html.ifaire-static-fallback .sr-only { position: static; width: auto; height: auto; clip: auto; clip-path: none; overflow: visible; white-space: normal; margin: 0; }
html.ifaire-static-fallback .sr-only + [aria-hidden="true"] { display: none !important; }
html[data-ifaire-native]:not(.ifaire-js) .fixed:not(nav):not(.ifaire-language-switcher),
html.ifaire-static-fallback .fixed:not(nav):not(.ifaire-language-switcher),
html[data-ifaire-native]:not(.ifaire-js) #ifaire-navigation,
html.ifaire-static-fallback #ifaire-navigation,
html[data-ifaire-native]:not(.ifaire-js) button[aria-controls="ifaire-navigation"],
html.ifaire-static-fallback button[aria-controls="ifaire-navigation"] { display: none !important; }
html[data-ifaire-native]:not(.ifaire-js) footer h2,
html.ifaire-static-fallback footer h2 { font-size: 20vw; line-height: .85; overflow-wrap: anywhere; letter-spacing: -.04em; }

/* Keep the compact language selector within a visible header at all scroll positions. */
html[data-ifaire-native] nav.fixed.top-0 { transform: none !important; }
html[data-ifaire-native] nav.fixed.top-0 a.bg-red { color: #fff !important; }
html[data-ifaire-native] { scroll-padding-top: clamp(76px, 7vw, 120px); }
.ifaire-skip-link { position: fixed; left: 1rem; top: .75rem; z-index: 100001; padding: .75rem 1rem; color: #f2f5ee; background: #073b3a; border-radius: .5rem; font: 700 16px/1.25 Arial, sans-serif; transform: translateY(-160%); }
.ifaire-skip-link:focus { transform: none; }
.ifaire-contact-details { margin: 1rem 0 0; font: 600 clamp(14px, 1.15vw, 18px)/1.5 Arial, sans-serif; color: #073b3a; }
.ifaire-contact-details a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
@media (min-width: 1025px) and (min-aspect-ratio: 2/1) {
  #inicio { padding-top: calc(5.6vw + 1vh) !important; }
  #inicio > div:first-child > h1 { font-size: min(30vw, 39vh) !important; }
}
.ifaire-footer-links { position: relative; z-index: 30; display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.25rem; padding: 1rem 1rem 1.5rem; color: #073b3a; font: 500 14px/1.4 Arial, sans-serif; }
.ifaire-footer-links a { display: inline-flex; align-items: center; min-height: 36px; text-decoration: underline; text-underline-offset: .2em; }
footer .relative.z-30, footer .ifaire-footer-links { background: #f2f5ee; }
@media (min-width: 1025px) {
  /* Empty mobile-only rows were painting over the translated desktop wordmark.
     Use the existing bottom whitespace for the links, keeping the wordmark,
     footer height and animation coordinates unchanged. */
  .ifaire-footer-wordmark ~ .relative.z-30 { background: transparent; }
  footer .ifaire-footer-links { margin-top: 5vw; }
  html[data-ifaire-native] footer { padding-bottom: 3vw; }
}
@media (max-width: 767px) {
  .ifaire-language-switcher { right: 34vw; }
  nav.fixed.top-0 button[aria-controls="ifaire-navigation"] { padding-inline: 2vw !important; gap: 1.3vw !important; }
  #presupuesto .ifaire-contact-details { text-align: center; }
  html[data-ifaire-native] { scroll-padding-top: 82px; }
  /* Reserve each photo's final frame before lazy loading so the original
     ScrollTrigger route is measured against stable card positions. */
  #servicios-movil .z-10 > div:has(> img) { height: 75vw !important; aspect-ratio: 4 / 5; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-ifaire-native] { scroll-behavior: auto !important; }
  html[data-ifaire-native] *, html[data-ifaire-native] *::before, html[data-ifaire-native] *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
