/*
Theme Name: Encounter3
Theme URI: https://example.test/encounter3
Description: Encounter3. Where two meet in Him. Christian matchmaking for marriage.
Author: Codex
Version: 1.9.0
Template: twentytwentyfive
Text Domain: encounter3-theme
*/

:root {
    --fm-ink: #152839;
    --fm-muted: #596873;
    --fm-green: #193d59;
    --fm-green-dark: #10283a;
    --fm-mint: #edf2f5;
    --fm-coral: #922334;
    --fm-coral-dark: #6e1a27;
    --fm-gold: #d4ac5a;
    --fm-blue: #36764d;
    --fm-white: #ffffff;
    --fm-cloud: #f5f7f8;
    --fm-border: #dce2e6;
    --fm-shadow: 0 14px 36px rgba(25, 61, 89, 0.12);
    --fm-content: 1200px;
    --fm-narrow: 760px;
    --fm-header-height: 78px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    letter-spacing: 0 !important;
}

html {
    scroll-behavior: smooth;
}

body.encounter3-site {
    background: var(--fm-white);
    color: var(--fm-ink);
    font-family: "Segoe UI", Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    margin: 0;
    padding: 0;
}

body.encounter3-site img {
    display: block;
    height: auto;
    max-width: 100%;
}

a {
    color: inherit;
}

body.encounter3-site h1,
body.encounter3-site h2,
body.encounter3-site h3,
body.encounter3-site p {
    margin-top: 0;
}

body.encounter3-site h1,
body.encounter3-site h2,
body.encounter3-site h3 {
    color: inherit;
    font-weight: 750;
    line-height: 1.14;
}

body.encounter3-site h1 {
    font-family: "Segoe UI", Arial, sans-serif;
    font-weight: 400;
    font-size: 52px;
}

body.encounter3-site h2 {
    font-size: 34px;
}

body.encounter3-site h3 {
    font-size: 21px;
}

.fh-container {
    margin: 0 auto;
    max-width: var(--fm-content);
    padding-left: 24px;
    padding-right: 24px;
    width: 100%;
}

.fh-container--narrow {
    max-width: var(--fm-narrow);
}

/* Public error screens use the same familiar shell, with a clear next step. */
.fh-error-page {
    background:
        radial-gradient(circle at 10% 12%, rgba(212, 172, 90, 0.22), transparent 26rem),
        linear-gradient(135deg, #f8fbfc 0%, #f3f7f8 52%, #fbf7ee 100%);
    min-height: calc(100vh - var(--fm-header-height));
    padding: clamp(48px, 9vw, 116px) 0;
}

.fh-error-page__inner {
    max-width: 1010px;
}

.fh-error-card {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(220, 226, 230, 0.9);
    border-radius: 20px;
    box-shadow: 0 24px 64px rgba(25, 61, 89, 0.14);
    display: grid;
    grid-template-columns: minmax(210px, 0.72fr) minmax(0, 1.35fr);
    overflow: hidden;
    position: relative;
}

.fh-error-card__visual {
    align-items: center;
    background: var(--fm-green);
    color: var(--fm-white);
    display: flex;
    justify-content: center;
    min-height: 390px;
    overflow: hidden;
    position: relative;
}

.fh-error-card__visual::before,
.fh-error-card__visual::after {
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    content: "";
    height: 420px;
    position: absolute;
    width: 420px;
}

.fh-error-card__visual::before {
    left: -225px;
    top: -145px;
}

.fh-error-card__visual::after {
    bottom: -230px;
    right: -220px;
}

.fh-error-card__visual strong {
    font-size: clamp(78px, 11vw, 142px);
    font-weight: 800;
    letter-spacing: -0.08em !important;
    line-height: 0.9;
    position: relative;
    text-shadow: 0 8px 0 rgba(16, 40, 58, 0.35);
    z-index: 1;
}

.fh-error-orbit {
    border: 2px solid var(--fm-gold);
    border-radius: 50%;
    opacity: 0.85;
    position: absolute;
}

.fh-error-orbit--one {
    height: 34px;
    left: 24%;
    top: 27%;
    width: 34px;
}

.fh-error-orbit--two {
    bottom: 24%;
    height: 16px;
    right: 23%;
    width: 16px;
}

.fh-error-card__content {
    align-self: center;
    padding: clamp(36px, 6vw, 72px);
}

.fh-error-card .fh-eyebrow {
    color: var(--fm-coral);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em !important;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.fh-error-card h1 {
    color: var(--fm-green-dark);
    font-size: clamp(34px, 4vw, 50px);
    margin: 0 0 18px;
}

.fh-error-card__message {
    color: var(--fm-muted);
    font-size: 18px;
    margin-bottom: 30px;
    max-width: 550px;
}

.fh-error-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 19px;
}

.fh-error-actions .fh-button {
    min-height: 46px;
    text-decoration: none;
}

.fh-error-secondary {
    color: var(--fm-green);
    font-size: 14px;
    font-weight: 750;
    text-decoration: underline;
    text-decoration-color: var(--fm-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
}

.fh-error-tip {
    align-items: flex-start;
    background: #fff9ee;
    border-top: 1px solid #f0e2c4;
    color: #5d4b2e;
    display: flex;
    gap: 12px;
    grid-column: 1 / -1;
    padding: 18px clamp(24px, 5vw, 52px);
}

.fh-error-tip p {
    font-size: 14px;
    margin: 0;
}

.fh-error-tip__mark {
    align-items: center;
    background: var(--fm-gold);
    border-radius: 50%;
    color: #3f3016;
    display: inline-flex;
    flex: 0 0 22px;
    font-size: 14px;
    font-weight: 800;
    height: 22px;
    justify-content: center;
    line-height: 1;
}

.fh-skip-link {
    background: var(--fm-white);
    color: var(--fm-green-dark);
    left: 16px;
    padding: 10px 14px;
    position: fixed;
    top: -80px;
    z-index: 9999;
}

.fh-skip-link:focus {
    top: 12px;
}

.fh-icon {
    display: inline-block;
    flex: 0 0 auto;
    height: 19px;
    vertical-align: -4px;
    width: 19px;
}

.fh-site-header {
    align-items: center;
    background: rgba(255, 253, 250, 0.97);
    border-bottom: 1px solid var(--fm-border);
    display: flex;
    height: var(--fm-header-height);
    position: sticky;
    top: 0;
    z-index: 100;
}

.admin-bar .fh-site-header {
    top: 32px;
}

.fh-header-inner {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.fh-brand {
    align-items: center;
    display: inline-flex;
    gap: 11px;
    text-decoration: none;
}

.fh-brand-mark {
    align-items: center;
    background: var(--fm-green);
    border-radius: 6px;
    color: var(--fm-white);
    display: inline-flex;
    font-size: 24px;
    font-weight: 800;
    height: 42px;
    justify-content: center;
    line-height: 1;
    width: 42px;
}

.fh-encounter-journey {
    background: #fff;
    border-bottom: 1px solid var(--fm-border);
    padding: 28px 0;
}
.fh-encounter-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}
.fh-encounter-steps > div {
    border-top: 3px solid var(--fm-green);
    padding-top: 12px;
}
.fh-encounter-steps > div:nth-child(2) { border-color: var(--fm-coral); }
.fh-encounter-steps > div:nth-child(3) { border-color: #36764d; }
.fh-encounter-steps > div:nth-child(4) { border-color: var(--fm-gold); }
.fh-encounter-steps strong { display: block; font-size: 18px; }
.fh-encounter-steps span { color: var(--fm-muted); font-size: 14px; }

.fh-join-steps {
    background:
        radial-gradient(circle at 12% 18%, rgba(212, 172, 90, 0.16), transparent 23rem),
        linear-gradient(180deg, #fffdf9 0%, #fbf7ee 100%);
    border-bottom: 1px solid rgba(212, 172, 90, 0.25);
    padding: clamp(58px, 7vw, 88px) 0;
}

.fh-join-steps__header {
    margin: 0 auto clamp(32px, 4vw, 48px);
    max-width: 760px;
    text-align: center;
}

.fh-join-steps__eyebrow {
    color: var(--fm-coral);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em !important;
    margin-bottom: 10px;
    text-transform: uppercase;
}

.fh-join-steps__header h2 { margin-bottom: 14px; }

.fh-join-steps__header > p:last-child {
    color: var(--fm-muted);
    font-size: clamp(16px, 1.5vw, 19px);
    margin: 0 auto;
    max-width: 650px;
}

.fh-join-steps__list {
    display: grid;
    gap: clamp(24px, 3vw, 38px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.fh-join-step {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(25, 61, 89, 0.14);
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(25, 61, 89, 0.1);
    min-height: 294px;
    padding: 30px 28px 28px;
    position: relative;
    text-align: center;
}

.fh-join-step:not(:last-child)::after {
    color: var(--fm-gold);
    content: "\2192";
    font-size: 30px;
    font-weight: 800;
    line-height: 1;
    position: absolute;
    right: calc(clamp(24px, 3vw, 38px) / -1 - 2px);
    top: 47px;
    transform: translateX(50%);
    z-index: 2;
}

.fh-join-step__icon {
    align-items: center;
    background: var(--fm-mint);
    border: 1px solid rgba(25, 61, 89, 0.12);
    border-radius: 50%;
    color: var(--fm-green);
    display: inline-flex;
    height: 72px;
    justify-content: center;
    margin-bottom: 18px;
    width: 72px;
}

.fh-join-step:nth-child(2) .fh-join-step__icon {
    background: #fbf0f2;
    color: var(--fm-coral);
}

.fh-join-step:nth-child(3) .fh-join-step__icon {
    background: #fbf5e6;
    color: #765714;
}

.fh-join-step__icon .fh-icon {
    height: 31px;
    width: 31px;
}

.fh-join-step__number {
    color: var(--fm-coral);
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 7px;
    text-transform: uppercase;
}

body.encounter3-site .fh-join-step h3 {
    color: var(--fm-green-dark);
    font-size: clamp(19px, 1.45vw, 22px);
    margin-bottom: 11px;
}

.fh-join-step > p:last-child {
    color: var(--fm-muted);
    font-size: 15px;
    line-height: 1.62;
    margin-bottom: 0;
}

.fh-join-steps__cta {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: clamp(32px, 4vw, 46px);
    text-align: center;
}

.encounter3-site .fh-join-steps__cta .fh-button {
    font-size: 16px;
    min-height: 50px;
    padding-inline: 25px;
}

.fh-join-steps__cta p {
    color: var(--fm-muted);
    font-size: 13px;
    margin: 0;
}

@media (max-width: 780px) {
    .fh-join-steps { padding: 52px 0 58px; }
    .fh-join-steps__header { margin-bottom: 30px; }
    .fh-join-steps__list { gap: 40px; grid-template-columns: 1fr; }
    .fh-join-step { min-height: 0; padding: 27px 24px 25px; }
    .fh-join-step:not(:last-child)::after {
        bottom: -35px;
        content: "\2193";
        left: 50%;
        right: auto;
        top: auto;
        transform: translateX(-50%);
    }
}

.encounter3-site .fh-church-logo {
    background: #fff;
    flex: 0 0 58px;
    height: 58px;
    max-height: 58px;
    max-width: 58px;
    object-fit: contain;
    width: 58px;
}
@media (max-width: 600px) {
    .fh-encounter-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fh-brand-title { font-size: 18px; }
}

.fh-brand-name {
    display: grid;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
}

.fh-brand-title {
    color: var(--fm-green-dark);
    font-family: "Segoe UI", Arial, sans-serif;
    text-transform: uppercase;
}

.fh-brand-number {
    color: var(--fm-gold);
}

.fh-brand-name small {
    color: var(--fm-muted);
    font-size: 9px;
    font-weight: 650;
    margin-top: 4px;
    text-transform: uppercase;
}

.fh-sign-in {
    margin: 40px auto 72px;
    max-width: 460px;
}

.fh-sign-in .fh-eyebrow {
    margin-bottom: 12px;
}

.fh-sign-in h1 {
    font-size: 38px;
    margin: 0 0 12px;
}

.fh-sign-in > p:not(.fh-eyebrow):not(.fh-sign-in-links) {
    color: var(--fm-muted);
    margin-bottom: 28px;
}

.fh-sign-in form {
    display: grid;
    gap: 16px;
}

.fh-sign-in form p {
    margin: 0;
}

.fh-sign-in label {
    color: var(--fm-ink);
    display: grid;
    font-size: 14px;
    font-weight: 700;
    gap: 7px;
}

.fh-sign-in input[type="text"],
.fh-sign-in input[type="password"] {
    border: 1px solid var(--fm-border);
    border-radius: 5px;
    font: inherit;
    min-height: 46px;
    padding: 10px 12px;
}

.fh-sign-in .login-remember label {
    align-items: center;
    display: flex;
    font-weight: 500;
    gap: 8px;
}

.fh-sign-in .button {
    width: 100%;
}

.fh-sign-in-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.fh-nav {
    align-items: center;
    display: flex;
    gap: 26px;
}

.fh-nav a {
    align-items: center;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    gap: 6px;
    position: relative;
    text-decoration: none;
}

.fh-nav .fh-icon { height: 17px; width: 17px; }
.fh-nav .fh-nav-notifications { padding: 5px; }
.fh-nav-count { align-items: center; background: var(--fm-coral, #9e2331); border: 2px solid #fff; border-radius: 999px; color: #fff; display: inline-flex; font-size: 10px; font-weight: 800; height: 18px; justify-content: center; line-height: 1; margin-left: -3px; min-width: 18px; padding: 0 4px; }

.fma-support-tickets { margin-top: 32px; overflow-x: auto; }
.fma-support-tickets table { border-collapse: collapse; min-width: 680px; width: 100%; }
.fma-support-tickets th, .fma-support-tickets td { border-bottom: 1px solid var(--fm-border); padding: 12px 10px; text-align: left; vertical-align: top; }
.fma-support-tickets th { color: var(--fm-muted); font-size: 12px; text-transform: uppercase; }
.fma-support-ticket { max-width: 760px; }
.fma-support-ticket header { border-bottom: 1px solid var(--fm-border); display: grid; gap: 8px; margin-bottom: 20px; padding-bottom: 18px; }
.fma-support-ticket header span { color: var(--fm-muted); font-size: 13px; font-weight: 700; }
.fma-support-ticket header h3 { margin: 4px 0 0; }
.fma-support-ticket article { background: #f5f7f8; border-left: 3px solid var(--fm-gold); margin: 16px 0; padding: 18px; }
.fma-support-ticket article p { margin: 10px 0; }
.fma-support-ticket header > div { display:flex; flex-wrap:wrap; gap:16px; }
.fma-support-status { color: var(--fm-coral-dark); font-weight:800; }
.fma-support-conversation { border-top:1px solid var(--fm-border); margin-top:24px; padding-top:20px; }
.fma-support-conversation h4 { margin-top:0; }
.fma-support-message { border-left-color: var(--fm-ink); }
.fma-support-message.is-member { border-left-color: var(--fm-gold); }
.fma-support-event { color: var(--fm-muted); font-size:13px; margin:14px 0; }
.fma-support-reply { background:#f5f7f8; border:1px solid var(--fm-border); display:grid; gap:12px; margin-top:24px; padding:18px; }
.fma-support-reply label { display:grid; font-weight:700; gap:8px; }
.fma-support-reply textarea { background:#fff; border:1px solid var(--fm-border); min-height:120px; padding:10px; width:100%; }
.fma-support-reply button { justify-self:end; }

/* Ticket header and reply rail mirror the support workspace hierarchy. */
.fma-support-ticket header.fma-support-ticket-header { background:#fbf2df; border:1px solid #e5cf9b; border-radius:10px; color:#3d2b10; display:block; margin:0 0 20px; padding:24px; }
.fma-support-ticket header.fma-support-ticket-header .fma-support-breadcrumb { font-size:12px; margin:0 0 22px; }
.fma-support-ticket header.fma-support-ticket-header .fma-support-breadcrumb a { color:#805719; text-decoration:none; }
.fma-support-ticket header.fma-support-ticket-header .fma-support-ticket-meta { align-items:start; display:grid; gap:24px; grid-template-columns:110px minmax(150px, 1fr) auto; }
.fma-support-ticket header.fma-support-ticket-header .fma-support-ticket-meta > div { display:grid; gap:6px; }
.fma-support-ticket header.fma-support-ticket-header small { color:#805719; font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.fma-support-ticket header.fma-support-ticket-header strong { color:#3d2b10; font-size:14px; font-weight:600; }
.fma-support-ticket header.fma-support-ticket-header .fma-support-ticket-status { justify-items:end; min-width:110px; }
.fma-support-ticket header.fma-support-ticket-header .fma-support-ticket-status span { background:#1b5a45; border-radius:999px; color:#d8fae8; font-size:12px; font-weight:700; padding:7px 10px; text-transform:capitalize; }
.fma-support-ticket header.fma-support-ticket-header .fma-support-ticket-subject { display:grid; gap:7px; margin-top:24px; }
.fma-support-ticket header.fma-support-ticket-header h3 { color:#3d2b10; font-size:22px; font-weight:500; margin:0; }
.fma-support-ticket .fma-support-original { border-radius:7px; }
.fma-support-conversation-heading { align-items:center; display:flex; justify-content:space-between; margin-bottom:14px; }
.fma-support-conversation-heading h4, .fma-support-conversation-heading p { margin:0; }
.fma-support-conversation-heading p { color:var(--fm-muted); font-size:12px; }
.fma-support-timeline { margin-left:16px; padding:0 0 1px 25px; position:relative; }
.fma-support-timeline::before { background:#cbd5de; bottom:17px; content:''; left:0; position:absolute; top:17px; width:1px; }
.fma-support-timeline-item { padding:0 0 16px; position:relative; }
.fma-support-timeline-item::before { background:#8d82eb; border:3px solid #f7f8f7; border-radius:50%; content:''; height:8px; left:-30px; position:absolute; top:24px; width:8px; z-index:1; }
.fma-support-timeline-item.is-event::before { background:#b88134; top:8px; }
.fma-support-timeline-item .fma-support-message { border:1px solid var(--fm-border); border-left:3px solid var(--fm-ink); border-radius:7px; margin:0; position:relative; }
.fma-support-timeline-item .fma-support-message.is-member { border-left-color:var(--fm-gold); }
.fma-support-timeline-item .fma-support-event { margin:0; padding:0 0 10px; }

/* Member support workspace. */
.fma-support-workspace { max-width:920px; }
.fma-support-member-list, .fma-support-new { border:1px solid var(--fm-border); border-radius:7px; overflow:hidden; }
.fma-support-member-list > header { align-items:flex-start; border-bottom:1px solid var(--fm-border); display:flex; gap:20px; justify-content:space-between; padding:24px; }
.fma-support-member-list > header .fh-eyebrow { margin-bottom:7px; }
.fma-support-member-list > header h3 { margin:0 0 7px; }
.fma-support-member-list > header p:last-child { color:var(--fm-muted); margin:0; max-width:550px; }
.fma-support-filter { background:var(--fm-cloud); border-bottom:1px solid var(--fm-border); display:flex; gap:9px; padding:12px 24px; }
.fma-support-filter a { border:1px solid var(--fm-border); border-radius:999px; color:var(--fm-muted); font-size:13px; padding:6px 10px; text-decoration:none; }
.fma-support-filter a.is-active { background:var(--fm-green); border-color:var(--fm-green); color:var(--fm-white); }
.fma-support-ticket-list { display:grid; }
.fma-support-ticket-row { align-items:center; border-bottom:1px solid var(--fm-border); color:inherit; display:grid; gap:16px; grid-template-columns:105px minmax(0,1fr) auto; padding:17px 20px; text-decoration:none; }
.fma-support-ticket-row:last-child { border-bottom:0; }
.fma-support-ticket-row:hover, .fma-support-ticket-row.is-selected { background:#fff8e8; box-shadow:inset 3px 0 var(--fm-gold); }
.fma-support-ticket-row span { display:grid; gap:4px; min-width:0; }
.fma-support-ticket-row strong, .fma-support-ticket-row b { font-size:14px; }
.fma-support-ticket-row strong { color:var(--fm-green); }
.fma-support-ticket-row small { color:var(--fm-muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fma-support-status { border-radius:999px; display:inline-block; font-size:11px; font-style:normal; font-weight:700; padding:5px 9px; white-space:nowrap; }
.fma-support-status-open, .fma-support-status-pending_human { background:#fff0d1; color:#815b18; }
.fma-support-status-in_progress { background:#dcefed; color:#1b5d67; }
.fma-support-status-escalated { background:#f7dfe3; color:#8a2637; }
.fma-support-status-completed, .fma-support-status-dismissed { background:#e1eee3; color:#3d6547; }
.fma-support-ticket { max-width:none; margin-top:22px; }
.fma-support-new-header { background:#fff8e8; border-bottom:1px solid #eadfc7; padding:24px; }
.fma-support-new-header .fh-eyebrow { margin-bottom:7px; }
.fma-support-new-header h3 { font-family:Georgia,"Times New Roman",serif; font-size:30px; font-weight:400; margin:0 0 8px; }
.fma-support-new-header p:last-child { color:var(--fm-muted); margin:0; }
.fma-support-new .fma-support-breadcrumb { margin:0; padding:16px 24px; font-size:13px; }
.fma-support-new .fma-support-breadcrumb a { color:var(--fm-green); text-decoration:none; }
.fma-support-form { max-width:none; padding:24px; }
.fma-support-account-note { align-items:flex-start; background:#f4f8f5; border-left:3px solid #5b8768; display:flex; gap:15px; margin:0 0 22px; padding:13px; }
.fma-support-account-note strong { min-width:90px; }
.fma-support-account-note span, .fma-support-payment p { color:var(--fm-muted); font-size:13px; margin:0; }
.fma-support-form-grid { display:grid; gap:18px; grid-template-columns:1fr 1fr; }
.fma-support-form label { display:grid; font-size:14px; font-weight:700; gap:7px; }
.fma-support-form label small { color:var(--fm-muted); font-weight:400; }
.fma-support-form input[type="text"], .fma-support-form select, .fma-support-form textarea { background:#fff; border:1px solid var(--fm-border); border-radius:5px; color:var(--fm-ink); font:inherit; min-height:44px; padding:10px; width:100%; }
.fma-support-form textarea { min-height:140px; resize:vertical; }
.fma-support-form-full, .fma-support-payment { grid-column:1 / -1; }
.fma-support-payment { align-items:center; background:#fffbf3; border:1px solid #ead8b6; border-radius:5px; display:grid; gap:18px; grid-template-columns:minmax(230px, .9fr) 1.1fr; padding:14px; }
.fma-support-payment[hidden] { display:none; }
.fma-support-form-actions { align-items:center; border-top:1px solid var(--fm-border); display:flex; gap:20px; justify-content:space-between; margin-top:24px; padding-top:20px; }
.fma-support-form-actions > p { color:var(--fm-muted); font-size:12px; margin:0; max-width:460px; }
.fma-support-form-actions > span { align-items:center; display:flex; gap:10px; }
.fma-support-form-actions button { background:var(--fm-coral); border:1px solid var(--fm-coral); border-radius:5px; color:#fff; font:inherit; font-size:14px; font-weight:700; min-height:44px; padding:0 16px; }

@media (max-width:700px) {
    .fma-support-member-list > header, .fma-support-form-actions { align-items:stretch; flex-direction:column; }
    .fma-support-ticket-row { align-items:start; grid-template-columns:82px minmax(0,1fr); }
    .fma-support-ticket-row em { grid-column:2; justify-self:start; }
    .fma-support-filter { overflow-x:auto; padding:12px 16px; }
    .fma-support-form, .fma-support-new-header { padding:18px; }
    .fma-support-form-grid { grid-template-columns:1fr; }
    .fma-support-payment { display:grid; grid-template-columns:1fr; }
    .fma-support-form-actions > span { width:100%; }
    .fma-support-form-actions .fh-button, .fma-support-form-actions button { flex:1; text-align:center; }
}

@media (max-width:600px) {
    .fma-support-ticket-header { padding:20px; }
    .fma-support-ticket-header .fma-support-ticket-meta { gap:18px; grid-template-columns:1fr 1fr; }
    .fma-support-ticket-status { justify-items:start; }
    .fma-support-ticket-subject { margin-top:20px; }
    .fma-support-conversation-heading { align-items:flex-start; flex-direction:column; gap:5px; }
    .fma-support-timeline { margin-left:10px; padding-left:22px; }
    .fma-support-timeline-item::before { left:-27px; }
}

.fh-nav a:not(.fh-button):hover,
.fh-nav a:not(.fh-button):focus-visible {
    color: var(--fm-coral-dark);
}

.fh-nav-toggle {
    align-items: center;
    background: transparent;
    border: 1px solid var(--fm-border);
    border-radius: 6px;
    color: var(--fm-ink);
    cursor: pointer;
    display: none !important;
    height: 42px;
    justify-content: center;
    padding: 0;
    width: 42px;
}

.fh-button,
body.encounter3-site button,
body.encounter3-site input[type="submit"] {
    align-items: center;
    background: var(--fm-green);
    border: 1px solid var(--fm-green);
    border-radius: 6px;
    color: var(--fm-on-primary, #ffffff);
    cursor: pointer;
    display: inline-flex;
    font-family: inherit;
    font-size: 14px;
    font-weight: 750;
    gap: 8px;
    justify-content: center;
    min-height: 44px;
    padding: 10px 17px;
    text-decoration: none;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.fh-button:hover,
.fh-button:focus-visible,
body.encounter3-site button:hover,
body.encounter3-site button:focus-visible,
body.encounter3-site input[type="submit"]:hover,
body.encounter3-site input[type="submit"]:focus-visible {
    background: var(--fm-green-dark);
    border-color: var(--fm-green-dark);
    color: var(--fm-on-primary-dark, #ffffff);
    transform: translateY(-1px);
}

.fh-button--coral {
    background: var(--fm-coral);
    border-color: var(--fm-coral);
}

.encounter3-site .fh-button--coral {
    background: var(--fm-coral);
    border-color: var(--fm-coral);
    color: var(--fm-on-accent, #ffffff);
}

.encounter3-site .fh-button--coral:hover,
.encounter3-site .fh-button--coral:focus-visible {
    background: var(--fm-coral-dark);
    border-color: var(--fm-coral-dark);
    color: var(--fm-on-accent-dark, #ffffff);
}

.fh-button--outline {
    background: transparent;
    border-color: var(--fm-green);
    color: var(--fm-green);
}

.encounter3-site .fh-button--outline {
    background: transparent;
    border-color: var(--fm-green);
    color: var(--fm-green);
}

.encounter3-site .fh-button--outline:hover,
.encounter3-site .fh-button--outline:focus-visible {
    background: var(--fm-mint);
    border-color: var(--fm-green);
    color: var(--fm-green-dark);
}

.fh-hero {
    align-items: center;
    background: var(--fm-green-dark);
    color: var(--fm-white);
    display: flex;
    isolation: isolate;
    min-height: calc(100svh - 140px);
    overflow: hidden;
    position: relative;
}

.fh-hero__portraits {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    inset: 0;
    position: absolute;
    z-index: -2;
}

.fh-hero::after {
    background: rgba(var(--fm-banner-rgb, 74, 15, 23), var(--fm-banner-overlay, 0.81));
    content: "";
    inset: 0;
    position: absolute;
    z-index: -1;
    pointer-events: none;
}

.fh-hero__banner { display:block; position:absolute; inset:0; z-index:-2; }
.encounter3-site .fh-hero__banner img { width:100%; height:100%; object-fit:cover; object-position:var(--fm-banner-position, center); }

.encounter3-site .fh-hero__portraits img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.fh-hero__inner {
    padding-bottom: 58px;
    padding-top: 58px;
}

.fh-hero__content {
    max-width: 900px;
}

.fh-eyebrow {
    align-items: center;
    color: var(--fm-gold);
    display: flex;
    font-size: 13px;
    font-weight: 800;
    gap: 9px;
    margin-bottom: 16px;
    text-transform: uppercase;
}

.fh-eyebrow::before {
    background: currentColor;
    content: "";
    height: 2px;
    width: 26px;
}

.fh-hero h1 {
    color: var(--fm-white);
    margin-bottom: 14px;
    max-width: 700px;
}

.fh-hero__lead {
    color: #e4eeea;
    font-size: 19px;
    margin-bottom: 28px;
    max-width: 650px;
}

.fh-quick-search {
    align-items: end;
    background: var(--fm-white);
    border-radius: 8px;
    box-shadow: var(--fm-shadow);
    color: var(--fm-ink);
    display: grid;
    gap: 12px;
    grid-template-columns: 0.9fr 1fr 1.2fr 0.65fr 0.65fr auto;
    max-width: 1120px;
    padding: 16px;
}

.fh-quick-search .fh-location-fields {
    display: contents;
}

.fh-filter-form .fh-location-fields {
    display: grid;
    gap: 14px;
}

.fh-location-fields label {
    display: grid;
    gap: 6px;
    margin: 0;
    min-width: 0;
}

.fh-location-fields label > span {
    color: var(--fm-muted);
    font-size: 12px;
    font-weight: 750;
}

.fh-location-fields .fmp-location-status {
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.fh-field,
.fh-filter-form label {
    display: grid;
    gap: 6px;
    margin: 0;
}

.fh-field > span,
.fh-filter-form label > span {
    color: var(--fm-muted);
    font-size: 12px;
    font-weight: 750;
}

body.encounter3-site input[type="text"],
body.encounter3-site input[type="email"],
body.encounter3-site input[type="tel"],
body.encounter3-site input[type="number"],
body.encounter3-site input[type="date"],
body.encounter3-site input[type="password"],
body.encounter3-site select,
body.encounter3-site textarea {
    background: var(--fm-white);
    border: 1px solid #bbc8c4;
    border-radius: 6px;
    color: var(--fm-ink);
    font-family: inherit;
    font-size: 15px;
    min-height: 46px;
    padding: 10px 12px;
    width: 100%;
}

body.encounter3-site textarea {
    min-height: 118px;
    resize: vertical;
}

body.encounter3-site input:focus,
body.encounter3-site select:focus,
body.encounter3-site textarea:focus {
    border-color: var(--fm-blue);
    box-shadow: 0 0 0 3px rgba(184, 137, 59, 0.22);
    outline: 0;
}

.fh-section {
    padding-bottom: 76px;
    padding-top: 76px;
}

.fh-section--soft {
    background: var(--fm-cloud);
}

/* EncounterHearts — an image-led impact feature with a prominent editorial
 * card. The treatment reuses Encounter3's wine, gold, radius and shadow tokens. */
.fh-charity {
    background: var(--fm-green-dark);
    min-height: clamp(560px, 48vw, 650px);
    overflow: hidden;
    position: relative;
}

.fh-charity__media {
    inset: 0;
    overflow: hidden;
    position: absolute;
    z-index: 0;
}

.fmp-founder-badge { display: inline-block; border: 1px solid var(--fm-gold); border-radius: 999px; background: #fff8eb; color: var(--fm-coral-dark); font-size: 12px; font-weight: 700; padding: 5px 10px; margin: 4px 0 8px; }
.fmp-founder-panel { padding: clamp(18px, 3vw, 32px); border: 1px solid var(--fm-border); border-radius: 16px; background: var(--fm-cloud); }
.fh-community-empty { text-align: left; padding: clamp(22px, 4vw, 44px); border: 1px solid var(--fm-border); border-radius: 20px; background: linear-gradient(135deg, #fffaf2, var(--fm-white)); }
.fh-community-empty h2 { font-size: clamp(24px, 3vw, 34px); line-height: 1.2; }
.fh-community-empty p { max-width: 65ch; }
.fh-community-empty .fh-community-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 20px; }
.fh-community-empty label { display: block; margin: 12px 0; }
.fh-community-empty select { max-width: 100%; padding: 8px; }

.encounter3-site .fh-charity__image {
    height: 100%;
    inset: 0;
    object-fit: cover;
    object-position: center 42%;
    opacity: 0;
    position: absolute;
    transform: scale(1.015);
    transition: opacity 1100ms ease;
    will-change: opacity, transform, border-radius;
    max-width: none;
    width: 100%;
}

.encounter3-site .fh-charity__image.is-active { opacity: 1; }

.fh-charity[data-effect="ken-burns"] .fh-charity__image.is-active {
    animation: fh-charity-ken-burns var(--fh-charity-duration, 3000ms) ease-out both;
}

.fh-charity[data-effect="morphing"] .fh-charity__image.is-active {
    animation: fh-charity-morph var(--fh-charity-duration, 3000ms) ease-in-out both;
}

@keyframes fh-charity-ken-burns {
    from { transform: scale(1.02) translate3d(0, 0, 0); }
    to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); }
}

@keyframes fh-charity-morph {
    0% { border-radius: 0; transform: scale(1.05); }
    48% { border-radius: 0 18% 0 14%; transform: scale(1.1) translate3d(-1%, 0, 0); }
    100% { border-radius: 16% 0 14% 0; transform: scale(1.06) translate3d(1%, -1%, 0); }
}

.fh-charity::after {
    background:
        linear-gradient(90deg, rgba(16, 40, 58, 0.68) 0%, rgba(16, 40, 58, 0.25) 52%, rgba(16, 40, 58, 0.12) 100%),
        linear-gradient(0deg, rgba(16, 40, 58, 0.2), transparent 48%);
    content: '';
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.fh-charity__container {
    align-items: center;
    display: flex;
    min-height: clamp(560px, 48vw, 650px);
    padding-bottom: clamp(56px, 7vw, 88px);
    padding-top: clamp(56px, 7vw, 88px);
    position: relative;
    z-index: 2;
}

.fh-charity__dots {
    align-items: center;
    display: flex;
    gap: 8px;
    position: absolute;
    right: clamp(18px, 3vw, 36px);
    top: clamp(18px, 3vw, 36px);
    z-index: 3;
}

.encounter3-site .fh-charity__dots button {
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid rgba(16, 40, 58, 0.35);
    border-radius: 999px;
    cursor: pointer;
    height: 9px;
    padding: 0;
    transition: background 180ms ease, transform 180ms ease, width 180ms ease;
    width: 9px;
}

.encounter3-site .fh-charity__dots button[aria-current="true"] {
    background: var(--fm-gold);
    transform: scale(1.08);
    width: 26px;
}

.encounter3-site .fh-charity__dots button:focus-visible {
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.82);
    outline: 2px solid var(--fm-coral);
    outline-offset: 2px;
}

.fh-charity__card {
    background: rgba(255, 252, 246, 0.70);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 24px;
    box-shadow: 0 28px 70px rgba(16, 40, 58, 0.34);
    color: var(--fm-ink);
    max-width: 620px;
    padding: clamp(38px, 5vw, 58px);
    position: relative;
    width: min(58%, 620px);
}

.fh-charity__eyebrow {
    color: var(--fm-coral);
    font-size: 12px;
    font-weight: 800;
    margin: 0 56px 16px 0;
    text-transform: uppercase;
}

.fh-charity__mark {
    align-items: center;
    background: rgba(146, 35, 52, 0.1);
    border-radius: 50%;
    color: var(--fm-coral);
    display: flex;
    height: 48px;
    justify-content: center;
    position: absolute;
    right: clamp(30px, 4vw, 46px);
    top: clamp(30px, 4vw, 46px);
    width: 48px;
}

.fh-charity__mark .fh-icon {
    height: 24px;
    width: 24px;
}

.fh-charity__card h2 {
    color: var(--fm-green-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 4.2vw, 56px);
    margin: 0 0 20px;
    max-width: 530px;
}

.fh-charity__copy {
    color: var(--fm-muted);
    font-size: clamp(17px, 1.7vw, 20px);
    margin: 0 0 28px;
    max-width: 500px;
}

.encounter3-site .fh-charity__link {
    align-items: center;
    background: var(--fm-coral);
    border-color: var(--fm-coral);
    color: var(--fm-white);
    display: inline-flex;
    justify-content: center;
    margin-bottom: 32px;
}

.fh-charity__link .fh-icon {
    height: 17px;
    width: 17px;
}

.encounter3-site .fh-charity__link:hover,
.encounter3-site .fh-charity__link:focus-visible {
    background: var(--fm-coral-dark);
    border-color: var(--fm-coral-dark);
    color: var(--fm-white);
}

.fh-charity__scripture {
    border: 0;
    border-left: 3px solid var(--fm-gold);
    margin: 0;
    padding: 2px 0 2px 20px;
}

.fh-charity__scripture p {
    color: var(--fm-green-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(20px, 2vw, 25px);
    font-style: italic;
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 5px;
}

.fh-charity__scripture cite,
.fh-charity__total {
    color: var(--fm-coral-dark);
    display: block;
    font-size: 13px;
    font-style: normal;
    font-weight: 750;
}

.fh-charity__total {
    color: var(--fm-muted);
    margin-top: 5px;
}

.fh-charity__scripture a {
    color: inherit;
    text-decoration: none;
}

.fh-charity__scripture a:hover,
.fh-charity__scripture a:focus-visible {
    color: var(--fm-coral);
    text-decoration: underline;
}

@media (max-width: 780px) {
    .fh-charity {
        min-height: 620px;
    }

    .encounter3-site .fh-charity__image {
        object-position: 58% center;
    }

    .fh-charity__container {
        align-items: flex-end;
        min-height: 620px;
        padding-bottom: 24px;
        padding-top: 120px;
    }

    .fh-charity__card {
        border-radius: 20px;
        padding: 32px 26px;
        width: 100%;
    }

    .fh-charity__mark {
        height: 42px;
        right: 26px;
        top: 26px;
        width: 42px;
    }

    .fh-charity__card h2 {
        font-size: clamp(34px, 10vw, 44px);
    }

    .encounter3-site .fh-charity__link {
        font-size: 13px;
        padding-left: 16px;
        padding-right: 16px;
        white-space: nowrap;
        width: 100%;
    }
}

.fh-section-header {
    align-items: end;
    display: flex;
    gap: 28px;
    justify-content: space-between;
    margin-bottom: 30px;
}

.fh-section-header h2 {
    margin-bottom: 7px;
}

.fh-section-header p {
    color: var(--fm-muted);
    margin-bottom: 0;
}

.fh-profile-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Priest blessings — a full-width trust section using Encounter3's established
 * wine, navy, gold, radius and shadow tokens. */
.fh-priest-blessings {
    background:
        radial-gradient(circle at 8% 12%, rgba(212, 172, 90, 0.16), transparent 24rem),
        linear-gradient(180deg, #fff 0%, #fbf7f7 100%);
    overflow: hidden;
    padding: 76px 0 82px;
}

.fh-priest-blessings__header {
    margin: 0 auto 34px;
    max-width: 760px;
    text-align: center;
}

.fh-priest-blessings__eyebrow {
    color: var(--fm-coral);
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 9px;
    text-transform: uppercase;
}

.fh-priest-blessings__header h2 {
    color: var(--fm-green-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4vw, 48px);
    margin-bottom: 14px;
}

.fh-priest-blessings__header > p:last-child {
    color: var(--fm-muted);
    font-size: 17px;
    margin: 0 auto;
    max-width: 650px;
}

.fh-priest-slider {
    margin: 0 auto;
    max-width: 1188px;
    position: relative;
}

.fh-priest-slider__viewport {
    border-radius: 28px;
    box-shadow: 0 22px 54px rgba(110, 26, 39, 0.16);
    overflow: hidden;
}

.fh-priest-slider__track {
    display: flex;
    transform: translate3d(0, 0, 0);
    transition: transform 620ms cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: transform;
}

.fh-priest-slide {
    align-items: stretch;
    background: var(--fm-white);
    display: grid;
    flex: 0 0 100%;
    grid-template-columns: minmax(264px, 0.72fr) minmax(0, 1.48fr);
    height: auto;
    min-height: 281px;
    width: 100%;
}

.fh-priest-slide__portrait {
    align-items: center;
    background: linear-gradient(145deg, #fbf6f7 0%, #f2dde1 100%);
    display: flex;
    height: auto;
    justify-content: center;
    min-height: 281px;
    overflow: hidden;
    position: relative;
}

.fh-priest-slide__portrait::after {
    border: 1px solid rgba(212, 172, 90, 0.55);
    border-radius: 50%;
    content: "";
    height: 209px;
    pointer-events: none;
    position: absolute;
    width: 209px;
}

.encounter3-site .fh-priest-slide__portrait img {
    border: 4px solid var(--fm-white);
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--fm-gold), 0 10px 26px rgba(110, 26, 39, 0.2);
    height: 187px;
    object-fit: cover;
    object-position: center top;
    position: relative;
    width: 187px;
    z-index: 1;
}

.fh-priest-slide__content {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
    overflow-y: visible;
    padding: clamp(26px, 3.5vw, 41px);
    position: relative;
}

.fh-priest-slide__content::before {
    color: var(--fm-gold);
    content: "\201C";
    font-family: Georgia, "Times New Roman", serif;
    font-size: 48px;
    left: clamp(20px, 2.4vw, 28px);
    line-height: 1;
    position: absolute;
    top: 12px;
}

.fh-priest-slide blockquote {
    border: 0;
    color: var(--fm-green-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(16px, 1.2vw, 21px);
    font-style: italic;
    line-height: 1.35;
    margin: 24px 0 16px;
    padding: 0;
}

.fh-priest-slide blockquote p { margin: 0; }

.fh-priest-slide footer {
    border-left: 3px solid var(--fm-coral);
    display: grid;
    padding-left: 16px;
}

.fh-priest-slide footer strong {
    color: var(--fm-coral-dark);
    font-size: 16px;
}

.fh-priest-slide footer span {
    color: var(--fm-muted);
    font-size: 12.5px;
}

.fh-charity__card[hidden] { display: none; }

.fh-priest-slide__website {
    align-items: center;
    color: var(--fm-coral-dark);
    display: inline-flex;
    font-size: 12.5px;
    font-weight: 800;
    gap: 5px;
    margin-top: 7px;
    text-decoration: none;
}

.fh-priest-slide__website:hover,
.fh-priest-slide__website:focus-visible {
    color: var(--fm-green-dark);
    text-decoration: underline;
}

.fh-priest-slide__website .fh-icon {
    height: 13px;
    width: 13px;
}

.fh-priest-slider__controls {
    align-items: center;
    display: flex;
    gap: 18px;
    justify-content: center;
    margin-top: 20px;
}

.encounter3-site .fh-priest-slider__arrow {
    align-items: center;
    background: var(--fm-white);
    border: 1px solid rgba(146, 35, 52, 0.26);
    border-radius: 50%;
    color: var(--fm-coral);
    cursor: pointer;
    display: inline-flex;
    height: 44px;
    justify-content: center;
    padding: 0;
    transition: background 160ms ease, color 160ms ease, transform 160ms ease;
    width: 44px;
}

.encounter3-site .fh-priest-slider__arrow:hover,
.encounter3-site .fh-priest-slider__arrow:focus-visible {
    background: var(--fm-coral);
    color: var(--fm-white);
    transform: translateY(-1px);
}

.fh-priest-slider__arrow .fh-icon { height: 19px; width: 19px; }

.fh-priest-slider__dots {
    align-items: center;
    display: flex;
    gap: 9px;
}

.encounter3-site .fh-priest-slider__dots button {
    background: rgba(146, 35, 52, 0.25);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    height: 9px;
    min-height: 9px;
    padding: 0;
    transition: background 180ms ease, width 180ms ease;
    width: 9px;
}

.encounter3-site .fh-priest-slider__dots button[aria-current="true"] {
    background: var(--fm-coral);
    width: 28px;
}

.encounter3-site .fh-priest-slider__arrow:focus-visible,
.encounter3-site .fh-priest-slider__dots button:focus-visible {
    outline: 3px solid rgba(212, 172, 90, 0.65);
    outline-offset: 3px;
}

@media (max-width: 720px) {
    .fh-priest-blessings { padding: 54px 0 60px; }
    .fh-priest-blessings__header { margin-bottom: 26px; }
    .fh-priest-slide { display: block; height: auto; min-height: 0; }
    .fh-priest-slide__portrait { aspect-ratio: 16 / 9; height: auto; min-height: 0; }
    .fh-priest-slide__portrait::after { height: 187px; width: 187px; }
    .encounter3-site .fh-priest-slide__portrait img { height: 168px; width: 168px; }
    .fh-priest-slide__content { min-height: 252px; overflow-y: visible; padding: 36px 29px 31px; }
    .fh-priest-slide__content::before { font-size: 46px; left: 20px; top: 12px; }
    .fh-priest-slide blockquote { margin-top: 22px; }
}

@media (prefers-reduced-motion: reduce) {
    .fh-priest-slider__track { transition: none; }
    .encounter3-site .fh-charity__image,
    .fh-charity[data-effect="ken-burns"] .fh-charity__image.is-active,
    .fh-charity[data-effect="morphing"] .fh-charity__image.is-active {
        animation: none;
        transition: none;
        transform: none;
    }
}

/* Homepage Design 2 — featured story with a compact supporting stack. */
.fh-home-stories {
    background: #fbfaf7;
    padding: 64px 0;
}

.fh-home-stories .fh-container {
    align-items: center;
    display: grid;
    gap: clamp(34px, 4vw, 64px);
    grid-template-columns: minmax(210px, 0.44fr) minmax(0, 1.56fr);
}

.fh-home-stories__header {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 28px;
    justify-content: center;
    margin: 0;
}

.fh-home-stories__eyebrow {
    color: var(--fm-gold);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
    margin-bottom: 8px;
}

.fh-home-stories h2 {
    color: var(--fm-green-dark);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(34px, 3vw, 48px);
    line-height: 1.08;
    margin: 0;
    max-width: 320px;
}

.fh-home-stories__grid {
    display: grid;
    gap: 22px 28px;
    grid-template-columns: minmax(0, 1.16fr) minmax(280px, 0.84fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
}

.fh-home-stories__header .fh-button {
    background: var(--fm-coral);
    border-color: var(--fm-coral);
    color: var(--fm-white);
}

.fh-home-stories__header .fh-button:hover,
.fh-home-stories__header .fh-button:focus-visible {
    background: var(--fm-coral-dark);
    border-color: var(--fm-coral-dark);
    color: var(--fm-white);
}

.fh-home-story {
    background: var(--fm-white);
    border: 1px solid rgba(220, 226, 230, 0.8);
    border-radius: 16px;
    min-width: 0;
    overflow: hidden;
    transition: box-shadow 180ms ease, transform 180ms ease;
}

.fh-home-story:hover,
.fh-home-story:focus-within {
    box-shadow: var(--fm-shadow);
    transform: translateY(-4px);
}

.fh-home-story > a {
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
}

.fh-home-story--featured { grid-row: 1 / span 2; }

.fh-home-story__media {
    background: var(--fm-mint);
    overflow: hidden;
}

.fh-home-story__media img {
    aspect-ratio: 16 / 9;
    height: 100%;
    object-fit: cover;
    transition: transform 260ms ease;
    width: 100%;
}

.fh-home-story:hover .fh-home-story__media img,
.fh-home-story:focus-within .fh-home-story__media img { transform: scale(1.035); }

.fh-home-story__body { display: flex; flex: 1; flex-direction: column; padding: 24px 28px 26px; }

.fh-home-story__meta {
    color: var(--fm-muted);
    display: flex;
    font-size: 12px;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 12px;
}

.fh-home-story__meta span { color: var(--fm-coral); font-weight: 800; letter-spacing: 0.035em; text-transform: uppercase; }
.fh-home-story__meta time { white-space: nowrap; }
body.encounter3-site .fh-home-story h3 { -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: var(--fm-green-dark); display: -webkit-box; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(23px, 1.8vw, 30px); font-weight: 700; line-height: 1.14; margin: 0 0 12px; overflow: hidden; }
.fh-home-story__body > p:not(.fh-home-story__meta) { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--fm-muted); display: -webkit-box; font-size: 14px; line-height: 1.55; margin-bottom: 18px; overflow: hidden; }
.fh-home-story__link { color: var(--fm-coral); font-size: 14px; font-weight: 800; margin-left: auto; margin-top: auto; }

.fh-home-story--featured { box-shadow: 0 16px 38px rgba(16, 40, 58, 0.08); }
.fh-home-story--featured .fh-home-story__media img { aspect-ratio: 16 / 8.2; }

.fh-home-story--supporting {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--fm-border);
    border-radius: 0;
    border-top: 1px solid var(--fm-border);
    overflow: visible;
    padding: 18px 0;
}

.fh-home-story--supporting:hover,
.fh-home-story--supporting:focus-within { box-shadow: none; }
.fh-home-story--supporting > a { align-items: stretch; flex-direction: row; gap: 22px; }
.fh-home-story--supporting .fh-home-story__media { align-self: center; aspect-ratio: 1 / 1; border-radius: 13px; flex: 0 0 38%; }
.encounter3-site .fh-home-story--supporting .fh-home-story__media img { aspect-ratio: auto; height: 100%; }
.fh-home-story--supporting .fh-home-story__body { padding: 4px 0; }
.fh-home-story--supporting .fh-home-story__meta { align-items: flex-start; flex-direction: column; gap: 5px; margin-bottom: 10px; }
body.encounter3-site .fh-home-story--supporting h3 { font-size: clamp(18px, 1.3vw, 23px); margin-bottom: 12px; }
.fh-home-story--supporting .fh-home-story__body > p:not(.fh-home-story__meta) { display: none; }
.fh-home-story--supporting .fh-home-story__link { margin-left: 0; }

/* The homepage community preview is intentionally a compact six-card row.
 * Archive and search cards retain their fuller editorial treatment. */
.fh-section--soft .fh-profile-grid {
    gap: 12px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.fh-section--soft .fh-profile-card { border-radius: 5px; }
.fh-section--soft .fh-profile-card__body { padding: 10px; }
.fh-section--soft .fh-profile-card__body h3 { font-size: 15px; margin-bottom: 3px; }
.fh-section--soft .fh-profile-card__meta { font-size: 12px; margin-bottom: 0; }
.fh-section--soft .fh-profile-card__denomination,
.fh-section--soft .fh-profile-card__story,
.fh-section--soft .fh-profile-card__link { display: none; }
.fh-section--soft .fh-profile-card__image img,
.fh-section--soft .fh-profile-card__placeholder { aspect-ratio: 1 / 1; }

@media (max-width: 980px) {
    .fh-home-stories .fh-container { display: block; }
    .fh-home-stories__header { align-items: center; margin-bottom: 36px; text-align: center; }
    .fh-home-stories h2 { max-width: none; }
}

@media (max-width: 720px) {
    .fh-home-stories { padding: 52px 0; }
    .fh-home-stories__grid { grid-template-columns: 1fr; grid-template-rows: auto; }
    .fh-home-story--featured { grid-row: auto; }
    .fh-home-story--featured .fh-home-story__media img { aspect-ratio: 16 / 9; }
    .fh-home-story__body { padding: 22px; }
    .fh-home-story--supporting { padding: 16px 0; }
    .fh-home-story--supporting > a { gap: 18px; }
    .fh-home-story--supporting .fh-home-story__media { flex-basis: 36%; }
    .fh-section--soft .fh-profile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .fh-home-stories__header { align-items: flex-start; text-align: left; }
    .fh-home-stories h2 { font-size: 34px; }
    .fh-home-story--supporting > a { gap: 14px; }
    .fh-home-story--supporting .fh-home-story__media { flex-basis: 118px; }
    body.encounter3-site .fh-home-story--supporting h3 { font-size: 18px; }
    .fh-home-story--supporting .fh-home-story__meta time { display: none; }
}

@media (max-width: 560px) {
    .fh-home-stories { padding: 48px 0; }
    .fh-home-stories__header { align-items: flex-start; flex-direction: column; margin-bottom: 22px; }
    .fh-home-stories__header .fh-button { width: 100%; }
    .fh-home-story__meta { display: grid; gap: 3px; }
    .fh-home-story h3 { font-size: 18px; }
    .fh-section--soft .fh-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.fh-profile-card {
    background: var(--fm-white);
    border: 1px solid var(--fm-border);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition: box-shadow 180ms ease, transform 180ms ease;
}

.fh-profile-card:hover {
    box-shadow: var(--fm-shadow);
    transform: translateY(-3px);
}

.fh-profile-card__image {
    background: var(--fm-mint);
    display: block;
    overflow: hidden;
    position: relative;
}

.encounter3-site .fh-profile-card__image img,
.fh-profile-card__placeholder {
    aspect-ratio: 4 / 5;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.fh-profile-card__placeholder {
    align-items: center;
    color: var(--fm-green);
    display: flex;
    font-size: 56px;
    font-weight: 800;
    justify-content: center;
}

.fh-profile-card__verified {
    align-items: center;
    background: var(--fm-white);
    border-radius: 6px;
    bottom: 12px;
    color: var(--fm-green-dark);
    display: inline-flex;
    font-size: 11px;
    font-weight: 800;
    gap: 5px;
    left: 12px;
    padding: 6px 8px;
    position: absolute;
}

.fh-profile-card__featured {
    align-items: center;
    background: #efd28d;
    border: 1px solid rgba(110, 26, 39, 0.12);
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(21, 40, 57, 0.16);
    color: var(--fm-coral-dark);
    display: inline-flex;
    font-size: 11px;
    font-weight: 800;
    gap: 5px;
    left: 12px;
    line-height: 1;
    padding: 7px 10px;
    position: absolute;
    top: 12px;
    z-index: 1;
}

.fh-profile-card__featured .fh-icon {
    height: 13px;
    width: 13px;
}

.fh-profile-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 18px;
}

.fh-profile-card__body h3 {
    margin-bottom: 6px;
}

.fh-profile-card__meta {
    color: var(--fm-muted);
    font-size: 13px;
    margin-bottom: 12px;
}

.fh-profile-card__denomination {
    color: var(--fm-coral-dark);
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.fh-profile-card__story {
    color: #52615d;
    font-size: 14px;
    margin-bottom: 18px;
}

.fh-profile-card__link {
    align-items: center;
    color: var(--fm-green);
    display: inline-flex;
    font-size: 14px;
    font-weight: 800;
    gap: 7px;
    margin-top: auto;
    text-decoration: none;
}

.fh-profile-card__link:hover,
.fh-profile-card__link:focus-visible {
    color: var(--fm-coral-dark);
}

.fh-browse-band {
    background: var(--fm-mint);
    border-bottom: 1px solid #cbded6;
    border-top: 1px solid #cbded6;
    padding: 28px 0;
}

.fh-browse-inner {
    align-items: center;
    display: flex;
    gap: 18px;
}

.fh-browse-inner strong {
    flex: 0 0 auto;
}

.fh-term-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
}

.fh-term-links a {
    color: var(--fm-green-dark);
    font-size: 13px;
    font-weight: 750;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.fh-results-header {
    background: var(--fm-green-dark);
    color: var(--fm-white);
    padding: 54px 0 50px;
}

.fh-results-header h1 {
    color: var(--fm-white);
    font-size: 42px;
    margin-bottom: 10px;
}

.fh-results-header p {
    color: #dbe9e4;
    margin-bottom: 0;
    max-width: 650px;
}

.fh-results-layout {
    align-items: start;
    display: grid;
    gap: 38px;
    grid-template-columns: 268px minmax(0, 1fr);
    padding-bottom: 72px;
    padding-top: 42px;
}

.fh-filter-panel {
    background: var(--fm-cloud);
    border: 1px solid var(--fm-border);
    border-radius: 8px;
    padding: 20px;
    position: sticky;
    top: calc(var(--fm-header-height) + 20px);
}

.admin-bar .fh-filter-panel {
    top: calc(var(--fm-header-height) + 52px);
}

.fh-filter-panel h2 {
    font-size: 20px;
    margin-bottom: 18px;
}

.fh-filter-form {
    display: grid;
    gap: 14px;
}

.fh-age-fields {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr 1fr;
}

.fh-filter-actions {
    display: grid;
    gap: 9px;
    margin-top: 4px;
}

.fh-clear-filters {
    color: var(--fm-muted);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.fh-filter-toggle {
	display: none !important;
}

.fh-results-toolbar {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
}

.fh-results-count {
    color: var(--fm-muted);
    font-size: 14px;
    margin: 0;
}

.fh-results-count strong {
    color: var(--fm-ink);
}

.fh-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
}

.fh-active-filter {
    background: var(--fm-mint);
    border: 1px solid #c3d9d0;
    border-radius: 6px;
    color: var(--fm-green-dark);
    font-size: 12px;
    font-weight: 750;
    padding: 6px 9px;
}

.fh-results-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fh-empty {
    border-bottom: 1px solid var(--fm-border);
    border-top: 1px solid var(--fm-border);
    padding: 52px 0;
    text-align: center;
}

.fh-empty .fh-icon {
    color: var(--fm-coral);
    height: 34px;
    margin-bottom: 12px;
    width: 34px;
}

.navigation.pagination {
    margin-top: 36px;
}

.nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.page-numbers {
    align-items: center;
    border: 1px solid var(--fm-border);
    border-radius: 6px;
    display: inline-flex;
    font-size: 13px;
    font-weight: 750;
    justify-content: center;
    min-height: 40px;
    min-width: 40px;
    padding: 8px 12px;
    text-decoration: none;
}

.page-numbers.current,
.page-numbers:hover,
.page-numbers:focus-visible {
    background: var(--fm-green);
    border-color: var(--fm-green);
    color: var(--fm-white);
}

.fh-profile-main {
    background: var(--fm-cloud);
}

.fh-profile-breadcrumb {
    padding-bottom: 20px;
    padding-top: 24px;
}

.fh-back-link {
    align-items: center;
    color: var(--fm-muted);
    display: inline-flex;
    font-size: 13px;
    font-weight: 750;
    gap: 7px;
    text-decoration: none;
}

.fh-back-link:hover,
.fh-back-link:focus-visible {
    color: var(--fm-green);
}

.fh-profile-hero {
    display: grid;
    gap: 48px;
    grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
    padding-bottom: 64px;
}

.fh-profile-photo {
    background: var(--fm-mint);
    border-radius: 8px;
    overflow: hidden;
}

.encounter3-site .fh-profile-photo img,
.fh-profile-photo .fh-profile-card__placeholder {
    aspect-ratio: 4 / 5;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.fh-profile-summary {
    align-self: center;
}

.fh-profile-summary .fms-badge {
    margin-bottom: 14px;
}

.fh-profile-summary h1 {
    font-size: 48px;
    margin-bottom: 10px;
}

.fh-profile-headline {
    color: var(--fm-muted);
    font-size: 18px;
    margin-bottom: 18px;
}

.fh-profile-faith {
    align-items: center;
    color: var(--fm-coral-dark);
    display: flex;
    font-size: 14px;
    font-weight: 800;
    gap: 8px;
    margin-bottom: 25px;
}

.fh-profile-actions {
    border-top: 1px solid var(--fm-border);
    padding-top: 24px;
}

.fh-profile-actions .fmm-interest-form,
.fh-profile-actions .fmm-login-note {
    margin: 0;
}

.fh-profile-actions .fmm-interest-form button {
    background: var(--fm-coral);
    border-color: var(--fm-coral);
}

.fh-profile-content-band {
    background: var(--fm-white);
    border-top: 1px solid var(--fm-border);
    padding: 66px 0;
}

.fh-profile-content {
    align-items: start;
    display: grid;
    gap: 64px;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
}

.fh-profile-story h2,
.fh-profile-facts h2 {
    font-size: 26px;
    margin-bottom: 20px;
}

.fh-profile-story {
    color: #43534f;
}

.fh-profile-story p {
    font-size: 17px;
}

.fh-profile-gated,
.fmx-guest-gallery {
    background: linear-gradient(135deg, #f2f6f5, #fbfcfc);
    border: 1px solid var(--fm-border);
    border-radius: 16px;
    padding: 24px;
}

.fh-profile-gated p,
.fmx-guest-gallery p {
    color: var(--fm-muted);
    margin: 18px 0;
}

.fh-profile-gated__lines {
    display: grid;
    gap: 10px;
}

.fh-profile-gated__lines i {
    background: linear-gradient(90deg, #dfe8e5, #edf2f0);
    border-radius: 999px;
    display: block;
    height: 12px;
}

.fh-profile-gated__lines i:nth-child(2) { width: 82%; }
.fh-profile-gated__lines i:nth-child(3) { width: 67%; }
.fh-profile-gated__lines i:nth-child(4) { width: 48%; }

.fh-profile-facts dl {
    border-top: 1px solid var(--fm-border);
    margin: 0;
}

.fh-profile-facts dl > div {
    border-bottom: 1px solid var(--fm-border);
    display: grid;
    gap: 18px;
    grid-template-columns: 130px minmax(0, 1fr);
    padding: 13px 0;
}

.fh-profile-facts dt {
    color: var(--fm-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.fh-profile-facts dd {
    font-size: 14px;
    font-weight: 650;
    margin: 0;
    overflow-wrap: anywhere;
}

.fh-privacy-note {
    align-items: start;
    background: var(--fm-mint);
    border-left: 4px solid var(--fm-green);
    border-radius: 6px;
    display: flex;
    font-size: 13px;
    gap: 10px;
    margin-top: 20px;
    padding: 14px;
}

.fh-safety-band {
    background: var(--fm-cloud);
    border-top: 1px solid var(--fm-border);
    padding: 34px 0;
}

.fh-safety-band .fms-report {
    border: 0;
    margin: 0;
    padding: 0;
}

.fh-related {
    background: var(--fm-white);
}

.fh-page-main {
    min-height: 60vh;
    padding-bottom: 72px;
    padding-top: 54px;
}

.fh-page-header {
    margin-bottom: 30px;
}

.fh-page-content > * {
    max-width: 100%;
}

.fh-page-content .fmp-form,
.fh-page-content .fma-pricing-grid,
.fh-page-content .fmm-received-interests {
    max-width: 100%;
}

.fma-pricing-grid {
    align-items: stretch;
    contain: inline-size paint;
    display: grid;
    gap: 20px;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    grid-template-columns: none;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    width: 100%;
}
.fma-pricing-grid::-webkit-scrollbar { display: none; }

.fma-plan-carousel { position: relative; min-width: 0; max-width: 100%; }
.fma-plan-navigation { display: none; }

@media (max-width: 900px) {
    .fma-pricing-grid { grid-auto-columns: calc((100% - 20px) / 2); }
    .fma-plan-carousel { margin-inline: 8px; }
    .fma-plan-navigation { display: block; position: absolute; inset: 0; z-index: 2; pointer-events: none; }
    .fh-page-content .fma-plan-navigation button { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: auto; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--fm-border); border-radius: 4px; background: var(--fm-white); color: var(--fm-green); cursor: pointer; box-shadow: 0 2px 6px #0000001a; }
    .fma-plan-prev { left: -22px; }
    .fma-plan-next { right: -22px; }
    /* Keep theme hover transforms from shifting the overlaid controls. */
    .fh-page-content .fma-plan-navigation button { transform: translateY(-50%) !important; }
    .fma-plan-navigation svg { flex-shrink: 0; width: 20px; height: 20px; }
    .fma-plan-navigation button:disabled { opacity: .35; cursor: default; }
    .fma-plan-navigation button:focus-visible { outline: 2px solid var(--fm-coral); outline-offset: 3px; }
    .fma-plan-position { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

@media (max-width: 770px) {
    .fma-pricing-grid { grid-auto-columns: 100%; }
}

.fma-plan-card {
    background: var(--fm-white);
    border: 1px solid var(--fm-border);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 28px;
    overflow-wrap: anywhere;
    scroll-snap-align: start;
}

.fma-plan-card.fma-plan-plus {
    border-color: var(--fm-coral);
    box-shadow: inset 0 4px 0 var(--fm-coral);
}

/* Member sign-in */
.encounter3-member-login .fh-nav,
.encounter3-member-login .fh-nav-toggle { display:none; }
.fh-member-login { background:linear-gradient(120deg,#fff 0%,#f8fafb 100%); min-height:calc(100vh - var(--fm-header-height)); overflow:hidden; padding:76px 0 88px; position:relative; }
.fh-member-login__grid { align-items:center; display:grid; gap:72px; grid-template-columns:minmax(0,1.1fr) minmax(400px,.9fr); position:relative; z-index:1; }
.fh-member-login__illustration { bottom:-100px; color:#d9e5ec; left:0; opacity:.8; pointer-events:none; position:absolute; top:0; width:39%; }
.fh-member-login__illustration svg { height:100%; min-height:620px; overflow:visible; width:100%; }
.fh-member-login__illustration path { fill:none; stroke:currentColor; stroke-width:1.4; }
.fh-member-login__illustration .fh-member-login__cross { color:var(--fm-gold); stroke:currentColor; stroke-width:3; }
.fh-member-login__intro { max-width:610px; padding-left:80px; }
.fh-member-login__intro .fh-eyebrow { color:var(--fm-coral); }
.fh-member-login__intro h1 { color:var(--fm-green); font-family:Georgia,serif; font-size:clamp(42px,4.5vw,64px); font-weight:500; letter-spacing:-.04em !important; margin-bottom:20px; }
.fh-member-login__lead { color:#61758a; font-family:Georgia,serif; font-size:26px; line-height:1.35; margin-bottom:42px; max-width:530px; }
.fh-member-login__benefits { display:grid; gap:26px; list-style:none; margin:0; padding:0; }
.fh-member-login__benefits li { align-items:flex-start; display:flex; gap:20px; }
.fh-member-login__benefits li > span { align-items:center; background:#eff4f7; border-radius:50%; color:var(--fm-green); display:inline-flex; flex:0 0 58px; height:58px; justify-content:center; }
.fh-member-login__benefits .fh-icon { height:25px; width:25px; }
.fh-member-login__benefits strong { color:var(--fm-green); display:block; font-family:Georgia,serif; font-size:22px; line-height:1.2; margin:2px 0 5px; }
.fh-member-login__benefits p { color:#64768a; font-size:16px; line-height:1.45; margin:0; max-width:350px; }
.fh-member-login__card { background:#fff; border:1px solid var(--fm-green); border-radius:11px; box-shadow:var(--fm-shadow); overflow:hidden; }
.fh-member-login__brand { background:linear-gradient(135deg,var(--fm-green),#1f4a6a); color:#fff; font-family:Georgia,serif; font-size:51px; line-height:1; padding:38px 44px 32px; text-align:center; }
.fh-member-login__brand span { color:var(--fm-gold); }
.fh-member-login__form-wrap { padding:34px 44px 32px; }
.fh-member-login__form-wrap h2 { color:var(--fm-green); font-family:Georgia,serif; font-size:42px; font-weight:500; margin-bottom:22px; }
.fh-member-login__form-wrap form p { margin:0 0 18px; }
.fh-member-login__form-wrap label { color:var(--fm-green); display:block; font-size:16px; font-weight:700; margin-bottom:7px; }
.fh-member-login__form-wrap input[type="text"], .fh-member-login__form-wrap input[type="password"] { border:1px solid #b8c6d1; border-radius:6px; color:var(--fm-ink); font:inherit; min-height:53px; padding:12px 14px; width:100%; }
.fh-member-login__form-wrap input:focus { border-color:var(--fm-green); box-shadow:0 0 0 3px rgba(25,61,89,.14); outline:0; }
.fh-member-login__remember label { align-items:center; display:inline-flex; font-size:15px; font-weight:500; gap:9px; }
.fh-member-login__remember input { height:22px; margin:0; width:22px; }
.fh-member-login__form-wrap button { background:var(--fm-gold); border-color:var(--fm-gold); color:var(--fm-green-dark); font-family:Georgia,serif; font-size:23px; margin-top:2px; width:100%; }
.fh-member-login__form-wrap button:hover, .fh-member-login__form-wrap button:focus-visible { background:#bd923b; border-color:#bd923b; color:var(--fm-green-dark); }
.fh-member-login__forgot { margin:16px 0 27px; text-align:center; }
.fh-member-login__forgot a { color:var(--fm-coral); font-weight:700; }
.fh-member-login__join { border-top:1px solid var(--fm-border); padding-top:23px; text-align:center; }
.fh-member-login__join p { color:var(--fm-green); font-family:Georgia,serif; font-size:19px; margin:0 0 14px; }
.fh-member-login__join .fh-button { border-color:var(--fm-coral); color:var(--fm-coral); display:flex; font-family:Georgia,serif; font-size:21px; justify-content:center; min-height:59px; width:100%; }
.fh-member-login__join .fh-button:hover, .fh-member-login__join .fh-button:focus-visible { background:var(--fm-coral); color:#fff; }
.fh-member-login__privacy { align-items:center; color:#6c7d8c; display:flex; font-size:14px; gap:8px; justify-content:center; margin:24px 0 0; }
.fh-member-login__privacy .fh-icon { height:17px; width:17px; }
.fh-member-login__error { background:#fff1f2; border-left:3px solid var(--fm-coral); color:#751d2b; margin:0 0 18px; padding:10px 12px; }
@media (max-width:900px) { .fh-member-login { padding:54px 0 64px; } .fh-member-login__grid { gap:44px; grid-template-columns:1fr; max-width:650px; } .fh-member-login__intro { padding-left:0; } .fh-member-login__illustration { bottom:auto; height:530px; opacity:.38; width:62%; } .fh-member-login__card { width:100%; } }
@media (max-width:560px) { .fh-member-login { padding:38px 0 52px; } .fh-member-login__intro h1 { font-size:42px; } .fh-member-login__lead { font-size:22px; } .fh-member-login__benefits { gap:18px; } .fh-member-login__benefits strong { font-size:19px; } .fh-member-login__brand { font-size:42px; padding:29px 24px 25px; } .fh-member-login__form-wrap { padding:27px 24px; } .fh-member-login__form-wrap h2 { font-size:36px; } }

.fma-plan-card.is-current-plan,
.fma-subscription-summary {
    background: #f4f8f5;
    border: 2px solid var(--fm-green);
    border-radius: 8px;
    box-shadow: inset 0 4px 0 var(--fm-green);
    padding: 22px;
}

.fma-plan-card.is-current-plan::before {
    align-self: flex-start;
    background: var(--fm-green);
    border-radius: 999px;
    color: #fff;
    content: 'Current plan';
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    margin-bottom: 12px;
    padding: 5px 9px;
    text-transform: uppercase;
}

.fma-plan-card h3 {
    font-size: 26px;
    margin: 0 0 12px;
}

.fma-plan-description {
    color: var(--fm-muted);
    min-height: 72px;
}

.fma-plan-price {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 14px 0 2px;
}

.fma-plan-price strong {
    color: var(--fm-green);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 27px;
}

.fma-plan-price span,
.fma-plan-yearly {
    color: var(--fm-muted);
    font-size: 13px;
}

.fma-plan-toggle {
    border: 2px solid #b8b8b8;
    border-radius: 999px;
    display: flex;
    margin: 0 0 20px;
    overflow: hidden;
    padding: 4px;
}

.fma-plan-toggle label {
    cursor: pointer;
    flex: 1;
    margin: 0;
    min-width: 0;
}

.fma-plan-toggle input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.fma-plan-toggle span {
    align-items: center;
    border-radius: 999px;
    color: var(--fm-ink);
    display: flex;
    font-size: 17px;
    font-weight: 700;
    justify-content: center;
    min-height: 42px;
    padding: 0 12px;
    text-align: center;
    white-space: nowrap;
}

.fma-plan-toggle input:checked + span {
    background: #2da69d;
    color: #fff;
}

.fma-plan-toggle input:focus-visible + span {
    outline: 2px solid var(--fm-coral);
    outline-offset: 2px;
}

.fma-plan-card ul {
    flex: 1;
    margin: 22px 0;
    padding-left: 20px;
}

.fma-plan-card li {
    margin-bottom: 9px;
}

.fma-checkout-form,
.fma-checkout-form p {
    margin: 7px 0 0;
}

.fma-checkout-form {
    margin-top: auto;
}

.fma-checkout-form .fma-payment-toggle {
    margin: 0 0 12px;
}

.fma-payment-toggle span {
    font-size: 14px;
    min-height: 38px;
}

.fma-checkout-form button {
    background: var(--fm-green);
    border: 1px solid var(--fm-green);
    border-radius: 6px;
    color: var(--fm-white);
    cursor: pointer;
    font-weight: 800;
    min-height: 44px;
    padding: 10px 14px;
    width: 100%;
}

.fma-checkout-form button:hover,
.fma-checkout-form button:focus-visible {
    background: var(--fm-green-dark);
}

.encounter3-toast { align-items:flex-start; background:#173e5b; border-radius:8px; box-shadow:0 14px 34px rgba(21,40,57,.22); color:#fff; display:flex; font-weight:700; gap:16px; left:50%; max-width:min(560px,calc(100vw - 32px)); padding:16px 18px; position:fixed; top:22px; transform:translateX(-50%); transition:opacity .2s ease,transform .2s ease; z-index:9999; }
.encounter3-toast--error { background:#8b2635; }
.encounter3-toast button { background:transparent; border:0; color:inherit; cursor:pointer; font-size:23px; line-height:1; margin:-4px -4px -4px auto; min-height:28px; min-width:28px; padding:0; }
.encounter3-toast.is-dismissed { opacity:0; transform:translate(-50%,-12px); }

.fma-current-membership { background:radial-gradient(circle at 95% 15%,#244cd2 0,transparent 31%),radial-gradient(circle at 100% 100%,#172d88 0,transparent 35%),linear-gradient(115deg,#07172f,#10295e); border:2px solid #275abe; border-radius:15px; box-shadow:0 12px 24px rgba(13,44,110,.18); color:#d6e3ff; display:grid; gap:24px; grid-template-columns:1.2fr .9fr 1.2fr; margin:20px 0 32px; padding:30px; }
.fma-current-membership__intro { align-items:flex-start; border-right:1px solid rgba(181,207,255,.2); display:flex; gap:14px; padding-right:26px; position:relative; }
.fma-current-membership__mark { color:#3c83ff; font-size:38px; line-height:1; }
.fma-current-membership__plan { color:#fff; font-size:36px; font-weight:800; line-height:1.05; margin:0 0 4px; }
.fma-current-membership__intro p:not(.fma-current-membership__plan),.fma-current-membership__amount span,.fma-current-membership__details dt { color:#9bb4e5; margin:0; }
.fma-current-membership__status { background:rgba(23,124,94,.75); border:1px solid rgba(88,240,181,.35); border-radius:999px; color:#fff; font-weight:800; margin-left:auto; padding:7px 12px; }
.fma-current-membership__amount { align-self:center; display:grid; gap:2px; }
.fma-current-membership__amount strong { color:#fff; font-size:35px; line-height:1; }
.fma-current-membership__details { display:grid; gap:14px; margin:0; }
.fma-current-membership__details div { display:grid; gap:2px; }.fma-current-membership__details dd { color:#fff; font-size:17px; font-weight:700; margin:0; }.fma-current-membership__details dt { font-size:13px; }
.fma-current-membership__actions { align-self:end; display:flex; gap:14px; grid-column:2 / -1; }.fma-current-membership__actions .fh-button,.fma-current-membership__actions button { flex:1; justify-content:center; text-align:center; }.fma-current-membership__actions .fh-button { background:#2676ff; border-color:#2676ff; }.fma-current-membership__actions button { background:transparent; border:1px solid #4367b5; border-radius:6px; color:#fff; cursor:pointer; font:inherit; font-weight:700; min-height:44px; padding:10px 14px; width:100%; }
.fma-charity-impact { margin-block:32px; }
@media (max-width:760px) { .fma-current-membership { grid-template-columns:1fr; gap:20px; padding:22px; }.fma-current-membership__intro { border-bottom:1px solid rgba(181,207,255,.2); border-right:0; padding:0 0 18px; }.fma-current-membership__plan { font-size:29px; }.fma-current-membership__amount strong { font-size:32px; }.fma-current-membership__actions { flex-direction:column; grid-column:auto; }.fma-current-membership__actions .fh-button,.fma-current-membership__actions button { width:100%; } }

@media (max-width: 900px) {
    .fma-plan-description {
        min-height: 0;
    }
}

.fh-page-content .fmp-form {
    background: var(--fm-cloud);
    border: 1px solid var(--fm-border);
    border-radius: 8px;
    padding: 24px;
}

.fh-site-footer {
    background: var(--fm-footer, #2d1115);
    color: #dce7e3;
    padding: 48px 0 26px;
}

.fh-footer-grid {
    align-items: start;
    display: grid;
    gap: 36px;
    grid-template-columns: 1.4fr 1fr 1fr;
}

.fh-site-footer .fh-brand {
    color: var(--fm-white);
}

.fh-site-footer .fh-brand-name small {
    color: #d9c7b5;
}

.fh-site-footer .fh-brand-title {
    color: var(--fm-white);
}

.fh-footer-copy {
    color: #d9c7b5;
    font-size: 13px;
    margin: 16px 0 0;
    max-width: 360px;
}

.fh-footer-socials {
    margin-top: 24px;
}

.fh-footer-socials .fh-footer-heading {
    margin-bottom: 12px;
}

.fh-footer-social-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.fh-footer-social-list a {
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: 999px;
    color: #f7eee5;
    display: inline-flex;
    height: 38px;
    justify-content: center;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
    width: 38px;
}

.fh-footer-social-list a:hover,
.fh-footer-social-list a:focus-visible {
    background: var(--fm-gold);
    border-color: var(--fm-gold);
    color: var(--fm-footer, #2d1115);
    transform: translateY(-2px);
}

.fh-footer-social-list svg {
    height: 18px;
    width: 18px;
}

.fh-footer-heading {
    color: var(--fm-white);
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 13px;
    text-transform: uppercase;
}

.fh-footer-links {
    display: grid;
    gap: 9px;
}

.fh-footer-links a {
    color: #dfd0c1;
    font-size: 13px;
    text-decoration: none;
}

.fh-footer-links a:hover,
.fh-footer-links a:focus-visible {
    color: var(--fm-white);
}

.fh-footer-bottom {
    border-top: 1px solid #36504a;
    color: #93a8a2;
    font-size: 12px;
    margin-top: 40px;
    padding-top: 20px;
}

body.encounter3-site .fms-badge {
    border-radius: 6px;
}

body.encounter3-site .fmm-login-note,
body.encounter3-site .fmm-notice,
body.encounter3-site .fms-notice,
body.encounter3-site .fmp-notice,
body.encounter3-site .fmp-empty {
    background: var(--fm-mint);
    border-left-color: var(--fm-green);
    border-radius: 6px;
}

body.encounter3-site .fms-report summary {
    align-items: center;
    color: var(--fm-muted);
    display: flex;
    font-size: 13px;
    gap: 8px;
}

@media (max-width: 1050px) {
    .fh-profile-grid,
    .fh-results-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fh-quick-search {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .fh-quick-search .fh-button {
        grid-column: 1 / -1;
    }

    .fh-profile-hero {
        gap: 34px;
        grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
    }
}

@media (max-width: 820px) {
    :root {
        --fm-header-height: 70px;
    }

    .admin-bar .fh-site-header {
        top: 46px;
    }

    .fh-nav-toggle {
        display: inline-flex !important;
    }

    .fh-nav {
        align-items: stretch;
        background: var(--fm-white);
        border-bottom: 1px solid var(--fm-border);
        box-shadow: 0 16px 28px rgba(20, 45, 39, 0.12);
        display: none;
        gap: 0;
        left: 0;
        padding: 10px 24px 20px;
        position: absolute;
        right: 0;
        top: var(--fm-header-height);
    }

    .fh-nav.is-open {
        display: grid;
    }

    .fh-nav a {
        border-bottom: 1px solid var(--fm-border);
        padding: 13px 4px;
    }

    .fh-nav .fh-button {
        margin-top: 12px;
    }

    .fh-results-layout {
        display: block;
    }

	.fh-filter-toggle {
		display: inline-flex !important;
        margin-bottom: 18px;
    }

    .fh-filter-panel {
        display: none;
        margin-bottom: 28px;
        position: static;
    }

    .fh-filter-panel.is-open {
        display: block;
    }

    .fh-profile-hero,
    .fh-profile-content {
        grid-template-columns: 1fr;
    }

    .fh-profile-photo {
        max-width: 560px;
    }

    .fh-profile-summary {
        align-self: start;
    }

    .fh-footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .fh-footer-grid > :first-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    .fh-error-page {
        min-height: calc(100svh - var(--fm-header-height));
        padding: 26px 0 46px;
    }

    .fh-error-card {
        display: block;
    }

    .fh-error-card__visual {
        min-height: 190px;
    }

    .fh-error-card__visual strong {
        font-size: 82px;
    }

    .fh-error-card__content {
        padding: 34px 24px 38px;
    }

    .fh-error-card__message {
        font-size: 16px;
    }

    .fh-error-tip {
        padding: 16px 24px;
    }

    body.encounter3-site h1,
    .fh-profile-summary h1 {
        font-size: 38px;
    }

    body.encounter3-site h2 {
        font-size: 28px;
    }

    .fh-container {
        padding-left: 17px;
        padding-right: 17px;
    }

    .encounter3-site .fh-church-logo {
        height: 46px;
        width: 46px;
    }

    .fh-brand-name {
        font-size: 16px;
    }

    .fh-brand-name small {
        font-size: 9px;
    }

    .fh-hero {
        min-height: calc(100svh - 112px);
    }

    .fh-hero__portraits {
        grid-template-columns: repeat(2, 1fr);
    }

    .fh-hero__portraits img:nth-child(n + 3) {
        display: none;
    }

    .fh-hero__inner {
        padding-bottom: 34px;
        padding-top: 34px;
    }

    .fh-hero__lead {
        font-size: 16px;
        margin-bottom: 20px;
    }

    .fh-quick-search {
        grid-template-columns: 1fr 1fr;
        padding: 13px;
    }

    .fh-quick-search .fh-button {
        grid-column: 1 / -1;
    }

    .fh-quick-search .fh-button {
        min-height: 46px;
    }

    .fh-section {
        padding-bottom: 54px;
        padding-top: 54px;
    }

    .fh-section-header {
        align-items: start;
        display: grid;
        gap: 14px;
    }

    .fh-profile-grid,
    .fh-results-grid {
        gap: 14px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fh-profile-card__body {
        padding: 13px;
    }

    .fh-profile-card__body h3 {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .fh-profile-card__meta,
    .fh-profile-card__denomination,
    .fh-profile-card__link {
        font-size: 11px;
    }

    .fh-profile-card__story {
        display: none;
    }

    body.logged-in .fh-related .fh-profile-card__story {
        display: block;
    }

    .fh-browse-inner {
        align-items: start;
        display: grid;
    }

    .fh-results-header {
        padding: 38px 0;
    }

    .fh-results-header h1 {
        font-size: 34px;
    }

    .fh-results-layout {
        padding-top: 26px;
    }

    .fh-profile-hero {
        gap: 26px;
        padding-bottom: 45px;
    }

    .fh-profile-content-band {
        padding: 48px 0;
    }

    .fh-profile-content {
        gap: 42px;
    }

    .fh-profile-facts dl > div {
        gap: 5px;
        grid-template-columns: 1fr;
    }

    .fh-footer-grid {
        grid-template-columns: 1fr;
    }

    .fh-footer-grid > :first-child {
        grid-column: auto;
    }
}

@media (max-width: 380px) {
    .fh-brand-name small {
        display: none;
    }

    .fh-profile-grid,
    .fh-results-grid {
        grid-template-columns: 1fr;
    }
}
