:root {
    --iae-purple: #722282;
    --iae-blue: #243587;
    --iae-grey: #B1A7A2;
    --white: #FFFFFF;
    --background: #F7F6F5;
    --text: #252525;
    --bs-body-color: var(--text);
    --bs-body-bg: var(--background);
    --bs-link-color: var(--iae-purple);
    --bs-link-hover-color: #571963;
    --bs-secondary-color: #655e5b;
    --bs-border-color: var(--iae-grey);
}
body { margin: 0; line-height: 1.6; }
a { text-underline-offset: .2em; }
::selection { background: var(--iae-purple); color: var(--white); }
:focus-visible { outline: 3px solid var(--iae-blue); outline-offset: 4px; }
.page-container { max-width: 900px; }
.site-header { background: var(--iae-purple); color: var(--white); padding: 1.25rem 0; }
.site-header a, .header-button { color: var(--white); }
.brand { font-weight: 750; text-decoration: none; letter-spacing: .035em; }
.brand span { display: block; font-weight: 400; font-size: .8rem; letter-spacing: normal; }
.header-button { background: none; border: 1px solid currentColor; padding: .35rem .6rem; border-radius: .375rem; }
.site-header :focus-visible { outline-color: var(--white); }
.event-intro { text-align: center; padding: 3rem 0 2rem; }
h1, h2, legend { color: var(--iae-blue); }
h1 { font-weight: 800; font-size: clamp(2rem, 5vw, 3.4rem); letter-spacing: -.03em; line-height: 1.08; text-wrap: balance; }
h1 span { display: block; }
h2 { font-size: 1.75rem; font-weight: 700; margin-bottom: .6rem; }
.event-description { margin: 1.25rem auto .75rem; max-width: 40ch; font-size: 1.15rem; }
.event-date { color: var(--iae-blue); font-weight: 700; font-size: 1.1rem; }
.form-panel { max-width: 740px; margin: 0 auto; background: var(--white); padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid #ded9d5; border-radius: 12px; }
.login-panel { max-width: 560px; }
.required-note { font-size: .875rem; color: var(--bs-secondary-color); }
fieldset { margin: 1.75rem 0; min-width: 0; }
legend { float: none; width: auto; font-size: 1.1rem; font-weight: 700; margin-bottom: 1rem; }
.form-label { font-weight: 550; }
.form-label.required::after {
    content: " *";
    color: #b02a37;
    font-weight: 700;
}
.form-control, .form-select { background-color: var(--white); min-height: 46px; caret-color: var(--iae-purple); }
.form-control:focus, .form-select:focus { background-color: var(--white); border-color: var(--iae-purple); box-shadow: 0 0 0 .2rem rgb(114 34 130 / 18%); }
.form-check { padding-top: .3rem; padding-bottom: .3rem; }
.form-check-input:checked { background-color: var(--iae-purple); border-color: var(--iae-purple); }
.btn-primary { --bs-btn-bg: var(--iae-purple); --bs-btn-border-color: var(--iae-purple); --bs-btn-hover-bg: #571963; --bs-btn-hover-border-color: #571963; --bs-btn-active-bg: #571963; --bs-btn-active-border-color: #571963; --bs-btn-disabled-bg: var(--iae-purple); --bs-btn-disabled-border-color: var(--iae-purple); padding: .85rem 1rem; font-weight: 650; }
.form-switch { margin: 1.5rem 0 0; padding: 0; text-align: center; }
.site-footer { color: var(--bs-secondary-color); text-align: center; font-size: .875rem; padding: 0 1rem 2rem; }
.registration-summary { margin-bottom: 0; overflow-wrap: anywhere; }
.registration-summary dt { color: var(--iae-blue); margin-top: 1rem; }
.registration-summary dd { margin-bottom: .5rem; }
.preserve-lines { white-space: pre-line; }
.skip-link { position: absolute; left: 1rem; top: -100px; z-index: 10; padding: .75rem; background: var(--white); }
.skip-link:focus { top: .5rem; }
@media (max-width: 575px) {
    .site-header .brand { max-width: 58%; }
    .site-header a:not(.brand), .header-button { font-size: .875rem; }
    .event-intro { padding-top: 2rem; }
}

/* Separate layers keep the background blurred without blurring the form. */
.exhibitor-page { position: relative; isolation: isolate; overflow-x: clip; }
.exhibitor-page::before,
.exhibitor-page::after { content: ""; position: absolute; pointer-events: none; }
.exhibitor-page::before {
    inset: -12px;
    z-index: -2;
    background: url('../images/fond-formulaire-IAE.png') center center / cover no-repeat;
    filter: blur(4px);
}
.exhibitor-page::after {
    inset: 0;
    z-index: -1;
    background: rgb(247 246 245 / 82%);
}

.brand-logo { display: block; width: 200px; max-width: 100%; height: auto; background: #FFFFFF; }
.brand span { margin-top: .4rem; }
@media (max-width: 575px) { .brand-logo { width: 160px; } }

.event-logo { display: block; width: 240px; max-width: 75%; height: auto; margin: 0 auto 1.75rem; }
