@charset "UTF-8";
@import url("assets/zmienne.css");
@import url("assets/wzornik-wspolny.css");

body {
  background-color: var(--color-background);
  background-image: url("assets/tlo-pergamin.png");
  background-size: 760px;
}

/* Pakiet C: regionalne przepisy w spokojnym układzie jednej kolumny. */
.recipe-index,
.recipe-record,
.recipe-contribution {
  min-width: 0;
}

.recipe-index ol {
  columns: 2;
  column-gap: var(--space-xl);
  margin-bottom: 0;
}

.recipe-index li {
  break-inside: avoid;
  margin-block: .35rem;
}

.recipe-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-lg);
}

.recipe-record {
  display: flow-root;
  overflow-wrap: break-word;
}

.recipe-record__header {
  margin-bottom: var(--space-md);
  text-align: center;
}

.pilot-article .recipe-record__title {
  margin: 0;
  font-size: clamp(1.45rem, 1.2rem + .8vw, 2rem);
  line-height: 1.2;
  text-transform: uppercase;
}

.recipe-record__source {
  margin: .3rem 0 0;
  font-style: italic;
}

.recipe-record__media {
  float: right;
  width: min(42%, 300px);
  margin: 0 0 var(--space-md) var(--space-lg);
}

.recipe-record__media img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
}

.recipe-record__body {
  min-width: 0;
}

.pilot-article .recipe-subheading {
  margin: var(--space-lg) 0 var(--space-sm);
  padding-bottom: .2rem;
  border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);
  font-size: 1.15rem;
  font-weight: 700;
  text-decoration: none;
}

.recipe-record h4 {
  margin: var(--space-md) 0 var(--space-xs);
  font-size: 1rem;
}

.recipe-ingredients {
  margin-top: var(--space-xs);
  padding-left: 1.5rem;
}

.recipe-ingredients li {
  margin-block: .25rem;
  padding-left: .15rem;
}

.recipe-ingredients li::marker {
  color: var(--color-accent);
  content: "❧  ";
}

.recipe-method {
  margin-block: 0 var(--space-md);
}

.recipe-note {
  margin-top: var(--space-lg);
  padding: var(--space-md);
  border-left: 4px solid var(--color-accent);
  background: color-mix(in srgb, var(--color-panel) 86%, transparent);
}

.recipe-note p:last-child {
  margin-bottom: 0;
}

.recipe-return {
  clear: both;
  margin: var(--space-lg) 0 0;
  padding-top: var(--space-sm);
  border-top: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
  text-align: right;
}

.recipe-return a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.legacy-anchor {
  display: block;
  position: relative;
  top: -1rem;
  visibility: hidden;
}

@media (max-width: 700px) {
  .recipe-index ol {
    columns: 1;
  }

  .recipe-record__media {
    float: none;
    width: min(100%, 480px);
    margin: 0 auto var(--space-lg);
  }

  .recipe-return {
    text-align: center;
  }
}

/* Strony zbiorcze: jeden czytelny rekord na pełną szerokość. */
main > section[aria-label="Galerie zdjęć"] > .card-grid,
.gallery-index-list,
.compendium-dictionary-grid {
  grid-template-columns: minmax(0, 1fr);
}

/* Pakiet B: wspólny nagłówek szerokiego rekordu galerii. */
.gallery-index-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  column-gap: var(--space-md);
}
.gallery-index-heading {
  grid-column: 1 / -1;
  min-width: 0;
  text-align: center;
}
.pilot-article .gallery-index-title {
  margin-block: 0;
  font-size: clamp(1.35rem, calc(1.35rem + 0.25vw), 1.5rem);
  line-height: 1.18;
  text-align: center;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
.pilot-article .gallery-index-title--long {
  font-size: clamp(1.2rem, calc(1.2rem + 0.18vw), 1.3rem);
}
.pilot-article .gallery-index-date {
  margin: 0.2rem 0 0;
  font-size: calc(var(--text-sm) * 1.25);
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
}
.gallery-index-record .card-actions {
  justify-self: start;
  margin-bottom: 0;
}
.gallery-index-record .section-return {
  justify-self: end;
  margin-bottom: 0;
}
@media (max-width: 700px) {
  .gallery-index-record {
    column-gap: var(--space-sm);
  }
  .pilot-article .gallery-index-title {
    font-size: 1.1rem;
  }
  .pilot-article .gallery-index-title--long {
    font-size: 1rem;
  }
  .pilot-article .gallery-index-date {
    font-size: 1rem;
  }
  .gallery-index-record .card-actions,
  .gallery-index-record .section-return {
    max-width: 48%;
  }
}

.pilot-header--draganowa {
  position: relative;
  width: min(100%, var(--page-max));
  margin-inline: auto;
}

.pilot-header--draganowa > img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 1;
  object-fit: cover;
}

.site-name {
  position: absolute;
  inset: auto 8% 5% 8%;
  padding: var(--space-sm);
  color: var(--color-primary-dark);
  background: rgba(244, 222, 173, .82);
  font-family: var(--font-heading);
  text-align: center;
}

.site-name span,
.site-name strong {
  display: block;
}

.site-name span {
  color: var(--color-accent);
  font-size: var(--text-xl);
  text-transform: uppercase;
}

.site-name strong {
  font-size: var(--text-2xl);
  line-height: var(--line-heading);
  text-transform: uppercase;
}

.pilot-title {
  width: min(calc(100% - 2rem), 760px);
  margin: var(--space-lg) auto;
  padding: var(--space-sm) var(--space-xl);
  color: #fff;
  background: var(--color-primary-dark);
  border-left: 10px solid var(--color-accent);
  border-right: 10px solid var(--color-accent);
}

.pilot-title h1 {
  margin: 0;
  text-align: center;
}

.pilot-three-column {
  display: grid;
  grid-template-columns: minmax(190px, 245px) minmax(0, 1fr) minmax(210px, 270px);
  align-items: start;
  gap: var(--space-lg);
  width: min(calc(100% - 2rem), var(--page-max));
  margin-inline: auto;
}

.pilot-side-menu,
.pilot-right-rail,
.pilot-article {
  min-width: 0;
  padding: var(--space-md);
  background: var(--color-panel);
  border: var(--border-thin) solid var(--color-border);
  border-radius: var(--radius-md);
}

.pilot-side-menu {
  display: grid;
  gap: var(--space-sm);
}

.pilot-side-menu h2,
.pilot-right-rail h2 {
  margin-top: 0;
  text-align: center;
}

.pilot-side-menu a {
  padding: var(--space-sm);
  color: var(--color-text);
  background: rgba(255,255,255,.34);
  border: var(--border-thin) solid var(--color-border);
  border-radius: var(--radius-sm);
  font: 700 var(--text-sm)/1.25 var(--font-ui);
  text-decoration: none;
}

.pilot-side-menu a[aria-current="page"] {
  color: #fff;
  background: var(--color-primary);
}

.historical-article {
  max-width: 72ch;
  margin-inline: auto;
}

.historical-article > h2:first-child {
  text-align: center;
}

.historical-article img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: var(--space-lg) auto;
  border: var(--photo-border);
}

.historical-article p,
.historical-article li {
  overflow-wrap: anywhere;
}

.historical-article div {
  max-width: 100%;
}

.pilot-right-rail .component {
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
}

.resource-stream {
  grid-template-columns: 1fr;
}

.resource-stream > p,
.resource-stream > div {
  min-width: 0;
  margin: 0;
  padding: var(--space-sm);
  overflow-wrap: anywhere;
  background: rgba(255,255,255,.28);
  border: var(--border-thin) solid var(--color-border);
  border-radius: var(--radius-sm);
}

.resource-stream img {
  display: block;
  width: 100%;
  height: auto;
  margin-inline: auto;
}

.pilot-footer {
  width: min(calc(100% - 2rem), var(--page-max));
  margin: var(--space-xl) auto 0;
  padding: var(--space-lg);
  text-align: center;
  border-top: var(--border-thin) solid var(--color-border);
}

@media (max-width: 1100px) {
  .pilot-three-column {
    grid-template-columns: 220px minmax(0, 1fr);
  }
  .pilot-right-rail {
    grid-column: 1 / -1;
  }
  .resource-stream {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .pilot-header--draganowa > img {
    aspect-ratio: 16 / 8;
  }
  .site-name {
    inset: auto 2% 3% 2%;
  }
  .site-name span {
    font-size: var(--text-lg);
  }
  .site-name strong {
    font-size: var(--text-xl);
  }
  .pilot-three-column {
    grid-template-columns: 1fr;
  }
  .pilot-side-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pilot-side-menu h2 {
    grid-column: 1 / -1;
  }
  .resource-stream {
    grid-template-columns: 1fr;
  }
}

/* Strony publikacji naukowych: istniejące komponenty w układzie wydawniczym. */
.publication-header { display: grid; grid-template-columns: minmax(120px, 190px) minmax(0, 1fr); gap: var(--space-lg); align-items: start; }
.publication-header .publication-cover { width: 100%; height: auto; margin: 0; }
.publication-header h2 { margin-top: 0; }
.publication-author { color: var(--color-primary-dark); font-family: var(--font-heading); font-size: var(--text-lg); font-weight: 700; }
.publication-metadata dd, .publication-summary-card, .publication-tile :is(h3, p, a), .download-card a { word-break: normal; overflow-wrap: normal; -webkit-hyphens: auto; -ms-hyphens: auto; hyphens: auto; }
.download-list, .related-list { padding: 0; list-style: none; }
.download-list { display: grid; gap: var(--space-sm); }
.download-card { display: grid; grid-template-columns: minmax(5rem, auto) minmax(0, 1fr); gap: var(--space-md); align-items: center; padding: var(--space-md); background: rgba(255,255,255,.34); border: var(--border-thin) solid var(--color-border); border-radius: var(--radius-sm); }
.publication-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }
.publication-tile { align-self: start; }
.publication-tile > a img { aspect-ratio: auto; object-fit: contain; }
.publication-summary-card h3 { margin-top: 0; }
.publication-card-actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); align-items: flex-start; margin-top: var(--space-md); }
.publication-summary-card details { flex-basis: 100%; }
.publication-summary-card summary, .publication-card-action { width: fit-content; padding: .45rem .8rem; color: var(--color-primary-dark); background: rgba(255,255,255,.55); border: var(--border-thin) solid var(--color-border); border-radius: var(--radius-sm); cursor: pointer; font: 700 var(--text-sm)/1.3 var(--font-ui); text-decoration: none; }
.publication-summary-card summary .less, .publication-summary-card details[open] summary .more { display: none; }
.publication-summary-card details[open] summary .less { display: inline; }
.publication-summary-full { margin-top: var(--space-sm); }
.info-box { padding: var(--space-md); background: color-mix(in srgb, var(--color-panel) 92%, #fff); border: var(--border-thin) solid var(--color-border); border-left: .35rem solid var(--color-accent); border-radius: var(--radius-sm); }
.info-box h2 { margin-top: 0; }
.info-box--warning { border-left-color: #8b5a16; }

/* Pakiet E: czytelne, jednokolumnowe rekordy instytucji i materiałów historycznych. */
.institution-records {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-md);
  margin: var(--space-md) 0;
}

.institution-records .content-card {
  min-width: 0;
}

.institution-records .button-link {
  display: inline-block;
  padding: .55rem .8rem;
  border: var(--border-thin) solid var(--color-border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--color-panel) 88%, #fff);
  font-weight: 700;
}

.historical-source__content {
  margin-top: var(--space-lg);
  padding-top: var(--space-md);
  border-top: var(--border-thin) solid var(--color-border);
}
.publication-gallery figcaption { text-align: center; }
.publication-page-nav { text-align: left; }
.publication-page-nav p { margin-block: .5rem; }
.publication-page-nav ul { margin: 0; padding: 0; list-style: none; }
.publication-page-nav li + li { margin-top: .25rem; }
.publication-page-nav .publication-jump-list li { position: relative; padding-left: 1.35rem; }
.publication-page-nav .publication-jump-list li::before { position: absolute; left: 0; color: var(--color-accent); content: "❧"; }
.publication-index-return { margin-top: var(--space-md) !important; padding-top: var(--space-sm); border-top: var(--border-thin) solid var(--color-border); }
.compendium-dictionary-grid { grid-template-columns: repeat(2, minmax(14rem, 1fr)); }
.compendium-dictionary-card h3 { font-size: var(--text-md); hyphens: none; }
@media (max-width: 1100px) { .publication-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
  .publication-header, .publication-grid, .compendium-dictionary-grid, .download-card { grid-template-columns: 1fr; }
  .publication-header .publication-cover { width: min(100%, 260px); margin-inline: auto; }
}

@media print {
  .pilot-header--draganowa > img {
    max-height: 240px;
    object-fit: cover;
  }
  .pilot-three-column {
    display: block;
    width: 100%;
  }
  .pilot-side-menu,
  .pilot-right-rail {
    display: none;
  }
  .pilot-article {
    padding: 0;
    border: 0;
  }
}


/* Komponenty historyczne i naukowe — wspólne z przyszłym Repozytorium WD-56. */
.pilot-article > * + * { margin-top: var(--space-xl); }
.historical-article :is(p, li, a, h2, h3, h4),
.content-card :is(p, a, h2, h3) {
  word-break: normal;
  overflow-wrap: normal;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}
.historical-article img { max-width: 100%; height: auto; }
.historical-metadata {
  padding: var(--space-lg);
  background: color-mix(in srgb, var(--color-panel) 88%, #fff);
  border: var(--border-thin) solid var(--color-border);
  border-top: .3rem solid var(--color-accent);
  border-radius: var(--radius-sm);
}
.historical-metadata h2 { margin-top: 0; }
.historical-metadata dd:empty::after { content: "—"; color: var(--color-muted); }
.bibliography { padding-left: 1.5rem; }
.bibliography li { margin-block: var(--space-sm); }
.historical-table { overflow-x: auto; }
.historical-table table { min-width: 40rem; }
.shared-recommendations { grid-template-columns: 1fr; }
.recommendation-card > a img,
.content-card > a img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}

/* Etap 2: rytm długiego artykułu i hierarchia śródtytułów. */
.pilot-article {
  line-height: 1.72;
}
.historical-article {
  max-width: min(100%, 70ch);
}
.historical-article :is(p, ul, ol) {
  margin-block: 0 1.15em;
}
.historical-article :is(ul, ol) {
  padding-inline-start: 1.6em;
}
.historical-article li + li {
  margin-top: .4em;
}
.pilot-article :is(h2, h3) {
  color: var(--color-primary-dark);
  font-family: var(--font-heading);
  line-height: var(--line-heading);
}
.pilot-article h2 {
  margin-block: 2.2em .75em;
  padding-bottom: .28em;
  border-bottom: var(--border-thin) solid var(--color-accent);
  font-size: clamp(1.55rem, 1.25rem + .8vw, 2.1rem);
}
.pilot-article h3 {
  margin-block: 1.8em .65em;
  font-size: clamp(1.25rem, 1.08rem + .45vw, 1.55rem);
}
.pilot-article h3::after {
  content: "";
  display: block;
  width: 3.5rem;
  margin-top: .35em;
  border-bottom: var(--border-thin) solid var(--color-accent);
}
.pilot-article :is(h2, h3):first-child {
  margin-top: 0;
}

/* Etap 2: wspólna fotografia, podpis i galeria 3/2/1. */
.pilot-article figure,
.gallery figure {
  align-self: start;
  width: 100%;
  margin: 0;
  background: color-mix(in srgb, var(--color-panel) 93%, #fff);
  border: var(--photo-border);
  border-radius: var(--radius-sm);
  box-shadow: 0 .18rem .5rem rgba(68, 48, 20, .12);
}
.gallery {
  align-items: start;
}
.gallery figure img,
.pilot-article figure img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  aspect-ratio: auto;
  object-fit: contain;
  border: 0;
  border-radius: 0;
}
.gallery figcaption,
.pilot-article figcaption {
  margin: 0;
  padding: .7rem .85rem .8rem;
  background: color-mix(in srgb, var(--color-panel) 86%, #fff);
  border-top: var(--border-thin) solid var(--color-border);
  font: var(--text-sm)/1.5 var(--font-ui);
}
.gallery figcaption span,
.gallery figcaption small {
  display: block;
}
.gallery .figure-note {
  margin-top: .35rem;
  color: var(--color-muted);
  font-size: .9em;
}
.historical-gallery > h2 {
  margin-top: 0;
}
.section-return {
  margin-top: var(--space-lg);
  font: var(--text-sm)/1.4 var(--font-ui);
  text-align: right;
}
.section-return a {
  color: var(--color-muted);
}
.article-section + .article-section {
  margin-top: clamp(2rem, 5vw, 4rem);
}
.pdf-card--preview {
  grid-template-columns: minmax(90px, 150px) minmax(0, 1fr) auto;
}
.pdf-preview img {
  display: block;
  width: 100%;
  height: auto;
}
.gallery-contact p {
  margin-bottom: 0;
  text-align: center;
}
.historical-article > img,
.historical-article > p > img,
.historical-article > p > a > img {
  margin-block: 1.6rem .45rem;
}

/* Etap 2: cytaty, przypisy, bibliografia i tabele historyczne. */
.historical-article blockquote {
  margin-block: 1.7rem;
  line-height: 1.65;
}
.historical-article p:has(> a[name="przypisy"]),
.historical-article p:has(> a[name="literatura"]) {
  margin-top: 2.4rem;
  padding-top: .65rem;
  color: var(--color-primary-dark);
  border-top: var(--border-thin) solid var(--color-accent);
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: 700;
}
.footnotes {
  margin-top: 2rem;
  padding-top: 1rem;
  line-height: 1.58;
}
.bibliography {
  margin-block: 1rem 0;
  padding-left: 1.55rem;
  line-height: 1.58;
}
.historical-table {
  max-width: 100%;
  margin-block: 1.7rem;
  border: var(--border-thin) solid var(--color-border);
  border-radius: var(--radius-sm);
}
.historical-table table {
  line-height: 1.45;
}
.historical-table caption {
  padding: .75rem;
}

/* Metryczka zamyka opracowanie; wyjątki źródłowe mogą użyć klasy is-inline. */
.historical-metadata {
  margin-top: clamp(2rem, 4vw, 3.5rem);
}
.historical-metadata.is-inline {
  margin-top: 0;
}
.historical-metadata .metadata {
  line-height: 1.5;
}
.gallery-index-list,
.compendium-dictionary-grid {
  grid-template-columns: minmax(0, 1fr);
}

/* Pakiet M: jednokolumnowy katalog map. */
.map-index {
  margin-bottom: var(--space-xl);
}
.map-records {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-lg);
}
.map-record {
  display: flow-root;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  overflow-wrap: break-word;
  background: color-mix(in srgb, var(--color-panel) 94%, #fff);
  border: var(--border-thin) solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
}
.map-record__media {
  float: left;
  width: min(240px, 38%);
  margin: 0 1.25rem .8rem 0;
}
.map-record__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 24 / 17;
  object-fit: cover;
  background: var(--color-panel);
  border: var(--photo-border);
  border-radius: var(--radius-sm);
}
.map-record__title {
  margin-top: 0;
  font-size: clamp(1.2rem, 1.05rem + .5vw, 1.55rem);
}
.map-record__body > :last-child:not(.section-return) {
  margin-bottom: 0;
}
.map-record__meta {
  margin-block: .65rem;
  color: var(--color-muted);
  font: var(--text-sm)/1.5 var(--font-ui);
}
.map-record__actions {
  margin-top: 1rem;
  font-weight: 700;
}
.rights-status {
  display: grid;
  gap: .25rem;
  margin-block: 1rem;
  padding: .75rem 1rem;
  color: var(--color-text);
  font: var(--text-sm)/1.5 var(--font-ui);
  background: color-mix(in srgb, var(--color-panel) 96%, #fff);
  border-inline-start: .3rem solid var(--color-accent);
  border-radius: var(--radius-sm);
}
.rights-status--pending {
  border-inline-start-color: var(--color-muted);
}
.rights-status--cc {
  border-inline-start-color: var(--color-green);
}
.repository-file-pending {
  display: inline-block;
  color: var(--color-muted);
  font: var(--text-sm)/1.5 var(--font-ui);
}
.rights-summary .button-link {
  display: inline-block;
}
.map-record .section-return {
  clear: both;
  padding-top: .75rem;
}
.map-collection > .map-record__body > .map-records {
  clear: both;
  padding-top: .75rem;
}
@media (max-width: 1100px) {
  .shared-recommendations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .pilot-article { order: 2; }
  .pilot-three-column > .pilot-article {
    width: 100%;
    max-width: 100%;
  }
  .pilot-right-rail { order: 3; }
  .shared-recommendations { grid-template-columns: 1fr; }
  .pdf-card--preview { grid-template-columns: 90px minmax(0, 1fr); }
  .pdf-card--preview > a:last-child { grid-column: 1 / -1; text-align: center; }
  .map-record__media {
    float: none;
    width: 100%;
    max-width: 480px;
    margin: 0 auto 1rem;
  }
}
