/*
 * Belle Femme Boutique — shared public and member visual system.
 * Intentionally loaded only by the front layout; the admin console is unchanged.
 */
.belle-luxury {
    --bf-onyx: #171318;
    --bf-onyx-soft: #292229;
    --bf-porcelain: #fffafc;
    --bf-porcelain-deep: #f8f1f4;
    --bf-rose: #c51f68;
    --bf-rose-deep: #9e174f;
    --bf-rose-soft: #f7dbe8;
    --bf-champagne: #c8a46a;
    --bf-champagne-soft: #ead7b6;
    --bf-ink-muted: #71666d;
    --bf-line: #eadfe4;
    --bf-shadow: 0 18px 48px rgba(35, 22, 29, .09);
    --bf-serif: Georgia, "Times New Roman", serif;
    --bf-sans: "Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;
    background: var(--bf-porcelain);
    color: var(--bf-onyx);
    font-family: var(--bf-sans);
    line-height: 1.65;
}

.belle-luxury main,
.belle-luxury .home-section,
.belle-luxury .model-section,
.belle-luxury .about-section,
.belle-luxury .profile-section,
.belle-luxury .auth-section,
.belle-luxury .casting-section {
    background-color: var(--bf-porcelain) !important;
}

.belle-luxury h1,
.belle-luxury h2,
.belle-luxury h3,
.belle-luxury h4,
.belle-luxury .modern-title,
.belle-luxury .model-name,
.belle-luxury .auth-card-header h2,
.belle-luxury .casting-card-header h1,
.belle-luxury .profile-card-header h2,
.belle-luxury .landing-hero-heading,
.belle-luxury .landing-editorial h2,
.belle-luxury .landing-newsletter h2,
.belle-luxury .landing-casting-text h3,
.belle-luxury .age-gate-heading,
.belle-luxury .rv-title {
    font-family: var(--bf-serif) !important;
    letter-spacing: -.02em;
}

.belle-luxury h2.title,
.belle-luxury .casting-section-title,
.belle-luxury .home-poll-header-title,
.belle-luxury .rv-title-wrap {
    position: relative;
}

.belle-luxury h2.title::after,
.belle-luxury .casting-section-title::after,
.belle-luxury .home-poll-header-title::after,
.belle-luxury .rv-title-wrap::after {
    content: "";
    display: block;
    width: 62px;
    height: 2px;
    margin-top: 10px;
    background: linear-gradient(90deg, var(--bf-rose), var(--bf-champagne));
}

.belle-luxury a {
    color: var(--bf-rose-deep);
}

.belle-luxury a:hover {
    color: var(--bf-rose);
}

.belle-luxury :focus-visible {
    outline: 3px solid rgba(197, 31, 104, .3);
    outline-offset: 3px;
}

/* Shared header */
.belle-luxury .site-header {
    background: rgba(255, 250, 252, .97) !important;
    border-bottom: 1px solid var(--bf-line) !important;
    box-shadow: 0 8px 28px rgba(35, 22, 29, .055) !important;
}

.belle-luxury .site-header .header-contact {
    min-height: 44px;
    background: var(--bf-rose) !important;
    border: 1px solid var(--bf-rose);
    border-radius: 999px;
    box-shadow: 0 8px 22px rgba(197, 31, 104, .18);
    letter-spacing: .01em;
}

.belle-luxury .site-header .header-contact:hover {
    background: var(--bf-rose-deep) !important;
    border-color: var(--bf-rose-deep);
    box-shadow: 0 10px 26px rgba(158, 23, 79, .24);
}

.belle-luxury .site-header .header-brand img {
    height: 140px;
    max-width: min(440px, 40vw);
}

.belle-luxury .site-header .header-actions .btn-register,
.belle-luxury .site-header .header-actions .btn-login {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    letter-spacing: .02em;
}

.belle-luxury .site-header .header-actions .btn-register {
    background: var(--bf-onyx) !important;
}

.belle-luxury .site-header .header-actions .btn-login {
    color: var(--bf-onyx) !important;
    border-color: var(--bf-champagne) !important;
}

.belle-luxury #userDropdown {
    color: var(--bf-onyx) !important;
    min-height: 44px;
}

@media (max-width: 991px) {
    .belle-luxury .site-header .header-brand img {
        height: 130px;
        max-width: min(400px, 82vw);
    }
}

.belle-luxury .dropdown-menu {
    border: 1px solid var(--bf-line);
    border-radius: 12px;
    box-shadow: var(--bf-shadow);
}

.belle-luxury .dropdown-item:active,
.belle-luxury .dropdown-item:hover {
    background: var(--bf-rose-soft);
    color: var(--bf-onyx);
}

/* Cards, forms, and dialogs */
.belle-luxury .auth-card,
.belle-luxury .casting-card,
.belle-luxury .profile-card,
.belle-luxury .modern-card,
.belle-luxury .model-card,
.belle-luxury .home-poll-card,
.belle-luxury .modal-content,
.belle-luxury .about-detail,
.belle-luxury .rv-card {
    background: #fff !important;
    border: 1px solid var(--bf-line) !important;
    box-shadow: var(--bf-shadow) !important;
}

.belle-luxury .auth-card,
.belle-luxury .casting-card,
.belle-luxury .profile-card,
.belle-luxury .modal-content,
.belle-luxury .modern-card {
    border-radius: 18px !important;
}

.belle-luxury .auth-card-header,
.belle-luxury .casting-card-header,
.belle-luxury .profile-card-header {
    background: var(--bf-onyx) !important;
    border-bottom: 2px solid var(--bf-champagne) !important;
}

.belle-luxury .auth-card-header p,
.belle-luxury .casting-card-header p,
.belle-luxury .profile-card-header p {
    color: rgba(255, 250, 252, .78) !important;
}

.belle-luxury .form-control,
.belle-luxury .form-select,
.belle-luxury .auth-input,
.belle-luxury input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.belle-luxury textarea,
.belle-luxury select {
    min-height: 44px;
    border-color: var(--bf-line) !important;
    background-color: #fff !important;
    color: var(--bf-onyx) !important;
    border-radius: 10px;
}

.belle-luxury textarea {
    min-height: 110px;
}

.belle-luxury .form-control:focus,
.belle-luxury .form-select:focus,
.belle-luxury .auth-input:focus,
.belle-luxury input:focus,
.belle-luxury textarea:focus,
.belle-luxury select:focus {
    border-color: var(--bf-rose) !important;
    box-shadow: 0 0 0 4px rgba(197, 31, 104, .11) !important;
}

.belle-luxury .auth-label,
.belle-luxury .form-label,
.belle-luxury label {
    color: var(--bf-onyx-soft);
}

.belle-luxury .auth-input-wrap i {
    color: var(--bf-rose) !important;
}

.belle-luxury .btn-primary,
.belle-luxury .auth-submit-btn,
.belle-luxury .pf-submit-btn,
.belle-luxury .modern-btn,
.belle-luxury .home-poll-vote-btn,
.belle-luxury .view-btn .btn,
.belle-luxury .submit-button .btn {
    min-height: 44px;
    background: var(--bf-rose) !important;
    border-color: var(--bf-rose) !important;
    color: #fff !important;
    border-radius: 999px !important;
    box-shadow: 0 8px 20px rgba(197, 31, 104, .18) !important;
}

.belle-luxury .btn-primary:hover,
.belle-luxury .auth-submit-btn:hover,
.belle-luxury .pf-submit-btn:hover,
.belle-luxury .modern-btn:hover,
.belle-luxury .home-poll-vote-btn:hover,
.belle-luxury .view-btn .btn:hover {
    background: var(--bf-rose-deep) !important;
    border-color: var(--bf-rose-deep) !important;
}

.belle-luxury .btn-secondary,
.belle-luxury .btn-outline-secondary {
    min-height: 44px;
    background: transparent !important;
    color: var(--bf-onyx) !important;
    border-color: var(--bf-champagne) !important;
    border-radius: 999px !important;
}

/* Landing page */
.belle-luxury .landing-page {
    --lp-accent: var(--bf-rose) !important;
    --lp-accent-soft: var(--bf-porcelain-deep) !important;
    --lp-dark: var(--bf-onyx) !important;
    --lp-muted: var(--bf-ink-muted) !important;
    --lp-font: var(--bf-sans) !important;
}

.belle-luxury .landing-disclaimer,
.belle-luxury .landing-editorial,
.belle-luxury .landing-casting {
    background: var(--bf-porcelain) !important;
    border-color: var(--bf-line) !important;
}

.belle-luxury .landing-disclaimer .disclaimer-contact-label {
    color: var(--bf-ink-muted) !important;
}

.belle-luxury .landing-disclaimer .disclaimer-contact a {
    color: var(--bf-onyx) !important;
}

.belle-luxury .landing-editorial-kicker {
    color: var(--bf-rose) !important;
    letter-spacing: .16em;
}

.belle-luxury .landing-editorial h2::after,
.belle-luxury .landing-newsletter h2::after,
.belle-luxury .landing-casting-text h3::after {
    content: "";
    display: block;
    width: 68px;
    height: 2px;
    margin: 14px auto 0;
    background: linear-gradient(90deg, var(--bf-rose), var(--bf-champagne));
}

.belle-luxury .landing-casting-text h3::after {
    margin-left: 0;
}

.belle-luxury .landing-newsletter {
    background: var(--bf-onyx) !important;
    border-top: 1px solid rgba(200, 164, 106, .35);
    border-bottom: 1px solid rgba(200, 164, 106, .35);
}

.belle-luxury .landing-newsletter p {
    color: rgba(255, 250, 252, .7) !important;
}

.belle-luxury .landing-newsletter-form input {
    background: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
    border-color: rgba(234, 215, 182, .42) !important;
}

.belle-luxury .landing-casting-icon {
    background: var(--bf-onyx) !important;
    border: 1px solid var(--bf-champagne);
}

/* Member model listing and profile */
.belle-luxury .model-section::before {
    background: linear-gradient(90deg, var(--bf-rose-soft), var(--bf-champagne-soft)) !important;
    opacity: .7;
}

.belle-luxury .model-card {
    border-radius: 18px !important;
    overflow: hidden;
}

.belle-luxury .model-name,
.belle-luxury .modern-title {
    color: var(--bf-onyx) !important;
}

.belle-luxury .model-age-badge,
.belle-luxury .badge,
.belle-luxury .bdate {
    background: var(--bf-rose-soft) !important;
    color: var(--bf-onyx) !important;
    border-color: var(--bf-champagne-soft) !important;
}

.belle-luxury .filter-section,
.belle-luxury .reviews-section,
.belle-luxury .rv-section {
    background: var(--bf-porcelain) !important;
}

.belle-luxury .fa-star::before {
    color: var(--bf-champagne) !important;
}

.belle-luxury .availability-card {
    border-color: var(--bf-line) !important;
    box-shadow: 0 10px 28px rgba(35, 22, 29, .06) !important;
}

/* Footer */
.belle-luxury .site-footer {
    background: var(--bf-onyx) !important;
    border-top: 2px solid var(--bf-champagne) !important;
    color: var(--bf-porcelain);
}

.belle-luxury .site-footer .footer-contact-label,
.belle-luxury .site-footer .footer-disclaimer,
.belle-luxury .site-footer .footer-copy {
    color: rgba(255, 250, 252, .62) !important;
}

.belle-luxury .site-footer .footer-contact-number,
.belle-luxury .site-footer .footer-links-row a {
    color: var(--bf-porcelain) !important;
}

.belle-luxury .site-footer .footer-contact-number:hover,
.belle-luxury .site-footer .footer-links-row a:hover {
    color: var(--bf-champagne-soft) !important;
}

@media (max-width: 767px) {
    .belle-luxury .site-header .header-inner {
        padding-inline: 12px;
        gap: 10px;
    }

    .belle-luxury .site-header .header-brand img {
        max-width: min(86vw, 320px);
        height: 110px;
    }

    .belle-luxury .landing-casting-text h3::after {
        margin-left: auto;
    }

    .belle-luxury .auth-card-body,
    .belle-luxury .casting-card-body,
    .belle-luxury .profile-card-body {
        padding-inline: 20px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .belle-luxury *,
    .belle-luxury *::before,
    .belle-luxury *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
