/* NCGK widgets. Colours and fonts are the Elementor Variables (--kleur-*, --font-*),
   declared with defaults by the theme. Shared buttons/headings come from the theme. */

.ncgk-empty { color: var(--kleur-grijze-tekst); font-style: italic; }

/* ---------- Next service ---------- */
.ncgk-service-card {
	display: inline-flex; flex-direction: column; gap: 2px;
	padding: 0.75rem 1rem;
	background: var(--kleur-wit);
	border-left: 4px solid var(--kleur-primair);
	border-radius: 3px;
	box-shadow: var(--ncgk-shadow-md);
}
.ncgk-service-card p { margin: 0; }
.ncgk-service-card__kicker { font-size: 0.875rem; font-weight: 600; color: var(--kleur-merktekst); }
.ncgk-service-card__time { font-family: var(--font-kop), serif; font-size: 1.25rem; font-weight: 600; color: var(--kleur-nachtblauw); }
.ncgk-service-card__where { font-size: 0.875rem; color: var(--kleur-grijze-tekst); }
.ncgk-service-card__link { margin-top: 0.25rem !important; font-size: 0.875rem; font-weight: 600; }
/* One-line version, meant for the home photo: light text. */
.ncgk-next-line { margin: 0; font-size: 1rem; color: rgba(255, 255, 255, 0.78); }
.ncgk-next-line strong { font-weight: 600; color: var(--kleur-wit); }

/* ---------- Agenda ---------- */
.ncgk-agenda { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; width: 100%; }
.ncgk-agenda__item {
	display: grid; grid-template-columns: 72px 1fr; align-items: center; gap: 1.25rem;
	padding: 1rem; background: var(--kleur-wit); border: 1px solid var(--kleur-lijn); border-radius: 4px;
}
.ncgk-agenda__date {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	aspect-ratio: 1; background: var(--kleur-primair); border-radius: 4px; color: var(--kleur-wit);
}
.ncgk-agenda__day { font-size: 1.563rem; font-weight: 700; line-height: 1; }
.ncgk-agenda__month { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; color: rgba(255, 255, 255, 0.78); }
.ncgk-agenda__title { margin: 0; font-size: 1.125rem; }
.ncgk-agenda__title a { color: var(--kleur-nachtblauw); text-decoration: none; }
.ncgk-agenda__title a:hover { color: var(--kleur-primair); text-decoration: underline; }
.ncgk-agenda__meta, .ncgk-agenda__summary { margin: 0; font-size: 0.875rem; }
.ncgk-agenda__meta { color: var(--kleur-merktekst); font-weight: 600; }
@media (max-width: 640px) { .ncgk-agenda__item { grid-template-columns: 60px 1fr; gap: 1rem; } }

/* ---------- Services archive ---------- */
.ncgk-service-list { margin: 0; padding: 0; list-style: none; width: 100%; }
.ncgk-service-row { display: grid; grid-template-columns: 140px 1fr auto; align-items: center; gap: 1.25rem; padding: 1rem 0; border-top: 1px solid var(--kleur-lijn); }
.ncgk-service-row:last-child { border-bottom: 1px solid var(--kleur-lijn); }
.ncgk-service-row p, .ncgk-service-row h3 { margin: 0; }
.ncgk-service-row__date { font-size: 1rem; font-weight: 600; color: var(--kleur-merktekst); }
.ncgk-service-row__title { font-size: 1.125rem; }
.ncgk-service-row__meta { font-size: 0.875rem; }
@media (max-width: 640px) { .ncgk-service-row { grid-template-columns: 1fr; gap: 0.25rem; } }

/* ---------- Cards (news) and room cards ---------- */
.ncgk-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; width: 100%; }
.ncgk-space-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; width: 100%; }
@media (max-width: 900px) { .ncgk-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ncgk-card-grid, .ncgk-space-grid { grid-template-columns: 1fr; } }

.ncgk-card, .ncgk-space-card {
	display: flex; flex-direction: column; height: 100%;
	background: var(--kleur-wit); border: 1px solid var(--kleur-lijn); border-radius: 4px;
	box-shadow: var(--ncgk-shadow-sm); overflow: hidden; transition: box-shadow 120ms, border-color 120ms;
}
.ncgk-card:hover, .ncgk-space-card:hover { box-shadow: var(--ncgk-shadow-md); border-color: var(--kleur-lijn-sterk); }
.ncgk-card__thumb, .ncgk-space-card__thumb { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.ncgk-card__thumb img, .ncgk-space-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.is-placeholder { background: linear-gradient(135deg, var(--kleur-lichtblauw), var(--kleur-blauw-accent)); }
.ncgk-space-card__thumb.is-placeholder { background: var(--kleur-lichtgrijs); }
.ncgk-card__body, .ncgk-space-card__body { flex: 1; display: flex; flex-direction: column; gap: 0.5rem; padding: 1.25rem 1.25rem 1.5rem; }
.ncgk-card__body p, .ncgk-card__body h3, .ncgk-space-card__body p, .ncgk-space-card__body h3 { margin: 0; }
.ncgk-card__date, .ncgk-space-card__meta { font-size: 0.875rem; font-weight: 600; color: var(--kleur-merktekst); }
.ncgk-card__title, .ncgk-space-card__title { font-size: 1.25rem; line-height: 1.4; }
.ncgk-card__title a, .ncgk-space-card__title a { color: var(--kleur-nachtblauw); text-decoration: none; }
.ncgk-card:hover .ncgk-card__title a, .ncgk-space-card:hover .ncgk-space-card__title a { color: var(--kleur-primair); text-decoration: underline; text-underline-offset: 3px; }
.ncgk-card__excerpt { font-size: 1rem; }
.ncgk-space-card__more { margin-top: auto !important; padding-top: 0.25rem; font-weight: 600; }

.ncgk-pager { display: flex; justify-content: space-between; margin-top: 2rem; font-weight: 600; }

/* ---------- Rates table ---------- */
.ncgk-table-wrap { width: 100%; overflow-x: auto; }
.ncgk-table { width: 100%; border-collapse: collapse; border: 1px solid var(--kleur-lijn); }
.ncgk-table th, .ncgk-table td { padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid var(--kleur-lijn); }
.ncgk-table thead th { background: var(--kleur-lichtgrijs); font-weight: 600; }
.ncgk-table tbody tr:nth-child(even) { background: var(--kleur-lichtgrijs); }
.ncgk-table tbody th { font-weight: 600; }

/* ---------- Video (click-to-play) ---------- */
.ncgk-video { margin: 0; width: 100%; }
.ncgk-video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: 4px; overflow: hidden; background: var(--kleur-primair-donker); box-shadow: var(--ncgk-shadow-md); }
.ncgk-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ncgk-video__play {
	position: absolute; inset: 0; width: 100%;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem;
	padding: 1.5rem; border: 0; background: transparent; color: var(--kleur-wit); text-align: center; cursor: pointer; font: inherit;
}
.ncgk-video__play:hover, .ncgk-video__play:focus-visible { background: var(--kleur-nachtblauw); color: var(--kleur-wit); }
.ncgk-video__icon { width: 64px; height: 64px; display: grid; place-items: center; padding-left: 4px; border-radius: 50%; background: var(--kleur-wit); color: var(--kleur-nachtblauw); font-size: 1.25rem; }
.ncgk-video__label { font-weight: 600; }
.ncgk-video__hint { font-size: 0.875rem; color: rgba(255, 255, 255, 0.78); }
.ncgk-video figcaption { margin-top: 0.5rem; font-size: 0.875rem; color: var(--kleur-grijze-tekst); }

/* ---------- Contact form ---------- */
.ncgk-form { display: grid; gap: 1rem; max-width: 560px; }
.ncgk-form p { margin: 0; }
.ncgk-form label { display: block; margin-bottom: 0.25rem; font-weight: 600; color: var(--kleur-tekst); }
.ncgk-form input, .ncgk-form textarea {
	width: 100%; padding: 0.75rem; font: inherit;
	border: 1px solid var(--kleur-lijn-sterk); border-radius: 4px;
	background: var(--kleur-wit); color: var(--kleur-tekst);
}
.ncgk-form input:focus, .ncgk-form textarea:focus { outline: none; border-color: var(--kleur-primair); box-shadow: 0 0 0 3px var(--kleur-blauw-zacht); }
.ncgk-form__hp { position: absolute; left: -9999px; }
.ncgk-form__notice { padding: 0.75rem 1rem; border-radius: 4px; }
.ncgk-form__notice--ok { background: #e8f5e9; color: #1b5e20; }
.ncgk-form__notice--err { background: #fdecec; color: #8e1c1c; }
