/* ============================================================
   GB Tech — warstwa „polish" (dopieszczenie)
   Wczytywana PO styles.css. Same detale premium, z umiarem:
   filmowe ziarno, błysk na CTA, żywy gradient w hero, ładny
   scrollbar, spójne focusy, branżowy accent-color. Nic tu nie
   przebudowuje layoutu — to ostatni szlif „pod ostatni szew".
   ============================================================ */

/* --- Spójny, elegancki focus dla klawiatury (dostępność + sznyt) --- */
:focus-visible {
    outline: 2px solid var(--teal);
    outline-offset: 3px;
    border-radius: 4px;
}
/* Pola formularzy i kontrolki w kolorach marki */
input, textarea, select { accent-color: var(--teal); }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline-offset: 1px; }

/* --- Zaznaczenie tekstu w kolorach marki --- */
::selection { background: rgba(94, 234, 212, 0.28); color: #fff; }

/* --- Smukły, ciemny scrollbar (detal, który czuć) --- */
* { scrollbar-width: thin; scrollbar-color: rgba(94, 234, 212, 0.35) transparent; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: #050a15; }
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(94, 234, 212, 0.45), rgba(16, 185, 129, 0.4));
    border: 3px solid #050a15;
    border-radius: 100px;
}
::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, rgba(94, 234, 212, 0.7), rgba(16, 185, 129, 0.6));
}

/* --- Filmowe ziarno na całej stronie — bardzo subtelne, „kinowe" ---
   Nad tłem i sekcjami, POD nagłówkiem/nawigatorem/WhatsAppem. Nie klikalne. */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 60;
    pointer-events: none;
    opacity: 0.02;
    mix-blend-mode: soft-light;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    background-size: 200px 200px;
}
body.intro-active::before { opacity: 0; } /* w trakcie intro bez ziarna na stronie */

/* --- Żywy gradient na akcencie tytułu hero („Dom, który myśli.") --- */
.hero-title-accent {
    background: linear-gradient(100deg, var(--teal) 0%, var(--emerald-light) 28%, var(--amber) 52%, var(--emerald-light) 76%, var(--teal) 100%);
    background-size: 250% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    animation: gb-accent-flow 9s ease-in-out infinite;
}
@keyframes gb-accent-flow {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

/* --- Błysk światła przelatujący po głównych przyciskach na hover (delikatny) --- */
.btn-primary { position: relative; overflow: hidden; isolation: isolate; }
.btn-primary::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.55) 50%, transparent 65%);
    transform: translateX(-130%);
    transition: transform 0.7s var(--ease);
}
.btn-primary:hover::after { transform: translateX(130%); }

/* --- Podkreślenie linków w nawigacji górnej (rośnie od środka) --- */
.nav-side a { position: relative; }
.nav-side a > span::after {
    content: '';
    position: absolute;
    left: 50%;
    right: 50%;
    bottom: -4px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--teal), var(--emerald));
    transition: left 0.3s var(--ease), right 0.3s var(--ease);
}
.nav-side a:hover > span::after,
.nav-side a.is-active > span::after { left: 0; right: 0; }

@media (prefers-reduced-motion: reduce) {
    .hero-title-accent { animation: none; }
    body::before { display: none; }
}
