:root {
  --primary-font: Inter, sans-serif; 
  /* Colors */
  --primary-color: #f0f8ff;
  --light-gray: #6a7282;
  --dark-gray: #1e2939;
  --gray: #3f4b5d;
  --red: #ff0000;
  --light-blue: #2878e3;
  /* Font Sizes */
  --txt-sm: 0.875rem;
  --txt-m: 1rem;
  --txt-lg: 1.125rem;
  --txt-3xl: 1.875rem;
  --txt-6xl: 3.75rem;
  /* Spacings & Style*/
  --br-m: 6px;
  --bb-thin: 0.01rem solid #ebebeb;
  --bs: 0 1px 2px rgba(0, 0, 0, 0.1);
}

* {
    font-family: var(--primary-font);
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body { background-color: var(--primary-color);}

h1 { color: var(--dark-gray); font-weight: 500;}
h2,h3 { color: var(--gray); font-weight: 500;}
p {color: var(--light-gray); line-height: 28px;}
main {padding: 3.5rem 2rem;}

/* Utility CSS */

/* Layout Utilities */
.wrapper { width: 100%; margin-inline: auto;}
.surface {background: white; border-radius: var(--br-m); box-shadow: var(--bs);}
.f { display: flex;}
.f-center { display: flex; justify-content: center;align-items: center;}
.f-column { display: flex; flex-direction: column;}
.ai-center {align-items: center;}

/* Typography Utility */
.fs-s {font-size: 0.875rem;}
.fs-xl {font-size: 1.25rem;}
.fs-2xl {font-size: 1.5rem;}
.fs-3xl {font-size: 1.875rem;}
.fs-6xl {font-size: 3.75rem;}
.fw500 {font-weight: 500;}
.fw600 {font-weight: 600;}
.fw700 {font-weight: 700;}
.text-center {text-align: center;}
.text-red { color: red; }
.lh-none {line-height: 1;}
.lh-2 {line-height: 1.5;}
.text-light {color: var(--light-gray);}
.text-dark {color: var(--dark-gray);}
.text-red {color: var(--red);}

/* Spacing Utility */
.p-4 {padding: 1rem;}
.p-8 {padding: 2rem;}
.p-12 {padding: 3rem;}
.p-16 {padding: 4rem;}
.pt-4 {padding-top: 4rem;}
.pb-1 {padding-bottom: 0.5rem;}
.pb-2 {padding-bottom: 1.5rem;}
.pb-4 {padding-bottom: 3rem;}
.max-w-896 {max-width: 896px;}
.max-w-768 {max-width: 768px;}
.max-w-576 {max-width: 576px;}
.max-w-464 {max-width: 464px;}
.max-w-400 {max-width: 400px;}
.mt-2 {margin-top: 1.25rem;} 
.mb-1 {margin-bottom: 0.75rem;}
.mb-2 {margin-bottom: 1.5rem;}
.gap-s {gap: 8px;}
.gap-1 {gap: 20px;}
.gap-2 {gap: 40px;}

/* Buttons */ 
button {font-family: var(--primary-font); font-size: var(--txt-sm); cursor: pointer; border-radius: var(--br-m); border: 1px solid transparent; background: var(--light-blue); color: #fff; padding: 10px 16px;}
.login-btn { background: #fff; color: var(--light-gray); border: 2px solid var(--light-gray); padding: 8px 16px; }
.completeBtn {width: 100%; border-radius: 0 0 6px 6px;}

/* Inputs */
input, textarea { width: 100%; padding: 12px; margin: 10px 0px; border: 2px solid var(--light-gray);border-radius: var(--br-m); }

/* Learn Page */
.card__header {padding: 32px 32px 24px 32px; justify-content: space-between; border-bottom: var(--bb-thin);}
.card__body {padding: 24px 32px 32px 32px;}
#levels-cards {display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));}
.levels-card {padding: 40px 32px; gap: 30px;}

/* Login Page */
.toggle { text-align: center; font-size: 0.85em; margin-top: 20px; }
a {color: #000; text-decoration: underline; cursor: pointer; }
#msg {margin-top: 15px; display: none; font-size: 0.9em; }
#submitBtn {width: 100%;} 

/* Course Page */ 
.hidden { display: none; }
.module__header {display: flex; flex-direction: column; align-items: center; margin-bottom: 32px;}
.module__title { font-size: var(--txt-3xl); margin-top: 16px;}
.module__overview {font-size: var(--txt-lg); margin-bottom: 8px;}
.module__description {font-size: var(--txt-m); line-height: 1.75; font-weight: 400; margin-bottom: 32px;}
.chapter-box { margin-bottom: 40px;}
.chapter-title {padding: 20px 24px; border-bottom: var(--bb-thin);}
.chapter-links {padding: 16px;}
.link-content {display: flex; justify-content: space-between;}
.lesson-link {display: block; padding: 12px; text-decoration: none; border-radius: var(--br-m);}
.lesson-items { display: flex; align-items: center; gap: 12px;}
.lesson-link:hover { background: #eee; }

/* Lesson Page */
.choice-button { display: block; width: 100%; padding: 12px; margin: 8px 0px; border: 1px solid var(--light-gray); background: var(--primary-color); cursor: pointer; border-radius: var(--br-m); text-align: left; color: var(--dark-gray); }
.selected { border: 2px solid var(--light-gray); background: #e0e0e0; }
.correct { border-color: #28a745 !important; background: #d4edda !important; color: #155724; }
.wrong { border-color: #dc3545 !important; background: #f8d7da !important; color: #721c24; }
.gap-input {display: inline-block; border-bottom: 2px solid var(--light-gray); min-width: 40px; text-align: center; font-size: 18px; outline: none; background: transparent; border-radius: 3px 3px 0 0; padding: 0 5px 0 5px;}
.gap-input br {display: none;}
/* .gap-input.correct { border-bottom-color: #28a745; color: #28a745; } */
/* .gap-input.wrong { border-bottom-color: #dc3545; color: #dc3545; } */
.quizBtns {justify-content: space-between;}
.arrow-btn {padding: 1px 3px 1px 3px; background-color: transparent; color: var(--light-gray); border: 1px solid var(--light-gray);}

.quiz-number {color: var(--light-gray);}

/* Live */
.live-cards {display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin: 0 auto;}
.opt-btn {padding: 3px 5px 3px 5px; margin-left: 6px; border-radius: 6px; background-color: #ebebeb; color: var(--dark-gray); animation: pop 1.2s infinite ease-in-out;}
.rounded {border-radius: 50px;}
.active {background-color: var(--light-gray); color: white;}
.buchen-btn {width: 100%;}
.buchen-btn:disabled {background-color: #c0c1c3; cursor: auto;}
@keyframes pop {
  0% { box-shadow: 0 0 0 1px #ebebeb, 0 0 0 0 #ebebebaa; }
  100% { box-shadow: 0 0 0 1px #ebebeb, 0 0 0 8px #ebebeb00; }
}

/* HEADER */
header { padding: 8px 32px; display: flex; justify-content: space-between; align-items: center; background-color: white; border-bottom: 0.01rem solid #ebebeb; }
.nav-left { display: flex; align-items: center; gap: 20px; }
.nav-right { display: flex; align-items: center; gap: 35px; color: var(--light-gray);}
.nav-right a { text-decoration: none; color: var(--gray-color); font-size: var(--txt-sm); font-weight: 500; white-space: nowrap; } 
.hero-section {display: flex; flex-direction: column; justify-content: center; align-items: center;}
.btn-hero {padding: 0.8rem 1.5rem; font-weight: 600;}
.learn {background-color: red;}
.book {background-color: #1e2939;}
.logoutBtn {background: transparent; padding: 0; color: var(--light-gray);}
.nav-right a.active-current {color: var(--dark-gray); font-weight: 700;}



.hamburger-btn {
    display: none; /* Invisible on desktop */
    background: none;
    border: none;
    cursor: pointer;
    color: inherit;
}
.nav-overlay {
    position: fixed;
    top: 0; left: 0;
    width: 100vw; height: 100vh;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 90;
}
.nav-logo { display: none;}

/* --- Mobile Responsiveness Breakpoint --- */
@media (max-width: 860px) {
    .hamburger-btn {
        display: block;
        margin-left: auto; /* Forces it perfectly to the right side */
    }
    .nav-logo { display: flex;}
    .nav-right {
        position: fixed;
        top: 0;
        left: 0;
        width: 260px;
        height: 100vh;
        background: #fff; /* Clean contrast matching your app builder palette */
        flex-direction: column;
        padding: 3rem 1.5rem;
        gap: 1.25rem;
        z-index: 100;
    align-items: flex-start;
        /* The LTR Slide Magic: Start completely hidden off the left edge */
        transform: translateX(-100%);
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* State modifiers triggered via JS toggling */
    .nav-right.active {
        transform: translateX(0); /* Slides cleanly into view from left to right */
    }
    
    .nav-overlay.active {
        opacity: 1;
        pointer-events: auto;
    }
   
    .feature {flex-direction: column;}
    .school-card { display: flex; flex-direction: column; gap: 1rem; }
    .card__header { display: contents; }
    .card__header > :last-child { order: 1; }
    .card__header button { width: 100%; } /* Responsive: stretches full-width on mobile */
    .card__body {padding: 24px 32px 0px 32px;}
    .p-responsive {padding: 2rem 1rem 1rem 1rem;}
    .cardBtn {border-radius: 0px 0px 6px 6px;}
    .card__body {padding-top: 0;}
    .plyr {
        width: 100% !important;
        max-width: 100% !important;
    }
    .plyr__controls {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}


