/*
 * Services menu (desktop dropdown) and the mobile menu accordions.
 * Hand-written; uses the brand tokens from omnia.css.
 */

/* Anchor the wide services dropdown to the left of its button so it stays inside the viewport. */
.omnia-ui .omnia-dropdown--mega { left: -1.25rem; translate: 0 8px; }
.omnia-ui [aria-expanded="true"] + .omnia-dropdown--mega { translate: 0 0; }

.omnia-ui .omnia-mega { width: min(720px, calc(100vw - 2rem)); padding: 1.1rem 1.1rem 1.15rem; border-radius: 1.5rem; background: #fff; box-shadow: 0 0 0 1px var(--color-line), var(--shadow-lift); }
.omnia-ui .omnia-mega__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 0.9rem; padding: 0.15rem 0.5rem 0.9rem; border-bottom: 1px solid var(--color-line); }
.omnia-ui .omnia-mega__title { display: inline-flex; align-items: center; gap: 0.55rem; font: 700 0.98rem/1.2 var(--font-display); color: var(--color-ink); }
.omnia-ui .omnia-mega__hicon { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 0.6rem; background: var(--color-mint); color: var(--color-emerald); }
.omnia-ui .omnia-mega__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.omnia-ui .omnia-mega__col { display: flex; flex-direction: column; gap: 1rem; }
.omnia-ui .omnia-mega__gh { display: flex; align-items: center; gap: 0.5rem; margin: 0; padding: 0 0.5rem; font: 700 0.9rem/1.2 var(--font-display); color: var(--color-ink); }
.omnia-ui .omnia-mega__ghicon { width: 1rem; height: 1rem; color: var(--color-emerald); }
.omnia-ui .omnia-mega ul { list-style: none; margin: 0.45rem 0 0; padding: 0; display: grid; gap: 0.1rem; }
.omnia-ui .omnia-mega__link { display: flex; align-items: center; gap: 0.7rem; padding: 0.4rem 0.5rem; border-radius: 0.85rem; font: 500 0.875rem/1.25 var(--font-sans); color: var(--color-body); transition: background-color 0.25s var(--ease-out-soft), color 0.25s var(--ease-out-soft); }
.omnia-ui .omnia-mega__link:hover, .omnia-ui .omnia-mega__link:focus-visible { background: var(--color-mist); color: var(--color-ink); }
.omnia-ui .omnia-mega__link:focus-visible, .omnia-ui .omnia-mega__cta:focus-visible { outline: 2px solid var(--color-emerald); outline-offset: 1px; }
.omnia-ui .omnia-mega__link[aria-current="page"] { color: var(--color-forest); font-weight: 600; }
.omnia-ui .omnia-mega__ic { display: grid; place-items: center; flex: none; width: 2.05rem; height: 2.05rem; border-radius: 999px; transition: transform 0.35s var(--ease-out-soft); }
.omnia-ui .omnia-mega__ic svg { width: 1.15rem; height: 1.15rem; }
.omnia-ui .omnia-mega__link:hover .omnia-mega__ic { transform: translateY(-1px) scale(1.07); }
.omnia-ui .omnia-mega__cta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding: 0.95rem 1rem; border-radius: 1rem; background: var(--color-mist); box-shadow: inset 0 0 0 1px var(--color-line); transition: background-color 0.25s var(--ease-out-soft), box-shadow 0.25s var(--ease-out-soft); }
.omnia-ui .omnia-mega__cta:hover { background: var(--color-mint); box-shadow: inset 0 0 0 1px rgb(18 164 99 / 0.3); }
.omnia-ui .omnia-mega__cta strong { display: block; font: 700 0.875rem/1.3 var(--font-display); color: var(--color-ink); }
.omnia-ui .omnia-mega__cta small { display: block; margin-top: 0.2rem; font-size: 0.75rem; line-height: 1.4; color: var(--color-muted); }
.omnia-ui .omnia-mega__ctaicon { flex: none; color: var(--color-emerald); transition: transform 0.3s var(--ease-out-soft); }
.omnia-ui .omnia-mega__cta:hover .omnia-mega__ctaicon { transform: translate(2px, -2px); }

/* Groups settle in just after the panel opens. */
.omnia-ui .omnia-dropdown--mega .omnia-mega__group, .omnia-ui .omnia-dropdown--mega .omnia-mega__cta { opacity: 0; transform: translateY(4px); transition: opacity 0.25s var(--ease-out-soft), transform 0.3s var(--ease-out-soft); }
.omnia-ui [aria-expanded="true"] + .omnia-dropdown--mega :is(.omnia-mega__group, .omnia-mega__cta) { opacity: 1; transform: none; }
.omnia-ui [aria-expanded="true"] + .omnia-dropdown--mega .omnia-mega__col:last-child :is(.omnia-mega__group, .omnia-mega__cta) { transition-delay: 50ms; }
.omnia-ui [aria-expanded="true"] + .omnia-dropdown--mega .omnia-mega__group + .omnia-mega__group { transition-delay: 70ms; }

/* ------------------------------------------------------------ Mobile menu */

.omnia-ui .omnia-acc { border-bottom: 1px solid var(--color-line); }
.omnia-ui .omnia-acc__sum { display: flex; align-items: center; justify-content: space-between; min-height: 3.25rem; padding: 0.75rem 0; list-style: none; cursor: pointer; font: 600 1.25rem/1.2 var(--font-display); color: var(--color-ink); }
.omnia-ui .omnia-acc__sum::-webkit-details-marker { display: none; }
.omnia-ui .omnia-acc__sum:focus-visible { outline: 2px solid var(--color-emerald); outline-offset: 2px; border-radius: 6px; }
.omnia-ui .omnia-acc__chev { width: 1.1rem; height: 1.1rem; color: var(--color-muted); transition: transform 0.3s var(--ease-out-soft); }
.omnia-ui .omnia-acc[open] > .omnia-acc__sum .omnia-acc__chev { transform: rotate(180deg); color: var(--color-emerald); }
.omnia-ui .omnia-acc__body { padding: 0 0 1rem; }
.omnia-ui .omnia-acc[open] .omnia-acc__body { animation: omnia-acc-in 0.3s var(--ease-out-soft); }
@keyframes omnia-acc-in { from { opacity: 0; transform: translateY(-4px); } }
.omnia-ui .omnia-acc ul { list-style: none; margin: 0; padding: 0; }
.omnia-ui .omnia-acc__gh { margin: 0.9rem 0 0.25rem; font: 600 0.7rem/1 var(--font-display); letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.omnia-ui .omnia-acc__gh:first-child { margin-top: 0.15rem; }
.omnia-ui .omnia-acc__link { display: flex; align-items: center; gap: 0.7rem; min-height: 2.75rem; padding: 0.25rem 0; font-size: 0.98rem; color: var(--color-body); }
.omnia-ui .omnia-acc__link:hover { color: var(--color-forest); }
.omnia-ui .omnia-mega__ic--sm { width: 1.9rem; height: 1.9rem; }
.omnia-ui .omnia-mega__ic--sm svg { width: 1.05rem; height: 1.05rem; }

@media (prefers-reduced-motion: reduce) {
	.omnia-ui .omnia-dropdown--mega :is(.omnia-mega__group, .omnia-mega__cta) { transition: none; }
	.omnia-ui .omnia-acc[open] .omnia-acc__body { animation: none; }
	.omnia-ui .omnia-mega__link:hover .omnia-mega__ic { transform: none; }
}

/* Ewebot numbers every ol ("." counter(li) on li::before), which shows up on
   breadcrumbs, step lists and timelines. Switch it off inside the new design;
   :where() keeps this weaker than the theme's own list styles (prose, crumbs). */
.omnia-ui :where(ol) > :where(li)::before { content: none; }
