/* STEGOS IMMOBILIEN ACCESSIBILITY */
/* CREATED BY LISA ENGEL */
/* Accessibility ist super wichtig. Achten Sie auf die Menschen in ihrem Umfeld. */

/* Lightmode */
html[data-contrast="light"] .bgSlider { 
	display: none !important;
}

html[data-contrast="light"] body {
	background: #ffffff !important; color: #000000 !important;
}

html[data-contrast="light"] header,
html[data-contrast="light"] footer {
	background: #e8e8e8 !important; color: #000000 !important;
}

html[data-contrast="light"] header.main-header::after {
	display: none !important;
}

html[data-contrast="light"] nav a {
    color: #000000 !important;
    background: #ffffff !important;
    border: 2px solid #000066 !important;
    text-shadow: none !important;
    animation: none !important;
    border-radius: 8px !important;
}

html[data-contrast="light"] nav a:hover,
html[data-contrast="light"] nav a.active {
    background: #000066 !important;
    color: #ffffff !important;
    border-color: #000066 !important;
}

html[data-contrast="light"] .phone-tile {
    background: #000066 !important;
    color: #ffffff !important;
    border: 2px solid #000000 !important;
}

html[data-contrast="light"] main {
	background: #ffffff !important;
}

html[data-contrast="light"] .content h1,
html[data-contrast="light"] .content h2 {
    font-family: Arial, sans-serif !important;
    color: #000000 !important;
    text-shadow: none !important;
}

html[data-contrast="light"] .content p {
    color: #000000 !important;
    text-shadow: none !important;
    font-size: 18px !important;
}

html[data-contrast="light"] .content a,
html[data-contrast="light"] .content a:visited {
    color: #000000 !important;
    text-decoration: underline !important;
}

html[data-contrast="light"] .content-inner {
    background: #f5f5f5 !important;
    border: 2px solid #000000 !important;
    box-shadow: none !important;
}

html[data-contrast="light"] .content-inner:hover {
    background: #ebebeb !important;
}

html[data-contrast="light"] footer.footer {
    background: #e8e8e8 !important;
    border-top: 3px solid #000000 !important;
    color: #000000 !important;
}

html[data-contrast="light"] footer a {
	color: #000066 !important;
	text-decoration: underline !important;
}

html[data-contrast="light"] footer strong {
	color: #000000 !important;
}

html[data-contrast="light"] .contact-form input,
html[data-contrast="light"] .contact-form textarea {
    background: #ffffff !important;
    color: #000000 !important;
    border: 2px solid #000000 !important;
}

html[data-contrast="light"] .contact-form button {
    background: #000066 !important;
    color: #ffffff !important;
    border: 2px solid #000000 !important;
}

html[data-contrast="light"] .privacy-wrapper label {
	color: #000000 !important;
}

html[data-contrast="light"] .privacy-wrapper a {
	color: #000066 !important;
	text-decoration: underline !important;
}

html[data-contrast="light"] .form-success {
	background: #000066 !important; color: #ffffff !important;
}

html[data-contrast="light"] .form-error {
	background: #000000 !important; color: #ffffff !important; border-left: 4px solid #0000cc !important;
}

html[data-contrast="light"] .dl-card {
    background: #f0f4f7 !important;
    border: 2px solid #a8bec9 !important;
    backdrop-filter: none !important;
}

html[data-contrast="light"] .dl-card:hover {
    background: #e0eaef !important;
    border-color: #304b59 !important;
    transform: translateY(-2px);
}

html[data-contrast="light"] .dl-card-preview {
    background: #dde8ee !important;
    border-bottom: 2px solid #a8bec9 !important;
}

html[data-contrast="light"] .dl-card-preview:hover {
    background: #ccdbe4 !important;
}

html[data-contrast="light"] .dl-card-title {
    color: #1f2933 !important;
    text-shadow: none !important;
}

html[data-contrast="light"] .dl-card-desc {
    color: #374151 !important;
    text-shadow: none !important;
}

html[data-contrast="light"] .dl-card-footer {
    border-top: 1px solid #a8bec9 !important;
}

html[data-contrast="light"] .dl-meta {
    color: #4b5563 !important;
}

html[data-contrast="light"] .dl-btn-download {
    background: #304b59 !important;
    color: #ffffff !important;
    border: 2px solid #304b59 !important;
}

html[data-contrast="light"] .dl-btn-download:hover {
    background: #3f6478 !important;
    border-color: #3f6478 !important;
}

html[data-contrast="light"] .dl-filter-btn {
    background: #dde8ee !important;
    color: #1f2933 !important;
    border: 1px solid #a8bec9 !important;
}

html[data-contrast="light"] .dl-filter-btn:hover {
    background: #c8d8e2 !important;
    color: #1f2933 !important;
}

html[data-contrast="light"] .dl-filter-btn.active {
    background: #304b59 !important;
    color: #ffffff !important;
    border-color: #304b59 !important;
}

html[data-contrast="light"] .dl-count {
    background: rgba(0,0,0,0.12) !important;
    color: inherit !important;
}

html[data-contrast="light"] .dl-filter-btn.active .dl-count {
    background: rgba(255,255,255,0.25) !important;
}

html[data-contrast="light"] .dl-search-wrap {
    background: #ffffff !important;
    border: 2px solid #a8bec9 !important;
    color: #374151 !important;
}

html[data-contrast="light"] .dl-search-wrap:focus-within {
    border-color: #304b59 !important;
}

html[data-contrast="light"] .dl-search {
    color: #1f2933 !important;
}

html[data-contrast="light"] .dl-search::placeholder {
    color: #6b7280 !important;
}

html[data-contrast="light"] .dl-badge {
    background: #3f6478 !important;
    color: #ffffff !important;
}

html[data-contrast="light"] .dl-preview-hint {
    background: rgba(30, 55, 70, 0.9) !important;
    color: #ffffff !important;
}

html[data-contrast="light"] .dl-empty,
html[data-contrast="light"] .dl-empty-state,
html[data-contrast="light"] .dl-intro {
    color: #1f2933 !important;
    text-shadow: none !important;
}

html[data-contrast="light"] .dl-modal-box {
    background: #f0f4f7 !important;
    border: 2px solid #304b59 !important;
}

html[data-contrast="light"] .dl-modal-header {
    border-bottom: 2px solid #a8bec9 !important;
}

html[data-contrast="light"] .dl-modal-title {
    color: #1f2933 !important;
}

html[data-contrast="light"] .dl-modal-dl-btn {
    background: #304b59 !important;
    color: #ffffff !important;
}

html[data-contrast="light"] .dl-modal-close-btn {
    background: #dde8ee !important;
    color: #1f2933 !important;
    border: 1px solid #a8bec9 !important;
}

html[data-contrast="light"] .dl-modal-close-btn:hover {
    background: #c8d8e2 !important;
}

html[data-contrast="light"] .dl-pdf-icon {
    --dl-pdf-bg:     #e0eaef !important;
    --dl-pdf-fold:   #c8d8e2 !important;
    --dl-pdf-border: #8faec0 !important;
    --dl-pdf-line:   #304b59 !important;
}

/* Darkmode */
html[data-contrast="dark"] .bgSlider { 
	display: none !important; 
}

html[data-contrast="dark"] body {
	background: #000000 !important;
	color: #ffffff !important;
}

html[data-contrast="dark"] header,
html[data-contrast="dark"] footer {
	background: #0a0a0a !important;
	color: #ffffff !important;
}

html[data-contrast="dark"] header.main-header::after {
	display: none !important;
}

html[data-contrast="dark"] nav a {
    color: #ffffff !important;
    background: #111111 !important;
    border: 2px solid #4499ff !important;
    text-shadow: none !important;
    animation: none !important;
    border-radius: 8px !important;
}

html[data-contrast="dark"] nav a:hover,
html[data-contrast="dark"] nav a.active {
    background: #4499ff !important;
    color: #000000 !important;
    border-color: #ffffff !important;
}

html[data-contrast="dark"] .phone-tile {
    background: #4499ff !important;
    color: #000000 !important;
    border: 2px solid #ffffff !important;
    font-weight: 700 !important;
}

html[data-contrast="dark"] main {
	background: #000000 !important;
}

html[data-contrast="dark"] .content h1,
html[data-contrast="dark"] .content h2 {
    font-family: Arial, sans-serif !important;
    color: #FFFFFF !important;
    text-shadow: none !important;
}

html[data-contrast="dark"] .content p {
    color: #ffffff !important;
    text-shadow: none !important;
    font-size: 18px !important;
}

html[data-contrast="dark"] .content a,
html[data-contrast="dark"] .content a:visited {
    color: #ffffff !important;
    text-decoration: underline !important;
}

html[data-contrast="dark"] .content-inner {
    background: #111111 !important;
    border: 2px solid #4499ff !important;
    box-shadow: none !important;
}

html[data-contrast="dark"] .content-inner:hover {
    background: #1a1a1a !important;
}

html[data-contrast="dark"] footer.footer {
    background: #0a0a0a !important;
    border-top: 3px solid #4499ff !important;
    color: #ffffff !important;
}

html[data-contrast="dark"] footer a { color: #4499ff !important; text-decoration: underline !important; }
html[data-contrast="dark"] footer strong { color: #ffffff !important; }
html[data-contrast="dark"] .contact-form input,
html[data-contrast="dark"] .contact-form textarea {
    background: #111111 !important;
    color: #ffffff !important;
    border: 2px solid #4499ff !important;
}

html[data-contrast="dark"] .contact-form button {
    background: #4499ff !important;
    color: #000000 !important;
    border: 2px solid #ffffff !important;
    font-weight: 700 !important;
}

html[data-contrast="dark"] .privacy-wrapper label {
	color: #ffffff !important;
}

html[data-contrast="dark"] .privacy-wrapper a {
	color: #4499ff !important; text-decoration: underline !important;
}

html[data-contrast="dark"] .form-success {
	background: #4499ff !important; color: #000000 !important;
}

html[data-contrast="dark"] .form-error {
	background: #111111 !important; color: #ffffff !important; border-left: 4px solid #4499ff !important;
}

html[data-contrast="dark"] .dl-card {
    background: #0d1f2a !important;
    border: 2px solid #4499ff !important;
    backdrop-filter: none !important;
}

html[data-contrast="dark"] .dl-card:hover {
    background: #142736 !important;
    border-color: #88bbff !important;
}

html[data-contrast="dark"] .dl-card-preview {
    background: #0a1920 !important;
    border-bottom: 2px solid #2255aa !important;
}

html[data-contrast="dark"] .dl-card-preview:hover {
    background: #0e2233 !important;
}

html[data-contrast="dark"] .dl-card-title {
    color: #ffffff !important;
    text-shadow: none !important;
}

html[data-contrast="dark"] .dl-card-desc {
    color: #aaccee !important;
    text-shadow: none !important;
}

html[data-contrast="dark"] .dl-card-footer {
    border-top: 1px solid #2255aa !important;
}

html[data-contrast="dark"] .dl-meta {
    color: #7aaabb !important;
}

html[data-contrast="dark"] .dl-btn-download {
    background: #1a3a55 !important;
    color: #ffffff !important;
    border: 2px solid #4499ff !important;
}

html[data-contrast="dark"] .dl-btn-download:hover {
    background: #4499ff !important;
    color: #000000 !important;
    border-color: #88bbff !important;
}

html[data-contrast="dark"] .dl-filter-btn {
    background: #0d1f2a !important;
    color: #aaccee !important;
    border: 2px solid #2255aa !important;
}

html[data-contrast="dark"] .dl-filter-btn:hover {
    background: #1a3a55 !important;
    color: #ffffff !important;
    border-color: #4499ff !important;
}

html[data-contrast="dark"] .dl-filter-btn.active {
    background: #4499ff !important;
    color: #000000 !important;
    border-color: #88bbff !important;
    font-weight: 700 !important;
}

html[data-contrast="dark"] .dl-count {
    background: rgba(68,153,255,0.2) !important;
}

html[data-contrast="dark"] .dl-filter-btn.active .dl-count {
    background: rgba(0,0,0,0.25) !important;
}

html[data-contrast="dark"] .dl-search-wrap {
    background: #0a1920 !important;
    border: 2px solid #2255aa !important;
    color: #aaccee !important;
}

html[data-contrast="dark"] .dl-search-wrap:focus-within {
    border-color: #4499ff !important;
}

html[data-contrast="dark"] .dl-search {
    color: #ffffff !important;
}

html[data-contrast="dark"] .dl-search::placeholder {
    color: #557799 !important;
}

html[data-contrast="dark"] .dl-badge {
    background: #4499ff !important;
    color: #000000 !important;
    font-weight: 700 !important;
}

html[data-contrast="dark"] .dl-preview-hint {
    background: rgba(0, 20, 40, 0.9) !important;
    color: #ffffff !important;
}

html[data-contrast="dark"] .dl-empty,
html[data-contrast="dark"] .dl-empty-state,
html[data-contrast="dark"] .dl-intro {
    color: #aaccee !important;
    text-shadow: none !important;
}

html[data-contrast="dark"] .dl-modal-box {
    background: #0a1920 !important;
    border: 2px solid #4499ff !important;
}

html[data-contrast="dark"] .dl-modal-header {
    border-bottom: 2px solid #2255aa !important;
}

html[data-contrast="dark"] .dl-modal-title {
    color: #ffffff !important;
}

html[data-contrast="dark"] .dl-modal-dl-btn {
    background: #4499ff !important;
    color: #000000 !important;
    font-weight: 700 !important;
}

html[data-contrast="dark"] .dl-modal-dl-btn:hover {
    background: #88bbff !important;
}

html[data-contrast="dark"] .dl-modal-close-btn {
    background: #1a3a55 !important;
    color: #ffffff !important;
    border: 1px solid #2255aa !important;
}

html[data-contrast="dark"] .dl-modal-close-btn:hover {
    background: #4499ff !important;
    color: #000000 !important;
}

html[data-contrast="dark"] .dl-pdf-icon {
    --dl-pdf-bg:     #0d2233 !important;
    --dl-pdf-fold:   #0a1a28 !important;
    --dl-pdf-border: #2255aa !important;
    --dl-pdf-line:   #4499ff !important;
}

/* keine Animationen */
html[data-no-animations="true"] *,
html[data-no-animations="true"] *::before,
html[data-no-animations="true"] *::after {
	animation: none !important;
	transition: none !important;
}

html[data-no-animations="true"] .bgSlider::after {
    content: '';
    position: fixed;
    inset: 0;
    background: url('assets/img/bg1.webp') center top / cover no-repeat;
    z-index: 0;
}

html[data-no-animations="true"] .dl-card {
    animation: none !important;
}

html[data-no-animations="true"] .dl-card:hover {
    transform: none !important;
}

html[data-no-animations="true"] .dl-card:hover .dl-pdf-icon {
    transform: none !important;
}

html[data-no-animations="true"] .dl-modal-box {
    transform: none !important;
    transition: none !important;
}

/* Screenreader */
html[data-screenreader="true"] .bgSlider  {
	display: none !important;
}

html[data-screenreader="true"] .jubilaeum {
	display: none !important;
}

html[data-screenreader="true"] body {
	font-size: 1.3rem !important; line-height: 2 !important;
}

html[data-screenreader="true"] nav a {
	display: block !important; margin-bottom: 8px !important; font-size: 1.2rem !important;
}

html[data-screenreader="true"] a:focus,
html[data-screenreader="true"] button:focus,
html[data-screenreader="true"] input:focus,
html[data-screenreader="true"] textarea:focus {
	outline: 4px solid #0055cc !important; outline-offset: 3px !important;
}

html[data-screenreader="true"] .dl-card {
    display: block !important;
    background: transparent !important;
    border: 2px solid #0055cc !important;
    border-radius: 8px !important;
    margin-bottom: 12px !important;
    backdrop-filter: none !important;
}

html[data-screenreader="true"] .dl-card:hover {
    transform: none !important;
}

/* Vorschau-Button im Screenreader klar beschriften */
html[data-screenreader="true"] .dl-card-preview {
    height: auto !important;
    padding: 12px 16px !important;
    background: #0055cc !important;
    border-bottom: 2px solid #0033aa !important;
    justify-content: flex-start !important;
    gap: 10px;
}

html[data-screenreader="true"] .dl-pdf-icon {
    width: 32px !important;
}

html[data-screenreader="true"] .dl-preview-hint {
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    background: transparent !important;
    color: #ffffff !important;
    font-size: 0.9rem !important;
    padding: 0 !important;
    pointer-events: none;
}

html[data-screenreader="true"] .dl-card-title {
    font-size: 1.1rem !important;
    color: #ffffff !important;
    text-shadow: none !important;
}

html[data-screenreader="true"] .dl-card-desc {
    font-size: 1rem !important;
    line-height: 1.8 !important;
    color: rgba(255,255,255,0.85) !important;
}

html[data-screenreader="true"] .dl-btn-download {
    font-size: 1rem !important;
    padding: 10px 18px !important;
    border: 2px solid #ffffff !important;
}

html[data-screenreader="true"] .dl-btn-download:focus,
html[data-screenreader="true"] .dl-card-preview:focus,
html[data-screenreader="true"] .dl-filter-btn:focus,
html[data-screenreader="true"] .dl-search:focus,
html[data-screenreader="true"] .dl-modal-dl-btn:focus,
html[data-screenreader="true"] .dl-modal-close-btn:focus {
    outline: 4px solid #0055cc !important;
    outline-offset: 3px !important;
}

html[data-screenreader="true"] .dl-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
}

html[data-screenreader="true"] .dl-badge {
    position: static !important;
    display: inline-block !important;
    margin-left: 8px !important;
    font-size: 0.8rem !important;
    padding: 2px 10px !important;
}

html[data-screenreader="true"] .dl-filter-btn {
    font-size: 1rem !important;
    padding: 10px 18px !important;
}

html[data-screenreader="true"] .dl-modal-overlay {
    align-items: flex-start !important;
    padding-top: 40px !important;
}

html[data-screenreader="true"] #dl-pdf-frame {
    height: 55vh !important;
}

/* Skip Link */
.skip-link {
    position: absolute; top: -100px; left: 0;
    background: #000066; color: #ffffff;
    padding: 10px 20px; font-size: 1.1rem; font-weight: 700;
    z-index: 9999; text-decoration: none;
    border-radius: 0 0 8px 0; transition: top 0.2s;
}

.skip-link:focus { 
	top: 0 !important;
}

/* a11y GUI */
#a11y-toggle-btn {
    position: fixed;
	bottom: 80px;
	right: 20px;
	z-index: 10;
    background: #bfd6e3;
	color: #fff;
	border: none;
	border-radius: 50%;
    width: 52px; 
	height: 52px;
	font-size: 22px; 
	cursor: pointer;
    box-shadow: 0 4px 16px rgba(0,0,0,0.35);
    display: flex;
	align-items: center;
	justify-content: center;
}

#a11y-toggle-btn:hover,
#a11y-toggle-btn:focus {
	background: #829cab;
	outline: 3px solid #fff;
}

#a11y-panel {
    position: fixed;
	bottom: 145px;
	right: 20px;
	z-index: 1100;
    background: #1f2933;
	color: #fff; 
	border-radius: 14px;
    padding: 20px 22px;
	width: 310px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.45);
    display: none;
	flex-direction: column;
	gap: 16px;
    font-family: "Segoe UI", Arial, sans-serif;
}

#a11y-panel.open {
	display: flex;
}

#a11y-panel h2 {
    font-size: 1rem; font-weight: 700; margin: 0 0 4px 0;
    letter-spacing: 0.04em; border-bottom: 1px solid rgba(255,255,255,0.2);
    padding-bottom: 8px; color: #fff;
}

.a11y-section-label {
    font-size: 0.78rem; text-transform: uppercase;
    letter-spacing: 0.08em; color: #8faec0; margin-bottom: 6px; display: block;
}

.a11y-btn-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.a11y-btn {
    background: #304b59; color: #fff; border: 2px solid transparent;
    border-radius: 8px; padding: 7px 12px; font-size: 0.82rem; cursor: pointer; line-height: 1.3;
}

.a11y-btn:hover {
	background: #3f6478;
}

.a11y-btn.a11y-active {
	border-color: #4499ff;
	background: #3f6478;
	color: #ffffff;
	font-weight: 600;
}

.a11y-reset-btn {
    background: transparent; 
	color: #aaa; 
	border: 1px solid #aaa;
    border-radius: 8px;
	padding: 6px 12px;
	font-size: 0.78rem;
    cursor: pointer;
	width: 100%;
	margin-top: 4px;
}

.a11y-reset-btn:hover { 
	background: #333; 
	color: #fff; 
	border-color: #fff;
}

#a11y-close-btn {
    position: absolute;
	top: 10px;
	right: 14px;
	background: transparent;
    border: none;
	color: #aaa;
	font-size: 1.2rem;
	cursor: pointer;
    line-height: 1;
	padding: 2px 6px;
	border-radius: 4px;
}

#a11y-close-btn:hover {
	color: #fff;
	background: rgba(255,255,255,0.1);
}

@media (max-width: 900px) {
    #a11y-panel { right: 10px; bottom: 130px; width: calc(100vw - 20px); max-width: 320px; }
    #a11y-toggle-btn { right: 10px; bottom: 70px; }
}