/* PLIK GENEROWANY — nie edytuj tutaj.
   Źródło: /srv/www/7zone-app/web/src/marka.css
   Wgrywa: /srv/www/7zone-app/wdroz-strone.sh */
/* ============================================================
   7ZONE — identyfikacja wizualna
   ------------------------------------------------------------
   JEDYNE ŹRÓDŁO tokenów i podstawowych elementów. Ten plik
   obsługuje i sklep (store.7zone.pl), i stronę główną (7zone.pl).
   Kopię dla strony głównej wgrywa /srv/www/7zone-app/wdroz-strone.sh —
   nie edytuj /var/www/7zone/marka.css, bo zostanie nadpisany.

   Kolory pochodzą wprost z herbu: łuska smoka (fioletowa czerń),
   kuta siódemka (złoto), skrzydła (żar), napis ZONE (kamień).
   ============================================================ */

/* ---------- kroje pisma (własny hosting, tylko potrzebne znaki) ---------- */
@font-face {
  font-family: '7ZONE Display';
  src: url(/czcionki/7zone-display.woff2) format('woff2');
  font-weight: 800; font-style: normal; font-display: swap;
}
@font-face {
  font-family: '7ZONE Tekst';
  src: url(/czcionki/7zone-tekst-400.woff2) format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: '7ZONE Tekst';
  src: url(/czcionki/7zone-tekst-600.woff2) format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: '7ZONE Mono';
  src: url(/czcionki/7zone-mono.woff2) format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}

/* ---------- tokeny ---------- */
:root {
  /* łuska smoka — tło i płaszczyzny */
  --tlo:            #0a0710;
  --plyta:          #130d1f;
  --plyta-wyzej:    #1b1229;
  --krawedz:        #2c1f40;
  --krawedz-jasna:  #46315f;

  /* napis ZONE — kamień, czyli tekst */
  --kamien:         #cbb7bd;
  --kamien-cien:    #9a8894;
  --kamien-jasny:   #f4ece9;

  /* siódemka i skrzydła — akcenty */
  --zloto:          #f5c518;
  --zloto-jasne:    #ffd84d;
  --zloto-ciemne:   #b98a00;
  --zar:            #ff6a1a;
  --zar-jasny:      #ff9a2e;
  --krew:           #9c2410;

  /* stany */
  --udane:          #7bd67b;
  --uwaga:          #ffb84d;

  /* kute płyty */
  --sciecie: 12px;
  --ksztalt: polygon(
    var(--sciecie) 0, 100% 0,
    100% calc(100% - var(--sciecie)), calc(100% - var(--sciecie)) 100%,
    0 100%, 0 var(--sciecie)
  );

  /* rytm */
  --szer: 1120px;
  --luz: clamp(3.25rem, 7vw, 5.5rem);

  /* typografia */
  --f-display: '7ZONE Display', 'Arial Narrow', Impact, system-ui, sans-serif;
  --f-tekst: '7ZONE Tekst', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --f-mono: '7ZONE Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--tlo);
  color: var(--kamien);
  font-family: var(--f-tekst);
  font-size: 1.0625rem;
  line-height: 1.62;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Żar bijący spod herbu — jedyna dekoracja tła w całym serwisie. */
body::before {
  content: '';
  position: fixed;
  inset: -20vh 0 auto 0;
  height: 90vh;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(58vw 46vh at 50% 0%, rgba(255, 106, 26, .16), transparent 68%),
    radial-gradient(90vw 60vh at 50% -10%, rgba(120, 40, 160, .13), transparent 72%);
}

body > * { position: relative; z-index: 1; }

img { max-width: 100%; height: auto; display: block; }

/* ---------- typografia ---------- */
h1, h2, h3 {
  font-family: var(--f-display);
  font-weight: 800;
  color: var(--kamien-jasny);
  line-height: .95;
  letter-spacing: .005em;
  text-transform: uppercase;
  margin: 0 0 .6rem;
  text-wrap: balance;
}

h1 { font-size: clamp(2.35rem, 7.5vw, 4rem); }
h2 { font-size: clamp(1.75rem, 4.6vw, 2.6rem); }
h3 { font-size: clamp(1.2rem, 2.6vw, 1.45rem); line-height: 1; }

p { margin: 0 0 1rem; }
p:last-child { margin-bottom: 0; }

a { color: var(--zloto); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--zloto-jasne); }

code, kbd { font-family: var(--f-mono); font-size: .92em; }

.nadtytul {
  font-family: var(--f-mono);
  font-size: .74rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--zar-jasny);
  margin: 0 0 .85rem;
  display: flex;
  align-items: center;
  gap: .7rem;
}
.nadtytul::after {
  content: '';
  height: 1px;
  flex: 1;
  max-width: 6rem;
  background: linear-gradient(90deg, var(--krawedz-jasna), transparent);
}

.wiodacy {
  font-size: clamp(1.05rem, 2.1vw, 1.2rem);
  color: var(--kamien);
  max-width: 62ch;
  text-wrap: pretty;
}

.drobne { font-size: .85rem; color: var(--kamien-cien); }

/* Tekst wyłącznie dla czytników ekranu. */
.tylko-dla-czytnika {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* ---------- układ ---------- */
.srodek {
  width: min(var(--szer), 100% - 2.25rem);
  margin-inline: auto;
}

.warstwa { padding: var(--luz) 0; }

/* Szew między warstwami — cienka spoina z iskrą od lewej. */
.szew {
  border-top: 1px solid var(--krawedz);
  position: relative;
}
.szew::before {
  content: '';
  position: absolute;
  top: -1px; left: 0;
  width: clamp(60px, 12vw, 150px);
  height: 1px;
  background: linear-gradient(90deg, var(--zar), transparent);
}

/* ============================================================
   KUTA PŁYTA — sygnatura systemu.
   Ścięte narożniki i twarda faza jak na krawędziach herbu.
   Obwódkę i powierzchnię rysują pseudoelementy, więc sam element
   zostaje nieprzycięty i obrys fokusu jest w całości widoczny.
   ============================================================ */
.kuty {
  position: relative;
  z-index: 0;
  background: none;
  border: 0;
}
.kuty::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: var(--obwodka, var(--krawedz));
  clip-path: var(--ksztalt);
  transition: background .16s ease;
}
.kuty::after {
  content: '';
  position: absolute;
  inset: 1px;
  z-index: -1;
  background: var(--powierzchnia, var(--plyta));
  box-shadow:
    inset 0 1px 0 rgba(255, 214, 140, .085),
    inset 0 -1px 0 rgba(0, 0, 0, .55);
  clip-path: var(--ksztalt);
  transition: background .16s ease;
}

.plyta {
  padding: 1.4rem 1.5rem;
}

/* ---------- przyciski ---------- */
.btn {
  --sciecie: 9px;
  font-family: var(--f-display);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
  padding: .78rem 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  color: var(--kamien-jasny);
  transition: transform .12s ease, color .16s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(1px); }

.btn-zloty {
  --obwodka: #6d4c00;
  --powierzchnia: linear-gradient(180deg, var(--zloto-jasne), var(--zloto) 45%, #d9a400);
  color: #1a1000;
}
.btn-zloty:hover {
  --powierzchnia: linear-gradient(180deg, #ffe270, var(--zloto-jasne) 45%, var(--zloto));
  color: #1a1000;
}
.btn-zloty::after {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -2px 0 rgba(90, 55, 0, .45);
}

.btn-obrys {
  --obwodka: var(--krawedz-jasna);
  --powierzchnia: var(--plyta-wyzej);
}
.btn-obrys:hover { --obwodka: var(--zloto-ciemne); color: var(--zloto-jasne); }

.btn-zar {
  --obwodka: #7a2a00;
  --powierzchnia: linear-gradient(180deg, var(--zar-jasny), var(--zar) 50%, #d84f08);
  color: #190800;
}
.btn-zar:hover { --powierzchnia: linear-gradient(180deg, #ffb45c, var(--zar-jasny) 50%, var(--zar)); }

.btn[disabled], .btn[aria-disabled='true'] {
  --obwodka: var(--krawedz);
  --powierzchnia: var(--plyta);
  color: var(--kamien-cien);
  cursor: not-allowed;
  transform: none;
}

.btn-szeroki { width: 100%; }

/* ---------- fokus klawiatury ---------- */
:focus-visible {
  outline: 2px solid var(--kamien-jasny);
  outline-offset: 3px;
}

/* ---------- pola formularza ---------- */
.pole { margin-bottom: 1.25rem; }
.pole label {
  display: block;
  font-family: var(--f-mono);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--kamien-cien);
  margin-bottom: .45rem;
}
.pole input[type='text'],
.pole input[type='email'] {
  width: 100%;
  font-family: var(--f-tekst);
  font-size: 1.05rem;
  color: var(--kamien-jasny);
  background: #0d0916;
  border: 1px solid var(--krawedz);
  border-radius: 0;
  padding: .72rem .85rem;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, .5);
}
.pole input::placeholder { color: #6b5d6e; }
.pole input:hover { border-color: var(--krawedz-jasna); }
.pole input:focus {
  outline: 2px solid var(--zloto);
  outline-offset: 0;
  border-color: var(--zloto-ciemne);
}
.podpowiedz { font-size: .82rem; color: var(--kamien-cien); margin: .4rem 0 0; }
.blad-pola { font-size: .82rem; color: var(--zar-jasny); margin: .4rem 0 0; }

.zgoda {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
}
.zgoda input { margin-top: .25rem; width: 1.15rem; height: 1.15rem; accent-color: var(--zloto); flex: none; }
.zgoda label {
  font-family: var(--f-tekst);
  font-size: .9rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--kamien);
  margin: 0;
  line-height: 1.45;
}

/* ---------- komunikaty ---------- */
.uwaga {
  --sciecie: 8px;
  padding: .9rem 1.1rem;
  margin: 1.1rem 0;
  font-size: .95rem;
}
.uwaga b { color: var(--kamien-jasny); }
.uwaga-blad { --obwodka: #7a2a00; --powierzchnia: #24100c; }
.uwaga-sukces { --obwodka: #2a5c2a; --powierzchnia: #0f1c10; }
.uwaga-info { --obwodka: var(--krawedz-jasna); --powierzchnia: var(--plyta-wyzej); }

/* ---------- listy korzyści ---------- */
.lista { list-style: none; margin: 0; padding: 0; }
.lista li {
  position: relative;
  padding-left: 1.35rem;
  margin-bottom: .42rem;
  font-size: .95rem;
  line-height: 1.45;
}
.lista li::before {
  content: '';
  position: absolute;
  left: 0; top: .55em;
  width: 7px; height: 7px;
  background: var(--kolor, var(--zloto));
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

/* ---------- adres serwera ---------- */
.adres {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: stretch;
}
.adres-pole {
  --sciecie: 10px;
  --powierzchnia: #0d0916;
  flex: 1 1 15rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .7rem 1.1rem;
  min-width: 0;
}
.adres-pole .etykieta {
  font-family: var(--f-mono);
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--kamien-cien);
  flex: none;
}
.adres-pole .wartosc {
  font-family: var(--f-mono);
  font-size: clamp(1.15rem, 3.6vw, 1.6rem);
  font-weight: 500;
  color: var(--zloto);
  letter-spacing: .01em;
  overflow-wrap: anywhere;
}

/* ---------- znacznik stanu ---------- */
.stan {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-family: var(--f-mono);
  font-size: .8rem;
  color: var(--kamien-cien);
  margin: 0;
}
.kropka {
  width: 8px; height: 8px;
  background: var(--kamien-cien);
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  flex: none;
}
.kropka[data-online='1'] { background: var(--udane); }

/* ---------- nagłówek i stopka ---------- */
.gora {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(10, 7, 16, .88);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--krawedz);
}
.gora .srodek {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 62px;
}
.znak {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  text-decoration: none;
  color: var(--kamien-jasny);
  margin-right: auto;
}
.znak img { width: 34px; height: 35px; }
.znak b {
  font-family: var(--f-display);
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
}
.znak i { color: var(--zloto); font-style: normal; }

.menu {
  display: flex;
  align-items: center;
  gap: clamp(.5rem, 2.5vw, 1.5rem);
}
.menu a {
  font-family: var(--f-mono);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--kamien);
  text-decoration: none;
  padding: .35rem 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.menu a:hover { color: var(--kamien-jasny); border-bottom-color: var(--krawedz-jasna); }
.menu a.aktywny { color: var(--zloto); border-bottom-color: var(--zloto); }

/* Na wąskich telefonach (320 px i mniej) nagłówek nie mieści czterech
   pozycji. Skróty do sekcji na tej samej stronie znikają — sekcje i tak
   są parę ekranów niżej. Zostaje to, co prowadzi gdzie indziej. */
@media (max-width: 24rem) {
  .gora .srodek { width: calc(100% - 1.5rem); }
  .menu { gap: .8rem; }
  .menu a { font-size: .72rem; letter-spacing: .06em; }
  .menu-drugorzedne { display: none; }
  .znak img { width: 28px; height: 29px; }
  .znak b { font-size: 1.2rem; }
}

.stopka {
  border-top: 1px solid var(--krawedz);
  padding: 2.25rem 0 3rem;
  margin-top: var(--luz);
}
.stopka .srodek {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.6rem;
}
.stopka a {
  font-family: var(--f-mono);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--kamien);
  text-decoration: none;
}
.stopka a:hover { color: var(--zloto); }
.stopka .znak { margin-right: auto; }
.stopka .drobne { width: 100%; margin: .5rem 0 0; }

/* ---------- ruch ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .btn:hover, .btn:active { transform: none; }
}
