/* =============================================================================
   CAPPELLANIE — Libretto di stampa (A4)
   Copertina · indice per provincia · schede. Pensato per la consultazione
   cartacea: nessuna mappa, alta leggibilità, filetti oro, capolettera.
   ============================================================================= */

@page { size: A4; margin: 0; }

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--paper-sunk);
  -webkit-font-smoothing: antialiased;
}

/* schermo: mostra le pagine impilate con un po' d'aria */
.print-toolbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px 22px; background: var(--surface-marian); color: var(--ink-on-dark);
  border-bottom: 2px solid var(--gold-deep);
}
.print-toolbar h1 { font-family: var(--font-display); font-size: 1.15rem; margin: 0; font-weight: 600; }
.print-toolbar p { margin: 0; font-size: 0.8rem; color: var(--ink-on-dark-soft); }
.print-toolbar__actions { display: flex; gap: 10px; }
.print-btn {
  font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; white-space: nowrap;
  padding: 9px 18px; border-radius: 999px; border: 1px solid var(--gold);
  background: var(--gold); color: var(--marian-deep); cursor: pointer; text-decoration: none;
}
.print-btn--ghost { background: transparent; color: var(--ink-on-dark); border-color: oklch(1 0 0 / 0.3); }

.pages { padding: 28px 0 60px; display: flex; flex-direction: column; align-items: center; gap: 26px; }

.page {
  width: 210mm; min-height: 297mm; background: var(--paper);
  box-shadow: var(--shadow-lg); position: relative; overflow: hidden;
  padding: 20mm 18mm 18mm;
}
.page__folio {
  position: absolute; bottom: 11mm; left: 18mm; right: 18mm;
  display: flex; align-items: center; justify-content: space-between;
  font-size: 8.5pt; color: var(--ink-mute); letter-spacing: 0.04em;
  border-top: 0.5pt solid var(--gold-line); padding-top: 5px;
}
.page__folio .fl-mark { letter-spacing: 0.22em; text-transform: uppercase; }

/* ---------------------------------------------------------------------------
   COPERTINA
   --------------------------------------------------------------------------- */
.cover { background: var(--surface-marian); color: var(--ink-on-dark); display: flex; flex-direction: column; padding: 26mm 22mm; }
.cover__rule-top { height: 2px; background: linear-gradient(90deg, transparent, var(--gold), transparent); margin-bottom: 16mm; }
.cover__mark { width: 76px; height: 76px; margin-bottom: 14mm; }
.cover__kicker { font-size: 11pt; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold); margin-bottom: 8mm; font-weight: 600; }
.cover__title {
  font-family: var(--font-display); font-size: 46pt; line-height: 1.02; font-weight: 600;
  letter-spacing: -0.015em; margin: 0 0 6mm; color: var(--ink-on-dark);
  font-variation-settings: 'opsz' 144, 'SOFT' 0, 'WONK' 1; text-wrap: balance;
}
.cover__sub { font-family: var(--font-display); font-style: italic; font-size: 17pt; color: var(--gold); font-weight: 300; margin-bottom: auto; }
.cover__meta { display: flex; flex-direction: column; gap: 3mm; margin-top: 14mm; }
.cover__meta-row { display: flex; gap: 10px; font-size: 10.5pt; color: var(--ink-on-dark-soft); }
.cover__meta-row .lab { letter-spacing: 0.16em; text-transform: uppercase; font-size: 8.5pt; width: 34mm; color: var(--gold); padding-top: 2px; }
.cover__rule-bot { height: 1px; background: var(--gold-line); opacity: 0.4; margin: 10mm 0 6mm; }
.cover__foot { font-size: 9pt; color: var(--ink-on-dark-soft); letter-spacing: 0.04em; }

/* dot ornamentali della copertina (lingue) */
.cover__langs { display: flex; gap: 7px; margin-top: 8mm; flex-wrap: wrap; }
.cover__lang-dot { width: 13px; height: 13px; border-radius: 50%; box-shadow: 0 0 0 1.5px oklch(1 0 0 / 0.25); }

/* ---------------------------------------------------------------------------
   INDICE
   --------------------------------------------------------------------------- */
.section-head { margin-bottom: 10mm; }
.section-head__kicker { font-size: 9pt; letter-spacing: 0.26em; text-transform: uppercase; color: var(--gold-ink); font-weight: 600; }
.section-head__title { font-family: var(--font-display); font-size: 30pt; font-weight: 600; line-height: 1.04; letter-spacing: -0.01em; margin: 4mm 0 0; font-variation-settings: 'opsz' 80, 'WONK' 1; }
.section-head__rule { height: 1.5px; background: var(--gold-deep); margin-top: 6mm; }

.toc-prov { margin-bottom: 8mm; break-inside: avoid; }
.toc-prov__name { font-family: var(--font-display); font-size: 15pt; font-weight: 600; color: var(--marian); display: flex; align-items: baseline; gap: 8px; margin-bottom: 3mm; }
.toc-prov__count { font-family: var(--font-body); font-size: 9pt; color: var(--ink-mute); font-style: italic; }
.toc-list { list-style: none; margin: 0; padding: 0; }
.toc-row { display: flex; align-items: baseline; gap: 8px; padding: 2.4mm 0; border-bottom: 0.5pt dotted var(--border-strong); }
.toc-row__dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; transform: translateY(1px); box-shadow: 0 0 0 1.2px var(--paper); }
.toc-row__name { font-size: 10.5pt; color: var(--ink); font-weight: 500; }
.toc-row__city { font-size: 9.5pt; color: var(--ink-mute); }
.toc-row__lead { flex: 1 1 auto; border-bottom: 0.5pt dotted transparent; }
.toc-row__pg { font-family: var(--font-display); font-size: 11pt; font-weight: 600; color: var(--marian); font-variant-numeric: tabular-nums; }

.legend-strip { margin-top: 12mm; padding: 6mm; background: var(--paper-raised); border: 0.5pt solid var(--gold-line); border-radius: 8px; }
.legend-strip__title { font-size: 8.5pt; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-ink); font-weight: 600; margin-bottom: 4mm; }
.legend-strip__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3mm 6mm; }
.legend-strip__item { display: flex; align-items: center; gap: 7px; font-size: 9.5pt; color: var(--ink); }
.legend-strip__dot { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 0 1.2px var(--paper); }
.legend-strip__lng { color: var(--ink-mute); font-style: italic; font-size: 8.5pt; }

/* ---------------------------------------------------------------------------
   SCHEDE
   --------------------------------------------------------------------------- */
.prov-divider { display: flex; align-items: center; gap: 10px; margin: 0 0 8mm; }
.prov-divider__name { font-family: var(--font-display); font-size: 13pt; font-weight: 600; color: var(--gold-ink); letter-spacing: 0.04em; }
.prov-divider__line { flex: 1; height: 1px; background: var(--gold-line); }

.pl { break-inside: avoid; margin-bottom: 9mm; padding-bottom: 8mm; border-bottom: 0.5pt solid var(--border); }
.pl:last-child { border-bottom: none; }
.pl__head { display: flex; align-items: flex-start; gap: 4mm; margin-bottom: 4mm; }
.pl__num { font-family: var(--font-display); font-size: 11pt; font-weight: 600; color: var(--marian); flex: 0 0 auto; width: 12mm; font-variant-numeric: tabular-nums; padding-top: 2px; }
.pl__head-main { flex: 1 1 auto; min-width: 0; }
.pl__chip { display: inline-flex; align-items: center; gap: 5px; font-size: 8pt; font-weight: 600; padding: 2px 8px 2px 6px; border-radius: 999px; margin-bottom: 2mm; }
.pl__chip-dot { width: 8px; height: 8px; border-radius: 50%; }
.pl__name { font-family: var(--font-display); font-size: 16pt; font-weight: 600; line-height: 1.08; color: var(--ink); letter-spacing: -0.01em; margin: 0 0 1.5mm; font-variation-settings: 'opsz' 60, 'SOFT' 2; }
.pl__addr { font-size: 9.5pt; color: var(--ink-soft); margin: 0; }
.pl__flags { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex: 0 0 auto; }
.pl__flag { font-size: 7.5pt; font-weight: 600; padding: 2px 7px; border-radius: 999px; white-space: nowrap; letter-spacing: 0.02em; }
.pl__flag--verify { background: var(--status-verify-tint); color: var(--status-verify-ink); border: 0.5pt solid var(--status-verify); }
.pl__flag--review { background: var(--banner-review-tint); color: var(--banner-review-ink); border: 0.5pt solid var(--banner-review); }
.pl__flag--todef { background: var(--status-todefine-tint); color: var(--status-todefine-ink); border: 0.5pt solid var(--border-strong); font-style: italic; }

.pl__body { display: grid; grid-template-columns: 1.15fr 1fr; gap: 5mm 8mm; }
.pl__col { display: flex; flex-direction: column; gap: 3mm; }
.pl__field { display: flex; flex-direction: column; gap: 0.5mm; }
.pl__field-lab { font-size: 7.5pt; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); font-weight: 600; }
.pl__field-val { font-size: 10pt; color: var(--ink); line-height: 1.4; }
.pl__field-val .native { color: var(--ink-soft); }
.pl__field-val .todef { color: var(--status-todefine-ink); font-style: italic; }

.pl__orari { list-style: none; margin: 0; padding: 0; }
.pl__orari-row { display: flex; align-items: baseline; gap: 6px; font-size: 10pt; padding: 1mm 0; }
.pl__orari-day { color: var(--ink); min-width: 22mm; }
.pl__orari-dots { flex: 1; border-bottom: 0.5pt dotted var(--border-strong); transform: translateY(-2px); }
.pl__orari-time { font-family: var(--font-display); font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.pl__orari-time sup { color: var(--status-verify-ink); font-size: 7pt; }
.pl__orari-note { font-size: 8.5pt; color: var(--ink-mute); font-style: italic; flex-basis: 100%; padding-left: 0; }

.pl__story { font-size: 10pt; line-height: 1.5; color: var(--ink); margin: 4mm 0 0; grid-column: 1 / -1; text-wrap: pretty; }
.pl__story::first-letter { float: left; font-family: var(--font-display); font-size: 2.6em; line-height: 0.78; font-weight: 600; color: var(--marian); padding: 2px 7px 0 0; font-variation-settings: 'opsz' 144, 'WONK' 1; }

.review-note { display: flex; align-items: baseline; gap: 6px; background: var(--banner-review-tint); border-left: 2pt solid var(--banner-review); padding: 2mm 3mm; margin: 3mm 0 0; font-size: 8.5pt; color: var(--banner-review-ink); border-radius: 0 4px 4px 0; grid-column: 1/-1; }

/* ---------------------------------------------------------------------------
   STAMPA
   --------------------------------------------------------------------------- */
@media print {
  .print-toolbar { display: none; }
  body { background: white; }
  .pages { padding: 0; gap: 0; }
  .page { box-shadow: none; margin: 0; width: 210mm; min-height: 297mm; page-break-after: always; }
  .page:last-child { page-break-after: auto; }
}

/* ---------------------------------------------------------------------------
   Selettore lingua nella toolbar (solo schermo)
   --------------------------------------------------------------------------- */
.print-toolbar__lang { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-on-dark-soft); margin-right: 6px; }
.print-toolbar__lang svg { width: 15px; height: 15px; }
.print-toolbar__lang select {
  appearance: none; -webkit-appearance: none;
  background-color: oklch(1 0 0 / 0.08); color: var(--ink-on-dark);
  border: 1px solid oklch(1 0 0 / 0.22); border-radius: 999px;
  padding: 7px 28px 7px 12px; font-family: var(--font-body); font-size: 0.85rem; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%23e8e2d6' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
}
.print-toolbar__lang option { color: var(--ink); background: var(--surface); }

/* La pagina di stampa parte dallo sfondo "carta affossata" anche a video. */
body.cap-print { margin: 0; }

/* Credit Ufficio Migrantes in copertina */
.cover__credit {
  margin-top: 8mm; font-family: var(--font-display); font-style: italic;
  font-size: 11pt; color: var(--gold); font-weight: 300; max-width: 120mm;
}
