/*
 * Call Me Gems — contenu (articles & pages)
 * Updated: 2026-08-10 02:00 (Europe/Zurich)
 */

.cmg-entry {
	max-width: 820px;
}

.cmg-entry--page {
	text-align: left;
}

/* Cadre des pages éditoriales : Présentation (page-id-42) et Services
   (page-id-3101). Le contenu est encadré d'un filet, sur un léger panneau avec
   une ombre douce, pour un rendu « document » soigné. Scopé par ID pour ne pas
   toucher Contact / Confidentialité. */
.page-id-42 .entry,
.page-id-3101 .entry {
	border: 1px solid var(--cmg-rule);
	background: var(--cmg-panel);
	padding: 50px 54px;
	box-shadow: 0 10px 30px rgba(28, 26, 23, 0.05);
}

@media (max-width: 600px) {

	.page-id-42 .entry,
	.page-id-3101 .entry {
		padding: 28px 22px;
	}
}

/* Entête. */
.entry-header {
	margin-bottom: 26px;
}

.entry-title {
	margin: 0;
	font-family: var(--cmg-serif);
	font-weight: 500;
	font-size: clamp(28px, 5vw, 40px);
	line-height: 1.15;
	color: var(--cmg-ink);
}

/* Filet or sous le titre de page. */
.cmg-entry--page .entry-header {
	text-align: center;
}

.entry-header__rule {
	display: block;
	width: 56px;
	height: 2px;
	background: var(--cmg-gold);
	margin: 20px auto 0;
}

/* Corps. */
.entry-content {
	font-family: var(--cmg-sans);
	font-size: 16px;
	line-height: 1.8;
	color: var(--cmg-body);
}

.entry-content > * + * {
	margin-top: 1.1em;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	font-family: var(--cmg-serif);
	color: var(--cmg-ink);
	margin: 1.6em 0 0.4em;
}

.entry-content h2 { font-size: 28px; }
.entry-content h3 { font-size: 23px; }

/* Titres 5/6 employés comme corps de texte : rendu en paragraphe lisible.
   L'éditeur classique applique parfois « Titre 5 » à de simples paragraphes
   (cas de la page Présentation) ; on neutralise le gras/petit du navigateur. */
.entry-content h5,
.entry-content h6 {
	margin: 0;
	font-family: var(--cmg-sans);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.8;
	color: var(--cmg-body);
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.3em;
}

.entry-content li {
	margin-bottom: 8px;
}

.entry-content img {
	max-width: 100%;
	height: auto;
}

/* Paragraphes vides insérés comme espaceurs par l'éditeur : neutralisés
   pour éviter des blancs verticaux irréguliers. */
.entry-content p:empty {
	display: none;
}

/* Alignements WordPress : le noyau ne les fournit plus depuis le thème,
   on les redéfinit ici (images et légendes flottantes des pages). */
.entry-content .aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.entry-content .alignleft {
	float: left;
	margin: 6px 28px 20px 0;
}

.entry-content .alignright {
	float: right;
	margin: 6px 0 20px 28px;
}

.entry-content .alignnone {
	display: block;
}

.entry-content .alignleft,
.entry-content .alignright,
.entry-content .aligncenter {
	max-width: 100%;
}

/* Légendes d'image (wp-caption / figcaption). */
.entry-content .wp-caption {
	max-width: 100%;
}

.entry-content figcaption,
.entry-content .wp-caption-text {
	margin-top: 8px;
	font-family: var(--cmg-sans);
	font-size: 13px;
	font-style: italic;
	line-height: 1.5;
	color: var(--cmg-taupe);
	text-align: center;
}

/* Grille de figures légendées : une suite d'images regroupée par le filtre
   the_content (ex. les provenances de la page Services) s'affiche en 2 colonnes
   uniformes, sans flottant. Une figure isolée n'est pas concernée. */
.entry-content .cmg-figgrid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	clear: both;
	margin-top: 1.4em;
}

.entry-content .cmg-figgrid figure {
	float: none !important;
	width: auto !important; /* neutralise le style inline width des wp-caption */
	max-width: 100%;
	margin: 0;
}

.entry-content .cmg-figgrid figure img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

/* Nettoyage des flottants en fin de contenu. */
.entry-content .mceTemp {
	clear: both;
}

.entry-content::after {
	content: "";
	display: block;
	clear: both;
}

.entry-content a {
	color: var(--cmg-gold);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.entry-content blockquote {
	margin: 1.4em 0;
	padding: 4px 0 4px 22px;
	border-left: 2px solid var(--cmg-gold);
	font-family: var(--cmg-serif);
	font-size: 22px;
	color: var(--cmg-ink);
}

/* Lien retour (articles). */
.cmg-entry__back {
	margin-top: 40px;
}

.cmg-entry__back a {
	font-family: var(--cmg-sans);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--cmg-menu);
}

.cmg-entry__back a:hover,
.cmg-entry__back a:focus {
	color: var(--cmg-gold);
}

/* Bouton (404, CTA). */
.cmg-button {
	display: inline-block;
	padding: 13px 26px;
	border: 1px solid var(--cmg-gold);
	color: var(--cmg-gold);
	font-family: var(--cmg-sans);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.cmg-button:hover,
.cmg-button:focus {
	background: var(--cmg-gold);
	color: var(--cmg-ivory);
}

/* Formulaire (Contact Form 7 et champs génériques). */
.entry-content input[type="text"],
.entry-content input[type="email"],
.entry-content input[type="tel"],
.entry-content input[type="url"],
.entry-content textarea,
.entry-content select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--cmg-rule);
	background: #fff;
	font-family: var(--cmg-sans);
	font-size: 15px;
	color: var(--cmg-ink);
}

.entry-content input:focus,
.entry-content textarea:focus,
.entry-content select:focus {
	outline: none;
	border-color: var(--cmg-gold);
}

.entry-content input[type="submit"],
.entry-content button[type="submit"],
.wpcf7 input[type="submit"] {
	display: inline-block;
	width: auto;
	padding: 13px 30px;
	border: 1px solid var(--cmg-gold);
	background: transparent;
	color: var(--cmg-gold);
	font-family: var(--cmg-sans);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.entry-content input[type="submit"]:hover,
.wpcf7 input[type="submit"]:hover {
	background: var(--cmg-gold);
	color: var(--cmg-ivory);
}

/* ------------------------------------------------------------------ mobile */

@media (max-width: 600px) {

	/* Les images alignées passent en pleine largeur, centrées. */
	.entry-content .alignleft,
	.entry-content .alignright {
		float: none;
		display: block;
		margin: 18px auto;
	}
}
