/* ============================================================
   maintenance-bar.css — "the site is closed" strip (#278)
   ============================================================
   Only ever rendered for staff, and only while the maintenance flip is on
   (site_globals.maintenance_banner). Nobody else can see a page at all in
   that state, so this is the *only* thing telling the person browsing that
   what they are looking at, the public cannot.

   Pinned to the bottom rather than joined to the navbar on purpose: the
   promo bar lives inside the fixed navbar and pays for itself by bumping
   --navbar-h, which every page's clearance calc reads. A status strip that
   is up for ten minutes should not be rewriting the layout of every page to
   get there.
   ============================================================ */
.dd-maintenance-bar {
    position: fixed;
    inset: auto 0 0 0;
    z-index: var(--z-toast);
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: var(--space-2) var(--space-4);
    padding: var(--space-3) var(--space-5);
    background: var(--danger);
    color: var(--text-on-danger);
    font-size: var(--fs-small);
    line-height: var(--lh-body);
    text-align: center;
    box-shadow: var(--shadow-md);
}

.dd-maintenance-bar__label {
    font-weight: 600;
    letter-spacing: 0.02em;
}

.dd-maintenance-bar__link {
    color: var(--text-on-danger);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.dd-maintenance-bar__link:hover,
.dd-maintenance-bar__link:focus-visible {
    text-decoration-thickness: 2px;
}

/* The WhatsApp bubble sits 32px off the bottom, which is inside the strip.
   It renders *before* the strip in the document, so a sibling selector cannot
   reach it — :has() on the body is what lifts it clear for as long as the
   strip is up. */
body:has(.dd-maintenance-bar) .whatsapp-float {
    bottom: calc(var(--space-7) + 3rem);
}
