/* =============================================================================
   Bootstrap 5 Color Scheme — override these variables per project
   ============================================================================= */

:root {
    /* Gather HQs palette, sampled from gather-hqs-social.png */
    --gh-brand-navy: #0b1d39;
    --gh-brand-navy-hover: #152f55;
    --gh-brand-orange: #db5c1c;
    --gh-brand-orange-dark: #a6400a;
    --gh-brand-sage: #516543;
    --gh-brand-sage-dark: #3f512f;
    --gh-brand-cream: #fbf0db;
    --gh-brand-paper: #fffaf0;

    /* Brand colors */
    --bs-blue:    #0b1d39;
    --bs-indigo:  #6610f2;
    --bs-purple:  #6f42c1;
    --bs-pink:    #d63384;
    --bs-red:     #dc3545;
    --bs-orange:  #db5c1c;
    --bs-yellow:  #ffc107;
    --bs-green:   #516543;
    --bs-teal:    #20c997;
    --bs-cyan:    #0dcaf0;
    --bs-white:   #ffffff;
    --bs-gray:    #6c757d;
    --bs-gray-dark: #343a40;
    --bs-black:   #000000;

    /* Theme colors */
    --bs-primary:   #0b1d39;
    --bs-secondary: #516543;
    --bs-success:   #198754;
    --bs-info:      #0dcaf0;
    --bs-warning:   #db5c1c;
    --bs-danger:    #dc3545;
    --bs-light:     #fbf0db;
    --bs-dark:      #0b1d39;

    /* Theme color RGB values (used by Bootstrap utilities) */
    --bs-primary-rgb:   11, 29, 57;
    --bs-secondary-rgb: 81, 101, 67;
    --bs-success-rgb:   25, 135, 84;
    --bs-info-rgb:      13, 202, 240;
    --bs-warning-rgb:   219, 92, 28;
    --bs-danger-rgb:    220, 53, 69;
    --bs-light-rgb:     251, 240, 219;
    --bs-dark-rgb:      11, 29, 57;

    /* Body */
    --bs-body-color:      #0b1d39;
    --bs-body-bg:         #fffdf8;
    --bs-body-font-family: system-ui, -apple-system, sans-serif;
    --bs-body-font-size:  1rem;
    --bs-body-line-height: 1.5;

    /* Links */
    --bs-link-color:       #3f512f;
    --bs-link-hover-color: #a6400a;

    /* Borders */
    --bs-border-color: #ded3c2;
    --bs-border-radius: 0.375rem;

    /* Grays */
    --bs-gray-100: #f8f9fa;
    --bs-gray-200: #e9ecef;
    --bs-gray-300: #dee2e6;
    --bs-gray-400: #ced4da;
    --bs-gray-500: #adb5bd;
    --bs-gray-600: #6c757d;
    --bs-gray-700: #495057;
    --bs-gray-800: #343a40;
    --bs-gray-900: #212529;
}

/* =============================================================================
   Global styles
   ============================================================================= */

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

body {
    margin: 0;
    font-family: var(--bs-body-font-family);
    font-size: var(--bs-body-font-size);
    line-height: var(--bs-body-line-height);
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
}

a {
    color: var(--bs-link-color);
}

a:hover {
    color: var(--bs-link-hover-color);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--gh-brand-orange);
    outline-offset: 3px;
}

.skip-link {
    position: fixed;
    left: 1rem;
    top: -5rem;
    z-index: 2000;
    padding: .75rem 1rem;
    background: var(--gh-brand-cream);
    color: var(--gh-brand-navy);
    border: 2px solid var(--gh-brand-navy);
}

.skip-link:focus {
    top: 1rem;
}

button,
.btn,
input[type="submit"] {
    min-height: 44px;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--gh-brand-navy);
    --bs-btn-border-color: var(--gh-brand-navy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--gh-brand-navy-hover);
    --bs-btn-hover-border-color: var(--gh-brand-navy-hover);
    --bs-btn-focus-shadow-rgb: 219, 92, 28;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #03142e;
    --bs-btn-active-border-color: #03142e;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--gh-brand-navy);
    --bs-btn-disabled-border-color: var(--gh-brand-navy);
}

.btn-outline-primary {
    --bs-btn-color: var(--gh-brand-navy);
    --bs-btn-border-color: var(--gh-brand-navy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--gh-brand-navy);
    --bs-btn-hover-border-color: var(--gh-brand-navy);
    --bs-btn-focus-shadow-rgb: 11, 29, 57;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--gh-brand-navy);
    --bs-btn-active-border-color: var(--gh-brand-navy);
}

.btn-outline-secondary {
    --bs-btn-color: var(--gh-brand-sage-dark);
    --bs-btn-border-color: var(--gh-brand-sage);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--gh-brand-sage);
    --bs-btn-hover-border-color: var(--gh-brand-sage);
    --bs-btn-focus-shadow-rgb: 81, 101, 67;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--gh-brand-sage);
    --bs-btn-active-border-color: var(--gh-brand-sage);
}

.btn-link {
    --bs-btn-color: var(--bs-link-color);
    --bs-btn-hover-color: var(--bs-link-hover-color);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--gh-brand-sage);
    box-shadow: 0 0 0 .25rem rgba(81, 101, 67, .2);
}

.form-check-input:checked {
    border-color: var(--gh-brand-navy);
    background-color: var(--gh-brand-navy);
}

.text-primary {
    color: var(--gh-brand-navy) !important;
}

.bg-primary {
    background-color: var(--gh-brand-navy) !important;
}

.border-primary {
    border-color: var(--gh-brand-navy) !important;
}

/* =============================================================================
   Layout
   ============================================================================= */

header, main, footer {
    padding: 1rem 2rem;
}

.gh-site-header {
    padding-top: 0;
    padding-bottom: 0;
    border-top: .25rem solid var(--gh-brand-orange);
    border-bottom: 1px solid #e4d5bc;
    background: var(--gh-brand-cream);
}

.gh-site-header .navbar-brand {
    color: var(--gh-brand-navy);
    letter-spacing: -.025em;
}

.gh-site-header .navbar-brand:not(.site-theme)::after {
    color: var(--gh-brand-orange);
    content: ".";
}

.gh-navbar-actions > a:not(.btn) {
    font-weight: 650;
    text-decoration: none;
}

.gh-site-footer {
    padding: 0 2rem;
    border-top: .25rem solid var(--gh-brand-orange);
    background: var(--gh-brand-navy);
    color: var(--gh-brand-cream);
}

.gh-site-footer a {
    color: var(--gh-brand-cream);
    text-underline-offset: .2em;
}

.gh-site-footer a:hover {
    color: #f4a171;
}

.gh-footer-brand {
    font-weight: 650;
}

@media (max-width: 575.98px) {
    header,
    main,
    footer {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .table-responsive {
        font-size: .925rem;
    }
}

/* =============================================================================
   Subscriber workspace dashboard
   ============================================================================= */

.gh-dashboard {
    --gh-dashboard-navy: #0b1d39;
    --gh-dashboard-orange: #db5c1c;
    --gh-dashboard-sage: #516543;
    color: var(--gh-dashboard-navy);
}

.gh-dashboard-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e5e0db;
}

.gh-dashboard-head h1 {
    margin-bottom: .25rem;
    font-size: clamp(2.1rem, 4vw, 3.4rem);
    font-weight: 750;
    letter-spacing: -.045em;
}

.gh-dashboard-domain {
    color: #626a77;
}

.gh-role-label,
.gh-status-pill,
.gh-trial-pill {
    display: inline-flex;
    align-items: center;
    min-height: 1.7rem;
    padding: .2rem .6rem;
    border-radius: 99rem;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gh-role-label {
    background: #eef1f5;
    color: #505967;
}

.gh-trial-pill,
.gh-status-trialing {
    background: #fff0e8;
    color: #99451f;
}

.gh-status-active,
.gh-status-ready {
    background: #e5f2e7;
    color: #35613b;
}

.gh-status-grace,
.gh-status-restricted,
.gh-status-suspended {
    background: #fff3cd;
    color: #725800;
}

.gh-status-canceled,
.gh-status-archived,
.gh-status-disconnected {
    background: #f2e7e7;
    color: #783838;
}

.gh-setup-panel {
    display: grid;
    grid-template-columns: minmax(16rem, .8fr) minmax(24rem, 1.2fr);
    gap: clamp(2rem, 5vw, 4rem);
    margin-bottom: 2.5rem;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 1.25rem;
    background: #0b1d39;
    color: #fff;
}

.gh-setup-summary h2 {
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 750;
    letter-spacing: -.035em;
}

.gh-setup-summary > p:not(.gh-step-label) {
    color: #cad0da;
}

.gh-setup-progress {
    height: .55rem;
    background: rgba(255, 255, 255, .16);
}

.gh-setup-progress .progress-bar {
    background: #8ec397;
}

.gh-setup-list {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-setup-list li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .75rem;
    align-items: center;
    padding: .7rem .8rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: .75rem;
    background: rgba(255, 255, 255, .06);
}

.gh-setup-list li.is-complete {
    color: #aeb6c4;
}

.gh-setup-list small {
    display: block;
    color: #bfc6d1;
    font-size: .77rem;
}

.gh-setup-list a {
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
}

.gh-setup-check {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 50%;
    font-size: .75rem;
    font-weight: 800;
    place-items: center;
}

.is-complete .gh-setup-check {
    border-color: #8ec397;
    background: #8ec397;
    color: #0b1d39;
}

.gh-next-event {
    padding: 1.5rem;
    border: 1px solid #e3ded8;
    border-radius: 1rem;
    background: #fffaf3;
}

.gh-next-event h2 {
    font-size: clamp(1.6rem, 3vw, 2.15rem);
    font-weight: 750;
    letter-spacing: -.035em;
}

.gh-event-date {
    margin: 2rem 0 .5rem;
    color: var(--gh-dashboard-orange);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.gh-event-date span {
    margin-left: .5rem;
    color: #626a77;
}

.gh-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.gh-metric-grid > div {
    display: flex;
    min-height: 7.3rem;
    padding: 1rem;
    border: 1px solid #e3ded8;
    border-radius: .85rem;
    background: #fff;
    flex-direction: column;
    justify-content: space-between;
}

.gh-metric-grid span {
    color: #626a77;
    font-size: .82rem;
    font-weight: 700;
}

.gh-metric-grid strong {
    font-size: 2rem;
    letter-spacing: -.04em;
}

.gh-metric-grid small {
    color: #626a77;
    font-size: .9rem;
}

.gh-section-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.gh-section-row h2 {
    margin-bottom: 0;
    font-size: clamp(1.6rem, 3vw, 2.15rem);
    font-weight: 750;
    letter-spacing: -.035em;
}

.gh-workspace-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.gh-workspace-grid > a {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem;
    align-items: center;
    min-width: 0;
    padding: 1.1rem;
    border: 1px solid #e3ded8;
    border-radius: .85rem;
    color: var(--gh-dashboard-navy);
    text-decoration: none;
}

.gh-workspace-grid > a:hover {
    border-color: rgba(219, 92, 28, .55);
    box-shadow: 0 .75rem 1.75rem rgba(11, 29, 57, .08);
}

.gh-workspace-grid h3 {
    margin-bottom: .15rem;
    font-size: 1rem;
    font-weight: 750;
}

.gh-workspace-grid p {
    margin-bottom: 0;
    overflow: hidden;
    color: #626a77;
    font-size: .8rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gh-tool-mark {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .65rem;
    background: #eef3ed;
    color: #426548;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .04em;
    place-items: center;
}

.gh-admin-section {
    margin-top: 2rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #e3ded8;
    border-radius: 1rem;
}

.gh-billing-option {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    padding: 1.25rem;
    border-radius: .85rem;
    background: #f7f5f2;
}

.gh-billing-option h3 {
    margin-bottom: .25rem;
    font-size: 1rem;
}

.gh-billing-option p {
    margin-bottom: 0;
}

.gh-billing-option span {
    color: #426548;
    font-size: .78rem;
    font-weight: 700;
}

.gh-recovery-panel {
    max-width: 50rem;
    margin: 3rem auto;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid #e8cf9d;
    border-radius: 1.25rem;
    background: #fff8e7;
}

.gh-recovery-panel h2 {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: 750;
    letter-spacing: -.04em;
}

.gh-launch-summary {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(17rem, .75fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    margin-bottom: 3rem;
    padding: clamp(1.5rem, 4vw, 2.75rem);
    border-radius: 1.25rem;
    background: #0b1d39;
    color: #fff;
}

.gh-launch-summary.is-ready {
    background: #274d32;
}

.gh-launch-summary h2,
.gh-launch-note h2 {
    font-size: clamp(1.8rem, 4vw, 2.7rem);
    font-weight: 750;
    letter-spacing: -.04em;
}

.gh-launch-summary p:not(.gh-step-label) {
    color: #d3d8e0;
}

.gh-launch-progress {
    height: .65rem;
    margin: 1.5rem 0 .65rem;
    background: rgba(255, 255, 255, .16);
}

.gh-launch-progress .progress-bar {
    background: #efaa73;
}

.is-ready .gh-launch-progress .progress-bar {
    background: #a9d6ad;
}

.gh-launch-count {
    font-size: .82rem;
    font-weight: 700;
}

.gh-launch-focus {
    display: flex;
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .08);
    flex-direction: column;
    justify-content: center;
}

.gh-launch-focus span,
.gh-launch-focus small {
    color: #cbd2dc;
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gh-launch-focus strong {
    margin: .4rem 0;
    font-size: 1.45rem;
    line-height: 1.2;
}

.gh-launch-focus time {
    margin-bottom: .65rem;
}

.gh-launch-focus .btn {
    align-self: flex-start;
}

.gh-launch-section {
    margin-bottom: 3rem;
}

.gh-launch-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.gh-launch-check {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .9rem;
    padding: 1.15rem;
    border: 1px solid #e3ded8;
    border-radius: .9rem;
    background: #fff;
}

.gh-launch-check.is-complete {
    border-color: #cfe0d0;
    background: #f4f8f3;
}

.gh-launch-checkmark {
    display: grid;
    width: 2rem;
    height: 2rem;
    border: 1px solid #d5a17f;
    border-radius: 50%;
    color: #9a4b29;
    font-size: .78rem;
    font-weight: 850;
    place-items: center;
}

.is-complete .gh-launch-checkmark {
    border-color: #6d9a72;
    background: #6d9a72;
    color: #fff;
}

.gh-launch-check-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .75rem;
}

.gh-launch-check h3 {
    margin-bottom: .3rem;
    font-size: 1rem;
    font-weight: 750;
}

.gh-launch-check-title span {
    color: #9a4b29;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.is-complete .gh-launch-check-title span {
    color: #426548;
}

.gh-launch-check p {
    margin-bottom: .5rem;
    color: #626a77;
    font-size: .84rem;
}

.gh-launch-check a {
    font-size: .82rem;
    font-weight: 750;
}

.gh-launch-note {
    display: grid;
    grid-template-columns: minmax(14rem, .65fr) minmax(18rem, 1.35fr);
    gap: clamp(1.5rem, 5vw, 4rem);
    align-items: center;
    padding: clamp(1.4rem, 4vw, 2.5rem);
    border-radius: 1.1rem;
    background: #fff5e8;
}

.gh-launch-note p:last-child {
    margin-bottom: 0;
    color: #5f6670;
}

@media (max-width: 991.98px) {
    .gh-setup-panel,
    .gh-launch-summary {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .gh-workspace-grid,
    .gh-launch-checks,
    .gh-launch-note {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .gh-dashboard-head > div:last-child,
    .gh-dashboard-head .btn {
        width: 100%;
    }

    .gh-setup-panel {
        padding: 1.15rem;
    }

    .gh-setup-list li {
        grid-template-columns: auto 1fr;
    }

    .gh-setup-list li > a {
        grid-column: 2;
    }

    .gh-metric-grid {
        gap: .55rem;
    }

    .gh-metric-grid > div {
        min-height: 6.4rem;
    }

    .gh-workspace-grid p {
        white-space: normal;
    }

    .gh-billing-option {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

nav {
    display: flex;
    gap: 1rem;
    align-items: center;
}

/* =============================================================================
   Gather HQs platform landing page
   ============================================================================= */

.gh-landing {
    --gh-navy: #0b1d39;
    --gh-cream: #fbf0db;
    --gh-orange: #db5c1c;
    --gh-sage: #516543;
    --gh-ink-muted: #5b6270;
    color: var(--gh-navy);
}

.gh-nav-link {
    color: var(--gh-brand-navy);
    font-weight: 600;
    text-decoration: none;
}

.gh-nav-link:hover {
    color: var(--gh-brand-orange-dark);
}

.gh-hero {
    position: relative;
    isolation: isolate;
}

.gh-hero::before {
    position: absolute;
    top: 2rem;
    bottom: -2rem;
    left: 50%;
    width: 100vw;
    z-index: -1;
    background:
        radial-gradient(circle at 72% 25%, rgba(219, 92, 28, .13), transparent 28%),
        linear-gradient(135deg, #fff 10%, var(--gh-cream) 100%);
    content: "";
    transform: translateX(-50%);
}

.gh-eyebrow {
    margin-bottom: .8rem;
    color: var(--gh-orange);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gh-display {
    max-width: 12ch;
    font-size: clamp(2.6rem, 6vw, 4.9rem);
    font-weight: 750;
    letter-spacing: -.055em;
    line-height: .98;
}

.gh-lead {
    max-width: 39rem;
    margin-top: 1.5rem;
    color: var(--gh-ink-muted);
    font-size: clamp(1.1rem, 2vw, 1.3rem);
    line-height: 1.65;
}

.gh-text-link {
    color: var(--gh-navy);
    font-weight: 700;
    text-underline-offset: .25rem;
}

.gh-fine-print {
    color: var(--gh-ink-muted);
    font-size: .9rem;
}

.gh-event-preview {
    position: relative;
    max-width: 34rem;
    min-height: 28rem;
    margin-inline: auto;
    overflow: hidden;
    border: 1px solid rgba(11, 29, 57, .12);
    border-radius: 1.5rem;
    background: #fff;
    box-shadow: 0 1.75rem 4rem rgba(11, 29, 57, .16);
    transform: rotate(1.5deg);
}

.gh-event-preview::after {
    position: absolute;
    right: -4rem;
    bottom: -5rem;
    width: 15rem;
    height: 15rem;
    border-radius: 50%;
    background: rgba(81, 101, 67, .12);
    content: "";
}

.gh-preview-topline {
    display: flex;
    justify-content: space-between;
    padding: 1.15rem 1.4rem;
    background: var(--gh-navy);
    color: #fff;
    font-size: .86rem;
    font-weight: 700;
}

.gh-live-dot::before {
    display: inline-block;
    width: .55rem;
    height: .55rem;
    margin-right: .4rem;
    border-radius: 50%;
    background: #92c89a;
    content: "";
}

.gh-preview-date {
    position: absolute;
    top: 5.3rem;
    left: 1.5rem;
    display: grid;
    width: 5.5rem;
    padding: .75rem;
    border: 1px solid #ead7c8;
    border-radius: .9rem;
    background: var(--gh-cream);
    color: var(--gh-orange);
    text-align: center;
}

.gh-preview-date strong {
    color: var(--gh-navy);
    font-size: 2.5rem;
    line-height: 1;
}

.gh-preview-content {
    padding: 4.5rem 2rem 2.5rem 8.25rem;
}

.gh-preview-kicker {
    color: var(--gh-orange);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.gh-preview-content h2 {
    max-width: 10ch;
    margin-bottom: 1rem;
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 750;
    letter-spacing: -.04em;
    line-height: 1;
}

.gh-rsvp-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin: 2rem 0;
    padding: 1rem 0;
    border-block: 1px solid #e5e0d9;
    color: var(--gh-ink-muted);
    font-size: .78rem;
}

.gh-rsvp-row strong {
    display: block;
    color: var(--gh-navy);
    font-size: 1.2rem;
}

.gh-preview-button {
    position: relative;
    z-index: 1;
}

.gh-trust-strip {
    margin-block: 1rem;
    padding: 1.25rem 1.5rem;
    border-block: 1px solid #e8ded2;
    color: var(--gh-ink-muted);
    text-align: center;
}

.gh-trust-strip strong {
    color: var(--gh-navy);
}

.gh-section-heading {
    max-width: 48rem;
}

.gh-section-heading h2,
.gh-pricing-copy h2,
.gh-final-cta h2 {
    font-size: clamp(2rem, 4vw, 3.3rem);
    font-weight: 750;
    letter-spacing: -.045em;
    line-height: 1.08;
}

.gh-section-heading > p:last-child,
.gh-pricing-copy > p {
    color: var(--gh-ink-muted);
    font-size: 1.1rem;
}

.gh-feature-card {
    height: 100%;
    padding: 1.6rem;
    border: 1px solid #e7e0d9;
    border-radius: 1rem;
    background: #fff;
}

.gh-feature-card:hover {
    border-color: rgba(219, 92, 28, .45);
    box-shadow: 0 1rem 2rem rgba(11, 29, 57, .08);
}

.gh-feature-number {
    display: inline-block;
    margin-bottom: 2.5rem;
    color: var(--gh-orange);
    font-size: .78rem;
    font-weight: 800;
}

.gh-feature-card h3,
.gh-steps h3 {
    font-size: 1.25rem;
    font-weight: 750;
}

.gh-feature-card p,
.gh-steps p {
    margin-bottom: 0;
    color: var(--gh-ink-muted);
}

.gh-how {
    position: relative;
}

.gh-how::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    z-index: -1;
    background: #f4f7f3;
    content: "";
    transform: translateX(-50%);
}

.gh-steps {
    margin-top: 2rem;
}

.gh-steps > li > div {
    height: 100%;
    padding: 1.5rem 0;
    border-top: 2px solid var(--gh-sage);
}

.gh-steps span {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    margin-bottom: 2rem;
    border-radius: 50%;
    background: var(--gh-sage);
    color: #fff;
    font-weight: 800;
    place-items: center;
}

.gh-pricing-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr);
    gap: clamp(2rem, 7vw, 6rem);
    align-items: center;
    padding: clamp(2rem, 5vw, 4rem);
    border-radius: 1.5rem;
    background: var(--gh-navy);
    color: #fff;
}

.gh-pricing-copy > p,
.gh-pricing-copy .gh-fine-print {
    color: #c9cfda;
}

.gh-check-list {
    display: grid;
    gap: .75rem;
    padding-left: 0;
    list-style: none;
}

.gh-check-list li::before {
    margin-right: .65rem;
    color: #a8d2ae;
    content: "✓";
    font-weight: 800;
}

.gh-price-options {
    display: grid;
    gap: .85rem;
}

.gh-price-card {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 1.15rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .08);
}

.gh-price-card p {
    margin: 0;
}

.gh-price-card-featured {
    border-color: #f0b091;
    background: #fbf0db;
    color: var(--gh-navy);
}

.gh-price {
    grid-row: span 2;
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: -.05em;
}

.gh-price span {
    font-size: 1.2rem;
    vertical-align: super;
}

.gh-price-period {
    color: #c9cfda;
    font-size: .82rem;
}

.gh-price-card-featured .gh-price-period {
    color: var(--gh-ink-muted);
}

.gh-save-badge {
    position: absolute;
    top: -.65rem;
    right: .75rem;
    padding: .18rem .55rem;
    border-radius: 99rem;
    background: var(--gh-orange);
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
}

.gh-final-cta {
    margin-top: 3rem;
    padding: clamp(3rem, 8vw, 6rem) 1.5rem;
    border-radius: 1.5rem;
    background: var(--gh-orange);
    color: #fff;
}

.gh-final-cta .gh-eyebrow,
.gh-final-cta p {
    color: #fbf0db;
}

.gh-final-cta p {
    font-size: 1.1rem;
}

.py-lg-6 {
    padding-block: 5rem;
}

@media (max-width: 767.98px) {
    .gh-event-preview {
        min-height: 25rem;
        transform: none;
    }

    .gh-preview-date {
        position: static;
        margin: 1.5rem 1.5rem 0;
    }

    .gh-preview-content {
        padding: 1.5rem;
    }

    .gh-rsvp-row {
        font-size: .72rem;
    }

    .gh-pricing-wrap {
        grid-template-columns: 1fr;
    }

    .py-lg-6 {
        padding-block: 3rem;
    }
}

/* =============================================================================
   Account and onboarding flows
   ============================================================================= */

.gh-auth-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(22rem, .8fr);
    gap: clamp(2rem, 7vw, 6rem);
    align-items: center;
    min-height: calc(100vh - 15rem);
    padding-block: 2rem;
}

.gh-auth-intro {
    max-width: 39rem;
    color: #0b1d39;
}

.gh-auth-intro h1 {
    max-width: 12ch;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 750;
    letter-spacing: -.055em;
    line-height: 1;
}

.gh-auth-intro > p:not(.gh-eyebrow) {
    max-width: 35rem;
    color: #5b6270;
    font-size: 1.1rem;
    line-height: 1.65;
}

.gh-auth-benefits {
    display: grid;
    gap: .75rem;
    margin-block: 2rem;
    padding: 0;
    list-style: none;
}

.gh-auth-benefits li::before {
    display: inline-grid;
    width: 1.5rem;
    height: 1.5rem;
    margin-right: .65rem;
    border-radius: 50%;
    background: #e9f1e9;
    color: #416746;
    content: "✓";
    font-size: .8rem;
    font-weight: 800;
    place-items: center;
}

.gh-auth-price-note {
    display: grid;
    max-width: 32rem;
    padding: 1rem 1.15rem;
    border-left: 3px solid #db5c1c;
    background: #fbf0db;
}

.gh-auth-price-note span {
    color: #5b6270;
    font-size: .9rem;
}

.gh-auth-card {
    width: 100%;
    max-width: 34rem;
    margin-inline: auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid #e5ded6;
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 1.25rem 3rem rgba(11, 29, 57, .1);
}

.gh-auth-card h1,
.gh-auth-card h2 {
    color: #0b1d39;
    font-size: clamp(1.8rem, 4vw, 2.35rem);
    font-weight: 750;
    letter-spacing: -.035em;
}

.gh-step-label {
    margin-bottom: .45rem;
    color: #db5c1c;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.gh-form-field {
    margin-bottom: 1.1rem;
}

.gh-form-field label {
    display: block;
    margin-bottom: .4rem;
    color: #0b1d39;
    font-weight: 700;
}

.gh-form-field input,
.gh-form-field select,
.gh-form-field textarea {
    width: 100%;
    max-width: none;
    min-height: 46px;
    border-color: #cfd3d9;
}

.gh-form-field input:focus,
.gh-form-field select:focus,
.gh-form-field textarea:focus {
    border-color: #315eac;
    box-shadow: 0 0 0 .2rem rgba(49, 94, 172, .14);
}

.gh-field-help {
    margin-top: .4rem;
    color: #636b78;
    font-size: .82rem;
}

.gh-field-help ul {
    margin: .5rem 0 0;
    padding-left: 1.1rem;
}

.gh-auth-footer {
    margin: 1.5rem 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid #ebe6e1;
    color: #5b6270;
    font-size: .9rem;
    text-align: center;
}

.gh-auth-centered {
    display: grid;
    min-height: calc(100vh - 15rem);
    padding-block: 3rem;
    place-items: center;
}

.gh-domain-input {
    display: flex;
    align-items: stretch;
}

.gh-domain-input input {
    min-width: 0;
    border-radius: .375rem 0 0 .375rem;
}

.gh-domain-input span {
    display: flex;
    align-items: center;
    padding-inline: .75rem;
    border: 1px solid #cfd3d9;
    border-left: 0;
    border-radius: 0 .375rem .375rem 0;
    background: #f3f4f6;
    color: #4e5664;
    font-size: .9rem;
    white-space: nowrap;
}

.gh-onboarding-preview {
    display: grid;
    gap: 1rem;
    margin-top: 2rem;
    padding: 0;
    list-style: none;
}

.gh-onboarding-preview li {
    display: flex;
    gap: .8rem;
    align-items: center;
    color: #737a86;
}

.gh-onboarding-preview li > span {
    display: grid;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border: 1px solid #cfd3d9;
    border-radius: 50%;
    font-size: .8rem;
    font-weight: 800;
    place-items: center;
}

.gh-onboarding-preview li.is-current {
    color: #0b1d39;
}

.gh-onboarding-preview li.is-current > span {
    border-color: #516543;
    background: #516543;
    color: #fff;
}

.gh-onboarding-preview small {
    display: block;
}

.gh-confirmation-mark {
    display: inline-grid;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: #e9f1e9;
    color: #416746;
    font-size: 1.5rem;
    font-weight: 800;
    place-items: center;
}

.gh-confirmation-mark-warning {
    background: #fff0e8;
    color: #a84725;
}

@media (max-width: 991.98px) {
    .gh-auth-shell {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .gh-auth-intro,
    .gh-auth-card {
        max-width: 38rem;
        margin-inline: auto;
    }
}

@media (max-width: 575.98px) {
    .gh-auth-card {
        padding: 1.25rem;
        border-radius: .9rem;
        box-shadow: none;
    }

    .gh-domain-input {
        display: block;
    }

    .gh-domain-input input {
        border-radius: .375rem .375rem 0 0;
    }

    .gh-domain-input span {
        min-height: 40px;
        border-top: 0;
        border-left: 1px solid #cfd3d9;
        border-radius: 0 0 .375rem .375rem;
    }
}

/* =============================================================================
   Messages — map Django message tags to Bootstrap alert colors
   ============================================================================= */

.messages {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}

.message {
    padding: 0.75rem 1rem;
    border-radius: var(--bs-border-radius);
    margin-bottom: 0.5rem;
}

.message--success { background: #d1e7dd; color: #0a3622; }
.message--error   { background: #f8d7da; color: #58151c; }
.message--warning { background: #fff3cd; color: #664d03; }
.message--info    { background: #cff4fc; color: #055160; }

/* =============================================================================
   Forms
   ============================================================================= */

form p {
    margin-bottom: 0.75rem;
}

input[type="text"],
input[type="email"],
input[type="password"],
select,
textarea {
    display: block;
    width: 100%;
    max-width: 400px;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    font-size: 1rem;
}

.errorlist {
    color: var(--bs-danger);
    margin-bottom: 0.5rem;
}

.helptext {
    display: block;
    color: var(--bs-gray-600);
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

/* =============================================================================
   Subscriber website builder
   ============================================================================= */

.gh-site-builder,
.gh-website-hub,
.gh-content-editor {
    --gh-builder-navy: #0b1d39;
    --gh-builder-orange: #db5c1c;
    --gh-builder-sage: #516543;
    color: var(--gh-builder-navy);
}

.gh-builder-head,
.gh-editor-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2rem;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e5e0db;
}

.gh-builder-head h1,
.gh-editor-head h1 {
    max-width: 47rem;
    margin-bottom: .5rem;
    font-size: clamp(2.1rem, 4vw, 3.4rem);
    font-weight: 750;
    letter-spacing: -.045em;
}

.gh-builder-head > div:first-child > p:last-child,
.gh-editor-head > div > p:last-child {
    max-width: 46rem;
    margin-bottom: 0;
    color: #626a77;
}

.gh-back-link {
    color: #4d5665;
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none;
}

.gh-builder-status {
    display: flex;
    min-width: 13rem;
    align-items: flex-end;
    gap: .45rem;
    flex-direction: column;
    color: #626a77;
    font-size: .86rem;
}

.gh-builder-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(19rem, .72fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
}

.gh-builder-section {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #e3ded8;
    border-radius: 1rem;
    background: #fff;
}

.gh-builder-section-number {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: #eef3ed;
    color: #426548;
    font-weight: 800;
    place-items: center;
}

.gh-builder-section-body h2,
.gh-publish-card h2,
.gh-editor-card h2 {
    font-size: 1.45rem;
    font-weight: 750;
    letter-spacing: -.025em;
}

.gh-template-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1.25rem;
}

.gh-template-option {
    display: grid;
    position: relative;
    gap: .7rem;
    padding: .75rem;
    border: 2px solid #e0ddd9;
    border-radius: .85rem;
    cursor: pointer;
}

.gh-template-option:has(input:checked) {
    border-color: var(--gh-builder-sage);
    box-shadow: 0 0 0 3px rgba(81, 101, 67, .12);
}

.gh-template-option input {
    position: absolute;
    top: .8rem;
    right: .8rem;
    width: 1.15rem;
    height: 1.15rem;
}

.gh-template-option strong,
.gh-template-option small {
    display: block;
}

.gh-template-option small {
    margin-top: .2rem;
    color: #626a77;
    font-size: .78rem;
}

.gh-template-thumb {
    display: grid;
    height: 5.5rem;
    padding: .65rem;
    border-radius: .55rem;
    background: #f4f1ed;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 1fr .45fr;
    gap: .35rem;
}

.gh-template-thumb i {
    display: block;
    border-radius: .16rem;
    background: #fff;
}

.gh-template-thumb i:first-child {
    grid-column: 1 / -1;
    background: #d9e2d8;
}

.gh-template-thumb-social {
    padding: .85rem;
    border-radius: 1rem;
    background: #fff5e8;
}

.gh-template-thumb-social i {
    border-radius: .7rem;
    box-shadow: 0 .25rem .6rem rgba(11, 29, 57, .08);
}

.gh-color-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.gh-color-control {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .45rem;
    border: 1px solid #cfd3d9;
    border-radius: .5rem;
}

.gh-color-control input[type="color"] {
    width: 3.25rem;
    height: 2.4rem;
    padding: .1rem;
    border: 0;
    background: transparent;
}

.gh-color-control output {
    color: #4f5866;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .84rem;
    text-transform: uppercase;
}

.gh-current-image {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .65rem;
    color: #626a77;
    font-size: .8rem;
}

.gh-current-image img {
    width: 4rem;
    height: 4rem;
    border: 1px solid #e0ddd9;
    border-radius: .5rem;
    object-fit: contain;
}

.gh-current-hero img {
    width: 7rem;
    object-fit: cover;
}

.gh-publish-card {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: 1rem;
    background: var(--gh-builder-navy);
    color: #fff;
}

.gh-publish-card p:not(.gh-step-label) {
    color: #cbd1da;
}

.gh-publish-toggle {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: .75rem;
    background: rgba(255, 255, 255, .07);
}

.gh-publish-toggle input {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: .1rem;
}

.gh-publish-toggle strong,
.gh-publish-toggle small {
    display: block;
}

.gh-publish-toggle small {
    margin-top: .15rem;
    color: #cbd1da;
}

.gh-builder-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.25rem;
}

.gh-live-preview-wrap {
    position: sticky;
    top: 1rem;
}

.gh-live-preview-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: .6rem;
    color: #59616e;
    font-size: .78rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.gh-live-preview-label small {
    color: #848a94;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.gh-site-preview {
    overflow: hidden;
    min-height: 31rem;
    border: 1px solid #dad6d1;
    border-radius: .45rem;
    background: #fff;
    box-shadow: 0 1.5rem 3rem rgba(11, 29, 57, .12);
    color: #242b36;
    font-size: .65rem;
}

.gh-site-preview-social {
    border-radius: 1.25rem;
}

.gh-site-preview-nav {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid #ece8e3;
}

.gh-site-preview-nav strong {
    color: var(--preview-primary);
}

.gh-site-preview-nav span {
    color: #737a84;
    font-size: .58rem;
}

.gh-site-preview-hero {
    min-height: 13.5rem;
    padding: 3.1rem 1.5rem 2rem;
    background-color: #f4f3f0;
    background-position: center;
    background-size: cover;
    text-align: center;
}

.gh-site-preview-social .gh-site-preview-hero {
    margin: .85rem;
    border-radius: 1rem;
    background-color: #fff4e5;
}

.gh-site-preview-hero p {
    margin-bottom: .45rem;
    color: var(--preview-secondary);
    font-size: .52rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.gh-site-preview-hero h2 {
    margin-bottom: .45rem;
    color: #18233b;
    font-size: 1.45rem;
    font-weight: 750;
    letter-spacing: -.04em;
}

.gh-site-preview-hero span {
    display: block;
    min-height: 2.4rem;
    color: #626a77;
}

.gh-site-preview-hero i {
    display: inline-block;
    margin-top: .8rem;
    padding: .45rem .7rem;
    border-radius: .2rem;
    background: var(--preview-primary);
    color: #fff;
    font-style: normal;
    font-weight: 700;
}

.gh-site-preview-social .gh-site-preview-hero i {
    border-radius: 99rem;
}

.gh-site-preview-content {
    padding: 1.3rem;
}

.gh-site-preview-content > span {
    display: block;
    width: 86%;
    height: .35rem;
    margin-bottom: .35rem;
    border-radius: 99rem;
    background: #e5e2de;
}

.gh-site-preview-content > span:nth-child(2) { width: 94%; }
.gh-site-preview-content > span:nth-child(3) { width: 66%; }

.gh-site-preview-content strong {
    display: block;
    margin: 1.6rem 0 .6rem;
    font-size: .8rem;
}

.gh-site-preview-content div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
}

.gh-site-preview-content i {
    height: 3.5rem;
    border: 1px solid #e3dfda;
    border-radius: .2rem;
}

.gh-site-preview-social .gh-site-preview-content i {
    border: 0;
    border-radius: .7rem;
    background: #fff;
    box-shadow: 0 .35rem 1rem rgba(11, 29, 57, .08);
}

.gh-preview-note {
    margin-top: 1rem;
    color: #707783;
    font-size: .78rem;
}

/* Website content hub */

.gh-website-setup {
    display: grid;
    grid-template-columns: minmax(13rem, .55fr) minmax(0, 1.45fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    margin-bottom: 3rem;
    padding: clamp(1.4rem, 3vw, 2.2rem);
    border-radius: 1rem;
    background: #0b1d39;
    color: #fff;
}

.gh-website-setup-summary h2 {
    font-size: 1.75rem;
    font-weight: 750;
}

.gh-website-setup-summary > p:not(.gh-step-label) {
    color: #c8ced8;
}

.gh-website-setup-summary .progress {
    height: .5rem;
    background: rgba(255, 255, 255, .15);
}

.gh-website-setup-summary .progress-bar {
    background: #8ec397;
}

.gh-website-checks {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-website-checks li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .75rem;
    align-items: center;
    padding: .8rem;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: .75rem;
    background: rgba(255, 255, 255, .06);
}

.gh-website-checks li > span {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 50%;
    font-size: .75rem;
    font-weight: 800;
    place-items: center;
}

.gh-website-checks li.is-complete > span {
    border-color: #8ec397;
    background: #8ec397;
    color: #0b1d39;
}

.gh-website-checks strong,
.gh-website-checks small { display: block; }
.gh-website-checks small { color: #bfc6d1; font-size: .77rem; }
.gh-website-checks a { color: #fff; font-size: .82rem; font-weight: 700; }

.gh-page-section,
.gh-blog-section {
    margin-bottom: 3rem;
}

.gh-page-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.gh-page-grid > a {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: 1.15rem;
    border: 1px solid #e3ded8;
    border-radius: .85rem;
    color: #0b1d39;
    text-decoration: none;
}

.gh-page-grid > a:hover {
    border-color: rgba(219, 92, 28, .55);
    box-shadow: 0 .75rem 1.75rem rgba(11, 29, 57, .07);
}

.gh-page-grid h3 {
    margin-bottom: .2rem;
    font-size: 1rem;
    font-weight: 750;
}

.gh-page-grid p {
    margin-bottom: 0;
    color: #626a77;
    font-size: .8rem;
}

.gh-page-icon {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .65rem;
    background: #eef3ed;
    color: #426548;
    font-size: .68rem;
    font-weight: 900;
    place-items: center;
}

.gh-content-status {
    display: inline-flex;
    align-items: center;
    min-height: 1.6rem;
    padding: .2rem .55rem;
    border-radius: 99rem;
    background: #eef0f3;
    color: #59616e;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
}

.gh-content-status-published { background: #e5f2e7; color: #35613b; }
.gh-content-status-scheduled { background: #fff3cd; color: #725800; }
.gh-content-status-archived { background: #f2e7e7; color: #783838; }

.gh-post-list {
    border-top: 1px solid #e3ded8;
}

.gh-post-list article {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding: 1.15rem 0;
    border-bottom: 1px solid #e3ded8;
}

.gh-post-list h3 {
    margin: .4rem 0 .15rem;
    font-size: 1.05rem;
}

.gh-post-list p {
    margin-bottom: 0;
    color: #626a77;
    font-size: .86rem;
}

.gh-empty-note {
    padding: 1.5rem;
    border: 1px dashed #cfc9c2;
    border-radius: .85rem;
    background: #fbfaf8;
}

.gh-empty-note h3 { font-size: 1.1rem; }
.gh-empty-note p { color: #626a77; }

/* Page editor */

.gh-editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, .38fr);
    gap: 1.25rem;
    align-items: start;
}

.gh-editor-main {
    display: grid;
    gap: 1rem;
}

.gh-editor-card,
.gh-editor-details {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #e3ded8;
    border-radius: 1rem;
    background: #fff;
}

.gh-editor-card h2 {
    margin-bottom: 1.25rem;
}

.gh-editor-details summary {
    cursor: pointer;
    font-weight: 750;
}

.gh-editor-details-body {
    margin-top: 1.25rem;
}

.gh-editor-sidebar {
    display: grid;
    position: sticky;
    top: 1rem;
    gap: 1rem;
}

.gh-editor-tip {
    margin: 0;
    padding: 1rem;
    border-left: 3px solid #db5c1c;
    background: #fbf0db;
    color: #5f6671;
    font-size: .82rem;
}

.gh-editor-tip strong {
    display: block;
    margin-bottom: .2rem;
    color: #0b1d39;
}

@media (max-width: 991.98px) {
    .gh-builder-layout,
    .gh-editor-layout {
        grid-template-columns: 1fr;
    }

    .gh-live-preview-wrap,
    .gh-editor-sidebar {
        position: static;
    }

    .gh-live-preview-wrap {
        grid-row: 1;
        max-width: 31rem;
    }

    .gh-website-setup {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .gh-page-grid,
    .gh-template-options,
    .gh-color-grid {
        grid-template-columns: 1fr;
    }

    .gh-builder-head,
    .gh-editor-head {
        flex-direction: column;
    }

    .gh-builder-status {
        min-width: 0;
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .gh-builder-section {
        grid-template-columns: 1fr;
    }

    .gh-page-grid > a {
        grid-template-columns: auto 1fr;
    }

    .gh-page-grid .gh-content-status {
        grid-column: 2;
        justify-self: start;
    }

    .gh-website-checks li {
        grid-template-columns: auto 1fr;
    }

    .gh-website-checks li > a {
        grid-column: 2;
    }

    .gh-post-list article,
    .gh-builder-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* =============================================================================
   Blog and campaign publishing workflow
   ============================================================================= */

.gh-url-field {
    display: flex;
    align-items: stretch;
}

.gh-url-field > span {
    display: flex;
    align-items: center;
    padding-inline: .8rem;
    border: 1px solid #cfd3d9;
    border-right: 0;
    border-radius: .375rem 0 0 .375rem;
    background: #f3f4f6;
    color: #59616e;
    font-size: .85rem;
}

.gh-url-field input {
    min-width: 0;
    border-radius: 0 .375rem .375rem 0;
}

.gh-field-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.gh-field-row output {
    margin-top: .4rem;
    color: #7a818c;
    font-size: .75rem;
    white-space: nowrap;
}

.gh-source-banner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: 1rem 1.15rem;
    border: 1px solid #cddccb;
    border-radius: .85rem;
    background: #f1f7f0;
    color: #0b1d39;
}

.gh-source-banner > span,
.gh-campaign-mark {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: .7rem;
    background: #e1eddf;
    color: #426548;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .04em;
    place-items: center;
}

.gh-source-banner p {
    margin: .15rem 0 0;
    color: #626a77;
    font-size: .82rem;
}

.gh-source-banner > a {
    font-size: .82rem;
    font-weight: 700;
}

.gh-campaign-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(19rem, .55fr);
    gap: 1.25rem;
    align-items: start;
}

.gh-channel-fieldset {
    margin: 0 0 1.25rem;
    padding: 0;
    border: 0;
}

.gh-channel-fieldset legend {
    margin-bottom: .4rem;
    color: #0b1d39;
    font-size: 1rem;
    font-weight: 700;
}

.gh-channel-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.gh-channel-options label {
    display: flex;
    position: relative;
    gap: .7rem;
    min-height: 6rem;
    padding: 1rem;
    border: 2px solid #e0ddd9;
    border-radius: .75rem;
    cursor: pointer;
}

.gh-channel-options label:has(input:checked) {
    border-color: #516543;
    background: #f4f8f3;
    box-shadow: 0 0 0 3px rgba(81, 101, 67, .1);
}

.gh-channel-options input {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .15rem;
}

.gh-channel-options strong,
.gh-channel-options small {
    display: block;
}

.gh-channel-options small {
    margin-top: .25rem;
    color: #626a77;
    font-size: .78rem;
}

[data-campaign-section][hidden],
[data-audience-section][hidden] {
    display: none;
}

.gh-campaign-editor hr {
    margin: 1.35rem 0;
    border-color: #e3ded8;
    opacity: 1;
}

/* Campaign list */

.gh-communications-hub,
.gh-campaign-review {
    --gh-builder-navy: #0b1d39;
    --gh-builder-orange: #db5c1c;
    --gh-builder-sage: #516543;
    color: var(--gh-builder-navy);
}

.gh-campaign-list {
    border-top: 1px solid #e3ded8;
}

.gh-campaign-list article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 1.15rem;
    align-items: center;
    padding: 1.35rem .25rem;
    border-bottom: 1px solid #e3ded8;
}

.gh-campaign-list article:hover {
    background: #fbfaf8;
}

.gh-campaign-summary > div {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .8rem;
    align-items: center;
    color: #6b727d;
    font-size: .75rem;
}

.gh-campaign-summary h2 {
    margin: .4rem 0 .15rem;
    font-size: 1.15rem;
    font-weight: 750;
}

.gh-campaign-summary p {
    overflow: hidden;
    max-width: 45rem;
    margin-bottom: 0;
    color: #626a77;
    font-size: .84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gh-campaign-results {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 1rem;
    margin: 0;
    text-align: right;
}

.gh-campaign-results dt {
    color: #777e89;
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gh-campaign-results dd {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 750;
}

.gh-row-arrow {
    color: #516543;
    font-size: 1.2rem;
    font-weight: 800;
    text-decoration: none;
}

.gh-campaign-empty {
    max-width: 42rem;
    margin: 3rem auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    text-align: center;
}

.gh-campaign-empty .gh-campaign-mark {
    margin: 0 auto 1rem;
}

.gh-campaign-empty h2 {
    font-size: 1.6rem;
    font-weight: 750;
}

/* Campaign review */

.gh-audience-review {
    display: grid;
    grid-template-columns: minmax(14rem, .75fr) minmax(0, 1.25fr);
    gap: 2rem;
    align-items: center;
    margin-bottom: 1rem;
    padding: clamp(1.4rem, 3vw, 2rem);
    border-radius: 1rem;
    background: #0b1d39;
    color: #fff;
}

.gh-audience-review h2 {
    font-size: 1.65rem;
    font-weight: 750;
    letter-spacing: -.025em;
}

.gh-audience-review > div > p:last-child {
    margin-bottom: 0;
    color: #c5ccd6;
}

.gh-audience-review dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin: 0;
}

.gh-audience-review dl > div {
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: .75rem;
    background: rgba(255, 255, 255, .06);
}

.gh-audience-review dl > div.is-eligible {
    border-color: #8ec397;
    background: rgba(142, 195, 151, .13);
}

.gh-audience-review dt {
    color: #c5ccd6;
    font-size: .7rem;
    text-transform: uppercase;
}

.gh-audience-review dd {
    margin: .2rem 0 0;
    font-size: 1.75rem;
    font-weight: 750;
}

.gh-audience-review small {
    color: #c5ccd6;
}

.gh-exclusion-details {
    margin-bottom: 1.25rem;
    padding: 1rem 1.2rem;
    border: 1px solid #eadcb9;
    border-radius: .75rem;
    background: #fff9e9;
}

.gh-exclusion-details summary {
    cursor: pointer;
    font-weight: 700;
}

.gh-exclusion-details ul {
    margin: .8rem 0 0;
    padding: 0;
    list-style: none;
}

.gh-exclusion-details li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .35rem 0;
    border-top: 1px solid #eee3c8;
}

.gh-review-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(19rem, .65fr);
    gap: 1.25rem;
    align-items: start;
}

.gh-message-preview {
    overflow: hidden;
    border: 1px solid #dcd7d1;
    border-radius: 1rem;
    background: #f3f1ed;
}

.gh-message-preview-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem 1rem;
    border-bottom: 1px solid #dcd7d1;
    color: #5f6671;
    font-size: .72rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.gh-message-preview-top small {
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.gh-message-paper {
    max-width: 42rem;
    min-height: 27rem;
    margin: 1.4rem auto;
    padding: clamp(1.4rem, 4vw, 2.4rem);
    background: #fff;
    box-shadow: 0 .75rem 2rem rgba(11, 29, 57, .08);
}

.gh-message-paper > p {
    margin-bottom: .35rem;
    color: #7a818c;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gh-message-paper h2 {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #ebe7e2;
    font-size: 1.45rem;
    font-weight: 750;
}

.gh-message-paper > div {
    color: #333b48;
    line-height: 1.65;
}

.gh-message-paper footer {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid #ebe7e2;
    color: #777e89;
    font-size: .72rem;
}

.gh-review-actions {
    display: grid;
    gap: 1rem;
}

.gh-review-actions h2,
.gh-launch-card h2 {
    font-size: 1.35rem;
    font-weight: 750;
}

.gh-launch-card {
    padding: 1.5rem;
    border-radius: 1rem;
    background: #0b1d39;
    color: #fff;
}

.gh-launch-card > p:not(.gh-step-label) {
    color: #c5ccd6;
}

.gh-delivery-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin: 0;
}

.gh-delivery-results > div {
    padding: .75rem;
    border-radius: .6rem;
    background: #f5f3f0;
}

.gh-delivery-results dt {
    color: #6c737e;
    font-size: .68rem;
    text-transform: uppercase;
}

.gh-delivery-results dd {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 750;
}

.gh-content-status-sent,
.gh-content-status-sending,
.gh-content-status-expanding {
    background: #e5f2e7;
    color: #35613b;
}

.gh-content-status-failed,
.gh-content-status-canceled {
    background: #f2e7e7;
    color: #783838;
}

@media (max-width: 991.98px) {
    .gh-campaign-layout,
    .gh-review-layout,
    .gh-audience-review {
        grid-template-columns: 1fr;
    }

    .gh-campaign-list article {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .gh-campaign-results {
        grid-column: 2;
        justify-self: start;
        text-align: left;
    }

    .gh-row-arrow {
        grid-column: 3;
        grid-row: 1 / span 2;
    }
}

@media (max-width: 575.98px) {
    .gh-channel-options,
    .gh-audience-review dl {
        grid-template-columns: 1fr;
    }

    .gh-source-banner {
        grid-template-columns: auto 1fr;
    }

    .gh-source-banner > a {
        grid-column: 2;
    }

    .gh-campaign-list article {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .gh-campaign-results {
        gap: .65rem;
    }

    .gh-row-arrow {
        display: none;
    }

    .gh-message-preview-top,
    .gh-field-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .gh-message-paper {
        min-height: 20rem;
        margin: .6rem;
    }
}

/* =============================================================================
   Event planning workflow
   ============================================================================= */

.gh-events-hub,
.gh-event-editor,
.gh-invite-editor {
    --gh-builder-navy: #0b1d39;
    --gh-builder-orange: #db5c1c;
    --gh-builder-sage: #516543;
    color: var(--gh-builder-navy);
}

.gh-event-timezone,
.gh-event-access {
    display: inline-flex;
    align-items: center;
    min-height: 1.7rem;
    padding: .25rem .6rem;
    border-radius: 99rem;
    background: #eef1f5;
    color: #586170;
    font-size: .72rem;
    font-weight: 700;
}

.gh-event-editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(19rem, .48fr);
    gap: 1.25rem;
    align-items: start;
}

.gh-date-time-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.gh-date-time-grid fieldset {
    padding: 1rem;
    border: 1px solid #e3ded8;
    border-radius: .75rem;
    background: #fbfaf8;
}

.gh-date-time-grid legend {
    margin-bottom: .75rem;
    font-size: .85rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.gh-date-time-grid .gh-form-field:last-child {
    margin-bottom: 0;
}

.gh-choice-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.gh-choice-cards-stacked {
    grid-template-columns: 1fr;
}

.gh-choice-cards label {
    display: flex;
    position: relative;
    gap: .65rem;
    min-width: 0;
    padding: .85rem;
    border: 2px solid #e0ddd9;
    border-radius: .75rem;
    cursor: pointer;
}

.gh-choice-cards label:has(input:checked) {
    border-color: #516543;
    background: #f4f8f3;
    box-shadow: 0 0 0 3px rgba(81, 101, 67, .1);
}

.gh-choice-cards input {
    flex: 0 0 auto;
    width: 1.05rem;
    height: 1.05rem;
    margin-top: .12rem;
}

.gh-choice-cards strong,
.gh-choice-cards small {
    display: block;
}

.gh-choice-cards strong {
    font-size: .88rem;
}

.gh-choice-cards small {
    margin-top: .2rem;
    color: #626a77;
    font-size: .72rem;
}

.gh-recurrence-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
    padding: 1rem;
    border-radius: .75rem;
    background: #f3f6f2;
}

.gh-recurrence-details[hidden] {
    display: none;
}

.gh-event-editor hr {
    margin: 1.35rem 0;
    border-color: #e3ded8;
    opacity: 1;
}

/* Event management hub */

.gh-event-manage-card {
    overflow: hidden;
    margin-bottom: 1.25rem;
    border: 1px solid #ded9d3;
    border-radius: 1rem;
    background: #fff;
}

.gh-event-manage-card.is-new-event {
    border-color: #76957a;
    box-shadow: 0 1rem 2.5rem rgba(11, 29, 57, .08);
}

.gh-event-next-steps {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    padding: clamp(1.25rem, 3vw, 2rem);
    background: #0b1d39;
    color: #fff;
}

.gh-event-next-steps h2 {
    margin-bottom: .35rem;
    font-size: 1.45rem;
    font-weight: 750;
}

.gh-event-next-steps > div:first-child > p:last-child {
    margin-bottom: 0;
    color: #c5ccd6;
}

.gh-event-next-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.gh-event-manage-head {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.35rem;
    border-bottom: 1px solid #e6e1dc;
}

.gh-event-manage-head h2 {
    margin-bottom: .35rem;
    font-size: 1.55rem;
    font-weight: 750;
    letter-spacing: -.025em;
}

.gh-event-manage-head p {
    max-width: 48rem;
    margin-bottom: 0;
    color: #626a77;
    font-size: .86rem;
}

.gh-event-manage-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-end;
    gap: .3rem;
    flex-direction: column;
    font-size: .82rem;
    font-weight: 700;
}

.gh-event-manage-actions .btn-link {
    min-height: 0;
    font-size: .82rem;
    font-weight: 700;
}

.gh-occurrence-list {
    padding-inline: 1.35rem;
}

.gh-occurrence-row {
    display: grid;
    grid-template-columns: auto minmax(11rem, .9fr) minmax(15rem, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1.1rem 0;
    border-bottom: 1px solid #ebe7e2;
}

.gh-occurrence-row:last-child {
    border-bottom: 0;
}

.gh-occurrence-date {
    display: grid;
    width: 3.6rem;
    min-height: 4rem;
    padding: .35rem;
    border-radius: .65rem;
    background: #fff1e8;
    color: #9b4826;
    text-align: center;
    place-items: center;
}

.gh-occurrence-date span,
.gh-occurrence-date small {
    font-size: .58rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.gh-occurrence-date strong {
    font-size: 1.35rem;
    line-height: 1;
}

.gh-occurrence-main h3 {
    margin-bottom: .15rem;
    font-size: .98rem;
    font-weight: 750;
}

.gh-occurrence-main p {
    margin-bottom: .35rem;
    color: #626a77;
    font-size: .77rem;
}

.gh-occurrence-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(3.25rem, 1fr));
    gap: .5rem;
    margin: 0;
}

.gh-occurrence-metrics div {
    padding: .5rem;
    border-radius: .5rem;
    background: #f6f4f1;
    text-align: center;
}

.gh-occurrence-metrics dt {
    color: #737a85;
    font-size: .58rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gh-occurrence-metrics dd {
    margin: 0;
    font-size: 1rem;
    font-weight: 750;
}

.gh-occurrence-actions {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: .25rem .8rem;
    justify-items: end;
    font-size: .78rem;
    font-weight: 700;
}

.gh-event-calendar-mark {
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: .8rem;
    background: #fff0e7;
    color: #a34d29;
    font-weight: 900;
    place-items: center;
}

.gh-event-empty {
    max-width: 42rem;
    margin: 3rem auto;
    padding: 2.5rem;
    text-align: center;
}

.gh-event-empty h2 {
    font-size: 1.6rem;
    font-weight: 750;
}

/* Invitation picker */

.gh-invite-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .55fr);
    gap: 1.25rem;
    align-items: start;
}

.gh-invite-picker-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.gh-invite-picker-head h2 {
    margin-bottom: .25rem;
}

.gh-invite-picker-head p:last-child {
    margin-bottom: 0;
    color: #626a77;
    font-size: .84rem;
}

.gh-invite-search {
    width: 100%;
    max-width: none;
    margin-bottom: .75rem;
    padding: .65rem .8rem;
    border: 1px solid #cfd3d9;
    border-radius: .5rem;
}

.gh-contact-choices {
    overflow-y: auto;
    max-height: 30rem;
    border: 1px solid #e3ded8;
    border-radius: .75rem;
}

.gh-contact-choices label {
    display: flex;
    gap: .75rem;
    align-items: center;
    min-height: 3.25rem;
    padding: .7rem .85rem;
    border-bottom: 1px solid #ece8e3;
    cursor: pointer;
}

.gh-contact-choices label:last-child {
    border-bottom: 0;
}

.gh-contact-choices label:hover,
.gh-contact-choices label:has(input:checked) {
    background: #f3f7f2;
}

.gh-contact-choices input {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
}

.gh-contact-choices span {
    overflow-wrap: anywhere;
}

.gh-no-contact-results {
    padding: 1.25rem;
    color: #626a77;
    text-align: center;
}

.gh-scope-options label {
    min-height: 4.5rem;
}

@media (max-width: 1199.98px) {
    .gh-occurrence-row {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .gh-occurrence-metrics {
        grid-column: 2;
    }

    .gh-occurrence-actions {
        grid-column: 3;
        grid-row: 1 / span 2;
    }
}

@media (max-width: 991.98px) {
    .gh-event-editor-layout,
    .gh-invite-layout {
        grid-template-columns: 1fr;
    }

    .gh-event-next-steps {
        grid-template-columns: 1fr;
    }

    .gh-event-next-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    .gh-date-time-grid,
    .gh-recurrence-details,
    .gh-choice-cards {
        grid-template-columns: 1fr;
    }

    .gh-event-manage-head {
        flex-direction: column;
    }

    .gh-event-manage-actions {
        align-items: flex-start;
    }

    .gh-occurrence-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .gh-occurrence-metrics,
    .gh-occurrence-actions {
        grid-column: 2;
        grid-row: auto;
        justify-items: start;
    }
}

@media (max-width: 575.98px) {
    .gh-occurrence-list {
        padding-inline: .85rem;
    }

    .gh-occurrence-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .gh-invite-picker-head {
        align-items: stretch;
        flex-direction: column;
    }
}

/* =============================================================================
   Ticketing and commerce workflow
   ============================================================================= */

.gh-commerce-hub,
.gh-ticket-editor {
    --gh-builder-navy: #0b1d39;
    --gh-builder-orange: #db5c1c;
    --gh-builder-sage: #516543;
    color: var(--gh-builder-navy);
}

.gh-commerce-blocker {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid #ead198;
    border-radius: .85rem;
    background: #fff8e7;
}

.gh-commerce-blocker p {
    margin: .2rem 0 0;
    color: #6b6250;
    font-size: .84rem;
}

.gh-ticket-numbers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.gh-money-field {
    display: flex;
    align-items: stretch;
}

.gh-money-field span {
    display: flex;
    align-items: center;
    padding-inline: .7rem;
    border: 1px solid #cfd3d9;
    background: #f3f4f6;
    color: #59616e;
    font-size: .82rem;
    font-weight: 700;
}

.gh-money-field span:first-child {
    border-right: 0;
    border-radius: .375rem 0 0 .375rem;
}

.gh-money-field span:last-child {
    border-left: 0;
    border-radius: 0 .375rem .375rem 0;
}

.gh-money-field input {
    min-width: 0;
    border-radius: 0;
}

.gh-ticket-window {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.gh-active-toggle {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    padding: 1rem;
    border: 1px solid #dcd8d3;
    border-radius: .75rem;
    background: #f7f6f3;
}

.gh-active-toggle input {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .15rem;
}

.gh-active-toggle strong,
.gh-active-toggle small {
    display: block;
}

.gh-active-toggle small {
    margin-top: .2rem;
    color: #646c78;
    font-size: .76rem;
}

.gh-ticket-inventory-card {
    padding: 1.4rem;
    border-radius: 1rem;
    background: #0b1d39;
    color: #fff;
}

.gh-ticket-inventory-card h2 {
    font-size: 1.6rem;
    font-weight: 750;
}

.gh-ticket-inventory-card dl {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin: 1rem 0;
}

.gh-ticket-inventory-card dl > div {
    padding: .6rem;
    border-radius: .5rem;
    background: rgba(255, 255, 255, .08);
    text-align: center;
}

.gh-ticket-inventory-card dt {
    color: #c5ccd6;
    font-size: .62rem;
    text-transform: uppercase;
}

.gh-ticket-inventory-card dd {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 750;
}

.gh-ticket-inventory-card > p:last-child {
    margin-bottom: 0;
    color: #c5ccd6;
    font-size: .76rem;
}

/* Commerce dashboard */

.gh-stripe-readiness {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: 1.35rem;
    border: 1px solid #ead198;
    border-radius: 1rem;
    background: #fff8e7;
}

.gh-stripe-readiness.is-ready {
    border-color: #bdd4bf;
    background: #f0f7f0;
}

.gh-stripe-readiness-mark {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    background: #f2d99f;
    color: #6e551b;
    font-size: 1.1rem;
    font-weight: 900;
    place-items: center;
}

.is-ready .gh-stripe-readiness-mark {
    background: #cfe5d2;
    color: #35613b;
}

.gh-stripe-readiness h2 {
    margin-bottom: .25rem;
    font-size: 1.35rem;
    font-weight: 750;
}

.gh-stripe-readiness p:not(.gh-step-label) {
    margin-bottom: 0;
    color: #656b74;
    font-size: .84rem;
}

.gh-stripe-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.gh-commerce-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: 3rem;
}

.gh-commerce-summary > div {
    display: flex;
    min-height: 7rem;
    padding: 1rem;
    border: 1px solid #e3ded8;
    border-radius: .8rem;
    flex-direction: column;
    justify-content: space-between;
}

.gh-commerce-summary span {
    color: #68707c;
    font-size: .72rem;
    font-weight: 700;
}

.gh-commerce-summary strong {
    font-size: clamp(1.35rem, 2.6vw, 1.9rem);
    letter-spacing: -.035em;
}

.gh-commerce-section {
    margin-bottom: 3rem;
}

.gh-ticket-type-list {
    border-top: 1px solid #e3ded8;
}

.gh-ticket-type-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    gap: 1.25rem;
    align-items: center;
    padding: 1.2rem .25rem;
    border-bottom: 1px solid #e3ded8;
}

.gh-ticket-type-main h3 {
    margin: .35rem 0 .12rem;
    font-size: 1.05rem;
    font-weight: 750;
}

.gh-ticket-type-main p {
    margin-bottom: 0;
    color: #68707c;
    font-size: .8rem;
}

.gh-ticket-price {
    display: flex;
    min-width: 7rem;
    flex-direction: column;
    text-align: right;
}

.gh-ticket-price strong {
    font-size: 1.2rem;
}

.gh-ticket-price span {
    color: #747b86;
    font-size: .64rem;
}

.gh-ticket-type-list dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(3.5rem, 1fr));
    gap: .5rem;
    margin: 0;
}

.gh-ticket-type-list dl > div {
    padding: .5rem;
    border-radius: .5rem;
    background: #f6f4f1;
    text-align: center;
}

.gh-ticket-type-list dt {
    color: #747b86;
    font-size: .58rem;
    text-transform: uppercase;
}

.gh-ticket-type-list dd {
    margin: 0;
    font-size: 1rem;
    font-weight: 750;
}

.gh-commerce-table th {
    color: #6c737e;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.gh-dispute-section {
    padding: 1.25rem;
    border: 1px solid #e4c6c6;
    border-radius: 1rem;
    background: #fff8f8;
}

.gh-membership-plan-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.gh-membership-plan-list > a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #e3ded8;
    border-radius: .75rem;
    color: #0b1d39;
    text-decoration: none;
}

.gh-membership-plan-list h3 {
    margin: .35rem 0 0;
    font-size: 1rem;
}

.gh-membership-plan-list strong {
    font-size: 1.1rem;
    text-align: right;
}

.gh-membership-plan-list small {
    display: block;
    color: #737a85;
    font-size: .65rem;
}

/* Public event and checkout */

.gh-public-event-head {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(17rem, .55fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
    padding: clamp(1.5rem, 5vw, 3.5rem) 0;
}

.gh-public-event-head h1 {
    max-width: 48rem;
    margin-bottom: 1rem;
    font-size: clamp(2.3rem, 6vw, 4.5rem);
    font-weight: 750;
    letter-spacing: -.05em;
}

.gh-public-event-description {
    max-width: 46rem;
    margin-bottom: 1.5rem;
    color: #4d5561;
    font-size: 1.05rem;
}

.gh-public-event-head aside {
    padding: 1.4rem;
    border: 1px solid #e3ded8;
    border-radius: 1rem;
    background: #fbfaf8;
}

.gh-public-event-head dl,
.gh-public-event-head dl > div {
    margin: 0;
}

.gh-public-event-head dl > div {
    padding: .65rem 0;
    border-bottom: 1px solid #e7e2dd;
}

.gh-public-event-head dl > div:last-child {
    border-bottom: 0;
}

.gh-public-event-head dt {
    color: #707783;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.gh-public-event-head dd {
    margin: .15rem 0 0;
    font-weight: 650;
}

.gh-public-ticket-section {
    display: grid;
    grid-template-columns: minmax(12rem, .55fr) minmax(0, 1.45fr);
    gap: 2rem;
    margin: 1rem 0 2rem;
    padding: clamp(1.4rem, 4vw, 2.2rem);
    border-radius: 1rem;
    background: #f3f6f2;
}

.gh-public-ticket-section h2 {
    font-size: 1.6rem;
    font-weight: 750;
}

.gh-public-ticket-section > div:first-child > p:last-child {
    color: #5e6672;
}

.gh-public-ticket-list {
    display: grid;
    gap: .6rem;
}

.gh-public-ticket-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
    padding: .9rem 1rem;
    border: 1px solid #d9e2d8;
    border-radius: .7rem;
    background: #fff;
}

.gh-public-ticket-list h3 {
    margin-bottom: .15rem;
    font-size: .95rem;
}

.gh-public-ticket-list p {
    margin-bottom: 0;
    color: #69717d;
    font-size: .76rem;
}

.gh-public-ticket-list > article > strong {
    font-size: 1.15rem;
}

.gh-rsvp-complete {
    max-width: 54rem;
    margin: 2rem auto;
    padding: clamp(1.5rem, 5vw, 3rem);
    text-align: center;
}

.gh-rsvp-complete-mark {
    display: grid;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background: #e4f1e6;
    color: #35613b;
    font-size: 1.5rem;
    font-weight: 900;
    place-items: center;
}

.gh-rsvp-complete h1 {
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 750;
    letter-spacing: -.04em;
}

.gh-rsvp-party {
    max-width: 26rem;
    margin: 1.5rem auto;
    padding: 1rem;
    border-radius: .75rem;
    background: #f5f3f0;
}

.gh-rsvp-party h2 {
    font-size: .78rem;
    text-transform: uppercase;
}

.gh-rsvp-party ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-payment-required {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    margin: 1.5rem 0;
    padding: 1.4rem;
    border: 1px solid #ead198;
    border-radius: 1rem;
    background: #fff8e7;
    text-align: left;
}

.gh-payment-required h2 {
    font-size: 1.35rem;
    font-weight: 750;
}

.gh-payment-required p:last-child {
    margin-bottom: 0;
    color: #696252;
    font-size: .84rem;
}

.gh-confirmation-note {
    margin: 1.5rem 0;
    padding: 1rem;
    border-radius: .75rem;
    background: #eef6ed;
}

.gh-public-checkout {
    max-width: 68rem;
    margin-inline: auto;
}

.gh-checkout-head {
    padding: 2rem 0;
    text-align: center;
}

.gh-checkout-head > p {
    margin-bottom: .5rem;
    color: #db5c1c;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.gh-checkout-head h1 {
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 750;
    letter-spacing: -.04em;
}

.gh-checkout-head span {
    color: #636b77;
}

.gh-checkout-layout {
    display: grid;
    grid-template-columns: minmax(15rem, .55fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.gh-checkout-party,
.gh-checkout-options {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #e3ded8;
    border-radius: 1rem;
}

.gh-checkout-party {
    background: #fbfaf8;
}

.gh-checkout-party h2,
.gh-checkout-options h2 {
    font-size: 1.35rem;
    font-weight: 750;
}

.gh-checkout-party ul {
    display: grid;
    gap: .4rem;
    margin: 1rem 0;
    padding: 0;
    list-style: none;
}

.gh-checkout-party li {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.gh-checkout-party li span {
    display: grid;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: #e4f1e6;
    color: #35613b;
    font-size: .68rem;
    place-items: center;
}

.gh-checkout-email {
    margin: 1rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid #e3ded8;
    color: #68707c;
    font-size: .8rem;
}

.gh-public-ticket-options {
    display: grid;
    gap: .65rem;
}

.gh-public-ticket-options label {
    display: block;
    position: relative;
    cursor: pointer;
}

.gh-public-ticket-options input {
    position: absolute;
    top: 1rem;
    left: 1rem;
    width: 1.1rem;
    height: 1.1rem;
}

.gh-public-ticket-options label > span {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .2rem 1rem;
    padding: 1rem 1rem 1rem 3rem;
    border: 2px solid #e0ddd9;
    border-radius: .75rem;
}

.gh-public-ticket-options label:has(input:checked) > span {
    border-color: var(--site-primary, #516543);
    background: #f7faf6;
    box-shadow: 0 0 0 3px rgba(81, 101, 67, .1);
}

.gh-public-ticket-options strong,
.gh-public-ticket-options small,
.gh-public-ticket-options em,
.gh-public-ticket-options b,
.gh-public-ticket-options i {
    display: block;
}

.gh-public-ticket-options small {
    color: #68707c;
    font-size: .78rem;
}

.gh-public-ticket-options em {
    grid-column: 1;
    color: #68707c;
    font-size: .75rem;
    font-style: normal;
}

.gh-public-ticket-options b {
    grid-column: 2;
    grid-row: 1;
    font-size: 1.1rem;
}

.gh-public-ticket-options i {
    grid-column: 2;
    color: #68707c;
    font-size: .7rem;
    font-style: normal;
    text-align: right;
}

.gh-stripe-note {
    display: grid;
    gap: .15rem;
    margin-top: 1rem;
    padding: .85rem;
    border-radius: .6rem;
    background: #f2f4f7;
    color: #626a77;
    font-size: .76rem;
}

.gh-stripe-note strong {
    color: #0b1d39;
}

.gh-ticket-unavailable {
    padding: 1.2rem;
    border-radius: .75rem;
    background: #fff8e7;
}

.gh-ticket-unavailable h3 {
    font-size: 1rem;
}

.gh-ticket-unavailable p {
    color: #696252;
    font-size: .84rem;
}

.gh-content-status-paid {
    background: #e5f2e7;
    color: #35613b;
}

.gh-content-status-pending,
.gh-content-status-partially_refunded,
.gh-content-status-disputed {
    background: #fff3cd;
    color: #725800;
}

.gh-content-status-refunded,
.gh-content-status-expired {
    background: #eef0f3;
    color: #59616e;
}

@media (max-width: 991.98px) {
    .gh-commerce-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-ticket-type-list article {
        grid-template-columns: minmax(0, 1fr) auto auto;
    }

    .gh-ticket-type-list dl {
        grid-column: 1 / 3;
        justify-self: start;
    }

    .gh-public-event-head,
    .gh-public-ticket-section,
    .gh-checkout-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .gh-stripe-readiness {
        grid-template-columns: auto 1fr;
    }

    .gh-stripe-actions {
        grid-column: 2;
        justify-content: flex-start;
    }

    .gh-ticket-numbers,
    .gh-ticket-window,
    .gh-membership-plan-list {
        grid-template-columns: 1fr;
    }

    .gh-payment-required {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .gh-commerce-blocker {
        align-items: stretch;
        flex-direction: column;
    }

    .gh-commerce-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-ticket-type-list article {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .gh-ticket-type-list dl {
        grid-column: 1 / 3;
        width: 100%;
    }

    .gh-ticket-type-list .gh-row-arrow {
        display: none;
    }

    .gh-public-ticket-list article {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .gh-public-ticket-list .gh-content-status {
        grid-column: 1 / 3;
        justify-self: start;
    }

    .gh-public-ticket-options label > span {
        grid-template-columns: 1fr;
    }

    .gh-public-ticket-options b,
    .gh-public-ticket-options i {
        grid-column: 1;
        grid-row: auto;
        text-align: left;
    }
}

/* =============================================================================
   People directory and member tracking
   ============================================================================= */

.gh-people-hub,
.gh-contact-editor {
    --gh-builder-navy: #0b1d39;
    --gh-builder-orange: #db5c1c;
    --gh-builder-sage: #516543;
    color: var(--gh-builder-navy);
}

.gh-people-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: 1rem;
}

.gh-people-filters > a {
    display: flex;
    min-height: 5.3rem;
    padding: .9rem 1rem;
    border: 1px solid #e3ded8;
    border-radius: .75rem;
    color: #0b1d39;
    flex-direction: column;
    justify-content: space-between;
    text-decoration: none;
}

.gh-people-filters > a:hover,
.gh-people-filters > a.is-active {
    border-color: #66826a;
    background: #f3f7f2;
}

.gh-people-filters span {
    color: #626a77;
    font-size: .72rem;
    font-weight: 700;
}

.gh-people-filters strong {
    font-size: 1.65rem;
    letter-spacing: -.035em;
}

.gh-people-search {
    display: flex;
    gap: .5rem;
    margin-bottom: 1.25rem;
}

.gh-people-search input[type="search"] {
    flex: 1;
    min-width: 0;
    padding: .65rem .8rem;
    border: 1px solid #cfd3d9;
    border-radius: .5rem;
}

.gh-people-list {
    border-top: 1px solid #e3ded8;
}

.gh-people-list > a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem .25rem;
    border-bottom: 1px solid #e3ded8;
    color: #0b1d39;
    text-decoration: none;
}

.gh-people-list > a:hover,
.gh-people-list > a.is-new-contact {
    background: #fbfaf8;
}

.gh-people-list > a.is-new-contact {
    box-shadow: inset 3px 0 #516543;
}

.gh-person-initials {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    background: #eef3ed;
    color: #426548;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
    place-items: center;
}

.gh-person-main > div {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: center;
}

.gh-person-main h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 750;
}

.gh-person-main p {
    margin: .2rem 0 .3rem;
    color: #626a77;
    font-size: .8rem;
}

.gh-person-tag {
    display: inline-flex;
    margin-right: .25rem;
    padding: .12rem .4rem;
    border-radius: 99rem;
    background: #f1eff4;
    color: #625d6a;
    font-size: .65rem;
}

.gh-person-consent {
    display: grid;
    gap: .3rem;
    min-width: 9rem;
}

.gh-person-consent span {
    padding: .25rem .5rem;
    border-radius: .4rem;
    background: #f1f2f4;
    color: #6b727d;
    font-size: .65rem;
}

.gh-person-consent span.is-granted {
    background: #e8f2e8;
    color: #35613b;
}

.gh-people-empty {
    max-width: 42rem;
    margin: 3rem auto;
    padding: 2.5rem;
    text-align: center;
}

.gh-people-empty .gh-person-initials {
    margin: 0 auto 1rem;
    font-size: 1.1rem;
}

.gh-people-empty h2 {
    font-size: 1.5rem;
    font-weight: 750;
}

.gh-name-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

[data-member-fields][hidden] {
    display: none;
}

.gh-consent-warning {
    padding: .75rem;
    border-left: 3px solid #db5c1c;
    background: #fbf0db;
    color: #5f6671;
    font-size: .78rem;
}

.gh-consent-choice {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    margin-bottom: .6rem;
    padding: .85rem;
    border: 1px solid #dedad5;
    border-radius: .7rem;
    cursor: pointer;
}

.gh-consent-choice:has(input:checked) {
    border-color: #7a9b7f;
    background: #f2f7f1;
}

.gh-consent-choice input {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .15rem;
}

.gh-consent-choice strong,
.gh-consent-choice small {
    display: block;
}

.gh-consent-choice small {
    color: #68707c;
    font-size: .73rem;
}

.gh-consent-history {
    display: grid;
    gap: .5rem;
}

.gh-consent-history > div {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .75rem;
    align-items: center;
    padding: .7rem 0;
    border-bottom: 1px solid #ebe7e2;
}

.gh-consent-history > div:last-child {
    border-bottom: 0;
}

.gh-consent-history p {
    margin: 0;
    color: #747b86;
    font-size: .72rem;
}

.gh-archive-contact {
    padding: 1rem;
    border: 1px solid #e4c6c6;
    border-radius: .75rem;
    background: #fff8f8;
}

.gh-archive-contact h2 {
    font-size: 1rem;
}

.gh-archive-contact p {
    color: #716464;
    font-size: .76rem;
}

@media (max-width: 991.98px) {
    .gh-people-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .gh-people-list > a {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .gh-person-consent {
        grid-column: 2;
        min-width: 0;
    }

    .gh-people-list .gh-row-arrow {
        grid-column: 3;
        grid-row: 1 / span 2;
    }
}

@media (max-width: 575.98px) {
    .gh-people-filters,
    .gh-name-grid {
        grid-template-columns: 1fr;
    }

    .gh-people-search {
        align-items: stretch;
        flex-direction: column;
    }

    .gh-consent-history > div {
        grid-template-columns: auto 1fr;
    }

    .gh-consent-history p {
        grid-column: 2;
    }
}

/* Membership plans and public joining */

.gh-membership-editor {
    --gh-builder-navy: #0b1d39;
    color: var(--gh-builder-navy);
}

.gh-membership-interval {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
    margin: 0;
    padding: 0;
    border: 0;
}

.gh-membership-interval legend {
    grid-column: 1 / -1;
    margin-bottom: .2rem;
    font-size: 1rem;
    font-weight: 700;
}

.gh-membership-interval label {
    display: flex;
    gap: .6rem;
    padding: .8rem;
    border: 2px solid #e0ddd9;
    border-radius: .7rem;
    cursor: pointer;
}

.gh-membership-interval label:has(input:checked) {
    border-color: #516543;
    background: #f3f7f2;
}

.gh-membership-interval input {
    flex: 0 0 auto;
    width: 1.05rem;
    height: 1.05rem;
    margin-top: .15rem;
}

.gh-membership-interval strong,
.gh-membership-interval small {
    display: block;
}

.gh-membership-interval small {
    color: #68707c;
    font-size: .7rem;
}

.gh-public-memberships > header {
    max-width: 50rem;
    margin: 1.5rem auto 2.5rem;
    text-align: center;
}

.gh-public-memberships > header h1 {
    font-size: clamp(2.3rem, 6vw, 4rem);
    font-weight: 750;
    letter-spacing: -.05em;
}

.gh-public-memberships > header > p:last-child {
    color: #59616e;
    font-size: 1.05rem;
}

.gh-public-membership-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    max-width: 58rem;
    margin: 0 auto;
}

.gh-public-membership-grid article {
    display: flex;
    padding: clamp(1.4rem, 4vw, 2.2rem);
    border: 1px solid #dcd8d3;
    border-radius: 1rem;
    background: #fff;
    flex-direction: column;
}

.gh-public-membership-grid article > p:first-child {
    color: #db5c1c;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.gh-public-membership-grid h2 {
    font-size: 1.55rem;
    font-weight: 750;
}

.gh-public-membership-grid article > div {
    color: #626a77;
}

.gh-public-membership-grid article > strong {
    margin: auto 0 1.25rem;
    padding-top: 1rem;
    font-size: 2.2rem;
    letter-spacing: -.04em;
}

.gh-public-membership-grid article > strong > span {
    font-size: 1rem;
    vertical-align: super;
}

.gh-public-membership-grid article > strong > small {
    color: #68707c;
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: 0;
}

.gh-membership-join {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, .7fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: center;
    max-width: 68rem;
    margin: 2rem auto;
}

.gh-membership-join > div:first-child h1 {
    font-size: clamp(2.3rem, 6vw, 4rem);
    font-weight: 750;
    letter-spacing: -.05em;
}

.gh-membership-description {
    color: #59616e;
    font-size: 1.05rem;
}

.gh-membership-price {
    display: flex;
    align-items: baseline;
    gap: .25rem;
    margin: 1.5rem 0;
}

.gh-membership-price > span {
    font-size: 1.2rem;
}

.gh-membership-price strong {
    font-size: 3rem;
    letter-spacing: -.06em;
}

.gh-membership-price small {
    color: #68707c;
    font-size: .75rem;
}

.gh-membership-join-form {
    padding: clamp(1.4rem, 4vw, 2.2rem);
    border: 1px solid #e0dcd7;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 1.25rem 3rem rgba(11, 29, 57, .09);
}

.gh-membership-join-form h2 {
    margin-bottom: 1.25rem;
    font-size: 1.35rem;
    font-weight: 750;
}

@media (max-width: 991.98px) {
    .gh-membership-join {
        grid-template-columns: 1fr;
        max-width: 42rem;
    }
}

@media (max-width: 575.98px) {
    .gh-membership-interval,
    .gh-public-membership-grid {
        grid-template-columns: 1fr;
    }

    .gh-membership-price {
        flex-wrap: wrap;
    }
}

/* Event-day roster and at-the-door responses */

.gh-roster,
.gh-door-response {
    --gh-roster-ink: #0b1d39;
    color: var(--gh-roster-ink);
}

.gh-roster-header {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: flex-end;
    margin-bottom: 1.5rem;
}

.gh-roster-header h1,
.gh-door-response .gh-editor-header h1 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 750;
    letter-spacing: -.045em;
}

.gh-roster-header p:last-child,
.gh-door-response .gh-editor-header p:last-child {
    margin: .35rem 0 0;
    color: #626b78;
}

.gh-roster-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: 1rem;
}

.gh-roster-metrics > div {
    display: flex;
    min-height: 6rem;
    padding: 1rem;
    border: 1px solid #dedbd6;
    border-radius: .8rem;
    background: #fff;
    flex-direction: column;
    justify-content: space-between;
}

.gh-roster-metrics span {
    color: #68717d;
    font-size: .72rem;
    font-weight: 700;
}

.gh-roster-metrics strong {
    font-size: 1.8rem;
    line-height: 1;
}

.gh-roster-metrics .gh-metric-checked {
    border-color: #a9c9ad;
    background: #f1f8f2;
}

.gh-roster-metrics .gh-metric-warning {
    border-color: #e8c67a;
    background: #fff9eb;
}

.gh-payment-waiting {
    margin-bottom: 1rem;
    border: 1px solid #e5c273;
    border-radius: .8rem;
    background: #fff9eb;
}

.gh-payment-waiting summary {
    display: flex;
    gap: .35rem;
    padding: 1rem 1.1rem;
    cursor: pointer;
    flex-direction: column;
}

.gh-payment-waiting summary span,
.gh-payment-waiting p,
.gh-payment-waiting li span {
    color: #6c6046;
    font-size: .86rem;
}

.gh-payment-waiting > div {
    padding: 0 1.1rem 1rem;
}

.gh-payment-waiting ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    margin: .75rem 0 0;
    padding: 0;
    list-style: none;
}

.gh-payment-waiting li {
    display: flex;
    padding: .7rem;
    border-radius: .5rem;
    background: rgba(255, 255, 255, .7);
    flex-direction: column;
}

.gh-roster-tools {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) auto auto auto;
    gap: .6rem;
    margin: 1.25rem 0;
}

.gh-roster-list {
    display: grid;
    gap: .65rem;
}

.gh-roster-person {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    min-height: 6rem;
    padding: .9rem;
    border: 1px solid #dedbd6;
    border-radius: .8rem;
    background: #fff;
    align-items: center;
}

.gh-roster-person.is-checked-in {
    border-color: #a9c9ad;
    background: #f4f9f4;
}

.gh-roster-person .gh-person-initials {
    display: grid;
    width: 3.1rem;
    height: 3.1rem;
    border-radius: 50%;
    background: #e9edf4;
    color: #40516f;
    font-weight: 800;
    place-items: center;
}

.gh-roster-person.is-checked-in .gh-person-initials {
    background: #dceedd;
    color: #28572e;
}

.gh-roster-name-line,
.gh-roster-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: center;
}

.gh-roster-name-line h2 {
    margin: 0;
    font-size: 1.08rem;
    font-weight: 750;
}

.gh-roster-person-details > p {
    margin: .18rem 0 .4rem;
    color: #68717d;
    font-size: .86rem;
}

.gh-roster-badge,
.gh-roster-tags span {
    padding: .2rem .45rem;
    border-radius: 999px;
    background: #edf0f5;
    color: #566274;
    font-size: .65rem;
    font-weight: 750;
}

.gh-roster-badge.gh-roster-guest {
    background: #f4ece5;
    color: #875437;
}

.gh-roster-tags .gh-checked-time {
    background: #dceedd;
    color: #28572e;
}

.gh-roster-person form .btn {
    min-width: 9.5rem;
    min-height: 3.25rem;
}

.gh-roster-person form small {
    display: block;
    font-size: .62rem;
}

.gh-roster-empty {
    display: flex;
    min-height: 10rem;
    border: 1px dashed #cfd3d9;
    border-radius: .8rem;
    color: #68717d;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
}

.gh-door-response-options {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gh-door-guests[hidden],
.gh-door-guest[hidden] {
    display: none;
}

.gh-guest-count {
    max-width: 14rem;
}

.gh-door-guest-list {
    display: grid;
    gap: 1rem;
}

.gh-door-guest {
    padding: 1rem;
    border: 1px solid #e2ded9;
    border-radius: .7rem;
}

.gh-door-guest legend {
    width: auto;
    padding: 0 .3rem;
    font-size: .85rem;
    font-weight: 800;
}

.gh-door-payment-note {
    display: flex;
    gap: .3rem;
    margin-bottom: 1rem;
    padding: .85rem;
    border-radius: .6rem;
    background: #fff7e5;
    flex-direction: column;
}

.gh-door-payment-note span {
    color: #6c6046;
    font-size: .82rem;
}

@media (max-width: 991.98px) {
    .gh-roster-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-roster-tools {
        grid-template-columns: minmax(12rem, 1fr) 1fr 1fr;
    }

    .gh-roster-tools button {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .gh-roster-header {
        align-items: stretch;
        flex-direction: column;
    }

    .gh-roster-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-roster-metrics > div:last-child {
        grid-column: 1 / -1;
    }

    .gh-payment-waiting ul,
    .gh-roster-tools,
    .gh-door-response-options {
        grid-template-columns: 1fr;
    }

    .gh-roster-person {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .gh-roster-person form {
        grid-column: 1 / -1;
    }

    .gh-roster-person form .btn {
        width: 100%;
    }
}

/* Subscriber reports */

.gh-reports {
    --gh-report-ink: #0b1d39;
    color: var(--gh-report-ink);
}

.gh-reports-header {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: flex-end;
    margin-bottom: 3rem;
}

.gh-reports-header > div:first-child {
    max-width: 48rem;
}

.gh-reports-header h1 {
    margin: 0;
    font-size: clamp(2.3rem, 6vw, 4.2rem);
    font-weight: 760;
    letter-spacing: -.055em;
}

.gh-reports-header p:last-child,
.gh-report-filter-row > div > p:last-child {
    margin: .75rem 0 0;
    color: #626b78;
    font-size: 1.02rem;
}

.gh-reports-header-actions {
    display: flex;
    gap: .5rem;
    flex: 0 0 auto;
}

.gh-report-freshness {
    color: #737b86;
    font-size: .75rem;
}

.gh-report-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.gh-report-kpis article {
    display: flex;
    min-height: 10rem;
    padding: 1.25rem;
    border: 1px solid #dedbd6;
    border-radius: .85rem;
    background: #fff;
    flex-direction: column;
}

.gh-report-kpis article > span,
.gh-report-stat > span {
    color: #68717d;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .055em;
}

.gh-report-kpis article > strong {
    margin: auto 0 .4rem;
    font-size: clamp(2rem, 4vw, 2.8rem);
    line-height: 1;
    letter-spacing: -.05em;
}

.gh-report-kpis strong small,
.gh-report-stat strong small {
    color: #68717d;
    font-size: .45em;
    font-weight: 600;
    letter-spacing: 0;
}

.gh-report-kpis article > p {
    margin: 0;
    color: #68717d;
    font-size: .75rem;
}

.gh-report-kpis article > p b {
    color: #315f38;
}

.gh-report-supporting {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: .75rem 0 0;
    padding: 1rem 0;
    border-block: 1px solid #e2dfda;
}

.gh-report-supporting > div {
    padding: .25rem 1rem;
    border-right: 1px solid #e2dfda;
}

.gh-report-supporting > div:first-child {
    padding-left: 0;
}

.gh-report-supporting > div:last-child {
    border-right: 0;
}

.gh-report-supporting dt {
    color: #737b86;
    font-size: .67rem;
    font-weight: 700;
}

.gh-report-supporting dd {
    margin: .2rem 0 0;
    font-size: 1.1rem;
    font-weight: 800;
}

.gh-date-report {
    margin-top: 3.5rem;
}

.gh-report-filter-row {
    align-items: flex-end;
}

.gh-report-filters {
    display: flex;
    gap: .25rem;
    padding: .25rem;
    border-radius: .65rem;
    background: #eef0f3;
}

.gh-report-filters a {
    padding: .48rem .75rem;
    border-radius: .48rem;
    color: #596476;
    font-size: .8rem;
    font-weight: 750;
    text-decoration: none;
}

.gh-report-filters a[aria-current="page"] {
    background: #fff;
    color: #0b1d39;
    box-shadow: 0 .1rem .4rem rgba(11, 29, 57, .1);
}

.gh-date-report-list {
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
}

.gh-date-report-row {
    display: grid;
    grid-template-columns: 3.7rem minmax(14rem, 1.4fr) repeat(3, minmax(7.5rem, .65fr)) auto;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #dedbd6;
    border-radius: .8rem;
    background: #fff;
    align-items: center;
}

.gh-date-report-row.is-canceled {
    opacity: .7;
    background: #f6f6f5;
}

.gh-report-date {
    display: flex;
    min-height: 4.4rem;
    padding: .45rem;
    border-radius: .6rem;
    background: #edf0f5;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    line-height: 1;
}

.gh-report-date span,
.gh-report-date small {
    color: #657084;
    font-size: .6rem;
    font-weight: 800;
    text-transform: uppercase;
}

.gh-report-date strong {
    margin: .2rem 0;
    font-size: 1.5rem;
}

.gh-report-event-title {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: center;
}

.gh-report-event h3 {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 780;
}

.gh-report-event > p {
    margin: .2rem 0 .5rem;
    color: #6b7481;
    font-size: .75rem;
}

.gh-report-response-mix {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .65rem;
    color: #68717d;
    font-size: .67rem;
}

.gh-report-response-mix b {
    color: #315f38;
}

.gh-report-response-mix .is-warning {
    color: #96651f;
    font-weight: 750;
}

.gh-report-stat {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.gh-report-stat > strong {
    margin: .25rem 0;
    font-size: 1.3rem;
    letter-spacing: -.035em;
}

.gh-report-stat > small {
    overflow: hidden;
    color: #737b86;
    font-size: .65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gh-report-progress {
    overflow: hidden;
    width: 100%;
    max-width: 7rem;
    height: .3rem;
    margin-bottom: .25rem;
    border-radius: 999px;
    background: #e4e8e4;
}

.gh-report-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #516543;
}

.gh-report-row-action {
    color: #315f72;
    font-size: .75rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.gh-report-row-action span {
    margin-left: .25rem;
}

.gh-report-empty {
    padding: 3rem 1.5rem;
    border: 1px dashed #cdd2d8;
    border-radius: .8rem;
    color: #68717d;
    text-align: center;
}

.gh-report-empty h3 {
    color: #0b1d39;
}

.gh-series-report {
    margin-top: 2rem;
    border: 1px solid #dedbd6;
    border-radius: .8rem;
    background: #fff;
}

.gh-series-report summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.2rem;
    cursor: pointer;
    align-items: center;
}

.gh-series-report summary span,
.gh-series-report summary small {
    display: block;
}

.gh-series-report summary small {
    margin-top: .15rem;
    color: #737b86;
    font-size: .7rem;
}

.gh-series-report summary > b {
    font-size: 1.4rem;
}

.gh-series-report[open] summary > b {
    transform: rotate(45deg);
}

.gh-series-report .table-responsive {
    padding: 0 1.2rem 1rem;
}

.gh-report-disclaimer {
    margin: 1rem 0 0;
    color: #777f89;
    font-size: .68rem;
}

@media (max-width: 1199.98px) {
    .gh-date-report-row {
        grid-template-columns: 3.7rem minmax(14rem, 1fr) repeat(2, minmax(7rem, .5fr)) auto;
    }

    .gh-date-report-row > .gh-report-stat:nth-of-type(5) {
        display: none;
    }
}

@media (max-width: 991.98px) {
    .gh-report-kpis,
    .gh-report-supporting {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-report-supporting > div {
        padding: .65rem;
        border-right: 0;
        border-bottom: 1px solid #e2dfda;
    }

    .gh-date-report-row {
        grid-template-columns: 3.7rem minmax(0, 1fr) minmax(7rem, .35fr) auto;
    }

    .gh-date-report-row > .gh-report-stat:nth-of-type(4),
    .gh-date-report-row > .gh-report-stat:nth-of-type(5) {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .gh-reports-header,
    .gh-report-filter-row {
        align-items: stretch;
        flex-direction: column;
    }

    .gh-reports-header-actions,
    .gh-report-filters {
        width: 100%;
    }

    .gh-reports-header-actions > *,
    .gh-report-filters > * {
        flex: 1;
        text-align: center;
    }

    .gh-date-report-row {
        grid-template-columns: 3.7rem minmax(0, 1fr) auto;
    }

    .gh-date-report-row > .gh-report-stat {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .gh-report-kpis,
    .gh-report-supporting {
        grid-template-columns: 1fr;
    }

    .gh-report-kpis article {
        min-height: 8.5rem;
    }

    .gh-report-supporting > div:first-child {
        padding-left: .65rem;
    }

    .gh-report-filters {
        overflow-x: auto;
    }

    .gh-report-filters a {
        white-space: nowrap;
    }

    .gh-date-report-row {
        grid-template-columns: 3.2rem minmax(0, 1fr);
    }

    .gh-report-date {
        min-height: 4rem;
    }

    .gh-report-row-action {
        grid-column: 1 / -1;
        padding-top: .7rem;
        border-top: 1px solid #e4e1dc;
        text-align: right;
    }
}
