/*
================================================================
Ihre Design-Variablen als CSS Custom Properties
================================================================
*/
:root {
    /* Farben */
    --color-primary-light: #4170d4;
    --color-primary: #1b4fac;
    --color-primary-dark: #193297;
    --color-secondary-light: #ffb900;
    --color-secondary-dark: #ff7730;
    --color-grey-light-1: #f7f7f7;
    --color-grey-dark: #777;
    --color-grey-dark-1: #333;
    --color-white: #fff;
    --color-black: #000;
    --color-button-cta: #4ba3e4;

    /* Typografie */
    --font-default: "Lato", sans-serif;
    --default-font-size: 1.6rem;

    /* Layout */
    --grid-width: 114rem;
    --gutter-vertical: 8rem;
    --gutter-horizontal: 6rem;
    --border-radius-standard: 3px;
    --box-shadow-standard: 0 1.5rem 4rem rgba(0, 0, 0, .2);
}

.site-header {
    background-color: var(--color-white);
    padding: 1.5rem 0; /* Etwas kompakter */
    border-bottom: 1px solid #eee;
}

.site-header__container {
    display: flex; /* Richtet Inhalt horizontal aus */
    justify-content: space-between; /* Zentriert die Logo-Box auf Handys */
    align-items: center;
}

.main-nav {
    margin-left: auto;
}

.main-nav__link {
    text-decoration: none;
    color: #ccc; /* Dunkelgraue Textfarbe */
    font-weight: 400;
    font-size: 1.6rem;
    transition: color 0.3s;
}

.main-nav__link:hover {
    color: #007bff; /* Ihre blaue Markenfarbe für den Hover-Effekt */
}

/* Anpassung der mobilen Ansicht, falls nötig */
@media (max-width: 768px) {
    .site-header__container {
        flex-direction: column;
        align-items: center;
    }

    .main-nav {
        margin-top: 1rem;
    }
}


@media (min-width: 56.25em) {
    .site-header__container {
        justify-content: flex-start; /* Richtet die Logo-Box auf Desktops links aus */
    }
}

.logo-box {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
}

.logo-box__logo {
    height: 6rem;
    width: auto;
    margin-right: 1.5rem; /* Abstand zwischen Logo und Text */
}

.logo-box__text {
    display: flex;
    flex-direction: column; /* Stapelt Name und Slogan übereinander */
}

.logo-box__name {
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--color-primary); /* Ihre Hauptfarbe */
    line-height: 1.2;
}

.logo-box__slogan {
    font-size: 1.4rem;
    font-weight: 400;
    color: var(--color-grey-dark); /* Ihre Textfarbe */
    letter-spacing: .5px;
}

/*
================================================================
Globale Resets und Basis-Styles
================================================================
*/
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: inherit;
}

html {
    font-size: 62.5%; /* 1rem = 10px */
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-default);
    font-weight: 400;
    line-height: 1.7;
    color: var(--color-grey-dark);
    box-sizing: border-box;
    padding-top: 8rem; /* Platz für den fixierten Header */
}


/*
================================================================
Wiederverwendbare Komponenten & Helferklassen
================================================================
*/
.container {
    max-width: var(--grid-width);
    margin: 0 auto;
    padding: 0 3rem;
}

.u-center-text { text-align: center !important; }
.u-margin-top-medium { margin-top: 4rem !important; }

.heading-secondary {
    font-size: 3.5rem;
    text-transform: uppercase;
    font-weight: 700;
    display: inline-block;
    background-image: linear-gradient(to right, var(--color-primary-light), var(--color-primary-dark));
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    letter-spacing: 2px;
    transition: all .2s;
    text-align: center;
    width: 100%;
    margin-bottom: var(--gutter-vertical);
}

.heading-secondary:hover {
    transform: skewY(2deg) skewX(5deg) scale(1.1);
    text-shadow: .5rem 1rem 2rem rgba(var(--color-black), .2);
}

.heading-tertiary {
    font-size: 2rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-grey-dark-1);
    margin-bottom: 1.5rem;
}

.paragraph {
    font-size: var(--default-font-size);
}

.section-problem .paragraph {
    font-size: 1.8rem; /* Matches the size of the checklist items */
    color: var(--color-primary-light);
}

.paragraph:not(:last-child) {
    margin-bottom: 3rem;
}

.grid-2-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gutter-horizontal);
    align-items: center;
}

/*
================================================================
Sektionen-Styling
================================================================
*/

/* ----- Hero Section ----- */
.hero {
    position: relative;
    height: 50vh; /* Nimmt 45% der sichtbaren Bildschirmhöhe ein */
    display: flex;
    align-items: center;
}

.hero__background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* HIER IHR HINTERGRUNDBILD ERSETZEN */
    background-image: url('../img/hero.webp'); 
    background-size: cover;
    background-position: center;
    z-index: -2;
}

.hero__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(40, 40, 40, 0.65); /* Dunkelblauer Overlay */
    z-index: -1;
}

.hero .container {
    max-width: none;
    width: 100%; /* Ensures the container inside the hero can be manipulated */
    margin: 0;
    padding: 0 10rem;

}

.hero__content {
    text-align: left; /* Aligns all text to the left */
    color: var(--color-white);
    padding: 0;
}

.hero__heading {
    font-weight: 300;
    font-size: 3.5rem;
    letter-spacing: 2px;
}

.hero__heading--sub {
    display: block;
    font-weight: 700;
    font-size: 1.8rem;
    letter-spacing: 1px;
    margin-top: 1rem;
    color: var(--color-secondary-light);
}

.hero__description {
    font-size: 1.8rem;
    max-width: 60rem;
    margin-top: 2rem;
    margin-bottom: 3rem;
    display: none; /* Im Header nicht sichtbar, nur als Referenz für Body-Version */
}

/* Verschieben des Hero Inhalts in den Body für die eigentliche Landing Page Ansicht */
body { padding-top: 0; }
.hero { position: relative; height: 50vh; align-items: center; display: flex; }
.hero__description { display: block; }
.hero__heading { animation: moveInLeft 1s ease-out; }
.hero__description { animation: moveInRight 1s ease-out; }


/* ----- Allgemeines Sektionen-Padding ----- */
section {
    padding: var(--gutter-vertical) 0;
}

/* ----- Problem Section ----- */
.section-problem {
    background-color: var(--color-white);
}

.checklist {
    list-style: none;
    max-width: 70rem;
    margin: 0 auto;
}

.checklist li {
    font-size: 1.8rem;
    display: flex;
    align-items: center;
    padding: 1rem 0;
}

.checklist__icon {
    height: 2.4rem;
    width: 2.4rem;
    fill: var(--color-primary);
    margin-right: 1.5rem;
}


/* ----- Process Section ----- */
.section-process {
    background-color: var(--color-grey-light-1);
}

.process-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
    gap: var(--gutter-horizontal);
    text-align: center;
}

.step__icon {
    height: 6rem;
    width: 6rem;
    fill: var(--color-primary);
    margin-bottom: 2rem;
}


/* ----- Qualifications Section ----- */
.qualifications-list {
    list-style: none;
    margin-top: 2rem;
}

.qualifications-list li {
    font-size: var(--default-font-size);
    padding: .5rem 0 .5rem 3rem;
    position: relative;
}

.qualifications-text {
    text-align: center;
}

/* Ändern Sie die Listenelemente so, dass sie linksbündig bleiben, aber im zentrierten Block */
.qualifications-list {
    display: inline-block; /* Erlaubt es der Liste, sich zu zentrieren */
    text-align: left;      /* Der Text in der Liste bleibt aber linksbündig */
    margin-top: 3rem;
}

.qualifications-list li::before {
    content: '✔';
    position: absolute;
    left: 0;
    color: var(--color-primary);
    font-weight: 700;
}

.section-qualifications .heading-secondary {
    margin-bottom: 3rem; /* Reduziert von 8rem auf einen vernünftigen Wert */
}

.qualifications-image {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 5rem; /* <-- Dieser Abstand ist NEU und wichtig */
}

.photo {
    width: 100%; /* Das Bild füllt seinen Container in der Breite */
    height: auto; /* Die Höhe passt sich automatisch an, um das Seitenverhältnis zu wahren */
    /* max-width: 55rem; /* Verhindert, dass das Bild auf grossen Bildschirmen zu riesig wird */
    display: block; /* Best Practice für Bilder innerhalb von Layouts */
    /* margin: 0 auto; /* Zentriert das Bild im Container */
    border-radius: var(--border-radius-standard); /* Verwendet den Standard-Radius (3px) für ein modernes Aussehen */
    box-shadow: var(--box-shadow-standard); /* Behält den schönen Schatten bei */
}


/* ----- Contact Section ----- */
.section-contact {
    background-image: linear-gradient(to right bottom, var(--color-primary-light), var(--color-primary-dark));
    padding: 10rem 0;
}

.contact-box {
    background-color: rgba(255, 255, 255, 0.9);
    padding: 5rem;
    border-radius: var(--border-radius-standard);
    box-shadow: var(--box-shadow-standard);
    max-width: 80rem;
    margin: 0 auto;
}

.contact-box .heading-secondary {
    margin-bottom: 4rem;
}

.form__group:not(:last-child) {
    margin-bottom: 2rem;
}

.form__input {
    font-size: 1.5rem;
    font-family: inherit;
    color: inherit;
    padding: 1.5rem 2rem;
    border-radius: var(--border-radius-standard);
    background-color: var(--color-white);
    border: 1px solid var(--color-grey-light-2);
    width: 100%;
    display: block;
    transition: all .3s;
}

.form__input:focus {
    outline: none;
    box-shadow: 0 0 0 0.3rem var(--color-primary-light);
    border-color: var(--color-primary-light);
}

.form__input:placeholder-shown + .form__label {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4rem);
}

.form__label {
    font-size: 1.2rem;
    font-weight: 700;
    margin-left: 2rem;
    margin-top: .7rem;
    display: block;
    transition: all .3s;
}

textarea.form__input {
    resize: vertical;
    min-height: 12rem;
}

/* ----- Footer ----- */
.footer {
    background-color: var(--color-grey-dark-1);
    padding: 2.5rem 0;
    color: var(--color-grey-light-3);
    font-size: 1.4rem;
}

.footer__container {
    display: flex;
    flex-direction: column; /* CHANGE: Forced stack for centering */
    align-items: center;    /* CHANGE: Centers everything horizontally */
}

.footer__left {
    display: flex;
    flex-direction: column; /* CHANGE: Stacks logo above copyright */
    align-items: center;
    margin-bottom: 2.5rem;
}

.footer__logo {
    height: 6rem;
    width: auto;
    margin-right: 0;       /* CHANGE: Removed side margin */
    margin-bottom: 1.5rem; /* CHANGE: Space between logo and text */
}

.footer__copyright {
    margin: 0;
}

.footer__right {
    display: flex;
    justify-content: center;
}

.footer__link {
    color: inherit;
    text-decoration: none;
    transition: all .2s;
}

.footer__link:not(:last-child) {
    margin-right: 2.5rem;
}

.footer__link:hover {
    color: var(--color-white);
}

/* Responsive */
@media (max-width: 56.25em) {
    .footer {
        padding-bottom: 3rem; /* Matches your previous fix */
    }
    /* ----- Footer ----- */
.footer {
    background-color: var(--color-grey-dark-1);
    padding: 2.5rem 0;
    color: var(--color-grey-light-3);
    font-size: 1.4rem;
}

.footer__container {
    display: flex;
    flex-direction: column; /* CHANGE: Forced stack for centering */
    align-items: center;    /* CHANGE: Centers everything horizontally */
}

.footer__left {
    display: flex;
    flex-direction: column; /* CHANGE: Stacks logo above copyright */
    align-items: center;
    margin-bottom: 2rem;
}

.footer__logo {
    height: 6rem;
    width: auto;
    margin-right: 0;       /* CHANGE: Removed side margin */
    margin-bottom: 1.5rem; /* CHANGE: Space between logo and text */
}

.footer__copyright {
    margin: 0;
}

.footer__right {
    display: flex;
    justify-content: center;
}

.footer__link {
    color: inherit;
    text-decoration: none;
    transition: all .2s;
}

.footer__link:not(:last-child) {
    margin-right: 2.5rem;
}

.footer__link:hover {
    color: var(--color-white);
}

/* Responsive */
@media (max-width: 56.25em) {
    .footer {
        padding-bottom: 4rem; /* Matches your previous fix */
    }
    .footer__left {
        margin-bottom: 1.5rem;
    }
    .footer__right {
        margin-top: 1.5rem;
    }
}

@media (max-width: 37.5em) {
    .footer {
        padding-bottom: 4rem; /* Matches your previous fix */
    }
    .footer__left {
        margin-bottom: 1rem;
    }
}

}


/*
================================================================
BUTTONS & ANIMATIONEN
================================================================
*/
.btn,
.btn:link,
.btn:visited {
    text-transform: uppercase;
    text-decoration: none;
    padding: 1.5rem 4rem;
    display: inline-block;
    border-radius: 5rem;
    transition: all .2s;
    position: relative;
    font-size: var(--default-font-size);
    border-radius: var(--border-radius-standard);
    cursor: pointer;
}

.btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 1rem 2rem rgba(var(--color-black), .2);
}

.btn:active {
    transform: translateY(-1px);
    box-shadow: 0 .5rem 1rem rgba(var(--color-button-cta), .2);
    background-color: var(--color-button-cta);
}

.btn--primary {
    background-color: var(--color-button-cta);
    color: var(--color-white);
}

.btn::after {
    content: "";
    display: inline-block;
    height: 100%;
    width: 100%;
    border-radius: var(--border-radius-standard);
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: all .4s;
}

.btn--primary::after {
    background-color: var(--color-button-cta);
}

.btn:hover::after {
    transform: scaleX(1.4) scaleY(1.6);
    opacity: 0;
}

.btn--animated {
    animation: moveInBottom .5s ease-out .75s;
    animation-fill-mode: backwards;
}

@keyframes moveInLeft {
    0% { opacity: 0; transform: translateX(-10rem); }
    80% { transform: translateX(1rem); }
    100% { opacity: 1; transform: translate(0); }
}

@keyframes moveInRight {
    0% { opacity: 0; transform: translateX(10rem); }
    80% { transform: translateX(-1rem); }
    100% { opacity: 1; transform: translate(0); }
}

@keyframes moveInBottom {
    0% { opacity: 0; transform: translateY(3rem); }
    100% { opacity: 1; transform: translate(0); }
}

/*
================================================================
RESPONSIVE DESIGN
================================================================
*/
@media (max-width: 75em) { /* 1200px */
    html { font-size: 56.25%; } /* 1rem = 9px */
}

@media (max-width: 56.25em) { /* 900px */
    html { font-size: 50%; } /* 1rem = 8px */
    .grid-2-cols { grid-template-columns: 1fr; text-align: center; }
   
    .qualifications-list li { padding-left: 0; text-align: left; max-width: 40rem; margin: 0 auto; }
    .qualifications-list li::before { position: static; margin-right: 1rem; }
    
    /* ================================================= */
    /* ===== DIESEN NEUEN BLOCK BITTE HINZUFÜGEN ======== */
    /* ================================================= */
    .process-steps {
        grid-template-columns: 1fr; /* Erzwingt eine einzige Spalte */
        gap: 4rem; /* Reduziert den Abstand zwischen den gestapelten Elementen */
    }
    /* ================================================= */
    /* ================================================= */
}

@media (max-width: 37.5em) { /* 600px */
    .heading-secondary { font-size: 2.5rem; }
    .heading-tertiary { font-size: 1.8rem; }
    .footer .container { flex-direction: column; }
    .footer__copyright { margin-bottom: 1rem; }
}

/* ======================================================= */
/* ====== STYLING FÜR DIE DANKE-SEITE ==================== */
/* ======================================================= */

.thank-you-section {
    background-color: var(--color-grey-light-1); /* Gleicher Hintergrund wie bei "Prozess"-Sektion */
    padding: 6rem; /* Sorgt für grosszügigen Abstand oben und unten */
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh; /*calc(100vh - 82px - 93px); /* Versucht, den restlichen Platz zu füllen (Viewport - Header - Footer) */
}

.thank-you-box {
    background-color: var(--color-white);
    padding: 5rem 4rem 8rem 4rem;
    border-radius: var(--border-radius-standard);
    box-shadow: var(--box-shadow-standard);
    max-width: 60rem; /* Box wird nicht zu breit auf grossen Bildschirmen */
    text-align: center;
    margin: 0; /* Sicherheitspadding auf Handys */
}

.thank-you-box .heading-secondary {
    margin-bottom: 5rem;
}

.thank-you-box .paragraph {
    font-size: 1.7rem;
    line-height: 1.8;
    margin-bottom: 4rem;
}

.thank-you-box .btn {
    width: 100%; /* Der Button ist so breit wie die Box */
    max-width: 30rem; /* Aber nicht unendlich breit */
}

.thank-you-box__actions {
    display: flex; /* Stellt die Buttons nebeneinander */
    justify-content: center; /* Zentriert die Gruppe von Buttons */
    gap: 2rem; /* Erstellt den Abstand zwischen den Buttons */
    /* margin-top: 0; /* Abstand zum Text darüber */
    flex-wrap: wrap; /* Lässt die Buttons auf sehr kleinen Handys umbrechen */
}

/* Neuer Stil für den sekundären "Outline"-Button */
.btn--secondary,
.btn--secondary:link,
.btn--secondary:visited {
    background-color: transparent;
    border: 2px solid var(--color-primary-light); /* Rand in der Button-Farbe */
    color: var(--color-primary-light); /* Text in der Button-Farbe */
}

/* Hover-Effekt: Füllt den Button beim Darüberfahren */
.btn--secondary:hover,
.btn--secondary:active {
    background-color: var(--color-primary-light);
    color: var(--color-white);
    border-color: var(--color-primary-light);
}

/* ======================================================= */
/* ====== STYLING FÜR DIE KUNDENSTIMMEN-SEKTION ========= */
/* ======================================================= */

.section-testimonial {
    background-color: var(--color-grey-light-1);
    padding: 10rem 0;
}

.testimonial-card {
    background-color: var(--color-white);
    padding: 4rem 5rem;
    max-width: 85rem;
    margin: 0 auto;
    box-shadow: var(--box-shadow-standard);
    border-radius: var(--border-radius-standard);
    border-left: 8px solid var(--color-primary-light); /* Ein farbiger Akzent links */
    position: relative;
}

.testimonial-card__text {
    font-size: 2rem;
    font-weight: 300;
    line-height: 1.8;
    color: var(--color-grey-dark-1);
    font-style: italic;
    margin: 0;
    margin-bottom: 2.5rem;
}

.testimonial-card__author {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-grey-dark);
    font-style: normal;
    display: block;
    text-align: right;
}

/* Optional: Fügt ein grosses Anführungszeichen als Design-Element hinzu */
.testimonial-card::before {
    content: '\201C';
    font-family: Georgia, serif;
    font-size: 12rem;
    color: var(--color-grey-light-2);
    position: absolute;
    top: -1rem;
    left: 2rem;
    line-height: 1;
    z-index: 0;
}

.testimonial-card__text,
.testimonial-card__author {
    position: relative; /* Stellt sicher, dass der Text über dem Anführungszeichen liegt */
    z-index: 1;
}

.list-separator {
    margin-top: 2.5rem; /* Dieser Wert erzeugt die Lücke. Passe ihn bei Bedarf an. */
}