body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    color: hsl(95 38.1% 62%); /*#98c379*/
    background-size: cover;
    background-position: center;
    min-height: 100vh;
}

.skip-link {
    position: absolute;
    top: -40px;
    left: 10px;
    background: #98c379;
    color: #000;
    padding: 8px 12px;
    z-index: 2000;
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 10px;
}

/* Cookie-Banner – kompakter Hinweis unten zentriert */
.cookie-banner {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    width: calc(100% - 2rem);
    max-width: 480px;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.9);
    color: #f5f5f5;
    padding: 0.75rem 1rem;
    z-index: 3000;
    display: none; /* wird per JS sichtbar geschaltet */
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
    border-radius: 10px;
    font-size: 0.8rem;
}

.cookie-banner-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.cookie-banner-content p {
    margin: 0;
    flex: 1 1 auto;
    line-height: 1.4;
}

.cookie-banner-content a {
    color: hsl(210, 75%, 60%);
    text-decoration: underline;
}

.cookie-banner .button {
    white-space: nowrap;
    flex-shrink: 0;
}

@media (max-width: 480px) {
    .cookie-banner {
        bottom: 0.75rem;
        padding: 0.6rem 0.8rem;
        font-size: 0.78rem;
    }

    .cookie-banner-content {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
        gap: 0.5rem;
    }

    .cookie-banner .button {
        width: 100%;
        align-self: center;
    }
}

a {
    color: hsl(210, 75%, 60%);
}

.section {
    background: rgba(84 84 84 / 0.84);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    min-height: 10vh;
    padding: 5px 0; /* Nur vertikales Padding, kein horizontales */
    position: relative;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 20px;
    margin: 0; /* Keine Margins */
    overflow-x: hidden; /* Verhindert horizontales Scrollen */
}

.section:last-child {
    margin-bottom: 0;
}

/* Überschriften-Styling */
.section-title {
    color: #98c379;
    text-align: center;
    font-size: 2.5em;
    font-weight: bold;
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 1.0s ease, transform 1.0s ease;
    margin: 20vh 0 3vh 0;
    text-shadow:
        -1px -1px 0 #000, /* Links-oben Schatten */
        1px -1px 0 #000, /* Rechts-oben Schatten */
        -1px  1px 0 #000, /* Links-unten Schatten */
        1px  1px 0 #000; /* Rechts-unten Schatten */
}

.section-title.visible {
    opacity: 1;
    transform: translateY(0);
}

.section-title.fade-out-top {
    opacity: 0;
    transform: translateY(-60px); /* Angepasst für sanfteres Ausblenden */
}

#background-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
    overflow: hidden;
}

#background-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
    overflow: hidden;
}

.background-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: opacity 2s ease-in-out;
    opacity: 0;
}

.background-image:first-child {
    background-image: url('../img/aikido_0.webp');
    opacity: 0;
    animation: bgFadeIn 2s ease-out forwards;
}

@keyframes bgFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }    
}

.container {
    padding: 0;
}

.content-container {
    padding: 5px;
    border-radius: 15px;
    margin: 0 auto;
    width: 100%;
    max-width: 1400px;
    box-sizing: border-box;
}

.training-day {
    min-width: 16.5rem;
    max-width: 20rem;
}

#training .content-view {
    min-height: auto;
}

.card {
    background: rgba(51, 51, 51, 0.95);
    padding: 0;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    margin: 0 2px;
    display: flex; /* Hinzugefügt für Flexbox-Layout */
    flex-direction: column; /* Stellt sicher, dass Kopf und Inhalt untereinander bleiben */
    height: 100%; /* Stellt sicher, dass die Karte die volle Höhe des Grid-Items einnimmt */
    min-width: 16rem;
}


.card-kopf {
    position: relative;
    background: #98c379;
    padding: 0 1rem; 
    display: flex;
    flex-direction: column;
    min-height: 60px; /* Feste Höhe für Titel und Subtitel */
    overflow: visible;
}

.card-kopf [id$="-title"] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 30px; /* Feste Höhe für Titel */
    min-height: 30px; /* Verhindert das Kollabieren bei leerem Inhalt */
    line-height: 30px; /* Zentriert Text vertikal */
    color: #4d4d4d;
    font-size: 1.17em; /* h3-Größe */
}

.card-kopf [id$="-subtitle"] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 22px; /* Feste Höhe für Subtitel */
    min-height: 22px; /* Verhindert das Kollabieren */
    line-height: 15px; /* Zentriert Text vertikal */
    margin-top: 5px; /* Abstand zwischen Titel und Subtitel */
    color: #4d4d4d;
}

/* NIEMALS Zeilenumbruch im Kartenkopf - für alle Benutzer und Zustände */
.card-kopf [id$="-title"],
.card-kopf [id$="-subtitle"] {
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Auch während der Bearbeitung KEIN Zeilenumbruch */
.card-kopf [id$="-title"][contenteditable="true"],
.card-kopf [id$="-subtitle"][contenteditable="true"] {
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Überschreibt alle anderen möglichen Regeln */
.card .card-kopf [id$="-title"],
.card .card-kopf [id$="-subtitle"] {
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
}


.card-kopf .text-small {
    opacity: 0.8;
}

.card-content {
    position: relative;
    padding: 20px;
    flex-grow: 1; /* Lässt den Inhaltsbereich wachsen, um die Höhe auszugleichen */
}

.card-content h4 {
    color: #98c379;
    margin-top: 20px;
    margin-bottom: 10px;
    font-size: 1.1em;
    font-weight: bold;
}

.card-content h4:first-child {
    margin-top: 0;
}

.sponsor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 30px;
    margin-top: 30px;
}

.sponsor-item {
    text-align: center;
    padding: 20px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 10px;
    transition: transform 0.3s ease;
}

.sponsor-item:hover {
    transform: translateY(-2px);
}

.sponsor-item img {
    max-width: 150px;
    height: auto;
    filter: grayscale(100%);
    transition: filter 0.3s ease;
}

.sponsor-item:hover img {
    filter: grayscale(0%);
}

/* Navigation */
.main-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: rgba(0, 0, 0, 0.8);
    padding: 10px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nav-logo {
    flex: 0 0 auto;
}

.nav-logo .logo {
    height: 50px;
    width: auto;
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 20px;
}

.nav-links a {
    color: #98c379;
    text-decoration: none;
    font-size: 1.1em;
    transition: color 0.3s ease;
}

.nav-links a:hover {
    color: #ffffff;
}

.nav-toggle {
    display: none;
    background: none;
    border: none;
    color: #98c379;
    cursor: pointer;
    padding: 5px;
}

.nav-toggle svg rect,
.dropdown-toggle svg rect {
    fill: #98c379 !important;
}

.dropdown-nav>li>a {
    color: #98c379;
}

.dropdown-nav>li>a:hover {
    color: #ffffff;
    background-color: rgba(152, 195, 121, 0.1);
}

.button-link {
    color: #98c379;
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
}

.button-link:hover {
    color: #ffffff;
}

/* Icon color */
[uk-icon="menu"] svg {
    color: #98c379;
}

@media (max-width: 959px) {
    .desktop-nav {
        display: none;
    }

    .nav-toggle {
        display: block;
    }
}

/* Hero Section */
.hero-section {
    height: 59vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    /* padding: 20rem 1rem 3rem; */
    position: relative;
}

.hero-section h1 {
    font-size: 2.6rem;
    margin-bottom: 1rem;
    color: #98c379;
    text-shadow:
        -1px -1px 1px #454545d9,
        1px -1px 1px #454545d9,
        -1px 1px 1px #454545d9,
        1px 1px 1px #454545d9;
}

.hero-subtitle {
    font-size: 1.5rem;
    margin-bottom: 2rem;
    color: #98c379;
    text-shadow:
        -1px -1px 0 #454545d9,
        1px -1px 0 #454545d9,
        -1px 1px 0 #454545d9,
        1px 1px 0 #454545d9;
}

.cta-button {
    display: inline-block;
    padding: 1rem 2rem;
    background-color: #98c379;
    color: #333;
    text-decoration: none;
    border-radius: 30px;
    font-size: 1.2rem;
    font-weight: bold;
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.cta-button:hover {
    background-color: #7fb364;
    transform: translateY(-2px);
    color: #333;
    text-decoration: none;
}

.scroll-indicator {
    position: absolute;
	top: 35rem;
    left: 49%;
    transform: translateX(-50%);
    /* color: #7fb364; */
    animation: bounce 2s infinite;
}

@keyframes bounce {

    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translateY(0);
    }

    40% {
        transform: translateY(-20px);
    }

    60% {
        transform: translateY(-10px);
    }
}

.grid-column-small,
.grid-small {
    margin-left: 0;
    padding-left: 0px;
}

.list {
    list-style-type: disc;
    padding-left: 20px;
}

.list-divider {
    border-top: 1px solid #98c379;
}

.content-view, .card-kopf {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

.content-view {
    background: transparent;
    min-height: auto;
    line-height: 1.5; /* Ensure consistent line height with editor */
}

/* Unified Content View Styles for WYSIWYG */
.content-view p {
    margin: 0.1em 0;
}

.content-view h1,
.content-view h2,
.content-view h3,
.content-view h4,
.content-view h5,
.content-view h6 {
    margin: 0 0;
}

/* Remove default top margin from the first list in a content view for WYSIWYG consistency */
.content-view > ul:first-child,
.content-view > ol:first-child {
    margin-top: 0;
    padding-left: 1rem !important;
}

ul {
    margin-top: 0;
    padding-left: 1rem !important;
}

/* Button Styles */
.button-small.border-circle {
    width: 36px;
    height: 36px;
    padding: 0;
    line-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.editor-buttons {
    display: none;
    gap: 8px;
    margin-left: 8px;
}

.edit-toggle span[uk-icon],
.save-button span[uk-icon],
.cancel-button span[uk-icon] {
    width: 20px;
    height: 20px;
}

.flex-right {
    justify-content: flex-end;
}

/* Hover-Effekte */
.button-primary.border-circle:hover {
    background-color: #7fb36b;
}

.button-danger.border-circle:hover {
    background-color: #f0506e;
}

/* Card Layout */
.card-kopf {
    position: relative;
}

.card-kopf .flex {
    position: absolute;
    top: 12px;
    right: 12px;
}

.button-primary {
    background-color: #98c379 !important;
    color: #383838 !important;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
}

.button-default {
    color: #98c379 !important;
    border: 1px solid #98c379 !important;
    background: transparent;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
}

.button-default:hover {
    background-color: #98c379 !important;
    color: #383838 !important;
}


.form-input {
    background: rgba(30, 30, 30, 0.95) !important;
    border: 1px solid #98c379 !important;
    color: #98c379 !important;
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
    border-radius: 5px;
}

.form-input:focus {
    background: rgba(30, 30, 30, 0.95) !important;
    border-color: #98c379 !important;
    color: #98c379 !important;
}

.form-label {
    color: #98c379 !important;
    font-weight: bold;
    margin-bottom: 5px;
    display: block;
}

.form-margin {
    margin-bottom: 15px;
}


.container {
    max-width: 100%;
}

.grid-small>* {
    padding-left: 0px;
}

.panel {
    padding: 0px 2px;
}

/* Spezielle Styles für Trainer-Karten – responsiv & zentriert */
#trainer #trainer-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.65rem;
}

#trainer .card-content {
    padding: 10px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

#trainer .content-view {
    min-height: auto;
}

#trainer .content-view img {
    width: 100%;
    height: 300px;
    display: block;
    object-fit: cover;
}

#trainer .trainer-card {
    flex: 1 1 20rem;      /* Wunsch: min-width ca. 20rem (≈ 320px) */
    min-width: 20rem;
    max-width: 20rem;
    margin: 0.25rem;
}

#trainer .card {
    margin: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

#trainer .placeholder {
    background: rgba(152, 195, 121, 0.1);
    border: 1px dashed #98c379;
    padding: 30px 20px;
    margin: 0;
    flex-grow: 1;
    height: 250px;
}

/* Sponsoren Styles */
.sponsoren-section {
    padding: 40px 0 80px 0;
    margin-top: 40px;
    position: relative;
    z-index: 1;
}

.sponsoren-section .section-title {
    text-align: center;
    color: #98c379;
    margin-bottom: 40px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

.sponsoren-section .grid-medium {
    margin: 0;
    display: flex;
    justify-content: space-around;
    flex-wrap: nowrap;
    width: 100%;
}

.sponsoren-section .grid-medium > div {
    padding: 0 10px;
    flex: 0 0 auto;
}

.sponsor-logo {
    height: 80px;
    width: auto;
    transition: opacity 0.3s ease;
}

.sponsor-link:hover .sponsor-logo {
    opacity: 0.8;
}

@media (max-width: 960px) {
    .sponsor-logo {
        height: 60px;
    }
    
    .sponsoren-section .grid-medium {
        padding: 0 15px;
    }
    
    .sponsoren-section .grid-medium > div {
        padding: 0 5px;
    }
}

@media (max-width: 640px) {
    .sponsor-logo {
        height: 40px;
    }
}

/* Scroll-Offset für Anker-Links */
html {
    scroll-padding-top: 160px; /* Anpassbar je nach Höhe Ihrer Navigation */
}

/* Login Modal spezifische Styles */
#login-modal .modal-body {
    background: rgba(30, 30, 30, 0.95);
    padding: 30px;
}

#login-modal .modal-title,
#kontakt-modal .modal-title,
#impressum-modal .modal-title {
    font-size: 2em;
    font-weight: bold;
}

#login-modal hr {
    border-top: 1px solid #98c379;
    margin: 30px 0;
}

#login-modal .form-label,
#login-modal h3 {
    color: #98c379 !important;
    font-size: 1.2em;
    margin-bottom: 10px;
}

#login-modal .form-input {
    background: rgba(40, 40, 40, 0.95) !important;
    border: 1px solid #98c379 !important;
    color: #98c379 !important;
    border-radius: 4px;
    height: 40px;
}

#login-modal .form-input:focus {
    border-color: #7fb364 !important;
    box-shadow: 0 0 5px rgba(152, 195, 121, 0.3);
}

#login-modal .button-primary {
    background-color: #98c379 !important;
    color: #333 !important;
    border: none;
    padding: 0 30px;
    line-height: 40px;
    font-weight: bold;
    border-radius: 4px;
    transition: background-color 0.3s ease;
}

#login-modal .button-primary:hover {
    background-color: #7fb364 !important;
}

#login-modal .text-danger {
    color: #f0506e !important;
    margin-bottom: 20px;
}

/* Spezifische Breite für Yoga- und Qi-Gong-Modals */
#yoga-modal .modal-dialog,
#qigong-modal .modal-dialog {
    max-width: 1400px;
    width: 90%; /* Passt sich besser an kleinere Bildschirme an */
}


/* News & Seminar Cards */
#news-grid .card {
    width: 100%; /* Nimmt die Breite des Grid-Items ein */
    max-width: 300px; /* Begrenzt die maximale Breite */
    margin: 0 auto; /* Zentriert die Karte im Grid-Item */
    position: relative;
}

#news-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0 auto; /* Zentriert das gesamte Grid */
    align-items: stretch; /* Stellt sicher, dass alle Karten in einer Reihe die gleiche Höhe haben */
    max-width: 1400px; /* Maximale Breite für große Bildschirme */
    padding: 0 15px; /* Gleicher Abstand zu beiden Seiten */
    box-sizing: border-box;
    width: 100%; /* Stellt sicher, dass Grid die volle Breite nutzt */
}

/* Mobile-first: Für sehr kleine Bildschirme volle Breite nutzen */
@media (max-width: 480px) {
    #news-grid {
        padding: 0 10px; /* Weniger Padding auf sehr kleinen Bildschirmen */
        max-width: 100%; /* Keine maximale Breite auf sehr kleinen Bildschirmen */
    }
}

/* Überschreibt das generische .grid-item Padding für die News-Karten, um den Abstand zu steuern */
#news-grid > .grid-item {
    padding: 0 1px 20px 1px; /* Oben, Rechts, Unten, Links -> 20px Abstand zwischen Karten */
    box-sizing: border-box;
}


/* Speichern-Button */
.save-content-btn {
    background: #32d296 !important;
    color: white !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 8px 16px !important;
    font-size: 12px !important;
    cursor: pointer !important;
    transition: background 0.3s ease !important;
}

.save-content-btn:hover {
    background: #28a745 !important;
}

.save-content-btn:active {
    background: #1e7e34 !important;
}

/* Neuer Speicher-Badge */
.card-save-badge {
    position: absolute;
    top: 0;
    right: 0;
    transform: translate(50%, -50%);
    background-color: #28a745; /* Dunkelgrün */
    border: 1px solid #1e7e34;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: all 0.2s ease-in-out;
    z-index: 10;
}

.card-save-badge svg path {
    fill: #fff;
}

.card-delete-badge {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    background-color: #d9534f; /* Dunkelorange */
    border: 1px solid #c9302c;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: all 0.2s ease-in-out;
    z-index: 10;
}

.card-delete-badge svg path,
.card-delete-badge svg line {
    stroke: #fff;
}

.card-save-badge:hover {
    background-color: #1e7e34;
}

.card-delete-badge:hover {
    background-color: #c9302c;
}

/* Delete Button für Admin-Termin-Seite */
.delete-appointment-btn:hover {
    background-color: #c9302c !important;
}

.card-save-badge .icon {
    width: 18px;
    height: 18px;
}

.button-container {
    display: flex;
    justify-content: center;
}

/* Card Editor Actions */
.card-editor-actions {
    margin-top: 10px;
    text-align: right;
}

.card-editor-actions .button {
    margin-left: 5px;
}

/* Contenteditable Styling */
.content-view[contenteditable="true"] {
    min-height: auto;
    border: 1px solid transparent;
    border-radius: 4px;
    transition: border-color 0.3s ease;
    cursor: text;
    box-sizing: border-box !important;
}


.content-view[contenteditable="true"]:hover {
    border-color: rgba(255, 255, 255, 0.2);
}

.content-view[contenteditable="true"]:focus {
    border-color: #32d296;
    outline: none;
}

/* Entfernt den Fokus-Rahmen im Kartenkopf, um Layout-Verschiebungen zu verhindern */
.card-kopf .content-view[contenteditable="true"],
.card-kopf .content-view[contenteditable="true"]:focus {
    border: none !important;
    outline: none !important;
}

#news_1-title, #news_2-title, #news_3-title, #news_4-title, #news_1-subtitle, #news_2-subtitle, #news_3-subtitle, #news_4-subtitle,
#seminar_1-title, #seminar_2-title, #seminar_3-title, #seminar_4-title, #seminar_1-subtitle, #seminar_2-subtitle, #seminar_3-subtitle, #seminar_4-subtitle {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.news-card, .seminar-card {
    min-width: 19.7rem;
}

.news-card .card {
    height: 100%;
    margin: 0;
}

.news-buttons {
    display: none !important;
}

body.logged-in .news-buttons {
    display: flex !important;
}

.delete-card-btn,
.edit-card-btn {
    display: none !important;
}

body.logged-in .delete-card-btn,
body.logged-in .edit-card-btn {
    display: inline-flex !important;
}

.add-news-btn,
.add-seminar-btn {
    display: none !important;
}

body.logged-in .add-news-btn,
body.logged-in .add-seminar-btn {
    display: inline-flex !important;
}

/* Seminar specific styles */
.seminar-info {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(0,0,0,0.1);
}

.seminar-info label {
    font-weight: bold;
    display: block;
    margin-top: 5px;
}

.seminar-details {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.seminar-field {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
}

/* Spezifisches Layout für die Datumsfelder */
.seminar-field-label-block {
    font-weight: bold;
    font-size: 0.9em;
    color: #98c379;
    margin: 0.25rem 0;
    width: 100%;
}

.seminar-field-dates {
    display: flex;
    justify-content: space-between;
    width: 100%;
    gap: 1rem; /* Abstand zwischen "von" und "bis" Blöcken */
}

.seminar-date-group {
    display: flex;
    align-items: baseline;
    gap: 0.5rem; /* Abstand zwischen Label (von/bis) und Datum */
}

.seminar-field label {
    font-weight: bold;
    font-size: 0.9em;
    color: #98c379;
    margin-bottom: 0.25rem;
    flex-shrink: 0; /* Verhindert, dass das Label schrumpft */
}

.seminar-field .content-view {
    width: 100%;
    box-sizing: border-box;
}

.add-news-btn,
.add-seminar-btn {
    display: none !important;
}

.logged-in .add-news-btn,
.logged-in .add-seminar-btn {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
}

.edit-card-btn,
.delete-card-btn {
    display: none;
}

.logged-in .edit-card-btn,
.logged-in .delete-card-btn {
    display: inline-flex;
}

/* Styling für den Karten-Zähler */
.cards-count-hint {
    font-size: 0.9rem;
    border-radius: 4px;
    margin-right: 15px;
    min-width: 100px;
    text-align: center;
    line-height: 40px;
    display: flex;
    align-items: center;
    height: 40px;
}

/* Container für Add-Buttons und Zähler */
.flex.flex-middle {
    margin-bottom: 20px;
    background: rgba(30, 30, 30, 0.7);
    padding: 10px;
    border-radius: 4px;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
}

.add-news-btn,
.add-seminar-btn {
    margin: 0;
    height: 40px;
    display: inline-flex;
    align-items: center;
}

/* Editor Container from index.html */
.editor-container {
    background: rgba(30, 30, 30, 0.95);
    border: 1px solid #444;
    border-radius: 4px;
}

.editor-toolbar {
    background: rgba(40, 40, 40, 0.95);
    border-bottom: 1px solid #444;
    padding: 8px;
}

.editor-content {
    min-height: 200px;
    max-height: 500px;
    overflow-y: auto;
    padding: 16px;
    background: rgba(30, 30, 30, 0.95);
}

.editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 8px;
    background: rgba(40, 40, 40, 0.95);
    border-top: 1px solid #444;
}

/* Unified Grid System */
.grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0 auto; /* Zentriert das gesamte Grid */
    justify-content: center; /* Zentriert die Grid-Items */
    max-width: 1400px; /* Maximale Breite für große Bildschirme */
    padding: 0 15px; /* Gleicher Abstand zu beiden Seiten */
    box-sizing: border-box;
    width: 100%; /* Stellt sicher, dass Grid die volle Breite nutzt */
}

/* Mobile-first: Für sehr kleine Bildschirme volle Breite nutzen */
@media (max-width: 480px) {
    .grid {
        padding: 0 10px; /* Weniger Padding auf sehr kleinen Bildschirmen */
        max-width: 100%; /* Keine maximale Breite auf sehr kleinen Bildschirmen */
    }
}

/* Grid Items - Konsistentes Padding für alle Grid-Typen */
.grid-item {
    padding: 0 0.5rem 1rem; /* Gleiches Padding für alle Grid-Items */
    box-sizing: border-box;
}

/* Grid Column Widths */
.grid-1-1 { width: 100%; }
.grid-1-2 { width: 50%; }
.grid-1-3 { width: 33.3333%; }
.grid-1-4 { width: 25%; }
.grid-2-3 { width: 66.6667%; }

/* Responsive Grid */
@media (min-width: 640px) { /* s */
    .grid-1-2-s { width: 50%; }
    .grid-1-3-s { width: 33.3333%; }
    .grid-1-4-s { width: 25%; }
}

@media (min-width: 960px) { /* m */
    .grid-1-2-m { width: 50%; }
    .grid-1-3-m { width: 33.3333%; }
    .grid-1-4-m { width: 25%; }
    .grid-1-5-m { width: 20%; }
    .grid-2-3-m { width: 66.6667%; }
}

@media (min-width: 1200px) { /* l */
    .grid-1-2-l { width: 50%; }
    .grid-1-3-l { width: 33.3333%; }
    .grid-1-4-l { width: 25%; }
}

/* Grid Modifiers - Vereinfacht und konsistent */
.grid-small {
    margin: 0 -0.5rem; /* Negative Margins für konsistente Abstände */
}

.grid-medium {
    margin: 0 -0.5rem; /* Gleiche negative Margins wie grid-small */
}

/* Grid Match für gleiche Höhen */
.grid-match {
    align-items: stretch;
}

.grid-match > .grid-item > * {
    height: 100%;
}

/* Spezielle Anpassungen entfernt - jetzt durch vereinheitlichtes Grid-System ersetzt */


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

.flex-middle {
    align-items: center;
}

/* Custom Modal System */
.modal {
    display: none;
    position: fixed;
    z-index: 1010;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.5);
}

.modal.open {
    display: block;
}

.modal-dialog {
    background: rgba(30, 30, 30, 0.95);
    color: #98c379;
    border: 1px solid #98c379;
    border-radius: 5px;
    margin: 10% auto;
    padding: 0;
    position: relative;
    width: 80%;
    max-width: 600px;
}

/* Booking Modal - Volle Breite mit minimalem Rand */
#booking-modal .modal-dialog,
#appointments-modal .modal-dialog {
    width: calc(100% - 20px);
    max-width: none;
    margin: 10px auto;
}

.modal-header {
    background: #98c379;
    border-bottom: 1px solid #98c379;
    border-radius: 5px 5px 0 0;
    padding: 10px 20px;
    color: #333;
}

/* Booking Modal - Reduzierter Header-Abstand */
#booking-modal .modal-header,
#appointments-modal .modal-header {
    padding: 8px 15px;
}

.modal-title {
    color: #333;
    font-size: 2em;
    font-weight: bold;
    margin: 0;
}

.modal-body {
    padding: 30px;
    overflow-y: auto; /* Ermöglicht Scrollen bei langen Inhalten */
    background: rgba(30, 30, 30, 0.95);
    color: #98c379;

}

/* Booking Modal - Reduzierter innerer Abstand */
#booking-modal .modal-body,
#appointments-modal .modal-body {
    padding: 15px 20px;
}

.modal-footer {
    padding: 20px 30px;
    text-align: right;
    border-top: 1px solid #98c379;
}

.modal-close {
    position: absolute;
    top: 15px;
    right: 15px;
    color: #333;
    font-size: 30px;
    font-weight: bold;
    cursor: pointer;
}

.modal-close:hover,
.modal-close:focus {
    color: #000;
    text-decoration: none;
    cursor: pointer;
}

/* Booking Modal - X-Button im Stil des Modals */
#booking-modal .modal-close,
#appointments-modal .modal-close {
    color: #2d2d2dd9;
    font-size: 28px;
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: transparent;
    transition: background-color 0.2s, color 0.2s;
}

#booking-modal .modal-close:hover,
#booking-modal .modal-close:focus,
#appointments-modal .modal-close:hover,
#appointments-modal .modal-close:focus {
    color: #EC9B4D;
    background: rgba(236, 155, 77, 0.1);
}

/* Custom Dropdown System */
.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background: rgba(30, 30, 30, 0.95);
    border: 1px solid #98c379;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
    right: 0;
    border-radius: 4px;
    padding: 15px;
}

.dropdown-content a {
    color: #98c379;
    padding: 8px 15px;
    text-decoration: none;
    display: block;
    border-radius: 4px;
}

.dropdown-content a:hover {
    background-color: rgba(152, 195, 121, 0.1);
    color: #ffffff;
}

.dropdown.open .dropdown-content {
    display: block;
}

.dropdown-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dropdown-nav-divider {
    border-top: 1px solid rgba(152, 195, 121, 0.3);
    margin: 8px 0;
}

/* Custom Off-canvas System */
.offcanvas {
    position: fixed;
    top: 0;
    right: -300px; /* Start outside the viewport */
    width: 300px;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.95);
    box-shadow: -2px 0 5px rgba(0,0,0,0.5);
    transition: right 0.3s ease-in-out;
    z-index: 1020;
}

.offcanvas.open {
    right: 0;
}

.offcanvas-bar {
    padding: 20px;
}

.offcanvas-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    color: #98c379;
    font-size: 24px;
    cursor: pointer;
}

.offcanvas-nav {
    list-style: none;
    padding: 0;
    margin-top: 50px;
}

.offcanvas-nav li a {
    color: #98c379;
    text-decoration: none;
    font-size: 1.1em;
    padding: 10px 0;
    display: block;
}

.offcanvas-nav li a:hover {
    color: #ffffff;
}

.offcanvas-nav-divider {
    border-top: 1px solid rgba(152, 195, 121, 0.3);
    margin: 15px 0;
}

.visible-m {
    display: none;
}

@media (min-width: 960px) {
    .visible-m {
        display: block;
    }
}

.hidden-m {
    display: block;
}

@media (min-width: 960px) {
    .hidden-m {
        display: none;
    }
}

/* .text-center {
    text-align: center;
} */

.width-1-1 {
    width: 100%;
}

.display-block {
    display: block;
}

.margin-small-right {
    margin-right: 10px;
}

.text-small {
    font-size: 0.85rem;
}

.margin-small-top {
    margin-top: 10px;
}

.link a {
    /* color: #98c379; */
    text-decoration: none;
}

.link a:hover {
    color: #ffffff;
}

.slider-container {
    position: relative;
    overflow: hidden;
}

.slider {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.slide {
    min-width: 100%;
    box-sizing: border-box;
}

/* Custom Notification System */
.notification {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    padding: 15px 25px;
    border-radius: 5px;
    color: #fff;
    font-size: 1.1em;
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.notification.show {
    opacity: 1;
}

.notification.success {
    background-color: #28a745;
}

.notification.danger {
    background-color: #dc3545;
}

.notification.warning {
    background-color: #ffc107;
    color: #333;
}

.notification.info {
    background-color: #17a2b8;
}

/* Bestätigungsdialog im Stil der Notifications */
.notification.confirm-dialog {
    padding: 20px 30px;
    min-width: 300px;
    max-width: 500px;
}

.confirm-message {
    margin-bottom: 20px;
    font-size: 1.1em;
    line-height: 1.5;
}

.confirm-buttons {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.confirm-btn {
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    font-size: 1em;
    cursor: pointer;
    transition: background-color 0.3s ease;
    font-weight: bold;
}

.confirm-ok {
    background-color: #28a745;
    color: #fff;
}

.confirm-ok:hover {
    background-color: #218838;
}

.confirm-cancel {
    background-color: #6c757d;
    color: #fff;
}

.confirm-cancel:hover {
    background-color: #5a6268;
}

.notification.warning.confirm-dialog .confirm-ok {
    background-color: #ffc107;
    color: #333;
}

.notification.warning.confirm-dialog .confirm-ok:hover {
    background-color: #e0a800;
}

/* Ensure resized images scale correctly within their container */
.content-view .image_resized {
    max-width: 100%;
    height: auto;
}

.content-view .image_resized img {
    height: auto;
    width: 100%; /* Das Bild füllt den Container, der vom Editor skaliert wird */
}

/* Stile für die Bildausrichtung aus CKEditor */
.content-view .image {
    display: block;
    margin: 0; /* Standard-Margin entfernen */
}

.content-view .image-style-align-left {
    float: left;
    margin: 0.1rem 1.5rem 0 0; /* Oben, Rechts, Unten, Links */
}

.content-view .image-style-align-right {
    float: right;
    margin: 0.1rem 0 0 1.5rem; /* Oben, Rechts, Unten, Links */
}

.content-view .image-style-align-center {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* padding for card content, even in edit mode */
.card-content {
    padding-top: 10px !important;
}

/* Spezielle Styles für die Links-Sektion */
@media (min-width: 960px) {
    #links .grid-medium > .grid-item {
        padding-left: 0.25rem; /* Horizontalen Abstand auf 0.5rem reduzieren */
        padding-right: 0.25rem;
        width: 50% !important; /* Stellt sicher, dass beide Spalten exakt 50% breit sind */
        box-sizing: border-box;
    }
}

/* Stellt sicher, dass die linke Spalte (die den nested grid enthält) ihre Höhe an die Kinder weitergibt */
#links .grid-item:first-child > .grid-small {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr; /* Zwei gleich hohe Zeilen */
    gap: 1rem; /* Vertikaler Abstand zwischen den Karten */
    height: 100%;
}

/* Die Grid-Items in der linken Spalte sollen sich an das neue Grid anpassen */
#links .grid-item:first-child > .grid-small > .grid-item {
    padding: 0;
    width: 100%;
}

/* Mobile Zentrierung und volle Breite für alle Sektionen außer News und Sponsoren */
@media (max-width: 959px) {
    .section:not(#news):not(#sponsoren) .grid,
    .section:not(#news):not(#sponsoren) .grid-small,
    .section:not(#news):not(#sponsoren) .grid-medium {
        padding: 0;
        margin: 0;
    }

    .section:not(#news):not(#sponsoren):not(#dojo):not(#links) .grid-item {
        width: 100% !important;
        padding: 0 0 0.5rem 0;
        box-sizing: border-box;
    }

    /* Deaktiviert Flexbox und erzwingt Block-Layout für das Stapeln */
    #dojo .grid-small,
    #links .grid-medium {
        display: block;
    }

    #dojo .grid-item,
    #links .grid-item {
        width: 100% !important;
        /* padding: 0 1rem 1rem 1rem !important; */
        box-sizing: border-box !important;
    }
}

/* Stellt sicher, dass die Yoga- und QiGong-Modals auf mobilen Geräten den gesamten Bildschirm ausfüllen */
@media (max-width: 959px) {
    #yoga-modal .modal-dialog,
    #qigong-modal .modal-dialog {
        width: 100%;
        max-width: 100%;
        min-height: 100%; /* Nimmt mindestens die volle Höhe ein, kann aber wachsen */
        margin: 0;
        border-radius: 0;
        display: flex; /* Ermöglicht dem Body, den verfügbaren Platz auszufüllen */
        flex-direction: column;
    }

    #yoga-modal .modal-body,
    #qigong-modal .modal-body {
        flex-grow: 1; /* Lässt den Body-Bereich wachsen */
    }
}

/* Dropcap-Stile für die Initialfunktion */
.dropcap {
    float: left;
    font-size: 3em;
    line-height: 0.8;
    margin: 0.1em 0.1em 0 0;
    padding: 0;
}

/* Tooltip-Stile im Stil der Webseite */
.tooltip-element {
    background-image: repeating-linear-gradient( /* Definiert das Hintergrundbild als sich wiederholenden Farbverlauf */
        to right,
        #98c379,
        #98c379 2px,
        #2d2d2dd9 2px,
        #2d2d2dd9 2px,
        transparent 4px,
        transparent 4px
    );
    background-repeat: repeat-x;    /* Wiederholt das Hintergrundbild horizontal */
    background-position: 0 100%;    /* Positioniert das Hintergrundbild unten und wiederholt es horizontal */
    background-size: 100% 2px;      /* Setzt die Höhe des Hintergrundbildes, also die Dicke der Linie */
    cursor: help;
    position: relative;
}
/*
.tooltip-element:hover::after {
    content: attr(title);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(51, 51, 51, 0.95);
    color: #98c379;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px solid #98c379;
    white-space: nowrap;
    z-index: 1000;
    font-size: 0.9em;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.tooltip-element:hover::before {
    content: '';
    position: absolute;
    bottom: 85%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color:  #98c379;
    z-index: 1001;
} */

/* Dateimanager Styles */
.file-manager-container {
    background: rgba(30, 30, 30, 0.95);
    border-radius: 8px;
    padding: 20px;
    max-height: 70vh;
    overflow-y: auto;
}

.file-manager-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #98c379;
}

.file-manager-toolbar .btn {
    margin: 0;
}

.directory-info {
    color: #98c379;
    font-size: 0.9em;
    opacity: 0.8;
}

.file-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.directory-section h3 {
    color: #98c379;
    margin-bottom: 10px;
    font-size: 1.2em;
    border-bottom: 1px solid rgba(152, 195, 121, 0.3);
    padding-bottom: 5px;
}

.file-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 10px;
}

.file-item {
    display: flex;
    align-items: center;
    background: rgba(40, 40, 40, 0.8);
    border: 1px solid rgba(152, 195, 121, 0.3);
    border-radius: 6px;
    padding: 12px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.file-item:hover {
    background: rgba(50, 50, 50, 0.9);
    border-color: #98c379;
}

.file-icon {
    width: 32px;
    height: 32px;
    margin-right: 12px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}

.file-icon.folder {
    background: rgba(152, 195, 121, 0.2);
    color: #98c379;
}

.file-icon.image {
    background: rgba(66, 153, 225, 0.2);
    color: #4299e1;
}

.file-icon.document {
    background: rgba(237, 137, 54, 0.2);
    color: #ed8936;
}

.file-icon.archive {
    background: rgba(214, 51, 132, 0.2);
    color: #d63384;
}

.file-icon.file {
    background: rgba(107, 114, 128, 0.2);
    color: #6b7280;
}

.file-info {
    flex-grow: 1;
    min-width: 0;
}

.file-name {
    color: #98c379;
    font-weight: bold;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 4px;
}

.file-details {
    color: rgba(152, 195, 121, 0.7);
    font-size: 0.8em;
}

.file-actions {
    margin-left: 10px;
}

.file-actions .btn {
    margin: 0;
    padding: 6px 8px;
    min-width: auto;
}

.no-files {
    color: rgba(152, 195, 121, 0.5);
    font-style: italic;
    text-align: center;
    padding: 20px;
    grid-column: 1 / -1;
}

.loading, .error {
    text-align: center;
    padding: 40px;
    color: #98c379;
    font-size: 1.1em;
}

.error {
    color: #f0506e;
}

/* Passt die CKEditor-Toolbar an, um Leerraum zu vermeiden */
.ck.ck-toolbar {
    display: inline-flex !important;
    max-width: 680px;
}

/* Basis-Stil für das Figure-Element, das Tabellen umschließt.
   Standardmäßig zentriert, da der Editor für die Zentrierung keine Klasse/Stil hinzufügt. */
.content-view .table {
    display: table;
    margin: 0.9em auto;
}

/* WICHTIG: Überschreibt den inline 'width: 100%'-Stil, der von der Editor-Konfiguration kommt,
   damit die Zentrierung (margin: auto) funktionieren kann. */
.content-view .table > table {
    width: auto !important;
}

.dsguv-container {
	background: rgba(51, 51, 51, 0.95);
	padding: 40px;
	margin-top: 40px;
	margin-bottom: 40px;
	border-radius: 10px;
  display: flow-root;
  /* 1 */
  box-sizing: content-box;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .dsguv-container {
	padding-left: 30px;
	padding-right: 30px;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .dsguv-container {
	padding-left: 40px;
	padding-right: 40px;
  }
}
/*
 * Remove margin from the last-child
 */
.dsguv-container > :last-child {
  margin-bottom: 0;
}
/*
 * Remove padding from nested containers
 */
.dsguv-container .dsguv-container {
  padding-left: 0;
  padding-right: 0;
}
/* Size modifier
 ========================================================================== */
.dsguv-container-xsmall {
  max-width: 750px;
}
.dsguv-container-small {
  max-width: 900px;
}
.dsguv-container-large {
  max-width: 1400px;
}
.dsguv-container-xlarge {
  max-width: 1600px;
}
.dsguv-container-expand {
  max-width: none;
}
/* Expand modifier
 ========================================================================== */
/*
 * Expand one side only
 */
.dsguv-container-expand-left {
  margin-left: 0;
}
.dsguv-container-expand-right {
  margin-right: 0;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .dsguv-container-expand-left.dsguv-container-xsmall,
  .dsguv-container-expand-right.dsguv-container-xsmall {
	max-width: calc(50% + (750px / 2) - 30px);
  }
  .dsguv-container-expand-left.dsguv-container-small,
  .dsguv-container-expand-right.dsguv-container-small {
	max-width: calc(50% + (900px / 2) - 30px);
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .dsguv-container-expand-left,
  .dsguv-container-expand-right {
	max-width: calc(50% + (1200px / 2) - 40px);
  }
  .dsguv-container-expand-left.dsguv-container-xsmall,
  .dsguv-container-expand-right.dsguv-container-xsmall {
	max-width: calc(50% + (750px / 2) - 40px);
  }
  .dsguv-container-expand-left.dsguv-container-small,
  .dsguv-container-expand-right.dsguv-container-small {
	max-width: calc(50% + (900px / 2) - 40px);
  }
  .dsguv-container-expand-left.dsguv-container-large,
  .dsguv-container-expand-right.dsguv-container-large {
	max-width: calc(50% + (1400px / 2) - 40px);
  }
  .dsguv-container-expand-left.dsguv-container-xlarge,
  .dsguv-container-expand-right.dsguv-container-xlarge {
	max-width: calc(50% + (1600px / 2) - 40px);
  }
}
/* Item
 ========================================================================== */
/*
 * Utility classes to reset container padding on the left or right side
 * Note: It has to be negative margin on the item, because it's specific to the item.
 */
.dsguv-container-item-padding-remove-left,
.dsguv-container-item-padding-remove-right {
  width: calc(100% + 15px);
}
.dsguv-container-item-padding-remove-left {
  margin-left: -15px;
}
.dsguv-container-item-padding-remove-right {
  margin-right: -15px;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .dsguv-container-item-padding-remove-left,
  .dsguv-container-item-padding-remove-right {
	width: calc(100% + 30px);
  }
  .dsguv-container-item-padding-remove-left {
	margin-left: -30px;
  }
  .dsguv-container-item-padding-remove-right {
	margin-right: -30px;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .dsguv-container-item-padding-remove-left,
  .dsguv-container-item-padding-remove-right {
	width: calc(100% + 40px);
  }
  .dsguv-container-item-padding-remove-left {
	margin-left: -40px;
  }
  .dsguv-container-item-padding-remove-right {
	margin-right: -40px;
  }
}

/* ===================================================================================
   Terminbuchung Styles
   =================================================================================== */

/* Appointment Date Section */
.appointments-date-section {
    margin-bottom: 40px;
}

.appointments-date-header {
    color: #EC9B4D;
    font-size: 1.5rem;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #EC9B4D;
}

/* Appointment Card */
.appointment-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.appointment-card .card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.appointment-card .appointment-details {
    flex: 1;
}

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

/* Appointment Card - Mobile: Volle Breite ohne Padding */
@media (max-width: 639px) {
    .appointments-date-section .grid-item {
        padding-left: 0;
        padding-right: 0;
        width: 100% !important;
    }
    
    .appointments-date-section .grid-small {
        margin-left: 0;
        margin-right: 0;
    }
}

.appointment-card .appointment-title {
    font-size: 1.2rem;
    font-weight: bold;
    color: #364726;
    margin-bottom: 10px;
}

.appointment-details {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 0.9rem;
}

.appointment-date,
.appointment-time,
.appointment-participants {
    color: #98c379;
}

.appointment-availability {
    font-weight: 500;
    margin-top: 5px;
}

.appointment-availability.fully-booked {
    color: #d32f2f;
}

/* Number Input Group */
.number-input-group {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid #98c379;
    border-radius: 5px;
    overflow: hidden;
    max-width: 200px;
}

.number-input-btn {
    background-color: #485542;
    border: none;
    padding: 4px 8px;
    font-size: 34px;
    font-weight: bold;
    cursor: pointer;
    min-width: 36px;
    min-height: 32px;
    transition: background-color 0.2s;
    user-select: none;
    color: #98c379;
}

.number-input-btn:hover:not(:disabled) {
    background-color: rgba(152, 195, 121, 0.2);
    color: #EC9B4D;
}

.number-input-btn:active:not(:disabled) {
    background-color: rgba(152, 195, 121, 0.3);
}

.number-input-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.number-input-group input[type="number"] {
    flex: 1;
    border: none;
    border-left: 1px solid #98c379;
    border-right: 1px solid #98c379;
    padding: 4px 8px;
    text-align: center;
    font-size: 22px;
    min-width: 0;
    appearance: textfield;
    -moz-appearance: textfield;
    background-color: rgba(51, 51, 51, 0.95);
    color: #98c379;
}

.number-input-group input[type="number"]::-webkit-outer-spin-button,
.number-input-group input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Appointment Selection */
.appointment-option {
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 15px;
    margin-bottom: 15px;
    background-color: rgba(51, 51, 51, 0.95);
    transition: border-color 0.2s, box-shadow 0.2s;
}

.appointment-option:hover {
    border-color: #EC9B4D;
}

.appointment-option:has(input[type="checkbox"]:checked) {
    border-color: #EC9B4D;
    box-shadow: 0 0 0 2px rgba(236, 155, 77, 0.2);
}

.appointment-checkbox-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    gap: 12px;
    flex-wrap: wrap;
}

.appointment-title-text {
    font-size: 1.2rem;
    font-weight: 500;
    color: #EC9B4D;
    flex: 0 0 auto;
    margin-right: auto;
    line-height: 1.4;
}

.appointment-checkbox-label input[type="checkbox"] {
    margin-top: 4px;
    width: 1.0rem;
    height: 1.0rem;
    cursor: pointer;
    flex-shrink: 0;
    accent-color: #EC9B4D;
}

.appointment-checkbox-label input[type="checkbox"]:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.appointment-info {
    flex: 1 1 100%;
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 4px;
    width: 100%;
    margin-left: 2px; /* Abstand für Checkbox + Titel */
}

.appointment-info span {
    font-size: 14px;
    color: #98c379;
}

.appointment-info .availability {
    font-size: 14px;
    font-weight: 500;
    margin-top: 5px;
}

.participant-count-group {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.participant-count-group label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #98c379;
}

/* Form Styles */
.form-group {
    margin-bottom: 20px;
}

/* Booking Modal - Reduzierte Formular-Abstände */
#booking-modal .form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #98c379;
}

.form-group input[type="text"],
.form-group input[type="email"] {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 16px;
    background-color: rgba(51, 51, 51, 0.95);
    color: #f5f5f5;
    box-sizing: border-box;
}

.form-group input[type="text"]:focus,
.form-group input[type="email"]:focus {
    outline: none;
    border-color: #EC9B4D;
    box-shadow: 0 0 0 2px rgba(236, 155, 77, 0.2);
}

.form-group small {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    color: #98c379;
    opacity: 0.8;
}

.form-actions {
    display: flex;
    gap: 10px;
    margin-top: 30px;
    justify-content: flex-end;
}

/* Booking Modal - Reduzierter Abstand für Form Actions */
#booking-modal .form-actions {
    margin-top: 15px;
}

.form-actions .button {
    min-width: 120px;
}

/* Mobile Anpassungen */
@media (max-width: 768px) {
    .appointments-date-header {
        font-size: 1.3rem;
    }

    .number-input-group {
        max-width: 100%;
    }

    .number-input-btn {
        min-width: 50px;
        padding: 4px 8px;
    }

    .appointment-option {
        padding: 12px;
    }

    .appointment-checkbox-label {
        gap: 10px;
    }

    .appointment-info strong {
        font-size: 15px;
    }

    .appointment-info span {
        font-size: 14px;
    }

    .form-actions {
        flex-direction: column;
    }

    .form-actions .button {
        width: 100%;
    }
}

/* Badge Styles für Buchungsstatus */
.badge {
    display: inline-block;
    padding: 5px 10px;
    border-radius: 3px;
    font-size: 1.1em;
    font-weight: 800;
}

.badge-success {
    /* background-color: #28a745; */
    color: #28a745;
}

.badge-danger {
    /* background-color: #dc3545; */
    color: #dc3545;
}

.badge-warning {
    /* background-color: #ffc107; */
    color: #ffc107;
}

.button-danger {
    background-color: #d9534f;
    border-color: #c9302c;
    color: #fff;
}

.button-danger:hover {
    background-color: #c9302c;
    border-color: #ac2925;
}

/* Buchungstabelle Styles */
.bookings-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    font-size: 0.9em;
}

.bookings-table thead {
    background-color: rgba(54, 71, 38, 0.3);
}

.bookings-table th {
    padding: 10px 8px;
    text-align: left;
    font-weight: 600;
    color: #f5f5f5;
    border-bottom: 2px solid rgba(152, 195, 121, 0.3);
}

.bookings-table td {
    padding: 8px;
    border-bottom: 1px solid rgba(152, 195, 121, 0.1);
    vertical-align: middle;
}

.bookings-table tbody tr:hover {
    background-color: rgba(152, 195, 121, 0.05);
}

.bookings-table .participant-count-input {
    width: 60px;
    padding: 4px 6px;
    border: 1px solid #ddd;
    border-radius: 3px;
    background-color: rgba(51, 51, 51, 0.95);
    color: #f5f5f5;
    font-size: 0.9em;
    text-align: center;
}

.bookings-table .participant-count-input:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* .bookings-table a {
    color: hsl(95 38.1% 62%);
    text-decoration: none;
}

.bookings-table a:hover {
    text-decoration: underline;
}

/* Responsive für kleine Bildschirme */
@media (max-width: 768px) {
    .bookings-table {
        font-size: 0.85em;
    }
    
    .bookings-table th,
    .bookings-table td {
        padding: 6px 4px;
    }
    
    .bookings-table .participant-count-input {
        width: 50px;
        padding: 3px 4px;
    }
}

