/* SCI Île du Héron
   Mise en page : une seule colonne centrée sur le médaillon, fond de marais nocturne, pied de page légal en bas d'écran */
:root{
  color-scheme:dark;
  --marsh:#0d201e;      /* fond, vert du médaillon */
  --marsh-2:#13302d;
  --panel:#112826;
  --ivory:#ece6d6;      /* texte, ivoire du cadre */
  --sage:#9fb3a6;       /* texte secondaire */
  --bronze:#bfa46c;     /* accent, lettrage du médaillon */
  --line:#24423e;
  --danger:#e58f7a;
  --ok:#9ccfa8;
  --f-display:"Marcellus","Trajan Pro",Georgia,serif;
  --f-body:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--marsh);color:var(--ivory);font:400 16px/1.6 var(--f-body);
  padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);display:flex;flex-direction:column;min-height:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
img{max-width:100%;display:block}
#rides{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.page{position:relative;z-index:1;flex:1;display:grid;place-items:center;padding:48px 16px 32px}
.stage{display:grid;justify-items:center;gap:22px;text-align:center;width:100%;max-width:640px}
.medal{width:min(78vw,460px);aspect-ratio:1000/1017;max-width:100%;position:relative}
.medal img{width:100%;height:auto;filter:drop-shadow(0 40px 70px rgba(0,0,0,.55));animation:apparition 1.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes apparition{from{opacity:.0;transform:scale(.96)}}
.medal::after{content:"";position:absolute;inset:-6%;border-radius:50%;border:1px solid rgba(191,164,108,.25);animation:halo 6s ease-in-out infinite;pointer-events:none}
@keyframes halo{50%{transform:scale(1.03);opacity:.35}}
h1{font:400 clamp(28px,5vw,44px)/1.1 var(--f-display);letter-spacing:.08em;margin:6px 0 0;text-transform:uppercase;text-wrap:balance}
.sub{font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;font:600 13px var(--f-body);letter-spacing:.16em;text-transform:uppercase;
  border:1px solid var(--bronze);background:var(--bronze);color:#14211f;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s}
.btn:hover{background:#d4ba84;transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--ivory);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--bronze);background:rgba(191,164,108,.08)}
.btn svg{width:16px;height:16px}
.secure-note{font-size:13px;color:var(--sage);display:flex;align-items:center;gap:8px}
.secure-note svg{width:14px;height:14px;color:var(--ok)}

footer{position:relative;z-index:1;border-top:1px solid var(--line);padding:22px 16px;font-size:13px;color:var(--sage);background:rgba(13,32,30,.85)}
footer .in{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;align-items:baseline}
footer b{color:var(--ivory);font-weight:600}
footer a{color:var(--bronze);text-decoration:none;border-bottom:1px solid rgba(191,164,108,.4)}
footer .legal{width:100%;font-size:12px;opacity:.85;font-variant-numeric:tabular-nums}

/* formulaires et espace privé */
.card{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--line);padding:32px 28px;display:grid;gap:18px;text-align:left;box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.card.wide{max-width:860px}
.card .logo-sm{width:110px;height:auto;margin:0 auto 4px}
.card picture{display:block}
.card h1{font-size:24px;text-align:center}
.card p.hint{font-size:14px;color:var(--sage);text-align:center;margin:0}
label{display:grid;gap:6px;font-size:13px;letter-spacing:.06em;color:var(--sage)}
input[type=text],input[type=password]{width:100%;padding:12px 14px;font:400 16px var(--f-body);color:var(--ivory);background:var(--marsh);border:1px solid var(--line);border-radius:0}
input:focus{outline:none;border-color:var(--bronze)}
.alert{padding:10px 14px;font-size:14px;border-left:3px solid var(--danger);background:rgba(229,143,122,.08);color:#f3c2b5}
.alert.ok{border-color:var(--ok);background:rgba(156,207,168,.08);color:#cfe9d5}
.row{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.back{font-size:13px;color:var(--sage);text-align:center}
.docs{width:100%;border-collapse:collapse;font-size:14px}
.docs th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);padding:10px 8px;border-bottom:1px solid var(--line)}
.docs td{padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums}
.docs td.n{overflow-wrap:anywhere}
.docs a{color:var(--bronze);text-decoration:none}
.table-wrap{overflow-x:auto}
.empty{padding:28px;text-align:center;border:1px dashed var(--line);color:var(--sage);font-size:14px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.card .left{text-align:left}
.nw{white-space:nowrap}
[hidden]{display:none!important}
.files{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.files li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);font-size:14px;min-width:0}
.files li span{overflow-wrap:anywhere}
.files button{all:unset;cursor:pointer;color:var(--sage);font-size:13px}
.files button:hover{color:var(--danger)}
.drop{border:1px dashed var(--bronze);padding:22px;text-align:center;color:var(--sage);font-size:14px;cursor:pointer}
.drop.over{background:rgba(191,164,108,.08)}
.steps-mini{margin:0;padding-left:20px;color:var(--sage);font-size:14px;display:grid;gap:4px}
.dl-btn{all:unset;cursor:pointer;color:var(--bronze)}
.dl-btn:hover{text-decoration:underline}
.dl-btn[disabled]{opacity:.5;cursor:wait}
