/* Fundacja Drogi — rebuilt from the WordPress/Elementor original (fundacjadrogi.pl).
   Faithful to the original look: black on white, Nunito Sans for text and headings,
   Nocturne Serif for the italic accents (dates, rotating hero word, "Czytaj więcej").
   The original also declared the 'Vilane' display face but never rendered visible text
   with it, so it is deliberately not shipped. */

/* -------------------------------------------------- Fonts (self-hosted, from the original) */
@font-face {
  font-family: 'Nocturne';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/BORUTTA-GROUP-Nocturne-Serif-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Nocturne';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/BORUTTA-GROUP-Nocturne-Serif-Italic.woff2') format('woff2');
}
/* Nunito Sans is variable (weight 200-1000); one file covers every weight in use. */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('../fonts/nunitosans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('../fonts/nunitosans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* -------------------------------------------------- Base */
:root {
  --black: #000;
  --white: #fff;
  --gray: #808080;
  --line: #d9d9d9;
  --sans: 'Nunito Sans', sans-serif;
  --serif: 'Nocturne', Georgia, serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.85;
  color: var(--black);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
.wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.narrow { max-width: 800px; margin: 0 auto; padding: 0 24px; }

.section-title {
  font-size: 30px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .02em;
  text-align: center;
  line-height: 1.3;
}

.btn {
  display: inline-block;
  background: var(--black);
  color: var(--white);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  padding: 10px 26px;
  border: 0;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
}
.btn:hover { opacity: .82; }

/* -------------------------------------------------- Header (all pages) */
.site-head {
  position: absolute;
  top: 0; left: 0; right: 0;
  display: flex;
  align-items: center;
  padding: 22px 26px;
  z-index: 10;
}
.social { display: flex; gap: 14px; }
.social a { display: block; }
.social svg { width: 17px; height: 17px; fill: var(--black); }
.social a:hover svg { fill: var(--gray); }
/* inner pages: centered small wordmark, social stays left */
.site-head .head-mark {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.site-head .head-mark img { width: 120px; height: auto; }

/* -------------------------------------------------- Hero (home) */
.hero {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  padding: 90px 24px 70px;
}
.hero .wordmark { width: 220px; height: auto; margin-bottom: 70px; }
.hero-heading {
  font-size: 40px;
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .01em;
}
.hero-word {
  font-family: var(--serif);
  font-size: 40px;
  line-height: 1.3;
  min-height: 1.3em;
}
.type-cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  background: var(--black);
  vertical-align: -0.12em;
  margin-left: 4px;
  animation: blink 1s step-end infinite;
}
@keyframes blink { 50% { opacity: 0; } }
.scroll-down {
  position: absolute;
  bottom: 42px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--black);
}
.scroll-down svg { width: 34px; height: 18px; animation: bob 1.6s ease-in-out infinite; }
@keyframes bob { 50% { transform: translateY(7px); } }
@media (prefers-reduced-motion: reduce) {
  .scroll-down svg, .type-cursor { animation: none; }
}

/* -------------------------------------------------- Quote band */
.quote {
  background: var(--black);
  color: var(--white);
  text-align: center;
  padding: 150px 24px;
}
.quote blockquote {
  max-width: 800px;
  margin: 0 auto 42px;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.35;
  text-transform: uppercase;
}
.quote .quote-author,
.quote .quote-source {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  line-height: 1.9;
}

/* -------------------------------------------------- O nas */
.about { padding: 110px 0 70px; }
.about .section-title { margin-bottom: 48px; }
.about-body p { margin-bottom: 1.3em; }
.about-cta { text-align: center; padding: 10px 0 90px; }

/* -------------------------------------------------- Przyjaciele Fundacji */
.friends { padding: 0 0 90px; }
.friends[hidden] { display: none; }
.friends .section-title { margin-bottom: 40px; }
.friends details { border-top: 1px solid var(--line); }
.friends details:last-child { border-bottom: 1px solid var(--line); }
.friends summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 6px;
  font-size: 15px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.friends summary::-webkit-details-marker { display: none; }
.friends summary::after { content: '+'; font-weight: 400; font-size: 22px; }
.friends details[open] summary::after { content: '\2212'; }
.friends .bio { padding: 0 6px 26px; }
.friends .bio p { margin-bottom: 1.1em; }

/* -------------------------------------------------- Contact / addresses */
.contact {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: 90px 24px 110px;
}
.contact-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 21vw;
  font-weight: 800;
  line-height: .95;
  text-transform: uppercase;
  color: rgba(0, 0, 0, .04);
  user-select: none;
  pointer-events: none;
  white-space: nowrap;
}
.contact > :not(.contact-watermark) { position: relative; }
.contact .section-title { margin-bottom: 50px; }
.contact-label {
  font-size: 13px;
  color: var(--black);
  margin-bottom: 4px;
}
.contact-value {
  font-size: 17px;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.5;
  margin-bottom: 34px;
}
.contact-cols {
  display: flex;
  justify-content: center;
  gap: 90px;
  flex-wrap: wrap;
}
.contact-sub {
  font-size: 17px;
  font-weight: 800;
  text-transform: uppercase;
  margin: 26px 0 30px;
}
.contact a { text-decoration: none; }
.contact a:hover { text-decoration: underline; }
.branch-tel { font-size: 13px; display: block; margin-top: 2px; }
.branch-tel a[href='tel:'] { display: none; }

/* -------------------------------------------------- Post lists (home + archive) */
.post-list-section { padding: 70px 0 90px; }
.post-list-section .section-title { margin-bottom: 46px; }
.post-row {
  display: flex;
  align-items: center;
  gap: 28px;
  border-top: 1px solid var(--line);
  padding: 34px 8px;
}
.post-list .post-row:last-child { border-bottom: 1px solid var(--line); }
.post-thumb { flex: 0 0 200px; }
.post-thumb img { width: 200px; height: 112px; object-fit: cover; }
/* archive rows without a thumbnail render src="../" — hide the broken img */
.post-thumb img[src='../'], .post-thumb img[src=''] { display: none; }
.post-row-main { flex: 1; }
.post-row-title {
  font-size: 15px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
  line-height: 1.55;
}
.post-row-title a { text-decoration: none; }
.post-row-title a:hover { text-decoration: underline; }
.post-row-date {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14.5px;
  margin-top: 2px;
}
.post-row-more {
  font-family: var(--serif);
  font-style: italic;
  font-size: 15px;
  white-space: nowrap;
}
.post-row-excerpt { font-size: 14px; margin-top: 6px; max-width: 640px; }

/* -------------------------------------------------- Post page */
.post { padding: 130px 0 40px; }
.post-title {
  font-size: 34px;
  font-weight: 800;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: .01em;
  margin-bottom: 10px;
}
.post-date {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14.5px;
  margin-bottom: 42px;
}
.post-body p { margin-bottom: 1.35em; }
.post-body h3, .post-body h4 {
  font-weight: 800;
  line-height: 1.4;
  margin: 1.6em 0 .7em;
}
.post-body h3 { font-size: 21px; }
.post-body h4 { font-size: 17px; }
.post-body ul, .post-body ol { padding-left: 1.4em; margin-bottom: 1.35em; }
.post-body a { color: inherit; }
.post-body img { margin: 0 auto; }
.post-body figure { margin: 0 0 1.5em; }
.post-body blockquote {
  border-left: 3px solid var(--black);
  padding-left: 20px;
  font-style: italic;
  margin: 1.5em 0;
}
.post-body table { border-collapse: collapse; width: 100%; margin-bottom: 1.5em; }
.post-body th, .post-body td { border: 1px solid var(--line); padding: 8px 12px; text-align: left; }
/* photo galleries arrive as a figure full of figures */
.post-body figure:has(> figure) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 8px;
}
.post-body figure:has(> figure) figure { margin: 0; }
.post-body figure:has(> figure) img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

/* -------------------------------------------------- Related posts */
.related { padding: 40px 0 90px; }
.related .section-title { font-size: 24px; margin-bottom: 40px; }

/* -------------------------------------------------- Archive (aktualnosci) */
.archive-head { padding: 140px 0 10px; text-align: center; }
.archive-head .section-title { font-size: 34px; }

/* -------------------------------------------------- Legal pages */
.legal { padding: 140px 0 90px; }
.legal h1 {
  font-size: 30px;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.3;
  margin-bottom: 40px;
}
.legal-body h2 { font-size: 19px; font-weight: 800; margin: 1.8em 0 .6em; }
.legal-body p, .legal-body li { margin-bottom: .9em; }
.legal-body ul { padding-left: 1.4em; }

/* -------------------------------------------------- Footer */
.site-foot { text-align: center; padding: 60px 24px 40px; }
.foot-partners-heading { font-size: 14px; font-weight: 700; margin-bottom: 26px; }
.foot-partners { max-width: 860px; margin: 0 auto 40px; }
.foot-links {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1360px;
  margin: 0 auto 50px;
  font-size: 14px;
  font-weight: 700;
}
.foot-links a { text-decoration: none; }
.foot-links a:hover { text-decoration: underline; }
.foot-copy { font-size: 13.5px; font-weight: 700; line-height: 1.7; }
.foot-copy .credit, .foot-copy .credit a { color: var(--gray); }

/* -------------------------------------------------- Responsive */
@media (max-width: 860px) {
  .hero-heading, .hero-word { font-size: 30px; }
  .quote blockquote { font-size: 25px; }
  .section-title { font-size: 25px; }
  .post-title { font-size: 26px; }
  .contact-cols { gap: 40px; }
  .post-row { flex-wrap: wrap; gap: 14px; }
  .post-thumb { flex-basis: 100%; }
  .post-thumb img { width: 100%; height: auto; max-height: 220px; }
  .post-row-more { flex-basis: 100%; }
  .foot-links { flex-direction: column; gap: 10px; }
}
