﻿/* Event Calendar Pro - Full Width
-------------------------------------------------- */
.eventcalendar {width:100%;margin-bottom:80px}
.eventcalendar .col-md-9 {width:100%;flex:0 0 100%;max-width:100%}

/* Calendar Tables
-------------------------------------------------- */
.eventcalendar .mpcalendarmain {display:table;width:100%;table-layout:fixed;border-collapse:collapse}
.eventcalendar .mpcalendarmain tbody {display:table-row-group}
.eventcalendar .mpcalendarmain tr {width:auto}
.eventcalendar .table-bordered td {border:1px solid #ddd}
.eventcalendar .table-bordered td {border-left:2px solid #ddd}
.eventcalendar .table-bordered {border:0 !important}
.eventcalendar .table-condensed > tbody > tr > td {padding:0}

/* Month Header and Navigation
-------------------------------------------------- */
.eventcalendar .ec-month-head {padding:5px;width:100%;background-color:#efefef;margin:10px 0 30px}
.eventcalendar .eventcalheader {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;width:100%;padding:6px 20px;background-color:#efefef;box-sizing:border-box}
.eventcalendar .eventcalheader .ec-month-previous {grid-column:1;justify-self:start;min-width:0}
.eventcalendar .eventcalheader .currentMonth {grid-column:2;margin:0;text-align:center;font-size:21px;line-height:1.35;font-weight:600;color:#173e69}
.eventcalendar .eventcalheader .ec-month-next {grid-column:3;justify-self:end;min-width:0}
.eventcalendar .eventcalheader .eventNextPrevious {display:inline-flex;align-items:center;justify-content:center;gap:5px;width:auto;max-width:100%;margin:0;padding:7px 10px;background-color:#f8f8f8;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;color:#333;font-size:14px;font-weight:400;line-height:1.35;text-align:center;text-decoration:none !important;white-space:nowrap;float:none;position:static}
.eventcalendar .eventcalheader .eventNextPrevious:hover,
.eventcalendar .eventcalheader .eventNextPrevious:focus {background-color:#fff;border-color:#aaa;color:#de5a10}

/* Calendar Days and Events
-------------------------------------------------- */
.eventcalendar a {text-decoration:none !important}
.eventcalendar .ec-day {border:1px solid #b6b6b6;background-color:#fff !important}
.eventcalendar .ec-other-month {background-color:#f5f5f5 !important}
.eventcalendar .ec-head {border-width:0 !important}
.eventcalendar .eventcontainer {background-color:#f7f4e8;padding-left:5px;margin:3px 3px 10px;border:1px solid #b9b295}
.eventcalendar .dayNumber {padding:5px}
.eventcalendar .dayNumber a {text-decoration:none !important}
.eventcalendar .ec-filler {height:60px}
.eventcalendar .mpcalendarweekendday,
.eventcalendar .mpcalendarday {border:1px solid #b6b6b6;background-color:#fff !important}
.eventcalendar .mpcalendarothermonth {border:1px solid #b6b6b6;background-color:#e2e0e0 !important}
.eventcalendar .mpcalendartoday {background-color:#e5f6df !important}
.eventcalendar .eventlink {font-size:12px;text-decoration:none !important;color:blue}
.eventcalendar .eventnamediv {background-color:#eee;padding:2px;margin-bottom:5px}

/* Print
-------------------------------------------------- */
.eventcalendar .calendar-pdfprint {text-align:center}
.eventcalendar .pdf-label {display:none}

/* Event Detail
-------------------------------------------------- */
.eventdetailview .eventmenu {display:none}
.gmap {width:100% !important;margin-top:30px;height:450px !important}

/* Admin
-------------------------------------------------- */
.editgridcell {font-size:14px}

/* Responsive Calendar Header
-------------------------------------------------- */
@media(max-width:767px){
    .eventcalendar .eventcalheader {gap:8px;padding:8px}
    .eventcalendar .eventcalheader .currentMonth {font-size:17px}
    .eventcalendar .eventcalheader .eventNextPrevious {padding:7px 6px;font-size:12px;white-space:normal}
}

@media(max-width:520px){
    .eventcalendar .eventcalheader {grid-template-columns:1fr 1fr;gap:8px}
    .eventcalendar .eventcalheader .currentMonth {grid-column:1 / -1;grid-row:1}
    .eventcalendar .eventcalheader .ec-month-previous {grid-column:1;grid-row:2}
    .eventcalendar .eventcalheader .ec-month-next {grid-column:2;grid-row:2}
}

/* Event Editor - Recurring Weekday Checkboxes
-------------------------------------------------- */
/* Isolated from generic CMS checkbox/label styles. */
.recur-day-selection ul {display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:6px 0 12px;padding:0;list-style:none}
.recur-day-selection ul > li.checkbox {display:block;float:none;width:auto;min-height:0;margin:0;padding:0;list-style:none}
.recur-day-selection ul > li.checkbox::before,
.recur-day-selection ul > li.checkbox::after,
.recur-day-selection ul > li.checkbox > label::before,
.recur-day-selection ul > li.checkbox > label::after {content:none !important}
.recur-day-selection ul > li.checkbox > label {display:inline-flex;align-items:center;gap:6px;width:auto;min-height:0;max-width:none;margin:0;padding:4px 0;font-weight:400;line-height:1.4;cursor:pointer}
.recur-day-selection ul > li.checkbox > label > input[type="checkbox"] {appearance:auto !important;-webkit-appearance:checkbox !important;display:inline-block !important;position:static !important;visibility:visible !important;opacity:1 !important;float:none !important;width:16px !important;height:16px !important;margin:0 !important;padding:0 !important;vertical-align:middle;pointer-events:auto !important;accent-color:#de5a10;cursor:pointer}

/* Homepage Event Feed
-------------------------------------------------- */
#upcoming-events-908 {width:100%;padding:55px 24px 65px;box-sizing:border-box}
#upcoming-events-908 .moduletitle {margin:0 0 32px;padding:0;border:0;background:none;color:#fff;font-size:38px;font-weight:700;line-height:1.2;text-align:center;text-shadow:0 3px 12px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.8)}
#upcoming-events-908 .modulecontent {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;max-width:1220px;margin:0 auto}
#upcoming-events-908 .vevent {display:grid;grid-template-columns:66px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);column-gap:14px;row-gap:5px;min-width:0;min-height:105px;margin:0;padding:16px;border:1px solid rgba(255,255,255,.85);border-top:3px solid #db5819;border-radius:8px;background:rgba(255,255,255,.97);box-shadow:0 5px 18px rgba(0,0,0,.22),0 1px 4px rgba(0,0,0,.12);box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
#upcoming-events-908 .vevent:hover {border-color:#f1b391;border-top-color:#bd4410;box-shadow:0 12px 28px rgba(0,0,0,.3),0 2px 8px rgba(0,0,0,.14);transform:translateY(-3px)}
#upcoming-events-908 .eventdate {grid-column:1;grid-row:1 / 4;align-self:start;display:block;width:66px;min-height:70px;padding:9px 5px 7px;border-radius:6px;background:linear-gradient(145deg,#ed6b22,#c8470e);color:#fff;font-size:29px;font-weight:800;line-height:1.12;text-align:center;text-transform:uppercase;box-shadow:0 3px 8px rgba(193,70,14,.25);box-sizing:border-box}
#upcoming-events-908 .eventdate::first-line {font-size:12px;font-weight:700;letter-spacing:1px;line-height:1.7}
#upcoming-events-908 .summary {grid-column:2;grid-row:1;display:block;min-width:0;margin:1px 0 0;color:#282828;font-size:16px;font-weight:700;line-height:1.35;text-decoration:none !important;overflow-wrap:break-word}
#upcoming-events-908 .summary:hover,
#upcoming-events-908 .summary:focus {color:#d95315}
#upcoming-events-908 .eventtime {grid-column:2;grid-row:2;min-width:0;color:#625b55;font-size:13px;font-weight:500;line-height:1.4}
#upcoming-events-908 .eventtime::before {content:"\f017";display:inline-block;margin-right:6px;color:#d95315;font-family:"Font Awesome 6 Free";font-weight:900}
#upcoming-events-908 .eventtime abbr {border:0;text-decoration:none;cursor:inherit}
#upcoming-events-908 .description {grid-column:2;grid-row:3;min-width:0;max-height:42px;overflow:hidden;color:#77716d;font-size:12px;line-height:1.4}
#upcoming-events-908 .description:empty {display:none}
#upcoming-events-908 .description p {margin:0}
#upcoming-events-908 .timezone {grid-column:1 / -1;display:block;margin:4px 0 0;color:#fff;font-size:11px;text-align:right;text-shadow:0 1px 4px rgba(0,0,0,.7)}

/* Responsive
-------------------------------------------------- */
@media(max-width:991px) {
    #upcoming-events-908 .modulecontent {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
    #upcoming-events-908 .moduletitle {font-size:34px}
}

@media(max-width:600px) {
    #upcoming-events-908 {padding:40px 16px 45px}
    #upcoming-events-908 .moduletitle {margin-bottom:25px;font-size:30px}
    #upcoming-events-908 .modulecontent {grid-template-columns:1fr;gap:12px}
    #upcoming-events-908 .vevent {min-height:95px;padding:13px}
}

@media(prefers-reduced-motion:reduce){
    #upcoming-events-908 .vevent {transition:none}

    #upcoming-events-908 .vevent:hover {transform:none}
}


/* Event Detail Page - Polished Layout
-------------------------------------------------- */
.eventdetailview {width:100%;max-width:980px;margin:8px auto 75px;box-sizing:border-box}
.eventdetailview .vevent {overflow:visible;border:1px solid #e9e2dc;border-top:5px solid #d95315;border-radius:12px;background:#fff;box-shadow:0 12px 38px rgba(35,27,22,.09),0 2px 8px rgba(35,27,22,.035)}
.eventdetailview .vevent > .moduletitle {margin:0;padding:30px 38px 24px;border:0;border-bottom:1px solid #eee8e2;background:linear-gradient(120deg,#fffaf6,#fff);color:#c94c15;font-size:clamp(27px,3vw,36px);font-weight:750;line-height:1.2;overflow-wrap:anywhere}
.eventdetailview .vevent > .outerbody {padding:0}
.eventdetailview .vevent > .outerbody > .modulecontent {display:grid;grid-template-columns:1fr 1fr;column-gap:28px;row-gap:0;padding:30px 38px 38px;box-sizing:border-box}
.eventdetailview .settingrow {min-width:0;margin:0;padding:0;border:0}
.eventdetailview .daterow {grid-column:1 / -1;margin:0 0 20px;padding:19px 22px;border:1px solid #f2d9c9;border-radius:8px;background:#fff4eb}
.eventdetailview .daterow .settinglabel {display:block;width:auto;margin:0 0 6px;padding:0;color:#a8441b;font-size:11px;font-weight:800;letter-spacing:1.1px;line-height:1.2;text-transform:uppercase}
.eventdetailview .daterow .eventdate {display:block;color:#242424;font-size:22px;font-weight:750;line-height:1.3}
.eventdetailview .timerow {margin:0 0 20px;padding:5px 0 0}
.eventdetailview .timerow .settinglabel {display:block;width:auto;margin:0 0 6px;padding:0;color:#84766e;font-size:11px;font-weight:800;letter-spacing:1px;line-height:1.2;text-transform:uppercase}
.eventdetailview .timerow .time {display:block;color:#252525;font-size:19px;font-weight:700;line-height:1.3}
.eventdetailview .timerow-start > span[id$="lblTimeZone"] {display:block;margin-top:4px;color:#82766e;font-size:12px;line-height:1.4}
.eventdetailview .repeatsrow {grid-column:1 / -1;margin:0 0 26px;padding:15px 18px;border-radius:7px;background:#f6f5f3;color:#625b55;font-size:14px;line-height:1.55}
.eventdetailview .repeatsrow .settinglabel {display:inline-block;width:auto;margin:0 8px 0 0;padding:0;color:#45413c;font-weight:750}
.eventdetailview .repeatsrow .settinglabel::before {content:"\f01e";margin-right:8px;color:#d95315;font-family:"Font Awesome 6 Free";font-weight:900}
.eventdetailview .addtocalendarrow {position:relative;grid-column:1 / -1;justify-self:start;margin:0 0 30px;z-index:5}
.eventdetailview .addtocalendarrow > .btn {display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;margin:0;padding:12px 20px;border:1px solid #c74b14;border-radius:6px;background:#d95315;color:#fff;font-family:inherit;font-size:14px;font-weight:700;line-height:1.3;text-decoration:none;box-shadow:0 4px 12px rgba(217,83,21,.16);cursor:pointer;transition:background .2s ease,box-shadow .2s ease}
.eventdetailview .addtocalendarrow > .btn::before {content:"\f271";font-family:"Font Awesome 6 Free";font-weight:900}
.eventdetailview .addtocalendarrow > .btn:hover,
.eventdetailview .addtocalendarrow > .btn:focus {border-color:#ae3c0b;background:#b9420e;color:#fff;box-shadow:0 6px 16px rgba(217,83,21,.22)}
.eventdetailview .addtocalendarrow > .btn:focus-visible {outline:3px solid rgba(217,83,21,.35);outline-offset:3px}
.eventdetailview .addtocalendarrow .caret {display:inline-block;margin-left:2px;border-top:5px solid currentColor;border-right:4px solid transparent;border-left:4px solid transparent;vertical-align:middle}
.eventdetailview .addtocalendarrow .dropdown-menu {position:absolute;top:calc(100% + 7px);left:0;display:none;min-width:250px;max-width:min(350px,calc(100vw - 45px));margin:0;padding:6px;list-style:none;border:1px solid #e9e0da;border-radius:8px;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.17);z-index:15}
.eventdetailview .addtocalendarrow:focus-within .dropdown-menu {display:block}
.eventdetailview .addtocalendarrow .dropdown-menu li {display:block;margin:0;padding:0;list-style:none}
.eventdetailview .addtocalendarrow .dropdown-menu li::before {content:none !important}
.eventdetailview .addtocalendarrow .dropdown-menu a {display:block;padding:10px 12px;border-radius:5px;color:#37312d;font-size:14px;line-height:1.35;text-decoration:none}
.eventdetailview .addtocalendarrow .dropdown-menu a:hover,
.eventdetailview .addtocalendarrow .dropdown-menu a:focus {background:#fff0e6;color:#bb440e}
.eventdetailview .eventdetails {grid-column:1 / -1;margin:0;padding:26px 0 0;border-top:1px solid #eee8e2}
.eventdetailview .eventdetails .description {color:#4c4947;font-size:16px;line-height:1.75;overflow-wrap:break-word}
.eventdetailview .eventdetails .description p {margin:0 0 15px}
.eventdetailview .eventdetails .description p:last-child {margin-bottom:0}
.eventdetailview .eventdetails .description a {color:#c84b12;text-decoration:underline;text-underline-offset:3px}
.eventdetailview .eventdetails .description a:hover {color:#903307}
.eventdetailview .drivingdirections:empty {display:none}

/* Event Detail - Responsive
-------------------------------------------------- */
@media(max-width:767px) {
    .eventdetailview {margin:8px auto 50px}
    .eventdetailview .vevent > .moduletitle {padding:24px 22px 20px;font-size:28px}
    .eventdetailview .vevent > .outerbody > .modulecontent {column-gap:18px;padding:24px 22px 30px}
    .eventdetailview .daterow {padding:17px 18px}
    .eventdetailview .daterow .eventdate {font-size:19px}
}

@media(max-width:480px) {
    .eventdetailview .vevent > .outerbody > .modulecontent {grid-template-columns:1fr;row-gap:0}
    .eventdetailview .timerow {grid-column:1;margin-bottom:16px}
    .eventdetailview .repeatsrow {margin-bottom:22px}
    .eventdetailview .addtocalendarrow {justify-self:stretch}
    .eventdetailview .addtocalendarrow > .btn {width:100%}
    .eventdetailview .addtocalendarrow .dropdown-menu {width:100%;min-width:0;max-width:100%;box-sizing:border-box}
    .eventdetailview .eventdetails {padding-top:22px}
}

@media(prefers-reduced-motion:reduce) {
    .eventdetailview .addtocalendarrow > .btn {transition:none}
}
