/* ===== Timeless Aesthetics – Brand Theme ===== */
:root {
    /* Core palette */
    --brand-primary: #7c6aa6; /* lavender */
    --brand-primary-600: #695892;
    --brand-primary-700: #5a4b83;
    --brand-deep: #2a2438; /* deep plum/ink */
    --brand-gold: #c8a97e; /* champagne */
    --brand-sage: #6bb39b; /* accents for success */
    --brand-rose: #c46b6b; /* soft danger */
    --brand-sand: #f6f3f1; /* app background */
    --brand-ink: #1f1a27; /* headings */
    --brand-muted: #6e6b7b; /* muted text */
    /* Bootstrap variable overrides */
    --bs-body-bg: var(--brand-sand);
    --bs-body-color: var(--brand-deep);
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: 124,106,166;
    --bs-secondary: #b9b0c9;
    --bs-success: var(--brand-sage);
    --bs-warning: #e4c77f;
    --bs-danger: var(--brand-rose);
    --bs-info: #a7c1e7;
    --bs-link-color: var(--brand-primary);
    --bs-link-hover-color: var(--brand-primary-700);
}

/* Typography: elegant sans + serif for headings */
:root {
    --brand-sans: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
    --brand-serif: "Playfair Display", Georgia, "Times New Roman", serif;
}

body {
    font-family: var(--brand-sans);
}

/* Headings with gentle weight & tracking */
h1, h2, h3, h4 {
    font-family: var(--brand-serif);
    color: var(--brand-ink);
    letter-spacing: .2px;
}

/* Navbar */
.navbar-brand {
    font-family: var(--brand-serif);
    font-weight: 600;
}

.navbar {
    background: linear-gradient(90deg, #faf7fb 0%, #f3eff8 35%, #efe9f4 100%);
    border-bottom: 1px solid rgba(0,0,0,.06);
}

/* Buttons */
.btn-primary {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
}

    .btn-primary:hover {
        background: var(--brand-primary-700);
        border-color: var(--brand-primary-700);
    }

.btn-outline-primary {
    color: var(--brand-primary);
    border-color: var(--brand-primary);
}

    .btn-outline-primary:hover {
        background: var(--brand-primary);
        color: #fff;
    }

/* Cards and panels */
.card {
    border: 1px solid rgba(42,36,56,.08);
    box-shadow: 0 6px 16px rgba(42,36,56,.06);
    border-radius: 16px;
}

.card-header {
    background: #ffffff;
    border-bottom: 1px solid rgba(42,36,56,.08);
    font-weight: 600;
    color: var(--brand-ink);
}

/* Pills / badges in calendar */
.badge.text-bg-light {
    background: #efeaf7 !important;
    color: var(--brand-primary) !important;
    border: 1px solid rgba(124,106,166,.25);
}

/* Appointment block (Week view) */
.appt-block {
    background: #efeaf7; /* soft lavender surface */
    border: 1px solid rgba(124,106,166,.25);
    border-radius: 10px;
    padding: 6px;
}

    .appt-block .title {
        font-weight: 600;
        color: var(--brand-ink);
    }

    .appt-block .sub {
        color: var(--brand-muted);
    }

/* Month grid day cell */
.calendar-day {
    background: #fff;
    border: 1px solid rgba(42,36,56,.07);
    border-radius: 14px;
}

    .calendar-day.out {
        background: #f7f5fb;
    }

/* Accent separators & links */
hr {
    border-top: 1px dashed rgba(124,106,166,.35);
}

a {
    text-decoration: none;
}

    a:hover {
        text-decoration: underline;
    }

/* Gold accent for CTAs */
.cta-gold {
    background: var(--brand-gold);
    border-color: var(--brand-gold);
    color: #1e1a26;
}

    .cta-gold:hover {
        filter: brightness(.95);
    }

/* Subtle focus ring */
.form-control:focus, .form-select:focus, .btn:focus {
    box-shadow: 0 0 0 .25rem rgba(124,106,166,.25);
}
