/* W23-A1.1 — scroll-padding only ≤900 (desktop hash offsets unchanged) */
@media (max-width: 900px) {
  html {
    scroll-padding-top: calc(var(--ax-navh) + var(--ax-nav-scroll-gap));
  }
}

@font-face {
  font-family: 'Silka';
  src: url('../fonts/Silka-ExtraLight.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Silka';
  src: url('../fonts/Silka-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Silka';
  src: url('../fonts/Silka-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Silka';
  src: url('../fonts/Silka-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Silka';
  src: url('../fonts/Silka-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Silka';
  src: url('../fonts/Silka-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Silka';
  src: url('../fonts/Silka-RegularItalic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

html {
  scroll-behavior: smooth;
  background: var(--ax-paper);
}

body.ax-site {
  margin: 0;
  background: var(--ax-paper);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  font-family: var(--ax-font);
  font-size: 16.5px;
  line-height: 1.66;
  letter-spacing: -.002em;
  color: var(--ax-navy);
}

/* wpautop leftovers before first block — kill margin that opens a paper strip under topbar. */
.ax-main > p:empty,
.ax-main > p:has(> br:only-child) {
  display: none;
  margin: 0;
  padding: 0;
  height: 0;
  overflow: hidden;
}

.ax-site *,
.ax-site *::before,
.ax-site *::after {
  box-sizing: border-box;
}

/*
 * Default link color for light paper surfaces.
 * Use :where() so specificity stays (0,0,1) and component classes win
 * (.ax-menu__link, .ax-footer__phone, .ax-topbar__link, ...).
 * Bare .ax-site a (0,1,1) previously beat every component class (0,1,0)
 * and forced navy/steel across dark chrome (W3.5 footer, W6 topbar, W6-A menu).
 */
:where(.ax-site) a {
  color: var(--ax-navy);
  text-decoration: none;
}

@media (hover: hover) and (pointer: fine) {
:where(.ax-site) a:hover {
  color: var(--ax-steel);
}
}


/*
 * tel:/mailto: — no UA focus ring; project accent on hover + focus-visible.
 * Reference has only a:hover → #86A0C6; focus-visible keeps a11y without system outline.
 */
.ax-site a[href^="tel:"],
.ax-site a[href^="mailto:"] {
  outline: none;
  text-decoration: none;
  box-shadow: none;
}

.ax-site a[href^="tel:"]:focus,
.ax-site a[href^="mailto:"]:focus {
  outline: none;
}

.ax-site a[href^="tel:"]:focus-visible,
.ax-site a[href^="mailto:"]:focus-visible {
  outline: none;
  color: var(--ax-steel);
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

.ax-site ::selection {
  background: var(--ax-navy);
  color: var(--ax-paper);
}

.ax-site input,
.ax-site textarea,
.ax-site select {
  font: inherit;
  color: inherit;
}

/* Buttons keep family from component CSS; :where keeps specificity (0,0,1). */
:where(.ax-site) button {
  font-family: inherit;
}

.ax-site h1,
.ax-site h2,
.ax-site h3,
.ax-site h4,
.ax-site h5,
.ax-site h6 {
  font-family: var(--ax-font);
}

.ax-heading-italic {
  font-weight: 300;
  font-style: italic;
}

@keyframes ax-veilOut {
  /* Reference home: hold 40% of 1.5s, then clip up. */
  0%, 40% { clip-path: inset(0 0 0 0); }
  100% { clip-path: inset(0 0 100% 0); }
}

@keyframes ax-veilIn {
  /* Logo visible from frame 0 — no translateY enter (was reading as a navy flash / slide-up). */
  0%, 70% { opacity: 1; transform: none; }
  100% { opacity: 0; }
}

@keyframes ax-riseIn {
  0% { transform: translateY(115%); }
  100% { transform: translateY(0); }
}

@keyframes ax-softIn {
  0% { opacity: 0; transform: translateY(16px); }
  100% { opacity: 1; transform: none; }
}

@keyframes ax-glassIn {
  0% { opacity: 0; transform: translateY(30px) scale(.985); }
  100% { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ax-site *,
  .ax-site *::before,
  .ax-site *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

@media (max-width: 900px) {
  html {
    -webkit-text-size-adjust: 100%;
  }

  .ax-site a {
    -webkit-tap-highlight-color: transparent;
  }
}


/*
 * W9.2 — link contexts after :where(.ax-site) a (navy default for paper).
 * Dark surfaces opt in via .ax-on-ink. :where(a) keeps specificity (0,1,0)
 * so component classes (.ax-hero__cta--primary, .ax-footer__*) still win.
 * Do not raise the global :where(.ax-site) a rule.
 */
.ax-on-ink {
  color: var(--ax-paper);
}

.ax-on-ink :where(a) {
  color: var(--ax-paper);
}

@media (hover: hover) and (pointer: fine) {
.ax-on-ink :where(a):hover {
  color: var(--ax-steel);
}
}


.ax-on-paper {
  color: var(--ax-navy);
}

.ax-on-paper :where(a) {
  color: var(--ax-navy);
}

@media (hover: hover) and (pointer: fine) {
.ax-on-paper :where(a):hover {
  color: var(--ax-steel);
}
}


/* Editorial / news / consent copy on paper (bare anchors in content). */
.ax-prose :where(a) {
  color: var(--ax-navy);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

@media (hover: hover) and (pointer: fine) {
.ax-prose :where(a):hover {
  color: var(--ax-steel);
}
}


/*
 * W29 - most tokenowy dla starszych ikon rysowanych wprost w PHP.
 *
 * Kilkadziesiat rysunkow SVG ma kolory wpisane w atrybutach stroke/fill.
 * Zmienne CSS nie dzialaja w atrybutach prezentacyjnych, ale kazda regula
 * CSS wygrywa z atrybutem, wiec te selektory podpinaja stare literaly pod
 * tokeny. Wartosci sa tozsame z dotychczasowymi - render sie nie zmienia,
 * ale zmiana akcentu marki obejmuje teraz takze te ikony.
 *
 * Selektory sa owiniete w :where(), zeby mialy zerowa specyficznosc. Dzieki
 * temu most przebija wylacznie atrybut, a przegrywa z kazda istniejaca
 * regula - w tym z tymi, ktore ustawiaja na tych samych ikonach
 * fill: currentColor. Bez tego most zmienialby ich kolor.
 *
 * Nowe ikony maja isc przez typ tresci ikon, nie tedy.
 */
:where([stroke="#86A0C6"]) { stroke: var(--ax-steel); }
:where([fill="#86A0C6"])   { fill:   var(--ax-steel); }
:where([stroke="#353B66"]) { stroke: var(--ax-navy); }
:where([fill="#353B66"])   { fill:   var(--ax-navy); }
:where([stroke="#F4F1EB"]) { stroke: var(--ax-paper); }
:where([fill="#F4F1EB"])   { fill:   var(--ax-paper); }

/*
 * Flagi narodowe w przelaczniku jezyka uzywaja tej samej bieli, ale nie sa
 * kolorem marki - wykluczamy je z mostu. Fill i stroke osobno, zeby nie
 * dorysowac obrysu elementom, ktore go nie maja.
 */
.ax-topbar__lang [fill="#F4F1EB"],
.ax-menu__lang [fill="#F4F1EB"] { fill: #F4F1EB; }

.ax-topbar__lang [stroke="#F4F1EB"],
.ax-menu__lang [stroke="#F4F1EB"] { stroke: #F4F1EB; }

