/**
 * File: cards.css
 * Purpose: Card component system (standard, intro, checklist, CTA) plus supporting grid & utility presentation styles.
 * Guidelines: Avoid inline !important except where variant override hierarchy is required; consolidate shared
 *             properties to base .card block before variants for maintainability.
 */

.card {
    background: var(--gradient-dark);
    border-radius: var(--border-radius-large);
    padding: var(--card-padding);
    margin-bottom: var(--card-margin);
    box-shadow: var(--shadow-card);
    border: 1px solid var(--color-border-primary);
    color: var(--color-text-white);
    display: flex;
    flex-direction: column;
    transition: var(--transition-normal);
    flex: 1;
}

.card:hover {
    border-color: var(--color-border-primary-strong);
    transform: translateY(-5px);
    box-shadow: var(--shadow-card-hover);
}

.card h1, .card h2, .card h3 {
    color: var(--color-primary);
    margin-top: 0;
    font-weight: var(--font-weight-light);
    letter-spacing: -0.01em;
}

.card h1 {
    font-size: var(--font-size-hero-h1);
    margin-bottom: var(--spacing-lg);
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.card h2 {
    margin-bottom: var(--spacing-lg);
    line-height: 1.25;
}

.card h3 {
    font-size: var(--font-size-hero-h2);
    margin-bottom: var(--spacing-lg);
    line-height: 1.3;
}

.card p {
    color: var(--color-text-white);
    flex-grow: 1;
}

.card ul {
    list-style: none;
    padding-left: 0;
    flex-grow: 1;
}

.card ul li {
    padding-left: 35px;
    position: relative;
    margin-bottom: var(--spacing-sm);
    font-size: var(--font-size-hero-p);
    color: var(--color-text-white);
}

.card ul li i {
    color: var(--color-primary);
    position: absolute;
    left: 0;
    top: 5px;
    font-size: var(--font-size-contact-value);
}

.card .btn {
    margin-top: auto;
}

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

.card.intro-card {
    text-align: center;
    margin-bottom: var(--spacing-xxl) !important;
}

.card.intro-card h1 {
    font-size: var(--font-size-intro-h1) !important;
    margin-bottom: var(--spacing-lg) !important;
    font-weight: var(--font-weight-extra-light) !important;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.card.intro-card .sub-headline {
    font-size: var(--font-size-intro-sub) !important;
    color: var(--color-primary) !important;
    font-weight: var(--font-weight-normal) !important;
    margin-bottom: var(--spacing-lg) !important;
}

.card.special-cta-card {
    background: var(--gradient-dark-special) !important;
    text-align: center !important;
    justify-content: center;
    padding: var(--spacing-xxl) var(--spacing-xl) !important;
    margin-top: var(--spacing-xxxl) !important;
    box-shadow: var(--shadow-card-special) !important;
}

.card.special-cta-card h3 {
    font-size: var(--font-size-special-h3) !important;
    color: var(--color-primary) !important;
    margin-bottom: var(--spacing-lg) !important;
}

.card.special-cta-card p {
    font-size: var(--font-size-special-p) !important;
    color: var(--color-text-white) !important;
    font-weight: var(--font-weight-light) !important;
    flex-grow: 0;
    margin-bottom: var(--spacing-xl) !important;
}

.card.checklist-card h3 {
    margin-top: 0;
}

.card.checklist-card ul li:last-child {
    margin-bottom: 0;
}

.card.checklist-card ul {
    margin-bottom: 0;
}

.gray-grid-container {
    margin-bottom: var(--spacing-xl);
    padding: var(--spacing-lg);
    background: var(--color-bg-gray-container);
    border-radius: var(--border-radius-medium);
    border: 1px solid var(--color-border-light);
}

.gray-grid-container h2 {
    margin-top: 0;
    margin-bottom: 0;
    color: var(--color-text-primary);
}

.gray-grid-container h3 {
    text-align: center;
}

.gray-grid-container .card {
    margin-bottom: 0;
}

.leistungen-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xl);
    margin-top: var(--spacing-xl);
    align-items: stretch;
}

.sub-headline {
    font-size: var(--font-size-intro-sub) !important;
    color: var(--color-primary) !important;
    font-weight: var(--font-weight-normal) !important;
    margin-bottom: var(--spacing-lg);
}

.icon-circle {
    display: inline-block;
    width: 80px;
    height: 80px;
    border-radius: var(--border-radius-circle);
    background: var(--gradient-primary);
    color: var(--color-text-bright-white);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--spacing-md) auto;
    font-size: var(--icon-size-xl);
}

.icon-circle i,
.icon-circle .golden-icon {
    color: var(--color-text-bright-white) !important;
}

.home-page .card h1 {
    margin-bottom: var(--spacing-xl) !important;
}

.home-page .card h2 {
    margin-bottom: var(--spacing-lg) !important;
}

.home-page .card h3 {
    margin-bottom: var(--spacing-lg) !important;
}

.home-page .leistungen-grid {
    margin-bottom: var(--spacing-lg);
}

.intro-card {
    text-align: center;
    margin-bottom: var(--spacing-xxl) !important;
}

.intro-card h1 {
    font-size: var(--font-size-intro-h1) !important;
    margin-bottom: var(--spacing-lg) !important;
    font-weight: var(--font-weight-extra-light) !important;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.special-cta-card {
    background: var(--gradient-dark-special) !important;
    text-align: center !important;
    padding: var(--spacing-xxl) var(--spacing-xl) !important;
    margin-top: var(--spacing-xxxl) !important;
    box-shadow: var(--shadow-card-special) !important;
}

.special-cta-card h3 {
    font-size: var(--font-size-special-h3) !important;
    margin-bottom: var(--spacing-lg) !important;
    color: var(--color-primary) !important;
}

.special-cta-card p {
    font-size: var(--font-size-special-p) !important;
    margin-bottom: var(--spacing-xl) !important;
    color: var(--color-text-white) !important;
    font-weight: var(--font-weight-light) !important;
}

@media screen and (max-width: 1100px) {
    .card, .contact-form, .about-section, .features-section, .benefits-section, .page-hero-section, .hero-content-section {
        padding: var(--card-padding);
    }
}

@media screen and (max-width: 768px) {
    .leistungen-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .card, .contact-form, .about-section, .features-section, .benefits-section, .page-hero-section, .hero-content-section {
        padding: var(--spacing-xxl) var(--spacing-xl);
    }

    .card.special-cta-card h3 {
        font-size: 1.6em !important;
    }

    .card.special-cta-card p {
        font-size: 1.1em !important;
    }

    /* Gap in zweispaltiger Checklist-Card entfernen, wenn mobil nur eine Spalte gestapelt wird */
    .card.checklist-card .flex-container {
        gap: 0 !important;
    }
}

@media screen and (max-width: 480px) {
    .card, .contact-form, .about-section, .features-section, .benefits-section, .page-hero-section, .hero-content-section {
        padding: var(--spacing-xxl) var(--spacing-xl);
    }
}

@media screen and (max-width: 360px) {
    .card, .contact-form, .about-section, .features-section, .benefits-section, .page-hero-section, .hero-content-section {
        padding: var(--spacing-xxl) var(--spacing-xl);
    }
}
