:root { --blue:#1246a0; --blue-dark:#0d3170; --ink:#192839; --muted:#516174; --paper:#fff; --sky:#eef4fc; --line:#d5dfea; --sun:#ffdc76; --green:#176341; --page:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; background:var(--paper); }
body { margin:0; color:var(--ink); font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif; line-height:1.55; }
a { color:inherit; } button,input,select { font:inherit; } button,a,input,select { -webkit-tap-highlight-color:transparent; }
button,select { cursor:pointer; } [hidden] { display:none!important; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid #bc5100; outline-offset:4px; }
.skip-link { position:absolute; top:-100px; left:12px; padding:12px; background:white; z-index:10; }.skip-link:focus { top:8px; }
.topbar { max-width:var(--page); margin:auto; min-height:92px; padding:18px 28px; display:flex; gap:32px; align-items:center; }
.wordmark { display:inline-flex; align-items:center; white-space:nowrap; color:var(--blue); text-decoration:none; font-size:30px; font-weight:800; letter-spacing:-1px; }
.brand-lockup { min-width:0; }.brand-tagline { font-size:12px; line-height:1.45; color:var(--muted); margin:5px 0 0; max-width:36ch; }
.hero-copy .brand-slogan { font-size:16px; line-height:1.5; max-width:42ch; }.brand-scope { color:var(--muted); font-size:12px; margin:6px 0 0; }
.contact-link { display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px; min-height:44px; max-width:100%; color:var(--blue); font-size:13px; text-underline-offset:3px; overflow-wrap:anywhere; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; margin-right:10px; background:var(--blue); color:white; border-radius:50%; font-size:25px; }
.brand-dot { color:#b45200; }
nav { display:flex; gap:26px; margin-left:auto; font-size:14px; font-weight:600; }nav a { text-decoration:none; }nav a:hover { color:var(--blue); text-decoration:underline; }
.language-control { display:flex; align-items:center; gap:8px; font-size:12px; }.language-control select { border:1px solid var(--line); border-radius:6px; padding:9px 6px; color:var(--ink); background:white; max-width:174px; min-height:44px; }
.hero { max-width:var(--page); margin:auto; padding:42px 28px 64px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); align-items:center; gap:64px; }
.hero-tag { color:var(--blue); font-weight:700; font-size:14px; margin:0 0 18px; }
h1,h2,h3,p { overflow-wrap:break-word; }h1,h2,h3 { line-height:1.12; }h1 { font-size:clamp(38px,4.4vw,62px); letter-spacing:-2.4px; margin:0; font-weight:800; max-width:620px; }h2 { font-size:clamp(28px,3vw,39px); letter-spacing:-1.2px; margin:0; }h3 { font-size:21px; margin:0; letter-spacing:-.5px; }
.hero-intro { max-width:540px; font-size:17px; color:var(--muted); margin:24px 0; }.coverage { font-size:12px; color:var(--muted); margin:18px 0 0; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 20px; border-radius:7px; text-decoration:none; font-size:14px; font-weight:750; border:1px solid transparent; cursor:pointer; text-align:center; }
.button-primary { background:var(--blue); color:white; }.button-primary:hover { background:var(--blue-dark); }.button-light { background:white; color:var(--blue-dark); }.button-light:hover { background:var(--sun); }
.featured { position:relative; padding:30px; background:var(--blue); color:white; border-radius:18px 18px 48px 18px; min-width:0; }
.featured::before { content:""; position:absolute; top:0; right:35px; width:40px; height:7px; background:var(--sun); }
.carousel-controls { display:flex; align-items:center; gap:8px; margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid #6e93ca; }
.carousel-controls[hidden] { display:none; }
.carousel-controls button { min-width:44px; min-height:44px; border:1px solid #9bb8e3; border-radius:8px; background:transparent; color:white; font:inherit; cursor:pointer; }
.carousel-controls button:hover { background:#ffffff20; }
.carousel-controls button:focus-visible { outline-color:var(--sun); }
#featured-pause { width:44px; padding:0; display:grid; place-items:center; border-color:transparent; }
.carousel-icon { display:block; box-sizing:border-box; }
.carousel-icon.is-pause { width:10px; height:12px; border-left:3px solid currentColor; border-right:3px solid currentColor; }
.carousel-icon.is-play { width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:10px solid currentColor; margin-left:2px; }
#featured-prev,#featured-next { font-size:27px; line-height:1; }
.carousel-position { flex:1; text-align:center; color:#e0eaff; font-size:13px; font-variant-numeric:tabular-nums; }
.featured-kicker { color:#dbe8ff; font-size:13px; margin:0 0 22px; }.featured h2 { font-size:clamp(30px,3.3vw,44px); letter-spacing:-1.3px; }.featured .country { color:var(--sun); margin:8px 0 4px; }.featured .airport,.featured .origin-line { color:#e0eaff; }.featured .price { font-size:54px; color:white; }.featured-price { padding-top:16px; border-top:1px dashed #8faedf; margin-top:22px; }.featured .fare-basis,.featured .checked { color:#e0eaff; }.featured .date-line { margin:16px 0; }.featured .button { margin-top:20px; width:100%; }.featured .badge { background:var(--sun); color:var(--blue-dark); }.featured .comparison { color:#e0eaff; }
.preview-note { background:#fff4ce; padding:18px max(28px,calc((100vw - 1184px)/2)); }.preview-note p { margin:5px 0 0; }
.deal-section { background:var(--sky); padding:46px max(28px,calc((100vw - 1184px)/2)) 60px; }
.section-heading { margin-bottom:24px; }.section-heading p { color:var(--muted); max-width:690px; margin:12px 0 0; }
.filters { display:grid; grid-template-columns:1fr 1.15fr .7fr; gap:20px; padding:24px; border:1px solid var(--line); border-radius:10px; background:white; }
.field { min-width:0; }.field label { display:block; font-size:12px; font-weight:750; margin-bottom:7px; }.field select,.field input { width:100%; min-width:0; min-height:47px; border:1px solid #adbccd; border-radius:5px; padding:11px; background:white; color:var(--ink); font-size:14px; }
.filter-bottom { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:16px; }.check { display:flex; align-items:center; gap:9px; font-size:14px; min-height:30px; }.check input { width:18px; height:18px; accent-color:var(--blue); }
.text-button { border:0; padding:8px 2px; color:var(--blue); background:transparent; text-decoration:underline; font-weight:650; font-size:13px; min-height:44px; }
.results-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:24px 0 18px; font-size:13px; }.results-toolbar p { margin:0; font-weight:650; }.sort-control { display:flex; align-items:center; gap:10px; }.sort-control select { border:1px solid var(--line); border-radius:5px; background:white; color:var(--ink); padding:10px; max-width:230px; min-height:44px; }
.deal-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }.deal-card { display:flex; flex-direction:column; background:white; padding:24px; border:1px solid var(--line); border-radius:10px; min-width:0; scroll-margin-top:20px; }.deal-card:target { outline:3px solid var(--blue); outline-offset:3px; }
.badge { display:inline-block; align-self:flex-start; font-size:12px; font-weight:750; line-height:1.45; padding:5px 9px; border-radius:4px; background:#e5f3eb; color:var(--green); margin-bottom:20px; }.badge.target { background:#e9efff; color:var(--blue); }.badge.sample { background:#fff0ba; color:#644300; }
.deal-card h3 { font-size:29px; line-height:1.12; letter-spacing:-.9px; }.country { color:var(--blue); font-size:14px; font-weight:650; margin:7px 0; }.airport { color:var(--muted); font-size:12px; margin:0; line-height:1.5; }.origin-line { color:var(--muted); font-size:13px; margin:17px 0; }.date-line { margin:0 0 5px; font-size:14px; font-weight:650; }.trip-detail { font-size:12px; color:var(--muted); margin:0 0 17px; }.featured .trip-detail { color:#e0eaff; }
.price-block { border-top:1px dashed var(--line); padding-top:17px; margin-top:auto; }.price-line { display:flex; gap:9px; align-items:baseline; flex-wrap:wrap; }.price { display:block; font-size:40px; line-height:1.1; letter-spacing:-1.5px; font-weight:800; }.trip-type { font-size:12px; }.fare-basis { font-size:11px; color:var(--muted); margin:6px 0; }.comparison { font-size:12px; color:var(--green); margin:8px 0; }.deal-card .button { width:100%; margin-top:14px; }.checked { display:block; font-size:11px; color:var(--muted); margin:12px 0 0; }.stale-note { color:#855000; font-size:12px; margin:6px 0 0; }.booking-note { font-size:12px; color:var(--muted); line-height:1.6; max-width:840px; margin:26px 0 0; }
.empty-state { grid-column:1/-1; padding:42px 24px; border:1px dashed #aebed1; border-radius:10px; text-align:center; background:white; }.empty-state p { color:var(--muted); }.empty-state h3 { font-size:24px; }
.deal-details-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin-top:6px; color:var(--blue); font-size:13px; font-weight:650; text-underline-offset:3px; }
.newsletter { max-width:var(--page); margin:auto; padding:64px 28px 0; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.newsletter h2 { max-width:470px; }.newsletter p { color:var(--muted); }.newsletter .hero-tag { color:var(--blue); }.newsletter .alerts-promise { font-size:13px; }
.newsletter-panel { padding:28px; background:var(--sky); border-top:4px solid var(--blue); border-radius:0 0 12px 12px; }
#alerts-form { display:grid; gap:16px; }.alerts-consent { align-items:flex-start; font-size:13px; }.alerts-consent input { flex:0 0 18px; margin-top:3px; }
.alerts-privacy { margin:0; font-size:12px; }#alerts-status { font-size:14px; }#alerts-status:empty { display:none; }
button:disabled { opacity:.65; cursor:wait; }.email-page { max-width:760px; padding:64px 24px; margin:auto; }.email-page h1 { font-size:40px; letter-spacing:-1px; }.email-page p { margin:24px 0; }
@media(max-width:740px) { .newsletter { grid-template-columns:1fr; gap:20px; padding:40px 20px 0; }.newsletter-panel { padding:22px; } }
.method { max-width:var(--page); margin:auto; padding:68px 28px; }.method-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; margin-top:32px; }.method-grid article { border-top:3px solid var(--blue); padding-top:21px; }.method-grid p { color:var(--muted); font-size:14px; }
.faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:55px; padding:0 28px 64px; max-width:var(--page); margin:auto; }.faq details { padding:18px 0; border-bottom:1px solid var(--line); }.faq details:first-child { border-top:1px solid var(--line); }.faq summary { cursor:pointer; font-weight:650; padding-right:8px; }.faq p { color:var(--muted); font-size:14px; max-width:68ch; }
footer { background:var(--sky); padding:32px max(28px,calc((100vw - 1184px)/2)); display:grid; grid-template-columns:1fr 1.3fr; gap:60px; }footer p { color:var(--muted); font-size:12px; margin:8px 0; }.footer-notes { max-width:70ch; }
@media(min-width:1500px) { .hero { gap:100px; } }
@media(max-width:1050px) { .deal-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.hero { gap:32px; }nav { gap:15px; }.language-control label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); } }
@media(max-width:740px) { .topbar { flex-wrap:wrap; padding:16px 20px; gap:14px; }.wordmark { font-size:21px; }.language-control { margin-left:auto; }.language-control select { max-width:158px; font-size:12px; }nav { order:3; width:100%; margin:0; gap:24px; }.hero { grid-template-columns:1fr; padding:28px 20px 36px; gap:30px; }h1 { max-width:570px; letter-spacing:-1.5px; }.hero-intro { font-size:16px; }.featured { border-radius:12px 12px 36px 12px; padding:25px; }.featured .price { font-size:46px; }.featured-kicker { margin-bottom:15px; }.filters { grid-template-columns:1fr; padding:18px; gap:15px; }.filter-bottom { grid-column:1; }.deal-section { padding:36px 20px; }.sort-control label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }.sort-control select { max-width:205px; font-size:12px; }.results-toolbar { gap:10px; }.method { padding:44px 20px; }.method-grid { grid-template-columns:1fr; gap:24px; }.faq { grid-template-columns:1fr; padding:0 20px 44px; gap:22px; }footer { grid-template-columns:1fr; gap:20px; padding:28px 20px; } }
@media(max-width:560px) { .deal-list { grid-template-columns:1fr; }.deal-card { padding:22px; }.hero h1 { font-size:40px; }.language-control select { max-width:146px; }.topbar { gap:10px; }.brand-mark { width:29px; height:29px; margin-right:7px; }.wordmark { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.scan-updates { margin:0 0 26px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.scan-updates h3 { font-size:18px; margin:0 0 6px; }
.scan-row { display:grid; grid-template-columns:minmax(150px,1fr) minmax(0,1.6fr) minmax(120px,.9fr); gap:12px 24px; align-items:start; padding:12px 0; }
.scan-name strong { display:block; font-size:15px; }.scan-cadence,.scan-time,.scan-state,.scan-explanation,#scan-status>p { font-size:13px; color:var(--muted); }
.scan-time,.scan-state { margin:0; }.scan-time time { font-variant-numeric:tabular-nums; }.scan-state { color:var(--blue); }.scan-state.needs-attention { color:#855000; }
.scan-explanation { margin:8px 0 0; max-width:78ch; }
/* Wrap long Spanish labels and controls instead of squeezing the fare column. */
nav { flex-wrap:wrap; }nav a { display:inline-flex; align-items:center; min-height:44px; }
.results-toolbar,.filter-bottom { flex-wrap:wrap; }.sort-control { min-width:0; }.check { min-height:44px; }
@media(max-width:740px) { .scan-row { grid-template-columns:minmax(0,1fr); gap:6px; }.scan-row+.scan-row { border-top:1px solid var(--line); }.scan-state { font-weight:650; }.scan-explanation { font-size:12px; } }
@media(max-width:380px) { .language-control { max-width:100%; }.topbar .language-control select { max-width:138px; }.results-toolbar .sort-control { width:100%; }.sort-control select { width:100%; max-width:100%; }.trip-dates,.trip-facts { grid-template-columns:minmax(0,1fr); } }
