/* Sitekit V2 — CMI | Compas Events. Glue only; everything else is settings. */
html, body { overflow-x: clip; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; margin-block-end: 0 !important; }
.elementor-widget-text-editor p { margin-block-start: 0; }

/* Links inside copy: inherit the copy colour, underlined like the source. */
.cm-copy a { color: inherit; text-decoration: underline; text-underline-offset: .16em;
  text-decoration-thickness: 1px; }
.cm-copy a:hover { opacity: .78; }
.cm-link-violet a { color: #3006D4; }
.cm-link-gold a { color: #FFCA59; }
.cm-link-grape a { color: #60168D; text-decoration: none; }

/* Bullet lists in text editors (marker colour has no control). */
.cm-bullets ul { margin: 0; padding-left: 1.1em; }
.cm-bullets li { margin: 0 0 .9em; }
.cm-bullets li:last-child { margin-bottom: 0; }
.cm-mk-orange li::marker { color: #E94A26; }
.cm-mk-magenta li::marker { color: #D11FD1; }
.cm-mk-white li::marker { color: #FFFFFF; }
.cm-by-list ul { margin-top: .35em; }
.cm-by-list li { font-size: .75em; font-style: italic; font-weight: 400; line-height: 1.4; margin: 0 0 .25em; }
.cm-cn-list ul { padding-left: 5.1em; }
.cm-cn-list li { margin: 0 0 .5em; padding-left: .2em; }
.cm-cn-list li::marker { font-size: 1.3em; }
@media (max-width: 767px) { .cm-cn-list ul { padding-left: 1.6em; } }

/* Home — the outlined echo behind the headline (text copied by ECHO_JS). */
.cm-echo .elementor-heading-title { position: relative; z-index: 1; }
.cm-echo .elementor-heading-title::before { content: attr(data-echo); position: absolute;
  left: -.075em; top: .085em; z-index: -1; color: transparent; white-space: pre-wrap;
  -webkit-text-stroke: 1.5px rgba(255,255,255,.9); pointer-events: none; }
.cm-outline .elementor-heading-title { color: transparent !important;
  -webkit-text-stroke: 1.2px #FFFFFF; }
@media (min-width: 1025px) { .cm-outline .elementor-heading-title { white-space: nowrap; } }
.cm-home-intro a { text-underline-offset: .22em; }

/* Home — event logos: white by default, colour on hover, link glyph above. */
.cm-event { text-decoration: none; }
.cm-event .cm-logo-normal, .cm-event .cm-logo-hover, .cm-event .cm-logo-link { transition: opacity .25s ease, transform .25s ease; }
.cm-event .cm-logo-hover { opacity: 0; }
.cm-logo-pair > .cm-logo-hover { top: 0; left: 0; width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center; }
.cm-event:hover .cm-logo-hover, .cm-event:focus-visible .cm-logo-hover { opacity: 1; }
.cm-event:hover .cm-logo-normal, .cm-event:focus-visible .cm-logo-normal { opacity: 0; }
.cm-event .cm-logo-link { opacity: 0; transform: translateY(4px); }
.cm-event:hover .cm-logo-link, .cm-event:focus-visible .cm-logo-link { opacity: 1; transform: none; }

/* CES — portrait fades to 23% on hover, revealing the LinkedIn badge under it. */
.cm-ces-photo img { transition: opacity .25s ease; }
.cm-ces-portrait:hover .cm-ces-photo img { opacity: .23; }
/* Home — dates grow on hover, as on Readymag (scale 122%). */
.cm-event .elementor-widget-heading { transition: transform .25s ease; }
.cm-event:hover .elementor-widget-heading { transform: scale(1.22); }
/* CES — team names carry a black rule under the teal (the source's underline). */
.cm-ul .elementor-heading-title { text-decoration: underline; text-decoration-color: #000;
  text-decoration-thickness: 1px; text-underline-offset: .45em; }
.cm-ul .elementor-heading-title a { color: inherit; }
/* CES hero copy sits in the plate's card on desktop; below 1025 there is no
   card behind it, so give the column its own. */
@media (max-width: 1024px) {
  .cm-card-m { background: rgba(9, 8, 52, .86); border: 1px solid rgba(86, 244, 238, .65);
    border-radius: 0 28px 0 0; }
}

/* Beyond — LinkedIn badge fades in over the host portrait. */
.cm-by-portrait { position: relative; }
.cm-by-portrait .cm-by-in { opacity: 0; transition: opacity .25s ease; }
.cm-by-portrait:hover .cm-by-in { opacity: 1; }

/* Cannes — fixed plate on desktop; phones ignore fixed and need a scrim. */
@media (max-width: 1024px) {
  .cm-cannes { background-attachment: scroll !important; background-position: 28% top !important; }
  .cm-cannes::before { content: ""; position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(180deg, rgba(0,1,8,.45), rgba(0,1,8,.82) 40%); pointer-events: none; }
  .cm-cannes > .e-con-inner { position: relative; z-index: 1; }
}
.cm-cannes-car .swiper-slide-image { border-radius: 0; }
/* Visually hidden page titles (the visible title is artwork). */
.cm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; margin: -1px; }
/* A fixed logo sits under the admin bar when logged in. */
body.admin-bar .cm-logo.elementor-fixed { margin-top: 32px; }
