/* ==========================================================
   RedHandFist® Online Academy
   style.css
   Version 0.2
========================================================== */

:root{

    --red:#C00000;

    --red-dark:#8B0000;

    --black:#111111;

    --dark:#1A1A1A;

    --light:#E5E5E5;

    --white:#FFFFFF;

    --border:#333333;

    --shadow:0 0 25px rgba(192,0,0,.35);

}

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}

body{

    background:var(--black);

    color:var(--light);

    font-family:"Roboto",sans-serif;

    line-height:1.6;

}

a{

    color:inherit;

    text-decoration:none;

}

img{

    max-width:100%;

    display:block;

}

.container{

    width:min(1200px,92%);

    margin:0 auto;

}

/* ==========================================================
   Header
========================================================== */

.header{

    position:sticky;

    top:0;

    z-index:1000;

    background:#0d0d0d;

    border-bottom:1px solid var(--border);

    box-shadow:0 8px 24px rgba(0,0,0,.35);

}

.header .container{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:24px;

    padding:18px 0;

}



.logo{

    display:flex;

    align-items:center;

    gap:16px;

}

.logo img{

    width:72px;

    height:72px;

    object-fit:cover;

    border-radius:50%;

    border:2px solid var(--red);

    box-shadow:var(--shadow);

}

.logo-text h1{

    font-family:"Bebas Neue",sans-serif;

    font-size:2rem;

    letter-spacing:2px;

    color:var(--white);

}

.logo-text span{

    display:block;

    color:var(--red);

    letter-spacing:1px;

    font-size:.95rem;

}

.navigation{

    display:flex;

    align-items:center;

    gap:22px;

    flex-wrap:wrap;

}

.navigation a{

    color:var(--light);

    font-weight:500;

    letter-spacing:.4px;

    transition:color .25s ease;

}

.navigation a:hover{

    color:var(--red);

}

.login-button{
    padding:10px 18px;
    border:1px solid var(--red);
    border-radius:999px;
    color:var(--white) !important;
    transition:
        background .25s ease,
        box-shadow .25s ease,
        color .25s ease;
}

.login-button:hover,
.login-button:focus-visible{
    color:var(--white) !important;
    background:var(--red);
    box-shadow:var(--shadow);
}


/* ==================================================
   Markenbereich Ergebnis-Seite
================================================== */

.result-brand {

    display: flex;
    align-items: center;

    gap: 17px;

    color: #ffffff;
    text-decoration: none;

    flex-shrink: 0;

}

.result-brand img {

    width: 86px;
    height: 86px;

    object-fit: cover;

    border: 2px solid #c00000;
    border-radius: 50%;

    box-shadow:
        0 0 0 5px rgba(192, 0, 0, 0.08),
        0 0 25px rgba(192, 0, 0, 0.28);

}

.result-brand-name {

    display: block;

    font-size: 24px;
    font-weight: 700;
    line-height: 1;

    letter-spacing: 0.2px;

}

.result-brand-name .brand-red {

    color: #c00000;

}

.result-brand-name .brand-white {

    color: #ffffff;

}

.result-brand-subtitle {

    display: block;

    margin-top: 11px;

    color: #c00000;

    font-size: 18px;
    font-weight: 400;

    letter-spacing: 1.7px;
    text-transform: uppercase;

}

/* ==========================================================
   Hero
========================================================== */

.hero{

    min-height:72vh;

    background:
        linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.75)),
        radial-gradient(circle at top, rgba(192,0,0,.18), transparent 45%),
        #141414;

    display:flex;

    align-items:center;

}

.hero-overlay{

    width:100%;

}

.hero-content{

    text-align:center;

    padding:100px 0;

}

.hero h2{

    font-family:"Bebas Neue",sans-serif;

    font-size:4rem;

    letter-spacing:2px;

    color:var(--white);

    text-transform:uppercase;

}

.hero h3{

    margin-top:12px;

    font-size:1.8rem;

    color:var(--red);

    font-weight:700;

}

.hero p{

    max-width:760px;

    margin:28px auto 0;

    color:#d7d7d7;

    font-size:1.08rem;

}

.hero-buttons{

    display:flex;

    justify-content:center;

    gap:16px;

    flex-wrap:wrap;

    margin-top:36px;

}

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:14px 28px;

    border-radius:999px;

    font-weight:700;

    letter-spacing:.5px;

    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;

}

.btn:hover{

    transform:translateY(-2px);

}

.btn-primary{

    background:var(--red);

    color:var(--white);

    box-shadow:var(--shadow);

}

.btn-primary:hover{

    background:var(--red-dark);

}

.btn-secondary{

    border:1px solid var(--red);
    background: #333333;

    color:var(--white);

}

.btn-secondary:hover{

    background:rgba(192,0,0,.12);

}

/* ==========================================================
   Features
========================================================== */

.features{

    padding:80px 0;

    background:#151515;

}

.features .container{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:24px;

}

.feature-card{

    background:#1b1b1b;

    border:1px solid var(--border);

    border-radius:20px;

    padding:28px;

    transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;

}

.feature-card:hover{

    transform:translateY(-6px);

    border-color:var(--red);

    box-shadow:var(--shadow);

}

.feature-card h4{

    font-family:"Bebas Neue",sans-serif;

    font-size:1.8rem;

    letter-spacing:1px;

    color:var(--white);

    margin-bottom:12px;

}

.feature-card p{

    color:#cfcfcf;

}

@media (max-width: 590px) {

    .features .container {
        grid-template-columns: 1fr;
    }

}

/* ==========================================================
   Course Preview
========================================================== */

.course-preview{

    padding:90px 0;

    background:#111111;

}

.preview-content{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:40px;

    align-items:center;

}

.preview-text h2{

    font-family:"Bebas Neue",sans-serif;

    font-size:3rem;

    letter-spacing:1px;

    color:var(--white);

}

.preview-text h3{

    margin-top:8px;

    color:var(--red);

    font-size:1.6rem;

}

.preview-text ul{

    margin:24px 0;

    padding-left:22px;

}

.preview-text li{

    margin-bottom:10px;

    color:#d8d8d8;

}

.price-box{

    background:#1b1b1b;

    border:1px solid var(--red);

    border-radius:24px;

    padding:34px;

    text-align:center;

    box-shadow:var(--shadow);

}

.price-label{

    color:#bdbdbd;

    letter-spacing:.6px;

    text-transform:uppercase;

    font-size:.9rem;

}

.price{

    margin:16px 0;

    font-family:"Bebas Neue",sans-serif;

    font-size:4rem;

    color:var(--white);

}

.price-note{

    color:#cfcfcf;

}

/* ==========================================================
   Footer
========================================================== */

.footer{

    background:#0d0d0d;

    border-top:1px solid var(--border);

    padding:40px 0;

}

.footer-content{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:32px;

    flex-wrap:wrap;

}

.footer h4{

    font-family:"Bebas Neue",sans-serif;

    font-size:1.8rem;

    letter-spacing:1px;

    color:var(--white);

    margin-bottom:10px;

}

.footer p{

    color:#bdbdbd;

    max-width:520px;

}

.footer a{

    color:#d5d5d5;

    transition:color .25s ease;

}

.footer a:hover{

    color:var(--red);

}

/* ==========================================================
   Utilities
========================================================== */

.hidden{

    display:none !important;

}

.text-center{

    text-align:center;

}

.mt-2{

    margin-top:16px;

}

.mt-3{

    margin-top:24px;

}

.mt-4{

    margin-top:32px;

}




/* ==========================================================
   ZERTIFIKAT – A4-DRUCKLAYOUT
========================================================== */

@page {
    size: A4 landscape;
    margin: 0;
}

@media print {

    html,
    body {
        width: 297mm;
        height: 210mm;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        background: white !important;
    }

    header,
    footer,
    nav,
    .header,
    .footer,
    .navigation,
    .certificate-actions,
    .print-button,
    button {
        display: none !important;
    }

    .certificate-page,
    .certificate,
    #certificate {
        width: 297mm !important;
        height: 210mm !important;
        min-height: 0 !important;
        max-height: 210mm !important;

        margin: 0 !important;
        padding: 10mm !important;

        box-sizing: border-box !important;
        overflow: hidden !important;

        page-break-before: avoid !important;
        page-break-after: avoid !important;
        page-break-inside: avoid !important;

        break-before: avoid !important;
        break-after: avoid !important;
        break-inside: avoid !important;

        transform: none !important;
        box-shadow: none !important;
    }

    main,
    .certificate-wrapper,
    .certificate-container {
        width: 297mm !important;
        height: 210mm !important;
        min-height: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: hidden !important;
    }
}


/* ===========================================
   Unterschrift Markus Höpker
=========================================== */

.certificate-signature {
    text-align: center;
}

.signature-image {
    display: block;

    width: 255px;
    height: 75px;

    object-fit: contain;

    margin: 0 auto 4px;

    transform: scale(6);
    transform-origin: center bottom;
}


.signature-area {
    position: relative;
    overflow: visible;
    padding-top: 38px;
}




.signature-line {
    width: 260px;
    max-width: 100%;
    height: 1px;
    margin: 0 auto 8px auto;
    background: #b89a55;
}

.signature-label {
    font-size: 14px;
    font-weight: 700;
    color: #a47f2c;
    letter-spacing: 0.5px;
}

.signature-person {
    margin-top: 3px;
    font-size: 15px;
    font-weight: 600;
    color: #111111;
}

@media print {
    .signature-image {
    width: 58mm !important;
    height: 17mm !important;

    transform: scale(6) !important;
    transform-origin: center bottom !important;
}

    .signature-line {
        width: 60mm;
    }
}


.qr-code {

    width: 80px !important;
    height: 80px !important;

    min-width: 80px;
    min-height: 80px;

    max-width: 80px;
    max-height: 80px;

    display: block;

    object-fit: contain;

    margin: 12px auto 0;

    padding: 4px;

    background: #ffffff;

    border: 2px solid #b89a55;

    border-radius: 6px;

}


.material-symbols-outlined {
    font-family: "Material Symbols Outlined";
    font-weight: normal;
    font-style: normal;
    font-size: inherit;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    direction: ltr;
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "liga";
}



.home-benefits {
    position: relative;
    z-index: 8;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: linear-gradient(
        180deg,
        rgba(19, 19, 19, 0.98),
        rgba(4, 4, 4, 1)
    );
}

.benefits-grid {
    min-height: 122px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
}

.benefit-item {
    min-width: 0;
    padding: 26px 28px;

    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    gap: 16px;

    border-right: 1px solid rgba(255, 255, 255, 0.16);
}

.benefit-item:last-child {
    border-right: 0;
}

.benefit-icon {
    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--home-gold);
}

.benefit-icon .material-symbols-outlined {
    font-size: 36px;
    line-height: 1;
}

.benefit-copy {
    min-width: 0;
}

.benefit-title {
    display: block;

    color: var(--home-white);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.2px;

    text-transform: uppercase;
}

.benefit-text {
    display: block;

    margin-top: 5px;

    color: #cfcfcf;
    font-size: 13px;
    line-height: 1.35;
}


@media (max-width: 1120px) {

    .benefits-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .benefit-item:nth-child(2) {
        border-right: 0;
    }

}

@media (max-width: 590px) {

    .benefits-grid {
        grid-template-columns: 1fr;
    }

    .benefit-item {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .benefit-item:last-child {
        border-bottom: 0;
    }

}


.disabled-course{

    cursor:not-allowed;

    pointer-events:none;

    opacity:.65;

}

/* ==================================================
   Ausbildungsstatus - Ergebnis / Schritt 3 von 3
================================================== */

.training-status {
    position: sticky;
    top: 115px;

    padding: 30px;

    border: 1px solid #c00000;
    border-radius: 24px;

    background:
        linear-gradient(
            145deg,
            #1d1d1d,
            #121212
        );

    box-shadow:
        0 0 30px rgba(192, 0, 0, 0.18),
        0 18px 42px rgba(0, 0, 0, 0.3);
}

.status-header {
    display: flex;
    align-items: center;
    gap: 15px;
}

.status-header > .material-symbols-outlined {
    color: #c00000;
    font-size: 48px;
}

.status-small {
    display: block;

    color: #a9a9a9;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;

    text-transform: uppercase;
}

.status-header strong {
    display: block;

    margin-top: 3px;

    color: #ffffff;
    font-family: "Bebas Neue", sans-serif;
    font-size: 29px;
    line-height: 1;
}

.status-progress {
    height: 10px;

    margin: 24px 0 28px;

    border-radius: 999px;
    overflow: hidden;

    background: #303030;
}

.status-progress-bar {
    width: 100%;
    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            #8b0000,
            #df0000
        );
}

.status-list {
    margin: 0;
    padding: 0;

    list-style: none;
}

.status-item {
    position: relative;

    display: grid;

    grid-template-columns:
        42px
        minmax(0, 1fr);

    align-items: start;
    gap: 14px;

    padding: 0 0 27px;
}

.status-item:not(:last-child)::after {
    content: "";

    position: absolute;

    left: 20px;
    top: 42px;
    bottom: 5px;

    width: 2px;

    background: #393939;
}

.status-marker {
    position: relative;
    z-index: 2;

    width: 42px;
    height: 42px;

    border: 2px solid #4a4a4a;
    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #1b1b1b;
    color: #a8a8a8;

    font-family: "Bebas Neue", sans-serif;
    font-size: 23px;
}

.status-active .status-marker {
    border-color: #c00000;

    background: #c00000;
    color: #ffffff;

    box-shadow:
        0 0 18px rgba(192, 0, 0, 0.36);
}

.status-item strong {
    display: block;

    padding-top: 2px;

    color: #ffffff;
    font-size: 15px;
    line-height: 1.35;
}

.status-item span:not(.status-marker) {
    display: block;

    margin-top: 4px;

    color: #a9a9a9;
    font-size: 13px;
    line-height: 1.4;
}

.status-quote {
    margin-top: 6px;
    padding: 20px;

    border-top: 1px solid #393939;

    text-align: center;
}

.status-quote p {
    margin: 7px 0 0;

    color: #e2e2e2;
    font-size: 15px;
    line-height: 1.5;
    font-style: italic;
}


/* ==================================================
   Ausbildungsstatus - Responsive
================================================== */




  .academy-menu-button {
    display: none;
}

@media (max-width: 980px) {

    .training-status {
        position: static;
        margin-top: 28px;
    }

}

@media (max-width: 590px) {

    .navigation {
        display: none;
    }

    .navigation.is-open {
    display: flex;
    position: absolute;

    top: 100%;
    left: 0;
    right: 0;

    flex-direction: column;
    align-items: stretch;

    padding: 18px 20px;

    background: #0d0d0d;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);

    gap: 14px;
}

.preview-content {
    grid-template-columns: 1fr;
    gap: 28px;
}

.preview-price {
    width: 100%;
}

.price-box {
    width: 100%;
    max-width: none;
}

.hero h2 {
    font-size: 2.6rem;
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.preview-text h2 {
    font-size: 2.2rem;
    line-height: 1.1;
    overflow-wrap: anywhere;
}



.academy-menu-button {
    display: flex;
    align-items: center;
    justify-content: center;

    position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);

    width: 58px;
    height: 58px;

    padding: 0;

    border: 1px solid var(--border);
    border-radius: 14px;

    background: #0d0d0d;
    cursor: pointer;
}

.academy-menu-icon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;

    width: 28px;
    height: 24px;
}

.academy-menu-icon span {
    display: block;

    width: 100%;
    height: 3px;

    background: #ffffff;
    border-radius: 2px;
}
}