/* AcTournai – contact / information request form [act_contact_form] */
.acf {
	--acf-accent: var(--act-magenta, #bf1574);
	--acf-accent-dark: var(--act-magenta-dark, #9a0f5d);
	--acf-ink: var(--act-ink, #1d1d1f);
	--acf-muted: var(--act-muted, #5c5c63);
	--acf-line: #d9d3cc;
	--acf-soft: var(--act-paper, #f6f3ef);
	--acf-error: #b3261e;
	--acf-radius: 10px;
	font-size: 16px;
	color: var(--acf-ink);
}
.acf [hidden] { display: none !important; }
.acf-form { display: grid; gap: 28px; }
.acf-block { border: 0; margin: 0; padding: 0; min-width: 0; }
.acf legend, .acf .acf-legend { display: block; font-family: var(--act-head, inherit); font-weight: 700; font-size: 18px; margin: 0 0 12px; padding: 0; color: var(--acf-ink); }
.acf-help { margin: -6px 0 14px; color: var(--acf-muted); font-size: 15px; padding: 0; }
.acf-opt { font-weight: 400; font-size: 14px; color: var(--acf-muted); }
.acf-req { color: var(--acf-accent); font-weight: 700; }
.acf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Chips (single or multiple choice) */
.acf-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.acf-chip { position: relative; cursor: pointer; }
.acf-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.acf-chip span { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border: 1.5px solid var(--acf-line); border-radius: 999px; background: #fff; font-weight: 600; font-size: 15px; transition: border-color .15s, background .15s, color .15s; }
.acf-chip--check span::before { content: ""; width: 14px; height: 14px; border: 1.5px solid currentColor; border-radius: 4px; opacity: .45; flex-shrink: 0; }
.acf-chip:hover span { border-color: var(--acf-accent); }
.acf-chip input:checked + span { background: var(--acf-accent); border-color: var(--acf-accent); color: #fff; }
.acf-chip--check input:checked + span::before { opacity: 1; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3 7-7' fill='none' stroke='%23bf1574' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; border-color: #fff; }
.acf-chip input:focus-visible + span { outline: 3px solid var(--acf-accent); outline-offset: 2px; }

/* Topic cards (checkboxes) */
.acf-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.acf-card { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1.5px solid var(--acf-line); border-radius: var(--acf-radius); background: #fff; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; }
.acf-card:hover { border-color: var(--acf-accent); }
.acf-card input, .acf-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.acf-card__box { flex-shrink: 0; width: 22px; height: 22px; border: 1.5px solid var(--acf-line); border-radius: 6px; background: #fff; margin-top: 1px; transition: background .15s, border-color .15s; }
.acf-card__text { display: flex; flex-direction: column; gap: 3px; line-height: 1.3; }
.acf-card__text strong { font-family: var(--act-head, inherit); font-size: 15px; }
.acf-card__text small { color: var(--acf-muted); font-size: 13.5px; }
.acf-card:has(input:checked) { border-color: var(--acf-accent); background: #fdf3f8; box-shadow: 0 0 0 1px var(--acf-accent) inset; }
.acf-card input:checked + .acf-card__box, .acf-check input:checked + .acf-card__box { background: var(--acf-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3 7-7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat; border-color: var(--acf-accent); }
.acf-card:has(input:focus-visible), .acf-check:has(input:focus-visible) { outline: 3px solid var(--acf-accent); outline-offset: 2px; }
@media (max-width: 900px) { .acf-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .acf-cards { grid-template-columns: 1fr; } }

/* Text fields */
.acf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.acf-span2 { grid-column: 1 / -1; }
@media (max-width: 600px) { .acf-grid { grid-template-columns: 1fr; } }
.acf-field label:not(.acf-check) { display: block; font-family: var(--act-head, inherit); font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.acf input[type="text"], .acf input[type="email"], .acf input[type="tel"], .acf select, .acf textarea {
	width: 100%; box-sizing: border-box; padding: 13px 14px; border: 1.5px solid var(--acf-line); border-radius: var(--acf-radius); background: #fff;
	font: inherit; font-size: 16px; color: var(--acf-ink); transition: border-color .15s, box-shadow .15s;
}
.acf select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%235c5c63' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center / 14px no-repeat; padding-right: 40px; }
.acf textarea { min-height: 150px; resize: vertical; line-height: 1.55; }
.acf input:hover, .acf select:hover, .acf textarea:hover { border-color: #b9b1a8; }
.acf input:focus, .acf select:focus, .acf textarea:focus { outline: none; border-color: var(--acf-accent); box-shadow: 0 0 0 3px rgba(191, 21, 116, .15); }
.acf [aria-invalid="true"] { border-color: var(--acf-error) !important; background: #fff8f7; }

/* Postal address block appears when the brochure is requested */
.acf-address { background: var(--acf-soft); border-radius: var(--acf-radius); padding: 20px 22px; animation: acf-in .2s ease-out; }
@keyframes acf-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* Consent */
.acf-check { position: relative; display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: 15px; line-height: 1.45; }
.acf-consent { padding: 16px 18px; border-radius: var(--acf-radius); background: var(--acf-soft); }

/* Errors */
.acf-error { color: var(--acf-error); font-size: 14px; font-weight: 600; margin: 6px 0 0; padding: 0; }
.acf-summary { background: #fdecea; color: var(--acf-error); border-left: 4px solid var(--acf-error); padding: 14px 16px; border-radius: 6px; font-weight: 600; }

/* Submit */
.acf-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.acf-legend-req { margin: 0; padding: 0; font-size: 14px; color: var(--acf-muted); }
.acf-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--acf-accent); color: #fff; border: 0; border-radius: 999px; padding: 15px 30px; font-family: var(--act-head, inherit); font-weight: 600; font-size: 16px; cursor: pointer; transition: background .15s, transform .1s; }
.acf-btn:hover { background: var(--acf-accent-dark); }
.acf-btn:active { transform: translateY(1px); }
.acf-btn:focus-visible { outline: 3px solid var(--acf-accent); outline-offset: 3px; }
.acf-btn[disabled] { opacity: .7; cursor: progress; }
.acf-btn[disabled]::before { content: ""; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%; animation: acf-spin .8s linear infinite; }
@keyframes acf-spin { to { transform: rotate(360deg); } }
.acf-btn--ghost { background: transparent; color: var(--acf-accent); border: 2px solid var(--acf-accent); }
.acf-btn--ghost:hover { background: var(--acf-accent); color: #fff; }

/* Success */
.acf-success { text-align: center; padding: 48px 24px; background: var(--acf-soft); border-radius: var(--acf-radius); }
.acf-success:focus { outline: none; }
.acf-success h2 { font-size: clamp(22px, 2.6vw, 28px); margin: 16px 0 10px; }
.acf-success p { color: var(--acf-muted); max-width: 52ch; margin: 0 auto 22px; }
.acf-success__icon { display: inline-block; width: 64px; height: 64px; border-radius: 50%; background: var(--acf-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 30px no-repeat; }

@media (prefers-reduced-motion: reduce) { .acf *, .acf *::before { animation: none !important; transition: none !important; } }
