/* Match the supplied /html layout within WordPress and Elementor wrappers. */
.afr-service-notice {
    position: fixed;
    inset: auto 20px 20px auto;
    z-index: 999999;
    width: min(440px, calc(100vw - 40px));
    padding: 24px;
    border: 1px solid var(--color-accent, #e51937);
    background: #18191c;
    color: #ffffff;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
}
.afr-service-notice p { margin: 0 0 16px; }
.afr-service-notice a {
    display: block;
    color: #ffffff;
    text-decoration: underline;
    margin-bottom: 16px;
}
.afr-service-notice button + button { margin-left: 10px; }
.afr-service-notice button {
    padding: 10px 20px;
    border: 1px solid #e51937;
    border-radius: 0;
    background: #e51937;
    color: #ffffff;
    font: inherit;
    cursor: pointer;
}
.auth-page .afr-auth-layout {
    min-height: calc(100vh - 88px) !important;
    padding: 0 !important;
}
.auth-page .afr-auth-layout > .afr-auth-panel {
    flex: 1 !important;
    max-width: none !important;
    padding: 112px 24px !important;
}
.auth-page .afr-auth-panel__inner {
    max-width: 520px !important;
}
.pricing-plans__grid[data-plan-count="1"] {
    grid-template-columns: minmax(0, 1fr);
    max-width: calc((100% - 22px) / 2);
    margin-inline: auto;
}
.pricing-plans__grid[data-plan-count="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.pricing-card__price {
    flex-wrap: wrap;
    overflow-wrap: anywhere;
}
.pricing-card__price strong {
    max-width: 100%;
    font-size: clamp(30px, 5vw, 56px);
    line-height: 1.1;
}
.afr-pricing .heading-wrapper > :is(h1, h2, h3) {
    margin: 0;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}
.afr-pricing .paragraph-wrapper > p { margin: 0; color: inherit; font: inherit; }
.pricing-plans__empty { grid-column: 1 / -1; text-align: center; }
.pricing-card__price--pending strong {
    font-size: clamp(26px, 3vw, 40px);
    line-height: 1.15;
    letter-spacing: -.02em;
}
.pricing-card__action button:disabled {
    width: 100%;
    opacity: .65;
    cursor: not-allowed;
}
.afr-checkout__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: start;
}
.afr-checkout .pricing-card { max-width: none; }
.afr-checkout__payment {
    padding: clamp(28px, 4vw, 48px);
    border: 1px solid var(--color-border, #d8d8d3);
    background: var(--color-white, #fff);
    box-shadow: 0 18px 45px rgba(0, 0, 0, .08);
}
.afr-checkout__payment h2 {
    margin: 8px 0 16px;
    color: var(--color-black, #101010);
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.05;
}
.afr-checkout__payment > p { color: var(--color-body, #555); }
.afr-checkout__memberdash { margin-top: 28px; }
.afr-checkout__memberdash .ms-membership-buy,
.afr-checkout__memberdash form { display: block; width: 100%; }
.afr-checkout__memberdash .ms-signup-button,
.afr-checkout__memberdash input[type="submit"],
.afr-checkout__memberdash button[type="submit"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: 56px;
    padding: 14px 24px !important;
    border: 1px solid #e51937 !important;
    border-radius: 0 !important;
    background: #e51937 !important;
    color: #fff !important;
    font: 700 15px/1.2 "League Spartan", sans-serif !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
}
.afr-checkout__fine-print { margin: 20px 0 0; font-size: 14px; line-height: 1.6; }
.afr-checkout__fine-print i { margin-right: 8px; color: #e51937; }
.afr-checkout__payment--table { width: min(760px, 100%); margin-inline: auto; }
.afr-checkout__payment .ms-membership-form-wrapper > h2 { margin: 0 0 20px; font-size: clamp(28px, 4vw, 44px); }
.afr-checkout__payment .ms-alert-box { padding: 14px 16px; border-left: 4px solid #e51937; background: #f5f5f2; }
.afr-checkout__payment .ms-purchase-table { width: 100%; margin: 24px 0; border-collapse: collapse; }
.afr-checkout__payment .ms-purchase-table td { padding: 16px 18px; border-bottom: 1px solid var(--color-border, #ddd); vertical-align: top; }
.afr-checkout__payment .ms-purchase-table tr:nth-child(odd) td { background: #f7f7f5; }
.afr-checkout__payment .ms-purchase-table tr:last-child td { border-bottom: 0; }
.afr-checkout__payment .ms-title-column { width: 34%; color: var(--color-black, #101010); font-weight: 700; }
.afr-checkout__payment .ms-details-column,
.afr-checkout__payment .ms-price-column,
.afr-checkout__payment .ms-desc-column { color: var(--color-body, #444); }
.afr-checkout__payment .ms-total { color: var(--color-black, #101010); font-weight: 700; }
.afr-checkout__payment .ms-cancel-other-memberships,
.afr-checkout__payment .ms-desc-warning { color: #a20d25; }
.afr-checkout__payment .ms-purchase-table input:not([type="submit"]):not([type="hidden"]),
.afr-checkout__payment .ms-purchase-table select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #c9c9c4;
    border-radius: 0;
    background: #fff;
    color: var(--color-black, #101010);
    font: inherit;
}
.afr-checkout__payment .ms-purchase-table input:focus-visible,
.afr-checkout__payment .ms-purchase-table select:focus-visible,
.afr-checkout__payment #stripePayment:focus-visible {
    outline: 3px solid rgba(229, 25, 55, .35);
    outline-offset: 3px;
}
.afr-checkout__payment #stripePayment {
    width: 100%; min-height: 56px; padding: 14px 24px; border: 1px solid #e51937;
    border-radius: 0; background: #e51937; color: #fff; font: 700 15px/1.2 "League Spartan", sans-serif;
    letter-spacing: .06em; text-transform: uppercase; cursor: pointer;
}
.afr-checkout__payment #stripePayment:hover { background: #bd102a; border-color: #bd102a; }
.afr-checkout-payment-step .pricing-hero__eyebrow p {
    display: inline-flex;
    padding: 8px 12px;
    border-left: 3px solid #e51937;
    background: rgba(255, 255, 255, .08);
}
.afr-checkout-payment-step .afr-checkout__payment--table {
    overflow: hidden;
    border-top: 3px solid #e51937;
}
.afr-checkout-payment-step .ms-membership-form-wrapper > h2 {
    color: var(--color-black, #101010);
    font-family: "League Spartan", sans-serif;
}
@media (max-width: 600px) {
    .afr-checkout__payment .ms-purchase-table td { padding: 12px 10px; }
    .afr-checkout__payment .ms-title-column { width: 38%; }
}
.afr-thank-you__actions { display: flex; flex-direction: column; align-items: stretch; gap: 18px; }
.afr-thank-you__actions .afr-auth-text-link { text-align: center; }
.afr-course-progress { display: grid; gap: 22px; }
.afr-course-progress__header { display: flex; justify-content: space-between; gap: 20px; }
.afr-course-progress__bar { height: 12px; overflow: hidden; background: #e8e8e4; }
.afr-course-progress__bar span { display: block; height: 100%; background: #e51937; }
.afr-memberdash-account-controls { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--color-border, #ddd); }
.afr-membership-summary p { margin: 0 0 8px; }
.afr-subscription-content {
    padding-block: 80px;
    overflow-wrap: anywhere;
}
.afr-memberdash-portal {
    background: var(--color-soft);
    min-height: 55vh;
}
.afr-memberdash-portal__inner {
    max-width: 760px;
    padding: clamp(24px, 5vw, 56px);
    border: 1px solid var(--color-border);
    background: var(--color-white);
}
.afr-memberdash-portal .afr-auth-heading h1 {
    color: var(--color-black) !important;
}
.afr-memberdash-portal .afr-auth-heading p {
    color: var(--color-body) !important;
}
.afr-memberdash-portal .afr-auth-heading .auth-eyebrow {
    color: var(--color-accent-ink) !important;
}
.afr-memberdash-action {
    min-height: 52px;
    max-width: 100%;
    white-space: normal;
    text-align: center;
}
.afr-auth-panel .afr-memberdash-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}
.afr-auth-panel .afr-memberdash-login-fallback {
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 1.6;
}
.afr-memberdash-portal__links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin-top: 24px;
}
.afr-memberdash-portal__links a {
    text-decoration: underline;
    text-underline-offset: 4px;
}
.afr-memberdash-unavailable {
    padding: 16px;
    border: 1px solid currentColor;
}
.afr-member-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}
.afr-saved-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}
.afr-member-shortcuts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.afr-member-shortcuts .profile-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}
.afr-member-shortcuts .profile-card p {
    color: var(--color-body);
}
.afr-member-shortcuts .profile-card .member-button {
    margin-top: auto;
}
.afr-hosted-account .profile-form__actions {
    padding-top: 24px;
}
.afr-hosted-account .profile-summary__avatar {
    display: grid;
    place-items: center;
}
.afr-hosted-dashboard .member-button:disabled,
.afr-hosted-account .member-button:disabled {
    opacity: .6;
    cursor: not-allowed;
}
.afr-hosted-account :focus-visible,
.afr-hosted-dashboard :focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 4px;
}
@media (max-width: 767px) {
	.afr-checkout__layout { grid-template-columns: minmax(0, 1fr); }
	.afr-checkout__payment { padding: 28px 22px; }
    .afr-member-shortcuts { grid-template-columns: minmax(0, 1fr); }
    .afr-member-actions { flex-direction: column; align-items: stretch; }
    .afr-hosted-dashboard .member-welcome__inner { gap: 0; grid-template-columns: minmax(0, 1fr); }
    .afr-hosted-dashboard .member-welcome__image { margin-right: 0; min-height: 260px; }
    .afr-hosted-dashboard .member-welcome__title h1 { font-size: clamp(36px, 10vw, 56px); }
    .afr-hosted-account .member-profile { grid-template-columns: minmax(0, 1fr); }
}
.afr-ask-card {
    max-width: 800px;
    margin-inline: auto;
}
.afr-ask-card .afr-question-form {
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.afr-question-form .afr-question-consent { flex-direction: row !important; }
.afr-ask-privacy { margin-top: 24px; font-size: 14px; }
.afr-question-feedback { padding: 16px; border: 1px solid currentColor; margin-bottom: 24px; }
.afr-ask-page :focus-visible { outline: 3px solid #e51937 !important; outline-offset: 4px; }
.afr-question-honeypot,
.afr-auth-honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip-path: inset(50%);
}
.afr-auth-layout :focus-visible,
.afr-subscription-content :focus-visible,
.pricing-page :focus-visible {
    outline: 3px solid #e51937;
    outline-offset: 4px;
}
@media (max-width: 767px) {
    .auth-page .afr-auth-layout > .afr-auth-panel {
        padding: 64px 20px !important;
    }
    .auth-page .afr-auth-heading h1 {
        font-size: clamp(32px, 9vw, 48px) !important;
    }
    .pricing-plans__grid[data-plan-count] {
        grid-template-columns: minmax(0, 1fr);
        max-width: none;
    }
    .pricing-card {
        padding: 32px 24px;
    }
    .afr-pricing .pricing-hero { padding-block: 80px; }
    .afr-pricing .pricing-hero__title { font-size: 48px; }
    .afr-pricing .pricing-hero__description { font-size: 18px; }
    .afr-pricing .pricing-plans__title,
    .afr-pricing .pricing-includes__title,
    .afr-pricing .pricing-cta__title { font-size: 38px; }
    .afr-pricing .section { padding-block: 64px; }
    .afr-pricing .pricing-includes__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .afr-pricing .pricing-includes__grid { grid-template-columns: minmax(0, 1fr); }
    .afr-pricing .pricing-cta__inner { flex-direction: column; align-items: stretch; gap: 28px; }
    .afr-subscription-content {
        padding-block: 56px;
    }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .auth-panel__inner { animation: none; opacity: 1; transform: none; }
}
html.afr-memberdash-auth-open,
body.afr-memberdash-auth-open {
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
}

.afr-memberdash-auth-shell {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    display: block !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    transform: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #101010 !important;
}

iframe.afr-memberdash-auth-frame {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483001 !important;
    display: block !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-width: 100vw !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #101010 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

@media (max-width: 600px) {
    .afr-memberdash-auth-shell,
    iframe.afr-memberdash-auth-frame {
        width: 100% !important;
        min-width: 100% !important;
    }
}

/* MemberDash hosted iframe popup overlay */
#memberdashiframeholder {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    z-index: 999999 !important;
    background: rgba(0, 0, 0, 0.75) !important;
}

#memberdashiframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    z-index: 1000000 !important;
}

#memberdashloaderdiv {
    z-index: 1000001 !important;
}

/* Account navigation uses the website's authenticated identity and access result. */
[data-account-menu] .member-account__panel[hidden] { display: none !important; }
[data-account-menu] .member-account__panel { z-index: 1001; max-width: calc(100vw - 24px); }
[data-account-menu] .member-account__name { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-account-toggle]:focus-visible { outline: 2px solid #e51937; outline-offset: 3px; }
.elementor-nav-menu--main .afr-member-mobile { display: none !important; }
.elementor-nav-menu--dropdown .afr-member-mobile--status { padding: 14px 20px; color: #555; background: #f5f5f2; font-size: 13px; }
