@charset "UTF-8";
/**
 * @file
 * Global Coresis theme entrypoint.
 *
 * The order mirrors the former Drupal library declaration. Runtime
 * compatibility stays last until each legacy selector has a component owner.
 */
/* ---------------------------------------------------------------------------
   Canonical type scale. Every page hero, section title and card heading on the
   site resolves to one of these four steps, so headings of the same rank read
   at the same size no matter which legacy class (title-w1, title-drupal,
   crs-hero-h, ...) the content happens to use.

   display  100.8px @1440  page hero        h2       72px  section title
   h3        28px          subsection       h4     21.6px  card / label

   Hanken Grotesk is the single text family. Component styles retain the
   responsive scale, while the canonical typography layer owns font family,
   title weight, title color and body leading.
   ------------------------------------------------------------------------- */
:root {
  --crs-display-size: clamp(2.19rem, 5.11vw, 4.599rem);
  --crs-display-weight: 700;
  --crs-display-ls: normal;
  --crs-display-lh: 1.12;
  --crs-h2-size: clamp(1.7155rem, 3.65vw, 3.285rem);
  --crs-h2-weight: 700;
  --crs-h2-ls: normal;
  --crs-h2-lh: 1.06;
  --crs-h3-size: clamp(1.3rem, 2.2vw, 1.75rem);
  --crs-h4-size: clamp(1.15rem, 1.6vw, 1.35rem);
  /* Bootstrap controls inherit the site's single named text family. */
  --bs-font-sans-serif: "Hanken Grotesk", sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-line-height: normal;
  --bs-heading-font-family: var(--bs-font-sans-serif);
  /* Side gutter. The floor is 1.5rem: Bootstrap's container ships 12px per
     side, which left headings almost touching the screen edge on phones,
     and 16px (the iOS/Material minimum) still reads cramped under this
     site's large display type. */
  --crs-gutter-min: 1.5rem;
  --crs-gutter: clamp(1.5rem, 4.5vw, 4rem);
  /* Medida de lectura única del sitio. Antes convivían 58/60/68/70/74/78ch
     según la hoja y la sección, así que el ancho del texto saltaba al bajar
     por la página. 70ch es el valor que ya usaban las landing, de modo que
     adoptarlo como canónico las deja intactas.

     Se aplica a los elementos de prosa, nunca al bloque que los contiene:
     los componentes anchos (tablas, el FAQ de dos columnas, .crs-prose-list)
     necesitan más espacio y gestionan su propio ancho. Acotar el bloque
     tampoco funcionaba, porque el min-content de esos grids desbordaba el
     max-width igualmente. */
  --crs-measure: 70ch;
  /* Ancho útil de una sección: lo que queda del contenedor tras los
     gutters. Lo usan los componentes que no son prosa (tablas, el FAQ de
     dos columnas, las listas a dos columnas) para salirse de la medida.
     Por encima de 81rem manda esa rama y no interviene el viewport; por
     debajo se descuenta 1rem extra como margen de seguridad frente al
     ancho de la barra de scroll, que 100vw sí incluye. */
  --crs-section-max: 81rem;
  --crs-wide: min(
    calc(var(--crs-section-max) - 2 * var(--crs-gutter)),
    calc(100vw - 2 * var(--crs-gutter) - 1rem)
  );
}

@media (max-width: 47.99rem) {
  :root {
    --crs-display-size: clamp(1.971rem, 8.76vw, 2.92rem);
    --crs-h2-size: clamp(1.606rem, 7.3vw, 2.3725rem);
  }
}
html {
  background-color: #0d0d1c;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

body {
  overflow-x: clip;
  overflow-y: visible;
  margin: 0;
  min-height: 100dvh;
  background-color: hsl(101, 0%, 3%);
  background-image: radial-gradient(at 34% 98%, hsl(46, 0%, 3%) 0px, transparent 50%), radial-gradient(at 38% 76%, hsl(230, 63%, 23%) 0px, transparent 50%), radial-gradient(at 39% 29%, hsl(229, 0%, 3%) 0px, transparent 50%), radial-gradient(at 62% 45%, hsla(15, 87%, 56%, 0.4) 0px, transparent 50%), radial-gradient(at 62% 62%, hsl(292, 0%, 3%) 0px, transparent 50%), radial-gradient(at 61% 71%, hsl(230, 63%, 23%) 0px, transparent 50%);
}

/* The bootstrap5 base theme pads every region .5rem, which breaks the
   full-bleed sections (visible as dark slivers beside light canvases).
   Coresis components manage their own gutters. */
.region-content,
.region-footer {
  padding-inline: 0;
}

/* Bootstrap's .container carries a 12px side gutter, and the DXPR sections
   inherit it, so headings and prose sat almost against the screen edge on
   phones. Raise those to the site's gutter floor; components that go
   deliberately full-bleed zero their padding with !important and still win.
   The nested reset keeps a container inside a container from doubling up. */
@media (max-width: 61.99rem) {
  .main-content :where(.container, .container-fluid) {
    padding-inline: var(--crs-gutter-min);
  }
  .main-content :where(.container, .container-fluid) :where(.container, .container-fluid) {
    padding-inline: 0;
  }
}
.main-content :where(img, video, iframe) {
  max-width: 100%;
  height: auto;
}

.main-content :where(.az-row, .layout.row) > * {
  min-width: 0;
}

.main-content :where(.az-text, .ck-content, .field--type-text-with-summary) {
  overflow-wrap: break-word;
}

.row.no-gutters {
  --bs-gutter-x: 0;
  margin-inline: 0;
}

/* Breadcrumb: hidden — the site is shallow (one click deep), so visual
   wayfinding adds noise; BreadcrumbList metadata still ships for SEO. */
#block-coresis-breadcrumbs-2 {
  display: none;
}

#block-coresis-breadcrumbs-2 .breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.6rem;
  margin: 0;
  padding: 0.55rem 0;
  overflow-x: auto;
  color: rgba(240, 250, 255, 0.64);
  font-family: var(--crs-font-content);
  font-size: clamp(0.75rem, 1vw, 0.8125rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.4;
  list-style: none;
  scrollbar-width: none;
}

#block-coresis-breadcrumbs-2 .breadcrumb::-webkit-scrollbar {
  display: none;
}

#block-coresis-breadcrumbs-2 .breadcrumb-item {
  flex: 0 0 auto;
  padding: 0;
}

#block-coresis-breadcrumbs-2 .breadcrumb-item::before {
  content: none !important;
}

#block-coresis-breadcrumbs-2 .breadcrumb-item + .breadcrumb-item::before {
  content: "/" !important;
  float: none;
  padding: 0 0.6rem 0 0;
  color: rgba(93, 212, 239, 0.55);
}

#block-coresis-breadcrumbs-2 a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 0.2em;
}

#block-coresis-breadcrumbs-2 a:hover {
  color: #fff;
  text-decoration: underline;
}

#block-coresis-breadcrumbs-2 a:focus-visible {
  color: #fff;
  outline: 0.125rem solid #5dd4ef;
  outline-offset: 0.25rem;
}

body:not(.page-node-type-portfolio-case) #block-coresis-breadcrumbs-2 {
  position: absolute;
  inset: 4.75rem 0 auto;
  z-index: 5;
}

#block-coresis-breadcrumbs-2 + .bg-darkpage-id {
  padding-block-start: 8rem;
}

.bg-darkpage-id {
  padding-block-start: 5.5rem;
}

.bg-darkpage-id h1 {
  max-width: 100%;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

/* On GOV.CO and the error landings the block title repeats the display title
   the content already renders. Keep the only h1 in the DOM without showing
   the duplicate. */
body:where(.page-node-3, .coresis-error-page) .bg-darkpage-id h1 {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Page eyebrow (the small uppercase label above a hero) — one step,
   one weight, one tracking, on every page that shows it. */
body:where(.page-node-type-landing, .page-node-type-techologies) .bg-darkpage-id h1,
body:has(.coresis-about) .bg-darkpage-id h1 {
  font-family: var(--crs-font-content);
  font-size: 0.8rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.main-content .title-w1,
.main-content .title-w2,
.main-content .title-d1 {
  font-size: var(--crs-h2-size);
  line-height: var(--crs-h2-lh);
  overflow-wrap: break-word;
}

/* Evita scrollers internos en el contenedor principal. */
[data-barba=wrapper],
.main-container {
  overflow-y: visible !important;
  max-height: none !important;
}

.main-container {
  position: relative;
}

[data-barba=container] {
  backface-visibility: hidden;
}

body.coresis-barba-transitioning [data-barba=container] {
  will-change: opacity, transform;
}

/* Portfolio home vertical slider. */
.mobile-apps-section {
  --portfolio-slider-height: clamp(380px, 50vw, 650px);
  --portfolio-slider-gap: clamp(12px, 1.1vw, 16px);
  --portfolio-slider-offset: 3%;
  --portfolio-slider-tilt: -12deg;
  inline-size: 100%;
  min-block-size: min(650px, 82vh);
  overflow: hidden;
  position: relative;
}

.mobile-apps-section .right-content {
  align-items: center;
  block-size: var(--portfolio-slider-height);
  display: flex;
  inline-size: 100%;
  justify-content: center;
  min-block-size: 360px;
  overflow: hidden;
  position: relative;
}

.mobile-apps-section .slider-rotated {
  block-size: calc(var(--portfolio-slider-height) + 18vh);
  inline-size: min(90%, 650px);
  max-inline-size: none;
  position: relative;
  transform: translateX(var(--portfolio-slider-offset)) rotate(var(--portfolio-slider-tilt));
  transform-origin: center;
  z-index: 1;
}

.mobile-apps-section .slider-container {
  block-size: 100%;
  display: grid;
  gap: var(--portfolio-slider-gap);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  inline-size: 100%;
  overflow: hidden;
  position: relative;
}

.mobile-apps-section .column {
  min-inline-size: 0;
  overflow: hidden;
  position: relative;
}

.mobile-apps-section .slider {
  display: flex;
  flex-direction: column;
  gap: var(--portfolio-slider-gap);
  inline-size: 100%;
  position: relative;
  will-change: transform;
}

.mobile-apps-section .slider img {
  background: transparent;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
  clip-path: inset(3px round 7px);
  display: block;
  inline-size: 100%;
  margin: 0;
}

.mobile-apps-section .up {
  animation: portfolioScrollUp 64s linear infinite;
}

.mobile-apps-section .down {
  animation: portfolioScrollDown 64s linear infinite;
}

.mobile-apps-section.is-paused .slider {
  animation-play-state: paused;
}

@keyframes portfolioScrollUp {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-50%);
  }
}
@keyframes portfolioScrollDown {
  from {
    transform: translateY(-50%);
  }
  to {
    transform: translateY(0);
  }
}
@media (max-width: 992px) {
  .mobile-apps-section {
    --portfolio-slider-height: clamp(360px, 72vw, 520px);
    --portfolio-slider-offset: 2%;
    --portfolio-slider-tilt: -10deg;
    min-block-size: var(--portfolio-slider-height);
  }
  .mobile-apps-section .slider-rotated {
    block-size: calc(var(--portfolio-slider-height) + 12vh);
    inline-size: min(96%, 620px);
  }
}
@media (max-width: 575px) {
  .mobile-apps-section {
    --portfolio-slider-height: 420px;
    --portfolio-slider-gap: 10px;
    --portfolio-slider-offset: 0%;
    --portfolio-slider-tilt: -8deg;
    margin-block-start: 28px;
  }
  .mobile-apps-section .right-content {
    min-block-size: 380px;
  }
  .mobile-apps-section .slider-rotated {
    block-size: var(--portfolio-slider-height);
    inline-size: 112%;
  }
  .mobile-apps-section .slider-container {
    gap: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-apps-section .slider {
    animation: none;
    transform: none !important;
  }
}
.video-container-wrap .containerd {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}

.video-container-wrap .top-id1 {
  /* Overrides the legacy CSS injector desktop rule, which is also important.
     The primary home heading follows the shared display scale. */
  display: block;
  max-width: 18ch;
  font-family: var(--crs-font-content);
  font-size: var(--crs-display-size) !important;
  font-weight: var(--crs-display-weight);
  letter-spacing: var(--crs-display-ls);
  line-height: var(--crs-display-lh);
  overflow-wrap: break-word;
}

.video-container-wrap .top-id2 {
  display: block;
  max-width: 48rem;
  margin: 0;
  color: rgba(240, 250, 255, 0.82);
  font-family: var(--crs-font-content);
  font-size: clamp(1.1rem, 2vw, 1.5rem) !important;
  font-weight: 520;
  letter-spacing: 0.015em;
  line-height: normal;
}

@media (max-width: 47.99rem) {
  .video-container-wrap {
    padding-block-start: 5rem;
  }
  .video-container-wrap .call-to-ac {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }
  .video-container-wrap :where(.call-texting, .glow-button, .btn-25) {
    max-width: 100%;
  }
  .bg-darkpage-id {
    padding-block-start: 7rem;
  }
}
.hero-h1 {
  margin: 0;
  padding: 0;
  font: inherit;
  display: block;
}

/* Home hero: the injected legacy CSS pins .containerd with an absolute
   translate hack; recenter it as a grid overlay so the heading, question and
   CTA sit dead-center of the viewport on every screen size. */
.video-container-wrap .containerd {
  position: absolute;
  inset: 0;
  top: 0;
  left: 0;
  transform: none;
  display: grid;
  place-content: center;
  justify-items: center;
  row-gap: clamp(1.25rem, 3vh, 2.5rem);
  padding-inline: var(--crs-gutter);
  text-align: center;
}

.video-container-wrap .well-home {
  display: grid;
  justify-items: center;
  row-gap: clamp(1rem, 2.5vh, 2rem);
}

.video-container-wrap .asking .call-to-ac {
  align-items: center;
  justify-content: center;
}

.video-container-wrap .call-texting .home-w1 {
  margin: 0;
  /* Same voice AND size as the landing hero subtitle (.crs-hero-sub). */
  font-family: var(--crs-font-content);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 500;
  letter-spacing: normal;
  line-height: normal;
  color: rgba(240, 250, 255, 0.86);
}

.video-container-wrap :where(.top-id1, .top-id2) {
  text-wrap: balance;
}

/* Home section titles use the shared Hanken Grotesk display ramp. */
body.path-frontpage :where(.title-w1, .title-w2, .title-d1) {
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
  text-transform: none;
}

/* Service cards on the home carry the shared card-heading step. */
body.path-frontpage .main-content h4 {
  font-family: var(--crs-font-content);
  font-size: var(--crs-h4-size);
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

body.path-frontpage .btn-blockw {
  transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

body.path-frontpage .btn-blockw:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

/* Bloque de posicionamiento Drupal en el home: contenido real con
   accesos rápidos al clúster de servicios (no un párrafo suelto).
   Excepción deliberada a --crs-measure: es un bloque contenedor, no una
   columna de lectura. Pendiente de revisar si se unifica. */
.intro-drupal-section {
  max-width: 78ch;
  margin: 0 auto clamp(32px, 4vw, 56px);
  padding: clamp(24px, 3vw, 36px) clamp(22px, 3vw, 40px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(6px);
}

.intro-drupal-section p {
  font-size: clamp(16px, 1.15vw, 18px);
  line-height: normal;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

.intro-drupal-section strong {
  color: #fff;
  font-weight: 700;
}

.intro-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.pill-link {
  display: inline-block;
  padding: 9px 18px;
  border: 1px solid rgba(42, 168, 223, 0.55);
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  color: #7cd0f5;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.pill-link:hover,
.pill-link:focus {
  background-color: #2aa8df;
  border-color: #2aa8df;
  color: #04121c;
  text-decoration: none;
}

/* GOV.CO y Drupal (node 3): legacy DXPR content aligned with the site's
   editorial system — display title ramp, full-bleed video and centered
   brand chips on the dark canvas. */
body.page-node-3 .field--name-field-content .title-w1 {
  max-width: 14ch;
  margin: 0 0 clamp(2rem, 5vw, 3.5rem);
  color: #fff;
  font-family: var(--crs-font-content);
  font-size: var(--crs-display-size);
  font-weight: var(--crs-display-weight);
  letter-spacing: var(--crs-display-ls);
  line-height: var(--crs-display-lh);
  text-wrap: balance;
}

body.page-node-3 .field--name-field-content .title-w1 strong {
  font-weight: inherit;
}

body.page-node-3 .field--name-field-content .title-w1 span[style] {
  color: #65d7ee !important;
}

body.page-node-3 .field--name-field-content > .az-container.dxpr > .az-section:first-child .b-black > p {
  color: rgba(240, 250, 255, 0.86);
  line-height: normal;
}

body.page-node-3 .field--name-field-content > .az-container.dxpr > .az-section:first-child blockquote {
  border-color: #65d7ee;
}

body.page-node-3 .field--name-field-content > .az-container.dxpr > .az-section:first-child blockquote p {
  color: rgba(240, 250, 255, 0.86);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-style: normal;
  line-height: normal;
}

body.page-node-3 .field--name-field-content iframe {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  max-height: 65svh;
  aspect-ratio: 16/9;
  margin-inline: auto;
  border: 0;
  border-radius: 0;
}

body.page-node-3 .field--name-field-content .container-fluid-wrapper {
  text-align: center;
}

body.page-node-3 .field--name-field-content #Idqovkvj6 .container-fluid {
  padding-inline: 0;
}

body.page-node-3 .field--name-field-content .container-fluid-wrapper h2 {
  color: #f4fbff;
  font-family: var(--crs-font-content);
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  font-weight: 680;
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

body.page-node-3 .field--name-field-content #Cajpsfyt6 h3 {
  color: #f4fbff;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h3-size);
  font-weight: 680;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

/* "¿Por qué Drupal?" follows the shared section-title scale. */
body.page-node-3 .field--name-field-content .title-d1 {
  color: #111a26;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

body.page-node-3 .field--name-field-content .title-d1 strong {
  font-weight: inherit;
}

body.page-node-3 .field--name-field-content .title-d1 span[style] {
  color: #126b91 !important;
}

body.page-node-3 .field--name-field-content .bg-clear .b-black,
body.page-node-3 .field--name-field-content .bg-clear .b-black p {
  color: #3f4a59;
  line-height: normal;
}

body.page-node-3 .field--name-field-content .container-fluid-wrapper .b-white,
body.page-node-3 .field--name-field-content .container-fluid-wrapper .b-white p {
  color: rgba(240, 250, 255, 0.86);
  line-height: normal;
}

body.page-node-3 .field--name-field-content .container-fluid-wrapper a {
  color: #65d7ee;
}

/* Legacy landing titles act as a quiet page eyebrow; component heroes own the
   expressive heading. */
body.page-node-type-landing .bg-darkpage-id h1 {
  color: rgba(240, 250, 255, 0.68);
  font-family: var(--crs-font-content);
  font-size: clamp(0.9rem, 1.25vw, 1.1rem);
  font-weight: 650;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-transform: uppercase;
}

/* The "Hablemos" CTA keeps its original arcade treatment (asset-injector
   btn-25 styles); the theme only adds an accessible focus ring. */
body.path-frontpage .btn-25:focus-visible {
  outline: 0.1875rem solid #5dd4ef;
  outline-offset: 0.25rem;
}

/* Error landings: centered, hierarchical and calm — one primary action. */
body.coresis-error-page #coresis-404-section {
  display: grid;
  align-content: center;
  min-height: 100svh;
  padding-block: 9rem 5rem;
}

body.coresis-error-page .ck-content .title-w1 {
  margin: 0;
  background: none;
  color: #65d7ee;
  font-family: var(--crs-font-content);
  font-size: clamp(6rem, 15vw, 11rem);
  font-weight: 700;
  letter-spacing: normal;
  line-height: 0.85;
  -webkit-text-fill-color: currentColor;
}

body.coresis-error-page .ck-content .title-w2 {
  margin: 0.75rem 0 1.5rem;
  color: #f4fbff;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

/* Excepción deliberada a --crs-measure: override por nodo, pendiente de
   revisar si se unifica con la medida canónica. */
body.coresis-error-page .ck-content p {
  max-width: 58ch;
  margin-inline: 0;
  color: rgba(240, 250, 255, 0.86);
  font-size: 1.05rem;
  line-height: normal;
}

body.coresis-error-page .ck-content h2:not(.title-w1, .title-w2) {
  margin: 2.5rem 0 1rem;
  color: #7cd0f5;
  font-family: var(--crs-font-content);
  font-size: 0.8rem;
  font-weight: 750;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.coresis-error-page .ck-content ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0.75rem;
  margin: 0 0 2.5rem;
  padding: 0;
  list-style: none;
}

body.coresis-error-page .ck-content ul a {
  display: inline-block;
  padding: 0.5rem 1.1rem;
  border: 1px solid rgba(42, 168, 223, 0.5);
  border-radius: 999px;
  color: #7cd0f5;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.coresis-error-page .ck-content ul a:hover {
  background: #2aa8df;
  border-color: #2aa8df;
  color: #04121c;
  text-decoration: none;
}

body.coresis-error-page .coresis-404-actions .btn-blockw {
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

/* The secondary actions are outlined on a dark canvas, so they need light
   text. `#main-content a.btn-blockw` sets the dark ink for the solid orange
   variant and, being an ID selector, outranks any class-only rule — match
   its specificity here or these two buttons render invisible. */
body.coresis-error-page #main-content .coresis-404-actions .btn-blockw:not(:first-child),
body.coresis-error-page #main-content .coresis-404-actions .btn-blockw:not(:first-child):hover,
body.coresis-error-page #main-content .coresis-404-actions .btn-blockw:not(:first-child):focus-visible {
  background: transparent;
  border: 1px solid rgba(240, 250, 255, 0.32);
  color: #e9f5fc;
}

body.coresis-error-page #main-content .coresis-404-actions .btn-blockw:not(:first-child):hover {
  border-color: #5dd4ef;
  color: #fff;
}

body.coresis-error-page .coresis-404-actions .btn-blockw:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

/* Site-wide editorial finish: shared reading, technology and footer contracts. */
a.skip-link:focus {
  background: #fff;
  color: #075f80;
}

body.page-node-type-techologies #main-content .crs-tech-text a:not(.btn-blockw),
body.page-node-type-techologies #main-content .crs-tech-text a:not(.btn-blockw) strong {
  color: #075f80;
}

body.page-node-type-techologies #main-content .crs-tech-hero .crs-tech-text a,
body.page-node-type-techologies #main-content .seo-cta a {
  color: #fff;
}

#main-content a.btn-blockw,
#main-content a.btn-blockw:hover,
#main-content a.btn-blockw:focus-visible {
  color: #111a26;
}

body.page-node-type-techologies {
  background: #f7f8f7;
}

body.page-node-type-techologies section.color-bg-full-main-content {
  background: #f7f8f7;
}

body.page-node-type-techologies .crs-prose-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(2rem, 5vw, 4rem);
  max-width: 66rem;
  margin-block: 2rem 4rem;
  padding: 0;
  border-top: 1px solid rgba(15, 37, 57, 0.14);
  list-style: none;
}

body.page-node-type-techologies .crs-prose-list > li {
  position: relative;
  margin: 0;
  padding: 1.1rem 0 1.1rem 1.5rem;
  border-bottom: 1px solid rgba(15, 37, 57, 0.14);
}

body.page-node-type-techologies .crs-prose-list > li::before {
  position: absolute;
  top: 1.8rem;
  left: 0;
  width: 0.45rem;
  height: 0.12rem;
  background: #2aa8df;
  content: "";
}

.all-footer-container {
  position: relative;
  background: radial-gradient(circle at 80% 0%, rgba(42, 168, 223, 0.13), transparent 24rem), #080d17;
  border-top: 1px solid rgba(247, 251, 255, 0.48);
  color: rgba(240, 250, 255, 0.72);
}

.all-footer-container > .footer {
  border-top: 0;
  font-family: var(--crs-font-content);
  font-size: var(--crs-body-size);
  line-height: var(--crs-body-leading);
  padding-block: 0;
}

.footer-int {
  max-width: 81rem;
  margin-inline: auto;
  padding: clamp(1.25rem, 2.5vw, 2rem) var(--crs-gutter);
}

.footer .field--name-body > .row {
  min-height: 0;
}

.footer .foot-txt {
  margin: 0;
  padding: 0;
  color: rgba(240, 250, 255, 0.6);
  font-size: inherit;
  letter-spacing: normal;
  line-height: inherit;
}

.footer .foot-txt span {
  color: rgba(240, 250, 255, 0.88);
}

.footer .foot-list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.75rem 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer .foot-list li {
  margin: 0;
}

.footer :where(.foot-link, .foot-call) {
  color: #f0faff;
  font-family: inherit;
  font-size: inherit;
  font-weight: 600;
  line-height: inherit;
  text-decoration-color: #2aa8df;
  text-underline-offset: 0.3em;
}

.footer .foot-link:hover,
.footer .foot-link:focus-visible {
  color: #65d7ee;
}

/* Los iconos de correo y telefono pasaron a SVG embebido en site-footer.css.
   Antes dependian de font-family: bootstrap-icons, lo que obligaba a
   descargar 128 KB de fuente para dibujar dos glifos. */
@media (max-width: 47.99rem) {
  body.page-node-type-techologies .crs-prose-list {
    grid-template-columns: 1fr;
  }
  .footer .foot-list {
    align-items: flex-start;
    justify-content: flex-start;
    margin-top: 1.5rem;
  }
}
/* Para pantallas de mínimo x ancho */
/* Para pantallas de máximo x ancho */
/**
 * @file
 * Bootstrap 5 navigation component for the Coresis header.
 */
.site-navbar {
  position: absolute;
  inset: 0 0 auto;
  z-index: 1000;
  width: 100%;
  min-height: 4.5rem;
  background-color: transparent;
}

body.user-logged-in .site-navbar {
  top: var(--drupal-displace-offset-top, 0px);
  right: var(--drupal-displace-offset-right, 0px);
  left: var(--drupal-displace-offset-left, 0px);
  z-index: 400;
  width: auto;
}

body.user-logged-in:has(.layout-builder-form) #navbar {
  display: none;
}

.site-navbar__inner,
.site-navbar .region-navigation {
  display: flex;
  align-items: center;
  width: 100%;
}

.site-navbar .site-navbar__inner {
  max-width: none;
  padding-inline: clamp(1rem, 2.5vw, 2.5rem);
}

.site-navbar .region-navigation {
  flex-wrap: nowrap;
  min-width: 0;
}

.site-navbar .main-logo {
  position: static;
}

.site-navbar .main-logo img {
  width: min(10.5rem, 50vw);
  height: auto;
}

.site-navigation {
  position: static;
  display: flex;
  flex: 1 1 auto;
  justify-content: flex-end;
  min-width: 0;
  margin-inline-start: auto;
}

.site-navbar__branding {
  order: 1;
  flex: 0 0 auto;
  width: auto;
  max-width: calc(100% - 3.5rem);
}

.site-navigation-block {
  order: 2;
  flex: 1 1 auto;
  margin-inline-start: auto;
}

.site-navigation__toggler {
  min-width: 2.75rem;
  min-height: 2.75rem;
  margin-inline-start: auto;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.site-navigation__toggler:focus {
  box-shadow: none;
}

.site-navigation__toggler:focus-visible {
  outline: 0;
}

.site-navigation__toggler:focus-visible .navbar-toggler-icon {
  transform: scale(1.12);
}

.site-navigation__collapse .navbar-nav {
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.25rem;
  margin-inline-start: auto;
}

.site-navigation__collapse .nav-link {
  padding: 0.65rem 0.75rem;
  color: rgba(255, 255, 255, 0.82);
  /* Fluid so the six links still fit on one row at the 1200px breakpoint
     while reaching the site's 1rem UI size on wider screens. */
  font-size: clamp(0.9375rem, 1.1vw, 1rem);
  font-weight: 550;
  white-space: nowrap;
}

.site-navigation__collapse .nav-link:hover,
.site-navigation__collapse .nav-link:focus-visible {
  color: #fff;
}

.site-navigation__collapse .nav-link:is(.active, .is-active) {
  color: #5dd4ef !important;
  transition: none;
  text-decoration: underline;
  text-decoration-color: #5dd4ef;
  text-decoration-thickness: 0.15rem;
  text-underline-offset: 0.35rem;
}

.language-switcher-language-url {
  order: 3;
  flex: 0 0 auto;
  margin-inline-start: 0.25rem;
}

.language-switcher {
  position: relative;
}

.language-switcher__toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.65rem 0.75rem;
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--crs-font-content);
  font-size: clamp(0.8125rem, 1.1vw, 1rem);
  font-weight: 550;
  line-height: 1.5;
  cursor: pointer;
  white-space: nowrap;
}

.language-switcher__toggle:hover,
.language-switcher__toggle:focus-visible,
.language-switcher__toggle.show {
  background: transparent;
  color: #fff;
}

.language-switcher__toggle:focus-visible {
  outline: 0;
  box-shadow: inset 0 -0.125rem #5dd4ef;
}

.language-switcher__globe,
.language-switcher__chevron {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.language-switcher__chevron {
  width: 0.75rem;
  height: 0.75rem;
  transition: transform 0.18s ease;
}

.language-switcher__toggle.show .language-switcher__chevron {
  transform: rotate(180deg);
}

.language-switcher__menu {
  min-width: 10rem;
  margin-top: 0.35rem;
  padding: 0.4rem;
  background-color: rgba(9, 38, 61, 0.96);
  border: 0;
  border-radius: 0.5rem;
  box-shadow: 0 1rem 2.5rem rgba(4, 18, 31, 0.45);
  -webkit-backdrop-filter: blur(5rem);
  backdrop-filter: blur(5rem);
}

.language-switcher__menu > li {
  list-style: none;
}

.language-switcher__link {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.75rem;
  background: transparent;
  border-radius: 0.3rem;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--crs-font-content);
  font-size: clamp(0.9375rem, 1.1vw, 1rem);
  font-weight: 550;
  text-decoration: none;
}

.language-switcher__link:hover,
.language-switcher__link:focus-visible {
  background: rgba(93, 212, 239, 0.1);
  color: #fff;
}

.language-switcher__flag {
  display: block;
  flex: 0 0 auto;
  width: 1.25rem;
  height: 0.875rem;
  overflow: hidden;
  border-radius: 0.125rem;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18);
}

.language-switcher__flag svg {
  display: block;
  width: 100%;
  height: 100%;
}

.site-navigation__collapse .nav-item:last-child .nav-link {
  padding-inline-end: 0;
}

/* Second-level menu. Bootstrap ships a white card with system type, which
   reads as a foreign element on the dark glass navbar; restate it in the
   site's own material, palette and type. */
.site-navigation__collapse .dropdown-menu {
  margin-top: 0.35rem;
  padding: 0.4rem;
  min-width: 12.5rem;
  background-color: rgba(9, 38, 61, 0.92);
  border: 0;
  border-radius: 0.5rem;
  box-shadow: 0 1rem 2.5rem rgba(4, 18, 31, 0.45);
  -webkit-backdrop-filter: blur(5rem);
  backdrop-filter: blur(5rem);
}

.site-navigation__collapse .dropdown-menu .dropdown-item {
  background-color: transparent;
  border-radius: 0.3rem;
  padding: 0.55rem 0.75rem;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(0.9375rem, 1.1vw, 1rem);
  font-weight: 550;
  transition: color 0.18s ease;
}

.site-navigation__collapse .dropdown-menu .dropdown-item:hover,
.site-navigation__collapse .dropdown-menu .dropdown-item:focus,
.site-navigation__collapse .dropdown-menu .dropdown-item:active,
.site-navigation__collapse .dropdown-menu .dropdown-item.is-active,
.site-navigation__collapse .dropdown-menu .dropdown-item.active {
  background-color: transparent;
  color: #fff;
}

/* Open the second level on hover for pointer users. Done in CSS rather than
   with Bootstrap's click handler so Barba, which takes link clicks before
   Bootstrap sees them, cannot break it — and so it needs no re-init after a
   page swap. :focus-within keeps it reachable from the keyboard. */
@media (min-width: 75rem) {
  .language-switcher__toggle::before {
    position: absolute;
    right: 0.75rem;
    bottom: 0.3rem;
    left: 0.75rem;
    height: 0.125rem;
    background: #5dd4ef;
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .language-switcher__toggle:hover::before,
  .language-switcher__toggle:focus-visible::before,
  .language-switcher__toggle.show::before {
    transform: scaleX(1);
  }

  .site-navigation__collapse {
    position: relative;
  }
  .site-navigation__collapse > .navbar-nav > .nav-item > .nav-link {
    position: relative;
    background-color: transparent;
  }
  .site-navigation__collapse > .navbar-nav > .nav-item > .nav-link::before {
    position: absolute;
    right: 0.75rem;
    bottom: 0.3rem;
    left: 0.75rem;
    height: 0.125rem;
    background: #5dd4ef;
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .site-navigation__collapse > .navbar-nav > .nav-item > .nav-link:hover::before,
  .site-navigation__collapse > .navbar-nav > .nav-item > .nav-link:focus-visible::before,
  .site-navigation__collapse > .navbar-nav > .nav-item > .nav-link:is(.active, .is-active)::before {
    transform: scaleX(1);
  }
  .site-navigation__collapse > .navbar-nav > .nav-item > .nav-link:is(.active, .is-active) {
    text-decoration: none;
  }
  .site-navigation__collapse :is(.nav-link, .dropdown-item):is(:hover, :focus-visible, .active, .is-active) {
    text-decoration: none;
  }
  .site-navigation__collapse .nav-item.dropdown {
    position: relative;
  }
  .site-navigation__collapse .nav-item.dropdown.nav-item--megamenu {
    position: relative;
  }
  .site-navigation__collapse .nav-item.dropdown > .dropdown-menu {
    top: 100%;
    left: 0;
    display: block;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-0.35rem);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
  }
  .site-navigation__collapse .nav-item.dropdown:hover > .dropdown-menu,
  .site-navigation__collapse .nav-item.dropdown:focus-within > .dropdown-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0s;
  }
  /* Bridges the gap under the parent link so the pointer can travel into the
     panel without crossing dead space and dismissing it. */
  .site-navigation__collapse .nav-item.dropdown > .dropdown-menu::before {
    position: absolute;
    inset: -0.55rem 0 auto;
    height: 0.55rem;
    content: "";
  }
  .site-navigation__collapse .nav-item--megamenu > .mega-menu {
    top: calc(100% + 0.35rem);
    right: auto;
    left: 0;
    width: min(45rem, 100vw - 2rem);
    min-width: 0;
    margin: 0;
    padding: 1rem;
    transform: translateY(-0.35rem);
    background-color: transparent;
    border-color: rgba(93, 212, 239, 0.22);
    border-radius: 1rem;
    box-shadow: 0 1.5rem 3.5rem rgba(4, 18, 31, 0.48);
  }
  .site-navigation__collapse .nav-item--megamenu:hover > .mega-menu,
  .site-navigation__collapse .nav-item--megamenu:focus-within > .mega-menu {
    transform: translateY(0);
  }
  .site-navigation__collapse .nav-item--megamenu > #coresis-megamenu-ai {
    right: auto;
    left: 0;
  }
  .site-navigation__collapse .nav-item.dropdown.nav-item--megamenu > .mega-menu--three-columns {
    right: 0;
    left: auto;
    width: min(54rem, 100vw - 2rem);
  }
  .mega-menu__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mega-menu--three-columns .mega-menu__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .mega-menu__group {
    min-width: 0;
    padding-inline: 1rem;
  }
  .mega-menu__group + .mega-menu__group {
    border-inline-start: 1px solid rgba(255, 255, 255, 0.12);
  }
  .mega-menu__group-label {
    display: block;
    margin: 0 0 0.45rem;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.75rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
  .mega-menu__list {
    display: grid;
    gap: 0.2rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .site-navigation__collapse .mega-menu__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.25rem;
    align-items: center;
    gap: 0.75rem;
    min-height: 3.35rem;
    padding: 0.55rem 0.65rem;
    white-space: normal;
  }
  .site-navigation__collapse .mega-menu__link--featured {
    min-height: 4.35rem;
  }
  .mega-menu__copy,
  .mega-menu__title,
  .mega-menu__description {
    min-width: 0;
  }
  .mega-menu__title {
    display: block;
    position: relative;
    width: fit-content;
    color: #fff;
    font-size: 1rem;
    line-height: 1.25;
  }
  .mega-menu__title::after {
    position: absolute;
    right: 0;
    bottom: -0.2rem;
    left: 0;
    height: 0.125rem;
    background: #5dd4ef;
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .mega-menu__link:hover .mega-menu__title::after,
  .mega-menu__link:focus-visible .mega-menu__title::after,
  .mega-menu__link:is(.is-active, .active) .mega-menu__title::after {
    transform: scaleX(1);
  }
  .mega-menu__description {
    display: block;
    margin-top: 0.2rem;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.8rem;
    font-weight: 450;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mega-menu__visual {
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.65rem;
    color: #5dd4ef;
    transition: background-color 0.18s ease, transform 0.18s ease;
  }
  .mega-menu__icon {
    width: 1.5rem;
    height: 1.5rem;
    object-fit: contain;
  }
  .mega-menu__icon--monochrome {
    filter: brightness(0) saturate(100%) invert(81%) sepia(48%) saturate(828%) hue-rotate(152deg) brightness(99%) contrast(89%);
  }
  .mega-menu__arrow {
    font-size: 1rem;
    line-height: 1;
  }
  .mega-menu__link:hover .mega-menu__visual,
  .mega-menu__link:focus-visible .mega-menu__visual {
    background: rgba(93, 212, 239, 0.15);
    transform: translate(0.1rem, -0.1rem);
  }
  .mega-menu__footer {
    margin: 0.8rem 1rem 0;
    padding-top: 0.8rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }
  .site-navigation__collapse .mega-menu__link--all {
    grid-template-columns: minmax(0, 1fr);
    width: fit-content;
    min-height: 3rem;
    background: transparent;
    box-shadow: none;
    color: #fff;
  }
  .mega-menu__link--all .mega-menu__title {
    transition: color 0.18s ease;
  }
  .mega-menu__link--all .mega-menu__title::after {
    content: none;
  }
  .mega-menu__link--all:hover .mega-menu__title,
  .mega-menu__link--all:focus-visible .mega-menu__title {
    color: #f2622e;
  }
}
.site-navigation__collapse .dropdown-toggle::after {
  margin-left: 0.4rem;
  vertical-align: 0.18em;
  opacity: 0.7;
}

@media (min-width: 75rem) and (max-width: 79.99rem) {
  .site-navigation__collapse .nav-link,
  .language-switcher__toggle {
    padding-inline: 0.5rem;
  }
}

@media (max-width: 74.99rem) {
  .language-switcher-language-url {
    order: 2;
    margin-inline-start: auto;
  }

  .site-navigation-block {
    order: 3;
    flex: 0 0 auto;
    margin-inline-start: 0;
  }

  .language-switcher__toggle {
    padding-inline: 0.625rem;
    font-size: 0.875rem;
  }

  .mega-menu__grid,
  .mega-menu__group {
    display: block;
  }
  .mega-menu__group-label,
  .mega-menu__description,
  .mega-menu__visual {
    display: none;
  }
  .mega-menu__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .mega-menu__footer {
    margin: 0;
    padding: 0;
    border: 0;
  }
  .site-navigation__collapse .mega-menu__link {
    display: block;
  }
  .site-navbar__inner,
  .site-navbar .region-navigation {
    min-height: 4.5rem;
  }
  /* Keep the existing administrative navigation unchanged. */
  body.user-logged-in .site-navigation__collapse {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    max-height: calc(100vh - 5rem);
    padding: 1rem 1.5rem;
    overflow-y: auto;
    background-color: rgba(9, 38, 61, 0.78);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 0.75rem 1.5rem rgba(4, 18, 31, 0.24);
    -webkit-backdrop-filter: blur(1.25rem);
    backdrop-filter: blur(1.25rem);
  }
  body.user-logged-in .site-navigation__collapse .dropdown-menu {
    position: static !important;
    display: block !important;
    float: none;
    inset: auto !important;
    width: auto;
    min-width: 0;
    margin: 0.15rem 0 0.5rem !important;
    padding: 0 0 0 0.9rem;
    transform: none !important;
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 0;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  body.user-logged-in .site-navigation__collapse .dropdown-menu .dropdown-item {
    padding-inline: 0;
    padding-block: 0.55rem;
    color: rgba(255, 255, 255, 0.72);
  }
  body.user-logged-in .site-navigation__collapse .nav-link {
    padding: 0.8rem 0;
    color: #fff;
    font-size: 1rem;
  }
  body.user-logged-in .site-navigation__collapse .dropdown-toggle::after {
    display: none;
  }
  body:not(.user-logged-in) .site-navbar {
    position: fixed;
    min-height: 4.5rem;
    transform: translateY(0);
    transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.25s ease, border-color 0.25s ease;
    will-change: transform;
  }
  body:not(.user-logged-in) .site-navbar.is-hidden:not(.is-menu-open) {
    transform: translateY(-105%);
  }
  body:not(.user-logged-in) .site-navbar.is-scrolled {
    background-color: rgba(9, 38, 61, 0.96);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  body:not(.user-logged-in) .site-navbar.is-menu-open {
    background-color: #09263d;
    border-bottom-color: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  html.crs-nav-open {
    overflow-x: clip !important;
    overflow-y: hidden !important;
    scrollbar-gutter: stable;
  }
  body:not(.user-logged-in) #anima::before {
    position: fixed;
    z-index: 999;
    inset: 0;
    background: rgba(3, 12, 22, 0.58);
    content: "";
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.28s ease, visibility 0s linear 0.28s;
  }
  html.crs-nav-open body:not(.user-logged-in) #anima::before {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
  }
  body:not(.user-logged-in) .site-navigation__toggler {
    display: grid;
    place-items: center;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    padding: 0;
    background: transparent;
    border: 0;
  }
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon {
    position: relative;
    width: 1.35rem;
    height: 0.9rem;
    background: linear-gradient(#5dd4ef, #5dd4ef) center/100% 0.125rem no-repeat;
    transition: background-size 0.3s ease, transform 0.2s ease;
  }
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon::before,
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon::after {
    position: absolute;
    left: 0;
    width: 100%;
    height: 0.125rem;
    background: #5dd4ef;
    border-radius: 999px;
    content: "";
    transition: transform 0.3s ease, top 0.3s ease;
  }
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon::before {
    top: 0.1rem;
  }
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon::after {
    top: 0.7rem;
  }
  body:not(.user-logged-in) .site-navigation__toggler:not(.collapsed) .navbar-toggler-icon {
    background-size: 0 0.125rem;
  }
  body:not(.user-logged-in) .site-navigation__toggler:not(.collapsed) .navbar-toggler-icon::before,
  body:not(.user-logged-in) .site-navigation__toggler:not(.collapsed) .navbar-toggler-icon::after {
    top: 0.4rem;
  }
  body:not(.user-logged-in) .site-navigation__toggler:not(.collapsed) .navbar-toggler-icon::before {
    transform: rotate(45deg);
  }
  body:not(.user-logged-in) .site-navigation__toggler:not(.collapsed) .navbar-toggler-icon::after {
    transform: rotate(-45deg);
  }
  body:not(.user-logged-in) .site-navigation__collapse {
    position: absolute;
    top: calc(100% - 1px);
    right: 0;
    left: 0;
    max-height: calc(100dvh - 4.5rem);
    padding: 0.5rem clamp(1rem, 5vw, 2rem) 1.25rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    background-color: #09263d;
    border: 0;
    border-radius: 0 0 1.25rem 1.25rem;
    box-shadow: 0 1.5rem 3rem rgba(4, 18, 31, 0.35);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  body:not(.user-logged-in) .site-navigation__collapse.collapsing {
    transition: height 0.4s cubic-bezier(0.65, 0, 0.35, 1);
  }
  .site-navigation__collapse .navbar-nav {
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 0;
  }
  body:not(.user-logged-in) .site-navigation__collapse > .navbar-nav > .nav-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }
  body:not(.user-logged-in) .site-navigation__collapse > .navbar-nav > .nav-item:last-child {
    margin-top: 1rem;
    border-bottom: 0;
  }
  body:not(.user-logged-in) .site-navigation__collapse > .navbar-nav > .nav-item > .nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 3.5rem;
    padding: 0.85rem 0.25rem;
    color: #fff;
    font-size: 1rem;
  }
  body:not(.user-logged-in) .site-navigation__collapse > .navbar-nav > .nav-item:last-child > .nav-link {
    justify-content: center;
    min-height: 3rem;
    padding: 0.75rem 1rem;
    background: #5dd4ef;
    border-radius: 999px;
    color: #09263d;
    font-weight: 700;
  }
  body:not(.user-logged-in) .site-navigation__collapse .dropdown-toggle::after {
    width: auto;
    height: auto;
    margin-left: 1rem;
    border: 0;
    content: "+";
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 1;
    opacity: 0.8;
    transition: transform 0.3s ease;
  }
  body:not(.user-logged-in) .site-navigation__collapse .is-submenu-open > .dropdown-toggle::after {
    transform: rotate(45deg);
  }
  body:not(.user-logged-in) .site-navigation__collapse .dropdown-menu {
    position: static !important;
    display: none !important;
    float: none;
    inset: auto !important;
    width: auto;
    min-width: 0;
    margin: 0 !important;
    padding: 0 0 0.75rem 1rem;
    transform: none !important;
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(93, 212, 239, 0.4);
    border-radius: 0;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  body:not(.user-logged-in) .site-navigation__collapse .is-submenu-open > .dropdown-menu {
    display: block !important;
  }
  body:not(.user-logged-in) .site-navigation__collapse .dropdown-menu .dropdown-item {
    padding: 0.55rem 0.75rem;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.9375rem;
  }
}
@media (max-width: 74.99rem) and (prefers-reduced-motion: reduce) {
  body:not(.user-logged-in) .site-navbar,
  body:not(.user-logged-in) #anima::before,
  body:not(.user-logged-in) .site-navigation__collapse.collapsing,
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon,
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon::before,
  body:not(.user-logged-in) .site-navigation__toggler .navbar-toggler-icon::after {
    transition-duration: 0.01ms;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mega-menu,
  .mega-menu__visual {
    transition-duration: 0.01ms;
  }
}
/* Authenticated local tasks sit in content_top, directly behind the absolute
   site navbar. Present the native Drupal links as a compact editing rail. */
body.user-logged-in .wrap_section-contento_top {
  position: relative;
  z-index: 990;
  padding: 5.25rem 1rem 0.75rem;
}

body.user-logged-in #block-coresis-local-tasks {
  width: max-content;
  max-width: 100%;
  padding: 0.375rem;
  background: rgba(9, 38, 61, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  box-shadow: 0 0.75rem 2rem rgba(4, 18, 31, 0.32);
  -webkit-backdrop-filter: blur(1rem);
  backdrop-filter: blur(1rem);
  position: absolute;
  top: 69px;
  right: 0;
  z-index: 99999;
}

body.user-logged-in #block-coresis-local-tasks .tabs-primary {
  max-width: calc(100vw - var(--drupal-displace-offset-left, 0px) - 2rem);
  margin: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

body.user-logged-in #block-coresis-local-tasks .nav-tabs {
  align-items: center;
  flex-flow: row nowrap !important;
  gap: 0.25rem;
  width: max-content;
  margin: 0;
  padding: 0;
  overflow: visible;
  background: transparent;
  border: 0;
}

body.user-logged-in #block-coresis-local-tasks .nav-item {
  display: flex !important;
  flex: 0 0 auto;
  padding: 0 !important;
  background: transparent !important;
}

body.user-logged-in #block-coresis-local-tasks .nav-link {
  min-height: 2.5rem;
  padding: 0.55rem 0.85rem !important;
  color: rgba(240, 250, 255, 0.82);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
}

body.user-logged-in #block-coresis-local-tasks .nav-link:hover,
body.user-logged-in #block-coresis-local-tasks .nav-link:focus-visible {
  color: #fff;
  background: rgba(93, 212, 239, 0.12) !important;
  border-color: rgba(93, 212, 239, 0.45) !important;
}

body.user-logged-in #block-coresis-local-tasks .nav-link:focus-visible {
  outline: 0.1875rem solid #5dd4ef;
  outline-offset: 0.125rem;
}

body.user-logged-in #block-coresis-local-tasks .nav-link.active,
body.user-logged-in #block-coresis-local-tasks .nav-link.is-active {
  color: #07131d;
  background: #5dd4ef !important;
  border-color: #8ee8f8 !important;
}

body.user-logged-in #block-coresis-local-tasks .tab-toggle {
  display: none !important;
}

/**
 * @file
 * Site-wide semantic experience components.
 */
:root {
  --crs-hero-content-inset: calc((100vw - var(--crs-hero-shell-width)) / 2 + var(--crs-hero-shell-padding));
  --crs-hero-shell-padding: .75rem;
  --crs-hero-shell-width: min(49.625rem, calc(100vw - 3rem));
  --crs-index-height: 3.75rem;
}

/* Contextual navigation for long-form editorial pages. */
.crs-index {
  --crs-index-border: var(--crs-hairline, rgb(15 37 57 / 14%));
  --crs-index-ink: #fff;
  --crs-index-muted: #fff;
  position: relative;
  z-index: 30;
  display: block;
  visibility: visible;
  box-sizing: border-box;
  width: 100vw;
  height: var(--crs-index-height);
  margin-inline: calc(50% - 50vw);
  opacity: 1;
  background: transparent;
  border-bottom: 1px solid var(--crs-index-border);
  color: var(--crs-index-ink);
}

.page-node-3 .crs-index,
.page-node-type-techologies .crs-index {
  --crs-index-border: rgb(101 215 238 / 22%);
  --crs-index-ink: #fff;
  --crs-index-muted: #fff;
}

.crs-index-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.85rem;
  max-width: 81rem;
  min-height: 100%;
  margin-inline: auto;
  padding-inline: var(--crs-gutter);
}

.crs-index-rail {
  position: relative;
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  height: 100%;
}

.crs-index-label {
  color: var(--crs-index-muted);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
}

.crs-index-links {
  grid-row: 1;
  grid-column: 2;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
  scroll-behavior: smooth;
}

.crs-index-rail.can-scroll-next:not(.can-scroll-previous) .crs-index-links {
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 3.75rem), transparent);
  mask-image: linear-gradient(90deg, #000 calc(100% - 3.75rem), transparent);
}

.crs-index-rail.can-scroll-previous:not(.can-scroll-next) .crs-index-links {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 3.75rem);
  mask-image: linear-gradient(90deg, transparent, #000 3.75rem);
}

.crs-index-rail.can-scroll-previous.can-scroll-next .crs-index-links {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 3.75rem, #000 calc(100% - 3.75rem), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 3.75rem, #000 calc(100% - 3.75rem), transparent);
}

.crs-index-links::-webkit-scrollbar {
  display: none;
}

.crs-index a {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  padding: 0.95rem 0 0.8rem;
  border-bottom: 0.125rem solid transparent;
  border-radius: 0;
  color: var(--crs-index-muted) !important;
  font-size: 0.875rem;
  font-weight: 550;
  line-height: 1.15;
  text-decoration: none !important;
  white-space: nowrap;
  -webkit-user-drag: none;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.crs-index a:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -0.875rem;
  width: 0.25rem;
  height: 0.25rem;
  border-radius: 50%;
  background: var(--crs-accent-bright, #65d7ee);
  content: "";
  transform: translateY(-50%);
}

.crs-index a[aria-current=location] {
  color: var(--crs-index-ink) !important;
  background: transparent;
  border-bottom-color: var(--crs-accent-bright, #65d7ee);
  box-shadow: none;
}

.crs-index a:hover,
.crs-index a:focus-visible {
  color: var(--crs-index-ink) !important;
  background: transparent;
  border-bottom-color: var(--crs-accent-bright, #65d7ee);
  box-shadow: none;
  outline: 0;
}

.crs-index-control:focus-visible {
  outline: 0.125rem solid var(--crs-accent, #2aa8df);
  outline-offset: 0.125rem;
}

.crs-index-control {
  position: relative;
  z-index: 2;
  grid-row: 1;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  opacity: 0.35;
  visibility: visible;
  border: 0;
  border-radius: 0;
  color: var(--crs-accent-bright, #65d7ee);
  background: transparent;
  box-shadow: none;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.crs-index-control::before {
  width: 0.48rem;
  height: 0.48rem;
  border-top: 0.1rem solid currentColor;
  border-right: 0.1rem solid currentColor;
  content: "";
  transform: rotate(45deg);
}

.crs-index-control--previous {
  grid-column: 1;
}

.crs-index-control--previous::before {
  transform: rotate(-135deg);
}

.crs-index-control--next {
  grid-column: 3;
}

.crs-index-rail.can-scroll-previous .crs-index-control--previous,
.crs-index-rail.can-scroll-next .crs-index-control--next {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.crs-index-control:not(:disabled):hover {
  opacity: 0.72;
  background: transparent;
  box-shadow: none;
}

@media (hover: hover) and (pointer: fine) {
  .crs-index-links {
    cursor: grab;
  }
  .crs-index-links.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    user-select: none;
  }
}
/* Technology pages: one shared hero and an open editorial reasons ledger. */
.node--type-techologies .crs-tech-section {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

body.page-node-type-techologies .color-bg-full-main-content {
  background: transparent !important;
}

.node--type-techologies .crs-tech-hero {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  align-content: center;
  justify-content: center;
  width: 100vw;
  min-height: 100svh;
  padding-block: clamp(8rem, 13vw, 11rem) clamp(4.5rem, 8vw, 7rem);
  padding-inline: max(var(--crs-gutter-min), (100vw - 72rem) / 2);
  overflow: hidden;
  color: #fff;
  background: none !important;
}

.node--type-techologies .crs-tech-hero::before,
.node--type-techologies .crs-tech-hero::after {
  display: none;
}

.node--type-techologies .crs-tech-hero > .container {
  position: relative;
  z-index: 1;
  width: min(100%, 49.625rem);
  min-height: 0;
  margin-inline: auto;
  padding: 0 !important;
}

.node--type-techologies .crs-tech-hero:has(+ .crs-index) {
  height: calc(100svh - var(--crs-index-height));
  min-height: 0;
  align-content: safe center;
  justify-content: safe center;
}

.node--type-techologies .crs-tech-hero .row {
  align-items: center !important;
  width: 100%;
  margin-inline: 0;
}

.node--type-techologies .crs-tech-hero :where(.animated, .fadeInUp) {
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}

.node--type-techologies .crs-tech-hero .row > .crs-tech-column:first-child {
  display: none !important;
}

.node--type-techologies .crs-tech-hero .row > .crs-tech-column:last-child {
  flex: 0 0 100%;
  max-width: 100%;
}

.node--type-techologies .crs-tech-hero .crs-tech-text.info-padd {
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
}

.node--type-techologies .crs-tech-hero :where(h1, h3.title-w1) {
  max-width: 14ch;
  margin: 0;
  color: var(--crs-title-color) !important;
  font-family: var(--crs-font-content);
  font-size: var(--crs-display-size) !important;
  font-weight: var(--crs-display-weight);
  letter-spacing: var(--crs-display-ls);
  line-height: var(--crs-display-lh) !important;
}

.node--type-techologies .crs-tech-hero :where(h1, h3.title-w1)::after {
  display: none;
}

.node--type-techologies .crs-tech-hero .crs-tech-text.info-padd p {
  max-width: 70ch;
  margin: 0 0 1rem;
  color: #fff !important;
  font-family: var(--crs-font-content);
  font-size: var(--crs-body-size);
  font-weight: 500;
  line-height: var(--crs-body-leading);
}

.node--type-techologies .crs-tech-reasons {
  visibility: visible !important;
  opacity: 1 !important;
  background: #f7f8f7 !important;
  animation: none !important;
  transform: none !important;
}

.node--type-techologies .crs-tech-reasons > .container {
  max-width: 81rem;
  margin-inline: auto;
  padding: clamp(5rem, 8vw, 7rem) var(--crs-gutter) !important;
}

.node--type-techologies .crs-tech-reasons > .container > .row {
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

.node--type-techologies .crs-tech-reasons > .container > .row:first-child {
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
  padding-bottom: clamp(2rem, 4vw, 3rem) !important;
  border-bottom: 1px solid rgba(15, 37, 57, 0.18);
}

.node--type-techologies .crs-tech-reasons .bcenter {
  text-align: left !important;
}

.node--type-techologies .crs-tech-reasons h2.title-d1 {
  margin: 0 0 0.75rem;
  color: #617083;
  font-family: var(--crs-font-content);
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.node--type-techologies .crs-tech-reasons :is(h1, h2:not(.title-d1)),
.node--type-techologies .crs-tech-reasons h2:not(.title-d1) span {
  max-width: 18ch;
  margin: clamp(4rem, 8vw, 7rem) 0 1.25rem;
  color: #111a26 !important;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size) !important;
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

.node--type-techologies .crs-tech-reasons > .container > .row:first-child h2:not(.title-d1),
.node--type-techologies .crs-tech-reasons > .container > .row:first-child h2:not(.title-d1) span {
  margin: 0;
}

.node--type-techologies .crs-tech-reasons > .container > .row:not(:first-child) {
  display: grid !important;
  grid-template-columns: clamp(3rem, 5vw, 4.5rem) minmax(0, 1fr);
  align-items: flex-start !important;
  gap: 1rem clamp(1.25rem, 3vw, 2.5rem);
  margin: 0 !important;
  padding-block: clamp(1.75rem, 3vw, 2.5rem) !important;
  border-bottom: 1px solid rgba(15, 37, 57, 0.14);
}

.node--type-techologies .crs-tech-reasons > .container > .row:not(:first-child) > .crs-tech-column:has(img) {
  grid-column: 1;
  width: auto;
  padding: 0;
}

.node--type-techologies .crs-tech-reasons > .container > .row:not(:first-child) > .crs-tech-column:has(p, h3, ul, ol) {
  grid-column: 2;
  width: auto;
  max-width: none;
  padding: 0;
}

.node--type-techologies .crs-tech-reasons > .container > .row:not(:first-child) > .crs-tech-column:not(:has(img)):not(:has(p, h3, ul, ol)) {
  display: none;
}

.node--type-techologies .crs-tech-reasons .crs-tech-image img {
  width: 3rem !important;
  height: 3rem;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.node--type-techologies .crs-tech-reasons .row:not(:first-child) .crs-tech-text h3 {
  /* Sin tope, el encabezado se estiraba a todo el ancho de la columna
     mientras su propio párrafo quedaba acotado. */
  max-width: var(--crs-measure);
  margin: 0 0 0.5rem;
  color: #17283a;
  font-family: var(--crs-font-content);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.3;
}

.node--type-techologies :where(.crs-tech-reasons, .crs-tech-content) .crs-tech-text :where(p, li) {
  color: #3f4a59;
  font-family: var(--crs-font-content);
  font-size: clamp(1rem, 1.15vw, 1.0625rem);
  line-height: 1.6;
}

.node--type-techologies .crs-tech-reasons .row:not(:first-child) .crs-tech-text p {
  max-width: var(--crs-measure);
  margin: 0;
}

.node--type-techologies .crs-tech-content {
  background: #fff;
}

.node--type-techologies .crs-tech-content > .container {
  max-width: 81rem;
  margin-inline: auto;
  padding: clamp(4rem, 7vw, 6rem) var(--crs-gutter) !important;
}

.node--type-techologies .crs-tech-content:has(+ .crs-tech-content) > .container {
  padding-bottom: clamp(2rem, 4vw, 3rem) !important;
}

.node--type-techologies .crs-tech-content + .crs-tech-content > .container {
  padding-top: clamp(2rem, 4vw, 3rem) !important;
}

.node--type-techologies .crs-tech-brand {
  overflow: hidden;
  color: #f0faff;
  background-color: #07101c;
}

.node--type-techologies .crs-tech-brand > .container {
  max-width: 81rem;
  margin-inline: auto;
  padding: clamp(4rem, 8vw, 7rem) var(--crs-gutter) !important;
}

.node--type-techologies .crs-tech-brand .row {
  align-items: center;
  justify-content: center;
}

.node--type-techologies .crs-tech-brand img {
  display: block;
  max-width: min(100%, 34rem);
  max-height: 18rem;
  margin-inline: auto;
  object-fit: contain;
}

/* El tope va en el bloque, no en cada elemento: `ch` es relativo al
   font-size propio, así que aplicado a un h2 de 40px daría ~1400px y no
   limitaría nada. En el bloque se resuelve con el tamaño del texto normal
   y los encabezados quedan alineados con sus párrafos.

   Antes el bloque quedaba exento en cuanto contuviera una tabla, y como
   algunos mezclan tabla con varias secciones de texto, esa prosa saltaba
   a ancho completo mientras la de alrededor seguía acotada. Ahora el tope
   es incondicional y son los componentes anchos los que se salen. */
.node--type-techologies .crs-tech-content .crs-tech-text {
  width: 100%;
  max-width: var(--crs-measure);
  margin-inline: auto;
}

/* Los estilos heredados de asset_injector ponen font-size: 1.19em a
   div.b-black y div.b-white. Eso arrastra la resolución de `ch` y dejaba
   esos bloques ~120px más anchos que sus hermanos, que es justo el salto
   de ancho que se percibía al bajar por la página. Se normaliza la base
   para que la medida salga igual en todos; el texto visible no cambia,
   porque párrafos, listas y encabezados fijan su propio tamaño. */
.node--type-techologies .crs-tech-content .crs-tech-text:is(.b-black, .b-white) {
  font-size: 1rem;
}

/* Componentes que necesitan más ancho que una columna de lectura: la tabla
   comparativa, el FAQ a dos columnas y la lista de prosa en dos columnas.
   Se centran sobre el ancho útil de la sección. */
.node--type-techologies .crs-tech-content .crs-tech-text > :is(.crs-table-scroll, .crs-faq, .crs-prose-list) {
  width: var(--crs-wide);
  max-width: none;
  margin-inline: calc((100% - var(--crs-wide)) / 2);
}

.node--type-techologies .crs-tech-content .crs-tech-text h2 {
  margin: 4rem 0 1.25rem;
  color: #111a26;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

.node--type-techologies .crs-tech-content .crs-tech-text > h2:first-child {
  margin-top: 0;
}

.node--type-techologies .crs-tech-content .crs-tech-text h3 {
  margin: 2rem 0 0.7rem;
  color: #17283a;
  font-family: var(--crs-font-content);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  line-height: 1.35;
}

.node--type-techologies .crs-tech-text a {
  color: #126b91 !important;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.node--type-techologies .crs-table-scroll {
  overflow-x: auto;
  margin-block: 1.5rem;
}

.node--type-techologies .crs-tech-text > table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}

.node--type-techologies table {
  width: 100%;
  border: 1px solid var(--crs-hairline, rgba(15, 37, 57, 0.14)) !important;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 0.875rem;
  overflow: hidden;
  font-family: var(--crs-font-content);
  font-size: clamp(0.95rem, 1.1vw, 1.02rem);
  line-height: 1.35;
}

.node--type-techologies table th {
  padding: 0.9rem 1.1rem !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
  background: var(--crs-dark, #0f2539) !important;
  color: #f0faff !important;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
}

.node--type-techologies table td {
  min-width: 11rem;
  padding: 0.85rem 1.1rem !important;
  border-color: var(--crs-hairline, rgba(15, 37, 57, 0.14)) !important;
  color: var(--crs-copy, #3f4a59) !important;
  vertical-align: top;
}

.node--type-techologies table tbody tr:nth-child(even) td {
  background: rgba(15, 37, 57, 0.03) !important;
}

/* Shared decision layer for every technology page. */
.node--type-techologies .crs-tech-editorial {
  background: #f7f8f7;
  border-top: 1px solid var(--crs-hairline, rgba(15, 37, 57, 0.14));
}

.node--type-techologies .crs-tech-editorial > .container {
  max-width: 81rem;
  margin-inline: auto;
  padding: clamp(5rem, 8vw, 7rem) var(--crs-gutter) !important;
}

.crs-tech-editorial__intro {
  max-width: var(--crs-measure);
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.crs-tech-editorial__eyebrow {
  margin: 0 0 0.85rem;
  color: #526274;
  font-size: 0.76rem;
  font-weight: 760;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.node--type-techologies .crs-tech-editorial__intro h2 {
  max-width: 19ch;
  margin: 0 0 1.25rem;
  color: #111a26;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

.crs-tech-editorial__lead {
  margin: 0;
  color: #354355;
  font-family: var(--crs-font-content);
  font-size: clamp(1.08rem, 1.5vw, 1.2rem);
  line-height: 1.65;
}

.crs-tech-editorial__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin-bottom: clamp(4rem, 7vw, 6rem);
}

.crs-tech-editorial__card {
  padding-top: 1.4rem;
  border-top: 0.18rem solid var(--crs-accent, #2aa8df);
}

.node--type-techologies .crs-tech-editorial h3 {
  margin: 0 0 0.75rem;
  color: #17283a;
  font-family: var(--crs-font-content);
  font-size: clamp(1.1rem, 1.7vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.35;
}

.node--type-techologies .crs-tech-editorial :where(p, li) {
  color: #3f4a59;
  font-family: var(--crs-font-content);
  font-size: clamp(1rem, 1.15vw, 1.0625rem);
  line-height: 1.65;
}

.crs-tech-editorial__card p,
.crs-tech-editorial__details p,
.crs-tech-editorial__resources p {
  margin: 0;
}

.crs-tech-editorial__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(15, 37, 57, 0.18);
}

.crs-tech-editorial__details > article {
  padding: clamp(2rem, 4vw, 3.25rem) clamp(0rem, 3vw, 2.5rem);
  border-bottom: 1px solid rgba(15, 37, 57, 0.14);
}

.crs-tech-editorial__details > article:nth-child(odd) {
  padding-left: 0;
  border-right: 1px solid rgba(15, 37, 57, 0.14);
}

.crs-tech-editorial__details > article:nth-child(even) {
  padding-right: 0;
}

.crs-tech-editorial__checklist ul {
  display: grid;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.crs-tech-editorial__checklist li {
  position: relative;
  padding-left: 1.4rem;
}

.crs-tech-editorial__checklist li::before {
  position: absolute;
  top: 0.65em;
  left: 0;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--crs-accent, #2aa8df);
  content: "";
}

.crs-tech-editorial__resources {
  max-width: var(--crs-measure);
  margin-top: clamp(3rem, 6vw, 5rem);
}

.crs-tech-editorial__resources nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.crs-tech-editorial__resources nav a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid rgba(18, 107, 145, 0.34);
  border-radius: 999px;
  color: #126b91 !important;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none !important;
}

.crs-tech-editorial__resources nav a:hover,
.crs-tech-editorial__resources nav a:focus-visible {
  border-color: #126b91;
  background: #fff;
}

.crs-faq {
  --crs-faq-accent: var(--crs-accent, #2aa8df);
  --crs-faq-copy: var(--crs-copy, #3f4a59);
  --crs-faq-line: var(--crs-hairline, rgb(15 37 57 / 14%));
  --crs-faq-title: var(--crs-ink, #111a26);
  display: grid;
  grid-template-columns: minmax(15rem, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(3rem, 8vw, 8rem);
  margin-block: clamp(6rem, 11vw, 10rem);
  padding-top: clamp(2rem, 5vw, 4rem);
  border-top: 1px solid var(--crs-faq-line);
}

.crs-faq .crs-faq-title {
  align-self: start;
  margin: 0 !important;
  color: var(--crs-faq-title) !important;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size) !important;
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

.crs-faq-list {
  border-top: 1px solid var(--crs-faq-line);
}

.crs-faq-item {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--crs-faq-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.crs-faq-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem;
  align-items: start;
  gap: 1.5rem;
  margin: 0 !important;
  padding: 1.6rem 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--crs-faq-title) !important;
  cursor: pointer;
  font-family: var(--crs-font-content);
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  font-weight: 630;
  letter-spacing: -0.02em;
  line-height: 1.35;
  list-style: none;
}

.crs-faq-summary::-webkit-details-marker {
  display: none;
}

.crs-faq-icon {
  position: relative;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: 0.1rem;
}

.crs-faq-icon::before,
.crs-faq-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1rem;
  height: 0.1rem;
  background: var(--crs-faq-accent);
  content: "";
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease;
}

.crs-faq-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.crs-faq-item[open] .crs-faq-icon::after {
  transform: translate(-50%, -50%) rotate(0);
}

.crs-faq-answer {
  max-width: 62ch;
  padding: 0 3.5rem 1.75rem 0;
  color: var(--crs-faq-copy);
}

.crs-faq-answer > :last-child {
  margin-bottom: 0;
}

.crs-faq-summary:hover,
.crs-faq-summary:focus-visible {
  color: #126b91 !important;
}

@media (min-width: 64rem) {
  .crs-faq-title {
    position: sticky;
    top: 6rem;
  }
}
@media (max-width: 47.99rem) {
  :root {
    --crs-hero-shell-padding: 1.5rem;
  }
  .coresis-about .crs-index {
    --crs-index-border: rgb(101 215 238 / 22%);
    --crs-index-ink: #fff;
    --crs-index-muted: #fff;
  }
  .crs-index-inner {
    display: flex;
    min-height: 100%;
    padding-inline: 1.25rem;
  }
  .crs-index-label {
    display: none;
  }
  .crs-index-links {
    gap: 1.5rem;
    width: 100%;
  }
  .node--type-techologies .crs-tech-hero > .container {
    padding: 0 !important;
  }
  .node--type-techologies .crs-tech-hero .row > .crs-tech-column:last-child {
    padding-inline: 1.5rem;
  }
  .node--type-techologies .crs-tech-hero :where(h1, h3.title-w1) {
    max-width: 14ch;
  }
  .node--type-techologies .crs-tech-reasons > .container > .row:not(:first-child) {
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: 1rem;
  }
  .crs-tech-editorial__grid,
  .crs-tech-editorial__details {
    grid-template-columns: 1fr;
  }
  .crs-tech-editorial__details > article {
    padding-inline: 0;
  }
  .crs-tech-editorial__details > article:nth-child(odd) {
    border-right: 0;
  }
  .crs-faq {
    display: block;
    margin-block: 6rem;
  }
  .crs-faq-list {
    margin-top: 2.5rem;
  }
  .crs-faq-answer {
    padding-right: 0;
  }
}
@media (min-width: 48rem) {
  .node--type-techologies .crs-tech-hero > .container {
    width: min(60vw, 72rem);
    max-width: none;
  }
  .node--type-techologies .crs-tech-hero :where(h1, h3.title-w1) {
    max-width: none;
  }
}
@media (max-height: 43.75rem) {
  .node--type-techologies .crs-tech-hero:has(+ .crs-index) {
    padding-block: 4rem 0.5rem;
  }
  .node--type-techologies .crs-tech-hero :where(h1, h3.title-w1) {
    font-size: min(var(--crs-display-size), clamp(1.75rem, 8svh, 3.25rem)) !important;
  }
}
@media (max-height: 31.25rem) {
  .node--type-techologies .crs-tech-hero:has(+ .crs-index) p {
    font-size: 0.9375rem;
    line-height: 1.25;
  }
}
@media (prefers-reduced-motion: reduce) {
  .crs-index a,
  .crs-index-control {
    transition: none;
  }
  .crs-faq-icon::before,
  .crs-faq-icon::after {
    transition: none;
  }
}
/**
 * Editorial presentation for the legacy DXPR content on Quienes somos.
 */
body:has(.coresis-about) {
  background-color: #090d18;
  background-image: radial-gradient(circle at 8% 18%, rgba(26, 108, 145, 0.35), transparent 32rem), radial-gradient(circle at 92% 32%, rgba(72, 20, 108, 0.3), transparent 35rem);
}

body:has(.coresis-about) .bg-darkpage-id {
  position: absolute;
  z-index: 2;
  width: 100%;
  padding-top: clamp(6.5rem, 10vw, 9rem);
  pointer-events: none;
}

body:has(.coresis-about) .bg-darkpage-id h1 {
  width: min(100% - 2.5rem, 78rem);
  margin: 0 auto;
  /* The display title sits inside a .container AND a bootstrap column, so it
     carries two 12px gutters; match both or the eyebrow hangs 24px left. */
  padding: 0 1.5rem;
  color: #7cd0f5;
}

.coresis-about {
  --about-accent: #25c7d9;
  --about-copy: #dce8ef;
  --about-dark: #090d18;
  --about-ink: #111722;
  --about-muted: #66717d;
  --about-soft: #f3f6f7;
  color: var(--about-copy);
  font-family: var(--crs-font-content);
  font-size: clamp(1rem, 1.15vw, 1.125rem);
  font-weight: 400;
  line-height: normal;
}

.coresis-about > .az-container {
  max-width: none;
  padding: 0;
}

.coresis-about > .az-container > .az-section {
  overflow: hidden;
}

.coresis-about > .az-container > .az-section:first-of-type {
  display: grid;
  align-items: center;
  min-height: 100svh;
}

.coresis-about > .az-container > .az-section:first-of-type:has(+ .crs-index) {
  min-height: 0;
}

.coresis-about > .az-container > .az-section:first-of-type > .container {
  width: min(100% - 2.5rem, 78rem);
  max-width: none;
  padding-block: clamp(10rem, 16vw, 14rem) clamp(5rem, 9vw, 8rem);
}

.coresis-about > .az-container > .az-section:first-of-type .az-row {
  margin-inline: 0;
  padding: 0;
}

.coresis-about > .az-container > .az-section:first-of-type .title-w2 {
  max-width: 10ch;
  margin: 0 0 clamp(2.5rem, 7vw, 5rem);
  background: none;
  color: #f4fbff;
  font-family: var(--crs-font-content);
  font-size: var(--crs-display-size);
  font-weight: var(--crs-display-weight);
  letter-spacing: var(--crs-display-ls);
  line-height: var(--crs-display-lh);
}

.coresis-about > .az-container > .az-section:first-of-type .title-w2::after {
  display: block;
  width: clamp(4rem, 9vw, 7rem);
  height: 0.2rem;
  margin-top: 2rem;
  background-color: var(--about-accent);
  content: "";
}

.coresis-about > .az-container > .az-section:first-of-type .col-sm-10 > .b-white {
  max-width: 58rem;
  margin-left: auto;
}

.coresis-about > .az-container > .az-section:first-of-type .b-white,
.coresis-about > .az-container > .az-section:first-of-type .b-white p {
  color: rgba(220, 232, 239, 0.82);
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
  font-weight: 400;
  line-height: normal;
}

.coresis-about > .az-container > .az-section:first-of-type .b-white strong {
  color: #fff;
  font-weight: 600;
}

.coresis-about .crs-hero .crs-hero-kicker {
  margin: 0 0 1rem;
}

.coresis-about .crs-clear-card {
  display: grid;
  grid-template-rows: minmax(11rem, 1fr) auto;
  height: 100%;
  overflow: hidden;
  border: 1px solid #dfe3e7;
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 1.25rem 3rem rgba(17, 26, 38, 0.12);
}

.coresis-about .crs-clear-card .pic-card {
  display: grid;
  place-items: center;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: #121b2d;
}

.coresis-about .crs-clear-card .pic-card img {
  display: block;
  width: auto;
  max-width: min(100%, 22rem);
  height: auto;
  max-height: 7rem;
  margin: 0;
  object-fit: contain;
}

.coresis-about .crs-clear-card .body-card {
  padding: 1.25rem 1.5rem;
  background: #fff;
}

.coresis-about .crs-clear-card .btn-we {
  display: inline-block;
  margin: 0;
  padding: 0;
  color: #f2622e;
  font-size: 1.2rem;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(242, 98, 46, 0.5);
  text-underline-offset: 0.3rem;
  transition: color 0.25s ease, text-decoration-color 0.25s ease;
}

.coresis-about .crs-clear-card .btn-we:hover,
.coresis-about .crs-clear-card .btn-we:focus-visible {
  color: #a63814;
  text-decoration-color: currentcolor;
}

.coresis-about > .az-container > .about-engineering-services {
  position: relative;
  background-color: var(--about-soft);
  color: var(--about-ink);
}

/* The former full-height center divider crossed the full-width intro prose
   and read as a rendering artifact; the staggered columns carry the rhythm
   on their own. */
.coresis-about > .az-container > .about-engineering-services > .container {
  width: min(100% - 2.5rem, 78rem);
  max-width: none;
  padding-block: clamp(6rem, 11vw, 10rem);
}

.coresis-about > .az-container > .about-engineering-services .info-padd {
  margin-inline: 0;
  padding: 0;
}

.coresis-about > .az-container > .about-engineering-services .title-w1 {
  max-width: 12ch;
  margin: 0 0 clamp(3rem, 8vw, 6rem);
  color: var(--about-ink);
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
}

.coresis-about > .az-container > .about-engineering-services .b-white,
.coresis-about > .az-container > .about-engineering-services .b-white p {
  color: #3e4854;
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  font-weight: 400;
}

.coresis-about > .az-container > .about-engineering-services .az-row > .col-sm-6 {
  padding-inline: clamp(1rem, 3vw, 2.5rem);
}

.coresis-about > .az-container > .about-engineering-services .az-row > .col-sm-6:nth-child(2) {
  padding-top: clamp(3rem, 8vw, 7rem);
}

.coresis-about .we-card2 {
  margin: 0 0 clamp(4rem, 8vw, 7rem);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.coresis-about .pic-card2 {
  overflow: hidden;
}

.coresis-about .pic-card2 img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  margin: 0;
  border-radius: 0;
  filter: saturate(0.75) contrast(1.04);
  object-fit: cover;
  transition: filter 0.5s ease, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.coresis-about .we-card2:hover .pic-card2 img {
  filter: saturate(1) contrast(1.04);
  transform: scale(1.025);
}

.coresis-about .body-wecard {
  min-height: 0;
  padding: 1.4rem 0 0;
}

.coresis-about .body-wecard h4 {
  margin: 0 0 0.85rem;
  color: var(--about-ink);
  font-family: var(--crs-font-content);
  font-size: var(--crs-h3-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: -0.025em;
  line-height: 1.2;
}

.coresis-about ul.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1.1rem;
  margin: 0;
  padding: 0;
  color: var(--about-muted);
  list-style: none;
}

.coresis-about ul.tag-list li {
  position: relative;
  margin: 0;
  padding: 0 0 0 0.8rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: normal;
}

.coresis-about ul.tag-list li::before {
  position: absolute;
  top: 0.62em;
  left: 0;
  width: 0.25rem;
  height: 0.25rem;
  margin: 0;
  border-radius: 50%;
  background-color: var(--about-accent);
  content: "";
}

@media (max-width: 47.99rem) {
  body:has(.coresis-about) .bg-darkpage-id {
    padding-top: 6rem;
  }
  .coresis-about > .az-container > .az-section:first-of-type {
    min-height: auto;
    background-size: 4rem 4rem;
  }
  .coresis-about > .az-container > .az-section:first-of-type > .container {
    padding-block: 9.5rem 5rem;
  }
  /* Display size comes from --crs-display-size, which the root stylesheet
     re-declares at this breakpoint. */
  .coresis-about > .az-container > .az-section:first-of-type .col-sm-1,
  .coresis-about > .az-container > .about-engineering-services .col-sm-1 {
    display: none;
  }
  .coresis-about > .az-container > .about-engineering-services::before {
    content: none;
  }
  .coresis-about > .az-container > .about-engineering-services .az-row > .col-sm-6 {
    padding-inline: 0;
  }
  .coresis-about > .az-container > .about-engineering-services .az-row > .col-sm-6:nth-child(2) {
    padding-top: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .coresis-about *,
  .coresis-about *::before,
  .coresis-about *::after {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
/**
 * @file
 * Coresis content typography, version 0.14.0.
 */
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/hanken-grotesk/hanken-grotesk-latin-var.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Hanken Grotesk";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/hanken-grotesk/hanken-grotesk-latin-var-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --crs-font-content: "Hanken Grotesk", sans-serif;
  --crs-body-size: clamp(1.0625rem, 1.015rem + 0.195vw, 1.19rem);
  --crs-body-size-lg: clamp(1.2538rem, 1.1977rem + 0.2301vw, 1.4042rem);
  --crs-body-leading: 1.284;
  --crs-h5-size: clamp(1.0625rem, 1rem + 0.25vw, 1.25rem);
  --crs-h6-size: clamp(1rem, 0.975rem + 0.125vw, 1.125rem);
  --crs-title-color: #65d7ee;
  --crs-display-ls: normal;
  --crs-h2-ls: normal;
}

body.coresis-type-hanken {
  --bs-font-sans-serif: var(--crs-font-content);
  --bs-body-font-family: var(--crs-font-content);
  --bs-body-line-height: var(--crs-body-leading);
  --bs-heading-font-family: var(--crs-font-content);
  font-family: var(--crs-font-content);
  line-height: var(--crs-body-leading);
}

body.coresis-type-hanken :is(h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
blockquote,
figcaption,
dt,
dd,
a,
button,
input,
label,
optgroup,
option,
select,
summary,
textarea,
.title-w1,
.title-w2,
.title-d1,
.title-drupal,
.hero-h1,
.home-w1,
.top-id1,
.top-id2,
.info-padd,
.field--name-field-lead,
.card-id,
.crs-hstat-n,
.crs-stat-n,
.crs-step-n,
.crs-faq-summary,
.strong25,
.coresis-about,
.rrssb-prefix,
.rrssb-buttons,
.rrssb-buttons *,
.coresis-about > .az-container > .az-section:first-of-type .title-w2) {
  font-family: var(--crs-font-content);
}

body.coresis-type-hanken :is(h1,
h2,
h3,
h4,
h5,
h6,
.title-w1,
.title-w2,
.title-d1,
.title-drupal,
.hero-h1,
.home-w1,
.top-id1,
.portfolio-case-title,
.crs-hero-h,
.card-id,
.portfolio-listing__overlay .views-field-title h5) {
  font-weight: 700;
}

.crs-hero-h {
  max-inline-size: 14ch;
  margin: 0;
  font-size: var(--crs-display-size);
  font-weight: var(--crs-display-weight);
  letter-spacing: var(--crs-display-ls);
  line-height: var(--crs-display-lh);
}

@media (min-width: 48rem) {
  .crs-hero-h {
    max-inline-size: 60vw;
  }
}
@media (min-width: 62rem) {
  body.coresis-type-hanken .coresis-modern-landing .crs-hero-h,
  body.coresis-type-hanken .coresis-modern-landing .crs-hero-sub {
    max-inline-size: none;
    margin-inline: 0;
  }
}
body.coresis-type-hanken :is(p,
li,
blockquote,
figcaption,
dt,
dd,
.field--name-field-lead,
.views-field-field-lead,
.crs-hero-sub,
.top-id2,
.info-padd) {
  line-height: var(--crs-body-leading);
}

.crs-section--high-contrast {
  background: hsla(240, 36%, 11.2%, 0.72);
  border: 0;
  border-radius: clamp(0.75rem, 1.5vw, 1.5rem);
  box-shadow: 0 1.25rem 3rem rgba(4, 18, 31, 0.28);
  backdrop-filter: blur(1.5rem) saturate(140%);
  color: #f4fbff;
  padding-block: clamp(1.5rem, 4vw, 3.5rem);
  -webkit-backdrop-filter: blur(1.5rem) saturate(140%);
}

body.coresis-type-hanken .crs-section--high-contrast :where(h1,
h2,
h3,
h4,
h5,
h6,
.title-w1,
.title-w2,
.title-d1,
.title-drupal) {
  -webkit-background-clip: border-box;
  background: none;
  background-clip: border-box;
  color: var(--crs-title-color);
  -webkit-text-fill-color: currentColor;
}

body.coresis-type-hanken .crs-section--high-contrast :where(p,
li,
blockquote,
figcaption,
dt,
dd,
.b-white,
.b-black) {
  color: rgba(244, 251, 255, 0.9);
}

body.coresis-type-hanken .crs-section--high-contrast a:not(.btn):not(.btn-blockw) {
  color: #65d7ee;
}

.crs-clear-bg {
  --crs-clear-heading: #12324a;
  --crs-clear-ink: #172b3b;
  --crs-clear-secondary-heading: #15384c;
  background: rgba(100, 215, 238, 0.9);
  color: var(--crs-clear-ink);
  -webkit-backdrop-filter: blur(1.5rem) saturate(115%);
  backdrop-filter: blur(1.5rem) saturate(115%);
}

.crs-bluedark-bg {
  background: rgba(0, 4, 46, 0.96);
  color: #f7fbff;
  -webkit-backdrop-filter: blur(1rem) saturate(135%);
  backdrop-filter: blur(1rem) saturate(135%);
}

.crs-ai-section {
  padding-block: clamp(2rem, 5vw, 4rem);
}

.crs-ai-section--light {
  background: #fdfdfd;
}

.crs-ai-section--paper {
  background: #f7f8f7;
}

.crs-ai-intro {
  text-align: left;
}

.crs-ai-row {
  padding-block: clamp(2rem, 4vw, 3.5rem);
}

.crs-ai-agency .row > :where(.col-lg-4, .col-lg-8) > :first-child {
  margin-top: 0;
}

.crs-ai-agency .crs-ai-section-title {
  margin-block: 0 !important;
  font-size: clamp(1.5rem, 1.42rem + 0.35vw, 1.75rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

body.coresis-type-hanken .crs-ai-section--clear :where(h2, h3, p, li, strong) {
  color: #fff;
}

body.coresis-type-hanken .crs-ai-section--clear a {
  color: #65d7ee;
}

body.coresis-type-hanken .coresis-modern-landing .crs-ai-agency .crs-prose-list {
  display: block;
  max-width: none !important;
  margin-block: 1.5rem 0;
  padding: 0;
  border: 0;
  list-style: none;
}

body.coresis-type-hanken .coresis-modern-landing .crs-ai-agency .crs-prose-list > li {
  position: relative;
  margin: 0;
  padding: 0 0 0 1.75rem;
  border: 0;
}

body.coresis-type-hanken .coresis-modern-landing .crs-ai-agency .crs-prose-list > li + li {
  margin-block-start: 1.3em;
}

body.coresis-type-hanken .coresis-modern-landing .crs-ai-agency .crs-prose-list > li::before {
  position: absolute;
  inset-block-start: 0.2em;
  inset-inline-start: 0;
  block-size: 1em;
  inline-size: 1em;
  background-color: #65d7ee;
  content: "";
  -webkit-mask: center/contain no-repeat;
  mask: center/contain no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M11 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8M6.025 7.5a5 5 0 1 1 0 1H4A1.5 1.5 0 0 1 2.5 10h-1A1.5 1.5 0 0 1 0 8.5v-1A1.5 1.5 0 0 1 1.5 6h1A1.5 1.5 0 0 1 4 7.5zM11 5a.5.5 0 0 1 .5.5v2h2a.5.5 0 0 1 0 1h-2v2a.5.5 0 0 1-1 0v-2h-2a.5.5 0 0 1 0-1h2v-2A.5.5 0 0 1 11 5M1.5 7a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M11 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8M6.025 7.5a5 5 0 1 1 0 1H4A1.5 1.5 0 0 1 2.5 10h-1A1.5 1.5 0 0 1 0 8.5v-1A1.5 1.5 0 0 1 1.5 6h1A1.5 1.5 0 0 1 4 7.5zM11 5a.5.5 0 0 1 .5.5v2h2a.5.5 0 0 1 0 1h-2v2a.5.5 0 0 1-1 0v-2h-2a.5.5 0 0 1 0-1h2v-2A.5.5 0 0 1 11 5M1.5 7a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z'/%3E%3C/svg%3E");
}

body.coresis-type-hanken .crs-faq.crs-bluedark-bg {
  --crs-faq-accent: #65d7ee;
  --crs-faq-copy: #98a3b2;
  --crs-faq-line: rgb(152 163 178 / 28%);
  --crs-faq-title: #98a3b2;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

body.coresis-type-hanken .crs-faq.crs-bluedark-bg .crs-faq-summary:is(:hover, :focus-visible) {
  color: #65d7ee !important;
}

body.coresis-type-hanken .crs-ai-section--faq .crs-faq.crs-bluedark-bg {
  --crs-faq-copy: #fff;
  --crs-faq-line: rgb(255 255 255 / 24%);
  --crs-faq-title: #fff;
  margin-block: 0;
  padding-block-start: 0;
  border-block-start: 0;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.coresis-type-hanken .coresis-modern-landing .crs-cta.crs-clear-bg {
  display: block;
  width: 100%;
  margin: 0;
  padding-block: clamp(2rem, 6vw, 5rem);
  padding-inline: 0;
  background: rgba(100, 215, 238, 0.9);
  color: var(--crs-clear-ink);
}

body.coresis-type-hanken .coresis-modern-landing .crs-cta.crs-clear-bg :where(h2, p) {
  color: inherit;
}

body.coresis-type-hanken .crs-ai-cta__copy :where(h2, p) {
  max-width: none;
  margin-inline: 0;
}

body.coresis-type-hanken .crs-ai-cta__actions,
body.coresis-type-hanken .crs-ai-cta__links {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  grid-column: auto;
  gap: 1rem;
  margin: 0;
}

body.coresis-type-hanken .coresis-modern-landing .crs-ai-cta .crs-btn-mail {
  color: var(--crs-clear-ink);
}

body.coresis-type-hanken.path-frontpage .main-content .title-w3 {
  -webkit-background-clip: border-box;
  background: none;
  background-clip: border-box;
  color: var(--crs-title-color);
  -webkit-text-fill-color: currentColor;
}

body.coresis-type-hanken .crs-clear-bg :where(.b-dark,
.b-dark p,
.b-dark li,
.b-dark blockquote) {
  color: var(--crs-clear-ink);
}

body.coresis-type-hanken .crs-clear-bg .title-d1 {
  -webkit-background-clip: border-box;
  background: none;
  background-clip: border-box;
  color: var(--crs-clear-heading);
  -webkit-text-fill-color: currentColor;
}

body.coresis-type-hanken .crs-clear-bg .title-w2 {
  -webkit-background-clip: border-box;
  background: none;
  background-clip: border-box;
  color: var(--crs-clear-secondary-heading);
  -webkit-text-fill-color: currentColor;
}

body.coresis-type-hanken :is(.bg-darkpage-id h1,
.video-container-wrap .top-id1,
.portfolio-case-title,
.crs-hero-h,
.crs-tech-hero h1,
.coresis-about > .az-container > .az-section:first-of-type .title-w2,
.page-node-3 .field--name-field-content .title-w1,
.page-node-52 .ck-content .title-w1) {
  -webkit-background-clip: border-box;
  background: none;
  background-clip: border-box;
  color: var(--crs-title-color);
  -webkit-text-fill-color: currentColor;
}

body.coresis-type-hanken .crs-tech-section.b-clear .crs-tech-text:not(.b-black):not(.bcenter) h2 {
  font-family: var(--crs-font-content);
}

body.coresis-type-hanken .main-content .az-text.ck-content,
body.coresis-type-hanken .main-content .az-text.ck-content :is(p.b-white,
div.b-white,
span.b-white) {
  font-size: var(--crs-body-size);
}

body.coresis-type-hanken :where(.main-content p,
.main-content li,
.main-content blockquote,
.main-content dt,
.main-content dd) {
  font-size: var(--crs-body-size);
}

body.coresis-type-hanken .main-content .crs-copy--large,
body.coresis-type-hanken .main-content .crs-copy--large :where(p, li) {
  font-family: var(--crs-font-content);
  font-size: var(--crs-body-size-lg);
  font-weight: 600;
}

body.coresis-type-hanken :where(.main-content h5) {
  font-size: var(--crs-h5-size);
}

body.coresis-type-hanken :where(.main-content h6) {
  font-size: var(--crs-h6-size);
}

body.coresis-type-hanken .main-content :is(.title-w1,
.title-w2,
.title-d1,
.title-drupal,
.hero-h1,
.home-w1,
.top-id1,
.top-id2,
.portfolio-case-title,
.crs-hero-h) {
  letter-spacing: normal;
}

body.coresis-type-hanken.page-node-type-landing .field--name-field-content :is(h1, h2, h3),
body.coresis-type-hanken.page-node-type-techologies .main-content :is(h1, h2, h3, .title-drupal),
body.coresis-type-hanken.page-node-type-portfolio-case .main-content :is(h1, h2, h3, h4) {
  letter-spacing: normal;
}

/**
 * @file
 * Editorial article layout.
 */
body.page-node-type-article {
  background: #f5f7f8;
  color: #253746;
}

body.page-node-type-article #block-coresis-pagetitle {
  position: relative;
  padding-block: clamp(9rem, 15vw, 12rem) clamp(4rem, 8vw, 6.5rem);
  overflow: hidden;
  background: linear-gradient(180deg, rgba(9, 38, 61, 0.08), rgba(9, 38, 61, 0.42));
}

body.page-node-type-article #block-coresis-pagetitle::after {
  position: absolute;
  inset: auto 0 0;
  height: 0.2rem;
  background: linear-gradient(90deg, #5dd4ef, rgba(93, 212, 239, 0));
  content: "";
}

body.page-node-type-article #block-coresis-pagetitle h1 {
  max-width: 50rem;
  margin-inline: auto;
  padding-inline: var(--crs-gutter-min);
  color: #fff;
  font-family: var(--crs-font-content);
  font-size: clamp(2.5rem, 5.4vw, 4.6rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1.02;
  text-wrap: balance;
}

body.page-node-type-article section.color-bg-full-main-content {
  background: transparent;
}

body.page-node-type-article #block-coresis-content {
  background: #f5f7f8;
}

body.page-node-type-article .node__content > ._none > .container {
  width: 100%;
  max-width: none;
  padding-inline: 0;
}

body.page-node-type-article .node--type-article .layout-builder__layout {
  margin-inline: 0;
}

body.page-node-type-article .node--type-article .layout-builder__layout > .col-12 {
  padding-inline: 0;
}

body.page-node-type-article .region-content .field--name-body {
  max-width: 76rem;
  margin-inline: auto;
  padding: clamp(3rem, 7vw, 6rem) var(--crs-gutter-min) 1rem;
  color: #304353;
  font-family: var(--crs-font-content);
  font-size: clamp(1.0625rem, 1rem + 0.18vw, 1.1875rem);
  line-height: 1.72;
}

body.page-node-type-article .crs-article-layout {
  display: grid;
  grid-template-columns: 14rem minmax(0, 44rem);
  gap: 0 clamp(2.5rem, 5vw, 4.5rem);
  justify-content: center;
  align-items: start;
}

body.page-node-type-article .crs-article-index--desktop {
  position: sticky;
  top: 7rem;
  grid-column: 1;
  padding-inline-start: 1rem;
  border-inline-start: 1px solid #cbd6dc;
}

body.page-node-type-article .crs-article-index__title {
  margin: 0 0 1rem;
  color: #09263d;
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.page-node-type-article .crs-article-index ol {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.page-node-type-article .crs-article-index a {
  display: block;
  padding: 0.3rem 0;
  color: #526675;
  font-size: 0.9rem;
  line-height: 1.35;
  text-decoration: none;
  transition: color 0.18s ease;
}

body.page-node-type-article .crs-article-index a:hover,
body.page-node-type-article .crs-article-index a:focus-visible,
body.page-node-type-article .crs-article-index a[aria-current=location] {
  color: #075f80;
}

body.page-node-type-article .crs-article-index a[aria-current=location] {
  font-weight: 700;
}

body.page-node-type-article .crs-article-index a:focus-visible,
body.page-node-type-article .crs-article-table:focus-visible {
  outline: 0.125rem solid #087da1;
  outline-offset: 0.2rem;
}

body.page-node-type-article .crs-article-index--mobile {
  display: none;
}

body.page-node-type-article .crs-article-copy {
  grid-column: 2;
  min-width: 0;
  max-width: 44rem;
}

body.page-node-type-article .crs-article-copy > .container {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.page-node-type-article .crs-article-copy :where(p, ul, ol, blockquote) {
  margin-block: 0 1.35em;
}

body.page-node-type-article .crs-article-copy :where(ul, ol) {
  padding-inline-start: 1.35em;
}

body.page-node-type-article .crs-article-copy li {
  margin-block-end: 0.5em;
}

body.page-node-type-article .crs-article-copy li::marker {
  color: #087da1;
}

body.page-node-type-article .crs-article-meta {
  margin-block-end: 1.25rem;
  color: #5b6b77;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.page-node-type-article .crs-article-meta small {
  font-size: inherit;
}

body.page-node-type-article .crs-article-lead {
  margin-block-end: 2.25rem;
  color: #15384c;
  font-size: clamp(1.2rem, 1.1rem + 0.35vw, 1.4rem);
  line-height: 1.55;
}

body.page-node-type-article .crs-article-copy h2 {
  margin: clamp(3rem, 7vw, 5rem) 0 1.1rem;
  color: #12324a;
  font-size: clamp(1.75rem, 1.45rem + 1.15vw, 2.45rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.12;
  scroll-margin-top: 7rem;
  text-wrap: balance;
}

body.page-node-type-article .crs-article-copy h3 {
  margin: 2.5rem 0 0.8rem;
  color: #15384c;
  font-size: clamp(1.25rem, 1.15rem + 0.4vw, 1.55rem);
  font-weight: 700;
  line-height: 1.25;
}

body.page-node-type-article .crs-article-copy strong {
  color: #15384c;
}

body.page-node-type-article .crs-article-copy a {
  color: #075f80;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

body.page-node-type-article .crs-article-copy blockquote {
  padding: 0.25rem 0 0.25rem 1.25rem;
  color: #3c5364;
  border-inline-start: 0.2rem solid #5dd4ef;
}

body.page-node-type-article .crs-article-copy :where(code, pre) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

body.page-node-type-article .crs-article-copy pre {
  padding: 1rem;
  overflow: auto;
  color: #eaf7fb;
  background: #09263d;
  border-radius: 0.5rem;
}

body.page-node-type-article .crs-article-copy img {
  display: block;
  width: 100%;
  height: auto;
  margin: 2rem 0;
  border-radius: 0.35rem;
  box-shadow: 0 1.25rem 3.5rem rgba(20, 24, 31, 0.14);
}

body.page-node-type-article .crs-article-table {
  max-width: 100%;
  margin: 2rem 0 2.75rem;
  overflow-x: auto;
  border: 1px solid #ccd7dd;
  border-radius: 0.5rem;
  background: #fff;
}

body.page-node-type-article .crs-article-table table {
  width: 100%;
  min-width: 42rem;
  margin: 0;
  border-collapse: collapse;
}

body.page-node-type-article .crs-article-table :where(th, td) {
  padding: 0.85rem 1rem;
  text-align: start;
  vertical-align: top;
  border-bottom: 1px solid #dbe3e7;
}

body.page-node-type-article .crs-article-table th {
  color: #fff;
  background: #12324a;
  font-size: 0.86rem;
  letter-spacing: 0.025em;
}

body.page-node-type-article .crs-article-copy .seo-cta {
  margin-block-start: 4rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  color: #eaf7fb;
  background: #09263d;
  border-radius: 0.75rem;
}

body.page-node-type-article .crs-article-copy .seo-cta :where(h2, h3, strong, a) {
  color: #fff;
}

body.page-node-type-article .block-field-blocknodearticlefield-tags {
  max-width: 44rem;
  margin: 0 auto;
  padding: 1.5rem var(--crs-gutter-min) 0;
}

body.page-node-type-article .field--name-field-tags {
  padding-block-start: 1.5rem;
  border-block-start: 1px solid #cbd6dc;
}

body.page-node-type-article .field--name-field-tags .field__items {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

body.page-node-type-article .field--name-field-tags .field__item {
  margin: 0;
}

body.page-node-type-article .field--name-field-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.625rem 1rem;
  color: #0a627e;
  background: rgba(93, 212, 239, 0.1);
  border: 1px solid rgba(8, 125, 161, 0.42);
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

body.page-node-type-article .field--name-field-tags a:hover,
body.page-node-type-article .field--name-field-tags a:focus-visible {
  color: #09263d;
  background: #5dd4ef;
  border-color: #5dd4ef;
}

body.page-node-type-article .field--name-field-tags a:focus-visible {
  outline: 0.1875rem solid #087da1;
  outline-offset: 0.2rem;
}

body.page-node-type-article .block-rrssb {
  max-width: 44rem;
  margin: 0 auto;
  padding: 1.5rem var(--crs-gutter-min) clamp(4rem, 8vw, 7rem);
}

body.page-node-type-article .field--name-field-tags .field__label,
body.page-node-type-article .rrssb-prefix,
body.page-node-type-article .rrssb-buttons,
body.page-node-type-article .rrssb-buttons * {
  font-family: var(--crs-font-content);
}

body.page-node-type-article .field--name-field-tags .field__label,
body.page-node-type-article .rrssb-prefix {
  position: static !important;
  margin-block-end: 0.75rem;
  color: #4b5f6e;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.3 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.page-node-type-article .rrssb {
  padding: 0 !important;
  font-size: 0.875rem !important;
}

body.page-node-type-article .rrssb .rrssb-buttons {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.625rem;
  margin: 0;
  padding: 0 !important;
}

body.page-node-type-article .rrssb-buttons li {
  display: block;
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  padding: 0;
  font-size: inherit;
}

body.page-node-type-article .rrssb-buttons a,
body.page-node-type-article .rrssb.no-label .rrssb-buttons a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  height: auto;
  min-height: 3.5rem;
  padding: 0.75rem 1.3125rem;
  background: #fff !important;
  border: 1px solid rgba(18, 50, 74, 0.24);
  border-radius: 0.4rem;
  box-shadow: none;
  color: #12324a;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

body.page-node-type-article .rrssb-buttons .rrssb-icon,
body.page-node-type-article .rrssb.no-label .rrssb-buttons .rrssb-icon {
  position: static;
  flex: 0 0 1.125rem;
  width: 1.125rem;
  height: 1.125rem;
  filter: brightness(0) saturate(100%) invert(27%) sepia(42%) saturate(1635%) hue-rotate(157deg) brightness(91%) contrast(96%);
}

body.page-node-type-article .rrssb-buttons .rrssb-text,
body.page-node-type-article .rrssb.no-label .rrssb-buttons .rrssb-text {
  position: static !important;
  width: auto;
  height: auto;
  padding: 0;
  overflow: visible;
  clip: auto;
  color: #12324a;
  line-height: inherit;
  white-space: nowrap;
}

body.page-node-type-article .rrssb-buttons a:hover,
body.page-node-type-article .rrssb-buttons a:focus-visible {
  background: rgba(93, 212, 239, 0.12) !important;
  border-color: #087da1;
  color: #09263d;
  transform: translateY(-0.1rem);
}

body.page-node-type-article .rrssb-buttons a:focus-visible {
  outline: 0.1875rem solid #087da1;
  outline-offset: 0.2rem;
}

body.page-node-type-article .rrssb-buttons a:active {
  box-shadow: none;
  transform: none;
}

@media (max-width: 63.9375rem) {
  body.page-node-type-article .crs-article-layout {
    display: block;
    max-width: 44rem;
    margin-inline: auto;
  }
  body.page-node-type-article .crs-article-index--desktop {
    display: none;
  }
  body.page-node-type-article .crs-article-index--mobile {
    display: block;
    margin-block-end: 2.5rem;
    border: 1px solid #cbd6dc;
    border-radius: 0.5rem;
    background: #fff;
  }
  body.page-node-type-article .crs-article-index--mobile summary {
    padding: 0.9rem 1rem;
    color: #12324a;
    font-weight: 700;
    cursor: pointer;
  }
  body.page-node-type-article .crs-article-index--mobile nav {
    padding: 0 1rem 1rem;
  }
  body.page-node-type-article .crs-article-index--mobile a {
    min-height: 2.75rem;
    padding-block: 0.6rem;
  }
}
@media (max-width: 47.9375rem) {
  body.page-node-type-article #block-coresis-pagetitle {
    padding-block: 8rem 3.75rem;
  }
  body.page-node-type-article #block-coresis-pagetitle h1 {
    font-size: clamp(2.25rem, 11vw, 3.2rem);
  }
  body.page-node-type-article .region-content .field--name-body {
    padding-block-start: 2.5rem;
  }
  body.page-node-type-article .crs-article-copy h2 {
    margin-block-start: 3rem;
  }
  body.page-node-type-article .rrssb .rrssb-buttons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  body.page-node-type-article .crs-article-index a {
    transition: none;
  }
}
/**
 * @file
 * Portfolio case detail layout, version 0.10.0.
 */
.portfolio-whatsapp {
  align-items: center;
  -webkit-backdrop-filter: blur(0.75rem) saturate(130%);
  backdrop-filter: blur(0.75rem) saturate(130%);
  background: rgba(37, 211, 102, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 0.4rem;
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  box-shadow: 0 0.65rem 1.75rem rgba(0, 0, 0, 0.3);
  color: #052a16;
  display: inline-flex;
  font-family: var(--crs-font-content);
  font-size: clamp(0.82rem, 0.78rem + 0.2vw, 0.95rem);
  font-weight: 600;
  gap: 0;
  justify-content: center;
  line-height: 1.2;
  max-inline-size: calc(100vw - 2rem);
  min-block-size: 3.5rem;
  padding: 0.75rem 1rem;
  position: fixed;
  right: max(1.25rem, env(safe-area-inset-right));
  text-decoration: none;
  touch-action: manipulation;
  transform-origin: center;
  white-space: nowrap;
  z-index: 90;
}
.portfolio-whatsapp:not(.is-gsap-ready):hover, .portfolio-whatsapp:not(.is-gsap-ready):focus-visible {
  background: #172b3b;
  border-color: #172b3b;
  color: #f4fbff;
  text-decoration: none;
}
.portfolio-whatsapp:hover, .portfolio-whatsapp:focus-visible {
  text-decoration: none;
}
.portfolio-whatsapp.is-gsap-ready {
  transition: none;
}
.portfolio-whatsapp:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}
.portfolio-whatsapp svg {
  display: block;
  flex: 0 0 auto;
  fill: currentColor;
  height: 1.75rem;
  width: 1.75rem;
}
.portfolio-whatsapp__label {
  display: block;
  inline-size: 0;
  opacity: 0;
  overflow: hidden;
}
.portfolio-whatsapp:not(.is-gsap-ready):is(:hover, :focus-visible) .portfolio-whatsapp__label {
  inline-size: auto;
  margin-inline-start: 0.65rem;
  opacity: 1;
}

body:has(.block-field-blocknodeportfolio-casefield-service-tags) {
  --portfolio-case-lead-color: #f4fbff;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .main-content {
  padding-block-start: 6rem;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .main-content :where(h2, h3, h4) {
  font-family: var(--crs-font-content);
  font-weight: 700;
  letter-spacing: normal;
  line-height: 1.2;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .main-content :where(h3, h4) {
  font-size: var(--crs-h4-size);
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .main-content .block-field-blocknodeportfolio-casebody :where(h2) {
  font-size: var(--crs-h4-size);
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .node__content > .my-1:has(.portfolio-case-title) {
  box-sizing: border-box;
  margin-block-end: clamp(0.75rem, 1.5vw, 1.25rem) !important;
  padding-block: 1.38rem !important;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .node__content > .my-1:has(.portfolio-case-title) > .container {
  inline-size: min(100% - 2.5rem, 78rem);
  max-inline-size: none;
  margin-inline: auto;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .portfolio-case-title {
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-display-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: var(--crs-h2-lh);
  max-inline-size: 56rem;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-lead {
  color: var(--portfolio-case-lead-color);
  font-size: var(--crs-body-size);
  line-height: var(--crs-body-leading);
  overflow-wrap: break-word;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) :is(.block-field-blocknodeportfolio-casefield-visual-mockups,
.block-field-blocknodeportfolio-casefield-secondary-images,
.field--name-field-visual-mockups,
.field--name-field-secondary-images,
.field--name-field-visual-mockups .field__item,
.field--name-field-secondary-images .field__item,
.field--name-field-visual-mockups .media,
.field--name-field-secondary-images .media,
.field--name-field-media-video-file) {
  inline-size: 100%;
  max-inline-size: 100%;
  min-inline-size: 0;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) :is(.field--name-field-visual-mockups, .field--name-field-secondary-images) :is(img, picture, video, iframe) {
  display: block;
  block-size: auto;
  inline-size: 100%;
  max-inline-size: 100%;
  margin: 0;
  object-fit: contain;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) :is(.block-field-blocknodeportfolio-casefield-sector-e-industria,
.block-field-blocknodeportfolio-casefield-service-tags) {
  inline-size: 100%;
  margin-block: clamp(1.5rem, 3vw, 2.5rem);
  padding-block-end: clamp(1.25rem, 2vw, 2rem);
  border-block-end: 1px solid rgba(93, 212, 239, 0.18);
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) :is(.block-field-blocknodeportfolio-casefield-sector-e-industria,
.block-field-blocknodeportfolio-casefield-service-tags) h3 {
  color: #65d7ee;
  font-size: var(--crs-h4-size);
  line-height: 1.2;
  margin: 0 0 0.5rem;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-service-tags {
  display: grid;
  gap: 1rem;
  inline-size: 100%;
  max-inline-size: none;
  margin: 0;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-service-tags .portfolio-service-group {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.78rem;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-service-tags .portfolio-service-group__items {
  display: flex;
  flex: 1 1 20rem;
  flex-wrap: wrap;
  gap: 0.78rem;
  min-inline-size: 0;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-service-tags .portfolio-service-group__title,
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-service-tags .field__item {
  display: inline-flex;
  flex: 0 1 auto;
  inline-size: auto;
  max-inline-size: 100%;
  margin: 0;
  padding: 0.4em 0.8em;
  border-radius: 5px;
  backdrop-filter: blur(0.75rem);
  font-size: 1.19em;
  line-height: var(--crs-body-leading);
  overflow-wrap: anywhere;
  -webkit-backdrop-filter: blur(0.75rem);
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-service-tags .portfolio-service-group__title {
  background: rgba(101, 215, 238, 0.14);
  border: 1px solid rgba(101, 215, 238, 0.34);
  color: #65d7ee;
  font-weight: 700;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-service-tags .field__item {
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #f4fbff;
  font-weight: 500;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-sector-e-industria {
  color: rgba(240, 250, 255, 0.76);
  font-size: 1.19em;
  font-weight: 500;
  line-height: var(--crs-body-leading);
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .portfolio-insights-list {
  padding: 0;
  list-style: none;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .portfolio-insights-list li {
  position: relative;
  padding-inline-start: 1.75rem;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .portfolio-insights-list li + li {
  margin-block-start: 1.3em;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .portfolio-insights-list li::before {
  position: absolute;
  inset-block-start: 0.2em;
  inset-inline-start: 0;
  block-size: 1em;
  inline-size: 1em;
  background-color: #65d7ee;
  content: "";
  -webkit-mask: center/contain no-repeat;
  mask: center/contain no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M11 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8M6.025 7.5a5 5 0 1 1 0 1H4A1.5 1.5 0 0 1 2.5 10h-1A1.5 1.5 0 0 1 0 8.5v-1A1.5 1.5 0 0 1 1.5 6h1A1.5 1.5 0 0 1 4 7.5zM11 5a.5.5 0 0 1 .5.5v2h2a.5.5 0 0 1 0 1h-2v2a.5.5 0 0 1-1 0v-2h-2a.5.5 0 0 1 0-1h2v-2A.5.5 0 0 1 11 5M1.5 7a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M11 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8M6.025 7.5a5 5 0 1 1 0 1H4A1.5 1.5 0 0 1 2.5 10h-1A1.5 1.5 0 0 1 0 8.5v-1A1.5 1.5 0 0 1 1.5 6h1A1.5 1.5 0 0 1 4 7.5zM11 5a.5.5 0 0 1 .5.5v2h2a.5.5 0 0 1 0 1h-2v2a.5.5 0 0 1-1 0v-2h-2a.5.5 0 0 1 0-1h2v-2A.5.5 0 0 1 11 5M1.5 7a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z'/%3E%3C/svg%3E");
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-url-case a {
  display: inline-flex;
  align-items: center;
  min-block-size: 3rem;
  padding: 0.7rem 1.5rem;
  background: #5dd4ef;
  border-radius: 0.25rem;
  box-shadow: 0 0.5rem 1.5rem rgba(4, 18, 31, 0.3);
  color: #04121c;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-url-case a::after {
  content: "↗";
  flex: 0 0 auto;
  font-size: 1.1em;
  line-height: 1;
  margin-inline-start: 0.55rem;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .field--name-field-url-case a:hover {
  background: #fff;
  box-shadow: 0 0.75rem 2rem rgba(4, 18, 31, 0.4);
  color: #04121c;
  text-decoration: none;
  transform: translateY(-2px);
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) #main-content a.btn-blockw[href="/portafolio-y-proyectos"] {
  align-items: center;
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
  background: rgba(244, 251, 255, 0.08);
  border: 2px solid rgba(242, 98, 46, 0.1);
  border-color: rgba(244, 251, 255, 0.72);
  border-radius: 0.4rem;
  color: rgba(244, 251, 255, 0.94);
  display: inline-flex;
  font-family: var(--crs-font-content);
  font-size: clamp(0.9rem, 0.86rem + 0.18vw, 1rem);
  font-weight: 600;
  justify-content: center;
  line-height: 1.2;
  min-block-size: 3.5rem;
  padding: 0.75rem 1.3125rem;
  text-decoration: none;
  transform-origin: center;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) #main-content a.btn-blockw[href="/portafolio-y-proyectos"]::before {
  content: none;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) #main-content a.btn-blockw[href="/portafolio-y-proyectos"]::after {
  block-size: auto;
  border-radius: 0;
  content: "→";
  flex: 0 0 auto;
  inline-size: auto;
  line-height: 1;
  margin-inline-start: 0.55rem;
  opacity: 1;
  position: static;
  transform: none;
  transition: none;
  z-index: auto;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .az-button > .az-button-content.btn-link {
  align-items: center;
  display: inline-flex;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) .az-button > .az-button-content.btn-link::after {
  content: "→";
  margin-inline-start: 0.45rem;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) #main-content a.btn-blockw[href="/portafolio-y-proyectos"].is-gsap-ready {
  transition: none;
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) #main-content a.btn-blockw[href="/portafolio-y-proyectos"]:not(.is-gsap-ready):is(:hover, :focus-visible) {
  background: #25c7d9;
  border-color: #25c7d9;
  color: #04121c;
  transform: scale(1.035);
}
body:has(.block-field-blocknodeportfolio-casefield-service-tags) #main-content a.btn-blockw[href="/portafolio-y-proyectos"]:focus-visible {
  outline: 3px solid #f4fbff;
  outline-offset: 3px;
}

.crs-image-portfolio-case {
  border: 1px solid rgba(244, 251, 255, 0.16);
  border-radius: 0.75rem;
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.24);
  box-sizing: border-box;
  display: block;
  overflow: hidden;
}

img.crs-image-portfolio-case,
.crs-image-portfolio-case .az-image-content {
  block-size: auto;
  border-radius: inherit;
  display: block;
  max-inline-size: 100%;
}

body.page-node-type-portfolio-case .field--name-field-visual-mockups {
  --portfolio-case-video-inline-size: 100%;
}
body.page-node-type-portfolio-case .field--name-field-visual-mockups .media--type-video {
  border: 1px solid rgba(244, 251, 255, 0.16);
  border-radius: 0.75rem;
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.24);
  inline-size: var(--portfolio-case-video-inline-size);
  margin-inline: auto;
  max-inline-size: var(--portfolio-case-video-inline-size);
  overflow: hidden;
}
body.page-node-type-portfolio-case .field--name-field-visual-mockups video {
  aspect-ratio: auto;
  border-radius: inherit;
}

body:has(.block-field-blocknodeportfolio-casefield-service-tags) .b-clear {
  --portfolio-case-lead-color: #344657;
}

body:has(.block-field-blocknodeportfolio-casefield-service-tags) :is(.b-white, .crs-section--high-contrast) {
  --portfolio-case-lead-color: #f4fbff;
}

@media (min-width: 48rem) {
  body.page-node-type-portfolio-case .field--name-field-visual-mockups {
    --portfolio-case-video-inline-size: 92%;
  }
  body:has(.block-field-blocknodeportfolio-casefield-service-tags) :is(.block-field-blocknodeportfolio-casefield-sector-e-industria,
  .block-field-blocknodeportfolio-casefield-service-tags) {
    display: grid;
    grid-template-columns: minmax(7rem, 1fr) minmax(0, 6fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: start;
  }
}
@media (min-width: 62rem) {
  body.page-node-type-portfolio-case .field--name-field-visual-mockups {
    --portfolio-case-video-inline-size: 87%;
  }
}
@media (min-width: 80rem) {
  body.page-node-type-portfolio-case .field--name-field-visual-mockups {
    --portfolio-case-video-inline-size: 78%;
  }
}
@media (max-width: 47.99rem) {
  .portfolio-whatsapp {
    bottom: max(1rem, env(safe-area-inset-bottom));
    min-block-size: 3.25rem;
    padding: 0.65rem 0.85rem;
    right: max(1rem, env(safe-area-inset-right));
  }
  .portfolio-whatsapp svg {
    height: 1.625rem;
    width: 1.625rem;
  }
}
.video-container-wrap:has(.crs-home-hero__actions) {
  box-sizing: border-box;
  inline-size: 100vw;
  min-block-size: 100svh;
  margin-inline: calc(50% - 50vw);
  padding: 0;
}
.video-container-wrap:has(.crs-home-hero__actions) .containerd {
  inline-size: 100%;
  max-inline-size: none;
  justify-items: start;
  padding-inline: 10vw;
  place-content: center start;
  text-align: left;
}
.video-container-wrap:has(.crs-home-hero__actions) .well-home {
  inline-size: 100%;
  justify-items: start;
}
.video-container-wrap:has(.crs-home-hero__actions) .top-id1 {
  inline-size: 100%;
  max-inline-size: none;
  text-align: left;
}
.video-container-wrap:has(.crs-home-hero__actions) .crs-home-hero__title-accent {
  color: #65d7ee;
  -webkit-text-fill-color: currentColor;
}
.video-container-wrap:has(.crs-home-hero__actions) .crs-home-hero__title-contrast {
  color: #fff;
  -webkit-text-fill-color: currentColor;
}
.video-container-wrap:has(.crs-home-hero__actions) .asking,
.video-container-wrap:has(.crs-home-hero__actions) .asking .call-to-ac {
  inline-size: 100%;
}
.video-container-wrap:has(.crs-home-hero__actions) .asking .call-to-ac {
  align-items: start;
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
  justify-content: start;
  justify-items: start;
}
.video-container-wrap:has(.crs-home-hero__actions) .crs-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.75rem, 1.5vw, 1rem);
  justify-content: flex-start;
}
.video-container-wrap:has(.crs-home-hero__actions) .call-texting .home-w1 {
  color: #fff;
  font-size: var(--crs-body-size);
  font-weight: 600;
  line-height: var(--crs-body-leading);
}
.video-container-wrap:has(.crs-home-hero__actions) .crs-home-hero__lead {
  max-inline-size: 62ch;
  margin: 0;
  text-wrap: pretty;
}
.crs-home-hero__cta {
  align-items: center;
  background: rgba(244, 251, 255, 0.08);
  border: 2px solid rgba(242, 98, 46, 0.1);
  border-color: rgba(244, 251, 255, 0.72);
  border-radius: 0.4rem;
  color: rgba(244, 251, 255, 0.96);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--crs-font-content);
  font-size: clamp(0.9rem, 0.86rem + 0.18vw, 1rem);
  font-weight: 600;
  justify-content: center;
  line-height: 1.2;
  min-block-size: 3.5rem;
  padding: 0.75rem 1.3125rem;
  text-decoration: none;
  transform-origin: center;
  transition: background-color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
}

.crs-home-hero__cta--contact {
  background: rgba(242, 98, 46, 0.18);
  border-color: #f2622e;
}

.crs-home-hero__cta--cases {
  background: rgba(244, 251, 255, 0.08);
  border-color: rgba(244, 251, 255, 0.72);
}

.crs-home-hero__cta.is-gsap-ready {
  transition: none;
}

.crs-home-hero__cta::after {
  display: inline-grid;
  flex: 0 0 auto;
  inline-size: var(--crs-cta-icon-size, 1.1rem);
  margin-inline-start: var(--crs-cta-icon-gap, 0.5rem);
  opacity: var(--crs-cta-icon-opacity, 1);
  overflow: hidden;
  place-items: center;
  transform: translateX(var(--crs-cta-icon-shift, 0));
  white-space: nowrap;
}

.crs-home-hero__cta--contact::after {
  content: "";
  block-size: var(--crs-cta-icon-size, 1.1rem);
  background-color: currentColor;
  -webkit-mask: center/contain no-repeat;
  mask: center/contain no-repeat;
  -webkit-mask-image: url("../images/whatsapp.svg");
  mask-image: url("../images/whatsapp.svg");
}

.crs-home-hero__cta--cases::after {
  content: "→";
  font-size: 1.15rem;
  line-height: 1;
}

.crs-home-hero__cta--contact:not(.is-gsap-ready):hover,
.crs-home-hero__cta--contact:not(.is-gsap-ready):focus-visible {
  background: #f2622e;
  border-color: #f2622e;
  color: #071119;
  transform: scale(1.035);
}

.crs-home-hero__cta--cases:not(.is-gsap-ready):hover,
.crs-home-hero__cta--cases:not(.is-gsap-ready):focus-visible {
  background: #25c7d9;
  border-color: #25c7d9;
  color: #071119;
  transform: scale(1.035);
}

.crs-home-hero__cta:not(.is-gsap-ready):hover::after,
.crs-home-hero__cta:not(.is-gsap-ready):focus-visible::after {
  --crs-cta-icon-gap: 0.5rem;
  --crs-cta-icon-opacity: 1;
  --crs-cta-icon-shift: 0;
  --crs-cta-icon-size: 1.1rem;
}

.crs-home-hero__cta:focus-visible {
  outline: 3px solid #f4fbff;
  outline-offset: 3px;
}

#main-content:has(.crs-home-hero__actions) :is(a.btn-blockw,
.az-button > .az-button-content.btn) {
  border: 2px solid rgba(242, 98, 46, 0.1);
  border-radius: 0.4rem;
  font-family: var(--crs-font-content);
  font-weight: 600;
  text-decoration: none;
  transform-origin: center;
  transition: background-color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
}

#main-content:has(.crs-home-hero__actions) :is(a.btn-blockw,
.az-button > .az-button-content.btn).is-gsap-ready {
  transition: none;
}

#main-content:has(.crs-home-hero__actions) .az-button > .az-button-content.btn > p {
  color: inherit;
  font: inherit;
  margin: 0;
}

#main-content:has(.crs-home-hero__actions) :is(.crs-btn-icon--arrow-right,
.crs-btn-icon--plus,
.crs-btn-icon--code,
.crs-btn-icon--play,
.crs-btn-icon--repeat,
.crs-btn-icon--asterisk) > .az-button-content.btn {
  align-items: center;
  display: inline-flex;
  justify-content: flex-start;
  text-align: start;
}

#main-content:has(.crs-home-hero__actions) .az-button > .az-button-content:is(.btn-primary, .btn-secondary),
#main-content:has(.crs-home-hero__actions) .az-button > .az-button-content:is(.btn-primary, .btn-secondary) > p {
  text-align: start;
}

#main-content:has(.crs-home-hero__actions) :is(.crs-btn-icon--arrow-right,
.crs-btn-icon--plus,
.crs-btn-icon--code,
.crs-btn-icon--play,
.crs-btn-icon--repeat,
.crs-btn-icon--asterisk) > .az-button-content.btn::after {
  display: inline-grid;
  flex: 0 0 auto;
  font-family: inherit;
  font-style: normal;
  font-weight: 400;
  inline-size: var(--crs-cta-icon-size, 1.1rem);
  line-height: 1;
  margin-inline-start: var(--crs-cta-icon-gap, 0.5rem);
  opacity: var(--crs-cta-icon-opacity, 1);
  overflow: hidden;
  place-items: center;
  transform: translateX(var(--crs-cta-icon-shift, 0));
  white-space: nowrap;
}

#main-content:has(.crs-home-hero__actions) .crs-btn-icon--arrow-right > .az-button-content.btn::after {
  content: "→";
}

#main-content:has(.crs-home-hero__actions) .crs-btn-icon--plus > .az-button-content.btn::after {
  content: "+";
}

#main-content:has(.crs-home-hero__actions) .crs-btn-icon--code > .az-button-content.btn::after {
  content: "</>";
  font-size: 0.72rem;
}

#main-content:has(.crs-home-hero__actions) .crs-btn-icon--play > .az-button-content.btn::after {
  content: "▶";
}

#main-content:has(.crs-home-hero__actions) .crs-btn-icon--repeat > .az-button-content.btn::after {
  content: "↻";
}

#main-content:has(.crs-home-hero__actions) .crs-btn-icon--asterisk > .az-button-content.btn::after {
  content: "✦";
}

#main-content:has(.crs-home-hero__actions) :is(.crs-btn-icon--arrow-right,
.crs-btn-icon--plus,
.crs-btn-icon--code,
.crs-btn-icon--play,
.crs-btn-icon--repeat,
.crs-btn-icon--asterisk) > .az-button-content.btn:not(.is-gsap-ready):is(:hover, :focus-visible)::after {
  --crs-cta-icon-gap: 0.5rem;
  --crs-cta-icon-opacity: 1;
  --crs-cta-icon-shift: 0;
  --crs-cta-icon-size: 1.1rem;
}

#main-content:has(.crs-home-hero__actions) :is(a.btn-blockw,
.az-button > .az-button-content.btn):focus-visible {
  outline: 3px solid #f4fbff;
  outline-offset: 3px;
}

#main-content:has(.crs-home-hero__actions) .az-button > .az-button-content.btn-primary {
  background: rgba(244, 251, 255, 0.08);
  border-color: rgba(244, 251, 255, 0.72);
  color: rgba(244, 251, 255, 0.96);
}

#main-content:has(.crs-home-hero__actions) a.btn-blockw,
#main-content:has(.crs-home-hero__actions) .az-button > .az-button-content.btn-outline-primary {
  background: rgba(244, 251, 255, 0.04);
  border-color: rgba(244, 251, 255, 0.5);
  color: rgba(244, 251, 255, 0.96);
}

#main-content:has(.crs-home-hero__actions) .crs-clear-bg .az-button > .az-button-content.btn-secondary {
  --crs-secondary-background: rgb(23 43 59 / 8%);
  --crs-secondary-border: rgb(23 43 59 / 46%);
  --crs-secondary-color: #172b3b;
  background-color: var(--crs-secondary-background) !important;
  border-color: var(--crs-secondary-border) !important;
  color: var(--crs-secondary-color) !important;
}

#main-content:has(.crs-home-hero__actions) .crs-clear-bg .az-button > .az-button-content.btn-secondary:not(.is-gsap-ready):is(:hover, :focus-visible) {
  --crs-secondary-background: #172b3b;
  --crs-secondary-border: #172b3b;
  --crs-secondary-color: #f4fbff;
  transform: scale(1.035);
}

#main-content:has(.crs-home-hero__actions) :is(a.btn-blockw,
.az-button-content.btn-primary,
.az-button-content.btn-outline-primary,
.az-button-content.btn-secondary):not(.is-gsap-ready):is(:hover, :focus-visible) {
  background: #25c7d9;
  border-color: #25c7d9;
  color: #071119;
  transform: scale(1.035);
}

#main-content:has(.crs-home-hero__actions) a.btn-blockw::before,
#main-content:has(.crs-home-hero__actions) a.btn-blockw::after {
  content: none;
}

.coresis-about .az-button.crs-btn-icon--arrow-right > .az-button-content.btn-outline-primary {
  --crs-secondary-background: rgb(23 43 59 / 8%);
  --crs-secondary-border: rgb(23 43 59 / 46%);
  --crs-secondary-color: #172b3b;
  align-items: center;
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
  background-color: var(--crs-secondary-background) !important;
  border: 2px solid rgba(242, 98, 46, 0.1);
  border-color: var(--crs-secondary-border) !important;
  border-radius: 0.4rem;
  color: var(--crs-secondary-color) !important;
  display: inline-flex;
  font-family: var(--crs-font-content);
  font-weight: 600;
  justify-content: flex-start;
  text-align: start;
  text-decoration: none;
  transform-origin: center;
  transition: background-color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.coresis-about .az-button.crs-btn-icon--arrow-right > .az-button-content.btn-outline-primary.is-gsap-ready {
  transition: none;
}

.coresis-about .az-button.crs-btn-icon--arrow-right > .az-button-content.btn-outline-primary > p {
  color: inherit;
  font: inherit;
  margin: 0;
}

.coresis-about .az-button.crs-btn-icon--arrow-right > .az-button-content.btn-outline-primary::after {
  content: "→";
  display: inline-grid;
  flex: 0 0 auto;
  font-family: inherit;
  font-style: normal;
  font-weight: 400;
  inline-size: var(--crs-cta-icon-size, 1.1rem);
  line-height: 1;
  margin-inline-start: var(--crs-cta-icon-gap, 0.5rem);
  opacity: var(--crs-cta-icon-opacity, 1);
  overflow: hidden;
  place-items: center;
  transform: translateX(var(--crs-cta-icon-shift, 0));
  white-space: nowrap;
}

.coresis-about .az-button.crs-btn-icon--arrow-right > .az-button-content.btn-outline-primary:not(.is-gsap-ready):is(:hover, :focus-visible) {
  --crs-secondary-background: #172b3b;
  --crs-secondary-border: #172b3b;
  --crs-secondary-color: #f4fbff;
  transform: scale(1.035);
}

.coresis-about .az-button.crs-btn-icon--arrow-right > .az-button-content.btn-outline-primary:focus-visible {
  outline: 3px solid #f2622e;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .crs-home-hero__cta:not(.is-gsap-ready):hover,
  .crs-home-hero__cta:not(.is-gsap-ready):focus-visible {
    transform: none;
  }
  #main-content:has(.crs-home-hero__actions) :is(a.btn-blockw,
  .az-button > .az-button-content.btn):not(.is-gsap-ready):is(:hover, :focus-visible) {
    transform: none;
  }
  .coresis-about .az-button.crs-btn-icon--arrow-right > .az-button-content.btn-outline-primary:not(.is-gsap-ready):is(:hover, :focus-visible) {
    transform: none;
  }
}
@media (max-width: 47.99rem) {
  .video-container-wrap:has(.crs-home-hero__actions) .crs-home-hero__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    inline-size: 100%;
  }
  .video-container-wrap:has(.crs-home-hero__actions) .crs-home-hero__cta {
    inline-size: 100%;
    min-inline-size: 0;
    padding-inline: clamp(0.45rem, 2.5vw, 0.75rem);
    white-space: normal;
  }
}
/**
 * @file
 * Responsive footer contract, version 0.6.0.
 *
 * El pie se compone de cuatro piezas que viven en DOS bloques distintos: el
 * bloque de contenido aporta frase, marca y linea base; el bloque
 * de menu aporta la navegacion en columnas. Se unifican con `display:
 * contents` sobre los envoltorios de bloque y areas de rejilla explicitas,
 * de modo que el orden del DOM deja de importar.
 *
 * Jerarquia buscada: frase >> marca >> columnas >> legal.
 */
/* El pie va a ancho completo. `.footer-int` lo encajonaba en 81rem con
   margen automatico (style.css, linea ~1057), lo que dejaba el contenido en
   1168 px sobre una ventana de 1440. Aqui se libera y el respiro lo aporta
   el gutter del sitio. */
.footer .footer-int {
  max-inline-size: none;
  padding-inline: clamp(1.5rem, 4vw, 4.5rem);
}

.footer .region-footer {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 2.5fr);
  grid-template-areas: "statement statement" "brand     nav" "base      base";
  column-gap: clamp(2rem, 6vw, 6rem);
  padding-block: clamp(4.5rem, 8vw, 7rem) clamp(2rem, 4vw, 3rem);
}

/* Los envoltorios se disuelven para que las piezas entren en la rejilla del
   pie. Son DOS niveles: el del bloque y el del campo body que Drupal anida
   dentro. Sin el segundo, las cuatro piezas quedan atrapadas en un unico
   elemento de rejilla y las areas no se aplican. */
.footer .region-footer > *,
.footer .region-footer > * > .field--name-body {
  display: contents;
}

/* --------------------------------------------------------------------------
   Fondo: visualizacion abstracta de flujos de datos.
   Origen JPEG de 5000x2000 y 430 KB, reescalado a 1600 px y convertido a
   WebP (60 KB). Se permite bajar la calidad porque va bajo una capa oscura.
   -------------------------------------------------------------------------- */
/* El fondo se ancla a .footer, que ya ocupa todo el ancho y todo el alto del
   pie. Antes colgaba de .region-footer y quedaban fuera los 32 px de padding
   vertical de .footer-int, lo que dibujaba una franja sin imagen en la parte
   superior. Asi tampoco hacen falta margenes negativos. */
.footer {
  position: relative;
  isolation: isolate;
}

.footer::before,
.footer::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
}

/* La imagen va ENCIMA del velo, no debajo. Debajo quedaba cubierta por un
   velo del 87-98 % y el motivo apenas se adivinaba; bajarle ahi la opacidad
   la habria borrado del todo. Puesta encima, el 20 % es una veladura: se ve
   el motivo entero y de forma pareja, y el fondo oscuro que sostiene el
   contraste del texto lo sigue aportando el velo de abajo. */
/* `cover` era la fuente de la distorsion: la imagen es de 2,5:1 y el pie es
   mucho mas cuadrado, asi que para cubrirlo la ampliaba un 40 % y recortaba
   los lados; los puntos salian gordos y borrosos. Con `100% auto` conserva
   su proporcion, entra entera y se dibuja a su tamano natural. Lo que queda
   sin cubrir arriba y abajo lo resuelve el velo, que ya es oscuro. */
.footer::before {
  z-index: -1;
  background: url("../images/footer-data-streams.webp") center/100% auto no-repeat;
  opacity: 0.05;
}

/* Suelo oscuro. Mas denso a la izquierda, donde viven la frase y la marca, y
   mas suave a la derecha, donde la textura puede respirar. Va DEBAJO de la
   imagen (z-index -2 contra -1 de .footer::before), asi que oscurecer aqui
   oscurece la imagen sin tocar el texto, que vive en su propia capa por
   encima de ambas. El primer degradado cubre el 30% derecho: es el unico
   punto de la pantalla donde el motivo debe quedar mas apagado. */
.footer::after {
  z-index: -2;
  background: linear-gradient(to right, transparent 68%, rgba(13, 13, 28, 0.7) 100%), linear-gradient(100deg, rgba(13, 13, 28, 0.98) 16%, rgba(13, 13, 28, 0.93) 46%, rgba(13, 13, 28, 0.87) 100%), linear-gradient(to bottom, rgba(13, 13, 28, 0.92), rgba(13, 13, 28, 0.74) 45%, rgba(13, 13, 28, 0.95));
}

/* Todo el contenido por encima del motivo. */
.footer .region-footer > * > *,
.footer .foot-statement,
.footer .foot-brand,
.footer .foot-baseline,
.footer .foot-nav {
  position: relative;
  z-index: 1;
}

/* --------------------------------------------------------------------------
   Frase de marca
   -------------------------------------------------------------------------- */
.footer .foot-statement {
  grid-area: statement;
  max-inline-size: 24ch;
  margin: 0 0 clamp(3rem, 6vw, 4.5rem);
  color: #fff;
  font-family: var(--crs-font-content);
  font-size: var(--crs-h2-size);
  font-weight: var(--crs-h2-weight);
  letter-spacing: var(--crs-h2-ls);
  line-height: 1.1;
  text-wrap: balance;
}

/* --------------------------------------------------------------------------
   Marca y contacto
   -------------------------------------------------------------------------- */
.footer .foot-brand {
  grid-area: brand;
}

.footer .foot-brand__logo {
  display: inline-block;
  margin-block-end: 1.6rem;
}

.footer .foot-brand__logo img {
  inline-size: clamp(11rem, 15vw, 14.5rem);
  block-size: auto;
}

.footer .foot-contact {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer .foot-contact li {
  margin-block-end: 0.55rem;
}

.footer .foot-contact .foot-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.95rem;
  text-decoration: none;
}

/* The Bootstrap icon font stays disabled; these requested icon classes reuse
   its exact SVG silhouettes and inherit the link color. */
.footer .foot-contact .bi {
  display: inline-block;
  flex: 0 0 auto;
  inline-size: 1.1em;
  block-size: 1.1em;
  background-color: currentColor;
  -webkit-mask: center/contain no-repeat;
  mask: center/contain no-repeat;
}

/* Remove obsolete Asset Injector pseudo-glyphs without touching the links. */
.footer .foot-contact :is(.foot-mail, .foot-call)::before {
  display: none;
  content: none;
}

.footer .foot-contact .bi-envelope {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414zM0 4.697v7.104l5.803-3.558zM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586zm3.436-.586L16 11.801V4.697z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414zM0 4.697v7.104l5.803-3.558zM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586zm3.436-.586L16 11.801V4.697z'/%3E%3C/svg%3E");
}

.footer .foot-contact .bi-telephone {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.654 1.328a.678.678 0 0 0-1.015-.063L1.605 2.3c-.483.484-.661 1.169-.45 1.77a17.6 17.6 0 0 0 4.168 6.608 17.6 17.6 0 0 0 6.608 4.168c.601.211 1.286.033 1.77-.45l1.034-1.034a.678.678 0 0 0-.063-1.015l-2.307-1.794a.68.68 0 0 0-.58-.122l-2.19.547a1.75 1.75 0 0 1-1.657-.459L5.482 8.062a1.75 1.75 0 0 1-.46-1.657l.548-2.19a.68.68 0 0 0-.122-.58z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.654 1.328a.678.678 0 0 0-1.015-.063L1.605 2.3c-.483.484-.661 1.169-.45 1.77a17.6 17.6 0 0 0 4.168 6.608 17.6 17.6 0 0 0 6.608 4.168c.601.211 1.286.033 1.77-.45l1.034-1.034a.678.678 0 0 0-.063-1.015l-2.307-1.794a.68.68 0 0 0-.58-.122l-2.19.547a1.75 1.75 0 0 1-1.657-.459L5.482 8.062a1.75 1.75 0 0 1-.46-1.657l.548-2.19a.68.68 0 0 0-.122-.58z'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   Navegacion en columnas
   -------------------------------------------------------------------------- */
.footer .foot-nav {
  grid-area: nav;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 3rem);
}

/* Etiqueta de columna. Es un <p>, no un encabezado: no debe entrar en el
   esquema del documento. */
.footer .foot-nav__title {
  margin: 0 0 1.35rem;
  color: #98a3b2;
  font-family: var(--crs-font-content);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer .foot-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer .foot-nav__item {
  margin-block-end: 1.1rem;
}

.footer .foot-nav__item:last-child {
  margin-block-end: 0;
}

.footer .foot-nav .foot-link {
  font-size: 0.95rem;
  line-height: 1.35;
  text-decoration: none;
  white-space: normal;
}

/* --------------------------------------------------------------------------
   Linea base legal
   -------------------------------------------------------------------------- */
.footer .foot-baseline {
  grid-area: base;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.6rem 2rem;
  margin-block-start: clamp(3rem, 6vw, 4.5rem);
  padding-block-start: clamp(1.25rem, 3vw, 1.75rem);
  border-top: 1px solid rgba(240, 250, 255, 0.12);
}

.footer .foot-baseline .foot-txt {
  margin: 0;
  color: #98a3b2;
  font-size: 0.8rem;
}

.footer .foot-baseline .foot-link {
  font-size: 0.8rem;
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   Adaptacion
   -------------------------------------------------------------------------- */
@media (max-width: 61.99rem) {
  .footer .region-footer {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "statement" "brand" "nav" "base";
  }
  .footer .foot-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-block-start: clamp(2.5rem, 6vw, 3.5rem);
  }
}
@media (max-width: 47.99rem) {
  .footer .foot-nav {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .footer .foot-baseline {
    flex-direction: column;
  }
  /* Sin imagen en movil. El pie es estrecho y alto, asi que `cover` amplia
     una imagen de 2,5:1 hasta convertir los puntos en manchas que compiten
     con el texto. Ocultarla ademas evita descargar los 60 KB justo donde el
     rendimiento mas cuesta. */
  .footer::before {
    display: none;
  }
  .footer::after {
    background: linear-gradient(to bottom, rgba(101, 215, 238, 0.06), transparent 40%);
  }
}
/* Current compact Footer content: preserve its one-line desktop alignment. */
.footer .foot-txt,
.footer .foot-list :where(a, li) {
  white-space: nowrap;
}

.footer .foot-partners {
  margin-block-start: 0.3rem;
}

@media (min-width: 48rem) {
  .footer .field--name-body > .row {
    align-items: center;
    flex-wrap: nowrap;
  }
  .footer .foot-logo {
    flex: 0 0 auto;
    inline-size: auto;
  }
  .footer .foot-info {
    flex: 1 1 auto;
    inline-size: auto;
    min-inline-size: 0;
  }
  .footer .foot-list {
    flex-wrap: nowrap;
  }
}
@media (max-width: 47.99rem) {
  .footer .foot-txt {
    font-size: clamp(0.72rem, 3.2vw, 0.82rem);
  }
  .footer .foot-partners,
  .footer .foot-legal {
    white-space: normal;
  }
}
/* Coresis 2025 Theme - Version: 1.4, by DS+FRO */
html {
  scroll-behavior: smooth;
}

#anima {
  width: 100%;
  height: 100vh;
  border: 0;
  padding: 0;
}

/* MixView Portfolio*/
.mix-portfolio .view-content {
  height: 100% !important;
}

header#navbar {
  width: 100%;
  /* display: inline; */
}

/*article.landing.full {
    padding-top: 100px
}*/
.main-container {
  position: relative;
  margin: 0;
}

.containerd {
  position: absolute;
  top: 0;
  left: 0;
  justify-content: center;
  position: absolute;
  top: 41%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  text-align: left;
}

.call-to-ac {
  display: flex;
  gap: 20px;
}

body {
  /*background: radial-gradient(65% 62% at -22.4% -3.3%, rgb(45, 0, 61) 0%, rgb(13, 13, 28) 100%);*/
  font-family: var(--crs-font-content);
  margin: 0;
  overflow-x: hidden !important;
  /*background-color:hsla(240,36%,8%,1);
  background-image:
      radial-gradient(at 65% 42%, hsla(240,84%,22%,1) 0px, transparent 50%),
      radial-gradient(at 43% 20%, hsla(240,36%,8%,1) 0px, transparent 50%),
      radial-gradient(at 48% 68%, hsla(283,74%,12%,1) 0px, transparent 50%),
      radial-gradient(at 54% 54%, hsla(9,80%,34%,1) 0px, transparent 30%),
      radial-gradient(at 43% 38%, hsla(201,90%,36%,1) 0px, transparent 30%),
      radial-gradient(at 42% 55%, hsla(240,84%,22%,1) 0px, transparent 30%);*/
  background-color: hsl(240, 36%, 8%);
  background-image: radial-gradient(at 46% 64%, hsl(240, 35%, 8%) 0px, transparent 50%), radial-gradient(at 56% 36%, hsl(240, 35%, 8%) 0px, transparent 50%), radial-gradient(at 3% 58%, hsl(283, 74%, 12%) 0px, transparent 50%), radial-gradient(at 36% 12%, hsl(240, 36%, 8%) 0px, transparent 50%), radial-gradient(at 0% 32%, hsl(201, 90%, 36%) 0px, transparent 50%), radial-gradient(at 92% 37%, hsl(283, 74%, 12%) 0px, transparent 50%), radial-gradient(at 100% 66%, hsl(240, 84%, 22%) 0px, transparent 50%);
}

.breadcrumb {
  display: none;
}

.glow-button {
  align-items: center;
  display: flex;
}

/*----- Estilos del Tema (Header, Navbar, Menu) -------*/
.navbar {
  margin: 0;
}

.toolbar-menu-administration > .toolbar-menu > .menu-item .toolbar-menu .menu-item .toolbar-icon {
  font-size: 1.1em !important;
}

.main-logo img {
  width: 230px;
}

.breadcrumb {
  margin: 0;
}

/* Mobile styles */
@media (max-width: 992px) {
  .mobile-apps-section .slider-container {
    height: 500px !important;
  }
}
/*--------- Desktop styles ------------*/
@media only screen and (min-width: 992px) {
  .top-id1, .top-id2 {
    font-size: clamp(7rem, 3.2vw, 5vw) !important;
  }
  .containerd {
    width: max-content;
  }
}
/*------- Base & Tipografía -----------*/
h1, h2, h3, h4, h5, h6 {
  font-family: var(--crs-font-content);
  font-style: normal;
  letter-spacing: -0.03em;
  line-height: 1.1em;
  text-decoration: none;
  text-transform: none;
}

h1 {
  font-size: 3.5em;
  font-weight: 700;
}

h2 {
  font-size: 2em;
  font-weight: 400;
}

h3, h4, h5, h6 {
  font-size: 1.2em;
  font-weight: 400;
}

p, div {
  font-weight: 500;
}

p {
  margin: 1.3em auto;
}

/*---------- variaciones color/texto ---------*/
p.b-white,
div.b-white,
span.b-white {
  color: #f0faff;
  font-size: 1.19em;
  line-height: normal;
  margin: 1.3em auto;
}

p.b-black,
div.b-black,
span.b-black {
  color: #0d0d0d;
  font-size: 1.19em;
  line-height: normal;
  margin: 1.5em auto;
}

.b-white h1,
.b-white h2,
.b-white h3,
.b-white h4,
.b-white h5,
.b-white h6 {
  color: #f0faff;
}

.bcenter {
  margin: auto;
  text-align: center;
  vertical-align: middle;
}

/*------- Link general -----*/
a {
  color: #1fb6d8;
  cursor: pointer;
  font-weight: 500;
  text-decoration: none;
  transition: 0.3s all ease;
}

a:hover {
  /*color: #00bdbb;*/
  color: #f0faff;
  text-decoration: underline;
}

/*-------- Fondos y Encabezados (TOP) --------*/
.top-background {
  background: linear-gradient(121deg, rgb(22, 34, 98) 0%, rgb(13, 13, 13) 92%);
  display: block;
  padding: 1.5em 2em;
}

a.w-link {
  color: #f0faff;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.3s ease;
}

a.w-link:hover {
  color: #248ea6;
  text-decoration: underline;
}

/* Títulos - cuerpo de texto */
.title-w1,
.title-w2,
.title-d1 {
  font-family: var(--crs-font-content);
  font-size: clamp(4rem, 2vw, 3vw);
  font-weight: 500;
  text-transform: none;
  line-height: normal;
  margin: auto;
}

.title-w1, .home-w1 {
  color: #f0faff;
}

.home-w1 {
  font-family: var(--crs-font-content);
  font-size: clamp(2rem, 2vw, 2vw);
  font-weight: 700;
  text-transform: none;
}

/*.title-w2 { color: #26c7d9; }*/
.title-w2 {
  background-image: none;
  background-clip: border-box;
  color: #65d7ee;
  -webkit-text-fill-color: currentColor;
  font-weight: 600;
}

.title-d1 {
  color: #1d2d44;
}

.txt-d1 {
  color: #1d2d44;
  font-size: 1.19em;
  line-height: normal;
}

/* Elementos de la cabecera */
.main-logo {
  position: absolute;
  top: 14px;
  z-index: 100;
}

.bg-clear {
  background: #f4f8f9;
}

.info-padd {
  font-family: var(--crs-font-content);
  margin: 2.25em 1.12em;
  padding: 1em;
}

/* Responsive para cabecera */
@media (max-width: 768px) {
  .info-padd {
    margin: 0.8em 0.4em;
  }
}
/* Identificadores de Top */
.top-id1, .top-id2 {
  font-family: var(--crs-font-content);
  font-size: clamp(5rem, 3.2vw, 5vw);
  font-style: normal;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1em;
  text-decoration: none;
  text-transform: none;
}

/*.top-id1 { color: #00b0e2; }*/
.top-id1 {
  background-image: none;
  background-clip: border-box;
  color: #65d7ee;
  -webkit-text-fill-color: currentColor;
}

.top-id2 {
  color: #fff;
}

.padd-l0 {
  padding-left: 0;
}

/*-------- Footer ----------*/
.footer {
  /*background: linear-gradient(172deg, rgb(10 10 10 / 79%) 54%, rgba(22, 34, 98, 1) 98%);
  background: rgba(10,10,10,1);*/
  background: radial-gradient(65% 62% at -22.4% -3.3%, rgb(45, 0, 61 / 5%) 0%, rgb(13, 13, 28 / 10%) 100%);
  /* background: rgba(10, 10, 10, 1); */
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  bottom: 0;
  display: block;
  padding: 0.9em 0 1.5em 0;
  position: relative;
  width: -webkit-fill-available;
}

.foot-info {
  color: #f0faff;
  /*font-size: 1.14em;*/
  right: 3%;
  text-align: right;
}

ul.foot-list {
  display: inline-flex;
  margin: 0.2em;
  padding: 0;
}

ul.foot-list li {
  list-style: none;
  margin: 5px 20px;
  overflow: hidden;
}

@media (max-width: 768px) {
  ul.foot-list {
    display: inline-block;
  }
  ul.foot-list li {
    margin: 5px 10px;
    text-align: left;
  }
  .foot-info {
    text-align: left;
    left: 3%;
  }
}
/* Iconos en footer */
.foot-bullet:before,
.foot-mail:before,
.foot-call:before {
  color: #25c7d9;
  font-family: "Fontawesome";
  font-size: small;
  margin-right: 0.3em;
  padding: 0.4em 0.6em;
}

.foot-bullet:before {
  content: "\f00c";
}

.foot-mail:before {
  content: "\f0e0";
}

.foot-call:before {
  content: "\f095";
}

.foot-logo img {
  height: auto;
  max-width: 212px;
  padding: 0.1em 0.5em 0.7em 0.3em;
}

a.foot-link {
  color: #f0faff;
  text-decoration: none;
  transition: all 0.2s ease;
}

a.foot-link:hover {
  color: #25c7d9;
  text-decoration: underline;
}

.foot-txt {
  color: #f0faff;
  margin: 0.3em 1em 0.1em 2.5em;
  padding: 0.2em 0.5em;
}

.foot-txt span {
  padding: 0 0.5em;
}

/* Botón “Block” */
a.btn-blockw {
  background: #f27b2e;
  border-radius: 0.4rem;
  border: 2px solid rgba(242, 98, 46, 0.1);
  color: #FFF;
  display: inline-block;
  font-size: 1.36em;
  font-weight: 600;
  margin: 1.65em 0;
  padding: 12px 21px;
  position: relative;
  text-transform: none;
  transition: all 0.5s ease;
}

a.btn-blockw:hover {
  color: #fff;
}

a.btn-blockw::before,
a.btn-blockw::after {
  border-radius: 0.4rem;
  content: "";
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: all 0.3s ease;
  width: 100%;
  z-index: 1;
}

a.btn-blockw::before {
  background-color: rgba(1, 1, 1, 0.1);
}

a.btn-blockw:hover::before {
  opacity: 0;
  transform: scale(0.5);
}

a.btn-blockw::after {
  opacity: 0;
  transform: scale(1.2);
}

a.btn-blockw:hover::after {
  opacity: 1;
  transform: scale(1);
}

/* Icons Home Software Develop */
.id-softw,
.id-softd {
  font-weight: 600;
  line-height: initial;
  margin: 0.6em 0;
  padding-left: 7px;
}

.id-softw {
  color: #f0faff;
  display: block;
  max-width: 250px;
}

.id-softd {
  color: #0d0d0d;
}

.list-softwares {
  align-content: center;
  align-items: center;
  display: inline-flex;
  flex-wrap: nowrap;
  margin: 0.32em auto 1.32em auto;
  padding: 0;
}

.dev-icon {
  margin: auto;
  padding: 0;
}

.dev-icon img {
  height: auto;
  margin: auto;
  max-width: 68px;
  padding: 2px;
  width: auto;
}

@media (max-width: 768px) {
  .dev-icon img {
    max-width: 73px;
  }
}
/*----- Portfolio / Card view -------*/
.card-img img {
  background: transparent;
  border-radius: 0.76rem;
  box-shadow: 0 0.4rem 1.3rem rgba(0, 0, 0, 0.42);
  height: 245px;
  margin: 1em auto;
  object-fit: cover;
  padding: 3px;
  transition: all 0.4s linear;
  width: 100%;
}

.card-img img:hover {
  background: linear-gradient(34deg, rgb(22, 34, 98) 7%, rgb(37, 199, 217) 100%);
  box-shadow: 0 0.4rem 1.3rem rgba(36, 42, 166, 0.42);
  transform: translateY(-0.5rem);
}

.card-id,
.card-id a {
  background: transparent;
  color: #f2622e;
  font-size: 22px;
  font-weight: 700;
  margin: 1em 0 0.5em;
  transition: all 0.3s ease;
}

.card-id:hover,
.card-id a:hover {
  color: #fff;
}

.views-field-field-lead {
  margin-bottom: 1.2em;
  min-height: 100px;
}

.box-img,
.box-img img {
  border-radius: 0.6rem;
  box-shadow: 0 0.5rem 1.3rem rgba(0, 0, 0, 0.4);
  object-fit: cover;
  padding: 0;
}

/* Listas y Etiquetas */
.b-subtitle,
.b-subtitle h3,
.b-subtitle h4 {
  color: #25c7d9;
}

ul.tag-list {
  list-style: none;
  color: #f0faff;
  padding: 0;
}

ul.tag-list li {
  background: rgba(255, 255, 255, 0.1607843137);
  border: none;
  border-radius: 5px;
  display: inline-block;
  padding: 0.4em 0.8em;
  margin: 0.1em 0.4em 0.6em 0.1em;
}

/*ul.tag-list li:before {
  content: '\f192';
  color: #25c7d9;
  display: inline-block;
  margin-left: -0.5em;
  width: 1.3em;
  font-family: 'Fontawesome';
  font-size: small;
}*/
/* Video */
.video-container {
  height: 100dvh;
  background: transparent;
}

.video-container-wrap {
  position: relative;
}

#home-head-video {
  background: transparent url(/themes/porto/css/video-bg.jpg) no-repeat;
  background-size: cover;
  display: block;
  height: auto;
  min-width: 100%;
  position: relative;
  width: auto;
}

/* Otros Títulos y Gradientes */
.title-drupal {
  color: #28A8F0;
  font-size: 3.26em;
  text-transform: none;
}

/* Comentarios y Otros Bloques */
.well-comment {
  border-radius: 0.6rem;
  border: 1px solid #248ea6;
  box-shadow: 0 0.5rem 1.3rem rgba(0, 0, 0, 0.4);
  color: #fff;
  display: block;
  margin: 1em auto;
  padding: 2em;
}

.bott-arrow {
  display: inline-block;
  position: relative;
}

.bott-arrow:before {
  border-color: #248ea6 transparent transparent transparent;
  border-style: solid;
  border-width: 12px;
  content: " ";
  left: 21%;
  margin-left: -5px;
  position: absolute;
  top: 100%;
}

ul.b-list {
  list-style: none;
  padding: 0;
}

ul.b-list li {
  margin-bottom: 0.56em;
}

ul.b-list li::before {
  content: "\f192";
  font-family: "Fontawesome";
  font-size: small;
  color: #25c7d9;
  display: inline-block;
  margin-left: -0.5em;
  width: 1.64em;
}

/* Botón WhatsApp */
a.btn-wp {
  border-radius: 0.4rem;
  border: 2px solid rgb(13, 166, 51);
  color: #0da633;
  display: inline-block;
  font-size: 2.3em;
  font-weight: 600;
  margin: 0.5em 0;
  padding: 12px 21px;
  position: relative;
  text-transform: none;
  transition: all 0.5s ease;
}

a.btn-wp:hover {
  color: #0da633;
}

a.btn-wp::before,
a.btn-wp::after {
  content: "";
  border-radius: 0.4rem;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: all 0.3s ease;
  width: 100%;
  z-index: 1;
}

a.btn-wp::before {
  background-color: rgba(13, 166, 51, 0.2);
}

a.btn-wp:hover::before {
  opacity: 0;
  transform: scale(0.5);
}

a.btn-wp::after {
  border: 2px solid rgb(13, 166, 51);
  opacity: 0;
  transform: scale(1.2);
}

a.btn-wp:hover::after {
  opacity: 1;
  transform: scale(1);
}

/*button test*/
/* From Uiverse.io by StealthWorm */
.btn-25 {
  align-items: center;
  animation: gradient_301 5s ease infinite;
  border: double 4px transparent;
  border-radius: 2rem;
  background-image: linear-gradient(#212121, #212121), linear-gradient(137.48deg, #f2622e 20%, #25e7d9 45%, #248ea6 37%);
  background-origin: border-box;
  background-clip: content-box, border-box;
  backdrop-filter: blur(1rem);
  background-size: 300% 300%;
  cursor: pointer;
  display: flex;
  justify-content: center;
  margin: 1em auto;
  overflow: hidden;
  padding: 5px 24px;
  transition: 0.5s;
}

#contain-star {
  backdrop-filter: blur(1rem);
  border-radius: 2rem;
  height: 100%;
  overflow: hidden;
  position: absolute;
  transition: 0.5s;
  width: 100%;
  z-index: -1;
}

.strong25 {
  color: #ffffff;
  font-family: var(--crs-font-content);
  font-size: 2em;
  font-weight: 700;
  z-index: 2;
}

#glow25 {
  display: flex;
  position: absolute;
  width: 12rem;
}

.circle25 {
  animation: pulse_3011 4s infinite;
  filter: blur(2rem);
  height: 30px;
  width: 100%;
  z-index: -1;
}

.circle25:nth-of-type(1) {
  background: rgba(254, 83, 186, 0.636);
}

.circle25:nth-of-type(2) {
  background: rgba(142, 81, 234, 0.704);
}

.btn-25:hover #container-stars {
  z-index: 1;
  background-color: #212121;
}

.btn-25:hover {
  transform: scale(1.1);
}

.btn-25:active {
  border: double 4px #fe53bb;
  background-origin: border-box;
  background-clip: content-box, border-box;
  animation: none;
}

.btn-25:active .circle25 {
  background: #fe53bb;
}

#starz {
  background: transparent;
  height: 200rem;
  position: relative;
  width: 200rem;
}

#starz::after {
  content: "";
  position: absolute;
  top: -10rem;
  left: -100rem;
  width: 100%;
  height: 100%;
  animation: animStarRotate 90s linear infinite;
}

#starz::after {
  background-image: radial-gradient(#ffffff 1px, transparent 1%);
  background-size: 50px 50px;
}

#starz::before {
  content: "";
  position: absolute;
  top: 0;
  left: -50%;
  width: 170%;
  height: 500%;
  animation: animStar 60s linear infinite;
}

#starz::before {
  background-image: radial-gradient(#ffffff 1px, transparent 1%);
  background-size: 50px 50px;
  opacity: 0.5;
}

@keyframes animStar {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-135rem);
  }
}
@keyframes animStarRotate {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0);
  }
}
@keyframes gradient_301 {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@keyframes pulse_3011 {
  0% {
    transform: scale(0.75);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
  }
  100% {
    transform: scale(0.75);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
  }
}
/* “Why Drupal Landing” */
.bg-pump {
  background-color: rgba(252, 117, 27, 0.8);
}

.btns-contain {
  display: block;
  left: 50%;
  position: relative;
  right: 0;
  top: 10em;
}

a.btn-size2 {
  border-radius: 0.4rem;
  border: 2px solid rgba(242, 98, 46, 0.1);
  color: #f2622e;
  display: inline-block;
  font-size: 1em;
  font-weight: 600;
  margin: 0.5em 0 0.2em;
  padding: 8px 17px;
  position: relative;
  text-transform: none;
  transition: all 0.5s ease;
  z-index: 1;
}

a.btn-size2:hover {
  color: #fff;
}

a.btn-size2::before,
a.btn-size2::after {
  content: "";
  border-radius: 0.4rem;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: all 0.3s ease;
  width: 100%;
  z-index: 1;
}

a.btn-size2::before {
  background-color: rgba(1, 1, 1, 0.1);
}

a.btn-size2:hover::before {
  opacity: 0;
  transform: scale(0.3);
}

a.btn-size2::after {
  border: 2px solid rgba(255, 255, 255, 0.6);
  opacity: 0;
  transform: scale(1.2);
}

/* Infograph “Why Drupal” */
.id3-b {
  color: #2aa8df;
  display: inline-block;
  font-size: 2.34em;
  text-transform: none;
}

.r1 {
  position: absolute;
  bottom: -120px;
}

.r2 {
  position: relative;
  bottom: 70px;
  left: 150px;
  right: 0;
}

.r3 {
  position: relative;
  bottom: -117px;
  height: 450px;
}

.r4 {
  position: relative;
  right: -254px;
}

@media (max-width: 768px) {
  .r1,
  .r2,
  .r3,
  .r4 {
    position: inherit;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: block;
  }
  .whyd-3 {
    margin-top: 0;
  }
}
.blu-romb1 {
  background-image: url(/sites/default/files/coresis-back-rombo_06.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 415px 370px;
  margin: 1em auto;
  min-height: 372px;
  padding: 0.3em;
  position: relative;
  width: auto;
}

.atribute-id {
  color: #fff;
  display: block;
  font-size: 1.82em;
  font-weight: 500;
  margin: 1em auto;
  padding: 0 1em 0.5em 0.79em;
  position: relative;
  top: 2.42em;
  width: 56%;
}

.atribute-info {
  color: #fff;
  display: block;
  font-size: 1.08em;
  padding: 1em 0.5em 0.5em 8em;
  position: relative;
  top: 2em;
  width: 83%;
}

@media (max-width: 768px) {
  .blu-romb1 {
    width: 100%;
  }
  .atribute-info {
    padding-left: 5.7em;
  }
  .atribute-id {
    padding-left: 0.16em;
  }
}
/* Otros Títulos (Why Drupal) */
.whyd-1 {
  color: #fff;
  display: block;
  font-size: 4.23em;
  font-weight: 600;
  line-height: normal;
  margin-top: 1.5em;
  text-align: right;
  text-transform: none;
}

.whyd-2 {
  color: #2aa8df;
  display: block;
  font-size: 6.54em;
  font-weight: 600;
  line-height: normal;
  text-align: right;
  text-transform: none;
}

.whyd-tx {
  color: #fff;
  display: inline-block;
  font-size: 1.32em;
  text-align: right;
}

.whyd-3 {
  bottom: 0;
  color: #2aa8df;
  display: block;
  font-size: 4.25em;
  font-weight: 600;
  margin-top: 100px;
  position: relative;
  text-align: right;
  text-transform: none;
}

/* Ajustes de Navbar Contenedor */
.navbar.container,
.navbar.container-fluid {
  margin-top: 0;
}

.crs-videos {
  border: none;
  bottom: 0;
  height: 100%;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
}

.iframe-video {
  border-radius: 20px;
  border: none;
  overflow: hidden;
  padding-top: 75%;
  position: relative;
  width: 100%;
}

/*---Services we provide--- list on who we are*/
.we-card {
  border-radius: 6px;
  margin: 1em auto;
  padding: 5px;
  /*background: radial-gradient(65% 62% at -22.4% -3.3%, rgb(45, 0, 61) 0%, rgb(13, 13, 28) 100%);
  border: 2px solid #201e1e;*/
  background: radial-gradient(65% 62% at -22.4% 5.3%, rgba(26, 13, 95, 0.7411764706) 0% 40%, rgba(12, 10, 42, 0.768627451) 100%);
  border: 1px solid #2a284d;
  box-shadow: 0 0.4rem 1.3rem rgba(0, 0, 0, 0.42);
  transition: 0.4s linear;
}

.we-card:hover {
  border: 2px solid hsla(219.48, 98.27%, 22.65%, 0.95);
  box-shadow: 0 0.4rem 1.3rem rgba(36, 42, 166, 0.42);
  transform: translateY(-0.5rem);
}

.pic-card {
  display: block;
  margin: auto;
  text-align: center;
}

.pic-card img {
  height: 140px;
  width: auto;
  margin-bottom: 1em;
  object-fit: contain;
}

.body-card {
  margin: auto;
  border-top: 1px solid #2a284d;
  width: 90%;
  text-align: center;
}

a.btn-we {
  display: inline-flex;
  border: none;
  color: #f2622e;
  /* display: inline-block; */
  font-weight: 600;
  font-size: 1.36em;
  margin: 0.35em 0;
  padding: 4px 20px 8px 0px;
  /* position: relative; */
  text-transform: none;
  transition: all 0.5s ease;
}

a.btn-we:before, a.btn-we:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: all 0.3s ease;
  z-index: 1;
}

a.btn-we:hover::before {
  opacity: 0;
  transform: scale(0.5);
}

a.btn-we::after {
  opacity: 0;
  transform: scale(1.2);
}

a.btn-we:hover {
  color: #fff;
}

.pic-card2 {
  display: block;
  margin: auto;
}

.pic-card2 img {
  height: 255px;
  object-position: center;
  width: 100%;
  border-radius: 5px;
  margin-bottom: 1em;
  object-fit: cover;
}

.we-card2 {
  border-radius: 6px;
  border: 1px solid #2a284d;
  margin: 1em auto;
  padding: 5px;
  background-color: hsla(250.31, 65.31%, 19.22%, 0.749);
}

.body-wecard {
  padding: 0.57em;
  min-height: 120px;
}

.body-wecard h4 {
  margin-top: 0.35em;
  color: #26c7d9;
  font-weight: 600;
  line-height: inherit;
}

/*.we-card2:hover {
    border: 2px solid hsl(219.48deg 98.27% 22.65% / 95%);
    box-shadow: 0 0.4rem 1.3rem rgba(36, 42, 166, 0.42);
}
ul.do-list {
    list-style: none;
    padding: 0;
}
ul.do-list li {
    background:#ddd;
    border-radius:4px;
    display:inline-flex;
    margin: 0.2em;
    padding:0.2em 0.4em;
}
.icon-card {
    background: #f5f5f5f0;
    border-radius: 5px;
    margin:auto;
    position: absolute;
    right: 5%;
    top: 189px;
}
.icon-card img {
    height:87px;
    margin:auto;
    transition: 0.4s linear;
    width:auto;
}
.icon-card:hover {transform: translateY(-0.5rem);}*/
/*----- Portfolio list all+detail landing----------*/
.portfolio-type {
  background-color: #ddd;
  border-radius: 0.3em;
  color: #0a0a0a;
  display: flex;
  font-size: 0.87em;
  font-weight: 600;
  left: 2%;
  padding: 0.3em 0.6em;
  position: absolute;
  top: 5%;
}

/* Portfolio detail rules live in components/_portfolio-case.scss. */
.icoh-card {
  border-radius: 6px;
  margin: 1em auto;
  padding: 5px;
  background: radial-gradient(65% 62% at -22.4% 5.3%, rgba(26, 13, 95, 0.7411764706) 0% 40%, rgba(12, 10, 42, 0.768627451) 100%);
  border: 1px solid #2a284d;
  box-shadow: 0 0.4rem 1.3rem rgba(0, 0, 0, 0.42);
  margin: 1em auto;
  padding: 12px;
  transition: 0.3s linear;
}

.txt-card, .txt-card h4 {
  color: #f0faff;
  display: block;
  line-height: initial;
}

.view-portfolio-list .filters_wrapper .form-type-checkbox {
  margin: 3px 5px 3px 0 !important;
  background: rgba(255, 255, 255, 0.1607843137);
  border-radius: 5px;
  padding: 0.4em 0.8em;
  transition: 0.3s ease;
  text-decoration: none;
  vertical-align: bottom !important;
}

.view-portfolio-list .radio label, .view-portfolio-list .checkbox label:hover {
  color: #25c7d9;
}

.view-portfolio-list .radio label, .checkbox label {
  color: #f0faff;
}

.view-portfolio-list .form-composite legend {
  display: none;
  visibility: hidden;
}

/* .view-portfolio-search .bef-exposed-form .form--inline > .form-item {
    color: #f0faff;
    margin: .3em 1em .2em .2em;
}
.view-portfolio-search label.control-label {
    background: #ffffff29;
    border: 1px solid transparent;
    border-radius: 5px;
    display: inline-block;
    padding: 0.4em 0.8em;
    transition: .2s ease;
    text-decoration:none;
}
.view-portfolio-search label.control-label:hover {
    color: #25c7d9;
    border: 1px solid #25c7d9;
    text-decoration:underline;
}

.view-portfolio-search input {
    margin-right: .32em;
}
*/
/*.views-field-field-color #p-type1 {
  background: color(srgb-linear 0.68 0.79 0.98 / 0.85);
}
.views-field-field-color #p-type2 {
  background: color(srgb-linear 0.64 0.96 0.59 / 0.85);
}
.views-field-field-color #p-type3 {
  background: color(srgb-linear 0.72 0.72 0.52 / 0.85);
}
.views-field-field-color #p-type4 {
  background: color(srgb-linear 1 0.71 0.61 / 0.85);
}
.views-field-field-color #p-type5 {
  background: color(srgb-linear 0.95 0.92 0.59 / 0.85);
}*/
/**
 * @file
 * DXPR and CKEditor inline-editing parity.
 *
 * These selectors preserve the native editor wrappers and inherit the public
 * component typography without replacing DXPR markup or persistence data.
 */
.b-white {
  --ck-content-font-color: #f0faff;
}

.b-white p,
.b-white .ckeditor-inline,
.b-white .ck-editor__editable,
.b-white .ck-content {
  color: #f0faff;
}

.az-element.az-text.ck-content > .ckeditor-inline.ck-content,
.az-element.az-text.ck-content > .ck-editor__editable.ck-content {
  --ck-content-font-family: inherit;
  --ck-content-font-size: inherit;
  --ck-content-line-height: inherit;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit;
  color: inherit !important;
}

.az-element.az-text.ck-content > .ckeditor-inline.ck-content p,
.az-element.az-text.ck-content > .ck-editor__editable.ck-content p {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.az-element.az-text.ck-content > .ckeditor-inline.ck-content ul,
.az-element.az-text.ck-content > .ckeditor-inline.ck-content ol,
.az-element.az-text.ck-content > .ck-editor__editable.ck-content ul,
.az-element.az-text.ck-content > .ck-editor__editable.ck-content ol {
  margin: 1.3em 0;
  padding-left: 1.5em;
}

.az-element.az-text.ck-content > .ckeditor-inline.ck-content li,
.az-element.az-text.ck-content > .ck-editor__editable.ck-content li {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0.56em 0;
}

.site-navigation__collapse .js-menu-hub-toggle {
  background: transparent;
  border: 0;
  font-family: inherit;
  line-height: inherit;
}

@media (min-width: 75rem) {
  .site-navigation__collapse .nav-item.dropdown.nav-item--menu-hub {
    position: static;
  }

  .site-navigation__collapse .nav-item.dropdown.nav-item--menu-hub > .menu-hub {
    top: calc(100% + 0.35rem);
    right: 0;
    left: auto;
    width: min(66rem, 100vw - 2rem);
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    transform: translateY(-0.35rem);
    background-color: rgba(9, 38, 61, 0.97);
    border: 1px solid rgba(93, 212, 239, 0.22);
    border-radius: 1rem;
    box-shadow: 0 1.5rem 3.5rem rgba(4, 18, 31, 0.48);
  }

  .site-navigation__collapse .nav-item--menu-hub:hover > .menu-hub,
  .site-navigation__collapse .nav-item--menu-hub:focus-within > .menu-hub,
  .site-navigation__collapse .nav-item--menu-hub > .menu-hub.show {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0s;
  }

  .site-navigation__collapse .nav-item.dropdown.nav-item--menu-hub.is-menu-dismissed > .menu-hub {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-0.35rem);
  }

  .menu-hub__layout {
    display: grid;
    grid-template-columns: 14rem minmax(0, 1fr);
  }

  .menu-hub__categories {
    display: grid;
    align-content: start;
    gap: 0.35rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.03);
    border-inline-end: 1px solid rgba(255, 255, 255, 0.12);
  }

  .menu-hub__category {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    min-height: 3.25rem;
    padding: 0.7rem 0.8rem;
    background: transparent;
    border: 0;
    border-radius: 0.6rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.95rem;
    font-weight: 650;
    text-align: start;
    transition: background-color 0.18s ease, color 0.18s ease;
  }

  .menu-hub__category:hover,
  .menu-hub__category:focus-visible,
  .menu-hub__category.is-active {
    background: rgba(93, 212, 239, 0.12);
    color: #fff;
  }

  .menu-hub__category:focus-visible {
    outline: 0.125rem solid #5dd4ef;
    outline-offset: -0.125rem;
  }

  .menu-hub__category-arrow {
    color: #5dd4ef;
    font-size: 1.1rem;
  }

  .menu-hub__panels {
    min-width: 0;
    padding: 1rem;
  }

  .menu-hub__back,
  .menu-hub__panel-title {
    display: none;
  }
}

@media (max-width: 74.99rem) {
  .menu-hub__layout {
    display: grid;
    grid-template-columns: 100% 100%;
    transition: transform 0.32s cubic-bezier(0.65, 0, 0.35, 1);
  }

  .menu-hub.is-category-open .menu-hub__layout {
    transform: translateX(-100%);
  }

  .menu-hub__categories,
  .menu-hub__panels {
    min-width: 0;
    padding: 0.25rem 0 0.75rem 1rem;
  }

  .menu-hub__category {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    min-height: 3.25rem;
    padding: 0.65rem 0.75rem;
    background: transparent;
    border: 0;
    border-radius: 0.4rem;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1rem;
    font-weight: 600;
    text-align: start;
  }

  .menu-hub__category:is(:hover, :focus-visible, .is-active) {
    background: rgba(93, 212, 239, 0.12);
    color: #fff;
  }

  .menu-hub__category:focus-visible,
  .menu-hub__back:focus-visible {
    outline: 0.125rem solid #5dd4ef;
    outline-offset: -0.125rem;
  }

  .menu-hub__category-arrow {
    color: #5dd4ef;
    font-size: 1.25rem;
  }

  .menu-hub__back {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.75rem;
    margin-bottom: 0.25rem;
    padding: 0.45rem 0.75rem;
    background: transparent;
    border: 0;
    border-radius: 0.4rem;
    color: #5dd4ef;
    font-size: 0.9375rem;
    font-weight: 650;
  }

  .menu-hub__panel-title {
    display: block;
    padding: 0.45rem 0.75rem 0.65rem;
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
  }

  .menu-hub__panel .mega-menu__group {
    padding: 0.4rem 0;
  }

  .menu-hub__panel .mega-menu__group-label {
    display: block;
    margin: 0 0 0.2rem;
    padding: 0.35rem 0.75rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .menu-hub__panel .mega-menu__footer {
    margin-top: 0.25rem;
    padding-top: 0.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }

  body.user-logged-in .site-navigation__collapse .menu-hub,
  body:not(.user-logged-in) .site-navigation__collapse .menu-hub {
    padding-inline-start: 0;
    overflow: hidden;
    border-left: 0;
  }

  body:not(.user-logged-in) .site-navigation__collapse .js-menu-hub-toggle {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-hub__layout {
    transition-duration: 0.01ms;
  }
}
