/* ============================================================
   FLEWLT — MAIN.CSS
   Global layout: Header, Footer, Sidebar, Body
   Font: DM Sans  |  Brand: Sky Blue #0057F5
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

/* ── GLOBAL TOKENS ───────────────────────────────────────────── */
:root {
    --sky-blue:      #0057F5;
    --cruise-blue:   #167ce4;
    --altitude-blue: #003F91;
    --jet-black:     #232326;
    --waypoint-coral:#F05F6E;
    --runway-yellow: #FFBB15;

    

    --grad-sky:      linear-gradient(140deg, rgba(0, 113, 206, 0.8) 4%, rgba(0, 90, 182, 1) 30%, rgba(6, 47, 135, 1) 57%);
    --grad-footer:   linear-gradient(135deg, #0057F5 0%, #004FC4 40%, #003491 100%);

    --blue-10:       #E5F0FE;
    --blue-20:       #CCE0FD;
    --blue-40:       #99C1FC;

    --ink:           #232326;
    --muted:         #8A92A3;
    --border:        #E1E5ED;
    --bg:            #F1F3F7;
    --card:          #FFFFFF;
    --panel-gray:    #626262;
    --runway-gray:   #C0C6D4;
    --soft-gray:     #F1F3F7;

    --shadow-sm:     0 2px 12px rgba(0,57,145,.08);
    --shadow-lg:     0 20px 60px rgba(0,57,145,.16);

    --r-sm:  10px;
    --r-md:  14px;
    --r-lg:  18px;
    --r-xl:  24px;

    --t-fast:   .15s ease;
    --t-normal: .22s ease;

    /* Keep old vars for backward compat with other pages */
    --blue-1:    #0057F5;
    --blue-2:    #003F91;
    --indigo:    #4f46e5;
    --violet:    #7c3aed;
    --amber:     #f59e0b;
    --amber-dark:#d97706;
    --green:     #10b981;
    --cyan:      #06b6d4;
    --grad-brand:var(--grad-sky);
    --grad-amber:linear-gradient(135deg,#f59e0b,#d97706);
    --blue-glow: rgba(0,87,245,.20);
    --shadow-md: 0 8px 28px rgba(0,57,145,.11);
}



/* ── RESET ───────────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family: "DM Sans", Helvetica;
    background: var(--Tints-Blue-2, #FAFCFE);
    color: var(--ink);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}
 
a { text-decoration:none; color:inherit; }

/* ============================================================
   HEADER
   ============================================================ */
.header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 1px 0 rgba(0,57,145,.06);
}

.header-inner {
    max-width: 1440px;
    margin: auto;
    padding: 0 120px;
    height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Logo */
.logo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    text-decoration: none;
}

.logo img { width: 120px; height: 30px; aspect-ratio: 3.94;}

/* Logo text fallback */
.logo-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--grad-sky);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 16px;
    flex-shrink: 0;
}

.logo-text {
    font-size: 20px;
    font-weight: 700;
    color: var(--sky-blue);
    letter-spacing: -.3px;
}

/* Desktop Nav — center */
.header-nav-wrap {
    display: flex;
    align-items: center;
    gap: 0;
}

.desktop-menu {
    display: flex;
    align-items: center;
    gap: 20px;
}

.nav-item {
    display: inline-flex;
    align-items: center;
    padding: 25px 15px;
    font-size: 16px;
    font-weight: 400;
    color: var(--panel-gray);
    transition: var(--t-fast);
    white-space: nowrap;
    text-decoration: none;
    letter-spacing: 0.32px;
}

.nav-item:hover {
    color: var(--sky-blue);
    background: var(--blue-10);
    box-shadow: 0 2px 8px rgba(0, 87, 245, 0.12);
}

.nav-item.active {
    background: var(--grad-sky);
    font-weight: 600;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Right actions */
.header-actions {
    display: flex;
    align-items: center;
    gap: 56px;
}

/* Get Pro button */
.btn-get-pro {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    background: var(--grad-sky);
    color: white;
    font-size: 14px;
    font-weight: 600;
    padding: 8px 24px;
    border-radius: 24px;
    border: none;
    cursor: pointer;
    transition: var(--t-normal);
    white-space: nowrap;
    text-decoration: none;
    letter-spacing: -.1px;
}

.btn-get-pro:hover {
    background: var(--altitude-blue);
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0,87,245,.36);
}

/* Mobile hamburger */
.mobile-menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    width: 40px;
    height: 40px;
    border-radius: var(--r-sm);
    font-size: 20px;
    color: var(--ink);
    cursor: pointer;
    transition: var(--t-fast);
}

.mobile-menu-toggle:hover {
    border-color: var(--sky-blue);
    color: var(--sky-blue);
}

/* Pro button states */
.btn-already-pro {
    background: linear-gradient(135deg, #065f46, #059669) !important;
    color: #fff !important;
    border-color: transparent !important;
    /* pointer-events: none; */
}

.mobile-already-pro {
    background: linear-gradient(135deg, #065f46, #059669) !important;
    color: #fff !important;
    /* pointer-events: none; */
}
/* ============================================================
   MOBILE SIDEBAR
   ============================================================ */
.sidebar-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    opacity: 0;
    visibility: hidden;
    transition: var(--t-normal);
    z-index: 1100;
}

.sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
}

.mobile-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: 280px;
    height: 100vh;
    background: white;
    z-index: 1200;
    transform: translateX(-100%);
    transition: .32s cubic-bezier(.4,0,.2,1);
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.mobile-sidebar.open { transform: translateX(0); }

body.mobile-nav-open .sidebar-overlay {
    opacity: 1;
    visibility: visible;
}

body.mobile-nav-open .mobile-sidebar {
    transform: translateX(0);
}

.sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 20px 18px;
    border-bottom: 1px solid var(--border);
}

.sidebar-close {
    width: 34px;
    height: 34px;
    border-radius: var(--r-sm);
    background: var(--soft-gray);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    color: var(--muted);
    cursor: pointer;
    transition: var(--t-fast);
}

.sidebar-close:hover { color: var(--ink); background: var(--border); }

.sidebar-nav {
    flex: 1;
    padding: 16px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow-y: auto;
}

.mobile-nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    border-radius: var(--r-md);
    font-size: 14.5px;
    font-weight: 500;
    color: var(--muted);
    transition: var(--t-fast);
    text-decoration: none;
}

.mobile-nav-item i { font-size: 17px; }

.mobile-nav-item:hover {
    background: var(--blue-10);
    color: var(--sky-blue);
}

.mobile-nav-item.active {
    background: var(--blue-10);
    color: var(--sky-blue);
    font-weight: 600;
}

.sidebar-footer {
    padding: 20px 16px 40px;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.mobile-get-pro {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--grad-sky);
    color: white;
    font-weight: 600;
    font-size: 14px;
    border-radius: var(--r-md);
    padding: 13px;
    text-decoration: none;
    transition: var(--t-fast);
}

.mobile-get-pro:hover { background: var(--altitude-blue); color: white; }

.mobile-logout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: rgba(240,95,110,.08);
    color: var(--waypoint-coral);
    font-weight: 600;
    font-size: 14px;
    border-radius: var(--r-md);
    padding: 12px;
    border: 1.5px solid rgba(240,95,110,.2);
    text-decoration: none;
    transition: var(--t-fast);
}

.mobile-logout:hover {
    background: rgba(240,95,110,.15);
    border-color: rgba(240,95,110,.4);
}

/* ============================================================
   MAIN CONTENT WRAPPER
   ============================================================ */
.main-content {
    max-width: 1440px;
    margin: auto;
    padding: 0px 120px 0px;
    background: #FAFCFE;
}


/* .right-bg::after {
    width: 42%;
    height: 65%;
    background-image: url('bg-map.png');
    background-size: 300px;
    background-repeat: no-repeat;
    background-position: center;
    z-index: -111;
} */

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
    position: relative;
    margin-top: 80px;
    background: linear-gradient(140deg, rgba(0, 113, 206, 0.8) 4%, rgba(0, 90, 182, 1) 30%, rgba(6, 47, 135, 1) 57%);
    overflow: hidden;
    /* width: 1440px; */
    height: 176px;
    margin: auto;
}

/* Hexagon / world-map texture overlay */
.footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px);
    background-size: 20px 20px;
    pointer-events: none;
    z-index: 0;
}

/* Subtle world-map silhouette using a dot grid mask */
.footer::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 60%;
    height: 100%;
    background: radial-gradient(ellipse 80% 80% at 80% 50%,
        rgba(0,40,130,.35) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.footer-inner {
    position: relative;
    z-index: 1;
    max-width: 1440px;
    margin: auto;
    padding: 40px 125px ;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 24px;
}
.footer-inner::after {
    content: "";
    position: absolute;
    top: 0;
    right: 100px;

    width: 50%;     /* right half */
    height: 110%;   /* FULL height (important) */

    background-image: url("map-2.png");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: right center; /* anchor to right */

    z-index: -1;
}

/* Logo block */
.footer-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 24px;
    text-decoration: none;
    width: 127.97px;
    height: 32px;
}

.footer-logo-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: rgba(255,255,255,.2);
    border: 1.5px solid rgba(255,255,255,.3);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 16px;
    flex-shrink: 0;
}

.footer-logo-text {
    font-size: 18px;
    font-weight: 700;
    color: white;
    letter-spacing: -.2px;
}

/* Left block — logo + links */
.footer-left {
    display: flex;
    flex-direction: column;
}

.footer-links {
    display: flex;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap;
}

.footer-link {
    font-size: 14px;
    font-weight: 400;
    color: rgba(250, 252, 254, 1);
    text-decoration: none;
    transition: var(--t-fast);
}

.footer-link:hover { color: white; }

/* Right block — social */
.footer-right {
    display: flex;
    align-items: center;
    margin-top: 42px;

}

.footer-social-label {
    font-size: 14px;
    color: #ffffff;
    font-weight: 400;
    white-space: nowrap;
    margin-right: 10px;
}

.footer-social-btn {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 24px;
    text-decoration: none;
    transition: var(--t-fast);
}

.footer-social-btn:hover {
    background: rgba(255,255,255,.28);
    border-color: rgba(255,255,255,.5);
    transform: translateY(-2px);
}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 992px) {
    .desktop-menu      { display: none; }
    .btn-get-pro       { display: none; }
    .mobile-menu-toggle { display: flex; }
}

@media (max-width: 600px) {
    .main-content  { padding: 18px 0px 0; }
    .header-inner  { padding: 0 16px; }
    .footer-inner  { padding: 28px 16px 24px; flex-direction: column; align-items: flex-start; gap: 0px; }
    .footer-inner::after { background-size: 380px;     right: 0px;
    width: 100%;
    height: 100%;}
    .footer-links  { display: contents;}
    .footer-links a { margin-top: 3px; font-size: 12px;}
    .footer-right  { flex-wrap: wrap;     margin-top: 10px; }
    .footer{    height: 242px; font-size: 12px;}
    .footer-logo { margin-bottom: 16px; }
    .footer-social-label { margin-right: 100px; }
}

.footer-logo img {
    width: 128px;
    height: auto;
    display: block;
}

.app-loader {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(250, 252, 254, 0.62);
    backdrop-filter: blur(2px);
}

.app-loader.active {
    display: flex;
}

.app-loader__spinner {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 3px solid #cce3f5;
    border-top-color: #005AB6;
    animation: app-loader-spin .8s linear infinite;
}

@keyframes app-loader-spin {
    to {
        transform: rotate(360deg);
    }
}
