/* Shared responsive corrections. Keep the imported legacy styles unchanged. */
:root { --header-clearance: 112px; }
html { scroll-padding-top: var(--header-clearance); }
img { max-width: 100%; }
iframe { max-width: 100%; }
.row > *, .media-body { min-width: 0; }
.contact-area .media-body, .footer-items a { overflow-wrap: anywhere; }
.btn { white-space: normal; }
input, textarea, button, a { touch-action: manipulation; }
input, textarea, [tabindex] { scroll-margin-top: var(--header-clearance); }
a:focus-visible, button:focus-visible { outline: 3px solid #f6142b; outline-offset: 3px; }

/* Content determines footer height, also in landscape and with enlarged text. */
.footer-area.footer-fixed { position: relative; z-index: auto; }
.height-emulator { display: none !important; }
.footer-items .social-icons { flex-wrap: wrap; }
.navbar .dropdown-item { white-space: normal; overflow-wrap: anywhere; }
.navbar .dropdown-menu.show, .navbar-nav li:focus-within > .dropdown-menu {
  opacity: 1; visibility: visible;
}
.navbar .navbar-nav .language-switcher .language-option { min-height: 44px; }
.home-swiper .swiper-slide { height: auto; }
.welcome-area { height: auto !important; min-height: 800px; padding: 150px 0 100px; }
.welcome-area > .container { position: relative; padding-bottom: 74px; }
.welcome-area > .container > .swiper-button-prev,
.welcome-area > .container > .swiper-button-next {
  top: auto; bottom: 0; margin: 0; width: 44px; height: 44px;
}
.welcome-area > .container > .swiper-button-prev { left: calc(50% - 100px); }
.welcome-area > .container > .swiper-button-next { right: calc(50% - 100px); }
.welcome-area > .container > .swiper-pagination { bottom: 12px; left: calc(50% - 45px); width: 90px; }
.welcome-area .swiper-button-prev svg, .welcome-area .swiper-button-next svg { width: 18px; height: 24px; }
.productos .custom-arrow { width: 44px; height: 44px; }

@media (min-width: 992px) and (max-width: 1199px) {
  .navbar .navbar-nav .nav-link { padding-inline: 10px; font-size: 14px; }
  .navbar-brand img { height: 55px; }
  .navbar .dropdown-menu { max-width: 320px; }
}

@media (max-width: 991px) {
  :root { --header-clearance: 100px; }
  .navbar-brand img { height: 48px; }
  .navbar > .container { min-height: 58px; }
  .navbar .navbar-inner {
    width: min(360px, 100%); max-width: 100vw; padding: 56px 16px 24px;
    padding-bottom: max(24px, env(safe-area-inset-bottom));
    overscroll-behavior: contain; visibility: hidden;
  }
  .navbar.active .navbar-inner { visibility: visible; }
  .navbar-inner .navbar-toggler { height: 48px; }
  .navbar .dropdown-item { padding: 12px 20px; line-height: 1.5; }
  .navbar .navbar-nav .language-switcher { gap: 12px; margin-left: 20px; }
  .navbar .navbar-nav .language-option { min-width: 60px; }
  .main > section:first-of-type:not(.welcome-area):not(.about-hero) { padding-top: 118px; }
  .welcome-area { min-height: 0; padding: 120px 0 48px !important; }
  .welcome-intro { margin-top: 0; }
  .welcome-intro h1 { font-size: clamp(2rem, 5vw, 3rem); }
  .home-swiper .swiper-slide .row > :last-child { margin-top: 28px; text-align: center; }
  .home-swiper .swiper-slide img { width: auto; max-height: 380px; object-fit: contain; }
  .contact-box .form-group .form-control { font-size: 16px; }
  .single-work h2 { font-size: clamp(20px, 2.6vw, 26px); overflow-wrap: anywhere; }
  .contact-area iframe { height: clamp(280px, 50vw, 450px); }
  .bg-partner, .bg-contacto { background-attachment: scroll; }
  /* Move WhatsApp into the header so it never covers the form or page text. */
  .wp-fijo {
    width: 44px; height: 44px; padding: 10px; top: 17px; bottom: auto;
    right: max(75px, calc((100vw - 720px) / 2 + 65px)); z-index: 1000;
  }
  .canvas-open .wp-fijo, .canvas-open #scrollUp { visibility: hidden; }
  #scrollUp { display: none !important; }
}

@media (min-width: 576px) and (max-width: 767px) {
  .wp-fijo { right: max(75px, calc((100vw - 540px) / 2 + 65px)); }
}

@media (max-width: 767px) {
  /* Restore meaningful line breaks in product descriptions. */
  br { display: revert; }
  .service-area h2, .section-heading h2 { overflow-wrap: anywhere; }
  .service-area .btn { max-width: 100%; }
  .service-area .btn + .btn { margin-left: 0; }
  .productos { padding-bottom: 60px; }
  .productos .custom-arrow { top: auto; bottom: 0; transform: none; }
  .productos .slick-prev { left: calc(50% - 52px); }
  .productos .slick-next { right: calc(50% - 52px); }
  .single-screenshot > img { max-width: 100%; width: 100%; }
  .about-page .about-hero { padding-top: 120px; }
  .about-hero h1 { overflow-wrap: anywhere; }
  .about-hero-actions .btn { min-width: 0; }
  .footer-top { padding-bottom: 20px; }
}

@media (max-width: 359px) {
  .navbar-brand img { height: 42px; }
  .welcome-intro h1 { font-size: 1.85rem; }
  .about-panel, .about-founder-panel { padding-inline: 20px; }
}

.submission-fallback { overflow-wrap: anywhere; }
@media (max-width: 575px) {
  .submission-fallback { padding: 48px 20px; }
  .submission-fallback h1 { font-size: 2rem; }
}
