/*
Theme Name: sd38_schools_wp
Theme URI: 
Author: SD38 Communications
Author URI: 
Description: WordPress theme for SD38 school websites.
Requires at least: 6.8
Tested up to: 6.8
Requires PHP: 5.7
Version: 
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: ollie
Text Domain: sd38_schools_wp
Tags: 
*/

/* ==========================================================================
   1. Page Layout & Shortcode Resets
   ========================================================================== */

/* Hide home page title */
body.home .page-title-group {
    display: none;
}

/* Remove bullets & default margins from ECS Events shortcode */
.ecs-events-container,
.ecs-events-container ul,
.ecs-event-list ul,
.ecs-event-list,
.ecs-event,
.ecs-event ul,
.ecs-event li {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
}

/* Event wrapper */
.ecs-event {
    padding: 1rem 0;
    border-bottom: 1px solid #ddd;
}

/* Last event: no border */
.ecs-event:last-child {
    border-bottom: none;
}

/* Title */
.ecs-event .entry-title,
.ecs-event .ecs-event-title,
h4.entry-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-top: 0.5rem;
    margin-bottom: 0.0625rem;
    color: #005cb9;
}

/* Date */
.ecs-event .ecs-event-date {
    font-size: 1.25rem;
    color: #555;
    margin-bottom: 0.5rem;
    display: block;
}

.ecs-event p {
    font-size: 1.125rem;
    padding: 0;
    margin: 0;
}

/* Images */
.ecs-event img {
    width: 100%;
    max-width: 160px;
    height: auto;
    border-radius: 4px;
    margin-bottom: 0.5rem;
}

/* Excerpt */
.ecs-event .ecs-excerpt {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #333;
    margin-bottom: 0.5rem;
}

/* ==========================================================================
   2. The Events Calendar (Tribe Events) Styling
   ========================================================================== */

.tribe-events-widget {
    margin-bottom: 0px !important;
}

.tribe-common--breakpoint-medium.tribe-events .tribe-events-l-container {
    padding-top: 15px !important;
}

/* Global Font Inheritance */
.tribe-events-widget-events-list, 
.tribe-events-widget-events-list *,
.tribe-events-widget-events-list__event-title-link {
    font-family: inherit !important;
}

/* --- Fix Double Underlines & Link Artifacts --- */
.tribe-events-widget-events-list a,
.tribe-events-widget-events-list a.tribe-common-anchor-thin,
.tribe-events-widget-events-list__event-title-link {
    text-decoration: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    background-image: none !important;
    color: var(--wp--preset--color--primary) !important;
}

.tribe-events-widget-events-list a:hover,
.tribe-events-widget-events-list a:focus {
    text-decoration: underline !important;
    border-bottom: none !important;
}

/* --- Row Layout & Flex Alignment Fixes --- */
.tribe-events-widget-events-list__event-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 1rem !important;
    margin-bottom: 0.25rem !important;
    padding-bottom: 0.125rem !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

.tribe-events-widget-events-list__event-row:last-child {
    border-bottom: none !important;
    margin-bottom: 0 !important;
}

/* Date Icon (Month & Day Badge Alignment) */
.tribe-events-widget-events-list__event-date-tag {
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 52px !important;
    text-align: center !important;
    padding: 6px 8px !important;
    background-color: var(--wp--preset--color--base) !important;
    border-radius: 6px !important;
    border: 1px solid #00000018 !important;
}

.tribe-events-widget-events-list__event-date-tag-month {
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    color:  var(--wp--preset--color--primary) !important;
    display: block !important;
}

.tribe-events-widget-events-list__event-date-tag-daynum {
    font-size: 1.5rem !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
    color: #1a202c !important;
    display: block !important;
    margin: 2px 0 0 0 !important;
}

/* Content Details Wrapper Alignment */
.tribe-events-widget-events-list__event-wrapper {
    flex: 1 1 auto !important;
    min-width: 0 !important; /* Prevents long text from overflowing flex container */
}

/* Event Title */
.tribe-events-widget-events-list__event-title {
    margin: 0 0 2px 0 !important;
    padding: 0 !important;
}

.tribe-events-widget-events-list__event-title,
.tribe-events-widget-events-list__event-title-link {
    font-size: 1.125rem !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
    color:  var(--wp--preset--color--primary) !important;
}

/* DateTime & Metadata */
.tribe-events-widget-events-list__event-datetime-wrapper {
    margin-bottom: 2px !important;
}

.tribe-events-widget-events-list__event-datetime,
.tribe-events-widget-events-list__event-venue {
    font-size: 0.875rem !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
    color: var(--wp--preset--color--secondary) !important;
}

/* Footer / "View Calendar" Link */
.tribe-events-widget-events-list__view-more {
    margin-top: 1rem !important;
    padding-top: 0.5rem !important;
    font-weight: 600 !important;
}

/* Sidebar Subscribe Dropdown Styling */
#calendar-sidebar .tribe-events-c-subscribe-dropdown {
    position: relative;
    display: inline-block;
    width: 100%;
    font-family: system-ui, sans-serif;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown__button {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    background-color: #0056b3 !important;
    color: #ffffff !important;
    border: none !important;
    padding: 12px 18px !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    width: 100%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    box-sizing: border-box;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown__button-text {
    color: #ffffff !important;
    background: none !important;
    border: none !important;
    font-size: 1rem !important;
    padding: 0 !important;
    cursor: pointer;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown__button-icon {
    width: 12px !important;
    height: 12px !important;
    fill: #ffffff !important;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown__button-icon path {
    fill: #ffffff !important;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown__content {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 999;
    padding: 10px 0;
    margin: 5px 0 0 0;
    list-style: none !important;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown--open .tribe-events-c-subscribe-dropdown__content,
#calendar-sidebar .tribe-events-c-subscribe-dropdown__button[aria-expanded="true"] + .tribe-events-c-subscribe-dropdown__content {
    display: block !important;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown__content-item-link,
#calendar-sidebar .tribe-events-c-subscribe-dropdown__content list-style-type-none a {
    display: block !important;
    padding: 8px 16px !important;
    color: #2d3748 !important;
    text-decoration: none !important;
    font-size: 0.9rem !important;
}

#calendar-sidebar .tribe-events-c-subscribe-dropdown__content-item-link:hover {
    background-color: #f7fafc !important;
    color: #0056b3 !important;
}

/* ==========================================================================
   3. Custom Faded Global Header Controls (Ollie Theme)
   ========================================================================== */

.school-global-header.ollie-faded-header {
    position: relative !important;
    background-image: var(--school-banner) !important;
    background-size: cover !important;
    background-position: 50% 50% !important;
    background-repeat: no-repeat !important;
    background-color: var(--wp--preset--color--primary) !important;
    background-blend-mode: screen !important; 
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.school-global-header.ollie-faded-header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        to bottom, 
        rgba(255, 255, 255, 0) 0%, 
        var(--wp--style--color--background, #ffffff) 100%
    );
    pointer-events: none;
    z-index: 1;           
}

.school-global-header.ollie-faded-header .wp-block-site-logo,
.school-global-header.ollie-faded-header .wp-block-site-title,
.school-global-header.ollie-faded-header .gtranslate_wrapper,
.school-global-header.ollie-faded-header .wp-block-search {
    position: relative;
    z-index: 5;
}

.school-global-header.ollie-faded-header .wp-block-navigation,
.school-global-header.ollie-faded-header .wp-block-essential-blocks-advanced-navigation,
.school-global-header.ollie-faded-header .eb-parent-wrapper {
    position: relative;
    z-index: 50;
}

.school-global-header.ollie-faded-header .wp-block-navigation__submenu-container,
.school-global-header.ollie-faded-header .eb-advanced-navigation-submenu {
    z-index: 99999;
}

.school-global-header.ollie-faded-header .wp-block-columns.alignwide {
    min-height: 12.5rem !important;
    display: flex !important;
    align-items: center !important;
}

/* Header Text Overrides + Line-Art Carets */
/* --- Default State --- */
div.ollie-faded-header [class*="advanced-navigation"] *,
div.ollie-faded-header [class*="eb-"] * {
    color: var(--wp--preset--color--primary) !important;
}

div.ollie-faded-header [class*="advanced-navigation"] svg path,
div.ollie-faded-header [class*="advanced-navigation"] svg polygon,
div.ollie-faded-header [class*="eb-"] svg path,
div.ollie-faded-header [class*="eb-"] svg polygon {
    fill: none !important; 
    stroke: var(--wp--preset--color--primary) !important;
}

/* --- Hover State --- */
div.ollie-faded-header [class*="advanced-navigation"] a:hover *,
div.ollie-faded-header [class*="eb-"] a:hover * {
    color: var(--wp--preset--color--secondary) !important;
}

div.ollie-faded-header [class*="advanced-navigation"] a:hover svg path,
div.ollie-faded-header [class*="advanced-navigation"] a:hover svg polygon,
div.ollie-faded-header [class*="eb-"] a:hover svg path,
div.ollie-faded-header [class*="eb-"] a:hover svg polygon {
    fill: none !important;
    stroke: var(--wp--preset--color--secondary) !important;
}

/* --- Active State --- */
div.ollie-faded-header [class*="advanced-navigation"] [class*="current"] *,
div.ollie-faded-header [class*="eb-"] [class*="current"] * {
    color: var(--wp--preset--color--contrast) !important;
}

div.ollie-faded-header [class*="advanced-navigation"] [class*="current"] svg path,
div.ollie-faded-header [class*="advanced-navigation"] [class*="current"] svg polygon,
div.ollie-faded-header [class*="eb-"] [class*="current"] svg path,
div.ollie-faded-header [class*="eb-"] [class*="current"] svg polygon {
    fill: none !important;
    stroke: var(--wp--preset--color--contrast) !important;
}

/* ==========================================================================
   4. Targeted Link Underline Rules (Ollie Override)
   ========================================================================== */

/* 1. Global Reset: Strip underlines from site title, headers, footers, navs */
a,
.wp-block-site-title a,
.wp-block-navigation a,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    text-decoration: none !important;
}

/* 2. Global Hover: Show underlines when hovering over any general link */
a:hover,
a:focus {
    text-decoration: underline !important;
}

/* 3. Exceptions: Never show underlines on Site Titles even on hover */
.wp-block-site-title a:hover,
.wp-block-site-title a:focus {
    text-decoration: none !important;
}

/* 4. Paragraph Content ONLY: Keep static underlines strictly on body paragraph links */
.entry-content p a,
.wp-block-post-content p a,
.site-content p a {
    text-decoration: underline !important;
}

/* ==========================================================================
   EB Advanced Navigation Styles
   ========================================================================== */

/* 1. Force Root Elements & Nav List to Expand Full Width */
.site-header .eb-advanced-navigation-wrapper,
.site-header .eb-advanced-navigation-wrapper .wp-block-navigation {
    width: 100% !important;
    max-width: 100% !important;
}

/* 2. Force the <ul> List Container to Space Items to Far Edges */
.site-header .eb-advanced-navigation-wrapper ul.wp-block-navigation__container,
.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__container {
    display: flex !important;
    width: 100% !important;
    justify-content: space-between !important; /* Forces Item 1 Left & Item 2 Right */
    align-items: center !important;
    box-sizing: border-box !important;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation:not(ul.wp-block-navigation) {
    border-radius: 5px;
    transition: all .5s, background 0.5s, border 0.5s, border-radius 0.5s, box-shadow 0.5s;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation:not(ul.wp-block-navigation):hover {
    border-radius: 5px;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation:not(ul.wp-block-navigation):before {
    transition: all .5s, background 0.5s, opacity 0.5s, filter 0.5s;
}

/* 3. Level 1 Items (Sits on Far Edges) */
.site-header .eb-advanced-navigation-wrapper .wp-block-navigation-item:not(.wp-block-navigation__submenu-container .wp-block-navigation-item) {
    flex: 0 0 auto !important; /* Prevents item containers from awkwardly bloating */
    padding-top: 20px;
    padding-right: 10px;
    padding-left: 10px;
    padding-bottom: 20px;
    transition: all .5s, border 0.5s, border-radius 0.5s, box-shadow 0.5s;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation-item__content {
    color: #005CB9 !important;
    font-size: 18px;
    font-weight: 700;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation-item:hover > .wp-block-navigation-item__content {
    color: #3B556F !important;
}

.site-header .eb-advanced-navigation-wrapper .current-menu-item .wp-block-navigation-item__content {
    color: #3B556F !important;
}

.eb-advanced-navigation-3mby3.eb-advanced-navigation-wrapper .current-menu-item:hover > .wp-block-navigation-item__content {
    color: var(--eb-global-primary-color) !important;
}

/* Submenu Dropdown Container */
.eb-advanced-navigation-3mby3.eb-advanced-navigation-wrapper .wp-block-navigation__submenu-container {
    padding: 10px;
    background-color: var(--eb-global-background-color);
    border-radius: 5px;
    min-width: 200px !important;
    width: max-content !important;
    max-width: max-content !important;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__submenu-container .wp-block-navigation-item {
    padding: 0;
    text-align: left !important;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    font-size: 16px;
    color: #005CB9 !important;
    padding-top: 0px;
    padding-right: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    border-radius: 3px;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content, 
.eb-advanced-navigation-3mby3.eb-advanced-navigation-wrapper .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content {
    color: #3B556F !important;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__submenu-icon {
    width: 15px;
    height: 15px;
    color: #005CB9;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation-item:hover .wp-block-navigation__submenu-icon {
    color: #3B556F;
}

/* Mobile Responsive Container Options */
.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container-open {
    color: var(--eb-global-primary-color);
    padding-top: 10px;
    padding-right: 10px;
    padding-left: 10px;
    padding-bottom: 10px;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container-open svg {
    width: 30px;
    height: 30px;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container.is-menu-open, 
.eb-advanced-navigation-3mby3.eb-advanced-navigation-wrapper .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
    background-color: var(--eb-global-background-color);
    padding-top: 5px;
    padding-right: 5px;
    padding-left: 5px;
    padding-bottom: 5px;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
    box-sizing: border-box;
    padding: 0;
    text-align: left !important;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: var(--eb-global-text-color) !important;
    background-color: var(--eb-global-background-color) !important;
    width: 100%;
    box-sizing: border-box;
    padding-top: 15px;
    padding-right: 15px;
    padding-left: 15px;
    padding-bottom: 15px;
    font-size: 16px;
}

.site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content:hover, 
.eb-advanced-navigation-3mby3.eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container .wp-block-navigation-item .wp-block-navigation-item__content:hover {
    color: var(--eb-global-primary-color) !important;
    background-color: transparent !important;
}

.site-header .eb-advanced-navigation-wrapper .is-menu-open .wp-block-navigation__responsive-container-close {
    color: var(--eb-global-primary-color);
}

.site-header .eb-parent-wrapper {
    display: block;
    position: relative;
}

@media (max-width: 1024px) {
    .site-header .eb-advanced-navigation-wrapper .wp-block-navigation__submenu-container {
        min-width: 200px !important;
    }

    .site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container.is-menu-open {
        background-color: var(--eb-global-background-color);
    }

    .eb-parent-eb-advanced-navigation-3mby3 {
        display: block;
    }
}

@media (max-width: 767px) {
    .site-header .eb-advanced-navigation-wrapper .wp-block-navigation__submenu-container {
        min-width: 200px !important;
    }

    .site-header .eb-advanced-navigation-wrapper .wp-block-navigation__responsive-container.is-menu-open {
        background-color: var(--eb-global-background-color);
    }

    .site-header .eb-parent-wrapper {
        display: block;
    }
}

/* ==========================================================================
   WordPress Native File Block - Modern Download Card (Ollie Child Theme)
   ========================================================================== */

/* Main Container */
.wp-block-file {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background-color: var(--wp--preset--color--base-2, #f8f9fa);
    border: 1rem solid var(--wp--preset--color--base-3, #e9ecef);
    border-width: 1px;
    border-radius: 8px;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    transition: all 0.2s ease-in-out;
}

/* Subtle Hover Effect */
.wp-block-file:hover {
    border-color: var(--wp--preset--color--accent, #0055ff);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* File Title / Link Styling */
.wp-block-file a:not(.wp-block-file__button) {
    font-weight: 600;
    color: var(--wp--preset--color--contrast, #1a1a1a);
    text-decoration: none;
    font-size: 1.05rem;
    line-height: 1.4;
    transition: color 0.15s ease;
}

.wp-block-file a:not(.wp-block-file__button):hover {
    color: var(--wp--preset--color--accent, #0055ff);
    text-decoration: underline;
}

/* Download Button Adjustments */
.wp-block-file .wp-block-file__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    font-weight: 500;
    border-radius: 6px;
    white-space: nowrap;
    text-decoration: none;
    /* Uses theme's primary button styles seamlessly */
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--base, #ffffff);
    transition: transform 0.15s ease, background-color 0.15s ease;
}

.wp-block-file .wp-block-file__button:hover {
    background-color: var(--wp--preset--color--accent, #0055ff);
    color: #ffffff;
    transform: translateY(-1px);
}

/* Mobile Responsiveness (Stacks vertically on small screens) */
@media (max-width: 600px) {
    .wp-block-file {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .wp-block-file .wp-block-file__button {
        width: 100%;
        text-align: center;
    }
}