/*
Theme Name:   Alp'animaux
Theme URI:    https://alpanimaux.fr
Description:  Thème enfant GeneratePress pour Alp'animaux, vétérinaire à domicile (maquette 3 : fond clair, cartes arrondies, titres serif et touche manuscrite). Habillage global : palette, typographie, en-tête, boutons, barre mobile, blog, pied de page en carte. Le contenu des pages vit dans des blocs HTML personnalisés.
Author:       Lumee
Author URI:   https://lumee.ch
Template:     generatepress
Version:      1.2.1
Text Domain:  alpanimaux
*/

/* ==========================================================================
   1. Palette et typographie
   ========================================================================== */
:root {
	--alp-sapin: #285B52;
	--alp-sapin-fonce: #1E453E;
	--alp-terracotta: #C7926B;
	--alp-terracotta-fonce: #9C653F;
	--alp-terracotta-clair: #F6EEE7;
	--alp-terracotta-texte: #EBCDB3;
	--alp-sauge: #86A19B;
	--alp-brume: #B0C3BF;
	--alp-givre: #D8E1E0;
	--alp-neige: #E5EAE9;
	--alp-fond: #F4F6F5;
	--alp-blanc: #FFFFFF;
	--alp-texte: #33403D;
	--alp-texte-doux: #5C6B68;

	--alp-titre: 'Instrument Serif', Georgia, serif;
	--alp-texte-police: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--alp-ui: 'Outfit', 'Open Sans', sans-serif;
	--alp-manuscrit: 'Amatic SC', cursive;

	--alp-rayon-carte: 28px;
	--alp-rayon-bloc: 48px;
	--alp-ombre: 0 10px 30px rgba(22, 59, 53, .06);
	--alp-ombre-forte: 0 16px 36px rgba(20, 50, 45, .22);
	--alp-largeur: 1180px;
}

body {
	font-family: var(--alp-texte-police);
	font-size: 16px;
	line-height: 1.7;
	color: var(--alp-texte);
	background: var(--alp-fond);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3,
.entry-title,
.page-title {
	font-family: var(--alp-titre);
	font-weight: 400;
	color: var(--alp-sapin);
	line-height: 1.1;
}
h1, .entry-title { font-size: clamp(2.4rem, 4.6vw, 3.9rem); }
h2 { font-size: clamp(1.95rem, 3.3vw, 2.9rem); margin-bottom: .55em; }
h3 { font-size: clamp(1.45rem, 2.2vw, 1.75rem); margin-bottom: .45em; }
h4 { font-family: var(--alp-ui); font-weight: 700; font-size: 1.1rem; color: var(--alp-sapin); }
em { color: var(--alp-terracotta-fonce); }

a { color: var(--alp-sapin); text-underline-offset: 3px; }
a:hover, a:focus { color: var(--alp-sapin-fonce); }
::selection { background: var(--alp-givre); color: var(--alp-sapin-fonce); }

/* Surtitre manuscrit au-dessus des titres de section */
.alp-surtitre,
.alp-manuscrit {
	display: block;
	font-family: var(--alp-manuscrit);
	font-weight: 700;
	font-size: 30px;
	line-height: 1;
	color: var(--alp-terracotta-fonce);
	margin: 0 0 4px;
}

/* ==========================================================================
   2. Boutons (pilules)
   ========================================================================== */
.alp-btn,
input[type="submit"],
.wp-block-button__link,
.read-more,
.comment-form .submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--alp-ui);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	padding: 13px 24px;
	border-radius: 999px;
	border: 0;
	background: var(--alp-sapin);
	color: var(--alp-blanc);
	text-decoration: none;
	cursor: pointer;
	white-space: nowrap;
	min-height: 44px;
	box-sizing: border-box;
	transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.alp-btn:hover,
.alp-btn:focus,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.read-more:hover {
	background: var(--alp-sapin-fonce);
	color: var(--alp-blanc);
}
.alp-btn--urgence { background: var(--alp-terracotta-fonce); }
.alp-btn--urgence:hover, .alp-btn--urgence:focus { background: #82512F; }
.alp-btn--contour {
	background: var(--alp-blanc);
	color: var(--alp-terracotta-fonce);
	box-shadow: inset 0 0 0 2px var(--alp-terracotta-fonce);
}
.alp-btn--contour:hover, .alp-btn--contour:focus { background: var(--alp-terracotta-fonce); color: var(--alp-blanc); }
.alp-btn--blanc { background: var(--alp-blanc); color: var(--alp-sapin); }
.alp-btn--blanc:hover, .alp-btn--blanc:focus { background: var(--alp-neige); color: var(--alp-sapin-fonce); }
.alp-btn--clair {
	background: transparent;
	color: var(--alp-blanc);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .6);
}
.alp-btn--clair:hover, .alp-btn--clair:focus { background: var(--alp-blanc); color: var(--alp-sapin); }
/* Bouton WhatsApp : le vert de la marque, texte foncé pour rester lisible */
.alp-btn--whatsapp { background: #25D366; color: #073B2C; }
.alp-btn--whatsapp:hover,
.alp-btn--whatsapp:focus { background: #1EBE5A; color: #052A1F; }
.alp-btn--whatsapp svg { width: 18px; height: 18px; }
.alp-btn svg { width: 16px; height: 16px; flex: none; }

/* ==========================================================================
   3. En-tête
   ========================================================================== */
.site-header {
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--alp-neige);
}
.inside-header { padding-top: 12px; padding-bottom: 12px; }
.site-logo img,
.site-header .header-image { max-height: 72px; width: auto; }
.main-title { margin: 0; }
.main-title a,
.main-title a:hover {
	text-decoration: none;
	font-family: var(--alp-titre);
	font-size: 28px;
	line-height: 1;
	color: var(--alp-sapin);
}
.site-description {
	font-family: var(--alp-manuscrit);
	font-weight: 700;
	font-size: 20px;
	line-height: 1.1;
	color: var(--alp-terracotta-fonce);
	white-space: nowrap;
}

.main-navigation,
.main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a {
	font-family: var(--alp-texte-police);
	font-weight: 600;
	font-size: 15px;
	color: var(--alp-texte);
	padding-left: 11px;
	padding-right: 11px;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current-menu-ancestor > a { color: var(--alp-sapin); }
.main-navigation .main-nav ul ul {
	background: var(--alp-blanc);
	border-radius: 18px;
	box-shadow: var(--alp-ombre);
	padding: 6px 0;
}

.alp-header-cta { display: flex; align-items: center; gap: 10px; margin-left: 12px; }
.alp-header-cta .alp-btn { padding: 11px 20px; font-size: 14.5px; }

.menu-toggle,
.menu-toggle:hover,
.menu-toggle:focus {
	border-radius: 50%;
	background: var(--alp-neige);
	color: var(--alp-sapin);
	width: 48px;
	height: 48px;
	padding: 0;
}

/* ==========================================================================
   4. Pages en blocs HTML (méthode wp-bloc) et composants partagés
   ========================================================================== */
.page .entry-header { display: none; }
.page.no-sidebar .site-main .inside-article { padding: 0; background: transparent; }
.page .site-content { padding-top: 0; }
.page .entry-content > p:empty,
.alp-plein p:empty { display: none; }

.alp-plein {
	position: relative;
	left: 50%;
	margin-left: -50vw;
	width: 100vw;
	max-width: 100vw;
}
.alp-conteneur {
	max-width: var(--alp-largeur);
	margin: 0 auto;
	padding: 0 24px;
	box-sizing: border-box;
}
.alp-section { padding: 88px 0; }
.alp-section--blanche { background: var(--alp-blanc); }

/* Carte blanche arrondie */
.alp-carte {
	background: var(--alp-blanc);
	border-radius: var(--alp-rayon-carte);
	padding: 32px 26px;
	box-shadow: var(--alp-ombre);
}
.alp-carte__icone {
	width: 60px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 40% 60% 55% 45% / 55% 45% 55% 45%;
	background: var(--alp-terracotta-clair);
	color: var(--alp-terracotta-fonce);
}

/* Grand bloc arrondi (urgences, fin de vie) */
.alp-bloc {
	border-radius: var(--alp-rayon-bloc);
	padding: 56px;
}
.alp-bloc--sapin { background: var(--alp-sapin-fonce); color: var(--alp-blanc); }
.alp-bloc--sapin h2, .alp-bloc--sapin h3 { color: var(--alp-blanc); }
.alp-bloc--sapin p { color: var(--alp-givre); }
.alp-bloc--terracotta { background: var(--alp-terracotta-clair); }

/* Bandeau « Je soigne » */
.alp-bandeau {
	background: var(--alp-sapin);
	color: var(--alp-blanc);
	font-family: var(--alp-ui);
	font-weight: 600;
}

/* Étiquettes */
.alp-pastille,
.cat-links a {
	display: inline-block;
	font-family: var(--alp-ui);
	font-weight: 600;
	font-size: 13px;
	line-height: 1.4;
	color: var(--alp-terracotta-fonce);
	background: var(--alp-terracotta-clair);
	padding: 5px 13px;
	border-radius: 999px;
	text-decoration: none;
}

/* ==========================================================================
   4 bis. Composants des pages (utilisés par les blocs HTML)
   ========================================================================== */
.alp-s { padding: 88px 0; }
.alp-s--blanc { background: var(--alp-blanc); }
.alp-s--serre { padding-top: 24px; }
.alp-s h2 { margin-top: 0; }
.alp-intro { max-width: 640px; font-size: 17px; color: var(--alp-texte-doux); margin: 0; }
.alp-centre { text-align: center; }
.alp-centre .alp-intro { margin: 0 auto; }
.alp-titres { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 40px; margin-bottom: 40px; }
.alp-titres .alp-intro { max-width: 400px; font-size: 15.5px; }

.alp-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.alp-centre .alp-cta { justify-content: center; }

/* Accueil : bandeau d'entrée */
.alp-hero { background: var(--alp-blanc); padding: 56px 0 80px; }
.alp-hero__grille { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 48px; }
.alp-hero__texte { flex: 1 1 440px; min-width: 0; max-width: 580px; }
.alp-hero__texte h1 { margin: 6px 0 0; font-size: clamp(2.5rem, 5vw, 3.9rem); line-height: 1.03; }
.alp-hero__texte h1 em { font-style: italic; }
.alp-hero__texte p { margin: 22px 0 0; font-size: 17.5px; max-width: 500px; }
.alp-hero__visuel { position: relative; flex: none; }
.alp-hero__photo { display: block; width: 440px; height: 440px; border-radius: 50%; object-fit: cover; }
.alp-hero__badge {
	position: absolute; left: -18px; bottom: 18px;
	background: var(--alp-sapin); color: var(--alp-blanc);
	border-radius: 22px; padding: 16px 20px; box-shadow: var(--alp-ombre-forte);
}
.alp-hero__badge span { display: block; font-family: var(--alp-manuscrit); font-weight: 700; font-size: 24px; line-height: 1; color: var(--alp-terracotta-texte); }
.alp-hero__badge strong { display: block; margin-top: 4px; font-family: var(--alp-ui); font-size: 18px; line-height: 1.2; }

/* En-tête des pages intérieures */
.alp-entete { background: var(--alp-blanc); padding: 64px 0 56px; }
.alp-entete h1 { margin: 4px 0 0; max-width: 860px; }
.alp-entete .alp-intro { margin-top: 18px; max-width: 700px; }

/* Bandeau « Je soigne » */
.alp-bandeau { padding: 20px 0; }
.alp-bandeau__liste { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 36px; font-size: 17px; }
.alp-bandeau__liste span:first-child { font-family: var(--alp-manuscrit); font-weight: 700; font-size: 28px; color: var(--alp-terracotta-texte); }
.alp-bandeau__liste i { font-style: normal; color: var(--alp-sauge); }

/* Grilles de cartes */
.alp-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 20px; }
.alp-cartes--2 { grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); }
.alp-carte h3 { margin: 18px 0 0; font-size: 1.65rem; line-height: 1.15; }
.alp-carte p { margin: 8px 0 0; font-size: 15px; line-height: 1.6; }
.alp-carte ul { margin: 10px 0 0 1.1em; font-size: 15px; line-height: 1.6; }
.alp-carte a.alp-lien { display: inline-block; margin-top: 12px; font-weight: 700; font-size: 15px; }
.alp-carte__icone svg { width: 30px; height: 30px; }

/* Grands blocs */
.alp-bloc__grille { display: flex; flex-wrap: wrap; align-items: center; gap: 36px; }
.alp-bloc__grand { flex: 0 1 300px; text-align: center; }
.alp-bloc__grand strong { display: block; font-family: var(--alp-ui); font-weight: 800; font-size: 96px; line-height: .95; color: var(--alp-blanc); }
.alp-bloc__grand span { display: block; margin-top: 8px; font-family: var(--alp-manuscrit); font-weight: 700; font-size: 30px; color: var(--alp-terracotta-texte); }
.alp-bloc__texte { flex: 1 1 420px; min-width: 0; }
.alp-bloc__texte h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); }
.alp-bloc--sapin small { display: block; margin-top: 14px; color: var(--alp-brume); font-size: 14px; }
.alp-duo { display: flex; flex-wrap: wrap; align-items: center; gap: 40px; }
.alp-duo__media { flex: 1 1 380px; min-width: 0; }
.alp-duo__media img, .alp-duo__media .alp-photo-attente { width: 100%; height: 420px; object-fit: cover; border-radius: 32px; display: block; }
.alp-duo__texte { flex: 1 1 420px; min-width: 0; }
.alp-bloc--terracotta { padding: 28px; }
.alp-bloc--terracotta .alp-duo__texte { padding: 20px 20px 20px 0; }

/* Photo en attente (avant les vraies photos d'Émilie) */
.alp-photo-attente {
	display: flex; align-items: center; justify-content: center; text-align: center;
	padding: 24px; box-sizing: border-box;
	background: repeating-linear-gradient(135deg, var(--alp-givre) 0 14px, var(--alp-neige) 14px 28px);
	color: var(--alp-sapin); font-family: var(--alp-ui); font-weight: 600; font-size: 14px;
}

/* Zone d'intervention */
.alp-zone { text-align: center; }
.alp-onglets {
	display: inline-flex; flex-wrap: wrap; gap: 4px;
	background: var(--alp-neige); border-radius: 999px; padding: 5px;
}
.alp-onglets button {
	font-family: var(--alp-ui); font-weight: 700; font-size: 14px; line-height: 1.2;
	padding: 11px 18px; min-height: 42px; border: 0; border-radius: 999px;
	background: transparent; color: var(--alp-sapin); cursor: pointer;
}
.alp-onglets button.est-actif { background: var(--alp-sapin); color: var(--alp-blanc); }
.alp-zone__grille { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 48px; margin-top: 36px; }
.alp-zone__texte { flex: 1 1 340px; min-width: 0; max-width: 460px; text-align: left; }
.alp-zone__texte h3 { margin: 0; }
.alp-zone__communes { font-size: 15px; color: var(--alp-texte-doux); }
.alp-zone__communes strong { color: var(--alp-sapin); }
.alp-zone label { display: block; margin-top: 22px; font-family: var(--alp-ui); font-weight: 700; font-size: 16px; color: var(--alp-sapin); }
.alp-zone select {
	width: 100%; margin-top: 8px; padding: 12px 14px; min-height: 48px;
	font: inherit; font-size: 16px; color: var(--alp-texte);
	border: 1px solid var(--alp-brume); border-radius: 14px; background: var(--alp-blanc);
}
.alp-zone__reponse { min-height: 1.6em; margin: 10px 0 0; font-size: 15px; }
.alp-zone__reponse.est-ok { color: var(--alp-sapin); font-weight: 700; }
.alp-zone__carte {
	position: relative; flex: none; width: 440px; height: 440px; border-radius: 50%; overflow: hidden;
	background: radial-gradient(circle at 40% 35%, #F1F5F4 0, #E3EBE9 55%, #D3E0DD 100%);
	border: 1px solid var(--alp-givre); z-index: 0;
}
.alp-zone__carte.est-indisponible { display: flex; align-items: center; justify-content: center; text-align: center; padding: 48px; box-sizing: border-box; font-size: 14px; }
.alp-zone__carte .leaflet-control-attribution { font-size: 10px; border-radius: 999px 0 0 0; }

/* Présentation d'Émilie */
.alp-presentation { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; max-width: 1000px; margin: 0 auto; }
.alp-presentation__photo { flex: 0 0 260px; width: 260px; height: 260px; border-radius: 50%; border: 10px solid var(--alp-blanc); object-fit: cover; box-sizing: border-box; }
.alp-presentation__texte { flex: 1 1 420px; min-width: 0; }
.alp-signature { font-family: var(--alp-manuscrit); font-weight: 700; font-size: 34px; color: var(--alp-terracotta-fonce); margin: 14px 0 0; }

/* Étapes du rendez-vous */
.alp-etapes { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 20px; counter-reset: etape; }
.alp-etapes li { counter-increment: etape; background: var(--alp-blanc); border-radius: var(--alp-rayon-carte); padding: 30px 26px; box-shadow: var(--alp-ombre); }
.alp-etapes li::before {
	content: counter(etape);
	display: flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 50%;
	background: var(--alp-sapin); color: var(--alp-blanc);
	font-family: var(--alp-ui); font-weight: 700; font-size: 19px;
}
.alp-etapes h3 { margin: 16px 0 0; font-family: var(--alp-ui); font-weight: 700; font-size: 19px; color: var(--alp-sapin); }
.alp-etapes p { margin: 6px 0 0; font-size: 15px; }

/* Listes et tableaux */
.alp-liste { list-style: none; margin: 16px 0 0; padding: 0; }
.alp-liste li { position: relative; padding-left: 28px; margin: 8px 0; }
.alp-liste li::before { content: ''; position: absolute; left: 4px; top: .55em; width: 9px; height: 9px; border-radius: 50%; background: var(--alp-terracotta); }
.alp-tableau { width: 100%; border-collapse: collapse; background: var(--alp-blanc); border-radius: var(--alp-rayon-carte); overflow: hidden; box-shadow: var(--alp-ombre); font-size: 15.5px; }
.alp-tableau th, .alp-tableau td { padding: 14px 22px; text-align: left; border-bottom: 1px solid var(--alp-neige); vertical-align: top; }
.alp-tableau tr:last-child td { border-bottom: 0; }
.alp-tableau th { font-family: var(--alp-ui); color: var(--alp-sapin); background: var(--alp-fond); }
.alp-tableau td:last-child { white-space: nowrap; font-weight: 600; color: var(--alp-sapin); text-align: right; }
.alp-tableau small { display: block; color: var(--alp-texte-doux); font-weight: 400; }
.alp-tableaux { display: grid; gap: 40px; }
.alp-tableau--infos td:last-child { white-space: normal; text-align: left; overflow-wrap: anywhere; }
.alp-tableau--infos td:first-child { width: 40%; font-weight: 600; color: var(--alp-sapin); }
.alp-tableaux h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin-bottom: 14px; }
.alp-note { margin-top: 28px; font-size: 14.5px; color: var(--alp-texte-doux); }

/* Questions fréquentes */
.alp-faq { max-width: 820px; margin: 0 auto; }
.alp-faq details { background: var(--alp-blanc); border-radius: 22px; box-shadow: var(--alp-ombre); margin: 0 0 12px; }
.alp-faq summary {
	list-style: none; cursor: pointer; padding: 20px 56px 20px 24px; position: relative;
	font-family: var(--alp-ui); font-weight: 600; font-size: 17px; color: var(--alp-sapin);
}
.alp-faq summary::-webkit-details-marker { display: none; }
.alp-faq summary::after { content: '+'; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-size: 24px; color: var(--alp-terracotta-fonce); }
.alp-faq details[open] summary::after { content: '\2212'; }
.alp-faq details p { margin: 0; padding: 0 24px 22px; font-size: 15.5px; }

/* Pages de texte (mentions légales, confidentialité) */
.alp-texte { max-width: 820px; margin: 0 auto; background: var(--alp-blanc); border-radius: var(--alp-rayon-bloc); padding: 56px 64px; box-shadow: var(--alp-ombre); }
.alp-texte h2 { font-size: 1.8rem; margin: 1.6em 0 .4em; }
.alp-texte h2:first-child { margin-top: 0; }
.alp-texte p, .alp-texte li { font-size: 15.5px; }

@media (max-width: 860px) {
	.alp-s { padding: 56px 0; }
	.alp-s--serre { padding-top: 8px; }
	.alp-titres { margin-bottom: 28px; }
	.alp-cta { flex-direction: column; align-items: stretch; }
	.alp-cta .alp-btn { width: 100%; }

	.alp-hero { padding: 24px 0 48px; }
	.alp-hero__grille { flex-direction: column-reverse; align-items: stretch; gap: 28px; }
	.alp-hero__visuel { align-self: center; }
	.alp-hero__photo { width: 300px; height: 300px; }
	.alp-hero__badge { left: 0; bottom: 0; padding: 12px 16px; border-radius: 18px; }
	.alp-hero__badge span { font-size: 21px; }
	.alp-hero__badge strong { font-size: 16px; }
	.alp-hero__texte h1 { font-size: 2.45rem; }
	.alp-hero__texte p { font-size: 16.5px; }

	.alp-entete { padding: 36px 0 36px; }

	.alp-bandeau__liste { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	.alp-bandeau__liste span { background: rgba(255, 255, 255, .1); border-radius: 999px; padding: 7px 10px; text-align: center; font-size: 15px; }
	.alp-bandeau__liste span:first-child { grid-column: 1 / -1; background: none; padding: 0 0 2px; font-size: 25px; }
	.alp-bandeau__liste i { display: none; }

	.alp-cartes { gap: 12px; }
	.alp-cartes .alp-carte { display: grid; grid-template-columns: 56px 1fr; column-gap: 14px; align-items: start; padding: 20px; }
	.alp-cartes .alp-carte > .alp-carte__icone { grid-row: 1 / span 4; width: 52px; height: 52px; }
	.alp-cartes .alp-carte > * { grid-column: 2; }
	.alp-cartes .alp-carte > .alp-carte__icone { grid-column: 1; }
	.alp-carte h3 { margin: 0; font-size: 1.45rem; }
	.alp-cartes--texte .alp-carte { display: block; }

	.alp-bloc__grand strong { font-size: 76px; }
	.alp-duo { gap: 24px; }
	.alp-duo__media img, .alp-duo__media .alp-photo-attente { height: 260px; border-radius: 24px; }
	.alp-bloc--terracotta { padding: 18px; }
	.alp-bloc--terracotta .alp-duo__texte { padding: 4px 6px 16px; }

	.alp-onglets { display: grid; grid-template-columns: 1fr 1fr; border-radius: 22px; width: 100%; box-sizing: border-box; }
	.alp-onglets button { padding: 10px 8px; font-size: 13.5px; }
	.alp-onglets button:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.alp-zone__grille { gap: 28px; margin-top: 26px; }
	.alp-zone__carte { width: 100%; max-width: 340px; height: auto; aspect-ratio: 1 / 1; }

	.alp-presentation { gap: 24px; justify-content: center; text-align: center; }
	.alp-presentation__photo { flex: 0 0 200px; width: 200px; height: 200px; }

	.alp-tableau th, .alp-tableau td { padding: 12px 14px; font-size: 14.5px; }
	.alp-tableau td:last-child { white-space: nowrap; padding-left: 8px; }
	.alp-tableau--infos td:last-child { white-space: normal; }

	.alp-faq summary { font-size: 16px; padding: 18px 48px 18px 18px; }
	.alp-faq details p { padding: 0 18px 18px; }

	.alp-texte { padding: 32px 20px; border-radius: 32px; }
}

/* ==========================================================================
   5. Blog : liste des articles en cartes
   ========================================================================== */
.blog .site-main,
.archive .site-main,
.search .site-main {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: 24px;
}
.blog .site-main > .page-header,
.archive .site-main > .page-header,
.search .site-main > .page-header,
.blog .site-main > .paging-navigation,
.archive .site-main > .paging-navigation,
.search .site-main > .paging-navigation { grid-column: 1 / -1; }
.blog .site-main > article,
.archive .site-main > article,
.search .site-main > article { margin: 0; }
.blog .inside-article,
.archive .inside-article,
.search .inside-article {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--alp-blanc);
	border-radius: var(--alp-rayon-carte);
	overflow: hidden;
	padding: 0 0 26px;
	box-shadow: var(--alp-ombre);
}
.blog .post-image,
.archive .post-image,
.search .post-image { margin: 0 0 18px; order: -1; }
.blog .post-image img,
.archive .post-image img,
.search .post-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.blog .entry-header,
.blog .entry-summary,
.blog footer.entry-meta,
.archive .entry-header,
.archive .entry-summary,
.archive footer.entry-meta,
.search .entry-header,
.search .entry-summary,
.search footer.entry-meta { padding: 0 26px; }
.blog .entry-title,
.archive .entry-title,
.search .entry-title { font-size: 1.7rem; }
.blog .entry-title a,
.archive .entry-title a,
.search .entry-title a { color: var(--alp-sapin); text-decoration: none; }
.blog .entry-summary,
.archive .entry-summary { font-size: 15px; color: var(--alp-texte-doux); }
.page-header {
	background: transparent;
	padding: 24px 0 8px;
}
.page-header .page-title { font-size: clamp(2.2rem, 4vw, 3.2rem); }

/* En-tête de la page Conseils et filtres par rubrique */
.alp-blog-entete {
	grid-column: 1 / -1;
	min-width: 0;
	padding: 24px 0 12px;
	max-width: 820px;
}
.alp-blog-entete h1 { margin: 0; }
.alp-blog-entete p { margin: 14px 0 0; font-size: 17px; color: var(--alp-texte-doux); }
.alp-filtres {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 26px;
}
.alp-filtres a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--alp-blanc);
	color: var(--alp-sapin);
	font-family: var(--alp-ui);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	box-shadow: inset 0 0 0 1px var(--alp-givre);
	box-sizing: border-box;
}
.alp-filtres a:hover { box-shadow: inset 0 0 0 1px var(--alp-sapin); }
.alp-filtres a[aria-current="page"] { background: var(--alp-sapin); color: var(--alp-blanc); box-shadow: none; }

/* Lien « lire la suite » des cartes : un lien, pas un gros bouton */
.blog .read-more,
.archive .read-more {
	background: none;
	padding: 0;
	min-height: 0;
	color: var(--alp-sapin);
	font-size: 15px;
	text-decoration: underline;
}
.blog .read-more:hover,
.archive .read-more:hover { background: none; color: var(--alp-sapin-fonce); }

/* ==========================================================================
   6. Blog : article dans une grande carte blanche
   ========================================================================== */
.single-post .site-main .inside-article {
	max-width: 840px;
	margin: 0 auto;
	background: var(--alp-blanc);
	border-radius: var(--alp-rayon-bloc);
	padding: 56px 64px;
	box-shadow: var(--alp-ombre);
}
.single-post .featured-image img,
.single-post .post-image img { border-radius: var(--alp-rayon-carte); }
.single-post .entry-content { font-size: 17.5px; line-height: 1.75; }
.single-post .entry-content h2 { margin-top: 1.6em; }
.single-post .entry-content h3 { margin-top: 1.3em; }
.single-post .entry-content > p:first-of-type { font-size: 1.1em; color: var(--alp-sapin-fonce); }
.single-post .entry-content img { border-radius: 20px; }
.single-post .entry-content table { border-collapse: collapse; width: 100%; font-size: 15.5px; }
.single-post .entry-content th,
.single-post .entry-content td { border: 1px solid var(--alp-givre); padding: 10px 12px; text-align: left; }
.single-post .entry-content th { background: var(--alp-fond); font-family: var(--alp-ui); color: var(--alp-sapin); }
.single-post .entry-meta { font-size: 14px; color: var(--alp-texte-doux); }

.alp-resume,
.alp-appel,
.alp-autrice {
	border-radius: var(--alp-rayon-carte);
	padding: 26px 28px;
	margin: 2em 0;
}
.alp-resume { background: var(--alp-fond); }
.alp-resume h2, .alp-resume h3 { margin-top: 0 !important; font-size: 1.55rem; }
.alp-appel { background: var(--alp-sapin-fonce); color: var(--alp-blanc); }
.alp-appel h2, .alp-appel h3 { color: var(--alp-blanc); margin-top: 0 !important; font-size: 1.7rem; }
.alp-appel p { color: var(--alp-givre); margin-bottom: .8em; }
.alp-appel .alp-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.alp-appel small { display: block; margin-top: 12px; color: var(--alp-brume); font-size: 14px; }

.alp-autrice {
	display: flex;
	gap: 18px;
	align-items: center;
	background: var(--alp-terracotta-clair);
}
.alp-autrice img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; flex: none; border: 4px solid var(--alp-blanc); }
.alp-autrice p { margin: 0; font-size: 15px; }
.alp-autrice strong { font-family: var(--alp-titre); font-weight: 400; font-size: 1.4rem; color: var(--alp-sapin); display: block; }

/* ==========================================================================
   7. Pied de page en grande carte arrondie
   ========================================================================== */
.site-footer { background: transparent; padding: 56px 24px 0; }
.alp-pied {
	max-width: var(--alp-largeur);
	margin: 0 auto;
	background: var(--alp-sapin);
	color: var(--alp-givre);
	border-radius: var(--alp-rayon-bloc) var(--alp-rayon-bloc) 0 0;
	padding: 60px 48px 28px;
	box-sizing: border-box;
	font-size: 14.5px;
}
.alp-pied a { color: var(--alp-blanc); }
.alp-pied__haut {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.alp-pied__nom { font-family: var(--alp-titre); font-size: 36px; line-height: 1; color: var(--alp-blanc); margin: 0; }
.alp-pied__signature { font-family: var(--alp-manuscrit); font-weight: 700; font-size: 26px; line-height: 1.1; color: var(--alp-terracotta-texte); margin: 4px 0 0; }
.alp-pied__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.alp-pied__colonnes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 28px;
	margin-top: 44px;
}
.alp-pied__colonnes strong { display: block; color: var(--alp-blanc); font-family: var(--alp-ui); font-size: 15px; margin-bottom: 8px; }
.alp-pied__colonnes p { margin: 0; line-height: 1.8; }
.alp-pied__colonnes a { color: var(--alp-givre); }
.alp-pied__colonnes a:hover { color: var(--alp-blanc); }

.site-info {
	max-width: var(--alp-largeur);
	margin: 0 auto;
	background: var(--alp-sapin);
	color: var(--alp-givre);
	font-size: 12.5px;
}
.site-info .inside-site-info {
	margin: 0 48px;
	padding: 18px 0 28px;
	border-top: 1px solid rgba(255, 255, 255, .14);
}
.site-info a { color: var(--alp-givre); }
.site-info .inside-site-info { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.alp-credit { white-space: nowrap; }
.alp-credit a { color: var(--alp-blanc); font-weight: 600; }
.footer-widgets { display: none; }

/* ==========================================================================
   8. Barre d'action mobile et ajustements téléphone
   ========================================================================== */
.alp-barre-mobile { display: none; }

@media (max-width: 1024px) {
	.alp-header-cta { display: none; }
	.site-info .inside-site-info { padding-bottom: 96px; }
	.alp-barre-mobile {
		display: flex;
		gap: 10px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 999;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		background: var(--alp-blanc);
		border-top: 1px solid var(--alp-givre);
		box-shadow: 0 -8px 24px rgba(20, 50, 45, .10);
		transform: translateY(120%);
		transition: transform .25s ease;
	}
	.alp-barre-mobile.est-visible { transform: none; }
	.alp-barre-mobile .alp-btn { flex: 1 1 0; min-width: 0; padding: 14px 10px; font-size: 16px; border-radius: 14px; }
}

@media (max-width: 860px) {
	body { font-size: 16px; }
	h1, .entry-title, h2 { overflow-wrap: break-word; hyphens: auto; }
	img, video, iframe { max-width: 100%; height: auto; }

	/* Menu mobile GeneratePress */
	.main-navigation.toggled .main-nav > ul {
		background: var(--alp-blanc);
		border-top: 1px solid var(--alp-neige);
		padding: 6px 18px 14px;
	}
	.main-navigation.toggled .main-nav ul li a {
		font-family: var(--alp-ui);
		font-size: 18px;
		padding: 12px 0;
		border-bottom: 1px solid var(--alp-neige);
		line-height: 1.4;
	}
	.main-navigation.toggled .main-nav ul li:last-child > a { border-bottom: 0; }

	/* Boutons pleine largeur dans les encadrés */
	.alp-appel .alp-actions,
	.alp-pied__actions { flex-direction: column; align-items: stretch; width: 100%; }
	.alp-appel .alp-actions .alp-btn,
	.alp-pied__actions .alp-btn { width: 100%; }

	/* Tableaux d'article défilants plutôt que débordants */
	.single-post .entry-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

	/* Page Conseils */
	.alp-blog-entete { padding-top: 8px; }
	.alp-blog-entete p { font-size: 16px; }
	.alp-filtres { flex-wrap: nowrap; overflow-x: auto; margin: 20px -18px 0; padding: 0 18px 4px; scrollbar-width: none; }
	.alp-filtres::-webkit-scrollbar { display: none; }
	.alp-filtres a { flex: none; }
	.blog .site-main, .archive .site-main, .search .site-main { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.blog .entry-title, .archive .entry-title, .search .entry-title { font-size: 1.5rem; }

	/* Pied de page : deux colonnes, liens faciles à toucher */
	.alp-pied__colonnes { grid-template-columns: 1fr 1fr; gap: 26px 16px; margin-top: 34px; }
	.alp-pied__colonnes a { display: inline-block; padding: 5px 0; }
	.alp-pied__nom { font-size: 30px; }
	.alp-pied__signature { font-size: 23px; }
	h2 { line-height: 1.15; }
	.site-logo img, .site-header .header-image { max-height: 56px; }
	.site-description { font-size: 17px; }

	.alp-section { padding: 56px 0; }
	.alp-conteneur { padding: 0 18px; }
	.alp-bloc { padding: 40px 22px; border-radius: 32px; }
	.alp-carte { padding: 22px 20px; }

	.single-post .site-main .inside-article { padding: 32px 20px; border-radius: 32px; }
	.single-post .entry-content { font-size: 16.5px; }
	.alp-autrice { flex-direction: column; text-align: center; }

	.site-footer { padding: 40px 0 0; }
	.alp-pied { border-radius: 32px 32px 0 0; padding: 44px 22px 20px; }
	.site-info .inside-site-info { margin: 0 22px; padding-bottom: 96px; }

}

@media (max-width: 380px) {
	.main-title a { font-size: 23px; }
	.site-description { font-size: 15.5px; }
	.site-logo img, .site-header .header-image { max-height: 48px; }
	.alp-pied__colonnes { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
}
