/*
 * Overrides del sitio — debe cargarse al final del <head> (después de master.css).
 * Anula estilos legacy que Next.js no puede sobrescribir solo con globals.css.
 */

:root {
  --site-container-max: 1320px;
}

/* Evita scroll animado al cambiar de ruta (home slides → blog, etc.). */
html {
  scroll-behavior: auto !important;
}

/* Oculta el salto visual mientras se resetea scroll tras navegación SPA. */
html.scroll-resetting {
  overflow: hidden !important;
  scroll-behavior: auto !important;
}

/* Montserrat en el sitio público — anula Proxima Nova legacy en páginas nuevas */
.dvpage.q2b-font-montserrat,
body.q2b-font-montserrat .dvpage {
  font-family: Montserrat, sans-serif;
}

.dvpage.q2b-font-montserrat :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  a,
  span,
  li,
  label,
  button,
  input,
  textarea,
  select
) {
  font-family: inherit;
}

/*
 * Menú 2026: la cabecera se estila en SiteHeader.module.css (clases hasheadas,
 * fuera del alcance de master.css). Aquí ya no se necesitan overrides de menú.
 */

/*
 * masterv2_animated.css: form { height:100%; overflow:auto } pensado para body>form ASP.NET.
 * En Next los <form> del blog/buscador/contacto heredan eso y desplazan el scroll.
 */
.dvpage form {
  height: auto !important;
  overflow: visible !important;
  max-height: none !important;
}

/* Hero monitor home — pantalla completa (cabecera flota encima) */
.home-monitor-hero {
  height: 70dvh !important;
  min-height: 70dvh !important;
  margin-top: 0 !important;
}

.home-monitor-hero__scene,
.home-monitor-hero__scene > * {
  height: 100% !important;
  min-height: 100% !important;
}

.home-monitor-hero__scene canvas {
  touch-action: pan-y;
}

@media (max-width: 768px) {
  .home-monitor-hero--has-mobile-image .home-monitor-hero__scene,
  .home-monitor-hero--show-mobile-image .home-monitor-hero__scene {
    display: none !important;
  }

  .home-monitor-hero--has-mobile-image .home-monitor-hero__mobile-image,
  .home-monitor-hero--show-mobile-image .home-monitor-hero__mobile-image {
    display: block !important;
  }
}

/* Blog — cuerpo del artículo: anula master.css `p { font-size: 13px }` */
.blog-post-page .blog-post-body__content p:not(.blog-post-sidebar__cta-label):not(.blog-post-sidebar__cta-text),
.blog-post-page .blog-post-body__content li,
.blog-post-page .blog-post-body__content .p-subtitle {
  font-size: clamp(15px, 14px + 0.35vw, 17px) !important;
  line-height: 1.75 !important;
}

@media (min-width: 992px) {
  .blog-post-page .blog-post-body__content p:not(.blog-post-sidebar__cta-label):not(.blog-post-sidebar__cta-text),
  .blog-post-page .blog-post-body__content li,
  .blog-post-page .blog-post-body__content .p-subtitle {
    font-size: 17px !important;
  }
}

/* Blog — CTA inline y lateral: anula master.css `p` / `a { font-size: 13px }` */
.blog-post-page .blog-post-sidebar__cta.blog-post-inline-cta .blog-post-sidebar__cta-label,
.blog-post-page .blog-post-sidebar__cta:not(.blog-post-sidebar__cta--aside) .blog-post-sidebar__cta-label {
  font-size: clamp(11px, 10px + 0.25vw, 12px) !important;
  line-height: 1.35 !important;
}

.blog-post-page .blog-post-sidebar__cta.blog-post-inline-cta .blog-post-sidebar__cta-text,
.blog-post-page .blog-post-sidebar__cta:not(.blog-post-sidebar__cta--aside) .blog-post-sidebar__cta-text {
  font-size: clamp(21px, 20px + 0.35vw, 25px) !important;
  line-height: 1.45 !important;
}

.blog-post-page .blog-post-sidebar__cta--aside .blog-post-sidebar__cta-label {
  font-size: clamp(21px, 20px + 0.35vw, 25px) !important;
  line-height: 1.3 !important;
}

.blog-post-page .blog-post-sidebar__cta--aside .blog-post-sidebar__cta-text {
  font-size: clamp(12px, 11px + 0.25vw, 14px) !important;
  line-height: 1.55 !important;
}

.blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn,
.blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:link,
.blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:visited,
.blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:hover,
.blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:active {
  font-size: clamp(12px, 11px + 0.25vw, 14px) !important;
}

@media (min-width: 992px) {
  .blog-post-page .blog-post-sidebar__cta.blog-post-inline-cta .blog-post-sidebar__cta-label,
  .blog-post-page .blog-post-sidebar__cta:not(.blog-post-sidebar__cta--aside) .blog-post-sidebar__cta-label {
    font-size: 12px !important;
  }

  .blog-post-page .blog-post-sidebar__cta.blog-post-inline-cta .blog-post-sidebar__cta-text,
  .blog-post-page .blog-post-sidebar__cta:not(.blog-post-sidebar__cta--aside) .blog-post-sidebar__cta-text {
    font-size: 25px !important;
  }

  .blog-post-page .blog-post-sidebar__cta--aside .blog-post-sidebar__cta-label {
    font-size: 25px !important;
  }

  .blog-post-page .blog-post-sidebar__cta--aside .blog-post-sidebar__cta-text,
  .blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn,
  .blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:link,
  .blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:visited,
  .blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:hover,
  .blog-post-page .blog-post-sidebar__cta a.blog-post-sidebar__cta-btn:active {
    font-size: 14px !important;
  }
}

/* Blog — artículos relacionados: anula master.css en label, título y cards */
.blog-post-page .blog-post-related__label {
  font-size: clamp(11px, 10px + 0.35vw, 13px) !important;
}

.blog-post-page .blog-post-related__title {
  font-size: clamp(24px, 22px + 0.5vw, 30px) !important;
}

.blog-post-page .blog-post-related .blog-article-card__title,
.blog-post-page .blog-post-related .blog-article-card__title a {
  font-size: clamp(14px, 13px + 0.25vw, 16px) !important;
}

.blog-post-page .blog-post-related .blog-article-card__meta {
  font-size: clamp(11px, 10px + 0.25vw, 12px) !important;
}

.blog-post-page .blog-post-related .blog-article-card__link,
.blog-post-page .blog-post-related .blog-article-card__link:link,
.blog-post-page .blog-post-related .blog-article-card__link:visited,
.blog-post-page .blog-post-related .blog-article-card__link:hover,
.blog-post-page .blog-post-related .blog-article-card__link:active {
  font-size: clamp(11px, 10px + 0.25vw, 13px) !important;
}

@media (min-width: 992px) {
  .blog-post-page .blog-post-related__label {
    font-size: 13px !important;
  }

  .blog-post-page .blog-post-related__title {
    font-size: 30px !important;
  }

  .blog-post-page .blog-post-related .blog-article-card__title,
  .blog-post-page .blog-post-related .blog-article-card__title a {
    font-size: 16px !important;
  }

  .blog-post-page .blog-post-related .blog-article-card__meta {
    font-size: 12px !important;
  }

  .blog-post-page .blog-post-related .blog-article-card__link,
  .blog-post-page .blog-post-related .blog-article-card__link:link,
  .blog-post-page .blog-post-related .blog-article-card__link:visited,
  .blog-post-page .blog-post-related .blog-article-card__link:hover,
  .blog-post-page .blog-post-related .blog-article-card__link:active {
    font-size: 13px !important;
  }
}

/* Control reutilizable .q2b-latest-blog — anula master.css `p` / `a` / `h2` / `h3` */
.q2b-latest-blog__label {
  font-size: clamp(11px, 10px + 0.35vw, 13px) !important;
}

.q2b-latest-blog__title {
  font-size: clamp(24px, 22px + 0.5vw, 32px) !important;
}

.q2b-latest-blog__card-title,
.q2b-latest-blog__card-title a {
  font-size: clamp(14px, 13px + 0.25vw, 16px) !important;
}

.q2b-latest-blog__card-meta {
  font-size: clamp(11px, 10px + 0.25vw, 12px) !important;
  line-height: 1.45 !important;
}

.q2b-latest-blog__card-link,
.q2b-latest-blog__card-link:link,
.q2b-latest-blog__card-link:visited,
.q2b-latest-blog__card-link:hover,
.q2b-latest-blog__card-link:active {
  font-size: clamp(11px, 10px + 0.35vw, 13px) !important;
}

@media (min-width: 992px) {
  .q2b-latest-blog__label {
    font-size: 13px !important;
  }

  .q2b-latest-blog__title {
    font-size: 32px !important;
  }

  .q2b-latest-blog__card-title,
  .q2b-latest-blog__card-title a {
    font-size: 16px !important;
  }

  .q2b-latest-blog__card-meta {
    font-size: 12px !important;
  }

  .q2b-latest-blog__card-link,
  .q2b-latest-blog__card-link:link,
  .q2b-latest-blog__card-link:visited,
  .q2b-latest-blog__card-link:hover,
  .q2b-latest-blog__card-link:active {
    font-size: 13px !important;
  }
}

/* Control reutilizable .q2b-tech — anula master.css */
.q2b-tech__label {
  font-size: clamp(11px, 10px + 0.35vw, 13px) !important;
}

.q2b-tech__title {
  font-size: clamp(24px, 22px + 0.5vw, 32px) !important;
}

.q2b-tech__subtitle {
  font-size: clamp(15px, 14px + 0.35vw, 17px) !important;
  line-height: 1.6 !important;
}

.q2b-tech__card-title {
  font-size: clamp(16px, 15px + 0.35vw, 19px) !important;
}

.q2b-tech__card-text {
  font-size: clamp(12px, 11px + 0.25vw, 14px) !important;
  line-height: 1.55 !important;
}

.q2b-tech__tag {
  font-size: clamp(11px, 10px + 0.25vw, 12px) !important;
}

@media (min-width: 992px) {
  .q2b-tech__label {
    font-size: 13px !important;
  }

  .q2b-tech__title {
    font-size: 32px !important;
  }

  .q2b-tech__subtitle {
    font-size: 17px !important;
  }

  .q2b-tech__card-title {
    font-size: 19px !important;
  }

  .q2b-tech__card-text {
    font-size: 14px !important;
  }

  .q2b-tech__tag {
    font-size: 12px !important;
  }
}

/* Home — CTA reutilizable: anula master.css `h2` / `p` / `a { font-size: 13px }` */
.home-cta #home-cta-title {
  font-size: clamp(28px, 24px + 1vw, 40px) !important;
}

.home-cta .container p {
  font-size: clamp(15px, 14px + 0.35vw, 17px) !important;
  line-height: 1.55 !important;
}

.home-cta .container a {
  font-size: clamp(13px, 12px + 0.25vw, 15px) !important;
}

@media (min-width: 992px) {
  .home-cta #home-cta-title {
    font-size: 40px !important;
  }

  .home-cta .container p {
    font-size: 17px !important;
  }

  .home-cta .container a {
    font-size: 15px !important;
  }
}

/* Studio — «Cómo trabajamos»: anula master.css en label, título y cards */
.studio-page .studio-process__label {
  font-size: clamp(11px, 10px + 0.35vw, 13px) !important;
}

.studio-page .studio-process__title {
  font-size: clamp(24px, 22px + 0.5vw, 32px) !important;
}

.studio-page .studio-process__card-title {
  font-size: clamp(15px, 14px + 0.35vw, 17px) !important;
}

.studio-page .studio-process__card-text {
  font-size: clamp(12px, 11px + 0.25vw, 14px) !important;
  line-height: 1.55 !important;
}

@media (min-width: 992px) {
  .studio-page .studio-process__label {
    font-size: 13px !important;
  }

  .studio-page .studio-process__title {
    font-size: 32px !important;
  }

  .studio-page .studio-process__card-title {
    font-size: 17px !important;
  }

  .studio-page .studio-process__card-text {
    font-size: 14px !important;
  }
}

/* Contacto / Empleo / Studio — cabecera anclada arriba (fondo unificado en @media desktop). */
.dvpage:has(.contacto-page) header,
.dvpage:has(.empleo-page) header,
.dvpage:has(.studio-page) header {
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
}

/* Footer legacy (Q2BMaster.master) — utilidades del tema Techno no incluidas en master.css */
#footerMaster a,
#footerMaster a:link,
#footerMaster a:visited {
  color: #212121 !important;
  font-size: 16px;
}

#footerMaster a:hover,
#footerMaster a:active {
  color: #000 !important;
}

#footerMaster.footer-middle .footer-bottom.mt-70 {
  margin-top: 70px;
}

#footerMaster .footer-bottom-content-copy p {
  margin: 0;
}

#footerMaster .footer-bottom-right {
  text-align: right;
}

#footerMaster .footer-bottom-right-text {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 24px;
}

#footerMaster .footer-bottom-right-text a {
  color: #212121;
  text-decoration: none;
}

#footerMaster .footer-bottom-right-text a:hover {
  color: #000;
  text-decoration: underline;
}

#footerMaster .footer-bottom-logo-WhatsApp span {
  margin-left: 10px;
  font-size: 16px;
  line-height: 1.3;
}

#footerMaster .menu-quick-link-container.ml-4 {
  margin-left: 1.5rem;
}

@media (max-width: 767px) {
  /* En móvil el pie se centra por completo (logo, descripción, enlaces y textos legales). */
  #footerMaster .footer-bottom-right {
    text-align: center;
    margin-top: 12px;
  }

  #footerMaster .footer-bottom-right-text {
    justify-content: center;
  }

  #footerMaster .menu-quick-link-container.ml-4 {
    margin-left: 0;
  }

  #footerMaster .widgets-company-info,
  #footerMaster .company-info-desc,
  #footerMaster .footer-bottom-content,
  #footerMaster .footer-bottom-content-copy {
    text-align: center;
  }

  #footerMaster .footer-bottom-logo,
  #footerMaster .footer-bottom-logo-WhatsApp a {
    display: flex;
    justify-content: center;
  }

  /* Las listas de enlaces usan flex con guion decorativo (::before): se centran horizontalmente. */
  #footerMaster ul {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  #footerMaster ul li {
    justify-content: center;
  }
}

/* Páginas legales — paridad InfomacionLegal / PoliticaPrivacidad / PoliticaCookie.aspx */
.legal-page.contentPage {
  display: block !important;
  position: relative !important;
  top: auto !important;
  left: auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 50vh;
  background: #fff;
}

.legal-page .box-header {
  display: block;
  height: var(--site-header-height, 71px);
}

.legal-page .dvhead h1 {
  font-family: Montserrat, sans-serif;
  font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  font-weight: 700;
}

.legal-page .dvlegal {
  max-width: var(--site-container-max, 1320px);
  width: 100%;
  margin: 20px auto 48px;
  padding: 0 clamp(16px, 3vw, 24px);
  box-sizing: border-box;
}

.legal-page .dvlegal p,
.legal-page .dvlegal li {
  font-size: 16px;
  line-height: 1.55;
  color: #212121;
  margin: 0 0 12px;
}

.legal-page .dvlegal ul {
  margin: 0 0 16px;
  padding-left: 24px;
}

.legal-page .dvlegal h3.colorblack {
  color: #000;
  font-weight: 700;
  font-size: 21px;
  margin: 28px 0 12px;
}

.legal-page .dvlegal a {
  color: #103184;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal-page .dvlegal a:hover {
  color: #370081;
}

@media (max-width: 991px) {
  .legal-page .dvlegal {
    padding: 0 16px 36px;
  }

  .legal-page .dvlegal h3.colorblack {
    font-size: 18px;
  }
}

/* Legal — footer y scroll visibles (master.js añadía no-scroll en desktop) */
.dvpage:has(.legal-page) #footerMaster,
.dvpage:has(.legal-page) ~ #footerMaster,
body.no-scroll .dvpage:has(.legal-page) #footerMaster {
  display: block !important;
  position: relative !important;
  visibility: visible !important;
}

body.no-scroll:has(.legal-page) {
  height: auto !important;
  min-height: 100vh;
  overflow-y: auto !important;
}

/* ── Header móvil 2026: solo queda la variable de altura y el offset del hero ── */
@media (max-width: 1000px) {
  :root {
    --site-header-height: 56px;
  }

  .home-hero-overlay {
    padding-top: calc(56px + 12px) !important;
  }
}

/* Servicios V2 — overrides locales (grid intro + enlaces sin azul legacy) */
.servicios-page .servicios-grid-section__intro {
  position: relative !important;
  height: auto !important;
  z-index: 2 !important;
  width: 100%;
}

.why-q2b-section p a,
.why-q2b-section p a:link,
.why-q2b-section p a:visited,
.why-q2b-section p a:hover,
.why-q2b-section p a:active,
.why-q2b-section p a:focus,
.why-q2b-section p a:focus-visible {
  color: #6700f7 !important;
  font-weight: 600;
  text-decoration: underline !important;
  font-size: inherit;
}

.servicios-page .testimonials-section a[class*="linkItem"],
.servicios-page .testimonials-section a[class*="linkItem"]:link,
.servicios-page .testimonials-section a[class*="linkItem"]:visited,
.servicios-page .testimonials-section a[class*="linkItem"]:hover,
.servicios-page .testimonials-section a[class*="linkItem"]:active,
.servicios-page .testimonials-section a[class*="linkItem"]:focus,
.servicios-page .testimonials-section a[class*="linkItem"]:focus-visible {
  color: #6700f7 !important;
  text-decoration: none !important;
  font-size: 13px;
  font-weight: 600;
}
