@charset "UTF-8";
/*
Theme Name: IESE Monde du Travail
Theme URI: https://iesemondedutravail.fr
Description: Archetype « Le râtelier de pointage » : carte de pointage, horodatage frappé, cartes debout sous un rail. Préfixe .imt-
Version: 1.0.6
Text Domain: iesemondedutravail
*/

/* ── Jetons ─────────────────────────────────────────────────────────── */
:root {
    --imt-blanc: #FFFFFF;
    --imt-carton: #F3F1EC;
    --imt-carton-2: #E9E6DF;
    --imt-ligne: #DAD7D0;
    --imt-ligne-2: #B9B5AD;
    --imt-encre: #1C1C1A;
    --imt-gris: #5E5B56;
    --imt-tampon: #4D4C40;
    --imt-tampon-fonce: #34332B;
    --imt-titre: 'Domine', Georgia, 'Times New Roman', serif;
    --imt-texte: 'Fira Sans', 'Segoe UI', Helvetica, Arial, sans-serif;
    --imt-etiq: 'Fira Sans Condensed', 'Fira Sans', 'Arial Narrow', sans-serif;
    --imt-cadre: 1220px;
    --imt-mesure: 660px;
    --imt-gouttiere: 28px;
    --imt-encoche: 22px;
}

/* ── Mécanisme : numérotation des lignes de carte ───────────────────── */
@counter-style imt-ligne {
    system: numeric;
    symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
    pad: 2 "0";
    prefix: "L·";
    suffix: "";
}
@counter-style imt-numero {
    system: extends imt-ligne;
    prefix: "N° ";
}
@counter-style imt-etape {
    system: extends imt-ligne;
    prefix: "";
    suffix: "";
}

/* ── Base ───────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
    margin: 0;
    background: var(--imt-blanc);
    color: var(--imt-encre);
    font-family: var(--imt-texte);
    font-size: 17px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { font-family: var(--imt-titre); font-weight: 700; line-height: 1.12; margin: 0; letter-spacing: -0.01em; color: var(--imt-encre); }
p { margin: 0 0 1em; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--imt-tampon); outline-offset: 3px; }

.imt-cadre { width: 100%; max-width: var(--imt-cadre); margin: 0 auto; padding: 0 var(--imt-gouttiere); }
.imt-evitement { position: absolute; left: -9999px; top: 0; z-index: 999; background: var(--imt-encre); color: #fff; padding: 10px 16px; }
.imt-evitement:focus { left: 16px; top: 16px; }

/* Libellés condensés */
.imt-capitales, .imt-kicker {
    font-family: var(--imt-etiq);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--imt-gris);
}
.imt-kicker { display: inline-flex; align-items: center; gap: 10px; color: var(--imt-tampon); }

/* La fente de la pointeuse : 2 barres de 2 × 10 px */
.imt-fente {
    display: inline-block;
    width: 6px;
    height: 10px;
    background:
        linear-gradient(currentColor, currentColor) 0 0 / 2px 10px no-repeat,
        linear-gradient(currentColor, currentColor) 4px 0 / 2px 10px no-repeat;
    flex: none;
}

/* ── Le geste signature : l'horodatage frappé ───────────────────────── */
.imt-horo {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    font-family: var(--imt-etiq);
    font-weight: 600;
    font-size: 12.5px;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
    color: var(--imt-tampon);
    border: 1.5px solid currentColor;
    padding: 5px 8px 4px;
    transform: rotate(-2deg);
    transform-origin: left center;
    white-space: nowrap;
    background: transparent;
}
.imt-horo small { font-size: 10px; font-weight: 700; letter-spacing: 0.16em; opacity: 0.85; }
.imt-horo--clair { color: #fff; }
.imt-horo--grand { font-size: 15px; padding: 7px 11px 6px; }

/* ── En-tête ────────────────────────────────────────────────────────── */
.imt-tete {
    position: sticky;
    top: 0;
    z-index: 50;
    background: var(--imt-blanc);
    border-bottom: 3px double var(--imt-ligne-2);
    transition: box-shadow .2s ease;
}
.imt-tete.is-scrolled { box-shadow: 0 6px 18px -14px rgba(28, 28, 26, .45); }
.imt-tete-in { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 78px; }
.imt-marque { display: inline-flex; align-items: center; text-decoration: none; color: var(--imt-encre); flex: none; }
.imt-wordmark { display: block; height: 40px; width: auto; }
.imt-nav { display: flex; align-items: center; gap: 26px; }
.imt-nav a {
    font-family: var(--imt-etiq);
    font-weight: 600;
    font-size: 14.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--imt-encre);
    padding: 6px 0;
    border-bottom: 2px solid transparent;
    transition: border-color .2s ease, color .2s ease;
}
.imt-nav a:hover, .imt-nav a.is-actif { border-bottom-color: var(--imt-tampon); color: var(--imt-tampon); }
.imt-nav a.menu-contact {
    border: 1.5px solid var(--imt-tampon);
    color: var(--imt-tampon);
    padding: 9px 16px 8px;
}
.imt-nav a.menu-contact:hover { background: var(--imt-tampon); color: #fff; }
.imt-burger, .imt-nav-mobile, .imt-nav-close, .imt-nav-logo { display: none; }
.imt-burger { background: none; border: 0; padding: 8px; color: var(--imt-encre); cursor: pointer; }
.imt-burger svg, .imt-nav-close svg { width: 26px; height: 26px; stroke: currentColor; stroke-width: 1.8; fill: none; }

/* ── Boutons ────────────────────────────────────────────────────────── */
.imt-bouton {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--imt-etiq);
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    background: var(--imt-tampon);
    color: #fff;
    border: 1.5px solid var(--imt-tampon);
    padding: 15px 24px 14px;
    transition: background .2s ease, color .2s ease;
}
.imt-bouton:hover { background: var(--imt-tampon-fonce); border-color: var(--imt-tampon-fonce); }
.imt-bouton--creux { background: transparent; color: var(--imt-tampon); }
.imt-bouton--creux:hover { background: var(--imt-tampon); color: #fff; }

/* ── Accueil : l'ouverture ──────────────────────────────────────────── */
.imt-ouverture { padding: 64px 0 104px; border-bottom: 1px solid var(--imt-ligne); }
.imt-ouverture-grille { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; }
.imt-ouverture-texte { padding-top: 18px; }
.imt-h1 { margin: 22px 0 0; }
.imt-h1-nom {
    display: block;
    font-size: clamp(52px, 8.4vw, 104px);
    line-height: 0.96;
    letter-spacing: -0.03em;
}
.imt-h1-nom em { font-style: normal; color: var(--imt-tampon); }
.imt-h1-but {
    display: block;
    margin-top: 26px;
    max-width: 560px;
    font-family: var(--imt-titre);
    font-weight: 400;
    font-size: clamp(21px, 2.1vw, 27px);
    line-height: 1.35;
    letter-spacing: 0;
    color: var(--imt-encre);
}
.imt-ouverture-intro { margin: 22px 0 34px; max-width: 540px; font-size: 18px; color: var(--imt-gris); }
.imt-ouverture-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.imt-stats { display: flex; gap: 30px; margin-top: 46px; padding-top: 22px; border-top: 1px solid var(--imt-ligne); max-width: 560px; }
.imt-stats div { display: flex; flex-direction: column; }
.imt-stats strong { font-family: var(--imt-titre); font-size: 36px; line-height: 1; font-variant-numeric: tabular-nums; }
.imt-stats span { font-family: var(--imt-etiq); font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--imt-gris); margin-top: 6px; }

.imt-ouverture-media { position: relative; padding-bottom: 150px; }
.imt-ouverture-photo { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--imt-carton-2); margin-left: 40px; }
.imt-ouverture-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.25) contrast(1.02); }
.imt-ouverture-photo::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255, 255, 255, .7); pointer-events: none; }

/* La carte de pointage */
.imt-carte-pointage {
    position: absolute;
    left: -64px;
    bottom: 0;
    width: 360px;
    background:
        repeating-linear-gradient(to bottom, transparent 0, transparent 37px, var(--imt-ligne) 37px, var(--imt-ligne) 38px) 0 112px / 100% calc(100% - 112px) no-repeat,
        var(--imt-carton);
    border: 1px solid var(--imt-ligne-2);
    clip-path: polygon(0 0, calc(100% - var(--imt-encoche)) 0, 100% var(--imt-encoche), 100% 100%, 0 100%);
    padding: 18px 20px 14px;
    box-shadow: 0 24px 40px -30px rgba(28, 28, 26, .55);
}
.imt-cp-tete { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding-bottom: 12px; border-bottom: 2px solid var(--imt-encre); }
.imt-cp-titre { font-family: var(--imt-etiq); font-weight: 700; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; }
.imt-cp-sous { font-family: var(--imt-etiq); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--imt-gris); margin-top: 3px; }
.imt-cp-cols { display: grid; grid-template-columns: 40px 1fr 74px; gap: 8px; font-family: var(--imt-etiq); font-weight: 600; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--imt-gris); padding: 8px 0 6px; border-bottom: 1px solid var(--imt-ligne-2); }
.imt-cp-lignes { counter-reset: imt-cp; }
.imt-cp-lignes li { counter-increment: imt-cp; display: grid; grid-template-columns: 40px 1fr 74px; gap: 8px; align-items: center; min-height: 38px; }
.imt-cp-lignes li::before { content: "L·" counter(imt-cp, imt-ligne); font-family: var(--imt-etiq); font-weight: 600; font-size: 12px; letter-spacing: 0.06em; color: var(--imt-gris); font-variant-numeric: tabular-nums; }
.imt-cp-lignes a { font-size: 14px; line-height: 1.3; font-weight: 500; text-decoration: none; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.imt-cp-lignes a:hover { text-decoration: underline; text-underline-offset: 3px; }
.imt-cp-lignes .imt-horo { font-size: 10.5px; padding: 3px 5px 2px; justify-self: end; gap: 4px; }
.imt-cp-pied { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding-top: 10px; border-top: 2px solid var(--imt-encre); font-family: var(--imt-etiq); font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--imt-gris); }

/* Filet du biseau : le coin coupé garde son bord */
.imt-carte::after, .imt-carte-pointage::after, .imt-fiche::after, .imt-contact-form::after, .imt-carte-mini::after {
    content: "";
    position: absolute;
    top: -1px;
    right: -1px;
    width: var(--imt-encoche);
    height: var(--imt-encoche);
    background: linear-gradient(to bottom left, transparent calc(50% - 1px), var(--imt-ligne-2) calc(50% - 1px), var(--imt-ligne-2) calc(50% + 0.5px), transparent calc(50% + 0.5px));
    pointer-events: none;
}
.imt-fiche::after { width: 34px; height: 34px; }
.imt-contact-form, .imt-carte-mini { position: relative; }

/* ── Titres de section ──────────────────────────────────────────────── */
.imt-section { padding: 96px 0; }
.imt-section-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 50px; }
.imt-titre-section { font-size: clamp(34px, 4vw, 50px); letter-spacing: -0.02em; margin-top: 12px; }
.imt-section-note { max-width: 380px; color: var(--imt-gris); font-size: 16px; margin: 0; }

/* ── Le râtelier : cartes debout sous un rail ───────────────────────── */
.imt-ratelier { counter-reset: imt-carte; }
.imt-rangee {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 44px 28px;
    padding-top: 30px;
    margin-bottom: 56px;
}
.imt-rangee::before {
    content: "";
    position: absolute;
    left: -14px;
    right: -14px;
    top: 12px;
    height: 9px;
    background: var(--imt-tampon);
    z-index: 2;
}
.imt-rangee::after {
    content: "";
    position: absolute;
    left: -14px;
    right: -14px;
    top: 21px;
    height: 1px;
    background: var(--imt-ligne-2);
    z-index: 1;
}
.imt-rangee--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.imt-carte-wrap { position: relative; counter-increment: imt-carte; }
.imt-carte {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--imt-carton);
    border: 1px solid var(--imt-ligne-2);
    clip-path: polygon(0 0, calc(100% - var(--imt-encoche)) 0, 100% var(--imt-encoche), 100% 100%, 0 100%);
    transition: transform .25s ease;
}
.imt-carte-wrap:hover .imt-carte { transform: translateY(-6px); }
.imt-onglet {
    position: absolute;
    top: -22px;
    left: 18px;
    z-index: 1;
    width: 54px;
    height: 30px;
    background: var(--imt-carton-2);
    border: 1px solid var(--imt-ligne-2);
}
.imt-carte-photo { display: block; margin: 12px 12px 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--imt-carton-2); position: relative; }
.imt-carte-photo img { width: 100%; height: 100%; object-fit: cover; }
.imt-carte-photo::after { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(255, 255, 255, .65); pointer-events: none; }
.imt-carte-corps { display: flex; flex-direction: column; flex: 1; padding: 16px 16px 18px; }
.imt-carte-ligne { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-family: var(--imt-etiq); font-weight: 600; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--imt-gris); padding-bottom: 10px; border-bottom: 1px solid var(--imt-ligne-2); }
.imt-carte-ligne::before { content: "L·" counter(imt-carte, imt-ligne); color: var(--imt-encre); font-variant-numeric: tabular-nums; }
.imt-carte-ligne a { text-decoration: none; color: var(--imt-tampon); }
.imt-carte-ligne a:hover { text-decoration: underline; }
.imt-carte h2, .imt-carte h3 { font-size: 20px; line-height: 1.25; margin: 12px 0 16px; letter-spacing: -0.005em; }
.imt-carte h2 a, .imt-carte h3 a { text-decoration: none; }
.imt-carte h2 a:hover, .imt-carte h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.imt-carte-pied { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.imt-carte-pied span { font-family: var(--imt-etiq); font-size: 12.5px; letter-spacing: 0.06em; color: var(--imt-gris); }
.imt-vide { padding: 40px 0; color: var(--imt-gris); font-size: 18px; }

/* ── Le registre de la rédaction ────────────────────────────────────── */
.imt-registre-section { padding: 0 0 104px; }
.imt-registre {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    border: 1px solid var(--imt-ligne-2);
    background:
        repeating-linear-gradient(to bottom, transparent 0, transparent 33px, var(--imt-ligne) 33px, var(--imt-ligne) 34px) 0 -7px / 100% 100%,
        var(--imt-blanc);
}
.imt-registre-marge { border-right: 3px double var(--imt-ligne-2); padding: 44px 30px; display: flex; flex-direction: column; justify-content: space-between; gap: 30px; background: var(--imt-carton); }
.imt-registre-marge .imt-titre-section { margin-top: 14px; }
.imt-registre-corps { padding: 34px 52px 34px; max-width: 760px; }
.imt-registre-corps .imt-bouton { line-height: 1; padding: 11px 22px 10px; vertical-align: top; }
.imt-registre-corps p { font-size: 17.5px; line-height: 34px; margin: 0 0 34px; }
.imt-registre-corps .imt-independance { font-family: var(--imt-titre); font-size: 18.5px; color: var(--imt-encre); }
.imt-registre-role { display: block; margin-bottom: 34px; line-height: 34px; }

/* ── Les casiers : rubriques et formats ─────────────────────────────── */
.imt-casiers-section { background: var(--imt-carton); border-top: 1px solid var(--imt-ligne); border-bottom: 1px solid var(--imt-ligne); }
.imt-casiers { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border: 2px solid var(--imt-encre); background: var(--imt-blanc); counter-reset: imt-casier; }
.imt-casier {
    counter-increment: imt-casier;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 360px;
    padding: 18px 20px 22px;
    text-decoration: none;
    border-right: 2px solid var(--imt-encre);
    transition: background .2s ease;
}
.imt-casier:last-child { border-right: 0; }
.imt-casier:hover { background: var(--imt-carton); }
.imt-casier-plaque { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px 5px; border: 1.5px solid var(--imt-encre); font-family: var(--imt-etiq); font-weight: 700; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; }
.imt-casier-plaque::before { content: "N° " counter(imt-casier, imt-numero); font-variant-numeric: tabular-nums; }
.imt-ouies { display: grid; gap: 6px; margin: 22px 0 26px; }
.imt-ouies i { display: block; height: 5px; background: var(--imt-encre); width: 64%; }
.imt-picto { width: 34px; height: 34px; stroke: var(--imt-tampon); stroke-width: 1.6; fill: none; stroke-linecap: square; margin-bottom: 14px; }
.imt-casier h3 { font-size: 22px; margin-bottom: 10px; }
.imt-casier p { font-size: 15px; line-height: 1.5; color: var(--imt-gris); margin: 0 0 18px; }
.imt-casier-pied { margin-top: auto; display: flex; justify-content: space-between; align-items: center; font-family: var(--imt-etiq); font-weight: 600; font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--imt-tampon); }
.imt-casier-pied svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.8; fill: none; }
.imt-casier--rubrique { background: var(--imt-tampon); color: #fff; }
.imt-casier--rubrique:hover { background: var(--imt-tampon-fonce); }
.imt-casier--rubrique h3, .imt-casier--rubrique p, .imt-casier--rubrique .imt-casier-pied { color: #fff; }
.imt-casier--rubrique .imt-casier-plaque { border-color: #fff; }
.imt-casier--rubrique .imt-ouies i { background: #fff; opacity: .8; }
.imt-casier--rubrique .imt-picto { stroke: #fff; }

/* ── Bandeau des pages internes (photo voilée) ──────────────────────── */
.imt-bandeau { position: relative; color: #fff; background: var(--imt-encre); overflow: hidden; }
.imt-bandeau-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35); }
.imt-bandeau::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(28, 28, 26, .9) 0%, rgba(28, 28, 26, .8) 46%, rgba(28, 28, 26, .4) 100%); }
.imt-bandeau-in { position: relative; z-index: 2; padding-top: 70px; padding-bottom: 66px; }
.imt-bandeau .imt-ariane, .imt-bandeau .imt-ariane a { color: rgba(255, 255, 255, .88); }
.imt-bandeau .imt-capitales { color: rgba(255, 255, 255, .9); }
.imt-page-titre { color: #fff; font-size: clamp(38px, 5vw, 62px); letter-spacing: -0.02em; margin-top: 18px; max-width: 820px; }

.imt-ariane { display: flex; flex-wrap: wrap; gap: 8px; font-family: var(--imt-etiq); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--imt-gris); }
.imt-ariane a { text-decoration: none; }
.imt-ariane a:hover { text-decoration: underline; }
.imt-ariane [aria-current] { opacity: .75; }

/* ── Archive ────────────────────────────────────────────────────────── */
.imt-archive-tete { padding: 56px 0 72px; border-bottom: 1px solid var(--imt-ligne); margin-bottom: 64px; }
.imt-archive-grille-tete { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 60px; align-items: end; }
.imt-archive-titre { font-size: clamp(48px, 7vw, 92px); letter-spacing: -0.03em; line-height: 0.98; margin: 22px 0 22px; }
.imt-archive-desc { max-width: 620px; font-size: 18px; color: var(--imt-gris); }
.imt-archive-desc p:last-child { margin-bottom: 0; }
.imt-archive-meta { display: flex; align-items: center; gap: 16px; margin-top: 26px; }
.imt-archive-photo { aspect-ratio: 3 / 4; overflow: hidden; position: relative; background: var(--imt-carton-2); clip-path: polygon(0 0, calc(100% - var(--imt-encoche)) 0, 100% var(--imt-encoche), 100% 100%, 0 100%); }
.imt-archive-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Bloc éditorial de bas d'archive */
.imt-seo { padding: 40px 0 104px; }
.imt-seo-titre { font-size: clamp(30px, 3.4vw, 42px); letter-spacing: -0.02em; margin-bottom: 34px; max-width: 760px; }
.imt-seo-inner { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; align-items: center; }
.imt-seo-texte { font-size: 17px; }
.imt-seo-texte ul { margin: 0 0 1.2em; }
.imt-seo-texte li { position: relative; padding-left: 22px; margin-bottom: 10px; }
.imt-seo-texte li::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 6px; height: 10px; background: linear-gradient(var(--imt-tampon), var(--imt-tampon)) 0 0 / 2px 10px no-repeat, linear-gradient(var(--imt-tampon), var(--imt-tampon)) 4px 0 / 2px 10px no-repeat; }
.imt-seo-media { aspect-ratio: 3 / 4; overflow: hidden; position: relative; }
.imt-seo-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.imt-seo-media:hover img { transform: scale(1.03); }
.imt-seo-media::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255, 255, 255, .7); pointer-events: none; }

/* ── Article ────────────────────────────────────────────────────────── */
.imt-article-tete { padding: 44px 0 0; }
.imt-fiche {
    position: relative;
    background: var(--imt-carton);
    border: 1px solid var(--imt-ligne-2);
    clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%);
    padding: 34px 56px 40px;
}
.imt-fiche-haut { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 16px; border-bottom: 2px solid var(--imt-encre); }
.imt-fiche-rubrique { font-family: var(--imt-etiq); font-weight: 700; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--imt-tampon); text-decoration: none; display: inline-flex; gap: 10px; align-items: center; }
.imt-article-titre { font-size: clamp(34px, 4.6vw, 58px); letter-spacing: -0.02em; line-height: 1.08; margin: 30px 0 30px; max-width: 980px; }
.imt-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; font-family: var(--imt-etiq); font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--imt-gris); }
.imt-article-meta .kk-star-ratings { margin: 0; }
.imt-article { padding: 48px 0 40px; }
.imt-lecture { max-width: var(--imt-mesure); margin-inline: auto; }
.imt-article-image { max-width: 980px; margin: 0 auto 52px; position: relative; }
.imt-article-image img { width: 100%; max-height: 600px; object-fit: cover; }
.imt-article-image::after { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(255, 255, 255, .7); pointer-events: none; }

/* Corps de texte */
.entry-content { font-size: 18px; line-height: 1.72; }
.entry-content > * + * { margin-top: 0; }
.entry-content h2 { font-size: 30px; margin: 1.9em 0 0.6em; letter-spacing: -0.015em; padding-top: 18px; border-top: 2px solid var(--imt-encre); }
.entry-content h3 { font-size: 23px; margin: 1.6em 0 0.5em; }
.entry-content h4 { font-family: var(--imt-etiq); font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; margin: 1.5em 0 0.5em; }
.entry-content p { margin: 0 0 1.25em; }
.entry-content a { color: var(--imt-tampon); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.entry-content a:hover { text-decoration-thickness: 2px; }
.entry-content strong { font-weight: 600; }
.entry-content img { margin: 1.6em 0; }
.entry-content figure { margin: 1.6em 0; }
.entry-content figcaption { font-size: 14px; color: var(--imt-gris); margin-top: 8px; }
/* ── Bullets décoratifs entry-content : la fente de la pointeuse ───── */
.entry-content ul { list-style: none; padding-left: 0; margin-bottom: 1.4em; }
.entry-content ol { list-style: imt-etape; padding-left: 2.2em; margin-bottom: 1.4em; }
.entry-content ol li::marker { font-family: var(--imt-etiq); font-weight: 700; color: var(--imt-tampon); }
.entry-content ul li { position: relative; padding-left: 1.4em; margin-bottom: 0.5em; }
.entry-content ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 10px;
    background:
        linear-gradient(var(--imt-tampon), var(--imt-tampon)) 0 0 / 2px 10px no-repeat,
        linear-gradient(var(--imt-tampon), var(--imt-tampon)) 4px 0 / 2px 10px no-repeat;
    flex-shrink: 0;
}
.entry-content ol li { margin-bottom: 0.5em; padding-left: 0.3em; }
.entry-content blockquote { margin: 1.8em 0; padding: 22px 26px; background: var(--imt-carton); border-top: 3px double var(--imt-ligne-2); border-bottom: 1px solid var(--imt-ligne-2); font-family: var(--imt-titre); font-size: 21px; line-height: 1.5; }
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: 15.5px; line-height: 1.45; display: block; overflow-x: auto; }
.entry-content thead th { font-family: var(--imt-etiq); font-weight: 700; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; border-bottom: 2px solid var(--imt-encre); padding: 10px 12px; background: var(--imt-carton); }
.entry-content td { border-bottom: 1px solid var(--imt-ligne); padding: 10px 12px; vertical-align: top; }
.entry-content .ez-toc-container, .entry-content #ez-toc-container { background: var(--imt-carton); border: 1px solid var(--imt-ligne-2); border-radius: 0; padding: 18px 22px; }

.imt-etiquettes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.imt-etiquettes a { font-family: var(--imt-etiq); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; border: 1px solid var(--imt-ligne-2); padding: 6px 10px; }
.imt-etiquettes a:hover { border-color: var(--imt-tampon); color: var(--imt-tampon); }

/* Bloc de signature */
.author-block.imt-signature { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 26px; align-items: start; margin-top: 56px; padding: 28px 30px; border: 1px solid var(--imt-ligne-2); border-top: 3px double var(--imt-ligne-2); background: var(--imt-carton); }
.imt-signature .imt-horo { margin-top: 6px; }
.imt-signature h2 { font-size: 22px; margin-bottom: 4px; }
.imt-signature .imt-capitales { display: block; margin-bottom: 10px; }
.imt-signature p { margin: 0; font-size: 16px; color: var(--imt-gris); }

.imt-similaires { padding: 64px 0 96px; border-top: 1px solid var(--imt-ligne); }

/* ── Pages ──────────────────────────────────────────────────────────── */
.imt-page { padding: 64px var(--imt-gouttiere) 96px; }
.imt-page-corps { max-width: 780px; margin: 0 auto; }

/* À propos */
.imt-apropos { padding: 72px var(--imt-gouttiere) 104px; }
.imt-apropos-grille { display: grid; grid-template-columns: 260px minmax(0, 720px); gap: 72px; justify-content: center; }
.imt-apropos-marge { position: sticky; top: 120px; align-self: start; }
.imt-apropos-marge .imt-carte-mini { background: var(--imt-carton); border: 1px solid var(--imt-ligne-2); clip-path: polygon(0 0, calc(100% - var(--imt-encoche)) 0, 100% var(--imt-encoche), 100% 100%, 0 100%); padding: 20px; }
.imt-apropos-marge .imt-carte-mini p { font-size: 14px; color: var(--imt-gris); margin: 14px 0 0; line-height: 1.5; }
.imt-apropos-corps h2 { font-size: 30px; margin: 46px 0 16px; padding-top: 16px; border-top: 2px solid var(--imt-encre); }
.imt-apropos-corps h2:first-child { margin-top: 0; }
.imt-apropos-corps p { font-size: 17.5px; }
.imt-apropos-corps a:not(.imt-bouton) { color: var(--imt-tampon); text-decoration: underline; text-underline-offset: 3px; }
.imt-puces li { position: relative; padding-left: 22px; margin-bottom: 10px; }
.imt-puces li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 6px; height: 10px; background: linear-gradient(var(--imt-tampon), var(--imt-tampon)) 0 0 / 2px 10px no-repeat, linear-gradient(var(--imt-tampon), var(--imt-tampon)) 4px 0 / 2px 10px no-repeat; }
.imt-reperes { display: grid; grid-template-columns: repeat(3, 1fr); border: 2px solid var(--imt-encre); margin: 10px 0 0; }
.imt-reperes div { padding: 18px 20px; border-right: 1px solid var(--imt-ligne-2); display: flex; flex-direction: column; }
.imt-reperes div:last-child { border-right: 0; }
.imt-reperes strong { font-family: var(--imt-titre); font-size: 40px; line-height: 1; font-variant-numeric: tabular-nums; }
.imt-reperes span { font-family: var(--imt-etiq); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--imt-gris); margin-top: 8px; }
.imt-apropos-photo { margin: 36px 0 10px; aspect-ratio: 16 / 10; overflow: hidden; position: relative; }
.imt-apropos-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Contact */
.imt-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; padding-top: 72px; padding-bottom: 104px; }
.imt-contact-intro h2 { font-size: 32px; margin-bottom: 20px; }
.imt-contact-intro p { color: var(--imt-gris); font-size: 17.5px; }
.imt-contact-intro .imt-horo { margin-top: 18px; }
.imt-contact-form { background: var(--imt-carton); border: 1px solid var(--imt-ligne-2); padding: 34px 36px; clip-path: polygon(0 0, calc(100% - var(--imt-encoche)) 0, 100% var(--imt-encoche), 100% 100%, 0 100%); }
.wpcf7-form p { display: flex; flex-direction: column; gap: 6px; margin: 0 0 18px; }
.wpcf7-form br { display: none; }
.wpcf7-form label { font-family: var(--imt-etiq); font-weight: 600; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; display: flex; flex-direction: column; gap: 6px; }
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form textarea {
    width: 100%; font-family: var(--imt-texte); font-size: 16px; text-transform: none; letter-spacing: 0;
    padding: 12px 14px; border: 1px solid var(--imt-ligne-2); background: #fff; color: var(--imt-encre); border-radius: 0;
}
.wpcf7-form textarea { min-height: 160px; resize: vertical; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus { outline: none; border-color: var(--imt-tampon); box-shadow: 0 0 0 2px rgba(77, 76, 64, .25); }
.wpcf7-form input[type=submit] { width: 100%; cursor: pointer; font-family: var(--imt-etiq); font-weight: 600; font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; background: var(--imt-tampon); color: #fff; border: 0; padding: 16px; border-radius: 0; }
.wpcf7-form input[type=submit]:hover { background: var(--imt-tampon-fonce); }
.wpcf7-response-output { font-size: 15px; }

/* Plan du site */
.imt-plan-site { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 40px; padding: 72px 0 104px; }
.imt-plan-bloc h2 { font-size: 22px; padding-bottom: 12px; border-bottom: 2px solid var(--imt-encre); margin-bottom: 14px; }
.imt-plan-bloc h2 a { text-decoration: none; }
.imt-plan-bloc ul { counter-reset: imt-plan; }
.imt-plan-bloc li { counter-increment: imt-plan; display: grid; grid-template-columns: 44px 1fr; gap: 6px; padding: 7px 0; border-bottom: 1px solid var(--imt-ligne); font-size: 15.5px; line-height: 1.4; }
.imt-plan-bloc li::before { content: "L·" counter(imt-plan, imt-ligne); font-family: var(--imt-etiq); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; color: var(--imt-gris); padding-top: 2px; }
.imt-plan-bloc a { text-decoration: none; }
.imt-plan-bloc a:hover { text-decoration: underline; color: var(--imt-tampon); }
.imt-vide-ligne { color: var(--imt-gris); }

/* ── Pied de page : le bas de carte ─────────────────────────────────── */
.imt-pied { background: var(--imt-tampon-fonce); color: #fff; }
.imt-pied-grille { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr)); gap: 48px; padding: 72px 0 56px; }
.imt-pied-marque .imt-wordmark { height: 42px; }
.imt-pied-marque p { margin: 22px 0 22px; font-size: 15px; line-height: 1.6; color: rgba(255, 255, 255, .82); max-width: 340px; }
.imt-pied-titre { font-family: var(--imt-etiq); font-weight: 700; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; padding-bottom: 12px; border-bottom: 1px solid rgba(255, 255, 255, .3); margin-bottom: 14px; }
.imt-pied-liste li { position: relative; padding-left: 18px; margin-bottom: 9px; font-size: 15px; line-height: 1.45; }
.imt-pied-liste li::before { content: ""; position: absolute; left: 0; top: 0.42em; width: 6px; height: 10px; background: linear-gradient(#fff, #fff) 0 0 / 2px 10px no-repeat, linear-gradient(#fff, #fff) 4px 0 / 2px 10px no-repeat; opacity: .7; }
.imt-pied-liste a { text-decoration: none; color: rgba(255, 255, 255, .9); }
.imt-pied-liste a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.imt-pied-bas { border-top: 3px double rgba(255, 255, 255, .35); padding: 20px var(--imt-gouttiere); text-align: center; font-family: var(--imt-etiq); font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, .78); }

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
    .imt-nav { gap: 18px; }
    .imt-nav a { font-size: 13.5px; letter-spacing: 0.08em; }
    .imt-casiers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .imt-casier { border-bottom: 2px solid var(--imt-encre); }
    .imt-casier:nth-child(3n) { border-right: 0; }
}
@media (max-width: 1060px) {
    .imt-nav { display: none; }
    .imt-burger { display: inline-flex; }
    .imt-nav-mobile {
        position: fixed; inset: 0; z-index: 100; background: var(--imt-blanc);
        display: flex; flex-direction: column; padding: 18px var(--imt-gouttiere) 34px;
        overflow-y: auto; transform: translateX(100%); visibility: hidden;
        transition: transform .3s ease, visibility 0s linear .3s;
    }
    .imt-nav-mobile.open { transform: none; visibility: visible; transition: transform .3s ease; }
    .imt-nav-mobile-haut { display: flex; justify-content: space-between; align-items: center; padding-bottom: 16px; border-bottom: 3px double var(--imt-ligne-2); }
    .imt-nav-logo { display: block; }
    .imt-nav-close { display: inline-flex; background: none; border: 0; padding: 8px; cursor: pointer; color: var(--imt-encre); }
    .imt-nav-mobile-liste { counter-reset: imt-mob; margin: 18px 0 30px; }
    .imt-nav-mobile-liste li { counter-increment: imt-mob; border-bottom: 1px solid var(--imt-ligne); }
    .imt-nav-mobile-liste a { display: flex; align-items: baseline; gap: 18px; padding: 16px 0; font-family: var(--imt-titre); font-weight: 700; font-size: 26px; text-decoration: none; }
    .imt-nav-mobile-liste a::before { content: "L·" counter(imt-mob, imt-ligne); font-family: var(--imt-etiq); font-weight: 600; font-size: 13px; letter-spacing: 0.08em; color: var(--imt-gris); min-width: 34px; }
    .imt-nav-mobile .imt-bouton { justify-content: center; }
    body.imt-nav-open { position: fixed; width: 100%; overflow: hidden; }

    .imt-ouverture-grille { grid-template-columns: 1fr; gap: 40px; }
    .imt-ouverture-media { max-width: 560px; padding-bottom: 0; }
    .imt-ouverture-photo { margin-left: 0; width: 72%; margin-left: auto; }
    .imt-carte-pointage { left: 0; bottom: -40px; width: min(360px, 78%); }
    .imt-ouverture { padding-bottom: 120px; }
    .imt-rangee { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .imt-rangee--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .imt-rangee::before, .imt-rangee::after { display: none; }
    .imt-carte-wrap { padding-top: 30px; }
    .imt-carte-wrap::before { content: ""; position: absolute; left: -8px; right: -8px; top: 12px; height: 9px; background: var(--imt-tampon); z-index: 2; }
    .imt-onglet { top: 8px; }
    .imt-registre { grid-template-columns: 1fr; }
    .imt-registre-marge { border-right: 0; border-bottom: 3px double var(--imt-ligne-2); }
    .imt-seo-inner { grid-template-columns: 1fr; }
    .imt-seo-media { order: -1; max-width: 420px; }
    .imt-archive-grille-tete { grid-template-columns: 1fr 200px; gap: 30px; }
    .imt-apropos-grille { grid-template-columns: 1fr; gap: 40px; }
    .imt-apropos-marge { position: static; max-width: 420px; }
    .imt-contact { grid-template-columns: 1fr; gap: 44px; }
    .imt-plan-site { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .imt-pied-grille { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    :root { --imt-gouttiere: 16px; }
    body { font-size: 16.5px; }
    .imt-tete-in { min-height: 66px; }
    .imt-wordmark { height: 34px; }
    .imt-ouverture { padding-top: 40px; }
    .imt-h1-but { margin-top: 18px; }
    .imt-stats { gap: 22px; flex-wrap: wrap; }
    .imt-stats strong { font-size: 30px; }
    .imt-ouverture-photo { width: 82%; }
    .imt-carte-pointage { width: 92%; position: relative; left: 0; bottom: 0; margin-top: -90px; }
    .imt-ouverture { padding-bottom: 72px; }
    .imt-section { padding: 72px 0; }
    .imt-section-tete { flex-direction: column; align-items: flex-start; margin-bottom: 34px; }
    .imt-rangee, .imt-rangee--3 { grid-template-columns: 1fr; gap: 26px; }
    .imt-carte { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
    .imt-carte-photo { margin: 12px 0 12px 12px; }
    .imt-carte-corps { padding: 12px 14px 14px; }
    .imt-carte h2, .imt-carte h3 { font-size: 18px; margin: 8px 0 12px; }
    .imt-registre-corps { padding: 30px 20px 10px; }
    .imt-registre-marge { padding: 30px 20px; }
    .imt-casiers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .imt-casier { min-height: 0; padding: 14px 14px 18px; border-right: 2px solid var(--imt-encre); }
    .imt-casier:nth-child(3n) { border-right: 2px solid var(--imt-encre); }
    .imt-casier:nth-child(2n) { border-right: 0; }
    .imt-casier:first-child { grid-column: 1 / -1; border-right: 0; }
    .imt-casier:first-child ~ .imt-casier:nth-child(2n) { border-right: 2px solid var(--imt-encre); }
    .imt-casier:first-child ~ .imt-casier:nth-child(2n+1) { border-right: 0; }
    .imt-casier h3 { font-size: 19px; }
    .imt-casier p { font-size: 14px; }
    .imt-ouies { margin: 14px 0 16px; }
    .imt-archive-grille-tete { grid-template-columns: 1fr; }
    .imt-archive-photo { max-width: 220px; }
    .imt-fiche { padding: 24px 20px 28px; }
    .imt-fiche-haut { flex-wrap: wrap; }
    .imt-bandeau-in { padding-top: 48px; padding-bottom: 46px; }
    .entry-content { font-size: 17px; }
    .entry-content h2 { font-size: 25px; }
    .author-block.imt-signature { grid-template-columns: 1fr; gap: 14px; padding: 22px 20px; }
    .imt-reperes { grid-template-columns: 1fr; }
    .imt-reperes div { border-right: 0; border-bottom: 1px solid var(--imt-ligne-2); }
    .imt-reperes div:last-child { border-bottom: 0; }
    .imt-contact-form { padding: 26px 18px; }
    .imt-plan-site { grid-template-columns: 1fr; }
    .imt-pied-grille { grid-template-columns: 1fr; gap: 34px; text-align: center; }
    .imt-pied-marque p { margin-left: auto; margin-right: auto; }
    .imt-pied-liste li { padding-left: 0; }
    .imt-pied-liste li::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; }
}
