/* ARCHIVO GENERADO — no lo edites a mano.
   Lo arma construir-css.mjs uniendo, en este orden:
     assets/css/modulos/base.css
     assets/css/modulos/botones.css
     assets/css/modulos/navegacion.css
     assets/css/modulos/adaptable.css
     assets/css/modulos/footer.css
     assets/css/modulos/whatsapp.css
     assets/css/modulos/legales.css
     assets/css/modulos/movil.css
   Para cambiar un estilo, editá el módulo que corresponda y volvé a correr:
     node construir-css.mjs */

/* ATech — BASE — capas, variables (:root), reset, utilidades, .shell, .skip, la biblioteca de símbolos SVG
   y la tipografía de h1/h2/h3. Lo carga toda página del sitio y va siempre primero:
   el orden de @layer y las variables tienen que existir antes que el resto.
   Origen: bloque del antiguo styles.css (líneas 1-232, 475-503). */
/* ATech — estilos del sitio. Sin frameworks: la base y las pocas utilidades están al inicio. */
/* ============================================================
   BASE + UTILIDADES (reemplazan a Tailwind por CDN, que pesaba ~270 KB de JS).
   Son exactamente las reglas de Tailwind v4 que la página usaba, en las mismas capas:
   los estilos de este archivo fuera de capas siguen teniendo prioridad.
   Si agregás una clase utilitaria nueva en el HTML, definila acá en @layer utilities.
   ============================================================ */

/* ── Tipografías, alojadas en el propio sitio ──
   Antes venían de api.fontshare.com: eso agregaba una hoja de estilo bloqueante en otro dominio
   (DNS + TLS + descarga) antes de poder pintar, y los archivos de fuente llegaban después de eso.
   Sirviéndolas desde acá, la conexión ya está abierta y empiezan a bajar apenas se lee este CSS.
   Para actualizarlas: bajá el .woff2 de Fontshare y reemplazá el archivo en assets/fonts/. */
@font-face {
  font-family:"General Sans";
  src:url(/assets/fonts/general-sans-600.woff2) format("woff2");
  font-weight:600; font-style:normal; font-display:swap
}
@font-face {
  font-family:"Synonym";
  src:url(/assets/fonts/synonym-400.woff2) format("woff2");
  font-weight:400; font-style:normal; font-display:swap
}
@font-face {
  font-family:"Tanker";
  src:url(/assets/fonts/tanker-400.woff2) format("woff2");
  font-weight:400; font-style:normal; font-display:swap
}

@layer theme, base, components, utilities;

@layer base {
  *,::after,::before,::backdrop,::file-selector-button {
    box-sizing:border-box;
    margin:0;
    padding:0;
    border:0 solid
  }
  html,:host {
    line-height:1.5;
    -webkit-text-size-adjust:100%;
    tab-size:4;
    font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
    font-feature-settings:normal;
    font-variation-settings:normal;
    -webkit-tap-highlight-color:transparent
  }
  hr {
    height:0;
    color:inherit;
    border-top-width:1px
  }
  abbr:where([title]) {
    -webkit-text-decoration:underline dotted;
    text-decoration:underline dotted
  }
  h1,h2,h3,h4,h5,h6 {
    font-size:inherit;
    font-weight:inherit
  }
  a {
    color:inherit;
    -webkit-text-decoration:inherit;
    text-decoration:inherit
  }
  b,strong {
    font-weight:bolder
  }
  code,kbd,samp,pre {
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
    font-size:1em
  }
  small {
    font-size:80%
  }
  sub,sup {
    font-size:75%;
    line-height:0;
    position:relative;
    vertical-align:baseline
  }
  sub {
    bottom:-.25em
  }
  sup {
    top:-.5em
  }
  table {
    text-indent:0;
    border-color:inherit;
    border-collapse:collapse
  }
  :-moz-focusring {
    outline:auto
  }
  progress {
    vertical-align:baseline
  }
  summary {
    display:list-item
  }
  ol,ul,menu {
    list-style:none
  }
  img,svg,video,canvas,audio,iframe,embed,object {
    display:block;
    vertical-align:middle
  }
  img,video {
    max-width:100%;
    height:auto
  }
  button,input,select,optgroup,textarea,::file-selector-button {
    font:inherit;
    font-feature-settings:inherit;
    font-variation-settings:inherit;
    letter-spacing:inherit;
    color:inherit;
    border-radius:0;
    background-color:transparent;
    opacity:1
  }
  ::placeholder {
    opacity:1
  }
  @supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px) {
    ::placeholder {
      color:color-mix(in oklab,currentcolor 50%,transparent)
    }
  }
  textarea {
    resize:vertical
  }
  ::-webkit-search-decoration {
    -webkit-appearance:none
  }
  :-moz-ui-invalid {
    box-shadow:none
  }
  button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button {
    appearance:button
  }
  ::-webkit-inner-spin-button,::-webkit-outer-spin-button {
    height:auto
  }
  [hidden]:where(:not([hidden=until-found])) {
    display:none!important
  }
}

@layer utilities {
  .relative { position:relative }
  .isolate { isolation:isolate }
  .flex { display:flex }
  .grid { display:grid }
  .hidden { display:none }
  .grid-cols-1 { grid-template-columns:repeat(1,minmax(0,1fr)) }
  .flex-wrap { flex-wrap:wrap }
  .items-center { align-items:center }
  .gap-2 { gap:.5rem }
  .gap-5 { gap:1.25rem }
  .gap-8 { gap:2rem }
  .antialiased { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale }
  @media (width>=48rem) {
    .md\:flex { display:flex }
    .md\:grid-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)) }
  }
}

:root {
  --bg:#ffffff;
  --accent:#1747e6;
  --text:#0b1220;
  --muted:#5b6678;
  --line:#0f17291a;
  color-scheme:light;
  font-family:"Synonym",sans-serif;
  color:var(--text);
  background:var(--bg)
}

* {
  box-sizing:border-box
}

body {
  margin:0
}

html {
  scroll-behavior:smooth
}

a {
  color:inherit;
  text-decoration:none
}

button,input,select,textarea {
  font:inherit
}

button {
  color:inherit;
  cursor:pointer
}

button,a {
  -webkit-tap-highlight-color:transparent
}

button:disabled {
  cursor:default;
  opacity:.4
}

button:focus-visible,a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:6px
}

::selection {
  background:var(--accent);
  color:#ffffff
}

.shell {
  width:min(1440px,90%);
  margin-inline:auto
}

.skip {
  position:fixed;
  top:-80px;
  left:15px;
  padding:16px;
  background:var(--accent);
  color:#ffffff;
  z-index:120
}

.skip:focus {
  top:15px
}

/* Biblioteca de símbolos SVG: no ocupa espacio en la página. */
.svg-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
  pointer-events:none
}

h1,h2,h3 {
  font-family:"Tanker",sans-serif;
  font-weight:400;
  font-synthesis:none;
  text-transform:uppercase
}

/* Tanker ya es condensada: los títulos usan espaciado normal (anula el negativo de cada sección). */
h1,h2,h3 {
  letter-spacing:.01em!important
}

/* Subtítulos de sección (h2): General Sans Semibold, en mayúscula y minúscula como en la muestra. */
h2 {
  font-family:"General Sans",sans-serif;
  font-weight:600;
  font-synthesis:none;
  text-transform:none;
  letter-spacing:-.02em!important
}

h1 {
  font-size:clamp(44px,4.6vw,70px);
  font-weight:500;
  letter-spacing:-.025em;
  line-height:1.14;
  margin:0 0 27px
}


/* ATech — BOTONES compartidos — .button, .button-small, .button-primary, .button-arrow y su brillo.
   Los usan la portada, el pie y las páginas legales.
   Origen: bloque del antiguo styles.css (líneas 374-446). */
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border:1px solid #0f172926;
  padding:10px 11px 10px 23px;
  border-radius:7px;
  font-weight:600;
  font-size:14px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:background .2s,border-color .2s
}

.button-small {
  padding:9px 15px;
  font-size:13px;
  gap:18px
}

.button-small:hover {
  background:#0f17290a
}

.button-primary {
  background:var(--accent);
  border-color:var(--accent);
  color:#ffffff;
  min-height:56px;
  box-shadow:0 6px 30px #1747e633
}

.button-primary:before {
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-110%) skewX(-15deg);
  background:linear-gradient(90deg,transparent,#ffffff66,transparent);
  pointer-events:none
}

.button-primary:hover:before {
  animation:button-shine .8s ease-out
}

.button-primary:hover {
  background:#0f3bd1
}

.button-arrow {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  background:#ffffff24;
  border-radius:4px;
  font-size:22px;
  font-weight:400;
  transition:transform .3s
}

.button:hover .button-arrow {
  transform:rotate(45deg)
}

@keyframes button-shine {
  to {
    transform:translateX(110%) skewX(-15deg)
  }
}


/* ATech — NAVEGACIÓN — .nav, .brand, .nav-links y .nav-toggle. La marca (.brand) también la usan
   las páginas legales en su cabecera.
   Origen: bloque del antiguo styles.css (líneas 269-373). */
.nav {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  height:88px;
  padding-top:10px;
  gap:22px
}

.brand {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:25px;
  font-weight:700;
  letter-spacing:-1.2px
}

.brand svg {
  width:29px;
  height:29px;
  flex-shrink:0;
  fill:var(--accent)
}

.brand sup {
  font-size:11px;
  align-self:flex-start;
  margin-top:6px;
  letter-spacing:0
}

.nav-links {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:13px;
  color:#3b4658
}

/* Subrayado que crece al pasar por encima y queda fijo en la sección que estás mirando. */
.nav-links a {
  position:relative;
  padding-block:7px;
  transition:color .2s
}

.nav-links a::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  border-radius:2px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease
}

.nav-links a:hover,.nav-links a:focus-visible,.nav-links a[aria-current] {
  color:var(--text)
}

.nav-links a:hover::after,.nav-links a:focus-visible::after,.nav-links a[aria-current]::after {
  transform:scaleX(1)
}

/* Botón del menú: solo aparece cuando los enlaces no entran. */
.nav-toggle {
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid var(--line);
  border-radius:11px;
  background:#ffffff
}

.nav-toggle span {
  display:block;
  width:17px;
  height:2px;
  border-radius:2px;
  background:var(--text);
  transition:transform .25s ease,opacity .2s ease
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) {
  transform:translateY(7px) rotate(45deg)
}

.nav-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity:0
}

.nav-toggle[aria-expanded="true"] span:nth-child(3) {
  transform:translateY(-7px) rotate(-45deg)
}


/* ATech — ADAPTABLE — las consultas de tamaño que ajustan portada, menú e #idea, más el bloque
   global de movimiento reducido. Va después de esos módulos porque los sobrescribe.
   Origen: bloque del antiguo styles.css (líneas 1153-1479). */
@media(min-width:1600px) {
  .hero-layout {
    min-height:740px
  }
  .visual {
    height:650px
  }
}

@media(max-width:1150px) {
  .hero-layout {
    min-height:600px;
    grid-template-columns:1fr 1.15fr
  }
  h1 {
    font-size:clamp(40px,5vw,52px)
  }
  .visual {
    height:530px
  }
  .visual-area {
    margin-left:-15px
  }
  .notification .card-inner {
    padding:12px
  }
  .order {
    left:-4%;
    top:31%
  }
  .message {
    right:-2%;
    top:12%
  }
  .notification strong {
    font-size:11px
  }
  .notification small {
    font-size:6px
  }
  .notification p {
    font-size:8px
  }
  .sales {
    width:156px;
    bottom:17%
  }
  .sales-value strong {
    font-size:37px
  }
  .hero-actions {
    gap:16px
  }
  .feature-content {
    padding:21px
  }
  .feature-content h3 {
    font-size:18px
  }
}

@media(max-width:800px) {
  .nav {
    height:70px;
    padding-top:6px
  }
  .nav {
    display:flex;
    position:relative;
    justify-content:flex-start;
    gap:12px
  }
  .nav-toggle {
    display:flex;
    margin-left:auto
  }
  /* En celular los enlaces bajan en un panel bajo el menú. */
  .nav-links {
    position:absolute;
    left:0;
    right:0;
    top:calc(100% - 2px);
    display:grid;
    gap:2px;
    padding:7px;
    font-size:15px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:15px;
    box-shadow:0 26px 54px -26px #0f172959;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:opacity .2s ease,transform .2s ease,visibility .2s;
    z-index:30
  }
  .nav-links[data-open="true"] {
    opacity:1;
    visibility:visible;
    transform:none
  }
  .nav-links a {
    padding:13px 14px;
    border-radius:10px
  }
  .nav-links a:hover,.nav-links a:focus-visible,.nav-links a[aria-current] {
    background:#f3f6fd
  }
  .nav-links a::after {
    left:14px;
    right:auto;
    bottom:9px;
    width:18px
  }
  .brand {
    font-size:23px
  }
  .hero-layout {
    grid-template-columns:1fr;
    padding-top:16px;
    gap:0
  }
  .hero-copy {
    padding-bottom:0
  }
  h1 {
    font-size:clamp(38px,9.6vw,62px)
  }
  .intro {
    max-width:430px;
    font-size:14px
  }
  .visual-area {
    margin:25px -2% 0
  }
  .visual {
    height:550px
  }
  .message {
    top:8%;
    right:3%
  }
  .order {
    top:29%;
    left:3%
  }
  .sales {
    width:175px;
    bottom:11%;
    right:4%
  }
  .notification small {
    font-size:7px
  }
  .notification strong {
    font-size:13px
  }
  .notification p {
    font-size:9px
  }
  .notification .card-inner {
    padding:15px
  }
  .approach-inner {
    padding-block:70px
  }
  .section-heading {
    grid-template-columns:1fr;
    gap:0
  }
  .feature-grid {
    grid-template-columns:1fr;
    margin-top:35px
  }
  .feature-card {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .feature-content {
    border-left:1px solid var(--line);
    border-top:0;
    display:flex;
    justify-content:center;
    flex-direction:column
  }
  .feature-art {
    height:auto;
    min-height:260px
  }

  .contact h2 {
    letter-spacing:-.02em
  }
}

@media(max-width:500px) {
  .shell {
    width:89%
  }
  .visual {
    height:430px
  }
  .message {
    top:7%;
    right:0
  }
  .order {
    top:31%;
    left:-1%
  }
  .sales {
    bottom:10%;
    right:0;
    width:144px
  }
  .notification .card-inner {
    padding:11px
  }
  .notification strong {
    font-size:11px
  }
  .notification small {
    font-size:6px
  }
  .notification p {
    font-size:8px
  }
  .card-icon {
    width:27px;
    height:30px
  }
  .avatar {
    width:28px;
    height:28px
  }
  .message .card-inner {
    gap:9px
  }
  .sales-value strong {
    font-size:37px
  }
  .sales p {
    font-size:7px
  }
  .sales-chart {
    height:30px
  }
  .feature-card {
    grid-template-columns:1fr
  }
  .feature-art {
    height:240px;
    min-height:0
  }
  .feature-content {
    border-left:0;
    border-top:1px solid var(--line);
    padding:25px
  }
  .feature-content p {
    max-width:none
  }
  .fallback {
    top:30%
  }
  .fallback-screen {
    padding:11px;
    border-width:7px
  }
  .fallback-screen p {
    font-size:7px
  }
  .fallback-screen small {
    font-size:5px
  }
  .fallback-screen strong {
    font-size:24px
  }
  .fallback-phone strong {
    font-size:11px
  }
  .fallback-phone {
    padding:9px 5px
  }
  .fallback-phone i {
    margin-top:9px
  }
  .fallback-base {
    height:40px
  }
}

@media(max-width:360px) {
  h1 {
    font-size:34px
  }
  .visual {
    height:395px
  }
  .hero-actions {
    gap:15px
  }
  .order .card-inner {
    gap:7px
  }
  .message strong {
    font-size:10px
  }
  .sales {
    width:130px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}

/* CONVERSACIÓN: celular real (assets/phone.webp) con un chat encima. Los globos desbordan el marco a propósito.
   La pantalla se ubica por porcentaje sobre la imagen (795×1639): x 6.16% · y 2.56% · 87.7% × 94.9%.
   Las unidades cqw escalan tipografía y radios con el ancho del celular.
   La sección ocupa todo el ancho (es la que se fija con ScrollTrigger); el contenido va en .conversation-inner. */

/* ATech — PIE DEL SITIO — columnas, contactos y barra legal. La clase .footer-legal también aparece
   en el pie de las páginas legales.
   Origen: bloque del antiguo styles.css (líneas 1829-2049). */
/* FOOTER: marca + cuatro columnas (explorar, horarios, contacto, ubicación) y barra legal. */
.site-footer {
  background:linear-gradient(180deg,#1747e6,#1239c4)
}

.footer-main {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));
  gap:40px 32px;
  padding-block:80px 64px
}

.footer-logo {
  display:inline-block;
  font:400 30px/1 "Tanker",sans-serif;
  font-synthesis:none;
  letter-spacing:-.02em;
  color:#ffffff
}

.footer-logo span {
  color:#bcd0ff
}

.footer-brand p {
  margin:22px 0 0;
  max-width:310px;
  font-size:14px;
  line-height:1.7;
  color:#dbe5ff
}

.footer-social {
  list-style:none;
  display:flex;
  gap:10px;
  margin:28px 0 0;
  padding:0
}

.footer-social a {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:1px solid #ffffff47;
  border-radius:50%;
  color:#ffffff;
  transition:color .2s,border-color .2s,background .2s
}

.footer-social a:hover {
  color:#1747e6;
  border-color:#ffffff;
  background:#ffffff
}

.footer-social svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round
}

.footer-heading {
  margin:6px 0 22px;
  font-size:11px;
  font-weight:700;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:#bcd0ff
}

.footer-col ul {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px
}

.footer-col li,.footer-col a {
  font-size:14px;
  line-height:1.5;
  color:#e6edff;
  overflow-wrap:break-word
}

.footer-col a {
  transition:color .2s
}

.footer-col a:hover {
  color:#ffffff
}

.footer-col .footer-accent {
  display:inline-block;
  margin-top:6px;
  color:#ffffff
}

.footer-col a.footer-accent:hover {
  color:#dbe5ff
}

.footer-bottom {
  border-top:1px solid #ffffff26;
  background:#0f33b3
}

.footer-bottom-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px 32px;
  padding-block:24px
}

.footer-bottom p {
  margin:0;
  font-size:13px;
  line-height:1.6;
  color:#c9d6ff
}

.footer-bottom strong {
  font-weight:600;
  color:#ffffff
}

.footer-legal {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 0;
  font-size:13px
}

.footer-legal a {
  color:#e6edff;
  transition:color .2s
}

.footer-legal a:hover {
  color:#ffffff
}

.footer-legal a+a:before {
  content:"·";
  display:inline-block;
  margin:0 12px;
  color:#ffffff66
}

@media(max-width:1150px) {
  .footer-main {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
  .footer-brand {
    grid-column:1/-1
  }
  .footer-brand p {
    max-width:480px
  }
}

@media(max-width:800px) {
  .footer-main {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:40px 24px;
    padding-block:64px 48px
  }
  .footer-bottom-inner {
    flex-direction:column;
    align-items:flex-start
  }
}

@media(max-width:360px) {
  .footer-main {
    grid-template-columns:1fr;
    gap:36px
  }
}

@media(max-width:800px) {
  .footer-legal {
    gap:10px 22px
  }
  .footer-legal a+a:before {
    content:none
  }
}

.nowrap {
  white-space:nowrap
}

@media(max-width:500px) {
  .footer-main {
    column-gap:16px
  }
  .footer-col li,.footer-col a {
    font-size:13px
  }
}

/* Footer azul: foco visible en blanco y acentos con más peso. */
.site-footer a:focus-visible {
  outline-color:#ffffff
}

.site-footer .footer-accent {
  font-weight:600
}


/* ATech — BOTÓN FLOTANTE DE WHATSAPP — aparece en la portada y en las cuatro páginas legales.
   Origen: bloque del antiguo styles.css (líneas 2983-3104). */
/* ============================================================
   BOTÓN FLOTANTE DE WHATSAPP
   Verde de WhatsApp para que se reconozca al instante. Queda debajo de la intro (z-index 90)
   y del formulario (capa superior del navegador). Respeta el notch y la barra del iPhone.
   ============================================================ */
.wa-float {
  position:fixed;
  right:max(20px,env(safe-area-inset-right));
  bottom:calc(20px + env(safe-area-inset-bottom));
  z-index:80;
  display:flex;
  align-items:center;
  gap:12px;
  animation:wa-float-in .7s cubic-bezier(.2,.8,.2,1) 1.4s both
}

.wa-float-icon {
  position:relative;
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#25d366;
  color:#ffffff;
  box-shadow:0 14px 30px -10px #128c7e99,0 2px 6px #0f172926;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s
}

.wa-float-icon svg {
  width:30px;
  height:30px;
  fill:currentColor
}

/* Pulso breve al aparecer (dos veces, no infinito). */
.wa-float-icon:before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  border:2px solid #25d366;
  opacity:0;
  animation:wa-float-ring 1.6s cubic-bezier(.2,.8,.2,1) 2.2s 2;
  pointer-events:none
}

.wa-float-label {
  padding:10px 16px;
  border:1px solid #0f17291a;
  border-radius:999px;
  background:#ffffff;
  box-shadow:0 12px 28px -12px #0f172940;
  font-size:14px;
  font-weight:650;
  color:#0b1220;
  white-space:nowrap;
  opacity:0;
  transform:translateX(8px);
  pointer-events:none;
  transition:opacity .3s,transform .35s cubic-bezier(.2,.8,.2,1)
}

.wa-float:hover .wa-float-icon,.wa-float:focus-visible .wa-float-icon {
  transform:scale(1.07);
  box-shadow:0 18px 36px -10px #128c7ecc,0 2px 6px #0f172926
}

.wa-float:hover .wa-float-label,.wa-float:focus-visible .wa-float-label {
  opacity:1;
  transform:none
}

.wa-float:focus-visible {
  outline:none
}

.wa-float:focus-visible .wa-float-icon {
  outline:3px solid #1747e6;
  outline-offset:3px
}

@keyframes wa-float-in {
  from {
    opacity:0;
    transform:translateY(24px) scale(.8)
  }
}

@keyframes wa-float-ring {
  0% {
    opacity:.8;
    transform:scale(1)
  }
  100% {
    opacity:0;
    transform:scale(1.55)
  }
}

@media(max-width:800px) {
  .wa-float {
    right:max(16px,env(safe-area-inset-right));
    bottom:calc(16px + env(safe-area-inset-bottom))
  }
  .wa-float-icon {
    width:56px;
    height:56px
  }
  .wa-float-icon svg {
    width:28px;
    height:28px
  }
  .wa-float-label {
    display:none
  }
  /* Que el botón no tape los enlaces legales al final de la página. */
  .footer-bottom-inner {
    padding-bottom:calc(24px + 72px)
  }
}


/* ATech — PÁGINAS LEGALES — cabecera, índice lateral, documento, callouts, datos y pie.
   Solo lo cargan las páginas de pages/.
   Origen: bloque del antiguo styles.css (líneas 3105-3425). */
/* ============================================================
   PÁGINAS LEGALES: terminos.html · privacidad.html · cookies.html · aviso-legal.html
   Índice fijo a la izquierda, documento en columna de lectura cómoda.
   ============================================================ */
.legal-top {
  border-bottom:1px solid var(--line);
  background:#ffffff
}

.legal-top-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:76px
}

.legal-top .brand {
  font-size:24px
}

.legal-top .brand svg {
  width:30px;
  height:30px
}

.legal {
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  align-items:start;
  gap:64px;
  padding-block:64px 104px
}

.legal-side {
  position:sticky;
  top:32px
}

.legal-nav {
  display:grid;
  gap:4px
}

.legal-nav p,.legal-toc p {
  margin-bottom:10px;
  font-size:11px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#7b879a
}

.legal-nav a {
  padding:10px 14px;
  border-radius:10px;
  font-size:14.5px;
  color:#4a5568;
  transition:background-color .2s,color .2s
}

.legal-nav a:hover {
  background:#f3f6fd;
  color:#0b1220
}

.legal-nav a[aria-current=page] {
  background:#1747e60f;
  color:var(--accent);
  font-weight:650
}

.legal-doc {
  max-width:760px
}

.legal-kicker {
  margin-bottom:16px;
  font-size:11px;
  font-weight:700;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:var(--accent)
}

.legal-doc h1 {
  font-size:clamp(34px,4.2vw,54px);
  font-weight:500;
  letter-spacing:-.025em;
  line-height:1.1
}

.legal-updated {
  margin-top:14px;
  font-size:14px;
  color:#7b879a
}

.legal-intro {
  margin-top:26px;
  font-size:18px;
  line-height:1.75;
  color:#334055
}

/* Índice de la página */
.legal-toc {
  margin-top:36px;
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f7f9fd
}

.legal-toc ol {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 24px;
  counter-reset:toc
}

.legal-toc li {
  counter-increment:toc;
  font-size:14.5px;
  line-height:1.5
}

.legal-toc li:before {
  content:counter(toc,decimal-leading-zero) " ";
  font-size:12px;
  font-weight:700;
  color:#94a0b3
}

.legal-toc a {
  color:#334055
}

.legal-toc a:hover {
  color:var(--accent)
}

.legal-doc section {
  scroll-margin-top:24px
}

.legal-doc h2 {
  margin-top:48px;
  padding-top:28px;
  border-top:1px solid var(--line);
  font-size:24px;
  font-weight:500;
  line-height:1.3;
  letter-spacing:-.01em;
  scroll-margin-top:24px
}

.legal-doc section p,.legal-doc section li {
  font-size:16px;
  line-height:1.8;
  color:#334055
}

.legal-doc section p {
  margin-top:14px
}

.legal-doc section ul {
  display:grid;
  gap:8px;
  margin-top:14px
}

.legal-doc section li {
  position:relative;
  padding-left:22px
}

.legal-doc section li:before {
  content:"";
  position:absolute;
  left:4px;
  top:.72em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent)
}

.legal-doc section a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:3px;
  overflow-wrap:anywhere
}

.legal-doc strong {
  font-weight:650;
  color:#0b1220
}

.legal-callout {
  margin-top:18px;
  padding:18px 20px;
  border-left:3px solid var(--accent);
  border-radius:0 12px 12px 0;
  background:#1747e60a;
  font-size:15.5px;
  line-height:1.75;
  color:#1c2433
}

.legal-data {
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  gap:10px 28px;
  margin-top:18px;
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f7f9fd
}

.legal-data dt {
  font-size:13px;
  font-weight:700;
  line-height:1.8;
  color:#5b6678
}

.legal-data dd {
  font-size:15.5px;
  line-height:1.6;
  color:#0b1220
}

/* Datos a completar: bien visibles para revisarlos antes de publicar. */
.legal-todo {
  padding:1px 6px;
  border-radius:5px;
  background:#fff1b8;
  font-weight:600;
  color:#5c4400
}

.legal-foot {
  border-top:1px solid var(--line);
  background:#f7f9fd
}

.legal-foot-inner {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px 32px;
  padding-block:28px
}

.legal-foot p {
  font-size:13.5px;
  color:#5b6678
}

.legal-foot strong {
  color:#0b1220
}

.legal-foot .footer-legal a {
  color:#334055
}

.legal-foot .footer-legal a:hover,.legal-foot .footer-legal a[aria-current=page] {
  color:var(--accent)
}

.legal-foot .footer-legal a+a:before {
  color:#0f172940
}

@media(max-width:900px) {
  .legal {
    grid-template-columns:1fr;
    gap:28px;
    padding-block:32px 72px
  }
  .legal-side {
    position:static
  }
  .legal-nav {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .legal-nav p {
    grid-column:1/-1
  }
}

@media(max-width:800px) {
  .legal-foot-inner {
    flex-direction:column;
    align-items:flex-start;
    padding-bottom:96px
  }
}

@media(max-width:560px) {
  .legal-toc ol {
    grid-template-columns:1fr
  }
  .legal-data {
    grid-template-columns:1fr;
    gap:2px
  }
  .legal-data dd {
    margin-bottom:10px
  }
  .legal-intro {
    font-size:16.5px
  }
}


/* ATech — CELULAR — ajustes globales de tamaño de letra y zonas cómodas para tocar. Toca varias
   secciones a la vez, así que va último en todas las páginas.
   Origen: bloque del antiguo styles.css (líneas 3598-3773). */
/* ============================================================
   CELULAR: letra legible y zonas cómodas para tocar.
   Los enlaces de listas ya tenían aire entre ellos; acá ese aire pasa a
   formar parte del área que responde al dedo. Nada de esto cambia el
   escritorio: todo vive dentro de la consulta de ancho.
   ============================================================ */
@media(max-width:800px) {
  /* Etiquetas en versalita: 11 px es el mínimo con este interletrado. */
  .eyebrow {
    font-size:11.5px;
    letter-spacing:1.4px;
    align-items:flex-start
  }
  .work-tags li {
    font-size:12px
  }
  .faq-kicker {
    font-size:12px;
    letter-spacing:2px
  }
  .feature-index {
    font-size:12px;
    letter-spacing:1.4px
  }
  .footer-heading {
    font-size:12px
  }
  #project-inquiry .pi-step-hint {
    font-size:12px
  }
  /* Índice lateral y datos de las páginas legales. */
  .legal-nav p {
    font-size:12px
  }
  .legal-nav a {
    display:flex;
    align-items:center;
    min-height:44px
  }
  .legal-doc dd a {
    display:inline-flex;
    align-items:center;
    min-height:36px
  }
  .legal-top .button-small {
    min-height:44px
  }

  /* Marca. */
  .brand {
    padding-block:6px
  }
  .footer-logo {
    padding-block:8px
  }

  /* Listas del pie: el hueco entre enlaces pasa a ser parte del enlace. */
  .footer-col ul {
    gap:0
  }
  .footer-col ul a {
    display:inline-flex;
    align-items:center;
    min-height:44px
  }
  .footer-col li {
    min-height:22px
  }
  .footer-accent {
    display:inline-flex;
    align-items:center;
    min-height:44px
  }
  .footer-legal a {
    display:inline-flex;
    align-items:center;
    min-height:44px
  }

  /* Páginas legales: índice y enlaces del texto. */
  .legal-kicker,.legal-toc p {
    font-size:12px
  }
  .legal-toc ol {
    gap:0
  }
  .legal-toc a {
    display:inline-flex;
    align-items:center;
    min-height:44px
  }
  .legal-doc p a,.legal-doc li a {
    padding-block:6px
  }
  .legal-foot .footer-legal a {
    min-height:40px
  }
}

/* ── Selector de código de país (telefono.js) ──
   El cuadro de la izquierda solo muestra bandera y código. El <select> real va encima,
   transparente y del tamaño del cuadro: así el control queda chico pero la lista
   desplegable sigue trayendo el nombre completo de cada país. */
/* La fuente "Banderas" (77 KB) la agrega telefono.js, y solo en Windows, que es el único
   sistema que no dibuja las banderas por su cuenta. En el resto no se descarga nunca. */
#project-inquiry .pi-tel {
  display:flex;
  align-items:stretch;
  gap:8px
}
#project-inquiry .pi-tel input {
  flex:1;
  min-width:0
}
#project-inquiry .pi-dial-box {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:none;
  padding:0 9px 0 12px;
  border:1px solid #d9dde1;
  border-radius:9px;
  background:#ffffff;
  line-height:1
}
#project-inquiry .pi-dial-flag {
  font-family:"Banderas","Apple Color Emoji","Segoe UI Emoji",sans-serif;
  font-size:19px
}
#project-inquiry .pi-dial-code {
  font-size:15px;
  font-variant-numeric:tabular-nums
}
#project-inquiry .pi-dial-caret {
  width:15px;
  height:15px;
  stroke:var(--muted);
  opacity:.8
}
#project-inquiry .pi-dial {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  border:0;
  padding:0;
  margin:0;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none
}
#project-inquiry .pi-dial-box:hover {
  border-color:#818991
}
#project-inquiry .pi-dial-box:has(.pi-dial:focus-visible) {
  border-color:var(--accent);
  outline:3px solid var(--accent);
  outline-offset:3px
}
/* La lista desplegable la dibuja el sistema: acá solo se asegura que se lea. */
#project-inquiry .pi-dial option {
  font-size:15px;
  color:var(--ink);
  background:#ffffff
}
@media(max-width:680px) {
  #project-inquiry .pi-dial-box {
    padding:0 7px 0 10px;
    gap:5px
  }
  #project-inquiry .pi-dial-code {
    font-size:14px
  }
}

/* ── Saltar el dibujado de lo que está lejos de la pantalla ──
   En celular la página mide más de 10.000 px: maquetar y pintar todo de una en un teléfono cuesta
   cientos de milisegundos de hilo principal antes de que la portada quede utilizable.
   `content-visibility:auto` deja que el navegador postergue ese trabajo hasta que la sección se
   acerca. Solo se aplica a las secciones que NO tienen animaciones atadas al scroll (ahí las
   mediciones de ScrollTrigger se romperían) y con un alto estimado, para que la barra de
   desplazamiento no pegue saltos. El contenido sigue en el DOM: los enlaces del menú, el buscador
   del navegador y los lectores de pantalla lo encuentran igual. */
@media(max-width:800px) {
  #trabajos, #preguntas, .site-footer {
    content-visibility:auto
  }
  #trabajos { contain-intrinsic-size:auto 1977px }
  #preguntas { contain-intrinsic-size:auto 939px }
  .site-footer { contain-intrinsic-size:auto 1235px }
}
