
:root{
  /* ✅ NUEVO TONO ROJO (más moderno/limpio, menos “ladrillo”) */
  --brand:#b22222;          /* rojo principal */
  --brand-2:#8b1d1a;        /* rojo profundo */

  --ink:#0f172a; --muted:#6b7280; --soft:#f6f7fb; --paper:#fff;

  /* chips / glass */
  --chip:#ffffff26;
  --chip-h:#ffffff3b;

  /* sombras */
  --shadow:0 25px 60px rgba(0,0,0,.18);

  /* ✅ vars auxiliares para no repetir rgba del rojo */
  --brand-rgb:193,18,31;    /* = #c1121f */
  --brand2-rgb:120,0,0;     /* = #780000 */
}

/* Reset */
*{box-sizing:border-box}
body{
  margin:0;
  font-family:'Poppins',system-ui,Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
}

/* Topbar */
.topbar{
  position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:60;width:min(1200px,94%);
  border-radius:16px;padding:8px 12px;
  border:1.5px solid rgba(var(--brand-rgb), .60);
  background:rgba(var(--brand-rgb), .32);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 18px 45px rgba(0,0,0,.18)
}
.topbar.solid{ background:rgba(var(--brand-rgb), .95) }

.nav{display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand-logo{font-family:'Playfair Display',serif;font-weight:800;letter-spacing:2px;color:#fff;font-size:24px;text-decoration:none}
.menu{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.chip-nav{
  display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;text-transform:uppercase;
  font-size:13px;font-weight:800;letter-spacing:.3px;color:#fff;text-decoration:none;
  background:transparent;transition:background .2s, transform .15s ease
}
.chip-nav:hover{background:var(--chip-h);transform:translateY(-1px)}
.chip-nav.active{background:var(--chip);box-shadow:inset 0 0 0 1px #ffffff3d}
.nav-actions{display:flex;align-items:center;gap:10px}
.login{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--chip);color:#fff;text-decoration:none}
.login .avatar-mini{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#ffffff26;color:#fff;font-weight:900;font-size:14px;letter-spacing:.4px}
.hamburger{display:none;background:transparent;border:0;color:#fff;font-size:22px}
@media (max-width:940px){.menu{display:none}.hamburger{display:block}}

/* Page wrapper */
.page{max-width:1200px;margin:0 auto 60px;padding:0 16px}

/* ===== HERO ===== */
.hero.hero-mini{
  position:relative;
  overflow:hidden;
  min-height:clamp(340px, 62vh, 620px);
}

/* Full-bleed cuando el hero está dentro de .page */
.page > .hero.hero-mini{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:0;
  border-radius:0;
  box-shadow:none;
}

/* Capas del hero */
.hero-bg{ position:absolute; inset:0; }
.hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.38) 0%, rgba(0,0,0,.20) 30%, rgba(0,0,0,.65) 100%),
    radial-gradient(120% 100% at 0% 100%, rgba(0,0,0,.25) 0%, rgba(0,0,0,0) 60%);
}
.hero-content{
  position:absolute; inset:0;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding-left: clamp(20px, 6vw, 80px);  /* REDUCIDO: antes era 120px, ahora 80px (más a la izquierda) */
  padding-right:clamp(16px, 6vw, 64px);
  color:#fff; text-shadow:0 3px 12px rgba(0,0,0,.45);

  /* PARA SUBIR EL TEXTO */
  margin-top: -40px;  /* Valor negativo para subir */
}

.hero-content h1{
  margin:0 0 8px;  /* Reducí el margen inferior de 10px a 8px */
  font-weight:900; line-height:1.02;
  font-size:clamp(34px, 6vw, 64px);
  letter-spacing:.2px;
}

.hero-content h1 span{
  font-family:'Playfair Display',serif;
}

.hero-content p{
  margin:0;
  font-weight:700;
  opacity:.95;
  font-size:clamp(14px, 2vw, 20px);
}
/* ===== Policies (acordeón) ===== */
.policies-wrap{margin-top:24px}
.policy-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}

/* ✅ Animación “card pop” al abrir/cerrar */
.policy-item{
  border-radius:16px; overflow:hidden; position:relative;

  background:linear-gradient(180deg,rgba(var(--brand-rgb),.18),rgba(var(--brand-rgb),.10));
  border:1px solid rgba(var(--brand-rgb),.26);
  box-shadow:0 18px 40px rgba(var(--brand-rgb),.14);

  transform:translateY(0) scale(1);
  transition:
    transform .22s ease,
    box-shadow .25s ease,
    border-color .25s ease,
    background .25s ease;
}
.policy-item.open{
  transform:translateY(-2px) scale(1.005);
  border-color:rgba(var(--brand-rgb),.40);
  box-shadow:0 26px 55px rgba(var(--brand-rgb),.22);
}

/* ✅ Animación en el header al abrir/cerrar */
.policy-head{
  width:100%; border:0; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 20px;

  background:
    linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.06)),
    linear-gradient(90deg, rgba(var(--brand-rgb),.92), rgba(var(--brand2-rgb),.72));
  color:#fff;
  backdrop-filter:blur(8px);

  transition:filter .2s ease, transform .2s ease;
}
.policy-item.open .policy-head{ filter:saturate(1.05) contrast(1.02) }

.ph-left{display:flex;align-items:center;gap:14px}
.ph-icon{
  width:42px;height:42px;border-radius:12px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.18);color:#fff;

  /* ✅ micro animación */
  transform:translateZ(0);
  transition:transform .22s ease, background .22s ease;
}
.policy-item.open .ph-icon{
  transform:scale(1.05) rotate(-2deg);
  background:rgba(255,255,255,.24);
}

.ph-title{font-weight:900;letter-spacing:.2px;font-size:16px}
.ph-caret{transition:transform .28s ease, opacity .2s ease}
.policy-item.open .ph-caret{transform:rotate(180deg)}

/* ✅ Animación real del contenido (fade + slide + max-height) */
.policy-body{
  overflow:hidden;
  max-height:0;
  opacity:0;
  transform:translateY(-8px);
  transition:
    max-height .55s cubic-bezier(.2,.7,.2,1),
    opacity .25s ease,
    transform .25s ease;

  background:linear-gradient(180deg,#fff,#f9fafb);
}
.policy-item.open .policy-body{
  opacity:1;
  transform:translateY(0);
}

.policy-content{
  padding:20px 20px 22px; color:#111827; line-height:1.75;
  background:#fff; margin:14px; border-radius:14px;
  box-shadow:0 10px 24px rgba(0,0,0,.08);

  /* ✅ animación “contenido entra” (para acordeón) */
  opacity:0;
  transform:translateY(-6px);
  transition:opacity .25s ease .05s, transform .25s ease .05s;
}
.policy-item.open .policy-content{
  opacity:1;
  transform:translateY(0);
}

.policy-content h4{margin:1rem 0 .4rem;font-size:15px;color:var(--brand)}
.policy-content ul{margin:.4rem 0 .8rem 1.2rem}

/* Sub-acordeón */
.sub-accordion{display:grid;gap:10px}
.sub-item{
  border:1px solid #e5e7eb;border-radius:10px;
  background:linear-gradient(180deg,#fafafa,#f3f4f6);

  transform:translateY(0);
  transition:transform .18s ease, box-shadow .22s ease, border-color .22s ease;
}
.sub-item.open{
  transform:translateY(-1px);
  border-color:rgba(var(--brand-rgb),.22);
  box-shadow:0 14px 28px rgba(0,0,0,.08);
}
.sub-head{
  width:100%;border:0;background:transparent;
  padding:14px 16px;
  display:flex;justify-content:space-between;align-items:center;
  font-weight:800;color:#1f2937;cursor:pointer;border-radius:10px
}
.sub-head i{transition:transform .25s ease}
.sub-item.open .sub-head i{transform:rotate(180deg)}

.sub-body{
  overflow:hidden;max-height:0;
  opacity:0;
  transform:translateY(-6px);
  transition:max-height .40s cubic-bezier(.2,.7,.2,1), opacity .25s ease, transform .25s ease;
}
.sub-item.open .sub-body{
  opacity:1;
  transform:translateY(0);
}
.sub-content{
  padding:14px 16px;background:#fff;border-top:1px solid #e5e7eb;border-radius:0 0 10px 10px
}

/* ===== Tabla Garantías ===== */
.tabla-garantias{ width:100%; overflow-x:auto; margin-top:20px; }

.tabla-viajero{
  width:100%;
  border-collapse:collapse;
  font-family:'Poppins',system-ui,-apple-system,Arial,sans-serif;
  font-size:14px;
  border:1px solid #c5c5c5;
}
.tabla-viajero thead{ background:#f3f4f6; }
.tabla-viajero th, .tabla-viajero td{
  padding:12px 10px;
  border:1px solid #c5c5c5;
  text-align:left;
  vertical-align:top;
}
.tabla-viajero tbody tr:nth-child(even){ background:#fafafa; }
.tabla-viajero tbody tr:hover{ background:#ffecec; }

/* Columna del grupo */
.tabla-viajero .grupo{
  font-weight:700;
  color:var(--brand);
  white-space:nowrap;
}

/* Columna recomendada */
/* LDW = tercera columna */
.tabla-viajero th:nth-child(3),
.tabla-viajero td:nth-child(3){
  background:#ffe1e1;
  border-color:var(--brand);
  font-weight:600;
}
.tabla-viajero th.recomendado span{ font-size:12px; font-weight:400; }

/* Texto dentro de la categoría */
.cat-main{ font-weight:600; display:inline-block; margin-bottom:3px; }
.cat-sub{ font-size:12px; color:#6b7280; }

/* ===== Footer ===== */
.footer-elegant{background:linear-gradient(180deg,#111,#1a1a1a);color:#e5e7eb;margin-top:32px}
.footer-social{display:flex;justify-content:center;gap:20px;padding:18px 0 8px}
.footer-social a{width:44px;height:44px;border-radius:50%;background:#222;display:grid;place-items:center;color:#fff}
.footer-main{max-width:1200px;margin:0 auto;padding:20px 16px 28px;display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:26px;border-top:1px solid #2b2b2b}
.footer-locs{display:grid;gap:12px}
.loc-card{display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:10px 12px;border-radius:10px}
.footer-brand{text-align:center}
.footer-brand h2{font-family:'Playfair Display',serif;letter-spacing:3px;margin:0}
.brand-line{width:180px;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);margin:8px auto 0;opacity:.3}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.footer-links a{color:#e5e7eb;text-decoration:none;font-weight:600}
.footer-payments{max-width:1200px;margin:0 auto 18px;display:flex;flex-wrap:wrap;gap:18px;justify-content:center}
.footer-payments img{height:28px;background:#fff;padding:6px 10px;border-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.25)}
.footer-copy{text-align:center;color:#9ca3af;font-size:13px;padding:10px 0 18px;border-top:1px solid #2b2b2b}

/* ===== Responsive ===== */
@media (max-width:980px){
  .hero-bg img{ height:100%; }
}
@media (max-width:768px){
  .tabla-viajero{ font-size:12px; }
  .tabla-viajero th,.tabla-viajero td{ padding:8px 6px; }
}
@media (max-width:720px){
  .hero-content{ padding-left:22px; padding-right:22px; }
  .hero-content h1{ font-size:clamp(28px,8vw,40px) }
}

/* ✅ Accesibilidad: reduce motion */
@media (prefers-reduced-motion: reduce){
  .policy-item,
  .policy-head,
  .ph-icon,
  .ph-caret,
  .policy-body,
  .policy-content,
  .sub-item,
  .sub-body,
  .sub-head i{
    transition:none !important;
  }
}

/* ==========================================================
   ✅ GRID CARDS (estilo imagen) + MODAL
   (NO toca hero/nav/footer, solo políticas)
========================================================== */

/* Grid como la imagen */
.policies-wrap{ margin-top: 28px; }

.policies-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
}

@media (max-width: 980px){
  .policies-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
}
@media (max-width: 640px){
  .policies-grid{ grid-template-columns: 1fr; gap: 18px; }
}

/* Card estilo “caja limpia” */
.policy-card{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;

  padding: 34px 18px;
  min-height: 160px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: 14px;

  cursor:pointer;
  text-align:center;

  box-shadow:none;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.policy-card:hover{
  border-color: rgba(var(--brand-rgb), .35);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.policy-card:focus{
  outline:none;
  box-shadow: 0 0 0 4px rgba(var(--brand-rgb), .12);
  border-color: rgba(var(--brand-rgb), .45);
}

.pc-icon{
  width: 64px;
  height: 64px;
  display:grid;
  place-items:center;
  color: var(--brand);
  font-size: 36px;
  background: transparent;
  border:none;
  border-radius:0;
}

.pc-title{
  font-weight: 900;
  font-size: 18px;
  color: #111827;
  letter-spacing:.1px;
}

/* =========================
   ✅ MODAL (limpio y pro)
========================= */
.vj-modal{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display:none;
}
.vj-modal.open{ display:block; }

.vj-modal__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}

.vj-modal__dialog{
  position: relative;
  width: min(980px, 92vw);
  max-height: 86vh;
  margin: 6vh auto 0;
  background: #fff;
  border-radius: 16px;
  overflow:hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
  border: 1px solid rgba(255,255,255,.18);

  transform: translateY(10px);
  opacity: 0;
  transition: transform .22s ease, opacity .22s ease;
}

.vj-modal.open .vj-modal__dialog{
  transform: translateY(0);
  opacity: 1;
}

.vj-modal__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 14px 16px;

  background:
    linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.06)),
    linear-gradient(90deg, rgba(var(--brand-rgb),.92), rgba(var(--brand2-rgb),.72));
  color:#fff;
}

.vj-modal__title{
  margin:0;
  font-weight: 900;
  letter-spacing:.2px;
  font-size: 18px;
}

.vj-modal__close{
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 0;
  cursor: pointer;
  background: rgba(255,255,255,.18);
  color:#fff;
  display:grid;
  place-items:center;
  transition: background .18s ease, transform .18s ease;
}
.vj-modal__close:hover{ background: rgba(255,255,255,.26); transform: translateY(-1px); }

.vj-modal__body{
  padding: 18px;
  overflow:auto;
  max-height: calc(86vh - 62px);
  background: linear-gradient(180deg,#fff,#f9fafb);
}

/* bloquea scroll al abrir modal */
body.modal-open{ overflow:hidden; }

/* ✅ FIX CLAVE: policy-content en modal debe verse (no depende de .policy-item.open) */
.vj-modal__body .policy-content{
  margin: 0;
  border-radius: 14px;
  opacity: 1 !important;
  transform: none !important;
}

/* reduce motion */
@media (prefers-reduced-motion: reduce){
  .policy-card,
  .vj-modal__dialog{
    transition:none !important;
  }
}

/* ============================================================
   FORMULARIO EN HERO DE POLÍTICAS
============================================================ */

/* Contenedor principal del hero con formulario */
.hero-content-politicas {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
   padding: 20px 20px;
    color: #fff;
    margin-top: 0;
}

.hero-texto-superior {
    width: 100%;
    max-width: 1200px;
    margin-bottom: 40px;
    margin-top: 20px;
    padding-left: 20px;
    text-align: left;
    position: relative;
    left: -30px;;
}

.hero-texto-superior h1 {
    margin: 0 0 8px;
    font-weight: 900;
    line-height: 1.02;
    font-size: clamp(34px, 6vw, 64px);
    letter-spacing: .2px;
    text-align: left;
    color: white;
}

.hero-texto-superior h1 span {
    font-family: 'Playfair Display', serif;
}

.hero-texto-superior p {
    margin: 0;
    font-weight: 700;
    opacity: .95;
    font-size: clamp(14px, 2vw, 20px);
    text-align: left;
    color: white;
}
/* Wrapper del formulario */
.hero-buscador-wrapper {
    width: 100%;
    max-width: 1200px;
    display: flex;
    justify-content: center;

}


/* ESCRITORIO (>= 1125px) */
@media (min-width: 1125px) {

    .hero-texto-superior {
        width: 100%;
        max-width: 1200px;
        margin-bottom: 40px;
        margin-top: 70px !important;
        padding-left: 20px;
        text-align: left;
        position: relative;
        left: -30px;
    }

    .hero-texto-superior h1 {
        margin: 0 0 8px;
        font-weight: 900;
        line-height: 1.02;
        font-size: clamp(34px, 6vw, 64px);
        letter-spacing: .2px;
        text-align: left;
        color: white;
    }

    .hero-texto-superior h1 span {
        font-family: 'Playfair Display', serif;
    }

    .hero-texto-superior p {
        margin: 0;
        font-weight: 700;
        opacity: .95;
        font-size: clamp(14px, 2vw, 20px);
        text-align: left;
        color: white;
    }
}
/* TABLET (561px - 1124px) */
@media (min-width: 561px) and (max-width: 1124px) {
    .hero-texto-superior {
        left: -30px !important;
        padding-left: 15px !important;
        max-width: 95% !important;
    }

    .hero-texto-superior h1 {
        font-size: 60px !important;
        white-space: normal !important;
        word-break: break-word !important;
    }

    .hero-texto-superior p {
        font-size: 16px !important;
        max-width: 95% !important;
    }
}

/* MÓVIL (hasta 560px) */
@media (max-width: 560px) {
    .hero-texto-superior {
        left: -15px !important;
        padding-left: 5px !important;
        max-width: 95% !important;
    }

    .hero-texto-superior h1 {
        font-size: 40px !important;
        word-break: break-word !important;
    }

    .hero-texto-superior p {
        font-size: 14px !important;
        max-width: 95% !important;
    }
}

/* MÓVIL MUY PEQUEÑO */
@media (max-width: 380px) {
    .hero-texto-superior {
        left: -10px !important;
        padding-left: 5px !important;
    }

    .hero-texto-superior h1 {
        font-size: 24px !important;
    }
}
@media (max-width: 560px) {
    .hero-texto-superior {
        left: -15px;
        padding-left: 5px;
        max-width: 95%;
    }

    .hero-texto-superior h1 {
        font-size: 28px !important;
        word-break: break-word;
    }

    .hero-texto-superior p {
        font-size: 14px !important;
        max-width: 95%;
    }
}

@media (max-width: 380px) {
    .hero-texto-superior {
        left: -10px;
        padding-left: 5px;
    }

    .hero-texto-superior h1 {
        font-size: 24px !important;
    }
}

/* Contenedor del formulario */
#miBuscadorPoliticas {
    width: 100%;
    background: transparent;
}

/* Grid principal del formulario */
#miBuscadorPoliticas .search-grid {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    gap: 15px !important;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
     padding: 25px 25px 40px 25px;
    border-radius: 16px;
    box-shadow: 0 25px 50px rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.2);
}

/* ===== COLUMNA 1: LUGAR DE RENTA ===== */
#miBuscadorPoliticas .sg-col-location {
    flex: 1.5 !important;
    min-width: 280px !important;
}

#miBuscadorPoliticas .location-head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    height: 30px !important;
    margin-bottom: 8px !important;
}

#miBuscadorPoliticas .location-head .field-title {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: #333 !important;
    text-transform: uppercase !important;
    margin: 0 !important;
}

#miBuscadorPoliticas .inline-check {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 12px !important;
    color: #555 !important;
    white-space: nowrap !important;
}

#miBuscadorPoliticas .inline-check input[type="checkbox"] {
    width: 14px !important;
    height: 14px !important;
    accent-color: var(--brand) !important;
    margin: 0 !important;
}

#miBuscadorPoliticas .location-inputs-wrapper {
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    height: 48px !important;
}

#miBuscadorPoliticas .location-inputs-wrapper .field {
    flex: 1 !important;
    position: relative !important;
    height: 48px !important;
}

/* ===== ESTILOS UNIFICADOS PARA INPUTS Y SELECTS ===== */
#miBuscadorPoliticas select,
#miBuscadorPoliticas input {
    width: 100% !important;
    height: 48px !important;
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    color: #000000 !important;
    background: white !important;
    box-sizing: border-box !important;
    padding: 0 8px 0 36px !important;
}

#miBuscadorPoliticas select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    background-size: 12px !important;
}

#miBuscadorPoliticas select:focus,
#miBuscadorPoliticas input:focus {
    border-color: var(--brand) !important;
    box-shadow: 0 0 0 3px rgba(178,34,34,.15) !important;
    outline: none !important;
}

#miBuscadorPoliticas input::placeholder {
    color: #151515 !important;
    opacity: 0.8 !important;
}

/* ===== ICONOS ===== */
#miBuscadorPoliticas .field-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #333 !important;
    font-size: 14px !important;
    z-index: 3 !important;
    pointer-events: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 16px !important;
    height: 16px !important;
}

#miBuscadorPoliticas .location-inputs-wrapper .field-icon {
    display: flex !important;
}

/* ===== COLUMNA 2: FECHAS ===== */
#miBuscadorPoliticas .sg-col-datetime {
    flex: 2.2 !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 12px !important;
}

#miBuscadorPoliticas .sg-col-datetime .field {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

#miBuscadorPoliticas .solo-responsivo-izq {
    display: block !important;
    height: 30px !important;
    margin-bottom: 8px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #333 !important;
    text-transform: uppercase !important;
    line-height: 30px !important;
}

#miBuscadorPoliticas .datetime-row {
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    height: 48px !important;
}

#miBuscadorPoliticas .dt-field {
    flex: 1 !important;
    position: relative !important;
    height: 48px !important;
}

#miBuscadorPoliticas .dt-field .field-icon {
    display: flex !important;
    left: 12px !important;
    top: 50% !important;
}

/* ===== TIME FIELDS ===== */
#miBuscadorPoliticas .time-field {
    position: relative !important;
}

#miBuscadorPoliticas .time-field .field-icon {
    display: none !important;
}

#miBuscadorPoliticas .time-field::before {
    content: "\f017" !important;
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 400 !important;
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 16px !important;
    height: 16px !important;
    font-size: 14px !important;
    color: #333 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

/* ===== SELECTS DE HORA ===== */
#miBuscadorPoliticas .tp-selects {
    display: flex !important;
    gap: 8px !important;
    margin-top: 0 !important;
    width: 100% !important;
}

#miBuscadorPoliticas .tp-selects select {
    width: 100% !important;
    height: 48px !important;
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    color: #666 !important;
    background: white !important;
    padding: 0 8px 0 36px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    background-size: 12px !important;
}

#miBuscadorPoliticas .tp-hidden-input {
    display: none !important;
}

/* ===== COLUMNA 3: BOTÓN ===== */
#miBuscadorPoliticas .sg-col-submit {
    flex: 0.35 !important;
    min-width: 90px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
}

#miBuscadorPoliticas .sg-col-submit::before {
    content: "";
    display: block !important;
    height: 38px !important;
    visibility: hidden !important;
}

#miBuscadorPoliticas .actions {
    height: 48px !important;
    width: 100% !important;
}

#miBuscadorPoliticas .actions button {
    width: 100% !important;
    height: 48px !important;
    background: var(--brand) !important;
    color: white !important;
    border: none !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    transition: background 0.2s ease !important;
}

#miBuscadorPoliticas .actions button:hover {
    background: #8b1a1a !important;
}

/* ===== CHECKBOX  ===== */
#dropoffWrapperPoliticas {
    display: none !important;
    transition: opacity 0.3s ease, visibility 0.3s ease !important;
    width: 100% !important;
}


#differentDropoffPoliticas:checked ~ * #dropoffWrapperPoliticas,
#differentDropoffPoliticas:checked + * #dropoffWrapperPoliticas,
#differentDropoffPoliticas:checked ~ .location-inputs-wrapper #dropoffWrapperPoliticas {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

#dropoffWrapperPoliticas[style*="display: block"] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

#dropoffWrapperPoliticas .select2-container {
    width: 100% !important;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
    .hero-content-politicas {
        margin-top: 0;
        justify-content: flex-start;
        padding-top: 100px;
    }

    .hero-texto-superior {
        margin-bottom: 20px;
        padding-left: 20px;
    }

    #miBuscadorPoliticas .search-grid {
        flex-direction: column !important;
        gap: 15px !important;
        padding: 20px !important;
    }

    #miBuscadorPoliticas .sg-col-location,
    #miBuscadorPoliticas .sg-col-datetime,
    #miBuscadorPoliticas .sg-col-submit {
        width: 100% !important;
        min-width: 100% !important;
    }

    #miBuscadorPoliticas .location-inputs-wrapper {
        flex-direction: column !important;
        height: auto !important;
        gap: 10px !important;
    }

    #miBuscadorPoliticas .sg-col-datetime {
        flex-direction: column !important;
        gap: 15px !important;
    }

    #miBuscadorPoliticas .sg-col-submit::before {
        display: none !important;
    }

    #miBuscadorPoliticas .actions button {
        height: 55px !important;
        font-size: 16px !important;
    }
}

@media (max-width: 560px) {
    .hero-content-politicas {
        padding-top: 80px;
    }

    .hero-texto-superior h1 {
        font-size: 32px !important;
    }

    .hero-texto-superior p {
        font-size: 16px !important;
    }

    #miBuscadorPoliticas .search-grid {
        padding: 15px !important;
    }

    #miBuscadorPoliticas .datetime-row {
        flex-direction: row !important;
        gap: 5px !important;
    }

    #miBuscadorPoliticas select,
    #miBuscadorPoliticas input {
        height: 45px !important;
        font-size: 14px !important;
        padding-left: 32px !important;
    }

    #miBuscadorPoliticas .solo-responsivo-izq {
        font-size: 12px !important;
        height: 25px !important;
    }
}

@media (max-width: 380px) {
    .hero-texto-superior h1 {
        font-size: 28px !important;
    }

    #miBuscadorPoliticas .datetime-row {
        flex-direction: column !important;
        gap: 8px !important;
    }

    #miBuscadorPoliticas .dt-field {
        width: 100% !important;
    }
}
/* ============================================================
    ALERTAS - POLÍTICAS
============================================================ */
#miBuscadorPoliticas .field-error,
#miBuscadorPoliticas input.field-error,
#miBuscadorPoliticas select.field-error,
#miBuscadorPoliticas input[id="pickupDatePoliticas"].field-error,
#miBuscadorPoliticas input[id="dropoffDatePoliticas"].field-error,
#miBuscadorPoliticas .flatpickr-input.field-error,
#miBuscadorPoliticas .tp-selects select.field-error {
    border: 2px solid #e53935 !important;
    outline: none !important;
    box-shadow: none !important;
    background-color: #fff !important;
}

#miBuscadorPoliticas .field-success,
#miBuscadorPoliticas input.field-success,
#miBuscadorPoliticas select.field-success,
#miBuscadorPoliticas input[id="pickupDatePoliticas"].field-success,
#miBuscadorPoliticas input[id="dropoffDatePoliticas"].field-success,
#miBuscadorPoliticas .flatpickr-input.field-success,
#miBuscadorPoliticas .tp-selects select.field-success {
    border: 2px solid #43a047 !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Para Select2 */
#miBuscadorPoliticas select.field-error + .select2-container .select2-selection,
#miBuscadorPoliticas .select2-container .select2-selection.field-error {
    border: 2px solid #e53935 !important;
}

#miBuscadorPoliticas select.field-success + .select2-container .select2-selection,
#miBuscadorPoliticas .select2-container .select2-selection.field-success {
    border: 2px solid #43a047 !important;
}
#miBuscadorPoliticas select:not(.field-error):not(.field-success),
#miBuscadorPoliticas input:not(.field-error):not(.field-success),
#miBuscadorPoliticas input[id="pickupDatePoliticas"]:not(.field-error):not(.field-success),
#miBuscadorPoliticas input[id="dropoffDatePoliticas"]:not(.field-error):not(.field-success),
#miBuscadorPoliticas .flatpickr-input:not(.field-error):not(.field-success) {
    border: 1px solid #ccc !important;
}

/* Mensajes de error */
#miBuscadorPoliticas .error-msg {
    color: #e53935 !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    position: absolute !important;
    bottom: -18px !important;
    left: 12px !important;
    pointer-events: none !important;
    z-index: 10 !important;
    white-space: nowrap !important;
    background: transparent !important;
}
#miBuscadorPoliticas .field,
#miBuscadorPoliticas .dt-field,
#miBuscadorPoliticas .time-field,
#miBuscadorPoliticas .location-inputs-wrapper .field {
    position: relative !important;
    overflow: visible !important;
}

/*==========================================================
   FLATPICKR - ESTILO ÚNICO (CORREGIDO)
========================================================== */
.flatpickr-calendar {
    z-index: 999999 !important;
    border: 0 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.25) !important;
    font-family: 'Poppins', system-ui, Arial, sans-serif !important;
}

.flatpickr-calendar.open {
    width: min(860px, 94vw) !important;
}

.flatpickr-months {
    background: #b22222 !important;
    color: white !important;
}

.flatpickr-months * {
    color: white !important;
}

.flatpickr-months .flatpickr-month {
    height: 64px !important;
    color: white !important;
}

.flatpickr-current-month {
    color: white !important;
    font-weight: 900 !important;
    font-size: 22px !important;
    padding-top: 14px !important;
}

.flatpickr-current-month .cur-month,
.flatpickr-current-month .cur-year,
.flatpickr-current-month .numInputWrapper span {
    color: white !important;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    fill: white !important;
    opacity: 1 !important;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    fill: white !important;
}

.flatpickr-weekdays {
    background: white !important;
    border-bottom: 6px solid #b22222 !important;
}

span.flatpickr-weekday {
    color: #b22222 !important;
    font-weight: 900 !important;
    background: white !important;
}

.flatpickr-rContainer,
.flatpickr-days {
    width: 100% !important;
}

.dayContainer {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

.flatpickr-day {
    border-radius: 12px !important;
    font-weight: 900 !important;
    height: 52px !important;
    line-height: 52px !important;
    max-width: none !important;
    color: #333 !important;
    width: calc(100% / 7) !important;
    flex: 0 0 calc(100% / 7) !important;
}

.flatpickr-day:hover {
    background: #ffe5e5 !important;
    color: #b22222 !important;
}

.flatpickr-day.today:not(.selected):not(.startRange):not(.endRange) {
    border: 2px solid #b22222 !important;
    color: #b22222 !important;
    background: white !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: #b22222 !important;
    border-color: #b22222 !important;
    color: white !important;
}

.flatpickr-day.inRange {
    background: #ffe5e5 !important;
    color: #b22222 !important;
}

.flatpickr-day.startRange {
    border-radius: 999px 0 0 999px !important;
}

.flatpickr-day.endRange {
    border-radius: 0 999px 999px 0 !important;
}

.flatpickr-day.startRange.endRange {
    border-radius: 999px !important;
}

.flatpickr-monthDropdown-months,
.flatpickr-current-month .numInputWrapper {
    z-index: 999999 !important;
}

.flatpickr-monthDropdown-months {
    background: #b22222 !important;
    color: white !important;
}

.flatpickr-monthDropdown-months option {
    background: white !important;
    color: #333 !important;
}

/* ESCRITORIO (>= 1125px) */
@media (min-width: 1125px) {
    .flatpickr-calendar {
        position: absolute !important;
        left: 50% !important;
        top: 120px !important;
        bottom: auto !important;
        transform: translateX(-50%) !important;
        width: 90vw !important;
        max-width: 1100px !important;
        min-width: 800px !important;
    }

    .flatpickr-calendar .flatpickr-day {
        height: 52px !important;
        line-height: 52px !important;
        font-size: 14px !important;
        border-radius: 12px !important;
    }



    .flatpickr-calendar .flatpickr-weekday {
        height: 50px !important;
        font-size: 14px !important;
        line-height: 50px !important;
    }

    .flatpickr-calendar .flatpickr-months .flatpickr-month {
        height: 65px !important;
    }

    .flatpickr-calendar .flatpickr-current-month {
        font-size: 26px !important;
        padding-top: 15px !important;
    }

    .flatpickr-months .flatpickr-prev-month svg,
    .flatpickr-months .flatpickr-next-month svg {
        width: 18px !important;
        height: 18px !important;
    }
}

/* TABLET (561px - 1124px) */
@media (min-width: 561px) and (max-width: 1124px) {
    .flatpickr-calendar {
        position: fixed !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;
        width: auto !important;
        max-width: 700px !important;
        min-width: 500px !important;
    }

    .flatpickr-calendar .flatpickr-day {
        height: 50px !important;
        line-height: 50px !important;
        font-size: 16px !important;
        border-radius: 12px !important;
    }

    .flatpickr-calendar .flatpickr-weekdays {
        height: 45px !important;
    }

    .flatpickr-calendar .flatpickr-weekday {
        font-size: 15px !important;
        line-height: 45px !important;
    }

    .flatpickr-calendar .flatpickr-months .flatpickr-month {
        height: 60px !important;
    }

    .flatpickr-calendar .flatpickr-current-month {
        font-size: 22px !important;
        padding-top: 12px !important;
    }

    .flatpickr-months .flatpickr-prev-month svg,
    .flatpickr-months .flatpickr-next-month svg {
        width: 16px !important;
        height: 16px !important;
    }

}
/* Capa de fondo */
.fp-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(3px);
    z-index: 999998;
    display: none;
    transition: opacity 0.3s ease;
}

.fp-overlay.active {
    display: block;
}
/* ==========================================================
   MÓVIL (hasta 560px)
========================================================== */
@media (max-width: 560px) {
.flatpickr-calendar {
    position: fixed !important;
    left: 50% !important;
     top: 10vh !important;
    padding-top: 30px !important;
    transform: translateX(-50%) !important;

}
.flatpickr-months .flatpickr-month {
    height: 50px !important;
}
    .flatpickr-current-month {
        padding-top: 10px !important;
        font-size: 20px !important;
    }

.flatpickr-calendar.open {
     width: min(420px, 90vw) !important;
    height: auto !important;
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    box-shadow: 0 20px 50px rgba(0,0,0,0.3) !important;

}

.flatpickr-months {
    margin-bottom: 8px !important;
}
.flatpickr-day {
    height: 62px !important;
    line-height: 62px !important;
    font-size: 14px !important;
}

.dayContainer {
    row-gap: 11px !important;
}
span.flatpickr-weekday {
        font-size: 13px !important;
        font-weight: 900 !important;
    }

}
/* MÓVIL MUY PEQUEÑO (hasta 380px) */
@media (max-width: 380px) {
    .flatpickr-calendar.open {
        width: min(450px, 95vw) !important;
    }

    .flatpickr-calendar .flatpickr-day {
        height: 38px !important;
        line-height: 38px !important;
        font-size: 13px !important;
    }
}

/* ==========================================================
   DIAS PASADOS - ESTILO GRIS
========================================================== */

.flatpickr-day.prevMonthDay {
    opacity: 0.4 !important;
    color: #999 !important;
    background: #f5f5f5 !important;
    cursor: default !important;
}
.flatpickr-day.disabled,
.flatpickr-day.flatpickr-disabled {
    opacity: 0.4 !important;
    color: #999 !important;
    background: #f5f5f5 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

.flatpickr-day.nextMonthDay {
    opacity: 1 !important;
    color: #333 !important;
    background: white !important;
    cursor: pointer !important;
}

.flatpickr-day.disabled:hover,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay:hover {
    background: #f5f5f5 !important;
    color: #999 !important;
}

.flatpickr-day.nextMonthDay:hover {
    background: #ffe5e5 !important;
    color: #b22222 !important;
}

.flatpickr-day.today.disabled,
.flatpickr-day.today.flatpickr-disabled {
    border: 2px solid #b22222 !important;
    color: #b22222 !important;
    background: white !important;
    opacity: 1 !important;
}

.flatpickr-day.selected,
.flatpickr-day.selected.disabled {
    background: #b22222 !important;
    color: white !important;
    opacity: 1 !important;
}

.flatpickr-day.inRange {
    background: #ffe5e5 !important;
    color: #b22222 !important;
}
/* ========================================================
   CONTROL DEL BUSCADOR EN MÓVIL/TABLET - CORREGIDO
=========================================================== */

/* ESCRITORIO (>= 1125px) */
@media (min-width: 1125px) {
    #miBuscadorPoliticas.search-card {
        display: block !important;
    }
    .d-block.d-xl-none {
        display: none !important;
    }
}

/* MÓVIL Y TABLET (<= 1124px) */
@media (max-width: 1124px) {
    #miBuscadorPoliticas.search-card {
        display: none !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        z-index: 99999 !important;
        background: #ffffff !important;
        margin: 0 !important;
        padding: 100px 20px 40px !important;
        overflow-y: auto !important;
        border-radius: 0 !important;
    }

    #miBuscadorPoliticas.search-card.active {
        display: block !important;
        padding-top: 60px !important;
    }


    body:has(#miBuscadorPoliticas.search-card.active) .hero-content-politicas .hero-texto-superior,
    body:has(#miBuscadorPoliticas.search-card.active) .hero-bg,
    body:has(#miBuscadorPoliticas.search-card.active) .hero-overlay,
    body:has(#miBuscadorPoliticas.search-card.active) .policies-wrap,
    body:has(#miBuscadorPoliticas.search-card.active) .footer-elegant,
    body:has(#miBuscadorPoliticas.search-card.active) .topbar,
    body:has(#miBuscadorPoliticas.search-card.active) .d-block.d-xl-none {
        display: none !important;
    }


    #miBuscadorPoliticas .btn-close {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        position: fixed !important;
        top: 50px !important;
        right: 25px !important;
        z-index: 100002 !important;
        width: 35px !important;
        height: 35px !important;
        background: #ffffff !important;
        border: 1px solid var(--brand) !important;
        border-radius: 50% !important;
        cursor: pointer !important;
    }

    #miBuscadorPoliticas .btn-close::before {
        content: "×" !important;
        display: block !important;
        font-size: 24px !important;
        font-weight: 400 !important;
        color: var(--brand) !important;
        line-height: 1 !important;
        transform: translateY(-1px) !important;
    }


    body:has(#miBuscadorPoliticas.search-card.active) {
        overflow: hidden !important;
    }
}

/* MÓVIL (menor a 560px)  */
@media (max-width: 560px) {
    #miBuscadorPoliticas.search-card.active {
        padding: 80px 15px 30px !important;
    }
}

/* MÓVIL MUY PEQUEÑO */
@media (max-width: 380px) {
    #miBuscadorPoliticas.search-card.active {
        padding: 70px 12px 25px !important;
    }
}

/* ============================================================
   CORRECCIÓN SOLO PARA MÓVIL Y TABLET
============================================================ */
@media (max-width: 1124px) {
    #miBuscadorPoliticas.search-card:not(.active) {
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(10px);
        padding: 25px 25px 40px 25px;
        border-radius: 16px;
        box-shadow: 0 25px 50px rgba(0,0,0,0.3);
        border: 1px solid rgba(255,255,255,0.2);
        margin-top: 20px;
    }

    #miBuscadorPoliticas.search-card.active {
        background: #ffffff !important;
        padding: 80px 20px 40px !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        border: none !important;
        margin-top: 0 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        z-index: 99999 !important;
        overflow-y: auto !important;
    }
    #miBuscadorPoliticas .search-grid {
        background: transparent !important;
        padding: 0 !important;
        box-shadow: none !important;
        border: none !important;
    }

    body:has(#miBuscadorPoliticas.search-card.active) .d-block.d-xl-none {
        display: none !important;
    }
}

@media (min-width: 561px) and (max-width: 1124px) {
    #miBuscadorPoliticas.search-card:not(.active) {
        max-width: 90%;
        margin-left: auto;
        margin-right: auto;
    }
}


@media (max-width: 560px) {
    #miBuscadorPoliticas.search-card:not(.active) {
        padding: 20px 15px 30px 15px !important;
        margin-top: 15px;
    }

    #miBuscadorPoliticas.search-card.active {
        padding: 70px 15px 30px !important;
    }
}
/* ============================================================
   ESTILOS PARA SELECT2
============================================================ */


.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #000000 !important;
    line-height: normal !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
}


.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #000000 !important;
    opacity: 0.8 !important;
}


.select2-container--default .select2-results__option {
    color: #000000 !important;
}


.select2-container--default .select2-results__option--highlighted[aria-selected] {
    color: white !important;
    background: var(--brand) !important;
}

.select2-container--default .select2-results__option[aria-selected="true"] {
    color: #000000 !important;
    background: #f5f5f5 !important;
}


.select2-container--default .select2-selection--single {
    height: 48px !important;
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 46px !important;
}
/* ===== BOTÓN DE CERRAR - ===== */
#miBuscadorPoliticas .btn-close-politicas {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 100002 !important;
    width: 40px !important;
    height: 40px !important;
    background: var(--brand) !important;
    border: none !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    box-shadow: 0 4px 12px rgba(178,34,34,0.3) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

#miBuscadorPoliticas .btn-close-politicas:hover {
    transform: scale(1.05) !important;
    box-shadow: 0 6px 16px rgba(178,34,34,0.4) !important;
}

#miBuscadorPoliticas .btn-close-politicas:active {
    transform: scale(0.95) !important;
}

#miBuscadorPoliticas .btn-close-politicas span {
    display: none !important;
}

#miBuscadorPoliticas .btn-close-politicas::before {
    content: "×" !important;
    display: block !important;
    font-size: 32px !important;
    font-weight: 300 !important;
    color: white !important;
    line-height: 1 !important;
    transform: translateY(-2px) !important;
}

/* Ajuste para móvil */
@media (max-width: 560px) {
    #miBuscadorPoliticas .btn-close-politicas {
        top: 15px !important;
        right: 15px !important;
        width: 36px !important;
        height: 36px !important;
    }

    #miBuscadorPoliticas .btn-close-politicas::before {
        font-size: 28px !important;
    }
}
@media (max-width: 768px) {

  #miBuscadorPoliticas .search-grid {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    padding: 20px !important;
  }

}
@media (max-width: 768px) {

  #miBuscadorPoliticas .location-inputs-wrapper {
    flex-direction: column !important;
    height: auto !important;
    gap: 10px !important;
  }

}
@media (max-width: 768px) {

  #miBuscadorPoliticas .sg-col-datetime {
    flex-direction: column !important;
    gap: 10px !important;
  }

  /* Mantener fecha y hora en horizontal hasta 560px */
  #miBuscadorPoliticas .datetime-row {
    flex-direction: row !important;
    gap: 10px !important;
    height: auto !important;
  }

  /* Cada campo ocupa 50% */
  #miBuscadorPoliticas .datetime-row .dt-field {
    flex: 1 !important;
    width: 50% !important;
  }

}
@media (max-width: 768px) {

  #miBuscadorPoliticas .field,
  #miBuscadorPoliticas .dt-field {
    height: auto !important;
  }

}
/* ==========================================================
   FIX SAFARI / MAC — POLITICAS

========================================================== */

/* Renderizado más estable en Mac */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Reset base para controles del buscador */
#miBuscadorPoliticas input,
#miBuscadorPoliticas select,
#miBuscadorPoliticas textarea,
#miBuscadorPoliticas button {
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit;
  box-sizing: border-box;
}

/* Checkbox: conservar estilo nativo */
#miBuscadorPoliticas input[type="checkbox"] {
  -webkit-appearance: checkbox;
  appearance: auto;
}

/* ==========================================================
   CAMPOS DEL BUSCADOR
========================================================== */
#miBuscadorPoliticas .field,
#miBuscadorPoliticas .dt-field,
#miBuscadorPoliticas .time-field,
#miBuscadorPoliticas .location-inputs-wrapper .field {
  position: relative !important;
  display: flex;
  align-items: center;
  overflow: visible !important;
}

#miBuscadorPoliticas input,
#miBuscadorPoliticas select {
  height: 48px !important;
  min-height: 48px !important;
  line-height: normal !important;
  border-radius: 8px !important;
}

/* Safari suele renderizar mejor así */
#miBuscadorPoliticas input,
#miBuscadorPoliticas select,
#miBuscadorPoliticas .tp-selects select {
  font-size: 16px !important;
}

/* ==========================================================
   ICONOS
========================================================== */
#miBuscadorPoliticas .field-icon,
#miBuscadorPoliticas .dt-field .field-icon,
#miBuscadorPoliticas .time-field::before {
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#miBuscadorPoliticas .field-icon {
  width: 16px !important;
  height: 16px !important;
  z-index: 3 !important;
  pointer-events: none !important;
}

/* ==========================================================
   SELECT2
========================================================== */
#miBuscadorPoliticas .select2-container {
  width: 100% !important;
}

#miBuscadorPoliticas .select2-container--default .select2-selection--single {
  height: 48px !important;
  min-height: 48px !important;
  display: flex !important;
  align-items: center !important;
  border: 1px solid #ccc !important;
  border-radius: 8px !important;
  padding-left: 36px !important;
  box-sizing: border-box !important;
}

#miBuscadorPoliticas .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: normal !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  padding-left: 0 !important;
  color: #000 !important;
}

#miBuscadorPoliticas .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  top: 0 !important;
}
.select2-results__options {
  max-height: 250px !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
.select2-container {
  touch-action: manipulation !important;
}

/* ==========================================================
   BOTONES
========================================================== */
#miBuscadorPoliticas .actions button,
#miBuscadorPoliticas .btn-close,
#miBuscadorPoliticas .btn-close-politicas {
  -webkit-appearance: none;
  appearance: none;
}

/* ==========================================================
   FONT AWESOME
========================================================== */
i.fa-solid,
i.fa-regular,
i.fa,
[class*="fa-"] {
  line-height: 1 !important;
  vertical-align: middle;
}


/* ==========================================================
                     BOTON DE BUSCAR
========================================================== */
@media (max-width: 560px) {

  .hero-content-politicas {
    position: relative !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;

    padding-top: 120px !important;
    padding-bottom: 40px !important;
    gap: 15px;
  }

  .hero-texto-superior {
    margin: 0 !important;
    padding-left: 10px !important;
  }

  .hero-buscador-wrapper {
    margin: 0 !important;
    padding: 0 10px !important;
  }

  #miBuscadorPoliticas.search-card:not(.active) {
    position: relative !important;
    margin-top: 0 !important;
  }

}
/* ==========================================================
   OCULTAR BOTÓN DE CERRAR EN ESCRITORIO
   ========================================================== */
@media (min-width: 1125px) {
    #miBuscadorPoliticas .btn-close-politicas,
    #btn-cerrar-buscador-politicas,
    .btn-close-politicas {
        display: none !important;
    }
}
/* ==========================================================
   FIX ESPECÍFICO PARA INPUTS TIME EN SAFARI/MAC
   ========================================================== */

/* Reset completo para inputs time en Safari */
#miBuscadorPoliticas input[type="time"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 0 8px 0 36px !important;
    height: 48px !important;
    min-height: 48px !important;
    line-height: normal !important;
    font-size: 16px !important;
    font-family: 'Poppins', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    background: white !important;
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
    color: #000000 !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

/* Eliminar el pseudo-elemento interno que Safari añade a los inputs time */
#miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-fields-wrapper {
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
}

#miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-hour-field,
#miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-minute-field,
#miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-ampm-field {
    padding: 0 2px !important;
    font-size: 16px !important;
    font-family: inherit !important;
    color: #000000 !important;
}

#miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-text {
    padding: 0 2px !important;
    color: #333 !important;
}

/* Eliminar los controles nativos (flechas arriba/abajo) */
#miBuscadorPoliticas input[type="time"]::-webkit-inner-spin-button,
#miBuscadorPoliticas input[type="time"]::-webkit-calendar-picker-indicator {
    display: none !important;
    -webkit-appearance: none !important;
    opacity: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}

/* Placeholder personalizado para inputs time en Safari (no soporta placeholder nativo) */
#miBuscadorPoliticas input[type="time"]:before {
    content: attr(placeholder) !important;
    position: absolute !important;
    left: 36px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #151515 !important;
    opacity: 0.8 !important;
    pointer-events: none !important;
    font-size: 15px !important;
}

#miBuscadorPoliticas input[type="time"]:focus:before,
#miBuscadorPoliticas input[type="time"]:not(:placeholder-shown):before {
    display: none !important;
}

/* Asegurar que el campo time-field mantenga la posición del ícono */
#miBuscadorPoliticas .time-field {
    position: relative !important;
}

#miBuscadorPoliticas .time-field::before {
    content: "\f017" !important;
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 400 !important;
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 16px !important;
    height: 16px !important;
    font-size: 14px !important;
    color: #333 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

/* Ocultar el field-icon dentro de time-field (evitar duplicados) */
#miBuscadorPoliticas .time-field .field-icon {
    display: none !important;
}

/* Focus state para inputs time en Safari */
#miBuscadorPoliticas input[type="time"]:focus {
    border-color: var(--brand) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(178, 34, 34, 0.15) !important;
}

/* Ajuste específico para Safari en Mac (alto DPI) */
@media not all and (min-resolution: 0.001dpcm) {
    @supports (-webkit-appearance: none) and (stroke-color: transparent) {
        #miBuscadorPoliticas input[type="time"] {
            line-height: 48px !important;
        }

        #miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-hour-field,
        #miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-minute-field {
            line-height: 46px !important;
        }
    }
}

/* Responsive: Ajustes para tablets y móviles en Safari */
@media (max-width: 768px) {
    #miBuscadorPoliticas input[type="time"] {
        font-size: 16px !important;
        height: 45px !important;
        min-height: 45px !important;
        padding-left: 32px !important;
    }

    #miBuscadorPoliticas input[type="time"]:before {
        left: 32px !important;
        font-size: 14px !important;
    }

    #miBuscadorPoliticas .time-field::before {
        left: 10px !important;
        font-size: 13px !important;
    }
}

@media (max-width: 560px) {
    #miBuscadorPoliticas input[type="time"] {
        height: 45px !important;
        min-height: 45px !important;
        font-size: 14px !important;
    }

    #miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-hour-field,
    #miBuscadorPoliticas input[type="time"]::-webkit-datetime-edit-minute-field {
        font-size: 14px !important;
    }
}

/* Ajuste para pantallas muy pequeñas */
@media (max-width: 380px) {
    #miBuscadorPoliticas input[type="time"] {
        padding-left: 28px !important;
    }

    #miBuscadorPoliticas input[type="time"]:before {
        left: 28px !important;
        font-size: 13px !important;
    }
}
