/* ============================================================
   Responsive — 5-tier media queries (xs · sm · md · lg · xl)
============================================================ */

@media (prefers-reduced-motion: reduce) {

      *,
      *::before,
      *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
      }
    }

@media (max-width:767px) {
      .float-side {
        left: 12px;
        gap: 8px;
      }

      .float-btn {
        width: 42px;
        height: 42px;
        font-size: 15px;
      }

      .float-tooltip {
        display: none;
      }

      .fab-ai {
        width: 56px;
        height: 56px;
        right: 16px;
        bottom: 16px;
        font-size: 21px;
      }

      .fab-ai-label {
        display: none;
      }
    }

@media (max-width:479px) {
      .float-side {
        left: 10px;
        gap: 6px;
      }

      .float-btn {
        width: 38px;
        height: 38px;
        font-size: 14px;
      }
    }

@media (max-width: 1023px) {
      #navbar {
        height: 60px;
        padding: 0 20px;
        justify-content: space-between;
      }

      .nav-logo {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin: 0;
        font-size: 18px;
      }

      .nav-links,
      .nav-right {
        display: none;
      }

      .nav-mob-call,
      .nav-burger {
        display: flex;
      }
    }

@media (max-width: 479px) {
      #navbar {
        padding: 0 14px;
      }

      .mobile-drawer {
        width: 100%;
        max-width: 100%;
      }

      .nav-logo {
        font-size: 17px;
      }
    }

@media (max-width: 767px) {
      .hero-search-card {
        padding: 22px;
        border-radius: 20px;
      }

      .hero-search-title {
        font-size: 19px;
      }

      .hero-fw-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
      }

      .hero-fw-go {
        padding: 14px 18px;
      }

      .hero-stats-bar {
        margin-top: 36px;
        padding: 18px 0;
      }

      .hero-stats-bar .hero-stats {
        flex-wrap: wrap;
        padding: 0 20px;
        gap: 10px;
      }

      .hero-stats-bar .hs-item {
        flex: 1 1 calc(50% - 10px);
        padding: 12px 8px;
        border-right: none;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 12px;
      }

      .hero-stats-bar .hs-num {
        font-size: 24px;
      }
    }

@media (max-width: 479px) {
      .hero-fw-grid {
        grid-template-columns: 1fr;
      }

      .hero-route-chip {
        font-size: 11px;
        padding: 7px 12px;
      }
    }

@media (max-width: 1023px) {
      .tgrid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
      .tcard-img { height: 180px; }
    }

@media (max-width: 767px) {
      .tgrid { grid-template-columns: 1fr; gap: 18px; }
      .tcard-img { height: 180px; }
      .tcard-name { font-size: 20px; }
      .tcard-body { padding: 20px; }
      .tcard-price-tag { padding: 8px 12px; }
      .tcard-price-tag-num { font-size: 18px; }
    }

@media (max-width: 1023px) {
      .adgrid {
        grid-template-columns: repeat(2, 1fr);
      }

      .adcard:nth-child(3) {
        grid-column: 1 / -1;
      }
    }

@media (max-width: 767px) {
      .adgrid {
        grid-template-columns: 1fr;
        gap: 16px;
      }

      .adcard {
        padding: 28px 24px;
        min-height: 300px;
      }

      .adcard:nth-child(3) {
        grid-column: auto;
      }

      .adcard-title {
        font-size: 22px;
      }

      .adcard-bg-icon {
        font-size: 160px;
        bottom: -22px;
        right: -18px;
      }

      .adcard-meta-num {
        font-size: 14px;
      }
    }

@media (max-width: 479px) {
      .adcard-meta {
        padding: 10px 12px;
      }

      .adcard-meta-divider {
        height: 26px;
      }
    }

@media (max-width: 479px) {
      .cur-row { padding: 14px; gap: 8px; }
      .cur-input { font-size: 22px; }
      .cur-swap { width: 42px; height: 42px; }
      .rate-grid { grid-template-columns: repeat(2, 1fr); }
    }

@media (max-width: 1023px) {
      .guide-layout { grid-template-columns: 1fr; }
      .g-sidebar {
        position: static;
        max-height: none;
      }
      .c-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
      }
    }

@media (max-width: 767px) {
      .gc-hero { padding: 24px; }
      .gc-flag { width: 72px; height: 72px; font-size: 48px; border-radius: 16px; }
      .gc-body { padding: 24px; }
      .gc-grid { grid-template-columns: repeat(2, 1fr); }
    }

@media (max-width: 479px) {
      .c-list { grid-template-columns: 1fr; }
      .gc-grid { grid-template-columns: 1fr; }
    }

@media (max-width: 1023px) {
      .blog-featured { grid-template-columns: 1fr; }
      .blog-featured .blog-img-main { min-height: 200px; }
      .blog-featured-body { padding: 28px; }
      .blog-row { grid-template-columns: repeat(2, 1fr); gap: 18px; }
    }

@media (max-width: 767px) {
      .blog-row { grid-template-columns: 1fr; gap: 16px; }
      .blog-featured-body { padding: 24px; }
      .blog-img { height: 200px; }
    }

@media (max-width: 1023px) {
      .cont-layout {
        grid-template-columns: 1fr;
        gap: 40px;
      }
    }

@media (max-width: 767px) {
      .cont-form { padding: 24px; }
      .cont-form-head-icon { width: 40px; height: 40px; }
    }

@media (max-width: 1279px) {
      .foot-grid {
        grid-template-columns: 1.4fr 1fr 1fr 1fr;
        gap: 36px;
      }
      .foot-grid .foot-col:last-child { grid-column: 2 / 5; }
      .foot-grid .foot-col:last-child .foot-col-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px 16px; }
    }

@media (max-width: 1023px) {
      .foot-news {
        grid-template-columns: 1fr;
        padding: 28px 24px;
        gap: 18px;
        margin-top: 36px;
      }
      .foot-news-form { width: 100%; }
      .foot-news-input { flex: 1; width: auto; }
      .foot-grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
      }
      .foot-grid .foot-col:last-child { grid-column: auto; }
      .foot-grid .foot-col:last-child .foot-col-list { display: block; }
      .foot-bottom { grid-template-columns: 1fr; text-align: center; }
      .socials { justify-content: center; }
      .foot-copy, .foot-bottom-links { justify-content: center; display: flex; }
    }

@media (max-width: 767px) {
      footer /* container uses width:90% globally */
      .foot-news { padding: 24px; border-radius: 18px; }
      .foot-news-text h3 { font-size: 19px; }
      .foot-news-form { flex-direction: column; }
      .foot-news-input { width: 100%; }
      .foot-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        margin-bottom: 36px;
      }
      .foot-main { padding-bottom: 32px; }
    }

@media (max-width: 1279px) {
      :root {
        --sec-py: 56px;
        --sec-px: 0px;
      }

      /* container uses width:90% globally */

      .hero-inner {
        gap: 48px;
      }

      .foot-grid {
        grid-template-columns: 1.4fr 1fr 1fr 1fr;
        gap: 40px;
      }

      #navbar {
        padding: 0 32px;
      }
    }

@media (max-width: 1023px) {
      :root {
        --sec-py: 48px;
        --sec-px: 0px;
      }

      /* container uses width:90% globally */

      .sec {
        padding: var(--sec-py) 0;
      }

      .sec-head {
        gap: 24px;
      }

      .hero-inner,
      .why-grid,
      .sim-layout,
      .italy-layout,
      .b2b-layout,
      .sch-layout,
      .faq-layout,
      .cont-layout,
      .chat-layout,
      .lug-layout {
        grid-template-columns: 1fr;
        gap: 48px;
      }

      .flights-grid {
        grid-template-columns: repeat(3, 1fr);
      }

      .hgrid,
      .tgrid,
      .svc-grid,
      .rev-grid,
      .adgrid {
        grid-template-columns: repeat(2, 1fr);
      }

      .blog-grid {
        grid-template-columns: 1fr 1fr;
      }

      .ins-hero {
        grid-template-columns: 1fr;
        padding: 40px;
      }

      .guide-layout {
        grid-template-columns: 1fr;
      }

      .foot-grid {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
      }

      .fw-grid {
        grid-template-columns: 1fr 1fr;
      }

      #navbar {
        padding: 0 28px;
      }

      .why-stats {
        grid-template-columns: repeat(2, 1fr);
      }

      .t-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

@media (max-width: 767px) {
      :root {
        --sec-py: 40px;
        --sec-px: 0px;
      }

      html {
        font-size: 15px;
      }

      body {
        -webkit-text-size-adjust: 100%;
      }

      /* container uses width:90% globally */

      .sec {
        padding: var(--sec-py) 0;
      }

      .sec-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        margin-bottom: 32px;
      }

      .sec-head .btn {
        align-self: flex-start;
      }

      .sec-sub {
        font-size: 15px;
        max-width: 100%;
      }

      .badge {
        font-size: 10px;
        padding: 5px 12px;
      }

      /* Touch-friendly buttons */
      .btn {
        min-height: var(--tap-min);
        padding: 12px 22px;
        font-size: 14px;
      }

      .btn-sm {
        padding: 10px 18px;
        font-size: 12px;
        min-height: 38px;
      }

      /* Inputs sized for touch */
      .fi,
      .fi2,
      .input,
      .cur-input,
      .dim-in,
      .wx-input,
      .g-search,
      .chat-fi {
        font-size: 16px;
        /* prevents iOS auto-zoom on focus */
        min-height: var(--tap-min);
      }

      /* Grids collapse */
      .flights-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
      }

      .hgrid,
      .tgrid,
      .svc-grid,
      .rev-grid,
      .adgrid,
      .t-grid,
      .tool-grid {
        grid-template-columns: 1fr;
        gap: 16px;
      }

      .blog-grid {
        grid-template-columns: 1fr;
        gap: 16px;
      }

      .why-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
      }

      .why-stats .wstat {
        padding: 18px 12px;
      }

      .wstat-num {
        font-size: 26px;
      }

      .wstat-label {
        font-size: 10.5px;
      }

      /* Hero spacing */
      .hero-inner {
        padding: 64px 20px 40px;
        gap: 32px;
      }

      .hero-search-card {
        padding: 20px;
        border-radius: 18px;
      }

      .sf-grid,
      .sf-row {
        grid-template-columns: 1fr;
      }

      /* Hero stats wrap */
      .hero-stats {
        flex-wrap: wrap;
        gap: 16px;
      }

      .hs-item {
        border-right: none;
        margin-right: 0;
        padding-right: 0;
        flex: 1 1 calc(50% - 16px);
        min-width: 120px;
      }

      /* CTAs stack */
      .cta-inner {
        flex-direction: column;
        text-align: center;
        gap: 24px;
      }

      .cta-btns {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
      }

      /* Footer */
      .foot-grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px 24px;
      }

      .foot-bottom {
        flex-direction: column;
        gap: 18px;
        text-align: center;
      }

      .partner-logos {
        gap: 10px;
      }

      .plogo {
        font-size: 12px;
        padding: 14px 20px;
      }

      /* Forms — single column */
      .fg-row {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .fw-grid {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .fw-wrap {
        padding: 28px;
      }

      /* Section card padding */
      .iform,
      .cont-form,
      .b2b-right,
      .lug-widget,
      .sch-widget,
      .g-content,
      .sim-card {
        padding: 24px;
      }

      .ins-hero {
        padding: 32px 24px;
        gap: 32px;
      }

      /* Reviews larger touch area */
      .rev-card {
        padding: 24px;
      }

      /* Ticker — mobile polish */
      .tick {
        padding: 11px 14px;
        font-size: 11.5px;
        gap: 8px;
        border-right: 1px solid var(--gray-100);
      }
      .tick i { font-size: 9px; }
      .tick-price { font-size: 11.5px; }
      .ticker-track {
        padding-left: 110px;
        animation-duration: 32s;
      }
      .ticker-badge {
        padding: 0 12px;
        font-size: 9px;
        letter-spacing: 0.05em;
        gap: 5px;
      }
      .ticker-badge i { font-size: 9px; }
    }

@media (max-width: 479px) {
      :root {
        --sec-py: 32px;
        --sec-px: 0px;
      }

      /* container uses width:90% globally */

      .sec {
        padding: var(--sec-py) 0;
      }

      /* Tighter typography on small screens */
      h1.hero-h1 {
        font-size: 30px;
        line-height: 1.08;
      }

      .sec-title {
        font-size: 26px;
      }

      .hero-desc {
        font-size: 15px;
      }

      /* Hero collapses tighter */
      .hero-inner {
        padding: 48px 16px 32px;
        gap: 24px;
      }

      .hero-pill {
        font-size: 11px;
        padding: 6px 12px;
      }

      .hero-acts {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
      }

      .hero-acts .btn {
        width: 100%;
        justify-content: center;
      }

      .hero-stats {
        padding-top: 24px;
        gap: 14px;
      }

      .hs-num {
        font-size: 24px;
      }

      .hs-label {
        font-size: 10px;
      }

      /* Flights grid full single column */
      .flights-grid {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      /* Ticker — ultra-compact: hide badge, free up scroll lane */
      .ticker-badge { display: none; }
      .ticker-track {
        padding-left: 0;
        animation-duration: 28s;
      }
      .tick {
        padding: 10px 12px;
        font-size: 11px;
        gap: 6px;
      }
      .tick-price { font-size: 11px; }

      /* Cards rounded a bit less to save space */
      .fcard,
      .hcard,
      .tcard,
      .svc-card,
      .rev-card,
      .tool-card,
      .tcard2 {
        border-radius: 18px;
      }

      .svc-card {
        padding: 24px;
      }

      /* Footer single column on tiny screens */
      .foot-grid {
        grid-template-columns: 1fr;
        gap: 28px;
      }

      /* Logos compact */
      .nav-logo {
        font-size: 17px;
      }

      /* Tabs scroll horizontally if too wide */
      .search-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
        -webkit-overflow-scrolling: touch;
      }

      .search-tabs::-webkit-scrollbar {
        display: none;
      }

      .stab {
        flex-shrink: 0;
      }

      /* Badge & tag sizing */
      .badge {
        font-size: 10px;
        padding: 5px 10px;
      }

      .tag {
        font-size: 10px;
        padding: 3px 9px;
      }

      /* Chips wrap */
      .pop-routes {
        gap: 6px;
      }

      .rchip {
        font-size: 10px;
        padding: 5px 11px;
      }

      /* Why-us stats stack 2-col still */
      .why-stats {
        grid-template-columns: 1fr 1fr;
      }
    }

@media (max-width: 767px) and (orientation: landscape) {
      .hero-inner {
        padding: 48px 20px 32px;
      }
    }
