/* ========================
   Custom Overrides
   ========================
   All base component styles have been migrated to input.css (Tailwind layers).
   This file is for page-specific overrides that cannot be expressed in Tailwind.
   Keep this file minimal.
   ======================== */

/* Brand logo (fragments/brand-logo.html): both artworks ship, the theme picks one */
html:not(.dark) .jm-brand-logo--dark,
html.dark .jm-brand-logo--light {
    display: none;
}

/* Flatpickr dark mode */
.dark .flatpickr-calendar {
    background: #1a1d2e;
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.4);
}

.dark .flatpickr-months .flatpickr-month,
.dark .flatpickr-weekdays,
.dark span.flatpickr-weekday {
    background: #161927;
    color: #94a3b8;
}

.dark .flatpickr-day {
    color: #cbd5e1;
}

.dark .flatpickr-day:hover {
    background: rgba(99, 102, 241, 0.15);
    border-color: rgba(99, 102, 241, 0.3);
}

.dark .flatpickr-day.today {
    border-color: rgba(99, 102, 241, 0.4);
    background: rgba(99, 102, 241, 0.1);
}

.dark .flatpickr-day.prevMonthDay,
.dark .flatpickr-day.nextMonthDay {
    color: #475569;
}

.dark .flatpickr-current-month input.cur-year,
.dark .flatpickr-current-month .flatpickr-monthDropdown-months {
    color: #e2e8f0;
}

.dark .flatpickr-months .flatpickr-prev-month svg,
.dark .flatpickr-months .flatpickr-next-month svg {
    fill: #94a3b8;
}

/* Flatpickr theme overrides — match indigo color scheme */
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
    background: #4f46e5;
    border-color: #4f46e5;
}

.flatpickr-day.today {
    border-color: #c7d2fe;
    background: #eef2ff;
}

.flatpickr-day.today:hover {
    background: #e0e7ff;
    border-color: #a5b4fc;
}

.flatpickr-day:hover {
    background: #eef2ff;
    border-color: #c7d2fe;
}

.flatpickr-calendar {
    border-radius: 0.75rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    border: 1px solid #e5e7eb;
}

.flatpickr-months .flatpickr-month {
    border-radius: 0.75rem 0.75rem 0 0;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover,
.flatpickr-current-month input.cur-year:hover {
    background: rgba(79, 70, 229, 0.05);
}

.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:focus {
    background: #eef2ff;
}

/* =================================================================
   Frontend animations master toggle (admin-controlled)
   -----------------------------------------------------------------
   When the admin disables animations, head.html stamps
   <html class="no-animations"> before any CSS loads. We snap every
   animation/transition to a 0s duration (rather than `none`) so
   entrance keyframes jump straight to their end state and infinite
   background loops stop, while content stays visible.
   ================================================================= */
html.no-animations *,
html.no-animations *::before,
html.no-animations *::after {
    animation-duration: 0s !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
}

/* Elements that start hidden and are only revealed by JS/keyframes must be
   forced to their final visible state, or they'd stay invisible with motion off. */
html.no-animations .hp-reveal,
html.no-animations .hp-stagger-item,
html.no-animations .cat-grid-item,
html.no-animations .sub-card-item {
    opacity: 1 !important;
    transform: none !important;
}

/* Honeypot trap field: kept in the DOM (and out of the tab order) but invisible to humans.
   Not display:none — some bots skip those — but positioned far off-screen instead. */
.honeypot-field {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
}
