.cmsch-schedule,
.cmsch-full-program{
    width:100%;
    font-family:inherit;
    color:inherit;
}

.cmsch-section{margin:0 0 42px}
.cmsch-section h3,
.cmsch-month h2{
    margin:0 0 18px;
    font-family:inherit;
    font-weight:600;
    line-height:1.15;
    color:inherit;
}
.cmsch-section h3{font-size:30px}
.cmsch-month{margin:0 0 54px}
.cmsch-month h2{
    font-size:34px;
    padding-bottom:16px;
    border-bottom:1px solid rgba(40,60,85,.20);
}

/* Soft cards */
.cmsch-events{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.cmsch-event-card{
    background:rgba(255,255,255,.96);
    border:1px solid rgba(40,60,85,.15);
    border-radius:5px;
    box-shadow:0 2px 8px rgba(30,45,60,.045);
    padding:16px 18px;
    transition:box-shadow .15s ease, transform .15s ease, background-color .15s ease;
}
.cmsch-event-card:hover{
    box-shadow:0 4px 14px rgba(30,45,60,.075);
}
.cmsch-event-content{
    display:grid;
    grid-template-columns:92px 1fr;
    column-gap:26px;
    align-items:start;
}
.cmsch-event-time{
    font-size:18px;
    font-weight:600;
    line-height:1.35;
    white-space:nowrap;
}
.cmsch-event-details{min-width:0}
.cmsch-event-name{
    font-size:18px;
    line-height:1.35;
}
.cmsch-event-priest{
    margin-top:4px;
    font-size:15px;
    line-height:1.3;
    opacity:.68;
}
.cmsch-note{
    font-size:14px;
    font-weight:400;
    margin-left:4px;
    opacity:.78;
}
.cmsch-event-date{
    display:flex;
    align-items:baseline;
    gap:10px;
    margin:0 0 11px;
    padding-bottom:8px;
    border-bottom:1px solid rgba(40,60,85,.10);
    font-size:18px;
    font-weight:600;
}
.cmsch-event-date .cmsch-day{
    font-size:15px;
    font-weight:400;
    opacity:.62;
}

/* Date headings in full programme */
.cmsch-upcoming-date{
    display:flex;
    align-items:baseline;
    gap:10px;
    padding:20px 4px 5px;
    font-size:18px;
    font-weight:600;
}
.cmsch-upcoming-date .cmsch-day{
    font-size:15px;
    font-weight:400;
    opacity:.62;
}
.cmsch-month .cmsch-upcoming-date:first-child{padding-top:8px}

/* Sundays: slightly warmer visual weight without becoming loud */
.cmsch-sunday{
    background:rgba(40,60,85,.045);
    border-color:rgba(40,60,85,.20);
}
.cmsch-sunday .cmsch-event-time,
.cmsch-sunday .cmsch-event-name{font-weight:600}
.cmsch-upcoming-sunday{
    font-weight:700;
    background:rgba(40,60,85,.035);
}
.cmsch-upcoming-sunday .cmsch-day{
    font-weight:600;
    opacity:.78;
}

/* Calendar */
.cmsch-calendar{
    margin-top:9px;
    font-size:14px;
}
.cmsch-calendar details{display:inline-block}
.cmsch-calendar summary{
    cursor:pointer;
    list-style:none;
    display:inline-block;
    color:inherit;
    opacity:.70;
    transition:opacity .15s ease;
}
.cmsch-calendar summary::-webkit-details-marker{display:none}
.cmsch-calendar summary:hover{opacity:1}
.cmsch-calendar-links{
    display:flex;
    flex-wrap:wrap;
    gap:5px 14px;
    padding-top:7px;
}
.cmsch-calendar-links a{
    color:inherit;
    text-decoration:underline;
    text-underline-offset:3px;
    opacity:.72;
}
.cmsch-calendar-links a:hover{opacity:1}

/* Cancelled */
.cmsch-cancelled{
    opacity:.62;
}
.cmsch-cancelled .cmsch-event-name{font-weight:600}
.cmsch-empty{
    margin:0;
    padding:14px 0;
    opacity:.75;
}

@media(max-width:600px){
    .cmsch-section{margin-bottom:34px}
    .cmsch-section h3{font-size:26px}
    .cmsch-month h2{font-size:29px}
    .cmsch-event-card{padding:14px}
    .cmsch-event-content{
        grid-template-columns:68px 1fr;
        column-gap:15px;
    }
    .cmsch-event-time,
    .cmsch-event-name{font-size:16px}
    .cmsch-event-priest{font-size:14px}
    .cmsch-event-date{font-size:16px}
    .cmsch-event-date .cmsch-day,
    .cmsch-upcoming-date .cmsch-day{font-size:14px}
    .cmsch-upcoming-date{font-size:16px}
    .cmsch-calendar-links{gap:5px 10px}
}


/* ---------------------------------------------------------
   Homepage / short schedule only
   Compact layout for I dag / I morgen / Kommende.
   Full Messeprogram is intentionally unchanged.
--------------------------------------------------------- */
.cmsch-schedule{
    max-width:100%;
}

.cmsch-schedule .cmsch-section{
    margin:0 0 22px;
}

.cmsch-schedule .cmsch-section h3{
    font-size:24px;
    margin:0 0 9px;
    padding:0;
    line-height:1.15;
}

.cmsch-schedule .cmsch-events{
    gap:6px;
}

.cmsch-schedule .cmsch-event-card{
    padding:10px 13px;
    border-radius:4px;
    box-shadow:0 1px 5px rgba(30,45,60,.035);
}

.cmsch-schedule .cmsch-event-content{
    grid-template-columns:70px minmax(0,1fr) auto;
    column-gap:16px;
    align-items:center;
}

.cmsch-schedule .cmsch-event-time{
    font-size:16px;
}

.cmsch-schedule .cmsch-event-name{
    font-size:16px;
}

.cmsch-schedule .cmsch-event-priest{
    margin-top:2px;
    font-size:13px;
}

.cmsch-schedule .cmsch-note{
    font-size:12px;
}

.cmsch-schedule .cmsch-calendar{
    font-size:12px;
}

.cmsch-schedule .cmsch-calendar summary{
    padding:4px 8px;
    font-size:12px;
}

.cmsch-schedule .cmsch-calendar-links{
    gap:4px 10px;
    padding-top:5px;
}

.cmsch-schedule .cmsch-upcoming-date{
    padding:8px 5px 3px;
    font-size:15px;
}

.cmsch-schedule .cmsch-upcoming-date .cmsch-day{
    font-size:13px;
}

.cmsch-schedule .cmsch-upcoming-sunday{
    border-radius:4px;
    padding-left:8px;
    padding-right:8px;
}

@media(max-width:600px){
    .cmsch-schedule .cmsch-section{
        margin-bottom:18px;
    }

    .cmsch-schedule .cmsch-section h3{
        font-size:22px;
        margin-bottom:7px;
    }

    .cmsch-schedule .cmsch-event-card{
        padding:9px 10px;
    }

    .cmsch-schedule .cmsch-event-content{
        grid-template-columns:58px minmax(0,1fr);
        column-gap:12px;
    }

    .cmsch-schedule .cmsch-calendar{
        grid-column:2;
        grid-row:2;
        justify-self:start;
        margin-top:5px;
    }
}


/* v1.4.2 compact homepage refinement */
.cmsch-schedule .cmsch-section{
    margin-bottom:14px;
}

.cmsch-schedule .cmsch-section h3{
    font-size:20px;
    margin-bottom:5px;
}

.cmsch-schedule .cmsch-events{
    gap:4px;
}

.cmsch-schedule .cmsch-event-card{
    padding:7px 10px;
    border-radius:3px;
    box-shadow:0 1px 3px rgba(30,45,60,.025);
}

.cmsch-schedule .cmsch-event-content{
    grid-template-columns:62px minmax(0,1fr) auto;
    column-gap:12px;
}

.cmsch-schedule .cmsch-event-time{
    font-size:15px;
}

.cmsch-schedule .cmsch-event-name{
    font-size:15px;
}

.cmsch-schedule .cmsch-event-priest{
    margin-top:1px;
    font-size:12px;
}

.cmsch-schedule .cmsch-calendar{
    font-size:11px;
}

.cmsch-schedule .cmsch-calendar summary{
    padding:3px 6px;
    font-size:11px;
}

.cmsch-schedule .cmsch-upcoming-date{
    padding:5px 4px 2px;
    font-size:14px;
}

.cmsch-schedule .cmsch-upcoming-date .cmsch-day{
    font-size:12px;
}

@media(max-width:600px){
    .cmsch-schedule .cmsch-section{
        margin-bottom:12px;
    }

    .cmsch-schedule .cmsch-section h3{
        font-size:20px;
        margin-bottom:5px;
    }

    .cmsch-schedule .cmsch-event-card{
        padding:7px 8px;
    }

    .cmsch-schedule .cmsch-event-content{
        grid-template-columns:54px minmax(0,1fr);
        column-gap:10px;
    }
}
