/* Gemeinsame öffentliche Oberfläche, angelehnt an buchen.php. */
body.fc-public-glass {
    --fc-page-bg: url('/pic/Fixlyclean_window.webp');
    --fc-public-ink: #102d42;
    --fc-public-muted: #38566b;
    --fc-public-blue: #075a9d;
    --fc-public-green: #176d58;
    --fc-muted: var(--fc-public-muted);
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    overflow-x: hidden;
    background: #07111f !important;
    color: var(--fc-public-ink);
}

body.fc-public-glass::before {
    content: '';
    position: fixed;
    inset: -40px;
    z-index: 0;
    background: var(--fc-page-bg) center / cover no-repeat;
    filter: brightness(1.3) blur(8px);
    transform: scale(1.06);
    pointer-events: none;
}

body.fc-public-glass::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    background: linear-gradient(180deg, rgba(2,8,23,.30), rgba(2,8,23,.58)),
        radial-gradient(circle at 22% 18%, rgba(0,80,176,.24), transparent 34%),
        radial-gradient(circle at 78% 78%, rgba(112,179,0,.20), transparent 36%);
    pointer-events: none;
}

body.fc-public-glass > :is(main, .page-shell, .auth-page-hero, .fc-public-footer) {
    position: relative;
    z-index: 1;
}

body.fc-public-glass > .fc-main-header,
body.fc-public-glass > .fc-site-header,
body.fc-public-glass > nav:first-child {
    background: linear-gradient(110deg,
        rgba(146,197,231,var(--fc-booking-glass-inner-opacity,.58)),
        rgba(222,243,250,var(--fc-booking-glass-opacity,.53)) 52%,
        rgba(141,214,196,var(--fc-booking-glass-opacity,.53))) !important;
    border-bottom: 1px solid rgba(255,255,255,.56) !important;
    box-shadow: 0 12px 28px rgba(13,59,104,.12), inset 0 1px rgba(255,255,255,.58) !important;
    backdrop-filter: blur(var(--fc-booking-glass-header-blur,24px)) saturate(var(--fc-booking-glass-saturation,1.75)) !important;
    -webkit-backdrop-filter: blur(var(--fc-booking-glass-header-blur,24px)) saturate(var(--fc-booking-glass-saturation,1.75)) !important;
}

/* Große und kleine Inhaltskarten behalten ihre Maße und ihre Interaktionen. */
body.fc-public-glass main :is(.fc-glass, .fc-card, .hero-simple-card, .section-frame-card,
    .section-title-card, .plain-card, .compare-card, .review-hero-card, .review-info-card,
    .review-form-card, .fc-seo-hero, .fc-seo-card, .fc-seo-highlight,
    .fc-seo-faq-item, .fc-seo-steps li, .fc-seo-related, .card),
body.fc-public-glass main > section[class*="bg-white/"],
body.fc-public-glass main.card,
body.fc-public-glass .auth-login-card,
body.fc-public-glass .info-card {
    border-color: rgba(255,255,255,.92) !important;
    background:
        radial-gradient(ellipse at 8% 0%, rgba(255,255,255,.74), transparent 46%),
        radial-gradient(ellipse at 96% 100%, rgba(184,238,220,var(--fc-booking-glow-opacity,.24)), transparent 44%),
        linear-gradient(132deg,rgba(255,255,255,.67),rgba(243,251,255,.64) 52%,rgba(238,252,244,.67)),
        linear-gradient(132deg,
            rgba(255,255,255,var(--fc-booking-glass-opacity,.53)),
            rgba(215,237,255,var(--fc-booking-glass-soft-opacity,.30)) 52%,
            rgba(198,246,225,var(--fc-booking-glass-soft-opacity,.30))) !important;
    box-shadow: 0 30px 70px rgba(19,75,134,.19),
        0 0 33px rgba(110,199,255,var(--fc-booking-glow-opacity,.24)),
        inset 0 2px 2px rgba(255,255,255,.99),
        inset 0 -1px rgba(47,126,163,.17) !important;
    backdrop-filter: blur(var(--fc-booking-glass-blur,34px)) saturate(var(--fc-booking-glass-saturation,1.75)) !important;
    -webkit-backdrop-filter: blur(var(--fc-booking-glass-blur,34px)) saturate(var(--fc-booking-glass-saturation,1.75)) !important;
}

body.fc-public-glass main :is(.bg-slate-50, .bg-slate-100, .bg-primary-fixed,
    .fc-seo-related a, .fc-seo-button-secondary, .review-toast-card, .link-pill),
body.fc-public-glass #faqAccordion > div,
body.fc-public-glass main [class~="bg-slate-50/80"],
body.fc-public-glass main [class*="rounded-[24px]"][class*="bg-white/"],
body.fc-public-glass main [class*="rounded-[22px]"][class*="bg-white/"],
body.fc-public-glass .info-card :is(.notice, .result-card, .result-link) {
    border-color: rgba(255,255,255,.84) !important;
    background:
        linear-gradient(132deg,rgba(255,255,255,.68),rgba(246,252,255,.66) 58%,rgba(239,253,246,.68)),
        linear-gradient(132deg,
            rgba(255,255,255,var(--fc-booking-glass-inner-opacity,.58)),
            rgba(235,247,255,var(--fc-booking-glass-soft-opacity,.30)) 58%,
            rgba(220,249,236,var(--fc-booking-glass-soft-opacity,.30))) !important;
    box-shadow: 0 12px 27px rgba(27,79,125,.13), inset 0 1px rgba(255,255,255,.98) !important;
    backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(var(--fc-booking-glass-saturation,1.75)) !important;
    -webkit-backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(var(--fc-booking-glass-saturation,1.75)) !important;
}

/* Foto- und Aktionskarten bleiben lesbar und zeigen weiter ihr Bild bzw. die weißen Texte. */
body.fc-public-glass main :is(.image-card, .hero-stage, .review-hero-stage) {
    border-color: rgba(255,255,255,.88) !important;
    box-shadow: 0 26px 65px rgba(18,75,129,.22), inset 0 1px rgba(255,255,255,.7) !important;
    backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(1.4);
    -webkit-backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(1.4);
}
body.fc-public-glass main :is(.cta-band, .bg-primary-gradient) {
    border-color: rgba(255,255,255,.65) !important;
    box-shadow: 0 24px 54px rgba(12,71,121,.22), inset 0 1px rgba(255,255,255,.38) !important;
    backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(1.4);
    -webkit-backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(1.4);
}

body.fc-public-glass main [class~="bg-emerald-50/90"] {
    border-color: rgba(132,225,178,.75) !important;
    background: linear-gradient(135deg, rgba(230,251,238,.75), rgba(204,246,228,.49)) !important;
    box-shadow: 0 14px 30px rgba(31,112,84,.12), inset 0 1px #fff !important;
    backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) !important;
    -webkit-backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) !important;
}

/* Lesbare Tintenfarben und die Pastellpalette der Buchung auf hellen Glaskarten. */
body.fc-public-glass main :is(.fc-card,.fc-glass,.hero-simple-card,.section-title-card,.plain-card,
    .compare-card,.review-info-card,.review-form-card,.fc-seo-card,.fc-seo-faq-item,.card) {
    color: var(--fc-public-ink);
}
body.fc-public-glass main :is(.fc-card,.fc-glass,.hero-simple-card,.section-title-card,.plain-card,
    .compare-card,.review-info-card,.review-form-card,.fc-seo-card,.fc-seo-faq-item,.card)
    :is(h1,h2,h3,h4,strong) { color: var(--fc-public-ink); }
body.fc-public-glass main :is(.fc-card,.fc-glass,.hero-simple-card,.section-title-card,.plain-card,
    .compare-card,.review-info-card,.review-form-card,.fc-seo-card,.fc-seo-faq-item,.card)
    :is(p,small,li) { color: var(--fc-public-muted); }
body.fc-public-glass main :is(.fc-card,.fc-glass,.hero-simple-card,.section-title-card,.plain-card,
    .compare-card,.review-info-card,.review-form-card,.fc-seo-card,.fc-seo-faq-item,.card)
    a:not(.liquid-btn):not(.fc-seo-button):not(.portal-btn):not([class*="bg-primary"]):not([class*="text-white"]) {
    color: var(--fc-public-blue);
}
body.fc-public-glass main :is(.section-kicker,.hero-kicker,.fc-seo-label) { color: var(--fc-public-green); }
body.fc-public-glass main .section-frame-card::after {
    background: linear-gradient(125deg,rgba(238,248,255,.75),rgba(236,249,240,.70));
}
body.fc-public-glass main :is(.fc-seo-highlight,.compare-card-highlight) {
    background: linear-gradient(132deg,rgba(229,243,255,.92),rgba(226,249,238,.90)) !important;
    color: var(--fc-public-ink);
}
body.fc-public-glass main > :is(#services,#zusatzleistungen) > div:first-child :is(h2,p),
body.fc-public-glass .fc-seo-section-title :is(h2,p),
body.fc-public-glass .fc-seo-breadcrumb,
body.fc-public-glass .fc-seo-breadcrumb a {
    color: #f0f9ff;
    text-shadow: 0 2px 10px rgba(2,15,32,.45);
}
body.fc-public-glass main :is(.cta-band,.bg-primary-gradient) :is(h1,h2,h3,p,small,strong,li,a[class*="text-white"]) {
    color: #fff;
}
body.fc-public-glass :is(input,textarea,select) { color: var(--fc-public-ink); }

body.fc-public-glass .fc-public-footer {
    position: relative;
    z-index: 1;
    border-top: 1px solid rgba(255,255,255,.66) !important;
    background: linear-gradient(125deg, rgba(255,255,255,.71), rgba(222,243,255,.65) 55%, rgba(211,247,230,.63)) !important;
    box-shadow: 0 -12px 38px rgba(19,75,134,.10), inset 0 1px rgba(255,255,255,.88) !important;
    backdrop-filter: blur(34px) saturate(1.75) !important;
    -webkit-backdrop-filter: blur(34px) saturate(1.75) !important;
}

body.fc-public-glass.auth-page .auth-page-hero { background: transparent !important; }
body.fc-public-glass.auth-page .auth-page-hero::before,
body.fc-public-glass.auth-page .auth-page-hero::after { display: none; }

body.fc-public-glass .info-card { color: #152d43; }
body.fc-public-glass .info-card :is(h1, strong, legend, label) { color: #132d42; }
body.fc-public-glass .info-card :is(p, .choice, .privacy) { color: #3c5a6e; }
body.fc-public-glass .info-card :is(.eyebrow, .privacy a) { color: #086b77; }
body.fc-public-glass .info-card :is(input:not([type=checkbox]), textarea) {
    color: #163d52;
    background: rgba(255,255,255,.73);
    border-color: rgba(146,193,209,.68);
}
body.fc-public-glass .info-card .result-link { color: #125d79; }
body.fc-public-glass .info-card .notice.error { border-color: #d76b7d !important; }
body.fc-public-glass .info-card .notice.success { border-color: #41a985 !important; }

/* Gleiche Maßstäbe wie die Buchungsseite: ruhige Überschriften, kompakte Ebenen. */
body.fc-public-glass main:not(.doc-page) h1 {
    font-size: clamp(2rem, 3.2vw, 2.85rem) !important;
    line-height: 1.14 !important;
    letter-spacing: -.035em !important;
    font-weight: 800;
    text-wrap: balance;
}
body.fc-public-glass main:not(.doc-page) h2 {
    font-size: clamp(1.45rem, 2.2vw, 2.1rem) !important;
    line-height: 1.22 !important;
    letter-spacing: -.025em !important;
    text-wrap: balance;
}
body.fc-public-glass main:not(.doc-page) h3 {
    font-size: clamp(1.08rem, 1.45vw, 1.35rem) !important;
    line-height: 1.3 !important;
    letter-spacing: -.015em;
}
body.fc-public-glass main:not(.doc-page) :is(.fc-glass,.fc-card,.plain-card,.hero-simple-card,
    .review-hero-card,.review-info-card,.review-form-card,.fc-seo-card,.fc-seo-hero) p {
    font-size: clamp(.875rem, 1.05vw, 1rem) !important;
    line-height: 1.65 !important;
}
body.fc-public-glass main:not(.doc-page) :is(.fc-glass,.fc-card,.plain-card,.hero-simple-card,
    .review-hero-card,.review-info-card,.review-form-card,.fc-seo-card,.fc-seo-hero) :is(h1,h2,h3) {
    color: var(--fc-public-ink);
}
body.fc-public-glass main:not(.doc-page) :is(.fc-glass,.fc-card,.plain-card,.hero-simple-card,
    .review-hero-card,.review-info-card,.review-form-card,.fc-seo-card,.fc-seo-hero) p {
    color: var(--fc-public-muted);
}

/* Die beiden großen Farbflächen von FAQ und Über uns werden zu Buchungs-Glas. */
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient {
    padding: clamp(24px, 3vw, 40px) !important;
    background:
        radial-gradient(circle at 88% 0%,rgba(177,235,213,.34),transparent 38%),
        linear-gradient(120deg,rgba(249,253,255,.93),rgba(229,244,254,.84) 55%,rgba(228,248,237,.87)) !important;
    color: var(--fc-public-ink) !important;
    border-bottom: 1px solid rgba(90,164,187,.18);
}
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient > div {
    max-width: 820px;
}
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient :is(h1,p),
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient :is(.text-white\/90,.text-white\/80) {
    color: var(--fc-public-ink) !important;
    text-shadow: none !important;
}
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient p {
    color: var(--fc-public-muted) !important;
    max-width: 670px;
}
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient > div > div:first-child {
    background: rgba(216,241,231,.85) !important;
    color: #166854 !important;
    border: 1px solid rgba(114,190,166,.3);
}
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient a.bg-white {
    background: linear-gradient(115deg,#075eae,#1682ad 62%,#199b7f) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    box-shadow: 0 10px 22px rgba(16,101,144,.2) !important;
}
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient a[class*="bg-white/10"] {
    background: rgba(248,253,255,.75) !important;
    border: 1px solid rgba(63,133,170,.28) !important;
    color: var(--fc-public-blue) !important;
}
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient a:hover {
    transform: translateY(-2px);
    filter: brightness(1.035);
}

/* Auf Startseite, Bewertungen und Leistungen dieselbe Kartendichte. */
body.fc-public-glass .site-main { max-width: 1240px; }
body.fc-public-glass .site-main .section { margin-top: clamp(28px, 3.5vw, 48px); }
body.fc-public-glass :is(.hero-clean,.review-hero) {
    min-height: 0;
    padding-block: clamp(16px,2.5vw,32px);
}
body.fc-public-glass :is(.hero-stage,.review-hero-stage) {
    min-height: 0;
    padding: clamp(14px,2.5vw,28px);
}
body.fc-public-glass :is(.hero-simple-card,.review-hero-card) {
    width: min(100%, 940px);
    padding: clamp(20px,2.5vw,34px) !important;
}
body.fc-public-glass main :is(.section-frame-card,.section-title-card,.review-section-head) {
    padding: clamp(20px,2.5vw,34px) !important;
    border-radius: clamp(22px,2.4vw,32px);
}
body.fc-public-glass main :is(.plain-card,.compare-card,.review-info-card,.review-form-card,
    .fc-seo-card,.fc-seo-faq-item,.fc-seo-steps li) {
    padding: clamp(18px,1.7vw,24px) !important;
    border-radius: 22px;
}
body.fc-public-glass main :is(.section-title-card,.review-section-head) { margin-bottom: 18px; }
body.fc-public-glass main :is(.section-frame-card,.review-hero-card) { color: var(--fc-public-ink); }
body.fc-public-glass main > section.fc-glass:first-child > :last-child {
    padding: clamp(18px,2.4vw,32px) !important;
}
body.fc-public-glass main > section.fc-glass:first-child > :last-child .grid { gap: 12px; }
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient h1 { margin-top: 14px !important; }
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient p { margin-top: 12px !important; }
body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient .mt-8 { margin-top: 20px !important; }
body.fc-public-glass main :is(.bg-slate-50,[class~="bg-slate-50/80"],#faqAccordion > div),
body.fc-public-glass main .fc-glass article.bg-white {
    border-color: rgba(121,183,200,.28) !important;
}
body.fc-public-glass main :is(#services,#zusatzleistungen) > div:first-child {
    margin-bottom: 15px !important;
}
body.fc-public-glass main :is(#services,#zusatzleistungen) > .grid { gap: 16px; }
body.fc-public-glass main :is(#services,#zusatzleistungen) article.fc-glass {
    padding: clamp(18px,2vw,26px) !important;
}
body.fc-public-glass main :is(#services,#zusatzleistungen) article.fc-glass :is(h3,.fc-copy) {
    margin-top: 12px !important;
}
body.fc-public-glass main :is(#services,#zusatzleistungen) article.fc-glass > .grid,
body.fc-public-glass main :is(#services,#zusatzleistungen) article.fc-glass > [class*="rounded-2xl"] {
    margin-top: 14px !important;
}
body.fc-public-glass main :is(#services,#zusatzleistungen) article.fc-glass:target {
    border-color: rgba(20,126,166,.72) !important;
    box-shadow: 0 0 0 3px rgba(110,194,221,.28),0 24px 50px rgba(19,75,134,.17) !important;
}
body.fc-public-glass .fc-seo-hero { gap: clamp(18px,3vw,30px); padding: clamp(22px,3vw,36px) !important; }
body.fc-public-glass .fc-seo-section,
body.fc-public-glass .fc-seo-highlight,
body.fc-public-glass .fc-seo-related { margin-top: clamp(28px,3.5vw,44px); }
body.fc-public-glass main[class~="pt-28"] { padding-top: clamp(28px,4vw,56px) !important; }
body.fc-public-glass main:not(.doc-page) :is(.bg-primary-gradient,.cta-band):not(:first-child) {
    border-radius: clamp(20px,2.5vw,28px);
}

@media (min-width: 940px) {
    body.fc-public-glass main :is(#services,#zusatzleistungen) > .grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Formulare und Footer bleiben klar lesbar, die Dokumentdruckansicht bleibt separat. */
body.fc-public-glass main:not(.doc-page) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {
    background: rgba(250,253,255,.85);
    border-color: rgba(111,165,190,.45);
    color: var(--fc-public-ink);
}
body.fc-public-glass main:not(.doc-page) :is(input,select,textarea):focus-visible,
body.fc-public-glass main:not(.doc-page) :is(a,button):focus-visible {
    outline: 2px solid #0b7cb0;
    outline-offset: 2px;
}
body.fc-public-glass .fc-public-footer :is(.fc-footer-text,.fc-footer-link,.fc-footer-social-text,.fc-footer-phone) {
    color: #3c556a;
}
body.fc-public-glass .fc-public-footer .fc-footer-title { color: #112c42; }

@media (max-width: 640px) {
    body.fc-public-glass main > section.fc-glass:first-child > .bg-primary-gradient { padding: 22px !important; }
    body.fc-public-glass main > section.fc-glass:first-child > :last-child { padding: 18px !important; }
    body.fc-public-glass main:not(.doc-page) h1 { font-size: clamp(1.75rem, 7vw, 2.2rem) !important; }
    body.fc-public-glass main:not(.doc-page) h2 { font-size: clamp(1.32rem, 5.2vw, 1.7rem) !important; }
    body.fc-public-glass :is(.hero-stage,.review-hero-stage) { padding: 12px; }
    body.fc-public-glass :is(.hero-simple-card,.review-hero-card) { padding: 20px !important; }
    body.fc-public-glass main :is(#services,#zusatzleistungen) article.fc-glass { padding: 18px !important; }
}

/* Die öffentliche Dokumentansicht erhält Glas nur am Bildschirm; PDF und Druck bleiben weiß. */
@media screen {
    body.fc-public-glass .doc-page {
        border-color: rgba(255,255,255,.9) !important;
        background: linear-gradient(132deg, rgba(255,255,255,.87), rgba(222,241,253,.78), rgba(228,248,238,.82)) !important;
        box-shadow: 0 30px 70px rgba(19,75,134,.19), inset 0 2px rgba(255,255,255,.95) !important;
        backdrop-filter: blur(var(--fc-booking-glass-blur,34px)) saturate(var(--fc-booking-glass-saturation,1.75));
        -webkit-backdrop-filter: blur(var(--fc-booking-glass-blur,34px)) saturate(var(--fc-booking-glass-saturation,1.75));
    }
    body.fc-public-glass .doc-page :is(.doc-parties article, .doc-totals, .doc-bottom article, .doc-decision) {
        border-color: rgba(255,255,255,.88) !important;
        background: linear-gradient(132deg, rgba(255,255,255,.78), rgba(227,245,252,.66), rgba(221,248,231,.58)) !important;
        box-shadow: 0 10px 24px rgba(27,79,125,.10), inset 0 1px #fff !important;
        backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(1.5);
        -webkit-backdrop-filter: blur(var(--fc-booking-glass-inner-blur,27px)) saturate(1.5);
    }
}

@media (max-width: 640px) {
    body.fc-public-glass::before { inset: -22px; transform: scale(1.05); }
}

@media print {
    body.fc-public-glass { background: #fff !important; }
    body.fc-public-glass::before, body.fc-public-glass::after { display: none !important; }
    body.fc-public-glass main :is(.fc-glass, .fc-card, .plain-card, .fc-seo-card),
    body.fc-public-glass main > section[class*="bg-white/"] {
        background: #fff !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
    }
}
