/* =====================================================================
   NTL Arrangementer – liste + månedskalender
   Flate, bold farger. Ingen gradienter. WCAG 2.1 AA-kontrast.
   ===================================================================== */

.ntl-arr,
.ntl-kal {
	--belg: #F04E37;
	--belg-mork: #A8321C; /* rød for liten tekst på lyse flater (≥4.5:1) */
	--sort: #000;
	--blatime: #B0AAD4;
	--hvit: #fff;
	font-family: "Figtree", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* --- Filterknapper ---------------------------------------------------- */
.ntl-arr-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.ntl-arr-filter a {
	text-decoration: none; font-weight: 700; font-size: .9rem;
	padding: .45rem 1.1rem; border-radius: 999px;
	border: 2px solid var(--sort); color: var(--sort); background: transparent;
}
.ntl-arr-filter a.aktiv,
.ntl-arr-filter a:hover {
	background: var(--belg-mork); border-color: var(--belg-mork); color: var(--hvit);
}

/* --- Liste ------------------------------------------------------------ */
.ntl-arr-rad {
	display: grid; grid-template-columns: 96px 1fr auto; gap: 1.6rem;
	align-items: center; padding: 1.5rem 0; border-bottom: 1px solid rgba(0,0,0,.12);
}
.ntl-arr-dato {
	background: var(--belg); color: var(--sort); /* sort tekst på belg = 5.9:1 */
	text-align: center; padding: .6rem .2rem; border-radius: 6px;
}
.ntl-arr-dato .d { display: block; font-size: 1.7rem; font-weight: 800; line-height: 1; }
.ntl-arr-dato .m { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.ntl-arr-type {
	display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .12em;
	text-transform: uppercase; color: var(--belg-mork); margin-bottom: .25rem;
}
.ntl-arr-tekst h3 { font-size: 1.3rem; font-weight: 800; margin: 0 0 .2rem; line-height: 1.05; letter-spacing: -0.01em; }
.ntl-arr-tekst h3 a { color: var(--sort); text-decoration: none; }
.ntl-arr-tekst h3 a:hover { color: var(--belg-mork); text-decoration: underline; text-underline-offset: .2em; }
.ntl-arr-meta { font-family: "Source Serif 4", Georgia, serif; font-size: .95rem; color: #3a3a3a; }
.ntl-arr-les { font-weight: 700; text-decoration: none; white-space: nowrap; color: var(--sort); }
.ntl-arr-les:hover { text-decoration: underline; text-underline-offset: .2em; }
.ntl-arr-dato-lenke { display: block; text-decoration: none; color: inherit; border-radius: 6px; transition: filter .15s ease; }
.ntl-arr-dato-lenke:hover .ntl-arr-dato { filter: brightness(.92); }
.ntl-arr-tom { font-family: "Source Serif 4", Georgia, serif; font-size: 1.1rem; }

/* --- Månedskalender --------------------------------------------------- */
.ntl-kal-topp { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.ntl-kal-tittel { font-size: 1.5rem; font-weight: 800; }
.ntl-kal-nav {
	text-decoration: none; font-weight: 800; font-size: 1.2rem;
	width: 2.4rem; height: 2.4rem; display: inline-flex; align-items: center; justify-content: center;
	border: 2px solid var(--sort); border-radius: 999px; color: var(--sort);
}
.ntl-kal-nav:hover { background: var(--belg-mork); border-color: var(--belg-mork); color: var(--hvit); }
.ntl-kal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.ntl-kal-ukedag {
	text-transform: uppercase; font-size: .72rem; font-weight: 800; letter-spacing: .06em;
	color: #555; padding: .3rem .4rem;
}
.ntl-kal-celle {
	min-height: 84px; background: var(--hvit); border: 2px solid var(--sort);
	border-radius: 4px; padding: .35rem .45rem;
}
.ntl-kal-celle.tom { background: transparent; border: none; }
.ntl-kal-celle.har-arr { background: var(--blatime); }
.ntl-kal-celle.i-dag { outline: 3px solid var(--belg-mork); outline-offset: -3px; }
.ntl-kal-num { font-weight: 800; font-size: .95rem; color: var(--sort); }
.ntl-kal-arr {
	display: block; margin-top: .25rem; font-size: .74rem; font-weight: 700; line-height: 1.15;
	text-decoration: none; background: var(--belg-mork); color: var(--hvit);
	border-radius: 3px; padding: .15rem .3rem;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ntl-kal-arr:hover { background: var(--sort); }

/* --- Tastaturfokus (WCAG 2.4.7) -------------------------------------- */
.ntl-arr a:focus-visible,
.ntl-kal a:focus-visible {
	outline: 3px solid var(--hvit); outline-offset: 2px; box-shadow: 0 0 0 6px var(--sort);
}

/* --- Mobil ------------------------------------------------------------ */
@media (max-width: 680px) {
	.ntl-arr-rad { grid-template-columns: 72px 1fr; gap: 1rem; }
	.ntl-arr-les { grid-column: 2; justify-self: start; }
	.ntl-kal-celle { min-height: 56px; }
	.ntl-kal-arr { font-size: 0; padding: .25rem; }
	.ntl-kal-arr::before { content: "•"; font-size: .9rem; }
}
