/* =========================================================
   SINO PAK GLOBAL — Corporate Navy & Emerald Theme
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    --spg-primary: #0E2F4E;        /* Dark Navy Blue */
    --spg-primary-dark: #173B5E;   /* Deep Blue */
    --spg-secondary: #0F5A47;      /* Emerald Green */
    --spg-secondary-dark: #0B4637; /* Dark Green */
    --spg-info: #3EA9D6;           /* Sky Blue */
    --spg-soft: #F3F7FA;           /* Light tint for section backgrounds */
    --spg-border: #B8C4D1;         /* Silver Gray */
    --spg-white: #FFFFFF;
    --spg-dark: #0B1B2B;
    --spg-gray: #6B7280;
    --spg-radius: 18px;
    --spg-radius-sm: 10px;
    --spg-shadow: 0 10px 40px rgba(14, 47, 78, 0.08);
    --spg-shadow-lg: 0 20px 60px rgba(11, 27, 43, 0.14);
    --font-heading: 'Montserrat', sans-serif;
    --font-body: 'Inter', sans-serif;
}

body {
    font-family: var(--font-body);
    color: var(--spg-dark);
    background: var(--spg-white);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .font-heading {
    font-family: var(--font-heading);
    font-weight: 700;
    letter-spacing: -0.01em;
}

a { text-decoration: none; }

.text-primary-spg { color: var(--spg-primary) !important; }
.bg-primary-spg { background-color: var(--spg-primary) !important; }
.bg-soft-spg { background-color: var(--spg-soft) !important; }
.bg-secondary-spg { background-color: var(--spg-secondary) !important; color: #fff !important; }

/* Buttons */
.btn-spg {
    background: linear-gradient(135deg, var(--spg-secondary) 0%, var(--spg-secondary-dark) 100%);
    color: #fff;
    border: none;
    padding: 0.85rem 2rem;
    border-radius: 50px;
    font-weight: 600;
    font-family: var(--font-heading);
    letter-spacing: 0.02em;
    transition: transform .25s ease, box-shadow .25s ease;
    box-shadow: 0 8px 24px rgba(15, 90, 71, 0.28);
}
.btn-spg:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(15, 90, 71, 0.38); color: #fff; }

.btn-outline-spg {
    border: 2px solid var(--spg-primary);
    color: var(--spg-primary);
    background: transparent;
    padding: 0.8rem 2rem;
    border-radius: 50px;
    font-weight: 600;
    font-family: var(--font-heading);
    transition: all .25s ease;
}
.btn-outline-spg:hover { background: var(--spg-primary); color: #fff; }

/* Navbar */
.navbar-spg {
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 20px rgba(14, 47, 78, 0.06);
    padding: 0.9rem 0;
    z-index: 1030;
}
.navbar-spg .navbar-brand { font-family: var(--font-heading); font-weight: 800; font-size: 1.5rem; color: var(--spg-primary); }
.navbar-spg .navbar-brand span { color: var(--spg-secondary); }
.navbar-spg .nav-link { font-weight: 500; color: var(--spg-dark) !important; margin: 0 0.55rem; position: relative; }
.navbar-spg .nav-link:hover, .navbar-spg .nav-link.active { color: var(--spg-secondary) !important; }
.navbar-spg .navbar-toggler:focus { box-shadow: none; }

/* Dropdown ("Study Abroad") — always expands INLINE below its link,
   the same way at every screen size (phone through desktop). It never
   becomes a floating overlay box, so behavior is identical everywhere. */
.navbar-spg .dropdown-menu {
    position: static !important;
    float: none;
    border: none;
    box-shadow: none;
    background: var(--spg-soft);
    border-radius: 10px;
    margin-top: .4rem;
    padding: .5rem;
    min-width: 0;
    width: 100%;
}
.navbar-spg .dropdown-item { border-radius: 6px; padding: .55rem .75rem; }
.navbar-spg .dropdown-item:hover, .navbar-spg .dropdown-item:focus { background: var(--spg-secondary); color: #fff; }
.navbar-spg .dropdown-toggle::after { transition: transform .2s ease; }
.navbar-spg .dropdown-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
@media (min-width: 1200px) {
    .navbar-spg .nav-item.dropdown { max-width: 220px; }
}

/* Collapsed menu (shown below xl, i.e. up to 1199.98px) — give it its own
   card-like surface so it reads cleanly whether it's a phone or a tablet */
@media (max-width: 1199.98px) {
    .navbar-spg .navbar-collapse {
        background: #fff;
        border-radius: var(--spg-radius-sm);
        box-shadow: var(--spg-shadow);
        padding: 1rem 1.25rem;
        margin-top: .75rem;
        max-height: calc(100vh - 100px);
        overflow-y: auto;
    }
    .navbar-spg .nav-link { margin: 0; padding: .6rem .25rem; border-bottom: 1px solid var(--spg-border); }
    .navbar-spg .nav-item:last-of-type .nav-link { border-bottom: none; }
    .navbar-spg .btn-spg { display: block; width: 100%; text-align: center; margin-top: .75rem; }
}

/* Hero */
.hero-spg {
    background: linear-gradient(135deg, var(--spg-soft) 0%, #E7EEF3 60%, #fff 100%);
    padding: 7rem 0 6rem;
    position: relative;
    overflow: hidden;
}
.hero-spg::after {
    content: '';
    position: absolute; top: -20%; right: -10%;
    width: 500px; height: 500px; border-radius: 50%;
    background: radial-gradient(circle, rgba(14,47,78,0.10) 0%, transparent 70%);
}
.hero-spg h1 { font-size: 3rem; line-height: 1.15; color: var(--spg-primary); }
.hero-badge {
    display: inline-flex; align-items: center; gap: .5rem;
    background: #fff; padding: .5rem 1.1rem; border-radius: 50px;
    font-size: .85rem; font-weight: 600; color: var(--spg-secondary);
    box-shadow: var(--spg-shadow); margin-bottom: 1.2rem;
    border: 1px solid var(--spg-border);
}

/* Cards */
.card-spg {
    background: #fff; border-radius: var(--spg-radius); border: 1px solid var(--spg-border);
    box-shadow: var(--spg-shadow); transition: transform .3s ease, box-shadow .3s ease;
    overflow: hidden; height: 100%;
}
.card-spg:hover { transform: translateY(-6px); box-shadow: var(--spg-shadow-lg); border-color: var(--spg-secondary); }
.card-spg .card-icon {
    width: 60px; height: 60px; border-radius: 16px;
    background: linear-gradient(135deg, var(--spg-primary), var(--spg-secondary));
    display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem; color: #fff; margin-bottom: 1rem;
}

.section-pad { padding: 5.5rem 0; }
.section-title-eyebrow {
    color: var(--spg-secondary); font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.12em; font-size: .8rem;
}
.section-title { font-size: 2.2rem; margin-bottom: 1rem; color: var(--spg-primary); }

/* Stats */
.stat-box { text-align: center; }
.stat-box .num { font-family: var(--font-heading); font-weight: 800; font-size: 2.6rem; color: var(--spg-secondary); }
.stat-box .label { color: var(--spg-gray); font-weight: 500; }

/* Country pills */
.country-pill {
    background: #fff; border-radius: var(--spg-radius-sm); padding: 1.2rem;
    text-align: center; box-shadow: var(--spg-shadow); font-weight: 600;
    transition: all .25s ease; border: 1px solid var(--spg-border); color: var(--spg-primary);
}
.country-pill:hover { border-color: var(--spg-secondary); color: var(--spg-secondary); transform: translateY(-4px); }

/* Testimonials */
.testimonial-card { background: var(--spg-soft); border-radius: var(--spg-radius); padding: 2rem; height: 100%; border: 1px solid var(--spg-border); }
.testimonial-card .stars { color: var(--spg-info); }

/* Footer */
.footer-spg { background: var(--spg-primary); color: rgba(255,255,255,0.82); padding: 4rem 0 1.5rem; }
.footer-spg h5 { color: #fff; font-family: var(--font-heading); margin-bottom: 1.2rem; }
.footer-spg a { color: rgba(255,255,255,0.72); }
.footer-spg a:hover { color: var(--spg-info); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.15); padding-top: 1.5rem; margin-top: 2.5rem; font-size: .85rem; }

/* Forms */
.form-spg .form-control, .form-spg .form-select {
    border-radius: var(--spg-radius-sm); padding: .75rem 1rem; border: 1.5px solid var(--spg-border);
}
.form-spg .form-control:focus, .form-spg .form-select:focus {
    border-color: var(--spg-secondary); box-shadow: 0 0 0 0.2rem rgba(15,90,71,0.15);
}
.form-spg label { font-weight: 600; font-size: .9rem; margin-bottom: .35rem; color: var(--spg-primary); }

/* CTA band */
.cta-band {
    background: linear-gradient(135deg, var(--spg-primary), var(--spg-secondary-dark));
    border-radius: 28px; padding: 4rem; color: #fff; text-align: center;
}

/* Admin panel */
.admin-sidebar {
    background: var(--spg-primary); color: #fff;
    width: 260px; min-height: 100vh; position: sticky; top: 0; overflow-y: auto;
    flex-shrink: 0;
}
.admin-sidebar a { color: rgba(255,255,255,0.75); padding: .7rem 1.2rem; display: block; border-radius: 10px; font-weight: 500; }
.admin-sidebar a:hover, .admin-sidebar a.active { background: var(--spg-secondary); color: #fff; }
.admin-topbar { background: #fff; box-shadow: 0 2px 10px rgba(14,47,78,0.05); padding: 1rem 1.5rem; position: sticky; top: 0; z-index: 20; }
.admin-card { background: #fff; border-radius: var(--spg-radius-sm); box-shadow: var(--spg-shadow); padding: 1.5rem; border: 1px solid var(--spg-border); }
.stat-tile { background: #fff; border-radius: var(--spg-radius-sm); padding: 1.5rem; box-shadow: var(--spg-shadow); border-left: 4px solid var(--spg-secondary); }
.admin-sidebar-toggle {
    background: none; border: 1px solid var(--spg-border); border-radius: 8px;
    width: 40px; height: 40px; font-size: 1.3rem; color: var(--spg-primary);
}
.admin-sidebar-backdrop { display: none; }

@media (max-width: 991.98px) {
    .admin-sidebar {
        position: fixed; top: 0; left: 0; height: 100vh; z-index: 1050;
        transform: translateX(-100%); transition: transform .3s ease;
    }
    .admin-sidebar.is-open { transform: translateX(0); }
    .admin-sidebar-backdrop {
        display: block; position: fixed; inset: 0; background: rgba(11,27,43,0.5);
        z-index: 1040; opacity: 0; pointer-events: none; transition: opacity .3s ease;
    }
    .admin-sidebar-backdrop.is-visible { opacity: 1; pointer-events: auto; }
}
.badge-status-new { background: var(--spg-info); }
.badge-status-contacted { background: #F59E0B; }
.badge-status-qualified { background: var(--spg-primary); }
.badge-status-converted { background: var(--spg-secondary); }
.badge-status-lost { background: #6B7280; }

/* =========================================================
   RESPONSIVE — full range, mobile through 4K
   ========================================================= */

/* Small laptops / narrow desktops (992–1199px) */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .hero-spg h1 { font-size: 2.5rem; }
}

/* Tablets and small laptops */
@media (max-width: 991.98px) {
    .hero-spg { padding: 6rem 0 4rem; }
    .hero-spg h1 { font-size: 2.4rem; }
    .section-pad { padding: 4rem 0; }
    .section-title { font-size: 1.9rem; }
    .cta-band { padding: 3rem 2rem; }
}

/* Large phones / small tablets */
@media (max-width: 767.98px) {
    body { font-size: .96rem; }
    .hero-spg { padding: 5.5rem 0 3.5rem; text-align: center; }
    .hero-spg h1 { font-size: 2rem; }
    .hero-spg .stat-box .num { font-size: 2rem; }
    .section-pad { padding: 3.25rem 0; }
    .section-title { font-size: 1.6rem; }
    .card-spg { border-radius: var(--spg-radius-sm); }
    .card-spg .p-4, .card-spg.p-4 { padding: 1.25rem !important; }
    .card-spg.p-5, .card-spg .p-5 { padding: 1.5rem !important; }
    .cta-band { padding: 2.25rem 1.25rem; border-radius: 20px; }
    .cta-band h2 { font-size: 1.5rem; }
    .footer-spg { padding: 2.75rem 0 1.25rem; text-align: center; }
    .footer-spg .d-flex.gap-3 { justify-content: center; }
    .whatsapp-float { width: 52px !important; height: 52px !important; font-size: 1.35rem !important; bottom: 16px !important; right: 16px !important; }
    .admin-topbar { padding: .85rem 1rem; }
    .admin-topbar h5 { font-size: 1rem; }
    .admin-card { padding: 1.1rem; }
    .stat-tile { padding: 1.1rem; }
}

/* Small phones */
@media (max-width: 575.98px) {
    .hero-spg h1 { font-size: 1.7rem; }
    .hero-badge { font-size: .78rem; padding: .4rem .9rem; }
    .section-title { font-size: 1.4rem; }
    .btn-spg, .btn-outline-spg { padding: .7rem 1.4rem; font-size: .92rem; width: 100%; text-align: center; }
    .hero-spg .d-flex.gap-3 { flex-direction: column; }
    .hero-spg .d-flex.gap-3 > a { width: 100%; }
    .cta-band .d-flex.gap-3 { flex-direction: column; align-items: stretch; }
    .country-pill { padding: .9rem; font-size: .85rem; }
    .stat-box .num { font-size: 1.7rem; }
    table.table { font-size: .85rem; }
}

/* Extra-small phones (very old/small devices, <380px) */
@media (max-width: 359.98px) {
    .hero-spg h1 { font-size: 1.45rem; }
    .section-title { font-size: 1.25rem; }
    .card-spg .card-icon { width: 48px; height: 48px; font-size: 1.3rem; }
    .stat-box .num { font-size: 1.4rem; }
}

/* Large desktops (1400px+) — scale hero and headings up slightly so the
   design doesn't look small/lost on big monitors, and cap line length */
@media (min-width: 1400px) {
    .hero-spg h1 { font-size: 3.4rem; }
    .section-title { font-size: 2.5rem; }
    .hero-spg p.fs-5, .section-pad p.text-muted { max-width: 65ch; }
}

/* Ultra-wide / 4K monitors — keep content from stretching edge to edge
   even inside Bootstrap's widest container */
@media (min-width: 1900px) {
    .container { max-width: 1400px; }
    .hero-spg h1 { font-size: 3.75rem; }
}

/* Landscape phones — hero shouldn't eat the whole viewport height */
@media (max-height: 500px) and (orientation: landscape) {
    .hero-spg { padding: 3.5rem 0 2.5rem; }
}

/* Ensure every table on the site scrolls horizontally on narrow screens
   rather than squeezing/breaking layout, even where .table-responsive
   was not explicitly added */
.table { min-width: 480px; }
.table-responsive { -webkit-overflow-scrolling: touch; }

/* Images and embeds never overflow their container on any breakpoint */
img, iframe, video { max-width: 100%; height: auto; }

/* Prevent any accidental horizontal scroll from full-bleed sections */
html, body { overflow-x: hidden; }

/* Touch-friendly tap targets on any touch device, regardless of screen size */
@media (hover: none) and (pointer: coarse) {
    .btn-spg, .btn-outline-spg, .nav-link, .accordion-button { min-height: 44px; }
}


/* Footer Logo */
.footer-logo img{
    max-height:80px;
    width:auto;
    display:block;
}

@media (max-width:768px){
    .footer-logo{
        text-align:center;
    }

    .footer-logo img{
        max-height:65px;
        margin:0 auto;
    }
}

/* =========================================================
   DROPDOWN FIX
   ========================================================= */

.navbar-spg {
    position: relative;
    overflow: visible !important;
    z-index: 1030;
}

.navbar-spg .nav-item.dropdown {
    position: relative;
}

.navbar-spg .dropdown-menu {
    position: absolute !important;
    top: 100%;
    left: 0;
    min-width: 240px;
    width: max-content;
    background: #fff;
    border: 1px solid var(--spg-border);
    border-radius: 10px;
    padding: .5rem;
    margin-top: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
    z-index: 9999;
}

.navbar-spg .dropdown-item {
    border-radius: 6px;
    padding: .55rem .75rem;
}

.navbar-spg .dropdown-item:hover,
.navbar-spg .dropdown-item:focus {
    background: var(--spg-secondary);
    color: #fff;
}

.navbar-spg .dropdown-toggle::after {
    transition: transform .2s ease;
}

.navbar-spg .dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
}

@media (min-width: 1200px) {
    .navbar-spg .nav-item.dropdown {
        max-width: 220px;
    }
}

/* Mobile */
@media (max-width: 1199.98px) {
    .navbar-spg .dropdown-menu {
        position: static !important;
        width: 100%;
        min-width: 100%;
        box-shadow: none;
        border: none;
        background: var(--spg-soft);
        margin-top: .4rem;
    }
}


