.fsn-calendar{max-width:100%;margin:14px 0 28px;font-size:15px}.fsn-calendar *{box-sizing:border-box}.fsn-calendar__heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;padding:9px 0 13px;border-bottom:1px solid #ddd}.fsn-calendar__heading strong{font-size:17px}.fsn-calendar__heading span{color:#666;font-size:12px}.fsn-calendar__months{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.fsn-calendar__months a{border:1px solid #ddd;padding:6px 12px;border-radius:5px;text-decoration:none}.fsn-calendar__tabs{display:flex;gap:8px;overflow-x:auto;white-space:nowrap;padding:11px 0 13px;scrollbar-width:thin}.fsn-calendar__tabs a{flex:none;display:inline-block;padding:7px 12px;border:1px solid #ddd;border-radius:20px;color:inherit;font-size:13px;text-decoration:none}.fsn-calendar__tabs a.is-active{background:#333;color:white;border-color:#333}.fsn-calendar__item{display:flex;gap:12px;padding:13px 3px;border-bottom:1px solid #e5e5e5;align-items:flex-start}.fsn-calendar__when{flex:0 0 125px;display:flex;flex-direction:column;gap:6px}.fsn-calendar__when time{font-size:14px;font-weight:700;white-space:nowrap}.fsn-calendar__kind{font-size:12px;color:#555}.fsn-calendar__body{flex:1;min-width:0}.fsn-calendar__title{display:block;font-size:15px;font-weight:700;line-height:1.65;overflow-wrap:anywhere}.fsn-calendar__end,.fsn-calendar__place{font-size:12px;color:#626262;margin-top:3px}.fsn-calendar__source{font-size:12px;display:inline-block;margin-top:5px}.fsn-calendar__empty{padding:22px 4px;color:#666}.fsn-calendar__pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px 0}.fsn-calendar__pagination a{padding:7px 12px;border:1px solid #ddd;border-radius:5px;text-decoration:none}@media(max-width:520px){.fsn-calendar__item{gap:9px}.fsn-calendar__when{flex-basis:110px}.fsn-calendar__when time{font-size:12px}.fsn-calendar__title{font-size:14px}.fsn-calendar__heading strong{font-size:16px}}

/* 0.8.8: larger calendar thumbnails; preserve complete product/flyer images. */
.fsn-calendar__thumb {
    display:block;
    flex:0 0 var(--fsn-cal-thumb-pc, 140px);
    width:var(--fsn-cal-thumb-pc, 140px);
    height:var(--fsn-cal-thumb-pc, 140px);
    overflow:hidden;
    border-radius:5px;
    align-self:flex-start;
    text-decoration:none;
    background:#f4f6f8;
}
.fsn-calendar__thumb-img {
    display:block;
    width:100%;
    height:100%;
    object-fit:var(--fsn-cal-thumb-fit, contain);
    object-position:center;
    max-width:none;
    margin:0;
}
.fsn-calendar__item { gap:14px; }
@media (max-width:520px) {
    /* The date occupies a full row; image and article content share the next row. */
    .fsn-calendar__item {
        display:flex;
        flex-wrap:wrap;
        align-items:flex-start;
        gap:10px 12px;
    }
    .fsn-calendar__when {
        flex:0 0 100%;
        width:100%;
        display:flex;
        flex-direction:row;
        flex-wrap:wrap;
        align-items:baseline;
        gap:6px 12px;
    }
    .fsn-calendar__when time { font-size:13px; }
    .fsn-calendar__thumb {
        flex:0 0 min(var(--fsn-cal-thumb-mobile, 96px), 35vw);
        width:min(var(--fsn-cal-thumb-mobile, 96px), 35vw);
        height:min(var(--fsn-cal-thumb-mobile, 96px), 35vw);
    }
    .fsn-calendar__body {
        flex:1 1 0;
        min-width:0;
    }
}

/* v0.8.9: each calendar shortcode owns its image display settings. */
.fsn-calendar__thumb { max-width:35%; }
.fsn-calendar__body { min-width:0; }
