:root { --avis-red:#d5001c; --avis-dark:#b9001b; --ink:#171717; --muted:#60656b; --line:#dbdee2; --soft:#f7f7f8; --surface:#fff; }
* { box-sizing:border-box; }
html { font-family:Arial,Helvetica,sans-serif; -webkit-text-size-adjust:100%; }
body { margin:0; color:var(--ink); background:#f6f6f6; }
.landing { min-height:100vh; min-height:100dvh; background:linear-gradient(180deg,#f2f2f3 0%,#fafafa 48%,#f2f2f3 100%); }
.page { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; justify-content:center; padding:22px 14px 20px; }
.entry-card { width:100%; max-width:445px; margin:0 auto; padding:24px 24px 20px; background:var(--surface); border:1px solid #e4e4e5; border-radius:27px; box-shadow:0 12px 36px rgba(0,0,0,.05); }
.brand { display:flex; justify-content:center; margin:0 0 8px; }
.brand img { width:125px; height:auto; display:block; border-radius:7px; }
.eyebrow { margin:8px 0 8px; color:#6b6b6b; text-align:center; font-size:13px; font-weight:500; letter-spacing:.06em; line-height:1.4; }
h1 { max-width:370px; margin:0 auto 10px; font-size:24px; line-height:1.25; font-weight:750; text-align:center; text-wrap:balance; }
.intro { margin:0 auto 21px; color:var(--muted); font-size:13.5px; text-align:center; line-height:1.55; }
.form-stack { display:flex; flex-direction:column; gap:11px; }
.form-control { display:block; width:100%; min-height:49px; padding:12px 18px; border:1px solid #d7d9dd; border-radius:25px; background:var(--soft); color:#171717; font:inherit; font-size:16px; outline:none; transition:background .2s,border-color .2s,box-shadow .2s; }
.form-control::placeholder { color:#84888c; }
.form-control:focus { border-color:var(--avis-red); background:#fff; box-shadow:0 0 0 3px rgba(213,0,28,.10); }
.check-row { display:flex; align-items:flex-start; gap:11px; padding-top:18px; font-size:14px; line-height:1.55; cursor:pointer; }
.check-row+.check-row { padding-top:11px; }
.check-row input { flex:0 0 20px; width:20px; height:20px; margin:1px 0 0; accent-color:var(--avis-red); cursor:pointer; }
a { color:#c60020; text-decoration:underline; text-underline-offset:2px; }
a:hover { color:#92000f; }
.required { color:var(--avis-red); }
.muted { color:var(--muted); }
.primary-button { display:block; width:100%; min-height:55px; margin-top:20px; padding:13px 11px; border:0; border-radius:9px; background:var(--avis-red); color:#fff; cursor:pointer; font:700 15px/1.3 Arial,Helvetica,sans-serif; transition:background .15s, transform .15s; }
.primary-button:hover:not(:disabled) { background:var(--avis-dark); }
.primary-button:active:not(:disabled) { transform:translateY(1px); }
.primary-button:disabled { cursor:not-allowed; background:#97999c; font-size:13px; }
.hint { max-width:350px; margin:12px auto 0; color:#7a7a7a; font-size:11px; line-height:1.5; text-align:center; }
.notice,.alert { margin:0 0 17px; padding:13px 14px; border-radius:9px; font-size:13px; line-height:1.5; }
.notice { background:#fff8e9; border:1px solid #efdfa8; color:#6c521b; }
.alert { background:#fff1f3; border:1px solid #f1b9c0; color:#8f1226; }
.alert ul { padding-left:18px; margin:7px 0 0; }
.thankyou { padding:24px 6px 16px; text-align:center; }
.thankyou h2 { margin:11px 0; font-size:21px; }
.thankyou p { font-size:15px; line-height:1.6; color:var(--muted); }
.success-icon { display:grid; place-items:center; width:52px; height:52px; margin:0 auto; border-radius:50%; color:#fff; background:#15975b; font-size:26px; }
.footer { margin:16px 0 0; font-size:12px; color:#797979; text-align:center; }
.footer a { color:inherit; }
.trap,.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
@media (max-width:460px) { .page { justify-content:flex-start; padding:12px 10px 16px; } .entry-card { padding:20px 17px 19px; border-radius:24px; } h1 { font-size:21px; } .eyebrow { font-size:12px; } .intro { font-size:12.5px; } .form-control { min-height:47px; } .check-row { font-size:13.5px; } }
@media (max-width:360px) { .entry-card { padding-left:14px; padding-right:14px; } h1 { font-size:19px; } .check-row { font-size:13px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; } }
