:root {
  --mvs-blue: #1f5d8f;
  --mvs-blue-dark: #17476e;
  --mvs-ink: #162536;
  --mvs-muted: #607084;
  --mvs-surface: #ffffff;
  --mvs-soft: #f4f7fa;
  --mvs-border: rgba(31, 93, 143, .14);
  --mvs-shadow: 0 18px 50px rgba(23, 71, 110, .11);
  --mvs-radius: 18px;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  color: var(--mvs-ink);
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
}

:focus-visible {
  outline: 3px solid rgba(31, 93, 143, .48);
  outline-offset: 4px;
  border-radius: 5px;
}

.mvs-skip-link {
  position: fixed;
  z-index: 100000;
  top: 10px;
  left: 10px;
  padding: 11px 16px;
  color: #fff;
  background: var(--mvs-blue);
  border-radius: 10px;
  box-shadow: var(--mvs-shadow);
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.mvs-skip-link:focus {
  color: #fff;
  transform: translateY(0);
}

.rd-navbar-static .rd-nav-link {
  letter-spacing: .02em;
}

.rd-navbar-brand img {
  object-fit: contain;
}

.btn {
  border-radius: 11px;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(22, 37, 54, .15);
}

.icon-box,
.pricing-table,
.post-boxed,
.thumbnail {
  border: 1px solid var(--mvs-border);
  border-radius: var(--mvs-radius);
  box-shadow: 0 12px 34px rgba(23, 71, 110, .08);
  overflow: hidden;
}

.page-title h1 {
  text-wrap: balance;
}

.section p,
.section li {
  text-wrap: pretty;
}

.mvs-elfsight-fallback {
  display: none;
  max-width: 760px;
  margin: 20px auto;
  padding: 22px;
  text-align: center;
  background: var(--mvs-soft);
  border: 1px solid var(--mvs-border);
  border-radius: var(--mvs-radius);
}

.mvs-widget-failed + .mvs-elfsight-fallback {
  display: block;
}

@media (max-width: 991px) {
  body {
    padding-top: 0;
  }

  .section-lg {
    padding-top: 54px;
    padding-bottom: 54px;
  }

  .rd-navbar-fixed .rd-navbar-panel {
    box-shadow: 0 8px 24px rgba(22, 37, 54, .1);
  }

  .rd-navbar-fixed .rd-navbar-brand img {
    max-height: 44px;
    width: auto;
  }

  .rd-navbar-fixed .rd-navbar-nav-wrap {
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .mvs-classic-home .page,
  .mvs-classic-projects .page,
  .mvs-services-page .page,
  .mvs-profile-page .page,
  .mvs-management-page .page,
  .mvs-contact-page .page {
    width: 100%;
    overflow-x: hidden;
  }

  .mvs-classic-home [class*="elfsight-app-"],
  .mvs-classic-projects [class*="elfsight-app-"],
  .mvs-services-page [class*="elfsight-app-"],
  .mvs-profile-page [class*="elfsight-app-"],
  .mvs-management-page [class*="elfsight-app-"],
  .mvs-contact-page [class*="elfsight-app-"] {
    max-width: 100%;
    overflow: hidden;
  }

  .mvs-classic-home .icon-box,
  .mvs-services-page .pricing-table {
    height: 100%;
  }

  .mvs-profile-page .img-mod-2,
  .mvs-management-page .img-mod-2 {
    position: static;
    max-width: 100%;
    transform: none;
  }

  .mvs-contact-page .section + [class*="elfsight-app-"] {
    width: min(100%, 1180px);
    margin-right: auto;
    margin-left: auto;
  }
}

@media (max-width: 575px) {
  h1,
  .h1 {
    font-size: clamp(1.8rem, 8vw, 2.45rem);
    line-height: 1.12;
  }

  h2,
  .h2 {
    font-size: clamp(1.45rem, 6.5vw, 2rem);
    line-height: 1.18;
  }

  .section-lg {
    padding-top: 38px;
    padding-bottom: 38px;
  }

  .container {
    padding-right: 18px;
    padding-left: 18px;
  }

  .btn,
  .rd-navbar-btn-wrap .btn {
    max-width: 100%;
    min-height: 44px;
    white-space: normal;
  }

  .icon-box,
  .pricing-table {
    border-radius: 15px;
  }

  .elfsight-app-bd11be9b-060d-4f4a-b572-9a771083e9e1,
  .elfsight-app-b84ac49a-39f3-4b1a-8028-b66bc4e3e777,
  .elfsight-app-731ec125-9079-495b-b52a-cef705bbaae2 {
    max-width: 100%;
    overflow: hidden;
  }

  .mvs-classic-home p,
  .mvs-classic-projects p,
  .mvs-services-page p,
  .mvs-services-page li,
  .mvs-profile-page p,
  .mvs-management-page p,
  .mvs-contact-page p {
    overflow-wrap: anywhere;
  }

  .mvs-classic-home footer .unit,
  .mvs-classic-projects footer .unit,
  .mvs-services-page footer .unit,
  .mvs-profile-page footer .unit,
  .mvs-management-page footer .unit,
  .mvs-contact-page footer .unit {
    flex-wrap: wrap;
    gap: 9px 14px;
  }

  .mvs-classic-projects .section-md {
    padding-top: 28px;
    padding-bottom: 28px;
  }

  .mvs-profile-page .section-lg,
  .mvs-management-page .section-lg,
  .mvs-contact-page .section-lg {
    padding-top: 36px;
    padding-bottom: 36px;
  }

  .mvs-profile-page .row,
  .mvs-management-page .row,
  .mvs-contact-page .row {
    margin-right: -9px;
    margin-left: -9px;
  }

  .mvs-profile-page [class*="col-"],
  .mvs-management-page [class*="col-"],
  .mvs-contact-page [class*="col-"] {
    padding-right: 9px;
    padding-left: 9px;
  }

  .mvs-contact-page [class*="elfsight-app-"] iframe {
    max-width: 100%;
  }

}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .wow {
    visibility: visible !important;
  }
}

@media print {
  .page-head,
  .preloader,
  footer,
  .mvs-skip-link,
  .btn {
    display: none !important;
  }

  body {
    color: #000;
    background: #fff;
  }
}
/* Bienvenida estacional: ligera, temporal y sin bloquear la página. */
.mvs-seasonal-welcome{position:fixed;inset:0;z-index:2147482000;overflow:hidden;pointer-events:none;opacity:1;transition:opacity .7s ease}
.mvs-seasonal-welcome.is-leaving{opacity:0}
.mvs-seasonal-veil{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.08),transparent 58%);animation:mvsSeasonVeil 5s ease both}
.mvs-seasonal-welcome>.mvs-season-particle{position:absolute;left:var(--x);top:-9vh;font-style:normal;font-size:var(--size);opacity:0;filter:blur(.2px) drop-shadow(0 7px 12px rgba(8,35,75,.14));animation:mvsSeasonFloat var(--duration) cubic-bezier(.2,.62,.22,1) var(--delay) both}
.mvs-seasonal-welcome>img.mvs-season-particle{width:var(--real-size);height:var(--real-size);object-fit:contain}
.mvs-season-christmas i{color:#c9932f}.mvs-season-easter i{color:#7d344f}.mvs-season-valentine i{color:#d75a7c}.mvs-season-summer i{color:#1598aa}.mvs-season-winter i{color:#65a9d0}.mvs-season-spring i{color:#4e9a67}.mvs-season-autumn i{color:#b9632f}.mvs-season-canarias i{color:#15569a}.mvs-season-architecture i{color:#416f9f}.mvs-season-celebration i{color:#c7932e}.mvs-season-rioja i{color:#7e2437}.mvs-season-spain i{color:#c5202f}
@keyframes mvsSeasonFloat{0%{opacity:0;transform:translate3d(0,-8vh,0) scale(.65) rotate(-18deg)}9%{opacity:.72}34%{transform:translate3d(var(--drift),34vh,0) scale(1.08) rotate(65deg)}68%{opacity:.68;transform:translate3d(0,72vh,0) scale(.94) rotate(145deg)}90%{opacity:.44}100%{opacity:0;transform:translate3d(var(--drift),116vh,0) scale(.72) rotate(235deg)}}
@keyframes mvsSeasonVeil{0%,100%{opacity:0}12%,76%{opacity:1}}
.mvs-seasonal-brand{position:relative!important;overflow:visible!important;isolation:isolate}.mvs-seasonal-brand>img{position:relative;z-index:2}
.mvs-logo-sparkles{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.mvs-logo-ornament{position:absolute!important;z-index:2!important;top:10%!important;width:18%!important;height:80%!important;object-fit:contain!important;filter:drop-shadow(0 4px 5px rgba(8,35,75,.12))!important;transform-origin:50% 50%;will-change:transform}
.mvs-logo-ornament.is-left{left:0!important;animation:mvsLogoLeft 5.8s ease-in-out infinite}
.mvs-logo-ornament.is-right{right:0!important;animation:mvsLogoRight 6.4s ease-in-out infinite}
.mvs-logo-sparkles i{position:absolute;font-style:normal;font-size:10px;line-height:1;opacity:0;animation:mvsLogoDetail 4.8s ease-in-out infinite;animation-delay:calc(var(--n)*1.15s)}
.mvs-logo-sparkles i:nth-child(1){left:2%;top:28%}.mvs-logo-sparkles i:nth-child(2){right:3%;top:35%}.mvs-logo-sparkles i:nth-child(3){right:7%;bottom:18%}
.mvs-seasonal-brand-christmas .mvs-logo-sparkles i{color:#bf8a27}.mvs-seasonal-brand-easter .mvs-logo-sparkles i{color:#78334e}.mvs-seasonal-brand-valentine .mvs-logo-sparkles i{color:#d85578}.mvs-seasonal-brand-summer .mvs-logo-sparkles i{color:#148fa1}.mvs-seasonal-brand-winter .mvs-logo-sparkles i{color:#62a6cc}.mvs-seasonal-brand-spring .mvs-logo-sparkles i{color:#4c9463}
.mvs-seasonal-brand-autumn .mvs-logo-sparkles i{color:#b45d2a}.mvs-seasonal-brand-canarias .mvs-logo-sparkles i{color:#15569a}.mvs-seasonal-brand-architecture .mvs-logo-sparkles i{color:#406f9d}.mvs-seasonal-brand-celebration .mvs-logo-sparkles i{color:#c7932e}.mvs-seasonal-brand-rioja .mvs-logo-sparkles i{color:#7e2437}.mvs-seasonal-brand-spain .mvs-logo-sparkles i{color:#c5202f}
@keyframes mvsLogoDetail{0%,100%{opacity:0;transform:translateY(5px) scale(.72)}22%,58%{opacity:.8;transform:translateY(0) scale(1)}76%{opacity:0;transform:translateY(-6px) scale(.86)}}
@keyframes mvsLogoLeft{0%,100%{transform:translate3d(0,1px,0) rotate(-1.8deg) scale(.98)}45%{transform:translate3d(1px,-2px,0) rotate(2.2deg) scale(1.035)}70%{transform:translate3d(0,-1px,0) rotate(.3deg) scale(1.01)}}
@keyframes mvsLogoRight{0%,100%{transform:translate3d(0,-1px,0) rotate(1.5deg) scale(1)}38%{transform:translate3d(-1px,2px,0) rotate(-2deg) scale(1.035)}72%{transform:translate3d(0,0,0) rotate(.5deg) scale(.985)}}
@media(prefers-reduced-motion:reduce){.mvs-seasonal-welcome{display:none!important}.mvs-logo-ornament,.mvs-logo-sparkles i{animation:none!important}}
