/**
Theme Name: CantFixThat
Author: CantFixThat
Author URI: https://cantfixthat.com
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cantfixthat
Template: astra
*/
/* ===== CantFixThat brand styles (moved from Additional CSS) ===== */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");

/* ==========================================================================
   CantFixThat.com — brand styles for WordPress (Astra)
   Mirrors the static site: Inter, #1A6FD4, and a 4-size type scale.
   ========================================================================== */

:root {
  /* Type scale (matches static site styles.css) */
  --fs-xl: clamp(2.25rem, 5vw, 3.5rem);
  --fs-lg: clamp(1.5rem, 3vw, 2.25rem);
  --fs-md: 1rem;
  --fs-sm: 0.8rem;
  /* Brand palette */
  --blue: #1A6FD4;
  --blue-dark: #1558aa;
  --blue-light: #dbeafe;
  --black: #111111;
  --gray: #666666;
  --gray-light: #f4f6f9;
  --border: #e2e8f0;
}

body, button, input, select, textarea {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-font-smoothing: antialiased;
  font-size: var(--fs-md);
}

/* ── Type scale applied to Astra markup ───────────────────────────────── */
h1, .entry-title, .ast-single-post .entry-title { font-size: var(--fs-lg) !important; font-weight: 800; letter-spacing: -0.03em; line-height: 1.15; }
.cft-hero h1, .ast-archive-title, h1.cft-display { font-size: var(--fs-xl) !important; }
h2 { font-size: var(--fs-lg) !important; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
h3 { font-size: var(--fs-md) !important; font-weight: 700; letter-spacing: -0.01em; }
h4, h5, h6 { font-size: var(--fs-md) !important; font-weight: 700; }
p, li, td, th, label, .entry-content { font-size: var(--fs-md); }
small, .ast-comment-meta, .post-meta, figcaption { font-size: var(--fs-sm); }

/* ── Header ───────────────────────────────────────────────────────────── */
.site-header { border-bottom: 1px solid var(--border); }
.ast-logo-title-inline .site-title a,
.site-title a { font-weight: 800; letter-spacing: -0.02em; color: var(--black) !important; font-size: var(--fs-md) !important; }
.site-title .logo-dot { color: var(--blue); }

/* Custom logo (header HTML element) — envelope mark + blue .com */
.cft-logo { display: inline-flex; align-items: center; gap: 0.65rem; text-decoration: none !important; font-weight: 800; letter-spacing: -0.02em; line-height: 1; }
.cft-logo .logo-text { font-size: var(--fs-md); color: var(--black) !important; }
.cft-logo .logo-dot { color: var(--blue) !important; }
.cft-logo-mark { width: 34px; height: 34px; flex-shrink: 0; background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSIzNCIgdmlld0JveD0iMCAwIDM0IDM0Ij48cmVjdCB3aWR0aD0iMzQiIGhlaWdodD0iMzQiIHJ4PSI5IiBmaWxsPSIjMUE2RkQ0Ii8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41IDcuNSkgc2NhbGUoMC43OTE2NykiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLXdpZHRoPSIyLjI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgcng9IjIiLz48cGF0aCBkPSJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyIvPjwvZz48L3N2Zz4K"); background-size: 34px 34px; background-repeat: no-repeat; }

/* Navigation */
.main-header-menu > .menu-item > a {
  font-size: var(--fs-md) !important;
  font-weight: 500 !important;
  color: #444 !important;
}
.main-header-menu > .menu-item > a:hover { color: var(--blue) !important; }

/* Header "Get Support" button (Astra HFB button element) */
.ast-header-button-1 .ast-custom-button,
.site-header .ast-custom-button {
  background: var(--blue) !important;
  border-color: var(--blue) !important;
  color: #fff !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
  font-size: var(--fs-md) !important;
}
.site-header .ast-custom-button:hover { background: var(--blue-dark) !important; border-color: var(--blue-dark) !important; }

/* ── Buttons ──────────────────────────────────────────────────────────── */
.ast-btn, .button, .wc-block-components-button, .wp-block-button__link,
input[type="submit"], button[type="submit"], .woocommerce a.button,
.woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--blue) !important;
  color: #fff !important;
  border: 2px solid var(--blue) !important;
  border-radius: 6px !important;
  font-family: "Inter", sans-serif !important;
  font-weight: 600 !important;
  font-size: var(--fs-md) !important;
  transition: background 0.2s, border-color 0.2s !important;
}
.ast-btn:hover, .button:hover, .woocommerce a.button:hover,
.woocommerce button.button:hover, .woocommerce #respond input#submit:hover {
  background: var(--blue-dark) !important;
  border-color: var(--blue-dark) !important;
  color: #fff !important;
}

/* ── WooCommerce ──────────────────────────────────────────────────────── */
.woocommerce .price, .woocommerce-Price-amount { color: var(--blue) !important; font-weight: 700; }
.woocommerce .product_title { font-weight: 800; letter-spacing: -0.02em; }
.woocommerce-message { border-top-color: var(--blue) !important; }

/* ── Links ────────────────────────────────────────────────────────────── */
a { color: var(--blue); }
a:hover { color: var(--blue-dark); }

/* ── Footer (dark, multi-column — matches static site) ────────────────── */
.site-footer, .ast-footer-overlay,
.footer-adv, .ast-builder-grid-row-container.site-footer {
  background: var(--black) !important;
  color: #bbb !important;
}
.site-footer a { color: #bbb !important; }
.site-footer a:hover { color: #fff !important; }
.site-footer .ast-builder-html-element,
.site-footer .footer-primary-section { color: #bbb; }

/* Footer brand block */
.site-footer .footer-logo { margin-bottom: 0.75rem; }
.site-footer .footer-logo .logo-text { font-size: var(--fs-md); font-weight: 800; letter-spacing: -0.02em; color: #fff; }
.site-footer .footer-logo .logo-dot { color: var(--blue); }

/* Footer column headings + nav */
.site-footer .footer-col-head {
  text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--fs-sm);
  font-weight: 700; color: #888; margin: 0 0 0.9rem;
}
.site-footer ul.footer-nav { list-style: none; margin: 0; padding: 0; }
.site-footer ul.footer-nav li { margin-bottom: 0.55rem; }
.site-footer ul.footer-nav a { font-size: var(--fs-sm); }
.site-footer .footer-contact-line { font-size: var(--fs-sm); display: block; margin-bottom: 0.55rem; }

/* Footer copyright row */
.site-footer .ast-footer-copyright,
.site-footer .ast-footer-copyright p { font-size: var(--fs-sm); color: #888 !important; }
.site-footer .ast-footer-copyright .logo-dot { color: var(--blue); }

/* Astra footer builder column gutters */
.footer-html-element, .ast-builder-html-element { line-height: 1.7; }

/* Custom 3-column footer markup (in footer HTML element) */
.site-footer .ast-builder-html-element { width: 100%; }
.cft-footer-cols { display: flex; flex-wrap: wrap; gap: 2.5rem 4rem; max-width: 1200px; width: 100%; margin: 0 auto; padding: 1rem 0 1.5rem; justify-content: space-between; text-align: left; }
.cft-foot-brand { max-width: 320px; }
.cft-foot-brand p { color: #999 !important; font-size: var(--fs-sm); margin: 0.6rem 0 1.1rem; line-height: 1.6; }
.cft-foot-col { min-width: 140px; }
.cft-social { display: flex; gap: 0.6rem; }
.cft-social a { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border: 1px solid #333; border-radius: 8px; color: #bbb !important; transition: border-color 0.2s, color 0.2s; }
.cft-social a:hover { border-color: var(--blue) !important; }
.cft-social a { background-repeat: no-repeat; background-position: center; background-size: 16px 16px; }
.cft-social a.cft-li { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2JiYmJiYiI+PHBhdGggZD0iTTE5IDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTR6TTguMzQgMTguMzRWOS45OUg1LjY3djguMzVoMi42N3pNNyA4LjhhMS41NSAxLjU1IDAgMSAwIDAtMy4xIDEuNTUgMS41NSAwIDAgMCAwIDMuMXptMTEuMzQgOS41NHYtNC41OGMwLTIuNDUtMS4zMS0zLjU5LTMuMDYtMy41OS0xLjQxIDAtMi4wNC43OC0yLjM5IDEuMzJ2LTEuMTNoLTIuNjdjLjA0Ljc1IDAgOC4zNSAwIDguMzVoMi42N3YtNC42NmMwLS4yNC4wMi0uNDguMDktLjY1LjE5LS40OC42My0uOTggMS4zNi0uOTguOTYgMCAxLjM0LjczIDEuMzQgMS44djQuNDloMi42NnoiLz48L3N2Zz4K"); }
.cft-social a.cft-gh { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2JiYmJiYiI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi41OCAyIDEyLjI1YzAgNC41MyAyLjg3IDguMzcgNi44NCA5LjczLjUuMS42OC0uMjIuNjgtLjQ5bC0uMDEtMS43Yy0yLjc4LjYyLTMuMzctMS4zNy0zLjM3LTEuMzctLjQ1LTEuMTgtMS4xMS0xLjUtMS4xMS0xLjUtLjkxLS42NC4wNy0uNjIuMDctLjYyIDEgLjA3IDEuNTMgMS4wNiAxLjUzIDEuMDYuODkgMS41NiAyLjM0IDEuMTEgMi45MS44NS4wOS0uNjYuMzUtMS4xMS42My0xLjM3LTIuMjItLjI2LTQuNTUtMS4xNC00LjU1LTUuMDcgMC0xLjEyLjM5LTIuMDMgMS4wMy0yLjc1LS4xLS4yNi0uNDUtMS4zLjEtMi43MSAwIDAgLjg0LS4yNyAyLjc1IDEuMDVBOS4zNCA5LjM0IDAgMCAxIDEyIDYuODRjLjg1IDAgMS43MS4xMiAyLjUxLjM0IDEuOTEtMS4zMiAyLjc1LTEuMDUgMi43NS0xLjA1LjU1IDEuNDEuMiAyLjQ1LjEgMi43MS42NC43MiAxLjAzIDEuNjMgMS4wMyAyLjc1IDAgMy45NC0yLjM0IDQuODEtNC41NyA1LjA2LjM2LjMyLjY4Ljk0LjY4IDEuOWwtLjAxIDIuODFjMCAuMjcuMTguNi42OS40OUExMC4wMiAxMC4wMiAwIDAgMCAyMiAxMi4yNUMyMiA2LjU4IDE3LjUyIDIgMTIgMnoiLz48L3N2Zz4K"); }
.cft-social a:hover { filter: brightness(1.8); }
@media (max-width: 600px) { .cft-footer-cols { gap: 2rem; } }

/* ── POLICY PAGES ── */
.cft-policy-page { max-width: 820px; margin: 0 auto; padding: 3rem 2rem; font-size: var(--fs-md); line-height: 1.8; color: #333; }
.cft-policy-page h2 { font-size: var(--fs-lg); font-weight: 700; color: #111; margin: 2.5rem 0 0.75rem; letter-spacing: -0.01em; }
.cft-policy-page h3 { font-size: var(--fs-md); font-weight: 700; color: #111; margin: 1.5rem 0 0.5rem; }
.cft-policy-page ul, .cft-policy-page ol { padding-left: 1.5rem; margin: 0.75rem 0 1rem; }
.cft-policy-page li { margin-bottom: 0.4rem; }
.cft-policy-page table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: var(--fs-md); }
.cft-policy-page th { background: #f4f6f9; font-weight: 700; padding: 0.6rem 1rem; text-align: left; border: 1px solid #e2e8f0; }
.cft-policy-page td { padding: 0.55rem 1rem; border: 1px solid #e2e8f0; }
.cft-policy-page a { color: #1A6FD4; }
.cft-policy-page em { color: #888; font-size: var(--fs-sm); }
.ast-breadcrumbs-wrapper { display: none; }

/* ── PLANS PAGE ── */
.cft-plans-wrap { font-family: "Inter", -apple-system, sans-serif; max-width: 1200px; margin: 0 auto; padding: 60px 2rem; }
.cft-plans-wrap .cft-label,
.cft-plans-header .cft-label { text-transform: uppercase; font-size: var(--fs-sm); font-weight: 700; letter-spacing: 0.12em; color: #1A6FD4; margin-bottom: 0.6rem; display: block; }
.cft-plans-header { text-align: center; margin-bottom: 3rem; }
.cft-plans-header h2 { font-size: var(--fs-lg); font-weight: 800; letter-spacing: -0.03em; color: #111; margin: 0 0 0.75rem; line-height: 1.2; }
.cft-plans-header p { font-size: var(--fs-md); color: #666; max-width: 560px; margin: 0 auto; line-height: 1.65; }
.cft-plans-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.25rem; margin-bottom: 2rem; }
.cft-plan-card { background: #f4f6f9; border-radius: 12px; padding: 2rem 1.5rem; display: flex; flex-direction: column; gap: 1rem; border: 2px solid transparent; transition: transform 0.2s, box-shadow 0.2s; position: relative; }
.cft-plan-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,0.1); }
.cft-plan-card.popular { background: #fff; border-color: #1A6FD4; box-shadow: 0 4px 24px rgba(26,111,212,0.15); }
.cft-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: #1A6FD4; color: #fff; font-size: var(--fs-sm); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.25rem 0.75rem; border-radius: 20px; white-space: nowrap; }
.cft-plan-name { font-size: var(--fs-md); font-weight: 700; color: #111; letter-spacing: -0.01em; }
.cft-plan-credits { font-size: var(--fs-sm); color: #666; margin-top: 0.1rem; }
.cft-plan-price { font-size: var(--fs-lg); font-weight: 800; color: #111; letter-spacing: -0.03em; line-height: 1; }
.cft-plan-price span { font-size: var(--fs-md); font-weight: 500; color: #666; }
.cft-plan-annual { font-size: var(--fs-sm); color: #1A6FD4; font-weight: 600; margin-top: 0.3rem; }
.cft-plan-onetime { font-size: var(--fs-sm); color: #888; font-style: italic; margin-top: 0.3rem; }
.cft-plan-rate { font-size: var(--fs-sm); color: #888; margin-top: 0.15rem; }
.cft-plan-btn { display: block; text-align: center; padding: 0.65rem 1rem; background: #1A6FD4; color: #fff !important; border-radius: 6px; font-weight: 600; font-size: var(--fs-md); text-decoration: none !important; margin-top: auto; transition: background 0.2s; }
.cft-plan-btn:hover { background: #1558aa; color: #fff !important; }
.cft-notes { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 2.5rem; background: #f4f6f9; border-radius: 10px; padding: 1.25rem 2rem; margin-bottom: 3.5rem; }
.cft-note { display: flex; align-items: center; gap: 0.45rem; font-size: var(--fs-sm); color: #444; }
.cft-note svg { flex-shrink: 0; color: #1A6FD4; }
.cft-scope { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 1rem; }
.cft-scope-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 2rem; }
.cft-scope-card h3 { font-size: var(--fs-md); font-weight: 700; color: #111; margin: 0 0 1.25rem; display: flex; align-items: center; gap: 0.6rem; }
.cft-scope-card h3 .scope-tag { font-size: var(--fs-sm); padding: 0.2rem 0.6rem; border-radius: 20px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.cft-scope-card h3 .tag-yes { background: #d1fae5; color: #059669; }
.cft-scope-card h3 .tag-no { background: #fee2e2; color: #dc2626; }
.cft-scope-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.cft-scope-list li { display: flex; align-items: flex-start; gap: 0.75rem; font-size: var(--fs-md); color: #444; line-height: 1.85; padding: 0.2rem 0; border-bottom: 1px solid #f4f6f9; }
.cft-scope-list li:last-child { border-bottom: none; }
.cft-scope-list li svg { flex-shrink: 0; margin-top: 6px; }
.cft-plans-cta { text-align: center; background: #111; color: #fff; border-radius: 16px; padding: 3rem 2rem; margin-top: 3rem; }
.cft-plans-cta h3 { font-size: var(--fs-lg); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 0.75rem; color: #fff; }
.cft-plans-cta p { color: #aaa; font-size: var(--fs-md); margin: 0 0 1.75rem; }
@media (max-width: 1100px) { .cft-plans-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .cft-plans-grid { grid-template-columns: 1fr 1fr; } .cft-scope { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .cft-plans-grid { grid-template-columns: 1fr; } }

/* ========================================================================
   CHECKOUT (MemberMouse) — two-column: summary left, form right
   ======================================================================== */
.section-checkout .container { max-width: 1080px; }
.cft-checkout-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 2.5rem; align-items: start; }
@media (max-width: 900px) { .cft-checkout-grid { grid-template-columns: 1fr; } }
.cft-co-error:empty { display: none; }
.cft-co-error { margin-bottom: 1.25rem; }

/* ── Left: order summary ── */
.cft-co-summary { background: var(--gray-light); border: 1px solid var(--border); border-radius: 14px; padding: 1.75rem; position: sticky; top: 96px; }
@media (max-width: 900px) { .cft-co-summary { position: static; } }
.cft-co-eyebrow { display: block; text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--fs-sm); font-weight: 700; color: var(--blue); margin-bottom: 0.5rem; }
.cft-co-product { font-size: var(--fs-lg) !important; font-weight: 800; color: var(--black); margin: 0 0 0.5rem; line-height: 1.15; letter-spacing: -0.02em; }
.cft-co-desc { font-size: var(--fs-sm); color: var(--gray); margin: 0 0 1.25rem; line-height: 1.6; }
.cft-co-prices { list-style: none; margin: 0; padding: 0; }
.cft-co-prices li { display: flex; justify-content: space-between; gap: 1rem; font-size: var(--fs-md); color: #333; padding: 0.5rem 0; border-bottom: 1px solid var(--border); }
.cft-co-discount { color: #059669; }
.cft-co-total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-top: 0.9rem; margin-top: 0.5rem; border-top: 2px solid var(--black); }
.cft-co-total > span:first-child { font-weight: 700; color: var(--black); }
.cft-co-total-amt { font-size: var(--fs-lg); font-weight: 800; color: var(--black); }
.cft-co-features { list-style: none; margin: 1.5rem 0 0; padding: 1.4rem 0 0; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 0.65rem; }
.cft-co-features li { position: relative; padding-left: 1.7rem; font-size: var(--fs-sm); color: #333; line-height: 1.45; }
.cft-co-features li::before { content: ""; position: absolute; left: 0; top: 1px; width: 16px; height: 16px; background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMUE2RkQ0IiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwIDYgOSAxN2wtNS01Ii8+PC9zdmc+Cg=="); background-size: 16px 16px; background-repeat: no-repeat; }

/* ── Right: form ── */
.cft-co-form { min-width: 0; }
.cft-co-step { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 1.6rem 1.75rem; margin-bottom: 1.25rem; }
.cft-co-step-head { display: flex; align-items: center; gap: 0.65rem; font-size: var(--fs-md); font-weight: 800; color: var(--black); margin: 0 0 1.25rem; letter-spacing: -0.01em; }
.cft-co-stepnum { display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; background: var(--blue); color: #fff; border-radius: 50%; font-size: var(--fs-sm); font-weight: 700; flex-shrink: 0; }
.cft-co-subhead { font-size: var(--fs-md); font-weight: 700; color: var(--black); margin: 1.5rem 0 1rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
.cft-co-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
@media (max-width: 480px) { .cft-co-grid2 { grid-template-columns: 1fr; } }

/* form fields */
.section-checkout .mm-formField { margin: 0 0 1rem; }
.section-checkout .mm-formField label { display: block; font-size: var(--fs-sm); font-weight: 600; color: #444; margin-bottom: 0.35rem; }
.section-checkout .mm-formField input,
.section-checkout .mm-formField select {
  width: 100%; padding: 0.7rem 0.85rem; border: 1px solid var(--border); border-radius: 8px;
  font-size: var(--fs-md); font-family: "Inter", sans-serif; background: #fff; color: #111; box-sizing: border-box;
}
.section-checkout .mm-formField input:focus,
.section-checkout .mm-formField select:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(26,111,212,0.12); }
.section-checkout .mm-formField.mm-inline input { width: auto; margin-right: 0.4rem; vertical-align: middle; }
/* expiration renders two selects side by side */
#mm-checkout-expiration-date select { display: inline-block; width: calc(50% - 0.3rem); }
#mm-checkout-expiration-date select:first-of-type { margin-right: 0.4rem; }
.section-checkout .mm-ccLogos img { max-width: 170px; height: auto; }

/* coupon */
.cft-co-coupon { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 1.1rem 1.5rem; margin-bottom: 1.25rem; }
.cft-co-coupon > label { display: block; font-size: var(--fs-sm); font-weight: 600; color: #444; margin-bottom: 0.5rem; }
.cft-co-coupon-row { display: flex; gap: 0.5rem; align-items: stretch; }
.cft-co-coupon-row input { flex: 1; padding: 0.6rem 0.8rem; border: 1px solid var(--border); border-radius: 8px; font-family: "Inter", sans-serif; font-size: var(--fs-md); box-sizing: border-box; }
.section-checkout a.mm-button.cft-co-coupon-btn {
  background: #fff !important; background-image: none !important; color: var(--blue) !important;
  border: 2px solid var(--blue) !important; border-radius: 8px !important; font-weight: 600 !important;
  padding: 0.55rem 1.1rem !important; width: auto !important; display: inline-flex !important; align-items: center;
  text-shadow: none !important; box-shadow: none !important; white-space: nowrap;
}
.section-checkout a.mm-button.cft-co-coupon-btn:hover { background: var(--blue) !important; color: #fff !important; }

/* purchase / place order */
.cft-co-purchase { padding-top: 0.25rem; }
.section-checkout .mm-paymentbuttons p { margin: 0 0 0.75rem; }
.section-checkout a.mm-button.large,
.section-checkout a.mm-button.orange {
  background: var(--blue) !important; background-image: none !important; border: none !important;
  color: #fff !important; border-radius: 8px !important; font-weight: 700 !important; font-size: var(--fs-md) !important;
  padding: 0.95rem 1.5rem !important; width: 100% !important; display: block !important; text-align: center !important;
  box-shadow: none !important; text-shadow: none !important; line-height: 1.2 !important; transition: background 0.2s;
}
.section-checkout a.mm-button.large:hover,
.section-checkout a.mm-button.orange:hover { background: var(--blue-dark) !important; }
/* leave the PayPal branded button alone, just center it */
.section-checkout a.mm-paypalCheckoutBtn { display: block; margin: 0 auto; }
.cft-co-secure { font-size: var(--fs-sm); color: var(--gray); text-align: center; margin: 0.9rem 0 0; }
.section-checkout .mm-giftsection:empty { display: none; }

/* Checkout: neutralize MM two-column flex wrapper so our grid spans full width */
.section-checkout .checkout-container,
.section-checkout .container-columns { display: block !important; width: auto !important; }
.section-checkout .container { max-width: 1080px; margin-left: auto; margin-right: auto; }
.cft-checkout { width: 100% !important; }

/* ========================================================================
   LOGIN (MemberMouse) — centered single-column card
   ======================================================================== */
.page-id-50 .entry-title,
.page-id-50 .ast-breadcrumbs-wrapper { display: none; }
.page-id-50 #content.site-content { background: var(--gray-light); }
.cft-login-wrap { max-width: 440px; margin: 2.5rem auto; }
.cft-login-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 2.5rem; box-shadow: 0 8px 30px rgba(0,0,0,0.06); }
.cft-login-eyebrow { display: block; text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--fs-sm); font-weight: 700; color: var(--blue); margin-bottom: 0.5rem; text-align: center; }
.cft-login-title { font-size: var(--fs-lg) !important; font-weight: 800; color: var(--black); text-align: center; margin: 0 0 0.4rem; letter-spacing: -0.02em; line-height: 1.15; }
.cft-login-sub { font-size: var(--fs-sm); color: var(--gray); text-align: center; margin: 0 0 1.75rem; line-height: 1.5; }
.cft-login-card--note { text-align: center; }

/* fields */
.cft-login-field { margin-bottom: 1.1rem; }
.cft-login-field label { display: block; font-size: var(--fs-sm); font-weight: 600; color: #444; margin-bottom: 0.4rem; }
.cft-login-card input[type="text"],
.cft-login-card input[type="password"],
.cft-login-card input[type="email"] {
  width: 100%; padding: 0.75rem 0.9rem; border: 1px solid var(--border); border-radius: 8px;
  font-size: var(--fs-md); font-family: "Inter", sans-serif; box-sizing: border-box; background: #fff; color: #111;
}
.cft-login-card input[type="text"]:focus,
.cft-login-card input[type="password"]:focus,
.cft-login-card input[type="email"]:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(26,111,212,0.12); }

/* remember + forgot row */
.cft-login-row { display: flex; justify-content: space-between; align-items: center; margin: 0.25rem 0 1.5rem; flex-wrap: wrap; gap: 0.5rem; }
.cft-login-remember { font-size: var(--fs-sm); color: #444; display: inline-flex; align-items: center; gap: 0.4rem; }
.cft-login-remember input { margin: 0; width: auto; }
.cft-login-forgot { font-size: var(--fs-sm); }

/* login button (brand blue, full width) */
.cft-login-btn { margin-top: 0.25rem; }
.cft-login-btn a.mm-button,
.cft-login-btn input.mm-button,
.cft-login-btn .mm-button {
  width: 100% !important; display: block !important; text-align: center !important;
  background: var(--blue) !important; background-image: none !important; color: #fff !important; border: none !important;
  border-radius: 8px !important; font-weight: 700 !important; font-size: var(--fs-md) !important; padding: 0.85rem 1rem !important;
  box-shadow: none !important; text-shadow: none !important; line-height: 1.2 !important; cursor: pointer; transition: background 0.2s;
}
.cft-login-btn .mm-button:hover { background: var(--blue-dark) !important; }

/* alt / sign-up CTA */
.cft-login-alt { text-align: center; max-width: 440px; margin: 1.5rem auto 0; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.cft-login-alt > p { font-size: var(--fs-sm); color: var(--gray); margin: 0 0 0.85rem; }
.cft-login-alt-btn { display: inline-block; padding: 0.65rem 1.6rem; border: 2px solid var(--blue); color: var(--blue) !important; border-radius: 8px; font-weight: 600; font-size: var(--fs-md); text-decoration: none !important; transition: background 0.2s, color 0.2s; }
.cft-login-alt-btn:hover { background: var(--blue); color: #fff !important; }
.cft-login-support { font-size: var(--fs-sm); color: var(--gray); margin: 1.25rem 0 0; }

/* ------------------------------------------------------------------------
   Checkout fixes — CC fields are Stripe Element containers (divs, not inputs)
   ------------------------------------------------------------------------ */
.section-checkout .mm-stripe-elements-container {
  width: 100% !important; box-sizing: border-box; min-height: 46px;
  padding: 0.7rem 0.85rem; border: 1px solid var(--border); border-radius: 8px;
  background: #fff; display: block;
}
.section-checkout #mm-checkout-expiration-date .mm-stripe-elements-container { width: 100% !important; }
/* keep both CC grid cells top-aligned and equal */
.section-checkout .cft-co-grid2 { align-items: start; }
.section-checkout .cft-co-grid2 > .mm-formField { margin-bottom: 1rem; }

/* Billing fields the user set to type='hidden' — collapse their wrappers so
   there are no empty gaps or stray dividers */
.section-checkout .cft-co-form .mm-formField:has(> input[type="hidden"]),
.section-checkout .cft-co-form .cft-co-subhead:has(input[type="hidden"]),
.section-checkout .cft-co-form .cft-co-grid2:has(> .mm-formField > input[type="hidden"]) { display: none !important; }

/* Force robust side-by-side field pairs — overrides MM's global
   `.mm-formField { clear:left; float }` which broke the CC row grid */
.section-checkout .cft-co-grid2 { display: flex !important; flex-wrap: nowrap; gap: 0 1rem; align-items: flex-start; }
.section-checkout .cft-co-grid2 > .mm-formField { flex: 1 1 0; min-width: 0; clear: none !important; float: none !important; margin-bottom: 1rem; }
@media (max-width: 480px) {
  .section-checkout .cft-co-grid2 { flex-wrap: wrap; }
  .section-checkout .cft-co-grid2 > .mm-formField { flex: 1 1 100%; }
}

/* Collapse leftover EMPTY billing wrappers (hidden-field cruft: stray divider + gap) */
.section-checkout .cft-co-form .cft-co-subhead:empty,
.section-checkout .cft-co-form .mm-formField:empty { display: none !important; }
.section-checkout .cft-co-form .cft-co-grid2:not(:has(input, select, textarea, .mm-stripe-elements-container)) { display: none !important; }

/* Faint divider inside billing step (separates upper form from Zip/Country) */
.section-checkout .cft-co-rule { border-top: 1px solid var(--border); margin: 0 0 1.5rem; }

/* Balance trailing space in checkout step cards + coupon */
.section-checkout .cft-co-step .mm-formField:has(+ .cft-hidden-fields) { margin-bottom: 0; }
.section-checkout .cft-co-step > .cft-co-grid2:last-child > .mm-formField { margin-bottom: 0; }
.section-checkout .cft-co-coupon p { margin: 0; }
.section-checkout .cft-co-coupon br { display: none; }
.section-checkout .cft-co-coupon .mm-couponSuccessMessage,
.section-checkout .cft-co-coupon .mm-couponErrorMessage { margin: 0; }

/* Summary: drop the two faint rules, keep the bold Total Today line */
.section-checkout .cft-co-prices li { border-bottom: none; }
.section-checkout .cft-co-features { border-top: none; }

/* Even out spacing around the CC/Zip divider */
.section-checkout .cft-co-rule { margin: 1.25rem 0 1.5rem; }

/* Login: kill the wpautop <br> between label and field (was an oversized gap) */
.cft-login-field br { display: none; }

/* Even out the Security Code / Expiration row to match Card Number & Zip/Country */
.section-checkout .cft-co-grid2 { gap: 0 1rem !important; }
.section-checkout .cft-co-grid2 > .mm-formField {
  flex: 1 1 0 !important; min-width: 0 !important;
  margin-left: 0 !important; margin-right: 0 !important;
  padding-left: 0 !important; padding-right: 0 !important;
}
.section-checkout .cft-co-grid2 .mm-stripe-elements-container,
.section-checkout .cft-co-grid2 .mm-formField input,
.section-checkout .cft-co-grid2 .mm-formField select {
  width: 100% !important; margin: 0 !important; box-sizing: border-box !important;
}

/* Smaller product name + price (drop from --fs-lg to --fs-md scale token) */
.section-checkout .cft-co-product { font-size: var(--fs-md) !important; }
.section-checkout .cft-co-total-amt { font-size: var(--fs-md) !important; }

/* Hide the eyebrow when empty so the product name sits at the top of the card */
.section-checkout .cft-co-eyebrow:empty { display: none; }

/* Tidy product name (drop wpautop <br>) */
.section-checkout .cft-co-product br { display: none; }

/* A little breathing room between product name and description */
.section-checkout .cft-co-product { margin-bottom: 0.9rem; }
.section-checkout .cft-co-desc { margin-top: 0; }

/* ==========================================================================
   MY ACCOUNT  —  [MM_Form type='myaccount'], page id 60
   Full brand restyle over MemberMouse defaults (mm-myaccount.css).
   Everything is scoped to .mm-myaccount so no other MM form is touched.
   MM defaults are single class/ID selectors, so .mm-myaccount .x wins on
   specificity; !important is used only where MM itself uses it.
   ========================================================================== */

/* Page container */
.mm-myaccount {
  max-width: 860px;
  margin: 0 auto;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: var(--fs-md);
  color: var(--black);
}

/* Kill MM's global 50%/float layout on blocks; we control columns ourselves */
.mm-myaccount .mm-myaccount-block { width: auto; float: none; }

/* Module = white card */
.mm-myaccount .mm-myaccount-module {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(17, 17, 17, .04), 0 6px 20px rgba(17, 17, 17, .04);
  margin: 0 0 14px;
  padding: 0;
  overflow: hidden;
}

/* Module header: icon + title, with the update button pushed right */
.mm-myaccount .mm-myaccount-module-header {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: 9px 18px;
  background: var(--gray-light);
  border-bottom: 1px solid var(--border);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--black);
  line-height: 1.25;
}

/* Header icons */
.mm-myaccount .mm-icon.blue   { color: var(--blue); }
.mm-myaccount .mm-icon.red    { color: #dc2626; }
.mm-myaccount .mm-icon.purple { color: #7c3aed; }

/* "update" / "view all" links styled as brand pills */
.mm-myaccount .mm-update-button {
  margin-left: auto;
  display: inline-block;
  padding: 6px 14px;
  background: var(--blue);
  color: #fff;
  font-size: .78rem;
  font-weight: 600;
  font-variant: normal;
  line-height: 1.4;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease;
}
.mm-myaccount .mm-update-button:hover { background: var(--blue-dark); color: #fff; text-decoration: none; }

/* Card body */
.mm-myaccount .mm-myaccount-content-wrapper { padding: 6px 18px; }

/* Label + value rows */
.mm-myaccount .mm-myaccount-element {
  display: flex;
  gap: 1rem;
  align-items: center;
  min-height: 1.5rem;
  padding: 6px 0;
  line-height: 1.4;
  border-bottom: 1px solid #f1f4f8;
}
.mm-myaccount .mm-myaccount-element:last-child { border-bottom: 0; }
.mm-myaccount #mm-element-password { margin-bottom: 0 !important; }
.mm-myaccount .mm-myaccount-label {
  flex: 0 0 150px;
  color: var(--gray);
  font-weight: 600;
  font-size: .9rem;
}
.mm-myaccount .mm-myaccount-data {
  flex: 1 1 auto;
  color: var(--black);
  font-size: .9rem;
  word-break: break-word;
}

/* Inline cancel link inside "Membership Level" */
.mm-myaccount .mm-cancel-membership-button {
  margin-left: .5rem;
  font-size: .78rem;
  color: #dc2626;
  text-decoration: none;
}
.mm-myaccount .mm-cancel-membership-button:hover { text-decoration: underline; }

/* Billing + Shipping: two cards side by side (section itself is just a grid) */
.mm-myaccount #mm-billing-shipping-info-section {
  background: none;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 0 0 24px;
}
.mm-myaccount #mm-billing-info-container,
.mm-myaccount #mm-shipping-info-container {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(17, 17, 17, .04), 0 6px 20px rgba(17, 17, 17, .04);
  overflow: hidden;
}

/* Membership-status alert (expired/canceled): soft red instead of MM's loud box */
.mm-myaccount #mm-account-status-section { border-color: #f3c6c6; }
.mm-myaccount #mm-account-status-header  { background: #fdecec; }
.mm-myaccount .mm-error {
  background: #fdecec !important;
  color: #b42318 !important;
  text-shadow: none !important;
  font-size: .95rem !important;
  border-radius: 8px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
}

/* History / subscription / bundle tables: barely-visible borders + roomy cells.
   Astra puts full borders on content tables; strip them (border:0 !important)
   and keep only one light bottom divider. !important beats Astra's specificity. */
.mm-myaccount table {
  width: 100% !important;
  border-collapse: collapse !important;
  border: 0 !important;
  margin: 0 !important;
  font-size: .9rem;
}
.mm-myaccount table th,
.mm-myaccount table td {
  border: 0 !important;
  border-bottom: 1px solid rgba(17, 17, 17, .05) !important;
  padding: 11px 16px !important;
  text-align: left;
  vertical-align: top;
}
.mm-myaccount table thead th {
  background: transparent !important;
  color: var(--gray);
  font-size: .74rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
}

/* Extra breathing room around the Order History table */
.mm-myaccount #mm-order-history-body { padding: 14px 20px; }

/* Responsive: stack columns and rows on narrow screens */
@media (max-width: 700px) {
  .mm-myaccount #mm-billing-shipping-info-section { grid-template-columns: 1fr; }
  .mm-myaccount .mm-myaccount-element { flex-direction: column; gap: .15rem; }
  .mm-myaccount .mm-myaccount-label { flex-basis: auto; }
  .mm-myaccount .mm-myaccount-module-header { flex-wrap: wrap; }
}

/* "Want to cancel?" section (#mm-cancel-section) */
.mm-myaccount .mm-cancel-copy {
  color: var(--gray);
  font-size: .95rem;
  line-height: 1.5;
  margin-bottom: 14px;
}
.mm-myaccount .mm-cancel-cta {
  display: inline-block;
  padding: 9px 18px;
  background: #dc2626;
  color: #fff;
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.4;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease;
}
.mm-myaccount .mm-cancel-cta:hover { background: #b91c1c; color: #fff; text-decoration: none; }

/* ── Home / Get Started (front page) ── */
.cft-home { max-width: 1040px; margin: 0 auto; padding: 3rem 1.5rem 4rem; }
.page .entry-header:has(+ .entry-content .cft-home) { display: none; }
.cft-home-hero { text-align: center; max-width: 680px; margin: 0 auto 3rem; }
.cft-home-eyebrow, .cft-card-label { font-size: var(--fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); margin: 0 0 0.75rem; }
.cft-home-hero h1 { font-size: var(--fs-xl); line-height: 1.1; margin: 0 0 1rem; }
.cft-home-lead { font-size: var(--fs-md); color: var(--gray); line-height: 1.6; margin: 0; }
.cft-home-steps ol { list-style: none; margin: 0 auto 3.5rem; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.cft-home-steps li { display: flex; gap: 0.85rem; align-items: flex-start; }
.cft-step-num { flex: 0 0 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 700; font-size: var(--fs-md); display: flex; align-items: center; justify-content: center; }
.cft-home-steps h3 { font-size: var(--fs-md); font-weight: 700; margin: 0.2rem 0 0.35rem; }
.cft-home-steps p { font-size: var(--fs-md); color: var(--gray); line-height: 1.55; margin: 0; }
.cft-home-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: stretch; }
.cft-home-card { position: relative; background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 2rem 1.75rem; display: flex; flex-direction: column; box-shadow: 0 4px 18px rgba(0,0,0,0.04); }
.cft-home-card--featured { border: 2px solid var(--blue); box-shadow: 0 10px 30px rgba(26,111,212,0.12); }
.cft-card-badge { position: absolute; top: -0.8rem; left: 50%; transform: translateX(-50%); background: var(--blue); color: #fff; font-size: var(--fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 0.3rem 0.9rem; border-radius: 999px; }
.cft-home-card h2 { font-size: var(--fs-lg); line-height: 1.15; margin: 0 0 0.5rem; }
.cft-card-price { font-size: var(--fs-md); font-weight: 700; color: var(--black); margin: 0 0 1rem; }
.cft-card-price span { font-weight: 400; color: var(--gray); }
.cft-home-card p:not(.cft-card-label):not(.cft-card-price) { font-size: var(--fs-md); color: var(--gray); line-height: 1.6; margin: 0 0 1.5rem; }
.cft-card-btn { margin-top: auto; display: block; text-align: center; background: var(--black); color: #fff !important; font-size: var(--fs-md); font-weight: 600; padding: 0.85rem 1rem; border-radius: 8px; text-decoration: none !important; transition: background .2s; }
.cft-card-btn:hover { background: #333; }
.cft-home-card--featured .cft-card-btn { background: var(--blue); }
.cft-home-card--featured .cft-card-btn:hover { background: var(--blue-dark); }
.cft-home-login { text-align: center; font-size: var(--fs-md); color: var(--gray); margin: 2.5rem 0 0; }
.cft-home-login a { color: var(--blue); font-weight: 600; }
@media (max-width: 900px) {
  .cft-home-steps ol { grid-template-columns: 1fr 1fr; }
  .cft-home-options { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
}
@media (max-width: 560px) { .cft-home-steps ol { grid-template-columns: 1fr; } }

/* ── Create Account (page 168) ── */
.page .entry-header:has(+ .entry-content .cft-signup) { display: none; }
.cft-signup { max-width: 480px; margin: 0 auto; padding: 3rem 1.25rem 4rem; }
.cft-signup-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 2.5rem 2.25rem; box-shadow: 0 8px 30px rgba(0,0,0,0.06); }
.cft-signup-eyebrow { font-size: var(--fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); text-align: center; margin: 0 0 0.6rem; }
.cft-signup h1 { font-size: var(--fs-lg); line-height: 1.15; text-align: center; margin: 0 0 0.5rem; }
.cft-signup-lead { font-size: var(--fs-md); color: var(--gray); text-align: center; margin: 0 0 1.75rem; }
.cft-signup-note { font-size: var(--fs-md); background: var(--blue-light); color: var(--blue-dark); border-radius: 8px; padding: 0.75rem 1rem; text-align: center; margin: 0 0 1.25rem; }
.cft-signup .mm-checkoutContainer, .cft-signup .mm_left_column, .cft-signup .mm-checkoutInfoBlock { width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.cft-signup .mm-formField { margin: 0 0 0.85rem !important; float: none !important; clear: none !important; }
.cft-signup-row { display: flex; gap: 0.75rem; }
.cft-signup-row > .mm-formField { flex: 1 1 0; min-width: 0; }
.cft-signup input.mm-textField { width: 100% !important; box-sizing: border-box; height: 48px; padding: 0 0.9rem !important; font-size: var(--fs-md) !important; border: 1px solid var(--border) !important; border-radius: 8px !important; background: #fff !important; box-shadow: none !important; }
.cft-signup input.mm-textField:focus { border-color: var(--blue) !important; outline: 0; box-shadow: 0 0 0 3px var(--blue-light) !important; }
.cft-signup .mm-paymentbuttons { margin: 0.4rem 0 0 !important; padding: 0 !important; border: 0 !important; }
/* both buttons: same size, shape and type */
.cft-signup a.cft-signup-btn,
.cft-signup a.mm-socialLoginGoogleSignup {
  display: flex !important; align-items: center; justify-content: center; gap: 0.6rem;
  width: 100% !important; height: 50px !important; box-sizing: border-box;
  border-radius: 8px !important; font-size: var(--fs-md) !important; font-weight: 600 !important;
  text-decoration: none !important; text-indent: 0 !important; text-shadow: none !important;
  box-shadow: none !important; transition: background .2s, border-color .2s; padding: 0 1rem !important;
}
.cft-signup a.cft-signup-btn { background: var(--blue) !important; background-image: none !important; color: #fff !important; border: 1px solid var(--blue) !important; }
.cft-signup a.cft-signup-btn:hover { background: var(--blue-dark) !important; border-color: var(--blue-dark) !important; }
.cft-signup a.mm-socialLoginGoogleSignup {
  font-size: 0 !important; color: var(--black) !important; border: 1px solid var(--border) !important;
  background: #fff !important; background-image: none !important;
}
.cft-signup a.mm-socialLoginGoogleSignup::before {
  content: ""; width: 18px; height: 18px; flex: 0 0 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23FFC107' d='M43.6 20.5H42V20H24v8h11.3C33.7 32.7 29.2 36 24 36c-6.6 0-12-5.4-12-12s5.4-12 12-12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 12.9 4 4 12.9 4 24s8.9 20 20 20 20-8.9 20-20c0-1.3-.1-2.4-.4-3.5z'/%3E%3Cpath fill='%23FF3D00' d='M6.3 14.7l6.6 4.8C14.7 15.1 19 12 24 12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 16.3 4 9.7 8.3 6.3 14.7z'/%3E%3Cpath fill='%234CAF50' d='M24 44c5.2 0 9.9-2 13.4-5.2l-6.2-5.2C29.2 35.1 26.7 36 24 36c-5.2 0-9.6-3.3-11.3-7.9l-6.5 5C9.5 39.6 16.2 44 24 44z'/%3E%3Cpath fill='%231976D2' d='M43.6 20.5H42V20H24v8h11.3c-.8 2.2-2.2 4.2-4.1 5.6l6.2 5.2C37 39.2 44 34 44 24c0-1.3-.1-2.4-.4-3.5z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.cft-signup a.mm-socialLoginGoogleSignup::after { content: "Continue with Google"; font-size: var(--fs-md); font-weight: 600; }
.cft-signup a.mm-socialLoginGoogleSignup:hover { background: var(--gray-light) !important; border-color: #cbd5e1 !important; }
.cft-signup-or { display: flex; align-items: center; gap: 0.75rem; color: var(--gray); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.08em; margin: 1.25rem 0; }
.cft-signup-or::before, .cft-signup-or::after { content: ""; flex: 1; border-top: 1px solid var(--border); }
.cft-signup-login { text-align: center; font-size: var(--fs-md); color: var(--gray); margin: 1.75rem 0 0; }
.cft-signup-login a { color: var(--blue); font-weight: 600; }
.cft-signup .mm-error, .cft-signup [class*="mm-form-message"] { font-size: var(--fs-md); border-radius: 8px; }
@media (max-width: 480px) { .cft-signup-card { padding: 2rem 1.25rem; } .cft-signup-row { flex-direction: column; gap: 0; } }
.cft-signup { max-width: 480px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; }
.cft-signup .mm-checkoutContainer { max-width: none !important; }
@media (max-width: 480px) { .cft-signup-row > .mm-formField { flex: none; width: 100%; } }

/* ── Account Created / intake form (page 180, CF7 form 178) ── */
.page .entry-header:has(+ .entry-content .cft-intake) { display: none; }
.cft-intake { max-width: 560px !important; width: 100%; margin: 0 auto !important; padding: 3rem 1.25rem 4rem; }
.cft-intake-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 2.5rem 2.25rem; box-shadow: 0 8px 30px rgba(0,0,0,0.06); }
.cft-intake-eyebrow { font-size: var(--fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); text-align: center; margin: 0 0 0.6rem; }
.cft-intake h1 { font-size: var(--fs-lg); line-height: 1.15; text-align: center; margin: 0 0 0.5rem; }
.cft-intake-lead { font-size: var(--fs-md); color: var(--gray); text-align: center; line-height: 1.6; margin: 0 0 1.75rem; }
.cft-intake .wpcf7 p { margin: 0 0 1.1rem; }
.cft-intake .cft-field { display: block; margin: 0; }
.cft-intake .cft-field > span:first-child { display: block; font-size: var(--fs-md); font-weight: 600; color: var(--black); margin-bottom: 0.4rem; }
.cft-intake .cft-field em { font-style: normal; font-weight: 400; color: var(--gray); }
.cft-intake .cft-field br { display: none; }
.cft-intake .wpcf7-form-control-wrap { display: block; }
.cft-intake input.wpcf7-text, .cft-intake input.wpcf7-url, .cft-intake select.wpcf7-select, .cft-intake textarea.wpcf7-textarea {
  width: 100%; box-sizing: border-box; font-size: var(--fs-md); font-family: inherit; color: var(--black);
  border: 1px solid var(--border); border-radius: 8px; background: #fff; padding: 0 0.9rem; box-shadow: none;
}
.cft-intake input.wpcf7-text, .cft-intake input.wpcf7-url, .cft-intake select.wpcf7-select { height: 48px; }
.cft-intake select.wpcf7-select { appearance: none; -webkit-appearance: none; padding-right: 2.5rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 0.9rem center; }
.cft-intake textarea.wpcf7-textarea { min-height: 140px; height: 140px; padding: 0.75rem 0.9rem; line-height: 1.5; resize: vertical; }
.cft-intake input.wpcf7-text:focus, .cft-intake input.wpcf7-url:focus, .cft-intake select.wpcf7-select:focus, .cft-intake textarea.wpcf7-textarea:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 3px var(--blue-light); }
.cft-intake .wpcf7-not-valid { border-color: #dc2626 !important; }
.cft-intake .wpcf7-not-valid-tip { font-size: var(--fs-sm); color: #dc2626; margin-top: 0.35rem; }
.cft-intake input.cft-intake-btn {
  display: block; width: 100%; height: 50px; margin-top: 0.4rem; border: 1px solid var(--blue); border-radius: 8px;
  background: var(--blue); color: #fff; font-size: var(--fs-md); font-weight: 600; cursor: pointer; transition: background .2s, border-color .2s;
}
.cft-intake input.cft-intake-btn:hover { background: var(--blue-dark); border-color: var(--blue-dark); }
.cft-intake .wpcf7-spinner { display: block; margin: 0.75rem auto 0; }
.cft-intake .wpcf7 form .wpcf7-response-output { margin: 1.25rem 0 0; padding: 0.85rem 1rem; border-radius: 8px; font-size: var(--fs-md); text-align: center; border-width: 1px; }
.cft-intake .wpcf7 form.sent .wpcf7-response-output { background: #ecfdf5; border-color: #10b981; color: #065f46; }
.cft-intake .wpcf7 form.invalid .wpcf7-response-output, .cft-intake .wpcf7 form.failed .wpcf7-response-output { background: #fef2f2; border-color: #f87171; color: #991b1b; }
@media (max-width: 480px) { .cft-intake-card { padding: 2rem 1.25rem; } }
.cft-intake .wpcf7-spinner { display: none !important; }
.cft-intake .wpcf7 form.submitting .wpcf7-spinner { display: block !important; }
.cft-intake .wpcf7 form.init .wpcf7-response-output, .cft-intake .wpcf7 form.resetting .wpcf7-response-output, .cft-intake .wpcf7 form.submitting .wpcf7-response-output { display: none; }

/* ── Login page: Google button matches Log In ── */
.cft-login-google a.mm-socialLoginGoogleLogin {
  display: flex !important; align-items: center; justify-content: center; gap: 0.6rem;
  width: 100% !important; height: 46px !important; box-sizing: border-box; padding: 0 1rem !important;
  border: 1px solid var(--border) !important; border-radius: 8px !important; background: #fff !important; background-image: none !important;
  font-size: 0 !important; text-indent: 0 !important; color: var(--black) !important; text-decoration: none !important;
  box-shadow: none !important; transition: background .2s, border-color .2s;
}
.cft-login-google a.mm-socialLoginGoogleLogin::before { content: ""; width: 18px; height: 18px; flex: 0 0 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23FFC107' d='M43.6 20.5H42V20H24v8h11.3C33.7 32.7 29.2 36 24 36c-6.6 0-12-5.4-12-12s5.4-12 12-12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 12.9 4 4 12.9 4 24s8.9 20 20 20 20-8.9 20-20c0-1.3-.1-2.4-.4-3.5z'/%3E%3Cpath fill='%23FF3D00' d='M6.3 14.7l6.6 4.8C14.7 15.1 19 12 24 12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 16.3 4 9.7 8.3 6.3 14.7z'/%3E%3Cpath fill='%234CAF50' d='M24 44c5.2 0 9.9-2 13.4-5.2l-6.2-5.2C29.2 35.1 26.7 36 24 36c-5.2 0-9.6-3.3-11.3-7.9l-6.5 5C9.5 39.6 16.2 44 24 44z'/%3E%3Cpath fill='%231976D2' d='M43.6 20.5H42V20H24v8h11.3c-.8 2.2-2.2 4.2-4.1 5.6l6.2 5.2C37 39.2 44 34 44 24c0-1.3-.1-2.4-.4-3.5z'/%3E%3C/svg%3E") no-repeat center / contain; }
.cft-login-google a.mm-socialLoginGoogleLogin::after { content: "Continue with Google"; font-size: var(--fs-md); font-weight: 700; }
.cft-login-google a.mm-socialLoginGoogleLogin:hover { background: var(--gray-light) !important; border-color: #cbd5e1 !important; }
.cft-login-or { display: flex; align-items: center; gap: 0.75rem; color: var(--gray); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.08em; margin: 1rem 0; }
.cft-login-or::before, .cft-login-or::after { content: ""; flex: 1; border-top: 1px solid var(--border); }

/* ── Access Required (MM error core page 48) uses the login card styles ── */
.page-id-48 .entry-title,
.page-id-48 .ast-breadcrumbs-wrapper { display: none; }
.page-id-48 #content.site-content { background: var(--gray-light); }
.cft-access-msg { font-size: var(--fs-sm); color: #991b1b; background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 0.7rem 0.9rem; text-align: center; margin: 0 0 1.25rem; line-height: 1.5; }
.cft-access-msg:empty, .cft-access-msg:not(:has(*)):not(:has(:not(br))):empty { display: none; }
.cft-access .cft-login-btn a.mm-button { text-decoration: none !important; }
.cft-access .cft-login-alt p { font-size: var(--fs-sm); color: var(--gray); margin: 0 0 0.75rem; }
.cft-login-wrap.cft-access { max-width: 440px !important; width: 100%; margin: 2.5rem auto !important; }

/* ── My Account (page 60): hide the WordPress page title ── */
.page-id-60 .entry-header,
.page-id-60 .ast-breadcrumbs-wrapper { display: none; }

/* ── Member Dashboard (page 44) ── */
.page-id-44 .entry-header, .page-id-44 .ast-breadcrumbs-wrapper { display: none; }
.page-id-44 #content.site-content { background: var(--gray-light); }
.cft-dash { max-width: 760px !important; width: 100%; margin: 0 auto !important; padding: 3rem 1.25rem 4rem; }
.cft-dash-hello { margin-bottom: 1.75rem; }
.cft-dash-eyebrow, .cft-dash-label { font-size: var(--fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); margin: 0 0 0.5rem; }
.cft-dash-hello h1 { font-size: var(--fs-lg); line-height: 1.15; margin: 0 0 0.4rem; }
.cft-dash-lead { font-size: var(--fs-md); color: var(--gray); margin: 0; }
.cft-dash-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 2rem 2rem 2.25rem; box-shadow: 0 8px 30px rgba(0,0,0,0.06); margin-bottom: 1.5rem; }
/* status tracker */
.cft-track { list-style: none; margin: 0.75rem 0 1.75rem; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); position: relative; }
.cft-track li { position: relative; text-align: center; font-size: var(--fs-sm); color: var(--gray); padding-top: 1.9rem; margin: 0; }
.cft-track li::before { content: ""; position: absolute; top: 0.6rem; left: -50%; width: 100%; height: 2px; background: var(--border); z-index: 0; }
.cft-track li:first-child::before { display: none; }
.cft-track li span { position: absolute; top: 0.15rem; left: 50%; transform: translateX(-50%); width: 1.05rem; height: 1.05rem; border-radius: 50%; background: #fff; border: 2px solid var(--border); z-index: 1; box-sizing: border-box; }
/* done + current states */
.cft-track .is-done, .cft-track .is-current { color: var(--black); }
.cft-track .is-done span { background: var(--blue); border-color: var(--blue); }
.cft-track .is-done::before, .cft-track .is-current::before { background: var(--blue); }
.cft-track .is-current { font-weight: 700; }
.cft-track .is-current span { background: #fff; border: 4px solid var(--blue); box-shadow: 0 0 0 4px var(--blue-light); }
/* map stored status → states (default = Received) */
.cft-track .s-received { color: var(--black); font-weight: 700; }
.cft-track .s-received span { border: 4px solid var(--blue); box-shadow: 0 0 0 4px var(--blue-light); }
.cft-track[data-status="reviewing" i] .s-received,
.cft-track[data-status="quoted" i] :is(.s-received,.s-reviewing),
.cft-track[data-status="working" i] :is(.s-received,.s-reviewing,.s-quoted),
.cft-track[data-status="done" i] :is(.s-received,.s-reviewing,.s-quoted,.s-working,.s-done) { color: var(--black); font-weight: 400; }
.cft-track[data-status="reviewing" i] .s-received span,
.cft-track[data-status="quoted" i] :is(.s-received,.s-reviewing) span,
.cft-track[data-status="working" i] :is(.s-received,.s-reviewing,.s-quoted) span,
.cft-track[data-status="done" i] :is(.s-received,.s-reviewing,.s-quoted,.s-working,.s-done) span { background: var(--blue); border: 2px solid var(--blue); box-shadow: none; }
.cft-track[data-status="reviewing" i] .s-reviewing,
.cft-track[data-status="quoted" i] .s-quoted,
.cft-track[data-status="working" i] .s-working,
.cft-track[data-status="done" i] .s-done { color: var(--black); font-weight: 700; }
.cft-track[data-status="reviewing" i] .s-reviewing span,
.cft-track[data-status="quoted" i] .s-quoted span,
.cft-track[data-status="working" i] .s-working span { background: #fff; border: 4px solid var(--blue); box-shadow: 0 0 0 4px var(--blue-light); }
.cft-track[data-status="done" i] .s-done span { box-shadow: 0 0 0 4px var(--blue-light); }
.cft-track[data-status="reviewing" i] .s-reviewing::before,
.cft-track[data-status="quoted" i] :is(.s-reviewing,.s-quoted)::before,
.cft-track[data-status="working" i] :is(.s-reviewing,.s-quoted,.s-working)::before,
.cft-track[data-status="done" i] li::before { background: var(--blue); }
/* next step box */
.cft-dash-next { background: var(--gray-light); border-radius: 12px; padding: 1.25rem 1.4rem; }
.cft-dash-next h2 { font-size: var(--fs-md); font-weight: 700; margin: 0 0 0.35rem; }
.cft-dash-next p { font-size: var(--fs-md); color: var(--gray); line-height: 1.6; margin: 0; }
.cft-dash-next p a { color: var(--blue); font-weight: 600; }
.cft-dash-btn { display: inline-block; margin-top: 1rem; background: var(--blue); color: #fff !important; font-size: var(--fs-md); font-weight: 600; padding: 0.75rem 1.4rem; border-radius: 8px; text-decoration: none !important; transition: background .2s; }
.cft-dash-btn:hover { background: var(--blue-dark); }
/* quick actions */
.cft-dash-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.cft-dash-actions a { display: block; background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 1.1rem 1.1rem 1.2rem; text-decoration: none !important; transition: border-color .2s, transform .2s, box-shadow .2s; }
.cft-dash-actions a:hover { border-color: var(--blue); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(26,111,212,0.10); }
.cft-dash-actions strong { display: block; font-size: var(--fs-md); color: var(--black); margin-bottom: 0.25rem; }
.cft-dash-actions span { display: block; font-size: var(--fs-sm); color: var(--gray); line-height: 1.45; }
@media (max-width: 760px) { .cft-dash-actions { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) {
  .cft-dash-card { padding: 1.5rem 1.1rem; }
  .cft-track li { font-size: 0.7rem; }
}
.cft-dash-next h2 { font-size: var(--fs-md) !important; line-height: 1.35 !important; letter-spacing: 0 !important; }
.cft-dash, .cft-dash * { box-sizing: border-box; }
.cft-intake-back { text-align: center; font-size: var(--fs-md); margin: 1.5rem 0 0; }
.cft-intake-back a { color: var(--blue); font-weight: 600; text-decoration: none; }
.cft-intake-back a:hover { text-decoration: underline; }
.cft-intake-back a { text-decoration: none !important; }
.cft-signup a.cft-signup-btn--link { margin-top: 0.5rem; }
