/*
 * Info Box widget.
 *
 * The box is a flex column by default and the panel switches it to a row. Both
 * faces of that switch have to work with the same alignment control, which is
 * why alignment sets `align-items` and `text-align` together.
 */

.vora-box {
	display: flex;
	flex-direction: column;
	/* `stretch` is the flex default, and in a column it made the icon tile span
	   the whole card. The alignment control overrides this; the default has to
	   be a value that looks deliberate on its own. */
	align-items: flex-start;
	gap: 14px;
	/* Widgets sit in whatever track Elementor's container gives them, so the
	   root fills it rather than sizing to its own text. */
	width: 100%;
	height: 100%;
	text-decoration: none;
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

/* Only the fully-linked variant reacts, so a box that is not clickable does not
   pretend to be. */
.vora-box--linked:hover {
	transform: translateY(-2px);
}

.vora-box__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	line-height: 1;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.vora-box__icon i,
.vora-box__icon svg {
	width: 1em;
	height: 1em;
	font-size: inherit;
	line-height: 1;
}

.vora-box__image img {
	display: block;
	max-width: 100%;
	height: auto;
}

.vora-box__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	/* Without this the body only takes its text's width, and a centred box
	   centres the block rather than the lines inside it. */
	width: 100%;
}

.vora-box__title {
	margin: 0;
	line-height: 1.3;
	transition: color 0.18s ease;
}

.vora-box__text {
	line-height: 1.65;
}

.vora-box__link {
	align-self: flex-start;
	margin-top: 2px;
	font-weight: 600;
	text-decoration: none;
}

.vora-box__link:hover {
	text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
	.vora-box,
	.vora-box__icon,
	.vora-box__title { transition: none; }
	.vora-box--linked:hover { transform: none; }
}
