/*
Theme Name:   Greg Author
Theme URI:    https://gregciupek.com
Description:  Motyw potomny dla gregciupek.com — strona autora. System projektowy wyprowadzony ze składu druku „Ciężaru Zwycięstwa": Source Serif 4, kość i atrament, mosiądz jako akcent.
Author:       Greg Ciupek
Template:     generatepress
Version:      0.1.0
Text Domain:  greg-author
*/

/* ============================================================
   1. TOKENY — jedyne miejsce, gdzie definiuje się kolor i miarę
   ============================================================ */
:root{
  /* kolor — patrz dokument projektowy */
  --ga-paper:      #F0EFE9;  /* kość, nie krem */
  --ga-paper-2:    #E9E8E0;
  --ga-card:       #F7F6F1;
  --ga-ink:        #17191A;  /* czerń z chłodem */
  --ga-ink-2:      #4C514E;
  --ga-ink-3:      #767B77;
  --ga-rule:       #D5D4CB;
  --ga-brass:      #8A6C2C;  /* akcent: tłoczenie foliowe */
  --ga-brass-soft: #EFE6D0;
  --ga-oxblood:    #8A2F22;  /* sygnał: błąd, wyprzedaż */
  --ga-verd:       #2F5D53;  /* potwierdzenie: zakup, plik gotowy */

  /* typografia */
  --ga-serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --ga-sans:  "Inter Tight", ui-sans-serif, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ga-mono:  ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* skala typu — siedem stopni, bez wyjątków */
  --ga-t-xs: 0.8125rem;   /* 13   */
  --ga-t-sm: 0.9375rem;   /* 15   */
  --ga-t-md: 1.09375rem;  /* 17,5 */
  --ga-t-lg: 1.25rem;     /* 20   */
  --ga-t-xl: 1.5625rem;   /* 25   */
  --ga-t-2xl:2.0625rem;   /* 33   */
  --ga-t-3xl:3.25rem;     /* 52   */

  /* skala odstępów */
  --ga-s-1: 4px;  --ga-s-2: 8px;  --ga-s-3: 14px; --ga-s-4: 22px;
  --ga-s-5: 38px; --ga-s-6: 60px; --ga-s-7: 96px;

  /* układ */
  --ga-measure: 68ch;
  --ga-wide: 1120px;
  --ga-radius: 3px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ga-paper:#131513; --ga-paper-2:#1A1D1B; --ga-card:#1B1E1C;
    --ga-ink:#EAE8E1;   --ga-ink-2:#A8ACA6;   --ga-ink-3:#7D827D;
    --ga-rule:#2E322F;  --ga-brass:#C9A45E;   --ga-brass-soft:#2A2417;
    --ga-oxblood:#CE7466; --ga-verd:#79AE9D;
  }
}
:root[data-theme="dark"]{
  --ga-paper:#131513; --ga-paper-2:#1A1D1B; --ga-card:#1B1E1C;
  --ga-ink:#EAE8E1;   --ga-ink-2:#A8ACA6;   --ga-ink-3:#7D827D;
  --ga-rule:#2E322F;  --ga-brass:#C9A45E;   --ga-brass-soft:#2A2417;
  --ga-oxblood:#CE7466; --ga-verd:#79AE9D;
}

/* ============================================================
   2. PODSTAWA
   ============================================================ */
body{
  background: var(--ga-paper);
  color: var(--ga-ink);
  font-family: var(--ga-serif);
  font-size: var(--ga-t-md);
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4,h5,h6{
  font-family: var(--ga-serif);
  font-weight: 600;
  line-height: 1.16;
  letter-spacing: -0.014em;
  text-wrap: balance;
  color: var(--ga-ink);
}
h1{ font-size: clamp(2.0625rem, 5vw, var(--ga-t-3xl)); line-height:1.06; letter-spacing:-0.022em; }
h2{ font-size: clamp(1.5625rem, 3.4vw, var(--ga-t-2xl)); }
h3{ font-size: var(--ga-t-xl); }
h4{ font-size: var(--ga-t-lg); }

p{ text-wrap: pretty; }

/* miara tekstu — proza trzyma jedną kolumnę */
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > h2,
.entry-content > h3,
.entry-content > blockquote{
  max-width: var(--ga-measure);
}

a{ color: var(--ga-ink); text-decoration-color: var(--ga-brass); text-underline-offset: 3px; }
a:hover{ text-decoration-color: var(--ga-ink); }
a:focus-visible{ outline: 2px solid var(--ga-brass); outline-offset: 3px; border-radius: 2px; }

/* ============================================================
   3. INTERFEJS — wszystko, co się klika, jest bezszeryfowe
   ============================================================ */
.ga-label{
  font-family: var(--ga-sans);
  font-size: 11px; font-weight: 600;
  letter-spacing: .13em; text-transform: uppercase;
  color: var(--ga-ink-3);
}

.button, button, input[type="submit"],
.wp-block-button__link,
.woocommerce a.button, .woocommerce button.button,
.woocommerce #respond input#submit, .woocommerce input.button{
  font-family: var(--ga-sans);
  font-size: var(--ga-t-sm);
  font-weight: 600;
  letter-spacing: .005em;
  background: var(--ga-ink);
  color: var(--ga-paper);
  border: 1px solid var(--ga-ink);
  border-radius: var(--ga-radius);
  padding: 11px 22px;
  transition: background .15s ease, color .15s ease;
}
.button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover{
  background: var(--ga-brass);
  border-color: var(--ga-brass);
  color: var(--ga-paper);
}
.ga-button--ghost{ background: transparent; color: var(--ga-ink); }

/* cena i liczby — zawsze tabelarycznie */
.woocommerce .price, .ga-num{
  font-family: var(--ga-sans);
  font-variant-numeric: tabular-nums;
}

/* ============================================================
   4. UKŁAD
   ============================================================ */
.ga-wrap{ max-width: var(--ga-wide); margin-inline: auto; padding-inline: var(--ga-s-4); }
.ga-stack{ display: flex; flex-direction: column; gap: var(--ga-s-4); }
.ga-grid{ display: grid; gap: var(--ga-s-4); }

/* treść szeroka nigdy nie rozpycha strony w poziomie */
.ga-scroll-x{ overflow-x: auto; }
table{ border-collapse: collapse; }

img, video{ max-width: 100%; height: auto; }

/* ============================================================
   5. RUCH — tylko za zgodą użytkownika
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ============================================================
   6. HERO — ciemny grunt, na nim wycięty portret i okładka
   Ink dostrojony w chłód, żeby usiąść z granatem marynarki
   i turkusem okładki zamiast z nimi walczyć.
   ============================================================ */
.ga-hero{
  --hero-ink: #0E1216;
  --hero-ink-2: #161C22;
  position: relative;
  background:
    radial-gradient(1200px 600px at 78% 18%, rgba(138,108,44,.16), transparent 62%),
    linear-gradient(178deg, var(--hero-ink-2) 0%, var(--hero-ink) 62%);
  color: #EDEAE3;
  overflow: hidden;
  isolation: isolate;
}
/* delikatny raster — daje głębię bez obrazka */
.ga-hero::before{
  content:""; position:absolute; inset:0; z-index:-1; opacity:.5;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: radial-gradient(120% 90% at 50% 0%, #000 20%, transparent 78%);
}
.ga-hero__inner{
  max-width: var(--ga-wide); margin-inline:auto;
  padding: clamp(56px,7vw,104px) var(--ga-s-4) 0;
  display:grid; gap: var(--ga-s-5);
  grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr);
  align-items:center;
  padding-bottom: clamp(56px,7vw,104px);
}

.ga-hero__eyebrow{
  font-family:var(--ga-sans); font-size:11px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:#C9A45E;
  display:flex; align-items:center; gap:12px; margin-bottom:var(--ga-s-4);
}
.ga-hero__eyebrow::after{ content:""; height:1px; flex:1; background:linear-gradient(90deg,#C9A45E,transparent); max-width:120px; }

.ga-hero h1{
  font-size: clamp(2.4rem, 5.6vw, 4.1rem);
  line-height:1.02; letter-spacing:-.026em; color:#F4F1EA;
  margin:0 0 var(--ga-s-4); max-width:15ch;
}
.ga-hero h1 em{
  font-style:normal; color:#C9A45E;
  /* podkreślenie jak ślad pióra, nie jak link */
  box-shadow: inset 0 -.09em 0 rgba(201,164,94,.32);
}
.ga-hero__lead{
  font-size: var(--ga-t-lg); line-height:1.5; color:#B9BDB8;
  max-width:48ch; margin:0 0 var(--ga-s-5);
}
.ga-hero__lead b{ color:#EDEAE3; font-weight:600; }

.ga-cta{ display:flex; flex-wrap:wrap; gap:var(--ga-s-3); align-items:center; }
.ga-btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--ga-sans); font-size:var(--ga-t-sm); font-weight:600;
  padding:14px 26px; border-radius:var(--ga-radius); border:1px solid transparent;
  text-decoration:none; transition:transform .16s ease, background .16s ease, border-color .16s ease;
}
.ga-btn--primary{ background:#C9A45E; color:#0E1216; }
.ga-btn--primary:hover{ background:#D8B571; transform:translateY(-1px); }
.ga-btn--quiet{ background:transparent; color:#EDEAE3; border-color:rgba(237,234,227,.26); }
.ga-btn--quiet:hover{ border-color:#EDEAE3; transform:translateY(-1px); }
.ga-btn__price{ opacity:.62; font-weight:400; }

.ga-hero__meta{
  margin-top:var(--ga-s-4); font-family:var(--ga-sans); font-size:var(--ga-t-xs);
  color:#8C918C; display:flex; flex-wrap:wrap; gap:6px 18px;
}
.ga-hero__meta span{ display:inline-flex; align-items:center; gap:7px; }
.ga-hero__meta span::before{ content:""; width:4px; height:4px; border-radius:50%; background:#C9A45E; }

/* okładka + portret */
.ga-hero__art{ position:relative; display:flex; justify-content:center; align-items:center; }
.ga-hero__portrait{
  display:block; width:min(100%,430px); height:auto;
  filter: drop-shadow(0 30px 60px rgba(0,0,0,.55));
}
.ga-hero__cover{
  position:absolute; left:-6%; bottom:8%; width:min(46%,208px); height:auto;
  filter: drop-shadow(0 22px 44px rgba(0,0,0,.6));
  transform: rotate(-4deg);
}

@media (max-width:900px){
  .ga-hero__inner{ grid-template-columns:1fr; gap:var(--ga-s-5); }
  .ga-hero__art{ margin-top:var(--ga-s-2); }
}

/* ============================================================
   7. SEKCJE
   ============================================================ */
.ga-section{ padding: clamp(56px,7vw,var(--ga-s-7)) 0; }
.ga-section--tint{ background:var(--ga-paper-2); }
.ga-section__head{ margin-bottom:var(--ga-s-5); }
.ga-section__head h2{ margin:0; max-width:22ch; }
.ga-section__head p{ color:var(--ga-ink-2); max-width:56ch; margin:var(--ga-s-3) 0 0; }

/* pasek sprzedawców */
.ga-retailers{
  border-top:1px solid var(--ga-rule); border-bottom:1px solid var(--ga-rule);
  padding:var(--ga-s-4) 0; display:flex; flex-wrap:wrap; gap:var(--ga-s-3) var(--ga-s-5);
  align-items:center; justify-content:center;
  font-family:var(--ga-sans); font-size:var(--ga-t-xs); letter-spacing:.1em;
  text-transform:uppercase; color:var(--ga-ink-3);
}

/* karta książki */
.ga-book{
  display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr);
  gap:var(--ga-s-5); align-items:start;
}
.ga-book__cover img{ width:100%; height:auto; filter:drop-shadow(0 18px 36px rgba(23,25,26,.22)); }
.ga-book__title{ margin:0 0 var(--ga-s-3); }
.ga-book__desc{ color:var(--ga-ink-2); max-width:58ch; }
.ga-book__buy{
  margin-top:var(--ga-s-4); padding-top:var(--ga-s-4);
  border-top:1px solid var(--ga-rule);
  display:flex; flex-wrap:wrap; gap:var(--ga-s-3); align-items:center;
}
.ga-price{
  font-family:var(--ga-sans); font-size:var(--ga-t-xl); font-weight:600;
  font-variant-numeric:tabular-nums; color:var(--ga-ink);
}
.ga-btn--ink{ background:var(--ga-ink); color:var(--ga-paper); }
.ga-btn--ink:hover{ background:var(--ga-brass); transform:translateY(-1px); }
.ga-btn--line{ background:transparent; color:var(--ga-ink); border-color:var(--ga-rule); }
.ga-btn--line:hover{ border-color:var(--ga-ink); }
.ga-book__note{
  font-family:var(--ga-sans); font-size:var(--ga-t-xs); color:var(--ga-ink-3);
  margin-top:var(--ga-s-3); width:100%;
}
@media (max-width:760px){ .ga-book{ grid-template-columns:1fr; } .ga-book__cover img{ max-width:240px; } }

/* fragment — skład jak w druku */
.ga-excerpt{
  background:var(--ga-card); border:1px solid var(--ga-rule);
  border-radius:var(--ga-radius); padding:clamp(28px,4vw,var(--ga-s-6));
  max-width:60ch; margin-inline:auto;
  font-size:1.125rem; line-height:1.72; text-align:justify; hyphens:auto;
}
.ga-excerpt p:first-of-type::first-letter{
  float:left; font-size:3.4em; line-height:.86; padding:.05em .09em 0 0;
  color:var(--ga-brass); font-weight:600;
}
.ga-excerpt__mark{
  display:block; text-align:center; margin-top:var(--ga-s-4);
  font-family:var(--ga-sans); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ga-ink-3);
}

/* autor */
.ga-author{ display:grid; grid-template-columns:minmax(0,260px) minmax(0,1fr); gap:var(--ga-s-5); align-items:center; }
.ga-author__photo{
  width:100%; height:auto; border-radius:var(--ga-radius);
  background:var(--ga-paper-2);
}
@media (max-width:760px){ .ga-author{ grid-template-columns:1fr; } .ga-author__photo{ max-width:200px; } }

/* zapis na listę */
.ga-signup{ background:var(--ga-ink); color:var(--ga-paper); border-radius:var(--ga-radius); padding:clamp(30px,5vw,var(--ga-s-6)); }
.ga-signup h2{ color:var(--ga-paper); margin:0 0 var(--ga-s-3); max-width:20ch; }
.ga-signup p{ color:#B9BDB8; max-width:52ch; }
.ga-signup__form{ display:flex; flex-wrap:wrap; gap:var(--ga-s-2); margin-top:var(--ga-s-4); }
.ga-signup__form input[type=email]{
  flex:1 1 260px; padding:13px 16px; border-radius:var(--ga-radius);
  border:1px solid rgba(237,234,227,.24); background:rgba(255,255,255,.05);
  color:var(--ga-paper); font-family:var(--ga-sans); font-size:var(--ga-t-sm);
}
.ga-signup__form input[type=email]::placeholder{ color:#8C918C; }
.ga-signup__form input[type=email]:focus{ outline:2px solid var(--ga-brass); outline-offset:1px; }

/* ============================================================
   8. NAGŁÓWEK I STOPKA
   ============================================================ */
.ga-head{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--ga-paper) 88%, transparent);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--ga-rule);
}
.ga-head__inner{
  max-width:var(--ga-wide); margin-inline:auto; padding:var(--ga-s-3) var(--ga-s-4);
  display:flex; align-items:center; gap:var(--ga-s-4);
}
.ga-wordmark{
  font-family:var(--ga-serif); font-weight:600; font-size:var(--ga-t-lg);
  letter-spacing:-.01em; text-decoration:none; color:var(--ga-ink); margin-right:auto;
}
.ga-nav{ display:flex; gap:var(--ga-s-4); align-items:center; }
.ga-nav a{
  font-family:var(--ga-sans); font-size:var(--ga-t-sm); font-weight:500;
  text-decoration:none; color:var(--ga-ink-2);
}
.ga-nav a:hover{ color:var(--ga-ink); }
@media (max-width:760px){ .ga-nav{ display:none; } }

.ga-foot{ border-top:1px solid var(--ga-rule); padding:var(--ga-s-5) 0; margin-top:var(--ga-s-6); }
.ga-foot__inner{
  max-width:var(--ga-wide); margin-inline:auto; padding-inline:var(--ga-s-4);
  display:flex; flex-wrap:wrap; gap:var(--ga-s-3) var(--ga-s-5); align-items:center;
  font-family:var(--ga-sans); font-size:var(--ga-t-xs); color:var(--ga-ink-3);
}
.ga-foot__inner nav{ display:flex; gap:var(--ga-s-4); flex-wrap:wrap; margin-left:auto; }
.ga-foot__inner a{ color:var(--ga-ink-2); text-decoration:none; }
.ga-foot__inner a:hover{ color:var(--ga-ink); text-decoration:underline; }

/* ============================================================
   9. WEJŚCIE — jeden spokojny ruch, wyłączony przy reduced-motion
   ============================================================ */
@media (prefers-reduced-motion:no-preference){
  .ga-rise{ opacity:0; transform:translateY(14px); animation:ga-rise .7s cubic-bezier(.22,.61,.36,1) forwards; }
  .ga-rise:nth-child(2){ animation-delay:.08s; }
  .ga-rise:nth-child(3){ animation-delay:.16s; }
  @keyframes ga-rise{ to{ opacity:1; transform:none; } }
}

/* fragment oczekujący na prawdziwą treść — stan uczciwy, nie udawany */
.ga-excerpt--pending{ text-align:center; }
.ga-excerpt--pending .ga-excerpt__await{
  font-style:italic; color:var(--ga-ink-3); margin:0;
  padding:var(--ga-s-5) 0; border:1px dashed var(--ga-rule);
  border-radius:var(--ga-radius);
}
.ga-excerpt--pending p::first-letter{ float:none; font-size:inherit; color:inherit; padding:0; }

/* zapowiedź kolejnej książki */
.ga-next{
  display:flex; flex-wrap:wrap; gap:var(--ga-s-4);
  align-items:center; justify-content:space-between;
  border-left:3px solid var(--ga-brass); padding-left:var(--ga-s-4);
}
.ga-next h2{ margin:var(--ga-s-2) 0 var(--ga-s-3); }

/* ============================================================
   10. STRONA PRZED PREMIERĄ — okładka sama, bez portretu
   ============================================================ */
/* Render 3D ma własną bryłę, grzbiet i przezroczyste tło — nie dokładamy
   sztucznej krawędzi kartek, bo nakładałaby się na prawdziwą. Tylko cień,
   który sadza książkę na gruncie, i poświata, żeby odkleić ją od tła. */
.ga-hero__book3d{
  display:block; width:min(100%,400px); height:auto;
  filter:drop-shadow(0 34px 56px rgba(0,0,0,.66));
}
.ga-hero__art{ position:relative; }
.ga-hero__art::before{
  content:""; position:absolute; inset:2% 4%; z-index:-1;
  background:radial-gradient(closest-side, rgba(201,164,94,.17), transparent 74%);
}
@media (max-width:900px){ .ga-hero__book3d{ width:min(66%,300px); } }

/* trzy liczby — konkret zamiast obietnic */
.ga-facts{
  display:grid; gap:var(--ga-s-4);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.ga-fact{ border-top:2px solid var(--ga-brass); padding-top:var(--ga-s-3); }
.ga-fact__n{
  display:block; font-family:var(--ga-serif); font-size:3.4rem; font-weight:600;
  line-height:1; letter-spacing:-.03em; color:var(--ga-ink);
  font-variant-numeric:tabular-nums;
}
.ga-fact p{ margin:var(--ga-s-2) 0 0; color:var(--ga-ink-2); font-size:var(--ga-t-sm); max-width:30ch; }

.ga-excerpt__cta{ text-align:center; margin-top:var(--ga-s-4); }

/* trylogia — numeracja jest tu prawdziwa, to kolejność czytania */
.ga-trilogy{ list-style:none; margin:0; padding:0; display:grid; gap:var(--ga-s-4); }
.ga-trilogy li{
  display:grid; grid-template-columns:64px 1fr; gap:var(--ga-s-4);
  align-items:start; padding-top:var(--ga-s-4); border-top:1px solid var(--ga-rule);
}
.ga-trilogy__n{
  font-family:var(--ga-serif); font-size:2rem; font-weight:600;
  color:var(--ga-brass); line-height:1;
}
.ga-trilogy h3{ margin:0 0 var(--ga-s-2); }
.ga-trilogy p{ margin:0 0 var(--ga-s-2); color:var(--ga-ink-2); max-width:52ch; }
.ga-trilogy__status{
  font-family:var(--ga-sans); font-size:11px; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ga-ink-3);
  border:1px solid var(--ga-rule); border-radius:2px; padding:4px 10px; display:inline-block;
}
.ga-trilogy__status--now{ color:var(--ga-brass); border-color:var(--ga-brass); }
@media (max-width:600px){ .ga-trilogy li{ grid-template-columns:1fr; gap:var(--ga-s-2); } }

/* sekcja „The book": okładka jako dowód rzeczowy obok liczb */
.ga-bookrow{
  display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr);
  gap:var(--ga-s-5); align-items:center;
}
.ga-bookrow__cover{
  width:100%; height:auto; border-radius:2px;
  box-shadow:0 18px 40px -14px rgba(23,25,26,.5), 0 0 0 1px var(--ga-rule);
}
@media (max-width:760px){
  .ga-bookrow{ grid-template-columns:1fr; gap:var(--ga-s-4); }
  .ga-bookrow__cover{ max-width:240px; }
}

/* ============================================================
   11. STRONY WEWNĘTRZNE
   ============================================================ */
.ga-page-hero{
  background:var(--ga-paper-2);
  border-bottom:1px solid var(--ga-rule);
  padding: clamp(48px,6vw,84px) 0 clamp(32px,4vw,56px);
}
.ga-page-hero h1{ margin:var(--ga-s-3) 0 0; max-width:20ch; font-size:clamp(2rem,4.4vw,3rem); }

.ga-about{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,300px); gap:var(--ga-s-6); align-items:start; }
.ga-about__body{ max-width:66ch; }
.ga-about__body p{ margin-bottom:var(--ga-s-4); }
.ga-lede{ font-size:var(--ga-t-lg); color:var(--ga-ink-2); }
.ga-about__aside{ position:sticky; top:96px; display:flex; flex-direction:column; gap:var(--ga-s-4); }
.ga-about__aside img{ width:100%; height:auto; border-radius:var(--ga-radius); }

.ga-facts-list{ margin:0; font-family:var(--ga-sans); font-size:var(--ga-t-xs); }
.ga-facts-list dt{
  color:var(--ga-ink-3); letter-spacing:.1em; text-transform:uppercase;
  font-weight:600; margin-top:var(--ga-s-3);
}
.ga-facts-list dd{ margin:2px 0 0; color:var(--ga-ink); }

.ga-contact{ display:grid; gap:var(--ga-s-5); grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.ga-contact h2{ font-size:var(--ga-t-xl); margin:0 0 var(--ga-s-2); }
.ga-contact p{ color:var(--ga-ink-2); }

@media (max-width:860px){
  .ga-about{ grid-template-columns:1fr; gap:var(--ga-s-5); }
  .ga-about__aside{ position:static; max-width:340px; }
}

.ga-signup__ok, .ga-signup__err{
  margin-top:var(--ga-s-4); padding:14px 18px; border-radius:var(--ga-radius);
  font-family:var(--ga-sans); font-size:var(--ga-t-sm);
}
.ga-signup__ok{ background:rgba(47,93,83,.22); border:1px solid var(--ga-verd); color:#EDEAE3; }
.ga-signup__err{ background:rgba(138,47,34,.22); border:1px solid var(--ga-oxblood); color:#EDEAE3; }

/* książki przed premierą */
.ga-preorder{
  display:inline-block; margin:var(--ga-s-2) 0;
  font-family:var(--ga-sans); font-size:var(--ga-t-sm);
  color:var(--ga-brass); border-left:2px solid var(--ga-brass); padding-left:12px;
}
.ga-preorder-cta{ margin-top:var(--ga-s-3); }
.ga-price-tba{
  font-family:var(--ga-sans); font-size:var(--ga-t-sm);
  color:var(--ga-ink-3); letter-spacing:.02em;
}

/* katalog książek */
.woocommerce ul.products{ display:grid; gap:var(--ga-s-5); grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); margin:0; padding:0; }
.woocommerce ul.products li.product{ width:auto!important; margin:0!important; float:none!important; text-align:left; }
.woocommerce ul.products li.product img{ border-radius:2px; box-shadow:0 14px 30px -12px rgba(23,25,26,.45); margin-bottom:var(--ga-s-3); }
.ga-loop-tom{
  display:block; font-family:var(--ga-sans); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ga-brass); margin-bottom:4px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--ga-serif)!important; font-size:var(--ga-t-lg)!important;
  font-weight:600; padding:0!important; margin:0 0 var(--ga-s-2)!important;
}
.woocommerce ul.products li.product .price{ display:block; margin-bottom:var(--ga-s-3); }
.woocommerce .woocommerce-breadcrumb{ font-family:var(--ga-sans); font-size:var(--ga-t-xs); color:var(--ga-ink-3); }

/* ============================================================
   12. KATALOG KSIĄŻEK — własny, nie pętla sklepowa
   ============================================================ */
.ga-katalog{ display:grid; gap:var(--ga-s-6) var(--ga-s-5); grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.ga-kt{ display:flex; flex-direction:column; }
.ga-kt__wizual{ display:block; text-decoration:none; margin-bottom:var(--ga-s-4); }
.ga-kt__wizual img{
  width:100%; height:auto; border-radius:2px;   /* BEZ przycinania — okładka to nie miniatura */
  box-shadow:0 16px 34px -14px rgba(23,25,26,.5);
  transition:transform .18s ease;
}
.ga-kt__wizual:hover img{ transform:translateY(-3px); }

/* zamiast szarego zastępnika Woo: uczciwa, zaprojektowana kartka */
.ga-kt__zaslepka{
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px;
  aspect-ratio:1/1.6; padding:var(--ga-s-4); text-align:center;
  background:linear-gradient(168deg,#161C22,#0E1216); border:1px solid #2A2F34; border-radius:2px;
}
.ga-kt__rzymski{ font-family:var(--ga-serif); font-size:3rem; font-weight:600; color:#C9A45E; line-height:1; }
.ga-kt__zaslepka-tyt{ font-family:var(--ga-serif); font-size:var(--ga-t-lg); color:#EDEAE3; max-width:16ch; }
.ga-kt__zaslepka-nota{
  font-family:var(--ga-sans); font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; color:#7D827D;
}

.ga-kt__tom{
  font-family:var(--ga-sans); font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ga-brass); margin:0 0 4px;
}
.ga-kt__tytul{ font-size:var(--ga-t-xl); margin:0 0 var(--ga-s-2); }
.ga-kt__tytul a{ color:var(--ga-ink); text-decoration:none; }
.ga-kt__tytul a:hover{ text-decoration:underline; text-decoration-color:var(--ga-brass); }
.ga-kt__opis{ color:var(--ga-ink-2); font-size:var(--ga-t-sm); margin:0 0 var(--ga-s-4); flex:1; }
.ga-kt__stopka{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--ga-s-3); margin:0; }
.ga-kt__cena{ font-family:var(--ga-sans); font-size:var(--ga-t-lg); font-weight:600; font-variant-numeric:tabular-nums; }
.ga-kt__wkrotce{ font-family:var(--ga-sans); font-size:var(--ga-t-sm); color:var(--ga-ink-3); }
.ga-katalog__nota{
  margin-top:var(--ga-s-6); padding-top:var(--ga-s-4); border-top:1px solid var(--ga-rule);
  color:var(--ga-ink-2); max-width:60ch;
}

/* 404 — drogi wyjścia zamiast ślepego zaułka */
.ga-404-drogi{ display:grid; gap:var(--ga-s-4); grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); margin-top:var(--ga-s-5); }
.ga-404-karta{
  display:flex; flex-direction:column; gap:8px; text-decoration:none;
  padding:var(--ga-s-4); border:1px solid var(--ga-rule); border-radius:var(--ga-radius);
  background:var(--ga-card); transition:border-color .15s ease, transform .15s ease;
}
.ga-404-karta:hover{ border-color:var(--ga-brass); transform:translateY(-2px); }
.ga-404-karta__tyt{ font-family:var(--ga-serif); font-size:var(--ga-t-lg); font-weight:600; color:var(--ga-ink); }
.ga-404-karta__op{ font-size:var(--ga-t-sm); color:var(--ga-ink-2); }

.ga-signup__nota{
  margin-top:var(--ga-s-3); max-width:56ch;
  font-family:var(--ga-sans); font-size:12.5px; line-height:1.55;
  color:rgba(237,234,227,.62);
}
