/* Les Ateliers GP — styles du thème (complète theme.json). */

:root {
	--gp-sable: #F2ECDD;
	--gp-encre: #16202B;
	--gp-bleu: #33475A;
	--gp-orange: #C1441D;
	--gp-or: #A97B2E;
	--gp-vert: #2F5233;
	--gp-taupe: #746B5E;
	--gp-pierre: #C9C2B4;
	--gp-trait: rgba(22, 32, 43, 0.12);
	--gp-sans: Inter, 'Helvetica Neue', Arial, sans-serif;
	--gp-marge: 5.5vw;
}

body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
img { max-width: 100%; }

/* ---------- En-tête et menu : une seule ligne, sinon hamburger ---------- */

header.gp-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar header.gp-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar header.gp-site-header { top: 46px; } }

.gp-nav {
	position: relative;
	display: flex; justify-content: space-between; align-items: center; gap: 24px;
	padding: 18px var(--gp-marge);
	background: var(--gp-sable);
	border-bottom: 1px solid var(--gp-trait);
	font-family: var(--gp-sans);
	box-sizing: border-box; width: 100%;
}
.gp-logo { display: flex; align-items: center; gap: 10px; flex-shrink: 0; text-decoration: none; }
.gp-logo img { width: 26px; height: 26px; border-radius: 50%; display: block; }
.gp-logo span { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600; color: var(--gp-encre); white-space: nowrap; }

.gp-nav-links { display: flex; gap: 20px; align-items: center; flex-wrap: nowrap; }
.gp-nav-links a {
	font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600;
	color: var(--gp-encre); opacity: 0.72; text-decoration: none; white-space: nowrap;
	padding-bottom: 3px; border-bottom: 1px solid transparent;
}
.gp-nav-links a:hover { opacity: 1; color: var(--gp-encre); }
.gp-nav-links a[aria-current="page"] { opacity: 1; border-bottom-color: var(--gp-orange); }

.gp-nav-small { display: none; align-items: center; gap: 14px; }
.gp-nav-menu > summary {
	list-style: none; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 4px;
	cursor: pointer; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600;
	color: var(--gp-encre); user-select: none;
}
.gp-nav-menu > summary::-webkit-details-marker { display: none; }
.gp-nav a:focus-visible, .gp-nav-menu > summary:focus-visible { outline: 2px solid var(--gp-orange); outline-offset: 3px; }
.gp-burger { display: inline-block; width: 18px; height: 1.5px; background: var(--gp-encre); box-shadow: 0 -5px 0 var(--gp-encre), 0 5px 0 var(--gp-encre); }
.gp-close { font-size: 20px; line-height: 1; font-weight: 400; }
.gp-nav-menu[open] .gp-when-closed { display: none; }
.gp-nav-menu:not([open]) .gp-when-open { display: none; }
.gp-nav-panel {
	position: absolute; top: 100%; left: 0; right: 0;
	background: var(--gp-sable); border-bottom: 1px solid var(--gp-trait); box-shadow: 0 14px 28px rgba(22, 32, 43, 0.10);
	padding: 4px 32px 24px; max-height: calc(100vh - 64px); overflow-y: auto; box-sizing: border-box;
}
.gp-nav-panel a {
	display: block; padding: 15px 0; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600;
	color: var(--gp-encre); text-decoration: none; border-bottom: 1px solid rgba(22, 32, 43, 0.10);
}
.gp-nav-panel a[aria-current="page"] { color: var(--gp-orange); }

@media (max-width: 1279px) {
	.gp-nav { padding-left: 32px; padding-right: 32px; }
	.gp-nav-links { gap: 14px; }
	.gp-nav-links a { letter-spacing: 0.06em; }
}
@media (max-width: 1099px) {
	.gp-nav { padding-top: 10px; padding-bottom: 10px; }
	.gp-nav-links { display: none; }
	.gp-nav-small { display: flex; }
}
@media (max-width: 600px) {
	.gp-nav { padding-left: 16px; padding-right: 16px; }
	.gp-nav-panel { padding-left: 16px; padding-right: 16px; }
}

/* ---------- Éléments communs des pages ---------- */

.gp-main { padding-top: 0; padding-bottom: 0; }
.gp-main .wp-block-post-content > * { margin-block-start: 0; }
.gp-main .wp-block-post-content > .gp-hero { margin-bottom: 72px; }
.gp-main .wp-block-post-content > .gp-section { margin-bottom: 88px; }
.gp-main .wp-block-post-content > .gp-bandeau { margin-bottom: 96px; }

.gp-intro { padding-top: 64px; padding-bottom: 40px; }
.gp-intro > * { margin-block-start: 0; }
.gp-intro h1 { margin: 0 0 20px; }
.gp-eyebrow { font-family: var(--gp-sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--gp-taupe); margin: 0 0 18px; }
.gp-eyebrow .gp-num { font-weight: 600; color: var(--gp-orange); letter-spacing: 0; margin-right: 10px; }
.gp-lead { font-style: italic; font-size: 18px; line-height: 1.6; color: var(--gp-bleu); max-width: 660px; margin: 0; }

.gp-hero { margin: 0 0 72px; }
.gp-hero img, .gp-bandeau img { width: 100%; display: block; }

.gp-label { font-family: var(--gp-sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--gp-or); margin: 0 0 16px; }
.gp-label.is-orange { color: var(--gp-orange); }
.gp-label.is-vert { color: var(--gp-vert); }
.gp-label.is-or { color: var(--gp-or); margin-bottom: 20px; }

.wp-block-columns.gp-split { gap: 64px; margin: 0 0 80px; }
.gp-split h2 { margin: 0 0 18px; }
.gp-split p { color: var(--gp-bleu); line-height: 1.75; margin: 0; }
.gp-tirets { list-style: none; margin: 0; padding: 0; }
.gp-tirets li { display: flex; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--gp-trait); font-size: 14.5px; color: var(--gp-bleu); line-height: 1.5; }
.gp-tirets li:last-child { border-bottom: 0; }
.gp-tirets li::before { content: "\2014"; font-family: var(--gp-sans); font-size: 11px; font-weight: 600; color: var(--gp-orange); flex-shrink: 0; line-height: 2; }

.gp-etapes > * { margin: 0 !important; }
.gp-etape { display: flex; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--gp-trait); }
.gp-etape:last-child { border-bottom: 0; }
.gp-etape > * { margin: 0 !important; }
.gp-etape-num { font-family: var(--gp-sans); font-size: 11px; color: var(--gp-orange); font-weight: 600; flex-shrink: 0; line-height: 2.2; }
.gp-etape-titre { font-weight: 500; font-size: 16px; margin: 0 0 4px !important; }
.gp-etape-texte { font-size: 13.5px; color: var(--gp-taupe); line-height: 1.6; margin: 0 !important; }

.gp-section { margin: 0 0 88px; }
.gp-section > * { margin-block-start: 0; }
.gp-savoirs { gap: 1px !important; background: var(--gp-trait); border: 1px solid var(--gp-trait); }
.gp-savoirs > .wp-block-group { background: var(--gp-sable); padding: 28px 24px; margin: 0; }
.gp-savoirs .gp-savoir-titre { font-weight: 500; font-size: 18px; margin: 0 0 6px; }
.gp-savoirs .gp-savoir-texte { font-size: 13px; color: var(--gp-taupe); margin: 0; }

/* Galeries : rangées de photos qui passent en colonne sur téléphone */
.gp-rangees { display: flex; flex-direction: column; gap: 20px; }
.gp-rangees > * { margin: 0 !important; }
.gp-rangee { gap: 20px !important; }
.gp-rangee figure, .gp-mosaique figure { margin: 0; }
.gp-rangee img, .gp-mosaique img { width: 100%; height: auto; display: block; }

/* Journal d'Atelier : mosaïque façon Pinterest */
.gp-mosaique { columns: 3; column-gap: 20px; margin: 8px 0 68px; }
.gp-mosaique > * { break-inside: avoid; margin: 0 0 20px !important; }

/* Bandeau sombre de renvoi */
.gp-cta {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px;
	padding: 56px var(--gp-marge) !important; margin-top: 0 !important; margin-bottom: 0 !important;
	background: var(--gp-encre); color: var(--gp-sable);
}
.gp-cta > * { margin: 0 !important; }
.gp-cta-texte { max-width: 560px; }
.gp-cta-texte > * { margin: 0; }
.gp-cta h3 { margin: 0 0 10px !important; font-size: 24px; color: var(--gp-sable); }
.gp-cta p { font-size: 14px; color: var(--gp-pierre); }
.gp-lien-cta a, .gp-cta .gp-lien-cta a {
	font-family: var(--gp-sans); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600;
	color: var(--gp-sable); border-bottom: 1px solid currentColor; padding-bottom: 4px; text-decoration: none;
}
.gp-texte .gp-lien-cta a { color: var(--gp-encre); }

/* ---------- Pied de page ---------- */

.gp-footer {
	padding: 56px var(--gp-marge) 40px; border-top: 1px solid var(--gp-trait);
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 36px;
	font-family: var(--gp-sans); background: var(--gp-sable); box-sizing: border-box;
}
.gp-footer-marque { display: flex; flex-direction: column; gap: 10px; max-width: 240px; }
.gp-footer-marque img { width: 30px; height: 30px; border-radius: 50%; display: block; }
.gp-footer-adresse { font-size: 11px; letter-spacing: 0.04em; line-height: 1.6; color: var(--gp-taupe); }
.gp-footer-cols { display: flex; gap: 48px; flex-wrap: wrap; }
.gp-footer-col { display: flex; flex-direction: column; gap: 9px; }
.gp-footer-col span { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; }
.gp-footer-col a { font-size: 12px; color: var(--gp-encre); text-decoration: none; }
.gp-footer-col a:hover { color: var(--gp-or); }
.gp-footer-legal { font-size: 11px; color: var(--gp-taupe); align-self: flex-end; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.gp-footer-legal a { color: var(--gp-taupe); text-decoration: none; }
.gp-footer-legal a:hover { color: var(--gp-encre); }

/* ---------- Accueil plein écran ---------- */

.gp-main-accueil > .wp-block-post-content > * { margin: 0; }
.gp-accueil {
	display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; box-sizing: border-box;
	padding: 32px var(--gp-marge) !important; margin: 0 !important; text-align: center;
}
.gp-accueil > * { margin: 0 !important; }
.gp-accueil-centre { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; padding: 40px 0; }
.gp-accueil-centre > * { margin: 0 !important; }
.gp-accueil-logo img { width: 104px; height: 104px; border-radius: 50%; display: block; }
.gp-accueil-textes { display: flex; flex-direction: column; gap: 20px; max-width: 760px; }
.gp-accueil-textes > * { margin: 0 !important; }
.gp-accueil h1 { color: var(--gp-bleu); font-size: clamp(42px, 5.2vw, 66px); }
.gp-accueil-chapo { font-style: italic; font-size: clamp(19px, 1.7vw, 23px); line-height: 1.5; color: var(--gp-bleu); }
.gp-accueil-sous { font-size: clamp(15px, 1.2vw, 16.5px); line-height: 1.5; color: var(--gp-taupe); }
.gp-filets { display: flex; justify-content: center; gap: 6px; }
.gp-filets i { display: block; height: 1px; }
.gp-filets i:first-child { width: 34px; background: var(--gp-orange); }
.gp-filets i:last-child { width: 14px; background: var(--gp-vert); }
.gp-poles { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 44px; row-gap: 18px; font-family: var(--gp-sans); }
.gp-poles > * { margin: 0 !important; }
.gp-poles a { display: flex; align-items: baseline; gap: 10px; font-size: 17px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--gp-encre); text-decoration: none; }
.gp-poles a:hover { color: var(--gp-or); }
.gp-poles .gp-num { font-size: 12px; letter-spacing: 0.05em; }
.gp-num.is-orange { color: var(--gp-orange); }
.gp-num.is-vert { color: var(--gp-vert); }
.gp-accueil-bas { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 24px; font-family: var(--gp-sans); font-size: 11px; letter-spacing: 0.08em; color: var(--gp-taupe); text-align: left; }
.gp-accueil-bas > * { margin: 0 !important; }
.gp-accueil-bas a { color: var(--gp-taupe); text-decoration: none; text-transform: uppercase; }
.gp-accueil-bas a:hover { color: var(--gp-encre); }
.gp-accueil-liens { display: flex; flex-wrap: wrap; gap: 6px 22px; }

/* ---------- Contact ---------- */

.wp-block-columns.gp-contact { gap: 72px; margin: 0 0 64px; }
.gp-contact-bloc { margin: 0 0 36px; }
.gp-contact-bloc > * { margin: 0 !important; }
.gp-contact-bloc p:not(.gp-label) { font-size: 15px; line-height: 1.8; color: var(--gp-bleu); }
.gp-bandeau { margin: 0 0 96px; }

/* Formulaire de contact du thème */
.gp-contact-form { display: flex; flex-direction: column; gap: 22px; }
.gp-contact-form label, .gp-contact-form .gp-champ-titre { display: block; font-family: var(--gp-sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gp-taupe); }
.gp-contact-form .gp-deux { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.gp-contact-form input[type="text"], .gp-contact-form input[type="email"], .gp-contact-form input[type="tel"], .gp-contact-form textarea {
	display: block; width: 100%; box-sizing: border-box; margin-top: 8px; border: none; border-bottom: 1px solid rgba(22, 32, 43, 0.3); border-radius: 0;
	background: transparent; padding: 8px 0; font-size: 15px; color: var(--gp-encre); font-family: var(--gp-sans); outline: none; text-transform: none; letter-spacing: 0;
}
.gp-contact-form textarea { font-family: Fraunces, Georgia, serif; resize: vertical; min-height: 120px; }
.gp-contact-form input:focus, .gp-contact-form textarea:focus { border-bottom-color: var(--gp-encre); }
.gp-contact-form ::placeholder { color: #8FA0AC; }
.gp-contact-form fieldset.gp-puces { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.gp-contact-form .gp-puces legend { margin-bottom: 8px; padding: 0; }
.gp-contact-form .gp-puces label { position: relative; text-transform: none; letter-spacing: 0; cursor: pointer; }
.gp-contact-form .gp-puces input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gp-contact-form .gp-puces span { display: inline-block; padding: 8px 16px; border-radius: 20px; border: 1px solid rgba(22, 32, 43, 0.3); font-family: var(--gp-sans); font-size: 12px; color: var(--gp-encre); }
.gp-contact-form .gp-puces input:checked + span { background: var(--gp-encre); color: var(--gp-sable); border-color: var(--gp-encre); }
.gp-contact-form .gp-puces input:focus-visible + span { outline: 2px solid var(--gp-orange); outline-offset: 2px; }
.gp-contact-form .gp-consentement { font-family: var(--gp-sans); font-size: 12px; color: var(--gp-taupe); line-height: 1.5; margin: 0; }
.gp-contact-form .gp-consentement input { margin-top: 2px; flex-shrink: 0; }
.gp-contact-form .gp-consentement a { color: var(--gp-encre); text-decoration: underline; }
.gp-contact-form button {
	align-self: flex-start; margin-top: 8px; padding: 14px 32px; background: var(--gp-encre); color: var(--gp-sable);
	border: none; border-radius: 2px; font-family: var(--gp-sans); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; cursor: pointer;
}
.gp-contact-form button:hover { background: var(--gp-bleu); }
.gp-piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gp-form-message { font-family: var(--gp-sans); font-size: 14px; padding: 14px 16px; border-left: 3px solid var(--gp-vert); background: rgba(47, 82, 51, 0.08); margin: 0 0 22px; }
.gp-form-message.is-erreur { border-left-color: var(--gp-orange); background: rgba(193, 68, 29, 0.08); }

/* ---------- Pages de texte (mentions légales, cookies) ---------- */

.gp-texte { padding-top: 64px; padding-bottom: 88px; }
.gp-texte h1 { margin: 0 0 32px; }
.gp-texte h2 { font-size: 22px; margin: 40px 0 12px; }
.gp-texte p, .gp-texte li { color: var(--gp-bleu); line-height: 1.75; }
.gp-texte a { text-decoration: underline; }

/* ---------- Tablette et téléphone ---------- */

@media (max-width: 900px) {
	.gp-mosaique { columns: 2; }
	.wp-block-columns.gp-contact { gap: 40px; }
}
@media (max-width: 781px) {
	.gp-main .wp-block-post-content > .gp-hero { margin-bottom: 48px; }
	.gp-main .wp-block-post-content > .gp-section { margin-bottom: 56px; }
	.gp-main .wp-block-post-content > .gp-bandeau { margin-bottom: 64px; }
	.gp-intro { padding-top: 40px; padding-bottom: 28px; }
	.gp-hero { margin-bottom: 48px; }
	.wp-block-columns.gp-split { gap: 32px; margin-bottom: 56px; }
	.gp-section { margin-bottom: 56px; }
	.gp-cta { padding: 44px var(--gp-marge) !important; }
	.gp-bandeau { margin-bottom: 64px; }
}
@media (max-width: 600px) {
	.gp-hero img { aspect-ratio: 4 / 3 !important; }
	.gp-bandeau img { aspect-ratio: 3 / 2 !important; }
	.gp-mosaique { columns: 1; }
	.gp-contact-form .gp-deux { grid-template-columns: 1fr; }
	.gp-poles { flex-direction: column; align-items: center; }
	.gp-poles a { font-size: 15px; }
	.gp-accueil-bas { justify-content: center; text-align: center; }
	.gp-accueil-liens { justify-content: center; }
	.gp-footer-cols { gap: 32px; }
}
