/* =============================================================================
   SEXY & FUNNY — Dark Cinema Design System
   Premium Streaming / Photography Platform Theme Override
   Version: 2.0.0
   ============================================================================= */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Sora:wght@400;600;700;800&display=swap');

/* =============================================================================
   1. CSS CUSTOM PROPERTIES
   ============================================================================= */

:root {
    /* Backgrounds */
    --sf-base: #0D0F12;
    --sf-surface: #181B21;
    --sf-elevated: #22262E;
    --sf-elevated-2: #2A2F3A;
    --sf-elevated-3: #333844;

    /* Accent */
    --sf-accent: #3B9AE8;
    --sf-accent-hover: #56ADF0;
    --sf-accent-muted: rgba(59, 154, 232, 0.15);
    --sf-accent-glow: rgba(59, 154, 232, 0.25);
    --sf-warm: #E8A23B;
    --sf-warm-hover: #F0B556;
    --sf-warm-muted: rgba(232, 162, 59, 0.15);

    /* Text */
    --sf-text: #E8ECF2;
    --sf-text-secondary: #9BA4B5;
    --sf-text-muted: #5E6578;
    --sf-text-faint: #3D4452;

    /* Semantic */
    --sf-danger: #E84057;
    --sf-danger-hover: #F05A6E;
    --sf-success: #3BE87A;
    --sf-gold: #F5C518;
    --sf-gold-dim: #6B5A20;

    /* Borders & Shadows */
    --sf-border: rgba(255, 255, 255, 0.06);
    --sf-border-hover: rgba(255, 255, 255, 0.12);
    --sf-border-accent: rgba(59, 154, 232, 0.3);
    --sf-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3);
    --sf-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.4);
    --sf-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.5);
    --sf-shadow-glow: 0 0 20px rgba(59, 154, 232, 0.15);

    /* Glass */
    --sf-glass-bg: rgba(24, 27, 33, 0.85);
    --sf-glass-border: rgba(255, 255, 255, 0.08);

    /* Typography */
    --sf-font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --sf-font-heading: 'Sora', 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Transitions */
    --sf-ease: cubic-bezier(0.16, 1, 0.3, 1);
    --sf-duration: 0.3s;

    /* Layout */
    --sf-radius-sm: 6px;
    --sf-radius-md: 10px;
    --sf-radius-lg: 14px;
    --sf-radius-xl: 20px;
    --sf-content-width: 1400px;
}


/* =============================================================================
   2. GLOBAL FOUNDATION
   ============================================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

body,
body.elementor-default,
body.elementor-page,
body.sexyandfunny-theme {
    background-color: var(--sf-base) !important;
    color: var(--sf-text) !important;
    font-family: var(--sf-font-body) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    overflow-x: hidden;
}

/* Links */
a {
    color: var(--sf-accent) !important;
    text-decoration: none !important;
    transition: color var(--sf-duration) var(--sf-ease) !important;
}

a:hover {
    color: var(--sf-accent-hover) !important;
}

/* Selection */
::selection {
    background: var(--sf-accent);
    color: #fff;
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--sf-base);
}

::-webkit-scrollbar-thumb {
    background: var(--sf-elevated-2);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--sf-elevated-3);
}

/* Headings */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title {
    font-family: var(--sf-font-heading) !important;
    color: var(--sf-text) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.02em !important;
}

h1 { font-size: 2.25rem !important; }
h2 { font-size: 1.75rem !important; }
h3 { font-size: 1.35rem !important; }
h4 { font-size: 1.15rem !important; }

.elementor-heading-title a,
h1 a, h2 a, h3 a, h4 a {
    color: var(--sf-text) !important;
    transition: color var(--sf-duration) var(--sf-ease) !important;
}

.elementor-heading-title a:hover,
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover {
    color: var(--sf-accent) !important;
}

/* Text */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-text-editor p {
    color: var(--sf-text-secondary) !important;
}


/* =============================================================================
   3. ELEMENTOR CONTAINER RESETS
   ============================================================================= */

.e-con,
.elementor-section,
.elementor-column,
.elementor-element {
    --e-con-default-bg: transparent;
}

.elementor-section .elementor-container {
    max-width: var(--sf-content-width) !important;
}

.elementor-widget-container {
    transition: none !important;
}


/* =============================================================================
   4. HEADER & NAVIGATION
   ============================================================================= */

/* Sticky Header Container - inner elements get backdrop-filter */
header .e-con,
.elementor-location-header .e-con,
[data-elementor-type="header"] .e-con {
    background-color: var(--sf-surface) !important;
    border-bottom: 1px solid var(--sf-border) !important;
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
}

/* Outer header wrapper - NO backdrop-filter (creates containing block, breaks position:fixed) */
.elementor-location-header,
[data-elementor-type="header"] {
    background-color: var(--sf-surface) !important;
    border-bottom: 1px solid var(--sf-border) !important;
}

[data-elementor-type="header"] {
    /* position handled by Elementor sticky JS on inner container */
    z-index: 99999;
}

/* Logo */
.elementor-widget-image.elementor-widget-image .elementor-image img {
    max-height: 60px !important;
    width: auto !important;
    transition: opacity var(--sf-duration) var(--sf-ease);
}

/* Navigation Links */
.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu a,
nav.elementor-nav-menu--layout-horizontal a {
    color: var(--sf-text-secondary) !important;
    font-family: var(--sf-font-body) !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    padding: 8px 14px !important;
    position: relative;
    transition: color var(--sf-duration) var(--sf-ease) !important;
}

.elementor-nav-menu--main .elementor-item:hover,
.elementor-nav-menu--main .elementor-item.elementor-item-active {
    color: var(--sf-text) !important;
}

/* Underline hover effect */
.elementor-nav-menu--main .elementor-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    width: 70%;
    height: 2px;
    background: var(--sf-accent);
    border-radius: 1px;
    transition: transform var(--sf-duration) var(--sf-ease);
}

.elementor-nav-menu--main .elementor-item:hover::after,
.elementor-nav-menu--main .elementor-item.elementor-item-active::after {
    transform: translateX(-50%) scaleX(1) !important;
    background-color: var(--sf-accent) !important;
}

/* Dropdown Menu (Glass) */
.elementor-nav-menu--dropdown,
.elementor-nav-menu--dropdown-tablet,
.elementor-nav-menu--dropdown-mobile {
    background: var(--sf-glass-bg) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid var(--sf-glass-border) !important;
    border-radius: var(--sf-radius-md) !important;
    box-shadow: var(--sf-shadow-lg) !important;
    overflow: hidden !important;
    padding: 6px !important;
}

.elementor-nav-menu--dropdown a,
.elementor-nav-menu--dropdown li a {
    color: var(--sf-text-secondary) !important;
    background-color: transparent !important;
    border-radius: var(--sf-radius-sm) !important;
    padding: 10px 16px !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.elementor-nav-menu--dropdown a:hover,
.elementor-nav-menu--dropdown li a:hover {
    background-color: var(--sf-accent-muted) !important;
    color: var(--sf-text) !important;
}

/* Search */
.elementor-search-form input,
.elementor-search-form__input {
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
    border-radius: var(--sf-radius-lg) !important;
    padding: 8px 16px !important;
    font-family: var(--sf-font-body) !important;
    font-size: 14px !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.elementor-search-form input:focus,
.elementor-search-form__input:focus {
    border-color: var(--sf-accent) !important;
    box-shadow: 0 0 0 3px var(--sf-accent-muted) !important;
    outline: none !important;
    background: var(--sf-elevated-2) !important;
}

.elementor-search-form input::placeholder,
.elementor-search-form__input::placeholder {
    color: var(--sf-text-muted) !important;
}

.elementor-search-form__submit {
    background-color: var(--sf-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 var(--sf-radius-lg) var(--sf-radius-lg) 0 !important;
    transition: background-color var(--sf-duration) var(--sf-ease) !important;
}

.elementor-search-form__submit:hover {
    background-color: var(--sf-accent-hover) !important;
}

/* Hamburger Menu Icon */
.elementor-menu-toggle {
    color: var(--sf-text) !important;
}


/* =============================================================================
   5. CONTENT GRID CARDS (Homepage & Archives)
   Critical: ee-grid / ee-loop / Elementor posts
   ============================================================================= */

/* Grid container gap */
.elementor-loop-container,
.elementor-posts-container,
.ee-loop,
.ee-grid {
    gap: 20px !important;
    display: grid !important;
}

/* 4-col default for loop grids */
.ee-loop,
.ee-grid,
.elementor-loop-container {
    grid-template-columns: repeat(2, 1fr) !important;
}

/* Card Base */
.elementor-post,
.elementor-post__card,
.ee-loop__item,
.ee-grid__item,
.elementor-loop-container .e-loop-item,
.elementor-posts-container .elementor-post {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
    overflow: hidden !important;
    position: relative;
    transition: transform var(--sf-duration) var(--sf-ease),
                box-shadow var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
    box-shadow: none;
}

.elementor-post:hover,
.elementor-post__card:hover,
.ee-loop__item:hover,
.ee-grid__item:hover,
.elementor-loop-container .e-loop-item:hover,
.elementor-posts-container .elementor-post:hover {
    transform: translateY(-3px) !important;
    box-shadow: none !important;
}

/* Card Inner Reset (for loop templates) */
.ee-loop__item .e-con,
.ee-grid__item .e-con,
.e-loop-item .e-con {
    background: transparent !important;
    padding: 0 !important;
}

/* Card Thumbnail */
.elementor-post__thumbnail,
.ee-loop__item .elementor-widget-image,
.ee-grid__item .elementor-widget-image,
.e-loop-item .elementor-widget-image {
    overflow: hidden !important;
    position: relative;
}

/* Force 16:9 aspect on card thumbnails */
.elementor-post__thumbnail,
.ee-loop__item .elementor-widget-image .elementor-image,
.ee-grid__item .elementor-widget-image .elementor-image,
.e-loop-item .elementor-widget-image .elementor-image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    display: block;
}

.elementor-post__thumbnail img,
.ee-loop__item img,
.ee-grid__item img,
.e-loop-item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
    will-change: transform;
    transform-origin: center center !important;
}

.elementor-post:hover .elementor-post__thumbnail img,
.ee-loop__item:hover img,
.ee-grid__item:hover img,
.e-loop-item:hover img {
    transform: scale(1.03) !important;
    filter: brightness(1.08) !important;
}

/* Card content overlay at bottom with gradient */
.ee-loop__item .elementor-widget-heading,
.ee-grid__item .elementor-widget-heading,
.e-loop-item .elementor-widget-heading {
    position: relative;
    z-index: 2;
}

/* Card Title Styling */
.elementor-post__title,
.elementor-post__title a,
.ee-loop__item .elementor-heading-title,
.ee-grid__item .elementor-heading-title,
.e-loop-item .elementor-heading-title {
    color: var(--sf-text) !important;
    font-family: var(--sf-font-body) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ee-loop__item .elementor-heading-title a,
.ee-grid__item .elementor-heading-title a,
.e-loop-item .elementor-heading-title a {
    color: var(--sf-text) !important;
}

.ee-loop__item:hover .elementor-heading-title a,
.ee-grid__item:hover .elementor-heading-title a,
.e-loop-item:hover .elementor-heading-title a,
.elementor-post:hover .elementor-post__title a {
    color: var(--sf-accent) !important;
}

/* Card text below thumbnail */
.ee-loop__item .elementor-widget-heading .elementor-widget-container,
.ee-grid__item .elementor-widget-heading .elementor-widget-container,
.e-loop-item .elementor-widget-heading .elementor-widget-container {
    padding: 10px 12px 4px !important;
}

/* Card Meta */
.elementor-post__meta-data,
.elementor-post-date,
.elementor-post-author,
.elementor-post__excerpt,
.elementor-post__excerpt p,
.ee-loop__item .elementor-widget-text-editor p,
.ee-grid__item .elementor-widget-text-editor p,
.e-loop-item .elementor-widget-text-editor p {
    color: var(--sf-text-muted) !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

.ee-loop__item .elementor-widget-text-editor .elementor-widget-container,
.ee-grid__item .elementor-widget-text-editor .elementor-widget-container,
.e-loop-item .elementor-widget-text-editor .elementor-widget-container {
    padding: 2px 12px 10px !important;
}

/* Post type badge (for manual badges set in Elementor) */
.elementor-post__badge {
    background-color: var(--sf-accent) !important;
    color: #fff !important;
    border-radius: var(--sf-radius-sm) !important;
    font-weight: 600 !important;
    font-size: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 3px 8px !important;
}


/* =============================================================================
   6. SINGLE VIDEO PAGE
   ============================================================================= */

/* Video Player Wrapper */
.sf-video-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 24px !important;
    background: #000 !important;
    border-radius: var(--sf-radius-lg) !important;
    overflow: hidden !important;
    box-shadow: var(--sf-shadow-lg) !important;
}

.sf-video-wrapper .video-js {
    display: block !important;
    border-radius: 0 !important;
}

/* Video.js big play button */
.sf-video-wrapper .vjs-big-play-button {
    font-size: 3.5em !important;
    border-radius: 50% !important;
    width: 1.6em !important;
    height: 1.6em !important;
    line-height: 1.6em !important;
    background: rgba(59, 154, 232, 0.85) !important;
    border: none !important;
    transition: transform var(--sf-duration) var(--sf-ease),
                background var(--sf-duration) var(--sf-ease) !important;
}

.sf-video-wrapper .vjs-big-play-button:hover {
    transform: scale(1.1);
    background: var(--sf-accent) !important;
}

/* Video.js control bar */
.sf-video-wrapper .vjs-control-bar {
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.85)) !important;
}

.sf-video-wrapper .vjs-play-progress,
.sf-video-wrapper .vjs-volume-level {
    background: var(--sf-accent) !important;
}

/* Single Video Page: Title */
.single-video .elementor-heading-title {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
}

/* Single Video: Description card */
.single-video .elementor-widget-text-editor .elementor-widget-container {
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-md) !important;
    padding: 20px 24px !important;
}


/* =============================================================================
   7. SINGLE GALLERY PAGE
   ============================================================================= */

/* Gallery Grid */
.single-gallery .elementor-image-gallery .gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 12px !important;
}

.single-gallery .elementor-image-gallery .gallery-item {
    margin: 0 !important;
    border-radius: var(--sf-radius-sm) !important;
    overflow: hidden !important;
}

.single-gallery .elementor-image-gallery .gallery-item img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    transition: transform 0.4s var(--sf-ease) !important;
    will-change: transform;
}

.single-gallery .elementor-image-gallery .gallery-item:hover img {
    transform: scale(1.03) !important;
}


/* =============================================================================
   8. RATINGS ([sf_rating])
   ============================================================================= */

.sfam-rating-wrap {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 14px !important;
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-lg) !important;
    user-select: none;
}

.sfam-rating-label {
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--sf-text-muted) !important;
    min-width: auto !important;
}

.sfam-stars-empty .sfam-star {
    color: var(--sf-text-faint) !important;
    font-size: 18px !important;
}

.sfam-stars-filled .sfam-star {
    color: var(--sf-gold) !important;
    font-size: 18px !important;
}

.sfam-stars-container:not(.sfam-voted):hover .sfam-stars-filled .sfam-star {
    color: #FFD947 !important;
    text-shadow: 0 0 8px rgba(245, 197, 24, 0.4);
}

.sfam-star-btn {
    width: 18px !important;
    height: 18px !important;
}

.sfam-rating-info {
    font-size: 13px !important;
    gap: 6px !important;
}

.sfam-rating-avg {
    font-weight: 700 !important;
    color: var(--sf-gold) !important;
}

.sfam-rating-count {
    color: var(--sf-text-muted) !important;
    font-size: 12px !important;
}

.sfam-msg-success {
    color: var(--sf-success) !important;
}

.sfam-msg-error {
    color: var(--sf-danger) !important;
}


/* =============================================================================
   9. FAVORITE BUTTON ([sf_favorite_button])
   ============================================================================= */

.sfam-favorite-wrap {
    display: inline-flex;
    align-items: center;
}

.sfam-favorite-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-lg) !important;
    cursor: pointer !important;
    padding: 8px 14px !important;
    font-size: 14px !important;
    color: var(--sf-text-muted) !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfam-favorite-btn:hover {
    color: var(--sf-danger) !important;
    background: rgba(232, 64, 87, 0.08) !important;
    transform: scale(1.03);
}

.sfam-favorite-btn:active {
    transform: scale(0.95) !important;
}

.sfam-favorited {
    color: var(--sf-danger) !important;
    background: rgba(232, 64, 87, 0.1) !important;
}

.sfam-favorited .sfam-fav-heart-svg {
    fill: var(--sf-danger) !important;
    stroke: var(--sf-danger) !important;
    animation: sf-heart-bounce 0.4s var(--sf-ease);
}

.sfam-fav-heart {
    width: 20px !important;
    height: 20px !important;
}

.sfam-fav-heart-svg {
    width: 100% !important;
    height: 100% !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.5 !important;
    transition: fill var(--sf-duration) var(--sf-ease),
                stroke var(--sf-duration) var(--sf-ease) !important;
}

.sfam-fav-count {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: inherit !important;
}

@keyframes sf-heart-bounce {
    0%   { transform: scale(1); }
    25%  { transform: scale(1.3); }
    50%  { transform: scale(0.9); }
    75%  { transform: scale(1.15); }
    100% { transform: scale(1); }
}


/* =============================================================================
   10. PREV/NEXT NAVIGATION ([sf_prev_next])
   ============================================================================= */

.sf-prev-next {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 20px 0 !important;
    margin: 24px 0 !important;
}

.sf-prev a,
.sf-next a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 20px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-text-secondary) !important;
    border: none !important;
    border-radius: var(--sf-radius-lg) !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sf-prev a:hover,
.sf-next a:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
    transform: translateX(-2px);
}

.sf-next a:hover {
    transform: translateX(2px);
}

.sf-next {
    margin-left: auto !important;
}


/* =============================================================================
   11. SORT BAR ([sf_sort_bar])
   ============================================================================= */

.sf-sort-bar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    padding: 12px 0 !important;
    margin-bottom: 20px !important;
}

.sf-sort-label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--sf-text-muted) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    margin-right: 4px !important;
}

.sf-sort-option {
    display: inline-flex !important;
    align-items: center !important;
    padding: 6px 16px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-text-secondary) !important;
    border: none !important;
    border-radius: 999px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    white-space: nowrap;
}

.sf-sort-option:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.sf-sort-option.sf-sort-active {
    background: var(--sf-accent) !important;
    color: #fff !important;
}


/* =============================================================================
   12. HALL OF FAME ([sf_hall_of_fame])
   ============================================================================= */

.sf-hof {
    background: var(--sf-surface) !important;
    border-radius: var(--sf-radius-lg) !important;
    padding: 24px !important;
}

/* Period & Sort Nav */
.sf-hof-nav {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin-bottom: 16px !important;
    padding-bottom: 12px !important;
}

.sf-hof-nav-label {
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--sf-text-muted) !important;
    margin-right: 4px !important;
}

.sf-hof-nav-link {
    display: inline-flex !important;
    align-items: center !important;
    padding: 5px 14px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-text-secondary) !important;
    border: none !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sf-hof-nav-link:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.sf-hof-nav-link.sf-hof-active {
    background: var(--sf-accent) !important;
    color: #fff !important;
}

/* HOF List Items */
.sf-hof-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sf-hof-item {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 10px 14px !important;
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-md) !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sf-hof-item:hover {
    background: var(--sf-elevated-2) !important;
    transform: translateX(4px);
}

/* Top 3 special styling */
.sf-hof-item:nth-child(1) .sf-hof-rank {
    background: linear-gradient(135deg, #FFD700, #FFA500) !important;
    color: #000 !important;
}

.sf-hof-item:nth-child(2) .sf-hof-rank {
    background: linear-gradient(135deg, #C0C0C0, #A0A0A0) !important;
    color: #000 !important;
}

.sf-hof-item:nth-child(3) .sf-hof-rank {
    background: linear-gradient(135deg, #CD7F32, #A0522D) !important;
    color: #fff !important;
}

.sf-hof-rank {
    flex-shrink: 0 !important;
    width: 36px !important;
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text-muted) !important;
    border-radius: var(--sf-radius-sm) !important;
    font-weight: 800 !important;
    font-size: 13px !important;
    font-family: var(--sf-font-heading) !important;
}

.sf-hof-thumb {
    flex-shrink: 0 !important;
    width: 72px !important;
    height: 48px !important;
    border-radius: var(--sf-radius-sm) !important;
    overflow: hidden !important;
}

.sf-hof-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.sf-hof-thumb a {
    display: block;
    width: 100%;
    height: 100%;
}

.sf-hof-info {
    flex: 1 !important;
    min-width: 0 !important;
}

.sf-hof-title {
    color: var(--sf-text) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sf-hof-title:hover {
    color: var(--sf-accent) !important;
}

.sf-hof-meta {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-top: 2px !important;
}

.sf-hof-stat {
    font-size: 12px !important;
    color: var(--sf-text-muted) !important;
}

.sf-hof-stat-label {
    color: var(--sf-text-faint) !important;
}

.sf-hof-badge {
    font-size: 10px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 2px 8px !important;
    border-radius: 999px !important;
}

.sf-hof-badge-gallery {
    background: rgba(59, 154, 232, 0.15) !important;
    color: var(--sf-accent) !important;
}

.sf-hof-badge-video {
    background: var(--sf-warm-muted) !important;
    color: var(--sf-warm) !important;
}

.sf-hof-empty {
    text-align: center !important;
    color: var(--sf-text-muted) !important;
    padding: 40px 0 !important;
}

.sf-hof-no-thumb {
    width: 100%;
    height: 100%;
    background: var(--sf-elevated-2);
    border-radius: var(--sf-radius-sm);
}


/* =============================================================================
   13. SPONSOR PAGES
   ============================================================================= */

/* Sponsor Profile Page */
.sfam-sponsor-page {
    max-width: var(--sf-content-width) !important;
    margin: 0 auto !important;
    padding: 30px 20px !important;
}

.sfam-sponsor-header {
    display: flex !important;
    align-items: flex-start !important;
    gap: 24px !important;
    margin-bottom: 32px !important;
    padding: 24px !important;
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-lg) !important;
}

.sfam-sponsor-logo {
    flex-shrink: 0 !important;
}

.sfam-sponsor-logo img {
    max-width: 180px !important;
    max-height: 100px !important;
    border-radius: var(--sf-radius-sm) !important;
    object-fit: contain !important;
}

.sfam-sponsor-title {
    font-family: var(--sf-font-heading) !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: var(--sf-text) !important;
    margin: 0 0 8px !important;
}

.sfam-sponsor-description {
    color: var(--sf-text-secondary) !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin-bottom: 12px !important;
}

.sfam-sponsor-website {
    color: var(--sf-accent) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
}

.sfam-sponsor-stats {
    display: flex !important;
    gap: 20px !important;
    margin-top: 16px !important;
}

.sfam-sponsor-stat {
    text-align: center !important;
}

.sfam-sponsor-stat-value {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--sf-accent) !important;
    display: block !important;
}

.sfam-sponsor-stat-label {
    font-size: 11px !important;
    color: var(--sf-text-muted) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}

/* Sponsor Directory */
.sfam-sponsor-directory {
    max-width: var(--sf-content-width) !important;
    margin: 0 auto !important;
    padding: 30px 20px !important;
}

.sfam-sponsor-letter-filter {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    margin-bottom: 20px !important;
    padding: 12px !important;
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-md) !important;
}

.sfam-sponsor-letter-filter a,
.sfam-sponsor-letter-filter span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 32px !important;
    height: 32px !important;
    padding: 0 6px !important;
    border-radius: var(--sf-radius-sm) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfam-sponsor-letter-filter a {
    color: var(--sf-text-secondary) !important;
    background: transparent !important;
}

.sfam-sponsor-letter-filter a:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.sfam-sponsor-letter-filter a.sfam-letter-active {
    background: var(--sf-accent) !important;
    color: #fff !important;
}

.sfam-letter-disabled {
    color: var(--sf-text-faint) !important;
    cursor: default !important;
}

.sfam-sponsor-search-form {
    display: flex !important;
    gap: 8px !important;
    margin-bottom: 16px !important;
}

.sfam-sponsor-search-input {
    flex: 1 !important;
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
    border-radius: var(--sf-radius-md) !important;
    padding: 10px 16px !important;
    font-family: var(--sf-font-body) !important;
    font-size: 14px !important;
}

.sfam-sponsor-search-input:focus {
    border-color: var(--sf-accent) !important;
    box-shadow: 0 0 0 3px var(--sf-accent-muted) !important;
    outline: none !important;
}

.sfam-sponsor-search-input::placeholder {
    color: var(--sf-text-muted) !important;
}

.sfam-sponsor-search-btn {
    background: var(--sf-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
    padding: 10px 20px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: background var(--sf-duration) var(--sf-ease) !important;
}

.sfam-sponsor-search-btn:hover {
    background: var(--sf-accent-hover) !important;
}

.sfam-sponsor-directory-count {
    color: var(--sf-text-muted) !important;
    font-size: 13px !important;
    margin-bottom: 16px !important;
}

/* Sponsor Card Grid */
.sfam-sponsor-directory-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 20px !important;
}

.sfam-sponsor-card {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
    overflow: hidden !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfam-sponsor-card:hover {
    transform: translateY(-3px) !important;
}


/* =============================================================================
   14. MODEL PROFILE & DIRECTORY
   ============================================================================= */

/* Model Profile Widget */
.sfam-model-profile {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-lg) !important;
    overflow: hidden !important;
    transition: box-shadow var(--sf-duration) var(--sf-ease) !important;
}

.sfam-model-profile:hover {
}

/* Horizontal layout */
.sfam-layout-horizontal {
    display: flex !important;
    align-items: flex-start !important;
    gap: 20px !important;
    padding: 20px !important;
}

.sfam-layout-horizontal-reverse {
    display: flex !important;
    flex-direction: row-reverse !important;
    align-items: flex-start !important;
    gap: 20px !important;
    padding: 20px !important;
}

.sfam-layout-vertical {
    text-align: center !important;
}

.sfam-layout-vertical .sfam-profile-content {
    padding: 16px 20px !important;
}

/* Card layout */
.sfam-layout-card {
    padding: 0 !important;
}

.sfam-layout-card .sfam-profile-content {
    padding: 16px 20px !important;
}

/* Overlay layout */
.sfam-layout-overlay {
    position: relative !important;
}

.sfam-layout-overlay .sfam-profile-content {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    padding: 20px !important;
    background: linear-gradient(transparent, rgba(13, 15, 18, 0.9)) !important;
}

.sfam-profile-image img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: var(--sf-radius-sm) !important;
    object-fit: cover !important;
}

.sfam-profile-name {
    font-family: var(--sf-font-heading) !important;
    color: var(--sf-text) !important;
    font-weight: 700 !important;
    margin: 0 0 8px !important;
}

.sfam-profile-name a {
    color: var(--sf-text) !important;
    text-decoration: none !important;
}

.sfam-profile-name a:hover {
    color: var(--sf-accent) !important;
}

.sfam-profile-aliases {
    color: var(--sf-text-muted) !important;
    font-size: 13px !important;
    font-style: italic !important;
    margin-bottom: 8px !important;
}

.sfam-profile-bio {
    color: var(--sf-text-secondary) !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
}

.sfam-profile-stats {
    display: flex !important;
    gap: 20px !important;
    margin-top: 12px !important;
    padding-top: 12px !important;
}

.sfam-stat {
    text-align: center !important;
}

.sfam-stat-value {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: var(--sf-accent) !important;
    display: block !important;
}

.sfam-stat-label {
    font-size: 11px !important;
    color: var(--sf-text-muted) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}

.sfam-profile-external a {
    color: var(--sf-accent) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
}

/* Multi-model container */
.sfam-multi-model-container {
    gap: 20px !important;
}

.sfam-multi-model-container .sfam-model-profile.sfam-profile-compact {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
}

/* Model Directory Widget */
.sfam-model-directory {
    padding: 0 !important;
}

.sfam-directory-toolbar {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-bottom: 16px !important;
    padding: 12px 16px !important;
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-md) !important;
}

.sfam-search-wrapper {
    display: flex !important;
    flex: 1 !important;
    min-width: 200px !important;
}

.sfam-search-input {
    flex: 1 !important;
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
    border-radius: var(--sf-radius-md) 0 0 var(--sf-radius-md) !important;
    padding: 8px 14px !important;
    font-family: var(--sf-font-body) !important;
    font-size: 14px !important;
}

.sfam-search-input:focus {
    border-color: var(--sf-accent) !important;
    outline: none !important;
}

.sfam-search-input::placeholder {
    color: var(--sf-text-muted) !important;
}

.sfam-search-btn {
    background: var(--sf-accent) !important;
    border: none !important;
    color: #fff !important;
    padding: 8px 14px !important;
    border-radius: 0 var(--sf-radius-md) var(--sf-radius-md) 0 !important;
    cursor: pointer !important;
    font-size: 14px !important;
    transition: background var(--sf-duration) var(--sf-ease) !important;
}

.sfam-search-btn:hover {
    background: var(--sf-accent-hover) !important;
}

.sfam-sort-wrapper select,
.sfam-sort-select {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
    border-radius: var(--sf-radius-md) !important;
    padding: 8px 32px 8px 12px !important;
    font-family: var(--sf-font-body) !important;
    font-size: 13px !important;
    cursor: pointer !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239BA4B5' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
}

.sfam-results-count {
    font-size: 13px !important;
    color: var(--sf-text-muted) !important;
    margin-left: auto !important;
}

/* Alphabet Filter */
.sfam-alphabet-filter {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 3px !important;
    margin-bottom: 20px !important;
    padding: 10px 12px !important;
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-md) !important;
}

.sfam-alphabet-filter a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 30px !important;
    height: 30px !important;
    padding: 0 4px !important;
    border-radius: var(--sf-radius-sm) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--sf-text-secondary) !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfam-alphabet-filter a:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.sfam-alphabet-filter a.active {
    background: var(--sf-accent) !important;
    color: #fff !important;
}

/* Model Directory Grid */
.sfam-directory-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 16px !important;
}

.sfam-model-card {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
    overflow: hidden !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfam-model-card:hover {
    transform: translateY(-3px) !important;
}

.sfam-model-card img {
    width: 100% !important;
    display: block !important;
    transition: transform 0.5s var(--sf-ease) !important;
    will-change: transform;
}

.sfam-model-card:hover img {
    transform: scale(1.05) !important;
}

.sfam-no-results {
    grid-column: 1 / -1 !important;
    text-align: center !important;
    color: var(--sf-text-muted) !important;
    padding: 60px 20px !important;
    font-size: 15px !important;
}

/* Model Directory Pagination */
.sfam-pagination {
    display: flex !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 24px 0 !important;
}

.sfam-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-text-secondary) !important;
    text-decoration: none !important;
    border-radius: var(--sf-radius-sm) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfam-pagination .page-numbers:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.sfam-pagination .page-numbers.current {
    background: var(--sf-accent) !important;
    color: #fff !important;
}

/* Load More Button */
.sfam-load-more-wrapper {
    text-align: center !important;
    padding: 24px 0 !important;
}

.sfam-load-more-btn {
    background: var(--sf-elevated) !important;
    color: var(--sf-accent) !important;
    border: none !important;
    border-radius: var(--sf-radius-lg) !important;
    padding: 12px 32px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfam-load-more-btn:hover {
    background: var(--sf-accent) !important;
    color: #fff !important;
}


/* =============================================================================
   15. LIKE BUTTON (Model Likes)
   ============================================================================= */

.sfam-like-wrapper {
    display: inline-flex;
    align-items: center;
}

.sfam-like-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    padding: 6px 10px !important;
    border-radius: var(--sf-radius-md) !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfam-like-btn:hover {
    background: rgba(255, 71, 87, 0.1) !important;
    transform: scale(1.05);
}

.sfam-like-btn:active {
    transform: scale(0.92) !important;
}

.sfam-like-btn.liked .sfam-heart-filled {
    fill: #ff4757 !important;
    animation: sf-heart-bounce 0.4s var(--sf-ease);
}

.sfam-heart-svg {
    transition: transform var(--sf-duration) var(--sf-ease) !important;
}

.sfam-like-count {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--sf-text-secondary) !important;
}

.sfam-like-text {
    font-size: 13px !important;
    color: var(--sf-text-secondary) !important;
}

/* Animation variants */
.sfam-anim-pop .sfam-like-btn.liked .sfam-heart-svg {
    animation: sf-heart-bounce 0.4s var(--sf-ease);
}

.sfam-anim-bounce .sfam-like-btn.liked .sfam-heart-svg {
    animation: sf-heart-bounce 0.6s var(--sf-ease);
}

.sfam-anim-pulse .sfam-like-btn.liked .sfam-heart-svg {
    animation: sf-heart-pulse 0.5s var(--sf-ease);
}

@keyframes sf-heart-pulse {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.25); }
    100% { transform: scale(1); }
}


/* =============================================================================
   16. REQUEST BUTTON ([sf_request_button])
   ============================================================================= */

.sfam-request-wrap {
    display: inline-flex;
    align-items: center;
}

.sfam-request-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 20px !important;
    background: var(--sf-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--sf-radius-lg) !important;
    font-family: var(--sf-font-body) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfam-request-btn:hover {
    background: var(--sf-accent-hover) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 16px rgba(59, 154, 232, 0.3) !important;
}

.sfam-request-btn:active {
    transform: scale(0.97) !important;
}

.sfam-request-btn.sfam-requested {
    background: var(--sf-elevated) !important;
    color: var(--sf-success) !important;
    border: none !important;
    cursor: default !important;
}

.sfam-request-btn.sfam-requested:hover {
    transform: none !important;
    box-shadow: none !important;
}

.sfam-request-icon svg {
    width: 14px !important;
    height: 14px !important;
}

.sfam-request-count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 22px !important;
    height: 22px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 0 6px !important;
}

.sfam-requested .sfam-request-count {
    background: rgba(59, 232, 122, 0.15) !important;
}


/* =============================================================================
   17. MOST REQUESTED ([sf_most_requested])
   ============================================================================= */

.sfam-most-requested {
    padding: 0 !important;
}

.sfam-requested-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.sfam-requested-item {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 10px 14px !important;
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-md) !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfam-requested-item:hover {
    background: var(--sf-elevated-2) !important;
}

.sfam-requested-rank {
    flex-shrink: 0 !important;
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text-muted) !important;
    border-radius: var(--sf-radius-sm) !important;
    font-weight: 800 !important;
    font-size: 13px !important;
    font-family: var(--sf-font-heading) !important;
}

.sfam-requested-thumb {
    flex-shrink: 0 !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
}

.sfam-requested-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.sfam-requested-info {
    flex: 1 !important;
    min-width: 0 !important;
}

.sfam-requested-name {
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.sfam-requested-name a {
    color: var(--sf-text) !important;
}

.sfam-requested-name a:hover {
    color: var(--sf-accent) !important;
}

.sfam-requested-count-badge {
    font-size: 12px !important;
    color: var(--sf-text-muted) !important;
}

.sfam-no-requests {
    text-align: center !important;
    color: var(--sf-text-muted) !important;
    padding: 40px 20px !important;
}

.sfam-requested-pagination {
    display: flex !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 20px 0 !important;
}


/* =============================================================================
   18. SEE MORE FROM MODEL (Elementor Widget)
   ============================================================================= */

.sfam-see-more-wrapper {
    margin: 32px 0 !important;
}

.sfam-see-more-header {
    margin-bottom: 16px !important;
}

.sfam-see-more-header h3 {
    font-family: var(--sf-font-heading) !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    color: var(--sf-text) !important;
}

.sfam-see-more-header h3 a {
    color: var(--sf-text) !important;
}

.sfam-see-more-header h3 a:hover {
    color: var(--sf-accent) !important;
}

/* Grid layout */
.sfam-see-more-grid {
    display: grid !important;
    gap: 16px !important;
}

.sfam-see-more-grid.sfam-layout-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
}

/* Scroll layout */
.sfam-see-more-grid.sfam-layout-scroll {
    display: flex !important;
    overflow-x: auto !important;
    gap: 16px !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
}

.sfam-see-more-grid.sfam-layout-scroll .sfam-see-more-item {
    flex: 0 0 220px !important;
    scroll-snap-align: start;
}

.sfam-see-more-grid.sfam-layout-scroll::-webkit-scrollbar {
    height: 4px;
}

.sfam-see-more-grid.sfam-layout-scroll::-webkit-scrollbar-thumb {
    background: var(--sf-elevated-3);
    border-radius: 2px;
}

/* See More Item */
.sfam-see-more-item {
    background: var(--sf-elevated) !important;
    border-radius: var(--sf-radius-md) !important;
    overflow: hidden !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfam-see-more-item:hover {
    transform: translateY(-3px) !important;
}

.sfam-thumbnail {
    position: relative !important;
    overflow: hidden !important;
    display: block !important;
}

.sfam-thumbnail img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.5s var(--sf-ease) !important;
}

.sfam-see-more-item:hover .sfam-thumbnail img {
    transform: scale(1.05) !important;
}

.sfam-aspect-16-9 { aspect-ratio: 16 / 9 !important; }
.sfam-aspect-4-3 { aspect-ratio: 4 / 3 !important; }
.sfam-aspect-1-1 { aspect-ratio: 1 / 1 !important; }
.sfam-aspect-3-4 { aspect-ratio: 3 / 4 !important; }

/* Type badge on thumbnails */
.sfam-type-badge {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    padding: 3px 8px !important;
    border-radius: var(--sf-radius-sm) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    backdrop-filter: blur(8px) !important;
    z-index: 2 !important;
}

.sfam-badge-gallery {
    background: rgba(59, 154, 232, 0.8) !important;
    color: #fff !important;
}

.sfam-badge-video {
    background: rgba(232, 162, 59, 0.8) !important;
    color: #fff !important;
}

/* Duration / Count overlays */
.sfam-duration,
.sfam-image-count {
    position: absolute !important;
    bottom: 8px !important;
    right: 8px !important;
    padding: 2px 8px !important;
    background: rgba(0, 0, 0, 0.75) !important;
    color: #fff !important;
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    z-index: 2 !important;
}

/* Item title/meta inside see-more */
.sfam-see-more-item .sfam-sm-title {
    padding: 10px 12px 4px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--sf-text) !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sfam-see-more-item .sfam-sm-title a {
    color: var(--sf-text) !important;
}

.sfam-see-more-item:hover .sfam-sm-title a {
    color: var(--sf-accent) !important;
}

/* View All Button */
.sfam-see-more-footer {
    text-align: center !important;
    margin-top: 20px !important;
}

.sfam-view-all-btn {
    display: inline-flex !important;
    align-items: center !important;
    padding: 10px 28px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-accent) !important;
    border: none !important;
    border-radius: var(--sf-radius-lg) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfam-view-all-btn:hover {
    background: var(--sf-accent) !important;
    color: #fff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 16px rgba(59, 154, 232, 0.3) !important;
}


/* =============================================================================
   19. BATTLE GAMES
   ============================================================================= */

/* Battle List */
.sfbg-battle-list {
    max-width: var(--sf-content-width) !important;
    margin: 0 auto !important;
}

.sfbg-list-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 24px !important;
}

.sfbg-list-title {
    font-family: var(--sf-font-heading) !important;
    color: var(--sf-text) !important;
}

/* Battle Buttons */
.sfbg-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 22px !important;
    border-radius: var(--sf-radius-lg) !important;
    font-family: var(--sf-font-body) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    border: none !important;
    text-decoration: none !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfbg-btn-primary {
    background: var(--sf-accent) !important;
    color: #fff !important;
}

.sfbg-btn-primary:hover {
    background: var(--sf-accent-hover) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 16px rgba(59, 154, 232, 0.3) !important;
    color: #fff !important;
}

.sfbg-btn-play {
    background: var(--sf-warm) !important;
    color: #fff !important;
    width: 100% !important;
}

.sfbg-btn-play:hover {
    background: var(--sf-warm-hover) !important;
    color: #fff !important;
}

.sfbg-btn-vote {
    background: linear-gradient(135deg, #e91e63, #c2185b) !important;
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: var(--sf-radius-lg) !important;
    box-shadow: 0 4px 15px rgba(233, 30, 99, 0.3) !important;
}

.sfbg-btn-vote:hover {
    background: linear-gradient(135deg, #f06292, #e91e63) !important;
    color: #fff !important;
    box-shadow: 0 6px 25px rgba(233, 30, 99, 0.5) !important;
    transform: translateY(-2px) !important;
}

/* Game Card Grid */
.sfbg-games-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 20px !important;
}

.sfbg-game-card {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
    overflow: hidden !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfbg-game-card:hover {
    transform: translateY(-4px) !important;
}

.sfbg-card-thumbnail {
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    background: var(--sf-base) !important;
}

.sfbg-card-thumbnail img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.5s var(--sf-ease) !important;
}

.sfbg-game-card:hover .sfbg-card-thumbnail img {
    transform: scale(1.05) !important;
}

.sfbg-auto-thumb {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    position: relative !important;
}

.sfbg-auto-thumb img {
    width: 50% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.sfbg-vs-mini {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    background: var(--sf-warm) !important;
    color: #fff !important;
    font-weight: 800 !important;
    font-size: 14px !important;
    padding: 6px 10px !important;
    border-radius: var(--sf-radius-sm) !important;
    z-index: 2 !important;
    box-shadow: var(--sf-shadow-sm) !important;
}

.sfbg-no-thumb {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text-muted) !important;
    font-size: 13px !important;
}

.sfbg-card-body {
    padding: 14px 16px !important;
}

.sfbg-card-title {
    font-family: var(--sf-font-heading) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--sf-text) !important;
    margin: 0 0 8px !important;
}

.sfbg-card-meta {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 12px !important;
    color: var(--sf-text-muted) !important;
    margin-bottom: 12px !important;
}

/* Battle Play UI */
.sfbg-battle-play {
    max-width: 900px !important;
    margin: 0 auto !important;
}

.sfbg-play-header {
    text-align: center !important;
    margin-bottom: 24px !important;
}

.sfbg-play-title {
    font-family: var(--sf-font-heading) !important;
    color: var(--sf-text) !important;
    font-size: 1.5rem !important;
}

.sfbg-play-description,
.sfbg-play-instructions {
    color: var(--sf-text-secondary) !important;
    font-size: 14px !important;
}

.sfbg-round-info {
    text-align: center !important;
    margin-bottom: 16px !important;
    color: var(--sf-text-muted) !important;
    font-size: 13px !important;
}

/* Arena (VS layout) */
.sfbg-arena {
    display: flex !important;
    align-items: stretch !important;
    gap: 20px !important;
    margin-bottom: 24px !important;
}

.sfbg-contestant {
    flex: 1 !important;
    background: var(--sf-elevated) !important;
    border: 2px solid transparent !important;
    border-radius: var(--sf-radius-lg) !important;
    overflow: hidden !important;
    cursor: pointer !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfbg-contestant:hover {
    border-color: var(--sf-accent) !important;
    transform: scale(1.02) !important;
    box-shadow: var(--sf-shadow-glow) !important;
}

.sfbg-contestant-image img {
    width: 100% !important;
    display: block !important;
}

/* Battle Pagination */
.sfbg-pagination {
    display: flex !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 20px 0 !important;
}

.sfbg-page-current,
.sfbg-page-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    border-radius: var(--sf-radius-sm) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfbg-page-link {
    background: var(--sf-elevated) !important;
    color: var(--sf-text-secondary) !important;
    border: none !important;
}

.sfbg-page-link:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.sfbg-page-current {
    background: var(--sf-accent) !important;
    color: #fff !important;
    font-weight: 700 !important;
}

.sfbg-no-games,
.sfbg-error {
    text-align: center !important;
    color: var(--sf-text-muted) !important;
    padding: 40px 20px !important;
}


/* =============================================================================
   20. FAVORITES GRID (My Favorites Page)
   ============================================================================= */

.sfam-favorites-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
}

.sfam-favorites-card {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
    overflow: hidden !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.sfam-favorites-card:hover {
    transform: translateY(-3px) !important;
}

.sfam-fav-thumb {
    display: block !important;
    position: relative !important;
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    background: var(--sf-base) !important;
}

.sfam-fav-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.5s var(--sf-ease) !important;
}

.sfam-favorites-card:hover .sfam-fav-thumb img {
    transform: scale(1.05) !important;
}

.sfam-fav-type-badge {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    background: rgba(0, 0, 0, 0.7) !important;
    backdrop-filter: blur(4px) !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    padding: 3px 8px !important;
    border-radius: var(--sf-radius-sm) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.sfam-fav-info {
    padding: 10px 12px !important;
}

.sfam-fav-title {
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
}

.sfam-fav-title a {
    color: var(--sf-text) !important;
}

.sfam-fav-title a:hover {
    color: var(--sf-accent) !important;
}

.sfam-fav-no-thumb {
    background: var(--sf-base) !important;
    color: var(--sf-text-muted) !important;
}

.sfam-no-favorites,
.sfam-favorites-login-msg {
    color: var(--sf-text-muted) !important;
    text-align: center !important;
    padding: 40px 20px !important;
}

.sfam-favorites-pagination {
    display: flex !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 24px 0 !important;
}

.sfam-favorites-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-text-secondary) !important;
    border-radius: var(--sf-radius-sm) !important;
    font-size: 13px !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.sfam-favorites-pagination .page-numbers:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.sfam-favorites-pagination .page-numbers.current {
    background: var(--sf-accent) !important;
    color: #fff !important;
}


/* =============================================================================
   21. BUTTONS (Global Elementor)
   ============================================================================= */

.elementor-button,
.elementor-button-wrapper .elementor-button {
    background-color: var(--sf-accent) !important;
    border: none !important;
    color: #fff !important;
    border-radius: var(--sf-radius-lg) !important;
    font-family: var(--sf-font-body) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    padding: 12px 24px !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    will-change: transform;
}

.elementor-button:hover {
    background-color: var(--sf-accent-hover) !important;
    box-shadow: 0 4px 20px rgba(59, 154, 232, 0.3) !important;
    transform: translateY(-1px) !important;
    color: #fff !important;
}

.elementor-button:active {
    transform: scale(0.98) !important;
}


/* =============================================================================
   22. PAGINATION (Global)
   ============================================================================= */

.elementor-pagination,
nav.navigation.pagination {
    display: flex !important;
    gap: 4px !important;
    justify-content: center !important;
    padding: 24px 0 !important;
}

.page-numbers a,
.page-numbers span,
.elementor-pagination a,
.elementor-pagination span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 12px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-text-secondary) !important;
    border-radius: var(--sf-radius-sm) !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.page-numbers a:hover,
.elementor-pagination a:hover {
    background: var(--sf-elevated-2) !important;
    color: var(--sf-text) !important;
}

.page-numbers .current,
.page-numbers span.current,
.elementor-pagination span.current {
    background: var(--sf-accent) !important;
    color: #fff !important;
    font-weight: 700 !important;
}


/* =============================================================================
   23. FOOTER
   ============================================================================= */

footer .e-con,
.elementor-location-footer .e-con,
.elementor-location-footer,
[data-elementor-type="footer"],
[data-elementor-type="footer"] .e-con {
    background-color: var(--sf-base) !important;
    border-top: 1px solid var(--sf-border) !important;
}

footer .elementor-heading-title,
.elementor-location-footer .elementor-heading-title,
[data-elementor-type="footer"] .elementor-heading-title {
    color: var(--sf-text-secondary) !important;
    font-family: var(--sf-font-heading) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    margin-bottom: 12px !important;
}

footer .elementor-widget a,
.elementor-location-footer .elementor-widget a,
[data-elementor-type="footer"] a {
    color: var(--sf-text-muted) !important;
    font-size: 13px !important;
}

footer .elementor-widget a:hover,
.elementor-location-footer .elementor-widget a:hover,
[data-elementor-type="footer"] a:hover {
    color: var(--sf-accent) !important;
}

footer .elementor-widget-text-editor p,
.elementor-location-footer .elementor-widget-text-editor p,
[data-elementor-type="footer"] .elementor-widget-text-editor p {
    color: var(--sf-text-faint) !important;
    font-size: 13px !important;
}

/* Footer icons */
footer .elementor-icon,
footer .elementor-social-icon,
[data-elementor-type="footer"] .elementor-icon,
[data-elementor-type="footer"] .elementor-social-icon {
    color: var(--sf-text-muted) !important;
    transition: color var(--sf-duration) var(--sf-ease) !important;
}

footer .elementor-icon:hover,
footer .elementor-social-icon:hover,
[data-elementor-type="footer"] .elementor-icon:hover,
[data-elementor-type="footer"] .elementor-social-icon:hover {
    color: var(--sf-accent) !important;
}

/* Copyright bar */
footer .e-con:last-child,
[data-elementor-type="footer"] .e-con:last-child {
    border-top: 1px solid var(--sf-border) !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}

/* Tighten footer column spacing - reduce excessive padding */
footer .e-con.e-parent,
[data-elementor-type="footer"] .e-con.e-parent {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

footer .e-con.e-child,
[data-elementor-type="footer"] .e-con.e-child {
    padding-left: 12px !important;
    padding-right: 12px !important;
}
}


/* =============================================================================
   24. ICONS & SOCIAL
   ============================================================================= */

.elementor-icon,
.elementor-social-icon {
    color: var(--sf-text-muted) !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
}

.elementor-icon:hover,
.elementor-social-icon:hover {
    color: var(--sf-accent) !important;
    transform: translateY(-2px);
}


/* =============================================================================
   25. FORMS
   ============================================================================= */

.elementor-field-textual,
.elementor-field-textual input,
.elementor-field-textual textarea,
.elementor-field-group input,
.elementor-field-group textarea,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="url"],
textarea,
select {
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
    border-radius: var(--sf-radius-md) !important;
    font-family: var(--sf-font-body) !important;
    font-size: 14px !important;
    padding: 10px 14px !important;
    transition: border-color var(--sf-duration) var(--sf-ease),
                box-shadow var(--sf-duration) var(--sf-ease) !important;
}

.elementor-field-textual:focus,
.elementor-field-group input:focus,
input:focus,
textarea:focus,
select:focus {
    border-color: var(--sf-accent) !important;
    box-shadow: 0 0 0 3px var(--sf-accent-muted) !important;
    outline: none !important;
}

input::placeholder,
textarea::placeholder {
    color: var(--sf-text-muted) !important;
}

/* Dividers */
.elementor-divider-separator {
    border-color: var(--sf-border) !important;
}

/* Tabs */
.elementor-tab-title {
    color: var(--sf-text-muted) !important;
    transition: color var(--sf-duration) var(--sf-ease) !important;
}

.elementor-tab-title.elementor-active {
    color: var(--sf-accent) !important;
}

/* Images */
.elementor-widget-image img {
    border-radius: var(--sf-radius-sm) !important;
}

/* Video Widget */
.elementor-widget-video {
    border-radius: var(--sf-radius-md) !important;
    overflow: hidden !important;
}


/* =============================================================================
   26. RESPONSIVE BREAKPOINTS
   ============================================================================= */

/* Tablet: 768-1199px */
@media (max-width: 1199px) {
    .ee-loop,
    .ee-grid,
    .elementor-loop-container {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .sfam-favorites-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .sfam-directory-grid {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
    }
}

/* Mobile landscape & small tablet: 768px */
@media (max-width: 767px) {
    .ee-loop,
    .ee-grid,
    .elementor-loop-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    .sfam-favorites-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .sfam-directory-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
        gap: 12px !important;
    }

    /* Header adjustments */
    .elementor-nav-menu--dropdown a {
        font-size: 15px !important;
        padding: 12px 16px !important;
    }

    /* Sponsor header stacks */
    .sfam-sponsor-header {
        flex-direction: column !important;
    }

    /* HOF items compact */
    .sf-hof-thumb {
        width: 56px !important;
        height: 38px !important;
    }

    /* Sort bar scroll */
    .sf-sort-bar {
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        padding-bottom: 8px !important;
    }

    /* Battle arena stacks */
    .sfbg-arena {
        flex-direction: column !important;
    }

    /* Prev/Next stacks */
    .sf-prev-next {
        flex-direction: column !important;
        gap: 8px !important;
    }

    .sf-prev a,
    .sf-next a {
        width: 100% !important;
        justify-content: center !important;
    }

    .sf-next {
        margin-left: 0 !important;
    }

    /* Model profile horizontal -> vertical on mobile */
    .sfam-layout-horizontal,
    .sfam-layout-horizontal-reverse {
        flex-direction: column !important;
    }

    .sfam-profile-image {
        width: 100% !important;
    }

    .sfam-profile-stats {
        flex-wrap: wrap !important;
        gap: 12px !important;
    }

    /* Directory toolbar stacks */
    .sfam-directory-toolbar {
        flex-direction: column !important;
    }

    .sfam-search-wrapper {
        width: 100% !important;
    }

    /* Alphabet filter smaller */
    .sfam-alphabet-filter a {
        min-width: 26px !important;
        height: 26px !important;
        font-size: 11px !important;
    }

    /* Heading sizes */
    h1, .elementor-heading-title {
        font-size: 1.5rem !important;
    }

    h2 {
        font-size: 1.25rem !important;
    }
}

/* Mobile portrait: <480px */
@media (max-width: 479px) {
    .ee-loop,
    .ee-grid,
    .elementor-loop-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    .sfam-favorites-grid {
        grid-template-columns: 1fr !important;
    }

    .sfbg-games-grid {
        grid-template-columns: 1fr !important;
    }

    .sfam-sponsor-directory-grid {
        grid-template-columns: 1fr !important;
    }

    /* Compact card text */
    .ee-loop__item .elementor-heading-title,
    .ee-grid__item .elementor-heading-title,
    .e-loop-item .elementor-heading-title {
        font-size: 12px !important;
    }

    .ee-loop__item .elementor-widget-heading .elementor-widget-container,
    .ee-grid__item .elementor-widget-heading .elementor-widget-container,
    .e-loop-item .elementor-widget-heading .elementor-widget-container {
        padding: 8px 8px 2px !important;
    }

    .ee-loop__item .elementor-widget-text-editor .elementor-widget-container,
    .ee-grid__item .elementor-widget-text-editor .elementor-widget-container,
    .e-loop-item .elementor-widget-text-editor .elementor-widget-container {
        padding: 2px 8px 8px !important;
    }

    /* Rating compact */
    .sfam-rating-wrap {
        padding: 6px 10px !important;
        gap: 6px !important;
    }

    .sfam-stars-empty .sfam-star,
    .sfam-stars-filled .sfam-star {
        font-size: 14px !important;
    }

    .sfam-star-btn {
        width: 14px !important;
        height: 14px !important;
    }
}


/* =============================================================================
   27. ANIMATIONS & MICRO-INTERACTIONS
   ============================================================================= */

/* Staggered card load animation */
@keyframes sf-card-in {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ee-loop__item,
.ee-grid__item,
.elementor-loop-container .e-loop-item,
.elementor-posts-container .elementor-post {
    animation: sf-card-in 0.5s var(--sf-ease) both;
}

.ee-loop__item:nth-child(1),
.ee-grid__item:nth-child(1),
.e-loop-item:nth-child(1) { animation-delay: 0.05s; }
.ee-loop__item:nth-child(2),
.ee-grid__item:nth-child(2),
.e-loop-item:nth-child(2) { animation-delay: 0.1s; }
.ee-loop__item:nth-child(3),
.ee-grid__item:nth-child(3),
.e-loop-item:nth-child(3) { animation-delay: 0.15s; }
.ee-loop__item:nth-child(4),
.ee-grid__item:nth-child(4),
.e-loop-item:nth-child(4) { animation-delay: 0.2s; }
.ee-loop__item:nth-child(5),
.ee-grid__item:nth-child(5),
.e-loop-item:nth-child(5) { animation-delay: 0.25s; }
.ee-loop__item:nth-child(6),
.ee-grid__item:nth-child(6),
.e-loop-item:nth-child(6) { animation-delay: 0.3s; }
.ee-loop__item:nth-child(7),
.ee-grid__item:nth-child(7),
.e-loop-item:nth-child(7) { animation-delay: 0.35s; }
.ee-loop__item:nth-child(8),
.ee-grid__item:nth-child(8),
.e-loop-item:nth-child(8) { animation-delay: 0.4s; }

/* Button press feedback */
button:active,
.sfbg-btn:active,
.elementor-button:active {
    transform: scale(0.97) !important;
}

/* Focus visible ring for accessibility */
*:focus-visible {
    outline: 2px solid var(--sf-accent) !important;
    outline-offset: 2px !important;
}

/* Smooth page transitions - NOT on header (animation creates containing block, breaks sticky) */
.elementor-location-footer,
.elementor-location-single,
.elementor-location-archive {
    animation: sf-page-in 0.4s ease both;
}

@keyframes sf-page-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Loading spinner for AJAX elements */
.sfam-loading::after {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--sf-text-faint);
    border-top-color: var(--sf-accent);
    border-radius: 50%;
    animation: sf-spin 0.6s linear infinite;
}

@keyframes sf-spin {
    to { transform: rotate(360deg); }
}


/* =============================================================================
   28. WIDGET PLACEHOLDER (Editor Mode)
   ============================================================================= */

.sfam-widget-placeholder {
    background: var(--sf-elevated) !important;
    border: none !important;
    border-radius: var(--sf-radius-md) !important;
    padding: 30px !important;
    text-align: center !important;
    color: var(--sf-text-muted) !important;
    font-size: 14px !important;
}


/* =============================================================================
   29. INFINITE SCROLL PLUGIN
   ============================================================================= */

.sf-infinite-scroll-loading {
    text-align: center !important;
    padding: 30px 0 !important;
    color: var(--sf-text-muted) !important;
}

.sf-load-more-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 32px !important;
    background: var(--sf-elevated) !important;
    color: var(--sf-accent) !important;
    border: none !important;
    border-radius: var(--sf-radius-lg) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: all var(--sf-duration) var(--sf-ease) !important;
    margin: 0 auto !important;
}

.sf-load-more-btn:hover {
    background: var(--sf-accent) !important;
    color: #fff !important;
}


/* =============================================================================
   30. UTILITY & MISC
   ============================================================================= */

/* Hide default WP admin bar styling conflicts */
body.admin-bar [data-elementor-type="header"] {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar [data-elementor-type="header"] {
        top: 46px;
    }
}

/* BuddyPress & bbPress dark overrides */
#buddypress,
#bbpress-forums {
    color: var(--sf-text) !important;
}

#buddypress a,
#bbpress-forums a {
    color: var(--sf-accent) !important;
}

/* Ultimate Member dark overrides */
.um .um-form input[type="text"],
.um .um-form input[type="email"],
.um .um-form input[type="password"],
.um .um-form textarea {
    background: var(--sf-elevated) !important;
    border-color: var(--sf-border) !important;
    color: var(--sf-text) !important;
}

/* Prevent layout shifts from Elementor animations */
.elementor-invisible {
    visibility: visible !important;
}

/* Grid gap override for Elementor loop */
.elementor-loop-container {
    row-gap: 20px !important;
    column-gap: 20px !important;
}

/* Override any remaining white backgrounds from old theme */
.elementor-section-wrap > .elementor-section,
.e-con {
    background-color: transparent;
}

/* Ensure images never overflow their containers */
img {
    max-width: 100%;
    height: auto;
}

/* Print styles */
@media print {
    body {
        background: #fff !important;
        color: #000 !important;
    }

    header, footer,
    .elementor-location-header,
    .elementor-location-footer,
    .sf-sort-bar,
    .sf-prev-next,
    .sfam-favorite-wrap {
        display: none !important;
    }
}

/* NUCLEAR: Kill ALL grey borders on grid items */
[class*='elementor-'] .ee-grid__item,
[class*='elementor-'] .ee-loop__item,
[class*='elementor-'] article,
.ee-grid__item,
.ee-loop__item,
.elementor-post,
.elementor-posts-container > *,
.sf-card {
    border: none !important;
    border-color: transparent !important;
    outline: none !important;
    box-shadow: none !important;
}
[class*='elementor-'] .ee-grid__item {
    padding: 0 !important;
}
.ee-grid.ee-loop,
.elementor-posts-container,
.elementor-widget-posts-extra .elementor-widget-container {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* FIX NAV MENU - force visibility */
.premium-nav-menu-container,
.premium-nav-menu,
.premium-main-nav-menu {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.premium-nav-menu .premium-menu-link {
    color: #3B9AE8 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    padding: 8px 16px !important;
}
.premium-nav-menu .premium-menu-link:hover {
    color: #fff !important;
}
/* The nav bar container */
.elementor-widget-premium-nav-menu {
    background: transparent !important;
}
/* Ensure the header section with the nav is visible */
header .elementor-container,
.elementor-location-header .elementor-container {
    display: flex !important;
}

/* ABSOLUTE NUCLEAR on remaining borders */
article, article > div, .ee-grid__item > article,
.ee-loop__item, .ee-grid__item,
.elementor-post, .elementor-widget-container {
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    outline: 0 !important;
}

/* Fix nav menu - horizontal layout */
.premium-nav-menu-container .premium-nav-menu.premium-main-nav-menu {
    flex-direction: row !important;
    align-items: center !important;
    gap: 0 !important;
    justify-content: center !important;
}
.premium-nav-menu .premium-nav-menu-item {
    display: inline-flex !important;
}
/* Hide the duplicate mobile menu that our display:flex forced visible */
.premium-nav-menu-container .premium-mobile-menu,
.premium-nav-menu-container .premium-nav-default + .premium-nav-menu {
    display: none !important;
}
/* Nav bar background */
.elementor-widget-premium-nav-menu .elementor-widget-container {
    background: #1a1e26 !important;
    padding: 0 20px !important;
    border-radius: 0 !important;
}

/* Override Elementor's generated padding on grid items - matching (0,4,0) specificity with !important */
.elementor-317054 .elementor-element .ee-grid__item,
[class*='elementor-'] [class*='elementor-element'] .ee-grid__item,
.ee-grid__item[style] {
    padding: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}
/* Kill padding on all ee-grid items regardless of page */
.ee-grid__item {
    padding: 0 !important;
    border: 0 !important;
}

/* Fix video player - ensure it stays in the content area, not footer */
.sf-video-modal {
    z-index: 999999 !important;
}
.sf-video-wrapper {
    position: relative !important;
    z-index: 1 !important;
}

/* UNDO previous nav overrides that broke it */
.premium-nav-menu-container,
.premium-nav-menu,
.premium-main-nav-menu {
    display: revert !important;
}

/* Premium Nav Horizontal - force the actual horizontal layout */
.premium-nav-hor .premium-nav-menu-container .premium-main-nav-menu {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
}
.premium-nav-hor .premium-nav-menu-item {
    display: inline-flex !important;
    float: none !important;
}
.premium-nav-hor .premium-menu-link-parent {
    white-space: nowrap !important;
}
/* Hide the duplicate/mobile nav that got exposed */
.premium-ham-dropdown .premium-mobile-menu-outer-container,
.premium-ham-dropdown .premium-mobile-menu-container {
    display: none !important;
}

/* Make nav menu visible and prominent */
.elementor-nav-menu--main .elementor-item {
    color: #3B9AE8 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 12px 18px !important;
    letter-spacing: 0.3px !important;
}
.elementor-nav-menu--main .elementor-item:hover {
    color: #fff !important;
}
.elementor-widget-nav-menu .elementor-widget-container {
    background: #1a1e26 !important;
    padding: 4px 0 !important;
}
.elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    justify-content: center !important;
}

/* FINAL border kill - the faint outline comes from ee-grid__item having a background + gap creating visible edges */
.ee-grid.ee-loop {
    gap: 16px !important;
    background: transparent !important;
}
.ee-grid__item {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 8px !important;
}
.sf-card {
    border-radius: 8px !important;
    overflow: hidden !important;
    background: #181B21 !important;
}

/* Hide type badge overlay icons on See More and content cards */
.sfam-see-more-item .sfam-type-badge,
.sfam-see-more-item .sfam-content-badge,
.sfam-see-more .sfam-type-badge,
.sfam-see-more .sfam-content-badge,
.sfam-content-type-badge,
.sfam-see-more-item a > span:not(.sfam-item-title) {
    display: none !important;
}
.sfam-see-more-item .sfam-item-type {
    display: inline-block !important;
    font-size: 11px !important;
    color: #5a6070 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-top: 2px !important;
}
/* Fix nav on all pages */
.elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: flex !important;
    flex-direction: row !important;
}
.elementor-nav-menu--main .elementor-nav-menu > li {
    display: inline-flex !important;
}

/* Nav dropdown menus */
.elementor-nav-menu--main .elementor-nav-menu .menu-item-has-children .sub-menu,
.elementor-nav-menu--main .menu-item-has-children > .elementor-nav-menu--dropdown {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    background: #1a1e26 !important;
    min-width: 200px !important;
    padding: 8px 0 !important;
    z-index: 99999 !important;
    border-radius: 0 0 6px 6px !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important;
}
.elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu,
.elementor-nav-menu--main .menu-item-has-children:hover > .elementor-nav-menu--dropdown {
    display: block !important;
}
.elementor-nav-menu--main .menu-item-has-children {
    position: relative !important;
}
.elementor-nav-menu--main .sub-menu .elementor-sub-item,
.elementor-nav-menu--main .elementor-nav-menu--dropdown .elementor-item {
    color: #8a8f98 !important;
    padding: 8px 20px !important;
    display: block !important;
    font-size: 13px !important;
    white-space: nowrap !important;
}
.elementor-nav-menu--main .sub-menu .elementor-sub-item:hover,
.elementor-nav-menu--main .elementor-nav-menu--dropdown .elementor-item:hover {
    color: #fff !important;
    background: rgba(59, 154, 232, 0.1) !important;
}

/* Fix Elementor nav dropdowns - they use visibility/opacity, not display */
.elementor-nav-menu--main .elementor-nav-menu--dropdown,
.elementor-nav-menu .sub-menu {
    visibility: hidden !important;
    opacity: 0 !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    background: #151820 !important;
    min-width: 200px !important;
    padding: 8px 0 !important;
    z-index: 99999 !important;
    border-radius: 0 0 6px 6px !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.5) !important;
    transition: visibility 0s 0.1s, opacity 0.15s ease !important;
    pointer-events: none !important;
}
.menu-item-has-children:hover > .elementor-nav-menu--dropdown,
.menu-item-has-children:hover > .sub-menu {
    visibility: visible !important;
    opacity: 1 !important;
    transition: visibility 0s 0s, opacity 0.15s ease !important;
    pointer-events: auto !important;
}
.menu-item-has-children {
    position: relative !important;
}
.elementor-nav-menu--dropdown .elementor-sub-item,
.sub-menu .elementor-sub-item {
    color: #8a8f98 !important;
    padding: 10px 20px !important;
    display: block !important;
    font-size: 13px !important;
    white-space: nowrap !important;
    transition: color 0.15s, background 0.15s !important;
}
.elementor-nav-menu--dropdown .elementor-sub-item:hover,
.sub-menu .elementor-sub-item:hover {
    color: #fff !important;
    background: rgba(59, 154, 232, 0.15) !important;
}

/* Video/Gallery single page title - make it readable */
.single-video h1, .single-gallery h1,
.single-video .elementor-heading-title,
.single-gallery .elementor-heading-title {
    color: #e0e4ea !important;
    font-family: 'Sora', 'DM Sans', sans-serif !important;
    font-weight: 700 !important;
    font-size: 28px !important;
    margin-bottom: 16px !important;
}

/* Single page content area - dark background */
.single-video .elementor-location-single .elementor-section,
.single-video .elementor-location-single .e-con,
.single-gallery .elementor-location-single .elementor-section,
.single-gallery .elementor-location-single .e-con,
.single-video #content,
.single-gallery #content,
.single-video main,
.single-gallery main {
    background: #0D0F12 !important;
}

/* Fix video page content width */
.single-video .elementor-shortcode,
.single-gallery .elementor-shortcode {
    max-width: 1200px !important;
    margin: 0 auto !important;
}

/* Description text */
.single-video .elementor-widget-theme-post-content,
.single-gallery .elementor-widget-theme-post-content {
    color: #c0c4cc !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    padding: 16px 0 !important;
}

/* Sponsor ad images - constrain width */
.single-video .elementor-widget-theme-post-content img,
.sfam-ad-container img {
    max-width: 500px !important;
    height: auto !important;
}

/* Fix dropdown z-index and parent overflow */
.elementor-location-header,
.elementor-location-header .elementor-section,
.elementor-location-header .e-con,
.elementor-location-header .elementor-container,
.elementor-location-header .elementor-widget-wrap,
.elementor-location-header .elementor-widget-container,
.elementor-widget-nav-menu,
.elementor-widget-nav-menu .elementor-widget-container {
    overflow: visible !important;
}
/* Stacking context for dropdown z-index -- but NOT on the sticky container */
.elementor-location-header .elementor-section,
.elementor-location-header .e-con:not(.elementor-sticky--active),
.elementor-location-header .elementor-container,
.elementor-location-header .elementor-widget-wrap,
.elementor-location-header .elementor-widget-container,
.elementor-widget-nav-menu,
.elementor-widget-nav-menu .elementor-widget-container {
    position: relative !important;
    z-index: 9999 !important;
}
header, .site-header, [data-elementor-type="header"] {
    overflow: visible !important;
    z-index: 9999 !important;
}
.elementor-nav-menu--dropdown,
.sub-menu {
    z-index: 99999 !important;
}
/* Make sure the nav bar container doesn't clip */
.elementor-nav-menu--layout-horizontal {
    overflow: visible !important;
}

/* Make dropdown fully visible above content */
.elementor-nav-menu--dropdown,
.elementor-nav-menu .sub-menu {
    background: #111419 !important;
    border: 1px solid #2a2e38 !important;
    border-top: 2px solid #3B9AE8 !important;
    border-radius: 0 0 6px 6px !important;
    padding: 4px 0 !important;
    margin-top: 0 !important;
    z-index: 999999 !important;
}
.elementor-nav-menu--dropdown li a,
.sub-menu li a {
    color: #9aa0ac !important;
    padding: 10px 24px !important;
    font-size: 14px !important;
    display: block !important;
}
.elementor-nav-menu--dropdown li a:hover,
.sub-menu li a:hover {
    color: #fff !important;
    background: rgba(59, 154, 232, 0.12) !important;
}

/* Ensure search bar doesn't cover dropdown */
.elementor-widget-premium-search-form,
.elementor-search-form {
    position: relative !important;
    z-index: 1 !important;
}

/* NUCLEAR z-index fix - dropdown MUST be above everything */
.elementor-nav-menu--dropdown,
.elementor-nav-menu .sub-menu,
ul.sub-menu.elementor-nav-menu--dropdown {
    z-index: 2147483647 !important;
    position: absolute !important;
}
/* Push search bar and everything else DOWN in stacking */
.elementor-location-header ~ *,
.elementor-widget-premium-search-form,
.elementor-search-form,
#content,
main,
.site-main,
.elementor-location-single,
.ee-grid {
    z-index: auto !important;
}
/* Sticky header: position:sticky on outer wrapper for CSS-native sticky behavior.
   Do NOT use backdrop-filter or transform on this element - they create containing
   blocks that break position:fixed on children (Elementor sticky JS). */
.elementor-location-header {
    z-index: 99999 !important;
    position: sticky !important;
    top: 0 !important;
}

/* Sticky header - Elementor JS applies position:fixed on the inner .e-con
   via inline styles. Do NOT set position on the outer header wrapper,
   as it will override the JS-applied position:fixed. */
[data-elementor-type="header"] {
    z-index: 99999 !important;
    width: 100% !important;
}
/* Ensure the sticky container gets proper z-index when active */
.elementor-sticky--active {
    z-index: 99999 !important;
}

/* Since nav and search are now in the SAME container,
   the dropdown is in the same stacking context - z-index will work */
.elementor-nav-menu--dropdown,
.sub-menu {
    z-index: 999999 !important;
}

/* Constrain search in header row */
[data-elementor-type="header"] .elementor-widget-premium-search-form {
    max-width: 250px !important;
    flex-shrink: 0 !important;
}

/* Logo sizing in header */
[data-elementor-type="header"] .elementor-widget-image {
    flex-shrink: 0 !important;
    max-width: 120px !important;
}
[data-elementor-type="header"] .elementor-widget-image img {
    max-height: 50px !important;
    width: auto !important;
}

/* Nav takes remaining space */
[data-elementor-type="header"] .elementor-widget-nav-menu {
    flex: 1 !important;
}

/* Content offset for sticky header */
.elementor-location-single,
main#content,
.site-main {
    padding-top: 0 !important;
}

/* === FIX 1: Pagination - dark bg, horizontal, styled === */
.ee-pagination, 
nav.ee-pagination,
.elementor-pagination,
nav[role="navigation"].ee-pagination,
.ee-grid + nav,
.elementor-widget-posts-extra + nav {
    background: #0D0F12 !important;
    padding: 20px !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 6px !important;
}
.ee-pagination a,
.ee-pagination span,
.elementor-pagination a,
.elementor-pagination span,
.page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    color: #8a8f98 !important;
    background: #1a1e26 !important;
    text-decoration: none !important;
}
.ee-pagination a:hover,
.elementor-pagination a:hover,
a.page-numbers:hover {
    color: #fff !important;
    background: #2a2e38 !important;
}
.ee-pagination .current,
.elementor-pagination .current,
span.page-numbers.current {
    color: #fff !important;
    background: #3B9AE8 !important;
}
.ee-pagination .dots,
.elementor-pagination .dots {
    background: transparent !important;
    color: #555 !important;
}

/* === FIX 2: Kill all white/grey backgrounds leaking through === */
body, html,
#content, main, .site-main,
.elementor-location-single,
.elementor,
.elementor-inner,
.elementor-section-wrap,
.elementor-section,
.e-con,
.elementor-container,
.elementor-column,
.elementor-widget-wrap,
.elementor-element,
article {
    background-color: #0D0F12 !important;
}
/* Exception: cards keep their dark surface color */
.sf-card, .sf-card__info {
    background: #181B21 !important;
}

/* === FIX 3: Footer nav menu - force horizontal, stop overlap === */
.elementor-location-footer .elementor-nav-menu--main .elementor-nav-menu,
.elementor-location-footer .elementor-widget-nav-menu ul {
    display: flex !important;
    flex-direction: column !important;
}
.elementor-location-footer .elementor-widget-nav-menu {
    overflow: visible !important;
    max-width: 100% !important;
}
/* Footer Quick Links should be a simple vertical list, not the full nav */
footer .elementor-nav-menu--dropdown,
.elementor-location-footer .sub-menu,
.elementor-location-footer .elementor-nav-menu--dropdown {
    display: none !important;
}
/* Remove dropdown arrows in footer */
.elementor-location-footer .sub-arrow,
.elementor-location-footer .elementor-menu-toggle,
.elementor-location-footer .elementor-item img {
    display: none !important;
}

/* === FIX 4: Kill the rogue video box below copyright === */
.elementor-location-footer ~ .sf-video-wrapper,
.elementor-location-footer ~ video,
.elementor-location-footer ~ .video-js,
footer ~ .sf-video-wrapper,
footer ~ video,
footer ~ .video-js,
body > .sf-video-wrapper,
#content ~ .sf-video-wrapper {
    display: none !important;
}
/* Also hide any stray loading indicators */
body > p.sf-infinite-loading,
body > .sf-load-more {
    display: none !important;
}

/* === FIX 5: Content containers - no overflow, proper width === */
.ee-grid.ee-loop,
.elementor-posts-container {
    max-width: 100% !important;
    overflow: hidden !important;
}
.ee-grid__item {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* Hide video modal until triggered */
#sfam-video-modal {
    display: none !important;
}
#sfam-video-modal.sf-modal-active {
    display: flex !important;
}

/* Footer quick links text styling */
.elementor-location-footer .elementor-widget-text-editor ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-location-footer .elementor-widget-text-editor ul li {
    margin-bottom: 8px !important;
}
.elementor-location-footer .elementor-widget-text-editor ul li a {
    color: #8a8f98 !important;
    text-decoration: none !important;
    font-size: 14px !important;
}
.elementor-location-footer .elementor-widget-text-editor ul li a:hover {
    color: #3B9AE8 !important;
}

/* Hide BOTH modal variants by default */
#sfam-video-modal,
.sf-video-modal {
    display: none !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 9999999 !important;
    background: rgba(0,0,0,0.92) !important;
    align-items: center !important;
    justify-content: center !important;
}
/* Show when active */
#sfam-video-modal.is-active,
.sf-video-modal.is-active {
    display: flex !important;
}

/* Fix content overflow on gallery/video pages */
.elementor-location-single .elementor-section-wrap,
.elementor-location-single .e-con,
.elementor-location-single .elementor-container {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Force the 70/30 row layout on single pages */
.elementor-location-single > .e-con > .e-con {
    min-width: 0 !important;
}

/* Latest S&F / Random S&F - stack vertically, not side by side */
.elementor-widget-posts .elementor-posts-container {
    grid-template-columns: repeat(3, 1fr) !important;
}

/* Contain all images */
img {
    max-width: 100% !important;
    height: auto !important;
}

/* Fix the gallery masonry/grid overflow */
.elementor-widget-gallery-extra .elementor-widget-container,
.ee-gallery {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* Search results dropdown - break out of container */
.elementor-search-form--results-container,
.premium-search-form__results,
.premium-search-results {
    position: absolute !important;
    z-index: 99999 !important;
    width: 100vw !important;
    left: 0 !important;
    max-height: 80vh !important;
    overflow-y: auto !important;
    background: #1a1e26 !important;
}

/* Fix flicker - hide empty premium search containers */
.premium-search-form__results:empty,
.elementor-widget-premium-search-form .premium-search-form__results-inner:empty {
    display: none !important;
}

/* Sidebar should not stack - force it to stay right on desktop */
@media (min-width: 768px) {
    .elementor-location-single > .e-con:first-child {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 24px !important;
    }
    .elementor-location-single > .e-con:first-child > .e-con:first-child {
        flex: 0 0 68% !important;
        max-width: 68% !important;
        min-width: 0 !important;
    }
    .elementor-location-single > .e-con:first-child > .e-con:last-child {
        flex: 0 0 30% !important;
        max-width: 30% !important;
        min-width: 0 !important;
    }
}

/* Mobile - stack */
@media (max-width: 767px) {
    .elementor-location-single > .e-con:first-child {
        flex-direction: column !important;
    }
    .elementor-location-single > .e-con:first-child > .e-con {
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* Fix the "Latest S&F / Random S&F" section overflow */
.elementor-widget-posts {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* Suppress search form loading flicker */
.premium-search-form__results-inner {
    display: none !important;
}
.premium-search-form__results-inner.premium-search-form__results--show {
    display: block !important;
}
/* Hide empty results container until it has content */
.premium-search-form .premium-search-form__results {
    display: none !important;
    opacity: 0 !important;
    transition: opacity 0.2s !important;
}
.premium-search-form .premium-search-form__results.premium-active {
    display: block !important;
    opacity: 1 !important;
}

/* Sticky header z-index (redundant but safe) */
.elementor-location-header {
    z-index: 99999 !important;
}
/* No blank gap below sticky header */
.elementor-location-header + * {
    margin-top: 0 !important;
}

/* Bottom section — model profile and ad styling (was sidebar, now full-width bottom) */
/* Model profile image — 120px circle avatar */
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-profile-image img,
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-model-image img {
    max-width: 120px !important;
    max-height: 120px !important;
    width: 120px !important;
    height: 120px !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    border: 3px solid var(--sf-elevated-2) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
}

/* Ads in bottom section — constrain width, center */
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-ad,
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-sidebar-ad {
    text-align: center !important;
}
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-ad img,
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-sidebar-ad img,
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-ads-widget img,
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-ad-banner img,
.elementor-location-single > .e-con:first-child > .e-con:last-child .sfam-ad-html img {
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    border-radius: var(--sf-radius-sm) !important;
}

/* Gallery images - proportional sizing, NOT full width stretching */
.ee-gallery__item img,
.elementor-widget-gallery-extra img,
.elementor-gallery-item img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
}

/* Gallery grid - auto-fit columns based on image sizes */
.ee-gallery,
.elementor-gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 8px !important;
}
.ee-gallery__item {
    overflow: hidden !important;
    border-radius: 4px !important;
}
.ee-gallery__item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* Constrain the main content column width */
@media (min-width: 768px) {
    .elementor-location-single > .e-con:first-child {
        max-width: 1400px !important;
        margin: 0 auto !important;
    }
}

/* "See more" and "Latest/Random" sections should span full width below both columns */
.elementor-location-single .sfam-see-more,
.elementor-location-single .elementor-widget-posts {
    max-width: 100% !important;
}

/* Related content thumbnails in sidebar - small grid */
.elementor-location-single > .e-con:first-child > .e-con:last-child .elementor-posts-container {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
}
.elementor-location-single > .e-con:first-child > .e-con:last-child .elementor-posts-container img {
    max-height: 100px !important;
    object-fit: cover !important;
}

/* Make header full width to match content */
.elementor-location-header .e-con,
.elementor-location-header .elementor-container,
.elementor-location-header .elementor-widget-container {
    max-width: 100% !important;
    width: 100% !important;
}
.elementor-location-header > .e-con {
    max-width: 100% !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
}

/* Content area - same max width and padding */
.elementor-location-single > .e-con:first-child {
    max-width: 100% !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
}

/* Footer columns - proper spacing */
.elementor-location-footer .e-con {
    max-width: 100% !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
}

/* Footer column grid - proper gaps */
.elementor-location-footer .e-con > .e-con {
    padding: 0 12px !important;
}

/* Footer headings - smaller, better spacing */
.elementor-location-footer h6,
.elementor-location-footer .elementor-heading-title {
    font-size: 14px !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    margin-bottom: 16px !important;
    word-break: break-word !important;
}

/* Footer links */
.elementor-location-footer .elementor-icon-list-text,
.elementor-location-footer li a {
    font-size: 13px !important;
}

/* Copyright bar */
.elementor-location-footer > .e-con:last-child {
    padding: 16px 40px !important;
    font-size: 13px !important;
}


/* ----- Archive / Taxonomy Grid (2 columns) ----- */
.archive .page-content,
.tax-sf_category .page-content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.archive .page-content article,
.tax-sf_category .page-content article {
  background: var(--sf-bg-surface, #2E323D);
  border-radius: 8px;
  overflow: hidden;
  padding-bottom: 16px;
}

.archive .page-content article h2 {
  font-size: 1.1rem;
  padding: 12px 16px 4px;
  margin: 0;
}

.archive .page-content article h2 a {
  color: var(--sf-text-primary, #e8ecf2);
  text-decoration: none;
}

.archive .page-content article h2 a:hover {
  color: var(--sf-blue-primary, #2C78C9);
}

.archive .page-content article p {
  padding: 0 16px;
  font-size: 0.9rem;
  color: var(--sf-blue-pale, #8FACC7);
  margin: 4px 0 0;
}

.archive .page-content article img {
  width: 100%;
  height: auto;
  display: block;
}

/* Pagination stays full-width */
.archive nav.navigation {
  grid-column: 1 / -1;
}

@media (max-width: 768px) {
  .archive .page-content,
  .tax-sf_category .page-content {
    grid-template-columns: 1fr;
  }
}

/* Hide empty Related Content heading when no content follows */
.elementor-widget-heading:has(+ footer),
.elementor-widget-heading:last-child { display: none; }


/* bbPress dark theme styles */
#bbpress-forums { color: var(--sf-text-primary, #e8ecf2); }
#bbpress-forums li.bbp-header { background: var(--sf-bg-elevated, #353945); border: none; }
#bbpress-forums li.bbp-body ul.forum, #bbpress-forums li.bbp-body ul.topic { background: var(--sf-bg-surface, #2E323D); border-bottom: 1px solid var(--sf-bg-elevated, #353945); }
#bbpress-forums li.bbp-footer { background: var(--sf-bg-elevated, #353945); border: none; }
#bbpress-forums a { color: var(--sf-blue-primary, #2C78C9); }
#bbpress-forums a:hover { color: var(--sf-blue-light, #5B92CD); }
.bbp-breadcrumb, .bbp-template-notice { color: var(--sf-blue-pale, #8FACC7); }


/* =============================================================================
   CONTENT WIDTH FIX - 1400px for single video/gallery detail pages only
   Archive/listing pages use full width (var(--sf-content-width))
   ============================================================================= */

/* Single Video & Single Gallery: constrain the outermost Elementor parent container */
body.single-video [data-elementor-type="single-page"] > .e-con.e-parent,
body.single-gallery [data-elementor-type="single-page"] > .e-con.e-parent {
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}




/* Archive / listing pages: use full site width */
body.post-type-archive-gallery [data-elementor-type="archive"] > .e-con.e-parent,
body.post-type-archive-video [data-elementor-type="archive"] > .e-con.e-parent,
body.tax-sf_category [data-elementor-type="archive"] > .e-con.e-parent {
    max-width: var(--sf-content-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}

/* Override hello-elementor theme.css .site-main max-width for archive/listing pages */
/* The parent theme caps .site-main at 1140px (and lower at smaller breakpoints). */
/* Archive/taxonomy/listing pages need full width like sponsors page. */
body.post-type-archive .site-main,
body.tax-sf_category .site-main,
body.archive .site-main {
    max-width: var(--sf-content-width) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}
body.post-type-archive .page-header .entry-title,
body.tax-sf_category .page-header .entry-title,
body.archive .page-header .entry-title {
    max-width: var(--sf-content-width) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}

/* Archive fallback: non-Elementor archive pages (taxonomy/CPT archives using theme template) */
body.post-type-archive .page-content,
body.tax-sf_category .page-content {
    max-width: var(--sf-content-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}


/* bbPress page width overrides - must come BEFORE bbPress styles */
/* Override hello-elementor theme.css site-main constraint for bbPress pages */
body.bbpress .site-main.bbpress-content,
body.bbpress.post-type-archive .site-main {
    max-width: 1280px !important;
}
/* Ensure bbPress page-content uses its own width */
body.bbpress .page-content.bbpress-wrapper,
body.bbpress.post-type-archive .page-content.bbpress-wrapper,
body.bbpress.post-type-archive .page-content {
    max-width: 1200px !important;
    display: block !important;
}
/* Also override for single forum/topic pages */
body.single-forum .site-main,
body.single-topic .site-main,
body.bbpress .site-main {
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
/* =============================================================================
   bbPress Dark Theme - Override default white/light backgrounds
   bbPress default CSS sets div.odd bg:#fbfbfb and div.even bg:#fff
   These MUST be overridden for the dark theme.
   ============================================================================= */

/* Kill ALL default white backgrounds from bbPress on odd/even rows */
#bbpress-forums div.odd,
#bbpress-forums ul.odd,
#bbpress-forums div.even,
#bbpress-forums ul.even {
    background-color: #181b21 !important;
}

/* Reply/topic post wrappers - the .hentry divs that wrap author+content */
#bbpress-forums div.topic,
#bbpress-forums div.reply,
#bbpress-forums .bbp-body .hentry,
#bbpress-forums li.bbp-body div.odd,
#bbpress-forums li.bbp-body div.even {
    background: #181b21 !important;
}

/* Ensure bbPress status rows also get dark backgrounds */
#bbpress-forums .status-trash.even,
#bbpress-forums .status-trash.odd,
#bbpress-forums .status-spam.even,
#bbpress-forums .status-spam.odd,
#bbpress-forums .status-pending.even,
#bbpress-forums .status-pending.odd {
    background-color: #1a1420 !important;
}

/* =============================================================================
   bbPress Forum Styles - Dark Theme (Comprehensive)
   ============================================================================= */

/* Force bbPress wrapper to block layout (overrides .page-content grid) */
body.bbpress .page-content.bbpress-wrapper {
    display: block !important;
}
/* Force #bbpress-forums to fill its parent width */
#bbpress-forums {
    width: 100% !important;
}

/* Forum wrapper - wide layout for data-heavy forum tables */
.bbpress-content .bbpress-wrapper {
    max-width: 1200px !important;
    margin: 0 auto;
    padding: 30px 24px;
}

/* Breadcrumb styling */
.bbp-breadcrumb {
    color: #8FACC7;
    padding: 12px 0;
    margin-bottom: 20px;
    font-size: 14px;
    font-family: 'DM Sans', sans-serif;
}
.bbp-breadcrumb a {
    color: #5B92CD !important;
    text-decoration: none;
    transition: color 0.2s;
}
.bbp-breadcrumb a:hover {
    color: #7eb3e8 !important;
}
.bbp-breadcrumb .bbp-breadcrumb-sep {
    color: #4a5568;
    margin: 0 6px;
}

/* Forum search form - full width, polished */
#bbp-search-form {
    margin-bottom: 24px;
    display: flex;
    gap: 8px;
    max-width: 500px;
}
#bbp-search-form input[type="text"],
#bbpress-forums #bbp-search-form input[type="text"] {
    background: #1e222c !important;
    border: 1px solid #3e4452 !important;
    color: #e8ecf2 !important;
    padding: 10px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-family: 'DM Sans', sans-serif;
    flex: 1;
    transition: border-color 0.2s;
    width: auto !important;
}
#bbp-search-form input[type="text"]:focus,
#bbpress-forums #bbp-search-form input[type="text"]:focus {
    border-color: #5B92CD !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(91, 146, 205, 0.15);
}
#bbp-search-form input[type="submit"],
#bbpress-forums #bbp-search-form input[type="submit"] {
    background: #e84068 !important;
    color: #fff !important;
    border: none !important;
    padding: 10px 24px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    transition: background 0.2s, transform 0.1s;
    white-space: nowrap;
}
#bbp-search-form input[type="submit"]:hover,
#bbpress-forums #bbp-search-form input[type="submit"]:hover {
    background: #d13560 !important;
    transform: translateY(-1px);
}

/* =============================================================================
   Forum List (main forums page) & Topic List - Table Layout
   ============================================================================= */

/* Reset list styling */
#bbpress-forums ul.bbp-forums,
#bbpress-forums ul.bbp-topics,
#bbpress-forums ul.bbp-replies {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
#bbpress-forums ul.bbp-forums,
#bbpress-forums ul.bbp-topics {
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #2a2e3a;
}
/* Replies list - no outer border since each reply card has its own */
#bbpress-forums ul.bbp-replies {
    border: none;
    overflow: visible;
}
/* Hide header/footer Author|Posts labels on reply pages (cards are self-explanatory) */
#bbpress-forums ul.bbp-replies > li.bbp-header,
#bbpress-forums ul.bbp-replies > li.bbp-footer {
    display: none !important;
}

/* Header row - the column labels */
#bbpress-forums li.bbp-header {
    background: linear-gradient(135deg, #252935 0%, #2a2e3a 100%) !important;
    border: none !important;
    border-bottom: 2px solid #3e4452 !important;
    color: #8FACC7 !important;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 0 !important;
    display: flex !important;
    align-items: center;
}
#bbpress-forums li.bbp-header ul {
    display: flex !important;
    width: 100% !important;
    padding: 14px 20px !important;
    margin: 0 !important;
    list-style: none !important;
    align-items: center;
}

/* Footer row */
#bbpress-forums li.bbp-footer {
    background: linear-gradient(135deg, #252935 0%, #2a2e3a 100%) !important;
    border: none !important;
    border-top: 2px solid #3e4452 !important;
    color: #8FACC7 !important;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 0 !important;
    display: flex !important;
    align-items: center;
}
#bbpress-forums li.bbp-footer ul {
    display: flex !important;
    width: 100% !important;
    padding: 14px 20px !important;
    margin: 0 !important;
    list-style: none !important;
    align-items: center;
}

/* Body rows - forum list items and topic list items */
#bbpress-forums li.bbp-body ul.forum,
#bbpress-forums li.bbp-body ul.topic {
    display: flex !important;
    align-items: center;
    background: #181b21 !important;
    border-bottom: 1px solid #22262e !important;
    padding: 16px 20px !important;
    margin: 0 !important;
    list-style: none !important;
    transition: background 0.2s;
}
#bbpress-forums li.bbp-body ul.forum:hover,
#bbpress-forums li.bbp-body ul.topic:hover {
    background: #1e222c !important;
}
/* Alternate row striping */
#bbpress-forums li.bbp-body ul.forum:nth-child(even),
#bbpress-forums li.bbp-body ul.topic:nth-child(even) {
    background: #1a1e28 !important;
}
#bbpress-forums li.bbp-body ul.forum:nth-child(even):hover,
#bbpress-forums li.bbp-body ul.topic:nth-child(even):hover {
    background: #1e222c !important;
}

/* Column sizing: Forum Name (flex), Topics (80px), Posts (80px), Freshness/Last Post (200px) */
#bbpress-forums li.bbp-header li.bbp-forum-info,
#bbpress-forums li.bbp-body li.bbp-forum-info,
#bbpress-forums li.bbp-footer li.bbp-forum-info {
    flex: 1 !important;
    width: auto !important;
    min-width: 0;
    padding-right: 16px !important;
}

#bbpress-forums li.bbp-header li.bbp-forum-topic-count,
#bbpress-forums li.bbp-body li.bbp-forum-topic-count,
#bbpress-forums li.bbp-footer li.bbp-forum-topic-count,
#bbpress-forums li.bbp-header li.bbp-forum-reply-count,
#bbpress-forums li.bbp-body li.bbp-forum-reply-count,
#bbpress-forums li.bbp-footer li.bbp-forum-reply-count {
    width: 90px !important;
    min-width: 90px !important;
    flex-shrink: 0 !important;
    text-align: center !important;
    color: #8a93a7;
    font-size: 14px;
}

#bbpress-forums li.bbp-header li.bbp-forum-freshness,
#bbpress-forums li.bbp-body li.bbp-forum-freshness,
#bbpress-forums li.bbp-footer li.bbp-forum-freshness {
    width: 220px !important;
    min-width: 220px !important;
    flex-shrink: 0 !important;
    text-align: right !important;
    font-size: 13px;
}

/* Topic list column sizing */
#bbpress-forums li.bbp-header li.bbp-topic-title,
#bbpress-forums li.bbp-body li.bbp-topic-title,
#bbpress-forums li.bbp-footer li.bbp-topic-title {
    flex: 1 !important;
    width: auto !important;
    min-width: 0;
    padding-right: 16px !important;
}

#bbpress-forums li.bbp-header li.bbp-topic-voice-count,
#bbpress-forums li.bbp-body li.bbp-topic-voice-count,
#bbpress-forums li.bbp-footer li.bbp-topic-voice-count,
#bbpress-forums li.bbp-header li.bbp-topic-reply-count,
#bbpress-forums li.bbp-body li.bbp-topic-reply-count,
#bbpress-forums li.bbp-footer li.bbp-topic-reply-count {
    width: 80px !important;
    min-width: 80px !important;
    flex-shrink: 0 !important;
    text-align: center !important;
    color: #8a93a7;
    font-size: 14px;
}

#bbpress-forums li.bbp-header li.bbp-topic-freshness,
#bbpress-forums li.bbp-body li.bbp-topic-freshness,
#bbpress-forums li.bbp-footer li.bbp-topic-freshness {
    width: 200px !important;
    min-width: 200px !important;
    flex-shrink: 0 !important;
    text-align: right !important;
    font-size: 13px;
}

/* =============================================================================
   Forum/Topic Links and Content
   ============================================================================= */

/* Forum/topic title links */
#bbpress-forums a.bbp-forum-title,
#bbpress-forums a.bbp-topic-permalink {
    color: #5B92CD !important;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    transition: color 0.2s;
    display: inline-block;
}
#bbpress-forums a.bbp-forum-title:hover,
#bbpress-forums a.bbp-topic-permalink:hover {
    color: #7eb3e8 !important;
}

/* Forum descriptions */
#bbpress-forums .bbp-forum-info .bbp-forum-content,
.bbp-forum-info .bbp-forum-content {
    color: #6b7489 !important;
    font-size: 13px;
    margin-top: 4px;
    line-height: 1.4;
}

/* Topic started by info */
#bbpress-forums .bbp-topic-title .bbp-topic-meta {
    font-size: 12px;
    color: #6b7489;
    margin-top: 4px;
}
#bbpress-forums .bbp-topic-title .bbp-topic-meta a {
    color: #7eb3e8 !important;
    font-weight: 500;
}

/* Topic counts, post counts */
#bbpress-forums li.bbp-forum-topic-count,
#bbpress-forums li.bbp-forum-reply-count,
#bbpress-forums li.bbp-topic-voice-count,
#bbpress-forums li.bbp-topic-reply-count {
    color: #8a93a7;
    font-weight: 500;
}

/* Freshness / last post info */
#bbpress-forums .bbp-topic-freshness a,
#bbpress-forums .bbp-forum-freshness a {
    color: #5B92CD !important;
    font-size: 13px;
    text-decoration: none;
}
#bbpress-forums .bbp-topic-freshness a:hover,
#bbpress-forums .bbp-forum-freshness a:hover {
    color: #7eb3e8 !important;
}
#bbpress-forums .bbp-topic-freshness .bbp-author-name,
#bbpress-forums .bbp-forum-freshness .bbp-author-name {
    color: #8FACC7;
    font-size: 12px;
}

/* Sub-forum list */
#bbpress-forums .bbp-forums-list {
    color: #6b7489;
    font-size: 13px;
    margin-top: 6px;
}
#bbpress-forums .bbp-forums-list a {
    color: #5B92CD !important;
    text-decoration: none;
}
#bbpress-forums .bbp-forums-list a:hover {
    color: #7eb3e8 !important;
}

/* =============================================================================
   Template Notices
   ============================================================================= */

.bbp-template-notice,
#bbpress-forums div.bbp-template-notice {
    background: linear-gradient(135deg, #1e222c 0%, #252935 100%) !important;
    border: 1px solid #3e4452 !important;
    border-left: 3px solid #5B92CD !important;
    color: #c0c8d8 !important;
    padding: 14px 18px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.5;
}
.bbp-template-notice a {
    color: #5B92CD !important;
    font-weight: 600;
    text-decoration: none;
}
.bbp-template-notice a:hover {
    color: #7eb3e8 !important;
}

/* =============================================================================
   Single Topic - Reply Posts
   ============================================================================= */

/* Reply list - remove default bbPress constraints */
#bbpress-forums ul.bbp-replies {
    width: 100% !important;
}

/* Reply header - date bar sitting above each reply card */
#bbpress-forums div.bbp-reply-header {
    background: #1e222c !important;
    border: 1px solid #2a2e3a !important;
    border-bottom: none !important;
    border-radius: 8px 8px 0 0 !important;
    color: #6b7489 !important;
    padding: 8px 18px !important;
    font-size: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
}
#bbpress-forums div.bbp-reply-header:first-child {
    margin-top: 0;
}
#bbpress-forums div.bbp-reply-header a {
    color: #5B92CD !important;
    text-decoration: none;
    font-size: 12px;
}
#bbpress-forums div.bbp-reply-header a:hover {
    color: #7eb3e8 !important;
}
#bbpress-forums div.bbp-reply-header .bbp-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    justify-content: space-between;
}

/* Reply/topic wrapper - card with connected header */
#bbpress-forums div.reply,
#bbpress-forums div.topic,
#bbpress-forums .bbp-body .hentry {
    border: 1px solid #2a2e3a !important;
    border-radius: 0 0 8px 8px !important;
    overflow: hidden;
    margin-bottom: 0;
}

/* Flex layout for reply posts - author left, content right */
#bbpress-forums div.bbp-reply-entry,
#bbpress-forums .bbp-body .hentry {
    display: flex !important;
    flex-wrap: nowrap;
}

/* Author sidebar */
#bbpress-forums div.bbp-reply-author,
#bbpress-forums div.bbp-topic-author {
    float: none !important;
    flex-shrink: 0;
    background: linear-gradient(180deg, #161a22 0%, #1a1e28 100%) !important;
    border: none !important;
    border-right: 1px solid #2a2e3a !important;
    padding: 20px 14px !important;
    text-align: center;
    width: 160px !important;
    min-width: 160px !important;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Content area */
#bbpress-forums div.bbp-reply-content,
#bbpress-forums div.bbp-topic-content {
    flex: 1 !important;
    min-width: 0;
    background: #1e222c !important;
    border: none !important;
    color: #d0d4dc !important;
    padding: 20px 24px !important;
    font-size: 14px;
    line-height: 1.7;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
#bbpress-forums div.bbp-reply-content p,
#bbpress-forums div.bbp-topic-content p {
    margin: 0 0 12px 0;
}
#bbpress-forums div.bbp-reply-content p:last-child,
#bbpress-forums div.bbp-topic-content p:last-child {
    margin-bottom: 0;
}

/* Author avatar */
#bbpress-forums .bbp-reply-author img.avatar,
#bbpress-forums .bbp-topic-author img.avatar {
    width: 80px !important;
    height: 80px !important;
    border: 2px solid #3e4452;
    border-radius: 50%;
    display: block;
    margin: 0 auto;
    object-fit: cover;
    transition: border-color 0.2s;
}
#bbpress-forums .bbp-reply-author:hover img.avatar,
#bbpress-forums .bbp-topic-author:hover img.avatar {
    border-color: #5B92CD;
}

/* Author name */
#bbpress-forums .bbp-reply-author .bbp-author-name,
#bbpress-forums .bbp-topic-author .bbp-author-name {
    color: #5B92CD !important;
    font-weight: 600;
    font-size: 13px;
    display: block;
    margin-top: 10px;
    text-decoration: none;
    word-break: break-word;
}
#bbpress-forums .bbp-reply-author .bbp-author-name:hover,
#bbpress-forums .bbp-topic-author .bbp-author-name:hover {
    color: #7eb3e8 !important;
}

/* Author role badge */
#bbpress-forums .bbp-author-role {
    color: #8a93a7 !important;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-top: 6px;
    display: inline-block;
    background: rgba(91, 146, 205, 0.1);
    padding: 2px 8px;
    border-radius: 3px;
    border: 1px solid rgba(91, 146, 205, 0.15);
}

/* Author link - keep vertical layout inside sidebar */
#bbpress-forums .bbp-reply-author .bbp-author-link,
#bbpress-forums .bbp-topic-author .bbp-author-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none !important;
}

/* =============================================================================
   Pagination
   ============================================================================= */

#bbpress-forums .bbp-pagination {
    color: #6b7489;
    margin: 20px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
}
#bbpress-forums .bbp-pagination-count {
    color: #6b7489;
}
#bbpress-forums .bbp-pagination-links {
    display: flex;
    gap: 4px;
    align-items: center;
}
#bbpress-forums .bbp-pagination-links a,
#bbpress-forums .bbp-pagination-links span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s;
}
#bbpress-forums .bbp-pagination-links a {
    color: #5B92CD !important;
    background: #1e222c;
    border: 1px solid #2a2e3a;
}
#bbpress-forums .bbp-pagination-links a:hover {
    background: #252935;
    border-color: #3e4452;
    color: #7eb3e8 !important;
}
#bbpress-forums .bbp-pagination-links span.current {
    background: #e84068 !important;
    color: #fff !important;
    border: 1px solid #e84068;
    font-weight: 700;
}
#bbpress-forums .bbp-pagination-links span.dots {
    background: transparent;
    border: none;
    color: #6b7489;
}

/* Topic pagination (multi-page topics within list) */
#bbpress-forums .bbp-topic-pagination {
    display: inline-flex;
    gap: 3px;
    margin-left: 8px;
    vertical-align: middle;
}
#bbpress-forums .bbp-topic-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 22px;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    color: #8FACC7 !important;
    background: #252935;
    border: 1px solid #3e4452;
    text-decoration: none;
    transition: all 0.2s;
}
#bbpress-forums .bbp-topic-pagination a:hover {
    background: #2a2e3a;
    color: #7eb3e8 !important;
}

/* =============================================================================
   Login Form & Reply Form
   ============================================================================= */

#bbpress-forums fieldset.bbp-form {
    background: linear-gradient(135deg, #181b21 0%, #1e222c 100%) !important;
    border: 1px solid #2a2e3a !important;
    border-radius: 8px;
    padding: 24px;
    margin-top: 20px;
}
#bbpress-forums fieldset.bbp-form legend {
    color: #e8ecf2 !important;
    font-weight: 600;
    font-size: 16px;
    padding: 0 12px;
    font-family: 'Sora', sans-serif;
}
#bbpress-forums fieldset.bbp-form label {
    color: #c0c8d8 !important;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 4px;
    display: block;
}
#bbpress-forums fieldset.bbp-form input[type="text"],
#bbpress-forums fieldset.bbp-form input[type="password"],
#bbpress-forums fieldset.bbp-form input[type="email"],
#bbpress-forums fieldset.bbp-form textarea,
#bbpress-forums fieldset.bbp-form select {
    background: #252935 !important;
    border: 1px solid #3e4452 !important;
    color: #e8ecf2 !important;
    padding: 10px 14px;
    border-radius: 6px;
    width: 100%;
    font-size: 14px;
    font-family: 'DM Sans', sans-serif;
    transition: border-color 0.2s;
}
#bbpress-forums fieldset.bbp-form input[type="text"]:focus,
#bbpress-forums fieldset.bbp-form input[type="password"]:focus,
#bbpress-forums fieldset.bbp-form textarea:focus {
    border-color: #5B92CD !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(91, 146, 205, 0.15);
}
#bbpress-forums fieldset.bbp-form input[type="submit"],
#bbpress-forums fieldset.bbp-form button[type="submit"] {
    background: #e84068 !important;
    color: #fff !important;
    border: none !important;
    padding: 12px 28px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    font-family: 'DM Sans', sans-serif;
    transition: background 0.2s, transform 0.1s;
}
#bbpress-forums fieldset.bbp-form input[type="submit"]:hover,
#bbpress-forums fieldset.bbp-form button[type="submit"]:hover {
    background: #d13560 !important;
    transform: translateY(-1px);
}
#bbpress-forums fieldset.bbp-form .bbp-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Reply form (new topic / reply) */
#bbpress-forums #new-post,
#bbpress-forums #new-topic {
    background: linear-gradient(135deg, #181b21 0%, #1e222c 100%);
    padding: 24px;
    border-radius: 8px;
    border: 1px solid #2a2e3a;
}

/* Topic tags */
#bbpress-forums .bbp-topic-tags a {
    background: #252935;
    color: #8FACC7 !important;
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 12px;
    text-decoration: none;
    border: 1px solid #3e4452;
    transition: all 0.2s;
}
#bbpress-forums .bbp-topic-tags a:hover {
    background: #2a2e3a;
    color: #7eb3e8 !important;
}

/* =============================================================================
   Mobile Responsive
   ============================================================================= */

@media (max-width: 768px) {
    .bbpress-content .bbpress-wrapper {
        padding: 16px 12px;
    }

    /* Stack forum list on mobile */
    #bbpress-forums li.bbp-header {
        display: none !important;
    }
    #bbpress-forums li.bbp-footer {
        display: none !important;
    }
    #bbpress-forums li.bbp-body ul.forum,
    #bbpress-forums li.bbp-body ul.topic {
        flex-wrap: wrap !important;
        padding: 14px 16px !important;
        gap: 4px;
    }
    #bbpress-forums li.bbp-body li.bbp-forum-info,
    #bbpress-forums li.bbp-body li.bbp-topic-title {
        width: 100% !important;
        flex: none !important;
        padding-right: 0 !important;
    }
    #bbpress-forums li.bbp-body li.bbp-forum-topic-count,
    #bbpress-forums li.bbp-body li.bbp-forum-reply-count,
    #bbpress-forums li.bbp-body li.bbp-topic-voice-count,
    #bbpress-forums li.bbp-body li.bbp-topic-reply-count {
        width: auto !important;
        min-width: auto !important;
        text-align: left !important;
        font-size: 12px;
    }
    #bbpress-forums li.bbp-body li.bbp-forum-topic-count::before {
        content: "Topics: ";
        color: #6b7489;
    }
    #bbpress-forums li.bbp-body li.bbp-forum-reply-count::before {
        content: "Posts: ";
        color: #6b7489;
    }
    #bbpress-forums li.bbp-body li.bbp-topic-voice-count::before {
        content: "Voices: ";
        color: #6b7489;
    }
    #bbpress-forums li.bbp-body li.bbp-topic-reply-count::before {
        content: "Posts: ";
        color: #6b7489;
    }
    #bbpress-forums li.bbp-body li.bbp-forum-freshness,
    #bbpress-forums li.bbp-body li.bbp-topic-freshness {
        width: 100% !important;
        min-width: auto !important;
        text-align: left !important;
        margin-top: 4px;
        padding-top: 4px;
        border-top: 1px solid #22262e;
    }

    /* Reply posts stack vertically on mobile */
    #bbpress-forums .bbp-body .hentry,
    #bbpress-forums div.bbp-reply-entry {
        flex-wrap: wrap !important;
    }
    #bbpress-forums div.bbp-reply-author,
    #bbpress-forums div.bbp-topic-author {
        width: 100% !important;
        min-width: auto !important;
        flex-direction: row !important;
        border-right: none !important;
        border-bottom: 1px solid #2a2e3a !important;
        padding: 12px 16px !important;
        gap: 12px;
        text-align: left;
    }
    #bbpress-forums .bbp-reply-author .bbp-author-link,
    #bbpress-forums .bbp-topic-author .bbp-author-link {
        flex-direction: row !important;
        gap: 10px;
    }
    #bbpress-forums div.bbp-reply-author img.avatar,
    #bbpress-forums div.bbp-topic-author img.avatar {
        width: 40px !important;
        height: 40px !important;
        margin: 0 !important;
    }
    #bbpress-forums .bbp-reply-author .bbp-author-name,
    #bbpress-forums .bbp-topic-author .bbp-author-name {
        margin-top: 0 !important;
    }
    #bbpress-forums .bbp-pagination {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }

    /* Search form mobile */
    #bbp-search-form {
        max-width: 100%;
    }
}

/* =============================================================================
   FIX: Elementor Sticky Header Spacer
   Elementor creates a cloned div (.elementor-sticky__spacer) when sticky activates.
   This spacer reserves space in the document flow so content does not jump up
   when the real header becomes position:fixed. It must remain visible, but should
   not introduce any extra visual space beyond the header height.
   ============================================================================= */
.elementor-sticky__spacer {
    visibility: hidden !important;   /* takes up space but is invisible */
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}
/* Hide all children inside the spacer so nothing renders */
.elementor-sticky__spacer * {
    visibility: hidden !important;
}

/* =============================================================================
   FOOTER COLUMN SPACING FIX
   Reduce excessive padding between footer columns so headings and links
   do not wrap awkwardly (e.g., COMMUNITY, Advertise With Us)
   ============================================================================= */

footer .e-con.e-parent,
[data-elementor-type="footer"] .e-con.e-parent {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

footer .e-con.e-child,
[data-elementor-type="footer"] .e-con.e-child {
    padding-left: 12px !important;
    padding-right: 12px !important;
}

/* =============================================================================
   PREMIUM SEARCH DROPDOWN — Full Restyle
   Targets: .premium-search__query-wrap and children
   ============================================================================= */

/* The dropdown container — absolute below search input, right-aligned */
.premium-search__query-wrap {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    width: 420px !important;
    max-height: 70vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 999999 !important;
    background: var(--sf-surface, #181B21) !important;
    border: 1px solid var(--sf-border-hover, rgba(255,255,255,0.12)) !important;
    border-top: 2px solid var(--sf-accent, #3B9AE8) !important;
    border-radius: 0 0 8px 8px !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.6), 0 0 0 1px rgba(0,0,0,0.3) !important;
    padding: 8px 0 !important;
    margin-top: 2px !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Hide when it has the hidden class */
.premium-search__query-wrap.query-hidden {
    display: none !important;
}

/* Results list — stack vertically */
.premium-search__query-wrap .premium-search__posts-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

/* Individual result item — horizontal layout: thumb + text */
.premium-search__query-wrap .premium-search__post-wrap {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 10px 16px !important;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-bottom: 1px solid rgba(255,255,255,0.05) !important;
    transition: background 0.15s ease !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: visible !important;
}
.premium-search__query-wrap .premium-search__post-wrap:last-child {
    border-bottom: none !important;
}
.premium-search__query-wrap .premium-search__post-wrap:hover {
    background: var(--sf-elevated, #22262E) !important;
}

/* Post inner container — same flex row */
.premium-search__query-wrap .premium-search__post-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    background: transparent !important;
    overflow: visible !important;
}

/* Thumbnail container — fixed small square */
.premium-search__query-wrap .premium-search__thumbnail-wrap {
    flex: 0 0 56px !important;
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    overflow: hidden !important;
    border-radius: 6px !important;
    background: var(--sf-elevated, #22262E) !important;
    position: relative !important;
}

/* Thumbnail image — cover fit */
.premium-search__query-wrap .premium-search__thumbnail-wrap .premium-search__thumbnail,
.premium-search__query-wrap .premium-search__thumbnail-wrap img {
    width: 56px !important;
    height: 56px !important;
    max-width: 56px !important;
    max-height: 56px !important;
    object-fit: cover !important;
    border-radius: 6px !important;
    display: block !important;
}

/* Hide the overlay icon on thumbnails */
.premium-search__query-wrap .premium-search__overlay {
    display: none !important;
}

/* Text content area — fill remaining space */
.premium-search__query-wrap .premium-search__post-content {
    flex: 1 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    height: auto !important;
    max-height: none !important;
}

/* Title */
.premium-search__query-wrap .premium-search__post-title {
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    color: var(--sf-text, #E8ECF2) !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.premium-search__query-wrap .premium-search__post-title a {
    color: inherit !important;
    text-decoration: none !important;
}
.premium-search__query-wrap .premium-search__post-wrap:hover .premium-search__post-title,
.premium-search__query-wrap .premium-search__post-wrap:hover .premium-search__post-title a {
    color: var(--sf-accent, #3B9AE8) !important;
}

/* Excerpt */
.premium-search__query-wrap .premium-search__excerpt-wrap,
.premium-search__query-wrap .premium-search__post-excerpt {
    font-size: 12px !important;
    color: var(--sf-text-muted, #5E6578) !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-height: 16px !important;
}

/* Full-card link overlay — cover the item */
.premium-search__query-wrap .premium-search__link {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 2 !important;
    text-indent: -9999px !important;
    font-size: 0 !important;
}

/* Custom scrollbar for results */
.premium-search__query-wrap::-webkit-scrollbar {
    width: 6px;
}
.premium-search__query-wrap::-webkit-scrollbar-track {
    background: transparent;
}
.premium-search__query-wrap::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.15);
    border-radius: 3px;
}
.premium-search__query-wrap::-webkit-scrollbar-thumb:hover {
    background: rgba(255,255,255,0.25);
}

/* Ensure the search container allows overflow for dropdown */
.premium-search__container {
    position: relative !important;
    overflow: visible !important;
}
.premium-search__input-btn-wrap {
    position: relative !important;
}

/* Ensure header widget allows overflow */
[data-elementor-type="header"] .elementor-widget-premium-search-form .elementor-widget-container,
.elementor-element-hdr6 .elementor-widget-container {
    overflow: visible !important;
}

/* Mobile: full-width dropdown */
@media (max-width: 767px) {
    .premium-search__query-wrap {
        position: fixed !important;
        top: auto !important;
        left: 8px !important;
        right: 8px !important;
        width: auto !important;
        max-height: 60vh !important;
        border-radius: 8px !important;
        border-top: 2px solid var(--sf-accent, #3B9AE8) !important;
    }
}


/* =============================================================================
   Content Preview Card -- bbPress Topic Linked Content
   ============================================================================= */

#bbpress-forums .sf-content-preview-card {
    display: flex;
    gap: 0;
    background: linear-gradient(135deg, #1a1d24 0%, #22262e 50%, #1e2128 100%);
    border: 1px solid rgba(233, 30, 99, 0.2);
    border-radius: 12px;
    overflow: hidden;
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.4),
        0 0 30px rgba(233, 30, 99, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
    max-width: 100%;
}

#bbpress-forums .sf-content-preview-card:hover {
    border-color: rgba(233, 30, 99, 0.4);
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.5),
        0 0 40px rgba(233, 30, 99, 0.12);
    transform: translateY(-1px);
}

/* Image section */
#bbpress-forums .sf-content-preview-card .sf-preview-image {
    display: block;
    flex-shrink: 0;
    width: 300px;
    min-height: 200px;
    position: relative;
    overflow: hidden;
    background: #15171c;
    padding: 0;
    margin: 0;
    border: none;
}

#bbpress-forums .sf-content-preview-card .sf-preview-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease, filter 0.4s ease;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
}

#bbpress-forums .sf-content-preview-card:hover .sf-preview-image img {
    transform: scale(1.05);
    filter: brightness(1.1);
}

/* Play/Gallery overlay icon on image */
#bbpress-forums .sf-content-preview-card .sf-preview-image-overlay {
    position: absolute;
    bottom: 12px;
    right: 12px;
    width: 40px;
    height: 40px;
    background: rgba(233, 30, 99, 0.85);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.3s ease, transform 0.3s ease;
    box-shadow: 0 2px 12px rgba(233, 30, 99, 0.4);
}

#bbpress-forums .sf-content-preview-card .sf-preview-image-overlay svg {
    width: 18px;
    height: 18px;
    margin: 0;
    vertical-align: middle;
}

#bbpress-forums .sf-content-preview-card:hover .sf-preview-image-overlay {
    opacity: 1;
    transform: scale(1);
}

/* Info section */
#bbpress-forums .sf-content-preview-card .sf-preview-info {
    flex: 1;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

/* Post type badge */
#bbpress-forums .sf-content-preview-card .sf-preview-badge {
    display: inline-flex;
    align-items: center;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    padding: 4px 10px;
    border-radius: 4px;
    width: fit-content;
    background: rgba(233, 30, 99, 0.12);
    color: #e91e63;
    border: 1px solid rgba(233, 30, 99, 0.2);
}

#bbpress-forums .sf-content-preview-card .sf-preview-badge--video {
    background: rgba(156, 39, 176, 0.12);
    color: #ce93d8;
    border: 1px solid rgba(156, 39, 176, 0.2);
}

/* Title */
#bbpress-forums .sf-content-preview-card .sf-preview-title {
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Sora', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
}

#bbpress-forums .sf-content-preview-card .sf-preview-title a {
    color: #e8ecf2 !important;
    text-decoration: none !important;
    background: none !important;
    padding: 0 !important;
    transition: color 0.2s ease;
}

#bbpress-forums .sf-content-preview-card .sf-preview-title a:hover {
    color: #e91e63 !important;
}

/* Description */
#bbpress-forums .sf-content-preview-card .sf-preview-desc {
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    line-height: 1.6;
    color: #9ba4b5;
}

/* Model name */
#bbpress-forums .sf-content-preview-card .sf-preview-model {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    color: #9ba4b5;
    display: flex;
    align-items: center;
}

#bbpress-forums .sf-content-preview-card .sf-preview-model a {
    color: #e91e63 !important;
    text-decoration: none !important;
    font-weight: 500;
    background: none !important;
    padding: 0 !important;
    transition: color 0.2s ease;
}

#bbpress-forums .sf-content-preview-card .sf-preview-model a:hover {
    color: #f06292 !important;
    text-decoration: underline !important;
}

/* CTA button */
#bbpress-forums .sf-content-preview-card a.sf-preview-cta {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding: 10px 20px !important;
    background: linear-gradient(135deg, #e91e63 0%, #c2185b 100%) !important;
    color: #fff !important;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
    border-radius: 8px;
    width: fit-content;
    transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.15s ease;
    box-shadow: 0 2px 8px rgba(233, 30, 99, 0.25);
}

#bbpress-forums .sf-content-preview-card a.sf-preview-cta:hover {
    background: linear-gradient(135deg, #f06292 0%, #e91e63 100%) !important;
    box-shadow: 0 4px 16px rgba(233, 30, 99, 0.4);
    transform: translateY(-1px);
    color: #fff !important;
}

#bbpress-forums .sf-content-preview-card a.sf-preview-cta svg {
    margin-right: 0;
}

/* Responsive: stack on mobile */
@media (max-width: 640px) {
    #bbpress-forums .sf-content-preview-card {
        flex-direction: column;
    }

    #bbpress-forums .sf-content-preview-card .sf-preview-image {
        width: 100%;
        min-height: 180px;
        max-height: 220px;
    }

    #bbpress-forums .sf-content-preview-card .sf-preview-info {
        padding: 16px;
    }

    #bbpress-forums .sf-content-preview-card .sf-preview-title {
        font-size: 17px;
    }
}


/* =============================================================================
   SF-CARD HOVER EFFECTS - Polished hover interactions for content grid cards
   ============================================================================= */

/* Base card transition setup - use high specificity to beat nuclear rules */
.elementor .e-loop-item .sf-card {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    border: 1px solid transparent !important;
    cursor: pointer !important;
    will-change: transform;
}

/* Card hover: lift + accent glow border + deep shadow */
.elementor .e-loop-item .sf-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5),
                0 0 15px rgba(59, 154, 232, 0.12) !important;
    border-color: rgba(59, 154, 232, 0.25) !important;
}

/* Image zoom + brightness on hover */
.elementor .e-loop-item .sf-card__media {
    overflow: hidden !important;
}

.elementor .e-loop-item .sf-card__thumb,
.elementor .e-loop-item .sf-carousel__slide img {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
    will-change: transform;
    transform-origin: center center !important;
}

.elementor .e-loop-item .sf-card:hover .sf-card__thumb,
.elementor .e-loop-item .sf-card:hover .sf-carousel__slide img {
    transform: scale(1.03) !important;
    filter: brightness(1.08) !important;
}

/* Title color change on hover - accent blue */
.elementor .e-loop-item .sf-card__title {
    transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.elementor .e-loop-item .sf-card:hover .sf-card__title {
    color: #4fc3f7 !important;
}

/* Meta text subtle highlight on hover */
.elementor .e-loop-item .sf-card__meta {
    transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.elementor .e-loop-item .sf-card:hover .sf-card__meta {
    color: #9BA4B5 !important;
}

/* Play icon pulse on video card hover */
.elementor .e-loop-item .sf-card__play-icon {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                background 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.elementor .e-loop-item .sf-card:hover .sf-card__play-icon {
    transform: translate(-50%, -50%) scale(1.15) !important;
    background: rgba(233, 30, 99, 0.8) !important;
}

/* Carousel nav buttons appear on card hover */
.elementor .e-loop-item .sf-carousel__prev,
.elementor .e-loop-item .sf-carousel__next {
    transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.elementor .e-loop-item .sf-card:hover .sf-carousel__prev,
.elementor .e-loop-item .sf-card:hover .sf-carousel__next {
    opacity: 1 !important;
}

/* Pointer cursor on outer loop item wrapper */
.e-loop-item {
    cursor: pointer !important;
}

/* =============================================================================
   RELATED CONTENT GRID — Hover Effects (Single Gallery & Video Pages)
   Targets Elementor Posts widget cards on single gallery/video templates.
   Must override earlier "nuclear" box-shadow:none rules.
   ============================================================================= */

/* Card base — cursor pointer on entire card */
.elementor-location-single .elementor-widget-posts article.elementor-post,
.elementor-location-single .elementor-posts-container article.elementor-post {
    cursor: pointer !important;
    transition: transform 0.3s ease,
                box-shadow 0.3s ease,
                border-color 0.3s ease !important;
    border: 1px solid transparent !important;
    border-width: 1px !important;
    border-style: solid !important;
}

/* Card hover — subtle lift + accent glow border */
.elementor-location-single .elementor-widget-posts article.elementor-post:hover,
.elementor-location-single .elementor-posts-container article.elementor-post:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4),
                0 0 16px rgba(59, 154, 232, 0.2) !important;
    border: 1px solid rgba(59, 154, 232, 0.35) !important;
    border-width: 1px !important;
    border-style: solid !important;
    border-color: rgba(59, 154, 232, 0.35) !important;
}

/* Thumbnail container — overflow hidden to contain zoom */
.elementor-location-single .elementor-widget-posts .elementor-post__thumbnail {
    overflow: hidden !important;
    border-radius: inherit !important;
    position: relative !important;
}

/* Image base — smooth transition */
.elementor-location-single .elementor-widget-posts .elementor-post__thumbnail img {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
    will-change: transform, filter;
    transform-origin: center center !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* Image hover — slight zoom + brightness boost */
.elementor-location-single .elementor-widget-posts article.elementor-post:hover .elementor-post__thumbnail img {
    transform: scale(1.03) !important;
    filter: brightness(1.08) !important;
}

/* Title link base — smooth color transition */
.elementor-location-single .elementor-widget-posts .elementor-post__title a {
    transition: color 0.3s ease !important;
}

/* Title hover — accent color */
.elementor-location-single .elementor-widget-posts article.elementor-post:hover .elementor-post__title a {
    color: var(--sf-accent-hover, #56ADF0) !important;
}


/* Homepage H1 for SEO — visually hidden, screen-reader only */
.sf-homepage-h1 {
    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;
}

/* bbPress Forum H1 */
.bbpress-page-title {
    font-family: Sora, sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: #1a1a2e;
    margin: 20px 0 15px;
    padding: 0;
}


/* =============================================================================
   BUDDYPRESS MEMBER PROFILES — Dark Theme
   ============================================================================= */

/* Main BuddyPress wrapper */
.buddypress-wrapper,
.buddypress-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Member header area */
#buddypress #header-cover-image {
    background: linear-gradient(135deg, var(--sf-surface) 0%, var(--sf-elevated) 100%) !important;
    min-height: 200px;
}

#buddypress .bp-profile-header,
#buddypress #item-header {
    background: var(--sf-surface) !important;
    border-bottom: 1px solid var(--sf-border) !important;
}

#buddypress #item-header-content {
    color: var(--sf-text) !important;
}

#buddypress .member-header-actions a,
#buddypress .group-header-actions a {
    background: var(--sf-elevated) !important;
    color: var(--sf-accent) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 6px !important;
    padding: 6px 14px !important;
    transition: all 0.2s ease !important;
}

#buddypress .member-header-actions a:hover,
#buddypress .group-header-actions a:hover {
    background: var(--sf-accent) !important;
    color: #fff !important;
}

/* Member name */
#buddypress #item-header-content h2,
#buddypress .bp-profile-header h2 {
    color: var(--sf-text) !important;
    font-family: 'Sora', sans-serif !important;
}

/* Last active text */
#buddypress #item-header-content .activity,
#buddypress .bp-profile-header .activity {
    color: var(--sf-text-secondary) !important;
}

/* Navigation tabs */
#buddypress nav.bp-navs,
#buddypress .item-list-tabs {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 8px !important;
    margin-bottom: 16px !important;
}

#buddypress nav.bp-navs ul li a,
#buddypress .item-list-tabs ul li a {
    color: var(--sf-text-secondary) !important;
    padding: 10px 16px !important;
    transition: all 0.2s ease !important;
}

#buddypress nav.bp-navs ul li a:hover,
#buddypress .item-list-tabs ul li a:hover {
    color: var(--sf-accent) !important;
    background: var(--sf-elevated) !important;
}

#buddypress nav.bp-navs ul li.current a,
#buddypress nav.bp-navs ul li.selected a,
#buddypress .item-list-tabs ul li.current a,
#buddypress .item-list-tabs ul li.selected a {
    color: var(--sf-accent) !important;
    border-bottom: 2px solid var(--sf-accent) !important;
    font-weight: 600 !important;
}

/* Sub-navigation */
#buddypress .bp-navs.bp-subnavs,
#buddypress .item-list-tabs#subnav {
    background: var(--sf-elevated) !important;
    border-color: var(--sf-border) !important;
}

/* Content area */
#buddypress #item-body,
#buddypress .bp-wrap {
    color: var(--sf-text) !important;
}

/* Activity items */
#buddypress .activity-list li {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 8px !important;
    margin-bottom: 12px !important;
    padding: 16px !important;
}

#buddypress .activity-list li:hover {
    border-color: var(--sf-border-hover) !important;
}

#buddypress .activity-list .activity-content .activity-header {
    color: var(--sf-text-secondary) !important;
}

#buddypress .activity-list .activity-content .activity-inner {
    color: var(--sf-text) !important;
}

/* Info messages */
#buddypress .bp-feedback,
#buddypress #message {
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 8px !important;
    color: var(--sf-text-secondary) !important;
}

#buddypress .bp-feedback .bp-icon,
#buddypress #message .bp-icon {
    color: var(--sf-accent) !important;
}

/* Member directory */
#buddypress #members-list li,
#buddypress .members-list li {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 8px !important;
    padding: 12px !important;
    margin-bottom: 8px !important;
}

#buddypress #members-list li:hover,
#buddypress .members-list li:hover {
    border-color: var(--sf-accent-muted) !important;
}

/* Search bars */
#buddypress .dir-search input,
#buddypress .groups-members-search input,
#buddypress #search-members-form input {
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
    border-radius: 6px !important;
    padding: 8px 14px !important;
}

#buddypress .dir-search input:focus,
#buddypress .groups-members-search input:focus {
    border-color: var(--sf-accent) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px var(--sf-accent-muted) !important;
}

#buddypress .dir-search button,
#buddypress .groups-members-search button {
    background: var(--sf-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 8px 16px !important;
}

/* Dropdowns / selects */
#buddypress select,
#buddypress .bp-search select {
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
    border-radius: 6px !important;
}

/* Pagination */
#buddypress .bp-pagination,
#buddypress .pagination-links {
    color: var(--sf-text-secondary) !important;
}

#buddypress .bp-pagination a,
#buddypress .pagination-links a {
    color: var(--sf-accent) !important;
}

/* Forum topics in member profile */
#buddypress #bbpress-forums li {
    border-color: var(--sf-border) !important;
}

#buddypress #bbpress-forums .bbp-topic-title {
    color: var(--sf-text) !important;
}

/* User avatar */
#buddypress img.avatar {
    border: 2px solid var(--sf-border) !important;
    border-radius: 8px !important;
}

/* BP Nouveau specific */
.bp-nouveau #buddypress {
    color: var(--sf-text) !important;
}

.bp-nouveau #buddypress .bp-list li {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 8px !important;
}

.bp-nouveau #buddypress .subnav-filters {
    background: transparent !important;
    border: none !important;
}

.bp-nouveau #buddypress .subnav-filters select {
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    color: var(--sf-text) !important;
}

/* Heading styles */
#buddypress h2,
#buddypress h3 {
    color: var(--sf-text) !important;
    font-family: 'Sora', sans-serif !important;
}

/* Profile fields table */
#buddypress .profile .bp-widget h2 {
    background: var(--sf-elevated) !important;
    color: var(--sf-text) !important;
    border-bottom: 1px solid var(--sf-border) !important;
    padding: 10px 16px !important;
}

#buddypress .profile table {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
}

#buddypress .profile table td {
    border-color: var(--sf-border) !important;
    color: var(--sf-text) !important;
    padding: 8px 16px !important;
}

#buddypress .profile table .label {
    color: var(--sf-text-secondary) !important;
    font-weight: 600 !important;
}

/* Friends list */
#buddypress #friends-list li,
#buddypress .friends-list li {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 8px !important;
}

/* Groups list */
#buddypress #groups-list li,
#buddypress .groups-list li {
    background: var(--sf-surface) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: 8px !important;
}

/* Buttons */
#buddypress button,
#buddypress input[type="submit"],
#buddypress .generic-button a {
    background: var(--sf-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 8px 18px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
}

#buddypress button:hover,
#buddypress input[type="submit"]:hover,
#buddypress .generic-button a:hover {
    background: var(--sf-accent-hover) !important;
}

/* RSS link styling */
#buddypress .feed a {
    color: var(--sf-text-muted) !important;
}

#buddypress .feed a:hover {
    color: var(--sf-accent) !important;
}


/* =============================================================================
   SINGLE VIDEO & GALLERY — SINGLE COLUMN LAYOUT (No Sidebar)
   Forces all content to stack vertically in one column.
   The Elementor template data was also updated to column layout,
   but these CSS rules reinforce the layout in case of cached inline styles.
   ============================================================================= */

/* Root container: force column direction */
body.single-video [data-elementor-type="single-page"] > .e-con.e-parent,
body.single-gallery [data-elementor-type="single-page"] > .e-con.e-parent {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 20px !important;
}

/* All direct child containers: full width, no side-by-side */
body.single-video [data-elementor-type="single-page"] > .e-con.e-parent > .e-con,
body.single-gallery [data-elementor-type="single-page"] > .e-con.e-parent > .e-con {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    flex-shrink: 0 !important;
}

/* All widgets inside the template: full width */
body.single-video [data-elementor-type="single-page"] .elementor-widget,
body.single-gallery [data-elementor-type="single-page"] .elementor-widget {
    width: 100% !important;
}

/* =============================================================================
   SINGLE POST BOTTOM SECTION — Model Card + Sponsor Ads
   Centered, clean layout for model profile and sponsor ad sections
   ============================================================================= */

/* Bottom container: center all children */
body.single-video .elementor-element-g7b8c9d1,
body.single-video .elementor-element-v7b8c9d0,
body.single-gallery .elementor-element-g7b8c9d1,
body.single-gallery .elementor-element-v7b8c9d0,
body.single-video [data-elementor-type="single-page"] > .e-con > .e-con:last-child,
body.single-gallery [data-elementor-type="single-page"] > .e-con > .e-con:last-child {
    align-items: center !important;
    gap: 30px !important;
}

/* Model profile card — centered, max-width 700px, clean card */
body.single-video .elementor-widget-sfam_model_profile,
body.single-gallery .elementor-widget-sfam_model_profile {
    max-width: 700px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.single-video .sfam-model-profile,
body.single-gallery .sfam-model-profile {
    background: var(--sf-elevated) !important;
    border: 1px solid var(--sf-border) !important;
    border-radius: var(--sf-radius-lg) !important;
    box-shadow: var(--sf-shadow-md) !important;
    overflow: hidden !important;
    transition: box-shadow var(--sf-duration) var(--sf-ease),
                border-color var(--sf-duration) var(--sf-ease) !important;
}

body.single-video .sfam-model-profile:hover,
body.single-gallery .sfam-model-profile:hover {
    border-color: var(--sf-border-hover) !important;
    box-shadow: var(--sf-shadow-lg) !important;
}

/* Horizontal layout within the model card on single pages */
body.single-video .sfam-layout-horizontal,
body.single-gallery .sfam-layout-horizontal {
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
    padding: 24px !important;
}

body.single-video .sfam-layout-horizontal .sfam-profile-image,
body.single-gallery .sfam-layout-horizontal .sfam-profile-image {
    flex-shrink: 0 !important;
    width: 120px !important;
}

body.single-video .sfam-layout-horizontal .sfam-profile-image img,
body.single-gallery .sfam-layout-horizontal .sfam-profile-image img {
    width: 120px !important;
    height: 120px !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    border: 3px solid var(--sf-elevated-2) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
}

body.single-video .sfam-layout-horizontal .sfam-profile-content,
body.single-gallery .sfam-layout-horizontal .sfam-profile-content {
    flex: 1 !important;
    text-align: left !important;
}

body.single-video .sfam-layout-horizontal .sfam-profile-name,
body.single-gallery .sfam-layout-horizontal .sfam-profile-name {
    font-size: 1.4rem !important;
    margin-bottom: 10px !important;
}

body.single-video .sfam-layout-horizontal .sfam-profile-stats,
body.single-gallery .sfam-layout-horizontal .sfam-profile-stats {
    border-top: 1px solid var(--sf-border) !important;
    padding-top: 12px !important;
    margin-top: 12px !important;
    justify-content: flex-start !important;
}

body.single-video .sfam-layout-horizontal .sfam-profile-like,
body.single-gallery .sfam-layout-horizontal .sfam-profile-like {
    margin-bottom: 4px !important;
}

/* Fallback for vertical layout too — still center it */
body.single-video .sfam-layout-vertical,
body.single-gallery .sfam-layout-vertical {
    text-align: center !important;
    padding: 24px !important;
}

body.single-video .sfam-layout-vertical .sfam-profile-image img,
body.single-gallery .sfam-layout-vertical .sfam-profile-image img {
    width: 120px !important;
    height: 120px !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    margin: 0 auto !important;
    border: 3px solid var(--sf-elevated-2) !important;
}

body.single-video .sfam-layout-vertical .sfam-profile-stats,
body.single-gallery .sfam-layout-vertical .sfam-profile-stats {
    justify-content: center !important;
}

/* Sponsor ads section — centered, styled container */
body.single-video .elementor-widget-shortcode .sfam-sidebar-ad,
body.single-gallery .elementor-widget-shortcode .sfam-sidebar-ad,
body.single-video .elementor-widget-shortcode .sfam-ad,
body.single-gallery .elementor-widget-shortcode .sfam-ad {
    text-align: center !important;
}

body.single-video .elementor-widget-shortcode .sfam-ad img,
body.single-gallery .elementor-widget-shortcode .sfam-ad img,
body.single-video .elementor-widget-shortcode .sfam-sidebar-ad img,
body.single-gallery .elementor-widget-shortcode .sfam-sidebar-ad img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: var(--sf-radius-sm) !important;
}

body.single-video .elementor-widget-shortcode .sfam-ad-html,
body.single-gallery .elementor-widget-shortcode .sfam-ad-html,
body.single-video .elementor-widget-shortcode .sfam-sidebar-html,
body.single-gallery .elementor-widget-shortcode .sfam-sidebar-html {
    display: inline-block !important;
    text-align: center !important;
    color: var(--sf-text-muted) !important;
    font-size: 13px !important;
}

body.single-video .elementor-widget-shortcode .sfam-ad-html a,
body.single-gallery .elementor-widget-shortcode .sfam-ad-html a,
body.single-video .elementor-widget-shortcode .sfam-sidebar-html a,
body.single-gallery .elementor-widget-shortcode .sfam-sidebar-html a {
    color: var(--sf-accent) !important;
}

/* Ad shortcode widget wrapper — center and constrain */
body.single-video .elementor-widget-shortcode .elementor-shortcode,
body.single-gallery .elementor-widget-shortcode .elementor-shortcode {
    text-align: center !important;
}

/* Sponsored label — add via CSS pseudo-element on ad containers */
body.single-video [data-elementor-type="single-page"] > .e-con > .e-con:last-child > .elementor-widget-shortcode:first-of-type .elementor-shortcode::before,
body.single-gallery [data-elementor-type="single-page"] > .e-con > .e-con:last-child > .elementor-widget-shortcode:first-of-type .elementor-shortcode::before {
    content: 'Sponsored' !important;
    display: block !important;
    text-align: center !important;
    color: var(--sf-text-muted) !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    margin-bottom: 12px !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--sf-border) !important;
}

/* Constrain ad widget width */
body.single-video [data-elementor-type="single-page"] > .e-con > .e-con:last-child > .elementor-widget-shortcode,
body.single-gallery [data-elementor-type="single-page"] > .e-con > .e-con:last-child > .elementor-widget-shortcode {
    max-width: 500px !important;
    width: 100% !important;
}

/* Remove gap between consecutive ad shortcode widgets */
body.single-video [data-elementor-type="single-page"] > .e-con > .e-con:last-child > .elementor-widget-shortcode + .elementor-widget-shortcode,
body.single-gallery [data-elementor-type="single-page"] > .e-con > .e-con:last-child > .elementor-widget-shortcode + .elementor-widget-shortcode {
    margin-top: -10px !important;
}

/* Mobile responsive */
@media (max-width: 767px) {
    body.single-video .elementor-widget-sfam_model_profile,
    body.single-gallery .elementor-widget-sfam_model_profile {
        max-width: 100% !important;
    }

    body.single-video .sfam-layout-horizontal,
    body.single-gallery .sfam-layout-horizontal {
        flex-direction: column !important;
        text-align: center !important;
        padding: 20px !important;
    }

    body.single-video .sfam-layout-horizontal .sfam-profile-content,
    body.single-gallery .sfam-layout-horizontal .sfam-profile-content {
        text-align: center !important;
    }

    body.single-video .sfam-layout-horizontal .sfam-profile-stats,
    body.single-gallery .sfam-layout-horizontal .sfam-profile-stats {
        justify-content: center !important;
    }
}


/* =============================================================================
   ENHANCED SEARCH DROPDOWN
   Infinite scroll, dates, dark theme matching site design
   ============================================================================= */

.sf-search-dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    width: 420px;
    max-height: 480px;
    overflow-y: auto;
    overflow-x: hidden;
    background: var(--sf-surface, #181B21);
    border: 1px solid var(--sf-border, rgba(255, 255, 255, 0.06));
    border-top: none;
    border-radius: 0 0 12px 12px;
    box-shadow: var(--sf-shadow-lg, 0 16px 48px rgba(0, 0, 0, 0.5));
    z-index: 999999;
    scrollbar-width: thin;
    scrollbar-color: var(--sf-elevated-2, #2A2F3A) transparent;
}

.sf-search-dropdown::-webkit-scrollbar {
    width: 6px;
}

.sf-search-dropdown::-webkit-scrollbar-track {
    background: transparent;
}

.sf-search-dropdown::-webkit-scrollbar-thumb {
    background: var(--sf-elevated-2, #2A2F3A);
    border-radius: 3px;
}

.sf-search-dropdown::-webkit-scrollbar-thumb:hover {
    background: var(--sf-elevated-3, #333844);
}

/* Individual result row */
.sf-search-result {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    text-decoration: none;
    color: var(--sf-text, #E8ECF2);
    border-bottom: 1px solid var(--sf-border, rgba(255, 255, 255, 0.06));
    transition: background 0.15s ease;
    cursor: pointer;
}

.sf-search-result:hover {
    background: var(--sf-elevated, #22262E);
    color: var(--sf-text, #E8ECF2);
    text-decoration: none;
}

.sf-search-result:last-of-type {
    border-bottom: none;
}

/* Thumbnail */
.sf-search-result__thumb {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--sf-elevated, #22262E);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sf-search-result__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sf-search-result__thumb--empty {
    color: var(--sf-text-muted, #5E6578);
}

/* Info section */
.sf-search-result__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sf-search-result__title {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--sf-text, #E8ECF2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: 'DM Sans', sans-serif;
}

.sf-search-result:hover .sf-search-result__title {
    color: var(--sf-accent, #3B9AE8);
}

/* Meta row (badge + date) */
.sf-search-result__meta {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sf-search-result__badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 2px 6px;
    border-radius: 3px;
    line-height: 1;
    font-family: 'DM Sans', sans-serif;
}

.sf-search-result__badge--gallery {
    background: var(--sf-accent-muted, rgba(59, 154, 232, 0.15));
    color: var(--sf-accent, #3B9AE8);
}

.sf-search-result__badge--video {
    background: var(--sf-warm-muted, rgba(232, 162, 59, 0.15));
    color: var(--sf-warm, #E8A23B);
}

.sf-search-result__date {
    font-size: 11px;
    color: var(--sf-text-muted, #5E6578);
    font-family: 'DM Sans', sans-serif;
}

/* Loading spinner */
.sf-search-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.sf-search-loading--bottom {
    padding: 12px;
}

.sf-search-spinner {
    width: 24px;
    height: 24px;
    border: 2px solid var(--sf-elevated-2, #2A2F3A);
    border-top-color: var(--sf-accent, #3B9AE8);
    border-radius: 50%;
    animation: sf-spin 0.6s linear infinite;
}

@keyframes sf-spin {
    to { transform: rotate(360deg); }
}

/* Empty / error state */
.sf-search-empty {
    padding: 24px 16px;
    text-align: center;
    color: var(--sf-text-muted, #5E6578);
    font-size: 13px;
    font-family: 'DM Sans', sans-serif;
}

/* Mobile responsive */
@media (max-width: 767px) {
    .sf-search-dropdown {
        width: calc(100vw - 32px);
        right: auto;
        left: 50%;
        transform: translateX(-50%);
        max-height: 60vh;
    }

    .sf-search-result__thumb {
        width: 48px;
        height: 48px;
    }

    .sf-search-result__title {
        font-size: 12px;
    }
}

/* Hide Premium search results when our dropdown is active */
.premium-search__container .premium-search__query-wrap {
    display: none !important;
}

/* ==========================================================================
   Lightbox / Image Viewer Fixes
   - Proper z-index to sit above sticky header
   - Visible navigation arrows with infinite loop
   - Counter, keyboard, swipe all supported by Elementor Swiper
   ========================================================================== */

/* Ensure lightbox sits above the sticky header (z-index: 99999) */
.elementor-lightbox {
    z-index: 150000 !important;
}

/* Lightbox header (counter, share, fullscreen, zoom, close buttons) */
.elementor-lightbox .elementor-slideshow__header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%, transparent 100%);
    opacity: 1;
    transition: opacity 0.3s ease;
}

/* Counter styling */
.elementor-lightbox .elementor-slideshow__counter {
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 1px;
    text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}

/* Navigation arrows - make them clearly visible */
.elementor-lightbox .elementor-swiper-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%);
    width: 50px !important;
    height: 50px !important;
    background: rgba(0, 0, 0, 0.5) !important;
    border-radius: 50%;
    color: #fff !important;
    cursor: pointer;
    z-index: 10;
    transition: background 0.2s ease, transform 0.2s ease;
    opacity: 0.8;
}

.elementor-lightbox .elementor-swiper-button:hover {
    background: rgba(0, 0, 0, 0.8) !important;
    opacity: 1;
    transform: translateY(-50%) scale(1.1);
}

.elementor-lightbox .elementor-swiper-button-prev {
    left: 15px !important;
    right: auto !important;
}

.elementor-lightbox .elementor-swiper-button-next {
    right: 15px !important;
    left: auto !important;
}

/* Arrow icon sizing */
.elementor-lightbox .elementor-swiper-button svg,
.elementor-lightbox .elementor-swiper-button i {
    width: 24px;
    height: 24px;
    fill: #fff;
    color: #fff;
}

/* Footer with image title/description */
.elementor-lightbox .elementor-slideshow__footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 15px 20px;
    text-align: center;
    background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, transparent 100%);
    color: #fff;
    font-size: 14px;
    z-index: 10;
}

/* Close button in header */
.elementor-lightbox .dialog-close-button,
.elementor-lightbox .elementor-slideshow__header__close {
    color: #fff !important;
    font-size: 24px;
    cursor: pointer;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

.elementor-lightbox .dialog-close-button:hover,
.elementor-lightbox .elementor-slideshow__header__close:hover {
    opacity: 1;
}

/* Ensure the swiper wrapper and slides fill the lightbox properly */
.elementor-lightbox .swiper {
    width: 100%;
    height: 100%;
}

.elementor-lightbox .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
}

.elementor-lightbox .swiper-slide img {
    max-width: 100%;
    max-height: 100vh;
    object-fit: contain;
}

/* Responsive adjustments */
@media (max-width: 767px) {
    .elementor-lightbox .elementor-swiper-button {
        width: 40px !important;
        height: 40px !important;
    }

    .elementor-lightbox .elementor-swiper-button-prev {
        left: 8px !important;
    }

    .elementor-lightbox .elementor-swiper-button-next {
        right: 8px !important;
    }

    .elementor-lightbox .elementor-swiper-button svg,
    .elementor-lightbox .elementor-swiper-button i {
        width: 18px;
        height: 18px;
    }

    .elementor-lightbox .elementor-slideshow__counter {
        font-size: 13px;
    }
}

/* Make lightbox background fully opaque so page content doesn't bleed through */
.elementor-lightbox {
    background: rgba(0, 0, 0, 0.95) !important;
}

/* Hide sticky header when lightbox is active (body class toggled by JS) */
body.sf-lightbox-open .elementor-location-header,
body.sf-lightbox-open .elementor-sticky--active,
body.sf-lightbox-open header {
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Prevent body scroll when lightbox is open */
body.sf-lightbox-open {
    overflow: hidden !important;
}


/* =============================================================================
   Mobile Header Search Toggle
   Hide search bar on mobile, show a search icon that expands it
   ============================================================================= */

@media (max-width: 767px) {
    /* Hide the full search widget on mobile by default */
    .elementor-element-hdr6 {
        display: none !important;
        order: 10;
        width: 100% !important;
        flex-basis: 100% !important;
    }

    /* When search is toggled open, show it as full-width below header row */
    .sf-search-open .elementor-element-hdr6 {
        display: block !important;
        width: 100% !important;
        flex-basis: 100% !important;
        padding: 0 16px 12px;
        animation: sf-search-slide-down 0.25s ease-out;
    }

    .sf-search-open .elementor-element-hdr6 .premium-search__input-wrap {
        width: 100% !important;
    }

    .sf-search-open .elementor-element-hdr6 input[type="search"],
    .sf-search-open .elementor-element-hdr6 input[type="text"] {
        width: 100% !important;
        font-size: 16px !important; /* Prevent iOS zoom */
    }

    /* Search toggle button - injected via JS */
    .sf-search-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        margin: 0;
        order: 5;
        flex-shrink: 0;
    }

    .sf-search-toggle svg {
        width: 20px;
        height: 20px;
        fill: none;
        stroke: var(--sf-accent, #3B9AE8);
        stroke-width: 2.5;
        stroke-linecap: round;
        stroke-linejoin: round;
        transition: stroke 0.2s ease;
    }

    .sf-search-toggle:hover svg,
    .sf-search-toggle:focus svg {
        stroke: #fff;
    }

    /* When search is open, change icon to X */
    .sf-search-open .sf-search-toggle svg .sf-search-icon {
        display: none;
    }
    .sf-search-open .sf-search-toggle svg .sf-close-icon {
        display: block;
    }
    .sf-search-toggle svg .sf-close-icon {
        display: none;
    }

    @keyframes sf-search-slide-down {
        from {
            opacity: 0;
            transform: translateY(-8px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

/* Desktop: hide the search toggle button */
@media (min-width: 768px) {
    .sf-search-toggle {
        display: none !important;
    }
}


/* Search toggle button - override hello-elementor button styles */
@media (max-width: 767px) {
    button.sf-search-toggle,
    button.sf-search-toggle:hover,
    button.sf-search-toggle:focus,
    button.sf-search-toggle:active,
    button.sf-search-toggle:visited {
        background: transparent !important;
        background-color: transparent !important;
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
    }
}


/* =============================================================================
   OFF-CANVAS MOBILE MENU
   Replaces Elementor dropdown hamburger with smooth slide-out canvas.
   ============================================================================= */

@media (max-width: 767px) {

    /* Hide header search bar on mobile (moved into canvas) */
    .elementor-element-hdr6 {
        display: none !important;
    }

    /* Body scroll lock when menu is open */
    body.sf-canvas-body-lock {
        overflow: hidden !important;
        position: fixed !important;
        width: 100% !important;
        height: 100% !important;
    }

    /* Canvas menu container -- ultra high specificity to beat all dropdown rules */
    nav.sf-canvas-menu.elementor-nav-menu--dropdown.elementor-nav-menu__container {
        position: fixed !important;
        top: 0 !important;
        right: -300px !important;
        left: auto !important;
        width: 300px !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-height: none !important;
        min-height: 100vh !important;
        background: #141820 !important;
        border: none !important;
        border-left: 1px solid rgba(59, 154, 232, 0.15) !important;
        border-radius: 0 !important;
        box-shadow: -8px 0 32px rgba(0, 0, 0, 0.6) !important;
        z-index: 999999 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transition: right 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
        -webkit-overflow-scrolling: touch;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        transform: none !important;
        -webkit-transform: none !important;
        max-width: 300px !important;
        min-width: 300px !important;
    }

    /* Open state */
    nav.sf-canvas-menu.sf-canvas-open.elementor-nav-menu--dropdown.elementor-nav-menu__container {
        right: 0 !important;
    }

    /* Close button */
    .sf-canvas-close {
        position: absolute;
        top: 14px;
        right: 16px;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 8px;
        color: #9BA4B5;
        cursor: pointer;
        z-index: 10;
        transition: all 0.2s ease;
        padding: 0;
    }
    .sf-canvas-close:hover,
    .sf-canvas-close:active {
        background: rgba(255, 255, 255, 0.12);
        color: #fff;
    }

    /* Search bar inside canvas */
    .sf-canvas-search {
        padding: 64px 20px 16px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }
    .sf-canvas-search form {
        display: flex;
        gap: 0;
        position: relative;
    }
    .sf-canvas-search input[type="search"] {
        flex: 1;
        background: #1E222B !important;
        border: 1px solid rgba(255, 255, 255, 0.08) !important;
        border-right: none !important;
        border-radius: 8px 0 0 8px !important;
        color: #E8ECF2 !important;
        font-family: 'DM Sans', sans-serif !important;
        font-size: 14px !important;
        padding: 10px 14px !important;
        outline: none !important;
        -webkit-appearance: none;
        appearance: none;
    }
    .sf-canvas-search input[type="search"]:focus {
        border-color: rgba(59, 154, 232, 0.4) !important;
        box-shadow: 0 0 0 2px rgba(59, 154, 232, 0.1) !important;
    }
    .sf-canvas-search input[type="search"]::placeholder {
        color: #5E6578 !important;
    }
    .sf-canvas-search button[type="submit"] {
        background: #3B9AE8;
        border: none;
        border-radius: 0 8px 8px 0;
        color: #fff;
        padding: 0 14px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s;
    }
    .sf-canvas-search button[type="submit"]:hover {
        background: #56ADF0;
    }

    /* Menu items */
    nav.sf-canvas-menu > ul {
        list-style: none !important;
        margin: 0 !important;
        padding: 8px 0 !important;
    }
    nav.sf-canvas-menu > ul > li {
        border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        position: relative !important;
    }
    nav.sf-canvas-menu > ul > li > a {
        flex: 1 !important;
        color: #E8ECF2 !important;
        font-family: 'DM Sans', sans-serif !important;
        font-size: 16px !important;
        font-weight: 500 !important;
        padding: 14px 20px !important;
        text-decoration: none !important;
        display: flex !important;
        align-items: center !important;
        transition: color 0.2s, background 0.2s !important;
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
    }
    nav.sf-canvas-menu > ul > li > a:hover,
    nav.sf-canvas-menu > ul > li > a:active {
        color: #3B9AE8 !important;
        background: rgba(59, 154, 232, 0.06) !important;
    }

    /* Hide the sub-arrow SVG from Elementor */
    nav.sf-canvas-menu .sub-arrow {
        display: none !important;
    }

    /* Accordion toggle button */
    nav.sf-canvas-menu .sf-submenu-toggle {
        position: absolute !important;
        right: 8px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 40px !important;
        height: 40px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: transparent !important;
        border: none !important;
        color: #5E6578 !important;
        cursor: pointer !important;
        padding: 0 !important;
        z-index: 2 !important;
        transition: color 0.2s !important;
    }
    nav.sf-canvas-menu .sf-submenu-toggle svg {
        transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    }
    nav.sf-canvas-menu li.sf-submenu-open > .sf-submenu-toggle svg {
        transform: rotate(180deg);
    }
    nav.sf-canvas-menu .sf-submenu-toggle:hover {
        color: #3B9AE8 !important;
    }

    /* Submenu (accordion) */
    nav.sf-canvas-menu ul.sub-menu.elementor-nav-menu--dropdown {
        display: none !important;
        width: 100% !important;
        position: static !important;
        background: rgba(0, 0, 0, 0.15) !important;
        border: none !important;
        border-top: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        max-height: none !important;
        overflow: visible !important;
        transform: none !important;
        -webkit-transform: none !important;
        min-width: 0 !important;
        left: auto !important;
        top: auto !important;
        right: auto !important;
    }
    nav.sf-canvas-menu li.sf-submenu-open > ul.sub-menu.elementor-nav-menu--dropdown {
        display: block !important;
    }

    nav.sf-canvas-menu ul.sub-menu li {
        border: none !important;
    }
    nav.sf-canvas-menu ul.sub-menu li a {
        color: #9BA4B5 !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        padding: 10px 20px 10px 36px !important;
        display: block !important;
        transition: color 0.2s, background 0.2s !important;
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        white-space: normal !important;
    }
    nav.sf-canvas-menu ul.sub-menu li a:hover,
    nav.sf-canvas-menu ul.sub-menu li a:active {
        color: #3B9AE8 !important;
        background: rgba(59, 154, 232, 0.06) !important;
    }

    /* Hamburger button polish */
    .elementor-element-hdr5 .elementor-menu-toggle {
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
        border-radius: 8px !important;
        padding: 8px 10px !important;
        background: rgba(255, 255, 255, 0.04) !important;
        transition: background 0.2s !important;
    }
    .elementor-element-hdr5 .elementor-menu-toggle:hover,
    .elementor-element-hdr5 .elementor-menu-toggle:active {
        background: rgba(255, 255, 255, 0.08) !important;
    }
}

/* Dark overlay (outside media query so it can be controlled by JS) */
.sf-canvas-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    z-index: 999998;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s;
    -webkit-tap-highlight-color: transparent;
}
.sf-canvas-overlay--active {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}

/* Hide Premium Addons search toggle on mobile (search is in canvas menu) */
@media (max-width: 767px) {
    .elementor-element-hdr6,
    .elementor-element-hdr6 .premium-search__container {
        display: none !important;
    }
}

/* Canvas menu - MUST hide on desktop */
@media (min-width: 768px) {
    nav.sf-canvas-menu,
    nav.elementor-nav-menu--dropdown.elementor-nav-menu__container[style*="position: fixed"],
    nav.elementor-nav-menu--dropdown.sf-canvas-menu {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
    .sf-canvas-overlay {
        display: none !important;
    }
}
