/* Do Progetto shared styling for The Events Calendar */


/* =========================================================
 * Calendar base
 * ========================================================= */

.doprogetto-events .tribe-events {
    max-width: 830px;
    margin: 0 auto;
}

.doprogetto-events .tribe-events .tribe-events-l-container {
    padding-top: 0 !important;
}


/* Hide search/view switcher and subscription controls */

.doprogetto-events .tribe-events-header__events-bar,
.doprogetto-events .tribe-events-c-events-bar,
.doprogetto-events .tribe-events-c-view-selector,
.doprogetto-events .tribe-events-c-subscribe-dropdown__container,
.doprogetto-events .tribe-events-c-subscribe-dropdown {
    display: none !important;
}


/* =========================================================
 * Calendar controls
 * ========================================================= */

.doprogetto-events .tribe-events-c-search__button {
    background: #8b0000 !important;
    border-radius: 0 !important;
    font-weight: normal !important;
}

.doprogetto-events .tribe-events-c-search__button:hover {
    background: #650000 !important;
}

.doprogetto-events .tribe-events-c-top-bar__today-button,
.doprogetto-events .tribe-common button,
.doprogetto-events .tribe-common input {
    border-radius: 0 !important;
}


/* =========================================================
 * Month calendar
 * ========================================================= */

.tribe-events-view--month {
    --tec-color-border-secondary-month-grid: #aaa;
}

.doprogetto-events
.tribe-events-calendar-month__multiday-event-bar {
    background: #f2e3e3 !important;
    border-radius: 0 !important;
}

.doprogetto-events
.tribe-events-calendar-month__multiday-event-bar-title,

.doprogetto-events
.tribe-events-calendar-month__calendar-event-title-link {
    color: #7a0000 !important;
    font-weight: normal !important;
}


/* Calendar typography */

.tribe-events-view--month
.tribe-events-calendar-month__header-column-title,

.tribe-events-view--month
.tribe-events-calendar-month__header-column-title-desktop {
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

.tribe-events-view--month
.tribe-events-calendar-month__day-date-daynum,

.tribe-events-view--month
.tribe-events-calendar-month__day-date-link {
    font-size: 20px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
}

.tribe-events-view--month
.tribe-events-calendar-month__calendar-event-title,

.tribe-events-view--month
.tribe-events-calendar-month__calendar-event-title-link,

.tribe-events-view--month
.tribe-events-calendar-month__multiday-event-bar-title {
    font-size: 13px !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
}

.tribe-events-view--month
.tribe-events-calendar-month__calendar-event-datetime {
    font-size: 12px !important;
    line-height: 1.4 !important;
}


/* =========================================================
 * Category colors
 * ========================================================= */

.tribe-events-view--month
.tribe-events-calendar-month__calendar-event.dp-event-category {
    padding: 3px 5px !important;
    margin: 2px 3px !important;

    border-left:
        4px solid
        var(--dp-cat-accent) !important;

    background:
        var(--dp-cat-bg) !important;

    box-sizing: border-box !important;
}

.tribe-events-view--month
.dp-event-category
.tribe-events-calendar-month__calendar-event-title,

.tribe-events-view--month
.dp-event-category
.tribe-events-calendar-month__calendar-event-title-link,

.tribe-events-view--month
.dp-event-category
.tribe-events-calendar-month__calendar-event-datetime {
    color:
        var(--dp-cat-text) !important;
}

.tribe-events-view--month
.tribe-events-calendar-month__multiday-event.dp-event-category
.tribe-events-calendar-month__multiday-event-bar {
    background:
        var(--dp-cat-bg) !important;

    border-left:
        4px solid
        var(--dp-cat-accent) !important;
}

.tribe-events-view--month
.tribe-events-calendar-month__multiday-event.dp-event-category
.tribe-events-calendar-month__multiday-event-bar-title,

.tribe-events-view--month
.tribe-events-calendar-month__multiday-event.dp-event-category
.tribe-events-calendar-month__multiday-event-bar-title-link {
    color:
        var(--dp-cat-text) !important;
}


/* 展覧会・展示会 */

.dp-cat-exhibition {
    --dp-cat-bg: #F1B3B5;
    --dp-cat-text: #7A3034;
    --dp-cat-accent: #A64E53;
}


/* 展示販売会 */

.dp-cat-sale {
    --dp-cat-bg: #BBDFA4;
    --dp-cat-text: #3F682D;
    --dp-cat-accent: #68984E;
}


/* 教室・ワークショップ */

.dp-cat-workshop {
    --dp-cat-bg: #C7E4D7;
    --dp-cat-text: #2E5C4A;
    --dp-cat-accent: #5E927A;
}


/* イベント */

.dp-cat-event {
    --dp-cat-bg: #A8BEEA;
    --dp-cat-text: #314E82;
    --dp-cat-accent: #5B79B2;
}


/* 定休日 */

.dp-cat-holiday {
    --dp-cat-bg: #C5C6C8;
    --dp-cat-text: #4D4E50;
    --dp-cat-accent: #7D7F82;
}


/* その他 */

.dp-cat-other {
    --dp-cat-bg: #F6E383;
    --dp-cat-text: #6D5C12;
    --dp-cat-accent: #B39A2E;
}


/* =========================================================
 * No results
 * ========================================================= */

.tribe-events-view--month
.tribe-events-header__messages {
    display: none !important;
}


/* =========================================================
 * Weekend colors
 * ========================================================= */

/* Saturday */

.tribe-events-view--month
.tribe-events-calendar-month__header-column:nth-child(6)
.tribe-events-calendar-month__header-column-title,

.tribe-events-view--month
.tribe-events-calendar-month__header-column:nth-child(6)
.tribe-events-calendar-month__header-column-title-desktop {
    color: #2271b1 !important;
}


/* Sunday */

.tribe-events-view--month
.tribe-events-calendar-month__header-column:nth-child(7)
.tribe-events-calendar-month__header-column-title,

.tribe-events-view--month
.tribe-events-calendar-month__header-column:nth-child(7)
.tribe-events-calendar-month__header-column-title-desktop {
    color: #d63638 !important;
}


/* Saturday dates */

.tribe-events-view--month
.tribe-events-calendar-month__week
> .tribe-events-calendar-month__day:nth-child(6)
.tribe-events-calendar-month__day-date-daynum,

.tribe-events-view--month
.tribe-events-calendar-month__week
> .tribe-events-calendar-month__day:nth-child(6)
.tribe-events-calendar-month__day-date-link {
    color: #2271b1 !important;
}


/* Sunday dates */

.tribe-events-view--month
.tribe-events-calendar-month__week
> .tribe-events-calendar-month__day:nth-child(7)
.tribe-events-calendar-month__day-date-daynum,

.tribe-events-view--month
.tribe-events-calendar-month__week
> .tribe-events-calendar-month__day:nth-child(7)
.tribe-events-calendar-month__day-date-link {
    color: #d63638 !important;
}


/* =========================================================
 * Tooltip
 * ========================================================= */

.tooltipster-base.tribe-events-tooltip-theme.tribe-events::before,
.tooltipster-base.tribe-events-tooltip-theme.tribe-events::after {
    content: none !important;
    display: none !important;
}


/* =========================================================
 * SINGLE EVENT PAGE
 * ========================================================= */

/*
 * .single-tribe_events には依存しません。
 * 独自テンプレートの .dp-single-event を直接指定します。
 */

.dp-single-event {
    width: 100%;
    max-width: 900px;

    margin: 42px auto 55px;

    color: #222;

    font-family:
        "Yu Gothic",
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        Meiryo,
        sans-serif;

    font-size: 14px;
    line-height: 1.8;
}

.dp-single-event__inner {
    width: min(820px, calc(100% - 40px));
    margin: 0 auto;
}


/* =========================================================
 * Back to calendar
 * ========================================================= */

.dp-single-event__back {
    margin: 0 0 18px !important;

    text-align: left;
}

.dp-single-event__back a {
    display: inline-flex;

    align-items: center;

    min-height: 34px;

    padding: 0 5px;

    color: #555 !important;

    font-size: 13px !important;
    font-weight: 500;

    text-decoration: none !important;
}

.dp-single-event__back a:hover {
    color: #8b0000 !important;
}


/* =========================================================
 * Main event card
 * ========================================================= */

.dp-single-event__header {
    margin: 0 0 36px !important;

    padding: 38px 42px 34px;

    box-sizing: border-box;

    border: 1px solid #d7d7d7;
    border-top: 4px solid #555;

    background: #fff;

    text-align: center;
}


/* =========================================================
 * Category
 * ========================================================= */

.dp-single-event__categories {
    display: flex;

    justify-content: center;
    align-items: center;

    flex-wrap: wrap;

    gap: 8px;

    margin: 0 0 20px !important;
}

.dp-single-event__category {
    display: inline-flex;

    align-items: center;

    padding: 6px 13px;

    box-sizing: border-box;

    border-left:
        3px solid
        var(--dp-cat-accent);

    background:
        var(--dp-cat-bg);

    color:
        var(--dp-cat-text) !important;

    font-size: 12px !important;
    font-weight: 600;

    line-height: 1.4;

    letter-spacing: 0.03em;
}


/* =========================================================
 * Event title
 * ========================================================= */

.dp-single-event__title {
    max-width: 720px;

    margin:
        0 auto
        28px !important;

    padding: 0 !important;

    border: 0 !important;

    color: #222 !important;

    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "Hiragino Mincho Pro",
        "MS PMincho",
        serif !important;

    font-size: 31px !important;
    font-weight: 600 !important;

    line-height: 1.5 !important;

    letter-spacing: 0.04em;

    text-align: center !important;
}


/* =========================================================
 * Date / time
 * ========================================================= */

.dp-single-event__datetime {
    display: flex;

    align-items: center;
    justify-content: center;

    gap: 18px;

    width: min(580px, 100%);

    margin: 0 auto !important;

    padding: 16px 22px;

    box-sizing: border-box;

    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;

    background: #fafafa;
}

.dp-single-event__datetime-label {
    flex: 0 0 auto;

    color: #777 !important;

    font-size: 12px !important;
    font-weight: 600;

    letter-spacing: 0.05em;
}

.dp-single-event__datetime-value {
    color: #222 !important;

    font-size: 15px !important;
    font-weight: 600;

    line-height: 1.6;
}


/* =========================================================
 * Event description
 * ========================================================= */

.dp-single-event__content {
    width: min(720px, 100%);

    margin:
        0 auto
        38px !important;

    padding: 28px 32px;

    box-sizing: border-box;

    border: 1px solid #ddd;

    background: #fff;
}

.dp-single-event__section-title {
    margin:
        0 0 22px !important;

    padding:
        0 0 11px !important;

    border: 0 !important;
    border-bottom: 1px solid #ccc !important;

    color: #333 !important;

    font-family:
        "Yu Gothic",
        "Hiragino Kaku Gothic ProN",
        Meiryo,
        sans-serif !important;

    font-size: 17px !important;
    font-weight: 600 !important;

    line-height: 1.5 !important;

    text-align: left !important;
}

.dp-single-event__description {
    color: #333 !important;

    font-size: 15px !important;
    line-height: 1.9 !important;

    text-align: left;
}

.dp-single-event__description p {
    margin:
        0 0 1.4em !important;
}

.dp-single-event__description p:last-child {
    margin-bottom: 0 !important;
}


/* =========================================================
 * Related URL
 * Only output by PHP when URL exists
 * ========================================================= */

.dp-single-event__related {
    width: min(720px, 100%);

    margin:
        0 auto
        38px !important;

    padding: 26px 32px 30px;

    box-sizing: border-box;

    border: 1px solid #ddd;

    background: #fff;
}

.dp-single-event__website-button {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    min-width: 210px;
    min-height: 44px;

    padding: 9px 22px;

    box-sizing: border-box;

    border: 1px solid #555;

    background: #fff;

    color: #333 !important;

    font-size: 13px !important;
    font-weight: 600;

    line-height: 1.5;

    text-decoration: none !important;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.dp-single-event__website-button:hover {
    background: #333;

    color: #fff !important;
}

.dp-single-event__website-icon {
    font-size: 15px;
    line-height: 1;
}


/* =========================================================
 * Previous / next event
 * ========================================================= */

.dp-single-event__navigation {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);

    gap: 22px;

    width: min(720px, 100%);

    margin:
        42px auto
        0 !important;

    padding:
        28px 0
        0;

    border-top:
        1px solid #ccc;
}

.dp-single-event__navigation-previous,
.dp-single-event__navigation-next {
    min-width: 0;
}

.dp-single-event__navigation a {
    display: flex;

    flex-direction: column;

    gap: 7px;

    min-height: 76px;

    padding: 15px 18px;

    box-sizing: border-box;

    border: 1px solid #ddd;

    background: #fafafa;

    color: #555 !important;

    text-decoration: none !important;

    transition:
        border-color 0.2s ease,
        background 0.2s ease;
}

.dp-single-event__navigation a:hover {
    border-color: #999;

    background: #fff;
}

.dp-single-event__navigation a span {
    color: #888 !important;

    font-size: 11px !important;
    font-weight: normal;

    line-height: 1.4;
}

.dp-single-event__navigation a strong {
    display: block;

    color: #333 !important;

    font-size: 13px !important;
    font-weight: 600;

    line-height: 1.6;
}

.dp-single-event__navigation a:hover strong {
    color: #8b0000 !important;
}

.dp-single-event__navigation-next {
    text-align: right;
}

.dp-single-event__navigation-next a {
    align-items: flex-end;
}


/* =========================================================
 * Mobile calendar
 * ========================================================= */

@media screen and (max-width: 768px) {

    .tribe-events-view--month
    .tribe-events-calendar-month__calendar-event-title,

    .tribe-events-view--month
    .tribe-events-calendar-month__calendar-event-title-link,

    .tribe-events-view--month
    .tribe-events-calendar-month__multiday-event-bar-title {
        font-size: 13px !important;
    }

    .tribe-events-view--month
    .tribe-events-calendar-month__calendar-event-datetime {
        font-size: 12px !important;
    }


    /* Single event */

    .dp-single-event {
        margin:
            25px auto
            40px;
    }

    .dp-single-event__inner {
        width:
            calc(100% - 24px);
    }

    .dp-single-event__back {
        margin-bottom:
            14px !important;
    }

    .dp-single-event__header {
        margin-bottom:
            26px !important;

        padding:
            28px 18px
            24px;
    }

    .dp-single-event__categories {
        margin-bottom:
            16px !important;
    }

    .dp-single-event__title {
        margin-bottom:
            22px !important;

        font-size:
            23px !important;

        line-height:
            1.5 !important;
    }

    .dp-single-event__datetime {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap: 5px;

        padding:
            13px 15px;

        text-align: left;
    }

    .dp-single-event__datetime-value {
        font-size:
            14px !important;
    }

    .dp-single-event__content,
    .dp-single-event__related {
        padding:
            22px 18px;

        margin-bottom:
            26px !important;
    }

    .dp-single-event__section-title {
        font-size:
            16px !important;
    }

    .dp-single-event__description {
        font-size:
            14px !important;
    }

    .dp-single-event__website-button {
        width: 100%;
    }

    .dp-single-event__navigation {
        grid-template-columns:
            1fr;

        gap: 12px;

        margin-top:
            30px !important;

        padding-top:
            22px;
    }

    .dp-single-event__navigation-next {
        text-align: left;
    }

    .dp-single-event__navigation-next a {
        align-items:
            flex-start;
    }
}
/* =========================================================
 * Single event - URL
 * Plain left-aligned link
 * ========================================================= */

.dp-single-event__related {
    text-align: left !important;
}

.dp-single-event__related .dp-single-event__website-button {
    display: inline !important;

    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    background: transparent !important;

    color: #2271b1 !important;

    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.7 !important;

    text-align: left !important;
    text-decoration: underline !important;

    word-break: break-all;
}

.dp-single-event__related .dp-single-event__website-button:hover {
    background: transparent !important;
    color: #135e96 !important;
    text-decoration: none !important;
}