/* EmploiZen — modèles de lettres de motivation (A4, tailles en pt/mm pour un rendu identique écran / PDF). */
.lt {
  --c: #16a34a; --font: "Inter"; --fs: 10.5pt; --lh: 1.45; --pad: 20mm;
  --ink: #1f2933; --mute: #5f6b76; --line: #e3e8ec;
  --soft: #e3f4ea; --soft2: #f1faf5; --deep: #12632f; --tint: #b9e3c9; --grad2: #9fb0a0;
  position: relative; box-sizing: border-box; width: 210mm; min-height: 297mm; background: #fff; color: var(--ink);
  font-family: var(--font), "Helvetica Neue", Arial, sans-serif; font-size: var(--fs); line-height: var(--lh);
  -webkit-print-color-adjust: exact; print-color-adjust: exact; text-align: left; overflow: hidden; display: flex; flex-direction: column;
}
.lt *, .lt *::before, .lt *::after { box-sizing: border-box; }
.lt p { margin: 0; }
.lt-main { padding: var(--pad); flex: 1 0 auto; }
.lt-head + .lt-main { padding-top: 9mm; }
.lt-name { font-size: 1.75em; font-weight: 800; line-height: 1.1; }
.lt-title { color: var(--c); font-weight: 600; margin-top: 1mm; }
.lt-coords { margin-top: 2mm; color: var(--mute); font-size: .9em; display: flex; flex-wrap: wrap; gap: .6mm 0; }
.lt-coords span + span::before { content: "·"; margin: 0 2mm; }
.lt-sender--block { margin-bottom: 9mm; }
.lt-sender--block .lt-coords { display: block; } .lt-sender--block .lt-coords span { display: block; } .lt-sender--block .lt-coords span + span::before { content: none; }
.lt-top { display: flex; flex-direction: column; align-items: flex-end; text-align: left; gap: 6mm; }
.lt-recipient { min-width: 70mm; max-width: 95mm; }
.lt-date { color: var(--ink); }
.lt-subject { margin: 0; }
.lt-salut { margin: 0; }
.lt-body p { margin-bottom: 3.6mm; text-align: justify; hyphens: auto; }
.lt-closing { margin: 0; }
.lt-sign { display: flex; flex-direction: column; align-items: flex-end; break-inside: avoid; }
.lt-sign__img { height: 18mm; max-width: 65mm; object-fit: contain; display: block; margin-bottom: 1mm; }
.lt-sign__name { font-weight: 600; }
.lt-ps { margin-top: 6mm; color: var(--mute); font-size: .95em; }
.lt .cv-num { font-weight: 700; color: var(--deep); }
.lt .cv-brand { position: absolute; bottom: 5mm; left: 0; right: 0; text-align: center; font-size: 7pt; color: #9aa5b1; }

/* 1. Classique — norme française (expéditeur en haut à gauche, destinataire à droite) */
.lt-classique .lt-name { font-size: 1.3em; font-weight: 700; }
.lt-classique .lt-title { color: var(--ink); font-weight: 500; }
.lt-classique .lt-subject b { color: var(--c); }

/* 2. Moderne — bandeau couleur (assorti au CV Moderne) */
.lt-head--band { background: var(--c); color: #fff; padding: 11mm var(--pad) 9mm; }
.lt-head--band .lt-title, .lt-head--band .lt-coords { color: #fff; opacity: .92; }
.lt-moderne .lt-subject b { color: var(--c); }

/* 3. Zen — sobriété totale */
.lt-zen .lt-name { font-size: 1.45em; font-weight: 700; }
.lt-zen .lt-title { color: var(--ink); font-weight: 500; }
.lt-zen .lt-body p { text-align: left; }

/* 4. Exécutif — centré, filet double */
.lt-head--center { text-align: center; padding: var(--pad) var(--pad) 6mm; margin: 0 var(--pad); border-bottom: .8mm double var(--c); padding-left: 0; padding-right: 0; }
.lt-head--center .lt-name { color: var(--c); font-weight: 700; letter-spacing: .02em; }
.lt-head--center .lt-title { color: var(--ink); font-style: italic; font-weight: 400; }
.lt-head--center .lt-coords { justify-content: center; }
.lt-executive .lt-subject b { color: var(--c); }

/* 5. Finance — filet de couleur sous le nom, chiffres en valeur */
.lt-head--rule { padding: var(--pad) 0 4mm; margin: 0 var(--pad); border-bottom: .7mm solid var(--c); }
.lt-head--rule .lt-name { color: var(--c); font-weight: 700; }
.lt-head--rule .lt-title { color: var(--ink); }
.lt-finance .lt-subject b { color: var(--c); text-transform: uppercase; letter-spacing: .06em; font-size: .92em; }

/* 6. Audit — capitales, filet fin */
.lt-head--caps { padding: var(--pad) 0 3.5mm; margin: 0 var(--pad); border-bottom: .25mm solid var(--line); }
.lt-head--caps .lt-name { text-transform: uppercase; letter-spacing: .08em; font-size: 1.55em; }
.lt-head--caps .lt-title { text-transform: uppercase; letter-spacing: .05em; font-weight: 700; font-size: .95em; }
.lt-audit .lt-subject { border-left: 1mm solid var(--c); padding-left: 3mm; }

/* 7. Horizon — colonne latérale colorée */
.lt-cols { display: grid; grid-template-columns: 58mm 1fr; flex: 1 0 auto; }
.lt-aside { background: var(--deep); color: #fff; padding: var(--pad) 7mm; }
.lt-sender--side .lt-name { font-size: 1.45em; }
.lt-sender--side .lt-title { color: var(--tint); }
.lt-sender--side .lt-coords { display: block; color: #fff; opacity: .9; margin-top: 6mm; }
.lt-sender--side .lt-coords span { display: block; margin-bottom: 1.6mm; overflow-wrap: anywhere; }
.lt-sender--side .lt-coords span + span::before { content: none; }
.lt-horizon .lt-main { padding-left: 11mm; }
.lt-horizon .lt-subject b { color: var(--c); }

/* 8. Nordique — bandeau gris doux */
.lt-head--soft { background: #f3f5f7; padding: 11mm var(--pad) 8mm; border-bottom: .4mm solid var(--c); }
.lt-head--soft .lt-name { font-weight: 300; font-size: 1.95em; letter-spacing: .01em; }
.lt-head--soft .lt-title { color: var(--c); text-transform: uppercase; letter-spacing: .08em; font-size: .85em; }

/* 9. Aurore — dégradé */
.lt-head--gradient { background: linear-gradient(120deg, var(--c), var(--grad2)); color: #fff; padding: 11mm var(--pad) 9mm; border-bottom-right-radius: 12mm; }
.lt-head--gradient .lt-title, .lt-head--gradient .lt-coords { color: #fff; opacity: .92; }
.lt-aurore .lt-subject b { color: var(--c); }

/* 10. International — format anglo-saxon (date et destinataire à gauche) */
.lt-head--anglo { padding: var(--pad) var(--pad) 5mm; text-align: right; border-bottom: .3mm solid var(--line); margin-bottom: 0; }
.lt-head--anglo .lt-coords { justify-content: flex-end; }
.lt-international .lt-date { margin-bottom: 6mm; }
.lt-international .lt-recipient { margin-bottom: 0; }
.lt-international .lt-body p { text-align: left; }
.lt-international .lt-sign { align-items: flex-start; }

/* Éditeur */
.lt--interactive .lt-body p { border-radius: 4px; transition: background .15s; cursor: text; }
.lt--interactive .lt-body p:hover { background: rgba(34, 197, 94, .08); }

/* Éditeur : espacements à la souris, édition directe, glisser-déposer */
.lt-gap { position: relative; }
.lt-sign__img, .lt-sign__name { position: relative; }
.lt--interactive .lt-gap { cursor: ns-resize; min-height: 2mm; }
.lt--interactive .lt-gap:hover, .lt--interactive .lt-gap.is-drag { background: repeating-linear-gradient(90deg, rgba(34,197,94,.55) 0 6px, transparent 6px 11px) center / 100% 1.5px no-repeat; }
.lt-gap__h { display: none; position: absolute; right: -8mm; top: 50%; transform: translateY(-50%); width: 6mm; height: 6mm; border-radius: 50%; background: #16a34a; color: #fff; font-size: 9pt; line-height: 6mm; text-align: center; user-select: none; }
.lt--interactive .lt-gap:hover .lt-gap__h, .lt--interactive .lt-gap.is-drag .lt-gap__h { display: block; }
.lt--interactive [data-edit] { outline: none; border-radius: 3px; transition: background .12s, box-shadow .12s; cursor: text; }
.lt--interactive [data-edit]:hover { background: rgba(34, 197, 94, .07); }
.lt--interactive [data-edit]:focus { background: rgba(34, 197, 94, .1); box-shadow: 0 0 0 1.5px rgba(34, 197, 94, .55); }
.lt--interactive .lt-body p { position: relative; }
.lt-grip { white-space: nowrap; position: absolute; left: -7mm; top: 0; width: 5mm; text-align: center; color: #94a3b8; cursor: grab; opacity: 0; user-select: none; font-weight: 800; letter-spacing: -2px; }
.lt--interactive .lt-body p:hover .lt-grip, .lt--interactive .lt-body p:focus .lt-grip { opacity: 1; }
.lt--interactive .lt-body .sortable-ghost { opacity: .35; background: rgba(34, 197, 94, .12); }
.lt--interactive [data-drag] { cursor: move; touch-action: none; }
.lt--interactive [data-drag]:hover { outline: 1.5px dashed rgba(34, 197, 94, .7); outline-offset: 2px; }
.lt--interactive [data-drag].is-drag { outline: 1.5px solid #16a34a; }
.lt--interactive .lt-body p { min-height: 1.4em; }
