/* Explain: Base styles, typography, and global layout safeguards for consistent rendering. */
* {
    box-sizing: border-box;
}

/* Custom pointer skriven u korist interaktivnog DOM kružića */
body.has-custom-cursor, body.has-custom-cursor * {
    cursor: none !important;
}

/* Osiguranje da CookieHub i vanjski widgeti normalno rade s mišem i Tailwindom */
body.has-custom-cursor .ch2-container,
body.has-custom-cursor .ch2-container *,
body.has-custom-cursor .ch2-dialog,
body.has-custom-cursor .ch2-dialog *,
body.has-custom-cursor iframe {
    cursor: auto !important;
}
.ch2-container, .ch2-dialog, #ch2 {
    z-index: 2147483647 !important;
}

[x-cloak] { 
    display: none !important; 
}

html {
    background: var(--background-color);
    scroll-behavior: smooth;
    font-size: 16px; /* Standardna baza */
    overflow-x: hidden;
    max-width: 100vw;
}

/* Accessiblity: Visible focus outline for keyboard users */
*:focus-visible {
    outline: 2px solid var(--text-color);
    outline-offset: 3px;
}

/* Accessibility: Reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }
    *, ::before, ::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

body {
    overflow-x: hidden;
    background-color: var(--background-color);
    color: var(--text-color);
    font-family: var(--font-body);
    padding-bottom: env(safe-area-inset-bottom);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: 100vw;
    width: 100%;
}

/* Minimalna dopuštena veličina fonta 12px (Accessibility i čitljivost) */
.text-\[9px\],
.text-\[10px\],
.text-\[11px\] {
    font-size: 12px !important;
}

/* Globalna zaštita od probijanja (overflow) dugih riječi izvan okvira kontejnera */
h1, h2, h3, h4, h5, h6, p, a, span, li {
    overflow-wrap: break-word;
    word-wrap: break-word;
    hyphens: auto; /* Omogućuje uredno prelamanje dugačkih riječi na uskim ekranima */
}

main,
section,
article,
.card,
.btn,
button,
a {
    min-width: 0;
}

main,
section,
article {
    max-width: 100%;
    overflow-wrap: break-word;
}

img,
video,
canvas,
svg {
    max-width: 100%;
}

/* EKSTREMNA OPTIMIZACIJA PERFORMANSI */
/* Značajno smanjenje opterećenja GPU-a potpunim gašenjem teških blend modova koji uzrokuju lag pri skrolanju */
.mix-blend-luminosity, 
.mix-blend-overlay, 
.mix-blend-screen, 
.mix-blend-color,
.mix-blend-color-dodge,
.mix-blend-multiply {
    mix-blend-mode: normal !important;
}

/* Značajno ubrzanje renderiranja limitiranjem masivnih blur efekata koji uništavaju FPS na mobitelima i laptopima */
.blur-2xl, .blur-3xl, 
.blur-\[40px\], .blur-\[60px\], .blur-\[80px\], 
.blur-\[100px\], .blur-\[120px\], .blur-\[150px\] {
    filter: blur(24px) !important;
}

/* Ograničavanje teških pozadinskih animacija preko cijelog ekrana */
.animate-\[pulse_12s_ease-in-out_infinite\],
.animate-hero-bg,
.animate-hero-float {
    animation: none !important;
}

/* Zadržavamo hardversko ubrzanje samo na staklenim UI elementima */
.backdrop-blur-md, 
.backdrop-blur-xl, 
.backdrop-blur-sm,
.grayscale {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.btn {
    min-height: 3rem;
    height: auto;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    white-space: normal;
    overflow-wrap: break-word;
    line-height: 1.25;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

button:not(.btn) {
    white-space: normal;
    overflow-wrap: break-word;
}

@media (max-width: 767px) {
    body {
        padding-bottom: calc(64px + env(safe-area-inset-bottom));
    }
}

/* Globalna harmonizacija tipografskih standarda za sve podstranice prema naslovnoj */
main h1:not([class*="text-[10px]"]):not([class*="text-xs"]) {
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-wrap: balance;
    margin-bottom: 0.2em;
}

main h2:not([class*="text-[10px]"]):not([class*="text-xs"]) {
    font-size: clamp(1.75rem, 3.5vw, 3rem);
    line-height: 1.15;
    letter-spacing: -0.02em;
    text-wrap: balance;
    margin-bottom: 0.25em;
}

main h3:not([class*="text-[10px]"]):not([class*="text-xs"]) {
    font-size: clamp(1.25rem, 2.5vw, 2.25rem);
    line-height: 1.2;
    text-wrap: balance;
    margin-bottom: 0.25em;
}

main h4:not([class*="text-[10px]"]):not([class*="text-xs"]) {
    font-size: clamp(1.125rem, 1.8vw, 1.5rem);
    line-height: 1.3;
    text-wrap: balance;
    margin-bottom: 0.25em;
}

main p:not([class*="text-[10px]"]):not([class*="text-[11px]"]):not([class*="text-xs"]) {
    line-height: 1.6 !important;
    font-weight: 300 !important;
    text-wrap: pretty !important;
}

main li:not([class*="text-[10px]"]):not([class*="text-[11px]"]):not([class*="text-xs"]) {
    line-height: 1.5 !important;
}
