/* FireRescue Australian Emergency Warnings — colourful, darker lightweight emergency design */
.fr-aew,
.fr-aew * {
    box-sizing: border-box;
}

.fr-aew {
    --fr-aew-red: #c81d25;
    --fr-aew-red-dark: #7f1018;
    --fr-aew-orange: #ef5b1a;
    --fr-aew-amber: #f4b400;
    --fr-aew-gold: #f7c948;
    --fr-aew-teal: #087f8c;
    --fr-aew-blue: #1557b0;
    --fr-aew-purple: #6f2dbd;
    --fr-aew-ink: #1d2630;
    --fr-aew-muted: #5e6874;
    --fr-aew-line: #e7e9ed;
    --fr-aew-white: #ffffff;
    color: var(--fr-aew-ink);
    font-family: inherit;
}

.fr-aew .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 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;
}

/* Automatic output stays hidden until the placement script moves it. */
.fr-aew-home-stage[data-fr-aew-home-auto="1"]:not(.fr-aew-home-ready) {
    display: none !important;
}

.fr-aew-header-attached,
.fr-aew-home-stage.fr-aew-attached-to-header {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Homepage warning panel */
.fr-aew-home-stage {
    position: relative;
    left: 50%;
    z-index: 1;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 30px -50vw;
    padding: 30px 0 25px;
    border-top: 0;
    border-bottom: 1px solid #c9c4cc;
    background:
        radial-gradient(circle at 8% 10%, rgba(200, 29, 37, 0.22), transparent 27%),
        radial-gradient(circle at 29% 3%, rgba(244, 180, 0, 0.23), transparent 27%),
        radial-gradient(circle at 66% 8%, rgba(8, 127, 140, 0.19), transparent 28%),
        radial-gradient(circle at 92% 13%, rgba(111, 45, 189, 0.18), transparent 28%),
        radial-gradient(ellipse at 12% 74%, rgba(255, 255, 255, 0.24), rgba(255,255,255,0) 56%),
        radial-gradient(ellipse at 38% 69%, rgba(255, 255, 255, 0.19), rgba(255,255,255,0) 58%),
        radial-gradient(ellipse at 70% 76%, rgba(255, 255, 255, 0.18), rgba(255,255,255,0) 55%),
        radial-gradient(ellipse at 88% 71%, rgba(255, 255, 255, 0.16), rgba(255,255,255,0) 54%),
        linear-gradient(135deg, #ead8d7 0%, #e5dfd2 32%, #dce6e7 67%, #e1dbea 100%);
    box-shadow: inset 0 -1px 0 rgba(126, 125, 132, 0.14);
    clear: both;
    overflow: visible;
}

.fr-aew-home-stage::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 6px;
    content: "";
    background: linear-gradient(
        90deg,
        #c81d25 0%,
        #ef5b1a 14%,
        #f4b400 29%,
        #2a9d8f 45%,
        #1557b0 62%,
        #6f2dbd 79%,
        #d946ef 100%
    );
}

.fr-aew-home-stage::after {
    position: absolute;
    z-index: 0;
    top: 6px;
    right: 0;
    left: 0;
    bottom: -38px;
    content: "";
    pointer-events: none;
    background:
        radial-gradient(ellipse 180px 74px at 8% 27%, rgba(88, 96, 106, 0.34) 0%, rgba(111, 119, 128, 0.22) 42%, transparent 72%),
        radial-gradient(ellipse 230px 92px at 23% 37%, rgba(102, 110, 118, 0.30) 0%, rgba(124, 132, 140, 0.19) 44%, transparent 74%),
        radial-gradient(ellipse 200px 82px at 45% 22%, rgba(95, 103, 112, 0.28) 0%, rgba(122, 130, 138, 0.16) 43%, transparent 72%),
        radial-gradient(ellipse 245px 98px at 64% 39%, rgba(94, 102, 111, 0.27) 0%, rgba(120, 128, 137, 0.16) 45%, transparent 74%),
        radial-gradient(ellipse 190px 78px at 84% 24%, rgba(86, 94, 104, 0.31) 0%, rgba(118, 126, 135, 0.18) 44%, transparent 72%),
        radial-gradient(ellipse 260px 105px at 92% 52%, rgba(95, 103, 112, 0.23) 0%, rgba(126, 134, 142, 0.14) 46%, transparent 76%),
        linear-gradient(to bottom, transparent 0%, transparent 78%, rgba(30, 38, 48, 0.15) 88%, rgba(30, 38, 48, 0.08) 94%, transparent 100%);
    filter: blur(2px);
    opacity: 0.9;
}

.fr-aew-home-stage .fr-aew-shadow-fade {
    display: none;
}

.fr-aew-home-inner {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 40px), 1480px);
    margin: 0 auto;
}

.fr-aew-home-inner::after {
    position: absolute;
    z-index: -1;
    right: calc(50% - 50vw);
    bottom: -47px;
    left: calc(50% - 50vw);
    height: 48px;
    content: "";
    pointer-events: none;
    background: linear-gradient(
        to bottom,
        rgba(32, 40, 50, 0.18) 0%,
        rgba(32, 40, 50, 0.10) 24%,
        rgba(32, 40, 50, 0.045) 54%,
        rgba(32, 40, 50, 0.015) 76%,
        transparent 100%
    );
    filter: blur(5px);
}

.fr-aew-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 21px;
}

.fr-aew-heading-icon {
    display: grid;
    place-items: center;
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 14px;
    color: var(--fr-aew-white);
    background: linear-gradient(145deg, #c81d25 0%, #ef5b1a 54%, #f4b400 100%);
    box-shadow: 0 8px 20px rgba(200, 29, 37, 0.20);
}

.fr-aew-alert-svg {
    display: block;
    width: 25px;
    height: 25px;
}

.fr-aew-heading-copy {
    min-width: 0;
}

.fr-aew-heading h2 {
    margin: 0 0 4px !important;
    padding: 0 !important;
    color: var(--fr-aew-ink) !important;
    font-size: clamp(1.6rem, 2.4vw, 2.25rem) !important;
    font-weight: 850 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.03em !important;
    text-align: left !important;
    text-transform: none !important;
}

.fr-aew-heading p {
    margin: 0 !important;
    color: var(--fr-aew-muted) !important;
    font-size: 0.98rem !important;
    line-height: 1.45 !important;
    text-align: left !important;
}

.fr-aew-links-nav,
.fr-aew-grid {
    width: 100%;
    margin: 0;
    padding: 0;
}

.fr-aew-grid {
    display: grid !important;
    grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
    gap: 10px !important;
    list-style: none !important;
}

/* Each location has a distinct, accessible colour identity. */
.fr-aew-card {
    --fr-card-accent: #c81d25;
    --fr-card-accent-2: #ef5b1a;
    --fr-card-dark: #7f1018;
    --fr-card-tint: #fff0f1;
    position: relative;
    display: flex !important;
    min-width: 0;
    min-height: 166px;
    flex-direction: column !important;
    justify-content: space-between;
    margin: 0 !important;
    padding: 15px 13px 13px !important;
    border: 1px solid rgba(26, 38, 52, 0.10) !important;
    border-top: 4px solid var(--fr-card-accent) !important;
    border-radius: 14px !important;
    background: linear-gradient(180deg, var(--fr-card-tint) 0%, #ffffff 46%) !important;
    box-shadow: 0 5px 16px rgba(31, 42, 55, 0.07) !important;
    list-style: none !important;
    overflow: hidden;
    isolation: isolate;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.fr-aew-card::before {
    position: absolute;
    z-index: -1;
    top: -46px;
    right: -48px;
    width: 112px;
    height: 112px;
    border-radius: 50%;
    content: "";
    background: radial-gradient(circle, color-mix(in srgb, var(--fr-card-accent-2) 25%, transparent), transparent 70%);
    pointer-events: none;
}

.fr-aew-card::after {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    content: "";
    background: linear-gradient(90deg, var(--fr-card-accent), var(--fr-card-accent-2));
}

.fr-aew-card-vic {
    --fr-card-accent: #b5121b;
    --fr-card-accent-2: #ff5a5f;
    --fr-card-dark: #7d0d14;
    --fr-card-tint: #fff0f2;
}

.fr-aew-card-nsw {
    --fr-card-accent: #e65100;
    --fr-card-accent-2: #ffb300;
    --fr-card-dark: #963500;
    --fr-card-tint: #fff5e6;
}

.fr-aew-card-qld {
    --fr-card-accent: #7a1632;
    --fr-card-accent-2: #e94f64;
    --fr-card-dark: #4f0f22;
    --fr-card-tint: #fff0f4;
}

.fr-aew-card-sa {
    --fr-card-accent: #6f2dbd;
    --fr-card-accent-2: #d946ef;
    --fr-card-dark: #481b7e;
    --fr-card-tint: #f8f0ff;
}

.fr-aew-card-wa {
    --fr-card-accent: #bd7200;
    --fr-card-accent-2: #f7c948;
    --fr-card-dark: #794700;
    --fr-card-tint: #fff9e8;
}

.fr-aew-card-tas {
    --fr-card-accent: #087f8c;
    --fr-card-accent-2: #2a9d8f;
    --fr-card-dark: #05525a;
    --fr-card-tint: #eafafa;
}

.fr-aew-card-nt {
    --fr-card-accent: #c2410c;
    --fr-card-accent-2: #ef4444;
    --fr-card-dark: #7c2d0c;
    --fr-card-tint: #fff1e8;
}

.fr-aew-card-act {
    --fr-card-accent: #1557b0;
    --fr-card-accent-2: #06b6d4;
    --fr-card-dark: #0e3a75;
    --fr-card-tint: #edf7ff;
}

.fr-aew-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--fr-card-accent) 38%, #ffffff) !important;
    box-shadow: 0 11px 24px rgba(31, 42, 55, 0.12) !important;
}

.fr-aew-card-top {
    min-width: 0;
}

.fr-aew-state-badge {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin: 0 0 10px;
    border: 1px solid color-mix(in srgb, var(--fr-card-accent) 26%, #ffffff);
    border-radius: 12px;
    color: var(--fr-card-accent);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 4px 10px color-mix(in srgb, var(--fr-card-accent) 12%, transparent);
}

.fr-aew-state-svg {
    display: block;
    width: 39px;
    height: 39px;
    color: currentColor;
}

.fr-aew-state-map {
    opacity: 0.32;
}

.fr-aew-state-flame {
    opacity: 1;
}

.fr-aew-state-code {
    fill: currentColor;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.3px;
}

.fr-aew-state-copy {
    min-width: 0;
}

.fr-aew-card h3 {
    min-height: 2.4em;
    margin: 0 0 4px !important;
    padding: 0 !important;
    color: var(--fr-aew-ink) !important;
    font-size: 0.9rem !important;
    font-weight: 820 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.012em !important;
    text-align: left !important;
    text-transform: none !important;
}

.fr-aew-card p.fr-aew-summary {
    min-height: 3.65em;
    margin: 0 !important;
    color: var(--fr-aew-muted) !important;
    font-size: 0.74rem !important;
    line-height: 1.3 !important;
    text-align: left !important;
}

.fr-aew-card-actions {
    display: block;
    margin-top: 12px;
}

.fr-aew-primary-link {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    min-height: 38px;
    margin: 0 !important;
    padding: 8px 8px !important;
    border: 1px solid var(--fr-card-accent) !important;
    border-radius: 9px !important;
    color: var(--fr-aew-white) !important;
    background: linear-gradient(135deg, var(--fr-card-accent), var(--fr-card-accent-2)) !important;
    box-shadow: 0 4px 10px color-mix(in srgb, var(--fr-card-accent) 23%, transparent) !important;
    font-size: 0.73rem !important;
    font-weight: 780 !important;
    line-height: 1.18 !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: transform 150ms ease, filter 150ms ease, box-shadow 150ms ease;
}

.fr-aew-primary-link:hover {
    color: var(--fr-aew-white) !important;
    border-color: var(--fr-card-dark) !important;
    filter: saturate(1.08) brightness(0.93);
    transform: translateY(-1px);
    box-shadow: 0 6px 14px color-mix(in srgb, var(--fr-card-accent) 29%, transparent) !important;
}

.fr-aew-primary-link:focus-visible,
.fr-aew-secondary-link:focus-visible,
.fr-aew-footer-links a:focus-visible {
    outline: 3px solid #ffca28;
    outline-offset: 3px;
}

.fr-aew-link-icon,
.fr-aew-link-icon svg {
    display: block;
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
}

.fr-aew-secondary-link {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    color: var(--fr-card-dark) !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0.72rem !important;
    font-weight: 720 !important;
    line-height: 1.3 !important;
    text-decoration: none !important;
}

.fr-aew-secondary-link:hover {
    color: var(--fr-card-accent) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.fr-aew-document-icon,
.fr-aew-document-icon svg {
    display: block;
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
}

.fr-aew-notice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 17px 0 0;
    padding: 10px 14px;
    border: 1px solid #eadfda;
    border-radius: 11px;
    background: linear-gradient(90deg, #fff7f3 0%, #fffaf0 48%, #f2fbfb 100%);
    box-shadow: 0 3px 12px rgba(31, 42, 55, 0.04);
}

.fr-aew-notice-icon {
    flex: 0 0 23px;
    width: 23px;
    color: var(--fr-aew-orange);
}

.fr-aew-notice-icon svg {
    display: block;
    width: 22px;
    height: 26px;
}

.fr-aew-notice p {
    margin: 0 !important;
    color: #46515c !important;
    font-size: 0.83rem !important;
    line-height: 1.4 !important;
}

.fr-aew-000 {
    color: var(--fr-aew-red-dark);
    font-weight: 900;
}

/* Homepage title relocated immediately above the posts. */
.fr-aew-relocated-page-title {
    display: block;
    width: 100%;
    margin: 24px 0 14px;
    padding: 0;
    clear: both;
}

.fr-aew-relocated-page-title > h1,
.fr-aew-relocated-page-title > .page-title,
.fr-aew-relocated-page-title > .entry-title,
.fr-aew-relocated-page-title > .wp-block-post-title {
    margin: 0 !important;
}

.fr-aew-empty-title-shell {
    display: none !important;
}

/* Colourful compact footer panel */
.fr-aew-footer-wrap {
    width: min(calc(100% - 32px), 1320px);
    margin: 28px auto;
    border: 1px solid #e4e6eb;
    border-radius: 14px;
    background: var(--fr-aew-white);
    box-shadow: 0 7px 20px rgba(31, 42, 55, 0.08);
    overflow: hidden;
}

.fr-aew-footer-inner {
    display: grid;
    grid-template-columns: auto 1fr minmax(245px, 340px);
    align-items: stretch;
}

.fr-aew-footer-title {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 76px;
    padding: 15px 21px;
    color: var(--fr-aew-white);
    background: linear-gradient(135deg, #a90f19 0%, #e64a19 52%, #f4b400 100%);
    white-space: nowrap;
}

.fr-aew-footer-title strong {
    font-size: 0.99rem;
}

.fr-aew-footer-flame {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.82);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.12);
}

.fr-aew-footer-flame svg {
    width: 18px;
    height: 22px;
}

.fr-aew-footer-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 14px 16px;
    background:
        linear-gradient(90deg, rgba(200, 29, 37, 0.025), rgba(21, 87, 176, 0.035)),
        #ffffff;
    flex-wrap: wrap;
}

.fr-aew-footer-links a {
    --fr-footer-accent: #c81d25;
    --fr-footer-tint: #fff0f1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 49px;
    min-height: 35px;
    padding: 6px 10px;
    border: 1px solid color-mix(in srgb, var(--fr-footer-accent) 32%, #ffffff);
    border-radius: 9px;
    color: var(--fr-footer-accent) !important;
    background: var(--fr-footer-tint);
    font-size: 0.8rem;
    font-weight: 850;
    text-decoration: none !important;
    transition: color 150ms ease, background 150ms ease, border-color 150ms ease, transform 150ms ease;
}

.fr-aew-footer-link-vic { --fr-footer-accent: #b5121b !important; --fr-footer-tint: #fff0f2 !important; }
.fr-aew-footer-link-nsw { --fr-footer-accent: #d94c00 !important; --fr-footer-tint: #fff5e6 !important; }
.fr-aew-footer-link-qld { --fr-footer-accent: #7a1632 !important; --fr-footer-tint: #fff0f4 !important; }
.fr-aew-footer-link-sa  { --fr-footer-accent: #6f2dbd !important; --fr-footer-tint: #f8f0ff !important; }
.fr-aew-footer-link-wa  { --fr-footer-accent: #9a5c00 !important; --fr-footer-tint: #fff9e8 !important; }
.fr-aew-footer-link-tas { --fr-footer-accent: #087f8c !important; --fr-footer-tint: #eafafa !important; }
.fr-aew-footer-link-nt  { --fr-footer-accent: #b63a0c !important; --fr-footer-tint: #fff1e8 !important; }
.fr-aew-footer-link-act { --fr-footer-accent: #1557b0 !important; --fr-footer-tint: #edf7ff !important; }

.fr-aew-footer-links a:hover {
    color: var(--fr-aew-white) !important;
    border-color: var(--fr-footer-accent);
    background: var(--fr-footer-accent);
    transform: translateY(-1px);
}

.fr-aew-footer-note {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-left: 1px solid #e6e8ec;
    background: linear-gradient(135deg, #fff9f3 0%, #f1fafa 100%);
}

.fr-aew-footer-note > span {
    flex: 0 0 27px;
    width: 27px;
    color: var(--fr-aew-orange);
}

.fr-aew-footer-note svg {
    display: block;
    width: 25px;
    height: 30px;
}

.fr-aew-footer-note p {
    margin: 0;
    color: #46515c;
    font-size: 0.8rem;
    line-height: 1.4;
}

@media (max-width: 1280px) {
    .fr-aew-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .fr-aew-card {
        min-height: 154px;
    }
}

@media (max-width: 900px) {
    .fr-aew-footer-inner {
        grid-template-columns: auto 1fr;
    }

    .fr-aew-footer-note {
        grid-column: 1 / -1;
        justify-content: center;
        border-top: 1px solid #e6e8ec;
        border-left: 0;
        text-align: center;
    }
}

@media (max-width: 720px) {
    .fr-aew-home-stage {
        margin-bottom: 24px;
        padding: 25px 0 22px;
    }

    .fr-aew-home-inner,
    .fr-aew-footer-wrap {
        width: min(calc(100% - 22px), 1320px);
    }

    .fr-aew-heading {
        align-items: flex-start;
        gap: 11px;
        margin-bottom: 17px;
    }

    .fr-aew-heading-icon {
        flex-basis: 43px;
        width: 43px;
        height: 43px;
        border-radius: 12px;
    }

    .fr-aew-heading h2 {
        font-size: clamp(1.42rem, 7vw, 1.9rem) !important;
    }

    .fr-aew-heading p {
        font-size: 0.89rem !important;
    }

    .fr-aew-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .fr-aew-card {
        min-height: 154px;
    }

    .fr-aew-footer-inner {
        display: block;
    }

    .fr-aew-footer-title {
        min-height: 64px;
        justify-content: center;
    }

    .fr-aew-footer-note {
        border-top: 1px solid #e6e8ec;
    }
}

@media (max-width: 420px) {
    .fr-aew-grid {
        grid-template-columns: 1fr !important;
    }

    .fr-aew-card {
        min-height: 0;
    }

    .fr-aew-card-top {
        display: grid;
        grid-template-columns: 44px 1fr;
        gap: 11px;
        align-items: start;
    }

    .fr-aew-state-badge {
        margin-bottom: 0;
    }

    .fr-aew-card h3,
    .fr-aew-card p.fr-aew-summary {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fr-aew-card,
    .fr-aew-primary-link,
    .fr-aew-footer-links a {
        transition: none;
    }

    .fr-aew-card:hover,
    .fr-aew-primary-link:hover,
    .fr-aew-footer-links a:hover {
        transform: none;
    }
}
