/* TaxiNexo — correcciones visuales consolidadas */
:root{
  --tnx-page-inline: clamp(16px, 4vw, 32px);
  --tnx-section-space: clamp(44px, 7vw, 88px);
  --tnx-card-radius: 18px;
  --tnx-shadow-soft: 0 12px 34px rgba(15,23,42,.10);
  --tnx-focus: 0 0 0 4px rgba(250,204,21,.35);
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;image-rendering:auto}
main,section{min-width:0}
.container,.wrap{padding-left:var(--tnx-page-inline);padding-right:var(--tnx-page-inline)}

/* Navegación pública uniforme */
.tnx-global-header{position:relative;z-index:100;background:#fff;box-shadow:0 1px 0 rgba(15,23,42,.10)}
.tnx-global-nav-inner{min-height:78px;gap:24px}
.tnx-global-logo img{width:auto!important;height:58px!important;max-width:190px;object-fit:contain}
.tnx-global-menu{gap:clamp(14px,2vw,28px)}
.tnx-global-menu a{display:inline-flex;align-items:center;min-height:44px;padding:8px 2px;font-weight:650;line-height:1.2;text-decoration:none}
.tnx-global-menu a:hover,.tnx-global-menu a:focus-visible{color:#111827;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.tnx-global-menu-button{min-width:48px;min-height:44px}

/* Héroes: contraste, nitidez y composición */
.hero,.tnx-s5-hero,.driver-hero,.page-hero,.guide-hero,header.hero{isolation:isolate}
header.hero{position:relative;overflow:hidden;background:#111827}
header.hero picture,header.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
header.hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(4,12,25,.76) 0%,rgba(4,12,25,.52) 48%,rgba(4,12,25,.24) 100%);pointer-events:none}
header.hero .hero-content{position:relative;z-index:1}
.hero h1,.tnx-s5-hero h1,.driver-hero h1,.page-hero h1,header.hero h1{font-weight:800;letter-spacing:-.025em;line-height:1.08}
header.hero h1,header.hero .lead,header.hero .hero-note{color:#fff!important;text-shadow:0 2px 12px rgba(0,0,0,.62)}
header.hero .kicker{color:#facc15!important;font-weight:800}
.tnx-s5-hero{background:linear-gradient(135deg,#111827 0%,#263244 100%);color:#fff;padding:clamp(46px,7vw,78px) var(--tnx-page-inline)}
.tnx-s5-hero h1,.tnx-s5-hero p,.tnx-s5-hero .tnx-kicker{color:#fff!important}
.driver-hero{padding-top:clamp(42px,7vw,80px);padding-bottom:clamp(42px,7vw,80px)}
.driver-hero-media img,.hero-card img{width:100%;object-fit:cover;filter:none!important;opacity:1!important}

/* Botones consistentes y legibles */
.btn,.btn-primary,.btn-secondary,.btn-cta,.tnx-btn,button[type="submit"]{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;max-width:100%;padding:12px 22px;border-radius:12px;
  font-size:clamp(.95rem,1.2vw,1rem);font-weight:750;line-height:1.2;text-align:center;
  text-decoration:none;white-space:normal;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.btn:hover,.btn-primary:hover,.btn-secondary:hover,.btn-cta:hover,.tnx-btn:hover,button[type="submit"]:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,23,42,.18)}
.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-cta:focus-visible,.tnx-btn:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #111827;outline-offset:3px;box-shadow:var(--tnx-focus)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}
.hero-actions .btn{flex:0 1 auto}

/* Espaciados, tarjetas y formularios */
.tnx-s5-main,.section,.content-section{padding-top:var(--tnx-section-space);padding-bottom:var(--tnx-section-space)}
.tnx-card,.card,.panel{border-radius:var(--tnx-card-radius);box-shadow:var(--tnx-shadow-soft)}
.tnx-grid,.grid{gap:clamp(18px,3vw,32px)}
label{font-weight:650}
input,select,textarea{min-height:46px;border-radius:10px}
textarea{min-height:120px}

@media (max-width: 820px){
  .tnx-global-nav-inner{min-height:68px}
  .tnx-global-logo img{height:50px!important;max-width:164px}
  .tnx-global-menu{padding:10px 16px 18px;gap:2px;background:#fff;box-shadow:0 14px 24px rgba(15,23,42,.12)}
  .tnx-global-menu a{width:100%;padding:10px 8px;border-bottom:1px solid rgba(15,23,42,.08)}
  .hero,.driver-hero,.tnx-s5-hero{min-height:auto}
  header.hero{min-height:540px}
  header.hero::after{background:linear-gradient(180deg,rgba(4,12,25,.58) 0%,rgba(4,12,25,.76) 100%)}
  header.hero .hero-content{padding-top:72px;padding-bottom:56px}
  .hero-actions{align-items:stretch}
  .hero-actions .btn{width:100%}
  .driver-hero-grid{grid-template-columns:1fr!important}
  .driver-hero-media{order:-1}
}
@media (max-width: 480px){
  :root{--tnx-page-inline:16px;--tnx-section-space:42px}
  h1{font-size:clamp(2rem,10vw,2.65rem)!important}
  .btn,.btn-primary,.btn-secondary,.btn-cta,.tnx-btn,button[type="submit"]{width:100%;padding:13px 16px}
  .tn-assurance__inner{grid-template-columns:1fr!important}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.btn-primary,.btn-secondary,.btn-cta,.tnx-btn,button{transition:none!important}}

/* CP016-D — corrección específica de títulos móviles (sin alterar otros componentes) */
.module-page .hero .hero-content h1,
.legal-hero h1{
  color:#ffffff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.68)!important;
  position:relative;
  z-index:3;
}

@media (max-width:820px){
  .module-page .hero .hero-content{
    padding-top:64px;
    padding-bottom:46px;
  }
  .module-page .hero .hero-content h1{
    margin:0 0 16px!important;
    font-size:clamp(2.15rem,10vw,3rem)!important;
    line-height:1.04!important;
  }
  .legal-hero .container{
    padding:250px 22px 52px!important;
  }
  .legal-hero h1{
    margin:0 0 18px!important;
    font-size:clamp(2.15rem,10vw,2.85rem)!important;
    line-height:1.06!important;
  }
  .legal-hero p{
    position:relative;
    z-index:3;
    margin:0!important;
  }
}
