/* Technology pages: editorial sections, process tabs, authentic hero logo. Scoped to .ulm-tech-detail. */
.ulm-tech-detail {
  --ted-blue: #0068ff;
  --ted-ink: #100b2e;
  --ted-muted: #4b5266;
  --ted-card: #f1f2f5;
  --ted-line: rgba(70, 80, 100, .14);
  --ted-tint: #e6efff;
}
html[data-ulm-theme=dark] .ulm-tech-detail {
  --ted-blue: #92bbff;
  --ted-ink: #f5f6fc;
  --ted-muted: #b9bfd0;
  --ted-card: #1d1f2b;
  --ted-line: #363b4c;
  --ted-tint: #232a40;
}

/* Retain the existing Elementor section spacing. */
.ulm-tech-detail .ulm-tech-editorial-section .elementor-widget-text-editor,
.ulm-tech-detail .ulm-tech-process-section .elementor-widget-text-editor { width: 100%; }

/* Editorial block */
.ulm-tech-detail .ulm-ted { display: grid; gap: clamp(20px, 2.4vw, 32px); margin-top: 18px; color: var(--ted-ink); }
.ulm-tech-detail .ulm-ted-copy { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 20px; align-items: start; max-width: 900px; }
.ulm-tech-detail .ulm-ted-mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; border-radius: 16px;
  background: var(--ted-tint); color: var(--ted-blue);
}
.ulm-tech-detail .ulm-ted-icon { width: 24px; height: 24px; }
.ulm-tech-detail .ulm-ted-text p { margin: 0 0 14px; }
.ulm-tech-detail .ulm-ted-text p:last-child { margin-bottom: 0; }
.ulm-tech-detail .ulm-ted-lead { font-size: clamp(19px, 1.5vw, 22px); line-height: 1.45; font-weight: 600; color: var(--ted-ink); }
.ulm-tech-detail .ulm-ted-body { color: var(--ted-muted); }

.ulm-tech-detail .ulm-ted-items {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px; margin: 0; padding: 0; list-style: none;
}
.ulm-tech-detail .ulm-ted-item {
  display: flex; gap: 14px; min-width: 0; margin: 0;
  padding: 22px 24px; border: 1px solid var(--ted-line); border-radius: 24px;
  background: var(--ted-card);
}
.ulm-tech-detail .ulm-ted-num { flex: 0 0 auto; padding-top: 3px; color: var(--ted-blue); font-size: 14px; font-weight: 700; letter-spacing: .02em; }
.ulm-tech-detail .ulm-ted-item-title { margin: 0 0 6px !important; font-size: 18px !important; line-height: 1.3 !important; letter-spacing: -.01em; color: var(--ted-ink); overflow-wrap: anywhere; }
.ulm-tech-detail .ulm-ted-item-text { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ted-muted); }
.ulm-tech-detail .ulm-ted--limits .ulm-ted-item { border-left: 3px solid var(--ted-blue); }

/* Process tabs (P R O C E S, home style) */
.ulm-tech-detail .ulm-tp { --tp-size: clamp(48px, 6vw, 76px); --tp-overlap: 10px; margin-top: 18px; }
.ulm-tech-detail .ulm-tp-intro { max-width: 820px; margin: 0 0 28px; }
.ulm-tech-detail .ulm-tp-tabs { display: none; }
.ulm-tech-detail .ulm-tp.is-enhanced .ulm-tp-tabs { display: flex; flex-wrap: nowrap; margin: 0 0 28px; padding: 4px; }
.ulm-tech-detail .ulm-tp-tab {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 var(--tp-size); width: var(--tp-size); height: var(--tp-size);
  margin: 0; padding: 0; box-sizing: border-box;
  border: 2px solid var(--ted-blue); border-radius: 50%;
  background: var(--ted-card); color: var(--ted-blue);
  font-family: "Manrope", sans-serif; font-weight: 700; font-size: calc(var(--tp-size) * .45); line-height: 1;
  cursor: pointer; transition: background-color .2s ease, color .2s ease;
}
.ulm-tech-detail .ulm-tp-tab + .ulm-tp-tab { margin-left: calc(-1 * var(--tp-overlap)); }
.ulm-tech-detail .ulm-tp-tab:hover,
.ulm-tech-detail .ulm-tp-tab[aria-selected=true] { background: var(--ted-blue); color: #fff; z-index: 1; }
html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-tab:hover,
html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-tab[aria-selected=true] { color: #fff; background: #0068ff; border-color: #0068ff; }
html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-tab { color: #fff; border-color: #0068ff; }
.ulm-tech-detail .ulm-tp-tab:focus-visible { z-index: 2; outline: 3px solid var(--ted-ink); outline-offset: 3px; }
.ulm-tech-detail .ulm-tp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

.ulm-tech-detail .ulm-tp-panels { display: grid; gap: 16px; }
.ulm-tech-detail .ulm-tp-panel {
  padding: clamp(24px, 3.4vw, 48px); border: 1px solid var(--ted-line); border-radius: 32px;
  background: var(--ted-card); color: var(--ted-ink); box-sizing: border-box;
}
.ulm-tech-detail .ulm-tp-panel[hidden] { display: none; }
.ulm-tech-detail .ulm-tp-panel:focus-visible { outline: 3px solid var(--ted-blue); outline-offset: 4px; }
.ulm-tech-detail .ulm-tp-panel p { margin: 0 0 14px; }
.ulm-tech-detail .ulm-tp-step { color: var(--ted-blue); font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.ulm-tech-detail .ulm-tp-title { margin: 0 0 6px !important; line-height: 1.2; color: var(--ted-ink); }
.ulm-tech-detail .ulm-tp-summary { font-weight: 600; font-size: clamp(18px, 1.4vw, 21px); }
.ulm-tech-detail .ulm-tp-text { max-width: 860px; color: var(--ted-muted); }
.ulm-tech-detail .ulm-tp-outcome {
  display: flex; gap: 10px; align-items: flex-start; margin: 22px 0 0 !important;
  padding: 16px 18px; border-radius: 18px; background: var(--ted-tint); color: var(--ted-ink);
}
.ulm-tech-detail .ulm-tp-outcome svg { flex: 0 0 auto; margin-top: 2px; color: var(--ted-blue); }

/* Authentic hero logo: center artwork within the unchanged badge */
.ulm-tech-detail .ulm-tech-logo-authentic .elementor-widget-container { display: flex; align-items: center; justify-content: center; }
.ulm-tech-detail .ulm-tech-hero > .ulm-tech-logo.ulm-tech-logo-authentic img {
  display: block !important; width: auto !important; max-width: min(78%, 190px) !important;
  max-height: 66px !important; height: auto !important;
  margin: 0 auto !important; object-fit: contain !important; object-position: center; transform: none !important;
}

@media (max-width: 767px) {
  .ulm-tech-detail .ulm-ted-copy { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .ulm-tech-detail .ulm-ted-mark { width: 44px; height: 44px; border-radius: 14px; }
  .ulm-tech-detail .ulm-ted-items { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ulm-tech-detail .ulm-ted-item { padding: 18px 20px; border-radius: 20px; }
  .ulm-tech-detail .ulm-tp { --tp-size: clamp(42px, 14vw, 56px); --tp-overlap: 6px; }
  .ulm-tech-detail .ulm-tp.is-enhanced .ulm-tp-tabs { justify-content: center; }
  .ulm-tech-detail .ulm-tp-panel { border-radius: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .ulm-tech-detail .ulm-tp-tab { transition: none; }
}

/* Process layout follows the homepage, while keeping technology-specific copy. */
@layer ulm-site-standard {
  .ulm-tech-detail .ulm-tech-process-section.ulm-tp-home-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 32px !important;
    row-gap: 0 !important;
    align-items: end;
  }
  .ulm-tech-detail .ulm-tp-home-layout > .ulm-tech-section-title {
    grid-column: 1;
    grid-row: 1;
    align-self: end !important;
    margin: 0 !important;
    width: auto !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout > .ulm-tech-process-widget,
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp {
    display: contents !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-intro {
    grid-column: 1;
    grid-row: 2;
    max-width: 820px;
    min-width: 0;
    margin: 24px 0 0 !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-nav {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: end;
    justify-self: end;
    position: relative;
    min-width: 0;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp.is-enhanced .ulm-tp-tabs {
    --tp-size: clamp(41.6px, 4.24vw, 70.4px);
    --tp-overlap: 9.6px;
    display: flex !important;
    justify-content: center;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab {
    border: 1px solid #0068ff !important;
    background: #fff !important;
    color: #0068ff !important;
    font-family: Manrope, sans-serif !important;
    font-size: clamp(18px, 3.68vw, 35.2px) !important;
    font-weight: 700 !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab:hover,
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab[aria-selected=true] {
    background: #0068ff !important;
    color: #fff !important;
  }
  html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab {
    background: #1d1f2b !important;
    color: #fff !important;
    border-color: #0068ff !important;
  }
  html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab:hover,
  html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab[aria-selected=true] {
    background: #0068ff !important;
    color: #fff !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab .ulm-tp-letter { color: inherit !important; }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow { display: none !important; }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panels {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-self: center;
    width: 80%;
    min-width: 0;
    margin-top: 40px !important;
    touch-action: pan-y pinch-zoom;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panel {
    padding: 30.72px !important;
    border: 0 !important;
    border-radius: 25.6px !important;
    background: #f4f4f4 !important;
    color: #07012d !important;
  }
  html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panel {
    background: #1d1f2b !important;
    color: #f3f4f8 !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-step {
    color: #596579 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    margin: 0 0 10px !important;
  }
  html[data-ulm-theme=dark] .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-step { color: #aeb8ca !important; }
  html body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-title {
    color: inherit !important;
    font-weight: 700 !important;
    margin: 0 !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-summary {
    color: inherit !important;
    margin: 6px 0 12px !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-text,
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-outcome {
    color: inherit !important;
    margin: 0 0 12px !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-outcome {
    display: block !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-outcome svg { display: none; }
  .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panel p:last-child { margin-bottom: 0 !important; }
  @media (max-width: 1024px) {
    .ulm-tech-detail .ulm-tech-process-section.ulm-tp-home-layout {
      grid-template-columns: minmax(0, 1fr);
    }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-nav {
      grid-column: 1;
      grid-row: 3;
      justify-self: stretch;
      margin-top: 28px !important;
    }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp.is-enhanced .ulm-tp-tabs {
      --tp-size: clamp(44px, 8.8vw, 70.4px);
      --tp-overlap: 8px;
      width: 100% !important;
    }
    html body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow {
      position: absolute !important;
      top: 50% !important;
      z-index: 3 !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      box-sizing: border-box !important;
      width: 40px !important;
      height: 40px !important;
      min-width: 0 !important;
      padding: 0 !important;
      border: 0 !important;
      border-radius: 50% !important;
      background: transparent !important;
      color: #5f6d7d !important;
      line-height: 0 !important;
      transform: translateY(-50%) !important;
      cursor: pointer;
    }
    html body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow--previous { left: 0 !important; right: auto !important; }
    html body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow--next { right: 0 !important; left: auto !important; }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow svg { display: block; flex: 0 0 20px; width: 20px !important; height: 20px !important; }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow--previous svg { transform: rotate(180deg); }
    html body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow:hover { color: #0068ff !important; }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow:focus-visible { outline: 2px solid #0068ff; outline-offset: 2px; }
    html[data-ulm-theme=dark] body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow { color: #c0c2cf !important; }
    html[data-ulm-theme=dark] body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-arrow:hover { color: #76adff !important; }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panels { grid-row: 4; margin-top: 48px !important; }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panel { padding: 15.36px !important; }
  }
  @media (max-width: 767px) {
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp.is-enhanced .ulm-tp-tabs {
      --tp-size: min(44px, calc((100vw - 112px + 40px) / 6));
    }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-tab { border-width: 2px !important; }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panels { width: 100%; }
    .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-panel { padding: 19.2px !important; border-radius: 32px !important; }
  }
}
@layer ulm-paragraph-typography {
  html body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-step {
    font-size: 13px !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
  }
  html body.page #Content .ulm-tech-detail .ulm-tp-home-layout .ulm-tp-summary {
    font-size: 15px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
  }
}
