/* NOIO_EVENTS_CALENDAR_V7_20260917
   Manufacturer-like calendar structure, NOIO dark visual language.
*/

/* Events intro must stay INSIDE the same visual frame as the rest of NOIO. */
.noio-events-intro{
	width:min(calc(100% - 48px),1536px)!important;
	max-width:1536px!important;
	margin:0 auto!important;
}
.noio-events-intro .noio-section-nav-wrap{
	width:100%!important;
	max-width:none!important;
	margin:0!important;
}

/* Neutralize the old plugin view; V7 is custom markup generated from TEC data. */
.noio-custom-calendar{
	box-sizing:border-box;
	width:min(calc(100% - 120px),1320px);
	margin:36px auto 78px;
	color:#f5f9fb;
	font-family:inherit;
}

/* SEARCH BAR — structure deliberately follows TEC's clean manufacturer example. */
.noio-cal-search{
	display:grid;
	grid-template-columns:minmax(260px,1fr) auto auto;
	align-items:stretch;
	min-height:72px;
	margin-bottom:28px;
	border:1px solid #23485c;
	border-radius:12px;
	background:#0a1b27;
	box-shadow:0 14px 38px rgba(0,0,0,.16);
	overflow:hidden;
}
.noio-cal-search-field{
	display:flex;
	align-items:center;
	gap:12px;
	min-width:0;
	padding:0 22px;
}
.noio-cal-search-icon{
	color:#67a9bc;
	font-size:1.55rem;
	line-height:1;
}
.noio-cal-search input{
	width:100%;
	min-width:0;
	height:100%;
	padding:0;
	color:#eef7fa;
	font:inherit;
	font-size:1rem;
	border:0!important;
	outline:0!important;
	background:transparent!important;
	box-shadow:none!important;
}
.noio-cal-search input::placeholder{color:#76909e}
.noio-cal-search button{
	margin:10px 0;
	padding:0 24px;
	border:0;
	border-radius:8px;
	background:#23deed;
	color:#03151d;
	font:inherit;
	font-weight:850;
	cursor:pointer;
}
.noio-cal-search button:hover{background:#58edf6}
.noio-cal-view-label{
	display:flex;
	align-items:center;
	gap:10px;
	margin-left:14px;
	padding:0 24px;
	border-left:1px solid #244659;
	color:#ecf5f8;
	font-weight:750;
	white-space:nowrap;
}

/* MONTH NAV — arrows, Heute button, big month title. */
.noio-cal-toolbar{
	display:flex;
	align-items:center;
	gap:20px;
	margin:0 0 22px;
}
.noio-cal-navgroup{
	display:flex;
	align-items:center;
	gap:7px;
}
.noio-cal-arrow{
	display:grid;
	place-items:center;
	width:36px;
	height:36px;
	color:#91a9b6;
	font-size:2rem;
	line-height:1;
	text-decoration:none;
	border-radius:7px;
}
.noio-cal-arrow:hover{color:#22e4f1;background:#0d2532}
.noio-cal-today{
	display:inline-flex;
	align-items:center;
	height:36px;
	margin-left:4px;
	padding:0 14px;
	border:1px solid #31576a;
	border-radius:7px;
	color:#dcebf0;
	font-weight:700;
	text-decoration:none;
	background:#0a1a25;
}
.noio-cal-today:hover{border-color:#27ddea;color:#27e1ee}
.noio-cal-toolbar h2{
	margin:0;
	color:#f7fbfc;
	font-size:clamp(1.75rem,2.3vw,2.6rem);
	font-weight:800;
	letter-spacing:-.025em;
}

/* CALENDAR */
.noio-cal-scroll{
	overflow:visible;
}
.noio-cal-grid{
	position:relative;
	display:grid;
	grid-template-columns:repeat(7,minmax(0,1fr));
	border:1px solid #2b5267;
	border-radius:12px;
	background:#091923;
	box-shadow:0 16px 40px rgba(0,0,0,.16);
	overflow:visible;
}
.noio-cal-weekday{
	padding:15px 12px;
	color:#86a8b7;
	font-size:.76rem;
	font-weight:850;
	letter-spacing:.09em;
	text-transform:uppercase;
	border-bottom:1px solid #2b5267;
	background:#0c2230;
}
.noio-cal-weekday:not(:nth-child(7)){border-right:1px solid #203f51}
.noio-cal-weekday .mobile{display:none}

.noio-cal-day{
	position:relative;
	box-sizing:border-box;
	min-height:156px;
	padding:12px 10px 10px;
	background:#091a25;
	border-right:1px solid #294d61;
	border-bottom:1px solid #294d61;
}
.noio-cal-day:nth-child(7n + 14){border-right:0}
/* Every 7th actual day cell: weekdays take first 7 grid positions. */
.noio-cal-grid > .noio-cal-day:nth-child(7n){border-right:1px solid #294d61}
.noio-cal-grid > .noio-cal-day:nth-child(7n + 7){border-right:0}

.noio-cal-day.is-outside{background:#07141d}
.noio-cal-day.is-outside .noio-cal-daynum{color:#415d6b}
.noio-cal-day.is-today{
	background:
		linear-gradient(180deg,rgba(31,226,239,.08),transparent 48%),
		#0a1d28;
	box-shadow:inset 0 0 0 1px rgba(31,226,239,.55);
}
.noio-cal-daynum{
	margin-bottom:9px;
	color:#e2edf1;
	font-size:1.1rem;
	font-weight:850;
}
.noio-cal-day.is-today .noio-cal-daynum{
	display:inline-grid;
	place-items:center;
	min-width:30px;
	height:30px;
	padding:0 7px;
	margin-top:-3px;
	border-radius:50px;
	color:#03151d;
	background:#24deed;
}

/* EVENT ENTRIES */
.noio-cal-events{position:relative}
.noio-cal-event{
	position:relative;
	margin:0 0 7px;
}
.noio-cal-event-link{
	display:block;
	padding:6px 7px 7px 9px;
	color:#eff8fa;
	text-decoration:none;
	border-left:2px solid #22ddea;
	border-radius:4px;
	background:rgba(31,222,236,.06);
}
.noio-cal-event-link:hover{
	background:rgba(31,222,236,.12);
}
.noio-cal-event-time{
	display:block;
	margin-bottom:2px;
	color:#7899a9;
	font-size:.68rem;
	font-weight:700;
}
.noio-cal-event-title{
	display:block;
	color:#eff8fa;
	font-size:.77rem;
	font-weight:750;
	line-height:1.28;
}
.noio-cal-event.is-overflow{display:none}
.noio-cal-day.is-expanded .noio-cal-event.is-overflow{display:block}
.noio-cal-more{
	padding:3px 6px;
	color:#22deeb;
	font:inherit;
	font-size:.73rem;
	font-weight:750;
	border:0;
	background:transparent;
	cursor:pointer;
}

/* HOVER CARD inspired by TEC example, but dark NOIO. */
.noio-cal-popover{
	position:absolute;
	z-index:200;
	left:calc(100% + 9px);
	top:-35px;
	display:none;
	width:300px;
	color:#eaf5f8;
	border:1px solid #31576a;
	border-radius:10px;
	background:#0d202c;
	box-shadow:0 18px 48px rgba(0,0,0,.45);
	overflow:hidden;
}
.noio-cal-event:hover .noio-cal-popover,
.noio-cal-event:focus-within .noio-cal-popover{
	display:block;
}
.noio-cal-popover img{
	display:block;
	width:100%;
	height:128px;
	object-fit:cover;
}
.noio-cal-popover-body{padding:14px 16px 16px}
.noio-cal-popover-date{
	margin-bottom:6px;
	color:#7da3b3;
	font-size:.72rem;
}
.noio-cal-popover strong{
	display:block;
	color:#fff;
	font-size:.96rem;
	line-height:1.3;
}
.noio-cal-popover-venue{
	display:block;
	margin-top:5px;
	color:#27deeb;
	font-size:.75rem;
}
.noio-cal-popover p{
	margin:9px 0 0;
	color:#b4c7d0;
	font-size:.78rem;
	line-height:1.45;
}

/* Avoid popover going off right edge in last columns. */
.noio-cal-day:nth-child(7n + 6) .noio-cal-popover,
.noio-cal-day:nth-child(7n + 7) .noio-cal-popover{
	left:auto;
	right:calc(100% + 9px);
}

.noio-cal-empty{
	margin-top:18px;
	padding:16px 18px;
	border:1px solid #26495c;
	border-radius:9px;
	color:#a9bdc7;
	background:#0b1d29;
}

@media(max-width:1100px){
	.noio-custom-calendar{width:calc(100% - 48px)}
	.noio-cal-day{min-height:140px}
	.noio-cal-event-title{font-size:.72rem}
}

@media(max-width:800px){
	.noio-events-intro{width:100%!important}
	.noio-custom-calendar{width:calc(100% - 24px);margin-top:22px}
	.noio-cal-search{
		grid-template-columns:1fr auto;
		min-height:auto;
	}
	.noio-cal-search-field{min-height:58px}
	.noio-cal-search button{margin:8px;padding:0 14px}
	.noio-cal-view-label{display:none}
	.noio-cal-toolbar{gap:10px}
	.noio-cal-toolbar h2{font-size:1.55rem}
	.noio-cal-scroll{
		overflow-x:auto;
		padding-bottom:8px;
	}
	.noio-cal-grid{
		min-width:760px;
	}
	.noio-cal-weekday .desktop{display:none}
	.noio-cal-weekday .mobile{display:inline}
	.noio-cal-day{min-height:132px}
	.noio-cal-popover{display:none!important}
}
