/* Mirage Horaires 1.4 — affichage public */
.mh-pub,.mh-pill,.mh-app,.mh-gate{
  --mh-navy:#08083a;--mh-on-primary:#fff;--mh-accent:#b8925a;--mh-ink:#16152b;--mh-paper:#fff;
  --mh-open:#1d8150;--mh-soon:#b8730d;--mh-closed:#b0393a;
  --mh-radius:18px;--mh-btn-radius:999px;--mh-card-max:440px;--mh-hairline:2px;
  --mh-shadow:0 1px 2px rgba(8,8,58,.04),0 18px 40px -22px rgba(8,8,58,.22);
  --mh-sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mh-serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,ui-serif,serif;
}
/* Teintes dérivées : calculées à partir des couleurs ci-dessus (réglages > Apparence). */
.mh-pub,.mh-pill,.mh-app,.mh-gate{
  --mh-text:color-mix(in srgb,var(--mh-ink) 80%,var(--mh-paper));
  --mh-muted:color-mix(in srgb,var(--mh-ink) 55%,var(--mh-paper));
  --mh-line:color-mix(in srgb,var(--mh-ink) 11%,var(--mh-paper));
}

/* Carte horaires */
.mh-pub.mh-pub{position:relative;box-sizing:border-box;max-width:var(--mh-card-max);margin:0;padding:26px 28px 20px;
  background:var(--mh-paper);color:var(--mh-ink);border:1px solid var(--mh-line);border-radius:var(--mh-radius);overflow:hidden;
  box-shadow:var(--mh-shadow);
  font:400 15px/1.45 var(--mh-sans);letter-spacing:normal;text-align:left}
.mh-pub.mh-pub::before{content:"";position:absolute;left:28px;right:28px;top:0;height:var(--mh-hairline);border-radius:0 0 2px 2px;
  background:linear-gradient(90deg,var(--mh-accent),transparent)}
.mh-pub.mh-pub *{box-sizing:border-box}
.mh-pub .mh-pub-head{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:0 0 16px}
.mh-pub .mh-pub-title{margin:0;padding:0;font:500 23px/1.15 var(--mh-serif);color:var(--mh-navy);letter-spacing:-.01em;text-transform:none}
.mh-pub .mh-pub-list{list-style:none;margin:0;padding:0}
.mh-pub .mh-pub-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0;padding:10px 0;
  border-top:1px solid var(--mh-line);list-style:none}
.mh-pub .mh-pub-list li::before{display:none}
.mh-pub .mh-pub-list li:first-child{border-top-color:transparent}
.mh-pub .mh-pub-day{font-weight:500;color:var(--mh-ink);white-space:nowrap}
.mh-pub .mh-pub-day em{display:none;margin-left:8px;font:600 10px/1 var(--mh-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mh-accent);vertical-align:2px}
.mh-pub .mh-pub-hours{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px 0;text-align:right;color:var(--mh-text);font-variant-numeric:tabular-nums}
.mh-pub .mh-pub-hours span+span::before{content:"·";margin:0 8px;color:var(--mh-muted)}
.mh-pub .mh-pub-list li.is-closed .mh-pub-hours{color:var(--mh-muted)}
.mh-pub .mh-pub-list li.is-today{margin:0 -12px;padding:10px 12px;border-radius:min(10px,var(--mh-radius));border-top-color:transparent;
  background:rgba(184,146,90,.09);background:color-mix(in srgb,var(--mh-accent) 10%,transparent)}
.mh-pub .mh-pub-list li.is-today+li{border-top-color:transparent}
.mh-pub .mh-pub-list li.is-today .mh-pub-day{font-weight:650;color:var(--mh-navy)}
.mh-pub .mh-pub-list li.is-today .mh-pub-day em{display:inline}
.mh-pub .mh-pub-empty{margin:0;color:var(--mh-muted)}
.mh-pub .mh-pub-notes{margin:14px 0 0;padding:14px 0 0;border-top:1px dashed var(--mh-line)}
.mh-pub .mh-pub-notes-title{margin:0 0 6px;font:600 10.5px/1.2 var(--mh-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mh-accent)}
.mh-pub .mh-pub-notes ul{list-style:none;margin:0;padding:0}
.mh-pub .mh-pub-notes li{display:flex;justify-content:space-between;gap:14px;margin:0;padding:4px 0;font-size:13.5px;color:var(--mh-text);list-style:none}
.mh-pub .mh-pub-notes li span:first-child{display:inline-block;color:var(--mh-ink);font-weight:500;white-space:nowrap}
.mh-pub .mh-pub-notes li span:first-child::first-letter{text-transform:uppercase}
.mh-pub .mh-pub-notes li span:last-child{text-align:right}

.mh-pub.is-dark{--mh-paper:#0e0f2e;--mh-ink:#f4f1ea;--mh-navy:#fff;--mh-open:#4cc489;--mh-soon:#f0b44c;--mh-closed:#f07a7a}

/* Pastille de statut */
.mh-pill.mh-pill{display:inline-flex;align-items:center;gap:8px;margin:0;padding:6px 12px 6px 10px;border-radius:var(--mh-btn-radius);
  font:600 13px/1.2 var(--mh-sans);letter-spacing:normal;white-space:nowrap;text-transform:none;
  background:rgba(0,0,0,.05);background:color-mix(in srgb,currentColor 10%,transparent)}
.mh-pill.is-plain{padding:0;background:none}
.mh-pill i{position:relative;flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:currentColor}
.mh-pill.is-open{color:var(--mh-open)}
.mh-pill.is-soon{color:var(--mh-soon)}
.mh-pill.is-closed{color:var(--mh-closed)}
.mh-pill.is-open i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid currentColor;opacity:0;animation:mh-pulse 2.4s ease-out infinite}
/* Pastille posée sur un header foncé : [mirage_statut_horaires sur="sombre"] */
.mh-pill.mh-pill.is-on-dark{background:rgba(255,255,255,.1)}
.mh-pill.is-on-dark.is-plain{background:none}
.mh-pill.is-on-dark.is-open{color:color-mix(in srgb,var(--mh-open) 55%,#fff)}
.mh-pill.is-on-dark.is-soon{color:color-mix(in srgb,var(--mh-soon) 55%,#fff)}
.mh-pill.is-on-dark.is-closed{color:color-mix(in srgb,var(--mh-closed) 50%,#fff)}
@keyframes mh-pulse{0%{transform:scale(.5);opacity:.6}80%,100%{transform:scale(1.4);opacity:0}}
@media (prefers-reduced-motion:reduce){.mh-pill.is-open i::after{animation:none}}

@media (max-width:480px){
  .mh-pub.mh-pub{max-width:100%;padding:22px 18px 16px}
  .mh-pub.mh-pub::before{left:18px;right:18px}
  .mh-pub .mh-pub-title{font-size:21px}
  .mh-pub .mh-pub-list li{font-size:14px;gap:12px}
  .mh-pub .mh-pub-hours{flex-direction:column;align-items:flex-end}
  .mh-pub .mh-pub-hours span+span::before{display:none}
  .mh-pill.mh-pill{white-space:normal}
}
