/* ############################################################################
   ##
   ##  CALENDAR ELEMENTS
   ##  Objects/structures that might appear on any page
   ##
   ######################################################################### */

/* 
    #EventContent is a child of #PrimaryContent in standard templates.
    - The full event details page can be targeted this way
    - #EventInfo is the summary content - usually at the top of the page - e.g. location, type, status
    - General event styling uses classes so targeting these div IDs give rules here strong specificity
*/

#EventContent {
}

    #EventContent #PublishInfo {
    }

        #EventContent #PublishInfo .date {
        }
                
            #EventContent #PublishInfo .date .separator {
                margin: 0 0.25em;
            }

        #EventContent #PublishInfo .time {
            /* The time block only appears on events. */
        }

    #EventContent #EventInfo {
        position: relative;
        float: left;
        box-sizing: border-box;
        width: 100%;
        margin-bottom: 1.5em;
    }

        #EventContent #EventInfo > div {
            position: relative;
            float: left;
            width: 100%;
            margin: 0;
            padding: 10px 0;
            border-bottom: #ebebeb 2px solid;
        }

        #EventContent #EventInfo > div.type {
        }

        #EventContent #EventInfo > div.status {
        }

        #EventContent #EventInfo > div.location {
        }

        #EventContent #EventInfo > div.attendees {
        }

        #EventContent #EventInfo > div.addedBy {
        }
    
        /* Label/value classes could be targeted individually or together, and as children of event type and status classes. */

        #EventContent #EventInfo .label {
            display: block;
            position: relative;
            float: left;
            box-sizing: border-box;
            width: 15%;
            font-weight: bold;
        }

        #EventContent #EventInfo .value,
        #EventContent #EventInfo .mapLink {
            display: block;
            position: relative;
            float: left;
            box-sizing: border-box;
            max-width: 85%;
        }

    /* Individual event types and statuses can be targeted. */

    #EventContent.status_confirmed {
    }

        #EventContent.status_confirmed .status {
            /*background: #006600;*/
        }

            #EventContent.status_confirmed .status .value {
                /*color: #ffffff;*/
                color: #339933;
            }
            
    #EventContent.status_tentative {
    }

        #EventContent.status_tentative .status {
            /*background: #ff9900;*/
        }

            #EventContent.status_tentative .status .value {
                /*color: #ffffff;*/
                color: #ff9900;
            }

    #EventContent .map {
        margin: 0 0 1.5em;
    }

/* 
    Event Summary 
    Note that general content styles will be inherited from the global stylesheet, so:
    - Only create styles needed especially for events below, don't double up with general site styles 
    - E.g. best not to redefine things like .text and .thumbnail, just handle stuff that's specific to events like .status and dates
    - Specificity is important if you want to do special stuff with events - e.g. see #Primary and #Secondary below
*/

.contentItem.event {
}

    .contentItem.event .thumbnail {
    }
    
        .imageLeft .contentItem.event .thumbnail,
        .imageRight .contentItem.event .thumbnail {
            /* cm3 9.1.1 has no way to set the thumbnail size on events widgets, it's "medium" by default. So make sure it doesn't upset content in smaller views. */
            max-width: 35%;
        }

    .contentItem.event .text {
    }

        .contentItem.event .text .title {
        }

        .contentItem.event .text .date {
        }

            .contentItem.event .text .date .startDate {
            }

            .contentItem.event .text .date .endDate {
            }

            .contentItem.event .text .date.mutiple {
                /* If both start and end dates exist, the date element will have an additional class name - "multiple". */
            }

        .contentItem.event .text .time {
            margin-bottom: 0.25em;
            color: #909090;
        }

            .contentItem.event .text .time .startTime {
            }

            .contentItem.event .text .time .endTime {
            }

            .contentItem.event .text .time.multiple{
                /* If both start and end times exist, the date element will have an additional class name - "multiple". */
            }

        /* Date and time separators could be targetd under individual elements if needed, but they're usually the same. */

        .contentItem.event .text .date .separator,
        .contentItem.event .text .time .separator {
            margin: 0 0.25em;
        }

        .contentItem.event .text .type {
            display: inline-block;
            margin-bottom: 0.25em;
        }

            .contentItem.event .text .type .value:after {
                content: ", ";
            }

            .contentItem.event .text .type .value:last-child:after {
                display: none;
            }

            /* Particular event types */

            .contentItem.event.type_meeting {
            }

        .contentItem.event .text .status {
            margin-bottom: 0.25em;
        }

            /* Particular event statuses */

            .contentItem.event.status_confirmed {
            }

                .contentItem.event.status_confirmed .status {
                }

                    .contentItem.event.status_confirmed .status .value {
                        color: #339933;
                    }

            .contentItem.event.status_tentative {
            }

                .contentItem.event.status_tentative .status {
                }

                    .contentItem.event.status_tentative .status .value {
                        color: #ff9900;
                    }

        .contentItem.event .text .location {
            font-style: italic;
            margin-bottom: 0.25em;
        }

        .contentItem.event .text .attendees {
            margin-bottom: 0.25em;
        }

        .contentItem.event .text .summary {
        }

        /* Label/value classes could be targeted individually or together, and as children of event type and status classes - examples are below */

        .contentItem.event .text .type .label,
        .contentItem.event .text .location .label,
        .contentItem.event .text .attendees .label,
        .contentItem.event .text .status .label {
            display: none;
        }

        .contentItem.event .text .type .value,
        .contentItem.event .text .location .value,
        .contentItem.event .text .attendees .value,
        .contentItem.event .text .status .value {
        }

        .contentItem.event.type_meeting .text .type .label {
        }

#Primary .contentItem.event {
}

#Secondary .contentItem.event {
}
        
/* Feature events */

.contentItem.event.feature {
}

/* 
    Calendar Month View Table
*/

table.monthView {
    width: 100%;
    border: #ffffff 1px solid;
}

    table.monthView tr.dayNames {
    }

        table.monthView tr.dayNames th.dayName {
            padding: 10px;
            width: 13.28%;
            font-weight: bold;
            background: #d0d0d0;
            border: #ffffff 1px solid !important;
        }

    table.monthView tr.days {
    }

        table.monthView tr.days td.day {
            /* Default day, includes other month days */
            padding: 10px;
            width: 13.28%;
            vertical-align: top;
            background: #f8f8f8; 
            border: #ffffff 1px solid;
            overflow: hidden;
        }

            table.monthView tr.days td.day.thisMonth {
                background: #f0f0f0;
                cursor: pointer;
            }

                table.monthView tr.days td.day.thisMonth:hover {
                    background: #e0e0e0;
                }

                table.monthView tr.days td.day.thisMonth.hasEvents {
                    /* A cell with events */
                    background: #d0d0d0;
                    cursor: pointer;
                }

                    table.monthView tr.days td.day.thisMonth.hasEvents:hover {
                        background: #e0e0e0;
                    }

                table.monthView tr.days td.day.thisMonth.today {
                        background: #f8f8f8;
                }

                    table.monthView tr.days td.day.thisMonth.today:hover {
                            background: #e0e0e0;
                    }
                    
                        table.monthView tr.days td.day.thisMonth.today:hover a {
                        }

            table.monthView tr.days td.day.otherMonth {
                background: #f8f8f8;
            }

            table.monthView tr.days td.day.otherMonth.previousMonth {
            }

            table.monthView tr.days td.day.otherMonth.nextMonth {
            }

            /* 
                Events within a day cell
                Note that .contentItem is inherited from elsewhere (see above and other stylesheets), so only override stuff required for the month view table below.
            */

            table.monthView tr.days td.day .contentItem.event {
                position: relative;
                margin-top: 10px;
                margin-bottom: 0 !important;
            }

                table.monthView tr.days td.day .contentItem.event .thumbnail {
                    display: block;
                    float: none;
                    width: 100%;
                    max-width: 100%;
                    padding: 0;
                    margin: 5px 0;
                    overflow: hidden;
                }
                
                table.monthView tr.days td.day .contentItem.event .thumbnail.tiny {
                }

                table.monthView tr.days td.day .contentItem.event .thumbnail.small {
                }

                table.monthView tr.days td.day .contentItem.event .thumbnail.medium {
                }

                table.monthView tr.days td.day .contentItem.event .thumbnail.large {
                }

                table.monthView tr.days td.day .contentItem.event .thumbnail.huge {
                }

                    table.monthView tr.days td.day .contentItem.event .thumbnail img {
                        width: 100%;
                        max-width: 100%;
                    }

                table.monthView tr.days td.day .contentItem.event .text {
                    float: none;
                }

                    table.monthView tr.days td.day .contentItem.event .text .title {
                        margin: 0.5em 0;
                    }

                    table.monthView tr.days td.day .contentItem.event .text .date {
                    }

                    table.monthView tr.days td.day .contentItem.event .text .time {
                    }

                    table.monthView tr.days td.day .contentItem.event .text .summary {
                    }

                    table.monthView tr.days td.day .contentItem.event .text .type, 
                    table.monthView tr.days td.day .contentItem.event .text .status, 
                    table.monthView tr.days td.day .contentItem.event .text .location, 
                    table.monthView tr.days td.day .contentItem.event .text .attendees {
                    }

                    table.monthView tr.days td.day .contentItem.event .text .location {
                    }

                    table.monthView tr.days td.day .contentItem.event .text .label {
                        display: none;
                    }

            table.monthView tr.days td.day .contentItem.event.status_confirmed {
            }

                table.monthView tr.days td.day .contentItem.event.status_confirmed .status .value {
                }

            table.monthView tr.days td.day .contentItem.event.status_tentative {
            }

                table.monthView tr.days td.day .contentItem.event.status_tentative .status .value {
                }

            /* Events within a day cell in particular panels and templates. */

            #Primary table.monthView tr.dayNames {
            }

                #Primary table.monthView tr.dayNames th.dayName {
                    height: 25px; /* Height works like min-height for display: table-cell. */
                }
            
            #Primary table.monthView tr.days {
            }

                #Primary table.monthView tr.days td.day {
                    height: 75px; /* Height works like min-height for display: table-cell. */
                }

                    #Primary table.monthView tr.days td.day .contentItem.event {
                    }

@media screen and (max-width: 600px) {

    table.monthView tr.days td.day .contentItem.event .thumbnail {
    }

        table.monthView tr.days td.day .contentItem.event .thumbnail img {
            width: auto;
        }

    /* Calendar components in particular panels and templates. */

    #Primary table.monthView tr.dayNames {
        display: none;
    }

    #Primary table.monthView tr.days {
        display: block;
        float: left;
        width: 100%;
        box-sizing: border-box;
    }

        #Primary table.monthView tr.days td.day {
            display: block !important;
            float: left;
            width: 100%;
            box-sizing: border-box;
            padding: 10px;
            height: auto;
        }

        #Primary table.monthView tr.days td.day.otherMonth {
            display: none !important;
        }

}

/* Calendar Month View Widget in particular panels and templates */

#Primary .eventsByMonth {
    margin-bottom: 1.5em;
}

    @media screen and (min-width: 600px) and (max-width: 900px) {

        #Primary .eventsByMonth {
            margin: 0 -10px; /* Get as much room as possible, negate the page padding. */
        }

        .eventsByMonth fieldset.calendarToolbar {
            padding: 0 10px !important; /* Adjustment for the negated page padding above. */
        }

    }

#Secondary .eventsByMonth.calendar {
}

#Tertiary .eventsByMonth.calendar {
}

    body.Template_threecols1 #Secondary .eventsByMonth.calendar,
    body.Template_twocols2 #Secondary .eventsByMonth.calendar, 
    body.Template_twocols1 #Tertiary .eventsByMonth.calendar,
    body.Template_threecols1 #Tertiary .eventsByMonth.calendar {
        margin-bottom: 1.5em;
        font-size: 75%;
    }

        body.Template_threecols1 #Secondary .eventsByMonth.calendar .formPanel,
        body.Template_twocols2 #Secondary .eventsByMonth.calendar .formPanel,
        body.Template_twocols1 #Tertiary .eventsByMonth.calendar .formPanel, 
        body.Template_threecols1 #Tertiary .eventsByMonth.calendar .formPanel {
            margin: 0;
        }

    body.Template_threecols1 #Secondary table.monthView tr.dayNames th.dayName,
    body.Template_threecols1 #Secondary table.monthView tr.days td.day,
    body.Template_twocols2 #Secondary table.monthView tr.dayNames th.dayName,
    body.Template_twocols2 #Secondary table.monthView tr.days td.day,
    body.Template_twocols1 #Tertiary table.monthView tr.dayNames th.dayName,
    body.Template_twocols1 #Tertiary table.monthView tr.days td.day,
    body.Template_threecols1 #Tertiary table.monthView tr.dayNames th.dayName,
    body.Template_threecols1 #Tertiary table.monthView tr.days td.day {
        padding: 4px;
        width: 10.28%;
    }

/* Calendar List View Widget in particular panels and templates */
   
#Primary .eventsByMonth.list {
}

    #Primary .eventsByMonth.list .day {
    }

        #Primary .eventsByMonth.list .day .dayTitle {
        }

    #Primary .eventsByMonth.list .day .contentItem.event .text .date {
        display: none; /* Even when dates are turned on it doesn't make sense to show a single date, since the date is shown at the top of each day. */
    }

        #Primary .eventsByMonth.list .day .contentItem.event .text .date.multiple {
            display: block; /* For multi-day events, it still makes sense to show the date. */
        }

#Secondary .eventsByMonth.list {
}

#Tertiary .eventsByMonth.list {
}

/*
    Calendar Toolbar
*/

.eventsByMonth fieldset.calendarToolbar {
    display: inline-block;
    vertical-align: middle;
    float: none;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

    .eventsByMonth fieldset.calendarToolbar legend {
        display: none;
    }

.eventsByMonth fieldset.calendarToolbar ul.formFields {
    position: relative;
    float: left;
    width: 100%;
}

    .eventsByMonth fieldset.calendarToolbar .fieldContainer {
        clear: none;
        box-sizing: border-box;
        width: auto;
        margin: 0 !important;
        padding-right: 4px;
    }

    .eventsByMonth fieldset.calendarToolbar .fieldContainer.dropdownField {
        width: 40%;
    }
    
    .eventsByMonth fieldset.calendarToolbar .fieldContainer.submitButtonField {
        width: 20%;
        padding-right: 0;
    }

        .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldTitle {
            display: none;
        }

        .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldContent {
            width: 100%;
            max-width: 100%;
        }

            .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls {
            }

                .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select {
                    width: 100%;
                    padding: 9px;
                }

        .eventsByMonth .submitButton {
            width: 100%;
            border-radius: 0;
        }

@media screen and (max-width: 600px) {

    .eventsByMonth fieldset.calendarToolbar .fieldContainer.dropdownField {
        width: 50%;
    }

}

/* These template spots are always thin... */

body.Template_threecols1 #Secondary .eventsByMonth.calendar  fieldset.calendarToolbar,
body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar,
body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar,
body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar {
    border: 0;
    padding: 0;
    margin: 0 0 0.5em;
}

    body.Template_threecols1 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar legend,
    body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar legend,
    body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar legend,
    body.Template_threecols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar legend {
        font-size: 155.6%; /* 14px/9px */
        padding: 0;
        margin: 0 0 0.25em;
    }

    body.Template_threecols1 #Secondary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer,
    body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer,
    body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer,
    body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer {
        padding: 0;
        margin: 0;
        width: 100%;
        clear: both;
    }

        body.Template_threecols1 #Secondary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldTitle,
        body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldTitle,
        body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldTitle,
        body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldTitle {
            display: none;
        }

        body.Template_threecols1 #Secondary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent,
        body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent,
        body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent,
        body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent {
            width: 100%;
            max-width: 100%;
            padding: 0;
            background: transparent;
        }

            body.Template_threecols1 #Secondary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls,
            body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls,
            body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls,
            body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls {
            }

                body.Template_threecols1 #Secondary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select,
                body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select,
                body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select,
                body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select {
                }
                
            body.Template_threecols1 #Secondary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls .submitButton,
            body.Template_twocols2 #Secondary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls .submitButton,
            body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls .submitButton,
            body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls .submitButton {
            }

/* 
    Upcoming Events Widget
*/

.upcomingEvents {
}

    .upcomingEvents .contentItem.event {
    }
