/* Femeia Fit members area — layout sanity for legacy Thrive content + dashboard cards */

/* ===== Legacy Thrive course pages: layout + typographic normalization =====
   The7 (elementor_header_footer template) renders the ported Thrive content into
   #content — as .tve_lp_content and/or bare .thrv_content_container_shortcode
   blocks — with NO .entry-content wrapper, full-bleed, and with hardcoded
   ~1094px element widths from the legacy Thrive CSS. So the old
   .page-content/.entry-content rule never matched anything. Scope to
   .ff-thrive #content and cap/center the whole content area. */
.ff-thrive #content {
    max-width: 940px;
    margin-left: auto;
    margin-right: auto;
    padding: 46px 22px 60px;   /* top pad clears the sticky header + the legacy -30px first-block pull */
    box-sizing: border-box;
}

/* Legacy Thrive blocks carry hardcoded pixel widths — make them fluid so they
   fit the centered column (inner .tve_colm keep their % widths and reflow). */
.ff-thrive #content .thrv_content_container_shortcode,
.ff-thrive #content .tve_content_inner,
.ff-thrive #content .thrv_columns,
.ff-thrive #content .tve_lp_content {
    width: auto !important;
    max-width: 100% !important;
}

/* Consistent, readable line-height. Legacy fixed-px line-heights were often
   smaller than the font size (e.g. 18px text / 14px line-height), cramping copy. */
.ff-thrive #content p,
.ff-thrive #content li,
.ff-thrive #content span,
.ff-thrive #content div { line-height: 1.55 !important; }
.ff-thrive #content h1,
.ff-thrive #content h2,
.ff-thrive #content h3,
.ff-thrive #content h4 { line-height: 1.28 !important; }

/* Readability floor: lift the tiny legacy inline sizes (10–15px) to 16px so the
   schedule tables and fine print are legible. */
.ff-thrive #content [style*="font-size: 10px"],
.ff-thrive #content [style*="font-size: 11px"],
.ff-thrive #content [style*="font-size: 12px"],
.ff-thrive #content [style*="font-size: 13px"],
.ff-thrive #content [style*="font-size: 14px"],
.ff-thrive #content [style*="font-size: 15px"] { font-size: 16px !important; }

/* Media never overflows the column. */
.ff-thrive #content img { max-width: 100% !important; height: auto; }
.ff-thrive #content iframe { max-width: 100% !important; }

/* The Facebook-group collage was pinned to a tiny 201px in the legacy markup. */
.ff-thrive #content .tve_image_caption:has(a[href*="facebook.com/groups"]) {
    width: auto !important;
    max-width: 420px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.ff-thrive #content a[href*="facebook.com/groups"] img {
    width: auto !important;
    max-width: 420px !important;
    height: auto !important;
}

/* Thrive columns: stack on small screens (old CSS breakpoint misses some layouts) */
@media (max-width: 767px) {
    .ff-thrive .tve_colm,
    .ff-thrive .tve_table_cell {
        float: none !important;
        display: block !important;
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* Exercise posts: classic responsive video wrapper */
.videoWrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    max-width: 100%;
}
.videoWrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Brand buttons used by dashboard / notices */
.ff-btn {
    display: inline-block;
    background: #B22244;
    color: #fff !important;
    padding: 12px 28px;
    border-radius: 6px;
    font-weight: 600;
    text-decoration: none !important;
}
.ff-btn:hover { background: #8f1b37; }

/* Member dashboard program cards */
.ff-programs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
    margin: 10px 0 30px;
}
.ff-program-card {
    background: #F5F7F9;
    border-top: 4px solid #A967AA;
    border-radius: 8px;
    padding: 24px 20px;
    text-align: center;
}
.ff-program-card h3 {
    font-size: 20px;
    margin: 0 0 16px;
    color: #333;
}
.ff-programs-login, .ff-programs-none {
    background: #F5F7F9;
    border-left: 4px solid #A967AA;
    padding: 18px 22px;
    border-radius: 6px;
}

/* PMPro buttons in brand colors */
.pmpro_btn,
input.pmpro_btn,
button.pmpro_btn,
.pmpro_form .pmpro_btn-submit {
    background: #B22244 !important;
    border-color: #B22244 !important;
    color: #fff !important;
}
.pmpro_btn:hover,
input.pmpro_btn:hover,
button.pmpro_btn:hover,
.pmpro_form .pmpro_btn-submit:hover {
    background: #8f1b37 !important;
    border-color: #8f1b37 !important;
}

/* PMPro frontend: soften the boxes to match the site */
.pmpro_card { border-radius: 8px; }
.ff-thrive .pmpro_content_message,
.pmpro_content_message {
    background: #F5F7F9;
    border-left: 4px solid #B22244;
    padding: 18px 22px;
    border-radius: 6px;
}
