.sem-section { margin-top: 220px; }
.sem-section h2 { margin: 0 0 48px; font-size: var(--fs-h2); font-weight: 700; line-height: 1.1; letter-spacing: -.025em; }
.sem-section h3 { font-weight: 700; line-height: 1.2; }
.sem-process { padding: 60px 40px; border-radius: 48px; background: #f7f8fc; }
.sem-process__steps { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 42px; }
.sem-process__step { position: relative; min-width: 0; }
.sem-process__number { display: block; margin-bottom: 18px; color: var(--product-accent); font-size: 38px; font-weight: 700; line-height: 1; }
.sem-process h3 { margin-bottom: 12px; font-size: clamp(22px,2vw,30px); }
.sem-process p { font-size: 18px; line-height: 1.42; }
.sem-process__step:not(:last-child)::after { content: '→'; position: absolute; right: -32px; top: 50%; color: var(--product-accent); font-size: 30px; }

.sem-features { height: 460vh; position: relative; scroll-margin-top: 0 !important; }
.sem-features__sticky { position: sticky; top: 0; height: 100svh; min-height: 650px; padding: 100px 0 50px; display: flex; flex-direction: column; }
.sem-features h2 { flex-shrink: 0; }
.sem-features__layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 56px; flex: 1; min-height: 0; }
.sem-features__media { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.sem-feature-pane[hidden] { display: none; }
.sem-feature-pane img { width: 100%; max-height: min(52vh,560px); object-fit: contain; border-radius: 12px; }
.monitoring-page--sem #features .sem-feature-pane img {
  filter: drop-shadow(0 4px 10px rgba(27,50,42,.14));
}
.sem-feature-pane > button { display: block; width: 100%; background: transparent; border: 0; cursor: zoom-in; }
.sem-features__window { overflow: hidden; position: relative; min-height: 0; mask-image: linear-gradient(#000 0%,#000 85%,transparent); }
.sem-features__list { transition: transform .3s ease; }
.sem-feature-item { position: relative; padding: 0 12px 44px 44px; border-left: 3px solid #e4dfdb; min-height: 210px; }
.sem-feature-item.is-active { border-left-color: var(--product-accent); }
.sem-feature-item__button { text-align: left; border: 0; background: none; cursor: pointer; width: 100%; }
.sem-feature-item__number { position: absolute; left: -38px; top: 5px; font-size: 14px; color: #6c625b; }
.sem-features__list { margin-left: 38px; }
.sem-feature-item h3 { font-size: var(--fs-h3-lg); margin: 0 0 14px; }
.sem-feature-item.is-active h3 { color: var(--product-accent); }
.sem-feature-item p { max-width: 600px; font-size: var(--fs-body-sm); line-height: 1.5; color: #4d4d4d; }
.sem-features__controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 22px; }
.sem-features__controls button { width: 44px; height: 44px; border: 1px solid var(--product-accent); color: var(--product-accent); border-radius: 50%; background: #fff; font-size: 24px; cursor: pointer; }
.sem-features__controls button:disabled { opacity: .3; cursor: default; }
.sem-features__status { font-size: 16px; min-width: 54px; text-align: center; }
.sem-compare { --reveal: 50%; position: relative; width: 100%; aspect-ratio: 1237/788; overflow: hidden; border-radius: 12px; background: #fff; }
.sem-compare img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: fill; border-radius: 0; }
.sem-compare__after { clip-path: inset(0 0 0 var(--reveal)); }
.sem-compare__divider { position: absolute; top: 0; bottom: 0; left: var(--reveal); width: 3px; background: var(--product-accent); transform: translateX(-50%); pointer-events: none; }
.sem-compare__divider::after { content: ''; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--product-accent) url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2012h18M7%208l-4%204%204%204M17%208l4%204-4%204%22%2F%3E%3C%2Fsvg%3E") center / 28px 28px no-repeat; color: #fff; font-size: 24px; }
.sem-compare input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; touch-action: pan-y; }
.sem-compare:focus-within { outline: 3px solid var(--product-accent); outline-offset: 4px; }
.sem-compare__labels { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 14px; font-weight: 700; color: var(--product-accent); }
.sem-compare-zoom { display: block; margin: 14px auto 0; background: none; color: var(--product-accent); font-size: 14px; text-decoration: underline; cursor: pointer; }

.sem-reporting { padding: 60px; border-radius: 48px; background: #f7f8fc; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 60px; }
.sem-reporting h2 { margin-bottom: 32px; }
.sem-reporting #reporting-title { transform:translateY(-20px); }
.sem-reporting__chart { width: 100%; border: 0; padding: 12px; border-radius: 16px; background: #fff; cursor: zoom-in; }
.sem-reporting__chart img { width: 100%; height: auto; }
.sem-reporting__list { border-left: 3px solid #e4dfdb; padding-left: 40px; display: flex; flex-direction: column; justify-content: space-between; gap: 44px; }
.sem-reporting h3 { font-size: 29px; margin: 0 0 12px; }
.sem-reporting p { font-size: 19px; line-height: 1.5; color: #4d4d4d; }

.sem-economic__grid { display: grid; grid-template-columns: minmax(0,.42fr) minmax(0,.58fr); gap: 20px; }
.sem-economic__main { padding: 32px; background: var(--product-soft); border-radius: 32px; }
.sem-economic__main h3 { font-size: var(--fs-h3-lg); margin-bottom: 24px; }
.sem-economic__main h3 span { color: var(--product-accent); }
.sem-economic__main ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 20px; font-size: var(--fs-body); line-height: 1.5; }
.sem-economic__main li { padding-left: 20px; position: relative; }
.sem-economic__main li::before { content: ''; position: absolute; left: 0; top: .65em; width: 5px; height: 5px; border-radius: 1px; background: var(--product-accent); }
.sem-economic__side { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.sem-economic__card { padding: 30px; border-radius: 32px; background: #f7f8fc; }
.sem-economic__card:first-child { grid-column: 1/-1; }
.sem-economic__card svg,.sem-economic__main > svg { width: 40px; height: 40px; color: var(--product-accent); margin-bottom: 24px; }
.sem-economic__card h3 { font-size: var(--fs-h3); margin-bottom: 14px; }
.sem-economic__card p { font-size: var(--fs-body-sm); line-height: 1.5; color: #4d4d4d; }
.sem-economic__note { margin-top: 32px; font-size: var(--fs-micro); line-height: 1.5; color: #777; }
.monitoring-page--sem .sem-zoom { position:fixed; inset:0; margin:0; border:0; outline:0; box-shadow:none; border-radius:0; padding:40px; width:100vw; height:100svh; max-width:none; max-height:none; overflow:hidden; background:rgba(12,29,24,.82); }
.sem-zoom[open] { display:flex; align-items:center; justify-content:center; }
.sem-zoom::backdrop { background:transparent; }
.sem-zoom__content { display:flex; align-items:center; justify-content:center; max-width:100%; max-height:100%; padding:0; border:0; outline:0; background:transparent; box-shadow:none; }
.sem-zoom__close { position:fixed; top:24px; right:24px; z-index:1; width:48px; height:48px; border:0; border-radius:50%; font-size:28px; color:#fff; background:var(--product-accent); cursor:pointer; }
.sem-zoom__content > img { display:block; margin:0; width:auto; height:auto; max-width:min(1500px,calc(100vw - 80px)); max-height:calc(100svh - 80px); border:0; outline:0; box-shadow:none; object-fit:contain; clip-path:inset(.4% round 12px); }
.sem-zoom .sem-compare { max-height: 75svh; width: min(100%, calc(75svh * 1237 / 788)); margin: auto; }
body:has(.sem-zoom[open]) { overflow: hidden; }
@media (max-width:1199px) {
  .sem-process__steps { gap: 30px; }
  .sem-process h3 { font-size: 22px; }
  .sem-process p { font-size: 16px; }
  .sem-process__step:not(:last-child)::after { right: -24px; font-size: 24px; }
  .sem-reporting { padding: 40px; gap: 36px; }
}
@media (max-width:1023px) {
  .sem-section { margin-top: 140px; }
  .sem-process__steps { grid-template-columns: 1fr; gap: 48px; }
  .sem-process__step:not(:last-child)::after { content:'↓'; right:auto; left:0; top:auto; bottom:-37px; }
  .sem-process h3 { font-size:26px; }
  .sem-process p { font-size:18px; }
  .sem-features { height:auto; }
  .sem-features__sticky { position:static; height:auto; min-height:0; padding:0; }
  .sem-features__layout { grid-template-columns:1fr; gap:32px; }
  .sem-feature-pane img { max-height:440px; }
  .sem-features__window { mask-image:none; }
  .sem-features__list { transform:none !important; margin-left:0; }
  .sem-feature-item { display:none; padding:0; min-height:0; border:0; }
  .sem-feature-item.is-active { display:block; }
  .sem-feature-item__number { position:static; display:block; margin-bottom:12px; }
  .sem-reporting { grid-template-columns:1fr; }
  .sem-reporting__chart { max-width:700px; }
  .sem-economic__grid { grid-template-columns:1fr; }
}
@media (max-width:639px) {
  .sem-section { margin-top:90px; }
  .sem-section h2 { font-size:32px; margin-bottom:32px; }
  .sem-process { padding:32px 22px; border-radius:32px; }
  .sem-process h3 { font-size:24px; }
  .sem-process p { font-size:16px; }
  .sem-feature-item h3 { font-size:25px; }
  .sem-feature-item p { font-size:17px; }
  .sem-reporting { padding:30px 22px; border-radius:32px; gap:32px; }
  .sem-reporting__list { padding-left:20px; gap:28px; }
  .sem-reporting h3 { font-size:23px; }
  .sem-reporting p { font-size:16px; }
  .sem-economic__side { grid-template-columns:1fr; }
  .sem-economic__main,.sem-economic__card { padding:24px; border-radius:24px; }
  .sem-economic__main h3 { font-size:26px; }
  .sem-economic__main ul,.sem-economic__card p { font-size:17px; }
  .sem-economic__card h3 { font-size:24px; }
  .sem-economic__note { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .sem-features__list { transition:none; } }

/* Match the SAST feature rail: 42vh per transition and 170px item spacing. */
.sem-process { background: transparent; }
.sem-process__step:not(:last-child)::after { transform:translateY(-50%); animation: sem-stage-pulse 2.4s ease-in-out infinite both; }
.sem-process__steps:not(.is-measured) .sem-process__step::after { visibility:hidden; }
.sem-process__step:nth-child(2)::after { animation-delay: .45s; }
.sem-process__step:nth-child(3)::after { animation-delay: .9s; }
.sem-process__step:nth-child(4)::after { animation-delay: 1.35s; }
@keyframes sem-stage-pulse {
  0%,18%,100% { transform:translateY(-50%) scale(1); }
  8% { transform:translateY(-50%) scale(1.18); }
}
.sem-process__step:not(:last-child)::after { opacity:1; }
.sem-features { height:352vh; }
.sem-features__sticky { padding:144px 0 64px; min-height:0; }
.sem-features__layout { gap:0; }
.sem-features__media { padding-right:32px; }
.sem-feature-pane { animation:none; }
.sem-features__media { transition:opacity .5s ease-in-out; }
.sem-features__media.is-changing { opacity:0; }
.sem-feature-pane > button { display:flex; align-items:center; justify-content:center; }
.sem-feature-pane > button img { width:auto; height:auto; max-width:100%; border-radius:12px; }
.sem-feature-pane[data-sem-pane="2"] { width:100%; margin-inline:auto; }
@media (min-width:1024px) {
  .monitoring-page--sem #features .sem-feature-item p {
    width:700px;
    max-width:none;
  }
  .monitoring-page--sem #features .sem-feature-pane:is([data-sem-pane="1"],[data-sem-pane="2"]) img {
    max-height:min(70svh,calc(100svh - 320px),720px);
  }
  .monitoring-page--sem #features .sem-feature-pane[data-sem-pane="3"] img {
    max-height:min(70svh,calc(100svh - 320px),720px);
  }
}
.sem-features__window { display:flex; align-items:flex-start; }
.sem-features__list { margin-left:0; width:100%; transition:none; will-change:transform; }
.sem-feature-item { padding:4px 16px 0 83px; border:0; min-height:0; flex-shrink:0; }
.sem-feature-item.is-active { border:0; }
.sem-feature-item__number { left:0; top:8px; }
.sem-feature-item h3 { margin-bottom:12px; }
.sem-feature-item.is-active h3 { color:#1B322A; }
.sem-feature-item__content { width:100%; }
.sem-feature-item__button { display:block; }
.sem-features__track,.sem-features__indicator { position:absolute; left:48px; top:0; width:3px; pointer-events:none; }
.sem-features__track { background:#e4dfdb; }
.sem-features__indicator { background:var(--product-accent); }
.sem-reporting { background:var(--product-soft); }
.sem-reporting__chart { background:transparent; padding:0; border-radius:0; }
.sem-reporting__list { position:relative; }
.sem-reporting__list::before { content:''; position:absolute; left:-3px; top:0; width:3px; height:var(--report-progress,0%); background:var(--product-accent); }
@media (max-width:1023px) {
  .sem-features { height:auto; }
  .sem-features__sticky { padding:0; }
  .sem-features__media { display:none; }
  .sem-features__layout { display:block; }
  .sem-features__window { display:block; overflow:visible; mask-image:none !important; }
  .sem-features__track,.sem-features__indicator { display:none; }
  .sem-feature-item,.sem-feature-item.is-active { display:block; padding:0; height:auto !important; margin-bottom:48px; }
  .sem-feature-item:last-child { margin-bottom:0; }
  .sem-feature-item__number { position:static; display:inline; margin:0 12px 0 0; color:var(--product-accent); }
  .sem-feature-item__button { display:flex; align-items:baseline; margin-bottom:20px; cursor:default; }
  .sem-feature-item h3 { margin:0; }
  .sem-feature-pane { margin-bottom:20px; }
  .sem-feature-pane img { max-height:380px; }
  .sem-feature-item p { font-size:var(--fs-body-lg); }
}
@media (prefers-reduced-motion:reduce) {
  .sem-process__step::after,.sem-reporting__list::before,.sem-feature-pane { animation:none !important; }
}

/* One page grid: every section and the footer sit 40px from either edge. */
.monitoring-page--sem .monitoring-shell { width:calc(100% - 80px); max-width:none; }
.monitoring-page--sem .monitoring-origin > div { max-width:none; padding-inline:0; }
.monitoring-page--sem .sem-process { padding-inline:0; }
@media (max-width:639px) {
  .monitoring-page--sem .monitoring-header { left:56px; right:56px; }
  .monitoring-page--sem .monitoring-brand img { height:20px; }
}
@media (max-width:480px) {
  .monitoring-page--sem .monitoring-origin .grid.order-2 { grid-template-columns:1fr; }
}

.monitoring-page--sem .sem-process { padding-bottom:0; }
.monitoring-page--sem #features { margin-top:60px; }
@media (min-width:1024px) {
  .sem-process__step:not(:last-child)::after {
    left:var(--sem-arrow-left,calc(100% + (var(--sem-arrow-gap) - 24px) / 2));
    right:auto;
    width:24px;
    top:var(--sem-arrow-top);
    text-align:center;
  }
}
.sem-compare:focus-within,.sem-compare input:focus,.sem-compare input:focus-visible { outline:none; }
.sem-compare__divider::after { content:none; }
.sem-compare__handle { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--product-accent); color:#fff; }
.sem-compare__handle svg { display:block; width:24px; height:24px; }
.sem-compare__glyph { display:block; width:32px; height:32px; font-size:0; background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M3%2016h26M8%2012.5l-5%203.5%205%203.5M24%2012.5l5%203.5-5%203.5%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; transform:none; }
.sem-compare__handle::after { content:''; position:absolute; inset:0; border:1px solid var(--product-accent); border-radius:50%; animation:sem-compare-ripple 2.4s ease-out infinite; }
.sem-compare:has(input:focus-visible) .sem-compare__handle { box-shadow:0 0 0 3px #fff,0 0 0 5px var(--product-accent); }
@keyframes sem-compare-ripple { from { transform:scale(1); opacity:.8; } to { transform:scale(1.8); opacity:0; } }
.sem-reporting__chart { cursor:default; }
.sem-economic__main { background:linear-gradient(180deg,rgba(31,26,22,.6),rgba(31,26,22,.76)),url('/landing/assets/sem/economic-map-enhanced-20261103.webp') center/cover no-repeat; color:#fff; }
.sem-economic__main h3,.sem-economic__main h3 span,.sem-economic__main ul,.sem-economic__main > svg { color:#fff; }
.sem-economic__main li::before { background:#fff; }
@media (prefers-reduced-motion:reduce) { .sem-compare__handle::after { animation:none; } }
.sem-chart { display:block; width:100%; height:auto; overflow:visible; }
.sem-reporting__chart { width:92%; margin-inline:auto; }
.sem-chart-column text { text-rendering:geometricPrecision; }
.sem-chart.is-animated .sem-chart-column { animation:sem-chart-sway 2.4s ease-in-out infinite; animation-delay:calc(var(--column-delay) * -4); }
@keyframes sem-chart-sway { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-16px); } }
@media (prefers-reduced-motion:reduce) { .sem-chart.is-animated .sem-chart-column { animation:none; } }

.sem-origin-map { position:relative; flex:1; min-height:220px; margin-top:24px; overflow:hidden; isolation:isolate; background:transparent; mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent); mask-composite:intersect; }
.sem-origin-map__art { position:absolute; inset:0; background:url('/landing/assets/sem/origin-topographic-map.png') center/cover no-repeat; }
.sem-origin-map__objects { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:hidden; }
.sem-origin-map__flow { fill:none; stroke:#946044; stroke-width:8; stroke-linecap:round; stroke-dasharray:18 130; opacity:.85; animation:sem-origin-flow 5s linear infinite; animation-play-state:paused; }
.sem-origin-map__station { fill:rgba(210,148,44,.16); stroke:#b78135; stroke-width:3; animation:sem-origin-station 3s ease-in-out infinite; animation-delay:var(--delay); animation-play-state:paused; transform-box:view-box; }
.sem-origin-map__dot { fill:#946044; stroke:#fff5e6; stroke-width:3; }
.sem-origin-map.is-in-view .sem-origin-map__flow,.sem-origin-map.is-in-view .sem-origin-map__station { animation-play-state:running; }
@keyframes sem-origin-flow { to { stroke-dashoffset:-296; } }
@keyframes sem-origin-station { 0%,100% { transform:scale(.8); opacity:.6; } 50% { transform:scale(1.3); opacity:1; } }
@media (max-width:1023px) { .sem-origin-map { flex:none; width:100%; aspect-ratio:3/2; min-height:0; margin-bottom:8px; } }
@media (prefers-reduced-motion:reduce) { .sem-origin-map__flow,.sem-origin-map__station { animation:none; } }

/* Decorative contour lines: no layout footprint and no pointer interception. */
.sem-process,.sem-features,.monitoring-page--sem #contact { position:relative; isolation:isolate; }
.sem-isolines { position:absolute; pointer-events:none; user-select:none; width:480px; aspect-ratio:3/2; z-index:-1; mask-image:radial-gradient(ellipse at center,#000 25%,transparent 76%); }
.sem-isolines svg { display:block; width:100%; height:100%; overflow:visible; }
.sem-isolines path { stroke:#796252; stroke-width:1; stroke-linejoin:round; vector-effect:non-scaling-stroke; opacity:.38; animation:sem-contour-shimmer 3.6s ease-in-out infinite; animation-delay:var(--contour-delay); }
.sem-isolines--stages { right:0; bottom:-190px; width:440px; height:260px; }
.sem-isolines--features { left:0; bottom:-200px; width:530px; height:300px; }
.monitoring-page--sem #contact { overflow:visible; }
.sem-isolines--contact { right:55px; top:50%; transform:translateY(-50%); width:430px; }
.monitoring-page--sem #contact > :not(.sem-isolines) { position:relative; z-index:1; }
@keyframes sem-contour-shimmer { 0%,100% { opacity:.09; } 48%,55% { opacity:.8; } }
@media(max-width:767px) {
 .sem-isolines--stages { width:260px; height:190px; bottom:-145px; }
 .sem-isolines--features { width:290px; height:200px; bottom:-155px; }
 .sem-isolines--contact { width:280px; right:10px; top:auto; bottom:-70px; transform:none; }
}
@media(prefers-reduced-motion:reduce) { .sem-isolines path { animation:none; opacity:.24; } }

/* Exact contour geometry traced from the approved concept, with original tonal detail. */
.sem-isolines svg { color:#796252; }
.sem-isolines path { stroke:none; animation:none; opacity:1; }
.sem-isolines { animation:sem-isolines-breathe 3.6s ease-in-out infinite; }
.sem-isolines--features { animation-delay:-1.2s; }
.sem-isolines--contact { animation-delay:-2.4s; }
@keyframes sem-isolines-breathe { 0%,100% { opacity:.25; } 50% { opacity:1; } }
@media(prefers-reduced-motion:reduce) { .sem-isolines { animation:none; opacity:.7; } }

/* Consistent section spacing, including the final contact section. */
.monitoring-page--sem main > section:not(.monitoring-hero),
.monitoring-page--sem #features { margin-top:240px; }
.monitoring-page--sem .sem-process { padding-top:0; }
.monitoring-page--sem .monitoring-footer { padding-top:240px; }
.monitoring-page--sem .monitoring-header.is-floating { position:fixed; top:24px; left:40px; right:40px; z-index:60; animation:sem-header-enter .3s ease-out both; }
.sem-section-menu .monitoring-products__list { min-width:285px; }
@keyframes sem-header-enter { from { opacity:0; transform:translateY(-20px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1023px) { .monitoring-page--sem .monitoring-header.is-floating { top:16px; } }
@media(prefers-reduced-motion:reduce) { .monitoring-page--sem .monitoring-header.is-floating { animation:none; } }

@media(min-width:1024px) {
 .monitoring-page--sem .monitoring-header__bar { gap:24px; }
 .monitoring-page--sem .monitoring-nav { gap:44px; white-space:nowrap; }
}
@media(min-width:1024px) and (max-width:1279px) {
 .monitoring-page--sem .monitoring-header__bar { gap:20px; padding-inline:20px; }
 .monitoring-page--sem .monitoring-nav { font-size:var(--fs-cta); gap:44px; }
 .monitoring-page--sem .monitoring-brand img { height:24px; }
 .monitoring-page--sem .monitoring-contact { padding-inline:22px; white-space:nowrap; }
}
/* Match RVDBS header typography. */
.monitoring-page--sem .monitoring-header { font-family:Mulish,sans-serif; font-feature-settings:"cv02","cv03","cv04","cv11"; -webkit-font-smoothing:antialiased; }
.monitoring-page--sem .monitoring-nav { font-weight:500; font-size:var(--fs-cta); }
.monitoring-page--sem .monitoring-header > .monitoring-contact { font-weight:600; font-size:var(--fs-cta); line-height:1; }
@media (min-width:1024px) {
  .monitoring-page--sem .monitoring-header__bar { gap:44px; }
}

/* SEM primary typography uses the site's dark green. */
.monitoring-page--sem { color:#1B322A; --foreground:159 30% 15%; --card-foreground:159 30% 15%; --secondary-foreground:159 30% 15%; }
.monitoring-page--sem .monitoring-header,
.monitoring-page--sem .monitoring-hero h1,
.monitoring-page--sem .monitoring-hero__lead,
.monitoring-page--sem .monitoring-origin h2,
.monitoring-page--sem .monitoring-origin h3,
.monitoring-page--sem .monitoring-cta h2,
.monitoring-page--sem .monitoring-footer h2 { color:#1B322A; }
.monitoring-page--sem .text-foreground { color:#1B322A; }

.monitoring-page--sem #reporting h2 .monitoring-highlight,
.monitoring-page--sem #russian-development h2 .text-primary {
  text-shadow: 0 0 6px rgba(121,98,82,.38), 0 0 14px rgba(121,98,82,.2);
}

/* Спутниковая карта в херо: белый текст и исходный коричневый акцент. */
.monitoring-page--sem .monitoring-hero {
  --sem-hero-map: url('/landing/assets/sem/hero-satellite-full-20261103.webp');
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(5,12,9,.72), rgba(5,12,9,.48) 40%, rgba(5,12,9,.23) 80%),
    var(--sem-hero-map) center / cover no-repeat;
}

@supports (background-image:image-set(url('/landing/assets/sem/hero-satellite-full-20261103.avif') type('image/avif'))) {
  .monitoring-page--sem .monitoring-hero {
    --sem-hero-map:image-set(url('/landing/assets/sem/hero-satellite-full-20261103.avif') type('image/avif'), url('/landing/assets/sem/hero-satellite-full-20261103.webp') type('image/webp'));
  }
}

.monitoring-page--sem .monitoring-hero h1,
.monitoring-page--sem .monitoring-hero__lead {
  color: #fff;
  max-width: 660px;
}

.monitoring-page--sem .monitoring-hero .monitoring-highlight {
  color: var(--product-accent);
}

.monitoring-page--sem .monitoring-hero .sem-hero-line {
  display: block;
}

.monitoring-page--sem .monitoring-hero .monitoring-highlight--glow {
  text-shadow: 0 0 12px rgba(255,255,255,.12), 0 0 26px rgba(255,255,255,.06);
}

.monitoring-page--sem .monitoring-hero > :not(.sem-hero-signals) {
  position: relative;
  z-index: 1;
}

.sem-hero-signals { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.sem-hero-contours { position:absolute; max-width:none; overflow:visible; }
.sem-hero-contour {
  fill:none;
  stroke:#b7e9f6;
  stroke-width:1.3;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  opacity:0;
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:sem-hero-contour-draw 12s linear infinite;
  animation-delay:var(--contour-delay,0s);
  animation-play-state:paused;
}
.sem-hero-contour--amber { stroke:#ffe0a2; }
.sem-hero-signals.is-animating .sem-hero-contour { animation-play-state:running; }
@keyframes sem-hero-contour-draw {
  0% { opacity:0; stroke-dashoffset:1; }
  1% { opacity:.7; stroke-dashoffset:.97; }
  30% { opacity:.7; stroke-dashoffset:0; }
  33.333%,100% { opacity:0; stroke-dashoffset:0; }
}
.sem-hero-signal { position:absolute; width:22px; height:22px; transform:translate(-50%,-50%); color:#b7e9f6; }
.sem-hero-signal--amber { color:#ffe0a2; }
.sem-hero-signal::before,
.sem-hero-signal::after {
  content:'';
  position:absolute;
  inset:0;
  border:1.5px solid currentColor;
  border-radius:50%;
  opacity:0;
  animation:sem-hero-pulse 12s ease-out infinite;
  animation-delay:var(--signal-delay,0s);
  animation-play-state:paused;
}
.sem-hero-signal::after { animation-delay:calc(var(--signal-delay,0s) + 1.1s); }
.sem-hero-signals.is-animating .sem-hero-signal::before,
.sem-hero-signals.is-animating .sem-hero-signal::after { animation-play-state:running; }
@keyframes sem-hero-pulse {
  0% { opacity:0; transform:scale(.65); }
  12% { opacity:.65; }
  65%,100% { opacity:0; transform:scale(2.8); }
}
@media (prefers-reduced-motion:reduce) { .sem-hero-signals { display:none; } }

@media (max-width: 767px) {
  .monitoring-page--sem .monitoring-hero {
    background: linear-gradient(90deg, rgba(5,12,9,.76), rgba(5,12,9,.4)),
      var(--sem-hero-map) 65% center / cover no-repeat;
  }
}
.monitoring-page--sem .sem-chart text[fill="#171717"],
.monitoring-page--sem .sem-chart g[fill="#171717"] { fill:#1B322A; }

.monitoring-page--sem .monitoring-scroll-top {
 opacity:0; visibility:hidden; pointer-events:none; transform:translateY(120px);
 transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s ease,visibility 0s linear .35s;
}
.monitoring-page--sem .monitoring-scroll-top.is-visible {
 opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);
 transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s ease,visibility 0s;
}
@media(prefers-reduced-motion:reduce) { .monitoring-page--sem .monitoring-scroll-top { transition:none; } }

.monitoring-page--sem .monitoring-header.is-floating.is-leaving { animation:sem-header-exit .35s cubic-bezier(.2,.8,.2,1) both; pointer-events:none; }
@keyframes sem-header-exit { from { opacity:1; transform:translateY(0); } to { opacity:0; transform:translateY(-120px); } }
@media(prefers-reduced-motion:reduce) { .monitoring-page--sem .monitoring-header.is-floating.is-leaving { animation:none; } }
/* Include the sticky carousel's internal whitespace in the 240px visual gaps. */
@media (min-width:1024px) {
  .monitoring-page--sem #features { margin-top:96px; } /* 96 + 144 sticky top padding */
  .monitoring-page--sem #reporting { margin-top:46px; } /* Slightly more air after the carousel: about 280px visually. */
  .sem-isolines--features { bottom:-30px; height:240px; }
}
