/* ==========================================================================
   Johnes & Luccas — estilos del sitio (copia fiel del sitio Wix original)

   - Escritorio (>= 980px): réplica 1:1 del layout Wix de 980px. Las medidas
     salen del DOM renderizado del original; ver docs/arquitectura.md.
   - Móvil (< 980px): replica la versión móvil de Wix, que es un layout de
     320px escalado al ancho del teléfono. Usamos --m = 1px "de Wix móvil"
     (100vw / 320, con tope) para mantener las proporciones.
   - Colores: los nombres Wix (color_11, color_14...) están al lado de cada
     variable para poder cruzar con el original.
   ========================================================================== */

/* ---------- Fuentes (self-hosted; licencias en docs/arquitectura.md) ---------- */
@font-face { font-family: "Optimus Princeps"; src: url("../fonts/optimus-princeps.woff2") format("woff2"), url("../fonts/optimus-princeps.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Anton"; src: url("../fonts/anton-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
/* "Barlow DIN" = Barlow con las métricas verticales de DIN Next W01 Light (ascent 85%,
   descent 35%, medidas en el navegador). Así el texto cae en la misma posición que en
   el original dentro de cada línea. Sin esto Barlow queda 0.15em más abajo. */
@font-face { font-family: "Barlow DIN"; src: url("../fonts/barlow-300.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; ascent-override: 85%; descent-override: 35%; line-gap-override: 0%; }
@font-face { font-family: "Barlow DIN"; src: url("../fonts/barlow-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; ascent-override: 85%; descent-override: 35%; line-gap-override: 0%; }
@font-face { font-family: "Barlow DIN"; src: url("../fonts/barlow-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; ascent-override: 85%; descent-override: 35%; line-gap-override: 0%; }
@font-face { font-family: "Barlow DIN"; src: url("../fonts/barlow-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; ascent-override: 85%; descent-override: 35%; line-gap-override: 0%; }
/* Barlow "real" (sin overrides): en el original el subtítulo del hero ya es Barlow. */
@font-face { font-family: "Barlow"; src: url("../fonts/barlow-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("../fonts/cormorant-garamond-300.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Roboto"; src: url("../fonts/roboto-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Open Sans"; src: url("../fonts/open-sans-italic-400.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Open Sans"; src: url("../fonts/open-sans-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  --c-blanco: #ffffff;
  --c-humo: #f7f7f7;            /* Wix color_11 — fondo de página, texto claro */
  --c-gris: #969c9d;            /* color_12 */
  --c-gris-medio: #656b6c;      /* color_13 — fondo sección contacto */
  --c-tinta: #333a3b;           /* color_14 — header, footer, texto */
  --c-negro: #191d1d;           /* color_15 */
  --c-celeste: #b0e6eb;         /* color_16 */
  --c-celeste-medio: #8fd1d7;   /* color_17 */
  --c-turquesa-medio: #62bbc3;  /* color_18 — bordes de botón, hover del menú */
  --c-turquesa: #00a0af;        /* color_19 — color de marca */
  --c-petroleo: #005058;        /* color_20 */
  --c-seccion-clara: #fafafa;

  /* DIN Next W01 Light (licencia Wix) -> Barlow 300: mismo ancho (±0,5%) y estilo DIN. */
  --f-texto: "Barlow DIN", "Helvetica Neue", Arial, sans-serif;
  --f-barlow: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --w-texto: 300;
  --w-texto-bold: 400;          /* "bold" de DIN Light en Wix es negrita sintética: en ancho y grosor ≈ Barlow 400 */
  --f-titulo: "Anton", Impact, "Arial Narrow", sans-serif;
  --f-logo: "Optimus Princeps", "Trajan Pro", Georgia, serif;
  --f-serif: "Cormorant Garamond", Georgia, serif;
  --f-tagline: "Roboto", Arial, sans-serif;

  --wrap: 980px;
  --ease-wix: cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: var(--wrap);
  background: var(--c-humo);
  color: var(--c-tinta);
  font: var(--w-texto) 16px/1.4 var(--f-texto);
}
h1, h2, h3, h4, h5, h6, p, ul, ol, figure { margin: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: 400; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; color: inherit; }
.wrap { position: relative; width: var(--wrap); margin: 0 auto; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 8px; top: -60px; z-index: 1000; padding: 8px 14px; background: var(--c-humo); color: var(--c-tinta); text-decoration: none; }
.skip-link:focus { top: 8px; }
:focus-visible { outline: 2px solid var(--c-turquesa); outline-offset: 2px; }

/* ==========================================================================
   Header (220px). Posiciones absolutas = coordenadas del original en el
   contenedor de 980px.
   ========================================================================== */
.site-header { position: relative; z-index: 20; height: 220px; background: var(--c-tinta); }
.site-header__inner { height: 100%; }

.header-phones { position: absolute; left: 684px; top: 3px; display: flex; align-items: flex-start; white-space: nowrap; color: var(--c-turquesa); font-size: 16px; line-height: 19px; }
.header-phones__icon { width: 26px; height: 27px; margin-right: 6px; fill: var(--c-turquesa); flex: none; }
.header-phones a { margin-top: 4px; text-decoration: none; }
.header-phones a:hover { text-decoration: underline; }

.logo { position: absolute; left: 0; top: 63px; width: 360px; height: 74px; color: var(--c-blanco); text-decoration: none; }
.logo__name { position: relative; top: 2px; display: block; height: 59px; font-family: var(--f-logo); font-size: 37px; line-height: 51.8px; letter-spacing: 2.59px; white-space: nowrap; }
.logo__name .lg { font-size: 43px; }
.logo__name .sm { font-size: 35px; }
.logo__name .amp { color: var(--c-turquesa); }
.logo__tagline { position: absolute; left: 1px; top: 53px; width: 358px; text-align: center; font: 700 15px/20px var(--f-tagline); letter-spacing: 0.9px; color: var(--c-tinta); white-space: nowrap; }
.logo__tagline span { background: var(--c-turquesa); }

/* Buscador: el original es un widget de terceros (InstantSearch+) en un iframe;
   aquí es un buscador propio sobre assets/js/search-index.js. */
.site-search { position: absolute; left: 772px; top: 89px; width: 200px; height: 30px; margin: 0; }
.site-search__input {
  width: 100%; height: 30px; margin: 0; padding: 2px 6px 2px 26px;
  border: 1px solid #d6d6d6; border-radius: 3px; background: var(--c-blanco);
  color: #4d4d4d; font: 16px/1.2 Georgia, "Times New Roman", serif;
  -webkit-appearance: none; appearance: none;
}
.site-search__input::placeholder { color: #a5a5a5; opacity: 1; }
.site-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.site-search__icon { position: absolute; left: 7px; top: 8px; width: 14px; height: 14px; color: #b9b9b9; pointer-events: none; }
.site-search__results {
  position: absolute; left: 0; right: 0; top: 32px; z-index: 40; margin: 0; padding: 4px 0; list-style: none;
  background: var(--c-blanco); border: 1px solid #d6d6d6; border-radius: 3px; box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
  max-height: 340px; overflow-y: auto;
}
.site-search__results a { display: block; padding: 7px 10px; color: var(--c-tinta); text-decoration: none; font-size: 14px; line-height: 1.3; }
.site-search__results a small { display: block; color: var(--c-gris-medio); font-size: 12px; }
.site-search__results a:hover, .site-search__results a.is-selected { background: var(--c-humo); color: var(--c-turquesa); }
.site-search__results .is-empty { padding: 7px 10px; color: var(--c-gris-medio); font-size: 14px; }

/* Menú principal: alineado a la derecha del contenedor (x=980), top 162px. */
.main-nav { position: absolute; right: 0; top: 162px; }
.main-nav__list { display: flex; list-style: none; margin: 0; padding: 0; }
.main-nav__list > li { position: relative; }
.main-nav__link {
  display: block; padding: 0 25px; border: 0; background: none; cursor: pointer;
  font: var(--w-texto) 14px/24px var(--f-texto); color: var(--c-humo); text-decoration: none; white-space: nowrap;
  transition: color .4s ease 0s;
}
.main-nav__list > li:hover > .main-nav__link,
.main-nav__list > li:focus-within > .main-nav__link,
.main-nav__link.is-active { color: var(--c-turquesa-medio); }
/* Submenú: alineado a la derecha del ítem padre, 7px bajo la barra, filas de 29px. */
.submenu { position: absolute; right: 0; top: 100%; padding-top: 7px; visibility: hidden; opacity: 0; transition: opacity .15s ease, visibility 0s linear .15s; z-index: 30; }
.has-submenu:hover > .submenu,
.has-submenu:focus-within > .submenu,
.has-submenu.is-open > .submenu { visibility: visible; opacity: 1; transition: opacity .15s ease; }
.submenu ul { list-style: none; margin: 0; padding: 0; background: var(--c-tinta); min-width: 100%; }
.submenu a { display: block; padding: 0 7px; font: var(--w-texto) 14px/29px var(--f-texto); color: var(--c-humo); text-align: center; text-decoration: none; white-space: nowrap; transition: color .4s ease; }
.submenu a:hover, .submenu a:focus-visible { color: var(--c-turquesa-medio); }
/* Mientras se redimensiona (site.js agrega .no-anim): al cruzar el breakpoint, los fundidos harían
   aparecer un instante el menú móvil o los submenús de escritorio. */
.no-anim .main-nav, .no-anim .submenu { transition: none !important; }

.menu-toggle { display: none; }

/* ==========================================================================
   Footer (369px)
   ========================================================================== */
.site-footer { background: var(--c-tinta); color: var(--c-humo); }
.site-footer__inner { height: 369px; }
.site-footer a { color: var(--c-humo); }
.to-top { position: absolute; left: 312px; top: 8px; width: 352px; height: 40px; text-decoration: none; }
.to-top__icon { position: absolute; left: 164px; top: 0; width: 28px; height: 16px; fill: var(--c-humo); transform: rotate(180deg); }
.to-top__label { position: absolute; left: 0; top: 21px; width: 100%; text-align: center; color: var(--c-blanco); font-size: 16px; line-height: 19px; }
.footer-col { position: absolute; top: 70px; font-size: 16px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col__title { font-weight: var(--w-texto-bold); line-height: 1.7; }
.footer-col ul li { line-height: 1.8; }
.footer-col--servicios { left: 0; width: 314px; }
.footer-col--otros { left: 340px; width: 168px; }
.footer-col--links { left: 509px; width: 234px; }
.footer-col--contacto { left: 780px; top: 71px; width: 198px; }
.footer-col--contacto p { line-height: 1.2; }
.footer-col--contacto .footer-col__title,
.footer-col--contacto .footer-col__label { font-weight: var(--w-texto-bold); line-height: 1.7; }
.footer-col--contacto .footer-col__label--tight { line-height: 1.6; }
.footer-col--contacto a.footer-tel { text-decoration: none; }
.footer-logo { position: absolute; left: 0; display: block; }
.footer-logo--sii { top: 46px; width: 84px; height: 58px; }
.footer-logo--sii img { width: 84px; height: 58px; object-fit: cover; }
.footer-logo--bcentral { top: 110px; width: 234px; height: 66px; }
.footer-logo--bcentral img { width: 234px; height: 66px; object-fit: cover; }
.copyright { position: absolute; left: 35px; top: 327px; width: 910px; text-align: center; font-size: 14px; line-height: 19px; }

/* Barra de acciones rápidas y botón "volver arriba": solo móvil (como en Wix). */
.quick-actions, .back-to-top { display: none; }

/* ==========================================================================
   Componentes compartidos
   ========================================================================== */
/* Botón con borde (Wix "Detalles" / "Ver Más"): borde 3px color_18, transiciones 0.4s. */
.btn-outline {
  display: flex; align-items: center; justify-content: center;
  border: 3px solid var(--c-turquesa-medio); background: transparent; color: var(--c-tinta);
  font: var(--w-texto) 16px/1.4 var(--f-texto); text-decoration: none; text-align: center;
  transition: border-color .4s ease 0s, background-color .4s ease 0s, color .4s ease 0s;
}
.btn-outline:hover { color: var(--c-turquesa-medio); }
.btn-outline--filled { background: var(--c-humo); }
.btn-outline--filled:hover { background: transparent; }

/* Fondo con parallax (Wix "Parallax"): la imagen mide max(alto sección, 100vh) y
   site.js la desplaza -0.8 × (posición de la sección en el viewport). */
.parallax { position: relative; overflow: hidden; }
.parallax__bg { position: absolute; inset: 0; background: var(--parallax-underlay, transparent); pointer-events: none; }
.parallax__img { position: absolute; left: 0; top: 0; width: 100%; height: max(var(--parallax-media-h, 100%), 100vh); object-fit: cover; opacity: var(--parallax-opacity, 1); will-change: transform; }
.parallax > :not(.parallax__bg) { position: relative; }

/* Animación de entrada "floatIn" de Wix (1200ms, sube 60px y aparece). */
@media (prefers-reduced-motion: no-preference) {
  .js .float-in:not(.is-in) { opacity: 0; }
  .js .float-in.is-in { animation: jl-float-in 1200ms 1ms var(--ease-wix) backwards; }
}
@media (prefers-reduced-motion: no-preference) {
  .js .fade-in:not(.is-in) { opacity: 0; }
  .js .fade-in.is-in { animation: jl-fade-in 1200ms 1ms var(--ease-wix) backwards; }
}
@keyframes jl-fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes jl-float-in {
  0% { opacity: 0; transform: translateY(60px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Formularios (estilo Wix: fondo color_11, borde 1px color_11, placeholder color_12) */
.form { position: relative; }
.form__field {
  display: block; width: 100%; height: 32px; margin: 0 0 5px; padding: 3px 3px 3px 5px;
  border: 1px solid var(--c-humo); border-radius: 0; background: var(--c-humo); color: var(--c-tinta);
  font: var(--w-texto) 14px/1.45 var(--f-texto); -webkit-appearance: none; appearance: none;
  transition: opacity .5s ease 0s, border .5s ease 0s, color .5s ease 0s;
}
.form__field::placeholder { color: var(--c-gris); opacity: 1; }
.form__field:invalid:not(:placeholder-shown) { border-color: #8b0000; }
textarea.form__field { height: 130px; margin-bottom: 8px; padding: 10.5px 10px 3px 5px; resize: none; }
.form__footer { display: flex; justify-content: space-between; align-items: flex-start; min-height: 32px; }
.form__status { min-height: 17px; margin-top: 0; font: 14px/17px "Helvetica Neue", Helvetica, Arial, sans-serif; color: rgb(186, 218, 85); }
.form__status.is-error { color: #ff4040; }
.form__submit {
  height: 32px; padding: 0 0; min-width: 53px; border: 0; border-radius: 0; cursor: pointer;
  background: var(--c-turquesa-medio); color: var(--c-humo); font: var(--w-texto) 16px/1.4 var(--f-texto);
  transition: background-color .4s ease 0s, color .4s ease 0s;
}
.form__submit:disabled { background: #cccccc; color: var(--c-blanco); cursor: default; }

/* ==========================================================================
   HOME (index)
   ========================================================================== */
/* Hero: sección Wix de 776px tapada 139px por la siguiente => visibles 637px. */
.home-hero { height: 637px; --parallax-underlay: rgba(0, 160, 175, .5); --parallax-opacity: .75; --parallax-media-h: 776px; }
.home-hero__box { width: 695px; margin: 158px auto 0; padding: 30px 0; background: rgba(0, 160, 175, .96); text-align: center; color: var(--c-humo); }
.home-hero__title { width: 512px; margin: 0 auto; font: 300 49px/72px var(--f-serif); }
.home-hero__sub { position: relative; top: -1.5px; width: 549px; margin: 0 auto; font: 400 20px/27px var(--f-barlow); letter-spacing: 1px; }

.home-areas { height: 755px; padding-top: 86px; background: var(--c-seccion-clara); text-align: center; }
.jl-badge { display: flex; align-items: center; justify-content: center; width: 75px; height: 75px; margin: 0 auto; padding: 0 0 2px 6px; background: var(--c-tinta); text-decoration: none; font-family: var(--f-logo); letter-spacing: 1.75px; line-height: 1; }
.jl-badge .j, .jl-badge .l { font-size: 35px; color: var(--c-gris); }
.jl-badge .amp { font-size: 30px; color: var(--c-turquesa); letter-spacing: 1.5px; }
.home-areas__title { margin-top: 49px; font: 48px/67.2px var(--f-titulo); color: var(--c-tinta); }
.area-cards { display: flex; justify-content: center; gap: 20px; margin-top: 51px; }
.area-card { position: relative; display: block; width: 220px; height: 240px; text-decoration: none; }
.area-card__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.area-card__num { position: absolute; left: -2px; right: 0; top: 32px; font: 85px/119px var(--f-titulo); }
.area-card:first-child .area-card__num { left: -4px; } /* en el original los números están 1-2px a la izquierda del centro */
.area-card__label { position: absolute; left: 0; right: 0; top: 177px; padding: 0 5px; font: var(--w-texto) 20px/20px var(--f-texto); }
.area-card--claro { color: var(--c-celeste); }
.area-card--oscuro { color: var(--c-petroleo); }
.home-areas__cta { width: 181px; height: 55px; margin: 47px auto 0; }

.home-testimonio { height: 520px; padding-top: 95px; text-align: center; color: var(--c-humo); --parallax-underlay: var(--c-turquesa); --parallax-opacity: .55; --parallax-media-h: 520px; }
.home-testimonio__text { width: 700px; margin: 0 auto; }
/* Anton 32px con line-height "normal" en Wix = 47px por línea (medido). */
.home-testimonio__text h2,
.home-testimonio__text blockquote { margin: 0; font: 32px/47px var(--f-titulo); }
.home-testimonio__text blockquote p { margin: 0; }
.home-testimonio__author { margin-top: 22.4px; font-size: 16px; line-height: 22.4px; }
.home-testimonio .btn-outline { width: 149px; height: 55px; margin: 11px auto 0; }

.home-contacto { height: 491px; margin-top: 23px; background: var(--c-gris-medio); color: var(--c-humo); }
.home-contacto .wrap { height: 100%; }
.home-contacto__title { position: absolute; left: 102px; top: 34px; font: 48px/67.2px var(--f-titulo); }
/* Interlineados del original: rótulos 20px×1.7 (Teléfono ×1.5), dirección 1.4, mail 1.6, teléfonos 1.7. */
.contact-info { position: absolute; left: 102px; top: 136px; width: 298px; font-size: 16px; line-height: 1.4; }
.contact-info .contact-info__label { color: var(--c-turquesa-medio); font-size: 20px; font-weight: var(--w-texto-bold); line-height: 1.7; }
.contact-info .contact-info__label--phone { line-height: 1.5; }
.contact-info .gap { height: 22.4px; }
.contact-info .gap--mail { height: 25.6px; }
.contact-info .contact-info__mail { line-height: 1.6; }
.contact-info__mail a { color: var(--c-humo); }
.contact-info .contact-info__phones { line-height: 1.7; }
.contact-info__phones a { color: var(--c-humo); text-decoration: none; }
.home-contacto .form { position: absolute; left: 408px; top: 171px; width: 479px; }

/* ==========================================================================
   Componentes de subpáginas
   ========================================================================== */
/* Banner: foto con velo turquesa (fondo color_19 + imagen con opacidad), monograma y título. */
.page-banner { position: relative; overflow: hidden; height: var(--banner-h, 300px); background: var(--c-turquesa); }
.page-banner__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: var(--banner-op, .53); }
.page-banner__inner { position: relative; width: var(--wrap); height: 100%; margin: 0 auto; }
.page-banner .jl-badge { position: absolute; left: var(--badge-x, 452px); top: var(--badge-y, 72px); margin: 0; }
.page-banner__title { position: absolute; left: var(--title-x, 20px); top: var(--title-y, 166px); width: 940px; text-align: center; font: 48px/67.2px var(--f-titulo); color: var(--c-humo); }
.page-banner__sub { position: absolute; left: var(--sub-x, 231px); top: var(--sub-y, 219px); width: var(--sub-w, 510px); text-align: center; font: var(--w-texto) 24px/29px var(--f-texto); color: var(--c-humo); }

/* Escenario: réplica del layout absoluto de Wix. Cada hijo .at lleva --x/--y/--w/--h
   (px medidos en el original, relativos al contenedor de 980px). En móvil pasa a flujo normal. */
.stage { position: relative; width: var(--wrap); height: var(--stage-h, auto); margin: 0 auto; }
.at { position: absolute; left: var(--x, 0px); top: var(--y, 0px); width: var(--w, auto); height: var(--h, auto); }

/* Texto enriquecido (preset font_9 de Wix: 16px / 1.4) */
.rt p, .rt li { font-size: 16px; line-height: 22.4px; }
/* Listas Wix: ul con margen 0.5em y li con 1.3em (relativos a su font-size). */
.rt ul { margin: 0 0 0 .5em; padding: 0; list-style: disc; }
.rt li { margin-left: 1.3em; }
.rt li::marker { color: var(--c-tinta); }
.rt .lbl { color: var(--c-turquesa); }
.rt .just { text-align: justify; }

/* Botón sólido turquesa (Wix: fondo color_19, hover color_17) */
.btn-solid {
  display: flex; align-items: center; justify-content: center; height: 55px;
  background: var(--c-turquesa); color: var(--c-humo); font: var(--w-texto) 16px/1.4 var(--f-texto); text-decoration: none;
  transition: background-color .4s ease 0s, color .4s ease 0s;
}
.btn-solid:hover { background: var(--c-celeste-medio); }
.btn-outline--anton { font-family: var(--f-titulo); font-weight: 400; }

/* ==========================================================================
   EQUIPO DE TRABAJO
   ========================================================================== */
.equipo-banner { --banner-h: 300px; --badge-x: 451px; --badge-y: 72px; --title-y: 166px; }
.equipo-socios { --stage-h: 1556px; }
.perfil__head h2 { font: 32px/44.8px var(--f-titulo); color: var(--c-tinta); }
.perfil__head p { font: var(--w-texto-bold) 20px/28px var(--f-texto); color: var(--c-turquesa); }
.perfil__foto { margin: 0; }
.perfil__foto > img { width: 100%; height: 100%; object-fit: cover; }
.perfil__foto::after { content: ""; position: absolute; inset: 0; background: rgba(0, 160, 175, .12); pointer-events: none; }
.perfil__linkedin { position: absolute; left: var(--li-x); top: var(--li-y); z-index: 1; width: 60px; height: 60px; }
.perfil__linkedin img { width: 60px; height: 60px; }
.equipo-rule { height: 1px; margin: 0; border: 0; background: var(--c-turquesa-medio); }
.unete__title { font: 49px/72px var(--f-titulo); color: var(--c-tinta); white-space: nowrap; }
.unete__chevron { position: absolute; left: 706px; top: 16px; width: 42px; height: 42px; fill: var(--c-tinta); }
.unete__cta { height: 67px; }
.equipo-staff { height: 958px; background: var(--c-turquesa); color: var(--c-humo); }
.equipo-staff .stage { height: 100%; }
.staff__foto { object-fit: cover; }
.staff__txt h3 { font: 32px/44.8px var(--f-titulo); }
.staff__txt p { font: var(--w-texto-bold) 20px/28px var(--f-texto); }

/* ==========================================================================
   Sección "Contáctenos hoy" (partial contacto-hoy): fondo color_18 + foto al 25%
   Se repite en varias subpáginas; solo cambia el subtítulo.
   ========================================================================== */
/* Alto y opacidad de la foto varían por página (337px/.25 o 336px/.38): vienen del partial. */
.contacto-hoy { position: relative; overflow: hidden; height: var(--ch-h, 337px); background: var(--c-turquesa-medio); color: var(--c-tinta); }
.contacto-hoy__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: var(--ch-op, .25); }
.contacto-hoy__stage { height: 100%; }
/* Anton con line-height "normal" en Wix = 1.4688em (59px -> 87px, 23px -> 33.8px). */
.contacto-hoy__title { font: 59px/87px var(--f-titulo); }
.contacto-hoy__sub { font: 23px/33.8px var(--f-titulo); }
.contacto-hoy__tel p { font: var(--w-texto-bold) 20px/24px var(--f-texto); }
.contacto-hoy__tel a { text-decoration: none; }
.form--oscuro .form__field { border-color: var(--c-tinta); }
.form--oscuro .form__submit { background: var(--c-tinta); color: var(--c-humo); }

/* ==========================================================================
   POR QUÉ ELEGIRNOS
   ========================================================================== */
.porque-banner { --banner-h: 304px; --badge-x: 453px; --badge-y: 64px; --title-y: 168px; --banner-op: .46; }
.porque-body { --stage-h: 783px; }
.porque-intro { font: 32px/47px var(--f-titulo); color: var(--c-tinta); text-align: justify; }
.porque-col-title { font: 32px/47px var(--f-titulo); color: var(--c-turquesa); text-align: justify; }
/* Estos textos no fijan line-height en Wix: "normal" de DIN = 1.2 */
.porque-items { text-align: justify; }
.porque-items h4 { font: var(--w-texto-bold) 20px/24px var(--f-texto); color: var(--c-turquesa); }
.porque-items p { font-size: 16px; line-height: 19.2px; }
.porque-line { width: 1px; margin: 0; border: 0; background: var(--c-turquesa-medio); }

/* ==========================================================================
   TESTIMONIOS
   ========================================================================== */
.testimonios-banner { --banner-h: 305px; --badge-x: 451px; --badge-y: 72px; --title-y: 169px; --banner-op: .59; }
.testimonios-banner .page-banner__img { object-position: left bottom; } /* Wix: alineación "bottom_left" */
.testimonios-cards { height: 606px; }
.testimonios-cards .stage { height: 100%; }
.tcard { margin: 0; }
.tcard--gris { background: var(--c-gris); color: var(--c-humo); --tc-name: var(--c-celeste); }
.tcard--turquesa { background: var(--c-turquesa); color: var(--c-tinta); --tc-name: var(--c-tinta); }
.tcard__name { text-align: center; color: var(--tc-name); font-size: 20px; line-height: 24px; }
.tcard__name strong { font-weight: var(--w-texto-bold); }
.tcard__quote { margin: 0; text-align: center; font-size: 19px; line-height: 22.8px; }
.tcard__mark { fill: var(--tc-name); transform: rotate(180deg); } /* en Wix el vector está rotado 180° (comillas de cierre) */

/* ==========================================================================
   SERVICIOS (servicios-contabilidad)
   Tres columnas a todo el ancho (como el "column strip" de Wix); el contenido de
   cada una mide 326px y va centrado en su columna.
   ========================================================================== */
.servicios-banner { --banner-h: 336px; --badge-x: 451px; --badge-y: 72px; --title-x: 16px; --title-y: 152px; --banner-op: .55; }
.servicios-cols { display: grid; grid-template-columns: repeat(3, 1fr); height: 657px; margin: 49px 0 42px; }
.scol { position: relative; }
.scol--gris { background: #e3e6e8; }
.scol--claro { background: var(--c-humo); }
.scol__inner { position: absolute; top: 0; left: 50%; width: 326px; height: 100%; margin-left: -163px; text-align: center; }
.scol__inner .at { left: 0; right: 0; width: auto; }
.scol__num { font: 60px/88px var(--f-titulo); color: var(--c-gris); }
.scol__title { font: 32px/47px var(--f-titulo); }
.scol__title a { color: var(--c-turquesa); text-decoration: none; }
.scol__tag p { font-size: 20px; line-height: 24px; color: var(--c-tinta); }
.scol__tag p.s19 { font-size: 19px; line-height: 22.8px; }
.scol__tag p.t { font-size: 18px; line-height: 21.6px; color: var(--c-turquesa); }
.scol__body { text-align: justify; }
.scol__body p { font-size: 16px; line-height: 19.2px; }
.scol__inner .scol__btn { left: 50%; right: auto; width: var(--w); height: 40px; transform: translateX(-50%); }

/* ==========================================================================
   PÁGINAS DE SERVICIO (01 Contabilidad, 02 Contraloría, 03 Consultoría)
   Misma plantilla en las tres; lo que cambia por página (alturas, columnas,
   posiciones) va en variables inline en _src/pages/<servicio>.html.
   ========================================================================== */
.svc-banner__num { font: 66px/92.4px var(--f-titulo); color: var(--c-humo); text-align: center; }
.svc-banner__num--64 { font-size: 64px; line-height: 89.6px; }
.svc-banner__title { font: 48px/67.2px var(--f-titulo); color: var(--c-humo); text-align: center; }
.svc-banner__title--2l { line-height: 70.5px; } /* Anton 48 con line-height "normal" */

.svc-alcance__title { font: 35px/51.4px var(--f-titulo); letter-spacing: 1.75px; color: var(--c-tinta); }
.svc-alcance__lead { font: 31px/45.5px var(--f-titulo); color: var(--c-turquesa); text-align: justify; }
.svc-list { font-weight: var(--w-texto-bold); color: var(--c-turquesa); }
.svc-list ul { margin: 0 0 0 .5em; padding: 0; list-style: disc; }
.svc-list li { margin-left: 1.3em; }
.svc-list--contabilidad ul { font-size: 19px; }
.svc-list--contabilidad li { font-size: 20px; line-height: 26px; }
.svc-list--contraloria { font-size: 19px; }
.svc-list--contraloria p, .svc-list--contraloria li { line-height: 30.4px; }
.svc-list--contraloria li.lh17 { line-height: 32.3px; }
.svc-list--contraloria li.lhn { line-height: 22.8px; }
.svc-list--consultoria { color: var(--c-turquesa-medio); }
.svc-list--consultoria ul { font-size: 20px; }
.svc-list--consultoria li { line-height: 32px; }
.svc-list2 { font-size: 16px; line-height: 19.2px; color: var(--c-tinta); }
.svc-list2 ul { margin: 0 0 0 .5em; padding: 0; list-style: disc; }
.svc-list2 li { margin-left: 1.3em; }
.svc-list2 .ind { margin-left: 80px; }
.svc-rule { height: 1px; margin: 0; border: 0; background: var(--c-turquesa-medio); }

.svc-cta { overflow: hidden; color: var(--c-humo); text-align: center; }
.svc-cta__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% var(--cta-pos, 9%); }
.svc-cta__title { position: absolute; left: 34px; top: var(--t-y); width: 414px; font: 32px/47px var(--f-titulo); }
.svc-cta__text { position: absolute; left: 24px; top: var(--s-y); width: 433px; font-size: 20px; line-height: 24px; }
.svc-cta__btn { position: absolute; left: var(--b-x); top: var(--b-y); width: 142px; height: 40px; }

.svc-dirigido { position: relative; height: var(--h); background: var(--c-celeste-medio); color: var(--c-tinta); text-align: center; }
.svc-dirigido .stage { height: 100%; }
.svc-dirigido__title { font: 32px/47px var(--f-titulo); }
.svc-dirigido__line { height: 3px; margin: 0; border: 0; background: var(--c-blanco); }
.svc-dirigido__text { font-size: var(--fs, 20px); line-height: 1.2; }

.svc-ventajas { display: grid; grid-template-columns: var(--cols); height: var(--h); margin-top: var(--mt); }
.svc-ventajas__side { background: var(--c-turquesa-medio); --parallax-media-h: var(--h); }
.svc-ventajas__main { position: relative; background: #f0f3f5; }
.svc-ventajas__inner { position: absolute; top: 0; left: 50%; width: var(--iw, 392px); height: 100%; margin-left: calc(var(--iw, 392px) / -2); }
.svc-ventajas__inner .at { left: 0; width: 100%; }
.svc-ventajas__title { font: 32px/47px var(--f-titulo); color: var(--c-tinta); text-align: center; }
.svc-ventajas__list { font-size: 17px; text-align: justify; color: var(--c-tinta); }
.svc-ventajas__list ul { margin: 0 0 0 .5em; padding: 0; list-style: disc; }
.svc-ventajas__list li { margin-left: 1.3em; line-height: 22.1px; }
.svc-ventajas__list--16 { font-size: 16px; }
.svc-ventajas__list--16 li { line-height: 20.8px; }
.svc-ventajas__list li.s16 { font-size: 16px; line-height: 19.2px; }
/* El h6 de Wix es Anton 27px: su line-height "normal" (39.66px) manda sobre la Open Sans de adentro. */
.svc-ventajas__quote { font: italic 400 27px/39.66px "Open Sans", Georgia, serif; color: var(--c-tinta); text-align: center; }
.svc-ventajas__inner .svc-ventajas__btn { left: 50%; width: var(--bw); height: 39px; transform: translateX(-50%); }

.svc-otros { display: grid; grid-template-columns: var(--cols); height: var(--h); margin: var(--mt) 0 var(--mb, 0); }
.svc-otros__col { position: relative; overflow: hidden; }
.svc-otros__intro { position: absolute; left: var(--x); top: var(--y); width: var(--w); font: 48px/70.5px var(--f-titulo); }
.svc-otros__intro a { color: var(--c-blanco); text-decoration: none; }
.svc-otros__card { display: block; color: var(--c-humo); text-decoration: none; text-align: center; }
.svc-otros__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .27; }
.svc-otros__num { position: absolute; left: 0; right: 0; top: var(--y1); font: 66px/97px var(--f-titulo); }
.svc-otros__name { position: absolute; left: 50%; top: var(--y2); width: var(--nw, 265px); margin-left: calc(var(--nw, 265px) / -2); font: 24px/var(--nlh, 35.25px) var(--f-titulo); }

/* Popup "CONTÁCTANOS" (lightbox de Wix): <dialog> nativo */
.contact-dialog { width: 714px; max-width: calc(100vw - 32px); height: 405px; max-height: calc(100vh - 32px); padding: 0; border: 0; background: var(--c-blanco); color: #2a2a2a; overflow: visible; }
.contact-dialog::backdrop { background: rgba(0, 80, 88, .49); }
.contact-dialog[open] { display: grid; grid-template-columns: 250px 1fr; }
.contact-dialog__aside { position: relative; background: var(--c-turquesa-medio); }
.contact-dialog__aside img { position: absolute; left: 0; top: 114px; width: 250px; height: 166px; object-fit: cover; }
.contact-dialog__aside p { position: absolute; left: 11px; top: 332px; width: 227px; text-align: center; font: 400 12px/14.4px var(--f-barlow); letter-spacing: .6px; color: var(--c-humo); }
.contact-dialog__main { position: relative; }
.contact-dialog__close { position: absolute; right: 10px; top: 15px; width: 20px; height: 20px; padding: 0; border: 0; background: none; cursor: pointer; }
.contact-dialog__close svg { width: 20px; height: 20px; fill: #000; }
.contact-dialog__title { position: absolute; left: 0; top: 35px; width: 464px; text-align: center; font: 41px/60px var(--f-titulo); letter-spacing: 16.4px; color: var(--c-turquesa); }
.contact-dialog .form { position: absolute; left: 30px; top: 134px; width: 404px; display: grid; grid-template-columns: 202px 197px; column-gap: 5px; }
.contact-dialog .form__field { height: 31px; margin: 0 0 5px; border: 1px solid #000; background: transparent; color: #2a2a2a; }
.contact-dialog .form__field[name="email"] { grid-column: 1; }
/* Orden en el DOM = orden de tabulación del original (Nombre, E-mail, Mensaje); la grilla pone Mensaje a la derecha. */
.contact-dialog textarea.form__field { grid-column: 2; grid-row: 1 / span 2; height: 67px; margin: 0; }
.contact-dialog .form__footer { grid-column: 1 / -1; margin-top: 0; }
.contact-dialog .form__submit { width: 55px; min-width: 0; height: 29px; font-size: 14px; color: var(--c-blanco); background: var(--c-turquesa); }
.contact-dialog__social { position: absolute; left: 163px; top: 263px; display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.contact-dialog__social img { width: 30px; height: 30px; }
.contact-dialog__foot { position: absolute; left: 0; top: 314px; width: 465px; text-align: center; font: 400 15px/18px var(--f-barlow); color: #000; }
.contact-dialog__foot a { color: #000; text-decoration: none; }

/* ==========================================================================
   CONTACTO
   ========================================================================== */
.contacto-banner { --banner-h: 306px; --badge-x: 451px; --badge-y: 72px; --title-y: 167px; --banner-op: .64; }
.contacto-banner .page-banner__title { line-height: 70.5px; }
.contacto-body { --stage-h: 666px; }
.contacto-lead { font: 32px/41.6px var(--f-titulo); letter-spacing: .64px; color: var(--c-tinta); }
.contacto-lead span { display: block; }
.contacto-lead .sep { height: 13px; }
.contacto-mapa { border: 0; display: block; }
/* Datos de contacto sobre fondo claro: líneas de 19px, separadores de 22.4/20.5px (medido). */
.contact-info--claro { color: var(--c-tinta); }
.contact-info--claro p { line-height: 19px; }
.contact-info.contact-info--claro .contact-info__mail, .contact-info.contact-info--claro .contact-info__phones { line-height: 19px; }
.contact-info.contact-info--claro .contact-info__label--16 { line-height: 32px; }
.contact-info--claro .gap--mail { height: 20.5px; }
.contact-info--claro a { color: var(--c-tinta); }
.form--boton-claro .form__submit { background: var(--c-turquesa-medio); color: var(--c-humo); }

/* ==========================================================================
   PREGUNTAS FRECUENTES (réplica del widget FAQ de Wix)
   El widget crece al abrir respuestas: va en flujo normal, no en un escenario de alto fijo.
   ========================================================================== */
.faq-banner { --banner-h: 367px; --badge-x: 451px; --badge-y: 72px; --title-x: 0px; --title-y: 169px; --banner-op: .61; }
.faq-banner .page-banner__title { width: 978px; }
.faq { position: relative; width: var(--wrap); margin: 0 auto 149px; padding: 32px; background: var(--c-humo); }
.faq__search { position: absolute; left: 668px; top: 32px; width: 280px; height: 41px; border-bottom: 1px solid rgba(51, 58, 59, .6); }
.faq__search-input { width: 256px; height: 40px; padding: 8px 0; border: 0; background: transparent; font: var(--w-texto-bold) 16px/24px var(--f-texto); color: var(--c-tinta); -webkit-appearance: none; appearance: none; }
.faq__search-input::placeholder { color: var(--c-tinta); opacity: 1; }
.faq__search-input:focus { outline: none; }
.faq__search:focus-within { border-bottom-color: var(--c-turquesa); }
.faq__search-icon { position: absolute; left: 260px; top: 8px; width: 24px; height: 24px; fill: var(--c-tinta); pointer-events: none; }
.faq__results { margin: 65px 0 -41px; font-size: 16px; line-height: 24px; color: var(--c-tinta); }
.faq__tabs { display: flex; margin-top: 65px; }
.faq__tab { height: 52px; padding: 14px 27.48px 11px; border: 0; border-bottom: 3px solid transparent; background: none; cursor: pointer; font: var(--w-texto) 16px/24px var(--f-texto); color: #191d1d; transition: color .2s ease, border-color .2s ease; }
.faq__tab[aria-selected="true"] { color: var(--c-turquesa); border-bottom-color: var(--c-turquesa); }
.faq__tab:hover { color: var(--c-turquesa); }
.faq__panel { margin-top: 24px; }
.faq-item { display: flex; margin-top: 24px; }
.faq-item:first-child { margin-top: 0; }
.faq-item__num { flex: none; display: flex; align-items: center; justify-content: center; width: 100px; background: var(--c-turquesa-medio); font: 50px/62px var(--f-titulo); color: #191d1d; }
/* Cerrada: 100px de alto con la pregunta centrada (como Wix); abierta: crece hacia abajo. */
.faq-item__box { flex: 1; min-height: 100px; padding: 26.5px 24px 17.5px 28px; border: 1px solid var(--c-tinta); }
.faq-item__box[open] { padding-top: 12px; padding-bottom: 3px; }
.faq-item__box summary { display: flex; align-items: flex-start; gap: 16px; min-height: 54px; padding: 12px 0; cursor: pointer; list-style: none; }
.faq-item__box summary::-webkit-details-marker { display: none; }
.faq-item__box summary::after { content: ""; flex: none; width: 11px; height: 11px; margin: 6px 7px 0 auto; border-right: 1.5px solid var(--c-tinta); border-bottom: 1.5px solid var(--c-tinta); transform: rotate(45deg); transition: transform .2s ease; }
.faq-item__box[open] summary::after { margin-top: 11px; transform: rotate(-135deg); }
.faq-item__box summary h2 { font: var(--w-texto) 18px/22px var(--f-texto); color: var(--c-tinta); }
.faq-item__answer { padding: 12px 0 28px; }
.faq-item__answer p { font-size: 16px; line-height: 24px; color: var(--c-tinta); }
.faq.is-searching .faq__tabs { display: none; }
.faq.is-searching .faq__panel[hidden] { display: block; }

/* ==========================================================================
   TRABAJA CON NOSOTROS
   ========================================================================== */
.trabaja-banner { --banner-h: 367px; --badge-x: 451px; --badge-y: 72px; --title-y: 169px; --banner-op: .78; }
.trabaja-body { --stage-h: 776px; }
.trabaja-title { font: 48px/70.5px var(--f-titulo); color: var(--c-tinta); text-align: center; }
.trabaja-cargo { background: var(--c-turquesa-medio); }
.trabaja-cargo__text { position: absolute; left: 9px; top: 8px; font: 21px/30.8px var(--f-titulo); }
.trabaja-cargo__text span { display: block; }
.trabaja-cargo__text .k { color: var(--c-petroleo); letter-spacing: 1.05px; }
.trabaja-cargo__text .v { color: var(--c-humo); letter-spacing: 2.1px; }
.trabaja-cargo__arrows { position: absolute; left: 458px; top: 10px; font: 40px/58.75px var(--f-titulo); color: var(--c-tinta); }
.trabaja-desc { font-size: 16px; line-height: 19.2px; color: var(--c-tinta); }
.trabaja-desc .just { text-align: justify; }
.trabaja-desc strong { font-weight: var(--w-texto-bold); color: var(--c-turquesa); }
/* En Wix es una línea horizontal rotada -90°: queda vertical en el borde izquierdo de su caja. */
.trabaja-line { width: 1px; margin: 0; border: 0; background: var(--c-turquesa-medio); }
.trabaja-req { color: var(--c-tinta); }
.trabaja-req h3 { font: 21px/30.8px var(--f-titulo); }
.trabaja-req h3 ~ h3 { margin-top: 8.8px; } /* separadores de 6px de Wix (Anton 6px, line-height normal) */
.trabaja-req ul { margin: 0 0 0 .5em; padding: 0; font-size: 16px; line-height: 19.2px; list-style: disc; }
.trabaja-req li { margin-left: 1.3em; }
.trabaja-btn { height: 40px; }

/* ==========================================================================
   FORMULARIO DE POSTULACIÓN (réplica del widget 123FormBuilder: tarjeta de 700px)
   ========================================================================== */
.postulacion-banner { --banner-op: .73; }
.postulacion { width: 908px; margin: 62px auto 32px; padding: 10px 0 28px; }
.app-form { width: 700px; margin: 0 auto; padding: 28px; background: var(--c-blanco); border-radius: 6px; box-shadow: 0 0 24px rgba(0, 0, 0, .06); font: 400 14px/16.8px "Open Sans", Arial, sans-serif; color: #4c4c4c; }
.app-form__title { font: 400 28px/38px "Open Sans", Arial, sans-serif; color: #4c4c4c; }
.app-form__sub { margin-top: 13px; font-size: 14px; line-height: 19px; }
.app-form__hr { margin: 14px 0 29px; border: 0; border-top: 1px solid #808080; }
.app-form__row { display: flex; align-items: flex-start; min-height: 35px; margin: 0 0 18px; padding: 0; border: 0; }
.app-form__label { flex: none; width: 297px; padding: 10px 16px 0 0; }
.app-form__label--short { width: 165px; }
.app-form fieldset .app-form__label { float: left; }
.app-form .req { color: #e00; }
.app-form__control { flex: 1; display: flex; gap: 16px; }
.app-form__control--half { flex: none; width: 248px; }
.app-form__control--date { flex: none; width: 280px; }
.app-form input[type="text"], .app-form input[type="email"], .app-form input[type="url"], .app-form input[type="date"], .app-form select {
  width: 100%; height: 35px; padding: 8px; border: 1px solid #ccc; border-radius: 3px; background: var(--c-blanco);
  font: 400 14px/16.8px "Open Sans", Arial, sans-serif; color: #4c4c4c;
}
.app-form input::placeholder { color: #a0a0a0; opacity: 1; }
.app-form select { width: 116px; }
.app-form__control--pair input:first-child { flex: 0 0 248px; }
.app-form__radios { display: grid; grid-template-columns: 170px 170px; row-gap: 0; }
.app-form__radios--1col { grid-template-columns: 170px; }
.app-form__radios label { display: flex; align-items: center; gap: 10px; padding: 9px 0; cursor: pointer; }
.app-form__radios input { width: 15px; height: 15px; margin: 0; accent-color: #4c4c4c; }
.app-form__footer { margin-top: 26px; text-align: center; }
.app-form__submit { min-width: 122px; height: 46px; padding: 0 40px; border-radius: 3px; background: #4c4c4c; color: var(--c-blanco); font: 400 14px/28px "Open Sans", Arial, sans-serif; }
.app-form .form__status { margin-top: 10px; color: #4c4c4c; }

/* ==========================================================================
   BLOG (noticias-contabilidad-chile y post/*)
   ========================================================================== */
.blog-banner { --banner-h: 306px; --badge-x: 451px; --badge-y: 72px; --title-y: 169px; --banner-op: .31; }
.blog-banner .page-banner__img { object-position: top; } /* Wix: alineación "top" */
.blog { width: 940px; min-height: 2090px; margin: 0 auto; padding-top: 25px; }
.blog--post { min-height: 0; padding-bottom: 21px; }
.blog__bar { height: 68px; }
.blog__all { font: var(--w-texto-bold) 20px/28px var(--f-texto); color: var(--c-negro); text-decoration: none; }
.blog__all.is-active, .blog__all:hover { color: var(--c-turquesa-medio); }
/* Tarjeta de la lista. El borde existe en Wix pero es transparente (rgba(150,156,157,0)). */
.post-card { display: flex; height: 354px; margin-bottom: 32px; border: 1px solid transparent; }
.post-card__img { flex: 0 0 469px; height: 352px; overflow: hidden; }
.post-card__img img { width: 100%; height: 100%; object-fit: cover; }
.post-card__body { padding: 42px 48px 0; }
/* Autor y fecha. Wix reserva 32px para el avatar (un gravatar en blanco) + 10px de separación. */
.post-meta { display: flex; flex-wrap: wrap; align-items: center; padding-left: 42px; font: var(--w-texto) 12px/16px var(--f-texto); color: var(--c-tinta); }
.post-meta__author { flex-basis: 100%; }
.post-meta__read { display: inline-flex; align-items: center; }
.post-meta__read::before { content: ""; width: 2px; height: 2px; margin: 0 8px; background: currentColor; }
.post-card__title { margin-top: 19px; font: 26px/38.2px var(--f-titulo); }
.post-card__title a { color: var(--c-tinta); text-decoration: none; transition: color .2s ease; }
.post-card:hover .post-card__title a { color: var(--c-turquesa-medio); }
.post-card__excerpt { margin-top: 12px; font: var(--w-texto-bold) 15px/22.5px var(--f-texto); color: var(--c-tinta); }
/* Entrada: columna de 740px; en Wix los párrafos no tienen margen y se separan con una línea vacía (27px). */
.post { width: 740px; margin: 68px auto 0; }
.post .post-meta { flex-wrap: nowrap; min-height: 32px; padding-left: 44px; font: var(--w-texto-bold) 14px/21px var(--f-texto); }
.post .post-meta__author { flex-basis: auto; }
/* Wix usa un "·" de DIN con margin 0 6px; el "·" (U+00B7) de Barlow cae en la línea base como un
   punto, así que se dibuja un punto de 2×2 (mismo ancho total: 6.5 + 2 + 6.5 ≈ 6 + glifo + 6). */
.post .post-meta__date { display: inline-flex; align-items: center; }
.post .post-meta__date::before, .post .post-meta__read::before { content: ""; width: 2px; height: 2px; margin: 0 6.5px; background: currentColor; }
.post__title { margin-top: 18px; font: 40px/50px var(--f-titulo); color: var(--c-tinta); }
.post__body { margin-top: 20px; }
.post__lead { font: 28px/39.2px var(--f-titulo); color: var(--c-negro); }
.post__cover { width: 740px; height: auto; }
.post__body p:not(.post__lead) { margin-bottom: 27px; font: var(--w-texto-bold) 18px/27px var(--f-texto); color: var(--c-tinta); }
.post__body > p:last-child { margin-bottom: 0; }
.post__body a { color: var(--c-turquesa-medio); }
.post__footer { margin-top: 74px; padding: 23px 0; border-top: 1px solid rgba(51, 58, 59, .2); border-bottom: 1px solid rgba(51, 58, 59, .2); }
.post-share { display: flex; align-items: center; gap: 30px; }
.post-share__btn { display: block; width: 19px; height: 19px; padding: 0; border: 0; background: none; color: var(--c-tinta); cursor: pointer; transition: color .2s ease; }
.post-share__btn svg { display: block; fill: currentColor; }
.post-share__btn:hover, .post-share__btn:focus-visible { color: var(--c-turquesa-medio); }
.post-share__status { font: var(--w-texto) 14px/19px var(--f-texto); color: var(--c-tinta); }
.recent-posts { width: 940px; margin: 130px auto 0; }
.recent-posts__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.recent-posts__head h2 { font: var(--w-texto-bold) 18px/27px var(--f-texto); color: var(--c-tinta); }
.recent-posts__head a { font: var(--w-texto-bold) 14px/21px var(--f-texto); color: var(--c-tinta); text-decoration: none; }
.recent-posts__head a:hover { color: var(--c-turquesa-medio); }
.recent-post { display: block; width: 291px; min-height: 313px; text-decoration: none; color: var(--c-tinta); border: 1px solid transparent; }
.recent-post img { width: 289px; height: 162px; object-fit: cover; }
.recent-post__title { display: block; padding: 25px 24px 24px; font: 18px/26.4px var(--f-titulo); transition: color .2s ease; }
.recent-post:hover .recent-post__title { color: var(--c-turquesa-medio); }

/* ==========================================================================
   GRACIAS (landing page de Wix: sin header ni footer)
   ========================================================================== */
.page-gracias .site-header, .page-gracias .site-footer, .page-gracias .quick-actions, .page-gracias .back-to-top { display: none; }
.gracias { position: relative; width: var(--wrap); min-height: 100vh; margin: 0 auto; }
.gracias__box { position: absolute; left: 206px; top: 51px; width: 568px; height: 291px; background: rgba(98, 187, 195, .11); }
.gracias__text { position: absolute; left: 258px; top: 85px; width: 464px; text-align: center; font: 41px/60.2px var(--f-titulo); color: var(--c-turquesa); }
.gracias__firma { position: absolute; left: 432px; top: 293px; width: 115px; text-align: center; font: 400 15px/18px var(--f-barlow); color: #000; }
.gracias__btn { position: absolute; left: 419px; top: 384px; width: 142px; height: 40px; }

/* ==========================================================================
   SITIO EN CONSTRUCCIÓN (_src/partials/en-construccion.html; lo inserta build.py)
   Mismo lenguaje que "Áreas de servicios": sección clara, monograma y título Anton. El letrero usa
   la textura de hormigón de las tarjetas bajo el gris de marca y una cinta de obra en turquesa.
   ========================================================================== */
.en-construccion { padding: 86px 0 110px; background: var(--c-seccion-clara); text-align: center; }
/* Bajo un banner de subpágina el monograma ya está en el banner: no repetirlo. */
.page-banner + .en-construccion { padding-top: 80px; }
.page-banner + .en-construccion .jl-badge { display: none; }
.page-banner + .en-construccion .en-construccion__letrero { margin-top: 0; }
.en-construccion__letrero {
  position: relative; width: 760px; margin: 44px auto 0; padding: 70px 80px 74px;
  background: linear-gradient(rgba(51, 58, 59, .9), rgba(51, 58, 59, .9)), url("../img/textura-hormigon.jpg") center / 440px 480px;
  box-shadow: 0 22px 44px -18px rgba(25, 29, 29, .45);
}
.en-construccion__letrero::before, .en-construccion__letrero::after {
  content: ""; position: absolute; left: 0; right: 0; height: 12px;
  background: repeating-linear-gradient(-45deg, var(--c-turquesa-medio) 0 14px, var(--c-negro) 14px 28px);
}
.en-construccion__letrero::before { top: 0; }
.en-construccion__letrero::after { bottom: 0; }
.en-construccion__titulo { font: 52px/1.3 var(--f-titulo); letter-spacing: .02em; color: var(--c-humo); }
.en-construccion__titulo::after { content: ""; display: block; width: 64px; height: 3px; margin: 20px auto 0; background: var(--c-turquesa); }
.en-construccion__texto { max-width: 500px; margin: 24px auto 0; font: var(--w-texto) 20px/1.55 var(--f-texto); color: rgba(247, 247, 247, .88); }
.en-construccion__contacto { margin-top: 30px; font: var(--w-texto) 16px/1.75 var(--f-texto); color: rgba(247, 247, 247, .72); }
.en-construccion__contacto a { color: var(--c-turquesa-medio); font-weight: var(--w-texto-bold); text-decoration: none; }
.en-construccion__contacto a:hover, .en-construccion__contacto a:focus-visible { color: var(--c-celeste); }
.en-construccion__sep { display: inline-block; width: 4px; height: 4px; margin: 0 14px; border-radius: 50%; background: var(--c-gris); vertical-align: middle; }

/* ==========================================================================
   MÓVIL (< 980px) — replica la versión móvil de Wix (layout de 320px escalado)
   ========================================================================== */
@media (max-width: 979px) {
  :root { --m: min(calc(100vw / 320), 1.6px); }
  /* Los textos de Wix traen cadenas de &nbsp; que en columnas angostas no caben: se permite cortarlas. */
  body { min-width: 0; overflow-wrap: break-word; }
  .wrap { width: 100%; }
  .parallax__img { height: 100%; } /* Wix no aplica parallax en móvil */

  /* Header móvil: logo centrado + botón de menú. Sin teléfonos ni buscador (igual que Wix). */
  .site-header { height: calc(165 * var(--m)); }
  .header-phones, .site-search { display: none; }
  .logo { left: 50%; top: calc(18 * var(--m)); width: calc(310 * var(--m)); height: calc(60 * var(--m)); transform: translateX(-50%); }
  .logo__name { height: auto; text-align: center; font-size: calc(31 * var(--m)); line-height: calc(43 * var(--m)); letter-spacing: calc(2.17 * var(--m)); }
  .logo__name .lg { font-size: calc(36 * var(--m)); }
  .logo__name .sm { font-size: calc(29.3 * var(--m)); }
  .logo__tagline { left: 0; top: calc(43 * var(--m)); width: 100%; font-size: calc(13 * var(--m)); line-height: calc(17 * var(--m)); letter-spacing: calc(.78 * var(--m)); }

  .menu-toggle {
    display: block; position: absolute; left: 50%; top: calc(90 * var(--m)); width: calc(50 * var(--m)); height: calc(50 * var(--m));
    transform: translateX(-50%); padding: 0; border: calc(2 * var(--m)) solid var(--c-blanco); border-radius: calc(4 * var(--m));
    background: transparent; cursor: pointer; z-index: 60;
  }
  .menu-toggle__bars, .menu-toggle__bars::before, .menu-toggle__bars::after {
    position: absolute; left: 50%; width: calc(26 * var(--m)); height: calc(2 * var(--m)); margin-left: calc(-13 * var(--m));
    background: var(--c-blanco); content: ""; transition: transform .3s ease, opacity .3s ease;
  }
  .menu-toggle__bars { top: 50%; margin-top: calc(-1 * var(--m)); }
  .menu-toggle__bars::before { top: calc(-8 * var(--m)); }
  .menu-toggle__bars::after { top: calc(8 * var(--m)); }
  .menu-open .menu-toggle { position: fixed; top: calc(20 * var(--m)); }
  .menu-open .menu-toggle__bars { background: transparent; }
  .menu-open .menu-toggle__bars::before { transform: translateY(calc(8 * var(--m))) rotate(45deg); }
  .menu-open .menu-toggle__bars::after { transform: translateY(calc(-8 * var(--m))) rotate(-45deg); }

  /* Menú móvil a pantalla completa */
  .main-nav {
    position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center;
    padding: calc(80 * var(--m)) calc(20 * var(--m)) calc(40 * var(--m)); background: rgba(51, 58, 59, .97);
    overflow-y: auto; visibility: hidden; opacity: 0; transition: opacity .3s ease, visibility 0s linear .3s;
  }
  .menu-open .main-nav { visibility: visible; opacity: 1; transition: opacity .3s ease; }
  .menu-open { overflow: hidden; }
  .main-nav__list { flex-direction: column; align-items: center; width: 100%; }
  .main-nav__list > li { width: 100%; text-align: center; }
  .main-nav__link { width: 100%; padding: calc(10 * var(--m)) 0; font-size: calc(18 * var(--m)); line-height: 1.3; letter-spacing: .04em; }
  /* visibility: inherit (no visible) para que el submenú se oculte junto con el menú cerrado. */
  .submenu { position: static; padding: 0 0 calc(6 * var(--m)); visibility: inherit; opacity: 1; transition: none; }
  .submenu ul { background: transparent; }
  .submenu a { padding: calc(5 * var(--m)) 0; font-size: calc(14 * var(--m)); line-height: 1.3; color: var(--c-gris); white-space: normal; }

  /* Footer móvil: como en Wix solo se muestra CONTACTO + copyright */
  .site-footer__inner { height: auto; padding: calc(10 * var(--m)) calc(10 * var(--m)) calc(56 * var(--m)); }
  .to-top, .footer-col--servicios, .footer-col--otros, .footer-col--links { display: none; }
  .footer-col--contacto { position: static; width: auto; font-size: calc(16 * var(--m)); }
  .footer-col--contacto .footer-col__title,
  .footer-col--contacto .footer-col__label { line-height: calc(27.2 * var(--m)); }
  .footer-col--contacto p { line-height: calc(19.2 * var(--m)); }
  .copyright { position: static; width: auto; margin-top: calc(29 * var(--m)); font-size: calc(19 * var(--m)); line-height: calc(22.5 * var(--m)); color: var(--c-turquesa-medio); }

  .quick-actions {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; height: calc(59 * var(--m));
    background: var(--c-blanco); box-shadow: 0 0 calc(5 * var(--m)) rgba(0, 0, 0, .15);
  }
  .quick-actions__item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(4 * var(--m)); color: #2f2e2e; font: 400 calc(14 * var(--m))/1.2 "Helvetica Neue", Helvetica, Arial, sans-serif; text-decoration: none; }
  .quick-actions__item svg { width: calc(50 * var(--m)); height: calc(30 * var(--m)); }
  .qa-phone { fill: #36b74a; } .qa-email { fill: #c3165a; } .qa-map { fill: #0aa26a; } .qa-linkedin { fill: #0e76a8; }
  .quick-actions__item[aria-disabled="true"] { cursor: default; }
  .back-to-top {
    display: flex; align-items: center; justify-content: center; position: fixed; left: 0; bottom: calc(86 * var(--m)); z-index: 39;
    width: calc(44 * var(--m)); height: calc(44 * var(--m)); background: rgba(51, 58, 59, .6);
    opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility 0s linear .3s;
  }
  .back-to-top svg { width: calc(20 * var(--m)); height: calc(12 * var(--m)); fill: var(--c-blanco); transform: rotate(180deg); }
  .is-scrolled .back-to-top { opacity: 1; visibility: visible; transition: opacity .3s ease; }

  .btn-outline { font-size: calc(16 * var(--m)); }
  .form__field { font-size: calc(14 * var(--m)); }

  /* --- Home móvil --- */
  .home-hero { height: calc(145 * var(--m)); --parallax-media-h: calc(145 * var(--m)); }
  .home-hero__box { width: calc(300 * var(--m)); margin: calc(10 * var(--m)) auto 0; padding: calc(10 * var(--m)) calc(10 * var(--m)); }
  .home-hero__title { width: auto; font-size: calc(25 * var(--m)); line-height: calc(36.75 * var(--m)); }
  .home-hero__sub { width: auto; margin-top: calc(10 * var(--m)); font-size: calc(14 * var(--m)); line-height: calc(19 * var(--m)); letter-spacing: calc(.7 * var(--m)); }

  .home-areas { height: auto; margin-top: calc(15 * var(--m)); padding: calc(25 * var(--m)) 0 0; }
  .home-areas .jl-badge { display: none; }
  .home-areas__title { margin: 0 auto; width: calc(300 * var(--m)); font-size: calc(34 * var(--m)); line-height: calc(47.6 * var(--m)); }
  .area-cards { flex-wrap: wrap; gap: calc(43 * var(--m)) calc(16 * var(--m)); width: calc(280 * var(--m)); margin: calc(24 * var(--m)) auto 0; }
  .area-card { width: calc(132 * var(--m)); height: calc(132 * var(--m)); }
  .area-card__num { top: calc(8 * var(--m)); font-size: calc(52 * var(--m)); line-height: calc(72.8 * var(--m)); }
  /* Anchos de leyenda del original móvil: 130px (tarjetas 1 y 3) y 110px (tarjeta 2). */
  .area-card__label { top: calc(81 * var(--m)); padding: 0 calc(1 * var(--m)); font-size: calc(15 * var(--m)); line-height: calc(15 * var(--m)); }
  .area-card:nth-child(2) .area-card__label { padding: 0 calc(11 * var(--m)); }
  .area-card:last-child .area-card__label { top: calc(96 * var(--m)); font-size: calc(16 * var(--m)); line-height: calc(16 * var(--m)); }
  .home-areas__cta { width: calc(208 * var(--m)); height: calc(41 * var(--m)); margin: calc(42 * var(--m)) auto 0; }

  .home-testimonio { height: auto; margin-top: calc(42 * var(--m)); padding: calc(26 * var(--m)) calc(20 * var(--m)) calc(12 * var(--m)); --parallax-media-h: 100%; }
  .home-testimonio__text { width: auto; }
  .home-testimonio__text h2,
  .home-testimonio__text blockquote { font-size: calc(22 * var(--m)); line-height: calc(30.8 * var(--m)); }
  .home-testimonio__author { margin-top: calc(15.4 * var(--m)); font-size: calc(13 * var(--m)); line-height: calc(18.2 * var(--m)); }
  .home-testimonio .btn-outline { width: calc(160 * var(--m)); height: calc(36 * var(--m)); margin-top: calc(12 * var(--m)); }

  /* La versión móvil de Wix oculta el formulario de contacto; aquí se mantiene
     (decisión documentada en README: es el principal punto de contacto). */
  .home-contacto { height: auto; margin-top: 0; padding: calc(24 * var(--m)) calc(10 * var(--m)) calc(30 * var(--m)); }
  .home-contacto .wrap { height: auto; }
  .home-contacto__title, .contact-info, .home-contacto .form { position: static; width: auto; }
  .home-contacto__title { font-size: calc(34 * var(--m)); line-height: calc(47.6 * var(--m)); }
  .contact-info { margin-top: calc(10 * var(--m)); font-size: calc(16 * var(--m)); }
  .contact-info__label { font-size: calc(18 * var(--m)); }
  .home-contacto .form { margin-top: calc(24 * var(--m)); }

  /* --- Componentes de subpáginas (móvil) --- */
  .page-banner { height: calc(var(--banner-mh, 115) * var(--m)); }
  .page-banner__inner { width: 100%; }
  .page-banner .jl-badge { display: none; }
  .page-banner__title { left: calc(10 * var(--m)); right: calc(10 * var(--m)); width: auto; top: calc(var(--title-my, 33) * var(--m)); font-size: calc(33 * var(--m)); line-height: calc(46.2 * var(--m)); }
  .stage { width: auto; height: auto; padding: 0 calc(20 * var(--m)); }
  /* left/top: auto para que los .at que en móvil pasan a position: relative no hereden las coordenadas de escritorio. */
  .at { position: static; left: auto; top: auto; width: auto; height: auto; }
  .rt p, .rt li { font-size: calc(16 * var(--m)); line-height: calc(22.4 * var(--m)); }
  .rt ul { margin-left: calc(8 * var(--m)); }
  .rt li { margin-left: calc(20.8 * var(--m)); }
  .btn-solid { height: calc(55 * var(--m)); font-size: calc(16 * var(--m)); }

  /* --- Equipo de trabajo (móvil) --- */
  .equipo-socios { padding-top: calc(28 * var(--m)); }
  .perfil { margin-bottom: calc(40 * var(--m)); }
  .perfil__foto { position: relative; height: calc(264 * var(--m)); }
  .perfil__linkedin { left: calc(14 * var(--m)); top: calc(14 * var(--m)); width: calc(60 * var(--m)); height: calc(60 * var(--m)); }
  .perfil__linkedin img { width: 100%; height: 100%; }
  .perfil__head { margin-top: calc(25 * var(--m)); }
  .perfil__head h2 { font-size: calc(28 * var(--m)); line-height: calc(39.2 * var(--m)); }
  .perfil__head p { font-size: calc(20 * var(--m)); line-height: calc(28 * var(--m)); }
  .perfil__bio { margin-top: calc(18 * var(--m)); }
  .perfil__cta { margin-top: calc(12 * var(--m)); }
  .equipo-rule { margin: calc(-10 * var(--m)) 0 calc(36 * var(--m)); }
  .unete { padding-bottom: calc(70 * var(--m)); text-align: center; }
  .unete__title { font-size: calc(25 * var(--m)); line-height: calc(36.5 * var(--m)); white-space: normal; }
  .unete__chevron { position: static; display: inline-block; width: calc(24 * var(--m)); height: calc(24 * var(--m)); margin-left: calc(4 * var(--m)); vertical-align: calc(-3 * var(--m)); }
  .unete__cta { height: calc(42 * var(--m)); margin-top: calc(10 * var(--m)); }
  .equipo-staff { height: auto; padding: calc(24 * var(--m)) 0 calc(30 * var(--m)); }
  .equipo-staff .stage { padding: 0 calc(23 * var(--m)); }
  .staff { position: relative; margin-bottom: calc(23 * var(--m)); }
  .staff__foto { display: block; width: 100%; height: calc(285 * var(--m)); }
  .staff__txt { position: absolute; right: calc(9 * var(--m)); bottom: calc(10 * var(--m)); left: calc(9 * var(--m)); text-align: right; text-shadow: 0 0 calc(6 * var(--m)) rgba(0, 0, 0, .25); }
  .staff__txt h3 { font-size: calc(26 * var(--m)); line-height: calc(36.4 * var(--m)); }
  .staff__txt p { font-size: calc(19 * var(--m)); line-height: calc(26.6 * var(--m)); }

  /* --- Contáctenos hoy (móvil) --- */
  .contacto-hoy { height: auto; padding: calc(20 * var(--m)) 0 calc(21 * var(--m)); }
  .contacto-hoy__title { font-size: calc(28 * var(--m)); line-height: calc(41 * var(--m)); }
  .contacto-hoy__sub { margin-top: calc(10 * var(--m)); font-size: calc(17 * var(--m)); line-height: calc(25 * var(--m)); }
  .contacto-hoy__tel { margin-top: calc(10 * var(--m)); }
  .contacto-hoy__tel p { font-size: calc(17 * var(--m)); line-height: calc(20.6 * var(--m)); }
  .contacto-hoy__form { margin-top: calc(19 * var(--m)); }
  .form--oscuro .form__field { height: calc(45 * var(--m)); margin-bottom: calc(15 * var(--m)); font-size: calc(16 * var(--m)); }
  .form--oscuro textarea.form__field { height: calc(150 * var(--m)); margin-bottom: calc(13 * var(--m)); font-size: calc(14 * var(--m)); }

  /* --- Por qué elegirnos (móvil) --- */
  .porque-banner { --banner-mh: 88; --title-my: 20; }
  .porque-body { padding-top: calc(20 * var(--m)); padding-bottom: calc(19 * var(--m)); }
  .porque-intro { font-size: calc(18 * var(--m)); line-height: calc(26.6 * var(--m)); text-align: center; }
  .porque-col-title { margin-top: calc(16 * var(--m)); font-size: calc(28 * var(--m)); line-height: calc(41 * var(--m)); }
  .porque-items { margin-top: calc(8 * var(--m)); text-align: left; }
  .porque-items h4 { font-size: calc(18 * var(--m)); line-height: calc(21.6 * var(--m)); }
  .porque-items p { font-size: calc(14 * var(--m)); line-height: calc(16.8 * var(--m)); }
  .porque-line { width: auto; height: 1px; margin-top: calc(21 * var(--m)); }

  /* --- Testimonios (móvil): tarjetas apiladas a ancho completo --- */
  .testimonios-banner { --banner-mh: 98; --title-my: 32; }
  .testimonios-cards { height: auto; padding: 0 0 calc(35 * var(--m)); }
  .testimonios-cards .stage { padding: 0; }
  .tcard { position: relative; margin-bottom: calc(25 * var(--m)); padding: calc(19 * var(--m)) calc(12 * var(--m)) calc(24 * var(--m)); }
  .tcard__name { font-size: calc(20 * var(--m)); line-height: calc(24 * var(--m)); }
  .tcard__quote { margin: calc(16 * var(--m)) calc(34 * var(--m)) 0; font-size: calc(17.5 * var(--m)); line-height: calc(21 * var(--m)); }
  .tcard__mark { display: block; width: calc(34 * var(--m)); height: calc(32 * var(--m)); margin: calc(16 * var(--m)) auto 0; }

  /* --- Servicios (móvil): columnas apiladas --- */
  .page-banner__sub { left: calc(10 * var(--m)); right: calc(10 * var(--m)); width: auto; top: calc(var(--sub-my, 76) * var(--m)); font-size: calc(19 * var(--m)); line-height: calc(22.5 * var(--m)); }
  .servicios-banner { --banner-mh: 131; --title-my: 20; }
  .servicios-cols { display: block; height: auto; margin: 0; }
  .scol__inner { position: static; width: auto; height: auto; margin: 0; padding: calc(11 * var(--m)) calc(20 * var(--m)) calc(10 * var(--m)); }
  .scol__num { font-size: calc(28 * var(--m)); line-height: calc(41 * var(--m)); }
  .scol--claro .scol__num, .scol:last-child .scol__num { font-size: calc(35 * var(--m)); line-height: calc(52 * var(--m)); }
  .scol__title { margin-top: calc(10 * var(--m)); font-size: calc(21 * var(--m)); line-height: calc(31 * var(--m)); }
  .scol__tag { margin-top: calc(10 * var(--m)); }
  .scol__tag p, .scol__tag p.s19 { font-size: calc(17 * var(--m)); line-height: calc(20.4 * var(--m)); }
  .scol__tag p.t { font-size: calc(16 * var(--m)); line-height: calc(19.2 * var(--m)); }
  .scol__body { margin-top: calc(10 * var(--m)); }
  .scol__body p { font-size: calc(16 * var(--m)); line-height: calc(19.2 * var(--m)); }
  .scol__inner .scol__btn { width: calc(120 * var(--m)); height: calc(42 * var(--m)); margin: calc(10 * var(--m)) auto 0; transform: none; }
  .scol:last-child .scol__btn { width: calc(200 * var(--m)); }

  /* --- Páginas de servicio (móvil) --- */
  .svc-banner { height: auto; padding: calc(20 * var(--m)) calc(10 * var(--m)) calc(26 * var(--m)); }
  .svc-banner .page-banner__inner { height: auto; }
  .svc-banner .at { position: relative; }
  .svc-banner__num, .svc-banner__num--64 { font-size: calc(40 * var(--m)); line-height: calc(56 * var(--m)); }
  .svc-banner__title, .svc-banner__title--2l { margin-top: calc(10 * var(--m)); font-size: calc(27 * var(--m)); line-height: calc(39.7 * var(--m)); }
  .svc-alcance { padding: calc(39 * var(--m)) calc(20 * var(--m)) calc(10 * var(--m)); }
  .svc-alcance__title { font-size: calc(31 * var(--m)); line-height: calc(46 * var(--m)); letter-spacing: calc(1.55 * var(--m)); }
  .svc-alcance__lead { margin-top: calc(24 * var(--m)); font-size: calc(27 * var(--m)); line-height: calc(39.7 * var(--m)); text-align: center; }
  .svc-list { margin-top: calc(10 * var(--m)); }
  .svc-list--contabilidad ul, .svc-list--contraloria, .svc-list--consultoria ul { font-size: calc(16 * var(--m)); }
  .svc-list--contabilidad li, .svc-list--contraloria p, .svc-list--contraloria li, .svc-list--contraloria li.lh17, .svc-list--contraloria li.lhn, .svc-list--consultoria li { font-size: calc(16 * var(--m)); line-height: calc(20.8 * var(--m)); }
  .svc-list2 { margin-top: calc(16 * var(--m)); font-size: calc(15 * var(--m)); line-height: calc(18 * var(--m)); }
  .svc-list2 .ind { margin-left: calc(40 * var(--m)); }
  .svc-rule { margin-top: calc(14 * var(--m)); }
  .svc-cta { position: relative; height: calc(159 * var(--m)); margin-top: calc(10 * var(--m)); }
  .svc-cta__title { left: 0; right: 0; width: auto; top: calc(7 * var(--m)); font-size: calc(30 * var(--m)); line-height: calc(44 * var(--m)); }
  .svc-cta__text { left: calc(20 * var(--m)); right: calc(20 * var(--m)); width: auto; top: calc(55 * var(--m)); font-size: calc(19 * var(--m)); line-height: calc(22.8 * var(--m)); }
  .svc-cta__btn { left: 50%; top: calc(109 * var(--m)); width: calc(200 * var(--m)); height: calc(42 * var(--m)); margin-left: calc(-100 * var(--m)); }
  .svc-dirigido { height: auto; margin-top: calc(30 * var(--m)); padding: calc(39 * var(--m)) 0 calc(36 * var(--m)); }
  .svc-dirigido__title { font-size: calc(22 * var(--m)); line-height: calc(32 * var(--m)); }
  .svc-dirigido__line { width: calc(42 * var(--m)); margin: calc(14 * var(--m)) auto calc(11 * var(--m)); }
  .svc-dirigido__text { font-size: calc(18 * var(--m)); line-height: calc(21.6 * var(--m)); }
  .svc-ventajas { display: block; height: auto; margin-top: calc(10 * var(--m)); }
  .svc-ventajas__side { height: calc(200 * var(--m)); }
  .svc-ventajas__inner { position: static; width: auto; height: auto; margin: 0; padding: calc(27 * var(--m)) calc(20 * var(--m)) calc(27 * var(--m)); }
  .svc-ventajas__title { font-size: calc(38 * var(--m)); line-height: calc(37 * var(--m)); }
  .svc-ventajas__list, .svc-ventajas__list--16 { margin-top: calc(11 * var(--m)); font-size: calc(16 * var(--m)); }
  .svc-ventajas__list li, .svc-ventajas__list--16 li, .svc-ventajas__list li.s16 { font-size: calc(16 * var(--m)); line-height: calc(20.8 * var(--m)); }
  .svc-ventajas__quote { margin-top: calc(20 * var(--m)); font-size: calc(20 * var(--m)); line-height: calc(29.4 * var(--m)); }
  .svc-ventajas__inner .svc-ventajas__btn { display: flex; width: calc(151 * var(--m)); height: calc(34 * var(--m)); margin: calc(25 * var(--m)) auto 0; transform: none; }
  .svc-otros { display: block; height: auto; margin-top: calc(30 * var(--m)); }
  .svc-otros__col { min-height: calc(116 * var(--m)); }
  .svc-otros__intro { position: static; width: auto; padding: calc(20 * var(--m)); text-align: center; font-size: calc(26 * var(--m)); line-height: calc(38 * var(--m)); }
  .svc-otros__card { height: calc(136 * var(--m)); }
  .svc-otros__num { top: calc(8 * var(--m)); font-size: calc(36 * var(--m)); line-height: calc(53 * var(--m)); }
  .svc-otros__name { left: calc(20 * var(--m)); right: calc(20 * var(--m)); width: auto; margin: 0; top: calc(61 * var(--m)); font-size: calc(18 * var(--m)); line-height: calc(26 * var(--m)); }
  .contact-dialog { height: auto; }
  .contact-dialog[open] { display: block; }
  .contact-dialog__aside { display: none; }
  .contact-dialog__main { padding: calc(50 * var(--m)) calc(16 * var(--m)) calc(20 * var(--m)); }
  .contact-dialog__title, .contact-dialog .form, .contact-dialog__social, .contact-dialog__foot { position: static; width: auto; }
  .contact-dialog__title { font-size: calc(30 * var(--m)); line-height: 1.4; letter-spacing: calc(8 * var(--m)); }
  .contact-dialog .form { display: block; margin-top: calc(16 * var(--m)); }
  .contact-dialog .form__field { width: 100%; height: calc(40 * var(--m)); margin-bottom: calc(8 * var(--m)); }
  .contact-dialog textarea.form__field { height: calc(100 * var(--m)); margin-bottom: calc(8 * var(--m)); }
  .contact-dialog__social { justify-content: center; margin-top: calc(16 * var(--m)); }
  .contact-dialog__foot { margin-top: calc(12 * var(--m)); font-size: calc(13 * var(--m)); line-height: 1.4; }

  /* --- Contacto (móvil). Wix oculta el formulario en móvil; aquí se mantiene (ver README). --- */
  .contacto-banner { --banner-mh: 92; --title-my: 20; }
  .contacto-body { padding-top: calc(20 * var(--m)); padding-bottom: calc(30 * var(--m)); }
  .contacto-lead { font-size: calc(22 * var(--m)); line-height: calc(28.6 * var(--m)); letter-spacing: calc(.44 * var(--m)); }
  .contacto-lead .sep { height: calc(9 * var(--m)); }
  .contacto-mapa { width: 100%; height: calc(240 * var(--m)); margin-top: calc(26 * var(--m)); }
  .contact-info--claro { margin-top: calc(22 * var(--m)); font-size: calc(16 * var(--m)); }
  .contacto-form { margin-top: calc(24 * var(--m)); }

  /* --- Preguntas frecuentes (móvil) --- */
  .faq-banner { --banner-mh: 92; --title-my: 20; }
  .faq-banner .page-banner__title { width: auto; }
  .faq { width: auto; margin: 0 0 calc(30 * var(--m)); padding: calc(16 * var(--m)); }
  .faq__search { position: relative; left: auto; top: auto; width: 100%; height: auto; }
  .faq__search-input { width: calc(100% - 30px); font-size: calc(16 * var(--m)); }
  .faq__search-icon { left: auto; right: 0; }
  .faq__results { margin: calc(16 * var(--m)) 0 0; }
  .faq__tabs { margin-top: calc(16 * var(--m)); overflow-x: auto; }
  .faq__tab { flex: none; height: auto; padding: calc(10 * var(--m)) calc(16 * var(--m)); font-size: calc(16 * var(--m)); }
  .faq__panel { margin-top: calc(16 * var(--m)); }
  .faq-item { margin-top: calc(14 * var(--m)); }
  .faq-item__num { width: calc(56 * var(--m)); font-size: calc(32 * var(--m)); line-height: 1.2; }
  .faq-item__box { min-height: calc(80 * var(--m)); padding: calc(14 * var(--m)) calc(12 * var(--m)) calc(10 * var(--m)) calc(14 * var(--m)); }
  .faq-item__box[open] { padding-top: calc(8 * var(--m)); padding-bottom: calc(4 * var(--m)); }
  .faq-item__box summary { min-height: 0; padding: calc(8 * var(--m)) 0; }
  .faq-item__box summary h2 { font-size: calc(16 * var(--m)); line-height: calc(20 * var(--m)); }
  .faq-item__answer { padding: calc(6 * var(--m)) 0 calc(14 * var(--m)); }
  .faq-item__answer p { font-size: calc(15 * var(--m)); line-height: calc(21 * var(--m)); }

  /* --- Trabaja con nosotros (móvil) --- */
  .trabaja-banner { --banner-mh: 92; --title-my: 20; }
  .trabaja-body { padding-top: calc(20 * var(--m)); padding-bottom: calc(30 * var(--m)); }
  .trabaja-title { font-size: calc(30 * var(--m)); line-height: calc(44 * var(--m)); }
  .trabaja-cargo { position: relative; height: calc(79 * var(--m)); margin-top: calc(12 * var(--m)); }
  .trabaja-cargo__text { left: calc(9 * var(--m)); top: calc(8 * var(--m)); font-size: calc(21 * var(--m)); line-height: calc(30.8 * var(--m)); }
  .trabaja-cargo__arrows { left: auto; right: calc(10 * var(--m)); top: calc(10 * var(--m)); font-size: calc(40 * var(--m)); line-height: calc(58.75 * var(--m)); }
  .trabaja-desc { margin-top: calc(20 * var(--m)); font-size: calc(16 * var(--m)); line-height: calc(19.2 * var(--m)); }
  .trabaja-line { width: auto; height: 1px; margin: calc(20 * var(--m)) 0; }
  .trabaja-req h3 { font-size: calc(21 * var(--m)); line-height: calc(30.8 * var(--m)); }
  .trabaja-req ul { font-size: calc(16 * var(--m)); line-height: calc(19.2 * var(--m)); }
  .trabaja-btn { height: calc(40 * var(--m)); width: calc(142 * var(--m)); margin: calc(24 * var(--m)) auto 0; }

  /* --- Formulario de postulación (móvil): rótulos arriba de cada campo --- */
  .postulacion { width: auto; margin: calc(16 * var(--m)) calc(10 * var(--m)) calc(30 * var(--m)); padding: 0; }
  .app-form { width: auto; padding: calc(18 * var(--m)); }
  .app-form__title { font-size: calc(22 * var(--m)); line-height: 1.3; }
  .app-form__row { display: block; margin-bottom: calc(14 * var(--m)); }
  .app-form__label, .app-form__label--short { display: block; width: auto; padding: 0 0 calc(6 * var(--m)); }
  .app-form fieldset .app-form__label { float: none; }
  .app-form__control--half, .app-form__control--date { width: auto; }
  .app-form__control--pair input:first-child { flex: 1 1 0; }
  .app-form__control--pair input { min-width: 0; }
  .app-form__radios { grid-template-columns: 1fr 1fr; }

  /* --- Blog (móvil) --- */
  .blog-banner { --banner-mh: 92; --title-my: 20; }
  .blog { width: auto; min-height: 0; padding: calc(16 * var(--m)) calc(16 * var(--m)) calc(30 * var(--m)); }
  .blog__bar { height: auto; margin-bottom: calc(14 * var(--m)); }
  .post-card { display: block; height: auto; margin-bottom: calc(20 * var(--m)); }
  .post-card__img { display: block; height: calc(190 * var(--m)); }
  .post-card__body { padding: calc(16 * var(--m)) calc(16 * var(--m)) calc(20 * var(--m)); }
  .post-card__title { margin-top: calc(10 * var(--m)); font-size: calc(22 * var(--m)); line-height: 1.35; }
  .post { width: auto; margin-top: calc(10 * var(--m)); }
  .post .post-meta { flex-wrap: wrap; font-size: calc(13 * var(--m)); }
  .post__title { margin-top: calc(12 * var(--m)); font-size: calc(28 * var(--m)); line-height: 1.25; }
  .post__body { margin-top: calc(16 * var(--m)); }
  .post__lead { font-size: calc(21 * var(--m)); line-height: 1.4; }
  .post__cover { width: 100%; margin-top: calc(12 * var(--m)); }
  .post__body p:not(.post__lead) { margin-bottom: calc(18 * var(--m)); font-size: calc(16 * var(--m)); line-height: 1.6; }
  .post__body > p:last-child { margin-bottom: 0; }
  .post__footer { margin-top: calc(30 * var(--m)); padding: calc(16 * var(--m)) 0; }
  .recent-posts { width: auto; margin-top: calc(40 * var(--m)); }
  .recent-post { width: auto; min-height: 0; }
  .recent-post img { width: 100%; height: calc(170 * var(--m)); }
  .recent-post__title { padding: calc(16 * var(--m)); }
  /* --- Gracias (móvil) --- */
  .gracias { width: auto; padding: calc(40 * var(--m)) calc(20 * var(--m)); text-align: center; }
  .gracias__box { left: calc(10 * var(--m)); right: calc(10 * var(--m)); top: calc(20 * var(--m)); width: auto; height: calc(260 * var(--m)); }
  .gracias__text, .gracias__firma, .gracias__btn { position: relative; left: auto; top: auto; width: auto; }
  .gracias__text { font-size: calc(30 * var(--m)); line-height: 1.45; }
  .gracias__firma { margin-top: calc(20 * var(--m)); }
  .gracias__btn { width: calc(142 * var(--m)); height: calc(40 * var(--m)); margin: calc(60 * var(--m)) auto 0; }
  /* --- Sitio en construcción (móvil) --- */
  .en-construccion { padding: calc(30 * var(--m)) calc(14 * var(--m)) calc(44 * var(--m)); }
  .en-construccion__letrero { width: auto; margin-top: calc(22 * var(--m)); padding: calc(38 * var(--m)) calc(18 * var(--m)) calc(42 * var(--m)); }
  .en-construccion__letrero::before, .en-construccion__letrero::after { height: calc(8 * var(--m)); }
  .en-construccion__titulo { font-size: calc(30 * var(--m)); }
  .en-construccion__titulo::after { width: calc(44 * var(--m)); margin-top: calc(14 * var(--m)); }
  .en-construccion__texto { margin-top: calc(16 * var(--m)); font-size: calc(15 * var(--m)); }
  .en-construccion__contacto { margin-top: calc(18 * var(--m)); font-size: calc(14 * var(--m)); }
  .en-construccion__sep { display: block; height: 0; margin: 0; }
}

/* Teléfonos medianos/tablets: el escalado se topa en 1.6px y centramos columnas. */
@media (min-width: 560px) and (max-width: 979px) {
  .home-contacto .wrap { max-width: calc(320 * var(--m)); margin: 0 auto; }
}

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