/* ==========================================================================
   Perrine Bombony — feuille de styles
   Points de rupture : 860 px (mise en page mobile → desktop), 1024 px (burger →
   menu horizontal, barre d'appel), 1180 px (marges). Contenu plafonné à 1440 px.
   Or : #A8842A uniquement pour un texte ≥ 24 px ; #6F5518 en dessous ; #C9A227 sur encre.
   ========================================================================== */

:root {
	--c-blanc: #fff;
	--c-creme: #f3ede1;
	--c-filet: #ddcfa8;
	--c-sep: #e2d8c4;
	--c-encre: #211d17;
	--c-chapo: #544c40;
	--c-corps: #4c463b;
	--c-mention: #6b6355;
	--c-or: #a8842a;
	--c-or-profond: #6f5518;
	--c-or-clair: #c9a227;
	--c-sur-encre: 247, 242, 233; /* #F7F2E9, utilisé en rgba() */

	--f-serif: Newsreader, Georgia, serif;
	--f-sans: Archivo, system-ui, sans-serif;

	--gutter: 22px;
	--edge: max(var(--gutter), calc((100cqw - 1440px) / 2)); /* cqw : largeur de .wp-site-blocks, hors barre de défilement */
	--t: 180ms ease;
	--admin-bar: var(--wp-admin--admin-bar--height, 0px);
}
@media (min-width: 860px) { :root { --gutter: 40px; } }
@media (min-width: 1180px) { :root { --gutter: 56px; } }

/* --- Base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
	margin: 0;
	background: var(--c-blanc);
	color: var(--c-encre);
	font: 400 15.5px/1.75 var(--f-sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
@media (min-width: 860px) { body { font-size: 16.5px; line-height: 1.8; } }
h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: inherit; font-size: inherit; line-height: inherit; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
button { font: inherit; color: inherit; }
[id] { scroll-margin-top: 24px; }
@media (min-width: 1024px) { [id] { scroll-margin-top: calc(140px + var(--admin-bar)); } }

a {
	color: var(--c-or-profond);
	text-decoration: underline;
	text-decoration-color: var(--c-or);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--t), background-color var(--t), border-color var(--t), text-decoration-color var(--t);
}
a:hover { color: var(--c-encre); }
:focus-visible { outline: 2px solid var(--c-or); outline-offset: 2px; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
	position: fixed !important; top: 8px; left: 8px; z-index: 200; width: auto; height: auto;
	clip: auto; padding: 12px 18px; background: var(--c-blanc); color: var(--c-encre);
}
html.pb-noscroll { overflow: hidden; }

/* Les parties de modèle ne doivent pas créer de boîte (en-tête collant). */
.pb-tp { display: contents; }
.wp-site-blocks { padding: 0; container-type: inline-size; }

/* --- Boutons --------------------------------------------------------------
   Bordure 1,5 px sur tous les boutons (transparente si pleins) : mêmes
   dimensions extérieures quel que soit le style. */
.pb-btn,
.wp-block-button__link {
	display: inline-block;
	font: 500 15.5px/normal var(--f-sans);
	padding: 16.5px 32.5px;
	border: 1.5px solid transparent;
	border-radius: 2px;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: color var(--t), background-color var(--t), border-color var(--t);
}
.pb-btn--or { background: var(--c-or-clair); color: var(--c-encre); }
.pb-btn--or:hover { background: var(--c-encre); color: var(--c-or-clair); }
.pb-btn--encre { background: var(--c-encre); color: var(--c-blanc); }
.pb-btn--encre:hover { background: var(--c-or-clair); color: var(--c-encre); }
.pb-btn--contour { background: transparent; border-color: var(--c-encre); color: var(--c-encre); }
.pb-btn--contour:hover { background: var(--c-encre); color: var(--c-blanc); }

/* Bouton natif (core/button) : mêmes styles, choisis dans l'éditeur. */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.wp-block-button { margin: 0; }
.wp-block-button__link { background: var(--c-encre); color: var(--c-blanc); }
.wp-block-button__link:hover { background: var(--c-or-clair); color: var(--c-encre); }
.is-style-or > .wp-block-button__link { background: var(--c-or-clair); color: var(--c-encre); }
.is-style-or > .wp-block-button__link:hover { background: var(--c-encre); color: var(--c-or-clair); }
.is-style-contour > .wp-block-button__link { background: transparent; border-color: var(--c-encre); color: var(--c-encre); }
.is-style-contour > .wp-block-button__link:hover { background: var(--c-encre); color: var(--c-blanc); }
.is-style-contour-clair > .wp-block-button__link { background: transparent; border-color: var(--c-filet); color: var(--c-corps); }
.is-style-contour-clair > .wp-block-button__link:hover { background: var(--c-creme); color: var(--c-encre); }
.is-style-clair > .wp-block-button__link { background: var(--c-or-clair); color: var(--c-encre); }
.is-style-clair > .wp-block-button__link:hover { background: var(--c-blanc); color: var(--c-encre); }
.is-style-lien > .wp-block-button__link {
	padding: 0 0 3px;
	background: none;
	border: 0;
	border-bottom: 1.5px solid var(--c-or);
	border-radius: 0;
	color: var(--c-encre);
}
.is-style-lien > .wp-block-button__link:hover { background: none; color: var(--c-or-profond); }

/* --- Typographie partagée ----------------------------------------------------- */
.wp-block-image { margin: 0; }
.pb-surtitre,
.pb-label {
	font: 400 11px/1.4 var(--f-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--c-or-profond);
}
@media (min-width: 860px) {
	.pb-surtitre { font-size: 12px; letter-spacing: .18em; }
	.pb-label { font-size: 13px; letter-spacing: .18em; }
	.pb-label--filet { display: flex; align-items: center; gap: 14px; }
	.pb-label--filet::before { content: ""; flex: none; width: 34px; height: 2px; background: var(--c-or); }
}
.pb-chapo { font: 400 15.5px/1.68 var(--f-sans); color: var(--c-chapo); text-wrap: pretty; }
@media (min-width: 860px) { .pb-chapo { font-size: 17px; line-height: 1.7; } }

/* Filigrane du logo : toujours en absolu derrière un contenu en relatif, jamais de z-index négatif. */
.pb-filigrane { position: relative; overflow: hidden; }
.pb-filigrane::before {
	content: "";
	position: absolute;
	right: -70px;
	bottom: -60px;
	width: 280px;
	height: 280px;
	background: url(../img/logo-pb-500.webp) center / contain no-repeat;
	opacity: .14;
	pointer-events: none;
}
.pb-filigrane > * { position: relative; }
@media (min-width: 860px) { .pb-filigrane::before { right: -60px; bottom: -70px; width: 390px; height: 390px; } }

/* --- En-tête --------------------------------------------------------------- */
.pb-header {
	position: relative;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 12px var(--edge);
	background: var(--c-creme);
	border-bottom: 1px solid var(--c-filet);
}
.pb-header__logo { margin-right: auto; line-height: 0; }
.pb-header__logo img { width: 54px; height: 54px; object-fit: contain; }
.pb-header__tel {
	font: 500 13.5px var(--f-sans);
	color: var(--c-encre);
	text-decoration: none;
	white-space: nowrap;
}
.pb-header__tel:hover { color: var(--c-encre); text-decoration: underline; text-decoration-color: var(--c-or); }
.pb-nav, .pb-header__cta { display: none; }
.pb-burger {
	display: flex;
	flex-direction: column;
	gap: 4.5px;
	padding: 8px 2px;
	background: none;
	border: 0;
	cursor: pointer;
}
.pb-burger span { display: block; width: 22px; height: 1.6px; background: var(--c-encre); }

@media (min-width: 1024px) {
	.pb-header {
		position: sticky;
		top: var(--admin-bar);
		gap: 30px;
		padding-block: 16px;
	}
	.pb-header__logo { margin-right: 0; }
	.pb-header__logo img { width: 84px; height: 84px; }
	.pb-header__tel { font-size: 15px; }
	.pb-header__cta { display: inline-block; font-size: 13px; padding: 10.5px 20.5px; white-space: nowrap; }
	.pb-burger { display: none; }
	.pb-nav { display: block; flex: 1; }
}

.pb-nav__list {
	display: flex;
	gap: 26px;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 15px var(--f-serif);
}
.pb-nav__item { position: relative; display: flex; align-items: center; gap: 5px; }
.pb-nav__link { color: var(--c-encre); text-decoration: none; padding: 6px 0; }
.pb-nav__link:hover,
.pb-nav__link[aria-current] { color: var(--c-encre); text-decoration: underline; text-decoration-color: var(--c-or); }
.pb-nav__toggle {
	padding: 6px 0;
	background: none;
	border: 0;
	font-size: 9px;
	line-height: 1;
	color: var(--c-or-profond);
	cursor: pointer;
}
.pb-nav__sub {
	position: absolute;
	top: calc(100% + 12px);
	left: -20px;
	min-width: 300px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: var(--c-blanc);
	border: 1px solid var(--c-filet);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity var(--t), visibility var(--t), transform var(--t);
}
.pb-nav__sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.pb-nav__item:hover .pb-nav__sub,
.pb-nav__item:focus-within .pb-nav__sub,
.pb-nav__item.is-open .pb-nav__sub { opacity: 1; visibility: visible; transform: none; }
.pb-nav__sub a {
	display: block;
	padding: 11px 20px;
	font: 400 15px var(--f-serif);
	color: var(--c-encre);
	text-decoration: none;
}
.pb-nav__sub a:hover,
.pb-nav__sub a[aria-current] { background: var(--c-creme); color: var(--c-encre); }

/* --- Menu mobile plein écran ------------------------------------------------ */
.pb-menu {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	background: var(--c-creme);
}
.pb-menu[hidden] { display: none; }
@media (min-width: 1024px) { .pb-menu { display: none !important; } }
.pb-menu__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px var(--edge);
	border-bottom: 1px solid var(--c-filet);
}
.pb-menu__top img { width: 54px; height: 54px; object-fit: contain; }
.pb-menu__close {
	padding: 0 4px;
	background: none;
	border: 0;
	font: 300 30px/1 var(--f-serif);
	color: var(--c-encre);
	cursor: pointer;
}
.pb-menu__body { flex: 1; padding: 26px var(--edge); }
.pb-menu__label {
	margin-bottom: 14px;
	font: 400 11px var(--f-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--c-or-profond);
}
.pb-menu__group { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pb-menu__group--sub { margin-bottom: 30px; padding-bottom: 26px; border-bottom: 1px solid var(--c-filet); }
.pb-menu__group a { font: 300 25px var(--f-serif); color: var(--c-encre); text-decoration: none; }
.pb-menu__group a:hover,
.pb-menu__group a[aria-current] { text-decoration: underline; text-decoration-color: var(--c-or); text-decoration-thickness: 1px; }
.pb-menu__cta {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 24px var(--edge);
	background: var(--c-blanc);
	border-top: 1px solid var(--c-filet);
}
.pb-menu__cta .pb-btn { display: block; font-size: 16px; padding: 15.5px 0; }

/* --- Pied de page ------------------------------------------------------------ */
.pb-footer {
	padding: 34px var(--edge) 26px;
	background: var(--c-encre);
	color: rgba(var(--c-sur-encre), .84);
}
.pb-footer__grid { display: flex; flex-direction: column; gap: 26px; }
.pb-footer__id { display: flex; gap: 20px; align-items: flex-start; }
.pb-footer__nap { flex: 1; font: 400 13.5px/1.75 var(--f-sans); color: rgba(var(--c-sur-encre), .84); }
.pb-footer__nap a { color: var(--c-blanc); font-weight: 500; text-decoration: none; }
.pb-footer__logo { display: none; }
.pb-adr-br { display: none; }
.pb-footer__label {
	margin-bottom: 12px;
	font: 400 11px var(--f-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--c-or-clair);
}
.pb-footer__links {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 14.5px var(--f-serif);
}
.pb-footer__links a { color: rgba(var(--c-sur-encre), .86); text-decoration: none; }
.pb-footer a:hover { color: var(--c-blanc); text-decoration: underline; text-decoration-color: var(--c-or-clair); }
.pb-footer__barreau-link {
	display: inline-block;
	padding: 11px 13px;
	background: var(--c-blanc);
	border-radius: 2px;
	line-height: 0;
}
.pb-footer__barreau-link img { width: 126px; }
.pb-footer__legal {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin: 26px 0 0;
	padding: 18px 0 0;
	list-style: none;
	border-top: 1px solid rgba(var(--c-sur-encre), .16);
	font: 400 12px var(--f-sans);
	color: rgba(var(--c-sur-encre), .66);
}
.pb-footer__legal a { color: inherit; text-decoration: none; }

@media (min-width: 860px) {
	.pb-footer { padding: 54px var(--edge) 30px; }
	.pb-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; }
	.pb-footer__nap { font-size: 14px; }
	.pb-footer__logo { display: block; flex: none; width: 86px; height: 86px; object-fit: contain; }
	.pb-adr-br { display: inline; }
	.pb-adr-sep { display: none; }
	.pb-footer__label { margin-bottom: 14px; font-size: 11.5px; }
	.pb-footer__barreau { display: flex; flex-direction: column; gap: 12px; }
	.pb-footer__barreau .pb-footer__label { margin-bottom: 0; }
	.pb-footer__barreau-link { align-self: flex-start; padding: 12px 14px; }
	.pb-footer__barreau-link img { width: 132px; }
	.pb-footer__legal {
		flex-direction: row;
		justify-content: center;
		gap: 18px;
		margin-top: 34px;
		padding: 0;
		border: 0;
		font-size: 12.5px;
	}
	.pb-footer__legal li + li::before { content: "·"; margin-right: 18px; }
}
@media (min-width: 1280px) {
	.pb-footer__grid { grid-template-columns: 1.3fr 1fr 1fr 160px; }
}

/* --- Barre d'appel mobile ------------------------------------------------------ */
.pb-callbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	display: flex;
	gap: 10px;
	padding: 12px var(--edge) calc(12px + env(safe-area-inset-bottom, 0px));
	background: var(--c-creme);
	border-top: 1px solid var(--c-filet);
	box-shadow: 0 -6px 18px rgba(33, 29, 23, .1);
}
.pb-callbar .pb-btn { flex: 1; font-size: 15px; padding: 14.5px 0; }
body { padding-bottom: calc(75px + env(safe-area-inset-bottom, 0px)); }
@media (min-width: 1024px) {
	.pb-callbar { display: none; }
	body { padding-bottom: 0; }
}

/* --- Éditeur : neutralise les styles propres au site dans l'aperçu -------------- */
.editor-styles-wrapper { padding-bottom: 0; }
.editor-styles-wrapper .pb-header { position: relative; top: 0; }
.editor-styles-wrapper .pb-callbar { position: static; }
