/* ==========================================================
   CURA Platform — Widget & Component Styles
   Source of truth: /skills/design-tokens.md
   ========================================================== */

/* --- CSS Variables (Design Tokens) --- */
:root {
    /* Backgrounds */
    --cura-bg-page: #F2EEE9;
    --cura-bg-card: #FFFFFF;
    --cura-bg-tan: #DCC8B9;
    --cura-bg-tan-subtle: #DCC8B933;
    --cura-bg-sage: #EFECDE;

    /* Text */
    --cura-text-primary: #000000;
    --cura-text-dark: #191919;
    --cura-text-secondary: #666666;
    --cura-text-muted: #5F5F5F;
    --cura-text-white: #FFFFFF;

    /* Accents */
    --cura-accent-blue: #1574D2;
    --cura-accent-teal: #3DCBB1;
    --cura-accent-gold: #FBB03B;

    /* Borders */
    --cura-border: #E1E1E1;
    --cura-border-inactive: #ECECEC;

    /* States */
    --cura-success: #4A7C59;
    --cura-error: #8B3A3A;
    --cura-warning: #B8923A;

    /* Shadows */
    --cura-shadow-sm: 0 2px 4px -2px rgba(0,0,0,0.12);
    --cura-shadow-md: 0 14px 42px rgba(8,15,52,0.06);
    --cura-shadow-lg: 0 8px 18px rgba(0,0,0,0.10), 0 33px 33px rgba(0,0,0,0.09), 0 73px 44px rgba(0,0,0,0.05), 0 130px 52px rgba(0,0,0,0.01), 0 203px 57px rgba(0,0,0,0.00);

    /* Transitions */
    --cura-transition-fast: 200ms ease;
    --cura-transition-base: 300ms ease;
    --cura-transition-slow: 500ms ease;
}

/* ==========================================================
   GLOBAL FIXES
   ========================================================== */

/* Header spacer — used in all CURA templates to prevent header overlap.
   Lower than the 130px we used to guarantee no overlap on every browser
   ─ now matches the real visible header height + a small buffer. */
.cura-header-spacer {
    height: 110px;
}

@media (max-width: 767px) {
    .cura-header-spacer { height: 70px; }
}

/* Header dark mode now handled in child theme style.css + functions.php JS */

/* ==========================================================
   GLOBAL COLOR OVERRIDE — Kill Elementor default colors
   Ensures CURA components NEVER show Elementor's default
   pink/rose/accent colors. All CURA elements use our tokens.
   ========================================================== */

/* Override Elementor's global CSS variables for CURA components */
.cura-plans,
.cura-experts,
.cura-library,
.cura-dashboard,
.cura-cdash,
.cura-fdash,
.cura-booking-page,
.cura-booking-calendar,
.cura-profile,
.cura-content-single,
.cura-access-gate,
.cura-auth {
    --e-global-color-primary: #000000 !important;
    --e-global-color-secondary: #191919 !important;
    --e-global-color-text: #666666 !important;
    --e-global-color-accent: #000000 !important;
}

/* Force all buttons/links inside CURA components to use CURA colors */
.cura-plans button,
.cura-plans a,
.cura-experts button,
.cura-library button,
.cura-dashboard button,
.cura-dashboard a.cura-dashboard__join-btn,
.cura-dashboard a.cura-dashboard__cta-btn {
    color: inherit;
}

/* Checkmarks/icons — use CURA blue, not Elementor pink */
.cura-plans__feature-icon {
    color: var(--cura-accent-blue) !important;
}

/* Remove old padding-top approach — now using .cura-header-spacer in templates */
.cura-facilitators-page,
.cura-facilitator-profile,
.cura-dashboard,
.cura-library,
.cura-plans,
.cura-access-gate,
.cura-booking-page,
.cura-profile {
    padding-top: 0 !important;
}

/* Consistent vertical breathing room across CURA plugin pages.
   Top: small (the .cura-header-spacer covers the fixed header).
   Bottom: 100px so content never touches the footer. */
.cura-experts,
.cura-library,
.cura-profile,
.cura-plans,
.cura-facilitators-page,
.cura-facilitator-profile {
    padding: 16px 40px 100px;
    max-width: 1440px;
    margin: 0 auto;
    box-sizing: border-box;
}
@media (max-width: 767px) {
    .cura-experts,
    .cura-library,
    .cura-profile,
    .cura-plans,
    .cura-facilitators-page,
    .cura-facilitator-profile {
        padding: 16px 20px 60px;
    }
}
/* When wrapped in dashboard shell, kill the duplicate padding (the shell already has it) */
.cura-cdash .cura-experts,
.cura-cdash .cura-library,
.cura-cdash .cura-profile,
.cura-cdash .cura-plans,
.cura-cdash .cura-facilitators-page,
.cura-cdash .cura-facilitator-profile {
    padding: 0;
    max-width: none;
    margin: 0;
}

/* (Old booking-calendar override block lived here. Removed because the
 * full styling now lives further down in the BOOKING CALENDAR section
 * and these duplicated rules were forcing dark text on hover/selected
 * states, making the white text on dark background invisible.) */

/* ==========================================================
   PLANS & PRICING
   ========================================================== */

.cura-plans {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px;
    font-family: 'Inter', sans-serif;
    background: transparent; /* Inherits Elementor section background */
}

.cura-plans__toggle {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-bottom: 40px;
    background: #FFFFFF;
    border-radius: 9999px;
    padding: 4px;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.cura-plans__period {
    padding: 12px 32px;
    border: none !important;
    border-radius: 9999px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    background: transparent !important;
    color: var(--cura-text-secondary) !important;
    transition: all var(--cura-transition-fast);
    outline: none !important;
    box-shadow: none !important;
}

.cura-plans__period:focus,
.cura-plans__period:active {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}

.cura-plans__period--active {
    background: #1a1a1a !important;
    color: #FFFFFF !important;
}

.cura-plans__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    align-items: start;
}

.cura-plans__card {
    background: #FFFFFF;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
}

.cura-plans__card--highlighted {
    background: #1a1a1a;
    border-radius: 28px;
    padding: 10px 4px 4px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
    margin-top: -24px;
}

.cura-plans__card-badge {
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    color: var(--cura-text-white);
    letter-spacing: 1.6px;
    text-transform: uppercase;
    padding: 0 0 10px;
}

.cura-plans__card-inner {
    background: var(--cura-bg-card);
    border-radius: 24px;
    padding: 30px 32px 32px;
}

.cura-plans__card:not(.cura-plans__card--highlighted) .cura-plans__card-inner {
    padding: 30px 32px 32px;
}

.cura-plans__card-name {
    font-size: 20px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 8px;
}

.cura-plans__card-price {
    margin-bottom: 12px;
}

.cura-plans__price-amount {
    font-size: 38px;
    font-weight: 800;
    color: #1a1a1a;
    letter-spacing: -1.28px;
}

.cura-plans__price-period {
    font-size: 13px;
    font-weight: 600;
    color: var(--cura-text-secondary);
    margin-left: 4px;
}

.cura-plans__card-description {
    font-size: 14px;
    color: var(--cura-text-secondary);
    line-height: 1.45;
    margin: 0 0 20px;
}

.cura-plans__features {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.cura-plans__feature {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    font-size: 13px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: -0.3px;
}

.cura-plans__feature--inactive {
    color: var(--cura-border-inactive);
    font-weight: 400;
}

.cura-plans__feature-icon {
    font-size: 14px;
    flex-shrink: 0;
}

.cura-plans__feature:not(.cura-plans__feature--inactive) .cura-plans__feature-icon {
    color: var(--cura-accent-blue);
}

.cura-plans__cta {
    display: block;
    width: 100%;
    padding: 12px 24px;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    border: none;
    border-radius: 9999px;
    cursor: pointer;
    transition: background var(--cura-transition-fast);
    background: #000000 !important;
    color: #FFFFFF !important;
}

.cura-plans__cta:hover { background: #191919 !important; color: #FFFFFF !important; }

.cura-plans__cta--outline {
    background: transparent;
    color: var(--cura-text-primary);
    border: 1px solid var(--cura-border);
}
.cura-plans__cta--outline:hover { background: #f5f5f5; }

/* ==========================================================
   PLANS WIDGET (Elementor) — uses cura-plans-* classes
   Same visual design as shortcode but different class names
   ========================================================== */

.cura-plans-wrapper {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    font-family: 'Inter', sans-serif;
    --e-global-color-primary: #000000 !important;
    --e-global-color-accent: #000000 !important;
}

/* Kill ALL Elementor inherited colors inside plans */
.cura-plans-wrapper *,
.cura-plans-wrapper *:focus,
.cura-plans-wrapper *:active {
    outline-color: #000000 !important;
    border-color: transparent;
}

.cura-plans-wrapper button,
.cura-plans-wrapper a {
    outline: none !important;
    box-shadow: none !important;
}

.cura-plans-toggle {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-bottom: 40px;
    background: #FFFFFF;
    border-radius: 9999px;
    padding: 4px;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.cura-plans-toggle__btn {
    padding: 12px 32px;
    border: none !important;
    border-radius: 9999px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    background: transparent !important;
    color: #666666 !important;
    transition: all 200ms ease;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none;
}

.cura-plans-toggle__btn:hover {
    color: #1a1a1a !important;
}

.cura-plans-toggle__btn:focus,
.cura-plans-toggle__btn:active {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}

.cura-plans-toggle__btn.is-active {
    background: #1a1a1a !important;
    color: #FFFFFF !important;
    border: none !important;
}

.cura-plans-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    align-items: start;
    max-width: 700px;
    margin: 0 auto;
}

/* Regular card */
.cura-plans-card {
    background: #FFFFFF !important;
    border-radius: 24px;
    padding: 30px 32px 32px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
}

/* Highlighted card — black outer wrapper with white inner card */
.cura-plans-card-outer {
    background: #1a1a1a !important;
    border-radius: 28px;
    padding: 0 4px 4px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
    margin-top: -24px;
}

.cura-plans-card--inner {
    border-radius: 24px;
}

/* Also make the toggle border transparent */
.cura-plans-toggle {
    border: none !important;
}

.cura-plans-card__badge {
    display: block;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    color: #FFFFFF !important;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 8px 20px 12px;
}

.cura-plans-card__name {
    font-size: 20px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 8px;
}

.cura-plans-card__description {
    font-size: 14px;
    color: #666666;
    line-height: 1.45;
    margin: 0 0 16px;
}

.cura-plans-card__price {
    margin-bottom: 12px;
}

.cura-plans-card__price-amount {
    font-size: 38px;
    font-weight: 800;
    color: #1a1a1a;
    letter-spacing: -1.28px;
}

.cura-plans-card__price-period {
    font-size: 13px;
    font-weight: 600;
    color: #666666;
    margin-left: 4px;
}

.cura-plans-card__sessions {
    font-size: 13px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 16px;
}

.cura-plans-card__features {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.cura-plans-card__feature {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    font-size: 13px;
    font-weight: 700;
    color: #1a1a1a;
}

.cura-plans-card__feature.is-inactive {
    color: #ECECEC;
    font-weight: 400;
}

.cura-plans-card__feature-icon {
    font-size: 14px;
    flex-shrink: 0;
    color: #1574D2 !important;
}

.cura-plans-card__feature.is-inactive .cura-plans-card__feature-icon {
    color: #ECECEC !important;
}

.cura-plans-card__btn {
    display: block;
    width: 100%;
    padding: 12px 24px;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    border: none;
    border-radius: 9999px;
    cursor: pointer;
    background: #000000 !important;
    color: #FFFFFF !important;
    transition: background 200ms ease;
    box-sizing: border-box;
}

.cura-plans-card__btn:hover {
    background: #191919 !important;
    color: #FFFFFF !important;
}

@media (max-width: 767px) {
    .cura-plans-grid { grid-template-columns: 1fr; }
    .cura-plans-card.is-highlighted { margin-top: 0; }
}

/* ==========================================================
   CONTENT LIBRARY
   ========================================================== */

.cura-library {
    max-width: 1240px;
    margin: 0 auto;
    font-family: 'Inter', sans-serif;
}

.cura-library__toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 32px;
    flex-wrap: wrap;
}

.cura-library__search {
    padding: 8px 16px;
    border: 1px solid var(--cura-border);
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    min-width: 200px;
    background: var(--cura-bg-card);
    color: var(--cura-text-primary);
    transition: border-color 200ms ease;
}

.cura-library__search:focus {
    outline: none;
    border-color: var(--cura-text-primary);
}

.cura-library__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.cura-library__filter {
    padding: 8px 20px;
    border: 1px solid var(--cura-border);
    border-radius: 9999px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    background: transparent;
    color: var(--cura-text-primary);
    cursor: pointer;
    transition: all var(--cura-transition-fast);
}

.cura-library__filter--active {
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-color: var(--cura-text-primary);
}

.cura-library__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.cura-library__card {
    background: var(--cura-bg-card);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--cura-shadow-md);
    transition: transform var(--cura-transition-slow);
}

.cura-library__card:hover { transform: translateY(-4px); }

.cura-library__card-image {
    position: relative;
    height: 160px;
    background: var(--cura-bg-tan);
    overflow: hidden;
}

.cura-library__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cura-library__lock {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 28px;
    height: 28px;
    background: rgba(0,0,0,0.5);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.cura-library__card-body { padding: 16px 20px 20px; }

.cura-library__card-meta {
    font-size: 14px;
    font-weight: 700;
    color: var(--cura-text-secondary);
    margin: 0 0 6px;
}

.cura-library__card-title {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 6px;
    line-height: 1.3;
}

.cura-library__card-title a {
    color: var(--cura-text-primary);
    text-decoration: none;
}

.cura-library__card-excerpt {
    font-size: 14px;
    color: var(--cura-text-muted);
    margin: 0 0 8px;
    line-height: 1.45;
}

.cura-library__card-facilitator {
    font-size: 14px;
    color: var(--cura-text-secondary);
    margin: 0 0 10px;
}

.cura-library__badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 500;
}

.cura-library__badge--free {
    background: rgba(74,124,89,0.12);
    color: var(--cura-success);
}

.cura-library__badge--membership {
    background: var(--cura-bg-tan-subtle);
    color: var(--cura-text-secondary);
}

/* ==========================================================
   MEMBER DASHBOARD
   ========================================================== */

/* Client dashboard with sidebar */
.cura-cdash {
    display: flex;
    align-items: flex-start;
    gap: 32px;
    font-family: 'Inter', sans-serif;
    max-width: 1440px;
    margin: 0 auto;
    padding: 16px 40px 100px;
}

/* Sidebar = self-contained rounded card (NOT sticky, NOT full height) */
.cura-cdash__sidebar {
    width: 280px;
    flex-shrink: 0;
    background: #FFFFFF;
    border-radius: 24px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.04);
    padding: 32px 20px;
    display: flex;
    flex-direction: column;
}

.cura-cdash__sidebar-user {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.cura-cdash__avatar {
    width: 96px !important;
    height: 96px !important;
    border-radius: 50% !important;
    object-fit: cover;
    object-position: center;
    margin-bottom: 14px;
    background: #F2EEE9;
    border: 2px solid rgba(0, 0, 0, 0.04);
    /* Force aspect ratio in case the source image is not square */
    aspect-ratio: 1 / 1;
    overflow: hidden;
    display: block;
    max-width: 96px;
}

.cura-cdash__user-name {
    font-size: 18px;
    font-weight: 700;
    color: var(--cura-text-primary);
}

.cura-cdash__nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 0 0 auto; /* don't stretch — keep card compact */
}

.cura-cdash__nav-link {
    display: flex !important;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    font-size: 15px;
    font-weight: 500;
    color: var(--cura-text-secondary);
    text-decoration: none;
    border-radius: 12px;
    transition: all 200ms ease;
}

.cura-cdash__nav-link:hover { background: #F5F1EC; color: var(--cura-text-primary); }
.cura-cdash__nav-link--active { background: #F2EEE9; color: var(--cura-text-primary); font-weight: 700; }
/* Logout sits as just another item in the list — no margin-top: auto, no separator */
.cura-cdash__nav-link--logout { color: var(--cura-text-secondary); }
.cura-cdash__nav-link--logout:hover { background: #F5F1EC; color: var(--cura-text-primary); }

.cura-cdash__nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}
.cura-cdash__nav-icon svg {
    width: 22px;
    height: 22px;
    display: block;
}
/* Icons inherit current text color */
.cura-cdash__nav-icon svg [stroke="black"] { stroke: currentColor; }
.cura-cdash__nav-icon svg [fill="black"]   { fill: currentColor; }

.cura-cdash__main {
    flex: 1;
    padding: 0;
    min-width: 0;
}

.cura-cdash__title {
    font-size: 28px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 0 0 24px;
}

.cura-cdash__section-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 32px 0 16px;
}

.cura-cdash__membership-card {
    background: var(--cura-bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--cura-shadow-sm);
    margin-bottom: 24px;
}

.cura-cdash__membership-plan {
    font-size: 24px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin-bottom: 8px;
}

.cura-cdash__membership-detail {
    font-size: 14px;
    color: var(--cura-text-secondary);
    margin-top: 8px;
}

/* Legacy .cura-dashboard classes still used in booking cards */
.cura-dashboard {
    max-width: 900px;
    margin: 0 auto;
    padding: 40px 20px;
    font-family: 'Inter', sans-serif;
}

.cura-dashboard__greeting {
    font-size: 28px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 0 0 32px;
}

.cura-dashboard__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.cura-dashboard__stat {
    background: var(--cura-bg-card);
    border-radius: 12px;
    padding: 20px;
    box-shadow: var(--cura-shadow-md);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cura-dashboard__stat-value {
    font-size: 24px;
    font-weight: 700;
    color: var(--cura-text-primary);
}

.cura-dashboard__stat-label {
    font-size: 13px;
    color: var(--cura-text-secondary);
}

.cura-dashboard__next-booking {
    background: var(--cura-bg-card);
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 32px;
    box-shadow: var(--cura-shadow-sm);
}

.cura-dashboard__next-booking h3 {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 12px;
}

.cura-dashboard__next-booking p {
    font-size: 14px;
    color: var(--cura-text-secondary);
    margin: 0 0 8px;
}

.cura-dashboard__join-btn {
    display: inline-block;
    padding: 10px 24px;
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-radius: 9999px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    margin-top: 12px;
    transition: background var(--cura-transition-fast);
}

.cura-dashboard__join-btn:hover { background: var(--cura-text-dark); color: var(--cura-text-white); }

/* Section title */
.cura-dashboard__section-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 32px 0 16px;
}

/* Booking cards */
.cura-dashboard__booking-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: var(--cura-bg-card);
    border-radius: 12px;
    margin-bottom: 10px;
    box-shadow: var(--cura-shadow-sm);
}

.cura-dashboard__booking-card--past { opacity: 0.7; }

.cura-dashboard__booking-info { flex: 1; }
.cura-dashboard__booking-info strong { display: block; font-size: 15px; color: var(--cura-text-primary); }
.cura-dashboard__booking-info span { font-size: 13px; color: var(--cura-text-secondary); }

.cura-dashboard__booking-time { text-align: right; min-width: 100px; }
.cura-dashboard__booking-time span { display: block; font-size: 13px; color: var(--cura-text-secondary); }
.cura-dashboard__booking-time span:first-child { font-weight: 600; color: var(--cura-text-primary); }

.cura-dashboard__booking-badge {
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 6px;
}
.cura-dashboard__booking-badge--confirmed { background: rgba(74,124,89,0.12); color: var(--cura-success); }
.cura-dashboard__booking-badge--completed { background: rgba(74,124,89,0.12); color: var(--cura-success); }
.cura-dashboard__booking-badge--cancelled { background: rgba(139,58,58,0.1); color: var(--cura-error); }

/* Actions column (Join + Cancel) on upcoming cards */
.cura-dashboard__booking-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

/* Subtle text-link cancel — anchor element so Elementor button defaults
   never apply. Aggressive resets to win against any theme overrides. */
a.cura-dashboard__cancel-link,
.cura-dashboard__cancel-link {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--cura-text-muted) !important;
    cursor: pointer;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.4 !important;
    transition: color var(--cura-transition-fast);
}

a.cura-dashboard__cancel-link:hover,
.cura-dashboard__cancel-link:hover {
    background: transparent !important;
    color: var(--cura-text-primary) !important;
}

/* ==========================================================
   CURA MODAL — used for confirmation dialogs (cancel booking, etc.)
   ========================================================== */
.cura-modal[hidden] { display: none; }

.cura-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.cura-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
}

.cura-modal__dialog {
    position: relative;
    background: var(--cura-bg-card);
    border-radius: 20px;
    padding: 32px 32px 24px;
    max-width: 440px;
    width: 100%;
    box-shadow: 0 30px 80px rgba(0,0,0,0.25);
    font-family: 'Inter', sans-serif;
    color: var(--cura-text-primary);
}

.cura-modal__title {
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 600;
    color: var(--cura-text-primary);
}

.cura-modal__body {
    margin: 0 0 20px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--cura-text-secondary);
}

.cura-modal__error {
    margin: 0 0 16px;
    padding: 10px 14px;
    background: rgba(139,58,58,0.08);
    color: var(--cura-error);
    border-radius: 10px;
    font-size: 13px;
}

.cura-modal__policy {
    margin: 0 0 20px;
    padding-top: 14px;
    border-top: 1px solid var(--cura-border);
    font-size: 12px;
    line-height: 1.5;
    color: var(--cura-text-muted);
}

/* ==========================================================
   CLIENT DASHBOARD — Settings & My Calendar tabs
   ========================================================== */

.cura-cdash__notice {
    padding: 12px 16px;
    background: rgba(74,124,89,0.10);
    color: var(--cura-success);
    border-radius: 10px;
    margin-bottom: 20px;
    font-size: 14px;
}
.cura-cdash__notice--success {
    background: rgba(74, 124, 89, 0.10);
    color: var(--cura-success);
}
.cura-cdash__notice--error {
    background: rgba(184, 51, 51, 0.10);
    color: #B83333;
}

.cura-cdash__avatar-row {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.cura-cdash__avatar-preview {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    background: #F2EEE9;
    border: 2px solid rgba(0, 0, 0, 0.04);
    aspect-ratio: 1 / 1;
    flex-shrink: 0;
}
.cura-cdash__avatar-actions {
    flex: 1;
}
.cura-cdash__avatar-upload {
    display: inline-block;
    cursor: pointer;
}
.cura-cdash__avatar-upload input[type="file"] {
    display: none;
}
.cura-cdash__avatar-upload span {
    display: inline-block;
    padding: 8px 18px;
    background: transparent;
    color: var(--cura-text-primary);
    border: 1px solid var(--cura-text-primary);
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 500;
    transition: all 200ms ease;
}
.cura-cdash__avatar-upload:hover span {
    background: var(--cura-text-primary);
    color: #FFF;
}

.cura-cdash__field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.cura-cdash__field input[type="password"] {
    width: 100%;
    max-width: 420px;
    padding: 12px 16px;
    border: 1px solid var(--cura-border);
    border-radius: 10px;
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    background: var(--cura-bg-card);
}
@media (max-width: 600px) {
    .cura-cdash__field-row { grid-template-columns: 1fr; }
}

.cura-cdash__settings-form .cura-cdash__field,
.cura-cdash__field {
    margin-bottom: 16px;
}

.cura-cdash__field label {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    color: var(--cura-text-muted);
    margin-bottom: 6px;
}

.cura-cdash__field input[type="text"],
.cura-cdash__field input[type="email"] {
    width: 100%;
    max-width: 420px;
    padding: 12px 16px;
    border: 1px solid var(--cura-border);
    border-radius: 10px;
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    background: var(--cura-bg-card);
}

.cura-cdash__field input:disabled {
    background: var(--cura-bg-page);
    color: var(--cura-text-muted);
    cursor: not-allowed;
}

.cura-cdash__field-hint {
    font-size: 12px;
    color: var(--cura-text-muted);
    margin: 6px 0 0;
}

.cura-cdash__settings-section {
    background: var(--cura-bg-card);
    padding: 24px 28px;
    border-radius: 16px;
    margin-bottom: 20px;
    box-shadow: var(--cura-shadow-sm);
}

.cura-cdash__settings-section .cura-cdash__section-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 0 0 16px;
}

.cura-cdash__link {
    color: var(--cura-text-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 500;
}

/* My Calendar grid */
.cura-cal {
    background: var(--cura-bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--cura-shadow-sm);
}

.cura-cal__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.cura-cal__month {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--cura-text-primary);
}

.cura-cal__nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    text-decoration: none;
    color: var(--cura-text-primary);
    background: var(--cura-bg-page);
    transition: all var(--cura-transition-fast);
}
.cura-cal__nav:hover {
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
}

.cura-cal__weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--cura-text-muted);
    margin-bottom: 8px;
}

.cura-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
}

.cura-cal__day {
    min-height: 80px;
    padding: 8px;
    background: var(--cura-bg-page);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
}

.cura-cal__day--empty {
    background: transparent;
    min-height: 0;
}

.cura-cal__day--today {
    border: 2px solid var(--cura-text-primary);
}

.cura-cal__day--has-events {
    background: var(--cura-bg-tan-subtle);
}

.cura-cal__day-num {
    font-weight: 600;
    color: var(--cura-text-primary);
    font-size: 13px;
}

.cura-cal__event {
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 11px;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cura-cal__event--cancelled {
    background: rgba(0,0,0,0.10);
    color: var(--cura-text-muted);
    text-decoration: line-through;
}

@media (max-width: 700px) {
    .cura-cal__day { min-height: 60px; padding: 4px; }
    .cura-cal__event { font-size: 10px; padding: 2px 4px; }
}

.cura-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.cura-modal__btn {
    padding: 11px 24px !important;
    border-radius: 9999px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    font-family: 'Inter', sans-serif !important;
    cursor: pointer !important;
    border: 1px solid var(--cura-text-primary) !important;
    transition: all var(--cura-transition-fast) !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
}

.cura-modal__btn--ghost {
    background: transparent !important;
    color: var(--cura-text-primary) !important;
}
.cura-modal__btn--ghost:hover {
    background: var(--cura-bg-tan-subtle) !important;
}

.cura-modal__btn--primary {
    background: var(--cura-text-primary) !important;
    color: var(--cura-text-white) !important;
}
.cura-modal__btn--primary:hover:not(:disabled) {
    background: var(--cura-text-dark) !important;
}

.cura-modal__btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* CTA */
.cura-dashboard__cta-section { margin-bottom: 32px; }
.cura-dashboard__cta-btn {
    display: inline-block;
    padding: 14px 32px;
    background: transparent !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
    border-radius: 9999px;
    text-decoration: none !important;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: all 200ms ease;
    font-family: 'Inter', sans-serif !important;
}
.cura-dashboard__cta-btn:hover {
    background: #000000 !important;
    color: #FFFFFF !important;
}

/* Demo banner */
.cura-dashboard__demo-banner {
    padding: 20px 24px;
    background: rgba(184,146,58,0.1);
    border: 1px solid rgba(184,146,58,0.3);
    border-radius: 12px;
    margin-bottom: 24px;
}
.cura-dashboard__demo-banner p { margin: 0 0 12px; font-size: 14px; color: var(--cura-text-primary); }
.cura-dashboard__demo-plans { display: flex; gap: 8px; flex-wrap: wrap; }
.cura-dashboard__demo-btn {
    padding: 10px 20px;
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border: none;
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
}

.cura-dashboard__links {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.cura-dashboard__links a {
    display: inline-block;
    padding: 12px 24px;
    background: var(--cura-bg-card);
    border: 1px solid var(--cura-border);
    border-radius: 12px;
    color: var(--cura-text-primary);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: all var(--cura-transition-fast);
}

.cura-dashboard__links a:hover {
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-color: var(--cura-text-primary);
}

/* ==========================================================
   ACCESS GATE
   ========================================================== */

.cura-access-gate {
    text-align: center;
    padding: 60px 20px;
    max-width: 500px;
    margin: 40px auto;
    background: var(--cura-bg-card);
    border-radius: 24px;
    box-shadow: var(--cura-shadow-md);
    font-family: 'Inter', sans-serif;
}

.cura-access-gate__icon { font-size: 48px; margin-bottom: 16px; }

.cura-access-gate__title {
    font-size: 24px;
    font-weight: 600;
    margin: 0 0 12px;
    color: var(--cura-text-primary);
}

.cura-access-gate__text {
    font-size: 15px;
    color: var(--cura-text-secondary);
    line-height: 1.5;
    margin: 0 0 24px;
}

.cura-access-gate__btn {
    display: inline-block;
    padding: 14px 32px;
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-radius: 9999px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: background var(--cura-transition-fast);
}

.cura-access-gate__btn:hover { background: var(--cura-text-dark); }

/* ==========================================================
   FACILITATOR BOOKING PAGE — Calendly-style layout
   ========================================================== */

.cura-booking-page {
    display: flex;
    max-width: 1100px;
    margin: 40px auto;
    font-family: 'Inter', sans-serif;
    min-height: 80vh;
    gap: 0;
    background: var(--cura-bg-card);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: var(--cura-shadow-md);
}

/* Page background — match the rest of the site (cream) */
body.single-cura_facilitator,
body.cura-page {
    background: var(--cura-bg-page);
}

/* Aggressive button reset for booking calendar — kill Elementor / theme defaults.
   Elementor injects red/pink defaults via --e-global-color-primary on buttons,
   which is why the calendar prev/next/days/slots show pink borders without
   these overrides.
   IMPORTANT: This reset NO LONGER forces a `color` value, because the
   specific button states (slot--selected, slot:hover, day--selected) need
   white text on dark background. The color is set per-state below. */
.cura-booking-page button,
.cura-booking-calendar button {
    font-family: 'Inter', sans-serif !important;
    box-shadow: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
.cura-booking-page button:hover,
.cura-booking-calendar button:hover {
    box-shadow: none !important;
}
/* Force CURA color tokens onto these scopes (Elementor pink can leak via inherited custom props) */
.cura-booking-page,
.cura-booking-calendar {
    --e-global-color-primary: #000000 !important;
    --e-global-color-secondary: #191919 !important;
    --e-global-color-text: #666666 !important;
    --e-global-color-accent: #000000 !important;
}

/* --- Sidebar (left) --- */
.cura-booking-page__sidebar {
    width: 360px;
    flex-shrink: 0;
    padding: 30px;
    border-right: 1px solid var(--cura-border);
    display: flex;
    flex-direction: column;
}

.cura-booking-page__back {
    font-size: 14px;
    color: var(--cura-text-secondary);
    text-decoration: none;
    margin-bottom: 24px;
    display: inline-block;
}
.cura-booking-page__back:hover { color: var(--cura-text-primary); }

.cura-booking-page__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 16px;
}

.cura-booking-page__name {
    font-size: 24px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 0 0 6px;
}

.cura-booking-page__specialty {
    font-size: 14px;
    color: var(--cura-text-secondary);
    margin: 0 0 12px;
}

.cura-booking-page__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 16px;
}

.cura-booking-page__meta-item {
    font-size: 13px;
    color: var(--cura-text-muted);
}

.cura-booking-page__bio {
    font-size: 14px;
    color: var(--cura-text-secondary);
    line-height: 1.5;
    margin-bottom: 24px;
}

.cura-booking-page__bio p { margin: 0; }

/* Session type picker */
.cura-booking-page__label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--cura-text-muted);
    margin-bottom: 12px;
    display: block;
}

.cura-booking-page__session-picker {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cura-booking-page__session-option {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid var(--cura-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all var(--cura-transition-fast);
    gap: 12px;
}

.cura-booking-page__session-option:hover {
    border-color: var(--cura-text-primary);
}

.cura-booking-page__session-option--selected {
    border-color: var(--cura-text-primary);
    background: #fafafa;
}

.cura-booking-page__session-option input[type="radio"] {
    accent-color: var(--cura-text-primary);
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.cura-booking-page__session-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cura-booking-page__session-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--cura-text-primary);
}

.cura-booking-page__session-detail {
    font-size: 13px;
    color: var(--cura-text-secondary);
}

.cura-booking-page__session-badge {
    display: inline-block;
    padding: 1px 6px;
    font-size: 11px;
    background: rgba(74,124,89,0.12);
    color: var(--cura-success);
    border-radius: 4px;
    margin-left: 4px;
}

.cura-booking-page__session-badge--locked {
    background: rgba(95,95,95,0.10);
    color: var(--cura-text-muted);
}

/* --- Calendar (right) --- */
.cura-booking-page__calendar {
    flex: 1;
    padding: 30px 40px;
    display: flex;
    flex-direction: column;
}

.cura-booking-page__calendar-title {
    font-size: 20px;
    font-weight: 600;
    margin: 0 0 16px;
    color: var(--cura-text-primary);
}

.cura-booking-page__membership-status {
    margin: 0 0 20px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.4;
}

.cura-booking-page__membership-status--ok {
    display: block;
    background: rgba(74,124,89,0.10);
    color: var(--cura-success);
    padding: 10px 14px;
    border-radius: 10px;
    font-weight: 500;
}

.cura-booking-page__membership-status--used,
.cura-booking-page__membership-status--none {
    display: block;
    background: rgba(184,146,58,0.10);
    color: var(--cura-warning);
    padding: 10px 14px;
    border-radius: 10px;
}

/* Calendar weekday labels */
.cura-booking-calendar__weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    color: var(--cura-text-muted);
    margin-bottom: 8px;
}

/* Time slots section */
.cura-booking-calendar__slots-section {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--cura-border);
}

.cura-booking-calendar__slots-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 0 0 16px;
}

.cura-booking-calendar__slot--loading {
    background: var(--cura-text-primary) !important;
    color: var(--cura-text-white) !important;
    border-color: var(--cura-text-primary) !important;
}

/* Confirmation */
.cura-booking-page__confirmation {
    text-align: center;
    padding: 60px 20px;
}

.cura-booking-page__confirmation-icon {
    width: 64px;
    height: 64px;
    background: rgba(74,124,89,0.12);
    color: var(--cura-success);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    margin-bottom: 20px;
}

.cura-booking-page__confirmation h3 {
    font-size: 24px;
    font-weight: 600;
    margin: 0 0 12px;
}

.cura-booking-page__confirmation-details {
    font-size: 16px;
    color: var(--cura-text-secondary);
    line-height: 1.6;
    margin: 0 0 24px;
}

.cura-booking-page__confirmation-btn {
    display: inline-block;
    padding: 14px 32px;
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-radius: 9999px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: background var(--cura-transition-fast);
}

.cura-booking-page__confirmation-btn:hover { background: var(--cura-text-dark); }

/* ==========================================================
   BOOKING CALENDAR — compact CURA style
   All buttons have explicit overrides for background, border and
   color because Elementor injects --e-global-color-* values into
   button defaults that show up as pink/red on this calendar.
   ========================================================== */

.cura-booking-calendar {
    background: #FFFFFF !important;
    padding: 24px 28px !important;
    font-family: 'Inter', sans-serif !important;
    border-radius: 24px !important;
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03), 0 8px 24px rgba(0, 0, 0, 0.04) !important;
    max-width: 520px !important;
    color: var(--cura-text-primary) !important;
}

/* --- Header / month nav --- */
.cura-booking-calendar__header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 20px !important;
}

.cura-booking-calendar__month-label {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--cura-text-primary) !important;
    letter-spacing: 0.2px;
}

.cura-booking-calendar__prev,
.cura-booking-calendar__next {
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    border-radius: 50% !important;
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    font-size: 14px !important;
    line-height: 1 !important;
    color: var(--cura-text-primary) !important;
    box-shadow: none !important;
    transition: all 200ms ease !important;
    font-family: 'Inter', sans-serif !important;
}
.cura-booking-calendar__prev:hover,
.cura-booking-calendar__next:hover {
    background: #F2EEE9 !important;
    background-color: #F2EEE9 !important;
    border-color: rgba(0, 0, 0, 0.2) !important;
    color: var(--cura-text-primary) !important;
}

/* --- Weekday labels --- */
.cura-booking-calendar__weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 4px;
    margin-bottom: 8px;
    text-align: center;
}
.cura-booking-calendar__weekdays span {
    font-size: 11px;
    font-weight: 600;
    color: var(--cura-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 0;
}

/* --- Day grid --- */
.cura-booking-calendar__days {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 4px !important;
    margin-bottom: 20px !important;
}

.cura-booking-calendar__day {
    /* Reset Elementor / theme button styling */
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    font-family: 'Inter', sans-serif !important;
    /* CURA style */
    aspect-ratio: 1 / 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: rgba(0, 0, 0, 0.25) !important;
    border-radius: 50% !important;
    cursor: default !important;
    padding: 0 !important;
    transition: all 180ms ease !important;
    line-height: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
}

.cura-booking-calendar__day--available {
    cursor: pointer !important;
    color: var(--cura-text-primary) !important;
    font-weight: 600 !important;
}
.cura-booking-calendar__day--available:hover {
    background: #F2EEE9 !important;
    background-color: #F2EEE9 !important;
    color: var(--cura-text-primary) !important;
}

.cura-booking-calendar__day--selected,
.cura-booking-calendar__day--available.cura-booking-calendar__day--selected {
    background: var(--cura-text-primary) !important;
    background-color: var(--cura-text-primary) !important;
    color: #FFFFFF !important;
}

.cura-booking-calendar__day--today {
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2) !important;
}

.cura-booking-calendar__day--disabled {
    color: rgba(0, 0, 0, 0.18) !important;
    cursor: not-allowed !important;
}

.cura-booking-calendar__day--empty {
    visibility: hidden;
}

/* --- Time slot section --- */
.cura-booking-calendar__slots-section {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.cura-booking-calendar__slots-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--cura-text-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 12px;
}

.cura-booking-calendar__slots {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
}

.cura-booking-calendar__slot {
    appearance: none !important;
    -webkit-appearance: none !important;
    padding: 8px 18px !important;
    border: 1px solid rgba(0, 0, 0, 0.15) !important;
    border-radius: 9999px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    background: transparent !important;
    background-color: transparent !important;
    color: var(--cura-text-primary) !important;
    cursor: pointer !important;
    transition: all 180ms ease !important;
    font-family: 'Inter', sans-serif !important;
    line-height: 1.2 !important;
    box-shadow: none !important;
}
.cura-booking-calendar__slot:hover {
    background: var(--cura-text-primary) !important;
    background-color: var(--cura-text-primary) !important;
    color: #FFFFFF !important;
    border-color: var(--cura-text-primary) !important;
}
.cura-booking-calendar__slot--selected {
    background: var(--cura-text-primary) !important;
    background-color: var(--cura-text-primary) !important;
    color: #FFFFFF !important;
    border-color: var(--cura-text-primary) !important;
}

.cura-booking-calendar__loading,
.cura-booking-calendar__no-slots,
.cura-booking-calendar__confirmed,
.cura-booking-calendar__error {
    padding: 14px;
    text-align: center;
    font-size: 13px;
    border-radius: 12px;
    color: var(--cura-text-muted);
}
.cura-booking-calendar__confirmed {
    background: rgba(74, 124, 89, 0.10);
    color: #4A7C59;
}
.cura-booking-calendar__error {
    background: rgba(184, 51, 51, 0.10);
    color: #B83333;
}

.cura-booking-calendar__timezone {
    font-size: 11px;
    color: var(--cura-text-muted);
    margin-top: 16px;
    text-align: center;
}

/* --- Confirmation panel (review before booking) --- */
.cura-booking-calendar__confirm-panel {
    margin-top: 20px;
}
.cura-booking-calendar__confirm-card {
    background: #F2EEE9 !important;
    border: none !important;
    border-radius: 16px !important;
    padding: 22px !important;
}
.cura-booking-calendar__confirm-title {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--cura-text-primary) !important;
    margin: 0 0 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
}
.cura-booking-calendar__confirm-list {
    margin: 0 0 18px !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}
.cura-booking-calendar__confirm-list > div {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.cura-booking-calendar__confirm-list > div:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.cura-booking-calendar__confirm-list dt {
    font-size: 11px !important;
    color: var(--cura-text-muted) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 !important;
    font-weight: 500 !important;
}
.cura-booking-calendar__confirm-list dd {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--cura-text-primary) !important;
    margin: 0 !important;
    text-align: right !important;
}
.cura-booking-calendar__confirm-included {
    color: #4A7C59 !important;
    font-weight: 600 !important;
}

.cura-booking-calendar__confirm-actions {
    display: flex !important;
    gap: 10px !important;
    justify-content: flex-end !important;
}

.cura-booking-calendar__confirm-cancel,
.cura-booking-calendar__confirm-submit {
    appearance: none !important;
    -webkit-appearance: none !important;
    padding: 11px 24px !important;
    border-radius: 9999px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 180ms ease !important;
    border: 1px solid var(--cura-text-primary) !important;
    font-family: 'Inter', sans-serif !important;
    box-shadow: none !important;
    line-height: 1.2 !important;
}
.cura-booking-calendar__confirm-cancel {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--cura-text-primary) !important;
}
.cura-booking-calendar__confirm-cancel:hover {
    background: rgba(0, 0, 0, 0.05) !important;
    background-color: rgba(0, 0, 0, 0.05) !important;
}
.cura-booking-calendar__confirm-submit {
    background: var(--cura-text-primary) !important;
    background-color: var(--cura-text-primary) !important;
    color: #FFFFFF !important;
}
.cura-booking-calendar__confirm-submit:hover:not(:disabled) {
    background: #333 !important;
    background-color: #333 !important;
    color: #FFFFFF !important;
}
.cura-booking-calendar__confirm-submit:disabled,
.cura-booking-calendar__confirm-cancel:disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
}
.cura-booking-calendar__confirm-note {
    margin: 12px 0 0 !important;
    font-size: 12px !important;
    text-align: right !important;
    color: var(--cura-text-muted) !important;
}
.cura-booking-calendar__confirm-note--error {
    color: #B83333 !important;
}

/* ==========================================================
   HEADER/FOOTER SPACING — prevent overlap with sticky header
   ========================================================== */

/* ==========================================================
   FACILITATOR PROFILE PAGE
   ========================================================== */

.cura-profile {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px 80px;
    font-family: 'Inter', sans-serif;
}

.cura-profile__hero {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    margin-bottom: 48px;
}

.cura-profile__photo {
    width: 320px;
    height: 420px;
    border-radius: 21px;
    object-fit: cover;
    flex-shrink: 0;
}

.cura-profile__photo--placeholder {
    background: var(--cura-bg-tan);
}

.cura-profile__hero-info {
    flex: 1;
    padding-top: 20px;
}

.cura-profile__name {
    font-family: 'Juana', serif;
    font-size: 36px;
    font-weight: 300;
    color: var(--cura-text-primary);
    margin: 0 0 8px;
    line-height: 1.2;
}

.cura-profile__specialty {
    font-size: 16px;
    color: var(--cura-text-secondary);
    margin: 0 0 12px;
}

.cura-profile__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 20px;
}

.cura-profile__meta-item {
    font-size: 14px;
    color: var(--cura-text-muted);
}

.cura-profile__book-btn {
    display: inline-block;
    padding: 14px 36px;
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-radius: 9999px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: background var(--cura-transition-fast);
    margin-top: 12px;
}

.cura-profile__book-btn:hover {
    background: var(--cura-text-dark);
    color: var(--cura-text-white);
}

/* Sections */
.cura-profile__section {
    margin-bottom: 48px;
}

.cura-profile__section-title {
    font-family: 'Juana', serif;
    font-size: 24px;
    font-weight: 400;
    color: var(--cura-text-primary);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--cura-border);
}

.cura-profile__bio {
    font-size: 16px;
    line-height: 1.7;
    color: var(--cura-text-primary);
}

.cura-profile__bio p { margin: 0 0 16px; }

/* Session cards */
.cura-profile__sessions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cura-profile__session-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    background: var(--cura-bg-card);
    border-radius: 12px;
    box-shadow: var(--cura-shadow-sm);
}

.cura-profile__session-info { flex: 1; }

.cura-profile__session-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--cura-text-primary);
    display: block;
}

.cura-profile__session-detail {
    font-size: 13px;
    color: var(--cura-text-secondary);
    display: block;
    margin-top: 2px;
}

.cura-profile__session-badge {
    display: inline-block;
    padding: 1px 6px;
    font-size: 11px;
    background: rgba(74,124,89,0.12);
    color: var(--cura-success);
    border-radius: 4px;
    margin-left: 4px;
}

.cura-profile__session-price {
    font-size: 20px;
    font-weight: 700;
    color: var(--cura-text-primary);
    min-width: 60px;
    text-align: right;
}

.cura-profile__session-book {
    padding: 8px 20px;
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-radius: 9999px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: background var(--cura-transition-fast);
    white-space: nowrap;
}

.cura-profile__session-book:hover {
    background: var(--cura-text-dark);
    color: var(--cura-text-white);
}

/* Content grid */
.cura-profile__content-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.cura-profile__content-card {
    text-decoration: none;
    color: inherit;
    border-radius: 12px;
    overflow: hidden;
    background: var(--cura-bg-card);
    box-shadow: var(--cura-shadow-sm);
    transition: transform var(--cura-transition-slow);
}

.cura-profile__content-card:hover { transform: translateY(-4px); }

.cura-profile__content-img {
    width: 100%;
    height: 140px;
    object-fit: cover;
}

.cura-profile__content-body { padding: 12px 14px; }

.cura-profile__content-type {
    font-size: 11px;
    font-weight: 600;
    color: var(--cura-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: block;
    margin-bottom: 4px;
}

.cura-profile__content-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--cura-text-primary);
    display: block;
}

/* ==========================================================
   FACILITATOR PROFILE — TABBED LAYOUT (rebuild)
   Used by the new single-profile.php with hero video,
   About / Sessions / Content tabs and enriched session cards.
   ========================================================== */

.cura-profile--tabbed {
    max-width: 1100px;
    margin: 40px auto 80px;
    padding: 0 20px;
    font-family: 'Inter', sans-serif;
}

/* Hero ----------------------------------------------------- */
.cura-profile--tabbed .cura-profile__hero {
    position: relative;
    margin: 0 0 32px;
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, 1fr);
    gap: 0;
    background: var(--cura-bg-card);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: var(--cura-shadow-md);
    min-height: 360px;
}

/* LEFT — media (photo/video banner) */
.cura-profile__hero-media {
    position: relative;
    background-size: cover;
    background-position: center;
    background-color: var(--cura-bg-tan);
    border-radius: 24px;
    margin: 0;
    min-height: 360px;
}

.cura-profile__back {
    position: absolute;
    top: 20px;
    left: 24px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #FFF;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    background: rgba(0,0,0,0.35);
    padding: 8px 14px;
    border-radius: 9999px;
    backdrop-filter: blur(6px);
    transition: background var(--cura-transition-fast);
    z-index: 2;
}
.cura-profile__back:hover { background: rgba(0,0,0,0.55); color: #FFF; }

.cura-profile__play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80px;
    height: 80px;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: transform var(--cura-transition-fast);
}
.cura-profile__play-btn:hover { transform: translate(-50%, -50%) scale(1.06); }
.cura-profile__play-btn svg { display: block; filter: drop-shadow(0 6px 18px rgba(0,0,0,0.25)); }

/* RIGHT — info card */
.cura-profile__hero-info {
    position: relative;
    background: var(--cura-bg-card);
    padding: 40px 36px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 14px;
}

/* Avatar sits ABOVE the name, inside the right card. */
.cura-profile__avatar-wrap {
    position: relative;
    width: 112px;
    height: 112px;
    border-radius: 50%;
    background: var(--cura-bg-card);
    padding: 6px;
    box-shadow: var(--cura-shadow-sm);
    margin: 0 0 4px;
}

.cura-profile__avatar {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.cura-profile--tabbed .cura-profile__name {
    font-family: 'Inter', sans-serif;
    font-size: 32px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0;
    line-height: 1.15;
}

.cura-profile__role {
    font-size: 15px;
    color: var(--cura-text-muted);
    margin: 0;
    line-height: 1.5;
}

.cura-profile__hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.cura-profile__languages {
    display: inline-block;
    font-size: 13px;
    color: var(--cura-text-muted);
    padding: 10px 18px;
    background: var(--cura-bg-page);
    border-radius: 9999px;
}

a.cura-profile__book-btn,
.cura-profile--tabbed .cura-profile__book-btn {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    padding: 13px 26px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    border: 1px solid var(--cura-text-primary) !important;
    background: transparent !important;
    color: var(--cura-text-primary) !important;
    border-radius: 9999px !important;
    text-decoration: none !important;
    transition: all var(--cura-transition-fast);
    text-transform: none !important;
    box-shadow: none !important;
}
a.cura-profile__book-btn:hover,
.cura-profile--tabbed .cura-profile__book-btn:hover {
    background: var(--cura-text-primary) !important;
    color: var(--cura-text-white) !important;
}

@media (max-width: 900px) {
    .cura-profile--tabbed .cura-profile__hero {
        grid-template-columns: 1fr;
    }
    .cura-profile__hero-media { min-height: 280px; }
    .cura-profile__hero-info { padding: 28px 24px; }
    .cura-profile--tabbed .cura-profile__name { font-size: 26px; }
}

/* Tabs ----------------------------------------------------- */
.cura-profile__tabs {
    display: flex;
    gap: 32px;
    margin: 0 0 28px;
    border-bottom: 1px solid var(--cura-border);
}

/* Aggressive reset to win against Elementor / theme button defaults.
   The tab is a <button> by accessibility convention but visually it
   must look like plain text with an underline on the active state. */
button.cura-profile__tab,
.cura-profile__tab {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 14px 0 !important;
    margin: 0 0 -1px 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    color: var(--cura-text-secondary) !important;
    cursor: pointer !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.4 !important;
    border-bottom: 2px solid transparent !important;
    transition: color var(--cura-transition-fast), border-color var(--cura-transition-fast);
}

button.cura-profile__tab:hover,
.cura-profile__tab:hover {
    background: transparent !important;
    color: var(--cura-text-primary) !important;
    border-bottom-color: transparent !important;
}

button.cura-profile__tab.is-active,
.cura-profile__tab.is-active {
    color: var(--cura-text-primary) !important;
    border-bottom: 2px solid var(--cura-text-primary) !important;
    font-weight: 600 !important;
}

button.cura-profile__tab:focus,
.cura-profile__tab:focus {
    outline: none !important;
    box-shadow: none !important;
}

.cura-profile__panel { display: none; }
.cura-profile__panel.is-active { display: block; }

.cura-profile--tabbed .cura-profile__bio {
    font-size: 16px;
    line-height: 1.7;
    color: var(--cura-text-primary);
    max-width: 760px;
}

.cura-profile__bio-short {
    font-size: 17px;
    line-height: 1.6;
    color: var(--cura-text-primary);
    font-weight: 500;
    max-width: 760px;
    margin: 0 0 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--cura-border);
}

.cura-profile__empty {
    color: var(--cura-text-muted);
    font-style: italic;
    padding: 24px 0;
}

/* ==========================================================
   CURA CARD SYSTEM — sessions, content, library
   Photo with FULL border radius, no card background, content
   sits flat on the page bg.
   ========================================================== */

.cura-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 36px 28px;
}

.cura-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: transparent;
    box-shadow: none;
    text-decoration: none;
    color: inherit;
    height: 100%; /* fill grid row so all cards in a row match height */
}

.cura-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    background-color: var(--cura-bg-tan);
    border-radius: 18px;
    overflow: hidden;
}

.cura-card__lock {
    position: absolute;
    bottom: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,0.95);
    color: var(--cura-text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cura-card__body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1; /* take remaining card height so the CTA can stick to the bottom */
}

.cura-card__title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--cura-text-primary);
    line-height: 1.3;
}

.cura-card__meta {
    margin: 0;
    font-size: 13px;
    color: var(--cura-text-secondary);
    font-style: italic;
}
.cura-card__meta strong { font-style: normal; color: var(--cura-text-primary); font-weight: 700; }

.cura-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cura-card__chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border: 1px solid var(--cura-border);
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 500;
    color: var(--cura-text-primary);
    background: transparent;
}

.cura-card__line {
    margin: 0;
    font-size: 13px;
    color: var(--cura-text-primary);
    line-height: 1.5;
}
.cura-card__line strong { font-weight: 700; }
.cura-card__line em { font-style: italic; color: var(--cura-text-secondary); font-weight: 500; }

.cura-card__desc {
    margin: 0;
    font-size: 13px;
    color: var(--cura-text-secondary);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cura-card__price-row {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-top: 4px;
}

.cura-card__price {
    display: inline-block;
    padding: 8px 18px;
    background: var(--cura-bg-page);
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 700;
    font-style: italic;
    color: var(--cura-text-primary);
    flex-shrink: 0;
}

.cura-card__price-note {
    font-size: 11px;
    color: var(--cura-text-muted);
    line-height: 1.4;
    font-style: italic;
}

a.cura-card__details-link,
.cura-card__details-link {
    display: inline-block;
    margin: 4px 0 0;
    font-size: 14px;
    color: var(--cura-text-primary) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    font-weight: 500;
    text-transform: none !important;
}

a.cura-card__cta,
.cura-card__cta {
    margin-top: auto; /* push to bottom of card body so all CTAs align across the row */
    padding: 14px 28px !important;
    background: transparent !important;
    color: var(--cura-text-primary) !important;
    border: 1px solid var(--cura-text-primary) !important;
    border-radius: 9999px !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-align: center;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: all var(--cura-transition-fast);
    text-transform: none !important;
    box-shadow: none !important;
}
a.cura-card__cta:hover,
.cura-card__cta:hover {
    background: var(--cura-text-primary) !important;
    color: var(--cura-text-white) !important;
}

.cura-card__author {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--cura-accent-teal);
    font-weight: 500;
    margin-top: 4px;
}

.cura-card__author-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Hover only on content cards (the whole card is a link) */
a.cura-card--content {
    transition: transform var(--cura-transition-fast);
}
a.cura-card--content:hover {
    transform: translateY(-3px);
}
a.cura-card--content:hover .cura-card__title {
    text-decoration: underline;
}

/* Sessions intro banner */
.cura-profile__sessions-intro {
    background: var(--cura-bg-page);
    border-radius: 14px;
    padding: 14px 18px;
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--cura-text-secondary);
}
.cura-profile__sessions-intro strong { color: var(--cura-text-primary); }

/* Note: Sessions cards now use the .cura-card system above. */

/* Video modal --------------------------------------------- */
.cura-modal--video .cura-modal__dialog--video {
    background: #000;
    padding: 0;
    max-width: 960px;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
}

.cura-modal--video-vertical .cura-modal__dialog--video {
    max-width: 420px;
}

.cura-modal__close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: rgba(0,0,0,0.5);
    color: #fff;
    border: none;
    font-size: 28px;
    line-height: 1;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 2;
}

.cura-modal__video-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

.cura-modal--video-vertical .cura-modal__video-frame {
    aspect-ratio: 9 / 16;
}

.cura-modal__video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

@media (max-width: 700px) {
    .cura-profile__tabs { gap: 16px; overflow-x: auto; }
}

/* ==========================================================
   FACILITATORS ARCHIVE — Dark Grid (cura.energy style)
   ========================================================== */

.cura-experts {
    background: var(--cura-bg-page, #F2EEE9);
    padding: 80px 0;
    font-family: 'Inter', sans-serif;
}

.cura-experts__header {
    max-width: 1240px;
    margin: 0 auto 48px;
    padding: 0 40px;
}

.cura-experts__title {
    font-family: 'Inter', sans-serif;
    font-size: 40px;
    font-weight: 400;
    color: var(--cura-text-primary);
    margin: 0;
}

.cura-experts__title em,
.cura-experts__title i {
    font-family: 'Juana', serif;
    font-style: italic;
    font-weight: 400;
}

.cura-experts__grid {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* When rendered as an Elementor widget (home page grid), go edge-to-edge
 * inside the parent container — the archive page still uses the boxed variant. */
.elementor-widget-cura_facilitator_grid .cura-experts {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}
.elementor-widget-cura_facilitator_grid .cura-experts__grid {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}
.elementor-widget-cura_facilitator_grid .cura-experts__filters {
    width: 100%;
    max-width: 100%;
    margin: 0 0 24px;
    padding: 0;
}

/* Card */
.cura-experts__card {
    display: block;
    text-decoration: none;
    color: inherit;
    position: relative;
}

.cura-experts__photo-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 21px;
    aspect-ratio: 3/4;
    /* Fallback: padding-top hack for environments where aspect-ratio
       gets stripped or the parent flex/grid collapses the height. */
    width: 100%;
    height: 0;
    padding-top: 133.333%;
}
@supports (aspect-ratio: 3/4) {
    .cura-experts__photo-wrap {
        height: auto;
        padding-top: 0;
    }
}

.cura-experts__photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    filter: grayscale(100%);
    transition: transform 0.5s ease, filter 0.5s ease;
}
/* When aspect-ratio is supported the wrapper has its own height; image
   can return to a normal block layout for finer animation behaviour. */
@supports (aspect-ratio: 3/4) {
    .cura-experts__photo {
        position: absolute !important;
        inset: 0 !important;
    }
}

.cura-experts__card:hover .cura-experts__photo {
    transform: scale(1.05);
    filter: grayscale(0%);
}

/* Lock icon — bottom right */
.cura-experts__lock {
    position: absolute;
    bottom: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--cura-text-white);
}

/* Info below photo */
.cura-experts__info {
    padding: 16px 4px 0;
}

.cura-experts__name-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.cura-experts__avatar-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--cura-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: var(--cura-text-secondary);
    flex-shrink: 0;
}

.cura-experts__name {
    font-size: 16px;
    font-weight: 600;
    color: var(--cura-text-primary);
    margin: 0;
}

.cura-experts__specialty {
    font-size: 12px;
    font-weight: 600;
    font-style: italic;
    color: var(--cura-text-primary);
    margin: 0 0 4px;
    line-height: 1.4;
}

.cura-experts__languages {
    font-size: 13px;
    font-weight: 400;
    color: var(--cura-text-primary);
    margin: 0 0 12px;
}

.cura-experts__bio {
    font-size: 14px;
    font-weight: 400;
    color: var(--cura-text-primary);
    line-height: 1.5;
    margin: 0;
}

/* Optional button */
.cura-experts__btn {
    display: inline-block;
    margin-top: 12px;
    padding: 8px 20px;
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 500;
    transition: background 200ms ease;
}

.cura-experts__card:hover .cura-experts__btn {
    background: var(--cura-text-dark);
}

/* Filters */
.cura-experts__filters {
    max-width: 1240px;
    margin: 0 auto 24px;
    padding: 0 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.cura-experts__filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cura-experts__filter-pill {
    padding: 6px 16px;
    border: 1px solid var(--cura-border);
    border-radius: 9999px;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 500;
    background: transparent;
    color: var(--cura-text-primary);
    cursor: pointer;
    transition: all 200ms ease;
}

.cura-experts__filter-pill:hover {
    border-color: var(--cura-text-primary);
}

.cura-experts__filter-pill--active {
    background: var(--cura-text-primary);
    color: var(--cura-text-white);
    border-color: var(--cura-text-primary);
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 1024px) {
    .cura-library__grid { grid-template-columns: repeat(2, 1fr); }
    .cura-dashboard__stats { grid-template-columns: repeat(2, 1fr); }
    .cura-experts__grid { grid-template-columns: repeat(3, 1fr); }
    .cura-booking-page { flex-direction: column; }
    .cura-booking-page__sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--cura-border); }
    .cura-booking-page__calendar { padding: 24px 20px; }
    .cura-profile__hero { gap: 24px; }
    .cura-profile__photo { width: 240px; height: 320px; }
    .cura-profile__content-grid { grid-template-columns: repeat(2, 1fr); }
    .cura-cdash { flex-direction: column; }
    .cura-cdash__sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--cura-border); }
    .cura-cdash__sidebar-user { flex-direction: row; gap: 12px; }
    .cura-cdash__avatar { width: 40px; height: 40px; margin-bottom: 0; }
    .cura-cdash__nav { flex-direction: row; flex-wrap: wrap; gap: 8px; }
    .cura-cdash__nav-link { padding: 8px 12px; font-size: 13px; }
    .cura-cdash__main { padding: 24px 20px; }
}

@media (max-width: 767px) {
    .cura-plans__grid { grid-template-columns: 1fr; }
    .cura-library__grid { grid-template-columns: 1fr; }
    .cura-dashboard__stats { grid-template-columns: 1fr; }
    .cura-dashboard__links { flex-direction: column; }
    .cura-experts__grid { grid-template-columns: repeat(2, 1fr); }
    .cura-booking-page__sidebar { padding: 20px; }
    .cura-booking-page__calendar { padding: 20px; }
    .cura-cdash { padding: 0 10px 80px !important; }
    .cura-cdash__main { padding: 0 10px !important; }
    .cura-library {
        padding-top: 0 !important;
        padding-bottom: 60px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    .cura-library__header { margin: 0 0 16px !important; }

    /* Single-column facilitators grid on mobile (template + Elementor widget) */
    .cura-experts__grid,
    .cura-facilitator-grid {
        grid-template-columns: 1fr !important;
    }

    /* Mobile toggle bar already shows the section title; hide the duplicated H1 */
    .cura-cdash__main > .cura-cdash__title,
    .cura-fdash__main > .cura-fdash__title,
    .cura-library__heading {
        display: none !important;
    }
    .cura-profile__hero { flex-direction: column; }
    .cura-profile__photo { width: 100%; height: 300px; }
    .cura-profile__name { font-size: 28px; }
    .cura-profile__content-grid { grid-template-columns: 1fr; }
    .cura-profile__session-card { flex-wrap: wrap; }
    .cura-facilitators-page__title { font-size: 28px; }
}

/* ============================================================
 * CURA Icon Set — official SVG icons (assets/icons/)
 * Replaces previous eicon-* and inline SVG placeholders.
 * ============================================================ */

/* Dashboard sidebar icon styling lives in the dashboard layout blocks above
   (.cura-cdash__nav-icon at ~line 788, .cura-fdash__nav-icon in facilitator-dashboard.css). */

/* --- FacilitatorCardWidget — image always cover --- */
/* Elementor controls inject width/height on .cura-facilitator-card__photo
   directly. Wrap it so the photo fills the configured box without distortion. */
.cura-facilitator-card__photo-wrap {
    position: relative;
    overflow: hidden;
    display: inline-block;
    line-height: 0;
}
.cura-facilitator-card__photo {
    display: block;
    object-fit: cover;
    object-position: center;
}

/* --- Lock overlays (cards + library) --- */
.cura-content-card__lock svg,
.cura-facilitator-card__lock svg,
.cura-experts__lock svg {
    width: 18px;
    height: 18px;
    display: block;
}

/* --- Membership plan feature checks (badges azul/gris) --- */
.cura-plans-card__feature-icon svg {
    width: 18px;
    height: 18px;
    display: block;
}
.cura-plans-card__feature {
    display: flex;
    align-items: center;
    gap: 10px;
}
/* Override the old color rule from line 514 — the badge has its own colors. */
.cura-plans-card__feature-icon { color: inherit !important; }
.cura-plans-card__feature.is-inactive .cura-plans-card__feature-icon { color: inherit !important; }

/* --- Paywall modal feature list + pay button lock --- */
.cura-paywall__plan-features li {
    display: flex;
    align-items: center;
    gap: 10px;
}
.cura-paywall__plan-features li svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    display: block;
}
.cura-paywall__pay-btn svg {
    width: 16px;
    height: 16px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
}

/* --- Quick Book Button — CURA default icon --- */
.cura-quick-book__icon svg {
    width: 18px;
    height: 18px;
    display: inline-block;
    vertical-align: middle;
}
.cura-quick-book__icon svg [stroke="black"] { stroke: currentColor; }
.cura-quick-book__icon svg [fill="black"]   { fill: currentColor; }

/* ============================================================
 * Header / Footer SVG icons (injected via DB patch into Elementor html widgets)
 * ============================================================ */

/* Header icons container — keep flex row, force html widgets to inline */
.cura-header-icons .elementor-widget-html {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
}
.cura-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    color: #FFFFFF;
    text-decoration: none;
}
.cura-header-icon svg {
    width: 24px;
    height: 24px;
    display: block;
}
/* Light header pages: invert white-stroke icons to dark */
body.cura-light-header .cura-header-icon svg [stroke="white"],
body.cura-light-header .cura-header-icon svg [stroke="#FFFFFF"] {
    stroke: #191919 !important;
}
body.cura-light-header .cura-header-icon svg [fill="white"],
body.cura-light-header .cura-header-icon svg [fill="#FFFFFF"] {
    fill: #191919 !important;
}

/* Footer social — Facebook + Instagram (28px) */
.cura-footer .elementor-widget-html { width: auto !important; max-width: none !important; }
.cura-footer-social {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.cura-footer-social__link {
    display: inline-flex;
    line-height: 0;
}
.cura-footer-social__link svg {
    width: 28px;
    height: 28px;
    display: block;
}
/* Footer Instagram big badge (40px in "Follow us" section) */
.cura-footer-instagram-badge {
    display: inline-flex;
    line-height: 0;
}
.cura-footer-instagram-badge svg {
    width: 40px;
    height: 40px;
    display: block;
}

/* ============================================================
 * MEMBER DASHBOARD HOME — new layout (welcome hero + sections)
 * ============================================================ */

/* --- Welcome hero card (top of dashboard) --- */
.cura-dash-hero {
    background: #DCC8B9;
    border-radius: 24px;
    padding: 32px 40px;
    margin-bottom: 32px;
    color: #FFFFFF;
}
.cura-dash-hero__meta {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 14px;
    font-style: italic;
}
.cura-dash-hero__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}
.cura-dash-hero__title {
    font-family: 'Juana', 'Inter', serif;
    font-size: 28px;
    line-height: 1.25;
    font-weight: 400;
    color: #FFFFFF;
    margin: 0;
    flex: 1;
    min-width: 280px;
}
.cura-dash-hero__title em {
    font-style: italic;
    font-weight: 400;
}
.cura-dash-hero__cta {
    display: inline-flex;
    align-items: center;
    background: #FFFFFF;
    color: #000000;
    padding: 16px 36px;
    border-radius: 9999px;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 200ms ease, box-shadow 200ms ease;
}
.cura-dash-hero__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    color: #000000;
}
.cura-dash-hero__cta em {
    font-style: italic;
    font-weight: 600;
    margin-right: 4px;
}

/* --- Section header (Your Upcoming events / This month at CURA) --- */
.cura-dash-section {
    margin-bottom: 40px;
}
.cura-dash-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 16px;
}
.cura-dash-section__title {
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    font-weight: 400;
    color: var(--cura-text-primary);
    margin: 0;
}
.cura-dash-section__title strong {
    font-weight: 700;
    font-style: italic;
}
.cura-dash-section__link {
    font-size: 14px;
    font-style: italic;
    color: var(--cura-text-primary);
    text-decoration: none;
    font-weight: 500;
}
.cura-dash-section__link:hover {
    text-decoration: underline;
}
.cura-dash-section__empty {
    color: var(--cura-text-muted);
    font-size: 14px;
    padding: 24px 0;
    margin: 0;
}

/* --- Upcoming events cards (3 columns) --- */
.cura-dash-events {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.cura-dash-event {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #FFFFFF;
    border-radius: 16px;
    padding: 20px 24px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}
.cura-dash-event__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #FBF7F1;
    flex-shrink: 0;
}
.cura-dash-event__icon svg {
    width: 24px;
    height: 24px;
    display: block;
}
.cura-dash-event__icon svg [stroke="#DCC8B9"] { stroke: #DCC8B9; }
.cura-dash-event__icon svg [fill="#DCC8B9"]   { fill: #DCC8B9; }
.cura-dash-event__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.cura-dash-event__date {
    font-size: 12px;
    color: var(--cura-text-muted);
}
.cura-dash-event__title {
    font-size: 15px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0;
    line-height: 1.3;
}
.cura-dash-event__facilitator {
    font-size: 12px;
    color: var(--cura-text-secondary);
    font-style: italic;
}

/* --- This month at CURA cards (3 columns) --- */
.cura-dash-library {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.cura-dash-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-decoration: none;
    color: inherit;
}
.cura-dash-content__media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    background-color: #2A2520;
    border-radius: 16px;
    overflow: hidden;
}
.cura-dash-content__lock {
    position: absolute;
    bottom: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    display: flex;
    align-items: center;
    justify-content: center;
}
.cura-dash-content__lock svg {
    width: 18px;
    height: 18px;
}
.cura-dash-content__lock svg [fill="white"] { fill: #000; }
.cura-dash-content__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0;
    line-height: 1.3;
}
.cura-dash-content__meta {
    font-size: 12px;
    color: var(--cura-text-secondary);
    margin: 0;
    font-style: italic;
}
.cura-dash-content__meta strong {
    font-style: normal;
    font-weight: 600;
    color: var(--cura-text-primary);
}
.cura-dash-content__excerpt {
    font-size: 13px;
    color: var(--cura-text-secondary);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cura-dash-content__author {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #4A7C59; /* CURA green accent */
    margin: 4px 0 0;
    font-weight: 500;
}
.cura-dash-content__author-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(74, 124, 89, 0.12);
}
.cura-dash-content__author-icon svg {
    width: 14px;
    height: 14px;
}
.cura-dash-content__author-icon svg [stroke="black"] { stroke: #4A7C59; }

/* Responsive */
@media (max-width: 1024px) {
    .cura-dash-events { grid-template-columns: 1fr; }
    .cura-dash-library { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .cura-dash-hero { padding: 24px 24px; }
    .cura-dash-hero__title { font-size: 24px; }
    .cura-dash-hero__row { flex-direction: column; align-items: flex-start; }
    .cura-dash-library { grid-template-columns: 1fr; }
}

/* ============================================================
 * LIBRARY page — redesigned (header, search, filters, sections)
 * ============================================================ */

.cura-library__header {
    margin: 0 0 24px;
}
.cura-library__heading {
    font-family: 'Inter', sans-serif;
    font-size: 36px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0 0 6px;
    line-height: 1.1;
}
.cura-library__sub {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    color: var(--cura-text-primary);
    margin: 0;
    font-weight: 400;
}
.cura-library__sub em {
    font-style: italic;
    font-weight: 700;
}

.cura-library__toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}
.cura-library__search-wrap {
    position: relative;
    flex: 1;
    min-width: 280px;
}
.cura-library__search-icon {
    position: absolute;
    top: 50%;
    left: 22px;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    pointer-events: none;
    color: var(--cura-text-muted);
}
.cura-library__search-icon svg {
    width: 18px;
    height: 18px;
    display: block;
}
.cura-library__search-icon svg [fill="black"] { fill: currentColor; }
.cura-library__search {
    width: 100%;
    padding: 18px 24px 18px 64px;
    border: none;
    border-radius: 9999px;
    background: #FFFFFF;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    color: var(--cura-text-primary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    text-indent: 0;
}
.cura-library__search:focus {
    outline: 2px solid var(--cura-text-primary);
    outline-offset: 2px;
}
.cura-library__search::placeholder {
    color: var(--cura-text-muted);
}

.cura-library__selects {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.cura-library__select {
    appearance: none;
    -webkit-appearance: none;
    padding: 14px 44px 14px 20px;
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 9999px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    color: var(--cura-text-primary);
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 18px center;
}
.cura-library__select:focus {
    outline: 2px solid var(--cura-text-primary);
    outline-offset: 2px;
}

/* Hidden select kept for JS compatibility; pills control its value */
.cura-library__select--hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Type filter as pill buttons (second row) */
.cura-library__type-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 32px 0;
}
.cura-library__type-pill {
    appearance: none;
    -webkit-appearance: none;
    background: transparent !important;
    color: #191919 !important;
    border: 1px solid #191919 !important;
    padding: 8px 18px;
    border-radius: 9999px;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
    line-height: 1.2;
    box-shadow: none !important;
    outline: none !important;
}
.cura-library__type-pill:hover {
    background: rgba(25, 25, 25, 0.08) !important;
    border-color: #191919 !important;
    color: #191919 !important;
}
.cura-library__type-pill--active,
.cura-library__type-pill--active:hover,
.cura-library__type-pill--active:focus {
    background: #191919 !important;
    color: #FFFFFF !important;
    border-color: #191919 !important;
}

/* Section heading like "Popular this month" */
.cura-library__section {
    margin-bottom: 48px;
}
.cura-library__section-title {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 400;
    color: var(--cura-text-primary);
    margin: 0 0 24px;
}
.cura-library__section-title strong {
    font-weight: 700;
    font-style: italic;
}

.cura-library__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 28px;
}
.cura-library__empty {
    color: var(--cura-text-muted);
    font-size: 14px;
    padding: 24px 0;
}
.cura-library__footer {
    display: flex;
    justify-content: center;
    padding: 32px 0 16px;
}
.cura-library__footer[hidden] { display: none !important; }
.cura-library__load-more,
.cura-library__load-more:visited,
.cura-library__load-more:focus,
.cura-library__load-more:focus-visible {
    display: inline-block;
    padding: 12px 32px !important;
    background: transparent !important;
    background-color: transparent !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
    border-radius: 9999px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: background 0.2s ease, color 0.2s ease;
}
.cura-library__load-more:hover:not(:disabled) {
    background: #000000 !important;
    color: #FFFFFF !important;
}
.cura-library__load-more:disabled {
    opacity: 0.5;
    cursor: wait;
}
.cura-library__load-more[hidden] { display: none !important; }

/* --- Library card --- */
.cura-lib-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-decoration: none;
    color: inherit;
}
.cura-lib-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    background-color: #2A2520;
    border-radius: 18px;
    overflow: hidden;
}
.cura-lib-card__lock {
    position: absolute;
    bottom: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    display: flex;
    align-items: center;
    justify-content: center;
}
.cura-lib-card__lock svg {
    width: 18px;
    height: 18px;
}
.cura-lib-card__lock svg [fill="white"] { fill: #000; }

.cura-lib-card__title {
    font-size: 20px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0;
    line-height: 1.3;
}
.cura-lib-card__meta {
    font-size: 13px;
    color: var(--cura-text-secondary);
    margin: 0;
}
.cura-lib-card__meta strong {
    font-weight: 700;
    color: var(--cura-text-primary);
    font-style: normal;
}
.cura-lib-card__meta em {
    font-style: italic;
    color: var(--cura-text-secondary);
}
.cura-lib-card__excerpt {
    font-size: 14px;
    color: var(--cura-text-secondary);
    line-height: 1.55;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cura-lib-card__author {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #4A7C59; /* CURA green accent */
    margin: 4px 0 0;
    font-weight: 500;
}
.cura-lib-card__author-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(74, 124, 89, 0.12);
}
.cura-lib-card__author-icon svg {
    width: 14px;
    height: 14px;
}
.cura-lib-card__author-icon svg [stroke="black"] { stroke: #4A7C59; }

@media (max-width: 1024px) {
    .cura-library__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .cura-library__heading { font-size: 28px; }
    .cura-library__toolbar { flex-direction: column; align-items: stretch; }
    .cura-library__grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * MY MEMBERSHIP tab
 * ============================================================ */

.cura-membership-page {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

/* --- Hero card (crema) --- */
.cura-membership-hero {
    background: #DCC8B9;
    border-radius: 24px;
    padding: 32px 40px;
    color: #FFFFFF;
}
.cura-membership-hero__top {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}
.cura-membership-hero__badge {
    display: inline-block;
    padding: 4px 14px;
    background: rgba(255, 255, 255, 0.25);
    color: #FFFFFF;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.cura-membership-hero__since {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    font-style: italic;
}
.cura-membership-hero__plan {
    font-family: 'Juana', 'Inter', serif;
    font-size: 48px;
    line-height: 1;
    font-weight: 400;
    color: #FFFFFF;
    margin: 0 0 8px;
}
.cura-membership-hero__desc {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
    max-width: 640px;
    line-height: 1.5;
}

/* --- Stats grid --- */
.cura-membership-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.cura-membership-stat {
    background: #FFFFFF;
    border-radius: 16px;
    padding: 24px 28px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.cura-membership-stat__value {
    font-size: 32px;
    font-weight: 700;
    color: var(--cura-text-primary);
    line-height: 1.1;
}
.cura-membership-stat__value-sub {
    font-size: 16px;
    font-weight: 500;
    color: var(--cura-text-secondary);
    margin-left: 4px;
}
.cura-membership-stat__label {
    font-size: 13px;
    color: var(--cura-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 500;
}

/* --- Benefits list --- */
.cura-membership-benefits,
.cura-membership-billing {
    background: #FFFFFF;
    border-radius: 16px;
    padding: 28px 32px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}
.cura-membership-benefits__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0 0 18px;
}
.cura-membership-benefits__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cura-membership-benefits__item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    color: var(--cura-text-primary);
}
.cura-membership-benefits__item.is-inactive {
    color: var(--cura-text-muted);
    text-decoration: line-through;
}
.cura-membership-benefits__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}
.cura-membership-benefits__icon svg {
    width: 20px;
    height: 20px;
    display: block;
}

/* --- Billing row --- */
.cura-membership-billing__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 14px;
    margin: 0;
    padding: 8px 0;
}
.cura-membership-billing__row--muted {
    color: var(--cura-text-muted);
    font-style: italic;
}
.cura-membership-billing__label {
    color: var(--cura-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 500;
    font-size: 12px;
}
.cura-membership-billing__value {
    color: var(--cura-text-primary);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.cura-membership-billing__sub-id {
    font-family: 'SF Mono', Menlo, monospace;
    font-size: 12px;
    color: var(--cura-text-muted);
    background: var(--cura-bg-page);
    padding: 3px 8px;
    border-radius: 6px;
}

/* --- Actions --- */
.cura-membership-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.cura-membership-actions__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    border-radius: 9999px;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    transition: all 200ms ease;
}
.cura-membership-actions__btn--primary {
    background: var(--cura-text-primary);
    color: #FFFFFF;
    border: 1px solid var(--cura-text-primary);
}
.cura-membership-actions__btn--primary:hover {
    background: #333;
    color: #FFFFFF;
    transform: translateY(-1px);
}
.cura-membership-actions__btn--ghost {
    background: transparent !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
}
.cura-membership-actions__btn--ghost:hover {
    background: #000000 !important;
    color: #FFFFFF !important;
}
.cura-membership-actions__btn--danger {
    color: #8B3A3A !important;
    border-color: #8B3A3A !important;
    background: transparent !important;
}
.cura-membership-actions__btn--danger:hover {
    background: #8B3A3A !important;
    color: #FFFFFF !important;
}

/* --- Empty state (no membership) --- */
.cura-membership-empty {
    background: #FFFFFF;
    border-radius: 16px;
    padding: 48px 32px;
    text-align: center;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}
.cura-membership-empty__text {
    font-size: 18px;
    color: var(--cura-text-primary);
    margin: 0 0 24px;
}

@media (max-width: 900px) {
    .cura-membership-stats { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .cura-membership-hero { padding: 24px 24px; }
    .cura-membership-hero__plan { font-size: 36px; }
    .cura-membership-actions { flex-direction: column; align-items: stretch; }
    .cura-membership-actions__btn { width: 100%; }
}

/* ============================================================
 * SINGLE CONTENT page (article / audio / video / course)
 * Lives inside DashboardShell when logged in.
 * ============================================================ */

.cura-content-single {
    display: flex;
    flex-direction: column;
    gap: 24px;
    /* Standalone (not in shell) — give it its own breathing room */
    padding: 16px 40px 100px;
    max-width: 1440px;
    margin: 0 auto;
    box-sizing: border-box;
}
/* When wrapped in dashboard shell, the shell already provides the
   horizontal padding and max-width — kill duplication. */
.cura-cdash .cura-content-single {
    padding: 0;
    max-width: none;
    margin: 0;
}

.cura-content-single__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--cura-text-primary);
    text-decoration: none;
    font-weight: 500;
    align-self: flex-start;
}
.cura-content-single__back:hover { text-decoration: underline; }

.cura-content-single__hero {
    width: 100%;
    aspect-ratio: 16 / 8;
    border-radius: 24px;
    overflow: hidden;
    background: #2A2520;
}
.cura-content-single__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cura-content-single__header {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cura-content-single__meta {
    font-size: 13px;
    color: var(--cura-text-secondary);
    margin: 0;
    text-transform: none;
}
.cura-content-single__title {
    font-family: 'Juana', 'Inter', serif;
    font-size: 40px;
    line-height: 1.15;
    font-weight: 400;
    color: var(--cura-text-primary);
    margin: 0;
}
.cura-content-single__subtitle {
    font-size: 16px;
    color: var(--cura-text-secondary);
    margin: 0;
    line-height: 1.5;
}
.cura-content-single__info-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 4px;
}
.cura-content-single__facilitator {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #4A7C59;
    font-weight: 500;
}
.cura-content-single__facilitator-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(74, 124, 89, 0.12);
}
.cura-content-single__facilitator-icon svg {
    width: 14px;
    height: 14px;
}
.cura-content-single__facilitator-icon svg [stroke="black"] { stroke: #4A7C59; }
.cura-content-single__badge {
    display: inline-block;
    padding: 5px 14px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.cura-content-single__badge--free {
    background: rgba(74, 124, 89, 0.12);
    color: #4A7C59;
}
.cura-content-single__badge--membership {
    background: var(--cura-text-primary);
    color: #FFF;
}

/* --- Article --- */
.cura-content-article__body {
    font-size: 16px;
    line-height: 1.7;
    color: var(--cura-text-primary);
    max-width: 760px;
}
.cura-content-article__body p { margin: 0 0 18px; }
.cura-content-article__body h2,
.cura-content-article__body h3 {
    font-family: 'Juana', 'Inter', serif;
    font-weight: 400;
    color: var(--cura-text-primary);
    margin: 32px 0 12px;
}

/* --- Audio --- */
.cura-content-audio {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.cura-content-audio__description {
    font-size: 16px;
    line-height: 1.7;
    color: var(--cura-text-primary);
    max-width: 760px;
}
.cura-content-audio__description p { margin: 0 0 16px; }
.cura-content-audio__heading {
    font-size: 18px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0 0 16px;
}
.cura-content-audio__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cura-content-audio__track {
    background: #FFFFFF;
    border-radius: 16px;
    padding: 20px 24px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cura-content-audio__track-head {
    display: flex;
    align-items: center;
    gap: 16px;
}
.cura-content-audio__track-num {
    font-family: 'SF Mono', Menlo, monospace;
    font-size: 14px;
    color: var(--cura-text-muted);
    flex-shrink: 0;
    width: 32px;
}
.cura-content-audio__track-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--cura-text-primary);
}
.cura-content-audio__player {
    width: 100%;
    height: 44px;
}
.cura-content-audio__track-empty {
    margin: 0;
    padding: 12px 16px;
    background: var(--cura-bg-page);
    border-radius: 10px;
    font-size: 13px;
    color: var(--cura-text-muted);
    font-style: italic;
}
.cura-content-audio__embed-container iframe {
    width: 100%;
    border: none;
    border-radius: 16px;
    min-height: 152px;
}
.cura-content-audio__empty {
    background: var(--cura-bg-page);
    border-radius: 16px;
    padding: 32px;
    text-align: center;
    color: var(--cura-text-muted);
}

/* --- Course --- */
.cura-content-course {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.cura-content-course__intro {
    font-size: 16px;
    line-height: 1.7;
    color: var(--cura-text-primary);
    max-width: 760px;
}
.cura-content-course__intro p { margin: 0 0 16px; }
.cura-content-course__heading {
    font-size: 18px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0 0 20px;
}
.cura-content-course__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px 24px;
}
.cura-course-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cura-course-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    background-color: #2A2520;
    background-size: cover;
    background-position: center;
    border-radius: 16px;
    overflow: hidden;
}
.cura-course-card__play,
.cura-course-card__play:hover,
.cura-course-card__play:focus,
.cura-course-card__play:focus-visible,
.cura-course-card__play:visited,
button.cura-course-card__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 200ms ease;
    line-height: 0;
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    text-decoration: none !important;
    box-shadow: none !important;
    outline: none !important;
    cursor: pointer;
}
.cura-course-card__play:hover {
    transform: translate(-50%, -50%) scale(1.05);
}
/* Belt-and-braces to keep Elementor's global button + SVG accent colour
   from bleeding onto the circular play glyph. The circle must always be
   white; the triangle must always be black. */
.cura-course-card__play,
.cura-course-card__play:active,
.cura-course-card__play::-moz-focus-inner {
    -webkit-tap-highlight-color: transparent;
    -webkit-appearance: none;
    appearance: none;
    border: 0 !important;
    border-color: transparent !important;
    outline: 0 !important;
}
.cura-course-card__play svg {
    filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.25));
    overflow: visible;
}
.cura-course-card__play svg circle { fill: #FFFFFF !important; stroke: none !important; }
.cura-course-card__play svg path   { fill: #000000 !important; stroke: none !important; }
.cura-course-card__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.cura-course-card__num {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cura-text-muted);
    font-weight: 600;
}
.cura-course-card__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0;
    line-height: 1.3;
}
.cura-course-card__desc {
    font-size: 14px;
    color: var(--cura-text-secondary);
    line-height: 1.55;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cura-content-course__empty {
    background: var(--cura-bg-page);
    border-radius: 16px;
    padding: 32px;
    text-align: center;
    color: var(--cura-text-muted);
}

/* --- Video --- */
.cura-content-video {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.cura-content-video__player {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 18px;
    overflow: hidden;
    background: #2A2520;
}
.cura-content-video__player iframe,
.cura-content-video__player video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.cura-content-video__description {
    font-size: 16px;
    line-height: 1.7;
    color: var(--cura-text-primary);
    max-width: 760px;
}

/* Responsive */
@media (max-width: 1024px) {
    .cura-content-course__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .cura-content-single__title { font-size: 28px; }
    .cura-content-single__hero { aspect-ratio: 16 / 10; }
    .cura-content-course__grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * FACILITATOR DASHBOARD — Availability + Profile redesign
 * ============================================================ */

/* --- Aggressive Elementor color reset for fdash scope ---
   Same approach as the booking calendar: nuke pink/red defaults
   that Elementor injects via --e-global-color-* on form controls
   and buttons. */
.cura-fdash {
    --e-global-color-primary: #000000 !important;
    --e-global-color-secondary: #191919 !important;
    --e-global-color-text: #666666 !important;
    --e-global-color-accent: #000000 !important;
}
.cura-fdash button,
.cura-fdash input[type="submit"],
.cura-fdash input[type="button"] {
    font-family: 'Inter', sans-serif !important;
    box-shadow: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    border-radius: 9999px !important;
}
.cura-fdash button:hover,
.cura-fdash input[type="submit"]:hover,
.cura-fdash input[type="button"]:hover {
    box-shadow: none !important;
}

/* --- Card container (used by availability, profile, settings sections) --- */
.cura-fdash-card {
    background: #FFFFFF;
    border-radius: 20px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03), 0 6px 18px rgba(0, 0, 0, 0.03);
    padding: 28px 32px;
    margin-bottom: 20px;
}
.cura-fdash-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.cura-fdash-card__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--cura-text-primary);
    margin: 0 0 6px;
    text-transform: none;
    letter-spacing: 0;
}
.cura-fdash-card__hint {
    font-size: 13px;
    color: var(--cura-text-secondary);
    margin: 0 0 16px;
    line-height: 1.5;
    max-width: 640px;
}
.cura-fdash-card__header > div { flex: 1; min-width: 0; }
.cura-fdash-card__header .cura-fdash-card__hint { margin-bottom: 0; }

/* --- Inputs (shared) --- */
.cura-fdash-input {
    width: 100%;
    padding: 12px 16px !important;
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    font-family: 'Inter', sans-serif !important;
    color: var(--cura-text-primary) !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
    line-height: 1.4 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
.cura-fdash-input:focus {
    outline: 2px solid var(--cura-text-primary) !important;
    outline-offset: 2px;
    border-color: var(--cura-text-primary) !important;
}
.cura-fdash-input--time {
    width: 110px !important;
    flex-shrink: 0;
}
select.cura-fdash-input {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    padding-right: 44px !important;
    cursor: pointer;
}

/* --- Buttons (shared) --- */
.cura-fdash-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 13px 28px !important;
    border-radius: 9999px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    font-family: 'Inter', sans-serif !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
    transition: all 180ms ease !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
.cura-fdash-btn--primary {
    background: var(--cura-text-primary) !important;
    background-color: var(--cura-text-primary) !important;
    color: #FFFFFF !important;
    border: 1px solid var(--cura-text-primary) !important;
}
.cura-fdash-btn--primary:hover {
    background: #333 !important;
    background-color: #333 !important;
    color: #FFFFFF !important;
    transform: translateY(-1px);
}
.cura-fdash-btn--secondary {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--cura-text-primary) !important;
    border: 1px solid var(--cura-text-primary) !important;
}
.cura-fdash-btn--secondary:hover {
    background: var(--cura-text-primary) !important;
    background-color: var(--cura-text-primary) !important;
    color: #FFFFFF !important;
}

.cura-fdash-btn--icon {
    gap: 8px;
}
.cura-fdash-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
}
.cura-fdash-btn__icon svg {
    width: 16px;
    height: 16px;
    display: block;
}
.cura-fdash-btn__icon svg [stroke="black"] { stroke: currentColor; }
.cura-fdash-btn__icon svg [fill="black"]   { fill: currentColor; }

/* --- AVAILABILITY page --- */
.cura-fdash-availability__header {
    margin-bottom: 24px;
}
.cura-fdash-availability__copy {
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid rgba(0, 0, 0, 0.15) !important;
    border-radius: 9999px !important;
    padding: 8px 18px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: var(--cura-text-primary) !important;
    cursor: pointer !important;
    font-family: 'Inter', sans-serif !important;
    transition: all 180ms ease;
    line-height: 1 !important;
}
.cura-fdash-availability__copy:hover {
    background: #F2EEE9 !important;
    background-color: #F2EEE9 !important;
}

.cura-fdash-availability__days {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.cura-avail-day {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 14px 16px;
    border-radius: 12px;
    transition: background 180ms ease;
}
.cura-avail-day:hover { background: rgba(0, 0, 0, 0.02); }
.cura-avail-day.is-enabled { background: rgba(220, 200, 185, 0.12); }

.cura-avail-day__toggle {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    flex: 1;
    min-width: 160px;
    user-select: none;
}
.cura-avail-day__checkbox {
    /* Hidden visually, but accessible */
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.cura-avail-day__check-visual {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1.5px solid rgba(0, 0, 0, 0.25);
    background: #FFFFFF;
    flex-shrink: 0;
    transition: all 180ms ease;
}
.cura-avail-day__checkbox:checked + .cura-avail-day__check-visual {
    background: var(--cura-text-primary);
    border-color: var(--cura-text-primary);
}
.cura-avail-day__checkbox:checked + .cura-avail-day__check-visual::after {
    content: '';
    width: 6px;
    height: 11px;
    border: solid #FFFFFF;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) translate(-1px, -1px);
}
.cura-avail-day__checkbox:focus-visible + .cura-avail-day__check-visual {
    outline: 2px solid var(--cura-text-primary);
    outline-offset: 2px;
}
.cura-avail-day__name {
    font-size: 15px;
    font-weight: 500;
    color: var(--cura-text-primary);
}
.cura-avail-day__times {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.cura-avail-day:not(.is-enabled) .cura-avail-day__times {
    opacity: 0.4;
}
.cura-avail-day__sep {
    color: var(--cura-text-muted);
    font-size: 14px;
}

.cura-fdash-availability__actions {
    margin-top: 4px;
    display: flex;
    justify-content: flex-end;
}

.cura-fdash-availability__override-form {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-bottom: 16px;
}
.cura-fdash-availability__override-form .cura-fdash-input { width: auto; }

.cura-fdash-availability__override-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.cura-fdash-override {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 18px;
    background: #F2EEE9;
    border-radius: 12px;
}
.cura-fdash-override--empty {
    background: transparent;
    color: var(--cura-text-muted);
    font-style: italic;
    font-size: 13px;
    padding: 8px 0;
    justify-content: flex-start;
}
.cura-fdash-override__date {
    font-weight: 600;
    color: var(--cura-text-primary);
    font-size: 14px;
    flex-shrink: 0;
}
.cura-fdash-override__detail {
    color: var(--cura-text-secondary);
    font-size: 13px;
    flex: 1;
}
.cura-fdash-override__remove {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    color: var(--cura-text-muted) !important;
    cursor: pointer !important;
    font-size: 22px !important;
    line-height: 1 !important;
    padding: 0 8px !important;
    border-radius: 50% !important;
    width: 28px !important;
    height: 28px !important;
}
.cura-fdash-override__remove:hover {
    background: rgba(0, 0, 0, 0.06) !important;
    background-color: rgba(0, 0, 0, 0.06) !important;
    color: #B83333 !important;
}

/* --- PROFILE page --- */
.cura-fdash-profile__header { margin-bottom: 24px; }
.cura-fdash-card--bio {
    /* The wp_editor adds its own padding, so trim slightly */
    padding-bottom: 24px;
}

.cura-fdash-profile__photo-row {
    display: flex;
    align-items: flex-start;
    gap: 28px;
    flex-wrap: wrap;
}
.cura-fdash-profile__photo-preview {
    width: 120px !important;
    height: 120px !important;
    border-radius: 50% !important;
    object-fit: cover;
    object-position: center;
    background: #F2EEE9;
    border: 2px solid rgba(0, 0, 0, 0.04);
    aspect-ratio: 1 / 1;
    flex-shrink: 0;
}
.cura-fdash-profile__cover-preview-wrap {
    margin-bottom: 8px;
}
.cura-fdash-profile__cover-preview {
    width: 100%;
    max-height: 200px;
    object-fit: cover;
    border-radius: 12px;
    background: #F2EEE9;
}
.cura-fdash-profile__photo-actions {
    flex: 1;
    min-width: 240px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.cura-fdash-profile__photo-upload {
    display: inline-block;
    cursor: pointer;
}
.cura-fdash-profile__photo-upload input[type="file"] {
    display: none;
}
.cura-fdash-profile__photo-upload span {
    display: inline-block;
    padding: 9px 22px;
    border: 1px solid var(--cura-text-primary);
    border-radius: 9999px;
    color: var(--cura-text-primary);
    font-size: 13px;
    font-weight: 500;
    transition: all 180ms ease;
    background: transparent;
}
.cura-fdash-profile__photo-upload:hover span {
    background: var(--cura-text-primary);
    color: #FFFFFF;
}

.cura-fdash-profile__field {
    margin-bottom: 16px;
}
.cura-fdash-profile__field:last-child { margin-bottom: 0; }
.cura-fdash-profile__field label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--cura-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}
.cura-fdash-profile__field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.cura-fdash-profile__field-row .cura-fdash-profile__field { margin-bottom: 0; }

.cura-fdash-profile__actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 4px;
}

/* wp_editor visual tweaks: round its container so it doesn't look ugly */
.cura-fdash-profile__form .wp-editor-wrap {
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 12px;
    overflow: hidden;
    background: #FFFFFF;
}
.cura-fdash-profile__form .wp-editor-wrap .wp-editor-tabs {
    background: #FAFAFA;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.cura-fdash-profile__form .wp-switch-editor {
    background: transparent !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    color: var(--cura-text-secondary) !important;
    font-family: 'Inter', sans-serif !important;
    border-radius: 0 !important;
    padding: 8px 14px !important;
    margin: 0 !important;
    box-shadow: none !important;
}
.cura-fdash-profile__form .wp-switch-editor:hover {
    color: var(--cura-text-primary) !important;
}
.cura-fdash-profile__form .wp-editor-tabs .switch-tmce.wp-switch-editor[aria-pressed="true"],
.cura-fdash-profile__form .wp-editor-tabs .switch-html.wp-switch-editor[aria-pressed="true"] {
    color: var(--cura-text-primary) !important;
    border-bottom-color: var(--cura-text-primary) !important;
    background: #FFFFFF !important;
}
.cura-fdash-profile__form .mce-toolbar-grp,
.cura-fdash-profile__form .quicktags-toolbar {
    background: #FAFAFA !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
}
.cura-fdash-profile__form .mce-tinymce {
    box-shadow: none !important;
    border-radius: 0 !important;
}
.cura-fdash-profile__form .wp-editor-area {
    border: none !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    padding: 16px !important;
}

/* --- Notice variants --- */
.cura-fdash__notice--success {
    background: rgba(74, 124, 89, 0.10);
    color: #4A7C59;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 14px;
    margin-bottom: 20px;
}
.cura-fdash__notice--error {
    background: rgba(184, 51, 51, 0.10);
    color: #B83333;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 14px;
    margin-bottom: 20px;
}

/* Responsive */
@media (max-width: 768px) {
    .cura-fdash-card { padding: 22px 20px; }
    .cura-fdash-profile__field-row { grid-template-columns: 1fr; }
    .cura-avail-day { flex-direction: column; align-items: flex-start; gap: 12px; }
    .cura-avail-day__toggle { min-width: 0; }
    .cura-fdash-availability__override-form { flex-direction: column; align-items: stretch; }
    .cura-fdash-availability__override-form .cura-fdash-input { width: 100%; }
}
