/* Chess Suite — Membership & PMPro experience */

.cfs-join-page {
    background: #f8fafc;
    color: #344054;
}

.cfs-join-hero {
    background: var(--cfs-navy);
    color: #fff;
}

.cfs-join-hero__inner {
    padding-block: 56px 52px;
}

.cfs-join-hero__eyebrow,
.cfs-join-heading > span,
.cfs-membership-help__inner > div > span {
    display: block;
    margin: 0 0 9px;
    color: var(--cfs-yellow);
    font-family: Montserrat, Inter, sans-serif;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.25px;
    text-transform: uppercase;
}

.cfs-join-hero h1 {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-family: Montserrat, Inter, sans-serif;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.05;
}

.cfs-join-hero__rule {
    display: block;
    width: 44px;
    height: 3px;
    margin: 18px 0;
    background: var(--cfs-yellow);
}

.cfs-join-hero p {
    max-width: 720px;
    margin: 0;
    color: #dce7ef;
    font-size: 15px;
    line-height: 1.65;
}

.cfs-join-hero__account {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 22px;
    color: #fff;
    font-family: Montserrat, Inter, sans-serif;
    font-size: 10px;
    font-weight: 800;
    text-decoration: none;
}

.cfs-join-main {
    padding: 52px 0 66px;
}

.cfs-join-heading {
    max-width: 760px;
    margin-bottom: 28px;
}

.cfs-join-heading > span {
    color: var(--cfs-blue-dark);
}

.cfs-join-heading h2 {
    margin: 0 0 10px;
    color: var(--cfs-navy);
    font-family: Montserrat, Inter, sans-serif;
    font-size: clamp(27px, 3vw, 36px);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.1;
}

.cfs-join-heading p {
    margin: 0;
    color: var(--cfs-muted);
    font-size: 14px;
    line-height: 1.6;
}

.cfs-membership-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.cfs-membership-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 24px;
    border: 1px solid var(--cfs-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15,23,42,.07);
}

.cfs-membership-card__top {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.cfs-membership-card__badge {
    display: inline-flex;
    margin-bottom: 16px;
    padding: 6px 9px;
    border-radius: 999px;
    background: #eef7fd;
    color: var(--cfs-blue-dark);
    font-family: Montserrat, Inter, sans-serif;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .65px;
}

.cfs-membership-card__badge--club {
    background: #fffbd7;
    color: var(--cfs-navy);
}

.cfs-membership-card__icon {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    border-radius: 9px;
    background: var(--cfs-ice);
    color: var(--cfs-blue-dark);
}

.cfs-membership-card__icon svg {
    width: 23px;
    height: 23px;
}

.cfs-membership-card h3 {
    margin: 0 0 9px;
    color: var(--cfs-navy);
    font-family: Montserrat, Inter, sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.cfs-membership-card__top p {
    min-height: 58px;
    margin: 0;
    color: var(--cfs-muted);
    font-size: 12px;
    line-height: 1.6;
}

.cfs-membership-card__price {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 18px 0 4px;
    padding: 14px 0;
    border-top: 1px solid #edf1f4;
    border-bottom: 1px solid #edf1f4;
}

.cfs-membership-card__price strong {
    color: var(--cfs-navy);
    font-family: Montserrat, Inter, sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.1;
}

.cfs-membership-card__price span {
    color: var(--cfs-muted);
    font-size: 10px;
}

.cfs-membership-card__features {
    display: grid;
    gap: 9px;
    margin: 16px 0 22px;
    padding: 0;
    list-style: none;
}

.cfs-membership-card__features li {
    display: grid;
    grid-template-columns: 18px minmax(0,1fr);
    gap: 7px;
    align-items: start;
    color: #475467;
    font-size: 11px;
    line-height: 1.45;
}

.cfs-membership-card__features li > span {
    color: var(--cfs-blue-dark);
    font-weight: 900;
}

.cfs-membership-card__action {
    margin-top: auto;
}

.cfs-membership-card__action > a {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    border-radius: 7px;
    background: var(--cfs-blue-dark);
    color: #fff;
    font-family: Montserrat, Inter, sans-serif;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .35px;
    text-align: center;
    text-decoration: none;
}

.cfs-membership-card__action > a:hover {
    background: var(--cfs-navy);
}

.cfs-membership-card__unavailable {
    display: block;
    padding: 12px;
    border-radius: 7px;
    background: #f4f6f8;
    color: #667085;
    font-size: 11px;
    text-align: center;
}

.cfs-membership-card--club .cfs-membership-card__features {
    margin-top: 20px;
}

.cfs-membership-help {
    padding: 42px 0;
    background: var(--cfs-ice);
}

.cfs-membership-help__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.cfs-membership-help__inner > div > span {
    color: var(--cfs-blue-dark);
}

.cfs-membership-help h2 {
    margin: 0 0 7px;
    color: var(--cfs-navy);
    font-family: Montserrat, Inter, sans-serif;
    font-size: 24px;
    font-weight: 700;
}

.cfs-membership-help p {
    margin: 0;
    color: var(--cfs-muted);
    font-size: 13px;
}

.cfs-membership-help__inner > a {
    display: inline-flex;
    min-height: 44px;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    padding: 0 18px;
    border-radius: 7px;
    background: var(--cfs-blue-dark);
    color: #fff;
    font-family: Montserrat, Inter, sans-serif;
    font-size: 9px;
    font-weight: 800;
    text-decoration: none;
}

/* Paid Memberships Pro frontend styling */
.cfs-pmpro-page main,
.cfs-pmpro-page .site-main,
.cfs-pmpro-page .page-content,
.cfs-pmpro-page .entry-content {
    color: #344054;
}

.cfs-pmpro-page .pmpro,
.cfs-pmpro-page [class^="pmpro_"] {
    box-sizing: border-box;
}

.cfs-pmpro-page .pmpro {
    max-width: 980px;
    margin-inline: auto;
    padding: 36px 20px 56px;
}

.cfs-pmpro-page .pmpro_card,
.cfs-pmpro-page .pmpro_section,
.cfs-pmpro-page fieldset {
    border: 1px solid var(--cfs-border) !important;
    border-radius: 10px !important;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.cfs-pmpro-page .pmpro_card_content,
.cfs-pmpro-page .pmpro_section_content {
    padding: 22px !important;
}

.cfs-pmpro-page .pmpro_card_title,
.cfs-pmpro-page .pmpro_section_title,
.cfs-pmpro-page legend,
.cfs-pmpro-page h1,
.cfs-pmpro-page h2,
.cfs-pmpro-page h3 {
    color: var(--cfs-navy);
    font-family: Montserrat, Inter, sans-serif;
}

.cfs-pmpro-page .pmpro_form_field,
.cfs-pmpro-page .pmpro_form_field-group {
    margin-bottom: 16px;
}

.cfs-pmpro-page .pmpro_form_label,
.cfs-pmpro-page label {
    color: #344054;
    font-size: 12px;
    font-weight: 700;
}

.cfs-pmpro-page input[type="text"],
.cfs-pmpro-page input[type="email"],
.cfs-pmpro-page input[type="password"],
.cfs-pmpro-page input[type="tel"],
.cfs-pmpro-page input[type="date"],
.cfs-pmpro-page input[type="number"],
.cfs-pmpro-page select,
.cfs-pmpro-page textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #cfd8e3;
    border-radius: 7px;
    background: #fff;
    color: #344054;
    font-size: 14px;
}

.cfs-pmpro-page textarea {
    min-height: 100px;
}

.cfs-pmpro-page input:focus,
.cfs-pmpro-page select:focus,
.cfs-pmpro-page textarea:focus {
    outline: 2px solid rgba(30,95,140,.16);
    border-color: var(--cfs-blue-dark);
}

.cfs-pmpro-page .pmpro_btn,
.cfs-pmpro-page button.pmpro_btn,
.cfs-pmpro-page input[type="submit"] {
    min-height: 44px !important;
    padding: 10px 18px !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: var(--cfs-blue-dark) !important;
    color: #fff !important;
    font-family: Montserrat, Inter, sans-serif !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .3px;
    text-decoration: none !important;
}

.cfs-pmpro-page .pmpro_btn:hover,
.cfs-pmpro-page input[type="submit"]:hover {
    background: var(--cfs-navy) !important;
}

.cfs-pmpro-page table {
    width: 100%;
    border-collapse: collapse;
}

.cfs-pmpro-page th,
.cfs-pmpro-page td {
    padding: 12px;
    border-bottom: 1px solid #e8edf2;
    text-align: left;
}

.cfs-pmpro-page th {
    color: var(--cfs-navy);
    font-size: 11px;
    font-weight: 800;
}

.cfs-pmpro-page .pmpro_message,
.cfs-pmpro-page .pmpro_alert {
    padding: 13px 15px !important;
    border-radius: 7px !important;
}

@media (max-width: 920px) {
    .cfs-membership-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .cfs-membership-card--club {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .cfs-join-hero__inner {
        padding-block: 42px 38px;
    }

    .cfs-join-main {
        padding: 38px 0 48px;
    }

    .cfs-membership-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .cfs-membership-card--club {
        grid-column: auto;
    }

    .cfs-membership-card {
        padding: 20px;
    }

    .cfs-membership-card__top p {
        min-height: 0;
    }

    .cfs-membership-help__inner {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* v2.0 cash/manual membership applications */
.cfs-membership-application__card{max-width:980px;margin:0 auto;background:#fff;border:1px solid var(--cfs-border);border-radius:12px;box-shadow:var(--cfs-shadow);padding:28px}
.cfs-membership-application__summary{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;margin-bottom:22px;border-radius:8px;background:var(--cfs-ice);color:var(--cfs-navy)}
.cfs-membership-application__summary strong{font:700 22px/1.2 Montserrat,Inter,sans-serif}.cfs-membership-application__summary span{color:var(--cfs-muted);font-size:13px}
.cfs-membership-application__form fieldset{border:0;border-top:1px solid var(--cfs-border);margin:0;padding:24px 0}.cfs-membership-application__form legend{padding:0 14px 0 0;font:700 16px/1.2 Montserrat,Inter,sans-serif;color:var(--cfs-navy)}
.cfs-membership-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.cfs-membership-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cfs-membership-form-grid label,.cfs-membership-application__form fieldset>label{display:grid;gap:7px;font-weight:600;color:#344054}.cfs-membership-form-grid input,.cfs-membership-form-grid select,.cfs-membership-form-grid textarea,.cfs-membership-application__form fieldset>label input{width:100%;min-height:46px;border:1px solid #cfd8e2;border-radius:6px;padding:10px 12px;background:#fff}.cfs-membership-form-grid textarea{min-height:90px}.cfs-membership-form-wide{grid-column:1/-1}.cfs-membership-cert{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start}.cfs-membership-cert input{width:auto!important;min-height:0!important;margin-top:3px}.cfs-membership-cash-notice{padding:16px 18px;border-left:4px solid var(--cfs-yellow);background:#fffde7;margin:4px 0 20px}.cfs-membership-cash-notice p{margin:5px 0 0}.cfs-membership-submit{width:100%;min-height:48px;border:0;border-radius:6px;background:var(--cfs-blue-dark);color:#fff;font:700 11px Montserrat,Inter,sans-serif;letter-spacing:.3px;cursor:pointer}.cfs-membership-application__success{max-width:700px;margin:40px auto;padding:40px;text-align:center;background:#fff;border:1px solid var(--cfs-border);border-radius:12px}.cfs-membership-application__success>span{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--cfs-yellow);font-size:26px}.cfs-membership-application__success a{display:inline-flex;margin-top:18px;padding:12px 18px;border-radius:6px;background:var(--cfs-blue-dark);color:#fff;text-decoration:none;font-weight:700}
@media(max-width:700px){.cfs-membership-form-grid{grid-template-columns:1fr}.cfs-membership-form-wide{grid-column:auto}.cfs-membership-application__card{padding:20px}.cfs-membership-application__summary{align-items:flex-start;flex-direction:column}}

/* v2.11.5 — visible Federation payment information */
.cfs-membership-bank{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:34px;margin-top:34px;padding:30px;border:1px solid var(--cfs-border);border-radius:12px;background:#fff;box-shadow:var(--cfs-shadow)}
.cfs-membership-bank__intro>span{display:block;margin-bottom:8px;color:var(--cfs-blue-dark);font:800 10px/1.2 Montserrat,Inter,sans-serif;letter-spacing:1.2px}.cfs-membership-bank__intro h2{margin:0 0 10px;color:var(--cfs-navy);font:700 clamp(23px,3vw,31px)/1.12 Montserrat,Inter,sans-serif}.cfs-membership-bank__intro p{margin:0;color:var(--cfs-muted);line-height:1.6}
.cfs-membership-bank dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border:1px solid var(--cfs-border);border-radius:8px;overflow:hidden}.cfs-membership-bank dl div{padding:13px 15px;border-bottom:1px solid var(--cfs-border)}.cfs-membership-bank dl div:nth-child(odd){border-right:1px solid var(--cfs-border)}.cfs-membership-bank dl div:nth-last-child(-n+2){border-bottom:0}.cfs-membership-bank dt{margin:0 0 4px;color:#8390a3;font:800 9px/1.3 Montserrat,Inter,sans-serif;letter-spacing:.65px;text-transform:uppercase}.cfs-membership-bank dd{margin:0;color:var(--cfs-navy);font-weight:700;overflow-wrap:anywhere}
@media(max-width:760px){.cfs-membership-bank{grid-template-columns:1fr;padding:22px}.cfs-membership-bank dl{grid-template-columns:1fr}.cfs-membership-bank dl div,.cfs-membership-bank dl div:nth-child(odd),.cfs-membership-bank dl div:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--cfs-border)}.cfs-membership-bank dl div:last-child{border-bottom:0}}
