/*
 * Edzen Motion, hero, marquee, rail and overlay-card presentation.
 *
 * Deliberately unlayered: the standalone theme ships unlayered element resets
 * that would otherwise outrank layered widget rules. Hidden start states exist
 * only under html.edzen-motion-on, which the script sets after confirming that
 * motion is allowed (no reduced-motion preference, not the Elementor editor).
 * Without JavaScript every element is simply visible.
 */
.edzen-motion { --edzen-ease: cubic-bezier(0.2, 0.7, 0.1, 1); }

/* ---- Reveal ---------------------------------------------------------- */
html.edzen-motion-on .edzen-motion[data-edzen-reveal] {
 transition: opacity var(--edzen-motion-time, 800ms) var(--edzen-ease) var(--edzen-motion-delay, 0ms),
  transform var(--edzen-motion-time, 800ms) var(--edzen-ease) var(--edzen-motion-delay, 0ms),
  filter var(--edzen-motion-time, 800ms) var(--edzen-ease) var(--edzen-motion-delay, 0ms),
  clip-path calc(var(--edzen-motion-time, 800ms) * 1.2) var(--edzen-ease) var(--edzen-motion-delay, 0ms);
}
html.edzen-motion-on .edzen-motion[data-edzen-reveal]:not(.is-in) { opacity: 0; }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="rise"]:not(.is-in) { transform: translate3d(0, var(--edzen-motion-distance, 48px), 0); }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="sink"]:not(.is-in) { transform: translate3d(0, calc(var(--edzen-motion-distance, 48px) * -1), 0); }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="slide-start"]:not(.is-in) { transform: translate3d(calc(var(--edzen-motion-distance, 48px) * -1), 0, 0); }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="slide-end"]:not(.is-in) { transform: translate3d(var(--edzen-motion-distance, 48px), 0, 0); }
html[dir="rtl"].edzen-motion-on .edzen-motion[data-edzen-reveal="slide-start"]:not(.is-in) { transform: translate3d(var(--edzen-motion-distance, 48px), 0, 0); }
html[dir="rtl"].edzen-motion-on .edzen-motion[data-edzen-reveal="slide-end"]:not(.is-in) { transform: translate3d(calc(var(--edzen-motion-distance, 48px) * -1), 0, 0); }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="zoom"]:not(.is-in) { transform: scale(0.9); }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="blur"]:not(.is-in) { filter: blur(14px); }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="mask"]:not(.is-in) { opacity: 1; clip-path: inset(0 0 100% 0); }
html.edzen-motion-on .edzen-motion[data-edzen-reveal="mask"].is-in { clip-path: inset(0 0 0 0); }

/* ---- Stagger --------------------------------------------------------- */
html.edzen-motion-on .edzen-motion[data-edzen-stagger] .edzen-motion-item {
 transition: opacity var(--edzen-motion-time, 800ms) var(--edzen-ease) calc(var(--edzen-motion-delay, 0ms) + var(--edzen-i, 0) * var(--edzen-motion-step, 90ms)),
  transform var(--edzen-motion-time, 800ms) var(--edzen-ease) calc(var(--edzen-motion-delay, 0ms) + var(--edzen-i, 0) * var(--edzen-motion-step, 90ms));
}
html.edzen-motion-on .edzen-motion[data-edzen-stagger]:not(.is-in) .edzen-motion-item {
 opacity: 0;
 transform: translate3d(0, var(--edzen-motion-distance, 48px), 0);
}

/* ---- Heading text effects -------------------------------------------- */
.edzen-w { display: inline-block; overflow: hidden; vertical-align: top; padding-block-end: 0.14em; margin-block-end: -0.14em; }
.edzen-w > span { display: inline-block; }
html.edzen-motion-on .edzen-motion[data-edzen-text] .edzen-w > span,
html.edzen-motion-on .edzen-motion[data-edzen-text] .edzen-line > span {
 transition: transform calc(var(--edzen-motion-time, 800ms) * 1.1) var(--edzen-ease) calc(var(--edzen-motion-delay, 0ms) + var(--edzen-i, 0) * 55ms);
}
html.edzen-motion-on .edzen-motion[data-edzen-text]:not(.is-in) .edzen-w > span,
html.edzen-motion-on .edzen-motion[data-edzen-text]:not(.is-in) .edzen-line > span { transform: translate3d(0, 112%, 0); }
.edzen-line { display: block; overflow: hidden; padding-block-end: 0.14em; margin-block-end: -0.14em; }
.edzen-line > span { display: block; }

/* ---- Scroll-linked depth --------------------------------------------- */
.edzen-motion[data-edzen-scroll="drift"] { translate: 0 var(--edzen-py, 0px); will-change: translate; }
.edzen-motion[data-edzen-scroll="zoom"] { overflow: hidden; }
.edzen-motion[data-edzen-scroll="zoom"] img { scale: var(--edzen-zoom, 1); transform-origin: 50% 50%; will-change: scale; }

/* ---- Hover and focus ------------------------------------------------- */
.edzen-motion[data-edzen-hover="lift"] { transition: transform 0.4s var(--edzen-ease); }
.edzen-motion[data-edzen-hover="lift"]:hover,
.edzen-motion[data-edzen-hover="lift"]:focus-within { transform: translate3d(0, -8px, 0); }
.edzen-motion[data-edzen-hover="zoom"] { overflow: hidden; }
.edzen-motion[data-edzen-hover="zoom"] img { transition: transform 0.9s var(--edzen-ease); }
.edzen-motion[data-edzen-hover="zoom"]:hover img,
.edzen-motion[data-edzen-hover="zoom"]:focus-within img { transform: scale(1.07); }
.edzen-motion[data-edzen-hover="tilt"] { transition: transform 0.25s ease-out; transform: perspective(900px) rotateX(var(--edzen-rx, 0deg)) rotateY(var(--edzen-ry, 0deg)); }

/* ---- Hero ------------------------------------------------------------ */
.edzen-el--hero { position: relative; display: grid; isolation: isolate; color: var(--edzen-color-heading, #14202b); min-block-size: var(--edzen-hero-height, 88vh); }
.edzen-el--hero[data-tone="light"] { color: #fff; }
.edzen-el--hero .edzen-el-hero-media { position: absolute; inset: 0; z-index: -2; overflow: hidden; margin: 0; }
.edzen-el--hero .edzen-el-hero-media img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; max-inline-size: none; }
.edzen-el--hero .edzen-el-hero-overlay { position: absolute; inset: 0; z-index: -1; background: var(--edzen-hero-overlay, rgb(8 18 30 / 55%)); }
.edzen-el--hero .edzen-el-hero-body { align-self: var(--edzen-hero-vertical, end); justify-self: var(--edzen-hero-horizontal, start); inline-size: 100%; max-inline-size: var(--edzen-hero-max, 62rem); padding: clamp(7rem, 16vh, 11rem) clamp(1.25rem, 5vw, 4rem) clamp(2.5rem, 8vh, 5rem); box-sizing: border-box; }
.edzen-el--hero .edzen-el-hero-eyebrow { margin: 0 0 1.25rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8125rem; }
.edzen-el--hero .edzen-el-hero-title { margin: 0; font-size: clamp(2.5rem, 7.5vw, 6.5rem); line-height: 1.02; letter-spacing: -0.035em; font-weight: 700; color: inherit; text-wrap: balance; }
.edzen-el--hero[data-variant="cover"] .edzen-el-hero-body { text-align: start; }
.edzen-el--hero .edzen-el-hero-intro { margin: 1.75rem 0 0; max-inline-size: 38rem; font-size: clamp(1.0625rem, 1.5vw, 1.3125rem); line-height: 1.55; color: inherit; opacity: 0.92; }
.edzen-el--hero .edzen-el-actions { display: flex; flex-wrap: wrap; gap: 0.875rem; margin-block-start: 2.25rem; }
.edzen-el--hero[data-variant^="split"] { grid-template-columns: minmax(0, 1fr); }
.edzen-el--hero[data-variant^="split"] .edzen-el-hero-media { position: relative; inset: auto; z-index: 0; min-block-size: 22rem; }
.edzen-el--hero[data-variant^="split"] .edzen-el-hero-overlay { display: none; }
.edzen-el--hero[data-variant^="split"] .edzen-el-hero-body { align-self: center; padding-block: clamp(3rem, 8vw, 6rem); }
.edzen-el--hero[data-variant^="split"] .edzen-el-hero-title { font-size: clamp(2.25rem, 4.6vw, 4.5rem); }
@media (min-width: 64rem) {
 .edzen-el--hero[data-variant^="split"] { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
 .edzen-el--hero[data-variant="split-end"] .edzen-el-hero-media { order: 2; }
 .edzen-el--hero[data-variant^="split"] .edzen-el-hero-media { min-block-size: var(--edzen-hero-height, 88vh); }
}
.edzen-el--hero .edzen-el-hero-cue { display: inline-flex; align-items: center; justify-content: center; inline-size: 3rem; block-size: 3rem; margin-block-start: 2.5rem; border: 1px solid currentcolor; border-radius: 50%; color: inherit; text-decoration: none; }
.edzen-el--hero .edzen-el-hero-cue svg { inline-size: 1.125rem; block-size: 1.125rem; }
html.edzen-motion-on .edzen-el--hero .edzen-el-hero-cue svg { animation: edzen-cue 2.2s ease-in-out 3; }
@keyframes edzen-cue { 0%, 100% { transform: translateY(-3px); } 50% { transform: translateY(4px); } }

.edzen-el--hero .edzen-el-btn--outline { background: transparent; color: inherit; border: 1px solid currentcolor; --theme-link-initial-color: currentcolor; --theme-link-hover-color: var(--edzen-color-heading, #14202b); }
.edzen-el--hero[data-tone="light"] .edzen-el-btn--outline { --theme-link-initial-color: #fff; color: #fff; }
.edzen-el--hero .edzen-el-btn--outline:hover,
.edzen-el--hero .edzen-el-btn--outline:focus-visible { background: #fff; color: var(--edzen-color-heading, #14202b); }
.edzen-el--hero[data-tone="light"] .edzen-el-btn:not(.edzen-el-btn--outline) { --theme-link-initial-color: var(--edzen-color-heading, #14202b); --theme-link-hover-color: var(--edzen-color-heading, #14202b); background: #fff; color: var(--edzen-color-heading, #14202b); }
.edzen-el--hero[data-tone="light"] .edzen-el-btn:not(.edzen-el-btn--outline):hover,
.edzen-el--hero[data-tone="light"] .edzen-el-btn:not(.edzen-el-btn--outline):focus-visible { background: var(--edzen-color-surface-alt, #f1f4f8); }

/* ---- Marquee --------------------------------------------------------- */
.edzen-el--marquee { position: relative; display: flex; align-items: center; gap: 1rem; padding-inline-end: 1rem; }
.edzen-el--marquee .edzen-el-marquee-viewport { flex: 1 1 auto; min-inline-size: 0; overflow: hidden; }
.edzen-el--marquee .edzen-el-marquee-track { display: flex; inline-size: max-content; animation: edzen-marquee var(--edzen-marquee-time, 40s) linear infinite; }
.edzen-el--marquee[data-direction="end"] .edzen-el-marquee-track { animation-direction: reverse; }
.edzen-el--marquee[data-paused="true"] .edzen-el-marquee-track { animation-play-state: paused; }
.edzen-el--marquee .edzen-el-marquee-group { display: flex; flex: none; align-items: center; margin: 0; padding: 0; list-style: none; }
.edzen-el--marquee .edzen-el-marquee-item { display: inline-flex; align-items: center; gap: 1.5rem; padding-inline-end: 1.5rem; white-space: nowrap; font-size: clamp(2rem, 6vw, 5rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; }
.edzen-el--marquee .edzen-el-marquee-item a { color: inherit; text-decoration: none; }
.edzen-el--marquee .edzen-el-marquee-item::after { content: var(--edzen-marquee-mark, "\2022"); font-size: 0.5em; opacity: 0.55; }
.edzen-el--marquee .edzen-el-marquee-toggle { flex: none; min-inline-size: 2.75rem; min-block-size: 2.75rem; padding: 0 0.875rem; font: inherit; font-size: 0.875rem; font-weight: 600; color: inherit; background: transparent; border: 1px solid currentcolor; border-radius: 999px; cursor: pointer; opacity: 0.8; }
.edzen-el--marquee .edzen-el-marquee-toggle:hover,
.edzen-el--marquee .edzen-el-marquee-toggle:focus-visible { opacity: 1; }
@keyframes edzen-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
[dir="rtl"] .edzen-el--marquee .edzen-el-marquee-track { animation-name: edzen-marquee-rtl; }
@keyframes edzen-marquee-rtl { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(50%, 0, 0); } }

/* ---- Horizontal rail layout ------------------------------------------ */
.edzen-el .edzen-el-grid[data-layout="rail"] { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: min(82%, 24rem); gap: var(--edzen-rail-gap, 1.5rem); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 0; padding-block-end: 1rem; scrollbar-width: none; }
.edzen-el .edzen-el-grid[data-layout="rail"] > .edzen-el-item { scroll-snap-align: start; }
.edzen-el .edzen-el-grid[data-layout="rail"]:focus-visible { outline: 2px solid var(--edzen-color-focus, currentcolor); outline-offset: 4px; }
.edzen-el .edzen-el-rail-nav { display: flex; gap: 0.625rem; margin-block-start: 1.25rem; }
.edzen-el .edzen-el-rail-nav button { display: inline-flex; align-items: center; justify-content: center; inline-size: 3rem; block-size: 3rem; padding: 0; color: inherit; background: transparent; border: 1px solid currentcolor; border-radius: 50%; cursor: pointer; }
.edzen-el .edzen-el-rail-nav button:disabled { opacity: 0.3; cursor: default; }
.edzen-el .edzen-el-rail-nav svg { inline-size: 1.125rem; block-size: 1.125rem; }
[dir="rtl"] .edzen-el .edzen-el-rail-nav svg { transform: scaleX(-1); }

/* ---- Overlay cards (Programs, records, content cards) ----------------- */
.edzen-el[data-card="overlay"] .edzen-el-program,
.edzen-el[data-card="overlay"] .edzen-el-record,
.edzen-el[data-card="overlay"] .edzen-el-composition-entry { position: relative; display: grid; align-content: end; isolation: isolate; overflow: hidden; border: 0; padding: 1.5rem; min-block-size: 24rem; color: #fff; background: var(--edzen-color-heading, #14202b); }
.edzen-el[data-card="overlay"] .edzen-el-image { position: absolute; inset: 0; z-index: -2; margin: 0; }
.edzen-el[data-card="overlay"] .edzen-el-img { block-size: 100%; inline-size: 100%; object-fit: cover; transition: transform 1s var(--edzen-ease, ease); }
.edzen-el[data-card="overlay"] .edzen-el-program::before,
.edzen-el[data-card="overlay"] .edzen-el-record::before,
.edzen-el[data-card="overlay"] .edzen-el-composition-entry::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgb(5 12 22 / 90%) 0%, rgb(5 12 22 / 68%) 42%, rgb(5 12 22 / 22%) 100%); }
.edzen-el[data-card="overlay"] .edzen-el-program:hover .edzen-el-img,
.edzen-el[data-card="overlay"] .edzen-el-record:hover .edzen-el-img,
.edzen-el[data-card="overlay"] .edzen-el-composition-entry:hover .edzen-el-img { transform: scale(1.06); }
.edzen-el[data-card="overlay"] .edzen-el-program-body,
.edzen-el[data-card="overlay"] .edzen-el-record-body { padding: 1.5rem; }
.edzen-el[data-card="overlay"] .edzen-el-title,
.edzen-el[data-card="overlay"] .edzen-el-text,
.edzen-el[data-card="overlay"] .edzen-el-meta,
.edzen-el[data-card="overlay"] .edzen-el-meta dt,
.edzen-el[data-card="overlay"] .edzen-el-entry-title { color: #fff; }
.edzen-el[data-card="overlay"] .edzen-el-meta dt { opacity: 0.8; }
.edzen-el[data-card="overlay"] .edzen-el-btn { color: #fff; position: static; }
.edzen-el[data-card="overlay"] .edzen-el-btn::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.edzen-el[data-card="overlay"] .edzen-el-btn:focus-visible { outline: 3px solid #fff; outline-offset: -6px; }

/* ---- Link list ------------------------------------------------------- */
.edzen-el--links .edzen-el-linklist { display: grid; gap: 0.25rem 2rem; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(var(--edzen-links-cols, 1), minmax(0, 1fr)); }
.edzen-el--links .edzen-el-linkrow a { display: grid; gap: 0.125rem; padding-block: 0.625rem; color: inherit; text-decoration: none; border-block-end: 1px solid var(--edzen-color-border, #d8dfe6); min-block-size: 2.75rem; }
.edzen-el--links .edzen-el-linkrow a:hover .edzen-el-linklabel,
.edzen-el--links .edzen-el-linkrow a:focus-visible .edzen-el-linklabel { text-decoration: underline; text-underline-offset: 0.25em; }
.edzen-el--links .edzen-el-linklabel { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; }
.edzen-el--links .edzen-el-linklabel::after { content: "\2192"; margin-inline-start: auto; opacity: 0.55; transition: transform 0.3s ease; }
[dir="rtl"] .edzen-el--links .edzen-el-linklabel::after { content: "\2190"; }
.edzen-el--links .edzen-el-linkrow a:hover .edzen-el-linklabel::after { transform: translateX(4px); }
.edzen-el--links .edzen-el-linkdesc { font-size: 0.875rem; }
.edzen-el--links .edzen-el-badge { padding: 0.125rem 0.5rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--edzen-color-on-primary, #fff); background: var(--edzen-color-primary, #0d4a3b); border-radius: 999px; }
@media (max-width: 40rem) { .edzen-el--links .edzen-el-linklist { grid-template-columns: minmax(0, 1fr); } }

/* ---- Reduced motion -------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
 .edzen-motion, .edzen-motion .edzen-motion-item, .edzen-motion img { transition: none; }
 .edzen-motion[data-edzen-hover]:hover, .edzen-motion[data-edzen-hover]:focus-within { transform: none; }
 .edzen-el--marquee .edzen-el-marquee-track { animation: none; inline-size: auto; flex-wrap: wrap; }
 .edzen-el--marquee .edzen-el-marquee-group { flex-wrap: wrap; }
 .edzen-el--marquee .edzen-el-marquee-group[aria-hidden="true"] { display: none; }
 .edzen-el--marquee .edzen-el-marquee-toggle { display: none; }
 .edzen-el .edzen-el-grid[data-layout="rail"] { scroll-behavior: auto; }
 .edzen-el[data-card="overlay"] .edzen-el-img { transition: none; }
}

/* ---- Tighter record rhythm (layered widget spacing loses to the theme reset) ---- */
.edzen-el .edzen-el-record-body > .edzen-el-text,
.edzen-el .edzen-el-program-body > .edzen-el-text { margin-block: 0.5rem 0.75rem; }
.edzen-el .edzen-el-record-body > .edzen-el-meta,
.edzen-el .edzen-el-program-body > .edzen-el-meta { margin-block: 0.75rem; }
.edzen-el .edzen-el-btn--link { margin-block-start: 0; min-block-size: 2.5rem; }

/* Keep card rails scrollable without a visible browser scrollbar. */
.edzen-el .edzen-el-grid[data-layout="rail"]::-webkit-scrollbar { display: none; }

@media (hover:hover) and (pointer:fine){.edzen-el--marquee:hover .edzen-el-marquee-track{animation-play-state:paused;}}

/* Older Safari fallback for individual transform properties. */
@supports not (translate:0 1px){.edzen-motion[data-edzen-scroll="drift"].is-in{transform:translate3d(0,var(--edzen-py,0px),0)}}
@supports not (scale:1){.edzen-motion[data-edzen-scroll="zoom"] img{transform:scale(var(--edzen-zoom,1))}}
html:not(.edzen-motion-on) .edzen-motion{--edzen-py:0px;--edzen-zoom:1}

.edzen-el--marquee[data-link-focus="true"] .edzen-el-marquee-track{animation-play-state:paused;}

/* Media Hero uses the same scoped CTA controls while retaining its original spacing. */
.edzen-el--hero .edzen-el-actions>.edzen-el-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;max-inline-size:100%;white-space:normal;overflow-wrap:anywhere;}
.edzen-el--hero .edzen-el-sl-icon{display:inline-flex;align-items:center;flex:none;line-height:1;font-size:1em;}
.edzen-el--hero .edzen-el-sl-icon svg{inline-size:1em;block-size:1em;fill:currentColor;}
.edzen-el--hero .edzen-el-actions>.edzen-el-btn:focus-visible{outline:3px solid currentColor;outline-offset:4px;}
