/* Openingstijden – frontend styles (balanced spacing) */

.ot-openingstijden {
	box-sizing: border-box;
	font-family: var(--ot-font, inherit);
	color: var(--ot-text);
	background: var(--ot-bg);
	border-radius: var(--ot-radius);
	padding: var(--ot-padding);
	border: var(--ot-border);
	box-shadow: var(--ot-shadow);
	line-height: 1.45;
	max-width: 100%;
	font-size: 1rem;
}

.ot-openingstijden *,
.ot-openingstijden *::before,
.ot-openingstijden *::after {
	box-sizing: border-box;
}

.ot-inner {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* Status highlight section */
.ot-status-section {
	margin: 0;
}

.ot-status {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	background: var(--ot-status-bg);
	border: 1px solid var(--ot-status-border, rgba(255, 255, 255, 0.18));
	border-radius: calc(var(--ot-radius) * 0.75);
	padding: 0.85rem 1.15rem;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.ot-status-indicator-wrap {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.25rem;
	height: 1.25rem;
	line-height: 0;
}

.ot-status-indicator {
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--ot-accent);
}

.ot-is-open .ot-status-indicator {
	background: #4caf50;
	box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.35);
}

.ot-is-closed .ot-status-indicator {
	background: #ff9800;
	box-shadow: 0 0 0 3px rgba(255, 152, 0, 0.3);
}

.ot-status-text {
	flex: 1;
	margin: 0;
	padding: 0;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ot-text);
}

/* Header */
.ot-header {
	margin: 0;
}

.ot-title {
	margin: 0 0 0.3rem;
	font-family: var(--ot-title-font, var(--ot-font, inherit));
	font-size: var(--ot-title-size, 1.5rem);
	font-weight: var(--ot-title-weight, 700);
	line-height: 1.2;
	color: var(--ot-title-color, var(--ot-text));
}

.ot-subtitle {
	margin: 0;
	font-family: var(--ot-subtitle-font, var(--ot-font, inherit));
	font-size: var(--ot-subtitle-size, 0.9375rem);
	font-weight: var(--ot-subtitle-weight, 400);
	line-height: 1.4;
	color: var(--ot-subtitle-color, var(--ot-text));
	opacity: 0.95;
}

/* Week list */
.ot-week-list {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.ot-day-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem 1rem;
	align-items: center;
	margin: 0;
	padding: 0.3rem 0;
	border-bottom: 1px solid rgba(128, 128, 128, 0.15);
}

.ot-day-row:last-child {
	border-bottom: none;
}

.ot-day-name {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.5rem;
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.4;
}

.ot-day-label {
	font-weight: inherit;
}

.ot-day-hours {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 400;
	text-align: right;
	line-height: 1.4;
}

/* "Vandaag" label next to current day */
.ot-today-label {
	display: inline-block;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
	background: var(--ot-tag-bg, var(--ot-status-bg));
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--ot-text);
	white-space: nowrap;
}

.ot-day-today .ot-day-label {
	font-weight: 700;
}

.ot-day-today .ot-day-hours {
	font-weight: 600;
}

/* ── Auto Direct ── */
.ot-style-auto-direct .ot-status-section {
	order: -1;
}

.ot-style-auto-direct .ot-status {
	background: var(--ot-status-bg);
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.ot-style-auto-direct .ot-status-text {
	font-size: 1.0625rem;
}

.ot-style-auto-direct .ot-title {
	letter-spacing: -0.02em;
}

.ot-style-auto-direct .ot-day-row {
	border-bottom-color: rgba(255, 255, 255, 0.2);
	padding: 0.35rem 0;
}

.ot-style-auto-direct .ot-today-label {
	background: rgba(255, 255, 255, 0.22);
}

/* ── Minimal ── */
.ot-style-minimal {
	background: transparent;
	padding: 0;
}

.ot-style-minimal .ot-status {
	border-color: rgba(32, 137, 220, 0.2);
	box-shadow: none;
}

.ot-style-minimal .ot-status-text {
	color: var(--ot-accent);
}

.ot-style-minimal .ot-day-name,
.ot-style-minimal .ot-day-hours {
	color: var(--ot-text);
}

.ot-style-minimal .ot-today-label {
	color: var(--ot-accent);
	background: var(--ot-status-bg);
}

/* ── Card ── */
.ot-style-card .ot-status {
	border-color: rgba(32, 137, 220, 0.15);
	box-shadow: none;
}

/* ── Dark ── */
.ot-style-dark .ot-day-row {
	border-bottom-color: rgba(255, 255, 255, 0.1);
}

.ot-style-dark .ot-today-label {
	background: rgba(255, 255, 255, 0.12);
}

/* Responsive */
@media (max-width: 480px) {
	.ot-openingstijden {
		padding: calc(var(--ot-padding) * 0.85);
	}

	.ot-title {
		font-size: calc(var(--ot-title-size, 24px) * 0.9);
	}

	.ot-day-row {
		grid-template-columns: 1fr;
		gap: 0.2rem;
		align-items: flex-start;
	}

	.ot-day-hours {
		text-align: left;
		opacity: 0.9;
	}
}
