:root {
    --ink:#0f1b2d; --muted:#6b7684; --line:#e9edf2; --accent:#e11d2a;
    --accent-dark:#c0111d; --blue:#1657d6; --bg:#f4f6f9;
}
* { box-sizing: border-box; }
body { font: 16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color: var(--ink); background: var(--bg); margin: 0; }
a { color: var(--accent); }
.wrap { max-width: 960px; margin: 0 auto; padding: 22px 20px 72px; }

/* --- Header --- */
header.site { display:flex; align-items:center; justify-content:space-between; gap:16px;
              padding-bottom:18px; margin-bottom:26px; border-bottom:1px solid var(--line); }
header.site .brand { display:inline-flex; align-items:center; text-decoration:none; }
header.site .brand .logo { height:72px; width:auto; display:block; }
@media (max-width:640px) { header.site .brand .logo { height:54px; } }
header.site nav { display:flex; align-items:center; gap:20px; }
header.site nav a { font-size:.92rem; font-weight:600; text-decoration:none; color:var(--muted); }
header.site nav a:hover { color:var(--ink); }
header.site nav a.join { background:var(--accent); color:#fff; padding:9px 18px; border-radius:8px; }
header.site nav a.join:hover { background:var(--accent-dark); }

/* --- Page head --- */
.page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.page-head h1 { font-size:1.7rem; font-weight:800; letter-spacing:-.02em; margin:0 0 4px; }
.page-head p { color:var(--muted); margin:0; }
.updated { background:#fff; border:1px solid var(--line); border-radius:10px; padding:8px 14px;
           font-size:.8rem; color:var(--muted); white-space:nowrap; }
.updated strong { display:block; color:var(--ink); }

/* --- Tabs --- */
.tabs { display:flex; gap:10px; margin: 6px 0 22px; flex-wrap:wrap; }
.tabs a { padding:8px 18px; border:1px solid var(--line); border-radius:999px; text-decoration:none;
          font-size:.9rem; font-weight:700; color:var(--muted); background:#fff; }
.tabs a.on { background:var(--accent); color:#fff; border-color:var(--accent); }

/* --- Filter row (tabs + airport dropdown) --- */
.filter-row { display:flex; align-items:center; justify-content:space-between; gap:14px;
              margin: 6px 0 22px; flex-wrap:wrap; }
.filter-row .tabs { margin:0; }
.airport-filter { display:flex; align-items:center; gap:8px; }
.airport-filter label { font-size:.82rem; font-weight:700; color:var(--muted); white-space:nowrap; }
.airport-filter select { padding:8px 30px 8px 12px; border:1px solid var(--line); border-radius:999px;
                         background:#fff; font-size:.88rem; font-weight:600; color:var(--ink); cursor:pointer;
                         appearance:none; -webkit-appearance:none;
                         background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7684' d='M6 8L2 4h8z'/%3E%3C/svg%3E");
                         background-repeat:no-repeat; background-position:right 12px center; }
.airport-filter select:focus { outline:none; border-color:var(--accent); }
.airport-filter button { padding:8px 14px; border:1px solid var(--line); border-radius:999px;
                         background:#fff; font-weight:700; font-size:.85rem; cursor:pointer; }
@media (max-width:640px) { .airport-filter { width:100%; } .airport-filter select { flex:1; } }

/* --- Deal card --- */
.deal { display:flex; align-items:stretch; gap:0; background:#fff; border:1px solid var(--line);
        border-radius:16px; margin-bottom:16px; overflow:hidden; box-shadow:0 1px 2px rgba(15,27,45,.04); }
.deal-thumb { flex:0 0 190px; display:block; }
.deal-thumb img { width:100%; height:100%; min-height:150px; object-fit:cover; display:block; background:#e9edf2; }
.deal-body { flex:1 1 auto; padding:18px 20px; min-width:0; }
.deal-type { font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--blue); font-weight:800; }
.deal-title { font-size:1.12rem; font-weight:800; margin:4px 0 6px; line-height:1.25; }
.deal-title a { text-decoration:none; color:var(--ink); }
.deal-title a:hover { color:var(--accent); }
.rank { display:inline-block; min-width:22px; height:22px; line-height:22px; text-align:center;
        background:var(--accent); color:#fff; border-radius:50%; font-size:.74rem; font-weight:800; margin-right:6px; vertical-align:middle; }
.deal-desc { color:var(--muted); font-size:.92rem; margin:0 0 10px; }
.deal-facts { display:flex; flex-wrap:wrap; gap:16px; color:var(--muted); font-size:.85rem; }
.deal-facts span { display:inline-flex; align-items:center; gap:5px; }
.deal-pills { margin-top:10px; }
.pill { display:inline-block; background:#fff1ec; color:var(--accent); border-radius:999px;
        padding:2px 10px; font-size:.76rem; font-weight:700; margin:0 6px 6px 0; }
.pill.red { background:var(--accent); color:#fff; }
.pill.purple { background:#7c3aed; color:#fff; }
.pill.amber { background:#fef9c3; color:#854d0e; }
.pill.green { background:#dcfce7; color:#166534; }
.deal-score { font-size:.72rem; color:var(--muted); margin:6px 0 2px; }
.deal-score strong { color:var(--ink); font-size:.86rem; }

/* --- Price rail --- */
.deal-price { flex:0 0 168px; display:flex; flex-direction:column; align-items:center; justify-content:center;
              text-align:center; gap:6px; padding:16px; border-left:1px solid var(--line); }
.deal-price .price { font-size:1.55rem; font-weight:900; color:var(--accent); letter-spacing:-.02em; }
.deal-price .price .pp { font-size:.7rem; font-weight:700; color:var(--muted); margin-left:3px; }
.deal-price .save { font-size:.78rem; color:var(--muted); }
.spark-wrap { display:flex; flex-direction:column; align-items:center; gap:2px; margin:4px 0; }
.spark-wrap svg.spark { display:block; max-width:100%; height:auto; }
.spark-caption { font-size:.68rem; color:var(--muted); text-align:center; line-height:1.3; max-width:200px; }
.view-deal { display:inline-block; background:var(--accent); color:#fff; text-decoration:none;
             padding:9px 16px; border-radius:8px; font-weight:800; font-size:.9rem; margin-top:2px; }
.view-deal:hover { background:var(--accent-dark); }

/* --- Misc --- */
.meta { color:var(--muted); font-size:.9rem; margin:0 0 10px; }
.empty { background:#fff; border:1px dashed var(--line); border-radius:16px; padding:44px; text-align:center; color:var(--muted); }
.note { color:var(--muted); font-size:.8rem; margin-top:32px; text-align:center; }
.cta { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
       background:#eef3fd; border:1px solid #dbe6fb; border-radius:16px; padding:20px 24px; margin:24px 0; }
.cta strong { display:block; }
.cta .cta-text { color:var(--muted); font-size:.92rem; }
.cta form { margin:0; }
.cta button { padding:11px 20px; background:var(--accent); color:#fff; border:0; border-radius:8px; font-weight:800; cursor:pointer; }
.cta button:hover { background:var(--accent-dark); }

/* --- Day-trip search bar + cards --- */
.dt-search { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end;
             background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; margin:6px 0 18px; }
.dt-field { display:flex; flex-direction:column; gap:4px; flex:1 1 150px; min-width:0; }
.dt-field label { font-size:.74rem; text-transform:uppercase; letter-spacing:.05em; font-weight:800; color:var(--muted); }
.dt-field select { padding:9px 30px 9px 12px; border:1px solid var(--line); border-radius:10px;
                   background:#fff; font-size:.9rem; font-weight:600; color:var(--ink); cursor:pointer;
                   appearance:none; -webkit-appearance:none;
                   background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7684' d='M6 8L2 4h8z'/%3E%3C/svg%3E");
                   background-repeat:no-repeat; background-position:right 12px center; }
.dt-field select:focus { outline:none; border-color:var(--accent); }
.dt-count { color:var(--muted); font-size:.86rem; font-weight:700; margin:0 0 12px; }
.dt-card .deal-body { padding:16px 20px; }
.dt-card .deal-facts { gap:14px; margin-top:2px; }

@media (max-width:640px) {
    .deal { flex-direction:column; }
    .deal-thumb { flex-basis:auto; }
    .deal-thumb img { height:170px; min-height:0; }
    .deal-price { flex-basis:auto; flex-direction:row; justify-content:space-between; border-left:0; border-top:1px solid var(--line); }
    .page-head { flex-direction:column; }
    .dt-field { flex-basis:calc(50% - 6px); }
}

/* --- Evergreen content pages (guides, About, methodology) --- */
.content { max-width:760px; }
.content .kicker { font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; color:var(--blue); margin:0 0 8px; }
.content h1 { font-size:2rem; font-weight:900; letter-spacing:-.02em; line-height:1.15; margin:0 0 10px; }
.content .standfirst { font-size:1.15rem; line-height:1.55; color:#41506b; margin:0 0 20px; }
.content .byline { display:flex; align-items:center; gap:10px; font-size:.85rem; color:var(--muted);
                   padding:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:0 0 26px; }
.content .byline strong { color:var(--ink); }
.content .byline a { color:var(--accent); font-weight:700; text-decoration:none; }
.content h2 { font-size:1.3rem; font-weight:800; letter-spacing:-.01em; margin:30px 0 10px; }
.content h3 { font-size:1.05rem; font-weight:800; margin:22px 0 6px; }
.content p { font-size:1.02rem; line-height:1.7; margin:0 0 14px; color:var(--ink); }
.content ul, .content ol { line-height:1.7; margin:0 0 16px; padding-left:22px; }
.content li { margin:0 0 7px; }
.content a { color:var(--accent); font-weight:600; }
.content .lede-stat { display:flex; flex-wrap:wrap; gap:14px; margin:6px 0 26px; }
.content .stat { flex:1 1 150px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; }
.content .stat .num { font-size:1.7rem; font-weight:900; color:var(--accent); letter-spacing:-.02em; line-height:1; }
.content .stat .lbl { font-size:.82rem; color:var(--muted); margin-top:5px; }
.content .callout { background:#f6f8fb; border-left:3px solid var(--blue); border-radius:0 12px 12px 0;
                    padding:16px 18px; margin:20px 0; color:#41506b; }
.content .callout strong { color:var(--ink); }
.content .steps { list-style:none; padding:0; counter-reset:step; }
.content .steps > li { position:relative; padding:0 0 4px 44px; margin:0 0 18px; counter-increment:step; }
.content .steps > li::before { content:counter(step); position:absolute; left:0; top:0; width:30px; height:30px;
                               background:var(--accent); color:#fff; border-radius:50%; display:flex;
                               align-items:center; justify-content:center; font-weight:800; font-size:.9rem; }
.content .content-cta { background:#eef3fd; border:1px solid #dbe6fb; border-radius:16px; padding:22px 24px; margin:30px 0 10px; }
.content .content-cta strong { display:block; font-size:1.05rem; margin-bottom:4px; }
.content .content-cta p { margin:0 0 12px; color:var(--muted); font-size:.95rem; }
.content .content-cta a.btn { display:inline-block; background:var(--accent); color:#fff; text-decoration:none;
                              padding:11px 20px; border-radius:8px; font-weight:800; }
.content .content-cta a.btn:hover { background:var(--accent-dark); }
.content .toc { background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 20px; margin:0 0 26px; }
.content .toc strong { display:block; font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:8px; }
.content .toc ol { margin:0; padding-left:20px; }
.content .updated-note { font-size:.82rem; color:var(--muted); margin-top:30px; }

/* --- Content page hero + anchored TOC --- */
.content-hero { position:relative; height:340px; border-radius:20px; overflow:hidden; margin:0 0 26px;
                background:#e9edf2; box-shadow:0 2px 8px rgba(15,27,45,.06); }
.content-hero img { width:100%; height:100%; object-fit:cover; display:block; }
.content-hero::after { content:""; position:absolute; inset:0;
                       background:linear-gradient(180deg, rgba(15,27,45,.08) 30%, rgba(15,27,45,.78) 100%); }
.content-hero .hero-text { position:absolute; left:30px; right:30px; bottom:24px; z-index:1; color:#fff; }
.content-hero .hero-text .kicker { color:#fff; background:var(--accent); display:inline-block;
                                   padding:4px 12px; border-radius:999px; margin:0 0 12px; font-size:.72rem; }
.content-hero .hero-text h1 { color:#fff; margin:0; font-size:2.1rem; line-height:1.14; font-weight:900;
                              letter-spacing:-.02em; text-shadow:0 2px 14px rgba(15,27,45,.5); }
@media (max-width:720px) {
    .content-hero { height:230px; }
    .content-hero .hero-text { left:18px; right:18px; bottom:16px; }
    .content-hero .hero-text h1 { font-size:1.45rem; }
}
.content .toc ol { counter-reset:toc; list-style:none; padding-left:0; }
.content .toc li { counter-increment:toc; margin:0 0 6px; padding-left:30px; position:relative; }
.content .toc li::before { content:counter(toc); position:absolute; left:0; top:0; width:20px; height:20px;
                           background:#eef3fd; color:var(--blue); border-radius:50%; font-size:.72rem;
                           font-weight:800; display:flex; align-items:center; justify-content:center; }
.content .toc a { color:var(--ink); text-decoration:none; font-weight:600; }
.content .toc a:hover { color:var(--accent); text-decoration:underline; }
.content h2[id] { scroll-margin-top:20px; }

/* --- Contact form --- */
.contact-form { background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px 24px; margin:6px 0 10px; }
.contact-form .row { display:flex; gap:14px; flex-wrap:wrap; }
.contact-form .field { display:flex; flex-direction:column; gap:5px; margin:0 0 14px; flex:1 1 100%; }
.contact-form .row .field { flex:1 1 220px; }
.contact-form label { font-size:.8rem; font-weight:700; color:var(--muted); }
.contact-form input, .contact-form select, .contact-form textarea {
    width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:10px; font:inherit; color:var(--ink); background:#fff; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline:none; border-color:var(--accent); }
.contact-form textarea { resize:vertical; min-height:130px; }
.contact-form .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.contact-form button { margin-top:4px; padding:12px 22px; background:var(--accent); color:#fff; border:0;
                       border-radius:10px; font-weight:800; font-size:.98rem; cursor:pointer; }
.contact-form button:hover { background:var(--accent-dark); }
.contact-form .err { color:var(--accent); font-size:.82rem; margin:3px 0 0; }
.form-success { background:#dcfce7; border:1px solid #86efac; color:#166534; border-radius:14px;
                padding:16px 20px; margin:6px 0 18px; font-weight:600; }
