/* ==================================================================
   Bloc BIDM — langage graphique « Carnet du Professeur Brown »
   Encres : brun #67412A · bleu administratif #0F476A
   Papier : #F6F0E4 · réglure : rgba(103,65,42,.14)
   ================================================================== */

.bidm {
	position: relative;
	background:
		repeating-linear-gradient(
			to bottom,
			transparent 0, transparent 23px,
			rgba(103, 65, 42, 0.10) 23px, rgba(103, 65, 42, 0.10) 24px
		),
		#F6F0E4;
	border: 1px solid rgba(103, 65, 42, 0.45);
	box-shadow: 2px 3px 0 rgba(103, 65, 42, 0.12);
	color: #4A2F1E;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 14px;
	line-height: 1.55;
	padding: 20px 20px 26px;
	margin: 0 0 2em;
}

/* --- Cartouche d'en-tête ------------------------------------------ */

.bidm__cartouche {
	border-bottom: 1px dashed rgba(103, 65, 42, 0.5);
	padding-bottom: 14px;
	margin-bottom: 16px;
}

.bidm__bureau {
	font-family: 'Courier New', Courier, monospace;
	font-size: 11px;
	font-weight: bold;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: #0F476A;
	margin: 0 0 6px;
}

.bidm__objet {
	font-style: italic;
	font-size: 12.5px;
	color: #67412A;
	margin: 0 0 10px;
}

.bidm__note {
	font-size: 13px;
	margin: 0;
}

/* --- Double attestation ------------------------------------------- */

.bidm__attestation { margin: 0 0 18px; }

.bidm__planches {
	display: flex;
	gap: 12px;
	margin-bottom: 10px;
}

.bidm__img,
.bidm__pending {
	flex: 1 1 0;
	min-width: 0;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: center 15%; /* biaisé vers le haut : les photos de marionnette sont souvent bien plus hautes que 3:4, le recadrage centré coupe la tête */
	/* tirage collé dans le carnet : bord blanc, légère rotation, ombre */
	background: #fff;
	border: 5px solid #fff;
	box-shadow: 0 2px 6px rgba(60, 38, 20, 0.35);
}

.bidm__img:first-child  { transform: rotate(-1.4deg); }
.bidm__img:last-child,
.bidm__pending          { transform: rotate(1.1deg); }

.bidm__pending {
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		repeating-linear-gradient(
			45deg,
			rgba(15, 71, 106, 0.06) 0, rgba(15, 71, 106, 0.06) 8px,
			transparent 8px, transparent 16px
		),
		#EFE7D6;
	text-align: center;
	font-family: 'Courier New', Courier, monospace;
	font-size: 10.5px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #0F476A;
}

.bidm__legende {
	font-size: 12px;
	font-style: italic;
	color: #67412A;
}

/* --- CTA spectateur ------------------------------------------------ */

.bidm__cta p { font-size: 13px; margin: 0 0 10px; }

.bidm__btn {
	display: inline-block;
	font-family: 'Courier New', Courier, monospace;
	font-size: 12px;
	font-weight: bold;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #F6F0E4;
	background: #0F476A;
	padding: 8px 14px;
	border: 1px solid #0B3651;
	box-shadow: 2px 2px 0 rgba(103, 65, 42, 0.35);
	transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.bidm__btn:hover,
.bidm__btn:focus-visible {
	color: #F6F0E4;
	transform: translate(1px, 1px);
	box-shadow: 1px 1px 0 rgba(103, 65, 42, 0.35);
}

/* --- Ligne programmateur (volontairement sobre, hors fiction) ------ */

.bidm__pro {
	border-top: 1px dashed rgba(103, 65, 42, 0.5);
	margin-top: 16px;
	padding-top: 12px;
}

.bidm__pro p {
	font-size: 12px;
	color: #5A4636;
	margin: 0;
}

.bidm__pro a { color: #0F476A; font-weight: bold; }

/* --- Tampon -------------------------------------------------------- */

.bidm__tampon {
	position: absolute;
	right: 14px;
	bottom: 12px;
	width: 76px;
	height: 76px;
	border: 2.5px solid rgba(15, 71, 106, 0.6);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: rotate(-11deg);
	font-family: 'Courier New', Courier, monospace;
	font-size: 8px;
	font-weight: bold;
	line-height: 1.3;
	letter-spacing: 0.05em;
	text-align: center;
	text-transform: uppercase;
	color: #0F476A;
	opacity: 0.75;
	pointer-events: none;
}

/* ==================================================================
   Responsive : bascule sidebar (desktop) / pied d'article (≤ 921px,
   breakpoint tablette d'Astra)
   ================================================================== */

/* Desktop : la version sidebar vit, la version pied d'article se tait */
@media (min-width: 922px) {
	.bidm--footer  { display: none; }
	.bidm--sidebar { position: sticky; top: 90px; } /* ajuster selon hauteur header */
}

/* thw-child : la colonne marge de single.php contient déjà l'image featured
   en position: sticky (top: 100px) — désactiver le sticky du bloc BIDM ici
   pour éviter que les deux se chevauchent au scroll. */
@media (min-width: 922px) {
	.thw-col-margin--single .bidm--sidebar {
		position: static;
		margin-top: 1.5em;
	}
}

/* Tablette & mobile : inverse — et version allégée */
@media (max-width: 921px) {
	.bidm--sidebar { display: none; }

	.bidm--footer  { margin-top: 2.5em; }

	/* allègement : la note de service complète disparaît,
	   seuls le cartouche court, l'attestation et les CTA restent */
	.bidm--footer .bidm__note { display: none; }
}

@media (max-width: 544px) {
	.bidm { padding: 16px 14px 22px; }
	.bidm__tampon { width: 64px; height: 64px; font-size: 7px; }
}

/* Accessibilité : pas de translation au hover si mouvement réduit */
@media (prefers-reduced-motion: reduce) {
	.bidm__btn { transition: none; }
}

/* ==================================================================
   Cartouche personnage — archive auteur (author.php)
   Même langage graphique que le bloc BIDM ci-dessus.
   ================================================================== */

.thw-author-cartouche {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 20px 28px;
	border-bottom: 1px dashed rgba(103, 65, 42, 0.35);
	background: #F6F0E4;
	position: relative;
	z-index: 1;
}

.thw-author-portrait-img,
.thw-author-portrait-pending {
	width: 84px;
	height: 104px;
	object-fit: cover;
	background: #fff;
	border: 4px solid #fff;
	box-shadow: 0 2px 6px rgba(60, 38, 20, 0.35);
	transform: rotate(-1.4deg);
	display: block;
}

.thw-author-portrait-pending {
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		repeating-linear-gradient(
			45deg,
			rgba(15, 71, 106, 0.06) 0, rgba(15, 71, 106, 0.06) 8px,
			transparent 8px, transparent 16px
		),
		#EFE7D6;
	text-align: center;
	font-family: 'Courier New', Courier, monospace;
	font-size: 9px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #0F476A;
}

.thw-author-identite {
	flex: 1;
	min-width: 0;
}

.thw-author-nom {
	font-family: 'Cormorant Garamond', serif;
	font-size: 26px;
	font-weight: 700;
	color: #0F476A;
	line-height: 1.15;
	margin: 0 0 4px;
}

.thw-author-qualite {
	font-size: 13px;
	font-style: italic;
	color: #67412A;
	margin: 0 0 4px;
}

.thw-author-cote {
	font-family: 'Courier New', Courier, monospace;
	font-size: 11px;
	letter-spacing: 0.06em;
	color: rgba(74, 47, 30, 0.6);
	margin: 0;
}

.thw-author-cartouche--sobre {
	background: none;
	padding: 20px 28px 8px;
}

.thw-author-cartouche--sobre .thw-author-nom {
	font-size: 22px;
	color: var(--thw-ink);
}

@media (max-width: 544px) {
	.thw-author-cartouche {
		padding: 16px 20px;
		gap: 14px;
	}
	.thw-author-portrait-img,
	.thw-author-portrait-pending {
		width: 64px;
		height: 80px;
	}
	.thw-author-nom {
		font-size: 20px;
	}
}

/* ==================================================================
   Colonne marge — archive auteur (author.php)
   Grille 55/45 (classes génériques .thw-doc-body/.thw-col-main/
   .thw-col-margin de thw-theme.css), portrait + bio sticky.
   ================================================================== */

.thw-author-margin-sticky {
	position: sticky;
	top: 100px;
}

.thw-author-margin-portrait-img,
.thw-author-margin-portrait-pending {
	width: 100%;
	max-width: 260px;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	background: #fff;
	border: 5px solid #fff;
	box-shadow: 0 2px 6px rgba(60, 38, 20, 0.35);
	display: block;
	margin: 0 auto 20px;
}

.thw-author-margin-portrait-pending {
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		repeating-linear-gradient(
			45deg,
			rgba(15, 71, 106, 0.06) 0, rgba(15, 71, 106, 0.06) 8px,
			transparent 8px, transparent 16px
		),
		#EFE7D6;
	text-align: center;
	font-family: 'Courier New', Courier, monospace;
	font-size: 10.5px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #0F476A;
}

.thw-author-margin-bio {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 14px;
	line-height: 1.6;
	color: #4A2F1E;
	margin: 0;
}

/* Sous 922px : la colonne marge repasse en flux normal, sticky désactivé
   — breakpoint propre à cette grille (classe modificateur dédiée), sans
   toucher aux classes génériques .thw-doc-body/.thw-col-main utilisées
   telles quelles par single.php. */
@media (max-width: 921px) {
	.thw-doc-body--author {
		grid-template-columns: 1fr;
	}
	.thw-doc-body--author .thw-col-main {
		border-right: none;
		border-bottom: 1px dashed var(--thw-or40);
	}
	.thw-author-margin-sticky {
		position: static;
		top: auto;
	}
}
