
.npc-calendar-root{
	--npc-border:#dfe4ea;
	--npc-text:#18212b;
	--npc-muted:#647184;
	font-family:inherit;
	color:var(--npc-text);
	box-sizing:border-box;
}
.npc-calendar-root *,
.npc-calendar-root *::before,
.npc-calendar-root *::after{box-sizing:border-box}
.npc-month-wrap{
	width:100%;
	max-width:1440px;
	margin:0 auto;
	padding:22px;
	background:#fff;
	border:1px solid var(--npc-border);
	border-radius:16px;
	box-shadow:0 12px 36px rgba(16,24,40,.08);
}
.npc-month-header{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:18px;
	margin-bottom:18px;
}
.npc-month-header h2{
	margin:3px 0 0;
	font-size:clamp(1.65rem,3vw,2.35rem);
	line-height:1.1;
}
.npc-kicker{
	display:block;
	color:var(--npc-accent,#148a91);
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.11em;
	text-transform:uppercase;
}
.npc-month-nav{
	display:flex;
	align-items:center;
	gap:7px;
}
.npc-month-nav a{
	display:inline-flex;
	min-width:40px;
	min-height:40px;
	align-items:center;
	justify-content:center;
	padding:8px 12px;
	border:1px solid var(--npc-border);
	border-radius:8px;
	background:#fff;
	color:var(--npc-text);
	text-decoration:none;
	font-weight:700;
}
.npc-month-nav a:hover{
	border-color:var(--npc-accent,#148a91);
	color:var(--npc-accent,#148a91);
}
.npc-month-nav .npc-month-today{
	background:var(--npc-accent,#148a91);
	border-color:var(--npc-accent,#148a91);
	color:#fff;
}
.npc-month-grid{
	display:grid;
	grid-template-columns:repeat(7,minmax(0,1fr));
	border-top:1px solid var(--npc-border);
	border-left:1px solid var(--npc-border);
	border-radius:10px;
	overflow:hidden;
	background:#fff;
}
.npc-weekday{
	padding:11px 8px;
	background:var(--npc-panel,#173c56);
	border-right:1px solid rgba(255,255,255,.12);
	color:#fff;
	text-align:center;
	font-size:.78rem;
	font-weight:800;
	letter-spacing:.04em;
	text-transform:uppercase;
}
.npc-day{
	min-width:0;
	min-height:128px;
	padding:9px;
	border-right:1px solid var(--npc-border);
	border-bottom:1px solid var(--npc-border);
	background:#fff;
}
.npc-day--blank{background:#f5f7f9}
.npc-day.is-today{
	background:#fffbed;
	box-shadow:inset 0 0 0 2px var(--npc-accent-2,#d1a72c);
}
.npc-day-number{
	display:flex;
	width:28px;
	height:28px;
	align-items:center;
	justify-content:center;
	margin-bottom:7px;
	border-radius:50%;
	font-size:.82rem;
	font-weight:800;
}
.npc-day.is-today .npc-day-number{
	background:var(--npc-accent-2,#d1a72c);
	color:#111;
}
.npc-day-events{display:grid;gap:5px}
.npc-mini-event{
	display:block;
	min-width:0;
	padding:5px 6px;
	border-left:3px solid var(--npc-accent,#148a91);
	border-radius:5px;
	background:color-mix(in srgb,var(--npc-accent,#148a91) 10%,#fff);
	color:var(--npc-text);
	text-decoration:none;
	overflow:hidden;
}
.npc-mini-event:hover{
	background:color-mix(in srgb,var(--npc-accent,#148a91) 17%,#fff);
}
.npc-mini-event time{
	display:block;
	color:var(--npc-muted);
	font-size:.62rem;
	line-height:1.2;
}
.npc-mini-event span{
	display:block;
	overflow:hidden;
	font-size:.72rem;
	font-weight:700;
	line-height:1.25;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.npc-mini-event--cancelled{
	border-left-color:#b42318;
	background:#fff0ef;
	text-decoration:line-through;
}
.npc-mini-event--postponed{
	border-left-color:#b7791f;
	background:#fff8e7;
}
.npc-more-events{
	display:block;
	color:var(--npc-muted);
	font-size:.7rem;
	font-weight:700;
}
.npc-month-mobile-list{display:none;margin-top:20px}
.npc-card-grid{
	display:grid;
	grid-template-columns:repeat(var(--npc-columns,3),minmax(0,1fr));
	gap:16px;
}
.npc-event-card{
	overflow:hidden;
	border:1px solid var(--npc-border);
	border-radius:12px;
	background:#fff;
	box-shadow:0 7px 20px rgba(16,24,40,.06);
}
.npc-event-card__image{
	display:block;
	min-height:170px;
	background-position:center;
	background-size:cover;
}
.npc-event-card__body{padding:16px}
.npc-event-card__top{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
}
.npc-event-card h3{margin:12px 0 7px;font-size:1.1rem}
.npc-event-card h3 a{color:inherit;text-decoration:none}
.npc-event-line{margin-top:4px;color:var(--npc-muted);font-size:.88rem}
.npc-date-badge{
	display:inline-flex;
	min-width:58px;
	flex-direction:column;
	align-items:center;
	overflow:hidden;
	border-radius:9px;
	background:var(--npc-panel,#173c56);
	color:#fff;
}
.npc-date-badge span{padding:4px 8px;font-size:.65rem;font-weight:800}
.npc-date-badge strong{
	width:100%;
	padding:5px 8px 7px;
	background:#fff;
	color:var(--npc-text);
	text-align:center;
	font-size:1.35rem;
}
.npc-status{
	display:inline-block;
	padding:4px 7px;
	border-radius:999px;
	background:#edf1f5;
	color:#344054;
	font-size:.65rem;
	font-weight:800;
	text-transform:uppercase;
}
.npc-button{
	display:inline-block;
	padding:9px 14px;
	border-radius:7px;
	background:var(--npc-accent,#148a91);
	color:#fff;
	text-decoration:none;
}
.npc-empty{
	padding:20px;
	border:1px dashed var(--npc-border);
	border-radius:10px;
	background:#f8fafb;
	color:var(--npc-muted);
}
.npc-coming-up{overflow:hidden}
.npc-coming-up__track{display:flex;transition:transform .35s ease}
.npc-coming-up__slide{min-width:100%}

@media(max-width:900px){
	.npc-month-wrap{padding:14px}
	.npc-day{min-height:105px;padding:6px}
	.npc-mini-event span{font-size:.66rem}
}
@media(max-width:700px){
	.npc-month-header{align-items:flex-start;flex-direction:column}
	.npc-month-grid{display:none}
	.npc-month-mobile-list{display:block}
	.npc-card-grid{grid-template-columns:1fr}
}
