/* ==========================================================================
   DACOWA THEME — MONOLITH EDITION
   Brutalistisch, reduziert, mutig. Kein Radius, keine Schatten, nur Kanten.
   ========================================================================== */

/* --- FONTS --- */
@font-face { font-family:'Source Sans 3'; src:url('../fonts/source-sans-3-regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Source Sans 3'; src:url('../fonts/source-sans-3-semibold.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Source Sans 3'; src:url('../fonts/source-sans-3-bold.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }

/* --- DESIGN TOKENS --- */
:root {
    --clr-black:      #1a1c1c;
    --clr-white:      #ffffff;
    --clr-bg:         #f9f9f9;
    --clr-surface:    #eeeeee;
    --clr-surface-lo: #f3f3f3;
    --clr-border:     #e2e2e2;
    --clr-muted:      #777777;
    --clr-text:       #1a1c1c;
    --clr-text-light: #5d5d5d;
    --clr-red:        #B22234;
    --clr-red-dk:     #8B1A29;
    --clr-red-bg:     #b91c21;
    --clr-anthracite: #4A4A4A;
    --ff: 'Source Sans 3', 'Inter', 'Segoe UI', sans-serif;
    --fs-xs:   0.625rem;   /* 10px */
    --fs-sm:   0.8125rem;  /* 13px */
    --fs-base: 1rem;       /* 16px */
    --fs-md:   1.125rem;   /* 18px */
    --fs-lg:   1.5rem;     /* 24px */
    --fs-xl:   clamp(1.75rem, 1.2rem + 2vw, 3rem);
    --fs-2xl:  clamp(2.5rem, 1.5rem + 4vw, 5rem);
    --fs-hero: clamp(3.5rem, 2rem + 8vw, 9rem);
    --header-height: 80px;
    --top-bar-height: 48px;
    --transition: 300ms ease;
}

/* --- RESET --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }
body { font-family: var(--ff); font-size: var(--fs-base); line-height: 1.6; color: var(--clr-text); background: var(--clr-bg); -webkit-font-smoothing: antialiased; }
img, video, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--clr-red); text-decoration: none; transition: opacity var(--transition); }
a:hover { opacity: 0.7; }
a:focus-visible { outline: 3px solid var(--clr-red); outline-offset: 3px; }
h1,h2,h3,h4,h5,h6 { font-weight: 900; text-transform: uppercase; letter-spacing: -0.03em; line-height: 0.9; color: var(--clr-red); }
ul, ol { list-style: none; }

/* --- A11Y --- */
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.screen-reader-text:focus { position: fixed; top: 5px; left: 5px; z-index: 100000; display: block; width: auto; height: auto; padding: 0.5em 1em; clip: auto; font-weight: 700; color: var(--clr-white); background: var(--clr-red); }

/* --- LAYOUT --- */
.container { width: 100%; max-width: 1400px; margin-inline: auto; padding-inline: 2.5rem; }

/* --- TAG (Label) --- */
.tag, .section-header__eyebrow { display: inline-block; font-size: var(--fs-base); font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--clr-red); margin-bottom: 1.5rem; }

/* --- BUTTONS --- */
.btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 1.1em 2.5em; font-family: var(--ff); font-size: var(--fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; line-height: 1; text-decoration: none; border: none; cursor: pointer; transition: all var(--transition); }
.btn--primary { background: var(--clr-red-bg); color: var(--clr-white); }
.btn--primary:hover { opacity: 1; background: var(--clr-red-dk); transform: translateX(4px); }
.btn--ghost { border: 2px solid var(--clr-white); color: var(--clr-white); background: transparent; }
.btn--ghost:hover { opacity: 1; background: var(--clr-white); color: var(--clr-black); }
.btn--white { background: var(--clr-white); color: var(--clr-red); }
.btn--outline-white { border: 2px solid var(--clr-white); color: var(--clr-white); background: transparent; }
.btn--outline-white:hover { opacity: 1; background: var(--clr-white); color: var(--clr-red); }
.btn:focus-visible { outline: 3px solid var(--clr-red); outline-offset: 3px; }

/* --- TOP BAR --- */
.top-bar { background: var(--clr-black); color: #bbbbbb; font-size: var(--fs-sm); height: var(--top-bar-height); border-bottom: 1px solid rgba(255,255,255,0.1); }
.top-bar__inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 1rem; }
.top-bar__left { display: flex; align-items: center; gap: 2rem; }
.top-bar__location { display: flex; align-items: center; gap: 0.25rem; }
.top-bar a { color: #bbbbbb; text-decoration: none; }
.top-bar a:hover { color: var(--clr-white); opacity: 1; }
.top-bar__badge { color: var(--clr-white); font-weight: 700; letter-spacing: 0.05em; }
.top-bar__email { display: flex; align-items: center; gap: 0.25rem; }
@media (max-width: 768px) { .top-bar__email span, .top-bar__badge { display: none; } }

/* --- HEADER --- */
/* Site-Header: fixed — minimaler Code, !important damit User-Inline-CSS ihn nicht überschreiben kann */
.site-header { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 9999 !important; width: 100% !important; }
.header-main { background: rgba(255,255,255,0.97); backdrop-filter: blur(10px); position: relative; z-index: 1; height: var(--header-height); border-bottom: 1px solid var(--clr-border); transition: box-shadow var(--transition); }
.header-main.is-scrolled { box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.header-main__inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 2rem; }
/* Body: Platz für fixed Header — JS setzt --dacowa-header-total dynamisch */
body { padding-top: var(--dacowa-header-total, 130px); }
/* HTML/Body dürfen keine Transforms/Filters haben — sonst bricht position:fixed */
html, body { transform: none !important; filter: none !important; perspective: none !important; }
/* Sicherheitsnetz gegen horizontales Overflow.
   `overflow-x: clip` (statt hidden) verhindert das Anlegen eines neuen
   Scroll-Containers — so bleibt scroll-behavior:smooth und position:sticky
   intakt. Nur am body, nicht am html (sonst bricht smooth-scroll in Safari). */
body { overflow-x: clip; max-width: 100%; }
.admin-bar .site-header { top: 32px !important; }
.admin-bar body { padding-top: calc(var(--dacowa-header-total, 130px) + 32px); }
@media (max-width: 782px) {
    .admin-bar .site-header { top: 46px !important; }
    .admin-bar body { padding-top: calc(var(--dacowa-header-total, 130px) + 46px); }
}

/* --- LOGO --- */
.site-logo { display: flex; flex-wrap: wrap; align-items: baseline; text-decoration: none; line-height: 1; }
.site-logo__da, .site-logo__co, .site-logo__wa { font-weight: 900; font-size: 1.75rem; letter-spacing: -0.03em; }
.site-logo__da { color: var(--clr-red); }
.site-logo__co { color: var(--clr-black); }
.site-logo__wa { color: var(--clr-red); }
.site-logo__sub { width: 100%; font-size: var(--fs-xs); color: #555555; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; margin-top: 2px; }

/* --- NAV --- */
.primary-menu { display: flex; align-items: center; gap: 0; }
.primary-menu > li { position: relative; }
.primary-menu > li > a { display: flex; align-items: center; gap: 0.25rem; padding: 0.75rem 1rem; font-size: var(--fs-base); font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: #1a1c1c; text-decoration: none; opacity: 1; transition: color var(--transition); }
.primary-menu > li > a:hover, .primary-menu > li.current-menu-item > a, .primary-menu > li.current-page-ancestor > a { color: var(--clr-red); }
.primary-menu > li.current-menu-item > a::after, .primary-menu > li.current-page-ancestor > a::after { content: ''; position: absolute; bottom: 0; left: 1rem; right: 1rem; height: 3px; background: var(--clr-red); }
.dropdown-arrow { transition: transform var(--transition); }
.primary-menu > li:hover .dropdown-arrow { transform: rotate(180deg); }

/* Submenu */
.sub-menu { position: absolute; top: 100%; left: 0; min-width: 220px; background: var(--clr-white); border: 1px solid var(--clr-border); border-top: 3px solid var(--clr-red); opacity: 0; visibility: hidden; transform: translateY(4px); transition: all 200ms ease; z-index: 100; }
.primary-menu > li:hover > .sub-menu, .primary-menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.sub-menu a { display: block; padding: 0.75rem 1rem; font-size: var(--fs-sm); color: var(--clr-text); border-bottom: 1px solid var(--clr-surface-lo); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.sub-menu li:last-child a { border-bottom: none; }
.sub-menu a:hover { background: var(--clr-surface-lo); color: var(--clr-red); opacity: 1; }

/* --- HEADER CTA --- */
.header-cta__phone { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.65em 1.4em; background: var(--clr-red-bg); color: var(--clr-white); font-weight: 700; font-size: var(--fs-sm); text-decoration: none; letter-spacing: 0.02em; transition: background var(--transition); white-space: nowrap; }
.header-cta__phone:hover { background: var(--clr-red-dk); opacity: 1; }
@media (max-width: 768px) { .header-cta { display: none; } }

/* --- MOBILE MENU --- */
.menu-toggle { display: none; background: none; border: none; cursor: pointer; padding: 0.5rem; z-index: 1001; }
.hamburger { display: flex; flex-direction: column; gap: 5px; width: 24px; }
.hamburger__line { display: block; width: 100%; height: 2px; background: var(--clr-black); transition: transform var(--transition), opacity 150ms ease; }
.menu-toggle[aria-expanded="true"] .hamburger__line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .hamburger__line:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .hamburger__line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 960px) {
    .menu-toggle { display: block; }
    /* Mobile: Header voll sichtbar */
    .header-main { background: #ffffff !important; backdrop-filter: none !important; box-shadow: 0 2px 8px rgba(0,0,0,0.08); height: auto; padding: 0.75rem 0; }
    /* Mobile: Logo mittig, Hamburger darunter — !important verhindert Override durch User-Inline-CSS */
    .header-main__inner { display: grid !important; grid-template-columns: 1fr !important; place-items: center !important; justify-items: center !important; gap: 0.5rem !important; height: auto !important; padding-top: 0 !important; padding-bottom: 0 !important; padding-left: 1.25rem !important; padding-right: 1.25rem !important; margin-left: auto !important; margin-right: auto !important; max-width: 100% !important; text-align: center !important; box-sizing: border-box !important; }
    .site-branding { width: auto !important; display: inline-block !important; text-align: center !important; }
    .site-logo { display: inline-flex !important; flex-wrap: wrap !important; justify-content: center !important; }
    .site-logo__sub { width: 100% !important; text-align: center !important; }
    .main-nav { width: auto !important; display: block !important; text-align: center !important; }
    .menu-toggle { display: block !important; margin: 0 auto !important; }
    .header-cta { display: none !important; }
    /* Padding kommt vom body (siehe Hauptregel) */
    .main-nav .primary-menu { position: fixed; top: 0; right: 0; width: min(85vw, 360px); height: 100vh; height: 100dvh; flex-direction: column; align-items: stretch; background: var(--clr-white); padding: calc(var(--header-height) + 2rem) 1.5rem 1.5rem; border-left: 1px solid var(--clr-border); transform: translateX(100%); transition: transform var(--transition); overflow-y: auto; z-index: 9998; pointer-events: auto; }
    /* Wenn Menue aktiv: explizit alle Links touchbar, kein Inert-Erbe */
    .main-nav .primary-menu.is-active a, .main-nav .primary-menu.is-active button { pointer-events: auto !important; }
    .main-nav .primary-menu.is-active { transform: translateX(0); }
    .primary-menu > li > a { padding: 1rem 0.5rem; font-size: var(--fs-base); opacity: 1; border-bottom: 1px solid var(--clr-border); }
    .primary-menu > li.current-menu-item > a::after { display: none; }
    .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: none; border-top: none; padding-left: 1rem; background: var(--clr-surface-lo); }
    .menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 998; opacity: 0; visibility: hidden; transition: all var(--transition); }
    .menu-overlay.is-active { opacity: 1; visibility: visible; }
}

/* ======================================================================
   HERO
   ====================================================================== */
/* min-height: dvh = dynamic viewport height; verhindert Layoutsprünge wenn
   Mobile-Browser ihre Adressleiste ein-/ausblenden (vh wäre zu groß). */
.hero { position: relative; overflow: hidden; background: var(--clr-black); color: var(--clr-white); min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; }
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to right, rgba(25,28,30,0.5), transparent); }
.hero__inner { position: relative; z-index: 2; }
.hero__content { max-width: 750px; }
.hero__tag { display: inline-block; background: var(--clr-red-bg); color: var(--clr-white); font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; padding: 0.4em 1em; margin-bottom: 1.5rem; }
.hero__title { font-size: clamp(2.5rem, 1.5rem + 4vw, 5rem); line-height: 1.1; letter-spacing: -0.03em; margin-bottom: 1.5rem; color: var(--clr-white); }
.hero__desc { font-size: var(--fs-lg); line-height: 1.7; color: rgba(255,255,255,0.9); font-weight: 300; max-width: 600px; margin-bottom: 2.5rem; }
.hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.btn--glass { background: rgba(255,255,255,0.1); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.3); color: var(--clr-white); }
.btn--glass:hover { background: rgba(255,255,255,0.2); opacity: 1; }

/* ======================================================================
   SERVICES — Bento Grid mit Bildern
   ====================================================================== */
.services { padding: 6rem 0; background: var(--clr-bg); }
.services__header { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 3rem; flex-wrap: wrap; }
.services__title { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); line-height: 1.1; }
.services__subtitle { max-width: 380px; color: var(--clr-text-light); font-size: var(--fs-base); line-height: 1.6; }

.bento { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.5rem; }
.bento__card { position: relative; overflow: hidden; min-height: 350px; display: flex; flex-direction: column; justify-content: flex-end; padding: 2rem; text-decoration: none; color: var(--clr-white); border-radius: 0.25rem; grid-column: span 4; }
.bento__card--wide { grid-column: span 8; }
@media (max-width: 860px) { .bento__card, .bento__card--wide { grid-column: span 12; } }
@media (min-width: 861px) and (max-width: 1100px) { .bento__card { grid-column: span 6; } .bento__card--wide { grid-column: span 6; } }
.bento__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease; }
.bento__card:hover img { transform: scale(1.05); }
.bento__gradient { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, transparent 100%); }
.bento__body { position: relative; z-index: 1; }
.bento__body h3 { font-size: var(--fs-lg); font-weight: 700; margin-bottom: 0.5rem; color: var(--clr-white); text-transform: none; letter-spacing: 0; line-height: 1.3; }
.bento__body p { font-size: var(--fs-sm); color: rgba(255,255,255,0.8); line-height: 1.5; max-width: 450px; margin-bottom: 1rem; }
.bento__link { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--clr-white); display: flex; align-items: center; gap: 0.5rem; opacity: 0.8; }
.bento__link .arrow { transition: transform var(--transition); }
.bento__card:hover .bento__link .arrow { transform: translateX(4px); }
.bento__card:hover .bento__link { opacity: 1; }

/* ======================================================================
   TRUST — Warum DACOWA
   ====================================================================== */
.trust { padding: 6rem 0; background: var(--clr-surface-lo); }
.trust__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
@media (max-width: 960px) { .trust__grid { grid-template-columns: 1fr; gap: 3rem; } }
.trust__title { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); margin-bottom: 2rem; line-height: 1.1; }
.trust__features { display: flex; flex-direction: column; gap: 2rem; }
.trust__feature { display: flex; gap: 1.25rem; align-items: flex-start; }
.trust__icon { flex-shrink: 0; width: 48px; height: 48px; background: rgba(178,34,52,0.1); display: flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--clr-red); }
.trust__feature h4 { font-size: var(--fs-md); font-weight: 700; margin-bottom: 0.25rem; text-transform: none; letter-spacing: 0; line-height: 1.4; }
.trust__feature p { font-size: var(--fs-sm); color: var(--clr-text-light); line-height: 1.6; }

/* Vorher/Nachher Bilder versetzt */
.trust__images { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.trust__img { position: relative; overflow: hidden; border-radius: 0.125rem; }
.trust__img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.trust__img--before img { filter: grayscale(100%); }
.trust__img--after { transform: translateY(3rem); }
.trust__label { position: absolute; top: 1rem; left: 1rem; z-index: 2; background: rgba(0,0,0,0.5); backdrop-filter: blur(8px); color: var(--clr-white); font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; padding: 0.3em 0.8em; }
.trust__label--red { background: var(--clr-red-bg); }

/* ======================================================================
   DETAIL CONTENT (DB-Text auf Homepage)
   ====================================================================== */
.detail-content { padding: 5rem 0; background: var(--clr-white); }
.detail-content__inner { max-width: 860px; margin-inline: auto; text-align: left; }
.detail-content__inner p[style] { text-align: left !important; }
.detail-content__inner .entry-content h2 { font-size: var(--fs-lg); }
.detail-content__inner .entry-content img { margin: 2rem 0; width: 100%; max-width: 100%; }

/* ======================================================================
   STATS
   ====================================================================== */
.stats { border-top: 1px solid var(--clr-border); border-bottom: 1px solid var(--clr-border); overflow: hidden; }
.stats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stats__item { padding: 3rem 2rem; text-align: center; border-right: 1px solid var(--clr-border); background: var(--clr-white); min-width: 0; }
.stats__item:last-child { border-right: none; }
.stats__item--accent { background: var(--clr-red-bg); color: var(--clr-white); border-color: var(--clr-red-dk); }
.stats__number { display: block; font-size: clamp(2rem, 1.5rem + 2vw, 4rem); font-weight: 900; color: var(--clr-red); letter-spacing: -0.03em; line-height: 1; word-break: break-word; }
.stats__item--accent .stats__number { color: var(--clr-white); }
.stats__label { display: block; font-size: var(--fs-base); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #555555; margin-top: 0.75rem; word-break: break-word; }
.stats__item--accent .stats__label { color: #ffffff; font-size: var(--fs-base); }
/* Tablet: 2 Spalten */
@media (max-width: 960px) and (min-width: 601px) {
    .stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stats__item { border-bottom: 1px solid var(--clr-border); }
    .stats__item:nth-child(2n) { border-right: none; }
    .stats__item:nth-last-child(-n+2) { border-bottom: none; }
}
/* Mobile: 1 Spalte gestapelt — verhindert horizontales Overflow! */
@media (max-width: 600px) {
    .stats__grid { grid-template-columns: 1fr; }
    .stats__item { padding: 2rem 1rem; border-right: none; border-bottom: 1px solid var(--clr-border); }
    .stats__item:last-child { border-bottom: none; }
}

/* ======================================================================
   CTA MONOLITH — Footer-CTA
   ====================================================================== */
.cta-monolith { background: var(--clr-red-bg); color: var(--clr-white); padding: 5rem 0; text-align: center; position: relative; overflow: hidden; }

/* Pulsierende Hintergrund-Animation */
.cta-monolith::before { content: ''; position: absolute; top: 50%; left: 50%; width: 300px; height: 300px; background: rgba(255,255,255,0.06); border-radius: 50%; transform: translate(-50%, -50%) scale(1); animation: cta-pulse 3s ease-in-out infinite; pointer-events: none; }
.cta-monolith::after { content: ''; position: absolute; top: 50%; left: 50%; width: 500px; height: 500px; background: rgba(255,255,255,0.03); border-radius: 50%; transform: translate(-50%, -50%) scale(1); animation: cta-pulse 3s ease-in-out 1s infinite; pointer-events: none; }

@keyframes cta-pulse {
    0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    50% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .cta-monolith::before, .cta-monolith::after { animation: none; }
}

.cta-monolith__title { font-size: var(--fs-2xl); margin-bottom: 2rem; color: var(--clr-white); position: relative; z-index: 1; }
.cta-monolith__links { display: flex; justify-content: center; gap: 3rem; flex-wrap: wrap; position: relative; z-index: 1; }
.cta-monolith__link { color: var(--clr-white); font-size: var(--fs-lg); font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em; text-decoration: none; border-bottom: 4px solid var(--clr-white); padding-bottom: 0.3em; transition: all var(--transition); display: inline-flex; align-items: center; gap: 0.5rem; }
.cta-monolith__link:hover { opacity: 1; transform: translateY(-2px); border-bottom-color: rgba(255,255,255,0.5); }

/* ======================================================================
   PAGE HEADER
   ====================================================================== */
.page-header { background: var(--clr-black); color: var(--clr-white); padding: 5rem 0 3rem; position: relative; overflow: hidden; min-height: 200px; display: flex; align-items: flex-end; }
.page-header--has-bg { min-height: 300px; }
.page-header__bg { position: absolute; inset: 0; }
.page-header__bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.4; }
.page-header__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(26,28,28,0.95), rgba(26,28,28,0.3)); }
.page-header .container { position: relative; z-index: 1; }
.page-header__title { font-size: var(--fs-2xl); color: var(--clr-white); }
.page-header::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 4px; background: var(--clr-red); z-index: 2; }
.page-header__breadcrumb { margin-top: 0.75rem; font-size: var(--fs-sm); opacity: 0.5; }
.page-header__breadcrumb a { color: var(--clr-muted); }
.page-header__breadcrumb a:hover { color: var(--clr-white); }

/* ======================================================================
   PAGE CONTENT
   ====================================================================== */
/* Elementor/Gutenberg Content — kein eigener Container, Elementor steuert das Layout */
.page-content { background: var(--clr-white); }
.entry-content { font-size: var(--fs-md); line-height: 1.8; }
.entry-content p { margin-bottom: 1.5rem; }
.entry-content h2, .entry-content .wp-block-heading { font-size: var(--fs-2xl); margin-top: 3rem; margin-bottom: 1rem; padding-left: 1.5rem; position: relative; text-transform: uppercase; letter-spacing: -0.03em; }
.entry-content h2::before, .entry-content .wp-block-heading::before { content: ''; position: absolute; left: 0; top: 0.1em; bottom: 0.1em; width: 4px; background: var(--clr-red); }
.entry-content h2:first-child { margin-top: 0; }
.entry-content h3 { font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem); margin-top: 2rem; margin-bottom: 0.75rem; color: var(--clr-red); text-transform: uppercase; letter-spacing: -0.02em; }
/* Bilder im Content: Full-Bleed, leichtes Grayscale, Hover zeigt Farbe */
/* Bilder im Content — nur Standard-Styling, Elementor steuert Layouts */
.entry-content img { max-width: 100%; height: auto; cursor: pointer; }
.entry-content > p > img { margin: 1.5rem 0; }

/* Abwechselnde Hintergrund-Streifen für visuelle Gliederung */
.entry-content > p:nth-child(even) { background: var(--clr-surface-lo); margin-left: -2.5rem; margin-right: -2.5rem; padding: 1.5rem 2.5rem; border-left: 4px solid var(--clr-red); }

/* Fettschrift-Absätze als Highlight-Boxen */
.entry-content > p > strong:only-child,
.entry-content > p > b:only-child {
    display: block;
    font-size: var(--fs-lg);
    line-height: 1.4;
    color: var(--clr-black);
    padding: 1.5rem 0;
    border-bottom: 2px solid var(--clr-border);
    margin-bottom: 0.5rem;
}
.entry-content a { color: var(--clr-red); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.entry-content strong, .entry-content b { color: var(--clr-black); }
.entry-content p:empty { display: none; }
.entry-content a[data-elementor-open-lightbox] { display: none; }
.entry-content blockquote { border-left: 4px solid var(--clr-red); padding: 1.5rem 2rem; margin: 2rem 0; background: var(--clr-surface-lo); font-style: italic; }
.entry-content ul li { padding-left: 1.5rem; position: relative; margin-bottom: 0.5rem; }
.entry-content ul li::before { content: ''; position: absolute; left: 0; top: 0.65em; width: 8px; height: 2px; background: var(--clr-red); }
.entry-content video { width: 100%; background: var(--clr-black); margin: 2rem 0; }
.page-content--wide .container { max-width: 1400px; }

/* ======================================================================
   CONTACT PAGE
   ====================================================================== */
.page-kontakt .page-content .container { max-width: 1200px; }
.contact-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: 4rem; align-items: start; }
@media (max-width: 860px) { .contact-layout { grid-template-columns: 1fr; } }
.contact-info__title, .contact-form__title { font-size: var(--fs-xl); margin-bottom: 2rem; text-transform: uppercase; letter-spacing: -0.03em; }
.contact-card { display: flex; align-items: flex-start; gap: 1rem; padding: 1.5rem; border: 1px solid var(--clr-border); margin-bottom: -1px; font-size: var(--fs-base); transition: background var(--transition); }
.contact-card:hover { background: var(--clr-surface-lo); }
.contact-card--highlight { background: var(--clr-red-bg); color: var(--clr-white); border-color: var(--clr-red-bg); }
.contact-card--highlight strong { color: var(--clr-white); }
.contact-card--highlight a { color: var(--clr-white); }
.contact-card__icon { flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--clr-border); color: var(--clr-red); }
.contact-card--highlight .contact-card__icon { border-color: rgba(255,255,255,0.3); color: var(--clr-white); }
.contact-form { border: 1px solid var(--clr-border); border-top: 4px solid var(--clr-red); padding: 2.5rem; }

/* Ninja Forms */
.nf-form-cont { max-width: 100%; }
.nf-form-cont input[type="text"], .nf-form-cont input[type="email"], .nf-form-cont input[type="tel"], .nf-form-cont textarea, .nf-form-cont select { width: 100%; padding: 0.8em 1em; border: 1px solid var(--clr-border); font-size: var(--fs-base); background: var(--clr-white); transition: border-color var(--transition); }
.nf-form-cont input:focus, .nf-form-cont textarea:focus { border-color: var(--clr-red); outline: none; }
.nf-form-cont input[type="submit"] { background: var(--clr-red-bg); color: var(--clr-white); border: none; padding: 1em 2.5em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; cursor: pointer; }
.nf-form-cont input[type="submit"]:hover { background: var(--clr-red-dk); }

/* ======================================================================
   GALLERY
   ====================================================================== */
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2px; margin-top: 2rem; }
.gallery-item { display: block; overflow: hidden; background: var(--clr-black); }
.gallery-item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: all 0.5s ease; }
.gallery-item:hover img { transform: scale(1.05); }

/* ======================================================================
   FOOTER
   ====================================================================== */
.cta-banner { background: linear-gradient(135deg, var(--clr-black) 0%, #2a2a2a 100%); color: var(--clr-white); padding: 5rem 0; }
.cta-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.cta-banner__title { font-size: var(--fs-xl); color: var(--clr-white); margin-bottom: 0.5rem; }
.cta-banner__desc { font-size: var(--fs-md); opacity: 0.7; color: var(--clr-white); }
.cta-banner__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.cta-banner__actions .btn--white { background: var(--clr-white); color: var(--clr-red); }
.cta-banner__actions .btn--outline-white { border: 2px solid var(--clr-white); color: var(--clr-white); background: transparent; }
.cta-banner__actions .btn--outline-white:hover { background: var(--clr-white); color: var(--clr-black); opacity: 1; }
.cta-banner .phone-link { color: var(--clr-red); }
@media (max-width: 768px) { .cta-banner { text-align: center; } .cta-banner__inner { flex-direction: column; } }

.site-footer { background: var(--clr-black); color: #aaaaaa; padding-top: 4rem; }
.footer__inner { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 3rem; padding-bottom: 3rem; }
@media (max-width: 960px) { .footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .footer__inner { grid-template-columns: 1fr; } }
.footer-logo { font-size: 1.5rem; margin-bottom: 0.75rem; }
.footer-logo .site-logo__da, .footer-logo .site-logo__wa { color: #ef5350; }
.footer-logo .site-logo__co { color: var(--clr-muted); }
.footer__slogan { color: #ef5350; font-weight: 700; font-size: var(--fs-base); }
.footer__address { display: flex; align-items: center; gap: 0.5rem; font-size: var(--fs-base); margin-top: 0.5rem; color: #aaaaaa; }
.footer__heading { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--clr-white); margin-bottom: 1.5rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--clr-red); display: inline-block; }
.footer__list li + li { margin-top: 0.5rem; }
.footer__list a { color: #aaaaaa; font-size: var(--fs-base); text-decoration: none; }
.footer__list a:hover { color: var(--clr-white); opacity: 1; }
.footer__list--contact .phone-link, .footer__list--contact .email-link { display: flex; align-items: center; gap: 0.5rem; color: #aaaaaa; font-size: var(--fs-base); text-decoration: none; }
.footer__list--contact .phone-link:hover, .footer__list--contact .email-link:hover { color: var(--clr-white); opacity: 1; }
.footer__bottom { border-top: 1px solid rgba(255,255,255,0.1); padding: 1.5rem 0; }
.footer__bottom-inner { text-align: center; font-size: var(--fs-sm); color: #999999; letter-spacing: 0.05em; }
/* Footer watermark */
.footer__inner::after { content: 'DACOWA'; display: block; grid-column: 1 / -1; font-size: clamp(4rem, 3rem + 8vw, 14rem); font-weight: 900; text-transform: uppercase; letter-spacing: -0.04em; line-height: 1; opacity: 0.07; color: var(--clr-white); margin-top: 2rem; pointer-events: none; user-select: none; text-align: center; will-change: transform, opacity; animation: footer-drift 8s ease-in-out infinite; }

@keyframes footer-drift {
    0%, 100% { transform: scale(1); opacity: 0.07; }
    50% { transform: scale(1.02); opacity: 0.1; }
}

@media (prefers-reduced-motion: reduce) {
    .footer__inner::after { animation: none; }
}

/* ======================================================================
   ICONS
   ====================================================================== */
.icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }
.phone-link { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 700; text-decoration: none; }
.email-link { display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; }

/* ======================================================================
   SCROLL REVEAL
   ====================================================================== */
.reveal { opacity: 0; transform: translateY(25px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.reveal--left { transform: translateX(-30px); }
.reveal.reveal--right { transform: translateX(30px); }
.reveal.is-revealed { opacity: 1; transform: none; }
.stagger-item { opacity: 0; transform: translateY(20px); transition: opacity 0.5s ease, transform 0.5s ease; }
.stagger-item.is-revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal, .stagger-item { opacity: 1; transform: none; transition: none; } }

/* ======================================================================
   BACK TO TOP
   ====================================================================== */
.back-to-top { position: fixed; bottom: 2rem; right: 2rem; z-index: 900; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--clr-red); color: white; border: none; cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px); transition: all var(--transition); }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--clr-red-dk); }

/* ======================================================================
   MOBILE CTA
   ====================================================================== */
.mobile-cta { display: none; }
@media (max-width: 768px) {
    .mobile-cta { display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 999; background: var(--clr-red-bg); color: white; padding: 0.75rem 1.5rem; align-items: center; justify-content: center; gap: 0.5rem; font-weight: 700; font-size: var(--fs-base); }
    .mobile-cta a { color: white; display: flex; align-items: center; gap: 0.5rem; }
    .back-to-top { bottom: calc(52px + 1.5rem); }
    .site-footer { padding-bottom: calc(3rem + 52px); }
}

/* ======================================================================
   404
   ====================================================================== */
.error-404 { text-align: center; padding: 6rem 0; }
.error-404__code { font-size: clamp(5rem, 3rem + 8vw, 10rem); font-weight: 900; color: var(--clr-border); line-height: 1; }
.error-404__title { font-size: var(--fs-xl); margin-bottom: 1rem; }

/* ======================================================================
   WP BLOCK GALLERY — WordPress Standard-Galerie Premium-Styling
   ====================================================================== */

/* Grid-Layout: Minimaler Gap, saubere Kanten */
.wp-block-gallery {
    gap: 12px !important;
}

/* Elementor Basisgalerie */
.elementor-image-gallery .gallery {
    margin: 0 !important;
}

.elementor-image-gallery {
    background: #ffffff;
    padding: 1rem;
}

.elementor-image-gallery,
.elementor-image-gallery .gallery,
.elementor-image-gallery .gallery-item,
.elementor-image-gallery .gallery-icon {
    background: #ffffff !important;
}

.elementor-image-gallery .gallery-item {
    padding: 4px !important;
    border: none !important;
}

.elementor-image-gallery .gallery-item .gallery-icon img {
    border: 1px solid var(--clr-red);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.4s ease, transform 0.4s ease;
}

.elementor-image-gallery .gallery-item:hover .gallery-icon img {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}

.wp-block-gallery.has-nested-images figure.wp-block-image {
    margin: 0;
    overflow: hidden;
    position: relative;
}

.wp-block-gallery.has-nested-images figure.wp-block-image img {
    transition: transform 0.6s ease, filter 0.4s ease;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* Hover: Leichter Zoom */
.wp-block-gallery.has-nested-images figure.wp-block-image:hover img {
    transform: scale(1.06);
}


/* Overlay beim Hover */
.wp-block-gallery.has-nested-images figure.wp-block-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(178, 34, 52, 0);
    transition: background 0.4s ease;
    pointer-events: none;
    z-index: 1;
}

.wp-block-gallery.has-nested-images figure.wp-block-image:hover::after {
    background: rgba(178, 34, 52, 0.08);
}

/* Captions: Elegant über dem Bild */
.wp-block-gallery figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%);
    color: #ffffff;
    padding: 2rem 1rem 0.75rem;
    font-size: var(--fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    z-index: 2;
    margin: 0;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.wp-block-gallery figure.wp-block-image:hover figcaption {
    opacity: 1;
    transform: translateY(0);
}

/* Columns-Varianten */
.wp-block-gallery.columns-1 { gap: 0 !important; }
.wp-block-gallery.columns-2 { gap: 4px !important; }
.wp-block-gallery.columns-3 { gap: 4px !important; }
.wp-block-gallery.columns-4 { gap: 3px !important; }

/* Galerie auf voller Breite: Edge-to-Edge */
.wp-block-gallery.alignfull {
    gap: 2px !important;
}

/* Masonry-ähnlicher Effekt für 2-Spalten */
.wp-block-gallery.columns-2 figure.wp-block-image:nth-child(odd) {
    aspect-ratio: 4/3;
}
.wp-block-gallery.columns-2 figure.wp-block-image:nth-child(even) {
    aspect-ratio: 3/4;
}

/* Mobile: Immer 2 Spalten statt 1 */
@media (max-width: 600px) {
    .wp-block-gallery.has-nested-images {
        columns: 2 !important;
        gap: 3px !important;
    }
}

/* Lightbox-Cursor */
.wp-block-gallery figure.wp-block-image {
    cursor: pointer;
}

/* Rounded Corners: Keine (Monolith-Stil) */
.wp-block-gallery.has-nested-images figure.wp-block-image img {
    border-radius: 0;
}

/* ======================================================================
   FOCUS-VISIBLE — Alle interaktiven Elemente
   ====================================================================== */
.menu-toggle:focus-visible { outline: 3px solid var(--clr-red); outline-offset: 3px; }
.back-to-top:focus-visible { outline: 3px solid var(--clr-white); outline-offset: 3px; }
.lightbox__close:focus-visible { outline: 3px solid var(--clr-white); outline-offset: 3px; }
.header-cta__phone:focus-visible { outline: 3px solid var(--clr-red); outline-offset: 3px; }
.cta-monolith__link:focus-visible { outline: 3px solid var(--clr-white); outline-offset: 3px; }
.mobile-cta a:focus-visible { outline: 3px solid var(--clr-white); outline-offset: 3px; }
.gallery-item:focus-visible { outline: 3px solid var(--clr-red); outline-offset: 3px; }

/* ======================================================================
   BLOCK STYLES (Custom Block-Varianten)
   ====================================================================== */
/* Ghost Button */
.wp-block-button.is-style-dacowa-ghost .wp-block-button__link { background: transparent; border: 2px solid var(--clr-black); color: var(--clr-black); }
.wp-block-button.is-style-dacowa-ghost .wp-block-button__link:hover { background: var(--clr-black); color: var(--clr-white); }

/* Outline auf dunklem Hintergrund */
.wp-block-button.is-style-outline .wp-block-button__link { border-width: 2px; }

/* Red Accent Bar Heading */
.wp-block-heading.is-style-dacowa-accent-bar { padding-left: 1.5rem; position: relative; }
.wp-block-heading.is-style-dacowa-accent-bar::before { content: ''; position: absolute; left: 0; top: 0.1em; bottom: 0.1em; width: 4px; background: var(--clr-red); }

/* Full-Bleed Image */
.wp-block-image.is-style-dacowa-full-bleed { margin-left: calc(-1 * 4rem); margin-right: calc(-1 * 4rem); width: calc(100% + 8rem); max-width: calc(100% + 8rem); }
@media (max-width: 768px) { .wp-block-image.is-style-dacowa-full-bleed { margin-left: -1.5rem; margin-right: -1.5rem; width: calc(100% + 3rem); max-width: calc(100% + 3rem); } }

/* Tag/Label Paragraph */
.wp-block-paragraph.is-style-dacowa-tag { font-size: var(--fs-sm) !important; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--clr-red); }

/* ======================================================================
   WP ADMIN BAR
   ====================================================================== */
/* Admin-Bar: Header und Body padding wird oben behandelt */

/* ======================================================================
   PREFERS-CONTRAST (High Contrast Mode)
   ====================================================================== */
@media (prefers-contrast: more) {
    :root { --clr-muted: #555555; --clr-text-light: #333333; --clr-border: #999999; }
    body { color: #000000; }
    a { text-decoration: underline !important; }
    .top-bar { border-bottom: 2px solid #ffffff; }
    .header-main { border-bottom: 2px solid #000000; }
    .cta-monolith, .stats__item--accent, .mobile-cta, .header-cta__phone, .btn--primary { background-color: #8B1A29; }
    .footer__list a, .footer__list--contact .phone-link, .footer__list--contact .email-link { color: #cccccc; }
    .footer__slogan { color: #ff6b7a; }
}

/* ======================================================================
   LEGAL CONTENT (Datenschutz / Impressum / AGB)
   Eingeschraenkte Lesebreite + bessere Typografie fuer Text-lastige Seiten
   ====================================================================== */
.legal-content,
.page-impressum .page-content > *,
.page-datenschutzerklaerung .page-content > *,
.page-agb .page-content > * {
    max-width: 720px;
    margin-inline: auto;
    padding-inline: 1.5rem;
}
.legal-content { padding-block: 3rem; }
.legal-content h1 { font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem); margin-block: 2rem 1rem; line-height: 1.2; }
.legal-content h2 { font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); margin-block: 3rem 1rem; padding-top: 1rem; border-top: 2px solid var(--clr-border); line-height: 1.3; color: var(--clr-red); text-transform: none; letter-spacing: 0; }
.legal-content h3 { font-size: 1.125rem; margin-block: 1.5rem 0.75rem; color: var(--clr-text); text-transform: none; letter-spacing: 0; line-height: 1.3; }
.legal-content p { font-size: 1rem; line-height: 1.7; margin-bottom: 1rem; max-width: 65ch; }
.legal-content ul, .legal-content ol { font-size: 1rem; line-height: 1.7; margin-bottom: 1.5rem; padding-left: 1.5rem; max-width: 65ch; }
.legal-content li { margin-bottom: 0.4rem; }
.legal-content li::marker { color: var(--clr-red); }
.legal-content a { color: var(--clr-red); text-decoration: underline; text-underline-offset: 2px; }
.legal-content a:hover { color: var(--clr-red-dk); opacity: 1; }
.legal-content code { background: var(--clr-surface-lo); padding: 0.1em 0.4em; border-radius: 3px; font-size: 0.9em; font-family: ui-monospace, "SF Mono", Consolas, monospace; }
.legal-content strong { color: var(--clr-text); }
/* Zusammenfassungs-Boxen */
.legal-content .summary { background: var(--clr-surface-lo); border-left: 4px solid var(--clr-red); padding: 1.25rem 1.5rem; margin: 1.5rem 0; font-size: 0.95rem; max-width: 65ch; }
.legal-content .summary strong { color: var(--clr-red); }
/* Inhaltsverzeichnis */
.legal-content .toc { background: var(--clr-surface-lo); border-left: 4px solid var(--clr-red); padding: 1.5rem 2rem; margin: 2rem 0; max-width: 65ch; }
.legal-content .toc ol { margin: 0; padding-left: 1.5rem; }
.legal-content .toc a { color: var(--clr-red); text-decoration: none; }
.legal-content .toc a:hover { text-decoration: underline; }
/* Rechtshinweis-Box */
.legal-content .disclaimer { background: #fff7e6; border: 1px solid #ffd58a; border-left: 4px solid #f5a623; padding: 1rem 1.5rem; margin: 2rem 0; font-size: 0.92rem; max-width: 65ch; }
.legal-content .meta { color: var(--clr-text-light); font-size: 0.9rem; margin-bottom: 2rem; }

@media (max-width: 600px) {
    .legal-content { padding-block: 1.5rem; }
    .legal-content h1 { font-size: 1.5rem; }
    .legal-content h2 { font-size: 1.2rem; }
    .legal-content .toc { padding: 1rem 1.25rem; }
    .legal-content .summary, .legal-content .disclaimer { padding: 0.875rem 1rem; }
}

/* ======================================================================
   COOKIE BANNER (DIY, kein Plugin)
   ====================================================================== */
.dacowa-cookie-banner { position: fixed; inset: auto 1rem 1rem 1rem; z-index: 100000; max-width: 720px; margin-inline: auto; background: var(--clr-white); color: var(--clr-text); border: 1px solid var(--clr-border); border-left: 4px solid var(--clr-red); box-shadow: 0 8px 32px rgba(0,0,0,0.18); padding: 1.5rem; animation: dacowa-cookie-slide-in 250ms ease-out; }
.dacowa-cookie-banner[hidden] { display: none; }
.dacowa-cookie-banner__title { font-size: 1.125rem; font-weight: 700; color: var(--clr-text); margin-bottom: 0.5rem; text-transform: none; letter-spacing: 0; line-height: 1.3; }
.dacowa-cookie-banner__desc { font-size: 0.9375rem; line-height: 1.5; margin-bottom: 1.25rem; color: var(--clr-text); }
.dacowa-cookie-banner__desc a { color: var(--clr-red); text-decoration: underline; }
.dacowa-cookie-banner__desc a:hover { color: var(--clr-red-dk); opacity: 1; }
.dacowa-cookie-banner__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.dacowa-cookie-banner__btn { flex: 1 1 auto; min-width: 160px; padding: 0.75rem 1.25rem; font-family: inherit; font-size: 0.875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; border: 2px solid var(--clr-text); cursor: pointer; transition: background var(--transition), color var(--transition), border-color var(--transition); }
.dacowa-cookie-banner__btn:focus-visible { outline: 3px solid var(--clr-red); outline-offset: 3px; }
/* DSGVO: Beide Buttons gleich auffaellig — Akzeptieren/Ablehnen optisch gleichberechtigt */
.dacowa-cookie-banner__btn--accept { background: var(--clr-red-bg); color: var(--clr-white); border-color: var(--clr-red-bg); }
.dacowa-cookie-banner__btn--accept:hover { background: var(--clr-red-dk); border-color: var(--clr-red-dk); }
.dacowa-cookie-banner__btn--decline { background: var(--clr-white); color: var(--clr-text); border-color: var(--clr-text); }
.dacowa-cookie-banner__btn--decline:hover { background: var(--clr-text); color: var(--clr-white); }

/* Footer-Link "Cookie-Einstellungen" — DSGVO-Widerrufs-Pflicht */
.dacowa-cookie-revoke { font-size: var(--fs-sm); color: inherit; text-decoration: underline; cursor: pointer; }
.dacowa-cookie-revoke:hover { opacity: 0.8; }

@keyframes dacowa-cookie-slide-in {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 480px) {
    .dacowa-cookie-banner { inset: auto 0.5rem 0.5rem 0.5rem; padding: 1rem; }
    .dacowa-cookie-banner__title { font-size: 1rem; }
    .dacowa-cookie-banner__desc { font-size: 0.875rem; margin-bottom: 1rem; }
    .dacowa-cookie-banner__btn { width: 100%; flex: 1 1 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .dacowa-cookie-banner { animation: none; }
}

/* ======================================================================
   PRINT
   ====================================================================== */
/* Print-Styles in print.css */
