.gradient-text {
    background: linear-gradient(to right, #059669, #10b981);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

html {
    scroll-behavior: smooth;
}

.mobile-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out;
}

.mobile-menu.active {
    max-height: 500px;
}

/* Cookie lišta (karta vlevo dole, vzhled je v Tailwind třídách ve footer.php) – plynulé vyjetí a zmizení */
#cookie-banner {
    transition: transform 0.35s ease, opacity 0.35s ease;
}

/* Výchozí stav je skrytý – zobrazí ho site.js, jen když ještě nepadlo rozhodnutí o cookies.
   Vlastní třída místo „hidden“, protože Tailwind u ní nastaví display: none a přechod by se nepřehrál. */
#cookie-banner.is-hidden {
    transform: translateY(calc(100% + 1rem));
    opacity: 0;
    visibility: hidden;
    transition: transform 0.35s ease, opacity 0.35s ease, visibility 0s 0.35s;
}

/* Zavírání banneru s dočasnými informacemi */
.site-banner {
    transition: opacity 0.3s ease;
}

.site-banner.is-closing {
    opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
    .site-banner {
        transition: none;
    }
}

/* Hláška po odeslání formuláře – jemně vyjede */
@keyframes flash-in {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
}

.flash-in {
    animation: flash-in 0.4s ease-out 0.15s both;
}

@media (prefers-reduced-motion: reduce) {
    #cookie-banner, #cookie-banner.is-hidden, .flash-in {
        transition: none;
        animation: none;
    }
}

/* Plovoucí popisky kontaktního formuláře – při psaní (nebo vyplněném poli) se popisek posune nahoru */
.float-field input:not(:placeholder-shown) + label,
.float-field textarea:not(:placeholder-shown) + label,
.float-field input:focus + label,
.float-field textarea:focus + label {
    top: .55rem;
    font-size: .7rem;
    color: #0d9488;
}

/* Vlastní zaškrtávátko souhlasu – skutečný checkbox je skrytý (sr-only), ale dál ovladatelný klávesnicí */
.consent-box {
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}

.consent-box svg {
    opacity: 0;
    transform: scale(.4);
    transition: opacity .15s ease, transform .2s cubic-bezier(.34, 1.56, .64, 1);
}

.consent:hover .consent-box {
    border-color: #14b8a6;
}

.consent:active .consent-box {
    transform: scale(.9);
}

.consent input:checked + .consent-box {
    background-color: #0d9488;
    border-color: #0d9488;
}

.consent input:checked + .consent-box svg {
    opacity: 1;
    transform: scale(1);
}

.consent input:focus-visible + .consent-box {
    box-shadow: 0 0 0 4px #ccfbf1;
    border-color: #14b8a6;
}

@media (prefers-reduced-motion: reduce) {
    .consent-box, .consent-box svg {
        transition: none;
    }
}

/* Honeypot kontaktního formuláře – mimo obrazovku, ne display:none (některé roboty to poznají) */
.form-hp {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
