@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&family=Playfair+Display:ital,wght@0,600;0,800;0,900;1,400;1,700&family=Lora:ital,wght@0,400;0,600;0,700;1,400;1,600&family=EB+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Oswald:wght@600;700&family=Alex+Brush&family=Special+Elite&family=Inter:wght@400;600;700;800&family=Cinzel:wght@600;700;900&family=UnifrakturMaguntia&family=Poiret+One&family=Bodoni+Moda:ital,opsz,wght@0,6..96,700;0,6..96,900;1,6..96,400&family=Cormorant+Garamond:ital,wght@0,500;0,700;1,400;1,600&family=Righteous&family=Courier+Prime:ital,wght@0,400;0,700;1,400&display=swap');

/* ==========================================================================
   CONFIGURATION STRICTE DU FORMAT IMPRESSION A4
   ========================================================================== */

@page {
    size: A4 portrait;
    margin: 0; /* Tout le padding doit être géré dans la feuille */
}

*, *::before, *::after {
    box-sizing: border-box;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
}


/* ==========================================================================
   SYSTÈME DE THÈMES VISUELS HISTORIQUES & CULTURELS (VARIABLES CSS)
   ========================================================================== */

/* THÈME 1 : BELLE ÉPOQUE (France 1900 - Parchemin clair, en-tête gothique/calligraphique, lettrines ornées) */
.theme-belle_epoque,
.theme-belle-epoque {
    --bg-paper: #f7f1e5;
    --bg-accent: #ede3ce;
    --ink-main: #201a14;
    --ink-secondary: #483e32;
    --border-color: #382e22;
    --border-double: 3.5px double #382e22;
    --title-font: "Cinzel Decorative", "Playfair Display", Georgia, serif;
    --headline-font: "Playfair Display", "Times New Roman", serif;
    --body-font: "EB Garamond", "Times New Roman", Georgia, serif;
    --stamp-color: #8c2d19;
    --stamp-border: #8c2d19;
}

/* THÈME 2 : LONDRES VICTORIEN (UK Fin XIXe - Typographie austère et chic, doubles bordures fines, armoiries gravées) */
.theme-victorian_uk,
.theme-victorian-uk {
    --bg-paper: #fafaf7;
    --bg-accent: #ecece6;
    --ink-main: #141414;
    --ink-secondary: #383838;
    --border-color: #222222;
    --border-double: 2.5px double #1a1a1a;
    --title-font: "Cinzel", "Times New Roman", serif;
    --headline-font: "Playfair Display", "Georgia", serif;
    --body-font: "Lora", "Times New Roman", serif;
    --stamp-color: #1a1a1a;
    --stamp-border: #1a1a1a;
}

/* THÈME 3 : US BROADSHEET (Gazette américaine 1920-1930 / Prohibition - Titres géants en capitales ultra-grasses, colonnes denses) */
.theme-us_broadsheet,
.theme-us-broadsheet,
.theme-press_1950,
.theme-press-1950,
.theme-tabloid_satirique,
.theme-tabloid-satirique {
    --bg-paper: #f4f3ef;
    --bg-accent: #e4e3dc;
    --ink-main: #0a0a0a;
    --ink-secondary: #282828;
    --border-color: #111111;
    --border-double: 3.5px solid #000000;
    --title-font: "Playfair Display", "Times New Roman", serif;
    --headline-font: "Oswald", "Arial Black", sans-serif;
    --body-font: "Lora", Georgia, serif;
    --stamp-color: #8f1d1d;
    --stamp-border: #8f1d1d;
}

/* THÈME 4 : WARTIME RESISTANCE (Années 40 / Journal clandestin - Aspect papier kraft, typographie machine à écrire, faux tampons) */
.theme-wartime_resistance,
.theme-wartime-resistance {
    --bg-paper: #e9e1cf;
    --bg-accent: #dccfb8;
    --ink-main: #1e1b18;
    --ink-secondary: #3d3730;
    --border-color: #3e3830;
    --border-double: 2.5px dashed #3e3830;
    --title-font: "Special Elite", "Courier New", monospace;
    --headline-font: "Special Elite", "Courier New", monospace;
    --body-font: "Special Elite", "Courier New", monospace;
    --stamp-color: #b01b1b;
    --stamp-border: #b01b1b;
}

/* THÈME 5 : MODERN EDITORIAL (Presse contemporaine / Magazine chic - Minimaliste épuré, typographie sans-serif, mise en page aérée) */
.theme-modern_editorial,
.theme-modern-editorial,
.theme-modern {
    --bg-paper: #ffffff;
    --bg-accent: #f5f5f7;
    --ink-main: #1d1d1f;
    --ink-secondary: #515154;
    --border-color: #d2d2d7;
    --border-double: 2px solid #1d1d1f;
    --title-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --headline-font: "Inter", -apple-system, sans-serif;
    --body-font: "Inter", -apple-system, sans-serif;
    --stamp-color: #0071e3;
    --stamp-border: #0071e3;
}

/* THÈME 6 : ORIENTAL VINTAGE (Chine Républicaine / Shanghai 1930 - Motifs art-déco chinois, filets d'époque, rouge laque) */
.theme-oriental_vintage,
.theme-oriental-vintage {
    --bg-paper: #fbf5e7;
    --bg-accent: #f2e4c4;
    --ink-main: #1c120c;
    --ink-secondary: #4a2f1f;
    --border-color: #6d1b15;
    --border-double: 3.5px double #781c15;
    --title-font: "Cinzel Decorative", "Playfair Display", serif;
    --headline-font: "Playfair Display", "Times New Roman", serif;
    --body-font: "EB Garamond", Georgia, serif;
    --stamp-color: #a61a12;
    --stamp-border: #a61a12;
}

/* THÈME 7 : COLONIAL AFRO RETRO (Gazette d'époque panafricaine / Années 50-60 - Teintes chaudes sable/ocre, motifs géométriques, titraille forte) */
.theme-colonial_afro_retro,
.theme-colonial-afro-retro {
    --bg-paper: #f8f0e1;
    --bg-accent: #ebd8bd;
    --ink-main: #241407;
    --ink-secondary: #52341b;
    --border-color: #5c3514;
    --border-double: 3.5px double #733f16;
    --title-font: "Playfair Display", "Cinzel", serif;
    --headline-font: "Oswald", "Playfair Display", sans-serif;
    --body-font: "EB Garamond", Georgia, serif;
    --stamp-color: #9e360f;
    --stamp-border: #9e360f;
}

/* ==========================================================================
   STYLES CADEAUX PERSONNALISÉS (LES PLUS PLÉBISCITÉS DU MARCHÉ)
   ========================================================================== */

/* THÈME 8 : GAZETTE DU SORCIER (Magie & Enluminures - Typographies runiques, parchemins sombres, sceaux pourpres) */
.theme-gazette_sorcier,
.theme-gazette-sorcier {
    --bg-paper: #e5dac6;
    --bg-accent: #d2c2a4;
    --ink-main: #181410;
    --ink-secondary: #3d3224;
    --border-color: #3b2d1c;
    --border-double: 4px double #2b1f12;
    --title-font: "UnifrakturMaguntia", "Cinzel Decorative", Georgia, serif;
    --headline-font: "Cinzel Decorative", "Playfair Display", serif;
    --body-font: "EB Garamond", "Times New Roman", serif;
    --stamp-color: #63172e;
    --stamp-border: #63172e;
}

/* THÈME 9 : GATSBY ART DÉCO (Années Folles 1920 - Cadres géométriques Art Déco, contrastes or & noir, typographie jazz) */
.theme-gatsby_art_deco,
.theme-gatsby-art-deco {
    --bg-paper: #faf8f2;
    --bg-accent: #f0ebd8;
    --ink-main: #111111;
    --ink-secondary: #332d24;
    --border-color: #997a38;
    --border-double: 3.5px double #997a38;
    --title-font: "Poiret One", "Cinzel", "Playfair Display", serif;
    --headline-font: "Playfair Display", "Poiret One", serif;
    --body-font: "Lora", "Times New Roman", serif;
    --stamp-color: #8c6e26;
    --stamp-border: #8c6e26;
}

/* THÈME 10 : MAGAZINE VOGUE (Couverture de Mode Minimaliste - Photo pleine page, titraille haute couture épurée) */
.theme-magazine_vogue,
.theme-magazine-vogue {
    --bg-paper: #ffffff;
    --bg-accent: #f7f7f8;
    --ink-main: #000000;
    --ink-secondary: #333333;
    --border-color: #000000;
    --border-double: 1.5px solid #000000;
    --title-font: "Bodoni Moda", "Playfair Display", serif;
    --headline-font: "Bodoni Moda", "Inter", serif;
    --body-font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
    --stamp-color: #e60028;
    --stamp-border: #e60028;
}

/* THÈME 11 : CHAMPÊTRE BOTANIQUE (Mariage Bucolique - Gravures de feuillages & oliviers, teintes lin, bordures végétales) */
.theme-champetre_botanique,
.theme-champetre-botanique {
    --bg-paper: #faf7f0;
    --bg-accent: #ede9dc;
    --ink-main: #2b2721;
    --ink-secondary: #4a4d3f;
    --border-color: #616652;
    --border-double: 2.5px double #616652;
    --title-font: "Cormorant Garamond", "Cinzel", Georgia, serif;
    --headline-font: "Cormorant Garamond", "Playfair Display", serif;
    --body-font: "Cormorant Garamond", "EB Garamond", serif;
    --stamp-color: #4f573c;
    --stamp-border: #4f573c;
}

/* THÈME 12 : RÉTRO POP 70S (Presse Musicale / Fanzine Vintage 70-80 - Titrailles épaisses et rondes, esprit festif) */
.theme-retro_pop_70s,
.theme-retro-pop-70s {
    --bg-paper: #fdfaf0;
    --bg-accent: #f5eed3;
    --ink-main: #2b1708;
    --ink-secondary: #573318;
    --border-color: #d96b27;
    --border-double: 3.5px solid #2b1708;
    --title-font: "Righteous", "Oswald", cursive;
    --headline-font: "Righteous", "Oswald", sans-serif;
    --body-font: "Lora", "Courier Prime", serif;
    --stamp-color: #d94e18;
    --stamp-border: #d94e18;
}

/* THÈME 13 : TERROIR LOCAL (Feuille de Chou de Province d'époque - Accent du terroir, ton bon vivant) */
.theme-terroir_local,
.theme-terroir-local {
    --bg-paper: #f8f3e5;
    --bg-accent: #eae0c8;
    --ink-main: #1f1a14;
    --ink-secondary: #453725;
    --border-color: #423019;
    --border-double: 3px double #423019;
    --title-font: "Playfair Display", Georgia, serif;
    --headline-font: "Courier Prime", "Playfair Display", monospace;
    --body-font: "EB Garamond", Georgia, serif;
    --stamp-color: #1e3a66;
    --stamp-border: #1e3a66;
}

/* THÈME 14 : FANZINE ROCK (Fanzine Underground - Noir et blanc très contrasté, photocopie, titraille brute) */
.theme-fanzine_rock,
.theme-fanzine-rock {
    --bg-paper: #f0f0f0;
    --bg-accent: #e2e2e2;
    --ink-main: #050505;
    --ink-secondary: #222222;
    --border-color: #000000;
    --border-double: 4.5px solid #000000;
    --title-font: "Righteous", "Oswald", sans-serif;
    --headline-font: "Oswald", "Arial Black", sans-serif;
    --body-font: "Courier Prime", "Special Elite", monospace;
    --stamp-color: #000000;
    --stamp-border: #000000;
}

/* THÈME 15 : POLAR NOIR (Dossier d'Enquête / Roman Noir 50s - Machine à écrire, dossier confidentiel, tampons) */
.theme-polar_noir,
.theme-polar-noir {
    --bg-paper: #ece3d2;
    --bg-accent: #ded2bd;
    --ink-main: #141312;
    --ink-secondary: #3b352e;
    --border-color: #2e2923;
    --border-double: 3px dashed #2e2923;
    --title-font: "Special Elite", "Courier New", monospace;
    --headline-font: "Special Elite", "Courier Prime", monospace;
    --body-font: "Courier Prime", "Special Elite", monospace;
    --stamp-color: #b01b1b;
    --stamp-border: #b01b1b;
}

/* THÈME 16 : SPORT GAZETTE (Grande Presse Sportive - Titre géant, exploits et dream team) */
.theme-sport_gazette,
.theme-sport-gazette {
    --bg-paper: #f7f5ed;
    --bg-accent: #e8e4d5;
    --ink-main: #0b1728;
    --ink-secondary: #1a3258;
    --border-color: #143360;
    --border-double: 4px solid #143360;
    --title-font: "Oswald", "Playfair Display", sans-serif;
    --headline-font: "Oswald", "Arial Black", sans-serif;
    --body-font: "Lora", "EB Garamond", serif;
    --stamp-color: #1d4ed8;
    --stamp-border: #1d4ed8;
}

/* THÈME 17 : VINTAGE TRAVELER (Aéropostale & Découvertes - Cachets postaux, visas et typographie d'expédition) */
.theme-vintage_traveler,
.theme-vintage-traveler {
    --bg-paper: #f4ecdf;
    --bg-accent: #e5dac7;
    --ink-main: #241912;
    --ink-secondary: #4a382c;
    --border-color: #593f2c;
    --border-double: 3.5px double #593f2c;
    --title-font: "Cinzel", "Playfair Display", serif;
    --headline-font: "Cinzel", "Playfair Display", serif;
    --body-font: "EB Garamond", "Times New Roman", serif;
    --stamp-color: #8c281f;
    --stamp-border: #8c281f;
}

/* ==========================================================================
   CONTENEUR PRINCIPAL DE LA GAZETTE (VERROUILLÉ STRICT SUR 1 PAGE A4)
   ========================================================================== */

.newspaper-sheet,
.gazette-sheet {
    width: 210mm;
    height: 297mm;
    max-width: 210mm;
    max-height: 297mm;
    box-sizing: border-box;
    padding: 8.5mm 11mm 7.5mm 11mm;
    margin: 0 auto;
    overflow: hidden; /* Empêche tout débordement sur une page 2 */
    background-color: var(--bg-paper, #fbf8f0);
    color: var(--ink-main);
    font-family: var(--body-font);
    font-size: 8.2pt;
    line-height: 1.32;
    border: 1.5px solid var(--border-color);
    position: relative;
    page-break-inside: avoid;
    page-break-after: avoid;
}

/* ==========================================================================
   ADAPTATION ÉCRAN (APERÇU WEB 100% RESPONSIVE DANS L'IFRAME SANS COUPURE)
   ========================================================================== */

@media screen {
    html, body {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        overflow: hidden !important;
        background-color: var(--bg-paper, #fbf8f0);
    }

    .newspaper-sheet,
    .gazette-sheet {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        box-sizing: border-box !important;
        padding: 2.8% 3.6% 2.4% 3.6% !important;
        margin: 0 auto !important;
        overflow: hidden !important;
        border: none !important;
    }

    .page-imprimatur {
        position: absolute !important;
        bottom: 2% !important;
        left: 3.6% !important;
        right: 3.6% !important;
    }

    .vintage-stamp {
        position: absolute !important;
        top: 2% !important;
        right: 3% !important;
    }
}

/* ==========================================================================
   FAUX TAMPON D'ÉPOQUE INCLINÉ (-12 DEG)
   ========================================================================== */

.vintage-stamp {
    position: absolute;
    top: 6mm;
    right: 7mm;
    transform: rotate(-12deg);
    border: 2.5px solid var(--stamp-color);
    color: var(--stamp-color);
    padding: 3px 10px;
    font-family: "Oswald", "Arial Black", sans-serif;
    font-size: 9pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    opacity: 0.88;
    background: rgba(255, 255, 255, 0.45);
    z-index: 10;
    pointer-events: none;
    box-shadow: 0 0 0 1px var(--stamp-color) inset;
}

.theme-tabloid_satirique .vintage-stamp {
    border: 3px dashed var(--stamp-color);
    background: rgba(254, 238, 235, 0.7);
}

/* ==========================================================================
   EN-TÊTE MONUMENTAL (MASTHEAD)
   ========================================================================== */

.masthead-wrapper {
    text-align: center;
    border-bottom: var(--border-double);
    padding-bottom: 2px;
    margin-bottom: 5px;
    position: relative;
}

.masthead-super-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 6.8pt;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2px;
    margin-bottom: 2px;
    color: var(--ink-secondary);
    font-weight: 600;
}

.masthead-title {
    font-family: var(--title-font);
    font-size: 33pt;
    font-weight: 900;
    letter-spacing: 2.5px;
    line-height: 0.95;
    margin: 1px 0 2px 0;
    text-transform: uppercase;
    color: var(--ink-main);
}

.masthead-motto-bar {
    font-size: 7.4pt;
    font-style: italic;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--ink-secondary);
    margin-bottom: 3px;
}

.masthead-meta-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1.5px solid var(--border-color);
    border-bottom: 1.5px solid var(--border-color);
    padding: 2.5px 6px;
    font-family: "Playfair Display", "Times New Roman", serif;
    font-size: 7.4pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    background-color: var(--bg-accent);
}

/* ==========================================================================
   BANDEAU DE MANCHETTE DE UNE
   ========================================================================== */

.headline-banner-box {
    text-align: center;
    border-bottom: 2px solid var(--border-color);
    padding: 4px 6px;
    margin-bottom: 7px;
    background: var(--bg-accent);
}

.headline-text {
    font-family: var(--headline-font);
    font-size: 13pt;
    font-weight: 900;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin: 0;
    color: var(--ink-main);
}

.newspaper-grid {
    display: table;
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

.vintage-bullets {
    list-style-type: square;
    padding-left: 13px;
    margin: 0 0 4px 0;
    font-size: 7.2pt;
    line-height: 1.24;
}

.vintage-bullets li {
    margin-bottom: 3.5px;
    text-align: justify;
}

.col-left {
    display: table-cell;
    width: 26%;
    vertical-align: top;
    padding-right: 6px;
}

.col-center {
    display: table-cell;
    width: 47%;
    vertical-align: top;
    padding: 0 7px;
    border-left: 1px solid var(--border-color);
    border-right: 1px solid var(--border-color);
}

.col-right {
    display: table-cell;
    width: 27%;
    vertical-align: top;
    padding-left: 6px;
}

/* ==========================================================================
   TYPOGRAPHIE & ARTICLES
   ========================================================================== */

.article-block {
    margin-bottom: 3px;
}

.article-title-major {
    font-family: var(--title-font);
    font-size: 11pt;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1.15;
    margin: 0 0 3px 0;
    color: var(--ink-main);
    border-bottom: 1.5px solid var(--border-color);
    padding-bottom: 2px;
}

.article-title-side {
    font-family: var(--title-font);
    font-size: 9.2pt;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1.15;
    margin: 0 0 3px 0;
    color: var(--ink-main);
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 1.5px;
}

.article-subtitle {
    font-size: 7.4pt;
    font-style: italic;
    color: var(--ink-secondary);
    margin: 0 0 3px 0;
    line-height: 1.18;
}

.article-byline {
    font-size: 6.6pt;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ink-secondary);
    margin-bottom: 4px;
    display: block;
    font-weight: 700;
}

.article-body {
    text-align: justify;
    text-justify: inter-word;
    font-size: 8.2pt;
    line-height: 1.45;
    margin: 0 0 6px 0;
    hyphens: auto;
}

/* LETTRINE GÉANTE STYLISÉE (3 LIGNES) */
.dropcap-lead {
    font-family: "Cinzel Decorative", "Playfair Display", Georgia, serif;
    font-size: 2.7em;
    line-height: 0.85;
    float: left;
    margin: 0 5px 0 0;
    padding: 1px 2px 0 0;
    color: var(--ink-main);
    font-weight: 900;
}

/* ==========================================================================
   ENCART PHOTO / GRAVURE RETRO AU CENTRE (POINT FOCAL MAJEUR AGRANDI)
   ========================================================================== */

.photo-frame,
.photo-vintage-frame,
.photo-container {
    border: 2px solid var(--border-color);
    padding: 3px;
    background-color: var(--bg-accent);
    margin: 5px 0 7px 0;
    text-align: center;
    box-sizing: border-box;
}

.photo-inner-box {
    border: 1px solid var(--border-color);
    padding: 2px;
    background: #e6decb;
    overflow: hidden;
}

.vintage-photo {
    width: 100%;
    max-height: 68mm;
    object-fit: cover;
    display: block;
    margin: 0 auto;
    filter: grayscale(100%) contrast(115%) sepia(20%);
    -webkit-filter: grayscale(100%) contrast(115%) sepia(20%);
}

.photo-placeholder,
.photo-render-area {
    height: 58mm;
    max-height: 58mm;
    background: radial-gradient(circle, #e9dfcf 0%, #cfc1aa 100%);
    border: 1px dashed #7a6e5d;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--ink-secondary);
    box-sizing: border-box;
}

.camera-icon,
.photo-icon {
    font-size: 20pt;
    margin-bottom: 3px;
}

.photo-placeholder p,
.photo-tagline {
    font-size: 7.2pt;
    font-style: italic;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-weight: 700;
    margin: 0;
    color: var(--ink-secondary);
}

.photo-caption,
.photo-caption-text {
    font-size: 7pt;
    font-style: italic;
    line-height: 1.2;
    margin: 3px 2px 1px 2px;
    color: var(--ink-main);
    text-align: center;
}

/* ==========================================================================
   BANDEAU HORIZONTAL DE CHIFFRES CLÉS RÉTRO (IMPACT VISUEL)
   ========================================================================== */

.retro-key-metrics-bar {
    display: flex;
    justify-content: space-around;
    align-items: center;
    border-top: 1.5px solid var(--border-color);
    border-bottom: 1.5px solid var(--border-color);
    background-color: var(--bg-accent);
    padding: 4px 2px;
    margin: 6px 0 7px 0;
    box-sizing: border-box;
}

.retro-key-metrics-bar .metric-item {
    flex: 1;
    text-align: center;
    padding: 0 4px;
    border-right: 1px dotted var(--border-color);
}

.retro-key-metrics-bar .metric-item:last-child {
    border-right: none;
}

.retro-key-metrics-bar .metric-value {
    font-family: var(--headline-font);
    font-size: 13pt;
    font-weight: 900;
    color: var(--ink-main);
    line-height: 1.05;
    letter-spacing: 0.5px;
}

.retro-key-metrics-bar .metric-label {
    font-family: var(--title-font);
    font-size: 6.6pt;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ink-secondary);
    letter-spacing: 0.5px;
    line-height: 1.15;
    margin-top: 2px;
}

/* ==========================================================================
   INTERTITRE VINTAGE ORNEMENTAL DE RELANCE
   ========================================================================== */

.vintage-subheading-banner {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 5px 0 5px 0;
}

.subheading-filet {
    flex: 1;
    height: 1px;
    background-color: var(--border-color);
}

.vintage-subheading {
    font-family: var(--title-font);
    font-size: 8.2pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--ink-main);
    margin: 0;
    white-space: nowrap;
}


/* ==========================================================================
   FAUSSE RÉCLAME D'ÉPOQUE (PUBLICITÉ RETRO HYPER-PERSONNALISÉE)
   ========================================================================== */

.vintage-ad-box {
    border: 2px solid var(--border-color);
    padding: 5px 6px;
    background-color: var(--bg-accent);
    margin-bottom: 3px;
    text-align: center;
    position: relative;
}

.theme-belle_epoque .vintage-ad-box {
    border: 2px dashed #6b5742;
}

.theme-tabloid_satirique .vintage-ad-box {
    border: 2px solid #8f2317;
    background: #fff8f0;
}

.ad-badge {
    font-size: 5.8pt;
    text-transform: uppercase;
    letter-spacing: 1px;
    background: var(--ink-main);
    color: var(--bg-paper);
    padding: 1px 4px;
    display: inline-block;
    margin-bottom: 2px;
    font-weight: 700;
}

.ad-product-name {
    font-family: var(--headline-font);
    font-size: 8.8pt;
    font-weight: 900;
    text-transform: uppercase;
    margin: 2px 0 1px 0;
    color: var(--ink-main);
    line-height: 1.1;
}

.ad-slogan {
    font-size: 6.8pt;
    font-style: italic;
    font-weight: 700;
    color: var(--ink-secondary);
    margin-bottom: 2px;
}

.ad-desc {
    font-size: 6.6pt;
    line-height: 1.18;
    margin: 0 0 2px 0;
    text-align: justify;
}

.ad-footer,
.ad-cta {
    font-size: 5.8pt;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border-top: 1px dotted var(--border-color);
    padding-top: 2px;
    color: var(--ink-secondary);
    font-style: italic;
}

.ad-disclaimer {
    font-size: 5.4pt;
    color: var(--ink-secondary);
    font-style: italic;
    margin: 2px 0 0 0;
    line-height: 1.1;
}

/* ==========================================================================
   ENCADRÉS SECONDAIRES & SÉPARATEURS
   ========================================================================== */

.side-boxed-card {
    border: 1px solid var(--border-color);
    padding: 4px 5px;
    background-color: var(--bg-accent);
    margin-bottom: 3px;
}

.side-boxed-title {
    font-family: var(--title-font);
    font-size: 8.2pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-align: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2px;
    margin: 0 0 3px 0;
}

.ornament-sep {
    text-align: center;
    font-size: 7pt;
    color: var(--ink-secondary);
    margin: 4px 0;
    letter-spacing: 3px;
    line-height: 1;
}

.ornament-sep::before,
.ornament-sep::after {
    content: "—";
    margin: 0 3px;
}

/* ==========================================================================
   PIED DE PAGE D'IMPRIMERIE
   ========================================================================== */

.page-imprimatur {
    position: absolute;
    bottom: 5mm;
    left: 11mm;
    right: 11mm;
    border-top: 1.5px solid var(--border-color);
    padding-top: 2px;
    font-size: 6.2pt;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    text-align: center;
    color: var(--ink-secondary);
}

/* ==========================================================================
   MODULE DE JEUX PARTICIPATIFS & ANIMATIONS (PAGE 2 / DOUBLE-PAGE)
   ========================================================================== */

.gazette-page-games {
    page-break-before: always;
    page-break-inside: avoid;
    break-before: page;
}

/* En-tête raffiné de la page de jeux */
.games-header-box {
    border-top: var(--border-double);
    border-bottom: var(--border-double);
    padding: 3px 0 4px 0;
    margin-bottom: 6px;
    text-align: center;
}

.games-super-title {
    display: block;
    font-family: var(--title-font);
    font-size: 6.5pt;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--ink-secondary);
    margin-bottom: 1px;
}

.games-script-title {
    font-family: 'Alex Brush', 'Great Vibes', cursive;
    font-size: 27pt;
    font-weight: normal;
    color: var(--ink-main);
    line-height: 1.05;
    margin: 1px 0 2px 0;
    text-shadow: 0.5px 0.5px 0px rgba(0, 0, 0, 0.1);
}

.games-subtitle {
    font-family: var(--body-font);
    font-size: 7.2pt;
    font-style: italic;
    color: var(--ink-secondary);
    margin: 0;
    line-height: 1.2;
}

/* Layout 2 colonnes par table pour stabilité WeasyPrint maximale */
.games-layout-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin-bottom: 5px;
}

.games-col-left {
    width: 53%;
    vertical-align: top;
    padding-right: 9px;
}

.games-col-right {
    width: 47%;
    vertical-align: top;
    padding-left: 9px;
    border-left: 1px dashed var(--border-color);
}

/* Bloc Mots Croisés */
.crossword-box {
    border: 1.2px solid var(--border-color);
    padding: 6px 7px 5px 7px;
    background-color: var(--bg-paper);
    margin-bottom: 4px;
}

.games-section-title {
    font-family: var(--headline-font);
    font-size: 9.5pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    text-align: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2px;
    margin: 0 0 2px 0;
    color: var(--ink-main);
}

.crossword-sub-instruction {
    font-size: 6.6pt;
    font-style: italic;
    text-align: center;
    color: var(--ink-secondary);
    margin: 0 0 5px 0;
    line-height: 1.2;
}

.crossword-svg-wrapper {
    width: 100%;
    max-width: 215px;
    margin: 0 auto 5px auto;
    text-align: center;
    border: 1px solid var(--border-color);
    padding: 2px;
    background-color: #ffffff;
    box-shadow: 1px 1px 2px rgba(0,0,0,0.06);
}

.crossword-svg-wrapper svg {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    height: auto;
}

/* Clues / Définitions Mots Croisés */
.crossword-clues-grid {
    width: 100%;
    border-collapse: collapse;
    margin-top: 3px;
}

.crossword-clues-col {
    width: 50%;
    vertical-align: top;
    padding: 0 3px;
}

.clues-header {
    font-family: var(--title-font);
    font-size: 6.8pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 1px;
    margin-bottom: 3px;
    color: var(--ink-main);
}

.clues-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.clues-list li {
    font-size: 6.4pt;
    line-height: 1.22;
    margin-bottom: 3.5px;
    color: var(--ink-main);
}

.clue-number {
    font-weight: 800;
    font-family: var(--headline-font);
    color: var(--stamp-color);
    margin-right: 2px;
}

/* Bloc Jeu "Devine qui !" */
.guess-who-box {
    border: 1.2px solid var(--border-color);
    padding: 6px 7px 5px 7px;
    background-color: var(--bg-paper);
    margin-bottom: 6px;
}

.guess-who-list {
    list-style: none;
    padding: 0;
    margin: 4px 0 0 0;
}

.guess-who-row {
    display: table;
    width: 100%;
    border-bottom: 1px dotted rgba(56, 46, 34, 0.4);
    padding: 3.5px 0;
}

.guess-who-row:last-child {
    border-bottom: none;
}

.guess-who-text {
    display: table-cell;
    vertical-align: middle;
    font-size: 6.8pt;
    line-height: 1.2;
    color: var(--ink-main);
    padding-right: 4px;
}

.guess-who-targets {
    display: table-cell;
    vertical-align: middle;
    text-align: right;
    white-space: nowrap;
    width: 90px;
}

.pen-circle {
    display: inline-block;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 1px 4px;
    margin-left: 2px;
    font-size: 6.2pt;
    background-color: #ffffff;
    cursor: pointer;
    vertical-align: middle;
    line-height: 1.1;
}

.pen-circle .icon {
    font-size: 7.5pt;
    margin-right: 1px;
    vertical-align: -0.5px;
}

/* Bloc QR Code & Galerie Partagée */
.qr-share-card {
    border: 1.5px solid var(--border-color);
    background-color: var(--bg-accent);
    padding: 6px 7px;
    text-align: center;
    position: relative;
}

.qr-share-card::before {
    content: "✦ ❖ ✦";
    display: block;
    font-size: 6pt;
    letter-spacing: 2px;
    color: var(--ink-secondary);
    margin-bottom: 2px;
}

.qr-share-title {
    font-family: var(--headline-font);
    font-size: 8.4pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin: 0 0 2px 0;
    color: var(--ink-main);
}

.qr-share-label {
    font-size: 6.7pt;
    font-weight: 700;
    color: var(--ink-main);
    margin: 0 0 4px 0;
}

.qr-code-svg-render {
    display: inline-block;
    width: 76px;
    height: 76px;
    background: #ffffff;
    padding: 3px;
    border: 1px solid var(--border-color);
    margin: 0 auto 3px auto;
    box-shadow: 1px 1px 2px rgba(0,0,0,0.08);
}

.qr-code-svg-render svg {
    display: block;
    width: 100%;
    height: 100%;
}

.qr-share-hint {
    font-size: 5.8pt;
    font-style: italic;
    color: var(--ink-secondary);
    margin: 0;
    line-height: 1.15;
}

/* ==========================================================================
   MODÈLE 2 : GAZETTE CHIC & CÉRÉMONIE (STYLES PRINT A4)
   ========================================================================== */

.ceremony-headline-box {
    margin: 2mm 0 2.5mm 0;
}

.ceremony-photo-section {
    margin: 0 0 3mm 0;
    text-align: center;
}

.ceremony-photo-frame {
    width: 68%;
    max-height: 52mm;
    margin: 0 auto;
    padding: 3px;
    border: 2px solid var(--border-color);
    background: #ffffff;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
}

.ceremony-photo-frame .vintage-photo {
    width: 100%;
    max-height: 44mm;
    object-fit: cover;
    display: block;
}

.ceremony-placeholder {
    height: 44mm;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--bg-accent);
}

.ceremony-grid {
    display: table;
    width: 100%;
    table-layout: fixed;
    margin-top: 1mm;
}

.ceremony-col-left {
    display: table-cell;
    width: 49%;
    vertical-align: top;
    padding-right: 4.5mm;
    border-right: 1.2px solid var(--border-color);
}

.ceremony-col-right {
    display: table-cell;
    width: 51%;
    vertical-align: top;
    padding-left: 4.5mm;
}

.ceremony-card {
    border: 1.2px solid var(--border-color);
    background: var(--bg-paper);
    padding: 6px 8px;
    margin-bottom: 3.5mm;
    box-sizing: border-box;
}

.ceremony-card-header {
    text-align: center;
    margin-bottom: 4px;
    border-bottom: 1px dotted rgba(56, 46, 34, 0.4);
    padding-bottom: 2px;
}

.ceremony-ornament {
    font-size: 6.5pt;
    letter-spacing: 2px;
    color: var(--ink-secondary);
    display: block;
}

.ceremony-card-title {
    font-family: var(--title-font);
    font-size: 8.8pt;
    font-weight: 800;
    letter-spacing: 0.8px;
    margin: 1px 0;
    text-transform: uppercase;
}

.ceremony-card-subtitle {
    font-family: var(--headline-font);
    font-size: 7.8pt;
    font-weight: 700;
    letter-spacing: 0.6px;
    margin: 1px 0;
    text-transform: uppercase;
}

.ceremony-welcome-text {
    font-size: 7.6pt;
    line-height: 1.34;
    text-align: justify;
    margin: 0;
}

.ceremony-dropcap {
    float: left;
    font-family: var(--title-font);
    font-size: 24pt;
    line-height: 0.8;
    padding-right: 4px;
    padding-top: 2px;
    color: var(--stamp-color);
}

.ceremony-signature {
    font-family: 'Alex Brush', cursive, serif;
    font-size: 15pt;
    text-align: right;
    margin-top: 5px;
    color: var(--ink-main);
}

.ceremony-memoriam-card {
    background: var(--bg-accent);
    border: 1.5px double var(--border-color);
    margin-bottom: 0;
}

.ceremony-memoriam-text {
    font-size: 6.9pt;
    font-style: italic;
    line-height: 1.28;
    text-align: center;
    margin: 0;
    color: var(--ink-secondary);
}

.ceremony-menu-sub {
    font-size: 6.5pt;
    font-style: italic;
    color: var(--ink-secondary);
}

.ceremony-menu-list {
    margin-top: 4px;
}

.menu-item-row {
    display: table;
    width: 100%;
    margin-bottom: 3.5px;
    padding-bottom: 2.5px;
    border-bottom: 1px dotted rgba(56, 46, 34, 0.3);
}

.menu-item-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.menu-item-icon {
    display: table-cell;
    width: 18px;
    font-size: 9.5pt;
    vertical-align: top;
    text-align: center;
    color: var(--stamp-color);
}

.menu-item-content {
    display: table-cell;
    vertical-align: top;
    padding-left: 3px;
}

.menu-item-cat {
    font-size: 6pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ink-secondary);
}

.menu-item-dish {
    font-family: var(--headline-font);
    font-size: 7.5pt;
    font-weight: 700;
    line-height: 1.2;
    color: var(--ink-main);
}

.menu-item-desc {
    font-size: 6.3pt;
    font-style: italic;
    color: var(--ink-secondary);
    line-height: 1.15;
}

.ceremony-guestbook-card {
    border: 1px dashed var(--border-color);
    background: rgba(255, 255, 255, 0.35);
    margin-bottom: 0;
}

.ceremony-guestbook-prompt {
    font-size: 6.5pt;
    font-style: italic;
    text-align: center;
    margin: 0 0 3px 0;
    color: var(--ink-secondary);
}

.guestbook-lines .gb-line {
    border-bottom: 1px dotted rgba(56, 46, 34, 0.45);
    height: 12px;
}

/* ==========================================================================
   MODÈLE 3 : GAZETTE PROTAGONISTES & ANIMATIONS (STYLES PRINT A4)
   ========================================================================== */

.proto-headline-box {
    margin: 1.5mm 0 2mm 0;
}

.proto-heroes-section {
    margin-bottom: 2.5mm;
}

.proto-heroes-header {
    text-align: center;
    margin-bottom: 2px;
}

.proto-section-badge {
    font-family: var(--title-font);
    font-size: 7.5pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.proto-heroes-duel {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.hero-card {
    display: table-cell;
    width: 47%;
    vertical-align: top;
    border: 1.5px solid var(--border-color);
    background: var(--bg-accent);
    padding: 4px 6px;
    box-sizing: border-box;
}

.hero-vs-badge {
    display: table-cell;
    width: 6%;
    vertical-align: middle;
    text-align: center;
    font-family: var(--title-font);
    font-size: 15pt;
    font-weight: 900;
    color: var(--stamp-color);
}

.hero-card-left {
    float: left;
    width: 38px;
    margin-right: 5px;
}

.hero-photo-thumb {
    width: 36px;
    height: 36px;
    object-fit: cover;
    border: 1px solid var(--border-color);
    display: block;
    filter: grayscale(85%) contrast(110%);
}

.hero-photo-thumb.placeholder {
    background: #dfd5c2;
    text-align: center;
    line-height: 36px;
    font-size: 16px;
}

.hero-card-right {
    overflow: hidden;
}

.hero-name {
    font-family: var(--headline-font);
    font-size: 8.4pt;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1.1;
    color: var(--ink-main);
}

.hero-subtitle {
    font-size: 6.2pt;
    font-style: italic;
    color: var(--ink-secondary);
    margin-bottom: 2px;
}

.hero-trait-row {
    font-size: 6.4pt;
    line-height: 1.2;
    margin-top: 1.5px;
}

.trait-badge {
    font-weight: 800;
}

.trait-badge.likes {
    color: #1b5320;
}

.trait-badge.dislikes {
    color: #8c1e19;
}

.trait-text {
    color: var(--ink-main);
}

/* Frise chronologique */
.proto-timeline-section {
    border-top: 1.5px solid var(--border-color);
    border-bottom: 1.5px solid var(--border-color);
    background: rgba(0, 0, 0, 0.02);
    padding: 2.5px 0 3px 0;
    margin-bottom: 2.5mm;
}

.timeline-title-bar {
    text-align: center;
    font-family: var(--title-font);
    font-size: 6.8pt;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    margin-bottom: 2px;
}

.timeline-nodes-bar {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.timeline-node-item {
    display: table-cell;
    text-align: center;
    padding: 0 3px;
    border-right: 1px dotted rgba(56, 46, 34, 0.35);
    vertical-align: top;
}

.timeline-node-item:last-child {
    border-right: none;
}

.node-year-badge {
    display: inline-block;
    background: var(--border-color);
    color: #ffffff;
    font-size: 5.6pt;
    font-weight: 700;
    padding: 0.5px 3.5px;
    border-radius: 2px;
    margin-bottom: 1px;
}

.node-title {
    font-family: var(--headline-font);
    font-size: 6.6pt;
    font-weight: 800;
    color: var(--ink-main);
    line-height: 1.1;
}

.node-desc {
    font-size: 5.8pt;
    line-height: 1.15;
    color: var(--ink-secondary);
}

/* Grille inférieure */
.proto-bottom-grid {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.proto-col-left {
    display: table-cell;
    width: 48%;
    vertical-align: top;
    padding-right: 4.5mm;
    border-right: 1.2px solid var(--border-color);
}

.proto-col-right {
    display: table-cell;
    width: 52%;
    vertical-align: top;
    padding-left: 4.5mm;
}

.proto-card {
    border: 1.2px solid var(--border-color);
    background: var(--bg-paper);
    padding: 4px 6px;
    margin-bottom: 3mm;
    box-sizing: border-box;
}

.proto-card-title {
    font-family: var(--title-font);
    font-size: 7.2pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 2px 0;
    text-align: center;
    border-bottom: 1px dotted rgba(56, 46, 34, 0.35);
    padding-bottom: 1px;
}

.witnesses-list {
    list-style: none;
    padding: 0;
    margin: 2px 0 0 0;
    font-size: 6.6pt;
    line-height: 1.25;
}

.witness-bullet {
    color: var(--stamp-color);
    font-size: 6pt;
}

.proto-guess-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2px;
}

.proto-guess-sub {
    font-size: 5.6pt;
    font-style: italic;
    color: var(--ink-secondary);
}

.compact-crossword-wrapper {
    text-align: center;
    margin: 2px auto;
}

.compact-crossword-wrapper svg {
    max-height: 68px;
    width: auto;
    display: block;
    margin: 0 auto;
}

.clues-compact {
    font-size: 6pt;
    line-height: 1.15;
    margin-top: 2px;
}

/* ==========================================================================
   ORNEMENTS & FILETS DE SÉPARATION PAR THÈME GRAPHIQUE
   ========================================================================== */

/* Ornements spécifiques : Gatsby Art Déco */
.theme-gatsby_art_deco .masthead-wrapper,
.theme-gatsby-art-deco .masthead-wrapper {
    border-bottom: 3.5px double var(--border-color);
    letter-spacing: 2px;
}
.theme-gatsby_art_deco .masthead-title,
.theme-gatsby-art-deco .masthead-title {
    letter-spacing: 4px;
    font-weight: 400;
}
.theme-gatsby_art_deco .banner-inner,
.theme-gatsby-art-deco .banner-inner {
    border: 1px solid var(--border-color);
    outline: 2px double var(--border-color);
    outline-offset: 1px;
}

/* Ornements spécifiques : Gazette du Sorcier */
.theme-gazette_sorcier .masthead-title,
.theme-gazette-sorcier .masthead-title {
    font-family: "UnifrakturMaguntia", "Cinzel Decorative", serif;
    letter-spacing: 2px;
    font-size: 32pt;
}
.theme-gazette_sorcier .lead-story-dropcap,
.theme-gazette-sorcier .lead-story-dropcap {
    font-family: "UnifrakturMaguntia", serif;
    color: #63172e;
}
.theme-gazette_sorcier .vintage-stamp,
.theme-gazette-sorcier .vintage-stamp {
    font-family: "Cinzel Decorative", serif;
    letter-spacing: 2px;
}

/* Ornements spécifiques : Magazine Vogue */
.theme-magazine_vogue .masthead-title,
.theme-magazine-vogue .masthead-title {
    font-family: "Bodoni Moda", "Playfair Display", serif;
    font-size: 36pt;
    letter-spacing: 8px;
    font-weight: 900;
    text-transform: uppercase;
}
.theme-magazine_vogue .masthead-wrapper,
.theme-magazine-vogue .masthead-wrapper {
    border-top: none;
    border-bottom: 2px solid #000000;
}
.theme-magazine_vogue .lead-story-dropcap,
.theme-magazine-vogue .lead-story-dropcap {
    font-family: "Bodoni Moda", serif;
    font-weight: 900;
}

/* Ornements spécifiques : Champêtre Botanique */
.theme-champetre_botanique .masthead-wrapper,
.theme-champetre-botanique .masthead-wrapper {
    border-bottom: 2.5px double #616652;
}
.theme-champetre_botanique .masthead-motto-bar,
.theme-champetre-botanique .masthead-motto-bar {
    font-style: italic;
    color: #4a4d3f;
    letter-spacing: 1px;
}
.theme-champetre_botanique .lead-story-dropcap,
.theme-champetre-botanique .lead-story-dropcap {
    font-family: "Cormorant Garamond", serif;
    color: #4f573c;
}

/* Ornements spécifiques : Rétro Pop 70s */
.theme-retro_pop_70s .masthead-title,
.theme-retro-pop-70s .masthead-title {
    font-family: "Righteous", cursive;
    letter-spacing: 1.5px;
    text-shadow: 2px 2px 0px rgba(217, 107, 39, 0.3);
}
.theme-retro_pop_70s .lead-story-dropcap,
.theme-retro-pop-70s .lead-story-dropcap {
    font-family: "Righteous", cursive;
    color: #d94e18;
}

/* Ornements spécifiques : Terroir Local */
.theme-terroir_local .masthead-wrapper,
.theme-terroir-local .masthead-wrapper {
    border-top: 3px solid #423019;
    border-bottom: 3.5px double #423019;
}
.theme-terroir_local .masthead-title,
.theme-terroir-local .masthead-title {
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 900;
}

/* Ornements spécifiques : Fanzine Rock (Underground) */
.theme-fanzine_rock .masthead-title,
.theme-fanzine-rock .masthead-title {
    font-family: "Righteous", "Oswald", sans-serif;
    letter-spacing: 2px;
    text-transform: uppercase;
    background: #000000;
    color: #ffffff;
    padding: 6px 12px;
    display: inline-block;
    box-shadow: 4px 4px 0px #000000;
}
.theme-fanzine_rock .vintage-stamp,
.theme-fanzine-rock .vintage-stamp {
    background: #000000;
    color: #ffffff;
    border-color: #000000;
    transform: rotate(-7deg);
    font-weight: 900;
}

/* Ornements spécifiques : Polar Noir (Dossier Confidentiel) */
.theme-polar_noir .masthead-wrapper,
.theme-polar-noir .masthead-wrapper {
    border-top: 2.5px solid #2e2923;
    border-bottom: 2.5px dashed #2e2923;
    position: relative;
}
.theme-polar_noir .masthead-super-top::before,
.theme-polar-noir .masthead-super-top::before {
    content: "📎 DOSSIER N° 36 — TOP SECRET — ARCHIVES DU QUAI";
    display: block;
    font-weight: 700;
    color: #b01b1b;
    letter-spacing: 1.5px;
    font-size: 8pt;
    margin-bottom: 2px;
}
.theme-polar_noir .vintage-stamp,
.theme-polar-noir .vintage-stamp {
    border-color: #b01b1b;
    color: #b01b1b;
    border-width: 3px;
    letter-spacing: 2px;
    transform: rotate(-12deg);
}

/* Ornements spécifiques : Sport Gazette (Grande Presse Sportive) */
.theme-sport_gazette .masthead-wrapper,
.theme-sport-gazette .masthead-wrapper {
    border-top: 4px solid #143360;
    border-bottom: 3px double #143360;
}
.theme-sport_gazette .masthead-title,
.theme-sport-gazette .masthead-title {
    font-family: "Oswald", "Arial Black", sans-serif;
    font-weight: 800;
    letter-spacing: 3px;
    color: #0b1728;
    text-transform: uppercase;
}
.theme-sport_gazette .lead-story-dropcap,
.theme-sport-gazette .lead-story-dropcap {
    font-family: "Oswald", sans-serif;
    color: #1d4ed8;
}

/* Ornements spécifiques : Vintage Traveler (Aéropostale & Carnet d'Explorateur) */
.theme-vintage_traveler .masthead-wrapper,
.theme-vintage-traveler .masthead-wrapper {
    border-top: 3px double #593f2c;
    border-bottom: 3.5px double #593f2c;
}
.theme-vintage_traveler .masthead-title,
.theme-vintage-traveler .masthead-title {
    font-family: "Cinzel", "Playfair Display", serif;
    letter-spacing: 2.5px;
    font-weight: 700;
}
.theme-vintage_traveler .vintage-stamp,
.theme-vintage-traveler .vintage-stamp {
    border-radius: 50%;
    border-width: 2.5px;
    border-style: double;
    transform: rotate(9deg);
    color: #8c281f;
    border-color: #8c281f;
}





/* ==========================================================================
   GABARIT A : MARIAGE ("ROMANTIQUE & CÉLÉBRATION" — BEST-SELLER PINTEREST)
   ========================================================================== */

.layout-wedding-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: calc(100% - 14px);
    box-sizing: border-box;
}

.wedding-masthead {
    text-align: center;
    border-bottom: 1.5px double var(--border-color);
    padding-bottom: 4px;
    margin-bottom: 5px;
}

.wedding-masthead-top {
    font-size: 6pt;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: var(--ink-secondary);
    border-bottom: 0.7px solid var(--border-color);
    padding-bottom: 2px;
    margin-bottom: 3px;
}

.wedding-title-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 2px 0;
}

.wedding-floral-svg {
    width: 46px;
    height: 20px;
    color: var(--ink-secondary);
    flex-shrink: 0;
}

.wedding-main-logo {
    font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
    font-size: 23pt;
    font-weight: 700;
    font-style: italic;
    letter-spacing: 0.5px;
    margin: 0;
    line-height: 1.02;
    color: var(--ink-main);
}

.wedding-meta-strip {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-size: 6.8pt;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    border-top: 0.8px solid var(--border-color);
    border-bottom: 0.8px solid var(--border-color);
    padding: 2.5px 0;
    margin: 3px 0 4px 0;
    color: var(--ink-secondary);
    font-weight: 600;
}

.wedding-meta-dot {
    font-size: 6pt;
    opacity: 0.65;
}

.wedding-couple-banner {
    padding: 2px 0 1px 0;
}

.wedding-couple-names {
    font-family: "Playfair Display", "Cormorant Garamond", serif;
    font-size: 16.5pt;
    font-weight: 800;
    letter-spacing: 1.2px;
    color: var(--ink-main);
    line-height: 1.1;
}

.wedding-couple-sub {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 10pt;
    color: var(--ink-secondary);
    margin-top: 1px;
}

.wedding-icon-inline {
    width: 22px;
    height: 13px;
    color: var(--ink-main);
}

/* Zone 1 : Grande photo centrale en majesté */
.wedding-zone-photo {
    margin-bottom: 5px;
}

.wedding-photo-majestic-frame {
    border: 1px solid var(--border-color);
    padding: 4px;
    background: rgba(255, 255, 255, 0.35);
    text-align: center;
}

.wedding-majestic-img {
    width: 100%;
    height: 62mm;
    max-height: 62mm;
    object-fit: cover;
    display: block;
    filter: sepia(0.18) contrast(1.04);
    border: 0.6px solid var(--border-color);
}

.wedding-romantic-caption {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 8.2pt;
    color: var(--ink-secondary);
    margin-top: 3px;
    line-height: 1.2;
}

/* Zone 2 : Récit de la rencontre (60 mots) + Le saviez-vous ? */
.wedding-zone-story-grid {
    display: table;
    width: 100%;
    table-layout: fixed;
    margin-bottom: 5px;
    border-top: 0.8px solid var(--border-color);
    border-bottom: 0.8px solid var(--border-color);
    padding: 5px 0;
}

.wedding-story-card {
    display: table-cell;
    width: 56%;
    vertical-align: top;
    padding-right: 4mm;
    border-right: 0.8px solid var(--border-color);
}

.wedding-didyouknow-box {
    display: table-cell;
    width: 44%;
    vertical-align: top;
    padding-left: 4mm;
}

.wedding-section-heading,
.wedding-dyk-header {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 3px;
}

.wedding-section-heading h3,
.wedding-dyk-header h4 {
    font-family: var(--title-font);
    font-size: 7.8pt;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin: 0;
    color: var(--ink-main);
}

.wedding-mini-ornament {
    width: 16px;
    height: 13px;
    color: var(--stamp-color);
    flex-shrink: 0;
}

.wedding-story-paragraph {
    font-size: 7.8pt;
    line-height: 1.34;
    text-align: justify;
    margin: 0;
    color: var(--ink-main);
}

.wedding-dropcap {
    float: left;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 21pt;
    line-height: 0.82;
    padding-right: 4px;
    padding-top: 2px;
    font-weight: 700;
    color: var(--ink-main);
}

.wedding-story-flourish {
    text-align: center;
    font-size: 7pt;
    color: var(--ink-secondary);
    margin-top: 2px;
    letter-spacing: 2px;
}

.wedding-dyk-list {
    list-style: none;
    margin: 0;
    padding: 3px 6px;
    background: var(--bg-accent);
    border: 0.8px dashed var(--border-color);
    font-size: 7.1pt;
    line-height: 1.28;
}

.wedding-dyk-list li {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 3px;
}

.wedding-dyk-list li:last-child {
    margin-bottom: 0;
}

.dyk-heart {
    color: var(--stamp-color);
    font-weight: 700;
    flex-shrink: 0;
}

/* Zone 3 : Frise chronologique de la journée avec pictos */
.wedding-zone-timeline {
    margin-bottom: 5px;
    padding: 4px 6px;
    border: 0.8px solid var(--border-color);
    background: rgba(255, 255, 255, 0.28);
}

.wedding-timeline-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 4px;
}

.wedding-timeline-header h3 {
    font-family: var(--title-font);
    font-size: 7.6pt;
    font-weight: 800;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    margin: 0;
}

.wedding-line-wing {
    flex: 1;
    max-width: 38mm;
    height: 0.7px;
    background: var(--border-color);
}

.wedding-timeline-steps {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.wedding-step-node {
    display: table-cell;
    text-align: center;
    vertical-align: top;
    padding: 0 3px;
    border-right: 0.6px dotted var(--border-color);
}

.wedding-step-node:last-child {
    border-right: none;
}

.wedding-step-icon-circle {
    width: 20px;
    height: 20px;
    margin: 0 auto 2px auto;
    border-radius: 50%;
    border: 0.9px solid var(--border-color);
    background: var(--bg-paper);
    display: flex;
    align-items: center;
    justify-content: center;
}

.wedding-step-icon-circle svg {
    width: 12px;
    height: 12px;
}

.wedding-step-time {
    font-family: var(--headline-font);
    font-size: 7.6pt;
    font-weight: 800;
    color: var(--stamp-color);
}

.wedding-step-title {
    font-family: var(--title-font);
    font-size: 7.4pt;
    font-weight: 700;
    color: var(--ink-main);
    line-height: 1.15;
}

.wedding-step-detail {
    font-size: 6.3pt;
    font-style: italic;
    color: var(--ink-secondary);
    line-height: 1.15;
}

/* Zone 4 : Infographie chiffrée du couple */
.wedding-zone-infographic {
    border-top: 1.5px double var(--border-color);
    border-bottom: 1.5px double var(--border-color);
    padding: 4px 0;
    background: var(--bg-accent);
    text-align: center;
}

.wedding-infographic-title {
    font-family: var(--title-font);
    font-size: 6.8pt;
    font-weight: 800;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    margin-bottom: 3px;
    color: var(--ink-secondary);
}

.wedding-metrics-row {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.wedding-metric-box {
    display: table-cell;
    text-align: center;
    border-right: 0.7px solid var(--border-color);
    padding: 1px 4px;
}

.wedding-metric-box:last-child {
    border-right: none;
}

.wedding-metric-val {
    font-family: "Playfair Display", var(--headline-font), serif;
    font-size: 12pt;
    font-weight: 900;
    color: var(--ink-main);
    line-height: 1.05;
}

.wedding-metric-lbl {
    font-size: 6.3pt;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ink-secondary);
    font-weight: 600;
}


/* ==========================================================================
   GABARIT B : ANNIVERSAIRE ("NOSTALGIE & HOMMAGE" — ÉDITION DU JUBILÉ)
   ========================================================================== */

.layout-birthday-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: calc(100% - 14px);
    box-sizing: border-box;
}

.birthday-masthead {
    border-bottom: 2px solid var(--border-color);
    margin-bottom: 5px;
}

.birthday-masthead-top {
    display: flex;
    justify-content: space-between;
    font-size: 5.8pt;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2px;
    margin-bottom: 4px;
    color: var(--ink-secondary);
}

.birthday-masthead-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 4px;
}

.birthday-title-block {
    flex: 1;
}

.birthday-kicker-tag {
    display: inline-block;
    background: var(--ink-main);
    color: var(--bg-paper);
    font-size: 6pt;
    font-weight: 800;
    letter-spacing: 1.5px;
    padding: 1.5px 6px;
    text-transform: uppercase;
    margin-bottom: 2px;
}

.birthday-main-logo {
    font-family: var(--title-font);
    font-size: 19.5pt;
    font-weight: 900;
    margin: 0;
    line-height: 1.04;
    color: var(--ink-main);
}

.birthday-sub-motto {
    font-size: 7.5pt;
    color: var(--ink-secondary);
    margin-top: 2px;
}

.birthday-year-medallion {
    width: 34mm;
    border: 2px double var(--border-color);
    background: var(--bg-accent);
    text-align: center;
    padding: 3px 4px;
    flex-shrink: 0;
}

.year-medallion-sub,
.year-medallion-foot {
    display: block;
    font-size: 5.4pt;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--ink-secondary);
}

.year-medallion-num {
    display: block;
    font-family: "Oswald", var(--headline-font), sans-serif;
    font-size: 20pt;
    font-weight: 900;
    line-height: 1;
    color: var(--stamp-color);
    margin: 1px 0;
}

.birthday-headline-strip {
    background: var(--bg-accent);
    border-top: 1px solid var(--border-color);
    padding: 3px 6px;
    text-align: center;
}

.birthday-headline-strip h2 {
    font-family: var(--headline-font);
    font-size: 10.2pt;
    font-weight: 900;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin: 0;
    color: var(--ink-main);
}

/* Zone 1 : Double photo comparative ("En 1984" vs "Aujourd'hui") */
.birthday-zone-dual-photos {
    display: table;
    width: 100%;
    table-layout: fixed;
    margin-bottom: 5px;
    border: 1px solid var(--border-color);
    padding: 5px;
    background: rgba(255, 255, 255, 0.3);
}

.birthday-photo-card {
    display: table-cell;
    width: 46%;
    vertical-align: top;
    text-align: center;
}

.birthday-vs-divider {
    display: table-cell;
    width: 8%;
    vertical-align: middle;
    text-align: center;
}

.vs-arrow {
    display: block;
    font-size: 14pt;
    font-weight: 900;
    color: var(--stamp-color);
}

.vs-label {
    display: block;
    font-size: 5.2pt;
    font-weight: 800;
    letter-spacing: 0.8px;
    color: var(--ink-secondary);
}

.birthday-photo-badge {
    display: inline-block;
    background: var(--ink-main);
    color: var(--bg-paper);
    font-family: var(--headline-font);
    font-size: 7.2pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 1.5px 10px;
    margin-bottom: 3px;
}

.birthday-photo-badge.badge-today {
    background: var(--stamp-color);
}

.birthday-photo-frame {
    border: 1px solid var(--border-color);
    padding: 2px;
    background: var(--bg-paper);
}

.birthday-dual-img {
    width: 100%;
    height: 46mm !important;
    max-height: 46mm !important;
    object-fit: cover;
    display: block;
}

.birthday-photo-caption {
    font-size: 6.7pt;
    font-style: italic;
    color: var(--ink-secondary);
    margin-top: 2.5px;
    line-height: 1.15;
}

/* Grille médiane : Zone 2 (Billet hommage) + Zone 3 (Ce qui s'est passé cette année-là) */
.birthday-middle-grid {
    display: table;
    width: 100%;
    table-layout: fixed;
    margin-bottom: 5px;
}

.birthday-zone-tribute {
    display: table-cell;
    width: 53%;
    vertical-align: top;
    padding-right: 3.5mm;
    border-right: 1.2px solid var(--border-color);
}

.birthday-zone-year-facts {
    display: table-cell;
    width: 47%;
    vertical-align: top;
    padding-left: 3.5mm;
}

.birthday-box-header {
    display: flex;
    align-items: center;
    gap: 5px;
    border-bottom: 1.2px solid var(--border-color);
    padding-bottom: 2px;
    margin-bottom: 4px;
}

.birthday-box-header h3 {
    font-family: var(--headline-font);
    font-size: 7.8pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0;
}

.birthday-box-header.header-vintage-dark {
    background: var(--ink-main);
    color: var(--bg-paper);
    padding: 2.5px 6px;
    border-bottom: none;
}

.birthday-box-header.header-vintage-dark h3 {
    color: var(--bg-paper);
}

.birthday-tribute-body {
    font-size: 7.8pt;
    line-height: 1.35;
    text-align: justify;
    margin: 0 0 5px 0;
}

.birthday-hobbies-pill {
    background: var(--bg-accent);
    border: 0.9px dashed var(--border-color);
    padding: 4px 6px;
    font-size: 7.1pt;
    line-height: 1.25;
}

.birthday-facts-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.birthday-facts-list li {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding: 3.5px 4px;
    border-bottom: 0.7px dotted var(--border-color);
    font-size: 7.1pt;
    line-height: 1.22;
}

.birthday-facts-list li:last-child {
    border-bottom: none;
}

.fact-icon {
    font-size: 10pt;
    line-height: 1;
    flex-shrink: 0;
}

.fact-body strong {
    display: block;
    font-size: 6.9pt;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--ink-main);
}

/* Zone 4 : Compteur géant de jours vécus + Réplique culte */
.birthday-zone-bottom-bar {
    display: table;
    width: 100%;
    table-layout: fixed;
    border: 1.8px double var(--border-color);
    background: var(--bg-accent);
    padding: 5px 6px;
}

.birthday-giant-counter {
    display: table-cell;
    width: 40%;
    vertical-align: middle;
    text-align: center;
    border-right: 1.2px solid var(--border-color);
    padding-right: 4px;
}

.counter-super {
    font-size: 5.5pt;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--ink-secondary);
}

.counter-number {
    font-family: "Oswald", var(--headline-font), sans-serif;
    font-size: 22pt;
    font-weight: 900;
    line-height: 1.02;
    color: var(--stamp-color);
}

.counter-label {
    font-size: 6.4pt;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    color: var(--ink-main);
}

.birthday-cult-quote-box {
    display: table-cell;
    width: 60%;
    vertical-align: middle;
    padding-left: 8px;
}

.cult-quote-header {
    font-size: 6.3pt;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--ink-secondary);
    margin-bottom: 2px;
}

.cult-quote-text {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 9.2pt;
    font-weight: 700;
    font-style: italic;
    margin: 0 0 2px 0;
    line-height: 1.2;
    color: var(--ink-main);
}

.cult-quote-author {
    font-size: 6.3pt;
    color: var(--ink-secondary);
}


/* ==========================================================================
   GABARIT C : RETRAITE ("LA QUILLE & BONS VIVANTS" — AVIS DE LIBÉRATION)
   ========================================================================== */

.layout-retirement-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: calc(100% - 14px);
    box-sizing: border-box;
}

.retirement-masthead {
    border-bottom: 2.5px double var(--border-color);
    margin-bottom: 5px;
}

.retirement-masthead-top {
    display: flex;
    justify-content: space-between;
    font-size: 5.8pt;
    font-weight: 700;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2px;
    margin-bottom: 3px;
    color: var(--ink-secondary);
}

.retirement-title-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 2px 0;
}

.retirement-official-seal {
    border: 1.2px solid var(--border-color);
    padding: 2px 6px;
    font-family: var(--headline-font);
    font-size: 6.5pt;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: var(--bg-accent);
    flex-shrink: 0;
}

.retirement-main-logo {
    font-family: var(--title-font);
    font-size: 24pt;
    font-weight: 900;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin: 0;
    line-height: 1;
    text-align: center;
}

.retirement-sub-banner {
    background: var(--ink-main);
    color: var(--bg-paper);
    text-align: center;
    padding: 2.5px 6px;
    font-family: var(--headline-font);
    font-size: 7.8pt;
    font-weight: 800;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-top: 2px;
}

/* Zone 1 : Photo officielle du jeune libéré + Tampon DÉPART VALIDÉ */
.retirement-zone-hero {
    display: table;
    width: 100%;
    table-layout: fixed;
    margin-bottom: 5px;
    border: 1px solid var(--border-color);
    padding: 5px;
    background: rgba(255, 255, 255, 0.3);
}

.retirement-photo-container {
    display: table-cell;
    width: 44%;
    vertical-align: top;
    position: relative;
    text-align: center;
    padding-right: 4mm;
    border-right: 1px dashed var(--border-color);
}

.retirement-validated-stamp {
    position: absolute;
    top: 4px;
    right: 6mm;
    transform: rotate(-8deg);
    border: 2px solid var(--stamp-color);
    color: var(--stamp-color);
    background: rgba(255, 255, 255, 0.88);
    font-family: "Oswald", "Arial Black", sans-serif;
    font-size: 7.5pt;
    font-weight: 900;
    letter-spacing: 1.5px;
    padding: 1.5px 7px;
    text-transform: uppercase;
    z-index: 5;
    box-shadow: 0 0 0 1px var(--stamp-color) inset;
}

.retirement-hero-img {
    width: 100%;
    height: 46mm !important;
    max-height: 46mm !important;
    object-fit: cover;
    display: block;
    border: 1px solid var(--border-color);
}

.retirement-photo-caption {
    font-size: 6.4pt;
    font-style: italic;
    color: var(--ink-secondary);
    margin-top: 2.5px;
    line-height: 1.15;
}

.retirement-hero-declaration {
    display: table-cell;
    width: 56%;
    vertical-align: middle;
    padding-left: 4mm;
}

.declaration-kicker {
    font-size: 6.2pt;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--stamp-color);
    margin-bottom: 2px;
}

.declaration-headline {
    font-family: var(--headline-font);
    font-size: 12pt;
    font-weight: 900;
    line-height: 1.12;
    text-transform: uppercase;
    margin: 0 0 4px 0;
    color: var(--ink-main);
}

.declaration-role-badge {
    background: var(--bg-accent);
    border-left: 2.5px solid var(--stamp-color);
    padding: 3px 6px;
    font-size: 7pt;
    margin-bottom: 4px;
    line-height: 1.2;
}

.declaration-lead {
    font-size: 7.6pt;
    line-height: 1.32;
    text-align: justify;
    margin: 0;
}

/* Zone 2 : Bilan chiffré de carrière */
.retirement-zone-stats {
    margin-bottom: 5px;
    border: 1.2px solid var(--border-color);
    background: var(--bg-accent);
    padding: 4px 6px;
}

.retirement-stats-header {
    text-align: center;
    font-family: var(--headline-font);
    font-size: 7.4pt;
    font-weight: 800;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    border-bottom: 0.8px solid var(--border-color);
    padding-bottom: 2px;
    margin-bottom: 4px;
}

.retirement-stats-grid {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.retirement-stat-card {
    display: table-cell;
    text-align: center;
    border-right: 0.8px dashed var(--border-color);
    padding: 1px 4px;
}

.retirement-stat-card:last-child {
    border-right: none;
}

.stat-big-num {
    font-family: "Oswald", var(--headline-font), sans-serif;
    font-size: 13.5pt;
    font-weight: 900;
    color: var(--stamp-color);
    line-height: 1.05;
}

.stat-desc {
    font-size: 6.4pt;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ink-main);
    line-height: 1.15;
}

/* Zone 3 : Les nouvelles missions obligatoires */
.retirement-zone-missions {
    margin-bottom: 5px;
    border: 1px solid var(--border-color);
    padding: 4px 6px;
    background: rgba(255, 255, 255, 0.25);
}

.retirement-section-title {
    display: flex;
    align-items: center;
    gap: 5px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 2px;
    margin-bottom: 4px;
}

.retirement-section-title h3 {
    font-family: var(--headline-font);
    font-size: 7.8pt;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    margin: 0;
}

.retirement-missions-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 8px;
}

.retirement-mission-item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding: 3px 5px;
    border: 0.7px dotted var(--border-color);
    background: var(--bg-paper);
}

.mission-icon {
    font-size: 11pt;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 1px;
}

.mission-top-line {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 1px;
}

.mission-time {
    background: var(--ink-main);
    color: var(--bg-paper);
    font-size: 5.8pt;
    font-weight: 800;
    padding: 0.5px 4px;
    text-transform: uppercase;
}

.mission-name {
    font-family: var(--headline-font);
    font-size: 7.3pt;
    font-weight: 800;
    color: var(--ink-main);
}

.mission-desc {
    font-size: 6.5pt;
    line-height: 1.2;
    color: var(--ink-secondary);
    margin: 0;
}

/* Zone 4 : Petit mot des collègues + Fausse météo des vacances perpétuelles */
.retirement-zone-bottom {
    display: table;
    width: 100%;
    table-layout: fixed;
    border-top: 1.5px double var(--border-color);
    padding-top: 4px;
}

.retirement-colleagues-card {
    display: table-cell;
    width: 55%;
    vertical-align: top;
    padding-right: 4mm;
    border-right: 1px solid var(--border-color);
}

.retirement-weather-card {
    display: table-cell;
    width: 45%;
    vertical-align: top;
    padding-left: 4mm;
}

.bottom-card-header {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 2px;
}

.bottom-card-header h4 {
    font-family: var(--headline-font);
    font-size: 7.4pt;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin: 0;
}

.colleagues-quote-text {
    font-family: "Playfair Display", Georgia, serif;
    font-style: italic;
    font-size: 7.5pt;
    line-height: 1.28;
    margin: 0 0 2px 0;
}

.colleagues-sign {
    font-size: 6.4pt;
    font-weight: 700;
    text-align: right;
    color: var(--ink-secondary);
}

.weather-temp-pill {
    display: inline-block;
    background: var(--stamp-color);
    color: #ffffff;
    font-size: 6.5pt;
    font-weight: 800;
    padding: 1px 6px;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}

.weather-forecast-text {
    font-size: 6.9pt;
    line-height: 1.25;
    margin: 0;
    color: var(--ink-main);
}


/* Disposition Solo (Anniversaire & Retraite : Portrait Star + 2 Encadrés Passions & Manies) */
.proto-solo-showcase {
    display: table;
    width: 100%;
    table-layout: fixed;
    border: 1.5px solid var(--border-color);
    background: var(--bg-accent);
    padding: 4px 6px;
    box-sizing: border-box;
}

.solo-hero-identity-col {
    display: table-cell;
    width: 34%;
    vertical-align: middle;
    padding-right: 6px;
    border-right: 1px dashed var(--border-color);
}

.solo-photo-thumb {
    float: left;
    width: 44px;
    height: 44px;
    object-fit: cover;
    border: 1.5px solid var(--border-color);
    margin-right: 6px;
    filter: grayscale(85%) contrast(110%);
}

.solo-photo-thumb.placeholder {
    background: #dfd5c2;
    text-align: center;
    line-height: 44px;
    font-size: 20px;
}

.solo-hero-trait-col {
    display: table-cell;
    width: 33%;
    vertical-align: top;
    padding: 1px 7px;
    border-right: 1px dashed var(--border-color);
}

.solo-hero-trait-col:last-child {
    border-right: none;
    padding-right: 2px;
}

.solo-trait-header {
    font-family: var(--title-font);
    font-size: 6.8pt;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 2px;
}
