/* =========================================================
   PRINT — Carta dei Servizi (A4, sobrio, ad alta leggibilità)
   ========================================================= */

@page {
  size: A4;
  /* margini calibrati: l'SVG di sfondo (assets/print-page.svg) contiene
     SOLO la filigrana RISERVATO. Il logo non e piu nell'SVG: ora lo
     mette il browser nel footer di ogni pagina via @bottom-right
     margin box (CSS Paged Media), guarantito su ogni pagina. */
  margin: 18mm 15mm 20mm 15mm;

  @bottom-right {
    /* SVG wrapper con dimensioni fisse 12mm: Chrome ignora il margin
       box quando 'content' e solo whitespace, ma rispetta sempre
       content: url(...). L'SVG ha logo-small.png embedded base64
       cosi non dipende da path relativi a runtime. */
    content: url("assets/logo-footer.svg");
    margin-right: 2mm;
    margin-bottom: 4mm;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

@media print {

  :root {
    --print-ink: #1a1a1a;
    --print-ink-soft: #333;
    --print-ink-muted: #555;
    --print-line: #d4d4d8;
    --print-accent: #0b1f4d;
    --print-gold: #b8860b;
  }

  /* ---------- PRINT OVERLAY (logo + watermark su ogni pagina via body bg) ---------- */
  /* L'SVG print-page.svg e dimensionato 210x297mm e contiene watermark
     RISERVATO obliquo + logo aquila in alto a destra. Usato come
     background del body con repeat-y, viene tassellato su ogni pagina A4
     in modo affidabile (a differenza di position: fixed che Chrome
     ripete in modo incoerente su PDF multi-pagina). */
  .print-overlay { display: none !important; }

  * {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }

  html, body {
    background: #fff !important;
    color: var(--print-ink) !important;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 10pt;
    line-height: 1.45;
  }

  body {
    background-image: url("assets/print-page.svg") !important;
    background-repeat: repeat-y !important;
    /* Tile = area utile A4 esatta (180x259mm dopo i margini @page).
       Cosi watermark e logo non vengono scalati e restano nella stessa
       posizione assoluta su ogni pagina. */
    background-size: 100% 259mm !important;
    background-position: left top !important;
    background-attachment: scroll !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ---------- HIDE ---------- */

  .site-header,
  .site-footer,
  .scroll-hint,
  .hero-bg,
  .hero-cta,
  .hero-stats,
  .nav-toggle,
  .theme-toggle,
  .print-cta,
  .skip-link,
  .section-areas-index,
  .update-card,
  .contact-card .btn,
  .back-to-index,
  .card-led,
  [data-draft]::before {
    display: none !important;
  }

  /* ---------- LINKS ---------- */

  a {
    color: var(--print-ink) !important;
    text-decoration: none !important;
  }
  a[href^="http"]::after,
  a[href^="mailto:"]::after {
    content: " (" attr(href) ")";
    font-size: 8.5pt;
    color: var(--print-ink-muted) !important;
    word-break: break-all;
  }
  a[href^="#"]::after { content: ""; }

  /* ---------- COVER (hero) ---------- */

  .hero {
    padding: 0 !important;
    margin: 0 !important;
    page-break-after: always;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    border-top: 6pt solid var(--print-accent);
    position: relative;
  }
  .hero::before {
    content: "Confimpresa Italia Veneto";
    position: absolute;
    top: 22mm; left: 0; right: 0;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: 12pt;
    font-weight: 600;
    color: var(--print-accent) !important;
    letter-spacing: .15em;
    text-transform: uppercase;
  }
  .hero::after {
    content: "Documento prototipale · alcuni contenuti in fase di consolidamento";
    position: absolute;
    bottom: 22mm; left: 0; right: 0;
    font-size: 8.5pt;
    color: var(--print-ink-muted) !important;
    letter-spacing: .03em;
  }

  .hero-inner { max-width: 140mm; }

  .eyebrow {
    border: 1pt solid var(--print-line) !important;
    background: transparent !important;
    color: var(--print-ink-muted) !important;
    margin-bottom: 18mm;
    padding: 4pt 10pt;
    font-size: 8pt;
  }
  .eyebrow .dot { background: var(--print-gold) !important; box-shadow: none !important; }

  .hero-title {
    font-size: 28pt !important;
    line-height: 1.15;
    color: var(--print-ink) !important;
    margin-bottom: 10mm;
  }
  .hero-title .grad {
    background: none !important;
    color: var(--print-accent) !important;
    -webkit-text-fill-color: var(--print-accent) !important;
  }

  .hero-lead {
    font-size: 11pt !important;
    color: var(--print-ink-soft) !important;
    max-width: 130mm;
  }

  /* ---------- SECTIONS ---------- */

  main { display: block; }

  .section {
    padding: 8mm 0 !important;
    margin: 0 !important;
    page-break-inside: auto;
  }

  .container { padding: 0 !important; max-width: 100% !important; }

  .section-head {
    text-align: left !important;
    margin-bottom: 6mm;
    border-bottom: .5pt solid var(--print-line);
    padding-bottom: 3mm;
    page-break-after: avoid;
  }

  .section-tag {
    background: transparent !important;
    color: var(--print-accent) !important;
    border: .5pt solid var(--print-accent) !important;
    padding: 2pt 6pt;
    font-size: 7pt;
    margin-bottom: 2mm;
  }

  h2 {
    font-size: 18pt !important;
    color: var(--print-ink) !important;
    margin: 1mm 0 0 !important;
    page-break-after: avoid;
  }

  .section-sub {
    font-size: 9pt;
    color: var(--print-ink-muted) !important;
    max-width: 100%;
    margin-top: 2mm;
  }

  /* ---------- INTRO ---------- */

  .section-intro .intro-grid {
    display: block !important;
    column-count: 2;
    column-gap: 8mm;
    column-rule: .5pt solid var(--print-line);
  }
  .section-intro .lead {
    font-size: 11pt !important;
    color: var(--print-ink) !important;
    break-inside: avoid;
    margin-bottom: 4mm;
  }
  .section-intro p { color: var(--print-ink-soft) !important; font-size: 10pt; }

  /* ---------- SERVICES ---------- */

  .services-grid {
    display: block !important;
  }

  .service-card {
    background: transparent !important;
    border: none !important;
    border-top: .5pt solid var(--print-line) !important;
    border-radius: 0 !important;
    padding: 5mm 0 !important;
    margin: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .service-card::before,
  .service-card::after { display: none !important; }

  .service-card-wide { grid-column: auto !important; }

  .card-head {
    display: flex !important;
    flex-wrap: wrap;
    gap: 3mm;
    align-items: baseline;
    border-bottom: none !important;
    padding-bottom: 1mm !important;
    margin-bottom: 3mm !important;
  }
  .card-num {
    background: var(--print-accent) !important;
    color: #fff !important;
    padding: 1pt 5pt !important;
    border-radius: 2pt !important;
    font-size: 9pt !important;
    font-weight: 700;
    min-width: 8mm;
    text-align: center;
  }
  .card-head h3 {
    font-size: 13pt !important;
    color: var(--print-ink) !important;
    margin: 0 !important;
    flex: 1;
  }

  .referent {
    background: transparent !important;
    border: .5pt dashed var(--print-line) !important;
    color: var(--print-ink-muted) !important;
    font-size: 7.5pt !important;
    padding: 1pt 5pt !important;
  }
  .referent[data-tentative]::before { content: ""; }

  .card-text { font-size: 9.5pt; color: var(--print-ink-soft) !important; margin-bottom: 2mm; }

  .card-list {
    display: block !important;
    columns: 2;
    column-gap: 6mm;
  }
  .card-list li {
    padding-left: 4mm !important;
    margin-bottom: 1.2mm;
    font-size: 9pt !important;
    color: var(--print-ink-soft) !important;
    line-height: 1.4;
    break-inside: avoid;
  }
  .card-list li::before {
    background: var(--print-accent) !important;
    width: 2.5mm !important;
    height: .5pt !important;
    top: 1.6mm !important;
  }
  .card-list li.placeholder {
    color: var(--print-ink-muted) !important;
  }
  .card-list li.placeholder::before {
    background: var(--print-line) !important;
  }

  .card-sub h4 {
    font-size: 8pt !important;
    color: var(--print-accent) !important;
    margin: 3mm 0 1.5mm !important;
    text-transform: uppercase;
    letter-spacing: .08em;
  }
  .card-sub > h4:first-of-type { margin-top: 0 !important; }

  .card-note {
    font-size: 8.5pt;
    background: transparent !important;
    border-left: 1pt solid var(--print-accent) !important;
    padding: 2mm 0 2mm 3mm !important;
    margin-top: 3mm;
    color: var(--print-ink-soft) !important;
    border-radius: 0 !important;
  }

  /* ---------- PARTNERS ---------- */

  /* Forza la sezione "Convenzioni & partnership" su pagina nuova:
     altrimenti il titolo orfano resta in coda alla pagina precedente
     mentre la griglia partner finisce in quella successiva. */
  .section-partners { page-break-before: always; }

  .partners-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 2mm !important;
  }
  .partners-grid li {
    border: .5pt solid var(--print-line) !important;
    padding: 2.5mm 3mm !important;
    border-radius: 2pt !important;
    font-size: 9pt;
    color: var(--print-ink-soft) !important;
    background: transparent !important;
    page-break-inside: avoid;
    display: flex !important;
    align-items: center !important;
    gap: 2.5mm !important;
  }
  .p-icon {
    background: transparent !important;
    width: auto !important; height: auto !important;
    font-size: 11pt !important;
  }
  .p-text {
    flex: 1 1 auto !important;
    line-height: 1.3 !important;
  }
  .p-tag {
    flex-shrink: 0 !important;
    font-size: 7pt !important;
    font-weight: 700 !important;
    letter-spacing: .03em !important;
    text-transform: uppercase !important;
    padding: 1mm 2mm !important;
    border: .5pt solid var(--print-accent) !important;
    border-radius: 1pt !important;
    color: var(--print-accent) !important;
    background: transparent !important;
    white-space: nowrap !important;
    line-height: 1 !important;
  }
  .p-tag-free,
  .p-tag-gift { border-color: var(--print-ink) !important; color: var(--print-ink) !important; }

  /* ---------- CONTACT ---------- */

  .section-contact { page-break-before: always; }
  .contact-grid { display: block !important; }

  .contact-card {
    background: transparent !important;
    color: var(--print-ink) !important;
    border: .5pt solid var(--print-line) !important;
    padding: 5mm !important;
    margin-top: 5mm;
    aspect-ratio: auto !important;
    max-width: 100% !important;
    display: block !important;
    box-shadow: none !important;
  }
  .contact-card::before,
  .contact-card::after { display: none !important; }
  .contact-card h3 { color: var(--print-ink) !important; font-size: 12pt !important; }
  .contact-card p { color: var(--print-ink-soft) !important; font-size: 9.5pt !important; }
  .contact-card .card-brand {
    border-bottom: .5pt solid var(--print-line) !important;
    padding-bottom: 2mm !important;
    margin-bottom: 3mm !important;
  }
  .contact-card .card-brand img {
    width: 12mm !important;
    height: 12mm !important;
    box-shadow: none !important;
    border: .5pt solid var(--print-line) !important;
  }
  .contact-card .card-brand-label { color: var(--print-accent) !important; }
  .contact-card .card-action {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 6mm;
    margin-top: 4mm;
  }
  .card-qr {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 1mm;
  }
  .card-qr img {
    width: 28mm !important;
    height: 28mm !important;
    background: #fff !important;
    border: .5pt solid var(--print-line) !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  .card-qr span {
    font-size: 7pt !important;
    color: var(--print-ink-muted) !important;
    letter-spacing: .12em;
  }

  .contact-list li {
    border-bottom: .5pt solid var(--print-line) !important;
    padding: 2mm 0 !important;
  }
  .contact-list a {
    font-size: 10pt !important;
    color: var(--print-accent) !important;
  }

  /* ---------- PAGE BREAKS ---------- */

  h2, h3 { page-break-after: avoid; }
  .service-card, .partners-grid li { page-break-inside: avoid; }

  /* Ricerca: assente nel PDF (il filtro si azzera via beforeprint in app.js) */
  .service-search { display: none !important; }
}
