/* Dark mode overrides specific to this site. */

@media (prefers-color-scheme: dark) {
    /* General background */
    body, .grid-container, .accordion-title, .form-inline, .thumbnail-container, .challengetile, .slick-slider {
        background-color: #121212; /* Dark background for the main areas */
        color: #E0E0E0; /* Light text for readability */
    }
    .challengetile:hover {
        background-color: #1A1A1A;
    }
    body, div, h1, h2, h3, h4, h5, h6, p, ul li, ol li, label {
        color: #E0E0E0 !important; 
    }
    .pricing-table li {
        color: #bdc3c7; /* Light text for readability */
    }
    /* Buttons and interactive elements */
    .button, .input-number-group .input-number-decrement,
    .input-number-group .input-number-increment, .togglebox label, .pricing-table .title,
    .ajax__calendar_hover, .slick-prev:before, .slick-next:before {
        background-color: #333; /* Darker element background */
        color: #FFF; /* White text for contrast */
        border-color: #444; /* Slightly lighter border for visibility */
    }
    .home-cta-card {
        background: linear-gradient(135deg, rgba(12, 75, 74, 0.95) 0%, rgba(27, 61, 61, 0.95) 48%, rgba(15, 42, 42, 0.98) 100%);
        border-color: rgba(200, 231, 221, 0.35);
        color: var(--surface) !important;
        text-decoration: none !important;
        box-shadow: 0 26px 60px rgba(15, 42, 42, 0.55);
    }
    .home-cta-card:hover,
    .home-cta-card:focus {
        background: linear-gradient(135deg, rgba(244, 180, 104, 0.35) 0%, rgba(12, 75, 74, 0.95) 45%, rgba(15, 42, 42, 0.98) 100%);
        border-color: rgba(244, 180, 104, 0.6);
        color: var(--surface) !important;
    }
    .home-cta-title {
        color: var(--surface);
    }
    .home-cta-copy {
        color: var(--mist);
    }
    .home-cta-action {
        color: var(--sun);
    }
    .home-cta-card:hover .home-cta-action,
    .home-cta-card:focus .home-cta-action {
        color: var(--mint);
    }
    .home-secondary-actions {
        background: linear-gradient(135deg, rgba(12, 75, 74, 0.35) 0%, rgba(15, 42, 42, 0.9) 100%);
        border-color: rgba(200, 231, 221, 0.2);
    }
    .home-secondary-actions .button.hollow {
        background-color: transparent;
        border-color: var(--sun);
        color: var(--sun) !important;
    }
    .home-secondary-actions .button.hollow:hover,
    .home-secondary-actions .button.hollow:focus {
        background-color: var(--sun);
        color: var(--ink) !important;
    }
    .text-link-button {
        color: #4CAF50;
        background: none;
        border: none;
    }
    .feedback-button {
             background-color: unset;
         }
    tbody, tfoot, thead {
        background-color: #2E2E2E;
    }
    tbody tr:nth-child(2n) {
        background-color: #3A3A3A;
    }
    table.hover tbody tr:hover {
        background-color: #4D4D4D;
    }
    table.hover:not(.unstriped) tr:nth-of-type(2n):hover {
        background-color: #4D4D4D;
    }
    table.hover thead tr:hover {
        background-color: #4D4D4D;
    }
    #Body_cphBody_wzBooking tbody td, #Body_cphBody_wzBooking table tbody, #cphBody_wzReg tbody td, #cphBody_wzReg table tbody, #cphBody_wzPayment tbody td, #cphBody_wzPayment table tbody {
        background-color: #2E2E2E;
    }
    .tabs-content {
        background: #2E2E2E;
    }
    .tabs {
        background: #2E2E2E;
    }
    .tabs-title > a:focus, .tabs-title > a[aria-selected="true"] {
        background: #3A3A3A;
        color: #bdc3c7;
    }
    .account-manage-nav {
        border-bottom-color: #4D4D4D;
    }
    .account-manage-nav a {
        color: #9bd18d;
    }
    .account-manage-nav a.active {
        border-color: #4D4D4D;
        background: #2E2E2E;
        color: #fff;
    }
    .account-manage input,
    .account-manage .input-group-field,
    .account-manage .form-control {
        background-color: #1f1f1f;
        border-color: #555;
        color: #f5f5f5;
    }
    .account-manage input:focus,
    .account-manage .input-group-field:focus,
    .account-manage .form-control:focus {
        background-color: #242424;
        border-color: #9bd18d;
        color: #fff;
    }
    .challengetile .registration-id {
        color: #065f46 !important;
    }
    /* Special states for buttons */
    .feedback-button[data-response="true"]:hover, .feedback-button[data-response="true"]:focus {
        background-color: #198754; /* Bootstrap green for success */
    }

    .feedback-button[data-response="false"]:hover, .feedback-button[data-response="false"]:focus {
        background-color: #dc3545; /* Bootstrap red for danger */
    }

    .button.success, .label.success, .menu a:hover, .menu a.active,
    ul.menu.vertical li a:hover, ul.menu.vertical li a.active {
        background-color: #065f46; /* Dark green for success and active states */
    }

    /* Text and links */
    .text-link-button:hover, .text-link-button:focus, body a, .side-nav li a {
        color: #4CAF50; /* Bright green for hover states on links */
        text-decoration: underline;
    }

    /* Form elements and special components */
    .form-inline input, .form-inline button, .input-number-group input[type=number] {
        background-color: #2C2C2C; /* Slightly lighter grey for input backgrounds */
        color: #FFF; /* White text inside inputs */
    }

    /* Breadcrumbs and navigation */
    .breadcrumbs ol li a, .breadcrumbs ul li a, .menu.vertical > li, .menu.vertical > li a:not(.button) {
        color: #9E9E9E; /* Grey text for less focus attention */
    }

    .top-bar, .top-bar ul {
        background-color: #333; /* Dark grey background for top bar */
    }

    /* Calendar and specific controls */
    .ajax__calendar_container, .pricing-table, .ajax__calendar_day, .ajax__calendar_header .ajax__calendar_hover,
    .ajax__calendar_invalid:hover {
        background-color: #222; /* Very dark background for components like calendars */
        color: #CCC; /* Lighter text for readability */
    }

    /* Progress bars and sliders */
    progress[value]::-webkit-progress-bar {
        background-color: #555; /* Darker grey for progress bar background */
    }

    progress[value]::-webkit-progress-value {
        background-image: linear-gradient(to right, #0d6efd, #6610f2); /* Gradient for progress value */
    }

    #jQueryProgressFormBar > div, #jQueryProgressFormBar > div.warn, #jQueryProgressFormBar > div.error {
        background-color: #444; /* Uniform background for progress states */
    }

    /* Enhancements for visibility */
    .fieldset, .divider, hr {
        border-color: #333; /* Dark borders for separation */
    }

    /* Icons and decorative elements */
    .time.icon strong, .pricing-table .price {
        background-color: #666; /* Mid grey for standout elements like icons */
    }

    .pretty.p-switch input:checked ~ .state label:after {
        background-color: #4CAF50; /* Bright green for toggles */
    }
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    textarea,
    select {
        background-color: #2a2a2a;
        color: #e0e0e0;
        border-color: #444;
    }
    input[type="text"]:focus,
    input[type="email"]:focus,
    input[type="password"]:focus,
    input[type="number"]:focus,
    input[type="date"]:focus,
    input[type="time"]:focus,
    input[type="datetime-local"]:focus,
    textarea:focus,
    select:focus {
        background-color: #2a2a2a;
        color: #e0e0e0;
        border-color: #6a9fff;
        box-shadow: 0 0 0 2px rgba(106, 159, 255, 0.3);
    }
    .validation-summary-errors,
    .field-validation-error {
        background-color: rgba(127, 29, 29, 0.35);
        border: 1px solid #f87171;
        color: #fde8e8;
        padding: 0.75rem;
        border-radius: 4px;
        margin-bottom: 1rem;
    }
    .validation-summary-errors ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
    /* PCA / AddressNow dropdown overrides */
    .pcaautocomplete,
    .pcaheader,
    .pcamessage,
    .pcalist,
    .pcaitem,
    .pcafirstitem,
    .pcalastitem,
    .pcafooter {
        background-color: #1f2937;
        color: #e5e7eb;
    }
    .pcaitem {
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }
    .pcaitem.pcaselected,
    .pcaitem:hover {
        background-color: #374151;
        color: #f9fafb;
    }
    .pcamessageicon {
        filter: brightness(0) invert(1);
    }
    .pcafooter {
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .field-validation-error {
        display: block;
        padding: 0.35rem 0.5rem;
        margin-top: 0.35rem;
    }
    .input-validation-error {
        background-color: #1b1215;
        border-color: #f87171;
        box-shadow: 0 0 0 1px rgba(248, 113, 113, 0.45);
        color: #fef2f2;
    }
    input::placeholder,
    textarea::placeholder {
        color: #888;
    }
    input[disabled],
    textarea[disabled],
    select[disabled] {
        background-color: #1a1a1a;
        color: #666;
    }
    .input-group-label {
        background-color: #333;
        color: #e0e0e0;
        border-color: #444;
    }
    .callout{
        background-color: #222;
    }
    .callout.success {
        background-color: #1B3A2B;
        border-color: #2E7D32;
    }
    .callout.warning {
        background-color: #3A2B1B;
        border-color: #F57C00;
    }
    .callout.alert {
        background-color: #3A1B1B;
        border-color: #D32F2F;
    }
    .callout.info {
        background-color: #1B2B3A;
        border-color: #1976D2;
    }
    .callout.primary {
        background-color: #1B1B3A;
        border-color: #3F51B5;
    }
    .callout.secondary {
        background-color: #2B2B2B;
        border-color: #424242;
    }
    .card-section {
        background-color: #2E2E2E;
        color: #f0f0f0;
    }
    .card-divider {
        background-color: #262626;
        color: #f0f0f0;
    }
    /* Dark theme for mobile side menu */
    #sidemenu {
        background-color: #333;
    }
    #sidemenu .menu > li > a {
        color: #E0E0E0;
    }
    #sidemenu .menu > li > a:hover {
        color: #4CAF50;
    }
    /* Modal windows */
    .reveal-modal {
        background-color: #1A1A1A;
        border-color: #333;
    }
    .reveal-modal .close-reveal-modal {
        color: #E0E0E0;
    }

    /* Dark theme styling for Foundation accordion */
    .accordion {
        background-color: #1e1e1e;
    }

    .accordion .accordion-item {
        background-color: #1e1e1e;
        border: 1px solid #333;
    }

    .accordion .accordion-title {
        background-color: #2a2a2a;
        color: #e0e0e0;
    }

    .accordion .accordion-title:hover,
    .accordion-item.is-active > .accordion-title {
        background-color: #3a3a3a;
    }

    .accordion .accordion-content {
        background-color: #2e2e2e;
        color: #e0e0e0;
        border-top: 1px solid #333;
    }
    a[rel="external"]::after, .external-link::after, a[rel="external nofollow"]::after {
        filter: invert(1);
    }
}

@media (prefers-color-scheme: dark) {
    .help-text {
        color: #9E9E9E; /* Grey text for help text in dark theme */
    }
    .help-text small {
        color: #9E9E9E; /* Grey text for small help text in dark theme */
    }
    /* Foundation form text variants */
    .form-text,
    .text-muted {
        color: #9E9E9E !important;
    }
}

@media (prefers-color-scheme: dark) {
    .tp-live-chat__panel {
        background: #102228;
        border-color: rgba(121, 204, 183, 0.18);
        box-shadow: 0 30px 70px rgba(0, 0, 0, 0.42);
        color: #edf6f3;
    }

    .tp-live-chat__panel-body {
        background: linear-gradient(180deg, #102228 0%, #0b1a1f 100%);
        color: #edf6f3;
    }

    .tp-live-chat__status {
        background: rgba(121, 204, 183, 0.14);
        color: #9ce3cf;
    }

    .tp-live-chat__status[data-tone="error"] {
        background: rgba(223, 111, 90, 0.18);
        color: #ffb7a8;
    }

    .tp-live-chat__status[data-tone="warning"] {
        background: rgba(241, 194, 82, 0.16);
        color: #f7df95;
    }

    .tp-live-chat__status[data-tone="pending"] {
        background: rgba(77, 166, 255, 0.16);
        color: #a8d0ff;
    }

    .tp-live-chat__start-form label,
    .tp-live-chat__message-form label,
    .tp-live-chat__message-meta,
    .tp-live-chat__message-form .show-for-sr {
        color: #cfe1dc;
    }

    .tp-live-chat__start-form input,
    .tp-live-chat__start-form textarea,
    .tp-live-chat__message-form textarea {
        background: #172c31;
        border-color: rgba(121, 204, 183, 0.16);
        color: #f3fbf8;
    }

    .tp-live-chat__start-form input::placeholder,
    .tp-live-chat__start-form textarea::placeholder,
    .tp-live-chat__message-form textarea::placeholder {
        color: rgba(207, 225, 220, 0.62);
    }

    .tp-live-chat__start-form input:focus,
    .tp-live-chat__start-form textarea:focus,
    .tp-live-chat__message-form textarea:focus {
        background: #1a3238;
        border-color: rgba(121, 204, 183, 0.45);
        box-shadow: 0 0 0 3px rgba(23, 121, 186, 0.18);
    }

    .tp-live-chat__message {
        background: #172c31;
        color: #edf6f3;
    }

    .tp-live-chat__message--agent {
        background: #123843;
    }

    .tp-live-chat__message-body a {
        color: #9ce3cf;
    }

    .tp-live-chat__typing-indicator {
        background: rgba(121, 204, 183, 0.14);
        color: #9ce3cf;
    }
}
