:root {
    --blue: #0f6dbf;
    --blue-deep: #0a4d8c;
    --cyan: #71cdf4;
    --blue-soft: #e8f2fb;
    --ink: #142033;
    --muted: #5a6678;
    --bg: #eef3f8;
    --card: #ffffff;
    --line: rgba(15, 109, 191, 0.14);
    --shadow: 0 18px 50px rgba(10, 40, 80, 0.12);
    --radius: 16px;
    --font-display: "Cairo", "IBM Plex Sans Arabic", sans-serif;
    --font-body: "IBM Plex Sans Arabic", "Cairo", sans-serif;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--ink);
    background:
        radial-gradient(1100px 480px at 90% -8%, rgba(15, 109, 191, 0.18), transparent 55%),
        radial-gradient(800px 380px at 0% 18%, rgba(113, 205, 244, 0.18), transparent 50%),
        linear-gradient(180deg, #f7fafc 0%, var(--bg) 40%, #e8eef5 100%);
    line-height: 1.7;
}

img { max-width: 100%; display: block; }
a { color: var(--blue-deep); text-decoration: none; }
a:hover { color: var(--blue); }

.container {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

.narrow { width: min(640px, calc(100% - 32px)); margin-inline: auto; }
.muted { color: var(--muted); }
.muted-light { color: rgba(255, 255, 255, 0.7); }

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(14px);
    background: rgba(255, 255, 255, 0.88);
    border-bottom: 1px solid var(--line);
}

.header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 76px;
    position: relative;
}

.brand img {
    height: 50px;
    width: auto;
}

.nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-weight: 600;
    font-size: 0.95rem;
}

.nav a {
    color: var(--ink);
    padding: 6px 2px;
    border-bottom: 2px solid transparent;
}

.nav a.is-active,
.nav a:hover {
    color: var(--blue);
    border-bottom-color: var(--cyan);
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 12px;
    padding: 11px 18px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.btn:hover { transform: translateY(-1px); }

.btn-primary {
    background: linear-gradient(135deg, var(--blue), var(--blue-deep));
    color: #fff;
    box-shadow: 0 10px 24px rgba(15, 109, 191, 0.28);
}

.btn-primary:hover { color: #fff; }

.btn-whatsapp {
    background: #1faf5b;
    color: #fff;
}

.btn-whatsapp:hover { color: #fff; }

.btn-ghost {
    background: transparent;
    color: var(--blue-deep);
    border: 1px solid var(--line);
}

.btn-light {
    background: #fff;
    color: var(--blue-deep);
}

.nav-toggle {
    display: none;
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 10px;
    width: 42px;
    height: 42px;
    font-size: 1.2rem;
}

/* Hero — full-bleed */
.hero {
    position: relative;
    min-height: min(92vh, 820px);
    display: grid;
    align-items: end;
    color: #fff;
    overflow: hidden;
}

.hero-media {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(8, 24, 48, 0.2) 0%, rgba(8, 24, 48, 0.5) 42%, rgba(8, 24, 48, 0.9) 100%),
        url("../img/hero/hero-wide.png") center/cover no-repeat;
    animation: hero-zoom 18s ease-in-out infinite alternate;
}

@keyframes hero-zoom {
    from { transform: scale(1); }
    to { transform: scale(1.06); }
}

.hero-inner {
    position: relative;
    z-index: 1;
    padding: 56px 0 64px;
}

.brand-kicker {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(2rem, 5.5vw, 3.4rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0 0 10px;
    text-shadow: 0 6px 28px rgba(0, 0, 0, 0.35);
    line-height: 1.15;
}

.hero h1 {
    margin: 0 0 12px;
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2.6vw, 1.75rem);
    font-weight: 700;
    max-width: 22ch;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.95);
}

.hero .lead {
    margin: 0 0 28px;
    max-width: 42ch;
    color: rgba(255, 255, 255, 0.88);
    font-size: 1.05rem;
}

.search-panel {
    background: rgba(255, 255, 255, 0.97);
    color: var(--ink);
    border-radius: 20px;
    box-shadow: var(--shadow);
    padding: 18px;
    max-width: 960px;
}

.search-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.search-tab {
    border: 1px solid var(--line);
    background: var(--blue-soft);
    color: var(--blue-deep);
    border-radius: 10px;
    padding: 8px 14px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.search-tab.is-active {
    background: linear-gradient(135deg, var(--blue), var(--blue-deep));
    color: #fff;
    border-color: transparent;
}

.search-panel form {
    display: none;
}

.search-panel form.is-active,
.search-form.is-active { display: block; }

.search-panel form[data-panel="flights"].is-active {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.search-panel label,
.stack-form label {
    display: grid;
    gap: 6px;
    font-size: 0.9rem;
    font-weight: 600;
}

.search-panel input,
.search-panel select,
.stack-form input,
.stack-form select,
.stack-form textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 12px;
    font: inherit;
    background: #fff;
}

.check-label {
    display: flex !important;
    align-items: center;
    gap: 8px;
    grid-template-columns: none !important;
    font-weight: 600;
    font-size: 0.88rem;
}

.check-label input {
    width: auto;
    margin: 0;
}

.search-panel .form-actions,
.cta-row {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.section { padding: 64px 0; }
.section-tight { padding-top: 8px; }

.section-head {
    margin-bottom: 28px;
    max-width: 48ch;
}

.section-head h2,
.block-title {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
}

.section-head p { margin: 0; color: var(--muted); }
.section-more { margin-top: 22px; }

.dest-rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(160px, 1fr);
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 8px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.dest-tile {
    position: relative;
    min-height: 200px;
    border-radius: var(--radius);
    overflow: hidden;
    color: #fff;
    scroll-snap-align: start;
    display: flex;
    align-items: flex-end;
    padding: 16px;
    isolation: isolate;
}

.dest-tile img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    z-index: -2;
}

.dest-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 30%, rgba(8, 24, 48, 0.85));
    z-index: -1;
}

.dest-tile:hover img { transform: scale(1.06); }

.dest-tile span {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.15rem;
}

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

.card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(15, 40, 80, 0.05);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
}

.card-media {
    aspect-ratio: 16 / 10;
    object-fit: cover;
    width: 100%;
}

.card-body { padding: 16px 18px 20px; }

.card-body h3 {
    margin: 0 0 6px;
    font-family: var(--font-display);
    font-size: 1.15rem;
}

.meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 14px;
}

.chip {
    font-size: 0.8rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 8px;
    background: var(--blue-soft);
    color: var(--blue-deep);
}

.services {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.service {
    position: relative;
    min-height: 220px;
    border-radius: var(--radius);
    overflow: hidden;
    color: #fff;
    display: flex;
    align-items: flex-end;
    padding: 18px;
    background: #123;
}

.service img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.service:hover img { transform: scale(1.05); }

.service::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 20%, rgba(8, 24, 48, 0.88));
}

.service > * { position: relative; z-index: 1; }

.service h3 {
    margin: 0 0 4px;
    font-family: var(--font-display);
}

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

.trust-item {
    background: linear-gradient(160deg, #fff, var(--blue-soft));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 22px;
}

.trust-item strong {
    display: block;
    font-family: var(--font-display);
    font-size: 1.15rem;
    margin-bottom: 6px;
    color: var(--blue-deep);
}

.faq-list {
    display: grid;
    gap: 10px;
    max-width: 820px;
}

.faq-list--wide { max-width: none; }

.faq-item {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 4px 16px;
}

.faq-item summary {
    cursor: pointer;
    font-weight: 700;
    font-family: var(--font-display);
    padding: 14px 0;
    list-style: none;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary::after {
    content: "+";
    float: left;
    color: var(--blue);
    font-weight: 800;
}

.faq-item[open] summary::after { content: "−"; }

.faq-item p {
    margin: 0 0 14px;
    color: var(--muted);
}

.cta-band {
    margin: 28px 0 40px;
    border-radius: 24px;
    padding: 36px;
    background:
        linear-gradient(120deg, rgba(15, 109, 191, 0.94), rgba(10, 77, 140, 0.9)),
        url("../img/destinations/istanbul.jpg") center/cover;
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.cta-band h2 {
    margin: 0 0 8px;
    font-family: var(--font-display);
}

.cta-band p { margin: 0; color: rgba(255, 255, 255, 0.9); }

.page-hero { padding: 48px 0 20px; }

.page-hero h1 {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.split {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 28px;
    align-items: start;
}

.split-media {
    border-radius: 20px;
    overflow: hidden;
    min-height: 280px;
}

.split-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 280px;
}

.contact-box {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 22px;
}

.stack-form {
    display: grid;
    gap: 12px;
}

.plain-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.plain-list li { margin: 0 0 10px; }

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

.hotel-item {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px 18px;
}

.hotel-item h3 {
    margin: 0 0 6px;
    font-family: var(--font-display);
    font-size: 1.05rem;
}

.text-link {
    font-weight: 700;
    color: var(--blue);
}

.site-footer {
    background: #0c1b2e;
    color: rgba(255, 255, 255, 0.88);
    padding-top: 48px;
    margin-top: 40px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr 1.2fr;
    gap: 24px;
    padding-bottom: 32px;
}

.footer-brand img {
    width: 96px;
    height: auto;
    margin-bottom: 10px;
}

.footer-tagline {
    font-family: var(--font-display);
    font-weight: 700;
    color: #fff;
}

.site-footer h3 {
    margin: 0 0 12px;
    color: #fff;
    font-family: var(--font-display);
    font-size: 1.05rem;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links a { color: rgba(255, 255, 255, 0.82); }
.footer-links a:hover { color: #fff; }
.footer-links li { margin-bottom: 8px; }

.footer-cta { margin-top: 14px; }

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 14px 0;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.65);
}

.footer-bottom-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
}

.fab-wa {
    position: fixed;
    z-index: 60;
    bottom: 20px;
    inset-inline-start: 20px;
    background: #1faf5b;
    color: #fff;
    font-weight: 800;
    padding: 14px 18px;
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(31, 175, 91, 0.35);
}

.fab-wa:hover { color: #fff; }

.reveal-ready {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal-ready.is-visible,
.reveal.is-visible {
    opacity: 1;
    transform: none;
}

.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }

@media (max-width: 1100px) {
    .header-phone { display: none; }
}

@media (max-width: 960px) {
    .nav { display: none; }
    .nav.is-open {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 76px;
        inset-inline: 0;
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 16px;
        padding: 14px;
        box-shadow: var(--shadow);
        z-index: 60;
    }
    .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
    .search-panel form.is-active { grid-template-columns: 1fr 1fr; }
    .cards,
    .services,
    .trust,
    .footer-grid,
    .split,
    .hotel-grid { grid-template-columns: 1fr; }
    .services { grid-template-columns: 1fr 1fr; }
    .hotel-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    .search-panel form.is-active { grid-template-columns: 1fr; }
    .services,
    .hotel-grid { grid-template-columns: 1fr; }
    .header-actions .btn-ghost { display: none; }
}

/* ===== OTA expansion v3 ===== */
.topbar {
    background: #0c1b2e;
    color: rgba(255,255,255,.88);
    font-size: .88rem;
}
.topbar-inner {
    display:flex; justify-content:space-between; align-items:center;
    gap:12px; min-height:40px; flex-wrap:wrap;
}
.topbar a { color: rgba(255,255,255,.88); }
.topbar a:hover { color:#fff; }
.topbar-start, .topbar-end { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.pill {
    display:inline-flex; align-items:center;
    padding:3px 10px; border-radius:8px;
    background: rgba(255,255,255,.1); font-weight:700;
}

.btn-lg { padding: 13px 22px; font-size: 1.05rem; }
.btn-ghost-light {
    background: transparent; color:#fff; border:1px solid rgba(255,255,255,.35);
}

.search-form { display:none; }
.search-form.is-active { display:block; }
.search-panel form.is-active { display:block; }

.trip-row {
    display:flex; flex-wrap:wrap; gap:10px 14px;
    margin-bottom:14px; align-items:center;
}
.radio-pill, .check-inline {
    display:inline-flex; align-items:center; gap:6px;
    font-weight:700; font-size:.9rem; cursor:pointer;
}
.search-grid {
    display:grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap:12px;
    align-items:end;
}
.swap-btn {
    align-self:end; height:44px; width:44px;
    border:1px solid var(--line); border-radius:10px;
    background:var(--blue-soft); cursor:pointer; font-size:1.1rem;
    margin-bottom:1px;
}
.ac-wrap { position:relative; }
.ac-list {
    position:absolute; inset-inline:0; top:100%; z-index:20;
    background:#fff; border:1px solid var(--line); border-radius:12px;
    box-shadow:var(--shadow); max-height:240px; overflow:auto; margin-top:4px;
}
.ac-item {
    display:flex; flex-direction:column; gap:2px; width:100%;
    text-align:right; border:0; background:transparent;
    padding:10px 12px; cursor:pointer; font:inherit;
}
.ac-item:hover { background:var(--blue-soft); }
.ac-item span { color:var(--muted); font-size:.82rem; }
.hint { margin:0 0 8px; color:var(--muted); font-size:.9rem; }
.multi-city {
    margin-top:12px; padding-top:12px;
    border-top:1px dashed var(--line);
}

.routes-strip {
    display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center;
    background:#fff; border:1px solid var(--line); border-radius:14px;
    padding:14px 18px;
}
.routes-strip a {
    font-weight:700; padding:6px 10px; border-radius:8px;
    background:var(--blue-soft);
}
.section-compact { padding:18px 0 0; }
.row-head {
    display:flex; justify-content:space-between; align-items:end;
    gap:16px; max-width:none;
}
.row-head > div { max-width:48ch; }

.offer-rail, .offer-grid {
    display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px;
}
.offer-card {
    display:grid; grid-template-rows:160px auto;
    background:#fff; border:1px solid var(--line); border-radius:16px;
    overflow:hidden; color:inherit; transition: transform .25s ease, box-shadow .25s ease;
}
.offer-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); color:inherit; }
.offer-card img { width:100%; height:160px; object-fit:cover; }
.offer-card > div { padding:14px 16px 18px; }
.offer-card h3, .offer-card h2 { margin:8px 0 6px; font-family:var(--font-display); font-size:1.15rem; }
.offer-card p { margin:0; color:var(--muted); font-size:.92rem; }
.offer-card--lg { grid-template-rows:200px auto; }
.offer-card--lg img { height:200px; }
.badge {
    display:inline-block; font-size:.75rem; font-weight:800;
    padding:4px 8px; border-radius:8px;
    background:linear-gradient(135deg,var(--blue),var(--blue-deep)); color:#fff;
}

.hotel-cards {
    display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:14px;
}
.hotel-cards--grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.hotel-card {
    background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden;
    display:flex; flex-direction:column;
}
.hotel-card img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.hotel-card > div { padding:14px 16px 18px; display:flex; flex-direction:column; gap:6px; flex:1; }
.hotel-card h3 { margin:0; font-family:var(--font-display); font-size:1.05rem; }
.hotel-card .btn { margin-top:auto; align-self:flex-start; }
.stars { color:#c9a227; letter-spacing:1px; font-size:.95rem; }

.steps {
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px;
}
.step {
    background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px;
}
.step span {
    display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center;
    border-radius:10px; background:var(--blue); color:#fff; font-weight:800; margin-bottom:10px;
}
.step strong { display:block; font-family:var(--font-display); margin-bottom:6px; }

.card-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.card-body a:not(.btn) { color:inherit; }
.inline-search {
    display:flex; gap:10px; flex-wrap:wrap; margin-top:14px;
}
.inline-search input {
    flex:1; min-width:220px; padding:11px 14px; border-radius:12px;
    border:1px solid var(--line); font:inherit;
}
.chip-filters { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }

.results-layout {
    display:grid; grid-template-columns:280px 1fr; gap:22px; align-items:start;
}
.result-banner {
    display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:center;
    background:linear-gradient(160deg,#fff,var(--blue-soft));
    border:1px solid var(--line); border-radius:16px; padding:16px 18px; margin-bottom:18px;
}
.result-banner p { margin:0; max-width:50ch; }

.detail-grid {
    display:grid; grid-template-columns:1.4fr .75fr; gap:24px; align-items:start;
}
.gallery {
    display:grid; grid-template-columns:2fr 1fr; gap:10px; margin-bottom:24px;
}
.gallery img {
    width:100%; height:100%; min-height:160px; object-fit:cover; border-radius:14px;
}
.gallery img:first-child { grid-row: span 2; min-height:340px; }
.itinerary { padding-inline-start:1.2rem; }
.itinerary li { margin-bottom:8px; }
.split-lists {
    display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:24px;
}
.sticky-aside { position:sticky; top:96px; }
.eyebrow { font-weight:800; color:var(--blue); margin:0 0 6px; }

.dest-hero {
    position:relative; color:#fff; padding:72px 0 56px;
    background:
        linear-gradient(180deg, rgba(8,24,48,.35), rgba(8,24,48,.82)),
        var(--dest-img) center/cover no-repeat;
}
.dest-hero h1 { margin:0 0 8px; font-family:var(--font-display); font-size:clamp(2rem,5vw,3rem); }
.dest-hero p { margin:0 0 18px; max-width:40ch; }

.footer-apps {
    display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; align-items:center;
    padding:28px 0; margin-bottom:8px;
    border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-apps h3 { margin:0 0 6px; color:#fff; font-family:var(--font-display); }
.footer-app-actions { display:flex; gap:10px; flex-wrap:wrap; }
.pay-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.pay-row span {
    font-size:.78rem; font-weight:700; padding:5px 8px; border-radius:8px;
    background:rgba(255,255,255,.08); color:rgba(255,255,255,.85);
}
.prose p { color:var(--muted); }

@media (max-width: 1100px) {
    .search-grid { grid-template-columns:1fr 1fr; }
    .swap-btn { display:none; }
    .hotel-cards, .offer-rail, .steps { grid-template-columns:1fr 1fr; }
    .results-layout, .detail-grid { grid-template-columns:1fr; }
    .sticky-aside { position:static; }
}
@media (max-width: 720px) {
    .topbar-end { display:none; }
    .search-grid, .hotel-cards, .hotel-cards--grid, .offer-rail, .offer-grid, .steps, .split-lists, .gallery {
        grid-template-columns:1fr;
    }
    .gallery img:first-child { grid-row:auto; min-height:220px; }
    .row-head { flex-direction:column; align-items:flex-start; }
}

/* ===== density v4 ===== */
.superhead {
    margin:0 0 6px; font-weight:800; letter-spacing:.04em;
    color: var(--cyan); text-transform:none; font-size:.95rem;
}
.price-line { margin:8px 0; font-size:1.05rem; }
.price-line strong { color:var(--blue-deep); font-size:1.2rem; }
.price-hero { font-size:1.35rem; margin:12px 0 4px; }
.price-hero strong { color:#ffe08a; font-size:1.6rem; }
.page-hero .price-hero strong { color:var(--blue-deep); }
.tiny { font-size:.82rem; }
.fare-list { display:grid; gap:12px; }
.fare-card {
    display:grid; grid-template-columns:180px 1fr auto auto;
    gap:14px; align-items:center;
    background:#fff; border:1px solid var(--line);
    border-radius:16px; padding:16px 18px;
}
.fare-airline { display:flex; gap:10px; align-items:center; }
.airline-code {
    width:48px; height:48px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,var(--blue),var(--blue-deep));
    color:#fff; font-weight:800;
}
.fare-airline p { margin:0; }
.fare-route {
    display:grid; grid-template-columns:1fr auto 1fr; gap:10px; align-items:center;
}
.fare-route span { display:block; font-size:.85rem; }
.fare-mid { text-align:center; font-size:.8rem; color:var(--muted); }
.fare-mid i {
    display:block; height:2px; margin:6px 0;
    background:linear-gradient(90deg,transparent,var(--blue),transparent);
}
.fare-price { text-align:center; min-width:160px; }
.price-hint { display:block; margin:4px 0 10px; color:var(--blue-deep); }
.filter-group { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.result-note { margin-top:-8px; margin-bottom:16px; }
.visa-results { display:grid; gap:16px; }
.visa-card {
    display:grid; grid-template-columns:220px 1fr; gap:16px;
    background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden;
}
.visa-card img { width:100%; height:100%; min-height:180px; object-fit:cover; }
.visa-card > div { padding:18px; }
.include-box {
    background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px;
}
.article-hero-img {
    width:100%; border-radius:18px; max-height:380px; object-fit:cover; margin-bottom:22px;
}
@media (max-width:960px) {
    .fare-card { grid-template-columns:1fr; }
    .visa-card { grid-template-columns:1fr; }
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.top-select select{
  background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.2);
  border-radius:8px; padding:4px 8px; font:inherit; font-size:.85rem;
}
.top-select select option{color:#142033}
.chip.is-on{background:var(--blue); color:#fff}
.country-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:28px}
.country-card{
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px;
}
.country-card h3{margin:0 0 6px; font-family:var(--font-display); font-size:1.1rem}
.child-ages{margin-top:12px; padding-top:12px; border-top:1px dashed var(--line)}
.stack-form-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px}
@media (max-width:960px){
  .country-grid,.stack-form-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .country-grid,.stack-form-grid{grid-template-columns:1fr}
}
