/*======================================================================================
BROWSER RESET
========================================================================================*/

*{
    margin: 0;
    padding: 0;
}

body, html {
    width: 100%;
    background-color: rgb(32, 34, 42);
    overflow-x: hidden;
    color: var(--ghostwhite);
    font-family: var(--lexenddeca);
    min-height: 100vh;
}

body {
    display: flex;
    flex-direction: column; /* Header, main, footer untereinander */
}

html {

    scroll-behavior: smooth;
}

main {
    width: 85%;
    margin: 0 auto;
    flex: 1;
}

.fullwidth {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    overflow: hidden;
}

/*======================================================================================
VARIABLEN
========================================================================================*/

:root{

    /*FARBEN*/
    --blue: rgb(111 128 232);
    --lightblue: rgb(166 181 251);
    --ghostwhite: rgb(249 249 249);
    --blackblue: rgb(32 34 42);

    /*TYPOGRAFIE*/
    --poppins: 'Poppins', sans-serif;
    --lexenddeca: 'Lexend Deca', sans-serif;

    --light: 300;
    --regular: 400;
    --medium: 500;
    --semibold: 600;
    --bold: 700;


    --font-size-h1: clamp(2rem, 5vw, 3.5rem);
    --font-size-h2: 2rem;
    --font-size-h3: 1.5rem;
    --font-size-h3: 1.2rem;
    --font-size-p: 1rem;
    --font-size-hint: 0.75rem;

    /*ABSTÄNDE*/
    --space-xs:  0.25rem;   /*  4px */
    --space-s:   0.5rem;    /*  8px */
    --space-m:   1rem;      /* 16px */
    --space-l:   1.5rem;    /* 24px */
    --space-xl:  2.5rem;    /* 40px */
    --space-2xl: 4rem;      /* 64px */
    --space-3xl: 6rem;      /* 96px */
    
}

/*======================================================================================
TYPOGRAFIE
========================================================================================*/

h1 {
    font-family: var(--poppins);
    font-size: var(--font-size-h1);
    font-weight: var(--semibold);
    margin-bottom: var(--space-s);
}

h2 {
    font-family: var(--poppins);
    font-size: var(--font-size-h2);
    font-weight: var(--semibold);
    margin-bottom: var(--space-s);
}

h3 {
    font-family: var(--poppins);
    font-size: var(--font-size-h3);
    font-weight: var(--semibold);
    margin-bottom: var(--space-s);
}

h4{
    font-family: var(--poppins);
    font-size: var(--font-size-h4);
    font-weight: var(--semibold);
    margin-bottom: var(--space-s);
}

p {
    font-family: var(--lexenddeca);
    font-weight: var(--light);
    font-size: var(--font-size-p);
    line-height: 1.6;
    margin-bottom: var(--space-s);
}

ul {
    list-style: none;
}

.liste {
    display: flex;
    flex-direction: column;
    gap: var(--space-s);
    margin: var(--space-s) 0 var(--space-l);
}

.liste li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-family: var(--lexenddeca);
    font-weight: var(--light);
    font-size: var(--font-size-p);
    line-height: 1.6;
}

.liste li::before {
    content: '—';
    color: var(--blue);
    flex-shrink: 0;
    font-weight: var(--regular);
}

.highlight, .link{
    color: var(--blue);
}

/*======================================================================================
OPTIMIERUNG RECHTLICHE SEITEN (Datenschutz / Impressum)
========================================================================================*/

.rechtliche-seite {
    padding: var(--space-3xl) 0 var(--space-3xl); 
    max-width: 800px; 
    margin: 0 auto;
}

/* Große Abstände vor den Hauptkapiteln (H2) */
.rechtliche-seite h2 {
    margin-top: var(--space-3xl);
    margin-bottom: var(--space-l);
    border-bottom: 1px solid rgba(249, 249, 249, 0.1);
    padding-bottom: var(--space-s);
}

/* Mittlere Abstände vor Unterkapiteln (H3) */
.rechtliche-seite h3 {
    margin-top: var(--space-2xl);
    margin-bottom: var(--space-m);
}

.rechtliche-seite h2, 
.rechtliche-seite h3 {
    hyphens: auto;           /* Erlaubt automatische Silbentrennung (deutsch) */
    word-wrap: break-word;   /* Bricht lange Wörter am Zeilenende um */
    overflow-wrap: break-word; 
    max-width: 100%;         /* Stellt sicher, dass die Box nie breiter als Main ist */
}

/* Textabsätze */
.rechtliche-seite p {
    margin-bottom: var(--space-l);
    opacity: 0.9;
    line-height: 1.7; /* Etwas mehr Zeilenabstand für Bleiwüsten */
}

/* Listen-Optimierung */
.rechtliche-liste {
    margin-bottom: var(--space-l);
    padding-left: var(--space-m);
}

.rechtliche-liste li {
    margin-bottom: var(--space-s);
    display: flex;
    gap: var(--space-s);
}

.rechtliche-liste li::before {
    content: "•";
    color: var(--blue);
}

/* Links in Rechtstexten */
.rechtliche-seite .link {
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s ease;
}

.rechtliche-seite .link:hover {
    border-bottom-color: var(--blue);
}

/* Erstes Element korrigieren */
.rechtliche-seite h1:first-child {
    margin-bottom: var(--space-2xl);
}
/*======================================================================================
UI-ELEMENTE
========================================================================================*/

.primary-btn {
    text-decoration: none;
    font-family: var(--lexenddeca);
    font-size: var(--font-size-p);
    font-weight: var(--light);
    color: white;
    background-color: var(--blue);
    padding: 0.875rem 2rem;
    border: none;
    border-radius: 0.625rem;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.2s ease;
    width: fit-content;
    display: inline-block;
}

.primary-btn:hover {
    background-color: var(--ghostwhite);
    color: var(--blackblue);
}

.download-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-s);
    text-decoration: none;
    font-family: var(--lexenddeca);
    font-size: var(--font-size-p);
    font-weight: var(--light);
    color: white;
    background-color: var(--blue);
    padding: 0.875rem 2rem;
    border: none;
    border-radius: 0.625rem;
    cursor: pointer;
    width: fit-content;
    margin-top: var(--space-s);
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.download-btn svg {
    width: 1.1rem;
    height: 1.1rem;
    flex-shrink: 0;
}

.download-btn:hover {
    background-color: var(--ghostwhite);
    color: var(--blackblue);
}


/*======================================================================================
NAVIGATION
========================================================================================*/

header nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 5rem;
    padding: 0 2rem;
    background-color: rgba(32, 34, 42, 0.1);
    backdrop-filter: blur(0.3rem);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    box-sizing: border-box;
}

header nav a img {
    height: auto;
    width: 7rem;
    display: block;
}

header nav div a { 
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    font-size: 1.3333rem;
    line-height: 1.2;
}

.menueleiste {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
}

.menueleiste a {
    text-decoration: none;
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    font-size: 0.8rem;
    color: #fff;
    transition: color 0.5s ease;
}

.menueleiste a:hover {
    color: rgb(111, 128, 232);
}

.hamburger-menu {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 101;
}

.hamburger-menu .bar {
    display: block;
    width: 1.5625rem;
    height: 0.1875rem;
    background-color: white;
    margin: 0.3125rem 0;
    transition: 0.4s;
}

.toggle-input {
    display: none;
}


/*======================================================================================
HERO SECTION
========================================================================================*/

header {
    height: 100vh;
    display: flex;
    flex-direction: column;
    position: relative;
    background-size: cover;
    background-position: right;
    background-repeat: no-repeat;
    width: 100%;
}

header {
    /* Deine Hintergrundfarbe */
    background-color: #20222a;
    
    background-image: 
        /* Horizontale Linien: 2px dick */
        linear-gradient(rgba(249, 249, 249, 0.1) 8px, transparent 2px), 
        /* Vertikale Linien: 2px dick */
        linear-gradient(90deg, rgba(249, 249, 249, 0.1) 8px, transparent 2px);
    
    /* Größe der Quadrate: Auf 60px oder 80px erhöhen für deutlich größere Kästchen */
    background-size: 100px 100px; 
    
    background-position: center;
    background-repeat: repeat;
}

.clean-header{
    background-image: none;
    height: 5rem;
}

.hero-content {
    position: relative;
    z-index: 10;
    flex: 1;
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2rem;
}

.scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    animation: bounce 2s ease-in-out infinite;
}

.scroll-indicator:hover {
    opacity: 1;
}

.scroll-indicator svg {
    width: 2.5rem;
    height: 2.5rem;
    display: block;
}

@keyframes bounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%       { transform: translateX(-50%) translateY(0.5rem); }
}

.cta-btn{
    margin-top: 5rem;
}

/*======================================================================================
LOGO BANNER
========================================================================================*/
 
#service-banner {
    width: 100%;
    overflow: hidden;   
    padding: 1rem 0;
    position: relative;
    background-color: var(--blue);
}

.marquee-track {
    display: flex;
    align-items: center;
    gap: 0;                  
    width: max-content;    
    animation: marquee 28s linear infinite;
}
 
 
@keyframes marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
 
.logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3rem;           
    flex-shrink: 0;
}

.logo-placeholder span {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.04em;
    color: var(--ghostwhite);
}

/* =========================================================================
 NEWS
========================================================================= */

#news img{
    width: 110%;
}
/* =========================================================================
 IMAGE VIDEO
========================================================================= */

#image-video-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 7rem;
    margin-top: 0; 
    padding: 0; 

}

#image-video-container h2{
    width: 100%;
    text-align: center;
}

.image-video {
    width: 100%;  
    height: auto;
    display: block;
}

/* =========================================================================
 ABOUT ME (VORSCHAU)
========================================================================= */

#aboutme img{
    max-width: 100%;
    border-radius: 10px;
    align-self: flex-start;
    object-fit: cover; 
}

.aboutme-text{
    display: flex;
    flex-direction: column;
    gap: 1rem ;
    align-content: center;
}

.aboutme-text a{
    width: fit-content;
}

#aboutme{
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 5rem;
}
 
/* =========================================================================
 PROJEKTE (VORSCHAU)
========================================================================= */

#projekte {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 4rem 0;
}

#projekte > a {
    align-self: center;
}

.projekte-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.projekt-card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;           /* Bild wird an border-radius abgeschnitten */
    text-decoration: none;
    display: block;
    aspect-ratio: 4 / 3;        /* Einheitliche Proportionen */
}

.projekt-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.projekt-card:hover img {
    transform: scale(1.04);     /* Zoom beim Hover */
}

/* Dunkler Verlauf unten für Lesbarkeit des Labels */
.projekt-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.65) 0%,
        transparent 50%
    );
    border-radius: 12px;
}

.projekt-label {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    z-index: 1;
    color: white;
    font-family: 'Poppins', sans-serif;
    font-weight: var(--semibold);
    font-size: var(--font-size-h3);
}

/* =========================================================================
   LEISTUNGEN & SERVICES
   ========================================================================= */

#services {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    padding: 4rem 0; 
    width: 100%;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    width: 100%;
}

.service-card {
    background-color: var(--ghostwhite);
    color: var(--blackblue);
    border-radius: 10px;
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.service-card .primary-btn {
    margin-top: auto; 
    align-self: flex-start;
    background-color: var(--blue);
    color: white;
    transition: background-color 0.3s ease;
    text-decoration: none;
    padding: 0.8rem 1.5rem;
    border-radius: 10px;
}

.service-card .primary-btn:hover {
    background-color: var(--blackblue);
    color: white;
}

.service-card img {
    height: 5rem;
    width: auto;
    object-fit: contain;  
    margin: 0 0 2rem 0;   
    align-self: flex-start; 
    display: block; 
}

/* INFO BOX */
.info-box {
    display: flex;
    align-items: flex-start;
    gap: 1.2rem;
    padding: 1.5rem;
    background: rgba(111, 128, 232, 0.08);
    border: 1px solid rgba(111, 128, 232, 0.2);
    border-radius: 10px;
}

.service-hint {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}
@media (max-width: 1040px) {
    .services-grid {
        grid-template-columns: 1fr !important; 
    }
}

@media (max-width: 380px) {
    .service-card {
        padding: 1.5rem;
    }
    .info-box {
        flex-direction: column;
        gap: 0.8rem;
    }
    .service-card .primary-btn {
        width: fit-content;
    }
}

/* =========================================================================
 KONTAKTFORMULAR
========================================================================= */

#kontakt {
    padding: 0 0 6rem;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.kontakt-intro {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

#kontakt form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.formular-felder {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.formular-zeile {
    gap: 1rem;
}

.formular-zeile .formular-gruppe {
    flex: 1;
}

.formular-gruppe {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.formular-gruppe label {
    font-family: var(--poppins);
    font-weight: var(--medium);
    font-size: var(--font-size-hint);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ghostwhite);
}

.optional {
    font-weight: var(--light);
    text-transform: none;
    letter-spacing: 0;
    color: rgba(249, 249, 249, 0.45);
}

form input,
form textarea,
form select {
    width: 100%;
    border: 2px solid transparent;
    border-radius: 10px;
    padding: 0.875rem 1rem;
    color: var(--blackblue);
    background-color: var(--ghostwhite);
    transition: border-color 0.3s ease;
    box-sizing: border-box;
    font-family: var(--lexenddeca);
    font-size: var(--font-size-p);
    font-weight: var(--light);
}

form select {
    appearance: none;
    cursor: pointer;
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1rem;
    padding-right: 2.5rem;
}

form select option {
    background-color: var(--ghostwhite);
    color: var(--blackblue);
}

form input::placeholder,
form textarea::placeholder {
    color: rgba(32, 34, 42, 0.35);
    font-size: var(--font-size-hint);
}

form input:hover,
form textarea:hover,
form select:hover {
    border-color: var(--blue);
}

form input:focus,
form textarea:focus,
form select:focus {
    outline: none;
    border-color: var(--blue);
    background-color: var(--ghostwhite);
}

.formular-nachricht {
    height: 10rem;
    resize: vertical;
}

.datenschutz-label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
}

.datenschutz-label input[type="checkbox"] {
    width: 1.1rem;
    height: 1.1rem;
    flex-shrink: 0;
    margin-top: 0.15rem;
    accent-color: var(--blue);
    cursor: pointer;
    padding: 0;
    border: none;
    background: none;
}

.datenschutz-label span {
    font-size: var(--font-size-hint);
    color: rgba(249, 249, 249, 0.6);
    line-height: 1.5;
}

.datenschutz-link {
    color: var(--blue);
    text-decoration: none;
}

.datenschutz-link:hover {
    text-decoration: underline;
}

.senden-btn {
    font-family: var(--lexenddeca);
    font-size: var(--font-size-p);
    font-weight: var(--light);
    color: white;
    background-color: var(--blue);
    padding: 0.875rem 2rem;
    border: none;
    border-radius: 0.625rem;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.2s ease;
    width: fit-content;
}

.senden-btn:hover {
    background-color: var(--ghostwhite);
    color: var(--blackblue);
}

/* =========================================================================
 FAQ / Q&A
========================================================================= */

#faq {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    padding: 4rem 0 6rem;
}

.faq-intro {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.faq-liste {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Einzelne FAQ-Zeile */
.faq-item {
    border-top: 1px solid rgba(249, 249, 249, 0.12);
}

.faq-item:last-child {
    border-bottom: 1px solid rgba(249, 249, 249, 0.12);
}

/* Summary / Frage-Zeile */
.faq-frage {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 0;
    cursor: pointer;
    list-style: none;
    font-family: var(--poppins);
    font-weight: var(--semibold);
    font-size: var(--font-size-h3);
    color: var(--ghostwhite);
    transition: color 0.2s ease;
}

.faq-frage::-webkit-details-marker {
    display: none;
}

.faq-frage:hover {
    color: var(--blue);
}

/* Plus/Minus Icon */
.faq-icon {
    width: 1.5rem;
    height: 1.5rem;
    flex-shrink: 0;
    position: relative;
    color: var(--blue);
}

/* horizontale Linie */
.faq-icon::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background: currentColor;
    transform: translateY(-50%);
    transition: opacity 0.3s ease;
}

/* vertikale Linie */
.faq-icon::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 100%;
    background: currentColor;
    transform: translateX(-50%);
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Wenn offen: vertikale Linie ausblenden → wird zum Minus */
details[open] .faq-icon::after {
    opacity: 0;
    transform: translateX(-50%) rotate(90deg);
}

/* Antwort-Bereich mit Animation */
.faq-antwort {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.5s cubic-bezier(0.16, 1, 0.3, 1),
                padding-bottom 0.4s ease,
                opacity 0.35s ease;
    opacity: 0;
    padding-bottom: 0;
}

.faq-antwort > p {
    color: var(--ghostwhite);
    line-height: 1.7;
    font-size: var(--font-size-p);
}

@media (min-width: 1440px){
    .faq-antwort p{
        max-width: 70%;
    }
    
}

details[open] .faq-antwort {
    max-height: 600px;
    opacity: 1;
    padding-bottom: 1.25rem;
}

/* =========================================================================
 FOOTER
========================================================================= */

footer {
    background-color: var(--ghostwhite);
    padding: 2.5rem 1.5rem;
    margin-top: 5rem;
}


.footer-inhalt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    text-align: center;
}

/* Social Icons */
.footer-social {
    display: flex;
    gap: 1rem;
}

.social-icon-bg {
    width: 2.5rem;
    height: 2.5rem;
    background-color: var(--blackblue);
    border-radius: 999px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.3s ease;
}

.social-icon-bg:hover {
    background-color: var(--blue);
}

/* Copyright */
.footer-copyright {
    font-family: var(--lexenddeca);
    font-size: var(--font-size-hint);
    font-weight: var(--light);
    color: var(--blackblue);
    opacity: 0.6;
}

/* Rechtliche Links */
.footer-rechtliches {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-rechtliches a {
    font-family: var(--lexenddeca);
    font-size: var(--font-size-hint);
    font-weight: var(--regular);
    color: var(--blackblue);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-rechtliches a:hover {
    color: var(--blue);
}

/* ── Ab Tablet: alles in einer Zeile ── */
@media (min-width: 768px) {
    .footer-inhalt {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        text-align: left;
        max-width: 1200px;
        margin: 0 auto;
    }

    .footer-rechtliches {
        flex-direction: row;
        gap: 1.5rem;
        align-items: center;
    }
}

/* =========================================================================
   COOKIE BANNER
   ========================================================================= */
   .cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    transform: translateY(100%);
    width: 100%;
    background: var(--ghostwhite);
    padding: var(--space-l) var(--space-xl);
    z-index: 10000;
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
                opacity 0.5s ease;
    box-shadow: 0 -8px 32px rgba(0,0,0,0.15);
    opacity: 0;
    pointer-events: none;
    box-sizing: border-box;
}

.cookie-banner.aktiv {
    transform: translateY(0);
    opacity: 1;
    pointer-events: all;
}

.cookie-banner.schliessen {
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
}

.cookie-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-l);
    max-width: 1200px;
    margin: 0 auto;
}

.cookie-text {
    flex: 1;
}

.cookie-text h3 {
    color: var(--blackblue);
    font-size: 1rem;
    margin-bottom: var(--space-xs);
}

.cookie-text p {
    font-family: var(--lexenddeca);
    font-size: 0.8rem;
    margin: 0;
    line-height: 1.5;
    color: rgba(32, 34, 42, 0.7);
}

.cookie-icon{
    width: 4rem;
    height: 4rem;
}

.cookie-actions {
    display: flex;
    align-items: center;
    gap: var(--space-m);
    flex-shrink: 0;
}

.cookie-link {
    font-family: var(--lexenddeca);
    font-size: 0.75rem;
    color: rgba(32, 34, 42, 0.55);
    text-decoration: none;
    transition: color 0.3s ease;
    white-space: nowrap;
}

.cookie-link:hover {
    color: var(--blue);
}

.cookie-btn {
    background: var(--blue);
    color: white;
    border: none;
    padding: 0.65rem 1.5rem;
    border-radius: 8px;
    font-family: var(--lexenddeca);
    font-size: 0.85rem;
    font-weight: var(--light);
    cursor: pointer;
    transition: background-color 0.3s ease;
    white-space: nowrap;
}

.cookie-btn:hover {
    background-color: var(--blackblue);
    color: var(--ghostwhite);
}

.cookie-btn:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 3px;
}

/* Mobile */
@media (max-width: 600px) {
    .cookie-banner {
        padding: var(--space-m);
    }

    .cookie-content {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-m);
    }

    .cookie-actions {
        width: 100%;
        justify-content: space-between;
    }
}

/*======================================================================================
RESPONSIVES VERHALTEN (BREAKPOINTS)
========================================================================================*/

/*SMALL MOBILE*/
@media (min-width: 320px){

    .hamburger-menu {
        display: block;
        z-index: 101;
    }

    /* 2. Menüleiste vorbereiten (Animation-Basis) */
    .menueleiste {
        display: flex; /* Muss flex sein, damit die Items berechnet werden */
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: rgba(32, 34, 42, 0.98); 
        backdrop-filter: blur(15px);
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 3rem;
        z-index: 100;

        /* Startzustand: Rechts außerhalb des Bildschirms */
        transform: translateX(100%);
        visibility: hidden; /* Verhindert Klicks im geschlossenen Zustand */
        
        /* Die "Apple" Kurve (cubic-bezier) für geschmeidiges Bremsen */
        transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.6s;
    }

    /* 3. Zustand wenn Menü offen ist */
    .toggle-input:checked ~ .menueleiste {
        transform: translateX(0);
        visibility: visible;
    }

    /* 4. Animation der einzelnen Links (Stagger Effect) */
    .menueleiste a {
        font-size: 1.5rem;
        opacity: 0; /* Unsichtbar beim Start */
        transform: translateX(50px); /* Kommen leicht von rechts */
        transition: color 0.5s ease;
    }

    /* Wenn offen: Links einblenden und auf Position schieben */
    .toggle-input:checked ~ .menueleiste a {
        opacity: 1;
        transform: translateX(0);
    }

    /* Zeitversetztes Erscheinen (Der "Stagger") */
    .toggle-input:checked ~ .menueleiste a:nth-child(1) { transition-delay: 0.2s; }
    .toggle-input:checked ~ .menueleiste a:nth-child(2) { transition-delay: 0.3s; }
    .toggle-input:checked ~ .menueleiste a:nth-child(3) { transition-delay: 0.4s; }

    /* Hamburger Animation zum "X" */
    .toggle-input:checked + .hamburger-menu .bar:nth-child(1) {
        transform: translateY(0.5rem) rotate(45deg);
    }
    .toggle-input:checked + .hamburger-menu .bar:nth-child(2) {
        opacity: 0;
    }
    .toggle-input:checked + .hamburger-menu .bar:nth-child(3) {
        transform: translateY(-0.5rem) rotate(-45deg);
    }

    .aboutme-text h1{
        font-size: var(--font-size-h2);
    }

    .projekte-grid {
        grid-template-columns: 1fr; 
    }

    .services-grid {
        grid-template-columns: 1fr;
    }

    .formular-zeile {
        display: flex;
        flex-direction: column;  
        gap: 1.25rem;       
    }


}

/*LARGE MOBILE*/
@media (min-width: 480px){

    .aboutme-text h1{
        font-size: var(--font-size-h1);
    }
    
}

/*TABLET PORTRAIT*/
@media (min-width: 768px){

    main{
        width: 70%;
    }

    .hamburger-menu {
        display: none;
    }

    .menueleiste {
        position: static;
        display: flex;
        flex-direction: row;
        width: auto;
        height: auto;
        background-color: transparent;
        backdrop-filter: none;
        gap: 2rem;
        
       
        transform: translateX(0); 
        visibility: visible; 
        transition: none; 
    }

    .menueleiste a {
        font-size: 1rem;
        color: #fff;
        
     
        opacity: 1; 
        transform: translateX(0); 
        transition: color 0.3s ease; 
    }

    .menueleiste a:nth-child(1),
    .menueleiste a:nth-child(2),
    .menueleiste a:nth-child(3) {
        transition-delay: 0s;
    }

    header nav {
        justify-content: space-between;
    }

    #aboutme img {
        width: 100%;          
        flex-shrink: 0;     
    }

    .aboutme-text a{
        width: fit-content;
    }

    .projekte-grid {
        grid-template-columns: 1fr 1fr;
    }

    .services-grid {
        grid-template-columns: 1fr 1fr;
    }

    .formular-zeile {
        display: flex;
        flex-direction: row; 
        gap: 1rem;
    }
}

/*TABLET LANDSCAPE/LAPTOP*/
@media (min-width: 1024px){

    #aboutme img {
        width: 100%;
        max-width: 400px;          
        flex-shrink: 0;     
    }

    #aboutme {
        flex-direction: row;             
    }
    
}

/*DESKTOP (STANDARD)*/
@media (min-width: 1440px){
    
}

/*LARGE DESKTOP*/
@media (min-width: 1920px){
    
}