/* ===========================================================================
   TAXIUM — sistema de diseño + componentes
   Paleta y tipografía del DESIGN.md activo. Mundo oscuro único y deliberado.
   =========================================================================== */

/* --- Tipografía autoalojada (nada de Google Fonts <link>) ------------------ */
@font-face{
  font-family:'Archivo';
  src:url('../fonts/archivo-var-latin.woff2') format('woff2-variations'),
      url('../fonts/archivo-var-latin.woff2') format('woff2');
  font-weight:100 900;
  font-stretch:62% 125%;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Archivo';
  src:url('../fonts/archivo-var-latin-ext.woff2') format('woff2-variations'),
      url('../fonts/archivo-var-latin-ext.woff2') format('woff2');
  font-weight:100 900;
  font-stretch:62% 125%;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+A720-A7FF;
}
@font-face{
  font-family:'Newsreader';
  src:url('../fonts/newsreader-italic-latin.woff2') format('woff2');
  font-weight:200 500;
  font-style:italic;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122;
}
@font-face{
  font-family:'Newsreader';
  src:url('../fonts/newsreader-italic-latin-ext.woff2') format('woff2');
  font-weight:200 500;
  font-style:italic;
  font-display:swap;
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+2C60-2C7F,U+A720-A7FF;
}

/* --- Tokens --------------------------------------------------------------- */
:root{
  --tx-tinta:#0A0D09;
  --tx-tinta-2:#111610;
  --tx-verde:#4F604B;
  --tx-verde-hondo:#2E3A2B;
  --tx-piedra:#C3BDB1;
  --tx-piedra-clara:#CFC7B5;
  --tx-hueso:#EDEAE6;
  --tx-tenue:#9C9890;
  --tx-hueso-suave:#CAC6BF;
  --tx-linea:rgba(195,189,177,.18);
  --tx-linea-fuerte:rgba(195,189,177,.4);
  --tx-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --tx-sans:'Archivo',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --tx-serif:'Newsreader',Georgia,"Times New Roman",serif;
  --tx-ease:cubic-bezier(.16,1,.3,1);
  --tx-gut:clamp(20px,4vw,64px);
  --tx-maxw:1500px;
  --tx-nav-h:60px;
}

/* --- Reseteo con :where() para no pisar componentes ---------------------- */
:where(html){-webkit-text-size-adjust:100%}
html{scroll-behavior:smooth}
body.tx-home,body.tx-has-elementor,body{background:var(--tx-tinta);color:var(--tx-hueso)}
body{margin:0;font-family:var(--tx-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
:where(img,video){display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
:where(h1,h2,h3,h4){margin:0;text-wrap:balance}
:where(p){margin:0}
:focus-visible{outline:2px solid var(--tx-piedra);outline-offset:4px;border-radius:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Ajuste por la barra de administración de WordPress */
body.admin-bar .tx-nav{top:32px}
@media (max-width:782px){body.admin-bar .tx-nav{top:46px}}

/* --- Utilidades tipográficas ------------------------------------------- */
.tx-eyebrow{
  font-family:var(--tx-mono);font-size:clamp(10px,1vw,11.5px);
  letter-spacing:.22em;text-transform:uppercase;color:var(--tx-piedra);
}
.tx-display{font-family:var(--tx-sans);font-variation-settings:"wdth" 88;font-weight:800;letter-spacing:-.042em;line-height:.86}
.tx-lede{font-size:clamp(15px,1.35vw,18px);line-height:1.62;color:var(--tx-hueso-suave)}
.tx-serif-em{font-family:var(--tx-serif);font-style:italic;font-weight:300;font-variation-settings:normal;letter-spacing:-.01em;color:var(--tx-piedra)}

/* --- Barra de progreso ------------------------------------------------- */
.tx-progress{position:fixed;top:0;left:0;height:2px;background:var(--tx-piedra);z-index:70;width:0}
body.admin-bar .tx-progress{top:32px}
@media (max-width:782px){body.admin-bar .tx-progress{top:46px}}

/* --- NAVEGACIÓN ------------------------------------------------------- */
.tx-nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:13px var(--tx-gut);
  background:rgba(10,13,9,0);border-bottom:1px solid transparent;
  transition:background .5s var(--tx-ease),backdrop-filter .5s var(--tx-ease),border-color .5s var(--tx-ease);
}
.tx-nav.is-solid{background:rgba(10,13,9,.74);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom-color:var(--tx-linea)}
/* En páginas interiores (no home) la nav ya nace sólida */
body:not(.tx-home) .tx-nav{background:rgba(10,13,9,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--tx-linea);position:sticky}
.tx-nav__brand{display:flex;align-items:center;gap:11px;flex:none}
.tx-nav__brand img{width:30px;height:30px;border-radius:50%;display:block}
.tx-nav__brand b{font-family:var(--tx-sans);font-variation-settings:"wdth" 112;font-weight:800;font-size:14px;letter-spacing:.26em}
.tx-nav__menu{display:flex;gap:clamp(14px,2vw,30px);list-style:none;margin:0;padding:0}
.tx-nav__menu a{font-size:13px;color:var(--tx-hueso-suave);position:relative;padding:5px 0;font-variation-settings:"wdth" 92;display:inline-block}
.tx-nav__menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--tx-piedra);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--tx-ease)}
.tx-nav__menu a:hover::after,.tx-nav__menu a:focus-visible::after,.tx-nav__menu .current-menu-item>a::after{transform:scaleX(1)}
.tx-nav__cta{background:var(--tx-piedra);color:var(--tx-tinta);font-weight:700;font-size:13px;padding:9px 17px;border-radius:2px;white-space:nowrap;flex:none;transition:background .3s var(--tx-ease),transform .3s var(--tx-ease)}
.tx-nav__cta:hover{background:var(--tx-hueso);transform:translateY(-1px)}
.tx-nav__toggle{display:none;background:none;border:0;color:var(--tx-hueso);padding:8px;cursor:pointer}
@media(max-width:920px){
  .tx-nav__menu{
    position:fixed;inset:0;top:0;flex-direction:column;justify-content:center;align-items:flex-start;
    gap:6px;padding:14vh var(--tx-gut) 0;background:var(--tx-tinta);
    transform:translateY(-100%);transition:transform .5s var(--tx-ease);
  }
  .tx-nav__menu.is-open{transform:none}
  .tx-nav__menu a{font-family:var(--tx-sans);font-variation-settings:"wdth" 90;font-weight:700;font-size:clamp(26px,7vw,40px);color:var(--tx-hueso)}
  .tx-nav__menu a::after{display:none}
  .tx-nav__toggle{display:block;z-index:61}
  .tx-nav__cta{display:none}
}

/* --- BOTONES --------------------------------------------------------- */
.tx-btn{display:inline-flex;align-items:center;gap:10px;border-radius:2px;font-family:var(--tx-sans);font-size:14.5px;font-weight:700;padding:15px 26px;line-height:1;transition:transform .3s var(--tx-ease),background .3s var(--tx-ease),border-color .3s var(--tx-ease)}
.tx-btn:hover{transform:translateY(-2px)}
.tx-btn--pri{background:var(--tx-piedra);color:var(--tx-tinta)}
.tx-btn--pri:hover{background:var(--tx-hueso)}
.tx-btn--sec{border:1px solid var(--tx-linea-fuerte);color:var(--tx-hueso);font-weight:600}
.tx-btn--sec:hover{border-color:var(--tx-piedra);background:rgba(195,189,177,.07)}
.tx-btn svg{width:17px;height:17px;flex:none}
.tx-acts{display:flex;gap:11px;flex-wrap:wrap}

/* --- ESCENARIOS DE VÍDEO SCRUBBEADO --------------------------------- */
.tx-stage{position:relative}
.tx-stage--hero{height:360vh}
.tx-stage--reveal{height:280vh}
.tx-pin{position:sticky;top:0;height:100vh;overflow:hidden;display:grid;grid-template-rows:1fr auto}
.tx-pin>video,.tx-pin>img.tx-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.tx-pin>img.tx-poster{z-index:1;transition:opacity .9s var(--tx-ease)}
.tx-pin.is-ready>img.tx-poster{opacity:0}
.tx-veil{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  opacity:var(--tx-veil,1);transition:opacity .25s linear;
  background:
    linear-gradient(180deg,rgba(10,13,9,.62) 0%,rgba(10,13,9,.14) 26%,rgba(10,13,9,.04) 46%,rgba(10,13,9,.74) 86%,var(--tx-tinta) 100%),
    radial-gradient(ellipse 135% 95% at 30% 55%,transparent 34%,rgba(10,13,9,.38) 100%);
}
.tx-tick{
  position:absolute;right:var(--tx-gut);top:50%;transform:translateY(-50%);z-index:4;
  display:flex;flex-direction:column;align-items:flex-end;gap:9px;
  font-family:var(--tx-mono);font-size:10px;letter-spacing:.16em;color:var(--tx-tenue);
  opacity:0;transition:opacity .6s var(--tx-ease);pointer-events:none;
}
.tx-pin.is-scrolled .tx-tick{opacity:1}
.tx-tick .tx-tick__bar{width:1px;height:110px;background:var(--tx-linea-fuerte);position:relative;overflow:hidden}
.tx-tick .tx-tick__bar i{position:absolute;left:0;right:0;top:0;background:var(--tx-piedra);height:0}
@media(max-width:820px){.tx-tick{display:none}}

/* --- CAPA DE TEXTO DEL HÉROE --------------------------------------- */
.tx-hero-layer{position:relative;z-index:3;grid-row:1/-1;display:grid;align-content:end;padding:0 var(--tx-gut) clamp(30px,5vh,58px);height:100%}
.tx-hero-layer::before{content:"";position:absolute;left:0;right:0;bottom:0;height:66%;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(10,13,9,.55) 55%,rgba(10,13,9,.8))}
.tx-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:clamp(24px,5vw,72px);align-items:end}
.tx-beats{display:grid;grid-template-areas:"b";min-height:min(46vh,420px);align-content:end}
.tx-beat{grid-area:b;align-self:end;opacity:0;transform:translateY(26px);transition:opacity .7s var(--tx-ease),transform .7s var(--tx-ease);pointer-events:none}
.tx-beat.is-on{opacity:1;transform:none;pointer-events:auto}
.tx-beat .tx-eyebrow{display:block;margin-bottom:clamp(14px,2vh,22px)}
.tx-beat h1{font-family:var(--tx-sans);font-size:clamp(40px,7.4vw,112px);max-width:15ch;margin-bottom:clamp(16px,2.4vh,26px)}
.tx-beat h1 .tx-q{color:var(--tx-piedra)}
.tx-beat h2{font-family:var(--tx-sans);font-size:clamp(34px,6.4vw,96px);max-width:14ch;margin-bottom:18px}
.tx-beat h2 em{display:block}
.tx-beat p{max-width:46ch;margin-bottom:clamp(20px,3vh,30px)}

.tx-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--tx-linea-fuerte)}
.tx-index li{border-bottom:1px solid var(--tx-linea)}
.tx-index a{display:flex;gap:15px;align-items:baseline;padding:11px 2px;font-size:13.5px;color:var(--tx-hueso-suave);transition:color .3s var(--tx-ease),padding-left .35s var(--tx-ease)}
.tx-index a:hover{color:var(--tx-hueso);padding-left:7px}
.tx-index b{font-family:var(--tx-mono);font-size:10.5px;font-weight:400;color:var(--tx-piedra);min-width:19px}
@media(max-width:820px){.tx-hero-grid{grid-template-columns:1fr}.tx-index{display:none}}

.tx-hint{position:absolute;left:var(--tx-gut);bottom:14px;z-index:4;display:flex;align-items:center;gap:10px;font-family:var(--tx-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--tx-tenue);transition:opacity .5s var(--tx-ease)}
.tx-hint i{display:block;width:26px;height:1px;background:var(--tx-tenue);position:relative;overflow:hidden}
.tx-hint i::after{content:"";position:absolute;inset:0;background:var(--tx-piedra);animation:tx-sweep 2.4s var(--tx-ease) infinite}
@keyframes tx-sweep{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
.tx-pin.is-scrolled .tx-hint{opacity:0}

/* --- BANDA DE CIFRAS ---------------------------------------------- */
.tx-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));border-top:1px solid var(--tx-linea);border-bottom:1px solid var(--tx-linea);background:var(--tx-tinta);position:relative;z-index:5}
.tx-facts>div{padding:clamp(26px,4vw,44px) var(--tx-gut);border-right:1px solid var(--tx-linea)}
.tx-facts>div:last-child{border-right:0}
.tx-facts b{display:block;font-family:var(--tx-sans);font-variation-settings:"wdth" 96;font-weight:800;font-size:clamp(26px,3vw,38px);letter-spacing:-.03em;line-height:1;margin-bottom:9px}
.tx-facts span{font-size:13.5px;color:var(--tx-tenue);line-height:1.5}

/* --- SECCIONES ---------------------------------------------------- */
.tx-sect{padding:clamp(70px,11vw,150px) var(--tx-gut);position:relative;z-index:5;background:var(--tx-tinta)}
.tx-sect-head{max-width:var(--tx-maxw);margin:0 auto}
.tx-sect-head .tx-eyebrow{display:block;margin-bottom:22px}
.tx-sect-head h2{font-family:var(--tx-sans);font-variation-settings:"wdth" 88;font-weight:800;letter-spacing:-.038em;line-height:.94;font-size:clamp(30px,4.6vw,64px);max-width:18ch;margin-bottom:24px}
.tx-sect-head p{max-width:56ch}

/* Capa de texto del segundo escenario */
.tx-reveal-layer{position:relative;z-index:3;grid-row:1/-1;height:100%;display:grid;align-content:center;justify-items:center;text-align:center;padding:0 var(--tx-gut)}
.tx-reveal-layer .tx-beats{min-height:min(40vh,330px);align-content:center;justify-items:center}
.tx-reveal-layer .tx-beat{align-self:center}
.tx-reveal-layer h2{font-family:var(--tx-sans);font-variation-settings:"wdth" 86;font-weight:800;letter-spacing:-.04em;line-height:.9;font-size:clamp(34px,6vw,86px);max-width:16ch;margin-bottom:20px}
.tx-reveal-layer p{max-width:48ch;margin-inline:auto}

/* --- TIRA DE TRES ---------------------------------------------- */
.tx-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--tx-linea);border-top:1px solid var(--tx-linea);border-bottom:1px solid var(--tx-linea);position:relative;z-index:5}
.tx-trio a{position:relative;display:block;background:var(--tx-tinta);overflow:hidden;aspect-ratio:3/4}
.tx-trio img{width:100%;height:100%;object-fit:cover;opacity:.82;transition:transform 1.1s var(--tx-ease),opacity .6s var(--tx-ease)}
.tx-trio a:hover img,.tx-trio a:focus-visible img{transform:scale(1.05);opacity:1}
.tx-trio figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(60px,9vw,110px) clamp(18px,2.2vw,30px) clamp(20px,2.6vw,32px);background:linear-gradient(transparent,rgba(10,13,9,.55) 42%,rgba(10,13,9,.95))}
.tx-trio h3{font-family:var(--tx-sans);font-variation-settings:"wdth" 92;font-weight:800;letter-spacing:-.028em;line-height:1;font-size:clamp(19px,2.1vw,29px);margin-bottom:9px}
.tx-trio small{display:block;font-size:13px;color:var(--tx-hueso-suave);line-height:1.5;max-width:30ch}
.tx-trio .tx-go{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-family:var(--tx-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx-piedra)}
.tx-trio .tx-go svg{width:13px;height:13px;transition:transform .4s var(--tx-ease)}
.tx-trio a:hover .tx-go svg{transform:translateX(4px)}
@media(max-width:820px){.tx-trio{grid-template-columns:1fr}.tx-trio a{aspect-ratio:4/3}}

/* --- INTERIOR (split) ---------------------------------------- */
.tx-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:clamp(28px,4vw,72px);align-items:center;max-width:var(--tx-maxw);margin:0 auto}
.tx-split video{width:100%;aspect-ratio:11/7;object-fit:cover;border-radius:2px}
.tx-split .tx-eyebrow{display:block;margin-bottom:20px}
.tx-split h2{font-family:var(--tx-sans);font-variation-settings:"wdth" 88;font-weight:800;letter-spacing:-.036em;line-height:.94;font-size:clamp(28px,3.9vw,52px);margin-bottom:22px;max-width:14ch}
.tx-spec{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--tx-linea)}
.tx-spec li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--tx-linea);font-size:14px}
.tx-spec span{color:var(--tx-tenue)}
.tx-spec b{font-weight:600;font-variation-settings:"wdth" 92;text-align:right}

/* --- REJILLA DE SERVICIOS ---------------------------------- */
.tx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:1px;background:var(--tx-linea);border:1px solid var(--tx-linea);max-width:var(--tx-maxw);margin:44px auto 0}
.tx-grid a{background:var(--tx-tinta);padding:26px 24px 24px;display:flex;flex-direction:column;gap:9px;min-height:150px;transition:background .4s var(--tx-ease)}
.tx-grid a:hover{background:var(--tx-tinta-2)}
.tx-grid .tx-n{font-family:var(--tx-mono);font-size:10.5px;color:var(--tx-piedra);letter-spacing:.14em}
.tx-grid h3{font-family:var(--tx-sans);font-variation-settings:"wdth" 92;font-weight:700;font-size:17.5px;letter-spacing:-.018em;line-height:1.15}
.tx-grid p{font-size:13.5px;color:var(--tx-tenue);line-height:1.55;margin-top:auto}

/* --- CIERRE ---------------------------------------------- */
.tx-close{padding:clamp(80px,13vw,170px) var(--tx-gut);text-align:center;border-top:1px solid var(--tx-linea);position:relative;z-index:5;background:var(--tx-tinta)}
.tx-close h2{font-family:var(--tx-sans);font-variation-settings:"wdth" 86;font-weight:800;letter-spacing:-.045em;line-height:.88;font-size:clamp(38px,7.6vw,110px);margin-bottom:26px}
.tx-close h2 em{display:block}
.tx-close p{max-width:46ch;margin:0 auto 34px}
.tx-close .tx-acts{justify-content:center}

/* --- PIE ------------------------------------------------- */
.tx-foot{border-top:1px solid var(--tx-linea);background:var(--tx-tinta);position:relative;z-index:5}
.tx-foot__grid{max-width:var(--tx-maxw);margin:0 auto;padding:clamp(48px,7vw,80px) var(--tx-gut) 30px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(28px,4vw,56px)}
.tx-foot__brand img{width:38px;height:38px;border-radius:50%;margin-bottom:16px}
.tx-foot__brand p{font-size:14px;color:var(--tx-hueso-suave);line-height:1.6;max-width:34ch}
.tx-foot h4{font-family:var(--tx-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx-tenue);margin:0 0 16px;font-weight:400}
.tx-foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tx-foot ul a{font-size:14px;color:var(--tx-hueso-suave)}
.tx-foot ul a:hover{color:var(--tx-hueso)}
.tx-foot__cta{display:inline-flex;margin-top:6px;background:var(--tx-piedra);color:var(--tx-tinta);font-weight:700;font-size:13.5px;padding:12px 20px;border-radius:2px}
.tx-foot__bar{max-width:var(--tx-maxw);margin:0 auto;padding:20px var(--tx-gut);border-top:1px solid var(--tx-linea);display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:space-between;font-size:12.5px;color:var(--tx-tenue)}
.tx-foot__bar nav{display:flex;gap:20px;flex-wrap:wrap}
@media(max-width:900px){.tx-foot__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.tx-foot__grid{grid-template-columns:1fr}}

/* --- BARRA FIJA MÓVIL ---------------------------------- */
.tx-mobar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:none;grid-template-columns:1fr 1fr;gap:1px;background:var(--tx-linea);border-top:1px solid var(--tx-linea)}
.tx-mobar a{background:var(--tx-tinta);padding:15px 8px;text-align:center;font-size:13.5px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--tx-hueso)}
.tx-mobar a.tx-mobar__pri{background:var(--tx-piedra);color:var(--tx-tinta)}
.tx-mobar svg{width:16px;height:16px}
@media(max-width:820px){.tx-mobar{display:grid}body{padding-bottom:54px}}

/* --- CONTENIDO GENÉRICO / PÁGINAS ELEMENTOR ------------- */
.tx-page{padding-top:var(--tx-nav-h)}
.tx-page__hero{padding:clamp(90px,13vw,150px) var(--tx-gut) clamp(30px,5vw,60px);max-width:var(--tx-maxw);margin:0 auto}
.tx-page__hero h1{font-family:var(--tx-sans);font-variation-settings:"wdth" 88;font-weight:800;letter-spacing:-.04em;line-height:.92;font-size:clamp(34px,5.4vw,72px);max-width:16ch}
.tx-prose{max-width:var(--tx-maxw);margin:0 auto;padding:0 var(--tx-gut) clamp(60px,9vw,120px)}
.tx-prose :where(h2){font-family:var(--tx-sans);font-variation-settings:"wdth" 90;font-weight:800;letter-spacing:-.03em;font-size:clamp(24px,3vw,38px);margin:clamp(40px,6vw,72px) 0 18px;line-height:1.05}
.tx-prose :where(h3){font-family:var(--tx-sans);font-weight:700;font-size:clamp(19px,2vw,24px);margin:36px 0 12px}
.tx-prose :where(p,li){font-size:16px;line-height:1.72;color:var(--tx-hueso-suave);max-width:68ch}
.tx-prose :where(a):not(.tx-btn){color:var(--tx-piedra);text-decoration:underline;text-underline-offset:3px}
.tx-prose :where(ul,ol){padding-left:1.2em}
.tx-prose :where(li){margin:7px 0}

/* =========================================================================
   MÓVIL — no es el escritorio encogido: navegación propia, sin scrub.
   El vídeo pasa a bucle de fondo y los mensajes se apilan y se leen de
   una pasada. Prioridad: teléfono, WhatsApp, reserva, info esencial.
   ========================================================================= */
@media (max-width:820px){
  :root{--tx-gut:22px;--tx-nav-h:56px}

  /* Los escenarios dejan de estar clavados: fluyen en vertical */
  .tx-stage--hero,.tx-stage--reveal{height:auto}
  .tx-pin{position:relative;height:auto;min-height:auto;display:block}
  .tx-pin>video,.tx-pin>img.tx-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .tx-pin>img.tx-poster{opacity:1}
  .tx-pin.is-ready>img.tx-poster{opacity:0}
  .tx-veil{opacity:1;background:linear-gradient(180deg,rgba(10,13,9,.72),rgba(10,13,9,.45) 30%,rgba(10,13,9,.75) 62%,var(--tx-tinta))}
  .tx-tick,.tx-hint{display:none}

  /* Los tres mensajes se apilan; el vídeo en bucle queda detrás */
  .tx-hero-layer,.tx-reveal-layer{position:relative;z-index:3;display:block;padding:calc(var(--tx-nav-h) + 8vh) var(--tx-gut) 12vh;min-height:88svh}
  .tx-hero-grid{display:block}
  .tx-beats{display:block;min-height:0}
  .tx-beat{position:static;opacity:1;transform:none;pointer-events:auto;margin:0 0 clamp(48px,12vw,72px)}
  .tx-beat:last-child{margin-bottom:0}
  .tx-beat h1{font-size:clamp(38px,11vw,52px);max-width:none}
  .tx-beat h2{font-size:clamp(32px,9.5vw,44px);max-width:none}
  .tx-beat p{max-width:none}
  .tx-reveal-layer{text-align:left}
  .tx-reveal-layer .tx-beats{min-height:0}
  .tx-reveal-layer h2{font-size:clamp(32px,9.5vw,44px);max-width:none}
  .tx-reveal-layer p{margin-inline:0}

  /* Índice de servicios: visible también en móvil, debajo del primer mensaje */
  .tx-index{display:block;margin-top:8px}

  /* Botones y zonas táctiles más grandes */
  .tx-btn{padding:16px 24px;font-size:15px;min-height:52px}
  .tx-acts{gap:10px}
  .tx-acts .tx-btn{flex:1 1 auto;justify-content:center}
  .tx-mobar a{padding:16px 8px;min-height:56px;font-size:14px}

  /* Secciones con menos aire para no obligar a un scroll infinito */
  .tx-sect{padding:clamp(56px,15vw,84px) var(--tx-gut)}
  .tx-trio a{aspect-ratio:16/13}
  .tx-facts>div{padding:22px var(--tx-gut)}
}

@media (max-width:820px) and (prefers-reduced-motion:no-preference){
  /* El vídeo de fondo se mueve solo, en bucle, sin depender del scroll */
  .tx-pin>video{opacity:1}
}

/* --- MOVIMIENTO REDUCIDO -------------------------------- */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .tx-stage--hero,.tx-stage--reveal{height:auto}
  .tx-pin{position:relative;height:auto;min-height:84vh}
  .tx-beat{position:static;opacity:1;transform:none;grid-area:auto}
  .tx-beats{display:grid;gap:52px;min-height:0}
  .tx-hint,.tx-tick{display:none}
  .tx-pin>video{display:none}
  .tx-pin>img.tx-poster{opacity:1}
}

/* La revelación por scroll degrada a visible si el JS no corre */
.no-js .tx-beat{opacity:1;transform:none}
.no-js .tx-pin>img.tx-poster{opacity:1}

/* =========================================================================
   BLINDAJE DE ESPECIFICIDAD
   El kit global de Elementor (.elementor-kit-8) impone Unbounded a los h1-h6
   y colores propios a los enlaces con la misma especificidad que nuestras
   clases. Anclamos a #tx-main / #tx-nav / .tx-foot (id => gana siempre).
   ========================================================================= */
#tx-main :where(h1,h2,h3,h4),
#tx-main .tx-display,
#tx-nav b,
.tx-foot :where(h4){font-family:var(--tx-sans)}
#tx-main .tx-beat h2 em,
#tx-main .tx-close h2 em{font-family:var(--tx-serif)}
#tx-main :where(h1,h2,h3,h4,p,li,span,a,small,b){color:inherit}
#tx-main .tx-eyebrow,#tx-main .tx-go{color:var(--tx-piedra)}
#tx-main .tx-beat h1 .tx-q,#tx-main .tx-serif-em{color:var(--tx-piedra)}
#tx-main .tx-lede,#tx-main .tx-facts span,#tx-main .tx-grid p,#tx-main .tx-trio small{color:var(--tx-hueso-suave)}
#tx-main .tx-grid p,#tx-main .tx-index a{color:var(--tx-hueso-suave)}
#tx-nav .tx-nav__menu a{color:var(--tx-hueso-suave)}
#tx-nav .tx-nav__cta{color:var(--tx-tinta)}
#tx-main .tx-btn--pri{color:var(--tx-tinta)}
.tx-foot a{color:var(--tx-hueso-suave)}
.tx-foot__cta{color:var(--tx-tinta)!important}
.tx-mobar a{color:var(--tx-hueso)}
.tx-mobar a.tx-mobar__pri{color:var(--tx-tinta)}
/* Elementor y el tema padre inyectan Google Fonts por <link>; si además
   cargan Archivo, que al menos herede bien el peso variable. */
#tx-main :where(h1,h2,h3){font-synthesis:none}

/* El kit de Elementor pinta los <button> de verde; nuestro botón de menú
   móvil y cualquier control del tema deben quedar limpios. */
#tx-nav .tx-nav__toggle{background:transparent!important;border:0!important;box-shadow:none!important;color:var(--tx-hueso)!important;-webkit-appearance:none;appearance:none}
#tx-nav .tx-nav__toggle:hover{background:transparent!important}
