.site-header{background:var(--surface);border-bottom:1px solid var(--border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:64px}
.brand{font-weight:700;font-size:18px}
.main-nav{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:center}
.hero-box,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-lg)}
.panel-sm{max-width:520px}.eyebrow{margin:0 0 var(--space-xs);color:var(--primary);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
h1{margin:0 0 var(--space-sm);font-size:var(--text-xl);line-height:1.15}h2{margin:0 0 var(--space-sm);font-size:var(--text-lg)}
.hero-text,.muted{color:var(--muted)}.search-form,.stack-form{margin-top:var(--space-lg)}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm)}
.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:var(--text-sm);color:var(--muted)}
.field input{width:100%;height:42px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}
.form-actions{margin-top:var(--space-md)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:0;border-radius:var(--radius-sm);cursor:pointer}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-strong)}
/* Footer público pre-live: blanco, compacto, 4 columnas y separador sutil */
.site-footer{position:relative;margin-top:8px;padding:20px 0 30px;color:var(--muted);background:#fff;border-top:0;box-shadow:0 -8px 22px rgba(15,23,42,.028)}
.site-footer::before{content:"";display:block;width:min(1120px,calc(100% - 32px));height:1px;margin:0 auto 18px;background:linear-gradient(90deg,transparent,rgba(15,23,42,.16),transparent)}
.site-footer::after{content:"✦";position:absolute;top:10px;left:50%;transform:translateX(-50%);width:26px;height:18px;display:grid;place-items:center;background:#fff;color:rgba(16,115,92,.45);font-size:11px;line-height:1}
.site-footer p{margin:0}
.footer-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr 1.1fr;gap:22px;align-items:start}
.footer-col{min-width:0}
.footer-logo{display:inline-flex;align-items:center;text-decoration:none;color:#0f172a;font-weight:950;font-size:18px;letter-spacing:.01em;margin-bottom:8px}
.footer-tagline{max-width:260px;color:#64748b;font-size:13px;line-height:1.45}
.site-footer h3{margin:0 0 9px;color:#0f172a;font-size:13px;font-weight:950;letter-spacing:.02em}
.footer-social,.footer-links,.footer-legal{display:grid;align-content:start;gap:7px}
.footer-social-link,.footer-links a{display:inline-flex;align-items:center;gap:8px;width:max-content;max-width:100%;color:#475569;text-decoration:none;font-size:13px;font-weight:750;line-height:1.25;transition:color .22s ease,transform .22s ease}
.footer-social-link:hover,.footer-links a:hover{color:#0f8746;transform:translateX(2px)}
.footer-social-link img{width:22px;height:22px;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(15,23,42,.08))}
.footer-legal p{color:#64748b;font-size:12.5px;line-height:1.35}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;gap:18px 22px}.footer-brand{grid-column:1/-1}.footer-tagline{max-width:100%}}
@media (max-width:560px){.site-footer{padding:18px 0 26px}.footer-grid{grid-template-columns:1fr;gap:16px}.footer-social-link,.footer-links a{width:100%}}

.nav-btn{background:transparent;border:0;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer}
.auth-modal[hidden]{display:none}.auth-modal{position:fixed;inset:0;z-index:9999}.auth-modal__backdrop{position:absolute;inset:0;background:rgba(10,16,28,.45);backdrop-filter:blur(3px)}
.auth-modal__dialog{position:relative;width:calc(100% - 24px);max-width:460px;margin:6vh auto 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.18);padding:18px}
.auth-modal__dialog--scroll{max-height:86vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.22) transparent}
.auth-modal__dialog--scroll::-webkit-scrollbar{width:5px}
.auth-modal__dialog--scroll::-webkit-scrollbar-track{background:transparent}
.auth-modal__dialog--scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.22);border-radius:999px}
.auth-modal__close{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:50%;background:var(--surface-2);cursor:pointer;font-size:22px;line-height:1}
.auth-modal__tabs{display:flex;gap:8px;margin-bottom:16px;padding-right:40px}.auth-tab{min-height:38px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:#fff;cursor:pointer}.auth-tab.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}
.auth-panel{display:none}.auth-panel.is-active{display:block}.stack-form{display:flex;flex-direction:column;gap:12px}body.modal-open{overflow:hidden}
.social-login{display:grid;gap:10px;margin-top:14px;margin-bottom:14px}.social-btn{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text)}.social-btn:hover{background:var(--surface-2)}
.social-btn__icon{display:inline-flex;align-items:center;justify-content:center;width:24px;min-width:24px;height:24px;border-radius:50%;background:var(--surface-2);font-weight:700;font-size:13px}
.auth-divider{position:relative;margin:14px 0;text-align:center;color:var(--muted);font-size:var(--text-sm)}.auth-divider::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--border);z-index:0}.auth-divider span{position:relative;z-index:1;background:var(--surface);padding:0 10px}
.provider-choice__actions,.choice-list{display:grid;gap:12px;margin-top:16px}.choice-card{display:block;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.choice-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.choice-card__title{font-weight:700;margin-bottom:6px}.choice-card__text{color:var(--muted);font-size:var(--text-sm)}
@media (max-width:900px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.header-inner{flex-direction:column;align-items:flex-start;padding-top:12px;padding-bottom:12px}.form-grid{grid-template-columns:1fr}h1{font-size:28px}.auth-modal__dialog{padding:16px}}

/* Mirumbo - Reserva tipo ticket de viaje */
.fo-ticket-page{max-width:1120px;margin:26px auto 44px;padding:18px}
.fo-ticket-topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.fo-ticket-kicker{margin:0 0 6px;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.fo-ticket-title{margin:0;font-size:30px;line-height:1.08;color:#0f172a}
.fo-ticket-subtitle{margin:8px 0 0;color:#64748b;font-size:15px}
.fo-ticket-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;border:1px solid #dbe3ee;border-radius:999px;padding:9px 13px;background:#fff;color:#0f172a;font-weight:700;font-size:13px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.fo-ticket-alert{background:#fff1f2;border:1px solid #fecdd3;color:#9f1239;padding:12px 14px;border-radius:14px;margin:14px 0;font-size:14px}
.fo-ticket-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.85fr);gap:20px;align-items:start}
.fo-ticket,.fo-ticket-card{position:relative;background:#fff;border:1px solid #dbe3ee;border-radius:24px;box-shadow:0 18px 50px rgba(15,23,42,.08);overflow:hidden}
.fo-ticket::before,.fo-ticket-card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,#009ee3,#0f172a)}
.fo-ticket-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 22px 14px;border-bottom:1px dashed #cbd5e1;background:linear-gradient(180deg,#f8fbff,#fff)}
.fo-ticket-brand{display:flex;align-items:center;gap:10px;font-weight:900;color:#0f172a;letter-spacing:.04em;text-transform:uppercase}
.fo-ticket-logo{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#009ee3;color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(0,158,227,.25)}
.fo-ticket-status{display:inline-flex;align-items:center;border:1px solid #dbe3ee;border-radius:999px;padding:7px 10px;background:#fff;color:#475569;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.fo-ticket-body{padding:20px 22px 22px}
.fo-ticket-strip{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px 0 18px;margin-bottom:14px;border-bottom:1px solid #eef2f7}
.fo-ticket-place{min-width:0}.fo-ticket-label{display:block;margin-bottom:5px;color:#94a3b8;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.10em}.fo-ticket-value{display:block;color:#0f172a;font-size:18px;font-weight:900;line-height:1.1}.fo-ticket-small{display:block;margin-top:5px;color:#64748b;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fo-ticket-plane{position:relative;width:82px;height:26px;display:flex;align-items:center;justify-content:center;color:#009ee3;font-weight:900}.fo-ticket-plane::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed #94a3b8}.fo-ticket-plane span{position:relative;background:#fff;padding:0 7px;font-size:18px;transform:rotate(90deg)}
.fo-ticket-form{display:grid;gap:12px}.fo-ticket-field{display:grid;gap:6px;color:#475569;font-size:13px;font-weight:700}.fo-ticket-field input{width:100%;min-height:44px;padding:0 12px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;color:#0f172a;outline:none}.fo-ticket-field input:focus{border-color:#009ee3;box-shadow:0 0 0 4px rgba(0,158,227,.12)}
.fo-ticket-note{background:#f0f9ff;border:1px solid #bae6fd;border-radius:14px;padding:12px 14px;color:#075985;font-size:13px;line-height:1.45}.fo-ticket-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.fo-ticket-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid #111827;background:#111827;color:#fff;font-weight:900;text-decoration:none;cursor:pointer}.fo-ticket-btn--mp{background:#009ee3;border-color:#009ee3}.fo-ticket-btn--light{background:#fff;color:#111827;border-color:#dbe3ee}.fo-ticket-btn:hover{filter:brightness(.98);transform:translateY(-1px)}
.fo-ticket-card{padding:22px}.fo-ticket-card h2{margin:0 0 14px;color:#0f172a}.fo-ticket-amounts{display:grid;gap:10px}.fo-ticket-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eef2f7;color:#475569}.fo-ticket-row strong{color:#0f172a}.fo-ticket-row--total{margin-top:3px;padding:14px;border:1px solid #dbe3ee;border-radius:16px;background:#f8fafc;font-size:16px}.fo-ticket-price{font-weight:900;color:#0f172a}.fo-ticket-price--accent{color:#009ee3}.fo-ticket-code{display:inline-flex;align-items:center;gap:8px;margin:10px 0 4px;padding:10px 12px;border:1px dashed #94a3b8;border-radius:14px;background:#f8fafc;font-weight:900;letter-spacing:.04em;color:#0f172a}.fo-ticket-private-link{margin:16px 0;padding:14px;border:1px solid #bae6fd;border-radius:16px;background:#f0f9ff;color:#075985}.fo-ticket-url{margin-top:10px;word-break:break-all;font-size:12px;color:#0f172a;background:#fff;border:1px solid #dbe3ee;border-radius:10px;padding:9px}.fo-ticket-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.fo-ticket-info div{padding:10px 12px;border:1px solid #eef2f7;border-radius:14px;background:#fff;color:#475569}.fo-ticket-info strong{display:block;color:#0f172a;margin-bottom:3px}.fo-ticket-badges{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.fo-ticket-badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:800}.fo-ticket-footnote{margin-top:12px;color:#64748b;font-size:12px;line-height:1.45}.fo-ticket-full{max-width:900px;margin:26px auto 44px;padding:18px}
@media (max-width:860px){.fo-ticket-grid{grid-template-columns:1fr}.fo-ticket-title{font-size:26px}.fo-ticket-strip{grid-template-columns:1fr;gap:8px}.fo-ticket-plane{width:100%;height:18px}.fo-ticket-plane span{transform:none}.fo-ticket-info{grid-template-columns:1fr}}
@media (max-width:560px){.fo-ticket-page,.fo-ticket-full{padding:12px;margin-top:16px}.fo-ticket-head,.fo-ticket-body,.fo-ticket-card{padding-left:16px;padding-right:16px}.fo-ticket-actions{display:grid}.fo-ticket-btn{width:100%}}

/* 39 - Ticket Reserva de Alojamiento: responsive tipo boarding pass, sin iconografía de avión */
.fo-ticket-page,
.fo-ticket-full{
  max-width:1180px;
}
.fo-ticket,
.fo-ticket-card{
  border-radius:22px;
  border-color:#d6e0ee;
  box-shadow:0 18px 48px rgba(11,31,73,.10);
}
.fo-ticket::before,
.fo-ticket-card::before{
  height:0;
  background:none;
}
.fo-ticket-head{
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border-bottom:1px solid #dce5f2;
  padding:22px 24px 16px;
}
.fo-ticket-brand{
  color:#09265d;
  font-size:15px;
  letter-spacing:.03em;
}
.fo-ticket-logo{
  width:48px;
  height:48px;
  border-radius:15px;
  background:linear-gradient(135deg,#061d4f,#0d3477);
  color:#fff;
  font-size:27px;
  line-height:1;
  box-shadow:0 12px 24px rgba(6,29,79,.18);
}
.fo-ticket-status{
  border-color:#cce8cb;
  background:#f0fbef;
  color:#157a2d;
}
.fo-ticket-kicker{
  color:#0b2a63;
}
.fo-ticket-title{
  color:#071f4d;
  letter-spacing:-.03em;
}
.fo-ticket-subtitle{
  color:#40516f;
}
.fo-ticket-strip{
  border-top:1px dashed #b8c4d6;
  border-bottom:1px dashed #b8c4d6;
  padding:18px 0;
}
.fo-ticket-label{
  color:#0b2a63;
}
.fo-ticket-value,
.fo-ticket-unit strong,
.fo-ticket-unit-strong{
  color:#071f4d;
  font-weight:950;
}
.fo-ticket-small.fo-ticket-unit{
  color:#071f4d;
  font-size:17px;
  margin-top:8px;
}
.fo-ticket-plane.fo-ticket-lodging-icon{
  width:74px;
  height:38px;
  color:#0b2a63;
}
.fo-ticket-plane.fo-ticket-lodging-icon::before{
  border-top:1px dashed #b8c4d6;
}
.fo-ticket-plane.fo-ticket-lodging-icon span{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#fff;
  border:1px solid #d6e0ee;
  color:#0b2a63;
  font-size:0;
  transform:none;
  padding:0;
}
.fo-ticket-plane.fo-ticket-lodging-icon span::before{
  content:"🏨";
  font-size:22px;
  line-height:1;
}
.fo-ticket-card h2{
  color:#071f4d;
  font-size:19px;
}
.fo-ticket-card{
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
}
.fo-ticket-row--total{
  background:#f6f8fc;
  border-color:#dce5f2;
}
.fo-ticket-price--accent{
  color:#ff6b00;
}
.fo-ticket-btn--mp{
  background:linear-gradient(135deg,#ff7a00,#ff5b00);
  border-color:#ff6b00;
  box-shadow:0 12px 24px rgba(255,107,0,.18);
}
.fo-ticket-btn--light{
  color:#09265d;
  border-color:#b7c4d8;
}
.fo-ticket-btn{
  border-radius:13px;
}
.fo-ticket-private-link,
.fo-ticket-note{
  background:#f3f7ff;
  border-color:#c9d8ef;
  color:#09265d;
}
.fo-ticket-info div{
  background:#fbfdff;
}

@media (min-width:861px){
  .fo-ticket-grid{
    grid-template-columns:minmax(0,1.35fr) minmax(300px,.55fr);
  }
  .fo-ticket-full{
    max-width:1000px;
  }
}
@media (max-width:860px){
  .fo-ticket-page,
  .fo-ticket-full{
    padding:10px;
    margin:12px auto 28px;
  }
  .fo-ticket-topbar{
    align-items:flex-start;
  }
  .fo-ticket-title{
    font-size:24px;
  }
  .fo-ticket-head{
    align-items:flex-start;
    padding:18px 16px 14px;
  }
  .fo-ticket-brand{
    align-items:flex-start;
    font-size:13px;
    line-height:1.2;
  }
  .fo-ticket-logo{
    width:42px;
    height:42px;
    border-radius:14px;
    font-size:24px;
    flex:0 0 auto;
  }
  .fo-ticket-status{
    font-size:10px;
    padding:6px 8px;
  }
  .fo-ticket-body,
  .fo-ticket-card{
    padding:16px;
  }
  .fo-ticket-strip{
    grid-template-columns:1fr;
    border-top:0;
    padding:12px 0;
  }
  .fo-ticket-plane.fo-ticket-lodging-icon{
    display:none;
  }
  .fo-ticket-place{
    border:1px solid #e7edf6;
    border-radius:14px;
    padding:12px;
    background:#fff;
  }
  .fo-ticket-value{
    font-size:17px;
  }
  .fo-ticket-small.fo-ticket-unit{
    font-size:18px;
  }
  .fo-ticket-info{
    grid-template-columns:1fr;
  }
  .fo-ticket-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .fo-ticket-actions form,
  .fo-ticket-actions .fo-ticket-btn{
    width:100%;
  }
  .fo-ticket-btn{
    min-height:48px;
  }
}
@media (max-width:420px){
  .fo-ticket-title{
    font-size:21px;
  }
  .fo-ticket-brand span:last-child{
    max-width:170px;
  }
  .fo-ticket-code,
  .fo-ticket-url{
    width:100%;
  }
}


/* 40 - Reserva: UX validación de contacto y formulario más compacto */
.fo-ticket-field-help{
  display:block;
  margin-top:2px;
  color:#64748b;
  font-size:11px;
  font-weight:600;
  line-height:1.35;
}
.fo-ticket-field input::placeholder{
  color:#94a3b8;
}
@media (min-width:861px){
  .fo-ticket-page{
    max-width:1060px;
  }
  .fo-ticket-page .fo-ticket-grid{
    grid-template-columns:minmax(0,0.88fr) minmax(315px,0.62fr);
    gap:18px;
  }
  .fo-ticket-form{
    max-width:560px;
  }
}
@media (max-width:860px){
  .fo-ticket-form{
    max-width:none;
  }
}


/* 41 - Enlace privado con copiar + página inválida */
.fo-ticket-url-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px;
  gap:8px;
  align-items:stretch;
  margin-top:10px;
}
.fo-ticket-url-wrap .fo-ticket-url{
  margin-top:0;
}
.fo-ticket-copy{
  appearance:none;
  border:1px solid #c9d8ef;
  background:#ffffff;
  color:#09265d;
  border-radius:12px;
  font-size:20px;
  font-weight:900;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.fo-ticket-copy:hover{
  transform:translateY(-1px);
  background:#eef5ff;
  border-color:#8fb0df;
}
.fo-ticket-copy.is-copied{
  background:#e8f7ee;
  border-color:#8fd3a6;
  color:#087a35;
}
.fo-ticket-invalid-page{
  max-width:760px;
}
.fo-ticket-invalid .fo-ticket-title{
  max-width:620px;
}
.fo-ticket-status--warn{
  background:#fff7ed;
  color:#c2410c;
  border-color:#fed7aa;
}
.fo-ticket-note--invalid{
  display:grid;
  gap:7px;
  margin-top:18px;
}
.fo-ticket-note--invalid span{
  display:block;
  color:#334155;
  font-size:14px;
  line-height:1.45;
}
@media (max-width:640px){
  .fo-ticket-url-wrap{
    grid-template-columns:1fr 40px;
    gap:7px;
  }
  .fo-ticket-copy{
    min-height:38px;
    font-size:18px;
  }
}


/* 48.reserva-confirmacion-css-mobile-fix
   Refuerzo responsive para confirmación de datos antes de pagar. */
.fo-ticket-page{
  width:100%;
  max-width:1120px;
  box-sizing:border-box;
}
.fo-ticket-grid{
  grid-template-columns:minmax(0,.92fr) minmax(300px,.62fr);
}
.fo-ticket-form{
  max-width:520px;
}
.fo-ticket-field input,
.fo-ticket-btn{
  box-sizing:border-box;
}
@media (max-width: 760px){
  body.theme-default .site-main{
    overflow-x:hidden;
  }
  .fo-ticket-page,
  .fo-ticket-full{
    width:100%;
    margin:10px auto 28px;
    padding:10px;
    box-sizing:border-box;
  }
  .fo-ticket-topbar{
    display:block;
    margin-bottom:10px;
  }
  .fo-ticket-link{
    margin-top:10px;
    width:100%;
    justify-content:center;
    box-sizing:border-box;
  }
  .fo-ticket-grid{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .fo-ticket,
  .fo-ticket-card{
    width:100%;
    max-width:100%;
    border-radius:18px;
    box-sizing:border-box;
  }
  .fo-ticket-head{
    padding:14px 14px 10px;
    align-items:flex-start;
  }
  .fo-ticket-brand{
    font-size:12px;
    line-height:1.2;
  }
  .fo-ticket-logo{
    width:30px;
    height:30px;
    flex:0 0 30px;
  }
  .fo-ticket-status{
    font-size:10px;
    padding:6px 8px;
    white-space:nowrap;
  }
  .fo-ticket-body,
  .fo-ticket-card{
    padding:14px;
  }
  .fo-ticket-title{
    font-size:22px;
    line-height:1.12;
  }
  .fo-ticket-subtitle{
    font-size:13px;
  }
  .fo-ticket-strip{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    padding:10px 0 12px;
  }
  .fo-ticket-plane.fo-ticket-lodging-icon{
    width:100%;
    height:16px;
    order:2;
  }
  .fo-ticket-strip .fo-ticket-place:last-child{
    order:3;
  }
  .fo-ticket-value{
    font-size:16px;
  }
  .fo-ticket-small{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    font-size:12px;
  }
  .fo-ticket-form{
    max-width:100%;
    gap:10px;
  }
  .fo-ticket-field{
    font-size:12px;
  }
  .fo-ticket-field input{
    min-height:44px;
    font-size:16px; /* evita zoom incómodo en iOS/Android */
    border-radius:12px;
  }
  .fo-ticket-field-help{
    font-size:11px;
    line-height:1.35;
  }
  .fo-ticket-note,
  .fo-ticket-alert{
    font-size:12px;
    padding:10px 12px;
    border-radius:12px;
  }
  .fo-ticket-btn{
    width:100%;
    min-height:46px;
    font-size:14px;
  }
  .fo-ticket-card h2{
    font-size:18px;
  }
  .fo-ticket-row{
    font-size:13px;
    gap:10px;
    align-items:flex-start;
  }
  .fo-ticket-row span:first-child{
    min-width:0;
  }
  .fo-ticket-row strong,
  .fo-ticket-price{
    text-align:right;
  }
}
@media (max-width: 380px){
  .fo-ticket-page,
  .fo-ticket-full{
    padding:8px;
  }
  .fo-ticket-head,
  .fo-ticket-body,
  .fo-ticket-card{
    padding-left:12px;
    padding-right:12px;
  }
  .fo-ticket-title{
    font-size:20px;
  }
}

/* Login público: card comercial en línea con el home pre-live */
.fo-login-screen{
  min-height:calc(100vh - 180px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:74px 16px 34px;
  background:
    radial-gradient(circle at 18% 12%, rgba(28,164,82,.16), transparent 28%),
    radial-gradient(circle at 82% 14%, rgba(13,116,96,.13), transparent 30%),
    linear-gradient(180deg,#eef7f3 0%,#f7fafc 52%,#ffffff 100%);
}
.fo-login-card{
  width:min(920px,100%);
  display:grid;
  grid-template-columns:minmax(280px,.92fr) minmax(320px,1fr);
  border-radius:30px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(226,232,240,.92);
  box-shadow:0 28px 76px rgba(15,23,42,.17);
  overflow:hidden;
  backdrop-filter:blur(12px);
  animation:foLoginRise .9s cubic-bezier(.18,.82,.22,1) both;
}
.fo-login-visual{
  position:relative;
  min-height:470px;
  background:
    linear-gradient(180deg,rgba(5,33,42,.16),rgba(5,33,42,.62)),
    url('/assets/img/hero/seismiles.png') center/cover no-repeat;
  overflow:hidden;
}
.fo-login-visual::after{
  content:"";
  position:absolute;
  inset:auto -20% -34% -20%;
  height:55%;
  background:radial-gradient(ellipse at center,rgba(24,164,81,.46),transparent 65%);
  filter:blur(16px);
}
.fo-login-brand-pill{
  position:absolute;
  top:18px;
  left:18px;
  z-index:2;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.90);
  color:#0f172a;
  font-weight:950;
  font-size:13px;
  box-shadow:0 12px 30px rgba(15,23,42,.18);
  backdrop-filter:blur(8px);
}
.fo-login-visual-copy{
  position:absolute;
  left:22px;
  right:22px;
  bottom:24px;
  z-index:2;
  color:#fff;
  text-shadow:0 10px 28px rgba(0,0,0,.30);
}
.fo-login-visual-copy span{
  display:inline-flex;
  margin-bottom:8px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  font-size:12px;
  font-weight:850;
  letter-spacing:.03em;
  backdrop-filter:blur(8px);
}
.fo-login-visual-copy strong{
  display:block;
  max-width:300px;
  font-size:30px;
  line-height:1.05;
  font-weight:950;
}
.fo-login-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:40px 42px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.98)),
    radial-gradient(circle at 90% 10%,rgba(24,164,81,.14),transparent 30%);
}
.fo-login-kicker{
  width:max-content;
  margin-bottom:10px;
  padding:5px 10px;
  border-radius:999px;
  background:#edf7f1;
  color:#0b7040;
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.fo-login-panel h1{
  margin:0 0 7px;
  color:#0f172a;
  font-size:34px;
  line-height:1.05;
  font-weight:950;
  letter-spacing:-.03em;
}
.fo-login-lead{
  margin:0 0 22px;
  color:#64748b;
  font-size:14px;
  line-height:1.45;
  font-weight:650;
}
.fo-login-alert{
  margin:0 0 16px;
  padding:11px 13px;
  border-radius:15px;
  background:#fff1f2;
  border:1px solid #fecdd3;
  color:#9f1239;
  font-size:13px;
  font-weight:800;
}
.fo-login-form{display:grid;gap:13px}
.fo-login-field{display:grid;gap:6px;margin:0}
.fo-login-field span{
  color:#334155;
  font-size:12px;
  font-weight:950;
  letter-spacing:.015em;
}
.fo-login-field input{
  width:100%;
  height:48px;
  padding:0 15px;
  border:1px solid rgba(203,213,225,.95);
  border-radius:16px;
  background:rgba(248,250,252,.92);
  color:#0f172a;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease, transform .25s ease;
}
.fo-login-field input:focus{
  background:#fff;
  border-color:#18a451;
  box-shadow:0 0 0 4px rgba(24,164,81,.13), 0 10px 26px rgba(15,23,42,.08);
  transform:translateY(-1px);
}
.fo-login-submit{
  height:50px;
  margin-top:3px;
  border:0;
  border-radius:17px;
  background:linear-gradient(135deg,#18a451 0%,#0f8746 54%,#0b7040 100%);
  color:#fff;
  font-weight:950;
  letter-spacing:.02em;
  cursor:pointer;
  box-shadow:0 17px 34px rgba(15,127,67,.24);
  transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.fo-login-submit:hover{transform:translateY(-2px);box-shadow:0 22px 44px rgba(15,127,67,.30);filter:saturate(1.05)}
.fo-login-submit:active{transform:translateY(0)}
.fo-login-register{
  margin-top:18px;
  padding-top:15px;
  border-top:1px solid rgba(226,232,240,.88);
  color:#64748b;
  font-size:13px;
  font-weight:750;
}
.fo-login-register a{color:#0b7040;font-weight:950;text-decoration:none}
.fo-login-register a:hover{text-decoration:underline}
@keyframes foLoginRise{
  from{opacity:0;transform:translateY(18px) scale(.985);filter:blur(5px)}
  to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
}
@media (max-width:820px){
  .fo-login-screen{padding:68px 12px 28px;align-items:flex-start}
  .fo-login-card{grid-template-columns:1fr;border-radius:24px}
  .fo-login-visual{min-height:170px}
  .fo-login-visual-copy strong{font-size:24px;max-width:360px}
  .fo-login-panel{padding:28px 22px 24px}
}
@media (max-width:520px){
  .fo-login-screen{padding-top:58px}
  .fo-login-card{border-radius:20px}
  .fo-login-visual{min-height:140px}
  .fo-login-brand-pill{top:12px;left:12px;padding:6px 10px;font-size:12px}
  .fo-login-visual-copy{left:16px;right:16px;bottom:16px}
  .fo-login-visual-copy span{font-size:11px}
  .fo-login-visual-copy strong{font-size:21px}
  .fo-login-panel h1{font-size:30px}
  .fo-login-field input,.fo-login-submit{height:47px}
}

/* Registro público: card comercial coherente con login/home */
.fo-register-screen{
  min-height:calc(100vh - 180px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:74px 16px 34px;
  background:
    radial-gradient(circle at 14% 10%, rgba(28,164,82,.16), transparent 28%),
    radial-gradient(circle at 86% 18%, rgba(13,116,96,.12), transparent 30%),
    linear-gradient(180deg,#eef7f3 0%,#f7fafc 52%,#ffffff 100%);
}
.fo-register-card-shell{
  width:min(1120px,100%);
  display:grid;
  grid-template-columns:minmax(260px,.48fr) minmax(0,1fr);
  border-radius:30px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(226,232,240,.95);
  box-shadow:0 28px 76px rgba(15,23,42,.17);
  overflow:hidden;
  backdrop-filter:blur(12px);
  animation:foLoginRise .9s cubic-bezier(.18,.82,.22,1) both;
}
.fo-register-visual{
  position:relative;
  min-height:640px;
  background:
    linear-gradient(180deg,rgba(5,33,42,.12),rgba(5,33,42,.68)),
    url('/assets/img/hero/seismiles.png') center/cover no-repeat;
  overflow:hidden;
}
.fo-register-visual::after{
  content:"";
  position:absolute;
  inset:auto -22% -28% -22%;
  height:50%;
  background:radial-gradient(ellipse at center,rgba(24,164,81,.48),transparent 66%);
  filter:blur(16px);
}
.fo-register-brand-pill{
  position:absolute;
  top:18px;
  left:18px;
  z-index:2;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.90);
  color:#0f172a;
  font-weight:950;
  font-size:13px;
  box-shadow:0 12px 30px rgba(15,23,42,.18);
  backdrop-filter:blur(8px);
}
.fo-register-visual-copy{
  position:absolute;
  left:22px;
  right:22px;
  bottom:24px;
  z-index:2;
  color:#fff;
  text-shadow:0 10px 28px rgba(0,0,0,.34);
}
.fo-register-visual-copy span{
  display:inline-flex;
  margin-bottom:8px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  font-size:12px;
  font-weight:850;
  letter-spacing:.03em;
  backdrop-filter:blur(8px);
}
.fo-register-visual-copy strong{
  display:block;
  max-width:320px;
  font-size:30px;
  line-height:1.05;
  font-weight:950;
}
.fo-register-visual-copy small{
  display:block;
  margin-top:10px;
  max-width:320px;
  color:rgba(255,255,255,.88);
  font-size:13px;
  line-height:1.35;
  font-weight:750;
}
.fo-register-page{
  max-width:none;
  margin:0;
  padding:34px 36px 32px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.98)),
    radial-gradient(circle at 92% 7%,rgba(24,164,81,.13),transparent 28%);
}
.fo-register-head{margin-bottom:17px;}
.fo-register-kicker{
  width:max-content;
  margin-bottom:10px;
  padding:5px 10px;
  border-radius:999px;
  background:#edf7f1;
  color:#0b7040;
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.fo-register-head h1{
  margin:0 0 7px;
  color:#0f172a;
  font-size:34px;
  line-height:1.05;
  font-weight:950;
  letter-spacing:-.03em;
}
.fo-register-head p{margin:0;color:#64748b;font-size:14px;line-height:1.45;font-weight:650;}
.fo-register-tabs{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:17px 0 0;
  border-bottom:1px solid rgba(226,232,240,.95);
}
.fo-register-tab{
  appearance:none;
  border:1px solid rgba(203,213,225,.95);
  border-bottom:0;
  background:rgba(248,250,252,.92);
  color:#334155;
  padding:10px 13px;
  border-radius:15px 15px 0 0;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
  transition:background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.fo-register-tab:hover{background:#f0fdf4;transform:translateY(-1px);}
.fo-register-tab.is-active{
  background:linear-gradient(135deg,#18a451 0%,#0f8746 54%,#0b7040 100%);
  color:#fff;
  border-color:#0f8746;
  box-shadow:0 -2px 16px rgba(15,127,67,.16);
}
.fo-register-panel{
  display:none;
  border:1px solid rgba(226,232,240,.95);
  border-top:0;
  border-radius:0 0 22px 22px;
  padding:22px;
  background:rgba(255,255,255,.92);
  box-shadow:0 16px 34px rgba(15,23,42,.07);
}
.fo-register-panel.is-active{display:block;animation:foRegCommercialIn .45s cubic-bezier(.18,.82,.22,1) both;}
@keyframes foRegCommercialIn{from{opacity:0;transform:translateY(10px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.fo-register-panel h2{margin:0 0 6px;font-size:22px;color:#0f172a;font-weight:950;letter-spacing:-.02em;}
.fo-register-panel .lead{margin:0 0 18px;color:#64748b;font-size:13px;line-height:1.45;font-weight:650;}
.fo-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.fo-field-full{grid-column:1/-1;}
.fo-register-page input,.fo-register-page select,.fo-register-page textarea{
  width:100%;
  padding:0 13px;
  min-height:47px;
  border:1px solid rgba(203,213,225,.95);
  border-radius:15px;
  background:rgba(248,250,252,.92);
  color:#0f172a;
  font:inherit;
  box-sizing:border-box;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease, transform .25s ease;
}
.fo-register-page textarea{min-height:92px;padding-top:12px;resize:vertical;}
.fo-register-page input:focus,.fo-register-page select:focus,.fo-register-page textarea:focus{
  background:#fff;
  border-color:#18a451;
  box-shadow:0 0 0 4px rgba(24,164,81,.13), 0 10px 26px rgba(15,23,42,.08);
  transform:translateY(-1px);
}
.fo-register-page label{display:grid;gap:6px;font-size:12px;font-weight:950;color:#334155;}
.fo-register-page label span{padding-left:2px;}
.fo-register-divider{border:0;border-top:1px solid rgba(226,232,240,.95);margin:16px 0;}
.fo-register-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
.fo-register-btn{
  border:0;
  border-radius:17px;
  background:linear-gradient(135deg,#18a451 0%,#0f8746 54%,#0b7040 100%);
  color:#fff;
  font-weight:950;
  padding:13px 20px;
  min-height:49px;
  cursor:pointer;
  box-shadow:0 17px 34px rgba(15,127,67,.24);
  transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.fo-register-btn:hover{transform:translateY(-2px);box-shadow:0 22px 44px rgba(15,127,67,.30);filter:saturate(1.05);}
.fo-register-note{font-size:12px;color:#64748b;background:#f8fafc;border:1px solid rgba(226,232,240,.95);border-radius:15px;padding:11px 13px;margin-top:14px;font-weight:700;}
.fo-error{background:#fff1f2;border:1px solid #fecdd3;color:#9f1239;padding:12px 14px;border-radius:15px;margin:0 0 16px;font-size:13px;font-weight:800;}
@media (max-width:920px){
  .fo-register-screen{padding:68px 12px 28px;align-items:flex-start;}
  .fo-register-card-shell{grid-template-columns:1fr;border-radius:24px;}
  .fo-register-visual{min-height:180px;}
  .fo-register-visual-copy strong{font-size:24px;max-width:420px;}
  .fo-register-visual-copy small{max-width:420px;}
  .fo-register-page{padding:28px 22px 24px;}
}
@media (max-width:760px){
  .fo-register-tabs{display:grid;grid-template-columns:1fr;gap:6px;border-bottom:0;}
  .fo-register-tab{border:1px solid rgba(203,213,225,.95);border-radius:14px;text-align:left;}
  .fo-register-tab.is-active{border-radius:14px;}
  .fo-register-panel{border-radius:18px;padding:16px;border-top:1px solid rgba(226,232,240,.95);}
  .fo-form-grid{grid-template-columns:1fr;}
  .fo-register-actions{justify-content:stretch;}
  .fo-register-btn{width:100%;}
  .fo-register-head h1{font-size:30px;}
}
@media (max-width:520px){
  .fo-register-screen{padding-top:58px;}
  .fo-register-card-shell{border-radius:20px;}
  .fo-register-visual{min-height:145px;}
  .fo-register-brand-pill{top:12px;left:12px;padding:6px 10px;font-size:12px;}
  .fo-register-visual-copy{left:16px;right:16px;bottom:14px;}
  .fo-register-visual-copy span{font-size:11px;margin-bottom:6px;}
  .fo-register-visual-copy strong{font-size:20px;}
  .fo-register-visual-copy small{display:none;}
}


/* 161 · Placeholder visual reCAPTCHA v2 + ajuste responsive auth */
.fo-recaptcha-slot{
  width:304px;
  max-width:100%;
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin:3px 0 2px;
  border-radius:8px;
}
.fo-recaptcha-slot img{
  width:304px;
  max-width:100%;
  height:auto;
  display:block;
  border-radius:5px;
  filter:drop-shadow(0 10px 20px rgba(15,23,42,.08));
}
.fo-recaptcha-slot-register{
  margin-top:15px;
  margin-bottom:2px;
}
@media (max-width:920px){
  .fo-login-screen,.fo-register-screen{
    min-height:auto;
    padding-left:12px !important;
    padding-right:12px !important;
  }
  .fo-login-card,.fo-register-card-shell{
    width:100% !important;
    max-width:680px;
  }
}
@media (max-width:620px){
  .fo-login-screen,.fo-register-screen{
    padding-top:52px !important;
    padding-bottom:18px !important;
  }
  .fo-login-card,.fo-register-card-shell{
    border-radius:18px !important;
    box-shadow:0 18px 46px rgba(15,23,42,.14) !important;
  }
  .fo-login-visual,.fo-register-visual{
    min-height:118px !important;
  }
  .fo-login-visual-copy strong,.fo-register-visual-copy strong{
    font-size:19px !important;
  }
  .fo-login-panel,.fo-register-page{
    padding:20px 15px 18px !important;
  }
  .fo-login-panel h1,.fo-register-head h1{
    font-size:28px !important;
  }
  .fo-login-lead,.fo-register-head p{
    font-size:13px !important;
    margin-bottom:14px !important;
  }
  .fo-register-panel{
    padding:14px !important;
  }
  .fo-register-panel .lead{
    margin-bottom:13px !important;
  }
  .fo-form-grid{
    gap:9px !important;
  }
  .fo-register-page input,.fo-register-page select,.fo-register-page textarea,.fo-login-field input{
    min-height:44px !important;
    height:auto;
    border-radius:13px !important;
  }
  .fo-login-submit,.fo-register-btn{
    min-height:46px !important;
    height:auto !important;
  }
  .fo-recaptcha-slot{
    width:100%;
    min-height:auto;
    justify-content:center;
    margin-top:7px;
  }
  .fo-recaptcha-slot img{
    width:min(304px,100%);
  }
}
@media (max-width:380px){
  .fo-login-panel,.fo-register-page{
    padding-left:12px !important;
    padding-right:12px !important;
  }
  .fo-register-tabs{
    gap:5px !important;
  }
  .fo-register-tab{
    padding:9px 11px !important;
    font-size:12px !important;
  }
}

/* 162 - Microinteracciones auth: focus, OK y teléfono Argentina */
.fo-login-field,
.fo-register-page label{
  position:relative;
}
.fo-login-field input,
.fo-register-page input,
.fo-register-page select,
.fo-register-page textarea{
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease, transform .25s ease, filter .35s ease;
}
.fo-login-field.fo-field-ok::after,
.fo-register-page label.fo-field-ok::after{
  content:'✓';
  position:absolute;
  right:12px;
  top:34px;
  width:19px;
  height:19px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#20b85a,#0f8746);
  color:#fff;
  font-size:12px;
  font-weight:950;
  box-shadow:0 7px 16px rgba(15,127,67,.24);
  pointer-events:none;
  animation:foAuthOkIn .42s cubic-bezier(.18,.82,.22,1) both;
}
.fo-register-page label.fo-field-ok:has(select)::after{right:34px;}
.fo-register-page label.fo-phone-field.fo-field-ok::after{right:12px;top:34px;}
.fo-login-field.fo-field-ok input,
.fo-register-page label.fo-field-ok input:not(.fo-phone-prefix),
.fo-register-page label.fo-field-ok select,
.fo-register-page label.fo-field-ok textarea{
  border-color:rgba(24,164,81,.72);
  background:#fff;
  box-shadow:0 0 0 3px rgba(24,164,81,.10), inset 0 1px 0 rgba(255,255,255,.85);
}
.fo-login-field.fo-field-pulse input,
.fo-register-page label.fo-field-pulse input:not(.fo-phone-prefix),
.fo-register-page label.fo-field-pulse select,
.fo-register-page label.fo-field-pulse textarea{
  animation:foAuthSelectedPulse 1.15s ease both;
}
@keyframes foAuthOkIn{
  from{opacity:0;transform:translateY(4px) scale(.7);filter:blur(3px)}
  to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
}
@keyframes foAuthSelectedPulse{
  0%{filter:blur(0);transform:translateY(0)}
  22%{filter:blur(1.5px);transform:translateY(-1px);box-shadow:0 0 0 6px rgba(24,164,81,.13), 0 14px 28px rgba(15,23,42,.08)}
  100%{filter:blur(0);transform:translateY(0)}
}
.fo-login-field.fo-field-ok input,
.fo-register-page label.fo-field-ok input,
.fo-register-page label.fo-field-ok select{
  padding-right:40px;
}
.fo-phone-field .fo-phone-row{
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  gap:4px;
  align-items:center;
}
.fo-register-page .fo-phone-prefix{
  text-align:center;
  padding:0 8px;
  color:#0b7040;
  font-weight:950;
  background:#edf7f1;
  border-color:rgba(24,164,81,.24);
  cursor:default;
}
.fo-register-page .fo-phone-digits{
  padding-right:40px;
}
.fo-phone-field.fo-field-ok .fo-phone-digits{
  border-color:rgba(24,164,81,.72);
}
@media (max-width:520px){
  .fo-phone-field .fo-phone-row{grid-template-columns:68px minmax(0,1fr);gap:3px;}
  .fo-login-field.fo-field-ok::after,
  .fo-register-page label.fo-field-ok::after{right:10px;}
}

/* 165 - Password visible/oculto, limpiar y anti-autofill auth */
.fo-autofill-decoy{
  position:absolute !important;
  left:-9999px !important;
  top:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
}
.fo-password-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px 82px;
  gap:4px;
  align-items:center;
}
.fo-login-field.fo-password-field input,
.fo-register-page label.fo-password-field input{
  min-width:0;
  padding-right:36px !important;
}
.fo-password-eye,
.fo-auth-clear{
  height:47px;
  border:1px solid rgba(203,213,225,.95);
  background:rgba(248,250,252,.95);
  color:#0f172a;
  border-radius:14px;
  font-weight:950;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.fo-password-eye{
  font-size:16px;
  line-height:1;
  display:grid;
  place-items:center;
  padding:0;
}
.fo-auth-clear{
  font-size:12px;
  color:#0b7040;
  background:#edf7f1;
  border-color:rgba(24,164,81,.24);
  padding:0 10px;
}
.fo-password-eye:hover,
.fo-auth-clear:hover{
  transform:translateY(-1px);
  background:#fff;
  border-color:rgba(24,164,81,.45);
  box-shadow:0 10px 22px rgba(15,23,42,.08);
}
.fo-password-eye:active,
.fo-auth-clear:active{transform:translateY(0)}
.fo-login-field.fo-password-field.fo-field-ok::after,
.fo-register-page label.fo-password-field.fo-field-ok::after{
  right:132px;
  top:34px;
}
.fo-login-field.fo-password-field.fo-field-ok input,
.fo-register-page label.fo-password-field.fo-field-ok input{
  padding-right:36px !important;
}
@media (max-width:520px){
  .fo-password-row{grid-template-columns:minmax(0,1fr) 40px 72px;gap:3px;}
  .fo-password-eye,.fo-auth-clear{height:44px;border-radius:13px;}
  .fo-auth-clear{font-size:11px;padding:0 7px;}
  .fo-login-field.fo-password-field.fo-field-ok::after,
  .fo-register-page label.fo-password-field.fo-field-ok::after{right:116px;top:33px;}
}

/* 166 - Ojito vectorial real + panel según usuario */
.fo-password-eye{
  position:relative;
  color:transparent !important;
  font-size:0 !important;
  overflow:hidden;
}
.fo-password-eye::before,
.fo-password-eye::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.fo-password-eye::before{
  width:22px;
  height:14px;
  border:2px solid #0f172a;
  border-radius:999px 999px 999px 999px / 80% 80% 80% 80%;
  background:rgba(255,255,255,.55);
  box-shadow:0 3px 8px rgba(15,23,42,.08);
}
.fo-password-eye::after{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#0b7040;
  box-shadow:0 0 0 2px rgba(11,112,64,.10);
}
.fo-password-eye.is-visible::before{
  border-color:#0b7040;
  background:#edf7f1;
}
.fo-password-eye.is-visible::after{
  width:25px;
  height:2px;
  border-radius:999px;
  background:#9f1239;
  box-shadow:none;
  transform:translate(-50%,-50%) rotate(-38deg);
}
.fo-password-row input[data-password-hidden]{
  display:none !important;
}
.site-menu-dropdown a[href*="admin"],
.site-menu-dropdown a[href*="provider"],
.site-menu-dropdown a[href*="excursionista"],
.site-menu-dropdown a[href*="anunciante"]{
  color:#075a35;
  background:rgba(237,247,241,.72);
  border:1px solid rgba(24,164,81,.14);
}

/* 167 - Recuperación de contraseña + ojito con imagen limpia */
.fo-login-help-row{
  display:flex;
  justify-content:flex-end;
  margin:-2px 0 2px;
}
.fo-login-help-row a{
  color:#0b7040;
  font-size:12.5px;
  font-weight:900;
  text-decoration:none;
}
.fo-login-help-row a:hover{text-decoration:underline;}
.fo-login-alert-ok{
  background:#ecfdf5 !important;
  color:#065f46 !important;
  border-color:rgba(15,118,110,.18) !important;
}
.fo-auth-card-single{max-width:960px;}
.fo-auth-recovery-form,.fo-auth-reset-form{margin-top:6px;}
.fo-password-eye{
  color:inherit !important;
  font-size:0 !important;
  overflow:hidden;
}
.fo-password-eye::before,
.fo-password-eye::after{
  display:none !important;
  content:none !important;
}
.fo-password-eye img{
  width:25px;
  height:25px;
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 2px 4px rgba(15,23,42,.10));
  transition:transform .22s ease, filter .22s ease, opacity .22s ease;
}
.fo-password-eye:hover img{transform:scale(1.06);filter:drop-shadow(0 4px 7px rgba(15,23,42,.16));}
.fo-password-eye.is-visible img{opacity:.95;}
.fo-password-row-reset{grid-template-columns:minmax(0,1fr) 42px;}
.fo-auth-reset-form .fo-password-field.fo-field-ok::after{right:58px;}
@media(max-width:520px){
  .fo-login-help-row{justify-content:center;margin-top:0;}
  .fo-password-eye img{width:23px;height:23px;}
  .fo-password-row-reset{grid-template-columns:minmax(0,1fr) 40px;}
  .fo-auth-reset-form .fo-password-field.fo-field-ok::after{right:54px;}
}

/* 168 - Ojitos PNG propios + link recuperar alineado */
.fo-password-eye{
  background:#fff !important;
  border-color:rgba(203,213,225,.95) !important;
  display:grid !important;
  place-items:center !important;
  overflow:hidden !important;
}
.fo-password-eye img{
  width:24px !important;
  height:24px !important;
  max-width:24px !important;
  max-height:24px !important;
  object-fit:contain !important;
  display:block !important;
  opacity:.9;
  filter:drop-shadow(0 2px 4px rgba(15,23,42,.10));
}
.fo-password-eye:hover img{opacity:1;transform:scale(1.05);}
.fo-login-link-under{
  justify-content:flex-start;
  margin:14px 0 0;
  padding-top:12px;
  border-top:1px solid rgba(226,232,240,.88);
}
.fo-login-link-under a{
  color:#0b7040;
  font-size:13px;
  font-weight:950;
  text-decoration:none;
}
.fo-login-register{
  margin-top:6px !important;
  padding-top:0 !important;
  border-top:0 !important;
}
@media(max-width:520px){
  .fo-password-eye img{width:22px !important;height:22px !important;}
  .fo-login-link-under{justify-content:center;margin-top:12px;}
}


/* 172 · Botón Regresar en auth + foco de resultados sin rectángulo negro */
.fo-auth-card-with-back{
  position:relative;
}
.fo-auth-regresar{
  position:absolute;
  right:16px;
  top:16px;
  z-index:8;
  border:1px solid rgba(15,76,92,.16);
  background:rgba(255,255,255,.88);
  color:#0f4c5c;
  border-radius:14px;
  padding:9px 16px;
  font-size:13px;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  text-decoration:none;
  box-shadow:0 10px 24px rgba(15,23,42,.14);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:transform .22s ease, background .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.fo-auth-regresar:hover{
  background:#fff;
  transform:translateY(-1px);
  border-color:rgba(15,76,92,.25);
  box-shadow:0 14px 30px rgba(15,23,42,.18);
}
.content-shell:focus,
.content-shell:focus-visible,
#searchResultsAnchor:focus,
#searchResultsAnchor:focus-visible{
  outline:0!important;
}
.content-shell.fo-results-focus{
  outline:0!important;
  border-radius:24px;
  box-shadow:0 0 0 1px rgba(24,164,81,.08), 0 0 34px rgba(24,164,81,.18), 0 16px 46px rgba(15,76,92,.08);
}
@media(max-width:520px){
  .fo-auth-regresar{right:12px;top:12px;padding:8px 13px;font-size:12px;border-radius:12px;}
}

/* 173 - Reserva: card contenedora general + botón MP comercial */
.fo-reserva-shell{
  position:relative;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(214,224,238,.95);
  border-radius:26px;
  padding:18px;
  box-shadow:0 24px 70px rgba(11,31,73,.12);
  overflow:hidden;
}
.fo-reserva-shell::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 0%, rgba(0,158,227,.08), transparent 34%),
    radial-gradient(circle at 100% 18%, rgba(5,150,105,.06), transparent 30%);
  z-index:0;
}
.fo-reserva-shell > *{
  position:relative;
  z-index:1;
}
.fo-reserva-shell .fo-ticket-topbar{
  margin-bottom:18px;
}
.fo-regresar-btn{
  background:rgba(255,255,255,.88) !important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-color:rgba(214,224,238,.98) !important;
  color:#09265d !important;
  box-shadow:0 10px 24px rgba(11,31,73,.10) !important;
}
.fo-mp-pay-btn{
  width:100%;
  min-height:56px;
  padding:0 !important;
  overflow:hidden;
  display:grid !important;
  grid-template-columns:minmax(142px, 38%) 1fr;
  align-items:stretch;
  border:1px solid rgba(255,255,255,.72) !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.72)) !important;
  box-shadow:0 14px 28px rgba(0,158,227,.20), inset 0 1px 0 rgba(255,255,255,.95) !important;
  transform:translateZ(0);
  text-decoration:none !important;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
  position:relative;
  isolation:isolate;
}
.fo-mp-pay-btn::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,0) 42%);
  z-index:2;
}
.fo-mp-pay-logo{
  height:100%;
  min-height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  padding:8px 12px;
  position:relative;
  z-index:1;
}
.fo-mp-pay-logo img{
  display:block;
  width:100%;
  max-width:154px;
  height:auto;
  object-fit:contain;
}
.fo-mp-pay-text{
  height:100%;
  min-height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  background:linear-gradient(135deg,#009ee3,#007eb5);
  color:#fff;
  font-size:16px;
  font-weight:950;
  letter-spacing:.01em;
  text-shadow:0 1px 1px rgba(0,0,0,.18);
  position:relative;
  z-index:1;
}
.fo-mp-pay-btn:hover{
  filter:saturate(1.03) brightness(1.01) !important;
  transform:translateY(-1px);
  box-shadow:0 17px 32px rgba(0,158,227,.24), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
.fo-mp-pay-btn:active{
  transform:translateY(0);
  transition-duration:.08s;
}
.fo-mp-pay-btn--compact{
  min-height:48px;
  grid-template-columns:minmax(118px, 36%) 1fr;
}
.fo-mp-pay-btn--compact .fo-mp-pay-logo,
.fo-mp-pay-btn--compact .fo-mp-pay-text{
  min-height:48px;
}
.fo-mp-pay-btn--compact .fo-mp-pay-logo img{
  max-width:122px;
}
.fo-mp-pay-btn--compact .fo-mp-pay-text{
  font-size:14px;
  padding:0 12px;
}
.fo-mp-pay-btn--link{
  max-width:360px;
  margin:8px 0;
}
.fo-mp-pay-btn:disabled,
.fo-mp-pay-btn[disabled]{
  opacity:.58;
  cursor:not-allowed;
  filter:grayscale(.1);
}
@media (max-width:720px){
  .fo-reserva-shell{
    padding:12px;
    border-radius:22px;
  }
  .fo-mp-pay-btn{
    grid-template-columns:132px 1fr;
    min-height:54px;
  }
  .fo-mp-pay-btn--compact{
    grid-template-columns:112px 1fr;
  }
  .fo-mp-pay-logo,
  .fo-mp-pay-text{
    min-height:54px;
  }
  .fo-mp-pay-logo img{
    max-width:118px;
  }
  .fo-mp-pay-text{
    font-size:14px;
    padding:0 10px;
  }
}
@media (max-width:420px){
  .fo-mp-pay-btn{
    grid-template-columns:116px 1fr;
  }
  .fo-mp-pay-logo img{
    max-width:104px;
  }
}


/* 181 - Ajuste móvil/footer: logos de redes controlados sin tocar escritorio */
@media (max-width: 768px){
  .site-footer .footer-social-link{
    display:flex;
    align-items:center;
    gap:6px;
    min-height:28px;
    line-height:1.15;
  }
  .site-footer .footer-social-link img,
  .site-footer .footer-social img{
    width:20px !important;
    height:20px !important;
    min-width:20px !important;
    max-width:20px !important;
    max-height:20px !important;
    object-fit:contain !important;
    display:block !important;
  }
  .site-footer .footer-grid{
    gap:14px !important;
  }
  .site-footer .footer-social,
  .site-footer .footer-links,
  .site-footer .footer-legal{
    gap:6px !important;
  }
}

@media (max-width: 480px){
  .site-footer .footer-social-link img,
  .site-footer .footer-social img{
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    max-width:18px !important;
    max-height:18px !important;
  }
}


/* 182 - Fix definitivo footer redes: tamaño cerrado por clase propia + inline fallback */
.site-footer .footer-social-link{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
  min-height:24px !important;
}
.site-footer img.footer-social-icon,
.site-footer .footer-social-link > img.footer-social-icon{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  aspect-ratio:1 / 1 !important;
  object-fit:contain !important;
  display:inline-block !important;
  vertical-align:middle !important;
  flex:0 0 18px !important;
  transform:none !important;
}
@media (max-width:768px){
  .site-footer img.footer-social-icon,
  .site-footer .footer-social-link > img.footer-social-icon{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
    max-width:16px !important;
    max-height:16px !important;
    flex-basis:16px !important;
  }
}


/* MiRumbo v5 - logo oficial dentro de brand pills auth, sin duplicar */
.fo-login-brand-pill,
.fo-register-brand-pill{
  display:block !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  line-height:0 !important;
  max-width:calc(100% - 28px) !important;
}
.fo-auth-brand-logo{
  display:block !important;
  width:min(340px, 100%) !important;
  height:auto !important;
  border-radius:0 0 18px 0 !important;
  box-shadow:0 10px 24px rgba(15,23,42,.13) !important;
}
.fo-register-brand-pill .fo-auth-brand-logo{width:min(360px, 100%) !important;}
@media (max-width:760px){
  .fo-login-brand-pill,
  .fo-register-brand-pill{top:12px !important;left:12px !important;max-width:calc(100% - 24px) !important;}
  .fo-auth-brand-logo{width:min(250px, 100%) !important;border-radius:0 0 14px 0 !important;}
}

/* MiRumbo v7 - ajuste de ubicación de logos en hero/login/registro */
.fo-login-brand-pill,
.fo-register-brand-pill{
  top:0 !important;
  left:0 !important;
  max-width:calc(100% - 18px) !important;
  border-radius:0 0 22px 0 !important;
  overflow:hidden !important;
}
.fo-auth-brand-logo{
  border-radius:0 0 22px 0 !important;
  box-shadow:0 12px 28px rgba(15,23,42,.14) !important;
}
@media (max-width:760px){
  .fo-login-brand-pill,
  .fo-register-brand-pill{top:0 !important;left:0 !important;max-width:calc(100% - 14px) !important;border-radius:0 0 16px 0 !important;}
  .fo-auth-brand-logo{border-radius:0 0 16px 0 !important;}
}

/* MiRumbo v8 - subir card general de login y registro a 10px del borde superior */
.fo-login-screen,
.fo-register-screen{
  align-items:flex-start !important;
  padding-top:10px !important;
}
@media (max-width:820px){
  .fo-login-screen,
  .fo-register-screen{padding-top:10px !important;}
}
@media (max-width:520px){
  .fo-login-screen,
  .fo-register-screen{padding-top:10px !important;}
}
