body {
    font-family: 'Inter', sans-serif;
    /* Na mobile: padding-bottom dla dolnego paska przycisków */
    padding-bottom: 68px;
    animation: fadeIn 0.15s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@media (min-width: 769px) {
    body {
        padding-bottom: 0;
        padding-right: 5rem;
    }
}

@media (min-width: 1024px) {
    body {
        padding-right: 7rem;
    }
}

/* Stopka pełna szerokość - niweluje padding body */
footer {
    position: relative;
    z-index: 60;
}

@media (min-width: 769px) {
    footer {
        margin-right: -5rem;
    }
}

@media (min-width: 1024px) {
    footer {
        margin-right: -7rem;
    }
}

/* =====================================================
   FLOATING ACTION BUTTONS
   Desktop: pionowo po prawej (bez zmian)
   Mobile:  poziomy pasek na dole ekranu
   ===================================================== */

/* Na mobile chowamy indywidualne fixed przyciski boczne */
@media (max-width: 768px) {
    #scroll-to-top,
    .fab-side {
        display: none !important;
    }

    /* Dolny pasek przycisków */
    #mobile-fab-bar {
        display: flex !important;
    }
}

/* Na desktop chowamy dolny pasek */
@media (min-width: 769px) {
    #mobile-fab-bar {
        display: none !important;
    }
}

/* Accessibility: High Contrast Mode */
body.high-contrast {
    background-color: #000 !important;
    color: #fff !important;
}
body.high-contrast a, 
body.high-contrast button,
body.high-contrast h1,
body.high-contrast h2,
body.high-contrast h3,
body.high-contrast p,
body.high-contrast span,
body.high-contrast label,
body.high-contrast input,
body.high-contrast textarea,
body.high-contrast select {
    color: #fff !important;
    border-color: #fff !important;
}
body.high-contrast .bg-blue-900,
body.high-contrast .bg-slate-50,
body.high-contrast .bg-white,
body.high-contrast .glass-nav,
body.high-contrast #mobile-menu,
body.high-contrast #accessibility-menu,
body.high-contrast .bg-blue-600,
body.high-contrast .bg-blue-50,
body.high-contrast input,
body.high-contrast textarea,
body.high-contrast select {
    background-color: #000 !important;
    background-image: none !important;
    border: 2px solid #fff !important;
}

body.high-contrast input,
body.high-contrast textarea,
body.high-contrast select {
    transition: outline-offset 0.2s ease !important;
}

body.high-contrast input:focus,
body.high-contrast textarea:focus,
body.high-contrast select:focus {
    outline: 3px solid #fff !important;
    outline-offset: 4px !important;
}

body.high-contrast input::placeholder,
body.high-contrast textarea::placeholder {
    color: #ccc !important;
}

body.high-contrast header img {
    filter: brightness(0) invert(1) !important;
}

body.high-contrast .text-slate-600,
body.high-contrast .text-slate-500,
body.high-contrast .text-blue-600 {
    color: #fff !important;
}

/* Text scaling */
body.large-text { font-size: 1.25rem; }
body.large-text h1 { font-size: 4rem; }

.glass-nav {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
}

/* Rezerwacja miejsca na ikony boczne */
.safe-container {
    padding-right: 5rem; /* ~80px na mobile */
    transition: padding 0.3s ease;
}

@media (min-width: 1024px) {
    .safe-container {
        padding-right: 8rem; /* ~128px na desktopie */
    }
}

/* Hero h1 — wymuszony rozmiar na mobile/tablet */
@media (max-width: 768px) {
    h1.hero-heading {
        font-size: 28px !important;
        line-height: 1.2 !important;
        word-break: break-word !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    h1.hero-heading {
        font-size: 38px !important;
        line-height: 1.2 !important;
    }
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Global mobile heading sizes */
@media (max-width: 768px) {
    h1 {
        font-size: clamp(24px, 7vw, 32px) !important;
        line-height: 1.15 !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }
    h2 {
        font-size: clamp(18px, 5.5vw, 24px) !important;
        line-height: 1.2 !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }
}