/* Tempus Belli Blocks : styles du bloc Content Box (chargé uniquement quand le bloc est présent). Dépend de style.css. */
/* ===== Content Box (1.4.0) ===== */
/* Content Box : carte flexible (image à côté, dessus/dessous ou en fond) ; tout est piloté par des variables --cb-*. */
.tbb-cb { --_ir: var(--cb-ir, var(--cb-r, 14px)); position: relative; display: flex; align-items: stretch; gap: var(--cb-gap, 14px); box-sizing: border-box; min-height: var(--cb-mh, 0); max-width: var(--cb-mw, none); margin-inline: auto; width: 100%; background: var(--cb-bg, var(--tbb-surface, #fff)) !important; border-radius: var(--cb-r, 14px); border: var(--cb-bw, 0) solid var(--cb-border-c, var(--tbb-line, #e3e5ea)); overflow: hidden; color: var(--cb-text-c, var(--tbb-text, var(--tbb-ink))); }
.tbb-cb--shadow { box-shadow: var(--tbb-shadow, 0 10px 28px -14px rgba(16, 18, 24, .28)); }
.tbb-cb--right { flex-direction: row-reverse; }
.tbb-cb--left { flex-direction: row; }
.tbb-cb--top { flex-direction: column; }
.tbb-cb--bottom { flex-direction: column-reverse; }
.tbb-cb__media { position: relative; flex: 0 0 var(--cb-ip, 50%); max-width: var(--cb-ip, 50%); margin: var(--cb-ii, 0); overflow: hidden; border-radius: var(--_ir); min-height: 220px; }
.tbb-cb--top .tbb-cb__media, .tbb-cb--bottom .tbb-cb__media { flex: 0 0 auto; max-width: none; min-height: 240px; }
.tbb-cb .tbb-cb__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--cb-fx, 50%) var(--cb-fy, 50%); display: block; margin: 0; border-radius: 0; filter: var(--tbb-img-filter, none); transition: transform .7s cubic-bezier(.2, .7, .2, 1), filter .5s ease; }
.tbb-cb:hover .tbb-cb__img { filter: var(--tbb-img-filter-h, var(--tbb-img-filter, none)); }
.tbb-cb--zoom:hover .tbb-cb__img { transform: scale(1.06); }
/* Zone de texte : alignements horizontal (a-) et vertical (v-). */
.tbb-cb__body { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: var(--cb-gap, 14px); padding: var(--cb-pad, 30px); box-sizing: border-box; position: relative; z-index: 1; }
.tbb-cb--v-start .tbb-cb__body { justify-content: flex-start; }
.tbb-cb--v-center .tbb-cb__body { justify-content: center; }
.tbb-cb--v-end .tbb-cb__body { justify-content: flex-end; }
.tbb-cb--a-left .tbb-cb__body { align-items: flex-start; text-align: left; }
.tbb-cb--a-center .tbb-cb__body { align-items: center; text-align: center; }
.tbb-cb--a-right .tbb-cb__body { align-items: flex-end; text-align: right; }
.tbb .tbb-cb__title { margin: 0; padding: 0; font-size: var(--cb-ts, clamp(1.4rem, 2.2vw, 1.9rem)); font-weight: var(--cb-tw, 800); line-height: 1.2; text-transform: var(--cb-tt, none); color: var(--cb-title-c, var(--tbb-ink)) !important; overflow-wrap: anywhere; }
.tbb .tbb-cb__sub { margin: 0; font-size: .85rem; letter-spacing: .02em; text-transform: var(--cb-st, none); color: var(--cb-sub-c, var(--tbb-muted)) !important; }
.tbb-cb--ital .tbb-cb__sub { font-style: italic; }
.tbb .tbb-cb__text { font-size: var(--cb-xs, 1rem); line-height: 1.65; color: var(--cb-text-c, var(--tbb-text, var(--tbb-ink))) !important; max-width: 100%; }
.tbb .tbb-cb__text a, .tbb .tbb-cb__sub a, .tbb .tbb-cb__title a { color: var(--cb-link-c, currentColor) !important; text-decoration: underline; text-underline-offset: 3px; }
.tbb-cb .tbb-cb__rule { display: block; flex: none; width: var(--cb-rw, 100%); min-width: 0; height: max(var(--_h), 2px); align-self: stretch; margin: 0; }
.tbb-cb--a-center .tbb-cb__rule { align-self: center; }
.tbb-cb--a-left .tbb-cb__rule { align-self: flex-start; }
.tbb-cb--a-right .tbb-cb__rule { align-self: flex-end; }
.tbb-cb__rule::after { display: none !important; }
.tbb-cb__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.tbb-cb--a-center .tbb-cb__btns { justify-content: center; }
.tbb-cb--a-right .tbb-cb__btns { justify-content: flex-end; }
/* Boutons : plein, contour ou lien ; couleurs et survol réglables par bouton. */
.tbb .tbb-cb__btn { --_b: var(--cb-b1-bg, var(--tbb-accent, #c4161c)); --_c: var(--cb-b1-c, #fff); --_hb: var(--cb-b1-hbg, var(--_b)); --_hc: var(--cb-b1-hc, #fff); display: inline-flex; align-items: center; gap: .5em; padding: .7em 1.3em; border: 2px solid var(--_b); border-radius: var(--cb-br, 8px); background: var(--_b) !important; color: var(--_c) !important; font-weight: 700; font-size: .92rem; line-height: 1.2; text-decoration: none !important; transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease; }
.tbb .tbb-cb__btn--n2 { --_b: var(--cb-b2-bg, var(--tbb-ink, #16181d)); --_c: var(--cb-b2-c, #fff); --_hb: var(--cb-b2-hbg, var(--_b)); --_hc: var(--cb-b2-hc, #fff); }
.tbb .tbb-cb__btn i { font-style: normal; transition: transform .25s ease; display: none; }
.tbb-cb--arrow .tbb-cb__btn i { display: inline; }
.tbb .tbb-cb__btn:hover i { transform: translateX(4px); }
.tbb .tbb-cb__btn--outline { background: transparent !important; color: var(--cb-b1-c, var(--_b)) !important; }
.tbb .tbb-cb__btn--n2.tbb-cb__btn--outline { color: var(--cb-b2-c, var(--_b)) !important; }
.tbb .tbb-cb__btn--link { background: transparent !important; border-color: transparent; padding-inline: .2em; color: var(--cb-b1-c, var(--_b)) !important; text-decoration: underline !important; text-underline-offset: 4px; }
.tbb .tbb-cb__btn--n2.tbb-cb__btn--link { color: var(--cb-b2-c, var(--_b)) !important; }
.tbb .tbb-cb__btn:hover { background: var(--_hb) !important; color: var(--_hc) !important; border-color: var(--_hb); transform: translateY(-1px); }
.tbb .tbb-cb__btn--link:hover { background: transparent !important; border-color: transparent; color: var(--_hb) !important; }
.tbb-cb--btn-s .tbb-cb__btn { font-size: .8rem; padding: .5em 1em; }
.tbb-cb--btn-l .tbb-cb__btn { font-size: 1.05rem; padding: .9em 1.7em; }
/* Image en arrière-plan */
.tbb-cb--bg { min-height: var(--cb-mh, 340px); }
.tbb-cb__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.tbb-cb__ov { position: absolute; inset: 0; z-index: 0; background: var(--cb-ov-c, #0b0d12); opacity: var(--cb-ov-o, .55); }
.tbb-cb--bg .tbb-cb__body { --tbb-ink: #fff; --tbb-text: rgba(255, 255, 255, .92); --tbb-muted: rgba(255, 255, 255, .78); flex: 1 1 100%; }
.tbb-cb--bg { background: #0b0d12 !important; }
.tbb-cb--noimg .tbb-cb__body { flex: 1 1 100%; }
.tbb-cb--bg.tbb-cb--noimg { background: var(--cb-bg, var(--tbb-surface, #fff)) !important; }
.tbb-cb--bg.tbb-cb--noimg .tbb-cb__body { --tbb-ink: #16181d; --tbb-text: #16181d; --tbb-muted: #5b6270; }
@media (max-width: 720px) {
	.tbb-cb--right, .tbb-cb--left { flex-direction: column; }
	.tbb-cb--right .tbb-cb__media, .tbb-cb--left .tbb-cb__media { flex: 0 0 auto; max-width: none; min-height: 220px; }
	.tbb-cb__body { padding: calc(var(--cb-pad, 30px) * .75); }
}
.tbb .tbb-cb__btn--solid:hover { filter: brightness(.93); }
.tbb-cb--bg .tbb-cb__btn--n2.tbb-cb__btn--solid { --_c: var(--cb-b2-c, #16181d); }
.tbb.tbb-cb { padding: 0 !important; box-sizing: border-box; }
.tbb-cb .tbb-cb__media, .tbb-cb .tbb-cb__bg { padding: 0 !important; }
.tbb-cb .tbb-cb__media { box-sizing: border-box; }

/* ===== Content Box : carte sur l'image + styles de titre (1.7.0) ===== */
.tbb-cb--card-l, .tbb-cb--card-r { background: transparent !important; min-height: var(--cb-mh, 440px); align-items: flex-start; }
.tbb-cb--card-r { justify-content: flex-end; }
.tbb-cb--card-l .tbb-cb__bg, .tbb-cb--card-r .tbb-cb__bg { position: absolute; inset: 0; z-index: 0; border-radius: var(--_ir); }
.tbb-cb__bg.tbb-cb__media { flex: none; max-width: none; margin: 0; min-height: 0; display: flex; align-items: center; justify-content: center; }
.tbb-cb--card-l .tbb-cb__body, .tbb-cb--card-r .tbb-cb__body { flex: 0 0 var(--cb-cw, 52%); width: var(--cb-cw, 52%); max-width: 100%; margin-block: var(--cb-ci, 36px); align-self: flex-start; background: var(--cb-bg, var(--tbb-surface, #fbfaf6)); border-radius: var(--cb-r, 14px); }
.tbb-cb--card-l.tbb-cb--noimg, .tbb-cb--card-r.tbb-cb--noimg { background: rgba(127, 127, 127, .14) !important; }
.tbb-cb--card-l .tbb-cb__body { margin-left: 0; }
.tbb-cb--card-r .tbb-cb__body { margin-right: 0; }
.tbb-cb--card-l.tbb-cb--shadow, .tbb-cb--card-r.tbb-cb--shadow { box-shadow: none; }
.tbb-cb--card-l.tbb-cb--shadow .tbb-cb__body, .tbb-cb--card-r.tbb-cb--shadow .tbb-cb__body { box-shadow: 0 18px 40px -14px rgba(16, 18, 24, .45); }
@media (max-width: 720px) {
	.tbb-cb--card-l, .tbb-cb--card-r { min-height: 0; flex-direction: column; justify-content: flex-start; padding-top: 170px !important; }
	.tbb-cb--card-l .tbb-cb__body, .tbb-cb--card-r .tbb-cb__body { flex: 0 0 auto; width: auto; margin: 0 14px 14px; align-self: stretch; }
	.tbb-cb--card-l .tbb-cb__bg, .tbb-cb--card-r .tbb-cb__bg { bottom: auto; height: 260px; }
}
/* Caractère du titre */
.tbb-cb--tf-serif .tbb-cb__title { font-family: Georgia, "Times New Roman", serif; letter-spacing: 0; }
.tbb-cb--tf-tight .tbb-cb__title { letter-spacing: -.04em; font-stretch: condensed; }
.tbb-cb--tf-wide .tbb-cb__title { letter-spacing: .14em; }
/* Styles de titre */
.tbb-cb--ts-brackets .tbb-cb__title, .tbb-cb--ts-badge .tbb-cb__title, .tbb-cb--ts-boxed .tbb-cb__title, .tbb-cb--ts-bar .tbb-cb__title { box-sizing: border-box; max-width: 100%; }
.tbb-cb--ts-brackets .tbb-cb__title { position: relative; padding: .28em .75em; }
.tbb-cb--ts-brackets .tbb-cb__title::before, .tbb-cb--ts-brackets .tbb-cb__title::after { content: ""; position: absolute; width: .6em; height: .6em; border: 0 solid var(--cb-ta, var(--tbb-accent, #c4161c)); pointer-events: none; }
.tbb-cb--ts-brackets .tbb-cb__title::before { left: 0; top: 0; border-width: 3px 0 0 3px; }
.tbb-cb--ts-brackets .tbb-cb__title::after { right: 0; bottom: 0; border-width: 0 3px 3px 0; }
.tbb-cb--ts-badge .tbb-cb__title { position: relative; padding: .22em .7em; background: var(--cb-ta, var(--tbb-accent, #c4161c)); color: var(--cb-title-c, #fff) !important; margin-bottom: .45em; }
.tbb-cb--ts-badge .tbb-cb__title::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -.42em; border: .42em solid transparent; border-top-color: var(--cb-ta, var(--tbb-accent, #c4161c)); border-bottom-width: 0; }
.tbb-cb--ts-badge.tbb-cb--a-left .tbb-cb__title::after { left: 1.2em; margin-left: 0; }
.tbb-cb--ts-badge.tbb-cb--a-right .tbb-cb__title::after { left: auto; right: 1.2em; margin-left: 0; }
.tbb-cb--ts-underline .tbb-cb__title { padding-bottom: .18em; background: linear-gradient(var(--cb-ta, var(--tbb-accent, #c4161c)), var(--cb-ta, var(--tbb-accent, #c4161c))) 0 100% / 100% .14em no-repeat; }
.tbb-cb--ts-marker .tbb-cb__title { padding: 0 .2em .05em; background: linear-gradient(var(--cb-ta, var(--tbb-accent, #c4161c)), var(--cb-ta, var(--tbb-accent, #c4161c))) 0 94% / 100% .42em no-repeat; }
.tbb-cb--ts-bar .tbb-cb__title { padding: .1em 0 .1em .6em; border-left: .2em solid var(--cb-ta, var(--tbb-accent, #c4161c)); text-align: left; }
.tbb-cb--ts-bar.tbb-cb--a-right .tbb-cb__title { padding: .1em .6em .1em 0; border-left: 0; border-right: .2em solid var(--cb-ta, var(--tbb-accent, #c4161c)); text-align: right; }
.tbb-cb--ts-boxed .tbb-cb__title { padding: .25em .7em; border: 3px solid var(--cb-ta, var(--tbb-accent, #c4161c)); }
