/* ==========================================================
   GLEN ROCK HOSE & LADDER COMPANY
   Station 59
   Joomla 6 / Cassiopeia
   user.css - Version 15
   ========================================================== */


/* ==========================================================
   DESIGN VARIABLES
   ========================================================== */

:root {
    --grfd-navy: #17284a;
    --grfd-navy-dark: #101c35;
    --grfd-blue: #243c6a;

    --grfd-red: #b52127;
    --grfd-red-dark: #8e171c;

    --grfd-gold: #c99a45;

    --grfd-cream: #f5f3ee;
    --grfd-light: #f3f5f7;
    --grfd-border: #d9dde3;

    --grfd-text: #252a30;
    --grfd-muted: #606873;

    --grfd-white: #ffffff;

    --grfd-container: 1240px;
    --grfd-radius: 4px;
}


/* ==========================================================
   GLOBAL
   ========================================================== */

body {
    color: var(--grfd-text);
    background: var(--grfd-white);
    font-size: 1rem;
    line-height: 1.65;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--grfd-navy-dark);
    font-weight: 700;
    line-height: 1.15;
}

h1 {
    font-size: clamp(2.7rem, 5vw, 5.2rem);
}

h2 {
    font-size: clamp(2rem, 3.2vw, 3.25rem);
}

h3 {
    font-size: 1.35rem;
}

a {
    color: var(--grfd-blue);
}

a:hover,
a:focus {
    color: var(--grfd-red);
}

.grfd-container {
    width: min(100% - 40px, var(--grfd-container));
    margin-inline: auto;
}

.grfd-eyebrow {
    margin: 0 0 10px;
    color: var(--grfd-red);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.3;
    text-transform: uppercase;
}


/* ==========================================================
   CASSIOPEIA PAGE AREA
   ========================================================== */

.site-grid {
    grid-gap: 0;
}

main {
    margin-top: 0;
}

.com-content-article,
.item-page {
    margin: 0;
}

.com-content-article > * {
    max-width: none;
}


/* ==========================================================
   SITE HEADER
   ========================================================== */

.container-header {
    background: var(--grfd-navy);
    background-image: none;
    box-shadow: 0 2px 8px rgb(0 0 0 / 18%);
}

.container-header .container-nav {
    padding-top: 0;
    padding-bottom: 0;
}

.container-header .navbar-brand {
    color: var(--grfd-white);
}

.container-header .mod-menu {
    gap: 4px;
}

.container-header .mod-menu > li > a {
    position: relative;
    padding: 18px 16px;
    color: rgb(255 255 255 / 92%);
    font-weight: 600;
    text-decoration: none;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li.active > a {
    color: var(--grfd-white);
}

.container-header .mod-menu > li > a::after {
    position: absolute;
    right: 16px;
    bottom: 11px;
    left: 16px;
    height: 2px;
    background: var(--grfd-red);
    content: "";
    opacity: 0;
    transform: scaleX(.4);
    transition:
        opacity .2s ease,
        transform .2s ease;
}

.container-header .mod-menu > li > a:hover::after,
.container-header .mod-menu > li.active > a::after {
    opacity: 1;
    transform: scaleX(1);
}


/* ==========================================================
   HERO
   ========================================================== */

.grfd-hero {
    position: relative;
    display: flex;
    min-height: 650px;
    align-items: center;
    overflow: hidden;

    background:
        linear-gradient(
            90deg,
            rgb(7 18 38 / 92%) 0%,
            rgb(7 18 38 / 80%) 28%,
            rgb(7 18 38 / 48%) 52%,
            rgb(7 18 38 / 14%) 76%,
            rgb(7 18 38 / 4%) 100%
        ),
        url("/images/headers/sta59-home.webp") center center / cover no-repeat;
}

.grfd-hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            0deg,
            rgb(5 12 25 / 48%) 0%,
            transparent 42%
        );

    pointer-events: none;
}

.grfd-hero-content {
    position: relative;
    z-index: 2;

    width: min(100% - 60px, var(--grfd-container));
    margin-inline: auto;
    padding: 70px 0 78px;

    color: var(--grfd-white);
}


/* ==========================================================
   HERO IDENTITY
   ========================================================== */

.grfd-hero-identity {
    display: flex;
    max-width: 790px;
    gap: 26px;
    align-items: center;
}

.grfd-hero-patch {
    display: block;
    width: 132px;
    height: 132px;
    flex: 0 0 132px;

    padding: 8px;

    object-fit: contain;

    border: 1px solid rgb(255 255 255 / 18%);
    border-radius: 6px;

    background: rgb(8 20 42 / 74%);

    box-shadow:
        0 10px 30px rgb(0 0 0 / 24%),
        inset 0 0 0 1px rgb(255 255 255 / 5%);
}

.grfd-hero-title {
    min-width: 0;
}

.grfd-hero h1 {
    max-width: 650px;
    margin: 0;

    color: var(--grfd-white);

    font-size: clamp(2.75rem, 4.6vw, 4.8rem);
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: 1.03;

    text-shadow: 0 3px 18px rgb(0 0 0 / 30%);
}

.grfd-hero-station {
    display: inline-block;

    margin: 18px 0 0;
    padding: 5px 0 5px 12px;

    border-left: 4px solid var(--grfd-red);

    color: var(--grfd-white);

    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: .15em;
    line-height: 1;

    text-transform: uppercase;
}


/* ==========================================================
   HERO SLOGAN
   ========================================================== */

.grfd-hero-slogan {
    position: relative;

    display: inline-block;

    margin: 28px 0 0;
    padding: 0 0 9px;

    color: #f1c56e;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.45rem, 2.1vw, 2rem);
    font-style: italic;
    font-weight: 600;
    letter-spacing: .015em;
    line-height: 1.2;

    text-shadow: 0 2px 8px rgb(0 0 0 / 40%);
}

.grfd-hero-slogan::after {
    position: absolute;
    bottom: 0;
    left: 0;

    width: 72px;
    height: 2px;

    background: var(--grfd-red);

    content: "";
}

.grfd-hero-tagline {
    max-width: 620px;

    margin: 17px 0 0;

    color: rgb(255 255 255 / 90%);

    font-size: 1.05rem;
}

.grfd-hero-actions {
    display: flex;
    flex-wrap: wrap;

    gap: 12px;

    margin-top: 28px;
}


/* ==========================================================
   BUTTONS
   ========================================================== */

.grfd-btn {
    display: inline-flex;

    min-height: 48px;

    align-items: center;
    justify-content: center;

    padding: 12px 22px;

    border: 2px solid transparent;
    border-radius: var(--grfd-radius);

    font-size: .92rem;
    font-weight: 750;
    line-height: 1.2;

    text-decoration: none;

    transition:
        background-color .2s ease,
        border-color .2s ease,
        color .2s ease,
        transform .2s ease;
}

.grfd-btn:hover {
    transform: translateY(-1px);
    text-decoration: none;
}

.grfd-btn-primary {
    border-color: var(--grfd-red);
    color: var(--grfd-white);
    background: var(--grfd-red);
}

.grfd-btn-primary:hover,
.grfd-btn-primary:focus {
    border-color: var(--grfd-red-dark);
    color: var(--grfd-white);
    background: var(--grfd-red-dark);
}

.grfd-btn-outline {
    border-color: rgb(255 255 255 / 70%);
    color: var(--grfd-white);
    background: rgb(255 255 255 / 5%);
}

.grfd-btn-outline:hover,
.grfd-btn-outline:focus {
    border-color: var(--grfd-white);
    color: var(--grfd-navy-dark);
    background: var(--grfd-white);
}

.grfd-btn-dark {
    border-color: var(--grfd-navy);
    color: var(--grfd-white);
    background: var(--grfd-navy);
}

.grfd-btn-dark:hover,
.grfd-btn-dark:focus {
    border-color: var(--grfd-red);
    color: var(--grfd-white);
    background: var(--grfd-red);
}

.grfd-btn-light {
    border-color: var(--grfd-white);
    color: var(--grfd-navy-dark);
    background: var(--grfd-white);
}

.grfd-btn-light:hover,
.grfd-btn-light:focus {
    border-color: var(--grfd-gold);
    color: var(--grfd-navy-dark);
    background: var(--grfd-gold);
}

.grfd-btn-outline-light {
    border-color: rgb(255 255 255 / 70%);
    color: var(--grfd-white);
}

.grfd-btn-outline-light:hover,
.grfd-btn-outline-light:focus {
    border-color: var(--grfd-white);
    color: var(--grfd-navy-dark);
    background: var(--grfd-white);
}

.grfd-btn-outline-dark {
    border-color: var(--grfd-navy);
    color: var(--grfd-navy);
}

.grfd-btn-outline-dark:hover,
.grfd-btn-outline-dark:focus {
    color: var(--grfd-white);
    background: var(--grfd-navy);
}

.grfd-text-link {
    display: inline-block;

    color: var(--grfd-navy);

    font-weight: 700;

    text-decoration: none;
}

.grfd-text-link:hover {
    color: var(--grfd-red);
}


/* ==========================================================
   CURRENT FIRE CONDITIONS
   ========================================================== */

.grfd-status-strip {
    position: relative;
    z-index: 5;
    margin: 0;
    padding: 0;
    background: var(--grfd-navy-dark);
    box-shadow: 0 5px 18px rgb(0 0 0 / 14%);
}

.grfd-status-strip .grfd-container {
    width: min(100% - 40px, var(--grfd-container));
    max-width: var(--grfd-container);
    margin-inline: auto;
    padding: 0;
}

.grfd-status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
}

.grfd-status-item {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 130px;
    margin: 0;
    padding: 28px 32px;
    border: 0;
    border-top: 3px solid var(--grfd-red);
    border-right: 1px solid rgb(255 255 255 / 12%);
    color: var(--grfd-white);
    background: var(--grfd-navy-dark);
    box-sizing: border-box;
    text-decoration: none;
}

.grfd-status-item:last-child { border-right: 0; }

.grfd-status-label {
    display: block;
    margin: 0 0 9px;
    color: #aebbd1;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.grfd-status-title,
.grfd-status-item strong {
    display: block;
    margin: 0 0 8px;
    color: var(--grfd-white);
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.2;
}

.grfd-status-detail,
.grfd-status-value {
    display: block;
    margin: 0;
    color: #dbe2ed;
    font-size: .84rem;
    line-height: 1.4;
}

a.grfd-status-link {
    color: var(--grfd-white);
    text-decoration: none !important;
    transition: background-color .2s ease, border-top-color .2s ease;
}

a.grfd-status-link:hover,
a.grfd-status-link:focus {
    color: var(--grfd-white);
    background: #162645;
    border-top-color: var(--grfd-gold);
    text-decoration: none !important;
}

.grfd-fire-weather-alert {
    background: rgb(181 33 39 / 24%);
    border-top-color: #ef3e43;
}

.grfd-fire-weather-alert:hover,
.grfd-fire-weather-alert:focus {
    background: rgb(181 33 39 / 34%);
    border-top-color: #ff6468;
}

/* ==========================================================
   INTRODUCTION
   ========================================================== */

.grfd-intro {
    padding: 76px 0;

    background: var(--grfd-white);
}

.grfd-intro-grid {
    display: grid;

    grid-template-columns:
        minmax(0, .9fr)
        minmax(0, 1.1fr);

    gap: clamp(50px, 8vw, 120px);

    align-items: start;
}

.grfd-intro-heading h2 {
    margin: 0;
}

.grfd-intro-copy {
    padding-top: 27px;

    color: var(--grfd-muted);

    font-size: 1.08rem;
}

.grfd-intro-copy p:first-child {
    margin-top: 0;
}

.grfd-intro-copy .grfd-text-link {
    margin-top: 12px;
}


/* ==========================================================
   APPARATUS FEATURE
   ========================================================== */

.grfd-apparatus-feature {
    display: grid;

    min-height: 570px;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(420px, .85fr);

    background: var(--grfd-cream);
}

.grfd-apparatus-image {
    min-height: 570px;

    background:
        linear-gradient(
            rgb(15 27 50 / 7%),
            rgb(15 27 50 / 7%)
        ),
        url("/images/home/grfd-rescue-response.webp")
        center center / cover no-repeat;
}

.grfd-apparatus-content {
    display: flex;

    max-width: 620px;

    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    padding: clamp(60px, 7vw, 110px);
}

.grfd-apparatus-content h2 {
    margin: 0 0 22px;
}

.grfd-apparatus-content p:not(.grfd-eyebrow) {
    margin: 0 0 30px;

    color: var(--grfd-muted);

    font-size: 1.05rem;
}


/* ==========================================================
   HISTORY TIMELINE
   ========================================================== */

.grfd-history-home {
    padding: 82px 0;

    background: var(--grfd-white);
}

.grfd-section-heading {
    max-width: 720px;

    margin-bottom: 48px;
}

.grfd-section-heading h2 {
    margin: 0 0 18px;
}

.grfd-section-heading > p:last-child {
    margin-bottom: 0;

    color: var(--grfd-muted);

    font-size: 1.08rem;
}

.grfd-history-line {
    position: relative;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 42px;
}

.grfd-history-line::before {
    position: absolute;

    top: 23px;
    right: 0;
    left: 0;

    height: 2px;

    background: var(--grfd-border);

    content: "";
}

.grfd-history-event {
    position: relative;

    padding-top: 57px;
}

.grfd-history-event::before {
    position: absolute;
    z-index: 2;

    top: 16px;
    left: 0;

    width: 16px;
    height: 16px;

    border: 4px solid var(--grfd-white);
    border-radius: 50%;

    background: var(--grfd-red);

    box-shadow: 0 0 0 2px var(--grfd-red);

    content: "";
}

.grfd-history-year {
    display: block;

    margin-bottom: 8px;

    color: var(--grfd-red);

    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .1em;

    text-transform: uppercase;
}

.grfd-history-event h3 {
    margin: 0 0 10px;
}

.grfd-history-event p {
    margin: 0;

    color: var(--grfd-muted);

    font-size: .94rem;
}

.grfd-history-action {
    margin-top: 42px;
}


/* ==========================================================
   LATEST FROM STATION 59 / FACEBOOK
   ========================================================== */

.grfd-latest {
    padding: 78px 0;
    background: var(--grfd-light);
}

.grfd-latest-heading {
    display: flex;
    gap: 30px;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 42px;
}

.grfd-latest-heading h2 { margin: 0; }

.grfd-fb-lazy {
    position: relative;
    width: 100%;
    min-height: 180px;
    padding: 22px;
    border: 1px solid var(--grfd-border);
    border-top: 4px solid var(--grfd-red);
    border-radius: var(--grfd-radius);
    background: var(--grfd-white);
    box-shadow: 0 8px 30px rgb(16 28 53 / 6%);
}

.grfd-fb-lazy__target {
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.grfd-fb-lazy__target > .sk-ww-facebook-page-posts {
    width: 100%;
    max-width: 100%;
}

.grfd-fb-lazy__btn { margin: 10px 0 8px; }

.grfd-fb-lazy__note {
    margin: 0;
    color: var(--grfd-muted);
    font-size: .9rem;
}

.grfd-fb-lazy iframe { max-width: 100%; }

.grfd-fb-lazy noscript p {
    margin: 0;
    color: var(--grfd-muted);
}


/* ==========================================================
   FIRE SAFETY
   ========================================================== */

.grfd-safety {
    padding: 78px 0;

    background: var(--grfd-white);
}

.grfd-safety-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(320px, .65fr);

    gap: clamp(50px, 8vw, 110px);

    align-items: center;
}

.grfd-safety-content h2 {
    max-width: 750px;

    margin: 0 0 20px;
}

.grfd-safety-content > p:not(.grfd-eyebrow) {
    max-width: 760px;

    margin-bottom: 30px;

    color: var(--grfd-muted);

    font-size: 1.05rem;
}

.grfd-safety-callout {
    position: relative;

    padding: 45px;

    border-top: 5px solid var(--grfd-red);

    background: var(--grfd-cream);
}

.grfd-safety-callout-small {
    display: block;

    margin-bottom: 10px;

    color: var(--grfd-red);

    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .12em;

    text-transform: uppercase;
}

.grfd-safety-callout strong {
    display: block;

    color: var(--grfd-navy-dark);

    font-size: 1.6rem;
    line-height: 1.2;
}

.grfd-safety-callout p {
    margin: 15px 0 0;

    color: var(--grfd-muted);
}


/* ==========================================================
   JOIN / RECRUITMENT
   ========================================================== */

.grfd-join {
    position: relative;

    margin-bottom: 60px;
    padding: 72px 0;

    overflow: hidden;

    background: var(--grfd-navy);
}

.grfd-join::after {
    position: absolute;

    top: -150px;
    right: -100px;

    width: 500px;
    height: 500px;

    border: 80px solid rgb(255 255 255 / 3%);
    border-radius: 50%;

    content: "";
}

.grfd-join-inner {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, 1.3fr)
        auto;

    gap: 60px;

    align-items: center;
}

.grfd-join .grfd-eyebrow {
    color: #e0b15c;
}

.grfd-join h2 {
    margin: 0 0 17px;

    color: var(--grfd-white);
}

.grfd-join p:not(.grfd-eyebrow) {
    max-width: 760px;

    margin-bottom: 0;

    color: rgb(255 255 255 / 75%);
}

.grfd-join-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 12px;

    justify-content: flex-end;
}




/* ==========================================================
   HISTORY PAGE
   ========================================================== */

.grfd-history {
    overflow: hidden;
    background: var(--grfd-white);
}

.grfd-history p {
    color: var(--grfd-muted);
}

.grfd-history-intro,
.grfd-history-chapter,
.grfd-history-community,
.grfd-history-closing {
    width: min(100% - 48px, 1160px);
    margin-inline: auto;
}

/* History introduction */

.grfd-history-intro {
    position: relative;
    padding: 90px 0 76px;
}

.grfd-history-intro::after {
    display: block;
    width: 82px;
    height: 4px;
    margin-top: 38px;
    background: var(--grfd-red);
    content: "";
}

.grfd-history-intro h1 {
    max-width: 900px;
    margin: 0 0 24px;
    font-size: clamp(3rem, 5.4vw, 5rem);
    letter-spacing: -.035em;
}

.grfd-history-lead {
    max-width: 860px;
    margin: 0;
    color: var(--grfd-muted);
    font-size: clamp(1.12rem, 1.6vw, 1.35rem);
    line-height: 1.7;
}

/* Standard chapters */

.grfd-history-chapter {
    padding: 78px 0;
}

.grfd-history-heading {
    max-width: 820px;
    margin-bottom: 34px;
}

.grfd-history-heading h2 {
    margin: 0;
    font-size: clamp(2.2rem, 3.8vw, 3.5rem);
    letter-spacing: -.025em;
}

.grfd-history-chapter > p,
.grfd-history-community > p {
    max-width: 900px;
    font-size: 1.05rem;
}

.grfd-history-chapter h3 {
    max-width: 860px;
    margin: 42px 0 16px;
    padding-left: 17px;
    border-left: 4px solid var(--grfd-red);
    font-size: 1.5rem;
}

/* Date callout */

.grfd-history-callout {
    max-width: 860px;
    margin: 38px 0;
    padding: 27px 31px;
    border-left: 5px solid var(--grfd-red);
    background: var(--grfd-cream);
}

.grfd-history-callout strong {
    display: block;
    margin-bottom: 6px;
    color: var(--grfd-navy-dark);
    font-size: 1.2rem;
}

.grfd-history-callout p {
    margin: 0;
}

/* First chief and president */

.grfd-history-portraits {
    display: grid;
    max-width: 700px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px;
    margin: 48px 0 25px;
}

.grfd-history figure {
    margin: 0;
}

.grfd-history-portraits img {
    display: block;
    width: 100%;
    max-width: 280px;
    aspect-ratio: 3 / 4;
    border: 1px solid var(--grfd-border);
    object-fit: contain;
    background: var(--grfd-light);
    filter: grayscale(100%);
}

.grfd-history figcaption {
    max-width: 520px;
    margin-top: 12px;
    color: var(--grfd-muted);
    font-size: .85rem;
    line-height: 1.45;
}

/* Major historical features */

.grfd-history-feature {
    display: grid;
    width: min(100% - 48px, var(--grfd-container));
    margin: 32px auto;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr);
    background: var(--grfd-cream);
    box-shadow: 0 18px 50px rgb(16 28 53 / 8%);
}

.grfd-history-feature-text {
    align-self: center;
    padding: clamp(48px, 6vw, 86px);
}

.grfd-history-feature-text h2 {
    margin: 0 0 24px;
    font-size: clamp(2.25rem, 3.8vw, 3.45rem);
    letter-spacing: -.025em;
}

.grfd-history-feature-text p:last-child {
    margin-bottom: 0;
}

.grfd-history-feature-image {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    justify-content: center;
    padding: 28px;
    background: #e8e4dc;
}

.grfd-history-feature-image img {
    display: block;
    width: 100%;
    max-height: 520px;
    margin: auto;
    object-fit: contain;
    filter: grayscale(100%);
}

.grfd-history-feature-image figcaption {
    margin: 16px 0 0;
    padding: 0 4px;
}

.grfd-history-feature-reverse .grfd-history-feature-text {
    order: 2;
}

.grfd-history-feature-reverse .grfd-history-feature-image {
    order: 1;
}

/* Historical galleries */

.grfd-history-gallery {
    display: grid;
    width: min(100% - 48px, 1160px);
    margin: 58px auto;
    gap: 32px;
}

.grfd-history-gallery-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grfd-history-gallery-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grfd-history-gallery figure {
    min-width: 0;
}

.grfd-history-gallery img {
    display: block;
    width: 100%;
    height: 320px;
    padding: 12px;
    border: 1px solid var(--grfd-border);
    object-fit: contain;
    background: var(--grfd-light);
    filter: grayscale(100%);
}

.grfd-history-gallery-3 img {
    height: 350px;
}

/* Charter members */

.grfd-history-members {
    max-width: 900px;
    margin-top: 45px;
    border: 1px solid var(--grfd-border);
    background: var(--grfd-light);
}

.grfd-history-members summary {
    position: relative;
    padding: 22px 60px 22px 28px;
    color: var(--grfd-navy-dark);
    font-size: 1.05rem;
    font-weight: 750;
    cursor: pointer;
    list-style: none;
}

.grfd-history-members summary::-webkit-details-marker {
    display: none;
}

.grfd-history-members summary::after {
    position: absolute;
    top: 50%;
    right: 28px;
    color: var(--grfd-red);
    font-size: 1.5rem;
    font-weight: 400;
    content: "+";
    transform: translateY(-50%);
}

.grfd-history-members[open] summary::after {
    content: "−";
}

.grfd-history-members[open] summary {
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-history-member-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 50px;
    padding: 30px 35px 15px;
}

.grfd-history-member-list ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.grfd-history-member-list li {
    padding: 7px 0;
    border-bottom: 1px solid rgb(23 40 74 / 8%);
    color: var(--grfd-text);
}

.grfd-history-note {
    margin: 10px 35px 30px;
    font-size: .9rem;
}

/* Community gathering place */

.grfd-history-community {
    padding: 88px 0;
}

.grfd-history-community-highlight {
    max-width: 900px;
    margin: 48px 0 65px;
    padding: 38px 42px;
    border-top: 5px solid var(--grfd-gold);
    background: var(--grfd-cream);
}

.grfd-history-community-highlight h3 {
    margin: 0 0 18px;
    font-size: 1.65rem;
}

.grfd-history-community-highlight p:last-child {
    margin-bottom: 0;
}

/* Small archival objects */

.grfd-history-small-artifact {
    display: grid;
    max-width: 650px;
    grid-template-columns: 180px 1fr;
    gap: 28px;
    align-items: center;
    margin: 55px 0;
    padding: 25px;
    border: 1px solid var(--grfd-border);
    background: var(--grfd-white);
}

.grfd-history-small-artifact img {
    display: block;
    width: 100%;
    max-height: 250px;
    object-fit: contain;
    filter: grayscale(100%);
}

.grfd-history-small-artifact figcaption {
    margin: 0;
    font-size: .92rem;
}

/* 1921 fire */

.grfd-history-dark {
    position: relative;
    margin: 38px 0;
    padding: 98px max(24px, calc((100vw - 1080px) / 2));
    overflow: hidden;
    color: var(--grfd-white);
    background:
        linear-gradient(
            135deg,
            var(--grfd-navy-dark) 0%,
            var(--grfd-navy) 100%
        );
}

.grfd-history-dark::before {
    position: absolute;
    top: 0;
    left: max(24px, calc((100vw - 1080px) / 2));
    width: 90px;
    height: 5px;
    background: var(--grfd-red);
    content: "";
}

.grfd-history-dark .grfd-history-heading,
.grfd-history-dark > p,
.grfd-history-dark .grfd-history-gallery {
    position: relative;
    z-index: 1;
}

.grfd-history-dark h2 {
    color: var(--grfd-white);
}

.grfd-history-dark .grfd-history-year {
    color: #e0b15c;
}

.grfd-history-dark > p {
    max-width: 860px;
    color: rgb(255 255 255 / 78%);
    font-size: 1.06rem;
}

.grfd-history-dark .grfd-history-gallery {
    width: 100%;
    margin: 52px 0;
}

.grfd-history-dark .grfd-history-gallery img {
    border-color: rgb(255 255 255 / 14%);
    background: rgb(255 255 255 / 6%);
}

.grfd-history-dark figcaption {
    color: rgb(255 255 255 / 65%);
}

/* Later milestones */

.grfd-history-milestones {
    max-width: 900px;
    margin: 48px 0;
    border-top: 1px solid var(--grfd-border);
}

.grfd-history-milestones > div {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 28px;
    padding: 24px 0;
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-history-milestones strong {
    color: var(--grfd-red);
    font-size: 1.18rem;
}

.grfd-history-milestones p {
    margin: 0;
}

/* Closing */

.grfd-history-closing {
    position: relative;
    margin-top: 35px;
    margin-bottom: 72px;
    padding: 72px clamp(30px, 5vw, 65px);
    border-top: 5px solid var(--grfd-red);
    background: var(--grfd-cream);
}

.grfd-history-closing h2 {
    max-width: 780px;
    margin: 0 0 25px;
    font-size: clamp(2.2rem, 3.8vw, 3.45rem);
}

.grfd-history-closing > p:not(.grfd-eyebrow) {
    max-width: 820px;
    font-size: 1.05rem;
}

.grfd-history-closing > p:last-child {
    margin-bottom: 0;
}




/* Give the 1918 loss its own visual pause before the 1921 fire */
.grfd-history-chapter:has(> .grfd-history-heading .grfd-history-year:first-child) {
    position: relative;
}

.grfd-history-community + .grfd-history-chapter {
    margin-top: 18px;
    margin-bottom: 38px;
    padding-top: 72px;
    padding-bottom: 72px;
    border-top: 1px solid var(--grfd-border);
    border-bottom: 1px solid var(--grfd-border);
}


/* 1922 dedication photographs */
.grfd-history-feature + .grfd-history-gallery-2 {
    width: min(100% - 48px, 980px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 38px;
    margin-bottom: 78px;
}

.grfd-history-feature + .grfd-history-gallery-2 figure {
    padding: 16px;
    border: 1px solid var(--grfd-border);
    background: var(--grfd-light);
}

.grfd-history-feature + .grfd-history-gallery-2 img {
    height: 300px;
    padding: 0;
    border: 0;
    background: transparent;
}

.grfd-history-feature + .grfd-history-gallery-2 figcaption {
    margin-top: 12px;
}


/* ==========================================================
   HISTORY PAGE - TABLET
   ========================================================== */

@media (max-width: 991.98px) {

    .grfd-history-feature {
        grid-template-columns: 1fr;
    }

    .grfd-history-feature-text,
    .grfd-history-feature-reverse .grfd-history-feature-text {
        order: 1;
    }

    .grfd-history-feature-image,
    .grfd-history-feature-reverse .grfd-history-feature-image {
        order: 2;
    }

    .grfd-history-feature-image img {
        max-height: 500px;
    }

    .grfd-history-gallery-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* ==========================================================
   HISTORY PAGE - MOBILE
   ========================================================== */

@media (max-width: 767.98px) {


    .grfd-history-community + .grfd-history-chapter {
        margin-top: 0;
        margin-bottom: 20px;
        padding-top: 55px;
        padding-bottom: 55px;
    }

    .grfd-history-feature + .grfd-history-gallery-2 {
        width: min(100% - 32px, 980px);
        grid-template-columns: 1fr;
        margin-top: 30px;
        margin-bottom: 55px;
    }

    .grfd-history-feature + .grfd-history-gallery-2 img {
        height: auto;
        max-height: 480px;
    }

    .grfd-history-intro,
    .grfd-history-chapter,
    .grfd-history-community,
    .grfd-history-closing,
    .grfd-history-gallery,
    .grfd-history-feature {
        width: min(100% - 32px, 1080px);
    }

    .grfd-history-intro {
        padding: 58px 0 48px;
    }

    .grfd-history-intro h1 {
        font-size: clamp(2.35rem, 11vw, 3.5rem);
    }

    .grfd-history-lead {
        font-size: 1.08rem;
    }

    .grfd-history-chapter,
    .grfd-history-community {
        padding: 55px 0;
    }

    .grfd-history-heading {
        margin-bottom: 27px;
    }

    .grfd-history-heading h2 {
        font-size: clamp(2rem, 9vw, 2.8rem);
    }

    .grfd-history-portraits,
    .grfd-history-gallery-2,
    .grfd-history-gallery-3,
    .grfd-history-member-list {
        grid-template-columns: 1fr;
    }

    .grfd-history-portraits {
        gap: 32px;
    }

    .grfd-history-portraits img {
        max-width: 100%;
        height: auto;
        aspect-ratio: auto;
    }

    .grfd-history-feature {
        margin-top: 20px;
        margin-bottom: 20px;
    }

    .grfd-history-feature-text {
        padding: 42px 26px;
    }

    .grfd-history-feature-image {
        padding: 20px;
    }

    .grfd-history-feature-image img {
        width: 100%;
        height: auto;
        max-height: none;
    }

    .grfd-history-gallery {
        margin-top: 42px;
        margin-bottom: 42px;
    }

    .grfd-history-gallery img,
    .grfd-history-gallery-3 img {
        height: auto;
        max-height: 480px;
    }

    .grfd-history-member-list {
        gap: 0;
        padding: 22px 25px 10px;
    }

    .grfd-history-note {
        margin: 10px 25px 25px;
    }

    .grfd-history-community-highlight {
        padding: 32px 27px;
    }

    .grfd-history-small-artifact {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 22px;
    }

    .grfd-history-small-artifact img {
        max-width: 230px;
    }

    .grfd-history-dark {
        margin: 20px 0;
        padding: 62px 16px;
    }

    .grfd-history-dark::before {
        left: 16px;
    }

    .grfd-history-dark .grfd-history-gallery {
        width: 100%;
    }

    .grfd-history-milestones > div {
        grid-template-columns: 72px 1fr;
        gap: 18px;
    }

    .grfd-history-closing {
        margin-top: 20px;
        margin-bottom: 45px;
        padding: 45px 26px;
    }
}


/* ==========================================================
   HISTORY PAGE - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

    .grfd-history-callout {
        padding: 24px 22px;
    }

    .grfd-history-members summary {
        padding: 20px 52px 20px 22px;
    }

    .grfd-history-members summary::after {
        right: 22px;
    }

    .grfd-history-milestones > div {
        display: block;
    }

    .grfd-history-milestones strong {
        display: block;
        margin-bottom: 7px;
    }
}


/* ==========================================================
   FOOTER
   ========================================================== */

/* Cassiopeia footer shell */

.container-footer {
    margin-top: 0;
    padding: 0;

    color: rgb(255 255 255 / 72%);

    background: var(--grfd-navy-dark);
    background-image: none;
}

.container-footer .grid-child {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.container-footer .mod-custom {
    width: 100%;
}

.container-footer a {
    color: var(--grfd-white);
}

.container-footer a:hover,
.container-footer a:focus {
    color: var(--grfd-gold);
}

/* Main footer */

.grfd-site-footer {
    position: relative;

    border-top: 5px solid var(--grfd-red);

    color: rgb(255 255 255 / 74%);

    background: var(--grfd-navy-dark);
}

.grfd-footer-main {
    display: grid;

    grid-template-columns:
        minmax(260px, 1.2fr)
        minmax(170px, .7fr)
        minmax(260px, 1fr)
        minmax(220px, .8fr);

    gap: clamp(36px, 5vw, 72px);

    padding-top: 68px;
    padding-bottom: 62px;

    align-items: start;
}

/* Identity */

.grfd-footer-brand {
    display: flex;

    gap: 18px;

    align-items: center;
}

.grfd-footer-patch {
    display: block;

    width: 92px;
    height: 92px;
    flex: 0 0 92px;

    padding: 5px;

    object-fit: contain;

    border: 1px solid rgb(255 255 255 / 14%);
    border-radius: 5px;

    background: rgb(255 255 255 / 5%);
}

.grfd-footer-company {
    margin: 0;

    color: var(--grfd-white);

    font-size: 1.2rem;
    font-weight: 750;
    line-height: 1.15;
}

.grfd-footer-station {
    margin: 8px 0 0;

    color: #e0b15c;

    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .13em;

    text-transform: uppercase;
}

.grfd-footer-slogan {
    display: inline-block;

    margin: 22px 0 0;

    color: #e0b15c;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
    font-style: italic;
    font-weight: 600;
}

.grfd-footer-description {
    max-width: 330px;

    margin: 12px 0 0;

    color: rgb(255 255 255 / 66%);

    font-size: .9rem;
    line-height: 1.6;
}

.grfd-footer-facebook {
    display: inline-block;

    margin-top: 18px;

    color: var(--grfd-white);

    font-size: .88rem;
    font-weight: 700;

    text-decoration: none;
}

.grfd-footer-facebook:hover,
.grfd-footer-facebook:focus {
    color: var(--grfd-gold);

    text-decoration: none;
}

/* Footer headings */

.grfd-footer-heading {
    position: relative;

    margin: 0 0 25px;
    padding-bottom: 12px;

    color: var(--grfd-white);

    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1.3;

    text-transform: uppercase;
}

.grfd-footer-heading::after {
    position: absolute;

    bottom: 0;
    left: 0;

    width: 38px;
    height: 2px;

    background: var(--grfd-red);

    content: "";
}

/* Quick links */

.grfd-footer-links nav {
    display: grid;

    gap: 11px;
}

.grfd-footer-links nav a {
    width: fit-content;

    color: rgb(255 255 255 / 76%);

    font-size: .92rem;
    font-weight: 600;

    text-decoration: none;
}

.grfd-footer-links nav a:hover,
.grfd-footer-links nav a:focus {
    color: var(--grfd-white);

    text-decoration: none;
}

/* Contact */

.grfd-footer-contact-block {
    margin-bottom: 24px;
}

.grfd-footer-contact-block:last-child {
    margin-bottom: 0;
}

.grfd-footer-label {
    display: block;

    margin-bottom: 6px;

    color: #e0b15c;

    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    line-height: 1.3;

    text-transform: uppercase;
}

.grfd-footer-contact address {
    margin: 0;

    color: rgb(255 255 255 / 72%);

    font-size: .9rem;
    font-style: normal;
    line-height: 1.6;
}

.grfd-footer-contact-block > a:not(.grfd-footer-phone) {
    display: inline-block;

    margin-top: 7px;

    color: var(--grfd-white);

    font-size: .86rem;
    font-weight: 700;

    text-decoration: none;
}

.grfd-footer-contact-block > a:not(.grfd-footer-phone):hover,
.grfd-footer-contact-block > a:not(.grfd-footer-phone):focus {
    color: var(--grfd-gold);

    text-decoration: none;
}

.grfd-footer-phone {
    display: inline-block;

    color: var(--grfd-white);

    font-size: 1.12rem;
    font-weight: 750;

    text-decoration: none;
}

.grfd-footer-phone:hover,
.grfd-footer-phone:focus {
    color: var(--grfd-gold);

    text-decoration: none;
}

/* Emergency */

.grfd-footer-emergency {
    position: relative;

    padding: 28px 26px;

    border: 1px solid rgb(255 255 255 / 12%);
    border-top: 4px solid var(--grfd-red);
    border-radius: var(--grfd-radius);

    background: rgb(255 255 255 / 5%);
}

.grfd-footer-emergency span {
    display: block;

    margin-bottom: 7px;

    color: rgb(255 255 255 / 64%);

    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .11em;

    text-transform: uppercase;
}

.grfd-footer-emergency strong {
    display: block;

    color: var(--grfd-white);

    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
}

.grfd-footer-emergency p {
    margin: 13px 0 0;

    color: rgb(255 255 255 / 68%);

    font-size: .86rem;
    line-height: 1.5;
}

/* Bottom bar */

.grfd-footer-bottom {
    border-top: 1px solid rgb(255 255 255 / 10%);

    background: rgb(0 0 0 / 12%);
}

.grfd-footer-bottom-inner {
    display: flex;

    gap: 24px;

    align-items: center;
    justify-content: space-between;

    min-height: 68px;
    padding-top: 15px;
    padding-bottom: 15px;
}

.grfd-footer-bottom p {
    margin: 0;

    color: rgb(255 255 255 / 54%);

    font-size: .78rem;
    line-height: 1.5;
}

.grfd-footer-bottom a {
    color: rgb(255 255 255 / 78%);

    font-weight: 650;

    text-decoration: none;
}

.grfd-footer-bottom a:hover,
.grfd-footer-bottom a:focus {
    color: var(--grfd-gold);

    text-decoration: none;
}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 991.98px) {

    .grfd-hero {
        min-height: 610px;

        background:
            linear-gradient(
                90deg,
                rgb(9 20 40 / 92%) 0%,
                rgb(9 20 40 / 73%) 60%,
                rgb(9 20 40 / 30%) 100%
            ),
            url("/images/headers/sta59-home.webp")
            center center / cover no-repeat;
    }

    .grfd-hero-identity {
        gap: 20px;
    }

    .grfd-hero-patch {
        width: 112px;
        height: 112px;
        flex-basis: 112px;
    }

    .grfd-hero h1 {
        font-size: clamp(2.5rem, 6vw, 4rem);
    }

    .grfd-status-grid {
        grid-template-columns: 1fr;
    }

    .grfd-status-item {
        min-height: 0;

        padding: 22px 25px;

        border-right: 0;
        border-bottom: 1px solid rgb(255 255 255 / 12%);
    }

    .grfd-status-item:last-child {
        border-bottom: 0;
    }

    .grfd-intro-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .grfd-intro-copy {
        padding-top: 0;
    }

    .grfd-apparatus-feature {
        grid-template-columns: 1fr;
    }

    .grfd-apparatus-image {
        min-height: 450px;
    }

    .grfd-apparatus-content {
        max-width: none;

        padding: 70px 40px;
    }

    .grfd-history-line {
        grid-template-columns: repeat(2, 1fr);

        gap: 50px 40px;
    }

    .grfd-history-line::before {
        display: none;
    }

    .grfd-history-event {
        padding-top: 35px;

        border-top: 2px solid var(--grfd-border);
    }

    .grfd-history-event::before {
        top: -9px;
    }

    .grfd-safety-grid {
        grid-template-columns: 1fr;
    }

    .grfd-join-inner {
        grid-template-columns: 1fr;
    }

    .grfd-join-actions {
        justify-content: flex-start;
    }

    .grfd-footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 50px 55px;
    }

    .grfd-footer-emergency {
        align-self: start;
    }
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 767.98px) {

    .grfd-container {
        width: min(100% - 32px, var(--grfd-container));
    }

    .grfd-hero {
        min-height: 650px;
        align-items: flex-end;

        background:
            linear-gradient(
                0deg,
                rgb(7 17 34 / 97%) 0%,
                rgb(7 17 34 / 82%) 55%,
                rgb(7 17 34 / 28%) 100%
            ),
            url("/images/headers/sta59-home.webp")
            center center / cover no-repeat;
    }

    .grfd-hero-content {
        width: min(100% - 32px, var(--grfd-container));

        padding: 55px 0 48px;
    }

    .grfd-hero-identity {
        gap: 16px;
        align-items: center;
    }

    .grfd-hero-patch {
        width: 92px;
        height: 92px;
        flex-basis: 92px;

        padding: 5px;
    }

    .grfd-hero h1 {
        font-size: clamp(2rem, 8vw, 3rem);
    }

    .grfd-hero-station {
        margin-top: 12px;

        font-size: .9rem;
    }

    .grfd-hero-slogan {
        margin-top: 22px;

        font-size: 1.4rem;
    }

    .grfd-hero-tagline {
        font-size: 1rem;
    }

    .grfd-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .grfd-btn {
        width: 100%;
    }

    .grfd-intro,
    .grfd-history-home,
    .grfd-latest,
    .grfd-safety {
        padding: 56px 0;
    }

    .grfd-apparatus-image {
        min-height: 320px;
    }

    .grfd-apparatus-content {
        padding: 55px 24px;
    }

    .grfd-history-line {
        display: block;
    }

    .grfd-history-event {
        margin-bottom: 45px;

        padding: 0 0 0 35px;

        border-top: 0;
        border-left: 2px solid var(--grfd-border);
    }

    .grfd-history-event:last-child {
        margin-bottom: 0;
    }

    .grfd-history-event::before {
        top: 2px;
        left: -9px;
    }

    .grfd-history-action {
        margin-top: 40px;
    }

    .grfd-latest-heading {
        display: block;
    }

    .grfd-latest-heading .grfd-text-link {
        margin-top: 15px;
    }

    .grfd-fb-lazy {
        min-height: 0;
        padding: 18px;
    }

    .grfd-fb-lazy__btn {
        margin-top: 0;
    }

    .grfd-fb-lazy__note {
        margin-bottom: 0;
        text-align: center;
    }

    .grfd-safety-callout {
        padding: 35px 28px;
    }

    .grfd-join {
        margin-bottom: 40px;
        padding: 58px 0;
    }

    .grfd-join-actions {
        display: grid;

        grid-template-columns: 1fr;
    }

    .grfd-join::after {
        display: none;
    }

    .grfd-footer-main {
        grid-template-columns: 1fr;

        gap: 42px;

        padding-top: 52px;
        padding-bottom: 48px;
    }

    .grfd-footer-brand {
        align-items: center;
    }

    .grfd-footer-patch {
        width: 82px;
        height: 82px;
        flex-basis: 82px;
    }

    .grfd-footer-description {
        max-width: 420px;
    }

    .grfd-footer-bottom-inner {
        display: block;

        padding-top: 20px;
        padding-bottom: 20px;
    }

    .grfd-footer-bottom p + p {
        margin-top: 7px;
    }
}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

    .grfd-hero {
        min-height: 640px;
    }

    .grfd-hero-identity {
        display: block;
    }

    .grfd-hero-patch {
        width: 86px;
        height: 86px;

        margin-bottom: 18px;
    }

    .grfd-hero h1 {
        font-size: clamp(2rem, 10vw, 2.7rem);
    }

    .grfd-hero h1 br {
        display: none;
    }

    .grfd-status-item {
        padding: 20px;
    }

    .grfd-apparatus-image {
        min-height: 270px;
    }
}
/* ==========================================================
   HEADER EMERGENCY
   ========================================================== */

.grfd-header-emergency {
    display: flex;
    min-width: 150px;
    height: 46px;
    margin: 21px 0 0 auto;
    padding: 4px 20px;

    flex-direction: column;
    align-items: center;
    justify-content: center;
    
    border-radius: 3px;

    color: var(--grfd-white);
    background: var(--grfd-red);

    line-height: 1;
    text-align: center;
    box-sizing: border-box;
}

.grfd-header-emergency span {
    display: block;
    margin: 0 0 3px;

    color: rgb(255 255 255 / 80%);

    font-size: .62rem;
    font-weight: 750;
    line-height: 1;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.grfd-header-emergency strong {
    display: block;
    margin: 0;

    color: var(--grfd-white);

    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .02em;
}

/* Mobile */
@media (max-width: 767.98px) {

    .grfd-header-emergency {
        min-width: 108px;
        height: 42px;
        padding: 4px 10px;
    }

    .grfd-header-emergency span {
        font-size: .52rem;
    }

    .grfd-header-emergency strong {
        font-size: .94rem;
    }
}


/* ==========================================================
   HISTORY FEATURE IMAGE REFINEMENT
   Version 9
   Prevent portrait/archival figures from stretching to the
   full height of long text features.
   ========================================================== */

.grfd-history-feature {
    align-items: center;
}

.grfd-history-feature-image {
    min-height: 0;
    align-self: center;
    margin: 34px 34px 34px 0;
    padding: 24px;
    background: #e8e4dc;
}

.grfd-history-feature-reverse .grfd-history-feature-image {
    margin: 34px 0 34px 34px;
}

.grfd-history-feature-image img {
    width: 100%;
    height: auto;
    max-height: 440px;
    object-fit: contain;
}

.grfd-history-feature-image figcaption {
    margin-top: 14px;
}

@media (max-width: 991.98px) {
    .grfd-history-feature-image,
    .grfd-history-feature-reverse .grfd-history-feature-image {
        width: calc(100% - 56px);
        margin: 0 28px 32px;
    }
}

@media (max-width: 767.98px) {
    .grfd-history-feature-image,
    .grfd-history-feature-reverse .grfd-history-feature-image {
        width: calc(100% - 40px);
        margin: 0 20px 24px;
        padding: 18px;
    }
}


/* ==========================================================
   OLD MARK SUPPORTING ARCHIVE
   Version 10
   Supporting images now belong to the Old Mark exhibit rather
   than floating as a separate gallery below it.
   ========================================================== */

.grfd-oldmark-support {
    display: grid;
    width: min(100% - 48px, var(--grfd-container));
    grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
    gap: 28px;
    margin: -32px auto 72px;
    padding: 34px;
    border-top: 1px solid #ddd7cb;
    background: var(--grfd-cream);
    box-shadow: 0 18px 50px rgb(16 28 53 / 8%);
}

.grfd-oldmark-support figure {
    display: grid;
    grid-template-columns: minmax(120px, 190px) 1fr;
    gap: 20px;
    align-items: center;
    margin: 0;
    padding: 18px;
    background: rgb(255 255 255 / 58%);
}

.grfd-oldmark-support img {
    display: block;
    width: 100%;
    max-height: 190px;
    border: 1px solid var(--grfd-border);
    object-fit: contain;
    background: var(--grfd-white);
    filter: grayscale(100%);
}

.grfd-oldmark-support figcaption {
    margin: 0;
    color: var(--grfd-muted);
    font-size: .86rem;
    line-height: 1.5;
}

@media (max-width: 991.98px) {
    .grfd-oldmark-support {
        grid-template-columns: 1fr;
        margin-top: -32px;
    }
}

@media (max-width: 767.98px) {
    .grfd-oldmark-support {
        width: min(100% - 32px, var(--grfd-container));
        margin-top: -20px;
        margin-bottom: 50px;
        padding: 20px;
    }

    .grfd-oldmark-support figure {
        grid-template-columns: 110px 1fr;
        padding: 14px;
    }
}

@media (max-width: 480px) {
    .grfd-oldmark-support figure {
        grid-template-columns: 1fr;
    }

    .grfd-oldmark-support img {
        max-width: 240px;
        max-height: 240px;
    }
}

/* ==========================================================
   APPARATUS PAGE
   Version 11
   Current fleet features, expandable specifications,
   and future 2029 Sutphen feature.
   ========================================================== */

.grfd-apparatus-page {
    overflow: hidden;
    padding-bottom: 72px;
    background: var(--grfd-white);
}

.grfd-apparatus-page p {
    color: var(--grfd-muted);
}

/* Page introduction */

.grfd-apparatus-intro {
    width: min(100% - 48px, 1160px);
    margin-inline: auto;
    padding: 90px 0 76px;
}

.grfd-apparatus-intro::after {
    display: block;
    width: 82px;
    height: 4px;
    margin-top: 38px;
    background: var(--grfd-red);
    content: "";
}

.grfd-apparatus-intro h1 {
    max-width: 900px;
    margin: 0 0 24px;
    font-size: clamp(3rem, 5.4vw, 5rem);
    letter-spacing: -.035em;
}

.grfd-apparatus-lead {
    max-width: 850px;
    margin: 0;
    font-size: clamp(1.12rem, 1.6vw, 1.35rem);
    line-height: 1.7;
}

/* Individual apparatus */

.grfd-unit {
    display: grid;
    width: min(100% - 48px, var(--grfd-container));
    margin: 0 auto 72px;
    grid-template-columns: minmax(320px, .88fr) minmax(0, 1.12fr);
    align-items: stretch;
    background: var(--grfd-cream);
    box-shadow: 0 18px 50px rgb(16 28 53 / 8%);
}

.grfd-unit-reverse {
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
}

.grfd-unit-reverse .grfd-unit-image {
    order: 2;
}

.grfd-unit-reverse .grfd-unit-content {
    order: 1;
}

.grfd-unit-image {
    display: flex;
    min-height: 460px;
    align-items: center;
    justify-content: center;
    padding: clamp(30px, 4vw, 54px);
    background: #e8e4dc;
}

.grfd-unit-image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 380px;
    border: 1px solid rgb(23 40 74 / 10%);
    object-fit: contain;
    background: var(--grfd-white);
    box-shadow: 0 10px 28px rgb(16 28 53 / 10%);
}

.grfd-unit-content {
    align-self: center;
    padding: clamp(48px, 6vw, 82px);
}

.grfd-unit-type {
    margin: 0 0 10px;
    color: var(--grfd-red) !important;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.3;
    text-transform: uppercase;
}

.grfd-unit-content h2 {
    margin: 0 0 12px;
    font-size: clamp(2.35rem, 4vw, 3.65rem);
    letter-spacing: -.03em;
}

.grfd-unit-model {
    margin: 0 0 30px;
    color: var(--grfd-text) !important;
    font-size: 1.05rem;
    line-height: 1.5;
}

.grfd-unit-model strong {
    color: var(--grfd-text);
    font-weight: 700;
}

.grfd-unit-content > p:not(.grfd-unit-type):not(.grfd-unit-model) {
    max-width: 720px;
    font-size: 1.02rem;
}

/* Headline specifications */

.grfd-unit-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 34px 0;
    border-top: 1px solid #d7d2c8;
    border-bottom: 1px solid #d7d2c8;
}

.grfd-unit-highlights-simple {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grfd-unit-highlights > div {
    min-width: 0;
    padding: 21px 18px 21px 0;
}

.grfd-unit-highlights > div + div {
    padding-left: 22px;
    border-left: 1px solid #d7d2c8;
}

.grfd-unit-highlights strong {
    display: block;
    color: var(--grfd-navy-dark);
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    font-weight: 800;
    line-height: 1.05;
}

.grfd-unit-highlights span {
    display: block;
    margin-top: 7px;
    color: var(--grfd-muted);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .08em;
    line-height: 1.35;
    text-transform: uppercase;
}

/* Expandable equipment specifications */

.grfd-apparatus-specs {
    max-width: 760px;
    margin-top: 32px;
    border: 1px solid var(--grfd-border);
    background: var(--grfd-white);
}

.grfd-apparatus-specs summary {
    position: relative;
    padding: 20px 58px 20px 24px;
    color: var(--grfd-navy-dark);
    font-size: .96rem;
    font-weight: 750;
    cursor: pointer;
    list-style: none;
}

.grfd-apparatus-specs summary::-webkit-details-marker {
    display: none;
}

.grfd-apparatus-specs summary::after {
    position: absolute;
    top: 50%;
    right: 24px;
    color: var(--grfd-red);
    font-size: 1.45rem;
    font-weight: 400;
    content: "+";
    transform: translateY(-50%);
}

.grfd-apparatus-specs[open] summary {
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-apparatus-specs[open] summary::after {
    content: "−";
}

.grfd-apparatus-specs-inner {
    padding: 20px 26px 24px;
}

.grfd-apparatus-specs-inner ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 34px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.grfd-apparatus-specs-inner li {
    position: relative;
    padding: 9px 0 9px 18px;
    border-bottom: 1px solid rgb(23 40 74 / 8%);
    color: var(--grfd-text);
    font-size: .91rem;
    line-height: 1.45;
}

.grfd-apparatus-specs-inner li::before {
    position: absolute;
    top: 17px;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--grfd-red);
    content: "";
}

/* Engine replacement note */

.grfd-unit-future-note {
    max-width: 720px;
    margin-top: 32px;
    padding: 23px 25px;
    border-left: 4px solid var(--grfd-gold);
    background: rgb(255 255 255 / 65%);
}

.grfd-unit-future-note span {
    display: block;
    margin-bottom: 7px;
    color: var(--grfd-navy-dark);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.grfd-unit-future-note p {
    margin: 0;
    font-size: .94rem;
}

/* Give the primary engine a subtle visual distinction */

.grfd-unit-primary {
    position: relative;
    border-top: 5px solid var(--grfd-red);
}

.grfd-unit-primary::before {
    position: absolute;
    z-index: 2;
    top: -5px;
    left: 0;
    width: 150px;
    height: 5px;
    background: var(--grfd-gold);
    content: "";
}

/* ==========================================================
   FUTURE ENGINE / 2029 SUTPHEN
   ========================================================== */

.grfd-future-engine {
    position: relative;
    width: min(100% - 48px, var(--grfd-container));
    margin: 110px auto 20px;
    padding: clamp(55px, 7vw, 90px);
    overflow: hidden;
    border-top: 5px solid var(--grfd-red);
    background: var(--grfd-cream);
    box-shadow: 0 18px 50px rgb(16 28 53 / 8%);
}

.grfd-future-engine::after {
    position: absolute;
    top: -220px;
    right: -180px;
    width: 520px;
    height: 520px;
    border: 85px solid rgb(23 40 74 / 3%);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.grfd-future-engine-heading,
.grfd-future-engine-drawing,
.grfd-future-engine-facts,
.grfd-future-engine-closing {
    position: relative;
    z-index: 1;
}

.grfd-future-engine-heading {
    max-width: 900px;
}

.grfd-future-engine-heading h2 {
    max-width: 820px;
    margin: 0 0 26px;
    font-size: clamp(2.5rem, 4.4vw, 4rem);
    letter-spacing: -.03em;
}

.grfd-future-engine-heading > p:not(.grfd-eyebrow) {
    max-width: 850px;
    font-size: 1.05rem;
}

.grfd-future-engine-drawing {
    margin: 55px 0 0;
    padding: clamp(18px, 3vw, 34px);
    border: 1px solid var(--grfd-border);
    background: var(--grfd-white);
}

.grfd-future-engine-drawing img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 720px;
    margin: auto;
    object-fit: contain;
}

.grfd-future-engine-drawing figcaption {
    margin-top: 16px;
    color: var(--grfd-muted);
    font-size: .84rem;
    line-height: 1.45;
}

.grfd-future-engine-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 34px;
    border-top: 1px solid #d7d2c8;
    border-bottom: 1px solid #d7d2c8;
}

.grfd-future-engine-facts > div {
    min-width: 0;
    padding: 25px 22px;
}

.grfd-future-engine-facts > div:first-child {
    padding-left: 0;
}

.grfd-future-engine-facts > div + div {
    border-left: 1px solid #d7d2c8;
}

.grfd-future-engine-facts span {
    display: block;
    margin-bottom: 7px;
    color: var(--grfd-red);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .1em;
    line-height: 1.35;
    text-transform: uppercase;
}

.grfd-future-engine-facts strong {
    display: block;
    color: var(--grfd-navy-dark);
    font-size: clamp(1.12rem, 1.7vw, 1.45rem);
    line-height: 1.2;
}

.grfd-future-engine-closing {
    max-width: 850px;
    margin-top: 40px;
    padding-left: 24px;
    border-left: 4px solid var(--grfd-gold);
}

.grfd-future-engine-closing p {
    margin: 0;
    color: var(--grfd-text);
    font-size: 1.08rem;
    line-height: 1.7;
}


/* ==========================================================
   APPARATUS PAGE - TABLET
   ========================================================== */

@media (max-width: 991.98px) {

    .grfd-unit,
    .grfd-unit-reverse {
        grid-template-columns: 1fr;
    }

    .grfd-unit-image,
    .grfd-unit-reverse .grfd-unit-image {
        order: 1;
        min-height: 0;
        padding: 42px;
    }

    .grfd-unit-content,
    .grfd-unit-reverse .grfd-unit-content {
        order: 2;
        padding: 52px 44px 58px;
    }

    .grfd-unit-image img {
        max-height: 420px;
    }

    .grfd-future-engine-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grfd-future-engine-facts > div {
        border-bottom: 1px solid #d7d2c8;
    }

    .grfd-future-engine-facts > div:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }

    .grfd-future-engine-facts > div:nth-last-child(-n + 2) {
        border-bottom: 0;
    }
}


/* ==========================================================
   APPARATUS PAGE - MOBILE
   ========================================================== */

@media (max-width: 767.98px) {

    .grfd-apparatus-page {
        padding-bottom: 45px;
    }

    .grfd-apparatus-intro,
    .grfd-unit,
    .grfd-future-engine {
        width: min(100% - 32px, var(--grfd-container));
    }

    .grfd-apparatus-intro {
        padding: 58px 0 50px;
    }

    .grfd-apparatus-intro h1 {
        font-size: clamp(2.35rem, 11vw, 3.5rem);
    }

    .grfd-apparatus-lead {
        font-size: 1.08rem;
    }

    .grfd-unit {
        margin-bottom: 42px;
    }

    .grfd-unit-image,
    .grfd-unit-reverse .grfd-unit-image {
        padding: 28px 20px;
    }

    .grfd-unit-image img {
        max-height: none;
    }

    .grfd-unit-content,
    .grfd-unit-reverse .grfd-unit-content {
        padding: 40px 25px 44px;
    }

    .grfd-unit-content h2 {
        font-size: clamp(2.15rem, 10vw, 3rem);
    }

    .grfd-unit-highlights,
    .grfd-unit-highlights-simple {
        grid-template-columns: 1fr;
    }

    .grfd-unit-highlights > div,
    .grfd-unit-highlights > div + div {
        padding: 17px 0;
        border-left: 0;
        border-bottom: 1px solid #d7d2c8;
    }

    .grfd-unit-highlights > div:last-child {
        border-bottom: 0;
    }

    .grfd-apparatus-specs-inner ul {
        grid-template-columns: 1fr;
    }

    .grfd-unit-future-note {
        padding: 21px 20px;
    }

    .grfd-future-engine {
        margin-top: 68px;
        padding: 45px 25px;
    }

    .grfd-future-engine::after {
        display: none;
    }

    .grfd-future-engine-heading h2 {
        font-size: clamp(2.2rem, 10vw, 3rem);
    }

    .grfd-future-engine-drawing {
        margin-top: 38px;
        padding: 12px;
    }

    .grfd-future-engine-facts {
        grid-template-columns: 1fr;
    }

    .grfd-future-engine-facts > div,
    .grfd-future-engine-facts > div:first-child,
    .grfd-future-engine-facts > div:nth-child(odd) {
        padding: 18px 0;
        border-left: 0;
        border-bottom: 1px solid #d7d2c8;
    }

    .grfd-future-engine-facts > div:last-child {
        border-bottom: 0;
    }

    .grfd-future-engine-closing {
        margin-top: 32px;
        padding-left: 19px;
    }
}


/* ==========================================================
   APPARATUS PAGE - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

    .grfd-unit-image,
    .grfd-unit-reverse .grfd-unit-image {
        padding: 20px 14px;
    }

    .grfd-unit-content,
    .grfd-unit-reverse .grfd-unit-content {
        padding: 35px 20px 40px;
    }

    .grfd-apparatus-specs summary {
        padding: 18px 50px 18px 19px;
    }

    .grfd-apparatus-specs summary::after {
        right: 19px;
    }

    .grfd-apparatus-specs-inner {
        padding: 17px 20px 21px;
    }

    .grfd-future-engine {
        padding: 38px 20px;
    }
}

/* ==========================================================
   FIRE SAFETY RESOURCES PAGE
   ========================================================== */

.grfd-safety-page {
    overflow: hidden;
    padding-bottom: 80px;
    background: var(--grfd-white);
    color: var(--grfd-text);
}

.grfd-safety-page h1,
.grfd-safety-page h2,
.grfd-safety-page h3,
.grfd-safety-page p {
    margin-top: 0;
}

.grfd-safety-page a {
    text-underline-offset: 3px;
}

.grfd-safety-intro,
.grfd-safety-feature,
.grfd-safety-escape,
.grfd-safety-everyday,
.grfd-safety-generator,
.grfd-safety-outdoor,
.grfd-safety-everyone,
.grfd-safety-after,
.grfd-safety-sources {
    width: min(calc(100% - 48px), 1160px);
    margin-inline: auto;
}

.grfd-safety-intro {
    padding: 88px 0 70px;
    max-width: 1160px;
}

.grfd-safety-intro::after {
    display: block;
    width: 82px;
    height: 4px;
    margin-top: 34px;
    background: var(--grfd-red);
    content: "";
}

.grfd-safety-intro h1 {
    max-width: 900px;
    margin-bottom: 22px;
    color: var(--grfd-navy);
    font-size: clamp(3rem, 6vw, 5rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.grfd-safety-lead {
    max-width: 880px;
    margin-bottom: 18px;
    color: var(--grfd-text);
    font-size: clamp(1.22rem, 2vw, 1.55rem);
    line-height: 1.55;
}

.grfd-safety-intro > p:last-of-type {
    max-width: 820px;
    margin-bottom: 0;
    color: var(--grfd-muted);
    font-size: 1.03rem;
    line-height: 1.75;
}

.grfd-safety-section-heading {
    max-width: 850px;
    margin-bottom: 42px;
}

.grfd-safety-section-heading h2,
.grfd-safety-feature-heading h2,
.grfd-safety-battery-heading h2,
.grfd-safety-generator-heading h2,
.grfd-safety-outdoor-heading h2,
.grfd-safety-after-heading h2,
.grfd-safety-sources-heading h2 {
    margin-bottom: 18px;
    color: var(--grfd-navy);
    font-size: clamp(2.25rem, 4.5vw, 3.65rem);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.grfd-safety-section-heading > p:last-child,
.grfd-safety-feature-heading > p:last-child,
.grfd-safety-generator-heading > p:last-child,
.grfd-safety-outdoor-heading > p:last-child,
.grfd-safety-sources-heading > p:last-child {
    color: var(--grfd-muted);
    font-size: 1.08rem;
    line-height: 1.7;
}

/* Smoke and CO alarms */
.grfd-safety-feature {
    position: relative;
    padding: clamp(46px, 6vw, 76px);
    border-top: 5px solid var(--grfd-red);
    background: var(--grfd-cream);
    box-shadow: 0 18px 50px rgba(16, 28, 53, .08);
}

.grfd-safety-feature::before {
    position: absolute;
    top: -5px;
    left: 0;
    width: 150px;
    height: 5px;
    background: var(--grfd-gold);
    content: "";
}

.grfd-safety-number,
.grfd-safety-topic-label {
    margin-bottom: 10px;
    color: var(--grfd-red);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.grfd-safety-feature-heading {
    max-width: 840px;
}

.grfd-safety-keypoints {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin: 42px 0 36px;
    border-top: 1px solid rgba(23, 40, 74, .18);
    border-bottom: 1px solid rgba(23, 40, 74, .18);
}

.grfd-safety-keypoint {
    padding: 27px 24px;
    border-right: 1px solid rgba(23, 40, 74, .18);
}

.grfd-safety-keypoint:first-child {
    padding-left: 0;
}

.grfd-safety-keypoint:last-child {
    border-right: 0;
}

.grfd-safety-keypoint strong {
    display: block;
    margin-bottom: 7px;
    color: var(--grfd-navy);
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    line-height: 1.1;
}

.grfd-safety-keypoint span {
    display: block;
    color: var(--grfd-muted);
    font-size: .92rem;
    line-height: 1.5;
}

.grfd-safety-copy {
    max-width: 900px;
}

.grfd-safety-copy p {
    line-height: 1.75;
}

/* Source treatment */
.grfd-safety-source {
    margin-top: 28px;
    padding-top: 17px;
    border-top: 1px solid var(--grfd-border);
    color: var(--grfd-muted);
    font-size: .82rem;
    line-height: 1.5;
}

.grfd-safety-source span {
    margin-right: 5px;
    font-weight: 700;
}

.grfd-safety-source a {
    color: var(--grfd-red-dark);
    font-weight: 700;
}

/* Escape plan */
.grfd-safety-escape {
    padding: 104px 0 96px;
}

.grfd-safety-escape-layout {
    display: grid;
    grid-template-columns: .88fr 1.12fr;
    gap: clamp(38px, 7vw, 86px);
    align-items: start;
}

.grfd-safety-escape-message {
    padding: 38px;
    border-left: 5px solid var(--grfd-red);
    background: var(--grfd-navy);
    color: var(--grfd-white);
}

.grfd-safety-big-message {
    margin-bottom: 18px !important;
    font-size: clamp(2rem, 4vw, 3.35rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.grfd-safety-escape-message p:last-child {
    margin-bottom: 0;
    color: rgba(255,255,255,.78);
    line-height: 1.65;
}

.grfd-safety-checklist ul,
.grfd-safety-topic-content ul,
.grfd-safety-outdoor-copy ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.grfd-safety-checklist li,
.grfd-safety-topic-content li,
.grfd-safety-outdoor-copy li {
    position: relative;
    padding: 0 0 14px 24px;
    line-height: 1.6;
}

.grfd-safety-checklist li::before,
.grfd-safety-topic-content li::before,
.grfd-safety-outdoor-copy li::before {
    position: absolute;
    top: .62em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--grfd-red);
    content: "";
}

.grfd-safety-stayout {
    display: grid;
    grid-template-columns: .65fr 1.35fr;
    gap: 36px;
    align-items: center;
    margin-top: 58px;
    padding: 30px 34px;
    border-top: 1px solid var(--grfd-border);
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-safety-stayout strong {
    color: var(--grfd-red);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    line-height: 1.05;
}

.grfd-safety-stayout p {
    margin-bottom: 0;
    line-height: 1.65;
}

.grfd-safety-door {
    max-width: 850px;
    margin: 44px 0 0 auto;
    padding-left: 26px;
    border-left: 4px solid var(--grfd-gold);
}

.grfd-safety-door h3 {
    margin-bottom: 8px;
    color: var(--grfd-navy);
    font-size: 1.5rem;
}

.grfd-safety-door p {
    margin-bottom: 0;
    color: var(--grfd-muted);
    line-height: 1.7;
}

/* Everyday risks */
.grfd-safety-everyday {
    padding: 88px 0 98px;
    border-top: 1px solid var(--grfd-border);
}

.grfd-safety-topic {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: clamp(42px, 7vw, 90px);
    padding: 52px 0;
    border-top: 1px solid var(--grfd-border);
}

.grfd-safety-topic:last-child {
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-safety-topic-reverse {
    grid-template-columns: 1.28fr .72fr;
}

.grfd-safety-topic-reverse .grfd-safety-topic-heading {
    order: 2;
}

.grfd-safety-topic-reverse .grfd-safety-topic-content {
    order: 1;
}

.grfd-safety-topic-heading h3 {
    margin-bottom: 0;
    color: var(--grfd-navy);
    font-size: clamp(1.8rem, 3vw, 2.55rem);
    line-height: 1.08;
    letter-spacing: -.025em;
}

.grfd-safety-topic-content > p {
    margin-bottom: 24px;
    color: var(--grfd-muted);
    font-size: 1.03rem;
    line-height: 1.72;
}

.grfd-safety-rule {
    display: flex;
    gap: 24px;
    align-items: center;
    margin-bottom: 28px;
    padding-bottom: 25px;
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-safety-rule strong {
    flex: 0 0 auto;
    color: var(--grfd-red);
    font-size: clamp(2.5rem, 5vw, 4.25rem);
    line-height: .9;
    letter-spacing: -.05em;
}

.grfd-safety-rule span {
    max-width: 380px;
    color: var(--grfd-navy);
    font-weight: 700;
    line-height: 1.45;
}

/* Lithium-ion batteries */
.grfd-safety-battery {
    position: relative;
    padding: clamp(58px, 8vw, 94px) max(24px, calc((100vw - 1160px) / 2));
    background: var(--grfd-navy-dark);
    color: var(--grfd-white);
}

.grfd-safety-battery::before {
    position: absolute;
    top: 0;
    left: 50%;
    width: min(calc(100% - 48px), 1160px);
    height: 5px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, var(--grfd-red) 0 76%, var(--grfd-gold) 76% 100%);
    content: "";
}

.grfd-safety-battery-heading,
.grfd-safety-battery-grid,
.grfd-safety-battery-warning,
.grfd-safety-battery > .grfd-safety-source {
    width: min(100%, 1160px);
    margin-inline: auto;
}

.grfd-safety-battery-heading {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

.grfd-safety-battery-heading .grfd-eyebrow {
    color: #efc878;
}

.grfd-safety-battery-heading h2 {
    color: var(--grfd-white);
}

.grfd-safety-battery-heading > p:last-child {
    color: rgba(255,255,255,.72);
    font-size: 1.08rem;
    line-height: 1.7;
}

.grfd-safety-battery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    margin-top: 46px;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.14);
}

.grfd-safety-battery-grid > div {
    padding: 32px 34px;
    background: var(--grfd-navy-dark);
}

.grfd-safety-battery-grid h3 {
    margin-bottom: 10px;
    color: var(--grfd-white);
    font-size: 1.3rem;
}

.grfd-safety-battery-grid p {
    margin-bottom: 0;
    color: rgba(255,255,255,.7);
    line-height: 1.65;
}

.grfd-safety-battery-warning {
    margin-top: 36px;
    padding: 27px 30px;
    border-left: 5px solid var(--grfd-red);
    background: rgba(255,255,255,.07);
}

.grfd-safety-battery-warning strong {
    display: block;
    margin-bottom: 6px;
    color: var(--grfd-white);
    font-size: 1.18rem;
}

.grfd-safety-battery-warning p {
    margin-bottom: 0;
    color: rgba(255,255,255,.75);
    line-height: 1.65;
}

.grfd-safety-source-light {
    border-color: rgba(255,255,255,.18);
    color: rgba(255,255,255,.6);
}

.grfd-safety-source-light a {
    color: #f2cf8a;
}

/* Generator */
.grfd-safety-generator {
    padding: 104px 0 98px;
}

.grfd-safety-generator-heading {
    max-width: 850px;
    margin-bottom: 45px;
}

.grfd-safety-generator-layout {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: clamp(42px, 7vw, 90px);
    align-items: stretch;
}

.grfd-safety-generator-rule {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 42px;
    background: var(--grfd-cream);
    border-top: 5px solid var(--grfd-gold);
}

.grfd-safety-generator-rule strong {
    display: block;
    margin-bottom: 15px;
    color: var(--grfd-red);
    font-size: clamp(4rem, 8vw, 6.5rem);
    line-height: .85;
    letter-spacing: -.06em;
}

.grfd-safety-generator-rule p {
    margin-bottom: 0;
    color: var(--grfd-navy);
    font-weight: 700;
    line-height: 1.55;
}

.grfd-safety-generator-copy {
    padding: 30px 0;
}

.grfd-safety-generator-copy h3 {
    margin-bottom: 18px;
    color: var(--grfd-navy);
    font-size: clamp(1.65rem, 3vw, 2.4rem);
    line-height: 1.12;
}

.grfd-safety-generator-copy p {
    color: var(--grfd-muted);
    line-height: 1.72;
}

/* Outdoor burning */
.grfd-safety-outdoor {
    padding: clamp(52px, 7vw, 82px);
    background: var(--grfd-cream);
    box-shadow: 0 16px 45px rgba(16,28,53,.06);
}

.grfd-safety-outdoor-heading {
    max-width: 880px;
    margin-bottom: 44px;
}

.grfd-safety-outdoor-layout {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: clamp(40px, 7vw, 80px);
}

.grfd-safety-outdoor-copy > p {
    margin-bottom: 26px;
    line-height: 1.72;
}

.grfd-safety-pa-resource {
    align-self: start;
    padding: 32px;
    background: var(--grfd-white);
    border-top: 4px solid var(--grfd-red);
    box-shadow: 0 12px 30px rgba(16,28,53,.07);
}

.grfd-safety-pa-resource > span {
    display: block;
    margin-bottom: 9px;
    color: var(--grfd-red);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.grfd-safety-pa-resource h3 {
    margin-bottom: 12px;
    color: var(--grfd-navy);
    font-size: 1.7rem;
}

.grfd-safety-pa-resource p {
    color: var(--grfd-muted);
    line-height: 1.65;
}

.grfd-safety-resource-link {
    display: inline-block;
    margin-top: 8px;
    color: var(--grfd-red-dark);
    font-weight: 800;
    text-decoration-thickness: 2px;
}

/* Every household */
.grfd-safety-everyone {
    padding: 104px 0 96px;
}

.grfd-safety-everyone-layout {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--grfd-border);
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-safety-everyone-layout > div {
    padding: 34px 32px;
    border-right: 1px solid var(--grfd-border);
}

.grfd-safety-everyone-layout > div:first-child {
    padding-left: 0;
}

.grfd-safety-everyone-layout > div:last-child {
    padding-right: 0;
    border-right: 0;
}

.grfd-safety-everyone-layout h3 {
    margin-bottom: 12px;
    color: var(--grfd-navy);
    font-size: 1.35rem;
}

.grfd-safety-everyone-layout p {
    margin-bottom: 0;
    color: var(--grfd-muted);
    line-height: 1.7;
}

/* After a fire */
.grfd-safety-after {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: clamp(42px, 7vw, 90px);
    padding: 68px clamp(36px, 6vw, 72px);
    background: var(--grfd-navy);
    color: var(--grfd-white);
}

.grfd-safety-after-heading .grfd-eyebrow {
    color: #efc878;
}

.grfd-safety-after-heading h2 {
    color: var(--grfd-white);
}

.grfd-safety-after-content p {
    color: rgba(255,255,255,.76);
    line-height: 1.72;
}

.grfd-safety-after .grfd-safety-resource-link {
    color: #f2cf8a;
}

/* Trusted sources */
.grfd-safety-sources {
    padding: 100px 0 28px;
}

.grfd-safety-sources-heading {
    max-width: 900px;
    margin-bottom: 45px;
}

.grfd-safety-sources-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-top: 1px solid var(--grfd-border);
    border-left: 1px solid var(--grfd-border);
}

.grfd-safety-source-item {
    display: block;
    min-height: 210px;
    padding: 32px 34px;
    border-right: 1px solid var(--grfd-border);
    border-bottom: 1px solid var(--grfd-border);
    color: inherit;
    text-decoration: none;
    transition: background-color .2s ease, transform .2s ease;
}

.grfd-safety-source-item:hover,
.grfd-safety-source-item:focus-visible {
    background: var(--grfd-cream);
    color: inherit;
}

.grfd-safety-source-item > span {
    display: block;
    margin-bottom: 9px;
    color: var(--grfd-red);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.grfd-safety-source-item strong {
    display: block;
    margin-bottom: 12px;
    color: var(--grfd-navy);
    font-size: 1.28rem;
    line-height: 1.25;
}

.grfd-safety-source-item p {
    margin-bottom: 0;
    color: var(--grfd-muted);
    line-height: 1.62;
}

/* ==========================================================
   FIRE SAFETY - TABLET
   ========================================================== */

@media (max-width: 900px) {
    .grfd-safety-keypoints {
        grid-template-columns: repeat(2, 1fr);
    }

    .grfd-safety-keypoint:nth-child(2) {
        border-right: 0;
    }

    .grfd-safety-keypoint:nth-child(-n+2) {
        border-bottom: 1px solid rgba(23,40,74,.18);
    }

    .grfd-safety-keypoint:nth-child(3) {
        padding-left: 0;
    }

    .grfd-safety-escape-layout,
    .grfd-safety-generator-layout,
    .grfd-safety-outdoor-layout,
    .grfd-safety-after {
        grid-template-columns: 1fr;
    }

    .grfd-safety-topic,
    .grfd-safety-topic-reverse {
        grid-template-columns: .8fr 1.2fr;
        gap: 40px;
    }

    .grfd-safety-everyone-layout {
        grid-template-columns: 1fr;
    }

    .grfd-safety-everyone-layout > div,
    .grfd-safety-everyone-layout > div:first-child,
    .grfd-safety-everyone-layout > div:last-child {
        padding: 28px 0;
        border-right: 0;
        border-bottom: 1px solid var(--grfd-border);
    }

    .grfd-safety-everyone-layout > div:last-child {
        border-bottom: 0;
    }
}

/* ==========================================================
   FIRE SAFETY - MOBILE
   ========================================================== */

@media (max-width: 700px) {
    .grfd-safety-page {
        padding-bottom: 54px;
    }

    .grfd-safety-intro,
    .grfd-safety-feature,
    .grfd-safety-escape,
    .grfd-safety-everyday,
    .grfd-safety-generator,
    .grfd-safety-outdoor,
    .grfd-safety-everyone,
    .grfd-safety-after,
    .grfd-safety-sources {
        width: min(calc(100% - 32px), 1160px);
    }

    .grfd-safety-intro {
        padding: 62px 0 52px;
    }

    .grfd-safety-feature {
        padding: 38px 24px;
    }

    .grfd-safety-keypoints {
        grid-template-columns: 1fr;
        margin: 32px 0 28px;
    }

    .grfd-safety-keypoint,
    .grfd-safety-keypoint:first-child,
    .grfd-safety-keypoint:nth-child(3) {
        padding: 20px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(23,40,74,.18);
    }

    .grfd-safety-keypoint:last-child {
        border-bottom: 0;
    }

    .grfd-safety-escape,
    .grfd-safety-generator,
    .grfd-safety-everyone,
    .grfd-safety-sources {
        padding-top: 72px;
        padding-bottom: 68px;
    }

    .grfd-safety-escape-message {
        padding: 30px 25px;
    }

    .grfd-safety-stayout {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 40px;
        padding: 25px 0;
    }

    .grfd-safety-door {
        margin-top: 34px;
    }

    .grfd-safety-everyday {
        padding: 68px 0 72px;
    }

    .grfd-safety-topic,
    .grfd-safety-topic-reverse {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 40px 0;
    }

    .grfd-safety-topic-reverse .grfd-safety-topic-heading,
    .grfd-safety-topic-reverse .grfd-safety-topic-content {
        order: initial;
    }

    .grfd-safety-rule {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .grfd-safety-battery {
        padding: 66px 16px;
    }

    .grfd-safety-battery::before {
        width: calc(100% - 32px);
    }

    .grfd-safety-battery-grid,
    .grfd-safety-sources-list {
        grid-template-columns: 1fr;
    }

    .grfd-safety-battery-grid > div,
    .grfd-safety-source-item {
        padding: 26px 24px;
    }

    .grfd-safety-generator-rule {
        padding: 34px 28px;
    }

    .grfd-safety-outdoor {
        padding: 46px 24px;
    }

    .grfd-safety-pa-resource {
        padding: 27px 24px;
    }

    .grfd-safety-after {
        padding: 48px 26px;
    }

    .grfd-safety-source-item {
        min-height: 0;
    }
}


/* ==========================================================
   JOIN US PAGE
   ========================================================== */

.grfd-join-page {
    overflow: hidden;
    padding-bottom: 80px;
    background: var(--grfd-white);
    color: var(--grfd-text);
}

.grfd-join-page h1,
.grfd-join-page h2,
.grfd-join-page h3,
.grfd-join-page p {
    margin-top: 0;
}

.grfd-join-intro,
.grfd-join-opening,
.grfd-join-ways,
.grfd-join-training,
.grfd-join-takes,
.grfd-join-return,
.grfd-join-legacy,
.grfd-join-next {
    width: min(calc(100% - 48px), 1160px);
    margin-inline: auto;
}

/* Intro */
.grfd-join-intro {
    position: relative;
    padding: 92px 0 78px;
}

.grfd-join-intro::after {
    display: block;
    width: 86px;
    height: 5px;
    margin-top: 36px;
    background: linear-gradient(90deg, var(--grfd-red) 0 72%, var(--grfd-gold) 72% 100%);
    content: "";
}

.grfd-join-intro h1 {
    max-width: 980px;
    margin-bottom: 26px;
    color: var(--grfd-navy);
    font-size: clamp(3.4rem, 7vw, 6.2rem);
    line-height: .92;
    letter-spacing: -.055em;
}

.grfd-join-lead {
    max-width: 850px;
    margin-bottom: 0;
    color: var(--grfd-muted);
    font-size: clamp(1.22rem, 2vw, 1.55rem);
    line-height: 1.65;
}

/* Opening */
.grfd-join-opening {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: clamp(46px, 8vw, 100px);
    align-items: center;
    padding: clamp(54px, 7vw, 82px);
    background: var(--grfd-cream);
    border-top: 5px solid var(--grfd-red);
    box-shadow: 0 18px 50px rgba(16,28,53,.08);
}

.grfd-join-opening-message {
    padding-right: clamp(0px, 3vw, 34px);
}

.grfd-join-opening-message p {
    margin-bottom: 10px;
    color: var(--grfd-red);
    font-size: clamp(1.45rem, 2.5vw, 2.1rem);
    font-weight: 800;
    line-height: 1.15;
}

.grfd-join-opening-message strong {
    display: block;
    color: var(--grfd-navy);
    font-size: clamp(2.4rem, 5vw, 4.4rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.grfd-join-opening-copy {
    padding-left: clamp(0px, 3vw, 38px);
    border-left: 1px solid rgba(23,40,74,.18);
}

.grfd-join-opening-copy h2 {
    margin-bottom: 20px;
    color: var(--grfd-navy);
    font-size: clamp(2rem, 3.6vw, 3rem);
    line-height: 1.05;
    letter-spacing: -.03em;
}

.grfd-join-opening-copy p {
    color: var(--grfd-muted);
    line-height: 1.75;
}

.grfd-join-opening-copy p:last-child {
    margin-bottom: 0;
}

/* Shared section heading */
.grfd-join-section-heading {
    max-width: 880px;
    margin-bottom: 48px;
}

.grfd-join-section-heading h2,
.grfd-join-training-heading h2,
.grfd-join-return-heading h2,
.grfd-join-legacy-copy h2,
.grfd-join-next-heading h2 {
    margin-bottom: 18px;
    color: var(--grfd-navy);
    font-size: clamp(2.35rem, 4.6vw, 3.85rem);
    line-height: 1.02;
    letter-spacing: -.04em;
}

.grfd-join-section-heading > p:last-child,
.grfd-join-next-heading > p:last-child {
    color: var(--grfd-muted);
    font-size: 1.08rem;
    line-height: 1.72;
}

/* Ways to serve */
.grfd-join-ways {
    padding: 108px 0 100px;
}

.grfd-join-role-feature,
.grfd-join-role-support {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(44px, 8vw, 100px);
    padding: 52px 0;
    border-top: 1px solid var(--grfd-border);
}

.grfd-join-role-support {
    grid-template-columns: 1.2fr .8fr;
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-join-role-support-heading {
    order: 2;
}

.grfd-join-role-support-copy {
    order: 1;
}

.grfd-join-role-feature-heading > span,
.grfd-join-role-support-heading > span {
    display: block;
    margin-bottom: 11px;
    color: var(--grfd-red);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.grfd-join-role-feature-heading h3,
.grfd-join-role-support-heading h3 {
    margin-bottom: 0;
    color: var(--grfd-navy);
    font-size: clamp(1.85rem, 3.4vw, 2.8rem);
    line-height: 1.05;
    letter-spacing: -.03em;
}

.grfd-join-role-feature-copy p,
.grfd-join-role-support-copy p {
    color: var(--grfd-muted);
    font-size: 1.03rem;
    line-height: 1.75;
}

.grfd-join-role-feature-copy p:last-child,
.grfd-join-role-support-copy p:last-child {
    margin-bottom: 0;
}

/* Training */
.grfd-join-training {
    padding: clamp(58px, 8vw, 88px);
    background: var(--grfd-navy-dark);
    color: var(--grfd-white);
    border-top: 5px solid var(--grfd-gold);
}

.grfd-join-training-heading {
    max-width: 900px;
    margin-bottom: 46px;
}

.grfd-join-training-heading .grfd-eyebrow {
    color: #efc878;
}

.grfd-join-training-heading h2 {
    color: var(--grfd-white);
}

.grfd-join-training-layout {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: clamp(46px, 8vw, 96px);
    align-items: start;
}

.grfd-join-training-statement {
    padding: 32px 0 32px 30px;
    border-left: 5px solid var(--grfd-red);
}

.grfd-join-training-statement strong,
.grfd-join-training-statement span {
    display: block;
}

.grfd-join-training-statement strong {
    margin-bottom: 10px;
    color: var(--grfd-white);
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1;
    letter-spacing: -.035em;
}

.grfd-join-training-statement span {
    color: #efc878;
    font-size: clamp(1.35rem, 2.5vw, 2rem);
    font-weight: 700;
    line-height: 1.15;
}

.grfd-join-training-copy p {
    color: rgba(255,255,255,.76);
    font-size: 1.04rem;
    line-height: 1.78;
}

.grfd-join-training-copy p:last-child {
    margin-bottom: 0;
}

/* What it takes */
.grfd-join-takes {
    padding: 106px 0 98px;
}

.grfd-join-qualities {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-top: 1px solid var(--grfd-border);
    border-left: 1px solid var(--grfd-border);
}

.grfd-join-qualities > div {
    position: relative;
    min-height: 215px;
    padding: 36px 38px;
    border-right: 1px solid var(--grfd-border);
    border-bottom: 1px solid var(--grfd-border);
}

.grfd-join-qualities > div > span {
    display: none;
}

.grfd-join-qualities strong {
    display: block;
    margin-bottom: 14px;
    color: var(--grfd-navy);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    line-height: 1.15;
}

.grfd-join-qualities strong::before {
    display: block;
    width: 42px;
    height: 4px;
    margin-bottom: 22px;
    background: var(--grfd-red);
    content: "";
}

.grfd-join-qualities p {
    max-width: 430px;
    margin-bottom: 0;
    color: var(--grfd-muted);
    line-height: 1.7;
}

/* What you gain */
.grfd-join-return {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: clamp(52px, 8vw, 104px);
    padding: 86px clamp(42px, 7vw, 82px);
    background: var(--grfd-cream);
}

.grfd-join-return-heading .grfd-eyebrow {
    margin-bottom: 12px;
}

.grfd-join-return-heading h2 {
    margin-bottom: 0;
}

.grfd-join-return-content > p {
    margin-bottom: 34px;
    color: var(--grfd-muted);
    font-size: 1.05rem;
    line-height: 1.75;
}

.grfd-join-return-list {
    border-top: 1px solid rgba(23,40,74,.18);
}

.grfd-join-return-list > div {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 24px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(23,40,74,.18);
}

.grfd-join-return-list strong {
    color: var(--grfd-red);
    font-size: 1.06rem;
}

.grfd-join-return-list span {
    color: var(--grfd-text);
    line-height: 1.55;
}

/* Emotional centerpiece */
.grfd-join-showed-up {
    margin: 104px 0;
    padding: clamp(74px, 10vw, 128px) 24px;
    background:
        linear-gradient(rgba(16,28,53,.96), rgba(16,28,53,.96)),
        var(--grfd-navy-dark);
    text-align: center;
}

.grfd-join-showed-up-inner {
    width: min(100%, 980px);
    margin-inline: auto;
}

.grfd-join-showed-up p {
    margin-bottom: 18px;
    color: #efc878;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    font-weight: 700;
    letter-spacing: .02em;
}

.grfd-join-showed-up h2 {
    margin-bottom: 0;
    color: var(--grfd-white);
    font-size: clamp(3rem, 6.5vw, 5.6rem);
    line-height: .96;
    letter-spacing: -.05em;
}

/* Legacy */
.grfd-join-legacy {
    display: grid;
    grid-template-columns: .62fr 1.38fr;
    gap: clamp(48px, 8vw, 100px);
    align-items: center;
    padding: 28px 0 108px;
}

.grfd-join-legacy-year {
    padding: 42px 34px;
    border-top: 5px solid var(--grfd-red);
    background: var(--grfd-navy);
    color: var(--grfd-white);
    text-align: center;
    box-shadow: 0 18px 45px rgba(16,28,53,.12);
}

.grfd-join-legacy-year span,
.grfd-join-legacy-year strong {
    display: block;
}

.grfd-join-legacy-year span {
    margin-bottom: 10px;
    color: #efc878;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.grfd-join-legacy-year strong {
    font-size: clamp(4.2rem, 8vw, 7rem);
    line-height: .9;
    letter-spacing: -.06em;
}

.grfd-join-legacy-copy p:not(.grfd-eyebrow) {
    color: var(--grfd-muted);
    line-height: 1.75;
}

/* How to join */
.grfd-join-next {
    padding: clamp(58px, 8vw, 84px);
    background: var(--grfd-cream);
    border-top: 5px solid var(--grfd-gold);
}

.grfd-join-next-heading {
    max-width: 880px;
    margin-bottom: 44px;
}

.grfd-join-next-placeholder {
    max-width: 900px;
    padding: 34px 38px;
    background: var(--grfd-white);
    border-left: 5px solid var(--grfd-red);
    box-shadow: 0 12px 32px rgba(16,28,53,.07);
}

.grfd-join-next-placeholder > span {
    display: block;
    margin-bottom: 8px;
    color: var(--grfd-red);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.grfd-join-next-placeholder h3 {
    margin-bottom: 12px;
    color: var(--grfd-navy);
    font-size: clamp(1.55rem, 2.8vw, 2.15rem);
    line-height: 1.15;
}

.grfd-join-next-placeholder p {
    margin-bottom: 0;
    color: var(--grfd-muted);
    line-height: 1.7;
}

/* ==========================================================
   JOIN US - TABLET
   ========================================================== */

@media (max-width: 900px) {
    .grfd-join-opening,
    .grfd-join-training-layout,
    .grfd-join-return,
    .grfd-join-legacy {
        grid-template-columns: 1fr;
    }

    .grfd-join-opening-copy {
        padding: 36px 0 0;
        border-top: 1px solid rgba(23,40,74,.18);
        border-left: 0;
    }

    .grfd-join-role-feature,
    .grfd-join-role-support {
        grid-template-columns: .8fr 1.2fr;
        gap: 40px;
    }

    .grfd-join-return {
        gap: 42px;
    }

    .grfd-join-legacy-year {
        width: min(100%, 390px);
    }
}

/* ==========================================================
   JOIN US - MOBILE
   ========================================================== */

@media (max-width: 700px) {
    .grfd-join-page {
        padding-bottom: 54px;
    }

    .grfd-join-intro,
    .grfd-join-opening,
    .grfd-join-ways,
    .grfd-join-training,
    .grfd-join-takes,
    .grfd-join-return,
    .grfd-join-legacy,
    .grfd-join-next {
        width: min(calc(100% - 32px), 1160px);
    }

    .grfd-join-intro {
        padding: 64px 0 54px;
    }

    .grfd-join-opening {
        padding: 38px 26px;
    }

    .grfd-join-ways,
    .grfd-join-takes {
        padding-top: 74px;
        padding-bottom: 70px;
    }

    .grfd-join-role-feature,
    .grfd-join-role-support {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 40px 0;
    }

    .grfd-join-role-support-heading,
    .grfd-join-role-support-copy {
        order: initial;
    }

    .grfd-join-training {
        padding: 52px 26px;
    }

    .grfd-join-training-statement {
        padding: 26px 0 26px 22px;
    }

    .grfd-join-qualities {
        grid-template-columns: 1fr;
    }

    .grfd-join-qualities > div {
        min-height: 0;
        padding: 30px 28px;
    }

    .grfd-join-return {
        padding: 48px 26px;
    }

    .grfd-join-return-list > div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .grfd-join-showed-up {
        margin: 74px 0;
        padding: 76px 22px;
    }

    .grfd-join-legacy {
        padding-bottom: 76px;
    }

    .grfd-join-next {
        padding: 48px 26px;
    }

    .grfd-join-next-placeholder {
        padding: 28px 24px;
    }
}


/* ==========================================================
   HEADER BRANDING CLEANUP - CHILD TEMPLATE
   Hide Cassiopeia's default site-brand/title row.
   Station 59 uses the custom navigation/header treatment.
   ========================================================== */

.container-header .navbar-brand {
    display: none !important;
}

/* Remove the empty first header grid row left by the hidden brand module */
.container-header > .grid-child:first-child:has(.navbar-brand) {
    display: none !important;
}


/* ==========================================================
   INTERIOR HERO SYSTEM - VERSION 15
   ========================================================== */
.grfd-interior-hero{position:relative;width:min(calc(100% - 48px),1240px);min-height:440px;margin:28px auto 0;overflow:hidden;background:var(--grfd-navy-dark);isolation:isolate}
.grfd-interior-hero-image{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover}
.grfd-interior-hero-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(10,19,38,.94) 0%,rgba(10,19,38,.84) 34%,rgba(10,19,38,.48) 59%,rgba(10,19,38,.10) 82%,rgba(10,19,38,.04) 100%)}
.grfd-interior-hero::after{position:absolute;right:0;bottom:0;left:0;height:5px;background:linear-gradient(90deg,var(--grfd-red) 0 74%,var(--grfd-gold) 74% 100%);content:""}
.grfd-interior-hero-content{position:relative;z-index:1;display:flex;min-height:440px;max-width:710px;padding:68px clamp(42px,6vw,76px);flex-direction:column;justify-content:center}
.grfd-interior-hero-eyebrow{margin:0 0 15px;color:#efc878;font-size:.78rem;font-weight:800;letter-spacing:.16em;line-height:1.3;text-transform:uppercase}
.grfd-interior-hero h1{max-width:700px;margin:0 0 22px;color:var(--grfd-white);font-size:clamp(3.25rem,6vw,5.65rem);font-weight:800;line-height:.94;letter-spacing:-.05em;text-shadow:0 3px 20px rgba(0,0,0,.22)}
.grfd-interior-hero-lead{max-width:650px;margin:0;color:rgba(255,255,255,.86);font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.65}
.grfd-join-hero{margin-bottom:0}
.grfd-join-hero .grfd-interior-hero-image{object-position:58% center}
.grfd-join-page>.grfd-join-opening{margin-top:0}

@media(max-width:900px){
.grfd-interior-hero{min-height:410px}
.grfd-interior-hero-content{min-height:410px;max-width:650px;padding:58px 44px}
.grfd-interior-hero-overlay{background:linear-gradient(90deg,rgba(10,19,38,.93) 0%,rgba(10,19,38,.80) 46%,rgba(10,19,38,.38) 78%,rgba(10,19,38,.15) 100%)}
}
@media(max-width:700px){
.grfd-interior-hero{width:min(calc(100% - 32px),1240px);min-height:520px;margin-top:16px}
.grfd-interior-hero-image{object-position:center center}
.grfd-join-hero .grfd-interior-hero-image{object-position:52% center}
.grfd-interior-hero-overlay{background:linear-gradient(180deg,rgba(10,19,38,.20) 0%,rgba(10,19,38,.35) 35%,rgba(10,19,38,.90) 72%,rgba(10,19,38,.97) 100%)}
.grfd-interior-hero-content{min-height:520px;max-width:none;padding:48px 26px 44px;justify-content:flex-end}
.grfd-interior-hero h1{margin-bottom:18px;font-size:clamp(2.8rem,13vw,4.15rem);line-height:.95}
.grfd-interior-hero-lead{font-size:.98rem;line-height:1.55}
}
@media(max-width:430px){
.grfd-interior-hero{width:100%;min-height:500px;margin-top:0}
.grfd-interior-hero-content{min-height:500px;padding-inline:22px}
}

/* ==========================================================
   CONTACT PAGE - VERSION 16
   ========================================================== */
.grfd-contact-page{color:var(--grfd-text)}
.grfd-contact-hero{margin-bottom:0}
.grfd-contact-hero .grfd-interior-hero-image{object-position:center center}

.grfd-contact-intro{display:grid;width:min(calc(100% - 48px),var(--grfd-container));margin:0 auto;padding:76px clamp(38px,5vw,72px);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(42px,7vw,96px);align-items:start;background:var(--grfd-cream)}
.grfd-contact-intro-heading h2{max-width:520px;margin:0;color:var(--grfd-navy);font-size:clamp(2.15rem,4vw,3.65rem);font-weight:800;line-height:1.02;letter-spacing:-.04em}
.grfd-contact-intro-copy{max-width:650px;padding-top:2px}
.grfd-contact-intro-copy p{margin:0 0 20px;color:var(--grfd-muted);font-size:1.08rem;line-height:1.8}
.grfd-contact-intro-copy p:last-child{margin-bottom:0}

.grfd-contact-information{display:grid;width:min(calc(100% - 48px),var(--grfd-container));margin:0 auto;padding:78px clamp(38px,5vw,72px);grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(52px,8vw,110px);background:var(--grfd-white)}
.grfd-contact-label{margin:0 0 13px;color:var(--grfd-red);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.grfd-contact-station h2{max-width:620px;margin:0 0 42px;color:var(--grfd-navy);font-size:clamp(2rem,3.5vw,3.25rem);font-weight:800;line-height:1.05;letter-spacing:-.035em}
.grfd-contact-address,.grfd-contact-mailing{position:relative;padding:0 0 0 25px;border-left:4px solid var(--grfd-gold)}
.grfd-contact-address{margin-bottom:34px}
.grfd-contact-address strong,.grfd-contact-mailing strong{display:block;margin-bottom:8px;color:var(--grfd-navy);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.grfd-contact-address p,.grfd-contact-mailing p{margin:0;color:var(--grfd-text);font-size:1.08rem;line-height:1.7}

.grfd-contact-methods{display:flex;flex-direction:column;gap:18px}
.grfd-contact-method{padding:30px 32px;border:1px solid var(--grfd-border);background:var(--grfd-light)}
.grfd-contact-method span{display:block;margin-bottom:10px;color:var(--grfd-muted);font-size:.75rem;font-weight:800;letter-spacing:.12em;line-height:1.4;text-transform:uppercase}
.grfd-contact-method strong{display:block;color:var(--grfd-navy);font-size:clamp(1.7rem,3vw,2.45rem);font-weight:800;line-height:1.05}
.grfd-contact-method strong a{color:var(--grfd-navy);text-decoration:none}
.grfd-contact-method strong a:hover,.grfd-contact-method strong a:focus{color:var(--grfd-red);text-decoration:underline;text-underline-offset:4px}
.grfd-contact-method p{margin:15px 0 0;color:var(--grfd-muted);font-size:.95rem;line-height:1.65}
.grfd-contact-method:last-child{border-color:var(--grfd-red);background:#fff7f7}
.grfd-contact-method:last-child span{color:var(--grfd-red)}
.grfd-contact-method:last-child strong{color:var(--grfd-red)}

.grfd-contact-visit{display:grid;width:min(calc(100% - 48px),var(--grfd-container));margin:0 auto;padding:78px clamp(38px,5vw,72px);grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:clamp(50px,8vw,105px);align-items:center;background:var(--grfd-light)}
.grfd-contact-visit-heading h2{margin:0 0 22px;color:var(--grfd-navy);font-size:clamp(2.15rem,4vw,3.6rem);font-weight:800;line-height:1.02;letter-spacing:-.04em}
.grfd-contact-visit-heading>p:last-child{max-width:650px;margin:0;color:var(--grfd-muted);font-size:1.05rem;line-height:1.75}
.grfd-contact-visit-address{padding:34px 36px;border-top:5px solid var(--grfd-gold);background:var(--grfd-white);box-shadow:0 12px 32px rgba(16,28,53,.08)}
.grfd-contact-visit-address span{display:block;margin-bottom:14px;color:var(--grfd-red);font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.grfd-contact-visit-address strong{display:block;margin-bottom:26px;color:var(--grfd-navy);font-size:1.32rem;line-height:1.55}
.grfd-contact-visit-address a{display:inline-flex;min-height:46px;padding:12px 22px;align-items:center;justify-content:center;background:var(--grfd-navy);color:var(--grfd-white);font-size:.9rem;font-weight:800;letter-spacing:.04em;text-decoration:none;text-transform:uppercase;transition:background-color .2s ease,transform .2s ease}
.grfd-contact-visit-address a:hover,.grfd-contact-visit-address a:focus{background:var(--grfd-red);color:var(--grfd-white);transform:translateY(-1px)}

.grfd-contact-emergency{display:grid;width:min(calc(100% - 48px),var(--grfd-container));margin:0 auto 52px;padding:66px clamp(38px,5vw,72px);grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);gap:clamp(42px,7vw,90px);align-items:center;background:var(--grfd-navy-dark);color:var(--grfd-white)}
.grfd-contact-emergency-number{display:flex;min-height:190px;padding:28px;flex-direction:column;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.16);border-top:5px solid var(--grfd-red);text-align:center}
.grfd-contact-emergency-number span{margin-bottom:5px;color:#efc878;font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.grfd-contact-emergency-number strong{color:var(--grfd-white);font-size:clamp(4.5rem,8vw,7rem);font-weight:900;line-height:.95;letter-spacing:-.06em}
.grfd-contact-emergency-copy .grfd-eyebrow{color:#efc878}
.grfd-contact-emergency-copy h2{max-width:700px;margin:0 0 20px;color:var(--grfd-white);font-size:clamp(2rem,3.7vw,3.4rem);font-weight:800;line-height:1.04;letter-spacing:-.04em}
.grfd-contact-emergency-copy>p:last-child{max-width:720px;margin:0;color:rgba(255,255,255,.78);font-size:1.02rem;line-height:1.75}

@media(max-width:900px){
.grfd-contact-intro,.grfd-contact-information,.grfd-contact-visit,.grfd-contact-emergency{grid-template-columns:1fr;gap:38px}
.grfd-contact-intro,.grfd-contact-information,.grfd-contact-visit{padding-top:62px;padding-bottom:62px}
.grfd-contact-intro-copy{padding-top:0}
.grfd-contact-information{gap:50px}
.grfd-contact-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.grfd-contact-emergency{grid-template-columns:minmax(180px,.5fr) minmax(0,1.5fr);gap:40px;padding-top:54px;padding-bottom:54px}
.grfd-contact-emergency-number{min-height:170px}
}

@media(max-width:700px){
.grfd-contact-hero .grfd-interior-hero-image{object-position:center center}
.grfd-contact-intro,.grfd-contact-information,.grfd-contact-visit,.grfd-contact-emergency{width:min(calc(100% - 32px),var(--grfd-container));padding:48px 26px}
.grfd-contact-intro{gap:30px}
.grfd-contact-intro-copy p{font-size:1rem;line-height:1.7}
.grfd-contact-information{gap:42px}
.grfd-contact-station h2{margin-bottom:34px}
.grfd-contact-methods{grid-template-columns:1fr}
.grfd-contact-method{padding:26px 24px}
.grfd-contact-visit{gap:34px}
.grfd-contact-visit-address{padding:30px 26px}
.grfd-contact-emergency{grid-template-columns:1fr;gap:34px;margin-bottom:32px}
.grfd-contact-emergency-number{min-height:155px}
}

@media(max-width:430px){
.grfd-contact-intro,.grfd-contact-information,.grfd-contact-visit,.grfd-contact-emergency{width:100%;padding-right:22px;padding-left:22px}
.grfd-contact-emergency{margin-bottom:0}
.grfd-contact-address,.grfd-contact-mailing{padding-left:18px}
.grfd-contact-visit-address{padding:27px 22px}
}
