/* Reset leger et primitives du theme autonome genere */
:root {
	--fs-xs: clamp(0.75rem, 0.7rem + 0.2vw, 0.85rem);
	--fs-sm: clamp(0.875rem, 0.82rem + 0.25vw, 0.95rem);
	--fs-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
	--fs-md: clamp(1.125rem, 1.05rem + 0.4vw, 1.35rem);
	--fs-lg: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem);
	--fs-xl: clamp(1.5rem, 1.25rem + 1vw, 2rem);
	--fs-2xl: clamp(2.1rem, 1.6rem + 2.2vw, 3.75rem);
	--fs-3xl: clamp(2.6rem, 1.9rem + 3.5vw, 5rem);
	--fw-light: 300;
	--fw-regular: 400;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;
	--fw-extrabold: 800;
	--fw-black: 900;
	--lh-tight: 1.05;
	--lh-snug: 1.25;
	--lh-base: 1.6;
	--lh-relaxed: 1.75;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-body, sans-serif); font-size: var(--fs-base); font-weight: var(--fw-regular); color: var(--c-text, #222); background: var(--c-background, #fff); line-height: var(--lh-base); }
img { max-width: 100%; height: auto; }
a { color: var(--c-primary, #1F4E79); }
h1, h2, h3, h4 { font-family: var(--font-heading, sans-serif); line-height: var(--lh-tight); }
h1 { font-size: var(--fs-3xl); }
h2 { font-size: var(--fs-2xl); }
h3 { font-size: var(--fs-xl); }
h4 { font-size: var(--fs-lg); }

.container { max-width: var(--container, 1200px); margin: 0 auto; padding: 0 1.25rem; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 0; top: 0; z-index: 100; background: #000; color: #fff; padding: .5rem 1rem; }

.btn { display: inline-block; padding: .7rem 1.4rem; text-decoration: none; font-weight: 600; }
.btn--primary { background: var(--c-primary, #1F4E79); color: #fff; }
.btn--outline { border: 2px solid currentColor; }
.eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 600; }

/* Header */
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1.25rem; }
.nav__list { display: flex; gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
.nav__list a { text-decoration: none; color: inherit; }
.nav-toggle { display: none; background: none; border: 0; font: inherit; cursor: pointer; }
@media (max-width: 768px) {
	.nav-toggle { display: block; }
	.site-header__nav { display: none; }
	body.nav-open .site-header__nav { display: block; width: 100%; }
	body.nav-open .nav__list { flex-direction: column; }
}

:focus-visible { outline: 2px solid var(--c-primary, #1F4E79); outline-offset: 2px; }

/* Sections */
.sec { padding: 3rem 0; }
.entry-fields dt { font-weight: 600; }
.entry-fields dd { margin: 0 0 .75rem; }

/* Gravity Forms (habillage minimal personnalisable dans les sections) */
.gform_wrapper .gfield_label { display: block; margin-bottom: .35rem; font-weight: 500; }
.gform_wrapper input:not([type=submit]):not([type=checkbox]),
.gform_wrapper select, .gform_wrapper textarea { width: 100%; padding: .6rem; border: 1px solid rgba(0,0,0,.2); font: inherit; }
.gform_wrapper input[type=submit], .gform_wrapper .gform_button { padding: .7rem 1.4rem; cursor: pointer; }
.gform_wrapper .gfield_description { font-size: .85rem; opacity: .75; }

/* Footer */
.site-footer { margin-top: 3rem; padding: 2.5rem 0 1rem; }
.site-footer__inner { display: flex; gap: 3rem; flex-wrap: wrap; }
.footer-nav, .socials { list-style: none; margin: 0; padding: 0; }
.socials { display: flex; gap: .75rem; }
.socials svg { width: 20px; height: 20px; }
.site-footer__legal { font-size: .8rem; opacity: .7; text-align: center; }
