/* ==========================================
   Event Mini-site — Document d'impression
   ==========================================
   Ce fichier produit un vrai document PDF/papier,
   pas une copie de l'écran. Typographie serif,
   en-tête formel, QR code, carte, pied de page.
   ========================================== */

/* ── Page A4 ── */
@page {
    size: A4 portrait;
    margin: 1.8cm 2cm 2.2cm 2cm;
}

@page :first {
    margin-top: 0.5cm;
}

/* ── Reset impression ── */
*,
*::before,
*::after {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
}

html {
    font-size: 10.5pt;
}

body {
    font-family: "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
    font-size: 1rem;
    line-height: 1.65;
    color: #1a1a1a;
    background: #fff;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* ==========================================
   MASQUER : tout le chrome UI
   ========================================== */

/* Header complet (barre retour + banner + nav) */
.minisite-header {
    display: none !important;
}

/* TOC latérale */
.minisite-toc-slot {
    display: none !important;
}

/* Footer site */
.c-footer {
    display: none !important;
}

/* Éléments interactifs */
.back-to-top,
.feedback-widget,
.minisite-lightbox,
.minisite-quicknav,
.btn,
.btn--primary {
    display: none !important;
}

/* Le titre de section H1 est remplacé par l'en-tête document */
.minisite-section__title {
    display: none !important;
}

/* ==========================================
   AFFICHER : éléments print-only (JS)
   ========================================== */

.print-doc-header,
.print-doc-footer,
.print-map-static {
    display: block !important;
}

/* Note : ces éléments sont masqués à l'écran via event-minisite.css */

/* ==========================================
   CONTENEURS : layout pleine largeur
   ========================================== */

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

.minisite-content {
    min-height: auto !important;
}

.minisite-with-toc {
    display: block !important;
}

.minisite-section {
    padding: 0 !important;
    border: none !important;
}

.minisite-section + .minisite-section {
    border: none !important;
}

/* ==========================================
   EN-TÊTE DOCUMENT (généré par JS)
   ========================================== */

.print-doc-header {
    margin-bottom: 0.6cm;
}

.print-doc-header__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom: 0.3cm;
    margin-bottom: 0.4cm;
}

.print-doc-header__brand {
    display: flex;
    align-items: center;
    gap: 0.4cm;
}

.print-doc-header__logo {
    height: 1.5cm;
    width: auto;
    object-fit: contain;
}

.print-doc-header__org {
    font-size: 12pt;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #344b8d;
}

.print-doc-header__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.05cm;
    font-size: 9pt;
    color: #555;
}

.print-doc-header__date {
    font-weight: 600;
}

.print-doc-header__title {
    font-size: 20pt;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 0.15cm;
    line-height: 1.2;
}

.print-doc-header__subtitle {
    font-size: 11pt;
    color: #555;
    margin: 0 0 0.3cm;
    font-style: italic;
}

.print-doc-header__rule {
    border: none;
    border-top: 2.5pt solid #344b8d;
    margin: 0;
}

/* ==========================================
   CARDS INFOS PRATIQUES
   ========================================== */

.minisite-info-card {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 0 0.35cm !important;
    margin-bottom: 0.45cm !important;
    page-break-inside: avoid;
}

/* Séparateur entre cards */
.minisite-info-card + .minisite-info-card {
    border-top: 0.5pt solid #ccc !important;
    padding-top: 0.35cm !important;
}

.minisite-info-card:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* ── Titre de card ── */
.minisite-info-card__title {
    font-family: "Palatino Linotype", Palatino, Georgia, serif;
    font-size: 12pt;
    font-weight: 700;
    color: #344b8d;
    margin: 0 0 0.2cm;
    display: flex;
    align-items: center;
    gap: 0.25cm;
    page-break-after: avoid;
}

/* Icône ronde en print : petit cercle navy */
.minisite-info-card__icon {
    width: 0.55cm !important;
    height: 0.55cm !important;
    min-width: 0.55cm !important;
    border-radius: 50%;
    background: #344b8d !important;
    color: #fff !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.minisite-info-card__icon svg {
    width: 0.3cm !important;
    height: 0.3cm !important;
}

/* SVGs directement dans le titre (sans .minisite-info-card__icon) : cacher */
.minisite-info-card__title > svg {
    display: none !important;
}

/* ── Contenu de card ── */
.minisite-info-card__content {
    font-size: 10pt;
    line-height: 1.6;
    color: #1a1a1a;
}

.minisite-info-card__content p {
    margin: 0 0 0.15cm;
    orphans: 3;
    widows: 3;
}

.minisite-info-card__content strong {
    font-weight: 700;
}

/* ==========================================
   LIEU : texte + carte
   ========================================== */

.minisite-lieu-layout {
    display: block !important;
}

.minisite-lieu-layout--with-map {
    display: grid !important;
    grid-template-columns: 2fr 3fr !important;
    gap: 0.4cm !important;
    align-items: start;
}

/* Carte Leaflet dynamique : tenter l'affichage */
.minisite-map {
    display: block !important;
    height: 5cm !important;
    min-height: 5cm !important;
    max-height: 5cm !important;
    border: 0.5pt solid #bbb !important;
    border-radius: 2pt !important;
    overflow: hidden !important;
    background: #f0f1f3 !important;
    page-break-inside: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Forcer les tuiles à s'imprimer */
.minisite-map .leaflet-tile-pane {
    filter: grayscale(1) contrast(1.1) !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.minisite-map .leaflet-tile-pane img {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Contrôles Leaflet : masquer en print */
.minisite-map .leaflet-control-container {
    display: none !important;
}

/* Attribution Leaflet : discret */
.minisite-map .leaflet-control-attribution {
    display: none !important;
}

/* Carte statique fallback (texte adresse + GPS) */
.print-map-static {
    border: 0.5pt solid #ccc;
    border-radius: 2pt;
    padding: 0.3cm;
    background: #f8f9fa !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    page-break-inside: avoid;
    margin-top: 0.2cm;
}

.print-map-static__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1cm;
    text-align: center;
    font-size: 9.5pt;
    color: #333;
}

.print-map-static__icon {
    color: #344b8d;
    margin-bottom: 0.1cm;
}

.print-map-static__coords {
    font-size: 8pt;
    color: #888;
    font-family: "Courier New", monospace;
}

/* ==========================================
   LIENS : afficher les URL
   ========================================== */

a[href] {
    color: #1a1a1a !important;
    text-decoration: none !important;
}

.minisite-info-card__content a[href]::after,
.minisite-infos-content a[href]::after {
    content: " [" attr(href) "]";
    font-size: 7.5pt;
    font-weight: 400;
    color: #888;
    word-break: break-all;
}

/* Ne pas afficher les URL des ancres internes ou JS */
a[href^="#"]::after,
a[href^="javascript"]::after,
a[href^="mailto"]::after,
a[href^="tel"]::after {
    content: "" !important;
}

/* ==========================================
   DOCUMENTS
   ========================================== */

.minisite-documents {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.minisite-documents li {
    padding: 0.1cm 0;
    border-bottom: 0.25pt solid #e5e5e5;
    font-size: 9.5pt;
    display: flex;
    align-items: center;
    gap: 0.2cm;
}

.minisite-documents li:last-child {
    border-bottom: none;
}

.minisite-documents li svg {
    width: 0.3cm;
    height: 0.3cm;
    color: #344b8d;
}

.minisite-documents a {
    color: #1a1a1a !important;
    text-decoration: none !important;
    font-weight: 500;
}

.minisite-documents a::after {
    content: " [" attr(href) "]";
    font-size: 7.5pt;
    font-weight: 400;
    color: #888;
    word-break: break-all;
}

/* ==========================================
   TABLEAU TARIFS
   ========================================== */

.minisite-pricing-table-wrap {
    overflow: visible !important;
}

.minisite-pricing-table {
    font-size: 8.5pt;
    border-collapse: collapse;
    width: 100%;
    page-break-inside: avoid;
}

.minisite-pricing-table th,
.minisite-pricing-table td {
    border: 0.5pt solid #bbb;
    padding: 0.12cm 0.2cm;
}

.minisite-pricing-table thead {
    background: #eef0f4 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.minisite-pricing-table th {
    font-size: 8pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #344b8d;
}

.minisite-pricing-table tbody tr:hover {
    background: none !important;
}

/* ==========================================
   INTERVENANTS
   ========================================== */

.minisite-speakers {
    display: block !important;
    column-count: 2;
    column-gap: 0.5cm;
}

.minisite-speaker {
    background: none !important;
    border: 0.5pt solid #ddd;
    border-radius: 0 !important;
    padding: 0.2cm 0.25cm;
    margin-bottom: 0.3cm;
    page-break-inside: avoid;
    break-inside: avoid;
}

.minisite-speaker__avatar {
    display: none;
}

.minisite-speaker__name {
    font-size: 9.5pt;
    font-weight: 700;
}

.minisite-speaker__role {
    font-size: 8.5pt;
    font-weight: 600;
    color: #344b8d;
}

.minisite-speaker__bio {
    font-size: 8.5pt;
    color: #444;
}

.minisite-speaker__sessions li {
    font-size: 8pt;
}

/* ==========================================
   PARTENAIRES
   ========================================== */

.minisite-partners {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.3cm;
}

.minisite-partner {
    background: none !important;
    border: 0.5pt solid #ddd;
    border-radius: 0 !important;
    padding: 0.2cm;
    page-break-inside: avoid;
}

.minisite-partner__logo {
    max-width: 3.5cm;
    max-height: 2.5cm;
    filter: grayscale(100%);
}

/* ==========================================
   GALERIE : grille compacte en N&B
   ========================================== */

.minisite-gallery__grid {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0.15cm !important;
}

.minisite-gallery__item img {
    filter: grayscale(40%);
}

.minisite-gallery__count {
    display: none;
}

/* ==========================================
   REPLAYS
   ========================================== */

.replay-hero {
    background: none !important;
    color: #1a1a1a !important;
    min-height: auto !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.replay-hero__bg,
.replay-hero__overlay {
    display: none !important;
}

.replay-hero__title {
    font-size: 15pt;
    color: #1a1a2e;
}

.replay-hero__badge {
    background: none !important;
    border: 0.5pt solid #999;
    color: #333;
    backdrop-filter: none !important;
}

.replay-grid {
    display: block !important;
    column-count: 2;
    column-gap: 0.5cm;
}

.replay-card {
    break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom: 0.3cm;
    border: 0.5pt solid #ddd;
    border-radius: 0 !important;
}

.replay-card__thumb {
    display: none;
}

.replay-card__title {
    font-size: 9.5pt;
}

.replay-card__title a {
    color: #1a1a1a !important;
    text-decoration: none !important;
}

.replay-card__title a::after {
    content: "" !important;
}

.replay-card__tag {
    background: none !important;
    border: 0.5pt solid #bbb;
    color: #555;
    font-size: 7.5pt;
}

/* ==========================================
   FIGURES (bilan)
   ========================================== */

.minisite-figures {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.4cm;
    justify-content: center;
}

.minisite-figures__item {
    background: #f5f6f8 !important;
    border: 0.5pt solid #ddd;
    border-radius: 0 !important;
    padding: 0.2cm 0.4cm;
    min-width: 3cm;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.minisite-figures__value {
    font-size: 16pt;
    font-weight: 800;
    color: #344b8d;
}

.minisite-figures__label {
    font-size: 8pt;
    color: #555;
}

/* ==========================================
   PIED DE PAGE DOCUMENT (généré par JS)
   ========================================== */

.print-doc-footer {
    display: flex !important;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 0.8cm;
    padding-top: 0.25cm;
    border-top: 1.5pt solid #344b8d;
    page-break-inside: avoid;
}

.print-doc-footer__info {
    flex: 1;
    min-width: 0;
}

.print-doc-footer__url {
    font-family: "Courier New", Courier, monospace;
    font-size: 7.5pt;
    color: #555;
    margin: 0 0 0.05cm;
    word-break: break-all;
}

.print-doc-footer__notice {
    font-size: 7.5pt;
    color: #999;
    margin: 0;
    font-style: italic;
}

.print-doc-footer__qr {
    flex-shrink: 0;
    width: 2cm;
    height: 2cm;
}

.print-doc-footer__qr img,
.print-doc-footer__qr canvas {
    width: 2cm !important;
    height: 2cm !important;
}

/* ==========================================
   ORPHANS / WIDOWS / PAGE BREAKS
   ========================================== */

h1, h2, h3, h4 {
    page-break-after: avoid;
    orphans: 3;
    widows: 3;
}

p, li, dt, dd {
    orphans: 3;
    widows: 3;
}

img {
    page-break-inside: avoid;
}

table {
    page-break-inside: avoid;
}
