/* ==========================================================
   MathClass CMS
   Design System v1.0
   Mobile First
========================================================== */


/* ==========================
   COLOR SYSTEM
========================== */

:root {

    /* Brand */

    --primary: #185058;
    --primary-dark: #123E45;
    --primary-light: #2B6D76;

    /* Accent */

    --secondary: #F59E0B;

    --success: #22C55E;
    --warning: #F59E0B;
    --danger: #EF4444;

    /* Background */

    --background: #F7FAFA;
    --surface: #FFFFFF;

    /* Text */

    --text: #1F2937;
    --text-light: #6B7280;

    /* Border */

    --border: #E5E7EB;

}


/* ==========================
   TYPOGRAPHY
========================== */

:root {

    --font-heading: 'Poppins', sans-serif;
    --font-body: 'Inter', sans-serif;

    --fs-hero: 34px;
    --fs-h1: 28px;
    --fs-h2: 24px;
    --fs-h3: 20px;

    --fs-body: 15px;
    --fs-small: 13px;

}


/* ==========================
   SPACING
========================== */

:root {

    --radius: 22px;
    --radius-small: 14px;

    --space-xs: 8px;
    --space-sm: 12px;
    --space-md: 20px;
    --space-lg: 28px;
    --space-xl: 40px;

}


/* ==========================
   SHADOW
========================== */

:root {

    --shadow: 0 10px 30px rgba(15, 23, 42, .06);

}


/* ==========================
   GLOBAL
========================== */

html {

    scroll-behavior: smooth;

}

* {

    margin: 0;
    padding: 0;
    box-sizing: border-box;

}

body {

    font-family: var(--font-body);
    background: var(--background);
    color: var(--text);

    font-size: var(--fs-body);
    line-height: 1.6;

    overflow-x: hidden;

    padding-bottom:80px;
}

img {

    max-width: 100%;
    display: block;

}

a {

    text-decoration: none;
    color: inherit;

}

ul,
ol {

    list-style: none;

}

button {

    border: none;
    cursor: pointer;
    font-family: inherit;

}

input,
textarea,
select {

    font-family: inherit;

}

h1,
h2,
h3,
h4,
h5,
h6 {

    font-family: var(--font-heading);
    color: var(--text);
    font-weight: 700;

}


/* ==========================
   CONTAINER
========================== */

.app-container {

    max-width: 500px;

    margin: auto;

    padding: 20px;

}


/* ==========================
   BUTTON
========================== */

.app-btn {

    display: inline-flex;
    justify-content: center;
    align-items: center;

    width: 100%;

    padding: 14px 20px;

    border-radius: 16px;

    background: var(--primary);

    color: #fff;

    font-weight: 600;

    transition: .3s;

}

.app-btn:hover {

    background: var(--primary-dark);

}


/* ==========================
   CARD
========================== */

.app-card {

    background: var(--surface);

    border-radius: var(--radius);

    box-shadow: var(--shadow);

    padding: 20px;

}


/* ==========================
   INPUT
========================== */

.app-input {

    width: 100%;

    padding: 15px 18px;

    border-radius: 16px;

    border: 1px solid var(--border);

    outline: none;

    font-size: 15px;

    transition: .3s;

    background: #fff;

}

.app-input:focus {

    border-color: var(--primary);

}


/* ==========================
   BADGE
========================== */

.app-badge {

    display: inline-block;

    padding: 5px 12px;

    border-radius: 100px;

    font-size: 12px;

    font-weight: 600;

}

.app-badge-success {

    background: #DCFCE7;
    color: #15803D;

}

.app-badge-warning {

    background: #FEF3C7;
    color: #B45309;

}

.app-badge-danger {

    background: #FEE2E2;
    color: #B91C1C;

}


/* ==========================
   SECTION
========================== */

.app-section {

    margin-top: 32px;

}


/* ==========================
   TITLE
========================== */

.app-title {

    font-size: var(--fs-h2);

    margin-bottom: 6px;

}

.app-subtitle {

    color: var(--text-light);

    font-size: 14px;

}


/* ==========================
   UTILITY
========================== */

.text-center {

    text-align: center;

}

.mt-1 {

    margin-top: 10px;

}

.mt-2 {

    margin-top: 20px;

}

.mt-3 {

    margin-top: 30px;

}

.mt-4 {

    margin-top: 40px;

}

.mb-1 {

    margin-bottom: 10px;

}

.mb-2 {

    margin-bottom: 20px;

}

.mb-3 {

    margin-bottom: 30px;

}

.mb-4 {

    margin-bottom: 40px;

}


/* ==========================
   ANIMATION
========================== */

.app-card,
.app-btn {

    transition: all .25s ease;

}

.app-card:hover {

    transform: translateY(-4px);

}


/* ==========================
   DESKTOP
========================== */

@media (min-width: 992px) {

    .app-container {

        max-width: 1200px;

    }

}

/* ==========================================================
   NAVBAR
========================================================== */

.app-navbar{

    position: sticky;

    top: 0;

    z-index: 1000;

    background: rgba(255,255,255,.9);

    backdrop-filter: blur(10px);

    border-bottom: 1px solid var(--border);

}

.app-navbar-wrapper{

    height: 70px;

    display: flex;

    justify-content: space-between;

    align-items: center;

}

.app-logo{

    font-family: var(--font-heading);

    font-size: 24px;

    font-weight: 700;

    color: var(--text);

}

.app-logo span{

    color: var(--primary);

}

.app-menu-btn{

    width: 44px;

    height: 44px;

    border-radius: 12px;

    background: transparent;

    display: flex;

    justify-content: center;

    align-items: center;

    transition: .3s;

}

.app-menu-btn:hover{

    background: #EEF4FF;

}

.app-menu-btn i{

    font-size: 28px;

    color: var(--primary);

}

/* ==========================================================
   BOTTOM NAVIGATION
========================================================== */

.app-bottom-nav{

    position: fixed;

    bottom: 0;

    left: 0;

    width: 100%;

    background: rgba(255,255,255,.95);

    backdrop-filter: blur(10px);

    border-top: 1px solid var(--border);

    display: flex;

    justify-content: space-around;

    align-items: center;

    padding: 10px 0;

    z-index: 1000;

}

.app-bottom-nav a{

    flex:1;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:4px;

    color:var(--text-light);

    font-size:12px;

    transition:.3s;

}

.app-bottom-nav a.active{

    color:var(--primary);

}

.app-bottom-nav i{

    font-size:22px;

}

.app-bottom-nav span{

    font-size:12px;

}

/* ==========================================================
   HERO
========================================================== */

.app-hero{

    background: linear-gradient(
        135deg,
        #185058,
        #286076
    );

    border-radius:30px;

    padding:32px 26px;

    color:#fff;

}

.app-hero-badge{

    display:inline-block;

    padding:8px 14px;

    border-radius:999px;

    background:rgba(255,255,255,.20);

    backdrop-filter:blur(8px);

    font-size:13px;

    margin-bottom:18px;

}

.app-hero-title{

    color:#fff;

    font-size:32px;

    line-height:1.2;

    margin-bottom:18px;

}

.app-hero-description{

    color:rgba(255,255,255,.90);

    margin-bottom:28px;

    font-size:15px;

}

.app-hero .app-btn{

    background:#fff;

    color:var(--primary);

}

.app-hero .app-btn:hover{

    background:#F1F5F9;

}

/* ==========================================================
   HERO ILLUSTRATION
========================================================== */

.app-hero{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:15px;

}

.app-hero-content{

    flex:7;

}

.app-hero-illustration{

    flex:3;

    position:relative;

    height:180px;

}

.app-hero-illustration i{

    position:absolute;

    color:rgba(255,255,255,.25);

}

.icon-main{

    font-size:64px;

    right:10px;

    top:50px;

}

.icon-1{

    font-size:28px;

    left:5px;

    top:20px;

}

.icon-2{

    font-size:34px;

    right:0;

    top:0;

}

.icon-3{

    font-size:26px;

    left:30px;

    bottom:20px;

}

@keyframes floating{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-8px);

    }

    100%{

        transform:translateY(0);

    }

}

.icon-main{

    animation:floating 3s ease-in-out infinite;

}

/* ==========================================================
   SECTION TITLE
========================================================== */

.app-section-header{

    display:flex;

    justify-content:space-between;

    align-items:end;

    margin-bottom:18px;

}

.app-section-title{

    font-size:22px;

    margin-bottom:2px;

}

.app-section-subtitle{

    color:var(--text-light);

    font-size:14px;

}

.app-section-link{

    display:flex;

    align-items:center;

    gap:4px;

    color:var(--primary);

    font-weight:600;

    font-size:14px;

}

.app-section-link i{

    font-size:18px;

}

/* ==========================================================
   CLASS CARD
========================================================== */

.app-class-card{

    background:#fff;

    border:1px solid var(--border);

    border-radius:12px;

    overflow:hidden;

    transition:.25s;

    margin-bottom: 20px;

}

.app-class-card:hover{

    transform:translateY(-4px);

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.app-class-image{

    position:relative;

}

.app-class-image img{

    width:100%;

    height:260px;

    object-fit:cover;

}

.app-class-status{

    position:absolute;

    top:12px;

    left:12px;

    background:#22C55E;

    color:#fff;

    padding:6px 12px;

    border-radius:999px;

    font-size:12px;

    font-weight:600;

}

.app-class-body{

    padding:18px;

}

.app-class-title{

    font-size:18px;

    line-height:1.4;

    margin-bottom:10px;

}

.app-class-meta{

    display:flex;

    gap:16px;

    flex-wrap:wrap;

    margin-bottom:10px;

    color:var(--text-light);

    font-size:14px;

}

.app-class-meta span{

    display:flex;

    align-items:center;

    gap:6px;

}

.app-class-button{

    display:inline-flex;

    align-items:center;

    gap:8px;

    color:var(--primary);

    font-weight:600;

}

.app-class-button:hover{

    background:var(--primary-dark);

}

/* ==========================================================
   CLASS STATUS
========================================================== */

.app-class-status{

    position:absolute;

    top:12px;

    left:12px;

    padding:6px 12px;

    border-radius:999px;

    color:#fff;

    font-size:12px;

    font-weight:600;

}

.app-status-open{

    background:#22C55E;

}

.app-status-soon{

    background:#F59E0B;

}

.app-status-close{

    background:#EF4444;

}


/* ==========================================================
   CLASS PRICE
========================================================== */

.app-class-price{

    color:var(--primary);

    font-size:20px;

    font-weight:700;

    margin-bottom:18px;

}

/* ==========================================================
   SEARCH
========================================================== */

.app-search{

    margin:26px 0;

}

.app-search-box{

    display:flex;

    align-items:center;

    background:#fff;

    border:1px solid var(--border);

    border-radius:12px;

    overflow:hidden;

}

.app-search-icon{

    padding:0 18px;

    color:var(--text-light);

    font-size:18px;

}

.app-search-input{

    flex:1;

    border:none;

    outline:none;

    height:56px;

    font-size:15px;

}

.app-search-filter{

    width:56px;

    height:56px;

    border:none;

    background:var(--primary);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    transition:.25s;

}

.app-search-filter:hover{

    background:var(--primary-dark);

}

/* ===============================
   KUOTA
================================ */

.class-quota{

    margin-top:18px;

    margin-bottom:8px;

    font-size:14px;

    font-weight:600;

    color:#6c757d;

    display:flex;

    align-items:center;

    gap:6px;

}

.class-quota i{

    color:#185058;

    font-size:15px;

}