:root {
  --color-brand: #075fd8;
  --color-brand-dark: #1447b8;
  --color-ink: #132b4d;
  --color-surface: #ffffff;
  --content-width: 1440px;
  --header-height: 74px;
  --font-sans: Inter, "Segoe UI", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow: hidden;
  scrollbar-width: thin;
  scrollbar-color: #145df5 #e8f3fc;
}

body {
  margin: 0;
  min-height: 100vh;
  overflow: hidden;
  color: var(--color-ink);
  background: var(--color-surface);
  font-family: var(--font-sans);
  line-height: 1.6;
}

*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-track { background: #e8f3fc; }
*::-webkit-scrollbar-thumb { border: 2px solid #e8f3fc; border-radius: 999px; background: #145df5; }
*::-webkit-scrollbar-thumb:hover { background: #0d46bd; }

img {
  display: block;
  max-width: 100%;
}

.site-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-height);
  padding: 0 max(1rem, calc((100% - 1220px) / 2));
  padding-left: max(1rem, calc((100% - 1260px) / 2));
  border-bottom: 1px solid rgba(10, 66, 150, 0.08);
  box-shadow: 0 4px 20px rgba(14, 50, 90, 0.05);
  background: var(--color-surface);
}

.brand {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  width: 175px;
}

.brand__logo {
  width: 100%;
  height: auto;
}

.site-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(24px, 3vw, 40px);
  margin-left: 3rem;
  margin-right: 0;
  padding-left: 0;
}

.site-nav a {
  position: relative;
  color: #0c2360;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-decoration: none;
  white-space: nowrap;
}

.site-nav a:hover,
.site-nav a:focus-visible {
  color: #145df5;
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after {
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: #145df5;
  content: "";
}

.site-nav a.is-active {
  color: #145df5;
  font-weight: 700;
}

.site-nav a.is-active::after {
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: #145df5;
  content: "";
}
.language-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: .25rem; width: 4.35rem; height: 2.15rem; flex: 0 0 auto; margin-left: .7rem; padding: .25rem .35rem; border: 1px solid rgba(20,93,245,.2); border-radius: 999px; color: #145df5; background: rgba(255,255,255,.92); cursor: pointer; font: inherit; font-size: 1rem; line-height: 1; box-shadow: 0 3px 12px rgba(20,93,245,.08); transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.language-toggle:hover, .language-toggle:focus-visible { background: #eaf4ff; box-shadow: 0 6px 16px rgba(20,93,245,.14); transform: translateY(-1px); }
.language-toggle:focus-visible { outline: 2px solid #145df5; outline-offset: 3px; }
.language-toggle__flag { position: relative; display: block; width: 1.55rem; height: 1.05rem; overflow: hidden; border-radius: .22rem; opacity: .45; filter: grayscale(.3) saturate(.8); transform: scale(.94); transition: opacity 160ms ease, filter 160ms ease, transform 160ms ease, background 160ms ease, box-shadow 160ms ease; }
.language-toggle__flag--es { background: linear-gradient(to bottom, #aa151b 0 25%, #f1bf00 25% 75%, #aa151b 75% 100%); }
.language-toggle__flag--uk { background: linear-gradient(33deg, transparent 43%, #fff 43% 48%, #c8102e 48% 52%, #fff 52% 57%, transparent 57%), linear-gradient(-33deg, transparent 43%, #fff 43% 48%, #c8102e 48% 52%, #fff 52% 57%, transparent 57%), linear-gradient(to right, transparent 38%, #fff 38% 62%, transparent 62%), linear-gradient(to bottom, transparent 32%, #fff 32% 68%, transparent 68%), #012169; }
.language-toggle__flag.is-active { opacity: 1; filter: none; transform: scale(1.04); background: #eaf4ff; box-shadow: 0 0 0 2px #145df5, 0 2px 7px rgba(20,93,245,.18); }
.language-toggle__flag--es.is-active { background: linear-gradient(to bottom, #aa151b 0 25%, #f1bf00 25% 75%, #aa151b 75% 100%); }
.language-toggle__flag--uk.is-active { background: linear-gradient(33deg, transparent 43%, #fff 43% 48%, #c8102e 48% 52%, #fff 52% 57%, transparent 57%), linear-gradient(-33deg, transparent 43%, #fff 43% 48%, #c8102e 48% 52%, #fff 52% 57%, transparent 57%), linear-gradient(to right, transparent 38%, #fff 38% 62%, transparent 62%), linear-gradient(to bottom, transparent 32%, #fff 32% 68%, transparent 68%), #012169; }
@media (min-width: 861px) {
  .language-toggle { margin-left: clamp(1.4rem, 2.5vw, 2.6rem); margin-right: -.45rem; }
}

.page-view {
  display: none;
  min-height: calc(100vh - var(--header-height));
}

.page-view.is-active {
  display: block;
  animation: view-slide-in 420ms ease both;
}

.page-view--home.is-active {
  animation: none;
}

.page-view--home { height: calc(100vh - var(--header-height)); max-height: none; min-height: 0; padding-bottom: 2rem; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: #145df5 #e8f3fc; }
.page-view--home .intro { min-height: 0; padding-bottom: 2.5rem; }

.page-view--about-details.is-active {
  animation-name: view-slide-up;
}

@keyframes view-slide-in {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes view-slide-up {
  from { opacity: 0; transform: translateY(44px); }
  to { opacity: 1; transform: translateY(0); }
}

.hero {
  position: relative;
  height: clamp(260px, 38vh, 300px);
  min-height: 260px;
  overflow: hidden;
  background-image: url("/assets/about-hero.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.hero::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 38, 112, 0.62), rgba(5, 94, 211, 0.18));
  content: "";
  pointer-events: none;
}

.hero__content {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: inherit;
  place-items: center start;
  width: min(1180px, calc(100% - 64px));
  margin: 0 auto;
  padding: 0;
}

.hero h1 {
  display: grid;
  gap: 5px;
  margin: 0;
  color: #fff;
  font-size: clamp(48px, 5vw, 64px);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.045em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
}

.hero h1 span:last-child {
  padding-left: 0;
  font-size: clamp(43px, 4.7vw, 60px);
  font-weight: 400;
  letter-spacing: -0.035em;
}

.hero h1::after {
  width: 62px;
  height: 4px;
  margin-top: 16px;
  border-radius: 999px;
  background: #20d9f7;
  content: "";
}

.intro {
  position: relative;
  overflow: hidden;
  padding: 24px 24px 26px;
  background: var(--color-surface);
}

.intro::before {
  position: absolute;
  right: -10%;
  bottom: -160px;
  left: -10%;
  height: 320px;
  background: radial-gradient(ellipse at center, rgba(76, 170, 255, 0.15), rgba(76, 170, 255, 0) 68%);
  content: "";
  pointer-events: none;
}

.intro__inner {
  position: relative;
  z-index: 1;
  width: min(880px, calc(100% - 32px));
  margin: 0 auto;
}

.intro h2 {
  margin: 0 0 10px;
  color: #1447b8;
  font-size: clamp(30px, 2.8vw, 36px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-align: center;
}

.intro__body {
  display: grid;
  justify-items: center;
  gap: 14px;
  max-width: 880px;
  margin: 0 auto;
}

.intro p {
  max-width: 880px;
  margin: 0;
  color: #25385b;
  font-size: 15px;
  line-height: 1.58;
  text-align: center;
}
.intro__tagline { color: #145df5 !important; font-size: 1.1rem !important; font-weight: 700; }
.intro__highlights { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; margin-top: .2rem; }
.intro__highlights span { padding: .42rem .9rem; border: 1px solid rgba(20,93,245,.18); border-radius: 999px; color: #1447b8; background: rgba(232,244,255,.78); font-size: .78rem; font-weight: 800; letter-spacing: .04em; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 205px;
  height: 42px;
  padding: 0 22px;
  border: 0;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(135deg, #1797ff 0%, #144ee8 100%);
  font-size: 14px;
  font-weight: 700;
  gap: 10px;
  box-shadow: 0 8px 22px rgba(20, 91, 240, 0.2);
  text-decoration: none;
  transition: background-color 160ms ease, transform 160ms ease;
}

.button:hover,
.button:focus-visible {
  background: linear-gradient(135deg, #1797ff 0%, #144ee8 100%);
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(20, 91, 240, 0.28);
}

.button::after {
  content: "→";
  font-size: 1.35em;
  line-height: 1;
}

.section-placeholder {
  min-height: 1px;
}

.about-hero {
  display: grid;
  min-height: clamp(230px, 34vh, 285px);
  place-items: center;
  background: linear-gradient(90deg, rgba(3, 38, 112, 0.62), rgba(5, 94, 211, 0.18)), url("/assets/hero-visual.png") center / cover no-repeat;
}
.page-view--about { height: calc(100vh - var(--header-height)); min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: #145df5 #e8f3fc; }
.page-view--about::-webkit-scrollbar { width: 10px; }
.page-view--about::-webkit-scrollbar-track { background: #e8f3fc; }
.page-view--about::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #20b9e8, #145df5); border: 2px solid #e8f3fc; border-radius: 999px; }
.page-view--about .about-next, #quienes-somos-detalle { display: none !important; }
.about-content { padding-bottom: 5rem; overflow: visible; }
.about-full-copy { width: min(1040px, calc(100% - 3rem)); margin: 2rem auto 0; color: #263f68; text-align: left; }
.about-full-copy h3 { margin: 2rem 0 .6rem; color: #1447b8; font-size: 1.45rem; }
.about-full-copy p { margin: .8rem 0; font-size: 1rem; line-height: 1.65; }
.about-full-copy .about-tagline { color: #145df5; font-size: 1.15rem; font-weight: 700; }
.about-full-copy .about-intro { margin-top: -.3rem; font-style: italic; }
.about-principles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.about-principles article { padding: 1rem; border-left: 3px solid #20b9e8; border-radius: 0 .8rem .8rem 0; background: rgba(237,248,255,.72); }
.about-principles h4 { margin: 0 0 .4rem; color: #1447b8; font-size: 1rem; }
.about-principles p { margin: 0; font-size: .9rem; line-height: 1.45; }
.site-footer { position: fixed; z-index: 20; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; gap: 1.25rem; min-height: 22px; padding: .12rem .75rem; color: #dcecff; background: rgba(4, 36, 91, .94); font-size: .68rem; line-height: 1.1; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: #7ee3ff; }

.sector-hero { height: clamp(230px, 34vh, 285px); display: flex; align-items: center; padding: 0 max(1.5rem, calc((100% - 1180px) / 2)); color: #fff; background: linear-gradient(90deg, rgba(3,38,112,.62), rgba(5,94,211,.18)), url("/assets/sectors-banner.png") center / cover no-repeat; }
.sector-hero .content-view__eyebrow, .sector-hero p:last-child { display: none; }
.sector-hero .content-view__eyebrow { color: #7ee3ff; }
.sector-hero h2 { margin: 0; color: #fff !important; font-size: clamp(2.5rem, 5vw, 4.3rem); line-height: 1; }
.sector-hero h2::after { content: "Technology. Data. Impact."; display: block; margin-top: .65rem; color: #c9edff; font-size: clamp(.85rem, 1.4vw, 1.1rem); font-weight: 400; letter-spacing: .18em; line-height: 1.2; }
.sector-hero p:last-child { max-width: 620px; margin: 0; font-size: clamp(1rem, 1.6vw, 1.25rem); line-height: 1.45; }
.sector-content { width: min(1120px, calc(100% - 3rem)); margin: 0 auto; padding: 2rem 0 4rem; }
.sector-content__lead { max-width: 900px; margin: 0 auto 1.5rem; color: #263f68; font-size: 1.1rem; line-height: 1.55; text-align: center; }
.sector-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.2rem; }
.sector-list a { display: grid; grid-template-columns: 2.4rem 1fr auto; align-items: center; gap: .8rem; padding: 1rem 1.1rem; color: #263f68; text-decoration: none; border-left: 4px solid #20b9e8; border-radius: 0 .8rem .8rem 0; background: linear-gradient(135deg, #fff, #f1f8ff); box-shadow: 0 8px 22px rgba(35,97,157,.08); transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease; }
.sector-list a:hover, .sector-list a:focus-visible { transform: translateY(-3px); background: #fff; box-shadow: 0 14px 30px rgba(35,97,157,.15); }
.sector-list a > span { color: #159eea; font-weight: 800; letter-spacing: .1em; }
.sector-list h3 { margin: 0 0 .25rem; color: #1447b8; font-size: 1.1rem; }
.sector-list h3 { display: flex; align-items: center; gap: .55rem; }
.sector-list h3::before { content: ""; flex: 0 0 1.55rem; width: 1.55rem; height: 1.55rem; border-radius: 50%; background: #e8f4ff center / 62% no-repeat; }
.sector-list a:nth-child(1) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V9h14v12M3 9l9-6 9 6M9 21v-6h6v6'/%3E%3C/svg%3E"); }
.sector-list a:nth-child(2) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 8 4v5c0 5-3.5 8-8 9-4.5-1-8-4-8-9V7l8-4Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.sector-list a:nth-child(3) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2 12h10l3-8H6M9 20a1 1 0 1 0 0 .01M18 20a1 1 0 1 0 0 .01'/%3E%3C/svg%3E"); }
.sector-list a:nth-child(4) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6M10 3v5l-5 10a2 2 0 0 0 2 3h10a2 2 0 0 0 2-3L14 8V3M8 14h8'/%3E%3C/svg%3E"); }
.sector-list a:nth-child(5) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10h18M5 10V6h14v4M5 10v9M19 10v9M3 19h18M9 14h6'/%3E%3C/svg%3E"); }
.sector-list a:nth-child(6) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m13 2-9 12h7l-1 8 9-12h-7l1-8Z'/%3E%3C/svg%3E"); }
.sector-list p { margin: 0; font-size: .9rem; line-height: 1.4; }
.sector-list b { color: #145df5; font-size: 1.4rem; }

/* Shared detail treatment for every sector. */
.content-view[data-view^="industry-"] { overflow-y: auto; }
.content-view[data-view^="industry-"] .content-back,
.service-detail-view .content-back { display: none !important; }
.content-view[data-view^="industry-"] .content-view__inner { width: 100%; max-width: none; padding: 0 0 4rem; }
.content-view[data-view^="industry-"] .content-back { display: block; width: min(1120px, calc(100% - 3rem)); margin: 0 auto; padding: 1.1rem 0 .7rem; }
.content-view[data-view^="industry-"] .content-view__eyebrow { width: min(1120px, calc(100% - 3rem)); margin: 1rem auto .55rem; }
.content-view[data-view^="industry-"] h2 { position: relative; width: 100%; margin: 0; padding: clamp(2.2rem, 6vh, 4rem) max(1.5rem, calc((100% - 1120px) / 2)); color: #fff !important; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 1; letter-spacing: -.04em; background: linear-gradient(90deg, rgba(3,38,112,.8), rgba(5,94,211,.34)), url("/assets/services-background.png") center / cover no-repeat; overflow: hidden; }
.content-view[data-view^="industry-"] h2::after { content: ""; position: absolute; right: -8rem; bottom: -14rem; width: 30rem; height: 30rem; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; box-shadow: 0 0 0 2rem rgba(255,255,255,.06), 0 0 0 4rem rgba(255,255,255,.04); }
.content-view[data-view^="industry-"] .content-view__lead { width: min(980px, calc(100% - 3rem)); margin: 2rem auto .9rem; color: #1447b8; font-size: clamp(1.1rem, 1.8vw, 1.35rem); line-height: 1.5; text-align: center; }
.content-view[data-view^="industry-"] .content-view__lead + p { width: min(980px, calc(100% - 3rem)); margin: 0 auto; padding: 1.35rem 1.6rem; border: 1px solid rgba(20,93,245,.12); border-left: 4px solid #20b9e8; border-radius: 0 .9rem .9rem 0; color: #263f68; background: linear-gradient(135deg, #fff, #f1f8ff); font-size: 1rem; line-height: 1.65; box-shadow: 0 12px 30px rgba(35,97,157,.1); }
.industry-copy { width: min(1080px, calc(100% - 3rem)); margin: 0 auto; padding: 0 0 4rem; color: #263f68; }
.industry-copy p { margin: 1rem 0; font-size: 1rem; line-height: 1.68; }
.industry-capabilities { margin: 1.5rem 0; padding: 1.25rem 1.5rem 1.35rem; border: 1px solid rgba(20,93,245,.12); border-left: 4px solid #20b9e8; border-radius: 0 1rem 1rem 0; background: linear-gradient(135deg, #fff, #f1f8ff); box-shadow: 0 12px 30px rgba(35,97,157,.08); }
.industry-capabilities h3 { margin: 0 0 .75rem; color: #1447b8; font-size: 1.15rem; }
.industry-capabilities ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 2rem; margin: 0; padding-left: 1.2rem; }
.industry-capabilities li { padding-left: .2rem; line-height: 1.45; }
.industry-capabilities li::marker { color: #20b9e8; }
.industry-tagline { margin-top: 1.5rem !important; color: #145df5; font-size: 1.18rem !important; font-weight: 700; }
.industry-contact { margin-top: 1.25rem !important; padding-top: 1rem; border-top: 1px solid rgba(20,93,245,.14); font-size: .95rem !important; }
.industry-contact a { color: #145df5; font-weight: 700; }
.careers-view { overflow-y: auto; background: linear-gradient(180deg, #f8fcff 0%, #fff 42%, #eef8ff 100%); }
.careers-inner { width: min(1120px, calc(100% - 3rem)); max-width: none; padding: 0 0 4.5rem; }
.careers-hero { position: relative; margin: 0 calc((1120px - 100vw) / 2) 1.5rem; padding: clamp(2.5rem, 7vh, 5rem) max(1.5rem, calc((100vw - 1120px) / 2)); color: #fff; background: linear-gradient(90deg, rgba(3,38,112,.72), rgba(5,94,211,.28)), url("/assets/join-banner.png") center / cover no-repeat; overflow: hidden; }
.careers-hero::after { content: ""; position: absolute; right: -5rem; bottom: -10rem; width: 25rem; height: 25rem; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; box-shadow: 0 0 0 2rem rgba(255,255,255,.06), 0 0 0 4rem rgba(255,255,255,.04); }
.careers-hero .content-view__eyebrow { position: relative; z-index: 1; margin: 0 0 .55rem; color: #7ee3ff; }
.careers-hero h2, .careers-view .careers-hero h2 { position: relative; z-index: 1; margin: 0; color: #fff !important; font-size: clamp(2.5rem, 5vw, 4.4rem); line-height: 1; letter-spacing: -.04em; }
.careers-hero .content-view__lead { position: relative; z-index: 1; max-width: 650px; margin: .85rem 0 1.3rem; color: #fff; text-align: left; }
.careers-cta { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .75rem; padding: .75rem 1.1rem; border: 1px solid rgba(255,255,255,.65); border-radius: 999px; color: #fff; background: rgba(20,93,245,.6); font-weight: 700; text-decoration: none; transition: transform 180ms ease, background 180ms ease; }
.careers-cta:hover { transform: translateY(-2px); background: #145df5; }
.careers-cta span { font-size: 1.25rem; line-height: 1; }
.careers-intro { width: min(920px, 100%); margin: 0 auto 1.7rem; padding: 0 .5rem; color: #263f68; text-align: center; }
.careers-intro p { margin: .7rem 0; font-size: 1.05rem; line-height: 1.65; }
.careers-intro .content-contact { color: #1447b8; font-weight: 700; }
.careers-intro .content-contact a { color: #145df5; }
.careers-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.career-card { position: relative; min-height: 190px; padding: 1.35rem 1.35rem 1.25rem 4.1rem; border: 1px solid rgba(20,93,245,.12); border-left: 4px solid #20b9e8; border-radius: 0 1rem 1rem 0; background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(238,248,255,.92)); box-shadow: 0 12px 30px rgba(35,97,157,.08); }
.career-card__icon { position: absolute; top: 1.2rem; left: 1.1rem; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; color: #145df5; background: #e8f4ff; font-size: 1.25rem; font-weight: 800; }
.career-card h3 { margin: 0 0 .5rem; color: #1447b8; font-size: 1.15rem; line-height: 1.2; }
.career-card p { margin: 0; color: #263f68; font-size: .94rem; line-height: 1.55; }
.news-view { overflow-y: auto; background: linear-gradient(180deg, #f8fcff 0%, #fff 42%, #eef8ff 100%); }
.news-inner { width: 100%; max-width: none; padding: 0 0 4.5rem; }
.news-hero { position: relative; margin: 0; padding: clamp(2.5rem, 7vh, 4.5rem) max(1.5rem, calc((100% - 1120px) / 2)); color: #fff; background: linear-gradient(90deg, rgba(3,38,112,.78), rgba(5,94,211,.24)), url("/assets/news-banner.png") center / cover no-repeat; overflow: hidden; }
.news-hero::after { content: ""; position: absolute; right: -5rem; bottom: -11rem; width: 27rem; height: 27rem; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; box-shadow: 0 0 0 2rem rgba(255,255,255,.06), 0 0 0 4rem rgba(255,255,255,.04); }
.news-hero .content-view__eyebrow, .news-hero h2, .news-hero p { position: relative; z-index: 1; }
.news-hero .content-view__eyebrow { display: none; margin: 0 0 .55rem; color: #7ee3ff; }
.news-hero h2 { margin: 0; color: #fff !important; font-size: clamp(2.8rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -.04em; }
.news-hero p:last-child { max-width: 700px; margin: .9rem 0 0; font-size: clamp(1rem, 1.7vw, 1.3rem); line-height: 1.45; }
.news-board { width: min(1120px, calc(100% - 3rem)); margin: 0 auto; padding: 2rem 0 0; }
.news-board__intro { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; color: #1447b8; font-size: 1.1rem; font-weight: 700; }
.news-board__intro a { display: inline-flex; align-items: center; gap: .45rem; color: #145df5; font-size: .9rem; text-decoration: none; }
.news-board__intro a:hover { text-decoration: underline; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.news-card { display: flex; height: 450px; flex-direction: column; padding: 0 1.3rem 1.15rem; border: 1px solid rgba(20,93,245,.13); border-top: 3px solid #20b9e8; border-radius: 0 1rem 1rem 1rem; background: rgba(255,255,255,.92); box-shadow: 0 12px 28px rgba(35,97,157,.08); overflow: hidden; transition: height 220ms ease, transform 180ms ease, box-shadow 180ms ease; }
.news-card::before { display: block; flex: 0 0 145px; height: 145px; min-height: 145px; margin: 0 -1.3rem 1.05rem; content: ""; background-position: center; background-size: cover; background-repeat: no-repeat; filter: saturate(.9); }
.news-card::before { background-image: linear-gradient(135deg, #0b347c 0%, #167fd3 48%, #20c3e8 100%); }
.news-card--linkedin-1::before { background-image: url("/assets/news-post-1.png"); }
.news-card--linkedin-2::before { background-image: url("/assets/news-post-2.png"); }
.news-card--linkedin-3::before { background-image: url("/assets/news-post-3.png"); }
.news-card--linkedin-4::before { background-image: url("/assets/news-post-4.png"); }
.news-card--linkedin-5::before { background-image: url("/assets/news-post-5.png"); }
.news-card--linkedin-6::before { background-image: url("/assets/news-post-6.png"); }
.news-card:hover { transform: translateY(-4px); box-shadow: 0 18px 34px rgba(35,97,157,.15); }
.news-card__meta { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin-bottom: .65rem; color: #159eea; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.news-card__meta span { display: none; }
.news-card__meta time { display: inline; color: #6c83a5; font-size: .72rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
.news-card__meta { display: none; }
.news-card h3 { margin: 0 0 .55rem; color: #1447b8; font-size: 1.15rem; line-height: 1.25; }
.news-card p { margin: 0; color: #263f68; font-size: .92rem; line-height: 1.52; }
.news-card__excerpt { max-height: 6.9rem; overflow: hidden; position: relative; }
.news-card.is-expanded { height: auto; min-height: 450px; }
.news-card.is-expanded .news-card__excerpt { max-height: none; }
.news-card__read-more { align-self: flex-start; margin-top: auto; padding: .75rem 0 .25rem; border: 0; background: transparent; color: #145df5; cursor: pointer; font: inherit; font-size: .86rem; font-weight: 800; }
.news-card__read-more:hover { color: #0d46bd; }
.news-card > a { display: inline-flex; align-items: center; gap: .45rem; padding-top: .55rem; color: #6b83a4; font-size: .78rem; font-weight: 700; text-decoration: none; }
.news-card > a:hover { color: #0d46bd; }
.news-card > a span { display: none; }
#contacto { height: calc(100vh - var(--header-height)); overflow: hidden; background: #f7fbff; }
#contacto .content-view__inner--media { position: relative; display: flex; flex-direction: column; width: 100%; max-width: none; min-height: 0; padding: clamp(220px, 32vh, 280px) 0 1.5rem; overflow: hidden; background: none; }
#contacto .content-view__inner--media::before { position: absolute; inset: 0 0 auto; height: clamp(220px, 32vh, 280px); background: url("/assets/contact-banner.png") center / cover no-repeat; content: ""; pointer-events: none; }
#contacto .content-view__inner--media::after { position: absolute; inset: 0 0 auto; height: clamp(220px, 32vh, 280px); background: linear-gradient(90deg, rgba(3,38,112,.78), rgba(5,94,211,.24)); content: ""; pointer-events: none; }
#contacto .content-view__inner--media > div { display: contents; }
#contacto .content-view__inner--media img { visibility: hidden; position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: clamp(260px, 38vh, 320px); max-height: none; object-fit: cover; border-radius: 0; box-shadow: none; filter: saturate(.95); }
#contacto .content-view__eyebrow { display: none; }
#contacto h2 { position: absolute; z-index: 2; top: clamp(3.2rem, 7vh, 5rem); left: max(1.5rem, calc((100% - 1120px) / 2)); margin: 0; color: #fff !important; font-size: clamp(2.5rem, 5vw, 4.4rem); }
#contacto .content-view__lead, #contacto .content-contact { width: min(920px, calc(100% - 3rem)); margin: 1rem auto 0; color: #263f68; text-align: center; }
#contacto .content-contact { margin-top: .55rem; font-size: .92rem; line-height: 1.25; font-weight: 600; transform: translateY(-1rem); }
#contacto .content-contact a { color: #145df5; }

.about-hero__logo {
  width: min(42vw, 430px);
  height: auto;
  filter: drop-shadow(0 4px 18px rgba(0, 23, 75, 0.3));
}

.about-content {
  position: relative;
  z-index: 1;
  min-height: auto;
  padding: clamp(1.5rem, 3vh, 2.5rem) 1.5rem;
  overflow: hidden;
  text-align: center;
  background: #fff;
}

/* Keep the final principles cards clear of the fixed footer. */
.page-view--about .about-content { padding-bottom: 4.5rem; }

.about-content::before {
  position: absolute;
  right: -8%;
  bottom: -170px;
  left: -8%;
  height: 300px;
  background: radial-gradient(ellipse at 50% 20%, rgba(78, 173, 255, 0.14), rgba(78, 173, 255, 0) 68%);
  content: "";
  pointer-events: none;
}

.about-kicker,
.about-copy,
.about-content h2 {
  position: relative;
  z-index: 1;
}

.about-kicker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  margin: 0 0 0.65rem;
  color: #258cf0;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.28em;
}

.about-kicker span {
  width: 2rem;
  height: 2px;
  background: #20bff3;
}

.about-content h2 {
  margin: 0 0 0.85rem;
  color: #1447b8;
  font-size: clamp(2rem, 3.2vw, 3.2rem);
  line-height: 1;
  letter-spacing: -0.04em;
}

.about-copy {
  width: min(960px, 100%);
  margin: 0 auto;
  color: #124bb5;
  font-size: clamp(0.9rem, 1.2vw, 1.1rem);
  line-height: 1.35;
}

.about-next {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 38px;
  margin-top: 1.25rem;
  border: 1px solid rgba(20, 93, 245, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 8px 18px rgba(20, 93, 245, 0.14);
  text-decoration: none;
  animation: next-bounce 1.8s ease-in-out infinite;
}

.about-next span {
  display: block;
  width: 10px;
  height: 10px;
  border-right: 2px solid #145df5;
  border-bottom: 2px solid #145df5;
  transform: rotate(45deg) translate(-2px, -2px);
}

.about-next:hover,
.about-next:focus-visible {
  background: #145df5;
  box-shadow: 0 10px 22px rgba(20, 93, 245, 0.28);
}

.about-next:hover span,
.about-next:focus-visible span {
  border-color: #fff;
}

@keyframes next-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

.services-panel {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(1rem, 3vw, 3rem);
  min-height: calc(100vh - var(--header-height));
  padding: clamp(1.25rem, 5vh, 4rem) clamp(1rem, 6vw, 6rem);
  background: linear-gradient(rgba(10, 101, 182, 0.38), rgba(10, 101, 182, 0.38)), url("/assets/services-background.png") center / cover no-repeat;
}

.service-card {
  display: flex;
  flex-direction: column;
  min-height: min(620px, calc(100vh - var(--header-height) - 5rem));
  padding: clamp(1.5rem, 3vw, 3rem);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 1.35rem;
  color: #fff;
  background: linear-gradient(145deg, #10b8ef, #0877d7);
  box-shadow: 0 15px 35px rgba(3, 40, 102, 0.2);
  transition: background 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.service-card:hover,
.service-card:focus-within {
  background: linear-gradient(145deg, #165395, #052d72);
  box-shadow: 0 18px 38px rgba(3, 40, 102, 0.3);
  transform: translateY(-4px);
}

.service-icon {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
}

.service-icon svg {
  width: 2rem;
  height: 2rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.service-card h3 {
  margin: 0 0 1rem;
  font-size: clamp(1.45rem, 2.3vw, 2.2rem);
  line-height: 1.18;
}

.service-card p {
  margin: 0;
  font-size: clamp(0.9rem, 1.15vw, 1.15rem);
  line-height: 1.5;
}

.service-card a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 12rem;
  margin-top: auto;
  margin-bottom: -0.75rem;
  padding: 0.75rem 1.4rem;
  border: 2px solid currentColor;
  border-radius: 0.8rem;
  color: inherit;
  font-weight: 700;
  text-decoration: none;
  transition: color 220ms ease, background 220ms ease;
}

.service-card:hover a,
.service-card:focus-within a {
  color: #123c79;
  background: #fff;
}

.service-card a span {
  font-size: 1.8rem;
  line-height: 0.7;
}

.content-view {
  height: calc(100vh - var(--header-height));
  min-height: 0;
  overflow-y: auto;
  background: linear-gradient(145deg, #f7fbff 0%, #fff 55%, #eef7ff 100%);
}

.page-view#servicios {
  height: calc(100vh - var(--header-height));
  overflow: hidden;
}
.page-view#servicios.services-combined { height: auto; min-height: calc(100vh - var(--header-height)); overflow: visible; }
main.services-combined-main { height: calc(100vh - var(--header-height)); overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: #145df5 #e8f3fc; }

.technology-hero {
  position: relative;
  height: clamp(260px, 38vh, 300px);
  min-height: 260px;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(3, 38, 112, 0.72), rgba(5, 94, 211, 0.38)), url("/assets/solutions-banner.png") center / cover no-repeat;
}

.technology-hero::after {
  display: none;
}

.technology-hero__copy {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center start;
  width: min(1180px, calc(100% - 64px));
  min-height: inherit;
  margin: 0 auto;
}

.technology-hero__copy .content-view__eyebrow { color: #145df5; }

.technology-hero h2 {
  display: grid;
  gap: 5px;
  margin: 0;
  color: #fff !important;
  font-size: clamp(48px, 5vw, 64px) !important;
  font-weight: 800;
  line-height: 0.95 !important;
  letter-spacing: -0.045em;
}

.technology-hero h2 strong { color: #fff; font-weight: 400; letter-spacing: -0.035em; }

.technology-hero__copy i {
  display: none;
}

.technology-hero__copy > p:last-child {
  position: absolute;
  right: 0;
  bottom: 3rem;
  color: #0c2360;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  line-height: 2;
  text-align: right;
}

.technology-intro {
  position: relative;
  display: grid;
  justify-items: center;
  height: calc(100vh - var(--header-height) - clamp(260px, 38vh, 300px));
  min-height: 0;
  padding: 24px 24px 26px;
  overflow: hidden;
  text-align: center;
  background: radial-gradient(ellipse at 50% 0%, rgba(78, 173, 255, 0.14), rgba(78, 173, 255, 0) 68%), #fff;
}

.technology-intro h2 {
  margin: 0 0 10px;
  color: #1447b8;
  font-size: clamp(30px, 2.8vw, 36px);
  letter-spacing: -0.05em;
}

.technology-intro > p:not(.content-view__eyebrow) {
  width: min(880px, 100%);
  margin: 0;
  color: #124bb5;
  font-size: 13px;
  line-height: 1.3;
}

.technology-next {
  position: relative;
  top: auto;
  bottom: auto;
  margin-top: -10px;
}

.service-cards-grid .content-card { min-height: 240px; }

.content-card b {
  display: flex;
  justify-content: space-between;
  margin-top: 1.25rem;
  color: #145df5;
  font-size: 0.9rem;
}

.content-card b em { font-style: normal; font-size: 1.3rem; line-height: 0.8; }
.content-card:hover b { color: #fff; }

.page-view#servicios-detalle {
  height: calc(100vh - var(--header-height));
  min-height: 0;
  overflow: hidden;
}
.page-view#servicios-detalle.services-inline-revealed { display: block !important; height: auto; min-height: calc(100vh - var(--header-height)); overflow: visible; animation: view-slide-up 420ms ease both; }

.services-bubbles {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(90px, 1fr));
  grid-template-rows: 1fr 1fr;
  align-items: center;
  justify-items: center;
  width: 100%;
  height: 100%;
  padding: 1rem 7vw 7rem;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(3, 38, 112, 0.62), rgba(5, 94, 211, 0.18)), url("/assets/services-background.png") center / cover no-repeat;
}

.services-bubbles::before,
.services-bubbles::after {
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  content: "";
  filter: blur(1px);
}

.services-bubbles::before { width: 10rem; height: 10rem; left: -3rem; bottom: 2rem; }
.services-bubbles::after { width: 7rem; height: 7rem; right: 3rem; top: 3rem; }

.service-bubble {
  position: relative;
  z-index: 1;
  width: clamp(170px, 15vw, 235px);
  aspect-ratio: 1;
  grid-column: span 2;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.62), rgba(235, 247, 255, 0.34) 48%, rgba(153, 204, 255, 0.2));
  border: 1px solid rgba(255, 255, 255, 0.58);
  box-shadow: inset 10px 10px 24px rgba(255, 255, 255, 0.5), inset -8px -10px 22px rgba(124, 177, 229, 0.1), 0 12px 25px rgba(91, 143, 199, 0.16);
  backdrop-filter: blur(7px);
  will-change: transform;
  transition: transform 260ms cubic-bezier(.2,.8,.2,1), box-shadow 260ms ease, filter 260ms ease;
  animation: bubble-float 8s ease-in-out infinite;
}

.service-bubble--one { grid-column: 1 / span 2; }
.service-bubble--two { grid-column: 3 / span 2; animation-delay: -1.3s; }
.service-bubble--three { grid-column: 5 / span 2; animation-delay: -2.6s; }
.service-bubble--four { grid-column: 2 / span 2; animation-delay: -3.8s; }
.service-bubble--five { grid-column: 4 / span 2; animation-delay: -0.7s; }

.service-bubble::after {
  position: absolute;
  inset: 0.45rem;
  border: 1px solid rgba(255, 255, 255, 0.66);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.service-bubble::before {
  position: absolute;
  top: 12%;
  left: 18%;
  width: 24%;
  height: 10%;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.58);
  content: "";
  filter: blur(1px);
  transform: rotate(-28deg);
}

.service-bubble a {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 100%;
  height: 100%;
  padding: 1rem;
  color: #073b91;
  text-align: center;
  text-decoration: none;
  text-shadow: 0 1px 3px rgba(255,255,255,.55);
}

.service-bubble__icon svg {
  width: clamp(2.2rem, 3.5vw, 3.25rem);
  height: clamp(2.2rem, 3.5vw, 3.25rem);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.service-bubble__icon text { fill: currentColor; stroke: none; font-size: 5px; font-weight: 800; }
.service-bubble h3 { margin: 0; color: inherit; font-size: clamp(0.95rem, 1.45vw, 1.3rem); line-height: 1.15; }
.service-bubble i { width: 2.25rem; height: 3px; margin-top: 0.35rem; border-radius: 999px; background: #116af3; }

.content-view .service-bubble h3 {
  margin: 0 !important;
  color: inherit;
  font-size: clamp(0.95rem, 1.45vw, 1.3rem);
  line-height: 1.15;
}

.service-bubble:hover,
.service-bubble:focus-within {
  animation: bubble-hover 1.2s ease-in-out infinite alternate;
  filter: brightness(1.04) saturate(1.08);
  box-shadow: inset 10px 10px 24px rgba(255, 255, 255, 0.62), inset -8px -10px 22px rgba(124, 177, 229, 0.14), 0 20px 36px rgba(40, 113, 209, 0.24);
}
.service-bubble:active { animation: bubble-pop 380ms ease both; }
.service-bubble.is-activating { animation: bubble-pop 320ms ease both; }

.service-bubbles-back { position: absolute; z-index: 4; right: 50%; bottom: 3.1rem; display: inline-flex !important; width: 52px; height: 38px; animation: none; transform: translateX(50%) rotate(180deg); }
.service-bubbles-back:hover { transform: translateX(50%) rotate(180deg) translateY(-3px); }

@keyframes bubble-float { 0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); } 25% { transform: translate3d(2px, -4px, 0) rotate(.35deg); } 50% { transform: translate3d(-1px, -9px, 0) rotate(-.45deg); } 75% { transform: translate3d(-3px, -3px, 0) rotate(.25deg); } }
@keyframes bubble-hover { from { transform: translate3d(0, -7px, 0) scale(1.025) rotate(-.5deg); } to { transform: translate3d(2px, -15px, 0) scale(1.06) rotate(.8deg); } }
@keyframes bubble-pop { 0% { transform: scale(1); } 35% { transform: scale(1.1); } 62% { transform: scale(.97); } 100% { transform: scale(1); } }

@media (prefers-reduced-motion: reduce) {
  .service-bubble { animation: none; }
}

.content-view__inner {
  width: min(1180px, calc(100% - 4rem));
  margin: 0 auto;
  padding: clamp(2rem, 5vh, 4rem) 0 5rem;
}

.content-view__inner--detail {
  max-width: 940px;
}

.content-view__inner--media {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}

.content-view__inner--media img {
  width: 100%;
  max-height: 56vh;
  object-fit: contain;
  border-radius: 1.2rem;
  box-shadow: 0 18px 45px rgba(3, 50, 117, 0.15);
}

.content-view__eyebrow {
  margin: 0 0 0.6rem;
  color: #1c91ef;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.25em;
}

.content-view h2 {
  margin: 0 0 1rem;
  color: #1447b8;
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
}

.content-view h3 {
  margin: 2rem 0 0.7rem;
  color: #1447b8;
  font-size: 1.35rem;
}

.content-view__lead,
.content-view__inner--detail > p:not(.content-view__eyebrow):not(.content-view__lead) {
  max-width: 820px;
  color: #263f68;
  font-size: 1.05rem;
  line-height: 1.65;
}

.content-grid {
  display: grid;
  gap: 1rem;
  margin-top: 2rem;
}

.content-grid--five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.content-grid--six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.content-card {
  display: flex;
  flex-direction: column;
  min-height: 190px;
  padding: 1.35rem;
  border: 1px solid rgba(20, 93, 245, 0.16);
  border-radius: 1rem;
  color: #183866;
  background: #fff;
  box-shadow: 0 10px 28px rgba(23, 78, 139, 0.08);
  text-decoration: none;
  transition: transform 180ms ease, color 180ms ease, background 180ms ease;
}

.content-card:hover,
.content-card:focus-visible {
  color: #fff;
  background: linear-gradient(145deg, #165395, #052d72);
  transform: translateY(-4px);
}

.content-card > span {
  color: #159eea;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.content-card h3 {
  margin: 1.25rem 0 0.55rem;
  color: inherit;
  font-size: 1.1rem;
  line-height: 1.2;
}

.content-card p {
  margin: auto 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
}

.content-card--static { cursor: default; }
.content-card--static:hover { transform: none; }

.content-back {
  display: inline-block;
  margin-bottom: 1.5rem;
  color: #145df5;
  font-weight: 700;
  text-decoration: none;
}

.content-list {
  display: grid;
  gap: 0.55rem;
  max-width: 760px;
  padding-left: 1.2rem;
  color: #263f68;
}

.service-details {
  max-width: 940px;
  margin-top: 1.25rem;
  border: 1px solid rgba(20, 93, 245, 0.16);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 12px 30px rgba(23, 78, 139, 0.08);
  overflow: hidden;
}
.service-details summary { cursor: pointer; padding: 0.85rem 1.1rem; color: #145df5; font-weight: 800; list-style: none; }
.service-details summary::-webkit-details-marker { display: none; }
.service-details summary::after { content: "⌄"; float: right; font-size: 1.15rem; transition: transform 180ms ease; }
.service-details[open] summary::after { transform: rotate(180deg); }
.service-details > div { padding: 0 1.1rem 1rem; }
.service-details__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.service-details h3 { margin-top: 1rem; font-size: 1.05rem; }
.service-details p, .service-details li { font-size: 0.92rem; line-height: 1.45; }
.service-details .content-list { gap: 0.3rem; margin-top: 0.45rem; }
.service-details .content-contact { margin: 0 1.1rem 1rem; font-size: 0.92rem; }

/* Shared, single-viewport layout for the five solution pages. */
.service-detail-view { height: calc(100vh - var(--header-height)); min-height: 0; overflow-y: auto; overflow-x: hidden; scroll-padding-bottom: 4.5rem; background: #fff; }
.service-detail-view { scrollbar-width: thin; scrollbar-color: #145df5 #e8f3fc; }
.service-detail-view::-webkit-scrollbar { width: 10px; }
.service-detail-view::-webkit-scrollbar-track { background: #e8f3fc; border-radius: 999px; }
.service-detail-view::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #20b9e8, #145df5); border: 2px solid #e8f3fc; border-radius: 999px; }
.service-detail-view::-webkit-scrollbar-thumb:hover { background: #0d45bb; }
.service-detail-view__hero {
  min-height: 22%;
  padding: clamp(1rem, 2.2vh, 1.45rem) max(1.25rem, calc((100% - 1240px) / 2));
  color: #fff;
  background: linear-gradient(115deg, #062f77 0%, #1458b8 52%, #2aa9e8 100%);
  position: relative;
  overflow: hidden;
}
.service-detail-view__hero::after { content: ""; position: absolute; width: 44vw; height: 44vw; right: -18vw; bottom: -30vw; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; box-shadow: 0 0 0 28px rgba(255,255,255,.05), 0 0 0 56px rgba(255,255,255,.035); animation: service-orbit 14s ease-in-out infinite alternate; }
.service-detail-view__hero .content-back, .service-detail-view__hero .content-view__eyebrow { display: none; }
.service-detail-view__hero .content-back { position: relative; z-index: 1; margin-bottom: .55rem; color: #fff; }
.service-detail-view__hero .content-view__eyebrow { position: relative; z-index: 1; color: #7ee3ff; }
.service-detail-view__hero h2 { position: relative; z-index: 1; margin-bottom: .35rem; color: #fff; font-size: clamp(2rem, 4vw, 3.5rem); }
.service-detail-view__hero > p:last-child { position: relative; z-index: 1; max-width: 700px; margin: 0; font-size: clamp(1rem, 1.8vw, 1.3rem); line-height: 1.45; }
.service-detail-view#servicio-ingenieria .service-detail-view__hero > p:last-child { max-width: none; font-size: 0; }
.service-detail-view#servicio-ingenieria .service-detail-view__hero > p:last-child::after { content: "Soluciones digitales conectadas"; display: block; font-size: clamp(.95rem, 1.35vw, 1.08rem); line-height: 1.35; }
.service-detail-view#servicio-ia .service-detail-view__hero > p:last-child,
.service-detail-view#servicio-datos .service-detail-view__hero > p:last-child,
.service-detail-view#servicio-sap .service-detail-view__hero > p:last-child,
.service-detail-view#servicio-integracion .service-detail-view__hero > p:last-child { max-width: none; font-size: 0; }
.service-detail-view#servicio-ia .service-detail-view__hero > p:last-child::after,
.service-detail-view#servicio-datos .service-detail-view__hero > p:last-child::after,
.service-detail-view#servicio-sap .service-detail-view__hero > p:last-child::after,
.service-detail-view#servicio-integracion .service-detail-view__hero > p:last-child::after { display: block; font-size: clamp(.95rem, 1.35vw, 1.08rem); line-height: 1.35; }
.service-detail-view#servicio-ia .service-detail-view__hero > p:last-child::after { content: "IA para transformar negocios"; }
.service-detail-view#servicio-datos .service-detail-view__hero > p:last-child::after { content: "Datos para decidir mejor"; }
.service-detail-view#servicio-sap .service-detail-view__hero > p:last-child::after { content: "SAP conectado e inteligente"; }
.service-detail-view#servicio-integracion .service-detail-view__hero > p:last-child::after { content: "Sistemas que trabajan juntos"; }
.service-detail-view__body { width: min(1080px, calc(100% - 4rem)); margin: 0 auto; padding: clamp(1rem, 2.5vh, 1.6rem) 0; position: relative; }
.service-detail-view__body::after { content: ""; position: fixed; z-index: -1; right: -20vw; bottom: -8rem; width: 70vw; height: 18rem; border-radius: 50%; background: rgba(221,240,255,.62); filter: blur(1px); pointer-events: none; }
.service-detail-view__lead { max-width: 900px; margin: 0 auto 1rem; color: #263f68; font-size: clamp(.9rem, 1.35vw, 1.05rem); line-height: 1.4; text-align: center; }
.service-detail-view__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 4rem); }
.service-detail-view__columns > div { padding: 1rem 1.1rem 1rem 4.25rem; border-left: 4px solid #20b9e8; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(246,251,255,.9)); border-radius: 0 .9rem .9rem 0; box-shadow: 0 10px 26px rgba(35,97,157,.08); position: relative; }
.service-detail-view__columns > div::before { content: ""; position: absolute; top: 1rem; left: 1.15rem; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; color: #145df5; background: #e8f4ff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z'/%3E%3Cpath d='m19.4 15 .1.1a2 2 0 0 1-2.8 2.8l-.1-.1a2 2 0 0 0-3.4 1.4v.1a2 2 0 0 1-4 0v-.1a2 2 0 0 0-3.4-1.4l-.1.1a2 2 0 0 1-2.8-2.8l.1-.1a2 2 0 0 0-1.4-3.4h-.1a2 2 0 0 1 0-4h.1a2 2 0 0 0 1.4-3.4l-.1-.1a2 2 0 0 1 2.8-2.8l.1.1A2 2 0 0 0 9.2 0h.1a2 2 0 0 1 4 0h.1a2 2 0 0 0 3.4 1.4l.1-.1a2 2 0 0 1 2.8 2.8l-.1.1a2 2 0 0 0 1.4 3.4h.1a2 2 0 0 1 0 4h-.1a2 2 0 0 0-1.4 3.4Z'/%3E%3C/svg%3E") center/58% no-repeat; }
.service-detail-view__columns > div:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 9 5-9 5-9-5 9-5Z'/%3E%3Cpath d='m3 12 9 5 9-5M3 17l9 5 9-5'/%3E%3C/svg%3E"); }
.service-detail-view__columns > div:first-child::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v2M12 19v2M3 12h2M19 12h2M5.64 5.64l1.42 1.42M16.94 16.94l1.42 1.42M18.36 5.64l-1.42 1.42M7.06 16.94l-1.42 1.42'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.service-detail-view__columns > div::before { display: none; }
.service-detail-view__columns h3 { position: relative; padding-left: 2.15rem; }
.service-detail-view__columns h3::before,
.service-detail-view__long-sections h3::before { content: ""; position: absolute; left: 0; top: 50%; width: 1.65rem; height: 1.65rem; transform: translateY(-50%); border-radius: 50%; background: #e8f4ff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/62% no-repeat; }
.service-detail-view__columns > div:first-child h3:nth-of-type(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 9 5-9 5-9-5 9-5Z'/%3E%3Cpath d='m3 12 9 5 9-5M3 17l9 5 9-5'/%3E%3C/svg%3E"); }
.service-detail-view__columns > div:nth-child(2) h3:first-of-type::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Cpath d='M9 2v2M15 2v2M9 20v2M15 20v2M20 9h2M20 15h2M2 9h2M2 15h2M9 9h6v6H9z'/%3E%3C/svg%3E"); }
.service-detail-view__columns > div:nth-child(2) h3:nth-of-type(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11a3 3 0 1 0 6 0c0-1.2-.7-2.2-1.7-2.7A3 3 0 0 0 9 11Zm1 4h4l1 3H9l1-3ZM12 2v2M4.9 4.9l1.4 1.4M2 12h2M19.1 4.9l-1.4 1.4M20 12h2'/%3E%3C/svg%3E"); }
.service-detail-view__long-sections h3 { position: relative; display: flex; align-items: center; gap: .7rem; padding-left: .7rem; }
.service-detail-view__long-sections h3::before { position: static; flex: 0 0 1.5rem; width: 1.5rem; height: 1.5rem; transform: none; }
.service-detail-view__long-sections h3:nth-of-type(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5M4 19h16M8 16v-5M12 16V8M16 16v-9'/%3E%3C/svg%3E"); }
.service-detail-view__long-sections h3:nth-of-type(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145df5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9 17 7M7 17l-2.1 2.1'/%3E%3C/svg%3E"); }
.service-detail-view__columns > div:nth-child(2) h3 + p { padding-bottom: .9rem; border-bottom: 1px solid #d7e8f5; }
.service-detail-view__columns h3 { margin: 0 0 .35rem; color: #1447b8; font-size: 1.05rem; }
.service-detail-view__columns p, .service-detail-view__columns li { font-size: .8rem; line-height: 1.3; }
.service-detail-view__columns .content-list { margin: 0; gap: .15rem; }
.service-detail-view__closing { margin: .8rem auto 0; color: #1447b8; font-weight: 700; text-align: center; font-size: .9rem; }
.service-detail-view .content-contact { display: none; }
.service-detail-view__body--long { padding-bottom: 3rem; }
.service-detail-view__body--long .service-detail-view__lead { text-align: left; max-width: none; }
.service-detail-view__long-sections { margin-top: 1.4rem; columns: 2 320px; column-gap: 2.5rem; padding-top: .4rem; border-top: 1px solid #dcecf8; }
.service-detail-view__long-sections h3:last-of-type { break-before: column; }
.service-detail-view__long-sections h3, .service-detail-view__long-sections p, .service-detail-view__long-sections ul { break-inside: avoid; }
.service-detail-view__long-sections h3 { margin: 1.1rem 0 .5rem; padding-left: .7rem; border-left: 3px solid #20b9e8; color: #1447b8; font-size: 1.1rem; }
.service-detail-view__long-sections p { color: #263f68; font-size: .9rem; line-height: 1.58; }
.service-detail-view__long-sections .content-list { margin-top: .4rem; }
@keyframes service-orbit { from { transform: translate3d(0, 0, 0) rotate(0deg); } to { transform: translate3d(-18px, 10px, 0) rotate(3deg); } }

@media (max-width: 860px) {
  .service-detail-view__hero { padding-inline: 1.5rem; }
  .service-detail-view__body { width: min(100% - 2rem, 640px); }
  .service-detail-view__columns { gap: .8rem; }
  .service-detail-view__columns > div { padding: .85rem .85rem .85rem 3.6rem; }
}

.content-contact {
  margin-top: 2rem;
  color: #263f68;
  font-size: 1.05rem;
  line-height: 1.8;
}

.content-contact a { color: #145df5; font-weight: 700; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 860px) {
  :root {
    --header-height: auto;
  }

  .site-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.75rem;
    padding-block: 1rem;
  }

  .site-nav {
    flex: none;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.75rem 1.25rem;
    margin-left: 0;
    padding-left: 0;
    left: 0;
  }

  .hero {
    min-height: 360px;
    background-position: center;
    background-size: auto 130%;
  }

  .content-grid--five,
  .content-grid--six,
  .content-grid--three,
  .content-view__inner--media { grid-template-columns: 1fr; }
  .service-details__grid { grid-template-columns: 1fr; gap: 0.25rem; }

  .content-view__inner { width: min(100% - 2rem, 640px); }

  .technology-hero__copy { width: min(100% - 2rem, 640px); }
  .technology-hero__copy > p:last-child { right: 1rem; }
  .about-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sector-list { grid-template-columns: 1fr; }
  .industry-copy { width: min(100% - 2rem, 640px); }
  .industry-capabilities ul { grid-template-columns: 1fr; gap: .45rem; }
  .careers-inner { width: min(100% - 2rem, 640px); }
  .careers-hero { margin-inline: -1rem; padding-inline: 1rem; }
  .careers-grid { grid-template-columns: 1fr; }
  .news-board { width: min(100% - 2rem, 640px); }
  .news-grid { grid-template-columns: 1fr; }
  .news-board__intro { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .hero {
    min-height: 23rem;
    background-position: 58% center;
    background-size: auto 130%;
  }

  .hero__content {
    place-items: end start;
    padding-bottom: 3rem;
  }

  .hero h1 {
    font-size: clamp(2.2rem, 11vw, 3.5rem);
  }

  .hero h1 span:last-child {
    padding-left: 1.5rem;
  }

  .intro p {
    font-size: 17px;
  }
}

@media (max-width: 1100px) {
  .site-nav {
    gap: 24px;
  }

  .site-nav a {
    font-size: 14px;
  }

  .brand {
    width: 190px;
  }
}

/* Responsive and interaction polish */
.sector-list a { grid-template-columns: 1fr; }
.sector-list a > span,
.sector-list a > b { display: none !important; }
.sector-list a > div { min-width: 0; }
.news-card__title-link { display: block; margin: 0 0 .55rem; color: #1447b8; font-size: 1.15rem; font-weight: 800; line-height: 1.25; text-decoration: none; }
.news-card__title-link:hover,
.news-card__title-link:focus-visible { color: #145df5; text-decoration: underline; text-underline-offset: .16em; }
.news-card p { white-space: pre-line; }
.service-detail-nav { display: flex; justify-content: space-between; gap: 1rem; width: min(1080px, calc(100% - 4rem)); margin: 1.5rem auto 0; padding: .35rem 0 4.5rem; }
.service-detail-nav__button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.35rem; padding: .45rem .9rem; border: 1px solid rgba(20,93,245,.18); border-radius: 999px; color: #145df5; background: rgba(255,255,255,.9); box-shadow: 0 6px 18px rgba(35,97,157,.1); font-size: .82rem; font-weight: 800; text-decoration: none; transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease; }
.service-detail-nav__button:hover,
.service-detail-nav__button:focus-visible { transform: translateY(-2px); background: #fff; box-shadow: 0 10px 22px rgba(35,97,157,.16); }

@media (max-width: 860px) {
  :root { --header-height: 124px; }
  html, body { overflow-x: hidden; }
  body { overflow-y: auto; }
  .site-header { min-height: var(--header-height); padding: .8rem 1rem .7rem; gap: .6rem; }
  .brand { width: 138px; }
  .site-nav { width: 100%; margin: 0; gap: .45rem .95rem; overflow-x: auto; padding: .15rem 0 .25rem; scrollbar-width: none; }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav a { font-size: .82rem; }
  .site-nav a:hover::after, .site-nav a:focus-visible::after, .site-nav a.is-active::after { bottom: -5px; }
  .page-view.is-active,
  .page-view--home,
  .page-view--about,
  .content-view,
  .service-detail-view { height: auto; min-height: calc(100svh - var(--header-height)); max-height: none; overflow: visible; }
  .page-view--home .intro { min-height: 0; padding-bottom: 2.5rem; }
  .hero, .technology-hero, .sector-hero, .news-hero, .careers-hero, .service-detail-view__hero { height: 220px; min-height: 220px; }
  .hero__content, .technology-hero__copy { width: min(100% - 2rem, 640px); }
  .hero h1, .technology-hero h2, .sector-hero h2, .news-hero h2, .careers-hero h2, .service-detail-view__hero h2 { font-size: clamp(2rem, 9vw, 3rem) !important; }
  .technology-intro { height: auto; min-height: 0; padding: 2rem 1rem 5rem; }
  .technology-intro p { max-width: 42rem; }
  .content-view__inner, .sector-content, .news-board, .industry-copy, .careers-inner { width: min(100% - 2rem, 640px); }
  .content-view__inner--detail { padding-bottom: 5rem; }
  .service-detail-view__hero { padding: 2rem 1rem; }
  .service-detail-view__body { width: min(100% - 2rem, 640px); padding-bottom: 1rem; }
  .service-detail-view__columns { grid-template-columns: 1fr; }
  .service-detail-view__long-sections { columns: 1; column-count: 1; column-width: auto; }
  .service-detail-view__long-sections h3:last-of-type { break-before: auto !important; }
  .service-detail-nav { width: min(100% - 2rem, 640px); margin-top: 1rem; padding-bottom: 5rem; }
  .service-detail-nav__button { font-size: .76rem; }
  .news-grid { grid-template-columns: 1fr; }
  .news-card { height: 430px; }
  .news-card.is-expanded { height: auto; }
  .site-footer { min-height: 26px; padding: .2rem .5rem; gap: .7rem; font-size: .62rem; }

  /* The bubble selector is a real mobile page, so it must grow with its content. */
  .page-view#servicios,
  .page-view#servicios-detalle,
  .page-view--home,
  .page-view--about,
  .content-view,
  .service-detail-view { height: auto !important; max-height: none !important; overflow: visible !important; }
  main, .page-view, .content-view, .service-detail-view,
  .service-detail-view__hero, .service-detail-view__body { max-width: 100%; overflow-x: hidden; }
  .service-detail-view__hero::after { right: 0; }
  .services-bubbles { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; align-content: start; width: 100%; height: auto; min-height: calc(100svh - var(--header-height)); gap: .55rem .45rem; padding: .8rem .65rem 4.5rem; overflow: visible; }
  .service-bubble { grid-column: auto !important; justify-self: center; width: min(31vw, 128px); min-width: 0; }
  .service-bubble:nth-of-type(5) { grid-column: 1 / -1 !important; }
  .service-bubble a { padding: .45rem; }
  .service-bubble__icon svg { width: 1.8rem; height: 1.8rem; }
  .service-bubble h3, .content-view .service-bubble h3 { font-size: .78rem; line-height: 1.12; }
  .service-bubbles-back { position: static; grid-column: 1 / -1; justify-self: center; width: 40px; height: 34px; margin-top: .2rem; transform: rotate(180deg); }
  .service-bubbles-back:hover { transform: rotate(180deg) translateY(-3px); }
}

@media (max-width: 560px) {
  :root { --header-height: 116px; }
  .site-header { padding-inline: .8rem; }
  .brand { width: 124px; }
  .site-nav { gap: .35rem .75rem; }
  .site-nav a { font-size: .76rem; }
  .hero, .technology-hero, .sector-hero, .news-hero, .careers-hero, .service-detail-view__hero { height: 190px; min-height: 190px; }
  .hero__content { padding-bottom: 2rem; }
  .hero h1, .technology-hero h2, .sector-hero h2, .news-hero h2, .careers-hero h2, .service-detail-view__hero h2 { font-size: clamp(1.8rem, 10vw, 2.45rem) !important; }
  .content-view__lead, .sector-content__lead { font-size: .98rem; }
  .news-card { height: 410px; padding-inline: 1rem; }
  .news-card::before { height: 125px; min-height: 125px; flex-basis: 125px; margin-inline: -1rem; }
  .news-card__title-link { font-size: 1.05rem; }
  .news-card p { font-size: .87rem; }
  .service-detail-nav { gap: .5rem; }
  .service-detail-nav__button { padding-inline: .7rem; }
}

/* Mobile pages keep their own scroll area below the fixed header. */
@media (max-width: 860px) {
  .page-view.content-view:not(#servicios):not(#servicios-detalle):not(.service-detail-view) {
    height: calc(100svh - var(--header-height)) !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
}

@media (max-width: 860px) {
  .page-view--home { height: calc(100svh - var(--header-height)) !important; min-height: 0; overflow-y: auto !important; overflow-x: hidden; }
  .page-view--about { height: calc(100svh - var(--header-height)) !important; min-height: 0 !important; overflow-y: auto !important; overflow-x: hidden !important; }
  .page-view.content-view:not(#servicios):not(#servicios-detalle):not(.service-detail-view) { height: calc(100svh - var(--header-height)) !important; min-height: 0; overflow-y: auto !important; overflow-x: hidden; }
  .technology-next { margin-top: .75rem; }
  .careers-hero, .news-hero, .sector-hero, .technology-hero {
    min-height: 220px;
    background-position: center center;
    background-size: cover;
  }
  .technology-hero, .news-hero, .careers-hero { background-size: auto 150%; }
  #contacto .content-view__inner--media::before { background-size: auto 150%; }
  .site-nav {
    flex-wrap: nowrap !important;
    align-items: center;
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
  }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav a { flex: 0 0 auto; }
  .site-header { position: relative; }
  .language-toggle { position: absolute; top: .72rem; right: .8rem; margin-left: 0; }
  .site-nav { padding-right: 4.8rem; }
}

/* Sectors and Join Us use the document scroll on phones so the page can always
   move naturally in both directions, including after reaching the footer. */
@media (max-width: 860px) {
  .page-view#sectores,
  .page-view#oportunidades { height: auto !important; min-height: calc(100svh - var(--header-height)); max-height: none !important; overflow: visible !important; }
}
