/* Additive presentation layer; original search/result styles remain available. */
[hidden] { display:none !important; }
:root { --nav-height: 75px; --search-offset: 100px; }
html { scroll-padding-top: var(--search-offset); }
#buscar, #ofertas, #como, #resultados, #results-list { scroll-margin-top: var(--search-offset); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.shell-icon { border:0; background:transparent; color:var(--ink); font:inherit; font-size:24px; cursor:pointer; min-width:44px; min-height:44px; border-radius:10px; }
.shell-icon:hover { background:#e7edf4; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.nav { justify-content:flex-start; gap:12px; padding:0 24px; z-index:70; min-height:64px; height:64px; background:rgba(255,255,255,.98); display:flex; align-items:center; }
.nav .brand { flex:none; }
.nav .brand img { height:48px; width:auto; }
.nav > .menu { display:none; }
.has-docked-search .nav { background:#ffffff; border-bottom:1px solid #e2e8f0; box-shadow:0 2px 10px rgba(15,23,42,0.06); }
@media(min-width:1024px) {
  .has-docked-search .nav .menu,
  .has-docked-search .nav .lang-sw,
  .has-docked-search .nav .install-btn { display:none !important; }
}
#site-drawer { position:fixed; inset:0 auto 0 0; margin:0; width:min(300px,88vw); height:100dvh; max-height:100dvh; max-width:100vw; padding:20px; border:0; background:white; color:var(--ink); box-shadow:var(--shadow); overflow-y:auto; }
#site-drawer::backdrop { background:rgba(15,23,42,.48); }
.drawer-head { display:flex; align-items:center; justify-content:space-between; padding-bottom:20px; }
.drawer-categories { display:flex; flex-direction:column; gap:5px; padding:16px 0; border-top:1px solid var(--line); }
.drawer-categories button { display:block; border:0; border-radius:8px; background:transparent; padding:13px 14px; text-align:left; font:inherit; color:var(--ink); cursor:pointer; }
.drawer-categories button[aria-current=page] { background:#f3e8ff; color:var(--brand); font-weight:700; }
.drawer-categories button:disabled { color:var(--muted); cursor:not-allowed; opacity:.6; }
#drawer-tools { display:flex; flex-direction:column; align-items:flex-start; gap:20px; border-top:1px solid var(--line); padding-top:20px; }
.hero { max-width:1280px; gap:28px; }
.hero-copy h1 { max-width:24ch; }
.search-slot { min-width:0; position:relative; }
.search-sentinel { position:absolute; top:0; width:1px; height:1px; pointer-events:none; }
.search-card { border:0; background:transparent; box-shadow:none; border-radius:14px; }
.tabbar-search { border:0; gap:16px; padding:0 0 22px; overflow:visible; }
.tabbar-search .tab { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-width:106px; min-height:70px; border:1px solid var(--line); border-radius:12px; padding:12px 16px; background:white; font-size:14px; box-shadow:0 3px 8px #0f172a0a; }
.tabbar-search .tab.active { background:var(--brand); border-color:var(--brand); color:white; }
.tabbar-search .cars-tab { cursor:not-allowed; color:var(--muted); background:#edf0f4; box-shadow:none; }
.cars-tab small { font-size:11px; }
#mode-tabs { display:none !important; } /* retained for existing handlers and deep links */
.search-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
#trip-mode { border:0; background:transparent; color:var(--ink); font:inherit; font-size:14px; padding:8px 2px; }
.search-grid { display:grid; grid-template-columns:minmax(220px,1.55fr) 52px minmax(220px,1.55fr) minmax(132px,.9fr) minmax(132px,.9fr) minmax(190px,1.2fr) auto; align-items:center; gap:0; width:min(1180px,100%); margin:0 auto; padding:12px 14px; background:linear-gradient(180deg,#fff 0%,#fcfaff 100%); border:1px solid var(--brand-line); border-radius:16px; box-shadow:0 18px 45px -24px rgba(50,4,148,.42), 0 4px 12px rgba(15,23,42,.06); }
.search-grid .field { min-width:0; padding:0 16px; border-right:1px solid var(--line); }
.search-grid label { font-size:10px; text-transform:none; letter-spacing:0; color:var(--muted); }
.search-grid input:not([type=hidden]), .search-grid .pax-btn { border:0; background:transparent; padding:7px 0; border-radius:4px; font-size:14px; height:34px; }
.search-grid .route-field input[type=text] { padding-right:22px; text-overflow:ellipsis; }
.clear-place { position:absolute; right:12px; bottom:5px; border:0; background:transparent; color:var(--muted); cursor:pointer; font-size:19px; width:24px; height:28px; }
#swap-route { display:flex; align-items:center; justify-content:center; width:42px; min-width:42px; height:42px; margin:0 5px; padding:0; border:1px solid var(--brand-line); border-radius:999px; background:var(--brand-soft); color:var(--brand-deep); font-size:22px; line-height:1; box-shadow:0 5px 14px -9px rgba(50,4,148,.65); }
#swap-route:hover { background:#ead7ff; color:var(--brand); transform:translateY(-1px); }
.search-grid .btn-buscar { grid-column:auto; margin-left:14px; padding:15px 24px; min-height:52px; min-width:126px; width:auto; border-radius:12px; background:linear-gradient(135deg,var(--brand-deep),var(--brand)); box-shadow:0 10px 22px -10px rgba(50,4,148,.72); letter-spacing:.01em; }
.search-extras { display:flex; justify-content:flex-end; width:min(1180px,100%); margin:0 auto; padding:14px 4px 4px; font-size:13px; }
#direct-label { display:flex; align-items:center; gap:8px; }
#direct-label[hidden] { display:none; }
#direct-only { accent-color:var(--brand); width:18px; height:18px; }
.search-note { background:transparent; border:0; padding:8px 4px; }
.pax-pop { width:390px; max-width:min(390px,calc(100vw - 32px)); padding:18px; text-align:left; max-height:calc(100dvh - 160px); overflow-y:auto; }
.pax-heading { display:block; margin-bottom:6px; }
#cabin-options { border:0; border-top:1px solid var(--line); padding-top:14px; margin-top:12px; display:flex; flex-wrap:wrap; gap:7px; }
#cabin-options[hidden] { display:none; }
#cabin-options legend { font-size:13px; font-weight:700; padding:0 5px 8px 0; }
#cabin-options button { border:1px solid #ccd5e1; border-radius:8px; background:white; color:var(--ink); padding:10px 12px; cursor:pointer; }
#cabin-options button[aria-pressed=true] { background:#f3e8ff; border-color:var(--brand); color:var(--brand); }
#cabin-options button:disabled { opacity:.5; cursor:not-allowed; }
#hotel-ages label { display:flex; justify-content:space-between; align-items:center; padding:7px 0; font-size:13px; }
#hotel-ages select { width:70px; padding:6px; }
.hotel-mode #swap-route, .hotel-mode .search-toolbar, .hotel-mode .search-extras { display:none; }
.hotel-mode .search-grid { grid-template-columns:2fr 1fr 1fr 1.5fr auto; }
#compact-search, #close-compact { display:none; }

/* The landing state is deliberately more generous than the compact header.
   The form should read as the main search surface when the page first opens. */
@media(min-width:1024px) {
  .search-card:not(.is-docked) .search-grid {
    min-height:82px;
    padding:14px;
  }
  .search-card:not(.is-docked) .search-grid .field {
    min-height:52px;
    justify-content:center;
  }
  .search-card:not(.is-docked) .search-grid input:not([type=hidden]),
  .search-card:not(.is-docked) .search-grid .pax-btn {
    min-height:40px;
    padding-top:10px;
    padding-bottom:10px;
    font-size:15px;
  }
  .search-card:not(.is-docked) .search-grid .btn-buscar {
    min-height:54px;
    padding-inline:28px;
    font-size:15px;
  }
}

.search-card.is-docked { position:fixed; z-index:75; }
.is-docked .tabbar-search, .is-docked .search-note, .is-docked .hotel-city-row { display:none !important; }
.is-docked .cal-pop { max-height:calc(100dvh - 160px); overflow:auto; }

@media(min-width:1024px) {
  .search-card.is-docked {
    top:0; left:50%; right:auto; width:min(calc(100vw - 180px), 1180px);
    transform:translateX(-50%); height:var(--nav-height,64px);
    background:transparent; padding:0; box-shadow:none; border-radius:0;
    display:flex; align-items:center; justify-content:center; gap:8px;
  }
  .is-docked .search-toolbar { margin:0; display:flex; align-items:center; flex-shrink:0; }
  .is-docked.hotel-mode .search-toolbar { display:none !important; }
  .is-docked.hotel-mode #swap-route { display:none !important; }
  .is-docked.hotel-mode .search-extras { display:none !important; }
  .is-docked #close-compact { display:none !important; }
  .is-docked #trip-mode {
    height:38px; background:#f8fafc; border:1px solid #cbd5e1; border-radius:8px;
    padding:0 8px; font-size:13px; font-weight:500; color:var(--ink); cursor:pointer;
  }
  .is-docked #trip-mode:hover { background:#ffffff; border-color:var(--brand); }
  .is-docked .search-grid {
    display:flex; align-items:stretch; height:38px; width:0; min-width:0; padding:0;
    background:#ffffff; border:1px solid #cbd5e1; border-radius:8px;
    box-shadow:0 1px 3px rgba(15,23,42,0.06); flex:1; max-width:1040px; overflow:visible;
  }
  .is-docked .search-grid:focus-within { border-color:var(--brand); box-shadow:0 0 0 2px rgba(104,24,213,0.15); }
  .is-docked .search-grid .field {
    min-width:0; height:100%; padding:2px 8px; border:none;
    border-right:1px solid #e2e8f0; display:flex; flex-direction:column;
    justify-content:center; position:relative; flex:1; overflow:visible;
  }
  .is-docked .search-grid .field:focus-within { z-index:3; }
  .is-docked .suggest { z-index:200; min-width:230px; max-height:320px; }
  .is-docked .search-grid .origin-field { flex:1.25; }
  .is-docked .search-grid .destination-field { flex:1.25; }
  .is-docked .search-grid .depart-field { flex:0.9; }
  .is-docked .search-grid #return-field { flex:0.9; }
  .is-docked .search-grid .passengers-field { flex:1.15; }
  .is-docked.hotel-mode .search-grid .destination-field { flex:2; }
  .is-docked.hotel-mode .search-grid .depart-field { flex:1; }
  .is-docked.hotel-mode .search-grid #return-field { flex:1; }
  .is-docked.hotel-mode .search-grid .passengers-field { flex:1.3; }
  .is-docked .search-grid label {
    font-size:8.5px; line-height:1; text-transform:none; letter-spacing:0;
    color:var(--muted); font-weight:600; margin-bottom:1px; white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis;
  }
  .is-docked .search-grid input:not([type=hidden]),
  .is-docked .search-grid .pax-btn {
    border:0; background:transparent; padding:0; font-size:12.5px; height:18px;
    line-height:18px; font-weight:600; color:var(--ink); text-overflow:ellipsis;
    white-space:nowrap; width:100%; cursor:pointer;
  }
  .is-docked .search-grid input[type=text]:focus { outline:none; }
  .is-docked #swap-route {
    border:none; border-right:1px solid #e2e8f0; background:#f8fafc;
    width:34px; min-width:34px; height:100%; margin:0; border-radius:0; font-size:14px; color:var(--muted);
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    padding:0; flex-shrink:0;
  }
  .is-docked #swap-route:hover { color:var(--brand); background:#f3e8ff; }
  .is-docked .clear-place { right:2px; bottom:2px; width:16px; height:16px; font-size:14px; line-height:1; display:flex; align-items:center; justify-content:center; }
  .is-docked .search-grid .btn-buscar {
    height:100%; min-height:100%; border:none; border-radius:0; margin:0;
    padding:0 20px; min-width:116px; font-size:13px; font-weight:700; background:var(--brand);
    color:white; display:flex; align-items:center; justify-content:center;
    gap:6px; flex-shrink:0; cursor:pointer; box-shadow:none;
  }
  .is-docked .search-grid .btn-buscar:hover { filter:brightness(1.08); }
  .is-docked .search-extras { width:auto; margin:0 0 0 10px; padding:0; display:flex; align-items:center; flex:0 0 auto; }
  .is-docked #direct-label { font-size:11.5px; color:var(--muted); font-weight:500; white-space:nowrap; gap:4px; cursor:pointer; }
  .is-docked #direct-only { width:14px; height:14px; margin:0; }
  .is-docked .pax-pop { top:calc(var(--nav-height,64px) + 6px) !important; right:24px; left:auto; }
  .is-docked .cal-pop { top:calc(var(--nav-height,64px) + 6px) !important; }
}

@media(min-width:761px) and (max-width:1023px) {
  .search-card.is-docked {
    top:var(--nav-height,64px); left:0; right:0; background:#ffffff;
    padding:6px 16px; border-bottom:1px solid #e2e8f0; box-shadow:0 4px 12px rgba(15,23,42,0.08);
  }
  .is-docked .search-toolbar { margin:0 0 4px 0; }
  .is-docked #trip-mode { font-size:12px; padding:2px 4px; }
  .is-docked .search-grid {
    grid-template-columns:minmax(0,1.2fr) 30px minmax(0,1.2fr) 95px 95px minmax(0,1fr) auto;
    padding:4px; box-shadow:none; border-color:#cbd5e1;
  }
  .is-docked.hotel-mode .search-grid { grid-template-columns:2fr 1fr 1fr 1.3fr auto; }
  .is-docked .btn-buscar { padding:8px 14px; min-height:36px; }
  .is-docked .search-extras { padding:2px 4px; font-size:11px; }
}
@media(max-width:760px) {
  .nav { min-height:64px; padding:8px 12px; }
  .nav .brand img { height:44px; }
  .hero { padding-top:24px; }
  .tabbar-search { gap:10px; padding-bottom:16px; mask-image:none; }
  .tabbar-search .tab { flex:1; min-width:0; font-size:12px; padding:10px 7px; }
  .search-grid { grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr); gap:12px 0; padding:12px; }
  .search-grid .origin-field { grid-column:1 / 3; grid-row:1; margin-right:38px; }
  #swap-route { grid-column:2; grid-row:1; z-index:1; }
  .search-grid .destination-field { grid-column:3; grid-row:1; }
  .search-grid .depart-field { grid-column:1 / 3; }
  .search-grid #return-field { grid-column:3; }
  .search-grid .passengers-field { grid-column:1 / -1; }
  .search-grid .btn-buscar { grid-column:1 / -1; width:100%; margin:0; }
  .search-grid .field { border-right:0; }
  .hotel-mode .search-grid { grid-template-columns:1fr 1fr; }
  .hotel-mode .search-grid .destination-field { grid-column:1 / -1; }
  .hotel-mode .search-grid .depart-field { grid-column:1; }
  .hotel-mode .search-grid #return-field { grid-column:2; }
  .pax-pop { position:fixed; left:16px; right:16px; top:calc(var(--nav-height) + 66px); width:auto; max-width:none; max-height:calc(100dvh - var(--nav-height) - 90px); }
  .search-card .cal-pop { position:fixed; top:calc(var(--nav-height) + 65px); left:16px; right:16px; width:auto; max-width:none; max-height:calc(100dvh - var(--nav-height) - 90px); overflow:auto; }
  .search-card.is-docked {
    top:var(--nav-height,64px); left:0; right:0; width:100%;
    padding:8px 12px; max-height:calc(100dvh - var(--nav-height)); overflow-y:auto;
    background:#ffffff; border-bottom:1px solid #e2e8f0; box-shadow:0 4px 12px rgba(15,23,42,0.08);
  }
  .is-docked #compact-search { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; border:1px solid var(--line); background:#f5f7fb; border-radius:10px; padding:12px; color:var(--ink); font:inherit; font-size:12px; text-align:left; }
  #compact-summary { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #compact-search > span:last-child { color:var(--brand); white-space:nowrap; font-weight:700; }
  .is-docked:not(.compact-expanded) .search-grid, .is-docked:not(.compact-expanded) .search-toolbar, .is-docked:not(.compact-expanded) .search-extras { display:none; }
  .is-docked.compact-expanded .search-grid { margin-top:8px; }
  .is-docked.compact-expanded #close-compact { display:block; font-size:13px; color:var(--brand); }
  .is-docked.compact-expanded.hotel-mode .search-toolbar { display:flex; justify-content:flex-end; }
  .hotel-mode #trip-mode { display:none; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none !important; animation:none !important; } }

/* Premium docked header: keep the same generous surface as the landing search. */
@media (min-width: 1024px) {
  .nav.has-docked-search {
    min-height: 92px;
    height: 92px;
    padding-top: 12px;
    padding-bottom: 12px;
    background: rgba(255,255,255,.98);
  }
  .search-card.is-docked {
    height: 92px;
    width: min(calc(100vw - 280px), 1140px);
  }
  .is-docked .search-toolbar,
  .is-docked .search-extras {
    display: none !important;
  }
  .is-docked .search-grid {
    height: 74px;
    width: 100%;
    max-width: none;
    padding: 12px 14px;
    border: 1px solid var(--brand-line);
    border-radius: 16px;
    background: linear-gradient(180deg,#fff 0%,#fcfaff 100%);
    box-shadow: 0 18px 45px -24px rgba(50,4,148,.42), 0 4px 12px rgba(15,23,42,.06);
  }
  .is-docked .search-grid .field {
    padding: 4px 16px;
  }
  .is-docked .search-grid label {
    font-size: 10px;
    line-height: 1.2;
    margin-bottom: 3px;
  }
  .is-docked .search-grid input:not([type=hidden]),
  .is-docked .search-grid .pax-btn {
    height: 30px;
    line-height: 30px;
    font-size: 14px;
    font-weight: 600;
  }
  .is-docked #swap-route {
    width: 44px;
    min-width: 44px;
    height: 44px;
    margin: 0 6px;
    border: 1px solid var(--brand-line);
    border-radius: 999px;
    background: var(--brand-soft);
    color: var(--brand-deep);
    font-size: 22px;
    box-shadow: 0 5px 14px -9px rgba(50,4,148,.65);
  }
  .is-docked #swap-route:hover {
    background: #ead7ff;
    color: var(--brand);
  }
  .is-docked .search-grid .btn-buscar {
    height: 52px;
    min-height: 52px;
    min-width: 126px;
    padding: 15px 24px;
    margin-left: 14px;
    border-radius: 12px;
    background: linear-gradient(135deg,var(--brand-deep),var(--brand));
    box-shadow: 0 10px 22px -10px rgba(50,4,148,.72);
    font-size: 14px;
  }
  .is-docked .search-grid .btn-buscar:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
  }
}

@media (min-width: 1024px) {
  .search-card.is-docked.hotel-mode #hotel-search-engine {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
  }
  .search-card.is-docked.hotel-mode #hotel-search-engine .search-grid {
    width: 100%;
    flex: 1 1 auto;
  }
  .search-card.is-docked:not(.hotel-mode) .search-toolbar {
    display: flex !important;
    flex: 0 0 auto;
    margin: 0 10px 0 0;
  }
  .search-card.is-docked:not(.hotel-mode) #trip-mode {
    height: 52px;
    min-width: 122px;
    padding: 0 14px;
    border: 1px solid var(--brand-line);
    border-radius: 12px;
    background: var(--brand-soft);
    color: var(--brand-deep);
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 5px 14px -9px rgba(50,4,148,.65);
  }
  .search-card.is-docked:not(.hotel-mode) #trip-mode:hover,
  .search-card.is-docked:not(.hotel-mode) #trip-mode:focus {
    border-color: var(--brand);
    background: #ead7ff;
    outline: none;
  }
  .search-card.is-docked .search-grid {
    width: 0;
    flex: 1 1 auto;
  }
}

@media (min-width: 1024px) {
  .is-docked .search-grid .field > label {
    display: block;
    flex: 0 0 auto;
    min-height: 12px;
    height: auto;
    overflow: visible;
    white-space: nowrap;
    line-height: 12px;
  }
}


.location-btn {
  align-self: flex-start;
  border: 0;
  padding: 2px 0;
  background: transparent;
  color: var(--brand);
  font: inherit;
  font-size: .7rem;
  font-weight: 700;
  cursor: pointer;
}
.location-btn:hover { text-decoration: underline; }
.location-btn:disabled { opacity: .55; cursor: wait; }
@media (min-width: 1024px) {
  .is-docked .location-btn { display: none; }
}

/* Travelpayouts White Label: VoeDireto shell around the official flight engine. */
.flight-widget-shell {
  width: min(1240px, 100%);
  margin: 0 auto;
  padding: 0 0 8px;
}
.tpwl-brand-strip {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 4px 12px;
  color: var(--brand-deep);
  font-size: 13px;
  font-weight: 700;
}
.tpwl-brand-mark {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, var(--brand-deep), var(--brand));
  box-shadow: 0 6px 14px -7px rgba(50,4,148,.7);
}
#tpwl-search,
#tpwl-tickets {
  width: 100%;
  min-width: 0;
  --main-accent: #6818d5;
  --main-accent-darken: #5011ad;
  --main-accent-contrast-color: #ffffff;
  --search-form-icon-color: #6818d5;
  --search-form-link-color: #5011ad;
  --border-radius: 14px;
  --font-main: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
#tpwl-search:empty { min-height: 90px; }
.tpwl-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 16px;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}
.tpwl-status[data-state="ready"] { display: none; }
.tpwl-status[data-state="error"] { color: #9f1239; }
.tpwl-spinner {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border: 2px solid #e9d5ff;
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: tpwl-spin .8s linear infinite;
}
.tpwl-status[data-state="error"] .tpwl-spinner { display: none; }
#tpwl-retry {
  border: 1px solid var(--brand-line);
  border-radius: 9px;
  padding: 8px 12px;
  background: #fff;
  color: var(--brand-deep);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.tpwl-disclosure {
  max-width: 920px;
  margin: 8px auto 0;
  padding: 0 12px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
  text-align: center;
}
.tpwl-results-shell {
  width: min(1280px, calc(100% - 32px));
  min-width: 0;
  margin: 0 auto 36px;
}
.tpwl-results-shell:has(#tpwl-tickets:empty) { margin-bottom: 0; }
body.flight-white-label-mode #resultados { display: none !important; }
#flight-search-engine[hidden],
#hotel-search-engine[hidden],
#flight-results[hidden] { display: none !important; }
@keyframes tpwl-spin { to { transform: rotate(360deg); } }

@media (max-width: 760px) {
  .flight-widget-shell { padding-bottom: 4px; }
  .tpwl-brand-strip { align-items: flex-start; margin-inline: 2px; font-size: 12px; line-height: 1.4; }
  #tpwl-search:empty { min-height: 130px; }
  .tpwl-results-shell { width: min(100% - 16px, 1280px); }
  .tpwl-disclosure { padding-inline: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  .tpwl-spinner { animation-duration: 1.8s; }
}
