.splide__track {
    overflow: visible;
  }

  @media screen and (max-width: 991px) {
    .slider_controls {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      width: 100%;
      margin-top: 1rem;
    }

    .slider1 .splide__pagination {
      position: static;
      inset: auto;
      transform: none;
      margin: 0;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 0.5rem;
      flex: 1 1 auto;
    }

    .slider1 .splide__pagination li {
      display: flex;
      flex: 0 0 auto;
      margin: 0;
      padding: 0;
    }

    .slider1 .splide__pagination__page {
      width: 0.4rem;
      height: 0.4rem;
      min-width: 0.4rem;
      min-height: 0.4rem;
      margin: 0;
      padding: 0;
      border: 0;
      border-radius: 50%;
      flex: 0 0 0.4rem;
      background: rgba(4, 74, 179, 0.35);
      transform: none;
      opacity: 1;
    }

    .slider1 .splide__pagination__page.is-active {
      background: #044ab3;
      transform: none;
    }

    .slider1 .splide__arrows {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      margin-left: auto;
    }
  }

@media (min-width:992px) and (hover:hover) and (pointer:fine){
  .button_wrap .button .arrow_button{
    position:relative;
    width:38px;
    height:38px;
    overflow:hidden;
  }
  .button_wrap .button .arrow_button .arrow_icon{
    position:absolute;
    left:50%;
    top:50%;
    width:16px;
    height:16px;
    transform:translate(-50%,-50%) scale(1);
    opacity:1;
    transition:transform 620ms cubic-bezier(0.22,1,0.36,1),opacity 620ms cubic-bezier(0.22,1,0.36,1);
    z-index:2;
    background:url("https://cdn.prod.website-files.com/69e74ca8162801f4b950053a/69e74fc05884ed1de7bac5d3_arrow.png") center/contain no-repeat;
  }
  .button_wrap .button .arrow_button::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:16px;
    height:16px;
    transform:translate(calc(-50% - 24px),calc(-50% + 24px)) scale(.85);
    opacity:0;
    transition:transform 620ms cubic-bezier(0.22,1,0.36,1),opacity 620ms cubic-bezier(0.22,1,0.36,1);
    z-index:1;
    background:url("https://cdn.prod.website-files.com/69e74ca8162801f4b950053a/69e74fc05884ed1de7bac5d3_arrow.png") center/contain no-repeat;
  }
  .button_wrap .button:hover .arrow_button .arrow_icon,
  .button_wrap .button:focus-visible .arrow_button .arrow_icon{
    transform:translate(calc(-50% + 24px),calc(-50% - 24px)) scale(.85);
    opacity:0;
  }
  .button_wrap .button:hover .arrow_button::after,
  .button_wrap .button:focus-visible .arrow_button::after{
    transform:translate(-50%,-50%) scale(1);
    opacity:1;
  }
}

  @media (min-width:992px) and (hover:hover) and (pointer:fine){
  .button_wrap .button.blue .arrow_button .arrow_icon{
    background:url("https://cdn.prod.website-files.com/697b3b78220c15e1a8ecaeb2/69e8ea07f220044019b7fd03_arrow-blue.svg") center/contain no-repeat;
  }

  .button_wrap .button.blue .arrow_button::after{
    background:url("https://cdn.prod.website-files.com/697b3b78220c15e1a8ecaeb2/69e8ea07f220044019b7fd03_arrow-blue.svg") center/contain no-repeat;
  }
}

@media (min-width:992px) and (hover:hover) and (pointer:fine){
  .products .product_card .product_arrow{
    position:relative;
    width:36px;
    height:36px;
    overflow:hidden;
  }

  .products .product_card .product_arrow > .arrow_product_link{
    position:absolute;
    left:50%;
    top:50%;
    width:14px;
    height:14px;
    display:block;
    object-fit:contain;
    transform:translate(-50%,-50%) scale(1);
    opacity:1;
    z-index:2;
    transition:transform 620ms cubic-bezier(0.22,1,0.36,1),opacity 620ms cubic-bezier(0.22,1,0.36,1);
  }

  .products .product_card .product_arrow::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:14px;
    height:14px;
    background:url("https://cdn.prod.website-files.com/697b3b78220c15e1a8ecaeb2/69e8ea07f220044019b7fd03_arrow-blue.svg") center/contain no-repeat;
    transform:translate(calc(-50% - 24px),calc(-50% + 24px)) scale(.85);
    opacity:0;
    z-index:1;
    transition:transform 620ms cubic-bezier(0.22,1,0.36,1),opacity 620ms cubic-bezier(0.22,1,0.36,1);
  }

  .products .product_card:hover .product_arrow > .arrow_product_link,
  .products .product_card:focus-visible .product_arrow > .arrow_product_link,
  .products .tag_link:hover .product_arrow > .arrow_product_link{
    transform:translate(calc(-50% + 24px),calc(-50% - 24px)) scale(.85);
    opacity:0;
  }

  .products .product_card:hover .product_arrow::after,
  .products .product_card:focus-visible .product_arrow::after,
  .products .tag_link:hover .product_arrow::after{
    transform:translate(-50%,-50%) scale(1);
    opacity:1;
  }
}

.mobile_link{
  position:relative;
  display:inline-flex;
  align-items:center;
  padding-left:0;
  transition:padding-left .25s ease;
}

.mobile_link .cube_active{
  position:absolute;
  left:0;
  top:50%;
  width:8px;
  height:8px;
  transform:translateY(-50%) scale(.7);
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
}

.mobile_link.w--current{
  padding-left:20px;
}

.mobile_link.w--current .cube_active{
  opacity:1;
  transform:translateY(-50%) scale(1);
}

@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
  [data-line-reveal] > div,
  .button .flex_button_general > div:first-child,
  .button_primary .flex_button > div:first-child,
  .subscribe_button > div,
  .subscribe_button .text,
  .subscribe_button .button-text,
  .subscribe_button .w-button {
    position: relative;
    display: block;
    overflow: hidden;
    height: 1.25em;
    line-height: 1.25em;
  }

  [data-line-reveal] .line-inner,
  .button .flex_button_general > div:first-child .line-inner,
  .button_primary .flex_button > div:first-child .line-inner,
  .subscribe_button .line-inner {
    position: relative;
    display: block;
    transform: translateY(0%);
    transition: transform 950ms cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
  }

  [data-line-reveal] .line-inner::after,
  .button .flex_button_general > div:first-child .line-inner::after,
  .button_primary .flex_button > div:first-child .line-inner::after,
  .subscribe_button .line-inner::after {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: 100%;
    white-space: nowrap;
  }

  [data-line-reveal]:hover .line-inner,
  [data-line-reveal]:focus-visible .line-inner,
  .button:hover .flex_button_general > div:first-child .line-inner,
  .button:focus-visible .flex_button_general > div:first-child .line-inner,
  .button_primary:hover .flex_button > div:first-child .line-inner,
  .button_primary:focus-visible .flex_button > div:first-child .line-inner,
  .subscribe_button:hover .line-inner,
  .subscribe_button:focus-visible .line-inner {
    transform: translateY(-100%);
  }

  .header [data-line-reveal] {
    transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .header:has([data-line-reveal]:hover) [data-line-reveal] {
    opacity: 0.65;
  }

  .header:has([data-line-reveal]:hover) [data-line-reveal]:hover,
  .header:has([data-line-reveal]:hover) [data-line-reveal]:focus-visible {
    opacity: 1;
  }

  .icon_arrow {
    position: relative;
    width: 1.875em;
    height: 1.875em;
    overflow: hidden;
  }

  .icon_arrow .image.arrow_move,
  .icon_arrow .arrow_primary {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 14px;
    height: 14px;
    opacity: 1;
    transform: translate(-50%, -50%);
    transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1),
                opacity 620ms cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 2;
  }

  .icon_arrow .image.arrow_move {
    object-fit: contain;
    display: block;
  }

  .icon_arrow .arrow_primary {
    background: url("https://cdn.prod.website-files.com/69e74ca8162801f4b950053a/69e74fc05884ed1de7bac5d3_arrow.png") center / contain no-repeat;
  }

  .icon_arrow::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 14px;
    height: 14px;
    background: url("https://cdn.prod.website-files.com/69e74ca8162801f4b950053a/69e74fc05884ed1de7bac5d3_arrow.png") center / contain no-repeat;
    transform: translate(calc(-50% - 24px), calc(-50% + 24px));
    opacity: 0;
    transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1),
                opacity 620ms cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 1;
  }

  .button_primary:hover .icon_arrow .image.arrow_move,
  .button_primary:focus-visible .icon_arrow .image.arrow_move,
  .button_primary:hover .icon_arrow .arrow_primary,
  .button_primary:focus-visible .icon_arrow .arrow_primary {
    transform: translate(calc(-50% + 24px), calc(-50% - 24px));
    opacity: 0;
  }

  .button_primary:hover .icon_arrow::after,
  .button_primary:focus-visible .icon_arrow::after {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
}

.strings-viewport {
    --strings-scale: clamp(0.72, 0.62 + 0.45vw, 0.9);
  }

  #strings-wrap {
    width: calc(100% / var(--strings-scale));
    height: calc(100vh / var(--strings-scale));
    min-height: calc(560px / var(--strings-scale));
    transform: scale(var(--strings-scale));
    transform-origin: center center;
    will-change: transform;
  }
  @media (min-width: 991px) {
    .strings-viewport {
      --strings-scale: 0.64;
    }
  }
  @media (max-width: 990px) {
    .strings-viewport {
      --strings-scale: 0.58;
    }
  }
  @media (max-width: 479px) {
    .strings-viewport {
      --strings-scale: 0.94;
    }
  }

.wrapper_general{position:relative;}
.wrapper_general .box_heading,
.wrapper_general .execution_box{position:relative;z-index:2;}
.shrimp-flow{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}
.shrimp-svg{
  position:absolute;
  left:50%;
  top:0;
  width:100%;
  height:auto;
  transform:translate(-50%,220px);
  display:block;
}
.shrimp-svg--sub{transform:translate(-50%,205px);}
.shrimp-flow path{
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shrimp-pulse{
  fill:none;
  stroke:#fff;
  stroke-width:1;
  pointer-events:none;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#shrimpPulseMain{
  stroke-opacity:.9;
  stroke-dasharray:120 880;
  stroke-dashoffset:1000;
  pathLength:1000;
}
#shrimpPulseSub{
  stroke-opacity:.55;
  stroke-dasharray:90 910;
  stroke-dashoffset:1040;
  pathLength:1000;
}
@media (max-width:991px){
  .shrimp-svg{transform:translate(-50%,170px);}
  .shrimp-svg--sub{transform:translate(-50%,155px);}
}
@media (max-width:767px){
  .shrimp-svg{transform:translate(-50%,130px);}
  .shrimp-svg--sub{transform:translate(-50%,118px);}
  .shrimp-pulse{stroke-width:1;}
}
@media (max-width: 991px){
  .wrapper_general{overflow:hidden;}
  .shrimp-flow{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
  }
  .shrimp-svg{
    left:50%;
    width:185%;
    max-width:none;
    height:auto;
    transform:translate(-50%,78px);
  }
  .shrimp-svg--sub{
    transform:translate(-50%,66px);
  }
}
@media (max-width: 767px){
  .shrimp-svg{
    width:210%;
    transform:translate(-50%,56px);
  }
  .shrimp-svg--sub{
    transform:translate(-50%,46px);
  }
}
@media (max-width: 479px){
  .shrimp-svg{
    width:235%;
    transform:translate(-50%,44px);
  }
  .shrimp-svg--sub{
    transform:translate(-50%,36px);
  }
}

/* Footer: only the bottom line is left (logo, copyright, legal), so it no longer
   sits 20em below a link grid. */
.footer .last_line { margin-top: 0; }

/* Hero flow traces (components/HeroFlow.tsx). Same stroke rules as the c8/shrimp
   traces; pulses are time-driven here (nothing has scrolled yet) but keep their
   dash lengths and fade in/out over the first and last quarter of the run, like
   PULSE_EDGE in custom.js. */
.hero-flow {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}
.hero-flow path {
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hero-pulse {
  fill: none;
  stroke-dashoffset: 120;
  opacity: 0;
  animation: hero-pulse 4.5s linear infinite;
  animation-delay: 1s;
}
.hero-pulse--main { stroke-opacity: .9; }
.hero-pulse--sub  { stroke-opacity: .55; }
.hero-pulse--long { animation-duration: 14s; animation-delay: 0s; }
.hero-pulse--late { animation-delay: -7s; }
/* dash sits at [-offset, -offset + len] on a pathLength of 1000: off both ends, so one crossing then a rest */
@keyframes hero-pulse {
  0%   { stroke-dashoffset: 120;   opacity: 0; }
  18%  { opacity: 1; }
  54%  { opacity: 1; }
  72%  { stroke-dashoffset: -1000; opacity: 0; }
  100% { stroke-dashoffset: -1000; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-pulse { animation: none; opacity: 1; stroke-dashoffset: -440; }
}
.pixel-transition {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
    background: var(--px-from, #eeefea);
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .pixel-grid {
    position: relative;
    display: grid;
    justify-content: start;
    margin: 0;
    gap: 0 !important;
    line-height: 0;
    font-size: 0;
    transform: none !important;
    background: var(--px-from, #eeefea);
  }

  .pixel {
    display: block;
    margin: 0 -1px -1px 0;
    width: calc(100% + 1px);
    height: calc(100% + 1px);
    position: relative;
    box-sizing: border-box;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background-clip: border-box;
  }

  .pixel-transition.is-solid,
  .pixel-transition.is-solid .pixel-grid {
    background: var(--px-solid, #f7f7f4) !important;
  }

  .pixel-transition.is-solid .pixel {
    background: var(--px-solid, #f7f7f4) !important;
    box-shadow: none !important;
  }

@media (min-width: 992px){
  .products_wrapper{
    position: relative;
    overflow: visible;
    min-height: 420vh;
  }

  .cms_products{
    position: sticky;
    top: 0;
    height: 100vh;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
  }

  .cms_products .w-dyn-list{
    width: 100%;
    height: 100%;
    overflow: visible;
    padding-left: clamp(120px, 10vw, 320px);
    box-sizing: border-box;
  }

  .cms_products .products_list{
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 62px;
    width: max-content;
    will-change: transform;
  }

  .cms_products .product_item{
    flex: 0 0 clamp(240px, 20vw, 340px);
    transform-origin: left center;
    will-change: transform;
  }

  .product_visual{
    aspect-ratio: 1 / 1;
    width: 100%;
  }

  .product_visual img,
  .product_visual .image{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}

.wrapper_general.cutting_edge_wrap {
    position: relative;
  }

  .wrapper_general.cutting_edge_wrap .flow-lines-new {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
  }

  .wrapper_general.cutting_edge_wrap > * {
    position: relative;
    z-index: 2;
  }

  .wrapper_general.cutting_edge_wrap > .flow-lines-new {
    z-index: 1;
  }

  .wrapper_general.cutting_edge_wrap .c8-flow {
    position: absolute;
    left: 50%;
    top: 0;
    width: 100%;
    height: auto;
    display: block;
  }

  /* одна «пара» = один SVG: сдвиг целиком для верхней */
  .wrapper_general.cutting_edge_wrap .c8-flow--top {
    transform: translate(-50%, 220px);
  }

  /* нижняя пара (раньше main2 0 / sub2 15 — берём верхнюю линию как опору) */
  .wrapper_general.cutting_edge_wrap .c8-flow--bottom {
    transform: translate(-50%, 0px);
  }

  .wrapper_general.cutting_edge_wrap .c8-flow path {
    vector-effect: non-scaling-stroke;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .wrapper_general.cutting_edge_wrap .c8-flow-pulse {
    fill: none;
    stroke: #fff;
    stroke-opacity: 1;
    stroke-width: 0.5;
    mix-blend-mode: screen;
    pointer-events: none;
    vector-effect: non-scaling-stroke;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  @media (max-width: 991px) {
    .wrapper_general.cutting_edge_wrap .c8-flow--top {
      transform: translate(-50%, 170px);
    }
    .wrapper_general.cutting_edge_wrap .c8-flow--bottom {
      transform: translate(-50%, 420px);
    }

    .wrapper_general.cutting_edge_wrap .flow-lines-new,
    .wrapper_general.cutting_edge_wrap .flow2-wrap {
      position: relative !important;
      inset: auto !important;
      width: 100%;
      height: 100%;
      z-index: 1;
      pointer-events: none;
    }

    .wrapper_general.cutting_edge_wrap .c8-flow {
      position: absolute;
      left: 50%;
      top: 0;
      width: 100%;
      height: auto;
      display: block;
    }
  }

  @media (max-width: 767px) {
    .wrapper_general.cutting_edge_wrap .c8-flow--top {
      transform: translate(-50%, 130px);
    }
    .wrapper_general.cutting_edge_wrap .c8-flow--bottom {
      transform: translate(-50%, 340px);
    }
  }

  .wrapper_general.cutting_edge_wrap > .flow2-wrap {
    z-index: 1;
  }

.cube_tag{
  animation:cubeTagFlickerSmooth 1.2s ease-in-out infinite;
  will-change:opacity, filter;
}

@keyframes cubeTagFlickerSmooth{
  0%, 100%{
    opacity:1;
    filter:brightness(1);
  }
  25%{
    opacity:.52;
    filter:brightness(1.08);
  }
  50%{
    opacity:.25;
    filter:brightness(1.16);
  }
  75%{
    opacity:.9;
    filter:brightness(1.06);
  }
}

.cta-lines-svg .cta-cap {
        font-size: 13px;
        letter-spacing: 0.08em;
      }
      @media (max-width: 991px) {
        .cta-lines-svg .cta-cap {
          font-size: 14px;
          letter-spacing: 0.07em;
        }
      }
      @media (max-width: 767px) {
        .cta-lines-svg .cta-cap {
          font-size: 15px;
        }
        .cta-lines-svg .cta-cap--1,
        .cta-lines-svg .cta-cap--2,
        .cta-lines-svg .cta-cap--3,
        .cta-lines-svg .cta-cap--4 {
          display: none;
        }
      }
      @media (max-width: 479px) {
        .cta-lines-svg .cta-cap {
          font-size: 11px;
        }
      }

.cta_box,
  .cta-loop {
    position: relative;
    overflow: hidden;
    --cta-line-width: 1;
  }

  .wrapper_cta {
    position: relative;
  }

  .cta-loop__inner {
    position: relative;
    z-index: 3;
    max-width: 120em;
    margin: 0 auto;
    padding: 4.5em 1.5em;
  }

  .cta-lines {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    min-width: 0;
  }

  .cta-lines-svg-scale {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    pointer-events: none;
  }

  .cta-lines-svg {
    display: block;
    width: calc(100% * var(--cta-line-width, 1));
    max-width: 100%;
    height: auto;
    position: absolute;
    left: 0;
    top: 0;
    transform: none;
    flex: 0 0 auto;
  }

  .cta-lines-svg .cta-captions-svg {
    pointer-events: none;
  }

  .cta-lines-svg .cta-cap {
    font-family: 'Fragment Mono', 'FRAGMENT Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    fill: #044ab3;
    paint-order: stroke fill;
  }

  @media (max-width: 991px) {
    .cta_box,
    .cta-loop {
      --cta-line-width: 1.6;
    }

    .cta-loop__inner {
      padding: 3.5em 1.25em;
    }

    .cta-lines-svg .cta-cap {
      letter-spacing: 0.07em;
    }
  }

  @media (max-width: 767px) {
    .cta_box,
    .cta-loop {
      --cta-line-width: 1;
    }
    .cta-lines {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .cta-lines .cta-lines-svg {
      position: relative !important;
      left: auto !important;
      top: auto !important;
      width: 100% !important;
      max-width: none !important;
      flex: 0 0 auto;
      transform: scale(2) !important;
      transform-origin: center center !important;
    }
  }

  @media (max-width: 479px) {
  .cta_box,
  .cta_loop {
    --cta-line-width: 1;
  }

  .cta-lines {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .cta-lines .cta-lines-svg {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 auto;
    transform: scale(2.5) !important;
    transform-origin: center center !important;
  }
}


/* hypercall: supply-channel cards on the newsroom grid (components/Network.tsx).
   The tile is the dark surface from the theme with a fine grid over it; the mark
   (SDK / EXT / VPN) sits where a price used to. Colours live in theme.css. */
.price_sub{max-width:34em;margin-top:1.2em}
.price_card{display:flex;flex-direction:column}
.price_tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:1.4em 1.5em}
.price_tile::before{content:"";position:absolute;inset:0;background-image:linear-gradient(color-mix(in srgb,currentColor 8%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,currentColor 8%,transparent) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.price_tile>*{position:relative}
.price_tile_top{position:absolute;top:1.2em;left:1.5em;right:1.5em;display:flex;justify-content:space-between;align-items:center;font-family:'Fragment Mono',ui-monospace,monospace;font-size:.72em;letter-spacing:.08em;text-transform:uppercase}
.price_tile_amount{font-family:'Fragment Mono',ui-monospace,monospace;font-size:4.2em;line-height:1;letter-spacing:-.04em}
.chan_mark{font-size:3.4em;letter-spacing:.02em}
.price_tile_period{margin-top:.6em;font-family:'Fragment Mono',ui-monospace,monospace;font-size:.72em;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.price_features{list-style:none;margin:1em 0 0;padding:0;font-size:1.05em;font-weight:500;line-height:1.35}
.price_features li{padding:.55em 0;border-top:1px solid}
.price_features li:last-child{border-bottom:1px solid}
.price_cta{margin-top:1.4em}

/* The address in the form's failure state is the fallback, so make it read as a link. */
.error_form a{color:inherit;text-decoration:underline}

/* The buyer's door under the cards: there is no price list, so this block is it. */
.net_access{max-width:38em;margin-top:5em;padding-top:2.2em;border-top:1px solid}
.net_access .tags_higlight{margin-bottom:1.1em}
.net_access_body{margin-bottom:2em}
@media (max-width:767px){.chan_mark{font-size:2.8em}.net_access{margin-top:3.5em}}

/* Layout: the Webflow export sizes full-bleed sections with 100vw, which includes the
   vertical scrollbar and forces a horizontal one. Use the real page width instead. */
html, body { overflow-x: clip; }
.hero, .main, .cta_box, .footer, .newsroom, .contact, .container, .svg_bottom, .mobile_menu, .background_hero, .partners_hero, .hero_section, .products_scroll, .hero_career, .hero_about, .fs_image, .fullsize_cover, .news_hero_article, .fixed_modal, .filters_wrapper, ._404_page { width: 100%; }

/* Type scale: the export sizes everything from body { font-size: 1vw }, so on wide
   monitors the nav, buttons and headings keep growing. Cap it at the 1600px size. */
body, .cube_tag, .cube_tag.blue, .product_desc, .news_link { font-size: min(1vw, 16px); }
.article_content { font-size: min(1.1vw, 17.6px); }

/* Hero: the export parks the headline in the bottom-left corner. Centre it in the
   viewport instead and keep the "scroll down" caption pinned to the bottom. */
.flexbox_hero { flex: 1; flex-flow: column; justify-content: center; align-items: center; margin-top: 0; }
.heading_hero { align-items: center; margin: auto 0; text-align: center; }
.flexbox_hero .caption { margin: 0; }
@media (max-width: 479px) {
  .wrapper_hero { padding: 6.5rem 1rem 4em; }
  .heading_hero { align-items: center; }
}

/* Small viewports. The export sizes type from body { font-size: 1vw }, which leaves
   paragraphs, buttons and inputs at 7-11px between 480 and 991px. Floor them, and
   give the channel tiles (sized in em, no breakpoints of their own) a fixed base. */
@media (max-width: 991px) {
  .p_gen, .p_gen.smaller, .p_gen.blue { font-size: max(1.45em, 14px); }
  .button, .button.blue { font-size: max(1.5em, 14px); }
  .input_field { font-size: max(1.3em, 15px); }
  .price_tile, .price_features { font-size: 14px; }
  .net_access { max-width: 100%; }
  .image_article.price_tile { height: 14rem; } /* base.css sets 33-58em of the 1vw body; that no longer follows the tile's font-size */
  #start .subscribe_newsletter { width: 100%; max-width: 34rem; }
}
@media (max-width: 767px) {
  .p_gen, .p_gen.smaller { font-size: max(1.9em, 14px); }
  .p_gen.blue { font-size: max(2.15em, 14px); }
  .input_field { font-size: max(1.85em, 15px); }
}
@media (max-width: 479px) {
  .price_tile, .price_features { font-size: 15px; }
  #start .wrapper_general { padding-top: 6.5rem; } /* 15em of a 1vw body is 58px, under the fixed header */
}
/* /start is short: keep the footer at the bottom of the viewport on tall screens */
.start_page { min-height: 100svh; display: flex; flex-flow: column; }
.start_page > main { flex: 1 0 auto; }
