/* Business Info: card, columns and strip layouts; hours list, open-now badge, map. */

.vsk-bi__box {
	display: flex;
	flex-direction: column;
	gap: var(--vsk-space-4);
	padding: var(--vsk-space-5);
	border: 1px solid var(--vsk-border);
	border-radius: var(--vsk-radius);
	background: var(--vsk-surface);
	color: var(--vsk-color-text);
}

.vsk-bi__name {
	margin: 0;
	color: var(--vsk-color-primary);
	font-family: var(--vsk-font-heading);
	font-weight: var(--vsk-weight-heading);
	font-size: 1.25rem;
	line-height: 1.3;
}

/* Open-now badge. Colours are status colours, not brand colours. */
.vsk-bi__status {
	--vsk-status: #1a7f4b;
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	align-self: flex-start;
	margin: 0;
	padding: 0.35em 0.85em;
	border-radius: var(--vsk-radius-pill);
	background: color-mix(in srgb, var(--vsk-status) 13%, transparent);
	color: var(--vsk-status);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.4;
}

.vsk-bi__status::before {
	content: "";
	flex: none;
	width: 0.55em;
	height: 0.55em;
	border-radius: 50%;
	background: currentcolor;
}

.vsk-bi__status--soon {
	--vsk-status: #a15c00;
}

.vsk-bi__status--closed {
	--vsk-status: #b3261e;
}

.vsk--dark .vsk-bi__status {
	--vsk-status: #5fd49a;
}

.vsk--dark .vsk-bi__status--soon {
	--vsk-status: #ffc266;
}

.vsk--dark .vsk-bi__status--closed {
	--vsk-status: #ff8a80;
}

.vsk-bi__cols {
	display: grid;
	gap: var(--vsk-space-5);
}

.vsk-bi__details {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--vsk-space-4);
}

.vsk-bi__contact {
	display: flex;
	flex-direction: column;
	gap: var(--vsk-space-2);
	font-style: normal;
	line-height: 1.55;
}

.vsk-bi__contact a:not([class*="__button"]) {
	color: var(--vsk-color-accent);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.vsk-bi__contact a:not([class*="__button"]):hover {
	text-decoration: underline;
}

/* Hours. */
.vsk-bi__list {
	display: grid;
	gap: 0;
	margin: 0;
}

.vsk-bi__row {
	display: flex;
	justify-content: space-between;
	gap: var(--vsk-space-4);
	padding: 0.55em 0;
	border-bottom: 1px solid var(--vsk-border);
}

.vsk-bi__row:last-child {
	border-bottom: 0;
}

.vsk-bi__row dt {
	margin: 0;
	font-weight: 600;
	color: var(--vsk-color-primary);
}

.vsk-bi__row dd {
	margin: 0;
	text-align: end;
}

.vsk-bi__row.is-today dt,
.vsk-bi__row.is-today dd {
	color: var(--vsk-color-accent);
	font-weight: 700;
}

.vsk-bi__closures {
	margin: var(--vsk-space-3) 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.9rem;
	color: var(--vsk-color-secondary);
}

.vsk-bi__closures li {
	padding: 0.2em 0;
}

.vsk-bi__closures span {
	font-weight: 600;
	color: var(--vsk-color-primary);
}

/* Map. */
.vsk-bi__map {
	--vsk-map-height: 320px;
	overflow: hidden;
	border-radius: var(--vsk-radius-sm);
	height: var(--vsk-map-height);
}

.vsk-bi__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Columns: details on the left, hours on the right on wide screens. */
@media (min-width: 720px) {
	.vsk-business-info--columns .vsk-bi__cols,
	.vsk-business-info--card .vsk-bi__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(1.5rem, 5vw, 4rem);
	}
}

.vsk-business-info--card .vsk-bi__box {
	max-width: 44rem;
}

/* Strip: one compact row. Wraps on phones. */
.vsk-bi__strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--vsk-space-3) var(--vsk-space-5);
}

.vsk-business-info--strip .vsk-bi__box {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--vsk-space-3) var(--vsk-space-5);
	padding: var(--vsk-space-4) var(--vsk-space-5);
}

.vsk-business-info--strip .vsk-bi__strip {
	flex: 1 1 auto;
}

.vsk-bi__today {
	margin: 0;
	font-weight: 600;
	color: var(--vsk-color-primary);
}

.vsk-bi__today-label {
	margin-inline-end: 0.35em;
	font-weight: 400;
	color: var(--vsk-color-secondary);
}

.vsk-business-info--strip .vsk-bi__contact {
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--vsk-space-1) var(--vsk-space-4);
}

/* Presets. */
.vsk-business-info.vsk-preset--elevated .vsk-bi__box {
	border-color: transparent;
	box-shadow: var(--vsk-shadow-md);
}

.vsk-business-info.vsk-preset--tinted .vsk-bi__box {
	border-color: transparent;
	background: var(--vsk-surface-muted);
}

.vsk-business-info.vsk-preset--tinted .vsk-bi__row {
	border-color: color-mix(in srgb, var(--vsk-color-primary) 12%, transparent);
}

.vsk-business-info.vsk-preset--editorial .vsk-bi__box {
	border-radius: 0;
	border-width: 1px 0;
	border-color: var(--vsk-color-primary);
	background: transparent;
}

.vsk-business-info.vsk-preset--editorial .vsk-bi__name {
	font-size: 1.5rem;
}

.vsk-business-info.vsk-preset--editorial .vsk-bi__status {
	border-radius: 0;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75rem;
}

.vsk-business-info.vsk-preset--editorial .vsk-bi__map {
	border-radius: 0;
}

.vsk-business-info.vsk-preset--playful .vsk-bi__box {
	border-width: 3px;
	border-color: var(--vsk-color-primary);
	box-shadow: 6px 6px 0 var(--vsk-color-primary);
}
