/* ==========================================================
   Modern Minimal-Biomorphic Theme
   Compatible with Bootstrap 5
   Fonts: Roboto (headings) • Lato (text)
   ========================================================== */
:root{
    /* === Triadic Palette === */
    --clr-primary:#ff595e;        /* Vibrant Red-Coral   */
    --clr-secondary:#1982c4;      /* Bold Azure-Blue     */
    --clr-accent:#8ac926;         /* Energetic Lime-Green*/
    --clr-primary-dark:#c8474b;
    --clr-secondary-dark:#156aa0;
    --clr-accent-dark:#69991e;

    /* === Greys & Utility === */
    --clr-bg:#ffffff;
    --clr-bg-alt:#f7f9fa;
    --clr-text:#212529;
    --clr-text-light:#f8f9fa;
    --shadow-soft:0 10px 30px rgba(0,0,0,.08);

    /* === Gradients === */
    --gradient-primary:linear-gradient(135deg,var(--clr-primary) 0%,var(--clr-secondary) 100%);
    --gradient-hero:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.55));

    /* === Transition === */
    --transition-fast:.25s ease;
}

/* ===== Global Reset / Base ===== */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    font-family:'Lato',sans-serif;
    color:var(--clr-text);
    background:var(--clr-bg);
}

/* Headings */
h1,h2,h3,h4,h5,h6{font-family:'Roboto',sans-serif; font-weight:700; line-height:1.2;}

/* Section Spacing */
.section-padding{padding:4rem 0;}
@media (max-width: 576px){
    .section-padding{padding:3rem 0;}
}

/* ===================== Buttons (GLOBAL) ================== */
.btn,
button,
input[type='submit']{
    font-family:'Roboto',sans-serif;
    font-weight:700;
    border:none;
    padding:.75rem 1.5rem;
    border-radius:50rem;
    transition:background var(--transition-fast),transform var(--transition-fast);
    position:relative;
    z-index:1;
    overflow:hidden;
    color:#fff;
    background:var(--clr-primary);
}
.btn-secondary{background:var(--clr-secondary);}
.btn-accent{background:var(--clr-accent);}

.btn::after{
    content:'';
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.15);
    opacity:0;
    transition:opacity var(--transition-fast);
    border-radius:inherit;
}
.btn:hover,
button:hover,
input[type='submit']:hover{
    transform:translateY(-3px);
}
.btn:hover::after{opacity:1;}
.btn:active{transform:translateY(0);}

/* ===================== Navbar ============================ */
.navbar-light.bg-white{
    backdrop-filter:saturate(180%) blur(20px);
    background:rgba(255,255,255,.9)!important;
    box-shadow:var(--shadow-soft);
}

/* ===================== Hero ============================== */
#hero{
    position:relative;
    background-size:cover;
    background-repeat:no-repeat;
    color:var(--clr-text-light);
    text-align:center;
}
#hero::before{
    content:'';
    position:absolute;
    inset:0;
    background:var(--gradient-hero);
}
#hero>.container,
#hero .container{position:relative; z-index:1;}

#hero h1{font-size:clamp(2rem,5vw,3.5rem);}
#hero p{font-size:clamp(1rem,2vw,1.25rem); max-width:40rem; margin-inline:auto;}

/* ===================== Cards / Flex Centering ============ */
.card,
.item,
.testimonial,
.team-member,
.product-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    box-shadow:var(--shadow-soft);
    border:0;
    border-radius:1rem;
    background:var(--clr-bg);
    overflow:hidden;
    transition:transform var(--transition-fast),box-shadow var(--transition-fast);
}
.card:hover,
.item:hover,
.product-card:hover{transform:translateY(-5px); box-shadow:0 12px 35px rgba(0,0,0,.12);}

/* Image Container */
.card-image,
.item-image,
.profile-image{
    width:100%;
    height:240px;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
}
.card-image img,
.item-image img,
.profile-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    margin:0 auto;
}

/* Card Content Padding */
.card-content,
.item-content{padding:1.25rem 1.5rem;}

/* ===================== Biomorphic Shapes ================= */
.biomorph{
    border-radius:42% 58% 30% 70% / 55% 35% 65% 45%;
}

/* ===================== Glassmorphism Utility ============= */
.glass{
    background:rgba(255,255,255,.15);
    backdrop-filter:blur(14px) saturate(180%);
    border:1px solid rgba(255,255,255,.25);
}

/* ===================== Section Specific ================= */
/* History */
#history{background:var(--clr-bg-alt);}

/* Accolades */
#accolades .card-image{height:200px;}

/* Gallery */
#gallery img{border-radius:.75rem; transition:transform var(--transition-fast);}
#gallery img:hover{transform:scale(1.05);}

/* Projects */
#projects .card-image{height:260px;}

/* Instructors Accordion */
.accordion-button:not(.collapsed){
    color:var(--clr-primary);
    background:var(--clr-bg-alt);
}

/* Clientele Logos */
#clientele .card-image{height:160px;}

/* News */
#news .card-image{height:220px;}
#news .card-title{min-height:3.5rem;}

/* Press */
#press{background:var(--clr-bg-alt);}

/* Contact */
#contact{background-size:cover; background-repeat:no-repeat;}
#contact form .form-control{border-radius:.5rem;}
#contact .btn{margin-top:1rem;}

/* ===================== Read More Links =================== */
.read-more{
    display:inline-block;
    font-weight:700;
    color:var(--clr-secondary);
    position:relative;
    transition:color var(--transition-fast);
}
.read-more::after{
    content:'';
    position:absolute;
    bottom:-2px;
    left:0;
    width:0;
    height:2px;
    background:var(--clr-secondary);
    transition:width var(--transition-fast);
}
.read-more:hover{color:var(--clr-secondary-dark);}
.read-more:hover::after{width:100%;}

/* ===================== Social Links (Footer) ============= */
.social-link{
    font-weight:600;
    color:var(--clr-text-light);
    position:relative;
    transition:color var(--transition-fast);
}
.social-link:hover{color:var(--clr-accent);}
.social-link::before{
    content:'›';
    margin-right:.35rem;
    font-weight:900;
    transition:transform var(--transition-fast);
}
.social-link:hover::before{transform:translateX(3px);}

/* ===================== Footer ============================ */
footer{
    background:#111;
    color:var(--clr-text-light);
}
footer a{text-decoration:none;}
footer a:hover{text-decoration:underline;}

/* ===================== Success Page ====================== */
.page-success{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    min-height:100vh;
    text-align:center;
    background:var(--gradient-primary);
    color:#fff;
}

/* ===================== Legal Pages ======================= */
.page-legal{padding-top:100px;}

/* ===================== Utility Classes =================== */
.bg-primary-gradient{background:var(--gradient-primary);}
.text-primary{color:var(--clr-primary)!important;}
.text-secondary{color:var(--clr-secondary)!important;}
.text-accent{color:var(--clr-accent)!important;}

.parallax{
    background-attachment:fixed;
    background-size:cover;
    background-repeat:no-repeat;
}

/* =========================================================
   Animations
   ========================================================= */
@keyframes fadeUp{
    from{opacity:0; transform:translateY(20px);}
    to{opacity:1; transform:translateY(0);}
}
.animate-fadeUp{animation:fadeUp .8s ease forwards;}

/* Smooth fade on scroll (AOS replacement fallback) */
[data-aos]{opacity:0; transition:opacity .6s ease,transform .6s ease;}
[data-aos].aos-animate{opacity:1; transform:none;}

/* =========================================================
   Responsive Tweaks
   ========================================================= */
@media (min-width:992px){
    .is-two-thirds{max-width:66%; margin-inline:auto;}
}