/* ==========================================================================
   cs_gtranslate – Sprachwähler, Zustimmungs-Box & Hinweisleiste
   CrossScore Software
   Farben per Custom Properties anpassbar, z. B. im Sitepackage:
   .cs-gt, .cs-gt-consent, .cs-gt-notice { --cs-gt-color: #0062a3; }
   ========================================================================== */

.cs-gt,
.cs-gt-consent,
.cs-gt-notice {
    --cs-gt-color: #0062a3;                       /* Blau des Hamburger-Menüs */
    --cs-gt-accent: #5bb703;                      /* Grün des „Jetzt buchen“-Buttons */
    --cs-gt-accent-strong: #4f9f03;               /* dunkler, für weiße Schrift (Kontrast) */
    --cs-gt-text: #24323d;
    --cs-gt-muted: #55636e;
    --cs-gt-surface: rgba(255, 255, 255, .94);    /* ganz leicht transparent */
    --cs-gt-blur: 8px;
    --cs-gt-line: rgba(0, 98, 163, .3);
    --cs-gt-hover: rgba(0, 98, 163, .08);
    --cs-gt-shadow: 0 14px 34px rgba(0, 45, 80, .18);
    --cs-gt-radius: 10px;
    --cs-gt-font: inherit;
}

/* --------------------------------------------------------------------------
   Umschalter (Pillenform wie „Jetzt buchen“)
   -------------------------------------------------------------------------- */

.cs-gt-item {
    vertical-align: middle;
}

.cs-gt {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    font-family: var(--cs-gt-font);
    line-height: 1;
}

.cs-gt .cs-gt__toggle {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid var(--cs-gt-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .85);
    color: var(--cs-gt-color);
    font: inherit;
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .06em;
    cursor: pointer;
    transition: padding .25s ease, border-color .15s ease, background-color .15s ease;
}

.cs-gt .cs-gt__toggle:hover,
.cs-gt .cs-gt__toggle:focus-visible,
.cs-gt.is-open .cs-gt__toggle {
    border-color: var(--cs-gt-color);
    background: #fff;
}

.cs-gt .cs-gt__toggle:focus-visible {
    outline: 2px solid var(--cs-gt-color);
    outline-offset: 2px;
}

/* Runde Flaggen */
.cs-gt .cs-gt__flag {
    display: block;
    flex: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .08);
}

.cs-gt .cs-gt__flag[hidden],
.cs-gt .cs-gt__code[hidden],
.cs-gt .cs-gt__g[hidden] {
    display: none;
}

/* G + Pfeil: klappen nach settings.collapseAfter weg */
.cs-gt .cs-gt__details {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 60px;
    margin-left: 8px;
    overflow: hidden;
    white-space: nowrap;
    opacity: 1;
    transition: max-width .25s ease, margin-left .25s ease, opacity .2s ease;
}

.cs-gt .cs-gt__g {
    font-size: .9375rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1;
}

.cs-gt .cs-gt__caret {
    flex: none;
    transition: transform .15s ease;
}

.cs-gt.is-open .cs-gt__caret {
    transform: rotate(180deg);
}

.cs-gt.is-collapsed:not(.is-open):not(:hover):not(:focus-within) .cs-gt__toggle {
    padding: 0 11px;
}

.cs-gt.is-collapsed:not(.is-open):not(:hover):not(:focus-within) .cs-gt__details {
    max-width: 0;
    margin-left: 0;
    opacity: 0;
}

.cs-gt.is-busy .cs-gt__toggle {
    cursor: progress;
}

.cs-gt.is-busy .cs-gt__toggle .cs-gt__flag {
    animation: cs-gt-pulse 1s ease-in-out infinite;
}

@keyframes cs-gt-pulse {
    50% { opacity: .35; }
}

/* --------------------------------------------------------------------------
   Auswahlliste – hohe Spezifität, weil das Theme "header nav ul li" global stylt
   -------------------------------------------------------------------------- */

.cs-gt .cs-gt__panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 1050;
    width: 230px;
    overflow: hidden;
    border-radius: var(--cs-gt-radius);
    background: var(--cs-gt-surface);
    -webkit-backdrop-filter: blur(var(--cs-gt-blur));
    backdrop-filter: blur(var(--cs-gt-blur));
    box-shadow: var(--cs-gt-shadow);
    text-align: left;
}

.cs-gt .cs-gt__panel[hidden] {
    display: none !important;
}

.cs-gt .cs-gt__list {
    display: block;
    float: none;
    max-height: min(60vh, 380px);
    overflow-y: auto;
    margin: 0;
    padding: 6px;
    list-style: none;
}

.cs-gt .cs-gt__list > li {
    display: block !important;
    float: none;
    margin: 0;
    padding: 0;
}

.cs-gt .cs-gt__option {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin: 0;
    padding: 9px 12px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--cs-gt-text);
    font: inherit;
    font-size: .9375rem;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

.cs-gt .cs-gt__option:hover,
.cs-gt .cs-gt__option:focus-visible {
    background: var(--cs-gt-hover);
    outline: none;
}

.cs-gt .cs-gt__option:focus-visible {
    box-shadow: inset 0 0 0 2px var(--cs-gt-color);
}

.cs-gt .cs-gt__option .cs-gt__label {
    flex: 1 1 auto;
}

.cs-gt .cs-gt__option .cs-gt__code {
    color: var(--cs-gt-muted);
    font-size: .75rem;
    letter-spacing: .06em;
}

.cs-gt .cs-gt__option[aria-checked="true"] {
    background: var(--cs-gt-hover);
    color: var(--cs-gt-color);
    font-weight: 700;
}

/* Aktive Sprache: kleiner Punkt im Grün des Buchungs-Buttons */
.cs-gt .cs-gt__option[aria-checked="true"]::after {
    content: "";
    flex: none;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--cs-gt-accent);
}

/* Fußzeile „Übersetzung durch Google Translate“ */
.cs-gt .cs-gt__footer {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 10px 18px 12px;
    border-top: 1px solid rgba(0, 45, 80, .1);
    color: var(--cs-gt-muted);
    font-size: .75rem;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
}

.cs-gt .cs-gt__footer-g {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    box-sizing: border-box;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
}

/* Darstellungsvarianten der Liste (settings.listDisplay).
   Labels werden nur visuell versteckt, damit Screenreader sie weiter lesen. */
.cs-gt--list-flag-code .cs-gt__list .cs-gt__label,
.cs-gt--list-flag .cs-gt__list .cs-gt__label,
.cs-gt--list-code .cs-gt__list .cs-gt__label {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.cs-gt--list-flag-label .cs-gt__list .cs-gt__code,
.cs-gt--list-flag .cs-gt__list .cs-gt__code,
.cs-gt--list-label .cs-gt__list .cs-gt__code {
    display: none;
}

.cs-gt--list-label .cs-gt__list .cs-gt__flag,
.cs-gt--list-code .cs-gt__list .cs-gt__flag {
    display: none;
}

.cs-gt--list-code .cs-gt__list .cs-gt__code,
.cs-gt--list-flag-code .cs-gt__list .cs-gt__code {
    flex: 1 1 auto;
    color: inherit;
    font-size: .875rem;
}

/* --------------------------------------------------------------------------
   Zustimmungs-Box
   -------------------------------------------------------------------------- */

.cs-gt-consent {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 100000;
    width: min(360px, calc(100vw - 24px));
    box-sizing: border-box;
    padding: 20px 20px 18px;
    border-top: 3px solid var(--cs-gt-color);
    border-radius: var(--cs-gt-radius);
    background: var(--cs-gt-surface);
    -webkit-backdrop-filter: blur(var(--cs-gt-blur));
    backdrop-filter: blur(var(--cs-gt-blur));
    box-shadow: 0 18px 50px rgba(0, 45, 80, .25);
    color: var(--cs-gt-text);
    font-family: var(--cs-gt-font);
    font-size: .9375rem;
    line-height: 1.5;
    text-align: left;
    animation: cs-gt-in .16s ease-out;
}

.cs-gt-consent[hidden] {
    display: none;
}

@keyframes cs-gt-in {
    from { opacity: 0; transform: translateY(-6px); }
}

.cs-gt-consent .cs-gt-consent__title {
    margin: 0 0 6px;
    color: var(--cs-gt-color);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}

.cs-gt-consent .cs-gt-consent__text {
    margin: 0;
}

.cs-gt-consent .cs-gt-consent__links {
    margin: 8px 0 0;
    font-size: .875rem;
}

.cs-gt-consent .cs-gt-consent__links[hidden] {
    display: none;
}

.cs-gt-consent .cs-gt-consent__links a {
    color: var(--cs-gt-color);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.cs-gt-consent .cs-gt-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.cs-gt-consent .cs-gt-consent__accept,
.cs-gt-consent .cs-gt-consent__cancel {
    min-height: 44px;
    margin: 0;
    padding: 0 16px;
    border-radius: 999px;
    font: inherit;
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
}

.cs-gt-consent .cs-gt-consent__accept {
    flex: 1 1 auto;
    border: 1px solid var(--cs-gt-accent-strong);
    background: var(--cs-gt-accent-strong);
    color: #fff;
}

.cs-gt-consent .cs-gt-consent__accept:hover {
    filter: brightness(.94);
}

.cs-gt-consent .cs-gt-consent__accept[hidden] {
    display: none;
}

.cs-gt-consent .cs-gt-consent__cancel {
    border: 1px solid var(--cs-gt-line);
    background: transparent;
    color: var(--cs-gt-color);
}

.cs-gt-consent .cs-gt-consent__cancel:hover {
    border-color: var(--cs-gt-color);
}

.cs-gt-consent button:focus-visible,
.cs-gt-consent a:focus-visible,
.cs-gt-notice button:focus-visible {
    outline: 2px solid var(--cs-gt-color);
    outline-offset: 2px;
}

.cs-gt-consent.is-error {
    border-top-color: #c0392b;
}

/* --------------------------------------------------------------------------
   Hinweisleiste nach dem Übersetzen
   -------------------------------------------------------------------------- */

.cs-gt-notice {
    background: rgba(0, 98, 163, .94);
    -webkit-backdrop-filter: blur(var(--cs-gt-blur));
    backdrop-filter: blur(var(--cs-gt-blur));
    color: #fff;
    font-family: var(--cs-gt-font);
    text-align: left;
}

.cs-gt-notice[hidden] {
    display: none;
}

/* Fallback ohne passenden Container: oben fixiert */
.cs-gt-notice--fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99999;
}

.cs-gt-notice .cs-gt-notice__inner {
    display: flex;
    align-items: center;
    gap: 16px;
    max-width: 1140px;
    margin: 0 auto;
    padding: 8px 15px;
    box-sizing: border-box;
    font-size: .875rem;
    line-height: 1.4;
}

.cs-gt-notice .cs-gt-notice__g {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    box-sizing: border-box;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
}

.cs-gt-notice .cs-gt-notice__text {
    flex: 1 1 auto;
    margin: 0;
    color: inherit;
    font-weight: 400;
}

.cs-gt-notice .cs-gt-notice__original {
    flex: none;
    min-height: 36px;
    margin: 0;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: .8125rem;
    font-weight: 700;
    cursor: pointer;
}

.cs-gt-notice .cs-gt-notice__original:hover {
    background: rgba(255, 255, 255, .12);
}

.cs-gt-notice .cs-gt-notice__close {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.cs-gt-notice .cs-gt-notice__close:hover {
    background: rgba(255, 255, 255, .12);
}

.cs-gt-notice button:focus-visible {
    outline-color: #fff;
}

/* --------------------------------------------------------------------------
   Mobil
   -------------------------------------------------------------------------- */

@media (max-width: 575.98px) {
    .cs-gt .cs-gt__toggle {
        padding: 0 12px;
    }

    .cs-gt-consent {
        right: 12px;
        bottom: 12px;
        left: 12px;
        width: auto;
    }

    .cs-gt-notice .cs-gt-notice__inner {
        flex-wrap: wrap;
        gap: 8px 12px;
        padding: 10px 12px;
    }

    .cs-gt-notice .cs-gt-notice__text {
        flex-basis: calc(100% - 80px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .cs-gt *,
    .cs-gt-consent {
        animation: none !important;
        transition: none !important;
    }
}

/* --------------------------------------------------------------------------
   Google-Translate-Oberfläche ausblenden
   -------------------------------------------------------------------------- */

body {
    top: 0 !important;
}

.cs-gt-google,
iframe.skiptranslate,
.goog-te-banner-frame,
.goog-te-balloon-frame,
.goog-tooltip,
#goog-gt-tt,
.VIpgJd-ZVi9od-ORHb-OEVmcd,
.VIpgJd-ZVi9od-aZ2wEe-wOHMyf,
.VIpgJd-ZVi9od-l4eHX-hSRGPd,
.VIpgJd-yAWNEb-L7lbkb {
    display: none !important;
}

.goog-text-highlight,
.VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q {
    background: none !important;
    box-shadow: none !important;
}
