/* ==========================================================================
   FitFactory Třinec - PRELOADER
   Vychází z grafického rozhraní webu (styly/style.css):
   pozadí #000, akcent #009AAD, text #f0f0f0, hairline 1px rámečky,
   přechody 0.35s ease-in-out, fonty Panton / PantonCaps.
   ========================================================================== */

/* Vložená data - duplicitně kvůli nezávislosti preloaderu na style.css */
@font-face { font-family: 'PantonCaps'; src: url('../font/Panton-LightCaps.otf'); font-weight: normal; font-display: swap;}
@font-face { font-family: 'PantonCaps'; src: url('../font/Panton-BlackCaps.otf'); font-weight: 700; font-display: swap;}
@font-face { font-family: 'Panton'; src: url('../font/Panton-Regular.otf'); font-weight: normal; font-display: swap;}
@font-face { font-family: 'Panton'; src: url('../font/Panton-Bold.otf'); font-weight: 700; font-display: swap;}

/* Bez JavaScriptu se preloader vůbec nezobrazí - web zůstane přístupný */
.ff-preloader { display: none;}
html.ff-preloading .ff-preloader { display: block;}

/* Během načítání zamknutý scroll */
html.ff-preloading, html.ff-preloading body { overflow: hidden;}

/* Vlastní plocha preloaderu */
.ff-preloader {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 99999;
    text-align: center;
    font-family: 'Panton', sans-serif;
    background: #000;
    background-image: radial-gradient(ellipse at 50% 45%, rgba(0,154,173,.18) 0%, rgba(0,154,173,.04) 38%, rgba(0,0,0,0) 70%);
    opacity: 1;
    transition: opacity 0.6s ease-in-out, visibility 0.6s ease-in-out;
}

/* Hairline rámeček s akcentovanými rohy - stejná řeč jako .header-content */
.ff-preloader__frame {
    position: absolute; top: 30px; left: 30px; right: 30px; bottom: 30px;
    border: 1px solid rgba(240,240,240,.12);
}
.ff-preloader__frame:before,
.ff-preloader__frame:after {
    content: ''; position: absolute; width: 40px; height: 40px;
}
.ff-preloader__frame:before {
    top: -1px; left: -1px;
    border-top: 1px solid #009AAD; border-left: 1px solid #009AAD;
}
.ff-preloader__frame:after {
    bottom: -1px; right: -1px;
    border-bottom: 1px solid #009AAD; border-right: 1px solid #009AAD;
}

/* Střed - logo, popis, ukazatel */
.ff-preloader__box {
    position: absolute; top: 50%; left: 50%;
    width: 320px; margin: -125px 0 0 -160px;
}

.ff-preloader__logo {
    width: 233px; height: 90px; margin: 0 auto 34px auto;
    background: url('../themes/logos.fw.png') top no-repeat;
    background-size: cover;
    animation: ff-preloader-pulse 2.4s ease-in-out infinite;
}

.ff-preloader__label {
    font-family: 'PantonCaps', sans-serif;
    font-size: 16px; font-weight: 700; letter-spacing: 6px;
    color: rgba(240,240,240,.55);
    margin: 0 0 14px 0;
}

/* Ukazatel průběhu */
.ff-preloader__track {
    position: relative;
    width: 260px; height: 2px; margin: 0 auto;
    overflow: hidden;
    background: rgba(240,240,240,.15);
}
.ff-preloader__bar {
    position: absolute; top: 0; left: 0; bottom: 0;
    width: 0;
    background: #009AAD;
    box-shadow: 0 0 12px rgba(0,154,173,.9);
    transition: width 0.35s ease-in-out;
}

.ff-preloader__percent {
    font-family: 'PantonCaps', sans-serif;
    font-size: 22px; font-weight: 700; letter-spacing: 2px;
    color: #f0f0f0;
    margin: 18px 0 0 0;
}

/* Odchod preloaderu */
.ff-preloader.is-done {
    opacity: 0; visibility: hidden;
}
.ff-preloader.is-done .ff-preloader__box {
    transform: translateY(-12px);
    transition: transform 0.6s ease-in-out;
}

@keyframes ff-preloader-pulse {
    0%, 100% { opacity: .55;}
    50%      { opacity: 1;}
}

/* Rozhraní pro tablety */
@media screen and (max-width: 1099px) {
    .ff-preloader__frame { top: 20px; left: 20px; right: 20px; bottom: 20px;}
    .ff-preloader__logo { width: 186px; height: 70px; margin-bottom: 28px;}
    .ff-preloader__box { margin-top: -110px;}
}

/* Rozhraní pro mobily */
@media screen and (max-width: 799px) {
    .ff-preloader__frame { top: 12px; left: 12px; right: 12px; bottom: 12px;}
    .ff-preloader__frame:before, .ff-preloader__frame:after { width: 24px; height: 24px;}
    .ff-preloader__box { width: 260px; margin: -100px 0 0 -130px;}
    .ff-preloader__logo { width: 155px; height: 60px; margin-bottom: 24px;}
    .ff-preloader__label { font-size: 13px; letter-spacing: 4px;}
    .ff-preloader__track { width: 200px;}
    .ff-preloader__percent { font-size: 18px;}
}

/* Ohled na uživatele s omezením animací */
@media (prefers-reduced-motion: reduce) {
    .ff-preloader__logo { animation: none; opacity: 1;}
    .ff-preloader, .ff-preloader__bar, .ff-preloader.is-done .ff-preloader__box { transition: none;}
}
