:root, [data-bs-theme=light] {
    /* ------------------------------
     Frisco Woods Brand Colors
     ------------------------------ */
    --fw-sky-blue: #5DADE2;
    --fw-water-deep: #2A4C7A;
    --fw-water-mid: #4F7BAF;
    --fw-sunset-gold: #F39C12;
    --fw-sunset-deep: #D35400;
    --fw-forest: #196F3D;
    --fw-sand: #F7F5F2;
    --fw-charcoal: #2C3E50;
    --fw-black: #1A1A1A;
    --fw-white: #FFFFFF;
    /* ------------------------------
     Bootstrap Core Overrides
     ------------------------------ */
    --bs-primary: var(--fw-sky-blue);
    --bs-secondary: var(--fw-sand);
    --bs-success: var(--fw-forest);
    --bs-info: var(--fw-water-mid);
    --bs-warning: var(--fw-sunset-gold);
    --bs-danger: var(--fw-sunset-deep);
    --bs-light: var(--fw-sand);
    --bs-dark: var(--fw-charcoal);
    /* RGB versions */
    --bs-primary-rgb: 93, 173, 226;
    --bs-secondary-rgb: 247, 245, 242;
    --bs-success-rgb: 25, 111, 61;
    --bs-info-rgb: 79, 123, 175;
    --bs-warning-rgb: 243, 156, 18;
    --bs-danger-rgb: 211, 84, 0;
    --bs-light-rgb: 247, 245, 242;
    --bs-dark-rgb: 44, 62, 80;
    /* ------------------------------
     Text Emphasis
     ------------------------------ */
    --bs-primary-text-emphasis: var(--fw-water-deep);
    --bs-secondary-text-emphasis: var(--fw-charcoal);
    --bs-success-text-emphasis: #0F3A1F;
    --bs-info-text-emphasis: var(--fw-water-deep);
    --bs-warning-text-emphasis: #7A4E00;
    --bs-danger-text-emphasis: #6A2A00;
    --bs-light-text-emphasis: var(--fw-charcoal);
    --bs-dark-text-emphasis: var(--fw-black);
    /* ------------------------------
     Subtle Backgrounds
     ------------------------------ */
    --bs-primary-bg-subtle: #D6EAF8;
    --bs-secondary-bg-subtle: #FAF9F7;
    --bs-success-bg-subtle: #D4E6D8;
    --bs-info-bg-subtle: #E3EFF7;
    --bs-warning-bg-subtle: #FDEBD0;
    --bs-danger-bg-subtle: #F6D5C2;
    --bs-light-bg-subtle: var(--fw-sand);
    --bs-dark-bg-subtle: #D5D8DC;
    /* ------------------------------
     Subtle Borders
     ------------------------------ */
    --bs-primary-border-subtle: #AED6F1;
    --bs-secondary-border-subtle: #E8E6E2;
    --bs-success-border-subtle: #A9D2B0;
    --bs-info-border-subtle: #C7D9E8;
    --bs-warning-border-subtle: #F8C471;
    --bs-danger-border-subtle: #E59866;
    --bs-light-border-subtle: #E8E6E2;
    --bs-dark-border-subtle: #566573;
    /* ------------------------------
     Typography
     ------------------------------ */
    --bs-body-font-family: "Public Sans", sans-serif;
    --bs-body-color: var(--fw-charcoal);
    --bs-heading-color: var(--fw-water-deep);
    --bs-link-color: var(--fw-water-deep);
    --bs-link-hover-color: #163A73;
    /* ------------------------------
     Borders & Radius
     ------------------------------ */
    --bs-border-color: #E8E6E2;
    --bs-border-color-translucent: rgba(44, 62, 80, 0.15);
    --bs-border-radius: 0.5rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-border-radius-lg: 0.75rem;
    /* ------------------------------
     Shadows
     ------------------------------ */
    --bs-box-shadow: 0 0.5rem 1rem rgba(44, 62, 80, 0.15);
    --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(44, 62, 80, 0.075);
    --bs-box-shadow-lg: 0 1rem 3rem rgba(44, 62, 80, 0.2);
    /* ------------------------------
     Forms
     ------------------------------ */
    --bs-form-valid-color: var(--fw-forest);
    --bs-form-valid-border-color: var(--fw-forest);
    --bs-form-invalid-color: var(--fw-sunset-deep);
    --bs-form-invalid-border-color: var(--fw-sunset-deep);
}

[data-bs-theme=dark] {
    color-scheme: dark;
    --fw-night: #1A1A1A;
    --fw-night-soft: #2E2E2E;
    --bs-body-bg: var(--fw-night);
    --bs-body-color: #E8E6E2;
    --bs-primary: #5DADE2;
    --bs-secondary: #2C3E50;
    --bs-success: #196F3D;
    --bs-info: #8FB7D6;
    --bs-warning: #F39C12;
    --bs-danger: #D35400;
    --bs-light: var(--fw-night-soft);
    --bs-dark: #0F0F0F;
    --bs-primary-text-emphasis: #AED6F1;
    --bs-secondary-text-emphasis: #D5D8DC;
    --bs-success-text-emphasis: #A9D2B0;
    --bs-info-text-emphasis: #C7D9E8;
    --bs-warning-text-emphasis: #F8C471;
    --bs-danger-text-emphasis: #E59866;
    --bs-primary-bg-subtle: #163A73;
    --bs-secondary-bg-subtle: #1A252F;
    --bs-success-bg-subtle: #0F3A1F;
    --bs-info-bg-subtle: #2A4C7A;
    --bs-warning-bg-subtle: #7A4E00;
    --bs-danger-bg-subtle: #6A2A00;
    --bs-border-color: #3A3A3A;
    --bs-border-color-translucent: rgba(255, 255, 255, 0.1);
    --bs-heading-color: #E8E6E2;
    --bs-link-color: #AED6F1;
    --bs-link-hover-color: #D6EAF8;
    --bs-form-valid-color: #A9D2B0;
    --bs-form-valid-border-color: #A9D2B0;
    --bs-form-invalid-color: #E59866;
    --bs-form-invalid-border-color: #E59866;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #6a8caf; /*coastal blue */
    --bs-btn-border-color: #6a8caf;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #3b6978; /*deep coastal blue*/
    --bs-btn-hover-border-color: #3b6978;
    --bs-btn-focus-shadow-rgb: 106, 140, 175;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #3b6978;
    --bs-btn-active-border-color: #355e6c;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #6a8caf;
    --bs-btn-disabled-border-color: #6a8caf;
}

.btn-secondary {
    --bs-btn-color: #020617;
    --bs-btn-bg: #d7e6ef; /*soft sky */
    --bs-btn-border-color: #d7e6ef;
    --bs-btn-hover-color: #020617;
    --bs-btn-hover-bg: #c3d4e0;
    --bs-btn-hover-border-color: #c3d4e0;
    --bs-btn-focus-shadow-rgb: 199, 214, 224;
    --bs-btn-active-color: #020617;
    --bs-btn-active-bg: #b9c9d4;
    --bs-btn-active-border-color: #b9c9d4;
    --bs-btn-disabled-color: #020617;
    --bs-btn-disabled-bg: #d7e6ef;
    --bs-btn-disabled-border-color: #d7e6ef;
}

.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: #8fa6a0; /*marsh green */
    --bs-btn-border-color: #8fa6a0;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #7b948e;
    --bs-btn-hover-border-color: #7b948e;
    --bs-btn-focus-shadow-rgb: 143, 166, 160;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #6f8781;
    --bs-btn-active-border-color: #6f8781;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #8fa6a0;
    --bs-btn-disabled-border-color: #8fa6a0;
}

.btn-info {
    --bs-btn-color: #020617;
    --bs-btn-bg: #b7d4e5; /*soft coastal blue */
    --bs-btn-border-color: #b7d4e5;
    --bs-btn-hover-color: #020617;
    --bs-btn-hover-bg: #a4c7db;
    --bs-btn-hover-border-color: #a4c7db;
    --bs-btn-focus-shadow-rgb: 183, 212, 229;
    --bs-btn-active-color: #020617;
    --bs-btn-active-bg: #9abfd4;
    --bs-btn-active-border-color: #9abfd4;
    --bs-btn-disabled-color: #020617;
    --bs-btn-disabled-bg: #b7d4e5;
    --bs-btn-disabled-border-color: #b7d4e5;
}

.btn-warning {
    --bs-btn-color: #020617;
    --bs-btn-bg: #f3eadf; /*warm sand*/
    --bs-btn-border-color: #f3eadf;
    --bs-btn-hover-color: #020617;
    --bs-btn-hover-bg: #e8dfd4;
    --bs-btn-hover-border-color: #e8dfd4;
    --bs-btn-focus-shadow-rgb: 243, 234, 223;
    --bs-btn-active-color: #020617;
    --bs-btn-active-bg: #e1d7cc;
    --bs-btn-active-border-color: #e1d7cc;
    --bs-btn-disabled-color: #020617;
    --bs-btn-disabled-bg: #f3eadf;
    --bs-btn-disabled-border-color: #f3eadf;
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: #c45a21; /*sunset coral*/
    --bs-btn-border-color: #c45a21;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #d68f6b;
    --bs-btn-hover-border-color: #d68f6b;
    --bs-btn-focus-shadow-rgb: 232, 160, 122;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #c98261;
    --bs-btn-active-border-color: #c98261;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #c45a21;
    --bs-btn-disabled-border-color: #c45a21;
}

.btn-outline-primary {
    --bs-btn-color: #2C3E50;
    --bs-btn-border-color: #6a8caf;
    --bs-btn-hover-color: #2C3E50;
    --bs-btn-hover-bg: #6a8caf;
    --bs-btn-hover-border-color: #6a8caf;
    --bs-btn-focus-shadow-rgb: 139, 61, 255;
    --bs-btn-active-color: #2C3E50;
    --bs-btn-active-bg: #6a8caf;
    --bs-btn-active-border-color: #6a8caf;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #6a8caf;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #6a8caf;
    --bs-gradient: none;
}

.btn-outline-secondary {
    --bs-btn-color: #2C3E50;
    --bs-btn-border-color: #d7e6ef;
    --bs-btn-hover-color: #2C3E50;
    --bs-btn-hover-bg: #d7e6ef;
    --bs-btn-hover-border-color: #d7e6ef;
    --bs-btn-focus-shadow-rgb: 226, 232, 240;
    --bs-btn-active-color: #2C3E50;
    --bs-btn-active-bg: #d7e6ef;
    --bs-btn-active-border-color: #d7e6ef;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #d7e6ef;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #d7e6ef;
    --bs-gradient: none;
}

.btn-outline-success {
    --bs-btn-color: #2C3E50;
    --bs-btn-border-color: #8fa6a0;
    --bs-btn-hover-color: #2C3E50;
    --bs-btn-hover-bg: #8fa6a0;
    --bs-btn-hover-border-color: #8fa6a0;
    --bs-btn-focus-shadow-rgb: 0, 128, 8;
    --bs-btn-active-color: #2C3E50;
    --bs-btn-active-bg: #8fa6a0;
    --bs-btn-active-border-color: #8fa6a0;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #8fa6a0;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #8fa6a0;
    --bs-gradient: none;
}

.btn-outline-info {
    --bs-btn-color: #2C3E50;
    --bs-btn-border-color: #b7d4e5;
    --bs-btn-hover-color: #2C3E50;
    --bs-btn-hover-bg: #69a6c9;
    --bs-btn-hover-border-color: #69a6c9;
    --bs-btn-focus-shadow-rgb: 13, 202, 240;
    --bs-btn-active-color: #2C3E50;
    --bs-btn-active-bg: #b7d4e5;
    --bs-btn-active-border-color: #b7d4e5;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #b7d4e5;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #b7d4e5;
    --bs-gradient: none;
}

.btn-outline-warning {
    --bs-btn-color: #2C3E50;
    --bs-btn-border-color: #f3eadf;
    --bs-btn-hover-color: #2C3E50;
    --bs-btn-hover-bg: #c09159;
    --bs-btn-hover-border-color: #c09159;
    --bs-btn-focus-shadow-rgb: 255, 193, 7;
    --bs-btn-active-color: #2C3E50;
    --bs-btn-active-bg: #f3eadf;
    --bs-btn-active-border-color: #f3eadf;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #2C3E50;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #f3eadf;
    --bs-gradient: none;
}

.btn-outline-danger {
    --bs-btn-color: #2C3E50;
    --bs-btn-border-color: #c45a21;
    --bs-btn-hover-color: #2C3E50;
    --bs-btn-hover-bg: #99461a;
    --bs-btn-hover-border-color: #99461a;
    --bs-btn-focus-shadow-rgb: 219, 20, 54;
    --bs-btn-active-color: #2C3E50;
    --bs-btn-active-bg: #c45a21;
    --bs-btn-active-border-color: #c45a21;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #2C3E50;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #c45a21;
    --bs-gradient: none;
}


html {
    font-size: 14px;
    scroll-behavior: smooth;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}
.form-control {
    color: #666666 !important;
}

.sticky-actions {
    position: sticky;
    top: 6.70rem; /* adjust to match your navbar height */
    z-index: 1020; /* above content, below navbar */
    background: var(--bs-dark-bg-subtle);
    padding: 0.75rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    border-radius: 4px;
}

.fade-in {
    animation: fadeIn 0.3s ease-out;
}

.fade-out {
    animation: fadeOut 0.25s ease-out forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        height: 0;
        margin: 0;
        padding: 0;
    }
}

.accordion-button:focus {
    box-shadow: 0 0 0 0.15rem rgba(93, 173, 226, 0.35) !important;
    outline: none !important;
}


.rate-row {
    background: #fafafa;
    border-radius: 6px;
    padding: 8px 12px;
    margin-bottom: 6px;
}

.rate-heading {
    color: #3b6978;
    letter-spacing: .02em;
}

.ratechart-crossfade {
    opacity: 0;
    transition: opacity .25s ease;
}

    .ratechart-crossfade[x-cloak],
    [x-cloak] {
        display: none !important;
    }

    .ratechart-crossfade[style*="display: none"] {
        opacity: 0;
    }

.season-section {
    scroll-margin-top: 12rem;
}


.chevron-rotate {
    transition: transform 0.35s ease;
}
    .chevron-rotate.rotated i {
        transform: rotate(180deg);
    }
    .chevron-rotate.collapsed {
        transform: rotate(-90deg);
    }

.fade-in {
    animation: fadeIn 0.25s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* The element being dragged */
.sortable-chosen {
    background: #f8f9fa !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    transform: scale(1.02);
    border-radius: 6px;
}
/* The placeholder where the item will drop */
.sortable-ghost {
    opacity: 0.4;
    background: #e9ecef !important;
    border: 2px dashed #adb5bd;
    border-radius: 6px;
}
.cursor-grab {
    cursor: grab;
    transition: transform 0.15s ease, color 0.15s ease;
}

    .cursor-grab:hover {
        transform: scale(1.25);
        color: #0d6efd; /* Bootstrap primary */
    }

    .cursor-grab:active {
        cursor: grabbing;
        transform: scale(1.15);
    }

.fc-toolbar.fc-header-toolbar {
    margin-bottom: 2rem;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 0.5rem;
}

.fc-toolbar-title {
    font-size: 1.75rem;
    font-weight: 600;
}

.fc-button {
    border-radius: 0.4rem !important;
    padding: 0.4rem 0.75rem !important;
}

.fc-button-primary {
    background-color: #0d6efd !important;
    border-color: #0d6efd !important;
}

    .fc-button-primary:not(:disabled):hover {
        background-color: #0b5ed7 !important;
        border-color: #0a58ca !important;
    }
.fc-daygrid-day {
    transition: background-color 0.15s ease-in-out;
}

    .fc-daygrid-day:hover {
        background-color: #f5f9ff;
    }

.fc-daygrid-day-number {
    font-weight: 500;
}
.fc-daygrid-event {
    background-color: inherit !important;
}
.fc-day-today {
    background-color: #e7f1ff !important;
    border: 1px solid #0d6efd !important;
}
.fc-event {
    border: none !important;
    border-radius: 0.4rem !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.85rem;
    background-color: #0d6efd !important;
    color: white !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

    .fc-event:hover {
        background-color: #0b5ed7 !important;
    }
    .fc-event.holiday {
        background-color: #dc3545 !important;
    }

    .fc-event.seasonal {
        background-color: #198754 !important;
    }

    .fc-event.special {
        background-color: #fd7e14 !important;
    }
.fc-event-inner {
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: normal !important;
}

.event-modal-title {
    font-size: 1.4rem;
    font-weight: 600;
}

.event-modal-section {
    margin-bottom: 1rem;
}
[x-cloak] {
    display: none !important;
}

.fade-enter {
    opacity: 0;
    transform: translateY(10px);
}

.fade-enter-active {
    opacity: 1;
    transform: translateY(0);
    transition: all 0.2s ease-out;
}
.input-invalid {
    border-color: #dc3545 !important; /* Bootstrap danger red */
    box-shadow: none !important;
}
.event-bottom-sheet {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    max-height: 80vh;
    background: rgba(0,0,0,0.4);
    backdrop-filter: blur(2px);
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: flex-end;
}
.sheet-content {
    width: 100%;
    background: #fff;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
    max-height: 75vh;
    overflow-y: auto;
}
.event-handle {
    width: 40px;
    height: 5px;
    background: #ccc;
    border-radius: 3px;
}
.clickable-event {
    cursor: pointer;
}
    .clickable-event:hover {
        filter: brightness(1.1);
    }
.category-event {
    cursor: pointer;
    border: 2px solid var(--event-color) !important;
    background-color: var(--event-color-light) !important;
    color: #222 !important;
    border-radius: 6px;
    padding: 2px 4px;
    font-size: 0.85rem;
}
.event-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.event-title {
    white-space: normal !important;
    overflow-wrap: break-word;
    line-height: 1.2;
}

.cta-glow {
    background: linear-gradient( 135deg, #e8f0f7 0%, /* pale sky */
    #c9dce8 40%, /* soft coastal blue */
    #b8c9c2 75%, /* muted marsh green */
    #f2e6d4 100% /* warm sand */
    );
}

.bg-soft-sky {
    background: #d7e6ef;
}

.img-home-page {
    max-width: 300px;
    height: auto;
}
.pointer {
    cursor: pointer;
}

.btn-twitter-x {
    background-color: #000000;
    color: #ffffff;
    border: 1px solid #000000;
}
    .btn-twitter-x:hover, .btn-twitter-x:focus, .btn-twitter-x:active {
        border-color: #000000 !important;
        background-color: #000000 !important;
        color: #fff !important;
    }


.btn-yelp {
    background-color: #ff1a1a;
    color: #ffffff;
    border: 1px solid #e60000;
}
    .btn-yelp:hover, .btn-yelp:focus, .btn-yelp:active {
        border-color: #e60000 !important;
        background-color: #e60000 !important;
        color: #fff !important;
    }
