:root{--n:#09284d;--b:#174d8f;--r:#d52f36;--g:#e4b64d;--w:#fff;--ink:#14243a}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f4f7fb;color:var(--ink)}.nav{height:76px;padding:0 max(24px,calc((100% - 1340px)/2));display:flex;align-items:center;background:#09284d;color:#fff}.brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-size:20px}.brand img{width:52px;height:52px;object-fit:contain;background:white;border-radius:50%}.links{display:flex;margin-left:auto;height:100%;align-items:stretch}.links a{display:flex;align-items:center;padding:0 15px;color:white;text-decoration:none;text-transform:uppercase;font-size:13px;font-weight:850}.links a:hover,.links a.on{background:rgba(255,255,255,.1)}.links .book{background:var(--r)}.hamb{display:none;margin-left:auto;background:none;border:0;color:white;font-size:28px}.hero{min-height:470px;position:relative;overflow:hidden;background:radial-gradient(circle at 76% 38%,rgba(86,151,231,.42),transparent 28%),linear-gradient(118deg,#061d39 0%,#103b72 48%,#2768b8 100%);color:white}.hero{border-bottom:2px solid rgba(228,182,77,.75)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to right,black,transparent)}.hero:after{content:"";position:absolute;width:700px;height:700px;border:1px solid rgba(255,255,255,.11);border-radius:50%;right:-210px;top:-190px;box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.018)}.heroin{max-width:1330px;margin:auto;padding:61px 24px;display:grid;grid-template-columns:1.35fr .65fr;align-items:center;position:relative;z-index:2}.ey{color:#ffd766;text-transform:uppercase;letter-spacing:2px;font-weight:900;font-size:14px}.hero h1{font-family:Georgia,serif;font-size:72px;line-height:1;margin:15px 0 22px}.hero p{font-size:20px;line-height:1.6;max-width:850px;color:#edf5ff}.crest{justify-self:center;position:relative}.crest:before{content:"";position:absolute;inset:-28px;border:1px solid rgba(255,215,102,.45);border-radius:50%}.crest img{width:280px;height:280px;object-fit:contain;border-radius:50%;filter:drop-shadow(0 24px 28px rgba(0,0,0,.28));background:#fff}.actions{display:flex;gap:12px;margin-top:30px}.btn{display:inline-flex;padding:15px 21px;border-radius:8px;text-decoration:none;font-weight:900;background:white;color:#0b2d56}.btn.red{background:var(--r);color:white}.wrap{max-width:1200px;margin:0 auto;padding:52px 24px}.title{font-family:Georgia,serif;color:#0b315f;font-size:40px;margin:0 0 8px}.lead{color:#63758b;margin-bottom:28px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.card{background:white;border:1px solid #dce5ef;border-radius:14px;padding:22px;box-shadow:0 8px 24px rgba(8,43,82,.06)}.card h3{margin:0 0 9px;color:#0b315f}.meta{font-size:13px;text-transform:uppercase;color:#b3242c;font-weight:900}.card a{color:#155ba7;font-weight:800}.pagehead{padding:55px 24px;background:linear-gradient(120deg,#071f3c,#18599d);color:white}.pagehead>div{max-width:1200px;margin:auto}.pagehead h1{font:48px Georgia,serif;margin:5px 0}.empty{background:white;border:1px dashed #b8c7d8;padding:30px;border-radius:12px;color:#607187}.meal{display:grid;grid-template-columns:1fr 110px 120px;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #e4eaf0}.meal input{width:90px;padding:10px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgrid label{font-weight:800}.formgrid input,.formgrid textarea,.formgrid select{display:block;width:100%;padding:12px;border:1px solid #cbd7e2;border-radius:8px;margin-top:6px}.full{grid-column:1/-1}.total{font-size:24px;font-weight:900;color:#0b315f}.notice{padding:16px;border-left:5px solid #e4b64d;background:#fff6d9;border-radius:8px;margin-bottom:20px}footer{background:#061b34;color:#cbd8e6;padding:30px max(24px,calc((100% - 1200px)/2));display:flex;gap:18px}footer b{color:white}@media(max-width:1000px){.hamb{display:block}.links{display:none;position:absolute;z-index:10;top:76px;left:0;right:0;background:#09284d;height:auto;flex-direction:column}.links.open{display:flex}.links a{padding:14px 24px}.heroin{grid-template-columns:1fr}.hero h1{font-size:52px}.crest{display:none}.formgrid{grid-template-columns:1fr}.full{grid-column:auto}}
/* Connexion administration CISF */
.login-shell{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:40px 20px;background:radial-gradient(circle at 75% 25%,rgba(39,104,184,.20),transparent 28%),linear-gradient(135deg,#f3f6fa,#e8eef6)}
.login-card{width:min(520px,100%);background:#fff;border:1px solid #d8e2ec;border-radius:18px;box-shadow:0 20px 55px rgba(6,29,57,.14);padding:34px}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.login-brand img{width:68px;height:68px;object-fit:contain}.login-brand b{font-size:28px;color:#09284d}.login-card h1{font:34px Georgia,serif;color:#0b315f;margin:0 0 8px}.login-card p{color:#63758b}.login-card label{display:block;font-weight:800;color:#173656;margin:15px 0 6px}.login-card input{width:100%;padding:13px 14px;border:1px solid #c6d2de;border-radius:9px;font-size:16px}.login-card button{width:100%;margin-top:20px;border:0;border-radius:9px;background:#d52f36;color:#fff;padding:14px;font-size:16px;font-weight:900;cursor:pointer}.login-alert{padding:12px 14px;background:#fde7e8;color:#8c1d24;border-radius:8px;margin:14px 0}.login-links{display:flex;justify-content:space-between;gap:14px;margin-top:18px;font-size:14px}.login-links a{color:#155ba7;font-weight:700;text-decoration:none}

/* CISF V5 — gabarit vertical compact commun */
@media (min-width:1001px){
  .nav{height:68px}
  .brand img{width:46px;height:46px}
  .links a{padding-left:13px;padding-right:13px;font-size:12px}
  .hero{min-height:360px}
  .heroin{padding:38px 24px;min-height:360px}
  .hero h1{font-size:62px;margin:10px 0 15px}
  .hero p{font-size:18px;line-height:1.45;margin:0;max-width:820px}
  .ey{font-size:13px}
  .crest img{width:225px;height:225px}
  .crest:before{inset:-20px}
  .actions{margin-top:22px}
  .btn{padding:13px 19px}
}
.wrap{padding-top:36px;padding-bottom:40px}
.title{font-size:36px;margin-bottom:6px}
.lead{margin-top:0;margin-bottom:22px}
.card{padding:19px}
.pagehead{padding:31px 24px}
.pagehead h1{font-size:40px;margin:3px 0}
.pagehead p{margin:7px 0 0;line-height:1.45}
@media(max-width:1000px){
 .hero{min-height:auto}.heroin{padding:42px 24px}.wrap{padding:32px 20px}.pagehead{padding:28px 20px}.pagehead h1{font-size:38px}
}


/* CISF V6 — identité institutionnelle compacte */
.hero{
  min-height:285px !important;
  height:285px !important;
}
.hero .wrap{
  min-height:285px !important;
  padding-top:26px !important;
  padding-bottom:26px !important;
}
.hero h1{
  font-size:clamp(4rem,7vw,6.6rem) !important;
  line-height:.82 !important;
  margin:8px 0 15px !important;
  letter-spacing:.025em;
}
.hero .ey{
  margin-bottom:0 !important;
  letter-spacing:.14em;
}
.hero p{
  margin:0 !important;
  font-size:1.08rem !important;
  font-weight:700;
}
.hero .actions,
.hero .hero-actions{
  display:none !important;
}
.hero-logo,
.hero .emblem,
.hero .hero-emblem{
  max-height:235px !important;
  max-width:235px !important;
}
.home-intro,
.home-section{
  padding-top:28px !important;
  padding-bottom:30px !important;
}
.home-intro h2,
.home-section h2{
  margin-top:0 !important;
  margin-bottom:6px !important;
}
.cards{
  margin-top:18px !important;
}
@media(max-width:800px){
  .hero{
    height:auto !important;
    min-height:245px !important;
  }
  .hero .wrap{
    min-height:245px !important;
    padding-top:24px !important;
    padding-bottom:24px !important;
  }
  .hero h1{
    font-size:4rem !important;
  }
}


/* Correctif logo CISF dans hero compact */
.hero{
  overflow:hidden !important;
}
.hero .wrap{
  position:relative !important;
}
.hero-logo,
.hero .emblem,
.hero .hero-emblem{
  max-width:205px !important;
  max-height:205px !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
  top:50% !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
}
@media(max-width:800px){
  .hero-logo,
  .hero .emblem,
  .hero .hero-emblem{
    max-width:155px !important;
    max-height:155px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
  }
}


/* CISF — correctif réel du hero compact
   Le composant utilisé par index.php est .heroin + .crest img. */
@media (min-width:1001px){
  .hero{
    height:285px !important;
    min-height:285px !important;
  }
  .heroin{
    height:285px !important;
    min-height:285px !important;
    padding:20px 24px !important;
    box-sizing:border-box !important;
    align-items:center !important;
  }
  .crest{
    display:block !important;
    align-self:center !important;
    justify-self:center !important;
  }
  .crest img{
    width:200px !important;
    height:200px !important;
    max-width:200px !important;
    max-height:200px !important;
    object-fit:contain !important;
  }
  .crest:before{
    inset:-14px !important;
  }
}
