/**
 * Horaires d'ouverture : feuille du front-office.
 *
 * Les couleurs et dimensions viennent de l'onglet Design, sous forme de
 * variables --hdo-* posées en :root par includes/fo/fo-init.php. Une couleur
 * laissée vide n'émet pas sa variable : le texte hérite alors du thème.
 *
 * Les sélecteurs portent deux classes là où Divi en pose une plus une balise
 * (« .et-l--body ul », 0,1,1) : sans cela, ses puces et son retrait gagnent.
 */


/* ── Conteneur ─────────────────────────────────────────────── */

.oaka-hdo {
    color: var(--hdo-text, inherit);
    box-sizing: border-box;
    max-width: 100%;
}

.oaka-hdo.oaka-hdo--week,
.oaka-hdo.oaka-hdo--upcoming {
    background: var(--hdo-bg, transparent);
    border: var(--hdo-border-width, 0px) solid var(--hdo-border, transparent);
    border-radius: var(--hdo-radius, 0px);
    padding: var(--hdo-padding, 0px);
}


/* ── En-tête : titre et badge d'état ───────────────────────── */

.oaka-hdo .oaka-hdo__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .4em 1em;
    margin-bottom: .6em;
}

.oaka-hdo p.oaka-hdo__title {
    margin: 0;
    padding: 0;
    font-weight: 700;
    font-size: 1.1em;
    line-height: 1.3;
    color: var(--hdo-title, inherit);
}

.oaka-hdo--upcoming p.oaka-hdo__title {
    margin-bottom: .4em;
}


/* ── Jours ─────────────────────────────────────────────────── */

.oaka-hdo ul.oaka-hdo__list,
.oaka-hdo ul.oaka-hdo__upcoming {
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: 1.5;
}

.oaka-hdo .oaka-hdo__row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0 1em;
    margin: 0;
    padding: calc(var(--hdo-row-spacing, 8px) / 2) var(--hdo-row-pad-x, 0px);
}

.oaka-hdo--sep-line .oaka-hdo__row + .oaka-hdo__row {
    border-top: 1px solid var(--hdo-sep, #e2e2e2);
}

.oaka-hdo--sep-dotted .oaka-hdo__row + .oaka-hdo__row {
    border-top: 1px dotted var(--hdo-sep, #e2e2e2);
}

.oaka-hdo .oaka-hdo__day {
    font-weight: 600;
}

.oaka-hdo .oaka-hdo__hours {
    text-align: right;
}

/* Le deux-points ne sert qu'au mode « en ligne ». */
.oaka-hdo .oaka-hdo__colon {
    display: none;
}

.oaka-hdo .oaka-hdo__note {
    font-size: .9em;
}

.oaka-hdo .oaka-hdo__row.is-closed .oaka-hdo__hours,
.oaka-hdo .oaka-hdo__row.is-exception-closed .oaka-hdo__hours {
    color: var(--hdo-closed, inherit);
}

/* Le jour courant : sa couleur l'emporte sur celle des jours fermés. */
.oaka-hdo--highlight .oaka-hdo__row.is-today,
.oaka-hdo--highlight .oaka-hdo__row.is-today .oaka-hdo__hours {
    color: var(--hdo-today, inherit);
}

.oaka-hdo--highlight .oaka-hdo__row.is-today {
    background: var(--hdo-today-bg, transparent);
}

.oaka-hdo--highlight.oaka-hdo--today-bold .oaka-hdo__row.is-today,
.oaka-hdo--highlight.oaka-hdo--today-bold .oaka-hdo__row.is-today .oaka-hdo__hours {
    font-weight: 700;
}


/* ── Mode « en ligne » : « Lundi : 9h - 12h » ──────────────── */

.oaka-hdo--layout-inline .oaka-hdo__row {
    display: block;
}

.oaka-hdo--layout-inline .oaka-hdo__colon {
    display: inline;
    margin-right: .3em;
}

.oaka-hdo--layout-inline .oaka-hdo__hours {
    text-align: left;
}


/* ── Badge « Ouvert / Fermé » ──────────────────────────────── */

.oaka-hdo .oaka-hdo__status {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2em .4em;
    font-size: .95em;
    line-height: 1.4;
}

.oaka-hdo .oaka-hdo__status-dot {
    display: inline-block;
    width: .6em;
    height: .6em;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
}

.oaka-hdo .oaka-hdo__status-label {
    font-weight: 700;
}

.oaka-hdo .oaka-hdo__status.is-open .oaka-hdo__status-dot,
.oaka-hdo .oaka-hdo__status.is-open .oaka-hdo__status-label {
    color: var(--hdo-open, #2e7d32);
}

.oaka-hdo .oaka-hdo__status.is-closing .oaka-hdo__status-dot,
.oaka-hdo .oaka-hdo__status.is-closing .oaka-hdo__status-label {
    color: var(--hdo-closing, #8a5300);
}

.oaka-hdo .oaka-hdo__status.is-closed .oaka-hdo__status-dot,
.oaka-hdo .oaka-hdo__status.is-closed .oaka-hdo__status-label {
    color: var(--hdo-closed-status, #C2461B);
}

.oaka-hdo .oaka-hdo__status-detail::before {
    content: "\00B7";
    margin-right: .4em;
}

.oaka-hdo .oaka-hdo__status-detail[hidden] {
    display: none;
}

/* Une pulsation discrète signale que l'état est vivant ; jamais pour qui a
   demandé à réduire les animations. */
@media (prefers-reduced-motion: no-preference) {
    .oaka-hdo .oaka-hdo__status.is-open .oaka-hdo__status-dot {
        animation: oaka-hdo-pulse 2.4s ease-in-out infinite;
    }
}

@keyframes oaka-hdo-pulse {
    0%, 100% { box-shadow: 0 0 0 0 transparent; }
    50%      { box-shadow: 0 0 0 .3em rgba(46, 125, 50, .18); }
}


/* ── Horaire du jour ───────────────────────────────────────── */

span.oaka-hdo.oaka-hdo--today {
    display: inline;
}

.oaka-hdo--today .oaka-hdo__today-label {
    font-weight: 600;
}

.oaka-hdo--today .oaka-hdo__status {
    margin-left: .4em;
}


/* ── Fermetures à venir ────────────────────────────────────── */

.oaka-hdo--week ul.oaka-hdo__upcoming {
    margin-top: .8em;
}

.oaka-hdo .oaka-hdo__upcoming-item {
    margin: 0 0 .25em;
    font-size: .95em;
}

.oaka-hdo .oaka-hdo__upcoming-period {
    font-weight: 600;
}


/* ── Note libre et état vide ───────────────────────────────── */

.oaka-hdo .oaka-hdo__footnote {
    margin-top: .8em;
    font-style: italic;
}

.oaka-hdo .oaka-hdo__footnote p {
    margin: 0 0 .4em;
    padding: 0;
}

.oaka-hdo .oaka-hdo__footnote p:last-child {
    margin-bottom: 0;
}

.oaka-hdo p.oaka-hdo__empty {
    margin: 0;
    padding: 0;
    font-style: italic;
}


/* ── Message réservé aux éditeurs ──────────────────────────── */

.oaka-hdo-notice {
    padding: .5em .75em;
    border: 1px dashed #757575;
    color: #1d2327;
    background: #fff;
    font-size: .9em;
}
