/* AGD Viennoiseries — boutons « Proposer un évènement » et « Contact », et leurs fenêtres.
   Tout est préfixé .afv- et indépendant du thème (Divi). */

@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/hanken-grotesk-Regular.woff') format('woff'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/hanken-grotesk-Medium.woff') format('woff'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/hanken-grotesk-SemiBold.woff') format('woff'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/hanken-grotesk-Bold.woff') format('woff'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/hanken-grotesk-ExtraBold.woff') format('woff'); }

/* ---------- Boutons ---------- */
.afv-pbar { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 0; }
.afv-pbar .afv-pbtn,
.afv-pop .afv-pbtn {
	box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	height: 44px; margin: 0; padding: 0 22px; border-radius: 999px; border: 1.5px solid #E4502E;
	font-family: 'Hanken Grotesk', system-ui, sans-serif; font-size: 16px; font-weight: 700; line-height: 1;
	text-transform: none; letter-spacing: 0; cursor: pointer; -webkit-appearance: none; appearance: none; text-decoration: none;
}
.afv-pbar .afv-pbtn svg, .afv-pop .afv-pbtn svg { flex: none; }
.afv-pbar .afv-pbtn--plein, .afv-pop .afv-pbtn--plein { background: #E4502E; color: #FFFFFF; }
.afv-pbar .afv-pbtn--plein:hover, .afv-pop .afv-pbtn--plein:hover { background: #C9431F; border-color: #C9431F; color: #FFFFFF; }
.afv-pbar .afv-pbtn--contour, .afv-pop .afv-pbtn--contour { background: #FFFFFF; color: #B83A1D; }
.afv-pbar .afv-pbtn--contour:hover, .afv-pop .afv-pbtn--contour:hover { background: #FCDCCF; color: #B83A1D; }
.afv-pbar .afv-pbtn:focus-visible, .afv-pop .afv-pbtn:focus-visible { outline: 3px solid #1D5A26; outline-offset: 2px; }

/* ---------- Fenêtre : fond et boîte ---------- */
html.afv-lock { overflow: hidden; }
.afv-pop,
.afv-pop *,
.afv-pop *::before,
.afv-pop *::after { box-sizing: border-box; }
.afv-pop [hidden] { display: none !important; }
.afv-pop {
	position: fixed; inset: 0; z-index: 2147483000; overflow-y: auto; -webkit-overflow-scrolling: touch;
	padding: 32px 14px; background: rgba(179, 212, 143, .55);
	font-family: 'Hanken Grotesk', system-ui, sans-serif; font-size: 16px; line-height: 1.3; color: #17331B;
}
.afv-pop[hidden] { display: none !important; }
.afv-pop h2, .afv-pop p { margin: 0; padding: 0; text-transform: none; font-family: inherit; }
.afv-pop-dialog {
	position: relative; display: flex; flex-direction: column; gap: 18px; width: 100%; max-width: 560px; margin: 0 auto;
	padding: 26px 24px 22px; background: #FFFFFF; border-radius: 28px; box-shadow: 0 24px 60px rgba(23, 51, 27, .25);
}
.afv-pop-dialog:focus { outline: none; }
.afv-pop-dialog--contact { max-width: 600px; gap: 22px; padding: 38px 36px 34px; }

.afv-pop-close {
	position: absolute; top: 14px; right: 14px; display: flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: #FCDCCF; color: #B83A1D; cursor: pointer;
	-webkit-appearance: none; appearance: none;
}
.afv-pop-close:hover { background: #F9C4AF; }
.afv-pop-close:focus-visible { outline: 3px solid #1D5A26; outline-offset: 2px; }

.afv-pop-view { display: flex; flex-direction: column; gap: 18px; }
.afv-pop-titre { padding-right: 52px; font-size: 26px; font-weight: 800; line-height: 1.1; letter-spacing: -0.01em; color: #1D5A26; }
.afv-pop-titre--centre { padding-right: 0; text-align: center; }
.afv-pop-titre:focus { outline: none; }
.afv-pop-intro { font-size: 15px; font-weight: 500; line-height: 1.5; color: #3D5A40; }
.afv-pop-intro--long { font-size: 16px; line-height: 1.6; }

/* ---------- Formulaire ---------- */
.afv-form { display: flex; flex-direction: column; gap: 14px; }
.afv-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.afv-fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.afv-lbl { font-size: 14px; font-weight: 700; color: #2E8B34; }
.afv-req { color: #C2366C; }
.afv-pop .afv-inp {
	display: block; width: 100%; height: 46px; margin: 0; padding: 0 16px; border: 1.5px solid #D7E4C8; border-radius: 14px;
	background: #FFFFFF; color: #17331B; font-family: inherit; font-size: 16px; font-weight: 400; line-height: 1.2;
	box-shadow: none; -webkit-appearance: none; appearance: none; min-width: 0;
}
.afv-pop .afv-inp::placeholder { color: #6F8574; opacity: 1; }
.afv-pop .afv-inp:focus { outline: none; border-color: #2E8B34; background: #F7FBF2; }
.afv-pop .afv-inp.is-invalid { border-color: #E4502E; }
.afv-err { font-size: 13px; font-weight: 600; color: #B83A1D; }
.afv-err--global { margin-top: 2px; }
.afv-note { font-size: 13px; color: #6F8574; }
.afv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.afv-send {
	display: flex; align-items: center; justify-content: center; gap: 4px; width: 100%; height: 50px; margin: 0; padding: 0 20px;
	border: 0; border-radius: 999px; background: #E4502E; color: #FFFFFF; font-family: inherit; font-size: 17px; font-weight: 700; line-height: 1;
	cursor: pointer; -webkit-appearance: none; appearance: none;
}
.afv-send:hover { background: #C9431F; }
.afv-send:focus-visible { outline: 3px solid #1D5A26; outline-offset: 2px; }
.afv-send[disabled] { opacity: .75; cursor: default; }
.afv-send--seul { margin-top: 4px; }
.afv-conditions { font-size: 13px; line-height: 1.5; color: #3D5A40; }

/* ---------- Confirmation ---------- */
.afv-pop-view--merci { align-items: center; text-align: center; padding: 14px 0 6px; }
.afv-merci-rond { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: #E4F1D6; color: #2E8B34; }
.afv-pop-view--merci .afv-pop-titre { color: #1D5A26; }
.afv-merci-texte { max-width: 380px; font-size: 16px; line-height: 1.5; color: #3D5A40; }
.afv-merci-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 4px; }

/* ---------- Contact ---------- */
.afv-coord { display: flex; flex-direction: column; gap: 14px; padding-top: 22px; border-top: 1px solid #D5E8C6; }
.afv-coord-nom { font-size: 18px; font-weight: 700; color: #17331B; }
.afv-coord-ligne { display: flex; align-items: center; gap: 12px; font-size: 17px; color: #17331B; }
.afv-coord-ligne svg { flex: none; color: #2E8B34; }
.afv-coord-ligne a { color: #B83A1D; font-weight: 600; text-decoration: none; word-break: break-all; }
.afv-coord-ligne a:hover { text-decoration: underline; }
.afv-coord-texte { color: #B83A1D; font-weight: 600; word-break: break-all; }

@media (max-width: 520px) {
	.afv-pop { padding: 18px 10px; }
	.afv-pop-dialog { padding: 22px 18px 20px; }
	.afv-pop-dialog--contact { padding: 30px 22px 26px; }
	.afv-pop-titre { font-size: 24px; }
}
