/* Charte BDE-DIT : bleu pétrole #004B56, texte blanc */
:root{--bg:#EEF4F5;--surface:#FFFFFF;--fg:#0E2A30;--muted:#4F666B;--line:#D3E0E2;--brand:#004B56;--brand-fg:#FFFFFF;--accent:#004B56;--accent-soft:#DDEDEF;--ok:#1E7A4C;--ok-soft:#E1F3E9;--warn:#B35C00;--err:#B3261E;--err-soft:#FBE4E2;
--display:"Sora",system-ui,sans-serif;--body:"Inter Tight","Segoe UI",system-ui,sans-serif}
@media (prefers-color-scheme:dark){:root{--bg:#062A30;--surface:#0B3840;--fg:#FFFFFF;--muted:#A9C3C7;--line:#1E4D55;--brand:#004B56;--accent:#5CC0CC;--accent-soft:#0E434C;--ok:#5FD39A;--ok-soft:#173527;--warn:#F2A65A;--err:#FF8A80;--err-soft:#3B1D1B;color-scheme:dark}}
*{box-sizing:border-box}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 var(--body)}
.wrap{max-width:960px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-left))}
header.top{background:var(--brand);color:var(--brand-fg)}
@media (prefers-color-scheme:dark){header.top{border-bottom:1px solid var(--line)}}
header.top .wrap{display:flex;justify-content:space-between;align-items:center;padding-block:14px;gap:12px}
.logo{font-family:var(--display);font-weight:700;letter-spacing:.02em;text-decoration:none;color:inherit}
.logo span{color:#7FD3DD}
header.top a.lien{color:inherit;opacity:.8;font-size:14px}
.hero{position:relative;overflow:hidden;margin-block:24px 28px;padding:clamp(28px,6vw,52px) clamp(20px,5vw,44px);border-radius:20px;
  background:linear-gradient(135deg,#00616F 0%,#004B56 55%,#00343C 100%);color:var(--brand-fg)}
.hero::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(127,211,221,.30),transparent 70%);pointer-events:none}
.hero .lead{color:rgba(255,255,255,.82)}
.hero .btn{margin-top:22px}
.surtitre{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.75;margin-bottom:10px}
.btn.clair{background:#fff;color:#004B56}
h1,h2,h3{font-family:var(--display);text-wrap:balance;line-height:1.2;margin:0}
h1{font-size:clamp(28px,5vw,42px)}
h2{font-size:22px}
.lead{color:var(--muted);max-width:60ch;margin:12px 0 0}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;scroll-margin-top:16px}
.carte{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;min-width:0;
  box-shadow:0 1px 2px rgba(20,38,46,.06),0 8px 24px -12px rgba(20,38,46,.18);transition:transform .2s,box-shadow .2s}
.carte:hover{transform:translateY(-2px);box-shadow:0 1px 2px rgba(20,38,46,.06),0 14px 32px -12px rgba(20,38,46,.28)}
.carte.complet .couverture img,.carte.complet .couverture-vide{filter:grayscale(.8)}
.couverture{position:relative;aspect-ratio:4/3;background:#00343C;overflow:hidden}
.couverture img{width:100%;height:100%;object-fit:contain;display:block;position:relative}
.couverture img.fond{position:absolute;inset:0;object-fit:cover;filter:blur(22px) brightness(.7);transform:scale(1.15)}
.voir-photo{position:absolute;inset:0;display:block;cursor:zoom-in}
.couverture-vide{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#00707F 0%,#004B56 55%,#00303A 100%)}
.couverture-vide span{font:700 72px/1 var(--display);color:rgba(255,255,255,.9)}
.badge-etat{position:absolute;top:12px;left:12px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:99px;background:rgba(255,255,255,.94);color:var(--ok);box-shadow:0 2px 8px rgba(0,0,0,.15)}
.badge-etat.peu{color:#B35C00}.badge-etat.zero{color:#B3261E}
.corps{padding:20px;display:flex;flex-direction:column;gap:12px;flex:1}
.corps h3{font-size:21px}
.infos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
.infos li{display:flex;align-items:center;gap:8px}
.infos svg{width:17px;height:17px;flex:none;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.description{margin:0;white-space:pre-line;color:var(--fg)}
.places{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:4px}
.reserver{text-align:center}
.reserver.desactive{background:var(--line);color:var(--muted);cursor:not-allowed}
/* Une seule activité : grande carte, photo à côté du texte */
@media (min-width:760px){
  .grille.une{grid-template-columns:1fr}
  .grille.une .carte{flex-direction:row}
  .grille.une .couverture{flex:0 0 46%;aspect-ratio:auto;min-height:480px}
  .grille.une .corps{padding:28px 32px;gap:14px}
  .grille.une .corps h3{font-size:28px}
}
.meta{font-size:14px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 14px}
.jauge{height:8px;background:var(--line);border-radius:99px;overflow:hidden}
.jauge i{display:block;height:100%;background:var(--accent);transition:width .4s}
.restantes{font-variant-numeric:tabular-nums;font-weight:600;font-size:15px}
.restantes.peu{color:var(--warn)}.restantes.zero{color:var(--err)}
.pastille{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:99px;background:var(--ok-soft);color:var(--ok)}
.pastille.fermee{background:var(--err-soft);color:var(--err)}
section.form{margin-block:40px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px}
form .champs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
@media (max-width:560px){form .champs{grid-template-columns:1fr}}
.pleine{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
input,select,textarea{font:inherit;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);width:100%}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button,.btn{font:600 15px var(--body);border:0;border-radius:8px;padding:12px 18px;background:var(--brand);color:var(--brand-fg);cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{filter:brightness(1.15)}
@media (prefers-color-scheme:dark){button:not(.second):not(.danger),.btn:not(.second):not(.clair){box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}}
button.second,.btn.second{background:transparent;color:var(--fg);border:1px solid var(--line)}
button.danger{background:var(--err)}
button.petit{padding:6px 10px;font-size:13px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;align-items:center}
.flash{padding:12px 14px;border-radius:8px;margin-top:16px;font-weight:500}
.flash.erreur{background:var(--err-soft);color:var(--err)}
.flash.ok{background:var(--ok-soft);color:var(--ok)}
.vide{padding:32px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
.ticket{max-width:460px;margin:48px auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;text-align:center}
.code{font:700 34px/1 var(--display);letter-spacing:.18em;color:var(--accent);margin:16px 0;font-variant-numeric:tabular-nums}
.table-box{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
td.num{font-variant-numeric:tabular-nums}
footer{color:var(--muted);font-size:13px;padding-block:32px;text-align:center}
.pile{display:flex;flex-direction:column;gap:24px;padding-block:28px}
section.form{scroll-margin-top:16px}
.vignette{width:56px;height:38px;border-radius:6px;object-fit:cover;display:block;background:var(--line)}
.photo-actuelle{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.photo-actuelle img{width:140px;max-height:180px;object-fit:contain;background:var(--line);border-radius:10px}
.case{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.case input{width:auto}
input[type=file]{padding:9px}
.ticket .ticket-photo{width:calc(100% + 56px);margin:-28px -28px 18px;max-height:360px;object-fit:contain;background:#00343C;display:block;border-radius:16px 16px 0 0}
@media (prefers-reduced-motion:reduce){.jauge i,.carte{transition:none}.carte:hover{transform:none}}
