/*
Theme Name: Ostéopathe Mougins
Theme URI: https://osteopathe-mougins.fr/
Author: M. Bersali – IDEAXE
Author URI: https://www.ideaxe.fr/
Description: Thème sur mesure du cabinet d'ostéopathie d'Antoine Maisse à Mougins.
Version: 1.0.32
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: osteo-mougins
*/

@font-face { font-family: "Questrial"; src: url("assets/fonts/questrial-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url("assets/fonts/playfair-display-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url("assets/fonts/playfair-display-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
	--vert: #6d8f56;
	--vert-fonce: #56733f;
	--vert-doux: #9fb08a;
	--vert-footer: #a7b79b;
	--vert-bas: #b6c5b0;
	--beige: #b89a7a;
	--gris-fond: #f7f7f4;
	--texte: #333;
	--blanc: #fff;
	--sans: Verdana, Geneva, "DejaVu Sans", sans-serif;
	--hero: "Questrial", "Segoe UI", Arial, sans-serif;
	--serif: "Playfair Display", Georgia, serif;
	--largeur: 1080px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; font-family: var(--sans); font-size: 16px; line-height: 1.75; color: var(--texte); background: var(--blanc); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--vert); text-decoration: none; }
.entry p a, .entry li a { text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--vert); outline-offset: 3px; }
h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; width: auto; height: auto; clip: auto; background: var(--blanc); padding: 10px 16px; }
.wrap { width: min(100% - 40px, var(--largeur)); margin-inline: auto; }

/* ---------- En-tête ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 40; transition: background .3s, box-shadow .3s; }
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
.site-header.est-defile, .site-header.menu-ouvert { background: linear-gradient(90deg, rgba(109,143,86,.95) 0%, rgba(158,180,138,.88) 55%, rgba(122,153,98,.95) 100%); box-shadow: 0 2px 10px rgba(0,0,0,.12); }
.site-header .wrap { width: min(100% - 40px, 1300px); display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 18px; }
.header-gauche, .header-droite { display: flex; align-items: center; gap: 16px; }
.logo img { max-height: 62px; width: auto; }
.header-tel { color: var(--blanc); text-decoration: none; font-size: 17px; letter-spacing: .5px; display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.header-tel svg { width: 22px; height: 22px; fill: var(--blanc); }
.burger { width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--blanc); display: grid; place-items: center; cursor: pointer; padding: 0; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.burger svg { width: 22px; height: 22px; fill: #333; }
.btn-rdv { display: inline-flex; align-items: center; gap: 8px; background: var(--blanc); color: var(--vert); border-radius: 26px; padding: 10px 26px; font-size: 17px; font-weight: 700; text-decoration: none; border: 2px solid var(--vert-doux); white-space: nowrap; }
.btn-rdv svg { width: 18px; height: 18px; fill: var(--vert); }
.btn-rdv:hover { background: var(--vert); color: var(--blanc); }
.btn-rdv:hover svg { fill: var(--blanc); }

/* Menu en pilules */
.menu-pilules { display: none; }
.menu-ouvert .menu-pilules { display: block; }
.menu-pilules ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; flex-wrap: nowrap; }
.menu-pilules a { display: block; background: var(--blanc); color: #000; border: 1px solid #000; border-radius: 24px; padding: 11px 15px; font-family: Arial, sans-serif; font-size: 12px; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: background .2s, color .2s; }
.menu-pilules a:hover, .menu-pilules .current-menu-item > a, .menu-pilules .current_page_item > a { background: var(--vert); color: var(--blanc); border-color: var(--vert); }
@media (max-width: 1150px) { .menu-ouvert .header-tel span { display: none; } }
@media (max-width: 1000px) {
	.menu-pilules { position: absolute; top: 100%; right: 20px; }
	.menu-pilules ul { flex-direction: column; align-items: flex-end; padding: 12px 0; }
}
@media (max-width: 600px) {
	.site-header .wrap { width: calc(100% - 24px); padding-block: 12px; gap: 8px; }
	.logo img { max-height: 44px; }
	.header-tel span { display: none; }
	.header-gauche, .header-droite { gap: 8px; }
	.burger { width: 40px; height: 40px; }
	.btn-rdv { padding: 7px 14px; font-size: 14px; }
	.menu-pilules { right: 12px; }
}

/* ---------- Hero ---------- */
.hero { position: relative; min-height: max(640px, 44.6vw); background: #8a7560 center 30%/cover no-repeat; color: var(--blanc); text-align: center; }
.hero::before { content: ""; position: absolute; inset: 0; background: rgba(60,45,30,.18); }
.hero__texte { position: relative; padding: 190px 20px 240px; font-family: var(--hero); }
.hero .hero__nom, .hero .hero__titre { color: #fff !important; font-family: var(--hero) !important; text-shadow: 0 1px 12px rgba(0,0,0,.25); }
.hero__nom { font-size: clamp(28px, 3.15vw, 60px); margin: 0 0 .1em; font-weight: 400; }
.hero__titre { font-size: clamp(38px, 4.6vw, 88px); line-height: 1.23; margin: 0; }
.hero__vague { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: auto; aspect-ratio: 1905 / 180; display: block; }

/* Modes de consultation */
.modes { position: relative; z-index: 2; margin-top: -120px; padding-bottom: 60px; }
.modes ul { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: 1200px; padding-inline: 20px; }
.modes li:nth-child(2) { margin-top: 24px; }
.modes li:nth-child(3) { margin-top: 76px; }
.modes li:nth-child(4) { margin-top: 118px; }
.modes a { display: block; text-align: center; text-decoration: none; color: var(--texte); }
.modes .modes__icone { width: 130px; max-width: none; height: 130px; margin: 0 auto 16px; border-radius: 50%; background: var(--blanc); box-shadow: 0 6px 22px rgba(0,0,0,.12); display: grid; place-items: center; transition: transform .25s; }
.modes a:hover .modes__icone { transform: translateY(-4px); }
.modes__icone svg { width: 52px; height: 52px; fill: none; stroke: #555; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.modes strong { display: block; font-family: var(--hero); font-weight: 400; color: var(--vert); font-size: 24px; line-height: 1.5; text-transform: uppercase; margin-bottom: 26px; }
.modes span { display: block; font-size: 15.5px; line-height: 1.65; max-width: 240px; margin: 0 auto; }
@media (max-width: 860px) {
	.modes { margin-top: -110px; }
	.modes ul { grid-template-columns: 1fr 1fr; row-gap: 36px; }
	.modes li:nth-child(n) { margin-top: 0; }
}
@media (max-width: 480px) { .modes ul { grid-template-columns: 1fr; } }

/* ---------- Blocs texte + collage ---------- */
.bloc { padding-block: 60px; }
.bloc--gris { background: rgba(208,218,200,.1) var(--osteom-deco, none) 0 0 no-repeat; margin-inline: 6px; }
.bloc__grille { display: grid; grid-template-columns: 340px 1fr; gap: 70px; align-items: center; }
.bloc--inverse .bloc__grille { grid-template-columns: 1fr 340px; }
@media (max-width: 860px) { .bloc__grille, .bloc--inverse .bloc__grille { grid-template-columns: 1fr; gap: 30px; } .bloc--inverse .bloc__visuel { order: -1; } .bloc__visuel img { margin-inline: auto; max-width: 340px; } }
.titre-barre { border-left: 5px solid var(--vert); padding: 8px 0 8px 22px; margin-bottom: 26px; }
.titre-barre h1, .titre-barre h2 { font-size: 21px; color: var(--vert); font-weight: 600; margin: 0 0 4px; }
.titre-barre p { font-size: 14px; margin: 0; color: #333; }
.bloc h3 { font-size: 18px; color: var(--vert); font-weight: 600; margin: 1.2em 0 .3em; }
.bloc .h-sec { font-size: 19px; color: var(--vert); font-weight: 600; margin: 1.6em 0 .3em; }
.bloc .h-sous { margin-top: 0; font-size: 16.5px; }
.bloc h4 { font-size: 16px; color: var(--vert); font-weight: 600; margin: 0 0 1em; }
.bloc .texte { font-size: 15.5px; text-align: justify; }
.bloc .texte strong { color: #111; }
.bloc .texte p { margin-bottom: 1.6em; }

/* Pour aller plus loin */
.plus-loin { padding-block: 40px 30px; }
.plus-loin__boite { max-width: 960px; margin: 0 auto; border: 0; border-radius: 20px; box-shadow: 0 0 7px rgba(0,0,1,.48); padding: 20px 46px; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; gap: 20px; }
.plus-loin__boite strong { font-size: 18px; color: #222; }
.btn-doux { justify-self: center; display: inline-flex; align-items: center; gap: 6px; background: rgba(109,143,86,.63); color: var(--blanc); border: 1px solid #bcbcbc; border-radius: 13px; padding: 9px 18px; font-size: 13px; text-decoration: none; transition: background .2s; }
.btn-doux + .btn-doux { background: rgba(159,155,125,.63); }
.btn-doux:hover, .btn-doux + .btn-doux:hover { background: #5f953b; }
.btn-doux svg { width: 12px; height: 12px; fill: var(--blanc); }
@media (max-width: 640px) { .plus-loin__boite { grid-template-columns: 1fr; text-align: center; padding: 20px; } }

/* Je consulte pour */
.consulte { padding-block: 60px 80px; text-align: center; }
.consulte h2 { font-size: clamp(26px, 3.4vw, 38px); color: var(--vert); font-weight: 700; margin-bottom: .4em; }
.consulte__intro { font-size: 15.5px; max-width: 1000px; margin: 0 auto 70px; }
.consulte__intro p { margin: 0; }
.consulte > .wrap { width: min(100% - 40px, 1220px); }
.corps { display: grid; grid-template-columns: minmax(0, 358px) minmax(260px, 370px) minmax(0, 358px); column-gap: clamp(20px, 3vw, 43px); justify-content: center; align-items: start; margin: 0 auto; text-align: left; }
.corps__col { display: flex; flex-direction: column; gap: 46px; padding-top: 4px; }
.corps__item { display: flex; gap: clamp(16px, 4.3vw, 62px); align-items: flex-start; text-decoration: none; color: var(--texte); }
.corps__col--g .corps__item { text-align: right; }
.corps__txt { flex: 1; min-width: 0; }
.corps__item strong, .corps__trait { display: inline-block; font-family: var(--serif); font-weight: 700; color: var(--vert); font-size: 21px; line-height: 1.4; padding-bottom: 8px; margin-bottom: 14px; border-bottom: 3px solid #ededed; }
.corps__trait { width: 160px; height: 0; padding: 0; margin: 4px 0 18px; }
.corps__item .corps__desc { display: block; font-size: 15px; line-height: 1.9; }
.corps__item:hover strong { color: var(--vert-fonce); }
.fleche { flex: 0 0 26px; padding-top: 4px; }
.fleche svg { width: 26px; height: 26px; stroke: #222; stroke-width: 1.5; fill: none; }
.corps__item--sans .fleche { padding-top: 0; margin-top: -8px; }
.corps__figure img { border-radius: 26px; width: 100%; }
@media (max-width: 900px) {
	.corps { grid-template-columns: 1fr; row-gap: 30px; }
	.fleche { display: none; }
	.corps__col { gap: 26px; }
	.corps__col--g .corps__item { text-align: left; }
	.corps__figure { order: -1; max-width: 300px; margin: 0 auto; }
}

/* Avis */
.avis { padding-block: 40px 120px; text-align: center; }
.avis h2 { font-size: clamp(26px, 3.4vw, 38px); color: var(--vert); font-weight: 700; margin: 0; }
.avis__google { display: inline-block; margin: 0 auto 6px; }
.avis__google img { max-width: 200px; margin: 0 auto; }
.avis__plus { display: inline-block; font-size: 13px; text-transform: uppercase; color: #333; text-decoration: none; margin-bottom: 50px; }
.avis__plus:hover { color: var(--vert); }
.carrousel { position: relative; max-width: 1020px; margin: 0 auto; padding-inline: 40px; }
.carrousel__piste { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; align-items: flex-start; }
.carrousel__piste::-webkit-scrollbar { display: none; }
.avis__carte { flex: 0 0 calc((100% - 28px) / 3); scroll-snap-align: start; background: #f5f5f5; margin: 0; padding: 40px 30px 34px; }
.avis__carte img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; margin: 0 auto 26px; }
.avis__carte blockquote { margin: 0 0 22px; font-size: 14.5px; line-height: 1.9; color: #555; }
.avis__carte figcaption { font-weight: 700; font-size: 17px; color: #222; }
.carrousel__btn { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: 0; cursor: pointer; padding: 6px; color: #999; font-size: 24px; line-height: 1; }
.carrousel__btn--prec { left: 0; }
.carrousel__btn--suiv { right: 0; }
.carrousel__btn:hover { color: var(--vert); }
@media (max-width: 860px) { .avis__carte { flex-basis: calc((100% - 14px) / 2); } }
@media (max-width: 560px) { .avis__carte { flex-basis: 100%; } }

/* ---------- Pages intérieures ---------- */
.page-tete { position: relative; background: #8a7560 center/cover no-repeat; color: var(--blanc); text-align: center; padding: 150px 20px 80px; }
.page-tete::before { content: ""; position: absolute; inset: 0; background: rgba(60,45,30,.4); }
.page-tete > * { position: relative; }
.page-tete h1 { font-family: var(--hero); font-weight: 400; font-size: clamp(30px, 4.5vw, 50px); margin: 0; }
.page-tete time { font-size: 15px; }
.contenu { padding-block: 60px; }
.contenu > .wrap { width: min(100% - 40px, 1200px); }
.contenu .entry { max-width: none; font-size: 16px; }
.contenu .entry::after { content: ""; display: table; clear: both; }
.entry .alignwide { width: min(100vw - 40px, 1300px); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry input, .entry select, .entry textarea { max-width: 100%; box-sizing: border-box; }
.contenu .entry h2, .contenu .entry h3 { color: var(--vert); }
.contenu .entry img { border-radius: 8px; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-inline: auto; }
.btn-plein { display: inline-block; background: var(--vert); color: var(--blanc); padding: 10px 20px; border-radius: 6px; text-decoration: none; }
.btn-plein:hover { background: var(--vert-fonce); }

.billets { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 26px; }
.billet { background: var(--gris-fond); overflow: hidden; border-radius: 8px; }
.billet img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.billet__corps { padding: 18px 22px 22px; }
.billet h2 { font-size: 21px; }
.billet h2 a { color: var(--vert); text-decoration: none; }
.billet time { font-size: 14px; color: #777; }
.pagination { margin-top: 40px; display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.pagination .page-numbers { padding: 6px 12px; border: 1px solid #ddd; border-radius: 6px; text-decoration: none; }
.pagination .current { background: var(--vert); color: var(--blanc); border-color: var(--vert); }

/* ---------- Pied de page ---------- */
.site-footer { position: relative; background: var(--vert-footer); color: var(--blanc); font-size: 14.5px; margin-top: 110px; }
.footer__vague { position: absolute; left: 0; right: 0; top: -109px; width: 100%; height: 110px; display: block; }
.footer__grille { display: grid; grid-template-columns: 1fr 1fr 1fr 1.1fr; gap: 30px; padding-block: 60px 50px; width: min(100% - 40px, 1000px); }
.site-footer ul { margin: 0; padding-left: 14px; }
.site-footer li { margin-bottom: .55em; }
.site-footer a { color: var(--blanc); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.footer__contact div { display: flex; justify-content: space-between; gap: 10px; padding: 0 4px 8px; margin-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.6); }
.footer__contact div > span:first-child { white-space: nowrap; }
.footer__contact div.col { flex-direction: column; gap: 4px; }
.footer__carte { margin-top: 22px; width: 100%; max-width: 230px; height: 160px; border: 0; display: block; margin-inline: auto; }
.footer-bas { background: var(--vert-bas); }
.footer-bas .wrap { width: min(100% - 40px, 1000px); display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 14px; font-size: 13px; }
.reseaux { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0 !important; }
.reseaux a { width: 30px; height: 30px; border-radius: 50%; background: var(--blanc); display: grid; place-items: center; }
.reseaux svg { width: 14px; height: 14px; fill: #444; }
@media (max-width: 860px) { .footer__grille { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .footer__grille { grid-template-columns: 1fr; } .footer-bas .wrap { justify-content: center; text-align: center; } }

.retour-haut { position: fixed; right: 18px; bottom: 18px; width: 30px; height: 30px; border-radius: 50%; background: #e9eee4; color: var(--vert); border: 0; display: grid; place-items: center; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .3s; z-index: 30; }
.retour-haut.visible { opacity: 1; pointer-events: auto; }
.retour-haut svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; }

/* ---------- Formulaire de contact ---------- */
.osteom-form { max-width: 640px; font-size: 16px; color: #222; }
.osteom-form__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.osteom-form__champ { margin: 0 0 16px; }
.osteom-form__champ--plein { grid-column: 1 / -1; }
.osteom-form label { display: block; margin-bottom: 4px; }
.osteom-form input[type="text"], .osteom-form input[type="tel"], .osteom-form input[type="email"], .osteom-form textarea { width: 100%; border: 2px solid transparent; background: var(--vert-footer); color: #1d2a14; border-radius: 10px; padding: 3px 12px; font: inherit; min-height: 22px; }
.osteom-form textarea { border-radius: 18px; min-height: 150px; padding: 10px 14px; resize: vertical; }
.osteom-form input:focus, .osteom-form textarea:focus { outline: none; border-color: var(--vert-fonce); background: #b7c5a6; }
.osteom-form [aria-invalid="true"] { border-color: #b3261e; }
.osteom-form__msg { display: block; color: #b3261e; font-size: 13.5px; margin-top: 3px; }
.osteom-form__rgpd label { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.osteom-form__rgpd input { margin-top: 3px; accent-color: var(--vert); }
.osteom-form__envoyer { background: var(--vert); color: var(--blanc); border: 0; border-radius: 10px; padding: 9px 28px; font: inherit; font-weight: 600; cursor: pointer; }
.osteom-form__envoyer:hover { background: var(--vert-fonce); }
.osteom-form__ok { background: #e7efe0; border-left: 4px solid var(--vert); padding: 12px 16px; }
.osteom-form__erreur { background: #fbeaea; border-left: 4px solid #b3261e; padding: 12px 16px; }
.osteom-form__piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 560px) { .osteom-form__grille { grid-template-columns: 1fr; } }

/* ---------- Mises en page WPBakery / Codevz rendues par le thème ---------- */
.osb-ligne { display: flex; flex-wrap: wrap; margin-inline: -15px; }
.osb-ligne.osb-milieu { align-items: center; }
.osb-col { flex: 0 0 var(--osb-l, 100%); max-width: var(--osb-l, 100%); padding-inline: 15px; min-width: 0; }
.osb-texte { margin-bottom: 20px; }
.osb-texte > :last-child { margin-bottom: 0; }
.osb-image { margin: 0 0 20px; }
.osb-image img { width: 100%; height: auto; }
.osb-align-center { text-align: center; }
.osb-align-right { text-align: right; }
.osb-separateur { border: 0; border-top: 1px solid #e3e3e3; margin: 24px 0; }
.osb-bouton { display: inline-flex; align-items: center; gap: 10px; color: var(--blanc); background: var(--vert); padding: 12px 26px; border-radius: 25px; text-decoration: none !important; transition: background .2s; }
.osb-bouton svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; }
@media (max-width: 767px) {
	.osb-col { flex-basis: 100%; max-width: 100%; }
	.osb-cache-xs { display: none !important; }
}
@media (min-width: 768px) and (max-width: 991px) { .osb-cache-sm { display: none !important; } }
@media (min-width: 992px) and (max-width: 1199px) { .osb-cache-md { display: none !important; } }
@media (min-width: 1200px) { .osb-cache-lg { display: none !important; } }
.osb-ligne--pleine { width: auto; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.osb-ligne--centree { padding-inline: max(5px, calc(50vw - 615px)); }
.osb-ligne--sans-marge > .osb-col { padding-inline: 0; }
.osb-col__fond { height: 100%; }
.osb-boite { position: relative; }
.osb-boite--prolongee::before { content: ""; position: absolute; top: 0; bottom: 0; right: 100%; width: 100vw; background: inherit; }
body { overflow-x: clip; }
.osb-titre { display: block; color: inherit; text-decoration: none !important; }
.osb-titre--icone { display: flex; align-items: flex-start; }
.osb-titre__icone { flex: 0 0 auto; display: grid; place-items: center; width: 1em; height: 1em; box-sizing: content-box; transition: background .2s, color .2s; }
.osb-titre__icone svg { width: 1em; height: 1em; }
.osb-titre__corps { flex: 1; min-width: 0; }
.osb-titre__corps > :last-child { margin-bottom: 0; }
.osb-titre h1, .osb-titre h3 { margin: 0 0 .2em; }
.osb-titre ul { margin: 0; padding-left: 1.2em; color: var(--blanc); line-height: 2; }
.osb-titre > .osb-titre__corps > ul { padding-bottom: 14px; }
.osb-titre ul ul { padding-left: 0; }
.osb-carte iframe { display: block; width: 100%; border: 0; }
.osb-formulaire .osteom-form { max-width: none; }

/* Carte en fin de page : elle passe sous la courbe du pied de page */
.contenu:has(.entry > .osb-ligne:last-child .osb-carte) { padding-bottom: 0; }
main:has(.entry > .osb-ligne:last-child .osb-carte) + .site-footer { margin-top: 0; }
.entry > .osb-ligne:last-child .osb-carte iframe { height: 560px !important; }

/* Pastilles : images d'origine et survol */
.modes .modes__icone { position: relative; overflow: hidden; }
.modes__img { width: 50px; height: auto; transition: opacity .25s; }
.modes__img--survol { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0; }
.modes a:hover .modes__icone { background: #b6c5b0; }
.modes a:hover .modes__img { opacity: 0; }
.modes a:hover .modes__img--survol { opacity: 1; }
.modes span:not(.modes__icone) { color: #888; transition: color .2s; }
.modes a:hover span:not(.modes__icone) { color: #000; }
.modes a:hover strong { color: #000; }

/* Pastilles calées sur la courbe sans JavaScript : la courbe et les pastilles
   suivent toutes deux la largeur de l'écran (relevé sur la maquette à 1905 px). */
@media (min-width: 1000px) {
	.modes { margin-top: 0; }
	.modes ul { max-width: none; width: 63vw; margin: 0 0 0 18.9vw; padding: 0; gap: 0; grid-template-columns: repeat(4, 1fr); }
	.modes li { padding-inline: 10px; }
	.modes li:nth-child(1) { margin-top: calc(-8.2677vw - 65px); }
	.modes li:nth-child(2) { margin-top: calc(-6.8504vw - 65px); }
	.modes li:nth-child(3) { margin-top: calc(-3.4908vw - 65px); }
	.modes li:nth-child(4) { margin-top: calc(-1.5735vw - 65px); }
}

/* ---------- Grille « Derniers articles » (page Consultation et Tarifs) ---------- */
.entry .wp-block-latest-posts.is-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; padding: 0; margin: 30px 0 50px; list-style: none; }
.entry .wp-block-latest-posts.is-grid li { width: auto; margin: 0; }
.wp-block-latest-posts__featured-image { margin: 0 0 12px; }
.wp-block-latest-posts__featured-image a { display: block; overflow: hidden; border-radius: 30px; }
.wp-block-latest-posts__featured-image img { width: 100%; aspect-ratio: 1 / 0.82; object-fit: cover; border-radius: 30px; transition: transform .4s; }
.wp-block-latest-posts li:hover .wp-block-latest-posts__featured-image img { transform: scale(1.06); }
.entry .wp-block-latest-posts a.wp-block-latest-posts__post-title { display: block; color: var(--vert); text-decoration: none; font-size: 15px; line-height: 1.5; text-align: center; }
.entry .wp-block-latest-posts a.wp-block-latest-posts__post-title:hover { color: var(--vert-fonce); }
.wp-block-latest-posts__post-date { display: none; }
@media (max-width: 1000px) { .entry .wp-block-latest-posts.is-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .entry .wp-block-latest-posts.is-grid { grid-template-columns: 1fr; } }

/* Classes à ajouter dans « Avancé > Classe(s) CSS additionnelle(s) » d'un bloc */
@media (max-width: 1023px) { .cache-tablette-mobile { display: none !important; } }
@media (max-width: 767px) { .cache-mobile { display: none !important; } }
@media (min-width: 1024px) { .cache-ordinateur { display: none !important; } }

/* ---------- Page Contact (blocs Gutenberg) ---------- */
.entry .contact-zone { gap: 0; align-items: center; margin: 0; }
.contact-intro { position: relative; background: rgba(220,228,215,.23); padding: 60px 40px; }
.contact-intro::before { content: ""; position: absolute; top: 0; bottom: 0; right: 100%; width: 100vw; background: inherit; }
.entry .contact-intro h1 { font-family: var(--sans); font-size: 24px; font-weight: 200; color: #3d474e; margin: 0 0 6px; }
.contact-intro .osteom-form { max-width: none; margin: 30px 100px 0 0; padding: 0 20px 0 5px; }
.contact-intro .osteom-form label { font-size: 14px; color: #000; margin-bottom: 3px; }
.contact-intro .osteom-form__champ { margin-bottom: 18px; }
.contact-intro .osteom-form input[type="text"], .contact-intro .osteom-form input[type="tel"], .contact-intro .osteom-form input[type="email"], .contact-intro .osteom-form textarea { background: #a7b79b; color: #fff; border: 0; border-radius: 20px; }
.contact-intro .osteom-form__envoyer { border-radius: 25px; padding-inline: 25px; }
.contact-intro .osteom-form__envoyer:hover { background: #fff; color: #3d474e; }
.contact-encadre { position: relative; z-index: 1; background: #a7b79b; color: #fff; border-radius: 25px; padding: 40px 50px; margin-left: -110px; }
.entry .contact-encadre + .contact-encadre { margin-top: 20px; }
.contact-encadre > :last-child { margin-bottom: 0; }
.contact-encadre a { color: #fff; text-decoration: none !important; }
.contact-atouts { padding-left: 130px; }
.contact-atouts::before, .contact-ligne::before { content: ""; position: absolute; width: 44px; height: 44px; border-radius: 50%; background: #fff center / 24px no-repeat; }
.contact-atouts::before { left: 50px; top: calc(50% - 22px); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233d474e'%3E%3Cpath d='M12 3a4 4 0 1 1 0 8 4 4 0 0 1 0-8zM4.5 21c0-4 3.2-7 7.5-7s7.5 3 7.5 7z'/%3E%3Cpath d='M9 14.6v3.1a1.4 1.4 0 1 0 1.2 0v-2.9M15 14.7V17a2 2 0 0 1-4 0' fill='none' stroke='%23fff' stroke-width='1.2'/%3E%3C/svg%3E"); }
.entry .contact-atouts ul { margin: 0; padding-left: 18px; list-style: circle; font-size: 14px; line-height: 2; font-weight: 600; }
.entry .contact-ligne { position: relative; padding-left: 80px; min-height: 44px; margin: 0 0 26px; font-size: 15px; line-height: 1.6; }
.contact-ligne::before { left: 0; top: 50%; transform: translateY(-50%); }
.contact-ligne--tel::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233d474e'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
.contact-ligne--mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233d474e'%3E%3Cpath d='M3 6h18v12H3z' fill='none' stroke='%233d474e' stroke-width='1.8'/%3E%3Cpath d='M3 6l9 7 9-7' fill='none' stroke='%233d474e' stroke-width='1.8'/%3E%3C/svg%3E"); }
.contact-ligne--adresse::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233d474e'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.contact-ligne__libelle { display: block; color: rgba(255,255,255,.6); font-size: 17px; font-weight: 200; }
.contact-ligne--tel a { font-size: 20px; }
.contact-carte { width: 100vw; margin-left: calc(50% - 50vw); }
.contact-carte iframe { display: block; width: 100%; height: 560px; border: 0; }
.contenu:has(.entry > .contact-carte:last-child) { padding-bottom: 0; }
main:has(.entry > .contact-carte:last-child) + .site-footer { margin-top: 0; }
@media (max-width: 781px) {
	.contact-encadre { margin-left: 0; }
	.entry .contact-zone > .wp-block-column + .wp-block-column { margin-top: 20px; }
	.contact-intro { padding: 40px 20px; }
	.contact-intro .osteom-form { margin-right: 0; padding: 0; }
	.contact-encadre { padding: 30px 24px; }
	.contact-atouts { padding-left: 90px; }
	.contact-atouts::before { left: 24px; }
}

/* ---------- Questions fréquentes (blocs Détails de classe faq) ---------- */
.entry .faq-intro { margin-bottom: 60px; }
.entry details.faq { margin: 0 0 12px; border-radius: 26px; transition: background .2s; }
.entry details.faq > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 14px; background: #9b9f97; color: #fff; border-radius: 99px; padding: 12px 30px; font-size: 15px; line-height: 1.4; transition: background .2s; }
.entry details.faq > summary::-webkit-details-marker { display: none; }
.entry details.faq > summary::before { content: ""; flex: 0 0 auto; width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
.entry details.faq[open] > summary::before { transform: rotate(-135deg) translate(-2px, -1px); }
.entry details.faq > summary:hover, .entry details.faq[open] > summary { background: #a7b79b; }
.entry details.faq[open] { background: rgba(167,183,155,.08); }
.entry details.faq > :not(summary) { padding-inline: 40px; text-align: justify; }
.entry details.faq > summary + * { margin-top: 30px; }
.entry details.faq > :last-child { margin-bottom: 0; padding-bottom: 30px; }
.entry details.faq h3 { font-size: 17px; color: var(--vert); }
@media (max-width: 600px) { .entry details.faq > :not(summary) { padding-inline: 18px; } .entry details.faq > summary { padding-inline: 20px; } }

/* ---------- Pied de page : détails de l'original ---------- */
.site-footer { background: var(--vert-footer) var(--osteom-deco-pied, none) 0 110px no-repeat; }
.footer__contact .fc > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
.footer__contact .fc > span:first-child::before { content: ""; width: 16px; height: 16px; flex: 0 0 16px; background: #fff; -webkit-mask: var(--fc-ico) center / contain no-repeat; mask: var(--fc-ico) center / contain no-repeat; }
.fc--tel { --fc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
.fc--adresse { --fc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3z'/%3E%3C/svg%3E"); }
.fc--mail { --fc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M3 6h18v12H3z'/%3E%3Cpath d='M3 6l9 7 9-7'/%3E%3C/svg%3E"); }
.reseaux a { width: 34px; height: 34px; border-radius: 50px; background: #fff; border-bottom: 3px solid #c1c1c1; box-shadow: 0 0 10px rgba(0,0,0,.15); transition: background .2s; }
.reseaux svg { width: 16px; height: 16px; fill: #666; transition: fill .2s; }
.reseaux a:hover { background: var(--vert); }
.reseaux a:hover svg { fill: #fff; }
.footer-bas .wrap > span:last-child a { font-family: Arial, sans-serif; font-size: 14px; }

/* ---------- Blocs Gutenberg : images, boutons, titre à barre ---------- */
.osteom-image { margin: 0 0 20px; }
.osteom-image img { width: 100%; height: auto; }
.entry .wp-block-button__link { background: rgba(109,143,86,.88); color: #fff; border-radius: 25px; padding: 12px 28px; font-size: 14px; text-decoration: none !important; transition: background .2s; }
.entry .wp-block-button__link:hover { background: #4b8d20; color: #fff; }
.entry .wp-block-group.titre-barre { border-left: 5px solid var(--vert); padding: 8px 0 8px 22px; margin-bottom: 26px; }
.entry .titre-barre h2 { font-size: 21px; color: var(--vert); margin: 0 0 4px; }
.entry .titre-barre p { font-size: 15px; margin: 0; color: #000; }
