/* Page « Réserver une démonstration » : formulaire réel aux couleurs du Modèle 1 (complète styles.css et vivid.css sans les modifier) */
.m1-reserver .header { position:sticky; }
.reserver { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:clamp(24px, 5vw, 72px); align-items:start; padding:clamp(32px, 6vw, 80px) 0; }
.reserver-intro h1 { font-size:clamp(34px, 5vw, 56px); line-height:1.05; margin:.4em 0; color:#111748; }
.reserver-intro h1 em { font-style:normal; background:linear-gradient(90deg, #2563eb, #06b6d4); -webkit-background-clip:text; background-clip:text; color:transparent; }
.reserver-intro p { color:#66748d; font-size:17px; line-height:1.6; }
.reserver-intro .cta-assurance { display:inline-block; margin-top:8px; color:#2563eb; font-weight:700; font-size:15px; letter-spacing:0; }
.reserver-essai a { color:#2563eb; font-weight:700; display:inline-flex; align-items:center; gap:4px; }
.reserver-form { background:#fff; border:1px solid #dfe7f4; border-radius:24px; padding:clamp(20px, 3vw, 32px); box-shadow:0 24px 60px -32px rgba(17, 23, 72, .25); display:grid; gap:14px; }
.reserver-form .row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.reserver-form .field { display:grid; gap:6px; min-width:0; }
.reserver-form label { font-weight:700; font-size:14px; color:#111748; }
.reserver-form input, .reserver-form select, .reserver-form textarea { font:inherit; padding:12px 14px; border:1px solid #dfe7f4; border-radius:12px; background:#f3f8ff; color:#111748; width:100%; }
.reserver-form input:focus, .reserver-form select:focus, .reserver-form textarea:focus { outline:3px solid color-mix(in srgb, #2563eb 25%, transparent); border-color:#2563eb; background:#fff; }
.reserver-form .field.check { grid-template-columns:auto 1fr; align-items:start; gap:10px; }
.reserver-form .field.check input { width:auto; margin-top:3px; }
.reserver-form .field.check label { font-weight:500; color:#66748d; }
.reserver-form .field.invalid input, .reserver-form .field.invalid select { border-color:#ef4444; }
.reserver-form .field-error { color:#dc2626; font-size:13px; }
.reserver-form .hp { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.reserver-form .form-status:empty { display:none; }
.reserver-form .form-status { padding:12px 14px; border-radius:12px; font-weight:600; }
.reserver-form .form-status.ok { background:#dcfce7; color:#166534; }
.reserver-form .form-status.err { background:#fee2e2; color:#991b1b; }
.reserver-form .form-status.sending { background:#eff6ff; color:#1d4ed8; }
.reserver-form button.button { justify-self:start; border:0; cursor:pointer; }
@media (max-width:900px) { .reserver { grid-template-columns:1fr; } }
@media (max-width:480px) { .reserver-form .row { grid-template-columns:1fr; } }

/* Arabe : police Cairo locale, sens RTL, jamais d'espacement entre les lettres */
@font-face { font-family:'Cairo'; font-style:normal; font-weight:400 800; font-display:swap; src:url("../fonts/cairo-arabic.woff2") format("woff2");
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC; }
@font-face { font-family:'Cairo'; font-style:normal; font-weight:400 800; font-display:swap; src:url("../fonts/cairo-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
.m1-reserver.lang-ar, .m1-reserver.lang-ar * { font-family:'Cairo', sans-serif; letter-spacing:0 !important; }
.m1-reserver.lang-ar .reserver-intro h1 { line-height:1.3; }
[dir=rtl] .m1-reserver svg[viewBox="0 0 24 24"] { transform:scaleX(-1); }
[dir=rtl] .reserver-form .hp { left:auto; right:-10000px; }
