/* OVIO Space: layout for the WPBakery elements (the look itself is in glass-ui.css) */
.ovio-group { display: grid; gap: var(--ovio-gap, 30px); grid-template-columns: repeat(var(--ovio-cols, 3), minmax(0, 1fr)); align-items: var(--ovio-align, stretch); }
@media (max-width: 998px) { .ovio-group.ovio-cols-3, .ovio-group.ovio-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ovio-group { grid-template-columns: minmax(0, 1fr); } }
.ovio-group > * { min-width: 0; }
.ovio-el .ovio-eyebrow { display: block; font-size: 12px; letter-spacing: .15em; text-transform: uppercase; opacity: .75; margin: 0 0 12px; }
.ovio-el .ovio-title { margin: 0 0 10px; }
.ovio-el > :last-child { margin-bottom: 0; }
.ovio-btn-wrap { margin: 10px 0; }
.ovio-btn-wrap.ovio-left { text-align: left; } .ovio-btn-wrap.ovio-center { text-align: center; } .ovio-btn-wrap.ovio-right { text-align: right; }
.ovio-checkpoint { height: 0; overflow: hidden; }

/* ---- icons on buttons: left or right of the text, or above or below it (then lined up left, centre or right). Size and spacing from the
   settings (--ovio-bis, --ovio-big), or the button's own; the icon takes the text's colour unless given its own ---- */
:is(a, button).ovio-btn.ovio-has-icon { gap: var(--ovio-big, 10px) !important; }
.ovio-btn.ovio-ip-right { flex-direction: row-reverse; }
.ovio-btn.ovio-ip-top { flex-direction: column; }
.ovio-btn.ovio-ip-bottom { flex-direction: column-reverse; }
.ovio-btn:is(.ovio-ip-top, .ovio-ip-bottom).ovio-ia-left { align-items: flex-start !important; text-align: left; }
.ovio-btn:is(.ovio-ip-top, .ovio-ip-bottom).ovio-ia-center { align-items: center !important; text-align: center; }
.ovio-btn:is(.ovio-ip-top, .ovio-ip-bottom).ovio-ia-right { align-items: flex-end !important; text-align: right; }
.ovio-bi, .ovio-ic { display: inline-flex; flex: none; align-items: center; justify-content: center; line-height: 0; }
.ovio-bi > svg { width: var(--ovio-bis, 18px); height: var(--ovio-bis, 18px); }
.ovio-bi > i { font-size: var(--ovio-bis, 18px); line-height: 1; }
.ovio-ic > svg { width: var(--ovio-xis, 28px); height: var(--ovio-xis, 28px); }
.ovio-ic > i { font-size: var(--ovio-xis, 28px); line-height: 1; }
:is(.ovio-bi, .ovio-ic) > svg { display: block; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
:is(.ovio-bi, .ovio-ic) > i::before { margin: 0 !important; }
.ovio-bt { display: block; }

/* ---- icons on boxes: with the title, the small label or the text, beside it (left or right) or above or below it (lined up left, centre
   or right). Beside the title or the label it sits level with its middle; beside the text, level with its first line ---- */
.ovio-el .ovio-iw { display: flex; gap: var(--ovio-xig, 12px); align-items: center; }
.ovio-el .ovio-iw.ovio-on-eyebrow { margin: 0 0 12px; }
.ovio-el .ovio-iw.ovio-on-title { margin: 0 0 10px; }
.ovio-el .ovio-iw.ovio-on-content { margin: 0; align-items: flex-start; }
.ovio-el .ovio-iw > :not(.ovio-ic) { min-width: 0; margin: 0; }
.ovio-el .ovio-iw.ovio-ip-right > .ovio-ic { order: 2; }   /* (after it, keeping it where it was; row-reverse would push both to the far side) */
.ovio-el .ovio-iw.ovio-on-content:is(.ovio-ip-left, .ovio-ip-right) > .ovio-ibody { flex: 1 1 auto; }   /* (the text fills the width beside its icon; a title or label keeps its own width, with the icon just after it) */
.ovio-el .ovio-iw.ovio-ip-top { flex-direction: column; align-items: flex-start; }
.ovio-el .ovio-iw.ovio-ip-bottom { flex-direction: column-reverse; align-items: flex-start; }
.ovio-el .ovio-iw:is(.ovio-ip-top, .ovio-ip-bottom) > :not(.ovio-ic) { align-self: stretch; }
.ovio-el .ovio-iw:is(.ovio-ip-top, .ovio-ip-bottom).ovio-ia-center { align-items: center; text-align: center; }
.ovio-el .ovio-iw:is(.ovio-ip-top, .ovio-ip-bottom).ovio-ia-right { align-items: flex-end; text-align: right; }
.ovio-el .ovio-iw.ovio-on-content.ovio-ip-left > .ovio-ic, .ovio-el .ovio-iw.ovio-on-content.ovio-ip-right > .ovio-ic { margin-top: .15em; }
.ovio-el .ovio-ibody > :last-child { margin-bottom: 0; }

/* ---- a button in a box: under its text, or kept at the foot of the box (so the buttons of boxes the same height line up) ---- */
.ovio-el .ovio-btn-wrap.ovio-in-box { margin: var(--ovio-bxg, 20px) 0 0; }
.ovio-el.ovio-btn-bottom:not(.wpb_column) { display: flex; flex-direction: column; }
.ovio-el.ovio-btn-bottom > .ovio-in-box { margin-top: auto; padding-top: var(--ovio-bxg, 20px); }
.ovio-el > :has(+ .ovio-in-box) { margin-bottom: 0; }   /* (the space above the button is the button's own setting) */
