/* Akademia SPM · style strony (projekt Claude Design „Akademia SPM v5”)
   Większość stylów jest wpisana w znaczniki w build.py (1:1 z projektem).
   Tu: baza, animacje, efekty :hover/:focus (klasy .hv-*, .inp) i układ mobilny. */

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #F0F4FE; color: #17223F; font-family: 'Atkinson Hyperlegible', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
a { color: #32489D; text-decoration: none; }
a:hover { color: #26397E; }
::selection { background: #C9A25A; color: #17223F; }
input::placeholder, textarea::placeholder { color: #5F6FA0; }
button { font-family: inherit; }
summary::-webkit-details-marker { display: none; }
details[open] .faq-plus { transform: rotate(45deg); }
:focus-visible { outline: 2px solid #C9A25A; outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Animacje z projektu */
[data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
[data-reveal="in"], .no-js [data-reveal] { opacity: 1; transform: translateY(0); }
@keyframes naborPulse { 0% { box-shadow: 0 0 0 0 rgba(201,162,90,.7) } 70% { box-shadow: 0 0 0 9px rgba(201,162,90,0) } 100% { box-shadow: 0 0 0 0 rgba(201,162,90,0) } }
@keyframes resultGlow { 0% { opacity: 0; transform: scale(.96) } 100% { opacity: 1; transform: scale(1) } }
@keyframes slideFromLeft { 0% { opacity: 0; transform: translateX(-50px) } 100% { opacity: 1; transform: translateX(0) } }
@keyframes slideFromRight { 0% { opacity: 0; transform: translateX(50px) } 100% { opacity: 1; transform: translateX(0) } }
.slide-l { animation: slideFromLeft .55s cubic-bezier(.16,.84,.3,1) both; }
.slide-r { animation: slideFromRight .55s cubic-bezier(.16,.84,.3,1) both; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  .slide-l, .slide-r { animation: none; }
}

/* Efekty :hover / :focus (w projekcie: style-hover / style-focus) */
.hv-white:hover { color: #fff !important; }
.hv-gold:hover { background: #B08A43 !important; color: #17223F !important; }
.hv-blue:hover { background: #26397E !important; color: #fff !important; }
.hv-soft:hover { background: #CEE0FC !important; }
.hv-bdlight:hover { border-color: #F5F7FA !important; color: #F5F7FA !important; }
.hv-tab:hover { transform: translateY(-3px) !important; border-color: #C9A25A !important; }
.hv-lift:hover { transform: translateY(-6px) !important; box-shadow: 0 20px 44px rgba(23,34,63,.12) !important; }
.hv-row:hover { background: rgba(255,255,255,.04) !important; }
.hv-role:hover { border-color: #32489D !important; background: #fff !important; }
.hv-link:hover { color: #32489D !important; }
.hv-goldtxt:hover { color: #C9A25A !important; }
.hv-light:hover { color: #F5F7FA !important; }
.inp:focus { border-color: #32489D !important; outline: 2px solid #A8C5E0 !important; }
.inp.blad { border-color: #B08A43 !important; }
.zgoda.blad { color: #B08A43 !important; }
button[disabled] { opacity: .7; cursor: wait !important; }

/* Tablet i telefon (z projektu) */
@media (max-width: 960px) {
  .hero { padding-top: 78px !important; min-height: 0 !important; }
  .hero-cv { position: relative !important; top: 0 !important; width: 100% !important; height: 300px !important; -webkit-mask-image: none !important; mask-image: none !important; }
  .hero-in { padding: 0 22px 40px !important; }
  .g6p { grid-template-columns: repeat(3, 1fr) !important; }
  .g6p > span { grid-column: 1 / -1; }
  .g2 { grid-template-columns: 1fr !important; }
  .g3 { grid-template-columns: 1fr 1fr !important; }
  .g4 { grid-template-columns: 1fr 1fr !important; }
  .hide-m { display: none !important; }
  .onas { grid-template-columns: 1fr !important; }
  .onas aside { position: static !important; }
}
@media (max-width: 620px) {
  .nav { gap: 12px !important; padding-left: 16px !important; padding-right: 16px !important; }
  .nav .nav-word { height: 40px !important; }
  .nav > a:last-child { padding: 10px 16px !important; font-size: 13.5px !important; }
  .nabor { white-space: normal !important; flex-wrap: wrap; row-gap: 2px !important; font-size: 13px !important; }
  .gk2 { grid-template-columns: 1fr !important; width: 100% !important; }
  .g3 { grid-template-columns: 1fr !important; }
  .g4 { grid-template-columns: 1fr !important; }
  .gk { grid-template-columns: 1fr !important; }
  .hide-s { display: none !important; }
  .kalk { padding: 28px 20px !important; }
  #formularz { padding: 40px 20px !important; }
  #zapis > div > div:last-child { padding: 26px 20px !important; }
}
