/*
 * DMR Widgets: layout only. Colours, fonts and sizes come from each
 * widget's Style tab, so the Elementor panel always shows the real value.
 */

.dmr-w { box-sizing: border-box; width: 100%; }
.dmr-w *, .dmr-w *::before, .dmr-w *::after { box-sizing: border-box; }
.dmr-w__head { margin-left: auto; margin-right: auto; }
.dmr-w__title { margin: 0; }
.dmr-w__intro { margin: 0 var(--dmr-mr, auto) 0 var(--dmr-ml, auto); }

/* ---------- Stat rings ---------- */
.dmr-rings__row { display: flex; flex-wrap: wrap; align-items: flex-start; width: 100%; }
.dmr-rings__item { flex: 0 0 240px; text-align: center; }
.dmr-rings__ring { display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0 auto; border-style: solid; border-radius: 50%; text-align: center; }
.dmr-rings__value, .dmr-rings__label { display: block; }
.dmr-rings__label { margin-top: 8px; }
.dmr-rings__caption { margin-bottom: 0; }

/* ---------- Compare cards ---------- */
.dmr-cmp__grid { display: grid; grid-template-columns: repeat(var(--dmr-cols, 2), minmax(0, 1fr)); column-gap: var(--dmr-gap, 26px); row-gap: var(--dmr-gap, 26px); margin: 0 auto; text-align: left; }
.dmr-cmp__card { display: flex; flex-direction: column; min-width: 0; }
.dmr-cmp__top { display: flex; }
.dmr-cmp__tag { display: inline-block; border-radius: 999px; }
.dmr-cmp__title { margin: 10px 0 8px; }
.dmr-cmp__val { margin-top: 4px; border-bottom: 1px solid transparent; }
.dmr-cmp__val:last-child { border-bottom: 0 !important; padding-bottom: 0 !important; }
.dmr-cmp__label:empty { line-height: 0; } /* row with no label: keeps the row spacing above it but has no height */
.dmr-cmp__label:empty + .dmr-cmp__val { margin-top: 0 !important; }

/* rows level across the cards in each line (subgrid; older browsers fall back to independent cards) */
@supports (grid-template-rows: subgrid) {
	.dmr-cmp__grid.is-aligned .dmr-cmp__card { display: grid; grid-template-rows: subgrid; grid-row: span var(--dmr-rows); align-content: start; row-gap: 0; }
	.dmr-cmp__grid.is-aligned .dmr-cmp__card > .dmr-cmp__label { align-self: end; }
}

@media (max-width: 767px) {
	.dmr-cmp__grid { --dmr-cols: 1; } /* fallback; the "Cards per row" control overrides it */
	.dmr-cmp__grid.is-aligned .dmr-cmp__card { display: flex; grid-row: auto; }
	.dmr-cmp__grid.is-aligned .dmr-cmp__card > .dmr-cmp__label { align-self: stretch; }
}

/* ---------- Machine grid ---------- */
.dmr-mg__inner { margin: 0 auto; }
.dmr-mg__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; }
.dmr-mg__card { position: relative; display: flex; flex-direction: column; min-width: 0; text-decoration: none !important; transform: translateY(0); transition-property: background-color, border-color, transform; transition-duration: .2s; transition-timing-function: ease; }
.dmr-mg__card--link:is(:hover, :focus-visible) { transform: translateY(var(--dmr-lift, -3px)); }
.dmr-mg__card--link:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; z-index: 1; }
/* invisible strip under a lifted card, so the pointer stays on it and the hover does not flicker */
.dmr-mg__card--link:hover::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: calc(var(--dmr-bw, 2px) - var(--dmr-lift, -3px)); }
.dmr-mg__card--static { cursor: default; }
.dmr-mg__title, .dmr-mg__sub, .dmr-mg__more { transition-property: color; transition-duration: .2s; transition-timing-function: ease; }
.dmr-mg__title { margin-top: 0; }
.dmr-mg__sub { margin: 0; }
.dmr-mg__more { display: block; }
.dmr-mg__arrow { display: inline-block; }
@media (prefers-reduced-motion: reduce) { .dmr-mg__card, .dmr-mg__card * { transition: none !important; } .dmr-mg__card--link:is(:hover, :focus-visible) { transform: none; } }

/* ---------- See if you qualify ---------- */
.dmr-qb__inner { margin: 0 auto; }
.dmr-qb .dmr-w__head { margin-left: 0; margin-right: 0; }
.dmr-qb__areas { display: flex; flex-wrap: wrap; justify-content: var(--dmr-justify, center); }
.dmr-qb__pill, .dmr-qb__btn { transition-property: color, background-color, border-color; transition-duration: .2s; transition-timing-function: ease; }
.dmr-qb__pill { display: inline-block; }
.dmr-qb__body { margin-left: var(--dmr-bml, auto); margin-right: var(--dmr-bmr, auto); }
.dmr-qb__body > :last-child { margin-bottom: 0 !important; }
.dmr-qb__cta { display: flex; justify-content: var(--dmr-justify, center); }
.dmr-qb__btn { display: inline-block; }
.dmr-qb__btn:focus-visible, a.dmr-qb__pill:focus-visible { outline-style: solid; }
@media (prefers-reduced-motion: reduce) { .dmr-qb__pill, .dmr-qb__btn { transition: none !important; } }

/* ---------- Course boxes ---------- */
/* The card comes first in the HTML (heading before its details); order puts it after the text. */
.dmr-cb__inner { margin: 0 auto; }
.dmr-cb__list { display: grid; grid-template-columns: minmax(0, 1fr); }
.dmr-cb__box { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; overflow: hidden; }
.dmr-cb__info { min-width: 0; }
.dmr-cb__info > :last-child { margin-bottom: 0 !important; }
.dmr-cb__head { display: flex; margin-left: calc(-1 * var(--dmr-cb-pl, 32px)); }
.dmr-cb__level { display: inline-block; }
.dmr-cb__intro, .dmr-cb__label, .dmr-cb__learn { margin-top: 0; }
.dmr-cb__label { margin-bottom: 4px; }
.dmr-cb__why { display: inline-flex; align-items: flex-start; gap: 12px; margin: 0; }
.dmr-cb__tick { flex: 0 0 22px; margin-top: 1px; }
.dmr-cb__card { order: 1; position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; background-size: cover; background-repeat: no-repeat; }
.dmr-cb__card::before { content: ""; position: absolute; inset: 0; pointer-events: none; }
.dmr-cb__title, .dmr-cb__btn { position: relative; }
.dmr-cb__title { margin-top: 0; }
.dmr-cb__btn { display: inline-block; align-self: flex-start; transition-property: color, background-color, border-color; transition-duration: .2s; transition-timing-function: ease; }
.dmr-cb__btn:focus-visible { outline: 3px solid; outline-offset: 3px; }

/* tablet and desktop: side by side */
@media (min-width: 768px) {
	.dmr-cb__box { grid-template-columns: minmax(0, var(--dmr-cb-text, 54%)) minmax(0, 1fr); }
	/* card on the left: swap the columns, then mirror the text padding and the corner tab */
	.dmr-cb--left .dmr-cb__box,
	.dmr-cb--alternate .dmr-cb__box:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, var(--dmr-cb-text, 54%)); }
	.dmr-cb--left .dmr-cb__card,
	.dmr-cb--alternate .dmr-cb__box:nth-child(even) .dmr-cb__card { order: -1; }
	.dmr-cb--left .dmr-cb__info,
	.dmr-cb--alternate .dmr-cb__box:nth-child(even) .dmr-cb__info { padding-left: var(--dmr-cb-pr, 16px) !important; padding-right: var(--dmr-cb-pl, 32px) !important; }
	.dmr-cb--left .dmr-cb__head,
	.dmr-cb--alternate .dmr-cb__box:nth-child(even) .dmr-cb__head { justify-content: flex-end; margin-left: 0; margin-right: calc(-1 * var(--dmr-cb-pl, 32px)); }
	.dmr-cb--left .dmr-cb__level,
	.dmr-cb--alternate .dmr-cb__box:nth-child(even) .dmr-cb__level { border-radius: var(--dmr-cb-r2, 34px) var(--dmr-cb-r1, 0px) var(--dmr-cb-r4, 12px) var(--dmr-cb-r3, 34px) !important; }
}

/* phones: stacked, card below the text unless "Card on phones" is Above */
@media (max-width: 767px) {
	.dmr-cb--m-above .dmr-cb__card { order: -1; margin-top: var(--dmr-cb-cb, 12px) !important; margin-bottom: var(--dmr-cb-ct, 0px) !important; }
	.dmr-cb--m-above .dmr-cb__info { padding-top: var(--dmr-cb-pr, 20px) !important; }
}
@media (prefers-reduced-motion: reduce) { .dmr-cb__btn { transition: none !important; } }

/* ---------- Rotating banner ---------- */
.dmr-rb { position: relative; overflow: hidden; isolation: isolate; }
.dmr-rb__track { position: relative; display: grid; }
.dmr-rb__slide { grid-area: 1 / 1; position: relative; display: flex; opacity: 0; visibility: hidden; transition: opacity var(--dmr-rb-speed, .7s) ease, visibility 0s linear var(--dmr-rb-speed, .7s); }
.dmr-rb__slide.is-active { opacity: 1; visibility: visible; transition: opacity var(--dmr-rb-speed, .7s) ease, visibility 0s; }
.dmr-rb--slide .dmr-rb__slide { opacity: 1; transform: translateX(100%); transition: transform var(--dmr-rb-speed, .7s) ease, visibility 0s linear var(--dmr-rb-speed, .7s); }
.dmr-rb--slide .dmr-rb__slide.is-active { transform: none; transition: transform var(--dmr-rb-speed, .7s) ease, visibility 0s; }
.dmr-rb__bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-repeat: no-repeat; background-position: center; }
.dmr-rb__bg::after { content: ""; position: absolute; inset: 0; }
.dmr-rb__inner { position: relative; z-index: 1; display: flex; flex-direction: column; width: 100%; }
.dmr-rb__content { width: 100%; margin-left: var(--dmr-rb-ml, 0); margin-right: var(--dmr-rb-mr, auto); }
.dmr-rb__pill { display: inline-block; border: 1px solid transparent; border-radius: 999px; }
.dmr-rb__title, .dmr-rb__text { margin-top: 0; }
.dmr-rb__chips { display: flex; flex-wrap: wrap; justify-content: var(--dmr-rb-justify, flex-start); list-style: none; padding: 0; margin-top: 0; margin-left: 0; margin-right: 0; }
.dmr-rb__chip { border: 2px solid transparent; border-radius: 999px; padding: 6px 14px; }
.dmr-rb__btns { display: flex; flex-wrap: wrap; justify-content: var(--dmr-rb-justify, flex-start); }
.dmr-rb__btn { display: inline-flex; align-items: center; justify-content: center; transition-property: color, background-color, border-color; transition-duration: .2s; transition-timing-function: ease; }
.dmr-rb :focus-visible { outline: 3px solid; outline-offset: 3px; }
.dmr-rb__sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* nav: overrides the theme's default pink button styles */
.dmr-rb__nav { position: absolute; left: 0; right: 0; bottom: 24px; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 10px; pointer-events: none; }
.dmr-rb__nav > * { pointer-events: auto; }
.dmr-rb .dmr-rb__arrow, .dmr-rb .dmr-rb__pause, .dmr-rb .dmr-rb__arrow:is(:hover, :focus), .dmr-rb .dmr-rb__pause:is(:hover, :focus) { width: var(--dmr-rb-nav, 44px); height: var(--dmr-rb-nav, 44px); padding: 0; margin: 0; border: 2px solid currentColor; border-radius: 50%; color: inherit; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; line-height: 1; }
.dmr-rb__nav svg { width: 45%; height: 45%; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.dmr-rb__nav .dmr-rb__i-play { fill: currentColor; display: none; }
.dmr-rb.is-paused .dmr-rb__i-pause { display: none; }
.dmr-rb.is-paused .dmr-rb__i-play { display: block; }
.dmr-rb__dots { display: flex; gap: 2px; padding: 0 4px; }
.dmr-rb .dmr-rb__pause[hidden] { display: none; }
.dmr-rb .dmr-rb__dot, .dmr-rb .dmr-rb__dot:is(:hover, :focus) { width: 24px; height: 24px; padding: 0; margin: 0; border: 0; background: transparent; color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.dmr-rb__dot::before { content: ""; width: 12px; height: 12px; border-radius: 50%; border: 2px solid currentColor; box-sizing: border-box; transition: background-color .2s; }
.dmr-rb .dmr-rb__dot[aria-current="true"] { background: transparent !important; }
.dmr-rb__dot[aria-current="true"]::before { background-color: var(--dmr-rb-dot, #D4FF39); border-color: var(--dmr-rb-dot, #D4FF39); }
@media (prefers-reduced-motion: reduce) { .dmr-rb__slide, .dmr-rb--slide .dmr-rb__slide, .dmr-rb__btn { transition: none !important; } }

/* ---------- Ticker ---------- */
.dmr-tk { --dmr-tk-set: 25s; --dmr-tk-k: 1; --dmr-tk-gap: 20px; position: relative; display: flex; flex-wrap: var(--dmr-tk-wrap, nowrap); justify-content: center; align-items: center; overflow: hidden; color: #fff; border-style: solid none; }
.dmr-tk__sprite { position: absolute; }
.dmr-tk__rail { order: 1; flex: var(--dmr-tk-rail, 1 1 auto); min-width: 0; padding-left: var(--dmr-tk-inset, 0); overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--dmr-tk-fade, 44px), #000 calc(100% - var(--dmr-tk-fade, 44px)), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 var(--dmr-tk-fade, 44px), #000 calc(100% - var(--dmr-tk-fade, 44px)), transparent 100%); }
.dmr-tk__track { display: flex; width: max-content; animation: dmr-tk-scroll calc(var(--dmr-tk-set) * var(--dmr-tk-copies, 2)) linear infinite; will-change: transform; }
.dmr-tk:hover .dmr-tk__track, .dmr-tk:focus-within .dmr-tk__track { animation-play-state: paused; }
@keyframes dmr-tk-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.dmr-tk__group, .dmr-tk__set { display: flex; flex: 0 0 auto; }
.dmr-tk__item { display: inline-flex; align-items: center; flex: 0 0 auto; gap: var(--dmr-tk-gap); padding-right: var(--dmr-tk-gap); min-height: 30px; white-space: nowrap; }
.dmr-tk__hat { display: block; flex: 0 0 auto; }
.dmr-tk__btns { order: var(--dmr-tk-btns-order, 3); flex: var(--dmr-tk-btns-flex, 0 0 auto); display: var(--dmr-tk-btns-display, flex); flex-wrap: wrap; }
.dmr-tk .dmr-tk__btn { display: inline-flex; flex-grow: var(--dmr-tk-btn-grow, 0); align-items: center; justify-content: center; gap: 8px; white-space: nowrap; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease; }
.dmr-tk .dmr-tk__btn:is(:hover, :focus-visible) { transform: translateY(-1px); box-shadow: 0 6px 18px var(--dmr-tk-glow, rgba(212,255,57,.28)); text-decoration: none; }
.dmr-tk .dmr-tk__btn:focus-visible { outline: 3px solid; outline-offset: 3px; }
.dmr-tk__btn svg { width: 16px; height: auto; aspect-ratio: 1; flex: 0 0 auto; transition: transform .2s ease; }
.dmr-tk__btn:is(:hover, :focus-visible) svg { transform: translateX(3px); }
/* phones: the first message starts on the right, then joins the loop at the same speed */
@keyframes dmr-tk-start { from { transform: translateX(var(--dmr-tk-from)); } to { transform: translateX(0); } }
@media (max-width: 767px) {
	.dmr-tk__track { --dmr-tk-from: 365px; --dmr-tk-in: calc(4.13s * var(--dmr-tk-k)); animation: dmr-tk-start var(--dmr-tk-in) linear both, dmr-tk-scroll calc(var(--dmr-tk-set) * var(--dmr-tk-copies, 2)) linear var(--dmr-tk-in) infinite; }
}
@media (max-width: 620px) { .dmr-tk__track { --dmr-tk-from: 225px; --dmr-tk-in: calc(2.55s * var(--dmr-tk-k)); } }
@media (max-width: 480px) { .dmr-tk__track { --dmr-tk-from: 155px; --dmr-tk-in: calc(1.76s * var(--dmr-tk-k)); } }
@media (max-width: 400px) { .dmr-tk__track { --dmr-tk-from: 105px; --dmr-tk-in: calc(1.19s * var(--dmr-tk-k)); } }
@media (max-width: 345px) { .dmr-tk__track { --dmr-tk-from: 60px; --dmr-tk-in: calc(.68s * var(--dmr-tk-k)); } }
@media (prefers-reduced-motion: reduce) {
	.dmr-tk__track { animation: none; transform: none; }
	.dmr-tk__group[aria-hidden="true"], .dmr-tk__set--copy { display: none; }
	.dmr-tk__rail { -webkit-mask-image: none; mask-image: none; overflow-x: auto; }
	.dmr-tk .dmr-tk__btn, .dmr-tk__btn svg { transition: none; }
}

/* ---------- Route stages ---------- */
.dmr-route { text-align: center; }
.dmr-route__list { display: grid; grid-template-columns: 1fr; margin: 0 auto; text-align: left; }
.dmr-route__card { position: relative; overflow: hidden; }
.dmr-route__wm { position: absolute; right: 14px; top: -0.12em; line-height: 1; z-index: 0; pointer-events: none; user-select: none; }
.dmr-route__tag, .dmr-route__title, .dmr-route__text, .dmr-route__out { position: relative; z-index: 1; }
.dmr-route__tag { display: inline-block; padding: 5px 12px; border-radius: 999px; margin-bottom: 16px; }
.dmr-route__title { margin: 0 0 10px; }
.dmr-route__text { margin: 0; }
.dmr-route__out { margin-top: 18px; padding-top: 14px; border-top: 2px solid transparent; }
.dmr-route__chip { display: inline-block; padding: 3px 10px; border-radius: 6px; margin-left: 4px; }
