:root{
  --primary:#2d5aa7;
  --accent:#9bd12c;
  --text:#0f172a;
  --muted:#5b647a;
  --bg:#ffffff;
  --surface:#f6f8fb;
  --radius:16px;
  --shadow:0 18px 40px rgba(16,24,40,.08)
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.55}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;background:#fff;border-bottom:1px solid #eef1f6;z-index:100;backdrop-filter:saturate(1.2) blur(4px)}
.topbar{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:46px;width:auto}
nav a{margin:0 10px;text-decoration:none;color:var(--primary);font-weight:600}
.cta-header a{display:inline-block;background:var(--primary);color:#fff;text-decoration:none;padding:10px 16px;border-radius:12px;font-weight:700;box-shadow:var(--shadow)}
.hero{padding:20px 0 0}
.hero picture img{width:100%;height:auto;border-radius:18px;border:1px solid #e7edf6;box-shadow:var(--shadow)}
.section{padding:28px 0}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{background:#fff;border:1px solid #e7edf6;border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.card h3{margin:0 0 .4rem;font-size:18px}
.muted{color:var(--muted)}
.list{margin:.4rem 0 0;padding-left:18px}
.list li{margin:.25rem 0}
.footer{background:var(--surface);padding:28px 0;border-top:1px solid #eef1f6}
.legal{font-size:13px;color:var(--muted);white-space:pre-line}
.links a{color:var(--primary);text-decoration:none;margin-right:16px}
.sticky-call{position:fixed;right:18px;bottom:18px;z-index:200}
.sticky-call a{display:inline-block;background:var(--accent);color:#0e1b2b;text-decoration:none;font-weight:700;padding:12px 16px;border-radius:999px;border:1px solid #bfe680;box-shadow:var(--shadow)}
.panel{background:#fff;border:1px solid #dfe7f7;border-radius:18px;box-shadow:var(--shadow)}
.panel .panel-head{padding:14px 16px;border-bottom:1px solid #eef1f6;font-weight:800;color:var(--primary)}
.panel .panel-body{padding:2px 16px 14px}
.checklist{list-style:none;padding-left:0;margin:0}
.checklist li{position:relative;padding-left:28px;margin:.35rem 0}
.checklist li::before{content:"✓";position:absolute;left:0;top:0;line-height:1.2;font-weight:800}
.notice{background:linear-gradient(180deg,#ffffff,#f4f8ff);border:1px solid #dfe7f7;border-radius:16px;padding:14px}
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
}

/* Modal contact */
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;z-index:3000}
.modal{background:#fff;border:1px solid #e7edf6;border-radius:16px;box-shadow:var(--shadow);max-width:640px;width:96%;padding:18px}
.modal h3{margin-top:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid .full{grid-column:1 / -1}
input[type="text"],input[type="email"],input[type="tel"],textarea{width:100%;padding:10px 12px;border:1px solid #dfe3ea;border-radius:10px;font:inherit}
.checkbox-list{display:grid;grid-template-columns:1fr;row-gap:6px}
.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.btn{padding:10px 14px;border-radius:10px;border:1px solid #e7edf6;background:#fff;cursor:pointer;font-weight:700}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-ghost{background:#fff}
.required::after{content:" *";color:#c00;font-weight:700}
.error{color:#b00020;font-size:13px;margin:6px 0 0}


/* Header logo + flag reunion */
.brand{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.brand img.logo{height:42px;width:auto}
.brand img.flag-reunion{height:28px;width:auto;object-fit:contain}
@media(max-width:600px){
  .brand img.logo{height:36px}
  .brand img.flag-reunion{height:24px}
}
