/* ==========================================================================
   Anna Jaworowska — komponenty
   Wymaga: tokens.css. Bez frameworka, bez JS (poza <details> dla FAQ).
   ========================================================================== */

/* --- Reset i baza -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--aj-bg-light);
  color: var(--aj-ink-body);
  font: 400 var(--aj-fs-body)/var(--aj-lh-body) var(--aj-font-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
p { margin: 0 0 var(--aj-s-2); max-width: var(--aj-measure); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
h1, h2, h3 { margin: 0; font-family: var(--aj-font-display); font-weight: 400; letter-spacing: var(--aj-ls-display); text-wrap: balance; }
h1 { font-size: var(--aj-fs-h1); line-height: var(--aj-lh-head); }
h2 { font-size: var(--aj-fs-h2); line-height: var(--aj-lh-head); }
h3 { font-size: var(--aj-fs-h3); line-height: var(--aj-lh-head); }
em, .aj-em { font-style: italic; }
a:not(.aj-btn) { color: var(--aj-gold-ink); text-decoration-thickness: 1px; text-underline-offset: .22em; transition: color var(--aj-dur) var(--aj-ease); }
a:hover:not(.aj-btn) { color: var(--aj-ink); }
/* .aj-btn zarządza własnym kolorem przez --_fg (patrz sekcja "Przycisk") — te
   dwie ogólne reguły <a> nie mogą go przykrywać (element+:hover ma wyższą
   specyficzność niż pojedyncza klasa .aj-btn, więc bez :not() gasiły tekst
   przycisku na hover w całym serwisie). */
:focus-visible { outline: var(--aj-focus); outline-offset: var(--aj-focus-offset); }
img { max-width: 100%; height: auto; display: block; }

/* Nigdy nie justujemy, nie centrujemy akapitów wieloliniowych */
.aj-left   { text-align: left; }
.aj-center { text-align: center; }           /* tylko krótkie nagłówki / 1 zdanie */
.aj-center p { margin-inline: auto; }

/* Wspólna, jednolita wysokość hero-ze-zdjęciem na WSZYSTKICH podstronach
   poza Home (tam hero ma inny, pełnoekranowy charakter) — Oferta,
   Nieruchomości, O mnie, Kontakt, Blog.
   UWAGA: musi być `height` (sztywna), nie `min-height` — min-height to tylko
   dolna granica i tak różnej długości nagłówek/akapit na każdej podstronie
   i tak przebijały ją na różną wysokość (zmierzone: 491–576px). Wartość 590px
   dobrana z zapasem ponad najwyższą zmierzoną zawartość (576px), żeby żaden
   H1 się nie przycinał; `overflow:hidden` już jest na sekcji nadrzędnej. */
.aj-hero-photo { height: 590px; display: flex; align-items: center; }
@media (max-width: 767px) { .aj-hero-photo { height: 460px; } }

/* --- Pasy sekcji i rytm pionowy ----------------------------------------- */
.aj-band { padding-block: var(--aj-s-6); }
.aj-band--tight { padding-block: var(--aj-s-5); }
.aj-band--open  { padding-block: var(--aj-s-7); }
.aj-band--light { background: var(--aj-bg-light); color: var(--aj-ink-body); }
.aj-band--dark  { background: var(--aj-bg-dark);  color: var(--aj-on-dark-body); }

/* Dwie (lub więcej) sąsiadujące jasne sekcje — naprzemiennie lekko kremowe tło,
   żeby granica między nimi była widoczna bez linii. Rosnąca specyficzność daje
   naprzemienność w obrębie ciągu: pozycje 1,3,5 = biel, 2,4,6 = krem. */
.aj-band--light + .aj-band--light { background: var(--aj-bg-warm); }
.aj-band--light + .aj-band--light + .aj-band--light { background: var(--aj-bg-light); }
.aj-band--light + .aj-band--light + .aj-band--light + .aj-band--light { background: var(--aj-bg-warm); }
.aj-band--light + .aj-band--light + .aj-band--light + .aj-band--light + .aj-band--light { background: var(--aj-bg-light); }
.aj-band--light + .aj-band--light + .aj-band--light + .aj-band--light + .aj-band--light + .aj-band--light { background: var(--aj-bg-warm); }
.aj-band--dark h1, .aj-band--dark h2, .aj-band--dark h3 { color: var(--aj-on-dark); }
.aj-band--dark a:not(.aj-btn) { color: var(--aj-gold); }
.aj-band--dark a:hover:not(.aj-btn) { color: var(--aj-gold-hover); }

.aj-container { width: 100%; max-width: var(--aj-container); margin-inline: auto; padding-inline: var(--aj-gutter); }
.aj-narrow { max-width: var(--aj-container-narrow); }
/* Wyśrodkowana wąska kolumna treści — dla sekcji „nagłówek + akapity" bez drugiej
   kolumny, żeby pustka rozkładała się równo, a długość wiersza została czytelna. */
.aj-prose { max-width: var(--aj-container-narrow); margin-inline: auto; }
.aj-stack > * + * { margin-top: var(--aj-s-3); }
.aj-stack-lg > * + * { margin-top: var(--aj-s-4); }

/* --- Narożne „wąsy" ------------------------------------------------------
   Zasada: wąsy oznaczają PAS sekcji (band), nigdy pojedynczej karty.
   Jeden wariant, zawsze 4 narożniki, zawsze 28 px ramienia.            */
.aj-frame { position: relative; }
.aj-frame::before, .aj-frame::after {
  content: ""; position: absolute; width: 28px; height: 28px; pointer-events: none;
  border-color: var(--aj-line-gold); border-style: solid; border-width: 0;
}
.aj-frame::before { top: var(--aj-s-3); left: var(--aj-s-3); border-top-width: 1px; border-left-width: 1px; }
.aj-frame::after  { bottom: var(--aj-s-3); right: var(--aj-s-3); border-bottom-width: 1px; border-right-width: 1px; }
.aj-frame > .aj-frame-corners::before, .aj-frame > .aj-frame-corners::after {
  content: ""; position: absolute; width: 28px; height: 28px;
  border-color: var(--aj-line-gold); border-style: solid; border-width: 0;
}
.aj-frame > .aj-frame-corners::before { top: var(--aj-s-3); right: var(--aj-s-3); border-top-width: 1px; border-right-width: 1px; }
.aj-frame > .aj-frame-corners::after  { bottom: var(--aj-s-3); left: var(--aj-s-3); border-bottom-width: 1px; border-left-width: 1px; }

/* --- Eyebrow + nagłówek sekcji ------------------------------------------ */
.aj-eyebrow {
  display: block; margin: 0 0 var(--aj-s-2);
  font: 500 var(--aj-fs-eyebrow)/1.2 var(--aj-font-body);
  letter-spacing: var(--aj-ls-eyebrow); text-transform: uppercase;
  color: var(--aj-gold-ink);
}
.aj-band--dark .aj-eyebrow { color: var(--aj-gold); }

/* px zamiast ch: ch liczy się wg fontu TEGO diva (body ~15px), a mieści
   nagłówek o dużo większym foncie (h2 28-42px) — w ch wychodziło za wąsko
   i łamało nagłówki na 3-4 linie. */
.aj-section-head { max-width: 620px; }
.aj-section-head.aj-center { max-width: 720px; margin-inline: auto; }
.aj-section-head > p { max-width: 56ch; }
.aj-section-head.aj-center > p { margin-inline: auto; }
/* .aj-em w nagłówkach sekcji zostaje INLINE — nie wymuszamy własnej linii
   (mniejsza skala 2026-09-04: wymuszony blok + ręczny <br> dawały 3 linie). */
.aj-section-head > p { margin-top: var(--aj-s-3); font-size: var(--aj-fs-body-lg); }

/* Ornament — rombik z liniami. Wolno go użyć raz na sekcję, tylko przy
   nagłówku wyśrodkowanym. Na nagłówkach do lewej: .aj-rule zamiast tego. */
.aj-ornament { display: flex; align-items: center; justify-content: center; gap: var(--aj-s-2); margin-top: var(--aj-s-3); color: var(--aj-line-gold); }
.aj-ornament::before, .aj-ornament::after { content: ""; width: 48px; height: 1px; background: currentColor; }
.aj-ornament i { width: 5px; height: 5px; background: var(--aj-gold); transform: rotate(45deg); }
.aj-rule { width: 64px; height: 1px; background: var(--aj-gold); border: 0; margin: var(--aj-s-3) 0 0; }

/* --- Przycisk ------------------------------------------------------------
   Warianty: primary (złoto pełne) · ghost (obrys) · link (strzałka).
   Jedna wysokość, jedno złoto, zawsze stan hover + focus-visible.       */
.aj-btn {
  --_bg: transparent; --_fg: var(--aj-ink); --_bd: var(--aj-ink);
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  min-height: 52px; padding: 0 var(--aj-s-3);
  background: var(--_bg); color: var(--_fg); border: 1px solid var(--_bd); border-radius: var(--aj-r-0);
  font: 500 var(--aj-fs-eyebrow)/1 var(--aj-font-body);
  letter-spacing: var(--aj-ls-button); text-transform: uppercase; text-decoration: none;
  cursor: pointer; transition: background var(--aj-dur) var(--aj-ease), color var(--aj-dur) var(--aj-ease), border-color var(--aj-dur) var(--aj-ease);
}
/* Motyw rodzica (Hello Elementor) ma własny skin dla `button:hover` /
   `[type=submit]:hover` (różowe tło + biały tekst) — selektor element+:hover
   ma specyficzność wyższą niż sama klasa .aj-btn, więc bez tej reguły
   przycisk-<button> (np. formularz Kontakt) dziedziczyłby różowy hover
   zamiast złota. Reasercja wszystkich trzech właściwości na :hover naprawia
   to niezależnie od tego, czy .aj-btn siedzi na <a> czy na <button>. */
.aj-btn:hover { background: var(--_bg); color: var(--_fg); border-color: var(--_bd); }
.aj-btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }

.aj-btn--primary { --_bg: var(--aj-gold-fill); --_fg: #14120F; --_bd: var(--aj-gold-fill); }
.aj-btn--primary:hover { --_bg: var(--aj-gold-fill-hover); --_bd: var(--aj-gold-fill-hover); }

.aj-btn--ghost { --_bg: transparent; --_fg: var(--aj-ink); --_bd: var(--aj-line-light); }
.aj-btn--ghost:hover { --_bd: var(--aj-ink); }
.aj-band--dark .aj-btn--ghost, .aj-card--dark .aj-btn--ghost { --_fg: var(--aj-on-dark); --_bd: var(--aj-line-dark); }
.aj-band--dark .aj-btn--ghost:hover { --_bd: var(--aj-gold); --_fg: var(--aj-gold-hover); }

/* Dawny „link ze strzałką" — teraz zwykły guzik z obrysem, akcent złotem w tekście. */
.aj-btn--link { --_bd: var(--aj-line-gold); --_fg: var(--aj-gold-ink); }
.aj-btn--link:hover { --_bd: var(--aj-gold); --_fg: var(--aj-ink); }
.aj-band--dark .aj-btn--link { --_fg: var(--aj-gold); --_bd: var(--aj-line-dark); }
.aj-band--dark .aj-btn--link:hover { --_bd: var(--aj-gold); --_fg: var(--aj-gold-hover); }
/* Strzałki w CTA wycofane — gdyby gdzieś został znacznik, i tak jest ukryty. */
.aj-btn__arrow { display: none; }

/* --- Karta kremowa ------------------------------------------------------- */
.aj-card {
  display: flex; flex-direction: column; gap: var(--aj-s-2);
  padding: var(--aj-s-4) var(--aj-s-3) var(--aj-s-3);
  background: var(--aj-bg-cream); border: 1px solid var(--aj-line-light);
  border-top: 2px solid var(--aj-gold);
  border-radius: var(--aj-r-0); box-shadow: var(--aj-shadow-card);
  height: 100%;
  transition: box-shadow var(--aj-dur) var(--aj-ease), transform var(--aj-dur) var(--aj-ease);
}
.aj-card:hover { box-shadow: var(--aj-shadow-hover); }
.aj-card__meta { display: flex; justify-content: space-between; gap: var(--aj-s-2); font: 500 var(--aj-fs-eyebrow)/1.2 var(--aj-font-body); letter-spacing: var(--aj-ls-eyebrow); text-transform: uppercase; color: var(--aj-gold-ink); }
.aj-card__count { color: var(--aj-ink-muted); letter-spacing: .1em; }
.aj-card > .aj-btn { margin-top: auto; align-self: flex-start; }
.aj-card__list { margin: 0; padding: 0; list-style: none; }
.aj-card__list li { padding: var(--aj-s-2) 0; border-top: 1px solid var(--aj-line-light-soft); line-height: var(--aj-lh-tight); }
.aj-card__list li::before { content: "—"; color: var(--aj-gold-ink); margin-right: .6em; }

/* Karta na ciemnym pasie — jaśniejsza od tła + krawędź, nigdy „czarne na czarnym" */
.aj-card--dark { background: var(--aj-bg-dark-raised); border: 1px solid var(--aj-line-dark); border-top: 2px solid var(--aj-gold); box-shadow: none; color: var(--aj-on-dark-body); }
.aj-card--dark:hover { background: var(--aj-bg-dark-raised-2); border-color: var(--aj-line-gold); }
.aj-card--dark h3 { color: var(--aj-on-dark); }
.aj-card--dark .aj-card__meta { color: var(--aj-gold); }
.aj-card--dark .aj-card__list li { border-top-color: var(--aj-line-dark-soft); }
.aj-card--dark .aj-card__list li::before { color: var(--aj-gold); }

.aj-grid { display: grid; gap: var(--aj-s-3); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); align-items: stretch; }
.aj-grid--2 { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }

/* --- Slot na zdjęcie ----------------------------------------------------- */
.aj-slot { position: relative; display: block; background: var(--aj-bg-cream-2); overflow: hidden; }
.aj-slot::after {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(135deg, rgba(23,21,18,.05) 0 1px, transparent 1px 9px);
}
.aj-slot--portrait { aspect-ratio: var(--aj-ratio-portrait); }
.aj-slot--wide     { aspect-ratio: var(--aj-ratio-wide); }
.aj-slot--card     { aspect-ratio: var(--aj-ratio-card); }
.aj-slot img { width: 100%; height: 100%; object-fit: cover; position: relative; z-index: 2; }
.aj-slot__note {
  position: absolute; inset: auto 0 0 0; z-index: 3; padding: var(--aj-s-1) var(--aj-s-2);
  background: rgba(15,14,13,.78); color: var(--aj-on-dark-muted);
  font: 400 12px/1.4 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: .04em;
}
.aj-figure { margin: 0; }
.aj-figure figcaption { margin-top: var(--aj-s-2); padding-top: var(--aj-s-2); border-top: 1px solid var(--aj-line-gold); font-size: var(--aj-fs-small); color: var(--aj-ink-muted); }
.aj-figure figcaption b { display: block; font: 400 var(--aj-fs-h3)/1.2 var(--aj-font-display); color: var(--aj-ink); }

/* --- Karta oferty nieruchomości ----------------------------------------- */
.aj-offer { display: flex; flex-direction: column; background: var(--aj-bg-cream); border: 1px solid var(--aj-line-light); box-shadow: var(--aj-shadow-card); height: 100%; text-decoration: none; color: inherit; transition: box-shadow var(--aj-dur) var(--aj-ease); }
.aj-offer:hover { box-shadow: var(--aj-shadow-hover); color: inherit; }
.aj-offer__media { position: relative; }
.aj-offer__tag { position: absolute; top: var(--aj-s-2); left: var(--aj-s-2); z-index: 4; padding: 6px 10px; background: var(--aj-bg-dark); color: var(--aj-gold); font: 500 12px/1 var(--aj-font-body); letter-spacing: .14em; text-transform: uppercase; }
.aj-offer__body { display: flex; flex-direction: column; gap: var(--aj-s-2); padding: var(--aj-s-3); flex: 1; }
.aj-offer__loc { font: 500 var(--aj-fs-eyebrow)/1.2 var(--aj-font-body); letter-spacing: var(--aj-ls-eyebrow); text-transform: uppercase; color: var(--aj-ink-muted); }
.aj-offer__title { font-size: var(--aj-fs-h3); color: var(--aj-ink); }
.aj-offer__price { font: 400 1.5rem/1 var(--aj-font-display); color: var(--aj-gold-ink); }

/* Blok danych realizacji — parametry + wynik, przypięty do dołu karty */
.aj-offer__meta {
  margin-top: auto; padding-top: var(--aj-s-2);
  border-top: 1px solid var(--aj-line-light);
  display: flex; flex-direction: column; gap: 6px;
}
.aj-offer__specs {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; align-items: baseline; row-gap: 4px;
  font-size: var(--aj-fs-small); color: var(--aj-ink-body);
}
.aj-offer__specs li { display: inline-flex; align-items: baseline; white-space: nowrap; }
.aj-offer__specs li:not(:last-child)::after {
  content: "·"; margin: 0 8px; color: var(--aj-gold-ink); font-weight: 700;
}
.aj-offer__result {
  margin: 0;
  font: italic 400 var(--aj-fs-body)/1.35 var(--aj-font-display);
  color: var(--aj-gold-ink);
}
/* legacy — nieużywane po przejściu na .aj-offer__meta, zostawione dla zgodności */
.aj-offer__facts { display: flex; flex-wrap: wrap; gap: var(--aj-s-2) var(--aj-s-3); margin: auto 0 0; padding-top: var(--aj-s-2); border-top: 1px solid var(--aj-line-light); list-style: none; font-size: var(--aj-fs-small); color: var(--aj-ink-body); }

/* Filtry ofert */
.aj-filters { display: flex; flex-wrap: wrap; gap: var(--aj-s-1); }
.aj-filter { min-height: 44px; padding: 0 var(--aj-s-2); display: inline-flex; align-items: center; background: transparent; border: 1px solid var(--aj-line-light); color: var(--aj-ink-body); font: 500 var(--aj-fs-eyebrow)/1 var(--aj-font-body); letter-spacing: var(--aj-ls-button); text-transform: uppercase; cursor: pointer; }
.aj-filter:hover { background: transparent; color: var(--aj-ink-body); border-color: var(--aj-ink); }
.aj-filter[aria-pressed="true"] { background: var(--aj-gold-soft); border-color: var(--aj-gold); color: var(--aj-gold-ink); }

/* --- Tabela porównawcza (jedna wersja dla całego serwisu) --------------- */
.aj-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--aj-line-light); background: var(--aj-bg-light); }
.aj-band--dark .aj-table-wrap { border-color: var(--aj-line-dark); background: var(--aj-bg-dark-raised); }
.aj-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: var(--aj-fs-body); }
.aj-table caption { text-align: left; padding: var(--aj-s-2) var(--aj-s-3); font-size: var(--aj-fs-small); color: var(--aj-ink-muted); }
.aj-table th, .aj-table td { padding: var(--aj-s-2) var(--aj-s-3); text-align: left; line-height: var(--aj-lh-tight); border-bottom: 1px solid var(--aj-line-light); }
.aj-table thead th { background: var(--aj-bg-cream-2); color: var(--aj-ink); font: 500 var(--aj-fs-eyebrow)/1.2 var(--aj-font-body); letter-spacing: var(--aj-ls-eyebrow); text-transform: uppercase; }
.aj-table tbody th { font-weight: 500; color: var(--aj-ink); background: var(--aj-bg-cream); width: 30%; }
.aj-table tbody tr:last-child th, .aj-table tbody tr:last-child td { border-bottom: 0; }
.aj-table td .aj-yes { color: var(--aj-gold-ink); }
.aj-table td .aj-no { color: var(--aj-ink-muted); }
.aj-band--dark .aj-table th, .aj-band--dark .aj-table td { border-bottom-color: var(--aj-line-dark); color: var(--aj-on-dark-body); }
.aj-band--dark .aj-table thead th { background: #2A251B; color: var(--aj-gold); }
.aj-band--dark .aj-table tbody th { background: rgba(246,243,237,.04); color: var(--aj-on-dark); }
.aj-band--dark .aj-table td .aj-yes { color: var(--aj-gold); }
.aj-band--dark .aj-table td .aj-no { color: var(--aj-on-dark-muted); }

/* --- Blok cytatu --------------------------------------------------------- */
.aj-quote { display: flex; flex-direction: column; gap: var(--aj-s-3); margin: 0; padding: var(--aj-s-4) var(--aj-s-3) var(--aj-s-3); background: var(--aj-bg-cream); border: 1px solid var(--aj-line-light); border-left: 2px solid var(--aj-gold); height: 100%; }
.aj-quote p { font: italic 400 var(--aj-fs-body-lg)/1.55 var(--aj-font-display); color: var(--aj-ink); }
.aj-quote footer { margin-top: auto; padding-top: var(--aj-s-2); border-top: 1px solid var(--aj-line-light); font-size: var(--aj-fs-small); color: var(--aj-ink-muted); }
.aj-quote footer b { display: block; font-weight: 500; color: var(--aj-ink); letter-spacing: .02em; }
.aj-band--dark .aj-quote { background: var(--aj-bg-dark-raised); border-color: var(--aj-line-dark); border-left-color: var(--aj-gold); }
.aj-band--dark .aj-quote p { color: var(--aj-on-dark); }
.aj-band--dark .aj-quote footer { border-top-color: var(--aj-line-dark-soft); color: var(--aj-on-dark-muted); }
.aj-band--dark .aj-quote footer b { color: var(--aj-gold); }

/* --- Pasek statystyk — USUNIĘTY z systemu (decyzja: brak liczb w serwisie).
   Komponentu nie odtwarzamy; dowód budujemy treścią, cytatami i procesem. --- */

/* --- Krok procesu 01/02/03 ---------------------------------------------- */
.aj-step { position: relative; padding-top: var(--aj-s-3); border-top: 1px solid var(--aj-line-dark); }
.aj-band--light .aj-step { border-top-color: var(--aj-line-light); }
.aj-step__num { display: block; font: 400 2rem/1 var(--aj-font-display); color: var(--aj-gold); opacity: .9; }
.aj-step h3 { margin: var(--aj-s-2) 0 var(--aj-s-1); }
.aj-step__label { font: 500 var(--aj-fs-eyebrow)/1.2 var(--aj-font-body); letter-spacing: var(--aj-ls-eyebrow); text-transform: uppercase; color: var(--aj-on-dark-muted); }
.aj-band--light .aj-step__label { color: var(--aj-ink-muted); }

/* --- FAQ (bez JS) -------------------------------------------------------- */
.aj-faq { border-top: 1px solid var(--aj-line-light); }
.aj-faq details { border-bottom: 1px solid var(--aj-line-light); }
.aj-faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--aj-s-3); min-height: 64px; padding: var(--aj-s-2) 0; cursor: pointer; list-style: none; font: 400 var(--aj-fs-h3)/1.3 var(--aj-font-display); color: var(--aj-ink); }
.aj-faq summary::-webkit-details-marker { display: none; }
.aj-faq summary::after { content: "+"; flex: none; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--aj-line-gold); color: var(--aj-gold-ink); font: 400 18px/1 var(--aj-font-body); }
.aj-faq details[open] summary::after { content: "–"; background: var(--aj-gold-soft); }
.aj-faq details > div { padding: 0 clamp(0px, 8vw, 96px) var(--aj-s-3) 0; }
.aj-band--dark .aj-faq, .aj-band--dark .aj-faq details { border-color: var(--aj-line-dark); }
.aj-band--dark .aj-faq summary { color: var(--aj-on-dark); }
.aj-band--dark .aj-faq summary::after { color: var(--aj-gold); }

/* --- Formularz ----------------------------------------------------------- */
.aj-field { display: grid; gap: var(--aj-s-1); margin-bottom: var(--aj-s-3); }
.aj-field > label { font: 500 var(--aj-fs-small)/1.3 var(--aj-font-body); color: var(--aj-ink); }
.aj-field .aj-req { color: var(--aj-gold-ink); }
.aj-input, .aj-select, .aj-textarea {
  width: 100%; min-height: 52px; padding: var(--aj-s-2); font: 400 var(--aj-fs-body)/1.5 var(--aj-font-body);
  color: var(--aj-ink); background: #fff; border: 1px solid var(--aj-line-light); border-radius: var(--aj-r-1);
}
.aj-textarea { min-height: 128px; resize: vertical; }
.aj-input:hover, .aj-select:hover, .aj-textarea:hover { border-color: var(--aj-ink-muted); }
.aj-input::placeholder, .aj-textarea::placeholder { color: var(--aj-ink-muted); }
.aj-select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--aj-ink) 50%), linear-gradient(135deg, var(--aj-ink) 50%, transparent 50%); background-position: calc(100% - 22px) 24px, calc(100% - 16px) 24px; background-size: 6px 6px; background-repeat: no-repeat; }
.aj-consent { display: grid; grid-template-columns: 22px 1fr; gap: var(--aj-s-2); align-items: start; font-size: var(--aj-fs-small); }
.aj-consent input { width: 22px; height: 22px; margin: 0; accent-color: var(--aj-gold-fill); }

/* --- Stopka -------------------------------------------------------------- */
.aj-footer { background: var(--aj-bg-dark); color: var(--aj-on-dark-body); padding-block: var(--aj-s-5) var(--aj-s-3); }
.aj-footer__grid { display: grid; gap: var(--aj-s-4); grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(150px, 1fr)); }
.aj-footer__brand { font: italic 400 1.5rem/1 var(--aj-font-display); color: var(--aj-gold); }
.aj-footer h2 { font: 500 var(--aj-fs-eyebrow)/1.2 var(--aj-font-body); letter-spacing: var(--aj-ls-eyebrow); text-transform: uppercase; color: var(--aj-gold); margin-bottom: var(--aj-s-2); }
.aj-footer ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--aj-s-2); }
.aj-footer a { color: var(--aj-on-dark-body); text-decoration: none; }
.aj-footer a:hover { color: var(--aj-gold-hover); text-decoration: underline; }
.aj-footer li { overflow-wrap: anywhere; }
.aj-footer__hint { display: block; margin-top: 3px; font-size: var(--aj-fs-small); color: var(--aj-on-dark-muted); }
.aj-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--aj-s-2); margin-top: var(--aj-s-5); padding-top: var(--aj-s-3); border-top: 1px solid var(--aj-line-dark-soft); font-size: var(--aj-fs-small); color: var(--aj-on-dark-muted); }

/* --- Social media (LinkedIn / Facebook / Instagram) -------------------- */
.aj-social { display: flex; align-items: center; gap: var(--aj-s-1); margin: 0; padding: 0; list-style: none; }
.aj-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 999px; color: currentColor;
  transition: color var(--aj-dur) var(--aj-ease);
}
.aj-social svg { width: 18px; height: 18px; fill: currentColor; display: block; }
.aj-social a:hover { color: var(--aj-gold); }
/* Stopka: pod listą kontaktu; ujemny margines optycznie wyrównuje pierwszą
   ikonę z tekstem powyżej (34px koło wokół 18px symbolu). Podniesiona
   specyficzność, bo `.aj-footer ul` narzuca grid. */
.aj-footer .aj-social--footer { display: flex; gap: var(--aj-s-1); margin-top: var(--aj-s-2); margin-left: -7px; color: var(--aj-on-dark-body); }
/* Kontakt (jasna sekcja): ikony w kolorze tekstu, hover złoto. */
.aj-social--kontakt { margin-left: -7px; color: var(--aj-ink); }

/* --- Breakpointy 390 / 768 / 1280 --------------------------------------- */
@media (max-width: 1024px) {
  .aj-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .aj-band { padding-block: var(--aj-s-5); }
  .aj-band--open { padding-block: var(--aj-s-6); }
  .aj-frame::before, .aj-frame::after, .aj-frame > .aj-frame-corners { display: none; }
  .aj-footer__grid { grid-template-columns: 1fr; gap: var(--aj-s-3); }
  .aj-table tbody th { width: auto; }
}
