/* Info Box block (Elementor Icon Box). Loaded only where the block is used; the box-sizing reset is in assets/frontend.css. */
/* ---- Info box (Elementor Icon Box) ---------------------------------------
 * Default = the original look: icon on top, no gap, image as-is, link text only.
 * Position classes come from prefix_class (wb-ib--pos-{device-}{value}). */
.wb-info-box { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
a.wb-info-box { cursor: pointer; }
.wb-info-box .wb-info-box__media { line-height: 0; flex-shrink: 0; } /* no text strut under the icon */
.wb-info-box .wb-info-box__icon { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; color: inherit; transition: background-color .3s, border-color .3s, transform .3s; }
.wb-info-box .wb-info-box__icon > * { transition: transform .3s; }
.wb-info-box .wb-info-box__media img { display: block; max-width: 100%; height: auto; }
.wb-info-box .wb-info-box__svg { display: block; max-width: 100%; height: auto; }
.wb-info-box .wb-info-box__svg * { transition: stroke .3s, fill .3s; }
.wb-info-box .wb-info-box__content { display: flex; flex-direction: column; min-width: 0; flex-grow: 1; } /* flex column like the box itself was: link stretches, margins do not collapse */
.wb-info-box .wb-info-box__title { transition: color .3s; }
:where(.wb-info-box .wb-info-box__title) { margin: 0 0 8px; } /* default: Title Margin overrides it */
.wb-info-box .wb-info-box__title a { color: inherit; text-decoration: none; }
.wb-info-box .wb-info-box__text { margin: 0; }
.wb-info-box .wb-info-box__link { display: inline-block; text-decoration: none; }
:where(.wb-info-box .wb-info-box__link) { margin-top: 16px; }

/* Views + shapes */
:where(.wb-ib--view-stacked .wb-info-box__icon) { padding: 16px; background-color: #69727d; }
:where(.wb-ib--view-framed .wb-info-box__icon) { padding: 16px; border: 3px solid #69727d; }
:where(.wb-ib--shape-circle .wb-info-box__icon) { border-radius: 50%; }
:where(.wb-ib--shape-rounded .wb-info-box__icon) { border-radius: 12px; }
:where(.wb-ib--shape-square .wb-info-box__icon) { border-radius: 0; }

/* Icon position: top (column) / left (row) / right (row-reverse); responsive. */
.wb-ib--pos-top { flex-direction: column; }
.wb-ib--pos-left { flex-direction: row; align-items: var(--wb-ib-valign, flex-start); }
.wb-ib--pos-right { flex-direction: row-reverse; align-items: var(--wb-ib-valign, flex-start); }
@media (max-width: 1024px) {
	.wb-ib--pos-tablet-top { flex-direction: column; align-items: stretch; }
	.wb-ib--pos-tablet-left { flex-direction: row; align-items: var(--wb-ib-valign, flex-start); }
	.wb-ib--pos-tablet-right { flex-direction: row-reverse; align-items: var(--wb-ib-valign, flex-start); }
}
@media (max-width: 767px) {
	.wb-ib--pos-mobile-top { flex-direction: column; align-items: stretch; }
	.wb-ib--pos-mobile-left { flex-direction: row; align-items: var(--wb-ib-valign, flex-start); }
	.wb-ib--pos-mobile-right { flex-direction: row-reverse; align-items: var(--wb-ib-valign, flex-start); }
}

/* Hover animations (Elementor's elementor-animation-*) */
.wb-ib-anim-grow:hover .wb-info-box__icon { transform: scale(1.1); }
.wb-ib-anim-shrink:hover .wb-info-box__icon { transform: scale(.9); }
.wb-ib-anim-float:hover .wb-info-box__icon { transform: translateY(-8px); }
.wb-ib-anim-sink:hover .wb-info-box__icon { transform: translateY(8px); }
.wb-ib-anim-rotate:hover .wb-info-box__icon { transform: rotate(15deg); }
@media (prefers-reduced-motion: reduce) {
	.wb-info-box .wb-info-box__icon, .wb-info-box .wb-info-box__icon > * { transition: none; }
}

/* Icon-picker icons: 48px until Style > Size is set (zero-specificity wrapper so the control wins). */
:where(.wb-info-box) .wab-icon { width: 48px; }

/* "After page load": a soft panel in the image's reserved box until assets/js/lazy-frame.js sets its src. */
.wb-info-box img.wb-lazy-frame { background-color: #f0f0f1; }
