/* Structural defaults only. Divi may override the --olana-status-* variables. */
[data-olana-status-host] {
    display: contents;
}

.olana-status {
    box-sizing: border-box;
    max-inline-size: 100%;
    color: var(--olana-status-color, inherit);
    background: var(--olana-status-background, transparent);
    font: inherit;
    line-height: var(--olana-status-line-height, 1.55);
    overflow-wrap: anywhere;
}

.olana-status *,
.olana-status *::before,
.olana-status *::after {
    box-sizing: border-box;
}

.olana-status :where(h1, h2, h3, h4, h5, h6, p, address) {
    color: inherit;
    font-family: inherit;
    line-height: inherit;
    margin-block: 0;
    padding: 0;
}

.olana-status :where(h1, h2, h3, h4, h5, h6) {
    font-size: inherit;
    font-weight: var(--olana-status-heading-weight, 700);
}

.olana-status :where(h1, h2) {
    font-size: var(--olana-status-title-size, 1.25em);
}

.olana-status :where(a) {
    color: var(--olana-status-link-color, inherit);
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.olana-status :where(a):focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.olana-status--header {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--olana-status-header-gap, 0.3em 1em);
}

.olana-status--header .olana-status__details {
    margin-inline-start: auto;
}

/* The compact band is a single link; colour supplements its explicit wording. */
.olana-status--signal-green {
    --olana-band-tone: var(--olana-status-green, #236749);
    --olana-band-background: var(--olana-status-green-background, #edf6f1);
    --olana-band-text: var(--olana-status-green-text, #173b2d);
}

.olana-status--signal-bluegrey {
    --olana-band-tone: var(--olana-status-bluegrey, #526b7b);
    --olana-band-background: var(--olana-status-bluegrey-background, #f0f3f5);
    --olana-band-text: var(--olana-status-bluegrey-text, #293d49);
}

.olana-status--signal-orange {
    --olana-band-tone: var(--olana-status-orange, #9d5a12);
    --olana-band-background: var(--olana-status-orange-background, #fff5e5);
    --olana-band-text: var(--olana-status-orange-text, #5f370b);
}

.olana-status--signal-red {
    --olana-band-tone: var(--olana-status-red, #a34040);
    --olana-band-background: var(--olana-status-red-background, #fff0ef);
    --olana-band-text: var(--olana-status-red-text, #6b2525);
}

.olana-status--signal-unknown {
    --olana-band-tone: var(--olana-status-unknown, #63717b);
    --olana-band-background: var(--olana-status-unknown-background, #f3f4f5);
    --olana-band-text: var(--olana-status-unknown-text, #303c44);
}

.olana-status--band {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: var(--olana-status-band-gap, 0.7em);
    inline-size: 100%;
    padding: var(--olana-status-band-padding, 0.65em 1em);
    border-radius: var(--olana-status-band-radius, 3px);
    border: 1px solid transparent;
    color: var(--olana-band-text, #303c44);
    background: var(--olana-band-background, #f3f4f5);
    line-height: var(--olana-status-band-line-height, 1.4);
    font-size: var(--olana-status-band-font-size, 1em);
    text-decoration: none;
}

a.olana-status--band:hover {
    border-color: var(--olana-band-tone, currentColor);
    color: var(--olana-band-text, #303c44);
}

a.olana-status--band:focus-visible {
    outline: 3px solid var(--olana-band-tone, currentColor);
    outline-offset: 3px;
}

.olana-status__signal {
    display: block;
    inline-size: 0.55em;
    block-size: 0.55em;
    border-radius: 50%;
    background: var(--olana-band-tone, currentColor);
}

.olana-status__band-copy {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.15em 0.65em;
    min-inline-size: 0;
}

.olana-status__band-primary {
    min-inline-size: 0;
    max-inline-size: 100%;
    white-space: normal;
}

.olana-status__band-announcement {
    flex-basis: 100%;
}

.olana-status__band-details {
    white-space: nowrap;
    font-weight: 600;
}

.olana-status__opening-explanation {
    font-size: var(--olana-status-explanation-size, 0.925em);
}

@media (max-width: 30rem) {
    .olana-status--band {
        column-gap: 0.5em;
        padding: var(--olana-status-band-mobile-padding, 0.65em 0.75em);
    }

    /* Keep all status information; the whole band still names the Details link. */
    .olana-status__band-details > span:first-child {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

.olana-status--module,
.olana-status--page,
.olana-status--alert {
    padding: var(--olana-status-padding, 1.5em);
    border: var(--olana-status-border-width, 1px) solid var(--olana-status-border-color, currentColor);
    border-radius: var(--olana-status-radius, 3px);
}

.olana-status--alert {
    border-inline-start-width: var(--olana-status-alert-border-width, 0.3em);
}

.olana-status--closed .olana-status__state,
.olana-status--unavailable .olana-status__state {
    font-weight: 700;
}

.olana-status--module > * + *,
.olana-status--page > * + * {
    margin-block-start: var(--olana-status-section-gap, 1.5em);
}

.olana-status--alert > * + *,
.olana-status__heading > * + *,
.olana-status__notice > * + *,
.olana-status__representative > * + *,
.olana-status__footer > * + *,
.olana-status address > * + * {
    margin-block-start: var(--olana-status-copy-gap, 0.6em);
}

.olana-status__eyebrow,
.olana-status__field-label {
    font-weight: var(--olana-status-label-weight, 600);
}

.olana-status__notice + .olana-status__notice,
.olana-status__additional > .olana-status__notice,
.olana-status__upcoming > .olana-status__notice,
.olana-status__current > .olana-status__notice {
    margin-block-start: var(--olana-status-notice-gap, 1.25em);
}

.olana-status__additional,
.olana-status__upcoming,
.olana-status__footer {
    border-block-start: 1px solid var(--olana-status-border-color, currentColor);
    padding-block-start: var(--olana-status-section-gap, 1.5em);
}

.olana-status__representative {
    padding-inline-start: var(--olana-status-representative-inset, 1em);
    border-inline-start: 2px solid var(--olana-status-border-color, currentColor);
}

.olana-status address {
    font-style: normal;
}

.olana-status__required-notices > * + * {
    margin-block-start: var(--olana-status-copy-gap, 0.6em);
}

.olana-status .olana-status__representative-list {
    display: grid;
    gap: var(--olana-status-copy-gap, 0.6em);
    list-style: none;
    padding: 0;
    margin: var(--olana-status-copy-gap, 0.6em) 0 0;
}

.olana-status__representative-schedule {
    border-block-start: 1px solid var(--olana-status-border-color, currentColor);
    padding-block-start: var(--olana-status-copy-gap, 0.6em);
}

.olana-status__representative-schedule > * + * {
    margin-block-start: var(--olana-status-copy-gap, 0.6em);
}

.olana-status__representative-schedule > summary {
    font-weight: 600;
    cursor: pointer;
}

.olana-status__representative-schedule > summary:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.olana-status__details {
    display: inline-block;
}

.olana-status-live-announcement {
    position: absolute !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Full page only: the surrounding Divi section supplies its page title and width. */
.olana-status.olana-status-page.olana-status--page {
    --olana-page-cream: var(--olana-status-page-cream, #f7f2ea);
    --olana-page-ink: var(--olana-status-page-ink, #3c312b);
    --olana-page-petrol: var(--olana-status-page-petrol, #345b61);
    --olana-page-terracotta: var(--olana-status-page-terracotta, #a65b3d);
    --olana-page-border: rgba(60, 49, 43, 0.16);
    --olana-page-shadow: 0 0 4px rgba(60, 49, 43, 0.06), 0 0 24px -3px rgba(60, 49, 43, 0.14), inset 0 0 0 1px rgba(255, 255, 255, 0.28);
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--olana-page-ink) !important;
    background: transparent;
    font-family: var(--olana-status-page-font, "Marcellus", Georgia, serif) !important;
    line-height: 1.55 !important;
}

/* Divi text presets must not turn every nested heading into a page headline. */
.olana-status.olana-status-page.olana-status--page :where(h3, h4, h5, h6, p, address) {
    margin: 0 !important;
    padding: 0;
}

.olana-status.olana-status-page.olana-status--page > * + * {
    margin-top: clamp(1.6rem, 3vw, 2.3rem) !important;
}

.olana-status.olana-status-page.olana-status--page :is(h3, h4, h5, h6) {
    font-family: var(--olana-status-page-heading-font, "Marcellus SC", Georgia, serif) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    color: inherit !important;
    text-wrap: balance;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__status {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--olana-page-border);
    border-top: 3px solid var(--olana-band-tone);
    border-radius: 3px;
    box-shadow: var(--olana-page-shadow);
    background: var(--olana-band-background);
    color: var(--olana-band-text) !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__status > * + * {
    margin-top: 0.75rem !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__notice > * + *,
.olana-status.olana-status-page.olana-status--page .olana-status__representative > * + *,
.olana-status.olana-status-page.olana-status--page .olana-status__required-notices > * + *,
.olana-status.olana-status-page.olana-status--page .olana-status__representative-schedule > * + *,
.olana-status.olana-status-page.olana-status--page address > * + * {
    margin-top: 0.65rem !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__eyebrow {
    display: flex;
    align-items: center;
    gap: 0.65em;
    font-size: 0.78em !important;
    font-family: var(--olana-status-page-font, "Marcellus", Georgia, serif) !important;
    letter-spacing: 0.055em;
    line-height: 1.4 !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__eyebrow .olana-status__signal {
    flex: 0 0 0.55em;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__title {
    font-size: clamp(1.5rem, 2.6vw, 2.15rem) !important;
    line-height: 1.16 !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__access {
    font-size: 1.05em !important;
    line-height: 1.5 !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__freshness {
    margin-top: 1rem !important;
    font-size: 0.76em !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__group-title {
    margin-bottom: 1rem !important;
    color: var(--olana-page-petrol) !important;
    font-size: clamp(1.35rem, 2.2vw, 1.7rem) !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__events {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 25rem), 1fr));
    align-items: start;
    gap: 1.25rem;
}

.olana-status.olana-status-page.olana-status--page .olana-status__notice {
    min-width: 0;
    margin: 0 !important;
    padding: clamp(1.1rem, 2.8vw, 1.75rem);
    border: 1px solid var(--olana-page-border);
    border-radius: 3px;
    box-shadow: var(--olana-page-shadow);
    background: var(--olana-page-cream);
}

.olana-status.olana-status-page.olana-status--page .olana-status__headline {
    font-size: clamp(1.2rem, 1.9vw, 1.5rem) !important;
    color: var(--olana-page-ink) !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__timeframe {
    font-size: 0.84em !important;
    line-height: 1.55 !important;
    padding-bottom: 0.8rem;
    margin-bottom: 0.9rem !important;
    border-bottom: 1px solid var(--olana-page-border);
}

.olana-status.olana-status-page.olana-status--page .olana-status__required-notices {
    margin-top: 1.1rem !important;
    padding: 0.85rem 1rem;
    border-left: 2px solid var(--olana-page-terracotta);
    background: rgba(255, 255, 255, 0.4);
    font-size: 0.92em !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representatives,
.olana-status.olana-status-page.olana-status--page .olana-status__representative {
    margin-top: 1.1rem !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representatives > h5,
.olana-status.olana-status-page.olana-status--page .olana-status__representative > h5 {
    font-size: 1.08em !important;
    color: var(--olana-page-petrol) !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-list {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: 1rem;
    margin-top: 0.8rem !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-list > li {
    min-width: 0;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-list .olana-status__representative {
    margin-top: 0 !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative {
    border-color: var(--olana-page-petrol);
    padding-left: 0.9rem;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-name {
    color: var(--olana-page-petrol) !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-scope,
.olana-status.olana-status-page.olana-status--page .olana-status__representative-timeframe,
.olana-status.olana-status-page.olana-status--page .olana-status__representative-note {
    font-size: 0.9em !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-note {
    padding-top: 0.65rem; padding-bottom: 0.65rem;
    border-top: 1px solid var(--olana-page-border);
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-schedule {
    margin-top: 1.2rem !important;
    border-color: var(--olana-page-border);
}

.olana-status.olana-status-page.olana-status--page .olana-status__representative-schedule > summary {
    padding-top: 0.6rem; padding-bottom: 0.6rem;
    color: var(--olana-page-petrol) !important;
    font-weight: 400 !important;
    min-height: 44px;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__footer {
    border-top: 1px solid var(--olana-page-border);
    padding-top: 1rem;
    font-size: 0.83em !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__footer > * + * {
    margin-top: 0.75rem !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours {
    padding: clamp(1.1rem, 2.8vw, 1.75rem);
    border: 1px solid var(--olana-page-border);
    border-radius: 3px;
    box-shadow: var(--olana-page-shadow);
    background: var(--olana-page-cream);
    color: var(--olana-page-ink) !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-note {
    font-size: 0.9em !important;
    line-height: 1.55 !important;
    margin-bottom: 1rem !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-list {
    margin: 0 !important;
    padding: 0;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-row {
    display: grid;
    grid-template-columns: minmax(7rem, 0.65fr) minmax(0, 1.35fr);
    gap: 0.4rem 1rem;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
    border-top: 1px solid var(--olana-page-border);
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-day,
.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-periods {
    min-width: 0;
    margin: 0 !important;
    padding: 0;
    line-height: 1.55 !important;
    font-size: 1em !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-day {
    grid-column: 1;
    color: var(--olana-page-petrol) !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-periods {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 1.25rem;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours-row > p:empty {
    display: none !important;
}

.olana-status.olana-status-page.olana-status--page .olana-status-page__hours > .olana-status__opening-explanation {
    margin-top: 1rem !important;
    font-size: 0.83em !important;
    line-height: 1.55 !important;
}

.olana-status.olana-status-page.olana-status--page :where(a) {
    color: var(--olana-page-petrol) !important;
    text-decoration-thickness: 1px;
}

.olana-status.olana-status-page.olana-status--page :where(a):hover {
    text-decoration-thickness: 2px;
}

.olana-status.olana-status-page.olana-status--page :where(a, summary):focus-visible {
    outline: 2px solid var(--olana-page-petrol);
    outline-offset: 4px;
}

@media (max-width: 40rem) {
    .olana-status.olana-status-page.olana-status--page .olana-status__representative-list { grid-template-columns: minmax(0, 1fr); }
    .olana-status.olana-status-page.olana-status--page .olana-status-page__events { grid-template-columns: minmax(0, 1fr); }
    .olana-status.olana-status-page.olana-status--page .olana-status__notice { padding: 1.1rem; }
    .olana-status.olana-status-page.olana-status--page .olana-status-page__status { padding: 1.2rem; }
    .olana-status.olana-status-page.olana-status--page .olana-status__required-notices { padding-left: 0.75rem; padding-right: 0.75rem; }
}

@media (max-width: 30rem) {
    .olana-status.olana-status-page.olana-status--page .olana-status-page__hours-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.2rem;
    }
    .olana-status.olana-status-page.olana-status--page .olana-status-page__hours-periods {
        grid-column: 1;
    }
}
