/* Grundlayout aller Sections */
.page-section {
    width: 100%;
    margin: 0 auto;
    padding: 64px 0;
}

.separator {
    display:block;
    clear:both;
    border: none;
    width:100%;
    min-height:16px;
    max-height:16px;
    background: url("images/separator.png?v=1.01") no-repeat center top;
    background-size: auto;
    padding-top: 0px;
    margin:0 auto;
}

/* Die erste Section nach dem Hero erhält keinen oberen Rand */
.page-section:first-of-type {
    border-top: none;
}

.section-title {
    font-family: 'Henriette', serif;
    font-weight: 800;
    color: #003763;
    font-size: clamp(2rem, 1.8vw + 1.8rem, 3rem);
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

/* Buttons (z.B. Anmelden, Absenden) */
.btn {
    display: inline-block;
    padding: 11px 24px;
    font-family: 'Henriette', serif;
    font-weight: 700;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease;
    text-decoration: none;
    text-align:center;
    min-width:27vw;
}

.btn-primary {
    background: #003763;
    color: #fff;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0,0,0,.15);
}

.btn-disabled {
    background: #e9eef3;
    color: #6c7f92;
    border-color: #d6dde5;
    cursor: not-allowed;
}

/* Formularfelder einheitlich */
input, textarea, select {
    width: 100%;
    border: 1px solid #ccd8e3;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 1rem;
    font-family: inherit;
    color: #003763;
}

label {
    font-weight: 600;
    color: #003763;
    margin-bottom: 6px;
    display: block;
}

@media (max-width: 900px) {
    .page-section{
        /* Full-bleed Container */
        width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        padding-top: 48px;         /* nur vertikales Padding */
        padding-bottom: 48px;
        /* kein horizontales Padding hier, das macht .section-inner */
    }

    .page-section .section-inner{
        /* Inhalt fast bis an den Rand */
        width: 100%;
        max-width: none;
        /* kleiner linker/rechter Gutter, damit nichts anstößt */
        padding-inline: clamp(10px, 4vw, 22px);
        /* dein bisheriges vertikales Padding kann stehen bleiben */
    }

    .footer-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .separator {
        width:80%;
    }
}

@media (max-width: 768px){
    .page-section .section-inner{ padding-inline: clamp(8px, 5vw, 20px); }
}
