/* ==========================================================
   Schekulan Böden - zentrales Stylesheet
   (wird von allen Seiten eingebunden)
   ========================================================== */

/* --- Reset & Basics --- */
        * { margin: 0; padding: 0; box-sizing: border-box; }

        :root {
            --primary: #2c2c2c;      /* Fast Schwarz für Text */
            --gold: #1f5fa9;         /* Akzentfarbe = Blau aus dem Logo.
                                       Vorher #c69c6d (warmes Gold); zum Zurückdrehen
                                       genügt es, diese eine Zeile zu ändern. */
            --gelb: #ffc800;         /* Gelb aus dem Logo, für kleine Akzente */
            --white: #ffffff;
            --gray: #f4f4f4;
            --overlay: rgba(0, 0, 0, 0.7);
        }

        body {
            font-family: 'Manrope', sans-serif;
            color: var(--primary);
            background-color: var(--white);
            line-height: 1.6;
            padding-top: 0; /* Geändert: Kein Padding mehr nötig durch Sticky-Nav */
            overflow-x: hidden;
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }

        body.modal-open { overflow: hidden; }

        a { text-decoration: none; color: inherit; cursor: pointer; }
        ul { list-style: none; }
        img { max-width: 100%; display: block; }
        button { font-family: 'Manrope', sans-serif; cursor: pointer; border: none; outline: none; }

        .container {
            width: 90%;
            max-width: 1200px;
            margin: 0 auto;
        }

        /* --- Header & Navigation (Neu nach Grafik-Vorlage) --- */
        .top-header {
            background-color: var(--white);
            padding: 35px 20px 25px 20px;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .logo-wrapper {
            cursor: pointer;
            width: 80%;
            max-width: 650px; /* Schön groß wie auf der Grafik */
            display: flex;
            justify-content: center;
            margin: 0 auto;
        }

        .logo-wrapper img {
            width: 100%;
            height: auto;
            object-fit: contain; /* Kein Verzerren mehr! */
            display: block;
        }

        .navbar {
            background-color: #8e9da8; /* Das Blau-Grau aus der Grafik */
            height: 60px;
            width: 100%;
            position: sticky;
            top: 0;
            z-index: 1000;
            display: flex;
            align-items: center;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        }

        .nav-container {
            display: flex;
            justify-content: center; /* Zentriert wie eine Menüleiste */
            align-items: center;
            width: 90%;
            max-width: 1200px;
            margin: 0 auto;
            height: 100%;
        }

        .nav-links { 
            display: flex; 
            list-style: none; 
            height: 100%; 
            margin: 0; 
            padding: 0; 
        }
        
        .nav-links a {
            font-weight: 500;
            font-size: 1.05rem;
            color: #111;
            display: flex;
            align-items: center;
            padding: 0 30px;
            height: 100%;
            transition: background 0.3s, color 0.3s;
            text-decoration: none;
        }
        
        .nav-links a:hover {
            background-color: #7a8b97; /* Leicht dunkleres Grau beim Hover */
            color: #111;
        }
        
        .nav-links a.active-link { 
            background-color: #3a3a3a; /* Dunkelgrau für den aktiven Link wie auf dem Bild */
            color: #fff;
        }

        /* --- SEITENINHALT --- */
        /* Früher wurden hier alle Unterseiten per display:none versteckt und von
           showPage() umgeschaltet. Jede Seite ist jetzt ein eigenes Dokument mit
           genau einem <main class="page-section"> - das muss immer sichtbar sein. */
        .page-section {
            display: block;
            width: 100%;
            animation: fadeIn 0.5s ease;
            flex: 1 0 auto; 
        }
        /* .active wird nicht mehr gebraucht - jede Seite hat ihre eigene URL */

        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* --- HOME PAGE STYLE --- */
        .hero {
            height: 60vh; 
            min-height: 500px; 
            width: 100%;
            position: relative;
            background: url('https://images.unsplash.com/photo-1516455590571-18256e5bb9ff?auto=format&fit=crop&w=1920&q=80') no-repeat;
            background-size: cover;      
            background-position: center; 
            background-attachment: scroll;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
        }

        .hero-overlay {
            position: absolute; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.2); 
        }

        .hero-content {
            position: relative; z-index: 2;
            max-width: 800px;
            background: rgba(0, 0, 0, 0.6); 
            padding: 30px; 
            border-radius: 15px;
            backdrop-filter: blur(5px);
            -webkit-backdrop-filter: blur(5px);
            box-shadow: 0 10px 30px rgba(0,0,0,0.3);
            margin: 0 20px;
        }

        .hero h1 { font-size: 2.2rem; font-weight: 200; color: #ffffff; margin-bottom: 15px; line-height: 1.1; }
        .hero p { font-size: 1.0rem; color: #e0e0e0; margin-bottom: 25px; }

        .btn-hero {
            display: inline-block;
            background: var(--white); color: var(--primary);
            padding: 15px 35px; font-weight: 700; border-radius: 5px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.2);
            transition: transform 0.3s, background 0.3s, color 0.3s;
        }
        .btn-hero:hover { transform: translateY(-3px); background: var(--gold); color: var(--white); }

        /* --- KARTEN (Die Felder auf Home) --- */
        .section-overlap {
            position: relative;
            margin-top: -80px; 
            z-index: 5;
            padding-bottom: 80px;
        }

        /* Für Screenreader & Suchmaschinen sichtbar, optisch ausgeblendet
           (die Karten überlappen den Hero, eine sichtbare Überschrift würde das Layout sprengen) */
        .visually-hidden {
            position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
            overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
        }

        .cards-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            gap: 30px;
        }

        .card {
            background: var(--white);
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            transition: transform 0.3s;
            cursor: pointer;
            display: flex;
            flex-direction: column;
        }

        .card:hover { transform: translateY(-10px); }

        .card-img {
            height: 220px;
            background-size: cover;
            background-position: center;
        }

        .card-text {
            padding: 30px;
            flex-grow: 1;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .card-text h3, .card-text h2 { margin-bottom: 15px; font-size: 1.3rem; }
        .card-text p { color: #666; font-size: 0.95rem; margin-bottom: 20px; }

        .link-arrow {
            font-weight: 700; color: var(--gold); font-size: 0.9rem;
            display: inline-flex; align-items: center;
        }
        .link-arrow span { margin-left: 5px; transition: margin-left 0.3s; }
        .card:hover .link-arrow span { margin-left: 10px; }

        /* --- GALERIE PAGE STYLE --- */
        .gallery-container { padding: 60px 0; background-color: #fafafa; }
        .page-header { text-align: center; margin-bottom: 50px; }
        .page-header h1, .page-header h2 { font-size: 2.5rem; color: var(--primary); margin-bottom: 15px; }
        .page-header p { color: #666; max-width: 700px; margin: 0 auto; font-size: 1.1rem; }

        .gallery-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
            gap: 40px;
        }

        .gallery-item {
            background: #fff; border-radius: 8px; overflow: hidden;
            box-shadow: 0 5px 20px rgba(0,0,0,0.05); transition: transform 0.3s;
        }
        .gallery-item:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.1); }
        .gallery-img { height: 250px; width: 100%; object-fit: cover; }
        .gallery-content { padding: 25px; }
        .gallery-content h3, .gallery-content h2 { font-size: 1.3rem; margin-bottom: 10px; color: var(--primary); }
        .gallery-content p { color: #666; font-size: 0.95rem; line-height: 1.6; margin-bottom: 15px; }
        .gallery-tags { display: flex; gap: 10px; flex-wrap: wrap; }

        .tag { 
            font-size: 0.75rem; 
            background: var(--gray); 
            color: #555; 
            padding: 4px 10px; 
            border-radius: 20px; 
            font-weight: 600; 
        }
        .tag-highlight {
            background-color: var(--gold);
            color: #fff;
            box-shadow: 0 2px 5px rgba(198, 156, 109, 0.4);
        }

        /* --- ÜBER UNS PAGE STYLE --- */
        .about-section {
            padding: 80px 0;
            background-color: #fff;
        }

        .about-content-wrapper {
            max-width: 1100px;
            margin: 0 auto;
        }

        .about-header {
            margin-bottom: 50px;
            text-align: center;
        }

        .about-header h1, .about-header h2 {
            font-size: 2.8rem;
            color: var(--primary);
            line-height: 1.2;
            margin-bottom: 20px;
        }

        .about-header .subline {
            display: block;
            width: 60px;
            height: 4px;
            background: var(--gelb);
            margin: 0 auto;
        }

        .about-grid {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 60px;
        }

        .about-text { flex: 1; }
        .about-text p {
            font-size: 1.1rem;
            color: #444;
            margin-bottom: 25px;
            text-align: justify;
        }

        .about-image-container { flex: 0 0 350px; }
        .about-img {
            width: 100%;
            border-radius: 10px;
            box-shadow: 0 10px 25px rgba(0,0,0,0.1);
            display: block;
        }

        .service-highlight-box {
            background-color: var(--gray);
            border-left: 5px solid var(--gold);
            padding: 30px;
            margin: 40px 0;
            border-radius: 0 8px 8px 0;
        }
        .service-highlight-box p {
            margin-bottom: 0;
            font-weight: 500;
            color: var(--primary);
            text-align: left;
        }

        .contact-prompt {
            text-align: left;
            margin-top: 40px;
            padding-top: 30px;
            border-top: 1px solid #eee;
        }
        .contact-prompt h3, .contact-prompt h2 {
            font-size: 1.5rem;
            margin-bottom: 15px;
        }

        /* --- KONTAKT PAGE STYLE --- */
        .contact-section { padding: 60px 0; background-color: #fcfcfc; }
        .contact-wrapper {
            display: flex;
            gap: 50px;
            background: #fff;
            padding: 40px;
            border-radius: 10px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.05);
        }

        .contact-info { flex: 1; border-right: 1px solid #eee; padding-right: 30px; }
        .contact-info h3, .contact-info h2 { margin-bottom: 15px; font-size: 1.5rem; }
        .contact-info p { margin-bottom: 30px; color: #666; }
        .info-item { margin-bottom: 20px; color: #444; }
        .info-item strong { display: block; color: var(--primary); margin-bottom: 5px; }

        .contact-form-container { flex: 1.5; padding-left: 20px; }

        /* --- Footer --- */
        footer { background: #1a1a1a; color: #888; padding: 40px 0; font-size: 0.9rem; margin-top: auto; }
        .footer-flex { display: flex; justify-content: space-between; align-items: center; }
        .footer-flex h4, .footer-flex h2 { color: var(--white); margin-bottom: 10px; }
        .footer-links a { color: #888; margin-left: 15px; transition: color 0.3s; }
        .footer-links a:hover { color: var(--white); text-decoration: underline; }

        /* --- MODAL SYSTEM --- */
        .modal-backdrop {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: var(--overlay); z-index: 2000;
            opacity: 0; pointer-events: none; transition: opacity 0.3s ease;
            display: flex; align-items: center; justify-content: center; padding: 20px;
        }
        .modal-backdrop.active { opacity: 1; pointer-events: all; }

        .modal-window {
            background: var(--white); width: 100%; max-width: 700px;
            border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,0.2);
            position: relative; transform: translateY(50px);
            transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            max-height: 90vh; overflow-y: auto; display: none;
        }
        .modal-backdrop.active .modal-window.active { transform: translateY(0); display: block; }

        .modal-close {
            position: absolute; top: 15px; right: 20px; font-size: 2rem;
            color: #aaa; cursor: pointer; z-index: 10; transition: color 0.3s; line-height: 1;
        }
        .modal-close:hover { color: var(--primary); }
        .modal-header-img { width: 100%; height: 250px; background-size: cover; background-position: center; border-radius: 10px 10px 0 0; }
        .modal-content { padding: 40px; }
        .modal-content h2 { font-size: 2rem; margin-bottom: 20px; color: var(--primary); }
        .modal-content h4 { margin-top: 25px; margin-bottom: 10px; color: var(--primary); font-size: 1.1rem; }
        .modal-content p { margin-bottom: 15px; color: #555; line-height: 1.7; }
        .modal-list { margin: 20px 0; padding-left: 20px; }
        .modal-list li { list-style-type: disc; margin-bottom: 10px; color: #555; }
        .modal-content a { color: var(--gold); text-decoration: none; }
        .modal-content a:hover { text-decoration: underline; }

        /* --- FORMULAR ANPASSUNGEN --- */
        .form-group { margin-bottom: 20px; }
        .form-group label { display: block; font-weight: 600; margin-bottom: 8px; }
        .form-group input, .form-group textarea {
            width: 100%; padding: 12px; border: 1px solid #ddd;
            border-radius: 5px; font-family: inherit; font-size: 1rem;
        }
        .form-group textarea { resize: vertical; min-height: 120px; }
        
        .btn-submit {
            background-color: var(--gold); color: white; padding: 15px 30px;
            border-radius: 5px; font-weight: 700; font-size: 1rem; width: 100%; transition: background 0.3s;
        }
        .btn-submit:hover:not(:disabled) { background-color: #a88258; }
        .btn-submit:disabled { opacity: 0.7; cursor: not-allowed; }

        /* Honeypot Feld ausblenden */
        .honeypot { display: none !important; position: absolute; left: -9999px; }

        /* Checkbox Styling */
        .checkbox-group { margin-bottom: 25px; }
        .privacy-label {
            display: flex; align-items: flex-start; gap: 10px;
            font-weight: 400 !important; font-size: 0.9rem; cursor: pointer;
        }
        .privacy-label input[type="checkbox"] { width: auto; margin-top: 4px; cursor: pointer; }
        .privacy-label a { color: var(--gold); text-decoration: underline; }

        /* Datei-Upload (Bewerbung) */
        .form-group input[type="file"] {
            width: 100%; padding: 10px; border: 1px dashed #ccc; border-radius: 5px;
            background: #fafafa; font-family: inherit; font-size: 0.95rem; cursor: pointer;
        }
        .form-group input[type="file"]:hover { border-color: var(--gold); }
        .field-hint { display: block; margin-top: 6px; color: #888; font-size: 0.85rem; }

        #contact-feedback, #bewerbung-feedback { margin-top: 15px; padding: 15px; border-radius: 5px; text-align: center; font-weight: 600; display: none; }
        .feedback-success { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
        .feedback-error { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

        /* Mobile Burger */
        .burger { display: none; cursor: pointer; margin-left: auto; }
        .burger div { width: 25px; height: 3px; background: #111; margin: 5px; transition: all 0.3s ease; }

        /* --- MEDIA QUERIES --- */
        @media (max-width: 900px) {
            .about-grid { flex-direction: column-reverse; align-items: center; gap: 40px; }
            .about-image-container { flex: auto; width: 100%; max-width: 400px; }
            .contact-wrapper { flex-direction: column; }
            .contact-info { border-right: none; border-bottom: 1px solid #eee; padding-right: 0; padding-bottom: 30px; }
            .contact-form-container { padding-left: 0; }
            .contact-prompt { text-align: center; }
        }

        @media (max-width: 768px) {
            .nav-container {
                justify-content: space-between;
            }
            .nav-links {
                position: absolute; right: 0; top: 60px; height: calc(100vh - 60px);
                background: #8e9da8; flex-direction: column; align-items: center;
                width: 100%; transform: translateX(100%); transition: 0.4s;
                padding-top: 0; box-shadow: 0 5px 10px rgba(0,0,0,0.1);
            }
            .nav-links a {
                width: 100%;
                justify-content: center;
                padding: 20px 0;
                border-bottom: 1px solid rgba(0,0,0,0.05);
            }
            .nav-active { transform: translateX(0%); }
            .burger { display: block; }

            /* Das geschlossene Menü steht per translateX(100%) rechts neben dem
               Viewport und blaeht die Dokumentbreite auf das Doppelte auf.
               overflow-x:clip schneidet es weg, laesst overflow-y aber sichtbar -
               das geoeffnete Menue ragt weiterhin nach unten. (Mit "hidden" statt
               "clip" ginge das nicht, das erzwingt auf beiden Achsen einen
               Scroll-Container und wuerde position:sticky der Navbar brechen.) */
            .navbar { overflow-x: clip; }
            .burger.toggle .line1 { transform: rotate(-45deg) translate(-5px, 6px); }
            .burger.toggle .line2 { opacity: 0; }
            .burger.toggle .line3 { transform: rotate(45deg) translate(-5px, -6px); }
            
            .hero h1 { font-size: 2.2rem; }
            .section-overlap { margin-top: 0; background: var(--gray); padding-top: 40px; }
            .footer-flex { flex-direction: column; gap: 20px; text-align: center; }
            .modal-window { margin: 10px; max-height: 85vh; }
            .modal-content { padding: 25px; }
            .about-header h1, .about-header h2 { font-size: 2rem; }
        }

        /* Hinweis für Besucher ohne JavaScript (Seitenwechsel läuft über JS) */
        .noscript-box {
            background: #fff8ec; border-bottom: 2px solid var(--gold);
            padding: 20px; text-align: center; font-size: 0.95rem; line-height: 1.7;
        }
        .noscript-box strong { display: block; margin-bottom: 5px; font-size: 1.05rem; }
        .noscript-box a { color: var(--gold); font-weight: 600; }

/* --- Buttons, die jetzt echte Links sind (crawlbar statt onclick) --- */
a.btn-hero, a.btn-submit { text-decoration: none; }
a.btn-submit { display: block; text-align: center; box-sizing: border-box; }

/* Logo ist jetzt ein Link zur Startseite */
a.logo-wrapper { text-decoration: none; }


/* ==========================================================
   Leistungsseiten, FAQ und Fehlerseite
   ========================================================== */

/* Karten auf Startseite und Leistungsübersicht sind jetzt Links */
a.card { text-decoration: none; color: inherit; display: block; }

.leistung-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    overflow: hidden;
    max-width: 860px;
    margin: 0 auto;
}
.leistung-bild {
    height: 320px;
    background-size: cover;
    background-position: center;
}
.leistung-text { padding: 40px; }
.leistung-text p { margin-bottom: 18px; color: #555; line-height: 1.75; }
.leistung-text h2 { font-size: 1.4rem; margin: 30px 0 12px; color: var(--primary); }

.leistung-cta {
    margin-top: 35px;
    padding-top: 28px;
    border-top: 1px solid #eee;
}
.leistung-cta p { margin-bottom: 18px; }
.leistung-cta .btn-submit { max-width: 340px; }

.hub-cta {
    background: #fff;
    border: 0;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    padding: 35px 40px;
    margin: 50px auto 0;
    max-width: 860px;
    text-align: center;
}
.hub-cta h2 { font-size: 1.5rem; margin-bottom: 12px; }
.hub-cta .btn-submit { margin: 0 auto; max-width: 320px; }

.zurueck-link { text-align: center; margin-top: 30px; }
.zurueck-link a { color: var(--gold); font-weight: 600; }

/* --- FAQ (aufklappbar, funktioniert ohne JavaScript) --- */
.faq-liste { max-width: 860px; margin: 0 auto; }
.faq-item {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.04);
    margin-bottom: 14px;
    overflow: hidden;
}
.faq-item summary {
    cursor: pointer;
    padding: 20px 24px;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary h2 { font-size: 1.1rem; margin: 0; font-weight: 700; }
.faq-item summary::after {
    content: '+';
    font-size: 1.6rem;
    line-height: 1;
    color: var(--gold);
    flex-shrink: 0;
}
.faq-item[open] summary::after { content: '3'; }
.faq-item p { padding: 0 24px 22px; color: #555; margin: 0; }

/* --- Fehlerseite --- */
.fehler-links { display: flex; flex-wrap: wrap; gap: 22px; justify-content: center; }
.fehler-links a { color: var(--gold); font-weight: 600; }

@media (max-width: 768px) {
    .leistung-text { padding: 25px; }
    .leistung-bild { height: 210px; }
    .hub-cta { padding: 25px; }
    .leistung-cta .btn-submit, .hub-cta .btn-submit { max-width: none; }
}
