html{
    scroll-behavior:smooth;
}
html{

scroll-behavior:smooth;

}
/* ===========================
   BRAHMAPUTRA GYMNASIUM
   Version 1.0
=========================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Poppins:wght@400;600;700;800&display=swap');

/* ========= VARIABLES ========= */

:root{

    --primary:#FFD700;
    --secondary:#111111;
    --accent:#E63935;
    --white:#ffffff;
    --gray:#bdbdbd;

    --heading:'Poppins',sans-serif;
    --body:'Inter',sans-serif;

}

/* ========= RESET ========= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:var(--body);
    background:#111;
    color:#fff;
    overflow-x:hidden;

}

img{
    max-width:100%;
}

a{
    text-decoration:none;
}

ul{
    list-style:none;
}

/* ========= CONTAINER ========= */

.container{

    width:90%;
    max-width:1200px;
    margin:auto;

}

/* ================= HEADER ================= */

.header{

position:fixed;

top:0;

left:0;

width:100%;

z-index:9999;

background:rgba(0,0,0,.75);

backdrop-filter:blur(15px);

border-bottom:1px solid rgba(255,215,0,.15);

}

.header .container{

    display:flex;
    justify-content:space-between;
    align-items:center;

    height:85px;

}

/* ========= LOGO ========= */

.logo{
    display:flex;
    align-items:center;
    flex-shrink:0;
}

.logo img{
    height:95px;
    width:auto;
    display:block;
    transition:.3s ease;
}

.logo img:hover{
    transform:scale(1.05);
}

/* ========= NAV ========= */

nav ul{

    display:flex;
    gap:30px;

}

nav a{

    color:white;
    transition:.3s;
    font-weight:500;

}

nav a:hover{

    color:var(--primary);

}

/* ========= BUTTON ========= */

.join-btn{

    background:var(--primary);

    color:#111;

    padding:12px 28px;

    border-radius:40px;

    font-weight:700;

    transition:.3s;

}

.join-btn:hover{

    transform:translateY(-3px);

    box-shadow:0 0 20px rgba(255,215,0,.5);

}

/* ================= HERO ================= */



.overlay{

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

background:linear-gradient(
90deg,
rgba(0,0,0,0.35) 10%,
rgba(0,0,0,0.15) 45%,
rgba(0,0,0,0.40) 100%
);

z-index:1;

}

.hero-content{

position:relative;
z-index:10;

max-width:900px;

margin:auto;

text-align:center;

display:flex;

flex-direction:column;

align-items:center;

justify-content:center;

padding-top:100px;

}

.badge{

    display:inline-block;

    background:var(--accent);

    padding:10px 20px;

    border-radius:40px;

    font-weight:700;

    margin-bottom:25px;

}

.hero h1{

font-size:clamp(34px,8vw,88px);

font-weight:800;

line-height:1.1;

max-width:700px;

margin-bottom:25px;

overflow-wrap:break-word;

}

.hero h1 span{

    color:var(--primary);

}

.subtitle{

font-size:clamp(16px,3.5vw,28px);

max-width:600px;

color:#ddd;

margin-bottom:25px;

}

.location{

    margin-top:20px;

    color:#ccc;

}

.location i{

    color:var(--primary);

    margin-right:8px;

}

/* ========= HERO BUTTONS ========= */

.buttons{

display:flex;

justify-content:center;

align-items:center;

gap:20px;

margin-top:40px;

flex-wrap:wrap;

}

.btn-primary,
.btn-secondary{
    width:180px;
    height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50px;
    font-size:18px;
    font-weight:600;
    text-decoration:none;
    transition:.3s;
}

.btn-primary:hover{

    transform:translateY(-4px);

}

.btn-primary,
.btn-secondary{
    width:180px;
    height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50px;
    font-size:18px;
    font-weight:600;
    text-decoration:none;
    transition:.3s;
}

.btn-secondary:hover{

    background:var(--primary);

    color:#111;

}

/* ================= STATS ================= */

.stats{

    background:#181818;

    padding:70px 0;

}

.stats .container{

    display:grid;

    grid-template-columns:repeat(4,minmax(0,1fr));

    gap:25px;

}

.stat-box{

    text-align:center;

    padding:35px;

    background:#222;

    border-radius:15px;

    transition:.3s;

}

.stat-box:hover{

    transform:translateY(-10px);

}

.stat-box h2{

    font-family:var(--heading);

    color:var(--primary);

    font-size:42px;

}

.stat-box p{

    margin-top:12px;

    color:#ccc;

}
/* ================= WHY CHOOSE US ================= */

.why-us{
    padding:120px 0;
    background:#111;
}

.section-title{
    text-align:center;
    max-width:700px;
    margin:0 auto 60px;
}

.section-title span{
    color:var(--primary);
    letter-spacing:3px;
    font-weight:700;
}

.section-title h2{
    font-family:var(--heading);
    font-size:clamp(28px,5vw,48px);
    margin:15px 0;
}

.section-title p{
    color:#bbb;
    line-height:1.8;
}

.feature-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:30px;
}

.feature-card{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    border-radius:20px;
    padding:40px 30px;
    text-align:center;
    transition:all .4s ease;
    backdrop-filter:blur(12px);
}

.feature-card:hover{
    transform:translateY(-12px);
    border-color:var(--primary);
    box-shadow:0 20px 40px rgba(255,215,0,.15);
}

.feature-card i{
    font-size:48px;
    color:var(--primary);
    margin-bottom:20px;
    transition:transform .4s ease;
}

.feature-card:hover i{
    transform:rotate(-8deg) scale(1.15);
}

.feature-card h3{
    font-family:var(--heading);
    margin-bottom:15px;
}

.feature-card p{
    color:#bbb;
    line-height:1.7;
}
/*=========================
SCROLL PROGRESS BAR
=========================*/

#progress-bar{

    position:fixed;

    top:0;

    left:0;

    width:0%;

    height:4px;

    background:linear-gradient(90deg,#FFD700,#E63935);

    z-index:99999;

}

/*=========================
BACK TO TOP
=========================*/

#backToTop{

    position:fixed;

    right:30px;

    bottom:30px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:#FFD700;

    color:#111;

    cursor:pointer;

    font-size:20px;

    display:none;

    transition:.35s;

    z-index:999;

}

#backToTop:hover{

    transform:translateY(-8px) rotate(360deg);

    box-shadow:0 0 30px gold;

}

/*=========================
SECTION ANIMATION
=========================*/

.reveal{

    opacity:0;

    transform:translateY(80px);

    transition:1s ease;

}

.reveal.active{

    opacity:1;

    transform:translateY(0);

}

/*=========================
GOLD GLOW
=========================*/

.gold-glow{

    transition:.35s;

}

.gold-glow:hover{

    box-shadow:

    0 0 20px rgba(255,215,0,.45),

    0 0 50px rgba(255,215,0,.20);

}
/* ===== Premium Navbar Upgrade ===== */

.header{
    transition:0.4s ease;
}

.header.scrolled{
    background:#111;
    box-shadow:0 10px 30px rgba(0,0,0,.5);
}

.menu-btn{
    display:none;
    font-size:28px;
    cursor:pointer;
    color:#fff;
}

nav ul li{
    position:relative;
}

nav ul li a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-5px;
    width:0;
    height:2px;
    background:#FFD700;
    transition:.3s;
}

nav ul li a:hover::after,
nav ul li a.active::after{
    width:100%;
}

@media(max-width:900px){

    .menu-btn{
        display:block;
    }

nav{
        position:fixed;
        top:0;
        left:-100%;
        width:280px;
        height:100dvh;
        background:#111;
        transition:.4s;
        padding-top:100px;
        z-index:10000;
    }

    nav.active{
        left:0;
    }

    nav ul{
        flex-direction:column;
        padding-left:40px;
        gap:25px;
    }

    .join-btn{
        display:none;
    }

    .stats .container{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:480px){

    .stats .container{
        grid-template-columns:1fr;
    }
}
/*=========================
ABOUT
=========================*/

.about{

padding:120px 0;

background:#181818;

}

.about-container{

display:grid;

grid-template-columns:1fr 1fr;

align-items:center;

gap:80px;

}

.about-image{

overflow:hidden;

border-radius:20px;

}

.about-image img{

width:100%;

display:block;

transition:.6s;

}

.about-image:hover img{

transform:scale(1.08);

}

.section-tag{

display:inline-block;

margin-bottom:20px;

color:#FFD700;

font-weight:700;

letter-spacing:2px;

}

.about-content h2{

font-size:clamp(28px,5vw,48px);

font-family:var(--heading);

margin-bottom:25px;

}

.about-content p{

line-height:1.9;

color:#bbb;

margin-bottom:35px;

}

.about-features{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:18px;

margin-bottom:40px;

}

.about-features div{

display:flex;

align-items:center;

gap:10px;

font-weight:600;

}

.about-features i{

color:#FFD700;

font-size:18px;

}

@media(max-width:900px){

.about-container{

grid-template-columns:1fr;

}

.about-content{

text-align:center;

}

.about-features{

grid-template-columns:1fr;

}

}
/*=========================
FACILITIES
=========================*/

.facilities{

padding:120px 0;

background:#111;

}

.facility-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

gap:35px;

margin-top:70px;

}

.facility-card{

background:#1b1b1b;

padding:40px;

border-radius:20px;

border:1px solid rgba(255,255,255,.05);

transition:.45s;

position:relative;

overflow:hidden;

}

.facility-card::before{

content:"";

position:absolute;

width:180px;

height:180px;

background:rgba(255,215,0,.06);

border-radius:50%;

top:-90px;

right:-90px;

transition:.45s;

}

.facility-card:hover{

transform:translateY(-15px);

border-color:#FFD700;

box-shadow:0 20px 45px rgba(255,215,0,.18);

}

.facility-card:hover::before{

transform:scale(1.5);

}

.facility-icon{

width:80px;

height:80px;

border-radius:50%;

background:#FFD700;

display:flex;

align-items:center;

justify-content:center;

margin-bottom:30px;

transition:.45s;

}

.facility-card:hover .facility-icon{

transform:rotate(360deg) scale(1.1);

}

.facility-icon i{

font-size:34px;

color:#111;

}

.facility-card h3{

font-family:var(--heading);

margin-bottom:18px;

font-size:26px;

}

.facility-card p{

line-height:1.8;

color:#bbb;

}
/*=========================
PAGE LOADER
=========================*/

#loader{

position:fixed;

inset:0;

background:#111;

display:flex;

flex-direction:column;

justify-content:center;

align-items:center;

z-index:999999;

transition:.8s;

}

.loader-ring{

width:90px;

height:90px;

border:6px solid rgba(255,255,255,.1);

border-top:6px solid #FFD700;

border-radius:50%;

animation:spin 1s linear infinite;

margin-bottom:25px;

}

#loader h2{

font-family:var(--heading);

color:#FFD700;

letter-spacing:3px;

}

@keyframes spin{

100%{

transform:rotate(360deg);

}

}

/*=========================
WHATSAPP
=========================*/

.whatsapp{

position:fixed;

right:25px;

bottom:100px;

width:65px;

height:65px;

border-radius:50%;

background:#25D366;

display:flex;

justify-content:center;

align-items:center;

font-size:32px;

color:white;

box-shadow:0 15px 30px rgba(0,0,0,.4);

transition:.35s;

z-index:999;

animation:float 2.5s ease-in-out infinite;

}

.whatsapp:hover{

transform:scale(1.15);

}

@keyframes float{

0%,100%{

transform:translateY(0);

}

50%{

transform:translateY(-10px);

}

}
/*=====================================
HERO PREMIUM ANIMATION
=====================================*/

.hero{
    min-height:100vh;
    position:relative;
    display:flex;
    align-items:center;
    overflow:hidden;
    background-color:#111;              /* fallback so it's never blank white */
    background-image:url("../assets/image/hero-bg.jpg");
    background-size:cover;
    background-position:center top;
    background-repeat:no-repeat;
}



@keyframes heroZoom{

0%{

transform:scale(1);

}

100%{

transform:scale(1.15);

}

}

.hero-content{

position:relative;

z-index:5;

animation:fadeUp 1.3s ease;

}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(60px);

}

to{

opacity:1;

transform:translateY(0);

}

}

/*==========================
Scroll Indicator
==========================*/

.scroll-indicator{

margin-top:70px;

display:flex;

align-items:center;

gap:20px;

color:white;

}

.mouse{

width:35px;

height:60px;

border:2px solid white;

border-radius:30px;

display:flex;

justify-content:center;

padding-top:10px;

}

.wheel{

width:6px;

height:12px;

background:#FFD700;

border-radius:20px;

animation:scrollWheel 1.6s infinite;

}

@keyframes scrollWheel{

0%{

opacity:1;

transform:translateY(0);

}

100%{

opacity:0;

transform:translateY(20px);

}

}

/*==========================
Hero Buttons
==========================*/

.btn-primary{
width:180px;
height:60px;
display:flex;
align-items:center;
justify-content:center;
background:#FFD000;
color:#000;
border-radius:50px;
font-size:18px;
font-weight:600;
text-decoration:none;
transition:.3s;
}

.btn-secondary:hover{

transform:translateY(-6px);

}

/*==========================
Hero Heading
==========================*/

.hero h1{

animation:titleAnimation 1.2s ease;

}

@keyframes titleAnimation{

0%{

opacity:0;

transform:translateX(-100px);

}

100%{

opacity:1;

transform:translateX(0);

}

}
/*=========================
MEMBERSHIP
=========================*/

.membership{

padding:120px 0;

background:#181818;

}

.membership-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:35px;

margin-top:60px;

}

.membership-card{

background:#202020;

padding:45px;

border-radius:20px;

text-align:center;

position:relative;

transition:.4s;

border:1px solid rgba(255,255,255,.06);

}

.membership-card:hover{

transform:translateY(-12px);

border-color:#FFD700;

}

.membership-card h3{

font-size:28px;

margin-bottom:20px;

font-family:var(--heading);

}

.membership-card h1{

font-size:56px;

color:#FFD700;

margin-bottom:30px;

}

.membership-card ul{

margin-bottom:35px;

}

.membership-card ul li{

padding:10px 0;

color:#ccc;

}

.featured{

border:2px solid #FFD700;

transform:scale(1.04);

}

.popular{

position:absolute;

top:-15px;

left:50%;

transform:translateX(-50%);

background:#FFD700;

color:#111;

padding:8px 22px;

border-radius:30px;

font-weight:bold;

}
.price-duration{
    color:#bdbdbd;
    font-size:15px;
    margin-top:-15px;
    margin-bottom:25px;
    letter-spacing:1px;
}
/*=========================
TRAINERS
=========================*/

.trainers{

padding:120px 0;

background:#111;

}

.trainer-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:35px;

margin-top:60px;

}

.trainer-card{

background:#1d1d1d;

border-radius:20px;

overflow:hidden;

transition:.4s;

border:1px solid rgba(255,255,255,.06);

}

.trainer-card:hover{

transform:translateY(-12px);

box-shadow:0 20px 40px rgba(255,215,0,.15);

}

.trainer-card img{

width:100%;

height:380px;

object-fit:cover;

display:block;

}

.trainer-info{

padding:30px;

}

.trainer-info h3{

font-family:var(--heading);

font-size:28px;

margin-bottom:10px;

}

.trainer-info span{

display:block;

color:#FFD700;

font-weight:600;

margin-bottom:18px;

}

.trainer-info p{

color:#bbb;

line-height:1.8;

}
/* CONTACT */

.contact{
    padding:100px 0;
    background:#111;
}

.contact-container{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
    margin-top:50px;
}

.contact-info h3{
    color:#FFD700;
    margin-bottom:20px;
}

.contact-info p{
    color:#ddd;
    margin:15px 0;
    line-height:1.8;
}

.contact-info i{
    color:#FFD700;
    margin-right:10px;
}

.contact-form{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.contact-form input,
.contact-form textarea{
    width:100%;
    padding:15px;
    border:none;
    border-radius:8px;
    background:#1d1d1d;
    color:#fff;
}

.contact-form textarea{
    resize:none;
}

@media(max-width:768px){
.contact-container{
grid-template-columns:1fr;
}
}
/*=========================
JOIN POPUP
=========================*/

.popup-overlay{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,.75);
display:none;
justify-content:center;
align-items:center;
z-index:99999;
padding:20px;
}

.popup{
background:#181818;
width:100%;
max-width:650px;
max-height:90vh;
overflow-y:auto;
border-radius:20px;
padding:35px;
border:2px solid #FFD700;
position:relative;
animation:popup .35s ease;
}

@keyframes popup{
from{
opacity:0;
transform:translateY(40px) scale(.95);
}
to{
opacity:1;
transform:translateY(0) scale(1);
}
}

.close-popup{
position:absolute;
right:20px;
top:15px;
font-size:30px;
cursor:pointer;
color:#FFD700;
}

.popup h2{
text-align:center;
margin-bottom:25px;
color:#FFD700;
font-family:var(--heading);
}

.popup h3{
margin-top:25px;
margin-bottom:10px;
color:#FFD700;
}

.popup input,
.popup select,
.popup textarea{
width:100%;
padding:14px;
margin-bottom:15px;
background:#222;
border:1px solid #444;
border-radius:8px;
color:#fff;
font-size:15px;
}

.popup input:focus,
.popup select:focus,
.popup textarea:focus{
border-color:#FFD700;
outline:none;
}

.terms-box{
height:150px;
overflow-y:auto;
background:#111;
border:1px solid #444;
padding:15px;
border-radius:10px;
margin-bottom:15px;
}

.terms-box p{
line-height:1.7;
color:#ddd;
margin-bottom:10px;
}

.popup label{
display:flex;
align-items:flex-start;
gap:10px;
margin-bottom:15px;
font-size:15px;
color:#ddd;
}

.popup button{
width:100%;
margin-top:10px;
}
/* ================= MAP ================= */

.map-section{
    padding:80px 0;
}

.map-box{
    overflow:hidden;
    border-radius:20px;
    border:3px solid #FFD000;
    box-shadow:0 15px 40px rgba(255,212,0,.2);
}

.map-box iframe{
    width:100%;
    height:450px;
    display:block;
}
/* ================= FIND US ON MAP ================= */

.map-section{
    padding:80px 0;
}

.map-box{
    overflow:hidden;
    border-radius:20px;
    border:3px solid #FFD700;
    box-shadow:0 10px 30px rgba(255,215,0,0.2);
}

.map-box iframe{
    width:100%;
    height:450px;
    display:block;
}
.map-btn{
    text-align:center;
    margin-top:25px;
}

.map-btn .btn-primary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:220px;
}
.map-btn{
    margin-top:25px;
    text-align:center;
}

.map-btn .btn-primary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:230px;
}
/* ================= BMI Calculator ================= */

.bmi-section{
    padding:80px 20px;
    background:#0d0d0d;
}

.bmi-card{
    max-width:1000px;
    margin:auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    background:rgba(255,255,255,.05);
    backdrop-filter:blur(15px);
    border:1px solid rgba(255,215,0,.15);
    border-radius:20px;
    padding:40px;
    box-shadow:0 15px 40px rgba(0,0,0,.35);
    animation:fadeUp .8s ease;
}

.bmi-form{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.input-box label{
    display:block;
    margin-bottom:8px;
    color:#FFD700;
    font-weight:600;
}

.input-box input{
    width:100%;
    padding:15px;
    border:none;
    border-radius:10px;
    background:#1b1b1b;
    color:#fff;
    font-size:16px;
    transition:.3s;
}

.input-box input:focus{
    outline:none;
    border:2px solid #FFD700;
    box-shadow:0 0 15px rgba(255,215,0,.4);
}

.bmi-result{
    text-align:center;
}

.bmi-circle{
    width:180px;
    height:180px;
    margin:auto;
    border-radius:50%;
    border:8px solid #FFD700;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    background:#151515;
    box-shadow:0 0 25px rgba(255,215,0,.3);
    transition:.5s;
}

.bmi-circle h2{
    font-size:42px;
    color:#FFD700;
}

.bmi-circle p{
    color:#ddd;
}

#bmiStatus{
    margin:20px 0 10px;
    color:#FFD700;
    font-size:28px;
}

#bmiSuggestion{
    color:#ccc;
    line-height:1.7;
    margin-bottom:20px;
}

.bmi-extra{
    background:#171717;
    padding:20px;
    border-radius:12px;
    margin-bottom:25px;
}

.bmi-extra p{
    display:flex;
    justify-content:space-between;
    color:#fff;
    margin:12px 0;
}

.bmi-extra span{
    color:#FFD700;
    font-weight:700;
}

#calculateBMI{
    width:100%;
    padding:15px;
    font-size:18px;
    cursor:pointer;
    transition:.3s;
}

#calculateBMI:hover{
    transform:translateY(-3px);
    box-shadow:0 0 20px rgba(255,215,0,.5);
}

@keyframes fadeUp{
    from{
        opacity:0;
        transform:translateY(50px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* Mobile */

@media(max-width:768px){

.bmi-card{
    grid-template-columns:1fr;
    padding:25px;
    gap:30px;
}

.bmi-circle{
    width:150px;
    height:150px;
}

.bmi-circle h2{
    font-size:34px;
}

#bmiStatus{
    font-size:24px;
}

.bmi-extra p{
    flex-direction:column;
    gap:5px;
}

}
/* ===== Dashboard Layout ===== */

.dashboard{
    display:flex;
    min-height:100vh;
}

.sidebar{
    width:240px;
    background:#181818;
    padding:30px 20px;
    border-right:2px solid #FFD700;
}

.logo{
    text-align:center;
    margin-bottom:40px;
}

.logo-home{
    display:block;
    text-decoration:none;
    text-align:center;
    margin-bottom:30px;
    transition:.3s;
}

.logo-home h2{
    color:#FFD700;
    font-size:42px;
    margin-bottom:5px;
}

.logo-home span{
    color:#fff;
    font-size:18px;
}

.logo-home:hover{
    transform:scale(1.03);
}

.logo-home:hover h2{
    color:#fff;
}

.logo-home:hover span{
    color:#FFD700;
}

.sidebar nav{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.sidebar nav a{
    text-decoration:none;
    color:white;
    padding:12px 15px;
    border-radius:8px;
    transition:.3s;
}

.sidebar nav a:hover,
.sidebar nav a.active{
    background:#FFD700;
    color:#111;
}

.container{
    flex:1;
}
.main-content{
    flex:1;
    display:flex;
    flex-direction:column;
}

header{
    width:100%;
}
.cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:20px;
    margin-bottom:20px;
}

.card h1{
    margin-top:10px;
    color:#FFD700;
    font-size:32px;
}
.welcome-banner{
    background:#1e1e1e;
    border:2px solid #FFD700;
    border-radius:15px;
    padding:20px;
    margin-bottom:25px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
}

.welcome-banner h1{
    color:#FFD700;
    margin-bottom:8px;
}

.primary-btn{
    background:#FFD700;
    color:#111;
    padding:12px 22px;
    border:none;
    border-radius:8px;
    font-weight:bold;
    cursor:pointer;
}

.primary-btn:hover{
    opacity:0.9;
}
/* ===========================
   Dashboard Layout
=========================== */

.dashboard{
    display:flex;
    min-height:100vh;
}

.sidebar{
    width:250px;
    background:#1a1a1a;
    border-right:2px solid #FFD700;
    padding:25px;
}

.main-content{
    flex:1;
}

.logo{
    text-align:center;
    margin-bottom:40px;
}

.logo-home{
    display:block;
    text-align:center;
    text-decoration:none;
    margin-bottom:35px;
    transition:.3s;
}

.logo-home{
    display:block;
    text-align:center;
    text-decoration:none;
    margin-bottom:35px;
}

.logo-home h2{
    color:#FFD700;
    font-size:38px;
    margin:0;
}

.logo-home span{
    display:block;
    color:#ffffff;
    font-size:18px;
}

.logo-home:hover{
    transform:scale(1.03);
}

.logo-home:hover h2{
    color:#ffffff;
}

.logo-home:hover span{
    color:#FFD700;
}

.sidebar nav{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.sidebar nav a{
    color:white;
    text-decoration:none;
    padding:12px;
    border-radius:8px;
    transition:.3s;
}

.sidebar nav a:hover,
.sidebar nav a.active{
    background:#FFD700;
    color:#111;
}

.cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:20px;
    margin-bottom:25px;
}

.card h1{
    color:#FFD700;
    margin-top:10px;
}

.welcome-banner{
    background:#1e1e1e;
    border:2px solid #FFD700;
    border-radius:15px;
    padding:20px;
    margin-bottom:25px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
}

.primary-btn{
    background:#FFD700;
    color:#111;
    font-weight:bold;
}
.top-bar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#1e1e1e;
    padding:18px 25px;
    border-radius:12px;
    margin-bottom:25px;
}

.user-info{
    display:flex;
    align-items:center;
    gap:15px;
}

.avatar{
    width:55px;
    height:55px;
    border-radius:50%;
    background:#FFD700;
    color:#111;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:28px;
    font-weight:bold;
}

.top-actions{
    display:flex;
    gap:10px;
}

.notification-btn{
    width:45px;
    height:45px;
    border-radius:50%;
    font-size:18px;
}
.home-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:#FFD700;
    color:#111 !important;
    text-decoration:none;
    padding:12px 20px;
    border-radius:10px;
    font-weight:bold;
    border:none;
    transition:.3s;
}

.home-btn:hover{
    background:#e6c200;
    color:#111 !important;
    transform:translateY(-2px);
}
.quick-actions{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));

    gap:20px;

    margin-bottom:25px;

}

.quick-actions button{

    background:#1f1f1f;

    color:white;

    border:2px solid #FFD700;

    border-radius:15px;

    padding:25px;

    cursor:pointer;

    transition:.3s;

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:12px;

    font-size:26px;

}

.quick-actions button:hover{

    background:#FFD700;

    color:#111;

    transform:translateY(-5px);

}

.quick-actions span{

    font-size:16px;

    font-weight:bold;

}
.workout-table{

    width:100%;

    border-collapse:collapse;

    margin:20px 0;

}

.workout-table th{

    background:#FFD700;

    color:#111;

    padding:14px;

}

.workout-table td{

    padding:14px;

    border-bottom:1px solid #333;

}

.workout-table tr:hover{

    background:#2a2a2a;

}

.complete-btn{

    margin-top:20px;

    width:100%;

    padding:15px;

    font-size:16px;

    background:#FFD700;

    color:#111;

    font-weight:bold;

    border-radius:10px;

}

.complete-btn:hover{

    transform:scale(1.02);

}
.home-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:#0d6efd;
    color:#fff;
    text-decoration:none;
    padding:12px 18px;
    border-radius:8px;
    font-weight:bold;
    transition:.3s;
}

.home-btn:hover{
    background:#0b5ed7;
    transform:translateY(-2px);
}

/* Home page gym gallery */
.gym-gallery { padding: 112px 0; background: linear-gradient(180deg, #0d0d0d, #121212); }
.gallery-grid { display: grid; grid-template-columns: 1.35fr 1fr; grid-template-rows: 260px 260px; gap: 18px; margin-top: 48px; }
.gallery-card { position: relative; margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 18px; background: #1a1a1a; min-height: 0; }
.gallery-card.gallery-wide { grid-row: span 2; }
.gallery-card img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .6s ease; }
.gallery-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.86), transparent 56%); pointer-events: none; }
.gallery-card:hover img { transform: scale(1.07); }
.gallery-card figcaption { position: absolute; z-index: 1; left: 22px; bottom: 20px; display: flex; align-items: center; gap: 11px; color: #fff; }
.gallery-card figcaption > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: rgba(255,215,0,.18); border: 1px solid rgba(255,215,0,.32); }
.gallery-card strong, .gallery-card small { display: block; }.gallery-card strong { font-size: 16px; }.gallery-card small { margin-top: 2px; color: #d1d1d1; font-size: 12px; }
@media (max-width: 720px) { .gym-gallery { padding: 72px 0; }.gallery-grid { grid-template-columns: 1fr; grid-template-rows: repeat(3, 245px); margin-top: 32px; }.gallery-card.gallery-wide { grid-row: auto; }.gallery-card figcaption { left: 16px; bottom: 16px; } }

/* Learning Zone access prompt */
.learning-access-popup { max-width: 430px; text-align: center; padding: 36px 32px 32px; }
.learning-access-popup p { margin: 0 auto 24px; color: #c7c7c7; line-height: 1.65; }
.learning-lock-icon { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 16px; border-radius: 50%; background: rgba(255,215,0,.12); border: 1px solid rgba(255,215,0,.35); font-size: 25px; }
.learning-access-actions { display: flex; justify-content: center; gap: 10px; }
.learning-access-actions a { min-width: 132px; justify-content: center; text-decoration: none; }
.learning-login-btn { display: inline-flex; align-items: center; padding: 12px 18px; border: 1px solid #FFD700; border-radius: 8px; color: #FFD700; font-weight: 700; transition: .2s ease; }
.learning-login-btn:hover { background: #FFD700; color: #111; }
@media (max-width: 480px) { .learning-access-popup { margin: 18px; padding: 34px 20px 24px; }.learning-access-actions { flex-direction: column; }.learning-access-actions a { width: 100%; } }

/* ================= ACCOUNT DROPDOWN ================= */

.dropdown{
    position:relative;
}

.dropdown > a{
    display:flex;
    align-items:center;
    gap:6px;
    padding:10px 0;
}

/* Invisible bridge so hover doesn't break */
.dropdown::after{
    content:"";
    position:absolute;
    left:0;
    top:100%;
    width:100%;
    height:15px;
}

.dropdown-menu{
    position:absolute;
    top:100%;
    left:0;
    margin-top:10px;
    min-width:200px;

    background:#1b1b1b;
    border:1px solid rgba(255,215,0,.25);
    border-radius:10px;

    display:none;
    flex-direction:column;

    box-shadow:0 10px 25px rgba(0,0,0,.35);

    z-index:9999;
}

.dropdown:hover .dropdown-menu{
    display:flex;
}

.dropdown-menu li{
    width:100%;
}

.dropdown-menu a{
    display:block;
    padding:12px 18px;
    color:#fff;
    transition:.3s;
}

.dropdown-menu a:hover{
    background:#FFD700;
    color:#111;
}

/* =========================
   GRAND OPENING POPUP
========================= */

.invitation-popup{
    max-width:650px;
    width:90%;
    text-align:center;
    background:#181818;
    border:2px solid #FFD700;
    border-radius:20px;
    padding:40px;
    color:#fff;
    animation:popup .4s ease;
}

.invite-logo{
    width:120px;
    margin-bottom:20px;
}

.invitation-popup h2{
    color:#FFD700;
    margin-bottom:10px;
}

.invitation-popup h3{
    color:#fff;
    margin:15px 0;
}

.invitation-popup p{
    line-height:1.8;
    color:#ddd;
    margin:15px 0;
}

.invitation-popup hr{
    border:0;
    border-top:1px solid rgba(255,215,0,.3);
    margin:20px 0;
}

#countdown{
    font-size:28px;
    font-weight:bold;
    color:#FFD700;
    margin:25px 0;
}

.invitation-popup blockquote{
    font-style:italic;
    color:#FFD700;
    margin:25px 0;
    line-height:1.8;
}

.invitation-popup .btn-primary{
    display:inline-block;
    margin-top:20px;
}
/* ===========================
   Mobile overflow fixes
   (kept last so it wins over
   the duplicate rules above)
=========================== */

html{
    overflow-x:hidden;
}

@media(max-width:480px){

    .btn-primary,
    .btn-secondary{
        width:100%;
        max-width:280px;
    }

    .hero-content{
        padding-top:70px;
    }
}

@media(max-width:400px){

    .facility-grid,
    .membership-grid,
    .trainer-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:768px){
  .why-us,
  .stats,
  .about,
  .facilities,
  .membership,
  .trainers,
  .contact,
  .map-section,
  .bmi-section,
  .gym-gallery{
      padding:50px 0;
  }
  .section-title{
      margin-bottom:30px;
  }
}

/* ===========================================================
   HOME PAGE — MOBILE NAVBAR + HERO FIX
   (kept at the very end so it wins over every earlier/duplicate
   rule targeting .header, nav, .hero, .hero-content)
=========================================================== */

/* ---------- Navbar (mobile) ---------- */
@media(max-width:900px){

    .header .container{
        height:68px;
    }

    .logo img{
        height:52px;
    }

    .menu-btn{
        z-index:10001;
        padding:6px;
    }

    /* Slide-in panel: give it real width/shadow instead of
       stretching almost full-screen with no depth */
    nav{
        top:0;
        left:-85%;
        width:78%;
        max-width:320px;
        height:100dvh;
        padding-top:100px;
        box-shadow:12px 0 40px rgba(0,0,0,.55);
        overflow-y:auto;
    }

    nav.active{
        left:0;
    }

    nav ul{
        padding-left:32px;
        gap:22px;
    }

    nav ul li a{
        font-size:18px;
        display:inline-block;
        padding:4px 0;
    }

    /* Dark scrim behind the open menu so it reads as an overlay,
       not a panel floating over broken layout */
    nav::after{
        content:"";
        position:fixed;
        inset:0;
        background:rgba(0,0,0,0);
        pointer-events:none;
        transition:background .4s ease;
        z-index:-1;
    }

    nav.active::after{
        background:rgba(0,0,0,.6);
        pointer-events:auto;
    }

    /* Account dropdown collapses inline inside the slide-in menu
       instead of trying to float/hover (no hover on touch) */
    .dropdown > a{
        padding:4px 0;
    }

    .dropdown-menu{
        position:static;
        display:none;
        margin-top:10px;
        margin-left:12px;
        min-width:0;
        background:transparent;
        border:none;
        box-shadow:none;
    }

    .dropdown.open .dropdown-menu,
    .dropdown:focus-within .dropdown-menu{
        display:flex;
    }
}

@media(max-width:480px){

    .header .container{
        height:60px;
    }

    .logo img{
        height:46px;
    }

    nav{
        width:84%;
        padding-top:90px;
    }

    .whatsapp{
        width:54px;
        height:54px;
        font-size:26px;
        right:16px;
        bottom:84px;
    }

    #backToTop{
        width:46px;
        height:46px;
        font-size:16px;
        right:16px;
        bottom:24px;
    }
}

/* ---------- Hero (mobile) ---------- */
@media(max-width:900px){

    .hero{
        min-height:100svh;
        min-height:100dvh;
        background-position:center center;
        background-attachment:scroll; /* fixed backgrounds are unreliable/invisible on mobile Safari & Chrome */
    }

    .hero-content{
        padding-top:88px;
        padding-left:20px;
        padding-right:20px;
    }

    .buttons{
        flex-direction:column;
        gap:16px;
        margin-top:30px;
    }

    .btn-primary,
    .btn-secondary{
        width:100%;
        max-width:280px;
    }

    .scroll-indicator{
        margin-top:26px;
    }
}

@media(max-width:480px){

    .hero{
        min-height:100svh;
        min-height:100dvh;
        background-position:60% center; /* keeps the subject in frame instead of an over-zoomed crop */
    }

    .hero-content{
        padding-top:64px;
    }

    .hero h1{
        font-size:clamp(30px,9vw,42px);
    }

    .badge{
        font-size:13px;
        padding:8px 16px;
    }

    .subtitle{
        font-size:16px;
    }

    .location{
        font-size:13px;
    }
}

/* ===========================================================
   HOME PAGE — NOTIFICATION BELL
=========================================================== */

.notif-bell-wrap{
    position:relative;
    display:flex;
    align-items:center;
}

.notif-bell{
    position:relative;
    width:42px;
    height:42px;
    border-radius:50%;
    background:rgba(255,215,0,.08);
    border:1px solid rgba(255,215,0,.25);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:16px;
    transition:.25s ease;
}

.notif-bell:hover{
    background:rgba(255,215,0,.18);
    border-color:#FFD700;
}

.notif-badge{
    position:absolute;
    top:-4px;
    right:-4px;
    min-width:18px;
    height:18px;
    padding:0 4px;
    border-radius:999px;
    background:#E63935;
    color:#fff;
    font-size:11px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    border:2px solid #111;
}

.notif-dropdown{
    position:absolute;
    top:calc(100% + 14px);
    right:0;
    width:340px;
    max-width:88vw;
    max-height:420px;
    overflow-y:auto;
    background:#181818;
    border:1px solid rgba(255,215,0,.25);
    border-radius:14px;
    box-shadow:0 20px 45px rgba(0,0,0,.45);
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:opacity .25s ease, transform .25s ease, visibility .25s;
    z-index:10050;
}

.notif-dropdown.open{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.notif-dropdown-head{
    padding:16px 18px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.notif-dropdown-head h4{
    color:#FFD700;
    font-size:15px;
    margin:0;
    font-family:'Poppins',sans-serif;
}

.notif-dropdown-list{
    padding:8px;
}

.notif-empty{
    padding:26px 18px;
    text-align:center;
    color:#888;
    font-size:13.5px;
    margin:0;
}

.notif-row{
    padding:12px 14px;
    border-radius:10px;
    margin-bottom:6px;
    border-left:3px solid transparent;
    transition:background .2s ease;
}

.notif-row:last-child{
    margin-bottom:0;
}

.notif-row:hover{
    background:rgba(255,255,255,.04);
}

.notif-row.unread{
    background:rgba(255,215,0,.1);
    border-left-color:#FFD700;
}

.notif-row h5{
    font-size:14px;
    color:#fff;
    margin:0 0 4px;
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:700;
}

.notif-row .notif-new-tag{
    font-size:9.5px;
    font-weight:800;
    letter-spacing:.5px;
    color:#111;
    background:#FFD700;
    padding:2px 7px;
    border-radius:999px;
    flex-shrink:0;
}

.notif-row p{
    font-size:13px;
    color:#ccc;
    line-height:1.55;
    margin:0 0 6px;
}

.notif-row small{
    font-size:11px;
    color:#777;
}

@media(max-width:900px){

    .notif-dropdown{
        right:-10px;
        width:300px;
    }
}

@media(max-width:480px){

    .notif-bell{
        width:38px;
        height:38px;
        font-size:14px;
    }

    .notif-dropdown{
        right:-52px;
        width:260px;
    }
}
/* =========================
   CONTACT SOCIAL LINKS
========================= */

.contact-social {
    margin-top: 25px;
}

.contact-social > p {
    margin-bottom: 14px;
    font-weight: 700;
    color: #FFD700;
}

.contact-social .social-links {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.contact-social .social-item {
    display: flex;
    align-items: center;
    gap: 12px;
    width: fit-content;
    color: #fff;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.contact-social .social-item i {
    width: 40px;
    height: 40px;
    min-width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #FFD700;
    color: #111;
    font-size: 18px;
    transition: all 0.3s ease;
}

.contact-social .social-item:hover {
    color: #FFD700;
    transform: translateX(4px);
}

.contact-social .social-item:hover i {
    transform: scale(1.08);
}
/* =========================
   MOBILE HERO IMAGE FIX
========================= */

@media (max-width: 768px){

    .hero{
        min-height: 100svh;
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
    }

    .hero-content{
        width: 100%;
        padding: 90px 20px 30px;
        margin: 0 auto;
    }

    .hero h1{
        font-size: 38px;
        line-height: 1.15;
        max-width: 100%;
    }

    .subtitle{
        font-size: 16px;
        max-width: 340px;
    }

    .location{
        font-size: 13px;
    }
}
/* =========================================
   MOBILE HERO - PORTRAIT VERSION
   Desktop remains unchanged
========================================= */

@media (max-width: 768px) {

    .hero {
        min-height: calc(100svh - 60px);
        height: auto;

        background-image: url("../assets/image/hero-mobile.jpg");
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
        background-attachment: scroll;

        display: flex;
        align-items: center;
        justify-content: center;
    }

    .hero-content {
        width: 100%;
        max-width: 100%;
        padding: 45px 18px 35px;

        margin: 0 auto;

        text-align: center;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .badge {
        font-size: 14px;
        padding: 9px 17px;
        margin-bottom: 22px;
    }

    .hero h1 {
        width: 100%;
        max-width: 380px;

        font-size: clamp(34px, 9vw, 46px);
        line-height: 1.08;

        margin: 0 auto 22px;

        text-align: center;
    }

    .subtitle {
        width: 100%;
        max-width: 360px;

        font-size: 17px;
        line-height: 1.5;

        margin: 0 auto 20px;

        text-align: center;
    }

    .location {
        width: 100%;
        max-width: 360px;

        font-size: 14px;
        line-height: 1.5;

        text-align: center;

        margin: 10px auto 0;
    }

    .buttons {
        width: 100%;

        display: flex;
        flex-direction: column;
        align-items: center;

        gap: 14px;

        margin-top: 28px;
    }

    .btn-primary,
    .btn-secondary {
        width: 240px;
        max-width: 90%;
        height: 56px;
    }

    .scroll-indicator {
        margin-top: 25px;

        justify-content: center;
        gap: 15px;
    }
}
/* MOBILE HERO IMAGE */
@media (max-width: 768px) {
    .hero {
        background-image: url("../assets/image/hero-mobile.jpg");
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
    }
}