/* Mirage Horaires 1.4 — affichage public */
.mh-pub,.mh-pill,.mh-app,.mh-gate{
  --mh-card-margin:0;--mh-head-justify:flex-start;--mh-range-sep:"·";
  --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{--mh-pad-x:28px;--mh-pad-b:20px;position:relative;box-sizing:border-box;max-width:var(--mh-card-max);margin:var(--mh-card-margin);padding:26px var(--mh-pad-x) var(--mh-pad-b);
  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-head.is-untitled{justify-content:var(--mh-head-justify)}
.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-top:3px;font:600 9.5px/1 var(--mh-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mh-accent)}
.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:var(--mh-range-sep,"·");margin:0 8px;color:var(--mh-muted)}
.mh-pub.is-grouped .mh-pub-day{white-space:normal}
/* Date particulière du jour (Noël, garde…) : remplace les horaires habituels sur la ligne du jour. */
.mh-pub .mh-pub-list li .mh-hours-reg{display:none}
.mh-pub .mh-pub-list li.is-exception:not(.is-exc-active) .mh-hours-exc,
.mh-pub .mh-pub-list li.is-exception:not(.is-exc-active) .mh-pub-note{display:none}
.mh-pub .mh-pub-list li.is-exception:not(.is-exc-active) .mh-hours-reg{display:flex}
.mh-pub .mh-pub-list li.is-exc-active .mh-hours-exc{color:var(--mh-navy);font-weight:600}
.mh-pub .mh-pub-list li.is-exc-active.is-closed .mh-hours-exc{color:var(--mh-closed)}
.mh-pub .mh-pub-note{display:block;margin-top:3px;font-size:12px;font-weight:500;color:var(--mh-accent);white-space:normal}
.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:block}
/* Couleur de mise en avant (garde, vacances…) choisie par le gestionnaire. */
.mh-pub .mh-pub-list li.has-hl.is-exc-active{background:color-mix(in srgb,var(--mh-hl) 13%,transparent);box-shadow:inset 3px 0 0 var(--mh-hl)}
.mh-pub .mh-pub-list li.has-hl.is-exc-active .mh-pub-day em,
.mh-pub .mh-pub-list li.has-hl.is-exc-active .mh-pub-note,
.mh-pub .mh-pub-list li.has-hl.is-exc-active .mh-hours-exc{color:color-mix(in srgb,var(--mh-hl) 80%,var(--mh-ink))}
.mh-pub .mh-pub-period{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:0 0 14px;padding:9px 12px;border-radius:min(10px,var(--mh-radius));
  font-size:13px;line-height:1.35;color:var(--mh-text);background:color-mix(in srgb,var(--mh-hl,var(--mh-accent)) 12%,transparent);
  box-shadow:inset 3px 0 0 var(--mh-hl,var(--mh-accent))}
.mh-pub .mh-pub-period strong{font-weight:650;color:color-mix(in srgb,var(--mh-hl,var(--mh-navy)) 80%,var(--mh-ink))}
.mh-pub .mh-pub-period span{color:var(--mh-muted)}
.mh-pub .mh-pub-notes li.has-hl span:first-child::before{content:"";display:inline-block;width:8px;height:8px;margin:0 7px 1px 0;border-radius:50%;background:var(--mh-hl);vertical-align:middle}
.mh-pub .mh-pub-notes li.has-hl span:last-child{color:color-mix(in srgb,var(--mh-hl) 75%,var(--mh-notes-text,var(--mh-ink)))}
.mh-pub .mh-pub-list li.is-today{align-items:center}
.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{font-family:var(--mh-notes-font,var(--mh-sans))}
.mh-pub .mh-pub-notes-title{margin:0 0 6px;font:600 var(--mh-notes-title-fs,10.5px)/1.25 var(--mh-notes-font,var(--mh-sans));letter-spacing:var(--mh-notes-title-ls,.16em);text-transform:var(--mh-notes-title-tt,uppercase);color:var(--mh-notes-title,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:var(--mh-notes-fs,13.5px);font-family:var(--mh-notes-font,var(--mh-sans));color:var(--mh-notes-text,var(--mh-text));list-style:none}
.mh-pub .mh-pub-notes li span:first-child{display:inline-block;color:var(--mh-notes-text,var(--mh-ink));font-weight:var(--mh-notes-fw,500);white-space:nowrap}
/* Bloc « Dates particulières » : encadré (fond coloré) ou bandeau (barre de couleur à gauche). */
.mh-pub.notes-box .mh-pub-notes{margin:16px 0 0;padding:14px 16px 10px;border:0;border-radius:min(12px,var(--mh-radius));
  background:var(--mh-notes-bg,color-mix(in srgb,var(--mh-accent) 11%,var(--mh-paper)))}
.mh-pub.notes-accent .mh-pub-notes{margin:16px 0 0;padding:12px 14px 8px 16px;border:0;border-left:3px solid var(--mh-notes-title,var(--mh-accent));
  border-radius:0 min(10px,var(--mh-radius)) min(10px,var(--mh-radius)) 0;background:var(--mh-notes-bg,color-mix(in srgb,var(--mh-accent) 6%,var(--mh-paper)))}
.mh-pub.notes-box .mh-pub-notes li+li,.mh-pub.notes-accent .mh-pub-notes li+li{border-top:1px solid color-mix(in srgb,var(--mh-notes-text,var(--mh-ink)) 10%,transparent)}
.mh-pub.notes-box .mh-pub-notes li,.mh-pub.notes-accent .mh-pub-notes li{padding:6px 0}
.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;justify-content:center;gap:.6em;margin:0;box-sizing:border-box;
  padding:var(--mh-pill-py,6px) var(--mh-pill-px,12px);border-radius:var(--mh-pill-radius,var(--mh-btn-radius));border:var(--mh-pill-border,0);
  font:var(--mh-pill-fw,600) var(--mh-pill-fs,13px)/1.2 var(--mh-pill-font,var(--mh-sans));
  letter-spacing:var(--mh-pill-ls,normal);text-transform:var(--mh-pill-tt,none);white-space:nowrap;
  /* Point, texte et fond réglables séparément (--mh-pill-dot / --mh-pill-text / --mh-pill-bg), sinon couleur du statut. */
  --mh-state:var(--mh-closed);
  color:var(--mh-pill-text,var(--mh-state));
  background:var(--mh-pill-bg,color-mix(in srgb,var(--mh-state) 10%,transparent))}
.mh-pill.mh-pill.is-open{--mh-state:var(--mh-open)}
.mh-pill.mh-pill.is-soon{--mh-state:var(--mh-soon)}
.mh-pill.mh-pill.is-closed{--mh-state:var(--mh-closed)}
.mh-pill.mh-pill.is-plain{padding:0;background:none}
.mh-pill .mh-pill-short{display:none}
.mh-pill .mh-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mh-pill i{position:relative;flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--mh-pill-dot,var(--mh-state))}
.mh-pill.is-open i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--mh-pill-dot,var(--mh-state));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:not(.has-bg){--mh-state-light:color-mix(in srgb,var(--mh-state) 55%,#fff);color:var(--mh-pill-text,var(--mh-state-light));background:var(--mh-pill-bg,rgba(255,255,255,.1))}
.mh-pill.mh-pill.is-on-dark.is-plain{background:none}
.mh-pill.is-on-dark:not(.has-bg) i{background:var(--mh-pill-dot,var(--mh-state-light))}
@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}}

/* Pastille dans la carte : toujours sous le titre, ou masquée */
.mh-pub.pill-below .mh-pub-head{flex-direction:column;align-items:stretch;gap:10px}
.mh-pub.pill-below .mh-pub-head .mh-pill{align-self:var(--mh-pill-self,flex-start)}
.mh-pub.pill-below .mh-pub-title,.mh-pub.pill-hidden .mh-pub-title{width:100%;text-align:var(--mh-title-align,left)}
.mh-pub.pill-hidden .mh-pub-head .mh-pill{display:none}
.mh-pub.pill-hidden .mh-pub-head.is-untitled{display:none}

/* Bloc « Dates particulières » en haut (sous le titre) */
.mh-pub.notes-top .mh-pub-notes.mh-pub-notes{margin:0 0 14px;padding:0 0 12px;border-top:0;border-bottom:1px dashed var(--mh-line)}
.mh-pub.notes-top.notes-box .mh-pub-notes.mh-pub-notes{margin:0 0 16px;padding:14px 16px 10px;border:0}
.mh-pub.notes-top.notes-accent .mh-pub-notes.mh-pub-notes{margin:0 0 16px;padding:12px 14px 8px 16px;border:0;border-left:3px solid var(--mh-notes-title,var(--mh-accent))}
/* Fond sur toute la largeur de la carte (bord à bord) */
.mh-pub.notes-full.notes-box .mh-pub-notes.mh-pub-notes,.mh-pub.notes-full.notes-accent .mh-pub-notes.mh-pub-notes{
  margin-left:calc(-1 * var(--mh-pad-x));margin-right:calc(-1 * var(--mh-pad-x));padding-left:var(--mh-pad-x);padding-right:var(--mh-pad-x);border-radius:0}
.mh-pub.notes-full.notes-accent .mh-pub-notes.mh-pub-notes{padding-left:calc(var(--mh-pad-x) - 3px)}
.mh-pub.notes-full:not(.notes-top).notes-box .mh-pub-notes.mh-pub-notes,.mh-pub.notes-full:not(.notes-top).notes-accent .mh-pub-notes.mh-pub-notes{
  margin-bottom:calc(-1 * var(--mh-pad-b));padding-bottom:calc(var(--mh-pad-b) - 2px)}

@media (max-width:480px){
  .mh-pub.mh-pub{--mh-pad-x:18px;--mh-pad-b:16px;max-width:100%;padding:22px var(--mh-pad-x) var(--mh-pad-b)}
  .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.mh-m-full{white-space:normal}
}

/* Pastille sur mobile : texte complet, texte court (« Ouvert ») ou point seul. */
@media (max-width:767px){
  .mh-pill.mh-pill{font-size:var(--mh-pill-m-fs,var(--mh-pill-fs,13px));letter-spacing:var(--mh-pill-m-ls,var(--mh-pill-ls,normal));
    padding:var(--mh-pill-m-py,var(--mh-pill-py,6px)) var(--mh-pill-m-px,var(--mh-pill-px,12px))}
  .mh-pill.mh-m-short .mh-pill-text,.mh-pill.mh-m-dot .mh-pill-text{display:none}
  .mh-pill.mh-m-short .mh-pill-short{display:inline}
  .mh-pill.mh-pill.mh-m-dot{padding:var(--mh-pill-m-py,var(--mh-pill-py,6px))}
  .mh-pill.mh-pill.mh-m-dot.is-plain{padding:0}
}
.mh-pill.is-force-mobile.mh-m-short .mh-pill-text,.mh-pill.is-force-mobile.mh-m-dot .mh-pill-text{display:none}
.mh-pill.is-force-mobile.mh-m-short .mh-pill-short{display:inline}
.mh-pill.mh-pill.is-force-mobile{font-size:var(--mh-pill-m-fs,var(--mh-pill-fs,13px));letter-spacing:var(--mh-pill-m-ls,var(--mh-pill-ls,normal));
  padding:var(--mh-pill-m-py,var(--mh-pill-py,6px)) var(--mh-pill-m-px,var(--mh-pill-px,12px))}
.mh-pill.mh-pill.is-force-mobile.mh-m-dot{padding:var(--mh-pill-m-py,var(--mh-pill-py,6px))}
