/* =========================
   APF / OSIRIS — BASE CSS
   FSE / GUTENBERG
   ========================= */

:root{
	--apf-cream:#f6f2eb;
	--apf-cream-2:#f2ede5;
	--apf-paper:#fbf8f3;
	--apf-stone:#e7dfd2;
	--apf-line:#ddd3c4;
	--apf-text:#2f2a24;
	--apf-text-soft:#5b544c;
	--apf-title:#2b261f;
	--apf-olive:#6c7a34;
	--apf-olive-dark:#566127;
	--apf-gold:#a38d57;
	--apf-gold-soft:#c4b388;
	--apf-shadow:0 18px 42px rgba(28,23,17,.08);
	--apf-radius:20px;
	--apf-radius-soft:16px;
	--apf-container:1180px;
	--apf-container-wide:1320px;
}

/* RESET DOUX */
html{
	scroll-behavior:smooth;
}

body{
	margin:0;
	padding:0;
	background:
		radial-gradient(circle at top left, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 32%),
		linear-gradient(180deg, #f8f4ee 0%, #f4efe7 100%);
	color:var(--apf-text);
	font-family:"Inter", "Segoe UI", Arial, sans-serif;
	font-size:17px;
	line-height:1.72;
	letter-spacing:.002em;
	text-rendering:optimizeLegibility;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
}

/* STRUCTURE GLOBALE */
.wp-site-blocks{
	position:relative;
	min-height:100vh;
	overflow-x:hidden;
}

main,
.wp-block-post-content,
main.wp-block-group{
	position:relative;
	z-index:1;
}

/* CONTENEURS */
.wp-site-blocks > *{
	position:relative;
}

.alignwide{
	max-width:var(--apf-container-wide);
	margin-left:auto !important;
	margin-right:auto !important;
}

.alignfull{
	width:100%;
	max-width:100%;
}

.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){
	max-width:var(--apf-container);
	margin-left:auto !important;
	margin-right:auto !important;
}

/* TYPOGRAPHIE */
h1,
h2,
h3,
h4,
h5,
h6{
	margin:0 0 .65em;
	font-family:"Lora", Georgia, serif;
	color:var(--apf-title);
	line-height:1.14;
	letter-spacing:-0.015em;
	font-weight:600;
	text-wrap:balance;
}

h1{
	font-size:clamp(2.4rem, 4.5vw, 4.4rem);
}

h2{
	font-size:clamp(2rem, 3.2vw, 3.2rem);
}

h3{
	font-size:clamp(1.45rem, 2vw, 2.1rem);
}

h4{
	font-size:clamp(1.2rem, 1.6vw, 1.5rem);
}

p{
	margin:0 0 1.1em;
	color:var(--apf-text-soft);
}

strong{
	color:var(--apf-title);
	font-weight:700;
}

em{
	font-style:italic;
}

a{
	color:var(--apf-olive-dark);
	text-decoration:none;
	transition:color .22s ease, opacity .22s ease;
}

a:hover{
	color:var(--apf-olive);
}

/* LISTES */
ul,
ol{
	margin:0 0 1.2em 1.2em;
	padding:0;
	color:var(--apf-text-soft);
}

li{
	margin-bottom:.4em;
}

/* IMAGES */
img{
	max-width:100%;
	height:auto;
	display:block;
}

figure{
	margin:0;
}

/* BOUTONS NATIFS + GUTENBERG */
.wp-element-button,
.wp-block-button__link,
button,
input[type="submit"]{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:52px;
	padding:14px 24px;
	border:none;
	border-radius:14px;
	background:linear-gradient(180deg, var(--apf-olive) 0%, var(--apf-olive-dark) 100%);
	color:#fff !important;
	font-family:"Inter", "Segoe UI", Arial, sans-serif;
	font-size:1rem;
	font-weight:600;
	line-height:1;
	letter-spacing:.01em;
	text-decoration:none !important;
	box-shadow:0 10px 24px rgba(108,122,52,.18);
	cursor:pointer;
	transition:
		transform .22s ease,
		box-shadow .22s ease,
		filter .22s ease,
		background .22s ease;
}

.wp-element-button:hover,
.wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover{
	transform:translateY(-1px);
	box-shadow:0 14px 28px rgba(108,122,52,.22);
	filter:saturate(1.05);
}

.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible,
a:focus-visible{
	outline:3px solid rgba(163,141,87,.38);
	outline-offset:3px;
}

/* CHAMPS / FORMULAIRES */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
input[type="number"],
textarea,
select{
	width:100%;
	min-height:52px;
	padding:14px 16px;
	border:1px solid var(--apf-line);
	border-radius:14px;
	background:rgba(255,255,255,.82);
	color:var(--apf-text);
	font:inherit;
	box-sizing:border-box;
	transition:border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

textarea{
	min-height:140px;
	resize:vertical;
}

input:focus,
textarea:focus,
select:focus{
	border-color:rgba(163,141,87,.85);
	box-shadow:0 0 0 4px rgba(163,141,87,.12);
	outline:none;
	background:#fff;
}

/* TABLES */
table{
	width:100%;
	border-collapse:collapse;
	background:rgba(255,255,255,.72);
	border-radius:16px;
	overflow:hidden;
	box-shadow:var(--apf-shadow);
}

th,
td{
	padding:14px 16px;
	border-bottom:1px solid rgba(0,0,0,.06);
	text-align:left;
}

th{
	background:rgba(243,236,226,.88);
	color:var(--apf-title);
	font-weight:600;
}

/* CARTES / GROUPES */
.wp-block-group.is-style-default,
.wp-block-cover,
.wp-block-columns,
.wp-block-media-text{
	box-sizing:border-box;
}

.apf-card,
.wp-block-group.apf-card{
	background:rgba(255,255,255,.72);
	border:1px solid rgba(221,211,196,.68);
	border-radius:22px;
	box-shadow:var(--apf-shadow);
	backdrop-filter:blur(6px);
	-webkit-backdrop-filter:blur(6px);
}

/* ESPACES DE SECTION */
section,
.wp-block-group{
	box-sizing:border-box;
}

.apf-section{
	position:relative;
	padding:110px 0;
}

.apf-section__kicker{
	margin-bottom:16px;
	font-size:.92rem;
	font-weight:700;
	letter-spacing:.12em;
	text-transform:uppercase;
	color:var(--apf-gold);
}

.apf-section__title{
	margin-bottom:18px;
}

.apf-section__lead{
	max-width:820px;
	margin:0 auto;
	font-size:1.08rem;
	line-height:1.75;
	color:rgba(47,42,36,.72);
}

/* SÉPARATION DOUCE ENTRE BLOCS */
.wp-site-blocks > footer,
.wp-site-blocks > main + footer,
.site-footer{
	margin-top:0;
}

/* HERO */
.apf-hero,
.apfhum-hero,
.home .wp-block-cover:first-of-type{
	position:relative;
	background-color:#d8d1c4;
}

/* Évite les fonds blancs parasites des groupes */
.wp-block-group{
	background-repeat:no-repeat;
	background-size:cover;
}

/* UTILITAIRES */
.has-text-align-center{
	text-align:center;
}

.apf-muted{
	color:rgba(47,42,36,.66);
}

.apf-soft-bg{
	background:linear-gradient(180deg, rgba(255,255,255,.66) 0%, rgba(248,243,236,.72) 100%);
	border:1px solid rgba(221,211,196,.64);
	border-radius:20px;
	box-shadow:var(--apf-shadow);
}

/* WOOCOMMERCE DE BASE */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce div.product,
.woocommerce-cart .cart-collaterals,
.woocommerce-checkout .woocommerce{
	background:transparent;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
	border:none;
	border-radius:16px;
	background:rgba(255,255,255,.74);
	box-shadow:var(--apf-shadow);
	padding:16px 18px;
	color:var(--apf-text);
}

/* SÉLECTION TEXTE */
::selection{
	background:rgba(163,141,87,.24);
	color:var(--apf-title);
}

/* BARRE DE SCROLL */
::-webkit-scrollbar{
	width:12px;
	height:12px;
}

::-webkit-scrollbar-track{
	background:#efe8dc;
}

::-webkit-scrollbar-thumb{
	background:linear-gradient(180deg, #c7b48a 0%, #a48f5d 100%);
	border-radius:999px;
	border:2px solid #efe8dc;
}

/* RESPONSIVE */
@media (max-width: 1100px){
	body{
		font-size:16.5px;
		line-height:1.68;
	}

	.apf-section{
		padding:88px 0;
	}
}

@media (max-width: 782px){
	body{
		font-size:16px;
		line-height:1.66;
	}

	h1{
		font-size:clamp(2rem, 9vw, 3rem);
	}

	h2{
		font-size:clamp(1.7rem, 7vw, 2.4rem);
	}

	h3{
		font-size:clamp(1.3rem, 5vw, 1.8rem);
	}

	.apf-section{
		padding:72px 0;
	}

	.wp-element-button,
	.wp-block-button__link,
	button,
	input[type="submit"]{
		min-height:50px;
		padding:13px 20px;
	}
}