/* ═══════════════════════════════════════════
   engine.css — Search Widget Functionality Styles
   for index2.php (does NOT touch site.css)
   ═══════════════════════════════════════════ */

/* ── Airport Selector Overlay ── */
.ap-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:60px 16px 16px}
.ap-selector{background:#fff;border-radius:14px;width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.25);overflow:hidden}
.ap-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 0}
.ap-title{font-size:17px;font-weight:700;color:#1a1a1a}
.ap-close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0 4px;line-height:1}
.ap-close-btn:hover{color:#1a1a1a}
.ap-search{margin:12px 20px 0;padding:10px 14px;border:1.5px solid #ddd;border-radius:8px;font-size:14px;outline:none;font-family:inherit}
.ap-search:focus{border-color:#a12885;box-shadow:0 0 0 3px rgba(161,40,133,.12)}
.ap-tabs{display:flex;gap:6px;padding:12px 20px 0;flex-wrap:wrap}
.ap-tab{padding:6px 14px;border-radius:20px;border:1.5px solid #ddd;background:#fff;font-size:13px;cursor:pointer;font-family:inherit;color:#444;transition:all .15s}
.ap-tab:hover{border-color:#a12885;color:#a12885}
.ap-tab.active{background:#a12885;color:#fff;border-color:#a12885}
.ap-tab-x{margin-left:4px;font-size:14px}
.ap-grid{overflow-y:auto;padding:8px 12px 12px;flex:1}
.ap-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;background:none;text-align:left;cursor:pointer;border-radius:8px;font-size:14px;font-family:inherit;transition:background .12s}
.ap-item:hover{background:#f5f0f7}
.ap-item-city{color:#1a1a1a;flex:1}
.ap-nuevo{background:#8DC63F;color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;margin:0 8px;text-transform:uppercase;letter-spacing:.3px}
.ap-item-code{color:#a12885;font-weight:700;font-size:13px;min-width:36px;text-align:right}
.ap-empty{padding:24px 12px;text-align:center;color:#999;font-size:14px}

/* ── Calendar Overlay ── */
.vcal-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.vcal-modal{background:#fff;border-radius:14px;width:100%;max-width:680px;box-shadow:0 12px 40px rgba(0,0,0,.25);overflow:hidden}
.vcal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eee}
.vcal-nav-btn{background:none;border:1.5px solid #ddd;border-radius:8px;width:36px;height:36px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#444;transition:all .15s}
.vcal-nav-btn:hover:not(:disabled){border-color:#a12885;color:#a12885}
.vcal-nav-btn:disabled{opacity:.3;cursor:default}
.vcal-title{font-weight:700;font-size:15px;color:#1a1a1a}
.vcal-months{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:16px}
.vcal-month{padding:0 12px}
.vcal-month-title{text-align:center;font-weight:700;font-size:14px;margin-bottom:8px;color:#1a1a1a}
.vcal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:4px}
.vcal-wd{font-size:11px;color:#888;font-weight:600;padding:4px 0}
.vcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.vcal-day{text-align:center;padding:8px 0;border-radius:8px;font-size:13px;cursor:pointer;transition:all .12s;color:#1a1a1a}
.vcal-day:hover:not(.disabled):not(.empty){background:#f5f0f7}
.vcal-day.disabled{color:#ccc;cursor:default}
.vcal-day.empty{visibility:hidden}
.vcal-day.selected{background:#a12885;color:#fff;font-weight:700}
.vcal-day.today{font-weight:700;box-shadow:inset 0 0 0 1.5px #a12885}
.vcal-close{display:block;width:100%;padding:14px;border:none;background:#f7f7f7;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;color:#444;border-top:1px solid #eee;transition:background .12s}
.vcal-close:hover{background:#eee}
@media(max-width:600px){.vcal-months{grid-template-columns:1fr;gap:16px}}

/* ── Passenger Dropdown ── */
.pax-dropdown{position:fixed;z-index:9999;background:#fff;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.18);padding:8px 0;min-width:200px}
.pax-option{display:block;width:100%;padding:10px 20px;border:none;background:none;text-align:left;font-size:14px;cursor:pointer;font-family:inherit;transition:background .12s;color:#1a1a1a}
.pax-option:hover{background:#f5f0f7}
.pax-option.active{color:#a12885;font-weight:700;background:#fdf0f5}
.pax-backdrop{position:fixed;inset:0;z-index:9998}

/* ── Results Section ── */
.results-section{background:#f5f3f7;min-height:200px}
.results-section[hidden]{display:none}
.results-inner{max-width:1100px;margin:0 auto;padding:24px 16px 40px}
.results-header{margin-bottom:16px}
.results-top{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px}
.results-title{font-size:22px;font-weight:700;color:#1a1a1a}
.results-title .arrow{color:#a12885;margin:0 6px}
.results-meta{font-size:13px;color:#777;margin-top:4px}
.results-badges{display:flex;gap:8px}
.results-badge{background:#fff;border:1px solid #ddd;border-radius:20px;padding:4px 12px;font-size:12px;color:#555}

/* ── Flight Cards ── */
.flights-list{display:flex;flex-direction:column;gap:12px}
.v2-card{background:#fff;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.08);overflow:hidden;transition:box-shadow .15s}
.v2-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.12)}
.v2-card.expanded{box-shadow:0 4px 20px rgba(0,0,0,.15)}
.v2-header{display:flex;justify-content:space-between;align-items:stretch;cursor:pointer}
.v2-header-click{cursor:pointer}
.v2-flight-info{flex:1;padding:16px 20px}
.v2-times{display:flex;align-items:center;gap:16px;margin-bottom:8px}
.v2-endpoint{text-align:center;min-width:80px}
.v2-time{font-size:20px;font-weight:700;color:#1a1a1a}
.v2-city{font-size:11px;color:#888;margin-top:2px}
.v2-timeline{flex:1;text-align:center;min-width:120px}
.v2-duration{font-size:11px;color:#888;margin-bottom:4px}
.v2-line{display:flex;align-items:center;justify-content:center;gap:0;margin:0 8px}
.tl-dot{width:8px;height:8px;border-radius:50%;background:#a12885;flex-shrink:0}
.tl-bar{flex:1;height:2px;background:#ddd}
.tl-stop-dot{width:6px;height:6px;border-radius:50%;border:1.5px solid #e67e22;background:#fff;flex-shrink:0}
.v2-stops-label{font-size:11px;margin-top:3px}
.v2-stops-label.nonstop{color:#8DC63F;font-weight:600}
.v2-stops-label.stops{color:#e67e22}
.v2-meta{display:flex;align-items:center;gap:12px}
.v2-flight-num{font-size:11px;color:#999}
.v2-detalles{background:none;border:none;color:#a12885;font-size:12px;cursor:pointer;font-weight:600;font-family:inherit;padding:2px 6px;border-radius:4px}
.v2-detalles:hover{background:#fdf0f5}
.v2-price-panel{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:16px 20px;min-width:200px;border-left:1px solid #f0f0f0;text-align:right}
.v2-seats{font-size:11px;margin-bottom:4px;padding:2px 8px;border-radius:10px}
.v2-seats.low{color:#ef4444;background:#fef2f2;font-weight:600}
.v2-seats.sold{color:#999;background:#f5f5f5}
.v2-price{font-size:26px;font-weight:800;color:#1a1a1a}
.v2-mxn{font-size:14px;font-weight:400;color:#888}
.v2-tua-badge{font-size:11px;color:#888;margin-top:2px}
.v2-msi{font-size:11px;color:#555;margin-top:4px}
.v2-msi-dot{color:#a12885;font-size:8px;vertical-align:middle}
.v2-expand-btn,.v2-close-btn{background:none;border:none;color:#a12885;font-size:14px;cursor:pointer;margin-top:6px;padding:4px 8px}

/* ── Bundles ── */
.v2-bundles-area{border-top:1px solid #eee;padding:20px}
.v2-bundle-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.v2-bcard{border:1.5px solid #eee;border-radius:12px;padding:0;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:border-color .15s}
.v2-bcard:hover{border-color:#a12885}
.v2-bcard-ribbon{position:absolute;top:8px;right:-4px;background:#e67e22;color:#fff;font-size:10px;font-weight:700;padding:2px 10px;border-radius:4px 0 0 4px}
.v2-bcard-name{text-align:center;font-size:20px;font-weight:800;padding:16px 12px 8px;color:#1a1a1a}
.v2-bcard.zero .v2-bcard-name{color:#6b7280}
.v2-bcard.flex .v2-bcard-name{color:#a12885}
.v2-bcard.plus .v2-bcard-name{color:#2563eb}
.bnd-features{list-style:none;padding:0 16px;margin:0}
.bnd-feat{font-size:12px;padding:5px 0;color:#444;border-bottom:1px solid #f5f5f5}
.bnd-feat:last-child{border-bottom:none}
.bnd-feat-header{font-size:12px;font-weight:700;padding:8px 0 4px;color:#a12885}
.bnd-feat-sub{font-size:11px;color:#888;margin-top:1px}
.v2-bcard-link{text-align:center;color:#a12885;font-size:12px;cursor:pointer;padding:8px;font-weight:600}
.v2-bcard-bottom{border-top:1px solid #eee;padding:12px 16px;text-align:center;margin-top:auto}
.v2-bcard-label{font-size:11px;color:#888}
.v2-bcard-price{font-size:22px;font-weight:800;color:#1a1a1a;margin:4px 0}
.v2-bcard-price span{font-size:13px;font-weight:400;color:#888}
.v2-bcard-msi{font-size:11px;color:#555;margin-bottom:10px}
.v2-bcard-select{width:100%;padding:10px;border:none;border-radius:8px;background:#a12885;color:#fff;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}
.v2-bcard-select:hover{background:#8a1f72}
.v2-tua-bar{display:flex;align-items:flex-start;gap:8px;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:10px 14px;margin-top:12px;font-size:12px;color:#555}
.v2-tua-icon{font-size:16px;flex-shrink:0}
.v2-compare-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px}
.v2-compare-link{color:#a12885;font-weight:600;cursor:pointer}
.v2-cabin-note{color:#999;font-style:italic}

/* ── Skeleton ── */
.skeleton{background:#fff;border-radius:12px;padding:20px;margin-bottom:12px}
.skeleton-row{display:flex;gap:12px;margin-bottom:12px;align-items:center}
.skeleton-row:last-child{margin-bottom:0}
.skeleton-line{height:14px;border-radius:6px;background:#eee;animation:skPulse 1.4s ease-in-out infinite}
.skeleton-line.sm{width:60px}
.skeleton-line.md{width:120px}
.skeleton-line.lg{width:180px;height:20px}
.skeleton-line.bar{flex:1;height:4px}
.skeleton-line.btn{width:100px;height:32px;border-radius:8px}
@keyframes skPulse{0%,100%{opacity:.4}50%{opacity:1}}

/* ── Empty State ── */
.empty-state{text-align:center;padding:48px 20px}
.empty-icon{font-size:48px;margin-bottom:12px}
.empty-title{font-size:18px;font-weight:700;color:#1a1a1a;margin-bottom:8px}
.empty-text{font-size:14px;color:#666;margin-bottom:16px;max-width:400px;margin-left:auto;margin-right:auto}
.empty-btn{padding:10px 24px;background:#a12885;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}
.empty-btn:hover{background:#8a1f72}

/* ── Booking Nav ── */
.vol-nav{display:flex;align-items:center;justify-content:center;gap:0;padding:16px 0 20px;flex-wrap:wrap}
.vol-nav-step{display:flex;align-items:center;gap:4px;font-size:12px;color:#bbb;font-weight:600;padding:4px 8px;border-radius:6px;white-space:nowrap}
.vol-nav-step.active{color:#a12885;background:#fdf0f5}
.vol-nav-icon{font-size:14px}
.vol-nav-dot{color:#ccc;font-size:10px;letter-spacing:2px;margin:0 2px}

/* ── Date Strip ── */
.ds-wrap{display:flex;align-items:stretch;gap:0;margin-bottom:16px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.ds-arrow{background:#fff;border:none;font-size:20px;cursor:pointer;padding:0 12px;color:#a12885;transition:background .12s;flex-shrink:0}
.ds-arrow:hover{background:#fdf0f5}
.ds-strip{display:flex;flex:1;overflow-x:auto;scrollbar-width:none}
.ds-strip::-webkit-scrollbar{display:none}
.ds-day{flex:1;min-width:120px;padding:10px 12px;text-align:center;cursor:pointer;border-right:1px solid #f0f0f0;transition:background .12s}
.ds-day:last-child{border-right:none}
.ds-day:hover{background:#f5f0f7}
.ds-day.active{background:#a12885;color:#fff}
.ds-day.active .ds-name,.ds-day.active .ds-price,.ds-day.active .ds-price b{color:#fff}
.ds-name{font-size:11px;color:#888;margin-bottom:2px;font-weight:600}
.ds-label{font-size:12px;color:#1a1a1a;font-weight:600;margin-bottom:4px}
.ds-price{font-size:11px;color:#555}
.ds-price b{color:#a12885;font-size:12px}
.ds-loading{color:#ccc}
.ds-na{color:#ccc}

/* ── Sort / Filter Bar ── */
.results-section .filters{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.filter-btn{padding:6px 14px;border:1.5px solid #ddd;border-radius:20px;background:#fff;font-size:12px;cursor:pointer;font-family:inherit;color:#555;transition:all .15s}
.filter-btn:hover{border-color:#a12885;color:#a12885}
.filter-btn.active{background:#a12885;color:#fff;border-color:#a12885}
.sort-group{display:flex;align-items:center;gap:6px;margin-left:auto}
.sort-label{font-size:12px;color:#888}
.sort-btn{padding:4px 10px;border:1px solid #ddd;border-radius:14px;background:#fff;font-size:11px;cursor:pointer;font-family:inherit;color:#555;transition:all .12s}
.sort-btn:hover{border-color:#a12885}
.sort-btn.active{background:#a12885;color:#fff;border-color:#a12885}

/* ── Sidebar ── */
.sidebar{width:300px;flex-shrink:0}
.sb-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.sb-title{font-size:16px;font-weight:700;margin-bottom:12px}
.sb-bundle-tag{display:inline-block;padding:4px 12px;border-radius:14px;font-size:12px;font-weight:700;margin-bottom:12px}
.sb-bundle-tag.zero{background:#f3f4f6;color:#6b7280}
.sb-bundle-tag.flex{background:#fdf0f5;color:#a12885}
.sb-bundle-tag.plus{background:#eff6ff;color:#2563eb}
.sb-bundle-bar{display:inline-block;width:12px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.sb-flight-header{font-size:12px;color:#888;margin-bottom:4px}
.sb-route{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.sb-code{font-size:18px;font-weight:700}
.sb-dash{color:#ccc}
.sb-times{font-size:13px;color:#555;margin-bottom:2px}
.sb-date{font-size:12px;color:#888;margin-bottom:12px}
.sb-section{border-top:1px solid #f0f0f0;padding-top:10px;margin-top:10px}
.sb-section-title{font-size:12px;font-weight:700;color:#888;margin-bottom:6px}
.sb-row{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;color:#555}
.sb-subtotal{font-weight:700;border-top:1px solid #eee;padding-top:6px;margin-top:4px}
.sb-total-section{border-top:2px solid #a12885;padding-top:12px;margin-top:12px;text-align:center}
.sb-grand-total{display:flex;justify-content:space-between;align-items:center}
.sb-grand-amount{font-size:22px;font-weight:800}
.sb-tua{font-size:11px;color:#888;margin-top:4px}
.sb-msi{font-size:11px;color:#555;margin-top:4px}

/* ── Enhanced Sidebar ── */
.esb-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.esb-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.esb-title{font-size:15px;font-weight:700}
.esb-bundle{font-size:12px;font-weight:700;color:#a12885;padding:3px 10px;background:#fdf0f5;border-radius:10px}
.esb-flight{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #f0f0f0}
.esb-flight-label{font-size:12px;color:#888;margin-bottom:4px}
.esb-route{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.esb-route .code{font-size:16px;font-weight:700}
.esb-route .dash{color:#ccc}
.esb-route-times{font-size:13px;color:#555}
.esb-date{font-size:12px;color:#888}
.esb-section{border-top:1px solid #f0f0f0;padding-top:8px;margin-top:8px}
.esb-section-title{font-size:12px;font-weight:700;color:#888;margin-bottom:6px}
.esb-row{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;color:#555}
.esb-row.subtotal{font-weight:700;border-top:1px solid #eee;padding-top:6px;margin-top:4px}
.esb-total{border-top:2px solid #a12885;padding-top:10px;margin-top:10px}
.tua-note{font-size:11px;color:#888;margin-top:4px}
.msi-note{font-size:11px;color:#555;margin-top:4px}

/* ── Layout (2-col for sidebar) ── */
.layout-2col{display:flex;gap:20px;align-items:flex-start}
.layout-main{flex:1;min-width:0}
@media(max-width:900px){.layout-2col{flex-direction:column}.sidebar{width:100%}}

/* ── Return Step Header ── */
.vol-ret-header{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.vol-ret-title{font-size:14px;color:#888}
.vol-ret-route{font-size:20px;font-weight:700;color:#1a1a1a;margin:4px 0 8px}
.vol-ret-actions{display:flex;gap:8px}
.vol-ret-btn{padding:6px 14px;border:1.5px solid #ddd;border-radius:8px;background:#fff;font-size:12px;cursor:pointer;font-family:inherit;color:#555;transition:all .12s}
.vol-ret-btn:hover{border-color:#a12885;color:#a12885}

/* ── Selected Summary Bar ── */
.sel-summary-title{font-size:14px;font-weight:700;color:#1a1a1a;margin-bottom:8px}
.sel-bar{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:12px;padding:14px 20px;margin-bottom:10px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.sel-bar.out{border-left:4px solid #a12885}
.sel-bar.ret{border-left:4px solid #2563eb}
.sel-bar-left{flex:1}
.sel-bar-label{font-size:12px;color:#888;margin-bottom:4px}
.sel-bar-route{font-size:14px;font-weight:600;color:#1a1a1a}
.sel-bar-city{color:#888;font-weight:400;font-size:12px}
.sel-bar-meta{font-size:12px;color:#888;margin-top:2px}
.sel-bar-right{text-align:right}
.sel-bar-price{font-size:20px;font-weight:700;color:#1a1a1a}
.sel-bar-price small{font-size:12px;font-weight:400;color:#888}
.sel-bar-change{background:none;border:1px solid #a12885;color:#a12885;padding:4px 12px;border-radius:6px;font-size:12px;cursor:pointer;margin-top:4px;font-family:inherit;transition:all .12s}
.sel-bar-change:hover{background:#fdf0f5}

/* ── Round-trip Summary ── */
.rt-summary{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 4px rgba(0,0,0,.08);text-align:center}
.rt-summary-title{font-size:18px;font-weight:700;margin-bottom:16px}
.rt-summary-row{display:flex;justify-content:space-between;font-size:14px;padding:6px 0;border-bottom:1px solid #f0f0f0}
.rt-summary-row.tua{color:#888;font-size:13px}
.rt-summary-total{display:flex;justify-content:space-between;font-size:18px;font-weight:800;padding:12px 0;border-top:2px solid #a12885;margin-top:8px}
.rt-summary-msi{font-size:12px;color:#555;margin-top:8px}
.rt-new-search-btn{margin-top:16px;padding:10px 28px;background:#a12885;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.rt-new-search-btn:hover{background:#8a1f72}

/* ── Continue Button ── */
.continue-btn{display:inline-block;padding:12px 28px;background:#a12885;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;text-align:center}
.continue-btn:hover{background:#8a1f72}
.continue-btn:disabled{opacity:.5;cursor:default}

/* ── Addons Page ── */
.addons-page{padding:0}
.addons-layout{display:flex;gap:24px;align-items:flex-start}
.addons-main{flex:1;min-width:0}
.addons-sidebar{width:300px;flex-shrink:0}
@media(max-width:900px){.addons-layout{flex-direction:column}.addons-sidebar{width:100%}}
.addon-section h3{font-size:20px;margin:0 0 4px}
.addon-section>p{font-size:14px;color:#666;margin:0 0 16px}
.addon-alert{display:flex;align-items:center;gap:8px;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:13px}
.alert-tag{background:#ef4444;color:#fff;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700}
.addon-card{display:flex;gap:16px;background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.addon-card-body{flex:1}
.addon-card-body h4{margin:0 0 2px;font-size:15px}
.addon-sub{font-size:12px;color:#888;margin-bottom:8px}
.addon-card-body ul{padding-left:20px;margin:0 0 8px;font-size:13px;color:#555}
.addon-card-body li{padding:2px 0}
.addon-price{font-size:18px;font-weight:800;margin-bottom:8px;color:#1a1a1a}
.addon-price small{font-size:13px;font-weight:400;color:#888}
.addon-btns{display:flex;gap:8px}
.addon-btn-add{padding:8px 18px;border:1.5px solid #a12885;border-radius:8px;background:#fff;color:#a12885;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.addon-btn-add:hover{background:#fdf0f5}
.addon-btn-add.added{background:#a12885;color:#fff}
.addon-btn-skip{padding:8px 12px;border:none;background:none;color:#999;font-size:12px;cursor:pointer;font-family:inherit}
.addon-btn-skip:hover{color:#ef4444}
.tua-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:16px}
.tua-card h3{margin:0 0 4px;font-size:16px}
.tua-card>p{font-size:13px;color:#666;margin:0 0 12px}
.tua-amount{font-size:22px;font-weight:800;margin-bottom:12px}
.tua-amount small{font-size:13px;font-weight:400;color:#888}
.tua-options{display:flex;gap:12px;margin-bottom:8px}
.tua-opt{flex:1;border:1.5px solid #ddd;border-radius:10px;padding:12px;cursor:pointer;transition:all .15s}
.tua-opt:hover{border-color:#a12885}
.tua-opt.active{border-color:#a12885;background:#fdf0f5}
.tua-opt h4{margin:0;font-size:14px}
.tua-opt p{margin:2px 0 0;font-size:12px;color:#888}
.opt-radio{width:16px;height:16px;border-radius:50%;border:2px solid #ccc;margin-bottom:6px}
.tua-opt.active .opt-radio{border-color:#a12885;background:radial-gradient(circle,#a12885 40%,transparent 41%)}
.tua-card .tua-note{font-size:11px;color:#999;font-style:italic}

/* ── Seats Page ── */
.seats-page{padding:0}
.seats-layout{display:flex;gap:20px;align-items:flex-start}
.seats-panel{width:280px;flex-shrink:0}
.seats-panel h3{margin:0 0 12px;font-size:18px}
.seats-main{flex:1;display:flex;gap:16px;overflow-x:auto}
.seat-map-wrap{flex:1;background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.08);overflow-x:auto}
.seat-map-nav{display:flex;justify-content:space-between;font-size:11px;color:#888;margin-bottom:8px}
.seat-cols{display:flex;gap:4px;margin-bottom:4px;font-size:11px;color:#888;font-weight:600}
.seat-cols span{width:32px;text-align:center}
.seat-cols .aisle{width:20px}
.seat-type-section{font-size:11px;font-weight:700;color:#a12885;padding:8px 0 4px;text-align:center;border-top:1px solid #f0f0f0;margin-top:4px}
.seat-row{display:flex;gap:4px;margin-bottom:4px}
.row-num{width:32px;text-align:center;font-size:11px;color:#888;display:flex;align-items:center;justify-content:center}
.seat{width:32px;height:32px;border-radius:6px;border:1.5px solid #ccc;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;transition:all .12s;touch-action:manipulation;-webkit-tap-highlight-color:rgba(161,40,133,.3);user-select:none;-webkit-user-select:none}
.seat:hover:not(.taken):not(.aisle){transform:scale(1.1);box-shadow:0 2px 8px rgba(0,0,0,.15)}
.seat.aisle{border:none;background:none;cursor:default;width:20px}
.seat.taken{background:#e0e0e0;border-color:#bbb;cursor:default}
.seat.selected{background:#a12885;border-color:#a12885;color:#fff}
.seat.premium-plus{background:#fdf5e6;border-color:#c9a961}
.seat.premium{background:#fdf0f5;border-color:#d4789c}
.seat.extra{background:#edf5fd;border-color:#6baed6}
.seat.standard{background:#fff;border-color:#ccc}
.seat-legend{margin-top:16px}
.seat-legend h4{margin:0 0 8px;font-size:13px}
.seat-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#555;margin-bottom:6px}
.seat-legend-swatch{width:20px;height:20px;border-radius:4px;border:1.5px solid}
.seat-btn-row{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.seat-btn-next{padding:10px;background:#a12885;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.seat-btn-next:hover{background:#8a1f72}
.seat-btn-clear{text-align:center;color:#888;font-size:13px;cursor:pointer}
.seat-btn-clear:hover{color:#a12885}
@media(max-width:900px){.seats-layout{flex-direction:column}.seats-panel{width:100%}.seats-main{flex-direction:column}}

/* ── Passenger Form ── */
.pax-page{padding:0}
.pax-layout{display:flex;gap:24px;align-items:flex-start}
.pax-main{flex:1;min-width:0}
@media(max-width:900px){.pax-layout{flex-direction:column}}
.pax-title{font-size:20px;font-weight:700;margin-bottom:16px}
.pax-card{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:12px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.pax-card h4{margin:0 0 2px;font-size:15px}
.pax-card p{margin:0 0 12px;font-size:13px;color:#666}
.pax-tabs{margin-bottom:12px}
.pax-tab{display:inline-flex;align-items:center;gap:6px}
.pax-tab .num{background:#fff;color:#a12885;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.pax-section-title{font-size:15px;font-weight:700;margin-bottom:12px}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.form-row-3{display:grid;grid-template-columns:1fr 2fr 1fr;gap:10px;margin-bottom:10px}
.pax-input,.pax-select{width:100%;padding:10px 12px;border:1.5px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;outline:none;background:#fff;box-sizing:border-box}
.pax-input:focus,.pax-select:focus{border-color:#a12885;box-shadow:0 0 0 3px rgba(161,40,133,.1)}
.pax-gender{display:flex;gap:16px;margin:8px 0;font-size:14px}
.pax-gender label{display:flex;align-items:center;gap:6px;cursor:pointer}
.pax-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#555;margin:8px 0}
.pax-check input{margin-top:2px;accent-color:#a12885}
.pax-check a{color:#a12885;cursor:pointer}

/* ── CC Form ── */
.cc-form{margin-bottom:16px}
.cc-secure-badge{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:10px 14px;font-size:13px;color:#166534;margin-bottom:16px;text-align:center}
.cc-field-full{margin-bottom:12px}
.cc-label{display:block;font-size:12px;font-weight:600;color:#555;margin-bottom:4px}
.cc-input-wrap{position:relative;display:flex;align-items:center}
.cc-input-icon{position:absolute;left:12px;font-size:16px}
.cc-input-wrap .cc-input{padding-left:36px}
.cc-input{width:100%;padding:10px 12px;border:1.5px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;outline:none;box-sizing:border-box}
.cc-input:focus{border-color:#a12885;box-shadow:0 0 0 3px rgba(161,40,133,.1)}
.cc-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.cc-field{display:flex;flex-direction:column}
.cc-cvv-hint{position:absolute;right:10px;width:20px;height:20px;border-radius:50%;background:#eee;display:flex;align-items:center;justify-content:center;font-size:12px;color:#888;cursor:help}
.cc-select{width:100%;padding:10px 12px;border:1.5px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;outline:none;background:#fff;box-sizing:border-box}
.cc-msi{margin-bottom:12px}
.cc-total-line{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:2px solid #a12885;margin-bottom:12px;font-size:14px}
.cc-total-amount{font-size:22px;font-weight:800}
.cc-pay-btn{width:100%}
.cc-logos{text-align:center;font-size:13px;color:#888;margin-top:12px}
.cc-logo-item{display:inline-block;background:#f5f5f5;padding:4px 10px;border-radius:4px;margin:2px;font-weight:600;font-size:11px}
.cc-spinner{display:inline-block;width:16px;height:16px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:ccSpin .6s linear infinite;vertical-align:middle;margin-right:6px}
@keyframes ccSpin{to{transform:rotate(360deg)}}

/* ── Payment Page ── */
.pay-methods{display:flex;flex-direction:column;gap:8px}
.pay-method{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1.5px solid #eee;border-radius:10px;cursor:pointer;font-size:14px;transition:all .15s}
.pay-method:hover{border-color:#a12885;background:#fdf0f5}
.pay-method[data-avail="false"]{opacity:.6}
.pay-icon{font-size:20px}
.pay-secure{text-align:center;font-size:12px;color:#888;margin-top:12px}

/* ── SPEI Page ── */
.spei-page{max-width:700px;margin:0 auto}
.spei-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px rgba(0,0,0,.1)}
.spei-header-confirmed{text-align:center;margin-bottom:20px}
.spei-header-confirmed h2{margin:0;font-size:22px}
.confirm-icon{font-size:48px}
.confirm-code{background:linear-gradient(135deg,#a12885,#6d1b7b);color:#fff;display:inline-block;padding:8px 24px;border-radius:8px;font-size:24px;font-weight:800;letter-spacing:3px}
.spei-timer-box{display:flex;align-items:center;gap:12px;background:#fff4f4;border:1px solid #fca5a5;border-radius:10px;padding:12px 16px;margin-bottom:16px}
.spei-timer-icon{font-size:28px}
.spei-timer-text{flex:1}
.spei-countdown-display{font-size:28px;font-weight:800;color:#d32f2f;font-variant-numeric:tabular-nums}
.spei-flight-info{display:flex;align-items:center;justify-content:center;gap:24px;margin:16px 0;text-align:center}
.spei-flight-info .code{font-size:22px;font-weight:800}
.spei-flight-info .city{font-size:13px;color:#888}
.spei-flight-info .plane{font-size:24px}
.spei-amount{text-align:center;font-size:32px;font-weight:800;color:#a12885;margin:12px 0}
.spei-amount small{display:block;font-size:13px;font-weight:400;color:#888}
.spei-section-title{font-size:15px;font-weight:700;margin:16px 0 8px;color:#1a1a1a}
.spei-table{width:100%;border-collapse:collapse;margin-bottom:16px}
.spei-table td{padding:10px;border-bottom:1px solid #f0f0f0;font-size:14px;vertical-align:top}
.spei-table td:first-child{color:#888;width:40%}
.spei-copy{color:#a12885;cursor:pointer;font-size:12px;margin-left:4px;white-space:nowrap}
.spei-copy:hover{text-decoration:underline}
.spei-instructions{background:#f8f9fa;border-radius:10px;padding:16px;margin-bottom:16px}
.spei-instructions h4{margin:0 0 8px;font-size:14px}
.spei-instructions ol{margin:0;padding-left:20px;font-size:13px;color:#555}
.spei-instructions li{padding:4px 0}
.spei-btn-pdf{display:block;width:100%;padding:12px;background:#1e40af;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;text-align:center;margin-bottom:16px;transition:background .15s}
.spei-btn-pdf:hover{background:#1e3a8a}
.spei-email-notice{display:flex;align-items:flex-start;gap:10px;background:#eff6ff;border:1px solid #93c5fd;border-radius:10px;padding:12px 16px}
.spei-email-icon{font-size:24px;flex-shrink:0}
.spei-email-text{flex:1;font-size:14px}

/* ── Loading Page ── */
.loading-page{text-align:center;padding:48px 20px}
.loading-page h2{font-size:20px;color:#1a1a1a;margin-bottom:16px}
.loading-bar{width:200px;height:4px;background:#eee;border-radius:4px;margin:0 auto 16px;overflow:hidden;position:relative}
.loading-bar::after{content:'';position:absolute;left:0;top:0;width:40%;height:100%;background:linear-gradient(90deg,#a12885,#e040fb);border-radius:4px;animation:loadSlide 1.5s ease-in-out infinite}
@keyframes loadSlide{0%{left:-40%}100%{left:100%}}
.loading-type{font-size:16px;font-weight:600;margin-bottom:24px}
.loading-route{display:flex;align-items:center;justify-content:center;gap:24px}
.loading-city{text-align:center}
.loading-city .code{font-size:22px;font-weight:800;color:#a12885}
.loading-city .name{font-size:13px;color:#888}
.loading-city .date{font-size:12px;color:#aaa;margin-top:4px}
.loading-plane{font-size:32px;animation:planeBounce 1s ease-in-out infinite}
@keyframes planeBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.loading-dots{display:flex;justify-content:center;gap:8px;margin-top:20px}
.loading-dots span{width:8px;height:8px;border-radius:50%;background:#ddd}
.loading-dots span.active{background:#a12885}

/* ── Popups ── */
.popup-overlay,.pay-error-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:16px}
.popup-box,.pay-error-modal{background:#fff;border-radius:14px;padding:24px;max-width:400px;width:100%;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.popup-box h3,.pay-error-modal h3{margin:0 0 8px;font-size:18px}
.popup-box p,.pay-error-modal p{font-size:14px;color:#555;margin:0 0 12px}
.popup-box .popup-close{padding:10px 24px;background:#a12885;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.pay-error-icon{font-size:48px;margin-bottom:8px}
.pay-error-code{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:10px;font-size:12px;color:#991b1b;margin-top:8px}

/* ── Confirm Page ── */
.confirm-page{max-width:600px;margin:0 auto;text-align:center;padding:20px}
.confirm-page h2{margin:8px 0}
.confirm-msg{font-size:14px;color:#666;margin:8px 0 20px}
.confirm-details{background:#fff;border-radius:12px;padding:16px;text-align:left;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:16px}
.confirm-details h4{margin:0 0 8px;font-size:15px}
.cd-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0f0f0;font-size:13px}
.cd-row:last-child{border-bottom:none}
.cd-row.total{border-top:2px solid #a12885;font-size:16px;font-weight:700;padding-top:10px;margin-top:6px}

/* ── Mobile Responsive ── */
@media(max-width:700px){
  .v2-header{flex-direction:column}
  .v2-price-panel{border-left:none;border-top:1px solid #f0f0f0;flex-direction:row;align-items:center;justify-content:space-between;min-width:unset}
  .v2-bundle-cards{grid-template-columns:1fr}
  .v2-times{flex-wrap:wrap}
  .sel-bar{flex-direction:column;gap:8px}
  .form-row-2{grid-template-columns:1fr}
  .form-row-3{grid-template-columns:1fr 1fr 1fr}
  .cc-row-2{grid-template-columns:1fr}
  .addon-card{flex-direction:column}
  .spei-flight-info{gap:12px}
}

/* ═══ ADAPTER STYLES ═══ */
.hidden { display: none !important; }

/* Airport dropdown */
.airport-dropdown { display:none; position:absolute; top:100%; left:0; right:0; z-index:99999; background:#fff; border-radius:0 0 16px 16px; box-shadow:0 8px 32px rgba(0,0,0,0.18); max-height:420px; overflow:hidden; }
.airport-dropdown.open { display:block; }
.ap-selector { padding:0; }
.ap-title { padding:16px 20px 8px; font-size:15px; font-weight:700; color:#080206; }
.ap-tabs { display:flex; gap:0; border-bottom:1px solid #eee; padding:0 16px; }
.ap-tab { padding:10px 16px; font-size:14px; font-weight:400; color:#666; background:none; border:none; border-bottom:2px solid transparent; cursor:pointer; white-space:nowrap; }
.ap-tab.active { color:#a12885; font-weight:700; border-bottom-color:#a12885; }
.ap-tab-x { margin-left:4px; }
.ap-grid { max-height:300px; overflow-y:auto; padding:8px 0; }
.ap-item { display:flex; align-items:center; width:100%; padding:10px 20px; gap:8px; background:none; border:none; cursor:pointer; font-size:14px; text-align:left; }
.ap-item:hover { background:#f7f0f5; }
.ap-item-city { flex:1; color:#080206; }
.ap-item-code { color:#999; font-size:12px; font-weight:700; }
.ap-nuevo { font-size:10px; font-weight:700; color:#fff; background:#a12885; border-radius:4px; padding:2px 6px; }
.ap-empty { padding:20px; text-align:center; color:#999; font-size:14px; }

/* Calendar overlay */
.vcal-overlay { position:fixed; inset:0; z-index:200; background:rgba(0,0,0,0.5); display:flex; align-items:center; justify-content:center; }
.vcal-modal { background:#fff; border-radius:16px; padding:24px; width:min(680px,calc(100vw - 32px)); max-height:90vh; overflow-y:auto; box-shadow:0 16px 48px rgba(0,0,0,0.2); }
.vcal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.vcal-title { font-size:16px; font-weight:700; color:#080206; }
.vcal-nav-btn { width:36px; height:36px; border-radius:50%; border:1px solid #ddd; background:#fff; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.vcal-nav-btn:disabled { opacity:0.3; cursor:not-allowed; }
.vcal-months { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media(max-width:600px) { .vcal-months { grid-template-columns:1fr; } }
.vcal-month-title { font-size:15px; font-weight:700; text-align:center; margin-bottom:8px; color:#080206; }
.vcal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:12px; color:#999; margin-bottom:4px; }
.vcal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.vcal-day { display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1; font-size:14px; border-radius:50%; cursor:pointer; border:none; background:none; }
.vcal-day:hover:not(.disabled):not(.empty) { background:#f7f0f5; }
.vcal-day.selected { background:#a12885; color:#fff; font-weight:700; }
.vcal-day.today { border:2px solid #a12885; }
.vcal-day.disabled { color:#ccc; cursor:not-allowed; }
.vcal-day.empty { cursor:default; }
.vcal-close { display:block; width:100%; margin-top:16px; padding:12px; border:none; border-radius:60px; background:#a12885; color:#fff; font-size:15px; cursor:pointer; }

/* Pax dropdown */
.pax-dropdown { position:absolute; top:100%; left:0; right:0; z-index:100; background:#fff; border-radius:0 0 16px 16px; box-shadow:0 8px 24px rgba(0,0,0,0.15); padding:8px 0; }
.pax-option { display:block; width:100%; padding:12px 20px; border:none; background:none; font-size:15px; text-align:left; cursor:pointer; color:#080206; }
.pax-option:hover { background:#f7f0f5; }
.pax-option.active { color:#a12885; font-weight:700; }

/* Results section */
.results-section { background:var(--bg,#f0f0f0); padding:0 16px 32px; }
@media(min-width:640px) { .results-section { padding:0 32px 32px; } }
.results-inner { max-width:1200px; margin:0 auto; }

/* Airport dropdown: ensure parents don't clip */
.search-card, .search-form, .route-row { overflow: visible !important; }
#origin-field, #destination-field { overflow: visible !important; position: relative; z-index: 100; }
#origin-field:has(.airport-dropdown.open), #destination-field:has(.airport-dropdown.open) { z-index: 99998; }

/* Fix: airport/pax/calendar dropdowns being clipped by hero overflow */
.hero { overflow: visible !important; }
.hero-inner { z-index: 10 !important; }
.search-form, .search-bar { overflow: visible !important; position: relative; z-index: 100; }
.field { overflow: visible !important; }

/* Fix: remove gray gap in airport dropdown */
.airport-dropdown { right: auto !important; width: fit-content !important; min-width: 420px; background: #fff !important; }
.airport-dropdown .ap-selector { max-width: none; width: 100%; box-shadow: none; border-radius: 0 0 16px 16px; }

/* Fix: .seat.taken must override type-specific backgrounds */
.seat.taken { background: #e0e0e0 !important; border-color: #bbb !important; cursor: default !important; color: #999 !important; font-size: 13px !important; }
.seat.taken:hover { transform: none !important; box-shadow: none !important; }

/* ═══════════════════════════════════════════
   MOBILE RESPONSIVE — Full Booking Flow
   Android & iOS browser optimization
   ═══════════════════════════════════════════ */

/* ── Global mobile fixes ── */
@media (max-width: 480px) {
  /* Hero / Search — full width */
  .hero { min-height: auto !important; }
  .hero-inner { padding: 16px 12px !important; }
  .search-card { border-radius: 12px !important; margin: 0 !important; }
  .search-form { padding: 12px !important; gap: 8px !important; }
  .field { height: 48px; font-size: 14px; }
  .search-btn, .search-footer .search-btn { width: 100% !important; padding: 14px !important; font-size: 16px !important; border-radius: 10px !important; }

  /* Airport dropdown mobile */
  .airport-dropdown { min-width: 100% !important; width: 100% !important; left: 0 !important; right: 0 !important; max-height: 60vh; overflow-y: auto; }
  .ap-selector { max-width: 100%; }
  .ap-overlay { padding: 20px 8px; }

  /* Calendar mobile */
  .vcal-modal { padding: 16px; width: calc(100vw - 16px) !important; }
  .vcal-months { grid-template-columns: 1fr !important; gap: 12px !important; }

  /* Results section */
  .results-section { padding: 0 8px 24px !important; }
  .results-inner { padding: 16px 4px 24px !important; }
  .results-title { font-size: 18px; }
  .results-meta { font-size: 12px; }
  .results-top { flex-direction: column; gap: 8px; }

  /* Booking nav */
  .vol-nav { gap: 0; padding: 10px 0 14px; }
  .vol-nav-step { font-size: 10px; padding: 3px 5px; }
  .vol-nav-dot { font-size: 8px; margin: 0 1px; letter-spacing: 1px; }
  .vol-nav-icon { font-size: 12px; }

  /* Date strip */
  .ds-wrap { border-radius: 8px; }
  .ds-day { min-width: 80px; padding: 8px 6px; }
  .ds-name { font-size: 10px; }
  .ds-label { font-size: 11px; }
  .ds-price { font-size: 10px; }
  .ds-price b { font-size: 11px; }
  .ds-arrow { padding: 0 8px; font-size: 16px; }

  /* Filter / Sort */
  .filters { gap: 6px !important; }
  .filter-btn { padding: 5px 10px; font-size: 11px; }
  .sort-group { margin-left: 0; width: 100%; justify-content: flex-start; }
  .sort-btn { font-size: 10px; padding: 4px 8px; }

  /* Flight cards */
  .v2-card { border-radius: 10px; }
  .v2-header { flex-direction: column !important; }
  .v2-flight-info { padding: 12px 14px; }
  .v2-times { gap: 8px; flex-wrap: nowrap; }
  .v2-time { font-size: 16px; }
  .v2-city { font-size: 10px; }
  .v2-endpoint { min-width: 60px; }
  .v2-timeline { min-width: 80px; }
  .v2-duration { font-size: 10px; }
  .v2-meta { gap: 8px; }
  .v2-flight-num { font-size: 10px; }
  .v2-price-panel { border-left: none !important; border-top: 1px solid #f0f0f0; flex-direction: row !important; align-items: center; justify-content: space-between; min-width: unset !important; padding: 10px 14px; }
  .v2-price { font-size: 22px; }
  .v2-seats { font-size: 10px; }
  .v2-tua-badge { font-size: 10px; }
  .v2-msi { font-size: 10px; }
  .v2-expand-btn, .v2-close-btn { font-size: 12px; padding: 4px 6px; }

  /* Bundle cards */
  .v2-bundles-area { padding: 12px; }
  .v2-bundle-cards { grid-template-columns: 1fr !important; gap: 10px; }
  .v2-bcard-name { font-size: 18px; padding: 12px 10px 6px; }
  .v2-bcard-price { font-size: 20px; }
  .v2-bcard-select { padding: 10px; font-size: 14px; }
  .bnd-features { padding: 0 12px; }
  .bnd-feat { font-size: 12px; }
  .v2-tua-bar { flex-direction: column; gap: 6px; font-size: 11px; padding: 8px 10px; }

  /* Selected summary bar */
  .sel-summary-title { font-size: 13px; }
  .sel-bar { flex-direction: column !important; gap: 8px; padding: 10px 14px; border-radius: 10px; }
  .sel-bar-route { font-size: 13px; }
  .sel-bar-price { font-size: 18px; }
  .sel-bar-change { font-size: 11px; }

  /* Return step header */
  .vol-ret-header { padding: 12px 14px; border-radius: 10px; }
  .vol-ret-route { font-size: 16px; }
  .vol-ret-actions { flex-wrap: wrap; }

  /* Round-trip summary */
  .rt-summary { padding: 14px; border-radius: 10px; }
  .rt-summary-title { font-size: 16px; }
  .rt-summary-row { font-size: 13px; }
  .rt-summary-total { font-size: 16px; }
  .rt-new-search-btn { font-size: 13px; padding: 10px 20px; }

  /* Addons page */
  .addons-layout { flex-direction: column !important; gap: 16px; }
  .addons-main { width: 100%; }
  .addons-sidebar { width: 100% !important; order: -1; }
  .addon-section h3 { font-size: 17px; }
  .addon-card { flex-direction: column; padding: 12px; gap: 10px; }
  .addon-price { font-size: 16px; }
  .addon-btns { flex-wrap: wrap; }
  .addon-btn-add { padding: 8px 14px; font-size: 13px; }
  .tua-card { padding: 12px; }
  .tua-card h3 { font-size: 14px; }
  .tua-amount { font-size: 20px; }
  .tua-options { flex-direction: column; gap: 8px; }
  .tua-opt { padding: 10px; }
  .tua-opt h4 { font-size: 13px; }

  /* Seats page */
  .seats-layout { flex-direction: column !important; gap: 12px; }
  .seats-panel { width: 100% !important; order: 2; }
  .seats-panel h3 { font-size: 16px; margin-bottom: 8px; }
  .seats-main { flex-direction: column !important; order: 1; }
  .seat-map-wrap { padding: 10px 4px; border-radius: 10px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .seat-cols span { width: 38px; font-size: 10px; }
  .seat-cols .aisle { width: 14px; }
  .seat { width: 38px; height: 38px; font-size: 10px; border-radius: 6px; }
  .seat.aisle { width: 16px; }
  .seat-row { gap: 4px; margin-bottom: 4px; }
  .row-num { width: 24px; font-size: 10px; }
  .seat-type-section { font-size: 10px; padding: 6px 0 3px; }
  .seat-map-nav { font-size: 10px; }
  .seat-legend { margin-top: 12px; }
  .seat-legend-item { font-size: 11px; gap: 6px; }
  .seat-legend-swatch { width: 16px; height: 16px; }
  .seat-btn-next { padding: 12px; font-size: 15px; }
  .seat-btn-clear { font-size: 12px; }
  /* Seat pick info */
  .seat-pick-info { padding: 8px 10px !important; }
  .seat-pick-info h4 { font-size: 13px !important; }

  /* Sidebar (all variants) */
  .sidebar, .esb-card, .sb-card { width: 100% !important; }
  .layout-2col { flex-direction: column !important; gap: 12px; }
  .layout-main { width: 100%; }
  .esb-header { flex-direction: column; align-items: flex-start; gap: 6px; }
  .esb-title { font-size: 14px; }
  .esb-route .code { font-size: 14px; }
  .esb-section-title { font-size: 11px; }
  .esb-row { font-size: 11px; }
  .sb-grand-amount { font-size: 20px; }

  /* Passenger form */
  .pax-layout { flex-direction: column !important; gap: 12px; }
  .pax-main { width: 100%; }
  .pax-title { font-size: 17px; }
  .pax-card { padding: 12px 14px; border-radius: 10px; }
  .pax-section-title { font-size: 14px; }
  .form-row-2 { grid-template-columns: 1fr !important; gap: 8px; }
  .form-row-3 { grid-template-columns: 1fr !important; gap: 8px; }
  .pax-input, .pax-select { padding: 10px; font-size: 14px; }
  .pax-gender { gap: 12px; font-size: 13px; }
  .pax-check { font-size: 12px; }

  /* CC form */
  .cc-form { margin-bottom: 12px; }
  .cc-secure-badge { font-size: 12px; padding: 8px 10px; }
  .cc-row-2 { grid-template-columns: 1fr !important; gap: 8px; }
  .cc-input { padding: 10px; font-size: 14px; }
  .cc-select { padding: 10px; font-size: 14px; }
  .cc-total-line { flex-direction: column; gap: 4px; text-align: center; }
  .cc-total-amount { font-size: 20px; }
  .cc-pay-btn { padding: 14px !important; font-size: 16px !important; }
  .cc-logos { font-size: 11px; }

  /* Payment methods */
  .pay-method { padding: 10px 12px; font-size: 13px; }

  /* SPEI page */
  .spei-page { max-width: 100%; padding: 0; }
  .spei-card { padding: 14px; border-radius: 12px; }
  .spei-header-confirmed h2 { font-size: 18px; }
  .confirm-code { font-size: 20px; padding: 6px 16px; letter-spacing: 2px; }
  .spei-timer-box { flex-direction: column; gap: 8px; padding: 10px; }
  .spei-timer-icon { font-size: 22px; }
  .spei-countdown-display { font-size: 24px; }
  .spei-flight-info { flex-direction: column; gap: 8px; }
  .spei-flight-info .code { font-size: 18px; }
  .spei-amount { font-size: 26px; }
  .spei-section-title { font-size: 14px; }
  .spei-table td { padding: 8px 4px; font-size: 12px; }
  .spei-table td:first-child { width: 35%; }
  .spei-instructions { padding: 12px; }
  .spei-instructions ol { font-size: 12px; }
  .spei-btn-pdf { padding: 12px; font-size: 14px; }
  .spei-email-notice { flex-direction: column; gap: 6px; padding: 10px 12px; font-size: 12px; }

  /* Confirmation page */
  .confirm-page { padding: 12px 8px; }
  .confirm-page h2 { font-size: 18px; }
  .confirm-msg { font-size: 13px; }
  .confirm-details { padding: 12px; border-radius: 10px; }
  .cd-row { font-size: 12px; padding: 5px 0; }
  .cd-row.total { font-size: 14px; }

  /* Loading page */
  .loading-page h2 { font-size: 17px; }
  .loading-city .code { font-size: 18px; }
  .loading-plane { font-size: 24px; }

  /* Popups */
  .popup-box, .pay-error-modal { max-width: 90vw; padding: 16px; }
  .popup-box h3 { font-size: 16px; }
  .popup-box p { font-size: 13px; }

  /* Continue button */
  .continue-btn { width: 100%; padding: 14px; font-size: 16px; }

  /* General spacing */
  * { -webkit-tap-highlight-color: transparent; }
  input, select, button { font-size: 16px !important; /* prevent iOS zoom on focus */ }
}

/* ── Tablet (481-768px) ── */
@media (min-width: 481px) and (max-width: 768px) {
  .results-inner { padding: 20px 12px; }
  .v2-bundle-cards { grid-template-columns: 1fr 1fr !important; }
  .v2-header { flex-direction: column; }
  .v2-price-panel { border-left: none; border-top: 1px solid #f0f0f0; flex-direction: row; justify-content: space-between; min-width: unset; }
  .seats-panel { width: 100%; }
  .seats-layout { flex-direction: column; }
  .seats-main { flex-direction: column; }
  .addons-layout { flex-direction: column; }
  .addons-sidebar { width: 100%; }
  .pax-layout { flex-direction: column; }
  .layout-2col { flex-direction: column; }
  .sidebar { width: 100%; }
  .form-row-3 { grid-template-columns: 1fr 1fr 1fr; }
}

/* ── iOS safe areas ── */
@supports (padding: env(safe-area-inset-bottom)) {
  .spei-btn-pdf,
  .seat-btn-next,
  .continue-btn,
  .cc-pay-btn,
  .v2-bcard-select,
  .rt-new-search-btn {
    padding-bottom: calc(12px + env(safe-area-inset-bottom)) !important;
  }
}

/* ── Touch-friendly targets ── */
@media (pointer: coarse) {
  .seat { min-width: 38px; min-height: 38px; }
  .seat:hover:not(.taken):not(.aisle) { transform: none !important; box-shadow: none !important; }
  .seat:active:not(.taken):not(.aisle) { transform: scale(0.92); background: rgba(161,40,133,.15); }
  .v2-detalles { padding: 6px 10px; }
  .filter-btn { padding: 8px 14px; min-height: 36px; }
  .sort-btn { padding: 6px 12px; min-height: 32px; }
  .addon-btn-add { min-height: 40px; }
  .tua-opt { min-height: 50px; }
  .pax-option { min-height: 44px; }
  .ap-item { min-height: 44px; }
  .vcal-day { min-height: 36px; }
  .ds-day { min-height: 48px; }
}

/* ── Mobile hero/search full-width fix ── */
@media (max-width: 480px) {
  .hero { background: #4a2148 !important; }
  .hero-inner { padding: 16px 8px 20px !important; }
  .hero-wash { display: none; }
  .search-card { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
  .tabs { width: 100%; }
  .search-footer { flex-direction: column; }
  .search-btn { width: 100% !important; }
  /* Ensure body doesn't overflow */
  body { overflow-x: hidden; }
  html { overflow-x: hidden; }
}
