/* =====================================================================
   Tu Visa – Formulario ESTA  ·  estilo "formulario oficial" seccionado
   ===================================================================== */
.tv-esta{--e-navy:#0F2440;--e-navy2:#1B3356;--e-ink:#1D2733;--e-muted:#5B6878;--e-line:#C9D2DD;--e-soft:#F2F5F8;
  --e-orange:#F58E02;--e-orange-t:#C46F00;--e-ok:#1E7B4D;--e-err:#B42318;--e-r:4px;font-family:"Inter",system-ui,sans-serif}
.tv-esta .tv-esta-oculto{display:none !important}
.tv-esta .elementor-field-group-referencia{display:none !important}

/* ---------- Cabecera tipo documento ---------- */
.tv-esta .tv-esta-banner{display:flex;align-items:stretch;justify-content:space-between;gap:16px;background:var(--e-navy);color:#fff;
  border-radius:var(--e-r) var(--e-r) 0 0;padding:18px 22px;position:relative;margin-bottom:0}
.tv-esta .tv-esta-banner::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;
  background:linear-gradient(90deg,var(--e-orange) 0 33%,#fff 33% 34%,var(--e-navy2) 34% 100%)}
.tv-esta .tv-esta-banner__kicker{font:600 10.5px/1 "Inter",sans-serif;letter-spacing:2px;text-transform:uppercase;color:#9FB2C8;margin:0 0 7px}
.tv-esta .tv-esta-banner__title{font:700 18px/1.25 "Outfit","Inter",sans-serif;margin:0;color:#fff}
.tv-esta .tv-esta-banner__sub{font:400 12px/1.4 "Inter",sans-serif;color:#C9D4E1;margin:6px 0 0}
.tv-esta .tv-esta-banner__step{flex:none;text-align:right;display:flex;flex-direction:column;justify-content:center;gap:8px;min-width:150px}
.tv-esta .tv-esta-banner__count{font:600 12px/1 "Inter",sans-serif;letter-spacing:1px;text-transform:uppercase;color:#C9D4E1}
.tv-esta .tv-esta-banner__count b{color:#fff;font-size:15px}
.tv-esta .tv-esta-banner__bar{height:6px;background:rgba(255,255,255,.18);border-radius:99px;overflow:hidden}
.tv-esta .tv-esta-banner__bar span{display:block;height:100%;background:var(--e-orange);border-radius:99px;transition:width .4s ease}
.tv-esta .tv-esta-banner__label{font:500 12.5px/1.2 "Inter",sans-serif;color:#fff}

/* ---------- Indicador de pasos ---------- */
.tv-esta .e-form__indicators{background:var(--e-soft);border:1px solid var(--e-line);border-top:0;padding:18px 18px 14px;margin:0 0 26px !important;
  border-radius:0 0 var(--e-r) var(--e-r);flex-wrap:nowrap;align-items:flex-start}
.tv-esta .e-form__indicators__indicator{flex-direction:column;gap:6px;min-width:0}
.tv-esta .e-form__indicators__indicator__number{width:30px !important;height:30px !important;font:700 13px/1 "Inter",sans-serif !important;
  border:2px solid var(--e-line) !important;background:#fff !important;color:var(--e-muted) !important;position:relative}
.tv-esta .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number{border-color:var(--e-orange) !important;background:var(--e-orange) !important;color:#fff !important;
  box-shadow:0 0 0 4px rgba(245,142,2,.18)}
.tv-esta .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number{border-color:var(--e-navy2) !important;background:var(--e-navy2) !important;color:transparent !important}
.tv-esta .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number::after{content:"";position:absolute;left:50%;top:45%;width:6px;height:11px;
  border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg)}
.tv-esta .e-form__indicators__indicator__label{font:600 10.5px/1.2 "Inter",sans-serif !important;letter-spacing:.6px;text-transform:uppercase;color:var(--e-muted) !important;text-align:center;white-space:nowrap}
.tv-esta .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label{color:var(--e-navy) !important}
.tv-esta .e-form__indicators__indicator__separator{height:2px !important;background:var(--e-line) !important;margin:14px 4px 0 !important;min-width:12px}

/* ---------- Secciones ---------- */
.tv-esta .tv-esta-sec{width:calc(100% - 16px);border:1px solid var(--e-line);border-radius:var(--e-r);background:#fff;margin:0 8px 22px;overflow:hidden}
.tv-esta .tv-esta-sec__head{display:flex;align-items:center;gap:12px;background:var(--e-soft);border-bottom:1px solid var(--e-line);padding:12px 16px}
.tv-esta .tv-esta-sec__num{flex:none;font:700 11px/1 "Inter",sans-serif;letter-spacing:1px;color:#fff;background:var(--e-navy2);border-radius:3px;padding:5px 7px}
.tv-esta .tv-esta-sec__title{font:700 15px/1.3 "Outfit","Inter",sans-serif;color:var(--e-navy);margin:0;text-transform:uppercase;letter-spacing:.4px}
.tv-esta .tv-esta-sec__sub{font:400 12.5px/1.45 "Inter",sans-serif;color:var(--e-muted);margin:2px 0 0}
.tv-esta .tv-esta-sec__body{display:flex;flex-wrap:wrap;align-items:flex-start;padding:18px 10px 4px}
.tv-esta .tv-esta-sec__body > .elementor-field-group{margin-bottom:16px !important}
/* los encabezados originales ya no se ven: los usamos para la cabecera de la sección */
.tv-esta .tv-esta-sec__body > .tv-esta-srcheader{display:none !important}
.tv-esta .tv-esta-h{font:700 15px/1.3 "Outfit",sans-serif;color:var(--e-navy);margin:0 0 6px;text-transform:uppercase;letter-spacing:.4px}
.tv-esta .tv-esta-sub{font:400 13px/1.5 "Inter",sans-serif;color:var(--e-muted);margin:0}

/* Avisos */
.tv-esta .tv-esta-note{background:#FFF8EC;border:1px solid #F6D9A8;border-left:4px solid var(--e-orange);border-radius:var(--e-r);padding:13px 15px;
  font:400 13.5px/1.6 "Inter",sans-serif;color:#4A3A1F;margin:0 0 12px}
.tv-esta .tv-esta-note strong{color:#2E2210}
.tv-esta .tv-esta-list{margin:4px 0 0;padding:0;list-style:none;counter-reset:tvl}
.tv-esta .tv-esta-list li{counter-increment:tvl;position:relative;padding:10px 0 10px 40px;border-bottom:1px dashed #DCE2E8;font:400 13.5px/1.6 "Inter",sans-serif;color:var(--e-muted)}
.tv-esta .tv-esta-list li:last-child{border-bottom:0}
.tv-esta .tv-esta-list li::before{content:counter(tvl);position:absolute;left:4px;top:10px;width:24px;height:24px;border-radius:3px;background:var(--e-navy2);
  color:#fff;font:700 12px/24px "Inter",sans-serif;text-align:center}
.tv-esta .tv-esta-list strong{color:var(--e-ink)}

/* ---------- Etiquetas y campos ---------- */
.tv-esta .elementor-field-label{font:600 12.5px/1.35 "Inter",sans-serif !important;color:var(--e-ink) !important;margin-bottom:6px}
.tv-esta .elementor-mark-required .elementor-field-label::after{color:var(--e-err) !important;padding-left:3px}
.tv-esta .elementor-field-textual,.tv-esta .elementor-select-wrapper select{border:1px solid #AEBAC8 !important;border-radius:var(--e-r) !important;
  background:#fff !important;color:var(--e-ink) !important;font:400 14px/1.4 "Inter",sans-serif !important;min-height:42px;padding:9px 12px !important;
  box-shadow:inset 0 1px 2px rgba(15,36,64,.06);transition:border-color .15s,box-shadow .15s}
.tv-esta textarea.elementor-field-textual{min-height:84px}
.tv-esta .elementor-field-textual:hover{border-color:#7F8FA3 !important}
.tv-esta .elementor-field-textual:focus,.tv-esta .elementor-select-wrapper select:focus{outline:none;border-color:var(--e-navy2) !important;
  box-shadow:0 0 0 3px rgba(27,51,86,.18) !important}
.tv-esta .elementor-field-textual::placeholder{color:#9AA6B5}
.tv-esta .elementor-select-wrapper .select-caret-down-wrapper{color:var(--e-navy2)}
.tv-esta .elementor-field-textual:user-invalid{border-color:var(--e-err) !important;background:#FFF7F6 !important}

/* Preguntas Sí/No como fila de formulario oficial */
.tv-esta .elementor-field-type-radio{background:#FAFBFC;border:1px solid #E1E7EE;border-radius:var(--e-r);padding:14px 14px 12px !important;
  margin-left:8px;margin-right:8px;width:calc(100% - 16px) !important;flex-basis:calc(100% - 16px) !important}
.tv-esta .elementor-field-type-radio > .elementor-field-label{font-weight:600 !important;line-height:1.55 !important;margin-bottom:10px}
.tv-esta .elementor-field-type-radio .elementor-field-subgroup{gap:8px}
.tv-esta .elementor-field-type-radio .elementor-field-option{margin:0 !important;position:relative}
.tv-esta .elementor-field-type-radio .elementor-field-option input{position:absolute;opacity:0;pointer-events:none}
.tv-esta .elementor-field-type-radio .elementor-field-option label{display:inline-flex;align-items:center;gap:8px;min-width:92px;padding:9px 16px 9px 12px;
  border:1px solid #AEBAC8;border-radius:var(--e-r);background:#fff;color:var(--e-ink);font:600 13.5px/1 "Inter",sans-serif;cursor:pointer;transition:.15s}
.tv-esta .elementor-field-type-radio .elementor-field-option label::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid #7F8FA3;background:#fff;flex:none;
  box-sizing:border-box;transition:.15s}
.tv-esta .elementor-field-type-radio .elementor-field-option label:hover{border-color:var(--e-navy2)}
.tv-esta .elementor-field-type-radio .elementor-field-option input:checked + label{border-color:var(--e-navy2);background:#EAF0F7;color:var(--e-navy)}
.tv-esta .elementor-field-type-radio .elementor-field-option input:checked + label::before{border-color:var(--e-navy2);box-shadow:inset 0 0 0 3px #fff;background:var(--e-navy2)}
.tv-esta .elementor-field-type-radio .elementor-field-option input[value=yes]:checked + label{border-color:var(--e-orange-t);background:#FFF4E5;color:#7A4500}
.tv-esta .elementor-field-type-radio .elementor-field-option input[value=yes]:checked + label::before{border-color:var(--e-orange-t);background:var(--e-orange-t)}
.tv-esta .elementor-field-type-radio .elementor-field-option input:focus-visible + label{outline:2px solid var(--e-orange);outline-offset:2px}
/* campos que aparecen al responder "Sí" */
.tv-esta .tv-esta-cond{animation:tvestaIn .25s ease both}
.tv-esta .tv-esta-cond .elementor-field-label::before{content:"↳ ";color:var(--e-orange-t);font-weight:700}
.tv-esta .tv-esta-cond .elementor-field-textual,.tv-esta .tv-esta-cond .elementor-select-wrapper select{border-left:3px solid var(--e-orange) !important;background:#FFFCF7 !important}
@keyframes tvestaIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Aceptaciones */
.tv-esta .elementor-field-type-acceptance .elementor-field-subgroup{width:100%;background:#fff;border:1px solid var(--e-line);border-radius:var(--e-r);padding:12px 14px}
.tv-esta .elementor-field-type-acceptance .elementor-field-option{display:flex;align-items:flex-start;gap:10px}
.tv-esta .elementor-field-type-acceptance label{font:500 13.5px/1.5 "Inter",sans-serif;color:var(--e-ink)}
.tv-esta input[type=checkbox]{accent-color:var(--e-navy2);width:18px;height:18px;margin:1px 0 0;flex:none}

/* Subida de archivos */
.tv-esta .elementor-field-type-upload input[type=file]{width:100%;padding:16px 12px;border:2px dashed #AEBAC8;border-radius:var(--e-r);background:var(--e-soft);
  font:500 13px "Inter",sans-serif;color:var(--e-muted);cursor:pointer}
.tv-esta .elementor-field-type-upload input[type=file]:hover{border-color:var(--e-navy2);background:#EAF0F7}
.tv-esta .elementor-field-type-upload input[type=file]::file-selector-button{margin-right:12px;border:0;border-radius:var(--e-r);background:var(--e-navy2);color:#fff;
  font:600 12.5px "Inter",sans-serif;padding:9px 14px;cursor:pointer}

/* ---------- Botones de navegación ---------- */
.tv-esta .e-form__buttons{display:flex !important;justify-content:space-between;gap:12px;border-top:1px solid var(--e-line);padding-top:18px !important;margin-top:4px}
.tv-esta .e-form__buttons__wrapper{width:auto !important;flex:none !important;margin:0 !important}
.tv-esta .e-form__buttons__wrapper__button{border-radius:var(--e-r) !important;font:600 14px/1 "Inter",sans-serif !important;padding:13px 22px !important;min-height:44px;letter-spacing:.2px}
.tv-esta .e-form__buttons__wrapper__button-next,.tv-esta button[type=submit]{background:var(--e-navy2) !important;color:#fff !important}
.tv-esta .e-form__buttons__wrapper__button-next::after{content:" →"}
.tv-esta .e-form__buttons__wrapper__button-next:hover{background:var(--e-navy) !important}
.tv-esta button[type=submit]{background:var(--e-orange) !important}
.tv-esta button[type=submit]:hover{background:#B56901 !important}
.tv-esta .e-form__buttons__wrapper__button-previous{background:#fff !important;color:var(--e-navy2) !important;border:1px solid #AEBAC8 !important}
.tv-esta .e-form__buttons__wrapper__button-previous::before{content:"← "}
.tv-esta .e-form__buttons__wrapper__button-previous:hover{border-color:var(--e-navy2) !important;background:var(--e-soft) !important}
.tv-esta .elementor-field-type-next:only-child{margin-left:auto !important}

/* ---------- Errores ---------- */
.tv-esta .elementor-message-danger,.tv-esta .elementor-help-inline{color:var(--e-err) !important;font:500 12.5px/1.4 "Inter",sans-serif !important;margin-top:6px}
.tv-esta .elementor-message.elementor-message-danger:not(.elementor-help-inline){background:#FEF3F2;border:1px solid #FDA29B;border-radius:var(--e-r);padding:12px 14px}
.tv-esta .elementor-message-success{background:#ECFDF3;border:1px solid #ABEFC6;color:var(--e-ok) !important;border-radius:var(--e-r);padding:12px 14px}

/* ---------- Resumen de revisión ---------- */
.tv-esta .tv-esta-review{width:calc(100% - 16px);margin:0 8px 22px;border:1px solid var(--e-line);border-radius:var(--e-r);overflow:hidden}
.tv-esta .tv-esta-review__head{background:var(--e-navy);color:#fff;padding:12px 16px;font:700 14px/1.3 "Outfit",sans-serif;text-transform:uppercase;letter-spacing:.5px}
.tv-esta .tv-esta-review__sec{border-top:1px solid var(--e-line)}
.tv-esta .tv-esta-review__sec > div:first-child{display:flex;justify-content:space-between;align-items:center;background:var(--e-soft);padding:9px 16px;
  font:700 12px/1.3 "Inter",sans-serif;letter-spacing:.6px;text-transform:uppercase;color:var(--e-navy)}
.tv-esta .tv-esta-review__edit{appearance:none;border:0;background:none;color:var(--e-orange-t);font:600 12px "Inter",sans-serif;cursor:pointer;text-decoration:underline;padding:0}
.tv-esta .tv-esta-review dl{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);margin:0}
.tv-esta .tv-esta-review dt,.tv-esta .tv-esta-review dd{margin:0;padding:8px 16px;border-top:1px solid #EEF2F6;font:400 13px/1.45 "Inter",sans-serif}
.tv-esta .tv-esta-review dt{color:var(--e-muted)}
.tv-esta .tv-esta-review dd{color:var(--e-ink);font-weight:600;word-break:break-word}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .tv-esta .e-form__indicators__indicator__label{font-size:9.5px !important;letter-spacing:.3px}
}
@media (max-width:767px){
  .tv-esta .tv-esta-banner{flex-direction:column;padding:16px}
  .tv-esta .tv-esta-banner__step{text-align:left;min-width:0}
  .tv-esta .tv-esta-banner__title{font-size:16px}
  .tv-esta .e-form__indicators{padding:14px 10px 12px}
  .tv-esta .e-form__indicators__indicator__label{display:none}
  .tv-esta .e-form__indicators__indicator__number{width:26px !important;height:26px !important;font-size:12px !important}
  .tv-esta .e-form__indicators__indicator__separator{margin-top:12px !important}
  .tv-esta .tv-esta-sec{width:calc(100% - 12px);margin:0 6px 18px}
  .tv-esta .tv-esta-review{width:calc(100% - 12px);margin:0 6px 18px}
  .tv-esta .tv-esta-sec__body{padding:14px 4px 2px}
  .tv-esta .tv-esta-sec__head{padding:11px 12px}
  .tv-esta .elementor-field-group.elementor-column{width:100% !important;flex-basis:100% !important;max-width:100% !important}
  .tv-esta .elementor-field-type-radio{margin-left:6px;margin-right:6px;width:calc(100% - 12px) !important;flex-basis:calc(100% - 12px) !important}
  .tv-esta .elementor-field-type-radio .elementor-field-option{flex:1}
  .tv-esta .elementor-field-type-radio .elementor-field-option label{width:100%;justify-content:center}
  .tv-esta .e-form__buttons{position:sticky;bottom:0;background:#fff;z-index:5;padding:12px 0 !important;box-shadow:0 -8px 16px -12px rgba(15,36,64,.25)}
  .tv-esta .e-form__buttons__wrapper{flex:1 !important}
  .tv-esta .e-form__buttons__wrapper__button{width:100%;justify-content:center}
  .tv-esta .tv-esta-review dl{grid-template-columns:1fr}
  .tv-esta .tv-esta-review dt{padding-bottom:0;border-top:1px solid #EEF2F6}
  .tv-esta .tv-esta-review dd{border-top:0;padding-top:2px}
}
@media print{.tv-esta .e-form__buttons,.tv-esta .tv-esta-banner__step{display:none}}
.tvesta-thanks{background:#FFF4E5;border-left:4px solid #F58E02;padding:14px 16px;border-radius:0 8px 8px 0}

/* ===== Página de agradecimiento: [tuvisa_esta_codigo] ===== */
.tvesta-codigo{--n:#0F2440;--n2:#1B3356;--mu:#5B6878;--ln:#C9D2DD;font-family:"Inter",system-ui,sans-serif;border:1px solid var(--ln);border-radius:4px;overflow:hidden;background:#fff}
.tvesta-codigo__estado{display:flex;align-items:center;gap:14px;padding:18px 20px;background:#ECFDF3;border-bottom:1px solid #ABEFC6}
.tvesta-codigo--pending .tvesta-codigo__estado{background:#FFF8EC;border-color:#F6D9A8}
.tvesta-codigo--fail .tvesta-codigo__estado{background:#FEF3F2;border-color:#FDA29B}
.tvesta-codigo__ico{flex:none;width:40px;height:40px;border-radius:50%;background:#1E7B4D;position:relative}
.tvesta-codigo__ico::after{content:"";position:absolute;left:50%;top:46%;width:9px;height:17px;border:solid #fff;border-width:0 3px 3px 0;transform:translate(-50%,-50%) rotate(45deg)}
.tvesta-codigo--pending .tvesta-codigo__ico{background:#C46F00}
.tvesta-codigo--pending .tvesta-codigo__ico::after{width:3px;height:14px;border-width:0 0 0 3px;transform:translate(-50%,-55%) rotate(0);box-shadow:0 0 0 0 #fff}
.tvesta-codigo--fail .tvesta-codigo__ico{background:#B42318}
.tvesta-codigo--fail .tvesta-codigo__ico::after{width:16px;height:3px;border:0;background:#fff;transform:translate(-50%,-50%) rotate(45deg);box-shadow:none}
.tvesta-codigo__titulo{font:700 17px/1.3 "Outfit",sans-serif;color:var(--n);margin:0}
.tvesta-codigo__texto{font:400 13.5px/1.5 "Inter",sans-serif;color:var(--mu);margin:3px 0 0}
.tvesta-codigo__btn{margin-left:auto;flex:none;background:#F58E02;color:#fff !important;text-decoration:none !important;border-radius:4px;padding:11px 18px;font:600 14px/1 "Inter",sans-serif}
.tvesta-codigo__lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding:18px 20px 6px}
.tvesta-codigo__item{border:2px dashed #AEBAC8;border-radius:4px;padding:14px 16px;background:#F7F9FB;display:flex;flex-direction:column;gap:4px}
.tvesta-codigo__label{font:600 10.5px/1 "Inter",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:var(--mu)}
.tvesta-codigo__ref{font:700 22px/1.2 ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;color:var(--n);letter-spacing:1px;word-break:break-all}
.tvesta-codigo__viajero{font:500 13px/1.4 "Inter",sans-serif;color:var(--n2)}
.tvesta-codigo__nota{font:400 12.5px/1.5 "Inter",sans-serif;color:var(--mu);margin:0;padding:8px 20px 18px}
@media (max-width:600px){.tvesta-codigo__estado{flex-wrap:wrap}.tvesta-codigo__btn{margin-left:0;width:100%;text-align:center}.tvesta-codigo__ref{font-size:18px}}
