/* TodAps inicio y rutas — mejoras del 3-nov-2026.
   Sin bordes visibles, iconos de línea, solo transform/opacity en movimiento. */

/* Contraste AA en botones azules con texto blanco */
.td-header-cta { background-color: #0079ad !important; }
#tab-inicio .home-bio-primary { background: #0079ad !important; color: #fff !important; font-size: .875rem; }
html:not(.dark) #tab-inicio .home-bio-social { color: #00607f !important; }
html:not(.dark) #tab-inicio .home-bio-social span { color: #00607f !important; font-size: .875rem; }

/* ---------- Clientes: etiqueta y áreas táctiles ---------- */
.home-clients-title { font-size: .875rem; }
.home-clients-logos a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 6px 4px;
}

/* ---------- Servicios por necesidad ---------- */
#tab-inicio .home-service-row {
  grid-template-columns: 5.25rem minmax(0, 1fr) auto !important;
  gap: clamp(.9rem, 2vw, 1.4rem) !important;
  min-height: 104px;
  padding-block: .7rem;
}
.home-need-thumb {
  width: 5.25rem;
  height: 5.25rem;
  overflow: hidden;
  border-radius: 16px;
  background: #1c1d1f;
}
.home-need-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
#tab-inicio .home-service-copy { letter-spacing: -.02em; min-width: 0; }
#tab-inicio .home-service-copy strong {
  display: block;
  font-size: clamp(1.15rem, 2.1vw, 1.5rem);
  font-weight: 620;
  line-height: 1.18;
  letter-spacing: -.028em;
  text-wrap: balance;
}
#tab-inicio .home-service-copy small {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin-top: .4rem;
  font-size: .875rem;
  line-height: 1.3;
  letter-spacing: 0;
}
#tab-inicio .home-service-copy small svg { flex: none; width: 15px; height: 15px; stroke-width: 1.8; color: var(--td-primary, #0099d5); }
#tab-inicio .home-service-row.is-scroll-focus .home-service-copy small svg,
#tab-inicio .home-service-row:hover .home-service-copy small svg,
#tab-inicio .home-service-row:focus-visible .home-service-copy small svg { color: #fff; }
#tab-inicio .home-service-action { font-size: .875rem; }

@media (max-width: 640px) {
  #tab-inicio .home-service-row { grid-template-columns: 4rem minmax(0, 1fr) auto !important; min-height: 88px; }
  .home-need-thumb { width: 4rem; height: 4rem; border-radius: 14px; }
  #tab-inicio .home-service-action > span { display: none; }
  #tab-inicio .home-service-copy strong { font-size: 1.0625rem; }
}

/* ---------- Pruebas de todas las áreas ---------- */
.home-proof-card span { font-size: .875rem; }
.home-proof-card p { font-size: .9375rem; }
.home-proof-card strong { font-size: .875rem; }
.home-proof-sub { margin: clamp(2.25rem, 5vw, 3.5rem) 0 1.1rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1.25rem; }
.home-proof-sub .home-kicker { margin: 0; }
.home-proof-sub-note { margin: 0; color: var(--td-ink-dim, #5b6673); font-size: .9375rem; }
@media (min-width: 961px) {
  #proyectos-reales .home-proof-grid-areas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .home-proof-grid-areas .home-proof-card img { object-position: center; }
}
.home-proof-grid-areas .home-proof-card img { object-position: center; }

/* "Ver más": una tarjeta clara, no apagada */
.home-proof-more-card { background: var(--td-surface, #f4f4f1) !important; }
html.dark .home-proof-more-card { background: #2a2b2d !important; }
.home-proof-more-card h3 { font-size: 1.1875rem !important; }

/* ---------- Productos: aparición más corta ---------- */
#productos .home-product-grid > li { transition-duration: 320ms !important; }

/* ---------- Pie: áreas táctiles de 44 px ---------- */
body > footer a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding-inline: .35rem; }
body > footer .flex.justify-center.gap-6 { gap: .5rem; }
body > footer .flex.justify-center.gap-6 a { width: 44px; height: 44px; padding: 0; }
body > footer p { font-size: .875rem; }
body > footer p.mt-2 a { min-height: 44px; }

/* ---------- Cabecera: iconos de 44 px ---------- */
.td-icon-action { min-width: 44px; min-height: 44px; }

/* ---------- Celular: menú inferior y Cotizar ---------- */
.float-quote { display: none; }
@media (max-width: 1023px) {
  #mobile-nav-wrapper .home-bottom-tabs { padding-inline: 0; }
  #mobile-nav-wrapper .tab-link-mobile {
    min-height: 56px;
    padding-inline: 0 !important;
    overflow: visible;
    justify-content: center;
    white-space: nowrap;
  }
  #mobile-nav-wrapper .tab-link-mobile span {
    font-size: clamp(.75rem, 3.6vw, .875rem);
    font-weight: 550;
    letter-spacing: -.025em;
    line-height: 1.1;
    margin-top: .3rem;
    text-overflow: clip;
  }
  .float-quote {
    position: fixed;
    right: 14px;
    bottom: calc(78px + env(safe-area-inset-bottom, 0px));
    z-index: 49;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 44px;
    padding: 0 1.05rem 0 .9rem;
    border-radius: 999px;
    background: #0c0c09;
    color: #fff !important;
    font-family: Inter, "Helvetica Neue", Arial, sans-serif;
    font-size: .875rem;
    font-weight: 650;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(12, 12, 9, .2);
    opacity: 0;
    transform: translate3d(0, 10px, 0);
    pointer-events: none;
    transition: opacity 240ms ease, transform 280ms cubic-bezier(.22, 1, .36, 1);
  }
  .float-quote svg { width: 18px; height: 18px; }
  .float-quote.is-on { opacity: 1; transform: none; pointer-events: auto; }
  html.dark .float-quote { background: #f4f4f1; color: #0c0c09 !important; box-shadow: 0 8px 22px rgba(0, 0, 0, .45); }
}
@media (prefers-reduced-motion: reduce) {
  .float-quote { transition: none; }
}

/* ---------- Rutas de servicio: sin salto del pie y h1 visible ---------- */
h1.creative-title, h1.repair-title, h1.tech-title { margin-block-start: 0; }

/* La ruta activa se pinta completa desde el primer cuadro: el pie no salta (CLS). */
html[data-active-route] .tab-section:not([hidden]):not(.hidden) { content-visibility: visible !important; contain-intrinsic-size: auto 0 !important; }
html[data-active-route]:not([data-active-route="inicio"]) body > main { min-height: 100vh; }

/* Utilidades que el CSS compilado del sitio no trae */
.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
#mobile-nav-wrapper .home-bottom-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; }

/* ---------- Texto mínimo de 14 px (contenido) ---------- */
body > footer p, body > footer p a, body > footer p span { font-size: .875rem !important; }
#productos .dw-badge, #productos .dw-systech, #productos .home-product-grid p { font-size: .875rem; }
.home-chat-head { font-size: .875rem; }
.creative-eyebrow, .creative-eyebrow span, .repair-eyebrow, .repair-eyebrow span, .tech-eyebrow, .tech-eyebrow span,
.creative-assurance, .creative-assurance span, .creative-section-heading p, .creative-swipe-hint, .creative-swipe-hint span,
.repair-section-heading p, .repair-included-badge, .repair-specialty-top, .repair-dns-badge, .repair-dns-card p, .repair-dns-next,
.repair-status-help, .repair-input-label, .repair-visual figcaption, .photo-hero-media figcaption, .photo-gallery-overlay small,
.repair-card-link, .repair-text-link, .repair-location-actions a, .repair-location-actions span { font-size: .875rem !important; }

/* ---------- Áreas táctiles de 44 px en rutas ---------- */
.repair-card-link, .repair-text-link, .repair-location-actions a { display: inline-flex; align-items: center; min-height: 44px; }
.repair-scan-button { min-width: 44px; min-height: 44px; }
.tech-hero-visual figcaption, .tech-section-heading p, .repair-dns-next span, .repair-tracker p, .repair-locations p { font-size: .875rem !important; }
#productos .dw-badge, #productos .dw-systech, #productos .home-product-grid p { font-size: .875rem !important; }
.home-kicker, .home-proof-sub .home-kicker { font-size: .875rem !important; }
.photo-portfolio a:not(.photo-gallery-card) span { font-size: .875rem !important; }
body > footer button[data-tab-target] { min-height: 44px; min-width: 44px; }
@media (min-width: 1280px) {
  .td-desktop-menu span, .td-header-cta span { font-size: .875rem; }
}
.repair-auto-strip p { font-size: .875rem !important; }

/* El enlace a /dev/ conserva el aspecto de las demás pestañas del menú */
.td-site-header .td-desktop-menu > a[href="/dev/"] {
  position: relative; isolation: isolate; border-radius: 8px;
  font-weight: 550;
  --nav-accent: #0099D5; --nav-accent-readable: #006B94; --nav-accent-dark: #38BDF8; --nav-accent-rgb: 0 153 213;
}
html.dark .td-site-header .td-desktop-menu > a[href="/dev/"] { color: inherit; }
.td-site-header .td-desktop-menu > a[href="/dev/"]:hover,
.td-site-header .td-desktop-menu > a[href="/dev/"]:focus-visible { background: rgb(0 153 213 / .09) !important; color: #006B94; outline: none; }
html.dark .td-site-header .td-desktop-menu > a[href="/dev/"]:hover { color: #38BDF8; }
#mobile-nav-wrapper a.tab-link-mobile { text-decoration: none; }
#tab-inicio a.home-service-row { text-decoration: none; }
html:not(.dark) .td-site-header .td-desktop-menu > a[href="/dev/"] { color: #62666d !important; }
html:not(.dark) .td-site-header .td-desktop-menu > a[href="/dev/"]:hover,
html:not(.dark) .td-site-header .td-desktop-menu > a[href="/dev/"]:focus-visible { color: #006B94 !important; }

/* Fondo opaco: contraste estable, incluso sin desenfoque. */
#mobile-nav-wrapper > div { background: #ffffff !important; border: 0 !important; }
html.dark #mobile-nav-wrapper > div { background: #0f172a !important; }
#mobile-nav-wrapper .tab-link-mobile { color: #555b65 !important; text-decoration: none; }
html.dark #mobile-nav-wrapper .tab-link-mobile { color: #cbd5e1 !important; }
@media (max-width: 1023px) { body > main { padding-bottom: calc(80px + env(safe-area-inset-bottom)) !important; } }

/* El servicio Web navega a otra página y necesita el mismo color base. */
#tab-inicio a.home-service-row[href="/dev/"] {
  --nav-accent: #0099d5; --nav-accent-readable: #006b94;
  --nav-accent-dark: #38bdf8; --nav-accent-rgb: 0 153 213;
}
/* Una sola separación bajo la franja animada; sin márgenes acumulados. */
#tab-inicio .home-kinetic-rail { margin-bottom: 0; }
#tab-inicio .home-kinetic-rail + .dw-wrap { padding-top: 0 !important; }
#tab-inicio .home-clients { margin-top: 0; padding-top: 24px; }
/* Con movimiento reducido se conserva el color de selección, sin animarlo. */
@media (prefers-reduced-motion: reduce) {
  #tab-inicio .home-service-row.is-scroll-focus::before { opacity: .98 !important; transform: none !important; transition: none !important; }
}
