:root {
    --lffc-brand:               #c0392b;
    --lffc-brand-dark:          #a5311f;
    --lffc-brand-light:         #e74c3c;

    --lffc-gold:                #c5a55a;
    --lffc-gold-light:          #d4b96a;
    --lffc-gold-dark:           #a8893e;

    --lffc-bg:                  #faf8f5;
    --lffc-surface:             #ffffff;
    --lffc-dark:                #1a1a2e;
    --lffc-dark-light:          #24243e;

    --lffc-text:                #1a1a2e;
    --lffc-text-muted:          #6b7280;
    --lffc-text-on-dark:        #e5e5e5;

    --lffc-hero-overlay:        linear-gradient(135deg, rgba(26,26,46,0.75) 0%, rgba(26,26,46,0.55) 100%);
    --lffc-cta-gradient:        linear-gradient(135deg, #c0392b 0%, #a5311f 50%, #8e2a19 100%);

    --lffc-card-border:         rgba(197,165,90,0.2);
    --lffc-card-shadow:         0 2px 12px rgba(26,26,46,0.06);
    --lffc-card-shadow-hover:   0 8px 30px rgba(26,26,46,0.12);

    --lffc-font-heading:        'Playfair Display', Georgia, 'Times New Roman', serif;

    --lffc-transition:          0.3s ease;
}

/* ---- Global ---- */

body {
    background-color: var(--lffc-bg);
    color: var(--lffc-text);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--lffc-font-heading);
}

/* ---- Navbar ---- */

.navbar.navbar-dark.bg-dark {
    background-color: var(--lffc-dark) !important;
    border-bottom: 1px solid rgba(197,165,90,0.15);
}

.navbar-dark .navbar-brand {
    font-family: var(--lffc-font-heading);
    font-weight: 700;
    letter-spacing: 0.5px;
}

.navbar-dark .navbar-nav .nav-link {
    position: relative;
    transition: color var(--lffc-transition);
}

.navbar-dark .navbar-nav .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--lffc-gold);
    transition: width var(--lffc-transition), left var(--lffc-transition);
}

.navbar-dark .navbar-nav .nav-link:hover::after,
.navbar-dark .navbar-nav .nav-link:focus::after {
    width: 100%;
    left: 0;
}

.navbar-dark .navbar-nav .nav-link:hover {
    color: var(--lffc-gold-light);
}

.navbar .btn-warning {
    background-color: var(--lffc-gold);
    border-color: var(--lffc-gold);
    color: var(--lffc-dark);
    transition: all var(--lffc-transition);
}

.navbar .btn-warning:hover,
.navbar .btn-warning:focus {
    background-color: var(--lffc-gold-light);
    border-color: var(--lffc-gold-light);
    color: var(--lffc-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(197,165,90,0.3);
}

/* ---- Cards ---- */

.card {
    border: 1px solid var(--lffc-card-border);
    box-shadow: var(--lffc-card-shadow);
    transition: transform var(--lffc-transition), box-shadow var(--lffc-transition);
    background-color: var(--lffc-surface);
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: var(--lffc-card-shadow-hover);
}

.card.border-0 {
    border: 1px solid var(--lffc-card-border) !important;
}

/* ---- Hero ---- */

.lffc-hero-overlay {
    background: var(--lffc-hero-overlay);
}

.lffc-hero-overlay h1 {
    font-family: var(--lffc-font-heading);
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

.lffc-hero-overlay .lead {
    text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

/* ---- CTA Strip ---- */

.lffc-cta-strip {
    background: var(--lffc-cta-gradient);
}

.lffc-cta-strip h2 {
    font-family: var(--lffc-font-heading);
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

/* ---- Buttons ---- */

.btn-danger {
    background-color: var(--lffc-brand);
    border-color: var(--lffc-brand);
    transition: all var(--lffc-transition);
}

.btn-danger:hover,
.btn-danger:focus {
    background-color: var(--lffc-brand-dark);
    border-color: var(--lffc-brand-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(192,57,43,0.3);
}

.btn-outline-danger {
    color: var(--lffc-brand);
    border-color: var(--lffc-brand);
    transition: all var(--lffc-transition);
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
    background-color: var(--lffc-brand);
    border-color: var(--lffc-brand);
}

.btn-outline-secondary {
    transition: all var(--lffc-transition);
}

/* ---- Form Focus States ---- */

.form-control:focus,
.form-select:focus {
    border-color: var(--lffc-gold);
    box-shadow: 0 0 0 0.25rem rgba(197,165,90,0.25);
}

.form-check-input:checked {
    background-color: var(--lffc-brand);
    border-color: var(--lffc-brand);
}

.form-check-input:focus {
    border-color: var(--lffc-gold);
    box-shadow: 0 0 0 0.25rem rgba(197,165,90,0.25);
}

/* ---- Footer ---- */

footer {
    border-top: 1px solid rgba(197,165,90,0.2);
    padding-top: 1.5rem;
}

footer a {
    color: var(--lffc-text-muted);
    transition: color var(--lffc-transition);
}

footer a:hover {
    color: var(--lffc-gold);
    text-decoration: none;
}

/* ---- Step Indicators (Apply Wizard) ---- */

.step-indicator-active {
    background-color: var(--lffc-gold) !important;
    color: var(--lffc-dark) !important;
    border: 1px solid var(--lffc-gold-dark);
    font-weight: 700;
}

.step-indicator-inactive {
    background-color: var(--lffc-surface) !important;
    color: var(--lffc-text-muted) !important;
    border: 1px solid var(--lffc-card-border);
}

/* ---- Scroll Reveal ---- */

.luxe-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.luxe-reveal.luxe-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ---- Legal Prose ---- */

.luxe-prose h3 {
    font-family: var(--lffc-font-heading);
    margin-top: 2rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(197,165,90,0.2);
}

.luxe-prose p {
    line-height: 1.8;
    max-width: 70ch;
}

.luxe-prose ul {
    margin-bottom: 1.5rem;
}

/* ---- Decorative Utilities ---- */

.luxe-heading-accent {
    display: inline-block;
    position: relative;
    padding-bottom: 12px;
}

.luxe-heading-accent::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--lffc-gold), transparent);
    border-radius: 2px;
}

.luxe-divider {
    border: none;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--lffc-gold), transparent);
    margin: 2rem 0;
}
