@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');

/* ========================================
   DESIGN TOKENS
   ======================================== */
:root {
    --primary-blue-300: #9ccfff;
    --primary-blue-500: #0c60d0;
    --primary-blue-50: rgba(156, 207, 255, 0.2);
    --base-dark: #0f1011;
    --base-light: #ffffff;
    --scale-grey-900: #1c1c21;
    --scale-grey-500: #4c4949;
    --scale-grey-200: #cccccc;
    --dark-5: rgba(12, 11, 11, 0.05);
    --font-display: 'Rinter', sans-serif;
    --font-body: 'Inter', sans-serif;
    --padding-desktop: 64px;
}

/* ========================================
   RESET
   ======================================== */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    font-family: var(--font-body);
    background-color: var(--base-dark);
    color: var(--base-light);
    line-height: 1.2;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: 1440px;
    margin: 0 auto;
}

a {
    text-decoration: none;
    color: inherit;
}

img {
    max-width: 100%;
    display: block;
}

button {
    font-family: var(--font-body);
    cursor: pointer;
    border: none;
    background: none;
    color: inherit;
}

/* ========================================
   SHARED BUTTON STYLES
   ======================================== */
.btn-primary {
    background-color: var(--primary-blue-500);
    color: var(--base-light);
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 0;
    font-weight: 400;
    padding: 12px 16px;
    border-radius: 4px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    text-decoration: none;
}

.btn-primary:hover {
    background-color: var(--primary-blue-300);
    color: var(--base-dark);
}

.btn-primary:hover .btn__icon svg path {
    fill: var(--base-dark);
}

.btn-outline {
    background-color: var(--base-dark);
    border: 1px solid var(--base-light);
    color: var(--base-light);
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    padding: 12px 16px;
    border-radius: 4px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    text-decoration: none;
}

.btn-outline:hover {
    background-color: var(--primary-blue-300);
    border-color: var(--primary-blue-300);
    color: var(--base-dark);
}

.btn-outline:hover .btn__icon svg path {
    fill: var(--base-dark);
}

.btn__icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn__icon svg path {
    transition: fill 0.2s ease;
}

.btn__icon svg {
	max-width: 14px;
    width: 100%;
    height: 100%;
}

/* ========================================
   ANNOUNCEMENT BAR (node 2813:7473)
   ======================================== */
.announcement-bar {
    position: relative;
    background-color: var(--primary-blue-300);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}

.announcement-bar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 2px 64px;
}

.announcement-bar__content {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
}

.announcement-bar__text {
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 120%;
    font-weight: 400;
    color: var(--base-dark);
}

.announcement-bar__divider {
    width: 1px;
    height: 16px;
    background-color: var(--base-dark);
    flex-shrink: 0;
}

.announcement-bar__link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-dark);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.announcement-bar__link:hover {
    opacity: 0.8;
}

.announcement-bar__link svg {
    flex-shrink: 0;
}

.announcement-bar__close {
    background: none;
    border: none;
    padding: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease;
}

.announcement-bar__close:hover {
    opacity: 0.7;
}

.announcement-bar.hidden {
    display: none;
}

/* ========================================
   MAIN HEADER (node 2813:7474)
   ======================================== */
.header {
    position: sticky;
    top: 0;
    z-index: 50;
    background-color: var(--base-light);
    border-bottom: 1px solid var(--scale-grey-500);
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    display: flex;
    justify-content: center;
}

.header__container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 16px 64px;
}

.header__logo {
    width: 224px;
    height: 48px;
    flex-shrink: 0;
}

.header__logo svg {
    width: 100%;
    height: 100%;
}

.header__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex: 1 0 0;
    min-height: 1px;
    min-width: 1px;
}

.header__nav-item {
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 0;
    font-weight: 400;
    color: var(--base-dark);
    padding: 12px 16px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    text-align: center;
    transition: background-color 0.2s ease;
    cursor: pointer;
    border-radius: 4px;
    text-decoration: none;
}

.header__nav-item:hover {
    background-color: var(--primary-blue-50);
}

.header__nav-item--active {
    background-color: var(--primary-blue-50);
}

.header__cta {
    flex-shrink: 0;
}

.header__cta .btn__icon {
    width: 15px;
    height: 15px;
}

/* Hamburger button */
.header__burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 48px;
    background-color: var(--primary-blue-500);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    padding: 12px 16px;
    flex-shrink: 0;
}

.header__burger span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--scale-grey-900);
    transition: all 0.3s ease;
    border-radius: 2px;
}

.header__burger--open span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.header__burger--open span:nth-child(2) {
    opacity: 0;
}

.header__burger--open span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

.header__cta .btn-primary {
    width: 196px;
}

/* ========================================
   MOBILE MENU
   ======================================== */
.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--base-dark);
    z-index: 100;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.mobile-menu.active {
    transform: translateX(0);
}

.mobile-menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--scale-grey-500);
}

.mobile-menu__logo {
    width: 140px;
    height: auto;
}

.mobile-menu__logo svg {
    width: 100%;
    height: auto;
}

.mobile-menu__close {
    background: none;
    border: none;
    padding: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mobile-menu__close svg {
    width: 32px;
    height: 32px;
}

.mobile-menu__nav {
    display: flex;
    flex-direction: column;
    padding: 0;
    flex: 1;
}

.mobile-menu__link {
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    padding: 20px;
    border-bottom: 1px solid var(--scale-grey-500);
    text-decoration: none;
    transition: background-color 0.2s ease;
}

.mobile-menu__link:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

.mobile-menu__link--active {
    background-color: var(--primary-blue-50);
    color: var(--primary-blue-300);
}

.mobile-menu__cta {
    padding: 0;
    border-top: none;
}

.mobile-menu__cta .btn-primary {
    width: 100%;
    border-radius: 0;
    justify-content: center;
    padding: 20px;
    border-bottom: 1px solid var(--scale-grey-500);
}

body.menu-open {
    overflow: hidden;
}

/* ========================================
   HERO  (node 2813:7367)
   ======================================== */
.hero {
    display: flex;
    gap: 192px;
    align-items: flex-start;
    justify-content: center;
    padding: 112px 64px 12px 64px;
    height: 817px;
    overflow: hidden;
}

.hero__left {
    flex: 0 1 554px;
    min-width: 280px;
    display: flex;
    flex-direction: column;
    gap: 38px;
    justify-content: center;
    align-self: stretch;
}

.hero__texts {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.hero__title {
    font-family: var(--font-display);
    font-size: clamp(32px, 20.73px + 3vw, 64px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.hero__subtitle {
    font-family: var(--font-body);
    font-size: clamp(15px, 13.94px + 0.28vw, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: #cccccc;
}

.hero__subtitle strong {
    font-weight: 700;
}

.hero__ctas {
    display: flex;
    gap: 27px;
    align-items: center;
}

.hero__images {
    display: flex;
    flex: 1 0 0;
    gap: 29px;
    align-items: stretch;
    align-self: stretch;
    min-width: 400px;
}

.hero__col {
    flex: 1 0 0;
    min-width: 0;
    position: relative;
    overflow: hidden;
}

.hero__col::before,
.hero__col::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 100px;
    z-index: 2;
    pointer-events: none;
}

.hero__col::before {
    top: 0;
    background: linear-gradient(180deg, #0f1011 0%, rgba(15, 16, 17, 0) 100%);
}

.hero__col::after {
    bottom: 0;
    background: linear-gradient(0deg, #0f1011 0%, rgba(15, 16, 17, 0) 100%);
}

.hero__col-track {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.hero__col-track--up {
    animation: hero-scroll-up 25s linear infinite;
}

.hero__col-track--down {
    animation: hero-scroll-down 25s linear infinite;
}

@keyframes hero-scroll-up {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-50%);
    }
}

@keyframes hero-scroll-down {
    0% {
        transform: translateY(-50%);
    }

    100% {
        transform: translateY(0);
    }
}

.hero__img-wrap {
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    width: 100%;
    flex-shrink: 0;
}

.hero__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hero__img-wrap--h290 {
    height: 290px;
}

/* ========================================
   CLIENTES LABEL
   ======================================== */
.clientes-label {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--base-light);
    padding: 0 clamp(20px, 3.06vw + 12px, 64px);
    width: 100%;
    text-align: start;
    margin-top: 12px;
}

.clientes-label--nosotros {
    font-family: var(--font-display);
    font-size: 24px;
    text-align: center;
}

/* ========================================
   CLIENTES LOGOS  (node 2800:7442)
   ======================================== */
.clientes-logos {
    background-color: transparent;
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 128px;
    display: flex;
    align-items: center;
    margin-top: 21px;
    margin-bottom: 64px;
    padding: 0;
}

.clientes-logos::before,
.clientes-logos::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 150px;
    z-index: 2;
    pointer-events: none;
}

.clientes-logos::before {
    left: 0;
    background: linear-gradient(90deg, #0f1011 0%, rgba(15, 16, 17, 0) 100%);
}

.clientes-logos::after {
    right: 0;
    background: linear-gradient(-90deg, #0f1011 0%, rgba(15, 16, 17, 0) 100%);
}

.clientes-logos__track {
    display: flex;
    gap: clamp(20px, 1.5vw + 16px, 42px);
    align-items: center;
    width: max-content;
    animation: clientes-scroll 40s linear infinite;
}

.clientes-logos:hover .clientes-logos__track {
    animation-play-state: paused;
}

.clientes-logos__item {
    width: clamp(120px, 5.4vw + 105px, 198px);
    height: clamp(50px, 2.08vw + 45px, 80px);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.clientes-logos__item img {
    max-height: clamp(42px, 2.08vw + 37px, 72px);
    max-width: clamp(110px, 5.56vw + 95px, 190px);
    object-fit: contain;
    filter: brightness(0) invert(1);
}

@keyframes clientes-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* ========================================
   SECTION HEADER  (node 2051:3507)
   ======================================== */
.section-header {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: flex-start;
    padding: clamp(64px, 4.44vw + 52px, 128px) clamp(20px, 3.06vw + 12px, 64px) 32px;
    width: 100%;
}

.section-header__label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--base-light);
}

.section-header__content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    row-gap: 107px;
    width: 100%;
}

.section-header__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    max-width: 417px;
    width: 100%;
}

.section-header__title.long {
	max-width: 100%;
}

.section-header__desc {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    max-width: 460px;
    width: 100%;
}

.section-header__cta-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
}

.section-header__cta-wrap .btn-primary {
    width: 100%;
}

.section-header__helper {
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    text-align: center;
    width: 273px;
}

/* ========================================
   DATA NUMBERS  (node 2051:3721)
   ======================================== */
.data-numbers {
    display: flex;
    gap: 64px;
    align-items: center;
    padding: 32px clamp(20px, 3.06vw + 12px, 64px) 64px;
    width: 100%;
}

.data-number {
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    min-height: 80px;
}

.data-number__value {
    font-family: var(--font-display);
    font-size: clamp(28px, 1.39vw + 24px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--primary-blue-300);
}

.data-number__label {
    font-family: var(--font-body);
    font-size: clamp(14px, 0.28vw + 13px, 18px);
    line-height: 1.2;
    font-weight: 700;
    color: var(--scale-grey-200);
}

.data-numbers__divider {
    width: 0;
    height: 150px;
    flex-shrink: 0;
    position: relative;
}

.data-numbers__divider::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 100%;
    background-color: var(--scale-grey-500);
}

/* ========================================
   ONE HEADER  (node 2051:3966)
   ======================================== */
.one-header {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 64px clamp(20px, 3.06vw + 12px, 64px) 0;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.one-header--main {
    padding: clamp(64px, 4.44vw + 52px, 128px) clamp(20px, 3.06vw + 12px, 64px) 16px;
    margin-bottom: 32px;
}

.one-header__icon {
    width: clamp(32px, 1.11vw + 29px, 48px);
    height: clamp(32px, 1.11vw + 29px, 48px);
    flex-shrink: 0;
}

.one-header__icon img {
    width: 100%;
    height: 100%;
}

.one-header__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.one-header--main .one-header__title {
    font-size: clamp(22px, 2.92vw + 16px, 64px);
}

/* ========================================
   ONE CARDS  (node 2057:8694)
   ======================================== */
.one-cards {
    background-color: var(--base-dark);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    padding: 0;
    margin: 0 clamp(20px, 3.06vw + 12px, 64px);
}

/* -- One Intro Card -- */
.one-intro {
    background-color: var(--scale-grey-900);
    border-radius: 4px;
    padding: clamp(20px, 1.94vw + 15px, 48px) clamp(16px, 1.11vw + 13px, 32px);
    display: flex;
    align-items: flex-start;
}

.one-intro__body {
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.one-intro__top {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.one-intro__label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--base-light);
}

.one-intro__headline {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--primary-blue-300);
}

.one-intro__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
}

.one-intro__img {
    width: 516px;
    height: 391px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 4px;
}

.one-intro__img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.one-intro__text-block {
    width: 453px;
    display: flex;
    flex-direction: column;
    gap: 22px;
    align-self: flex-start;
}

.one-intro__subtitle {
    font-family: var(--font-display);
    font-size: clamp(22px, 0.69vw + 20px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.one-intro__desc {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
}

.one-intro__bottom {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.one-intro__stat {
    width: 504px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 16px;
    flex-shrink: 0;
}

.one-intro__stat-label {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    text-align: left;
}

.one-intro__stat-row {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.one-intro__stat-value {
    font-family: var(--font-display);
    font-size: clamp(24px, 0.56vw + 22px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    text-align: left;
    white-space: nowrap;
}

.one-intro__stat-badge {
    background-color: rgba(0, 160, 53, 0.2);
    border-radius: 100px;
    padding: 4px;
    display: flex;
    align-items: center;
}

.one-intro__stat-badge svg {
    width: 24px;
    height: 24px;
}

.one-intro__project {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: flex-start;
    width: 459px;
    flex-shrink: 0;
    padding-top: 4px;
}

.one-intro__tags {
    display: flex;
    gap: 16px;
    align-items: flex-end;
    height: 77px;
}

.one-intro__tags-divider {
    width: 1px;
    height: 75px;
    background-color: var(--scale-grey-500);
    flex-shrink: 0;
}

.one-intro__tags-text {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--scale-grey-200);
    white-space: nowrap;
    line-height: 1.8;
}

/* -- Banners inside One Cards -- */
.one-banner {
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    width: 100%;
}

.one-banner__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 4px;
}

.one-banner__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
}

.one-banner__overlay {
    position: absolute;
    inset: 0;
    border-radius: 4px;
}

.one-banner--beneficios {
    padding: clamp(16px, 1.11vw + 13px, 32px);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
    min-height: 400px;
    margin-bottom: 32px;
}

.one-banner--beneficios .one-banner__overlay {
    background-color: rgba(0, 0, 0, 0.71);
}

.one-banner__content-top {
    display: flex;
    align-items: center;
    padding: clamp(4px, 0.42vw + 3px, 10px);
    position: relative;
    z-index: 1;
    width: 100%;
}

.one-banner__content-center {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(4px, 0.42vw + 3px, 10px);
    position: relative;
    z-index: 1;
    width: 100%;
}

.one-banner__content-center svg {
    width: clamp(48px, 3.33vw + 40px, 96px);
    height: clamp(48px, 3.33vw + 40px, 96px);
}

.one-banner__content-bottom {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: clamp(4px, 0.42vw + 3px, 10px);
    position: relative;
    z-index: 1;
    width: 100%;
}

.one-banner__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    max-width: 441px;
    width: 100%;
}

.one-banner__subtitle-right {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    max-width: 477px;
    width: 100%;
    padding: clamp(4px, 0.42vw + 3px, 10px);
    align-self: flex-end;
}

/* -- Rentabilidad Banner -- */
.one-banner--rentabilidad {
    padding: clamp(32px, 2.22vw + 26px, 64px) clamp(16px, 1.11vw + 13px, 32px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 451px;
    margin-bottom: 32px;
}

.one-banner--rentabilidad .one-banner__overlay {
    background-color: rgba(0, 0, 0, 0.61);
}

.one-banner__content {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
    text-align: center;
    position: relative;
    z-index: 1;
    width: 100%;
}

.one-banner__heading {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.one-banner__heading-accent {
    color: var(--primary-blue-300);
}

.one-banner__desc {
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

/* -- Module Cards -- */
.one-modules {
    width: 100%;
    padding-top: 64px;
    padding-bottom: 64px;
}

.one-modules__header {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 24px;
}

.one-modules__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    max-width: 530px;
    width: 100%;
}

.one-modules__desc {
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
    width: 100%;
}

.one-modules__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.module-card {
    background-color: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    padding: clamp(16px, 0.56vw + 14px, 24px);
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    min-height: 134px;
}

.module-card__header {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    width: 100%;
}

.module-card__icon {
    background-color: var(--primary-blue-50);
    border-radius: 100px;
    width: clamp(24px, 0.56vw + 22px, 32px);
    height: clamp(24px, 0.56vw + 22px, 32px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.module-card__icon svg {
    width: clamp(14px, 0.28vw + 13px, 18px);
    height: clamp(14px, 0.28vw + 13px, 18px);
}

.module-card__name {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 17px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
    flex: 1 0 0;
    min-width: 0;
}

.module-card__desc {
    font-family: var(--font-body);
    font-size: clamp(14px, 0.14vw + 13px, 16px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

/* ========================================
   CAPABILITIES GRID  (node 3373:14756)
   ======================================== */
.one-capabilities {
    width: 100%;
    padding-top: 64px;
    padding-bottom: 64px;
}

.one-capabilities__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-bottom: 24px;
}

.one-capabilities__title {
    font-family: var(--font-display);
    font-size: clamp(28px, 2.78vw + 21px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    max-width: 530px;
    flex: 1 1 0;
    min-width: 0;
}

.one-capabilities__logo {
    height: clamp(48px, 2.78vw + 40px, 88px);
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.one-capabilities__grid {
    padding-top: 16px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

/* -- Capability Cards -- */
.cap-card {
    background-color: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cap-card__top {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.cap-card__icon-wrap {
    background-color: var(--primary-blue-50);
    border-radius: 100px;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 4px;
}

.cap-card__icon-wrap svg {
    width: 22px;
    height: 22px;
}

.cap-card__title {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
    flex: 1 0 0;
    min-width: 0;
}

.cap-card__desc {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.cap-card__img {
    width: 100%;
    aspect-ratio: 426 / 273;
    border-radius: 4px;
    overflow: hidden;
    margin-top: auto;
}

.cap-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ========================================
   PORTFOLIO HEADER  (node 2056:6141)
   Reuses .one-header with padding modifier
   ======================================== */
.one-header--portfolio {
    padding: 64px clamp(20px, 3.06vw + 12px, 64px) 64px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 0;
}

.one-header__content {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
    padding-bottom: 0;
}

.one-header--portfolio .one-header__title {
    max-width: 765px;
}

.one-header__desc {
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
    max-width: 765px;
}

/* ========================================
   PORTFOLIO CARDS  (node 2056:6166)
   ======================================== */
.portfolio-cards {
    display: flex;
    gap: 16px;
    align-items: stretch;
    padding: 0 clamp(20px, 3.06vw + 12px, 64px) 64px;
    width: 100%;
}

.portfolio-card {
    background-color: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    position: relative;
    cursor: pointer;
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    padding: 24px;
    min-width: 0;
    min-height: 357px;
}

.portfolio-card__header {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    width: 100%;
}

.portfolio-card__icon {
    background-color: var(--primary-blue-50);
    border-radius: 100px;
    width: clamp(40px, 1.67vw + 36px, 64px);
    height: clamp(40px, 1.67vw + 36px, 64px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.portfolio-card__icon svg {
    width: 35px;
    height: 35px;
}

.portfolio-card__title {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    text-align: center;
    width: 100%;
}

.portfolio-card__desc {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
    flex: 1;
    text-align: start;
}

.portfolio-card .btn-outline {
    width: 100%;
}

.portfolio-card .btn-outline::after {
    content: '';
    position: absolute;
    inset: 0;
}

.portfolio-card:hover .btn-outline {
    background-color: var(--primary-blue-300);
    border-color: var(--primary-blue-300);
    color: var(--base-dark);
}

.portfolio-card:hover .btn-outline .btn__icon svg path {
    fill: var(--base-dark);
}

/* ========================================
   LINE QUOTE  (node 2984:16378)
   ======================================== */
.line-quote {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px 10px;
    width: 994px;
    max-width: 100%;
    margin: 0 auto;
    border-top: 1px solid var(--scale-grey-500);
    border-bottom: 1px solid var(--scale-grey-500);
}

.line-quote__text {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
    text-align: center;
    width: 885px;
    max-width: 100%;
}

.line-quote--no-border {
    border: none;
    width: 100%;
    padding: 64px clamp(20px, 3.06vw + 12px, 64px);
    margin: 0;
}

/* ========================================
   SECTION HEADER - CASOS  (node 2057:6794)
   Reuses .section-header with --sm modifier
   ======================================== */
.section-header--sm {
    padding-top: 64px;
    padding-bottom: 32px;
    margin-bottom: 0;
}

/* ========================================
   CASOS CARDS  (node 2813:7437)
   ======================================== */
.casos-cards {
    width: 100%;
    overflow: hidden;
    padding: 64px 0 128px clamp(20px, 3.06vw + 12px, 64px);
    position: relative;
}

.casos-cards__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.2s ease;
    pointer-events: none;
}

.casos-cards:hover .casos-cards__nav {
    opacity: 1;
    pointer-events: auto;
}

.casos-cards__nav:hover {
    transform: translateY(-50%) scale(1.1);
}

.casos-cards__nav--prev {
    left: 80px;
    background-color: rgba(28, 28, 33, 0.85);
    border-radius: 50%;
}

.casos-cards__nav--prev:hover {
    background-color: rgba(28, 28, 33, 0.95);
}

.casos-cards__nav--next {
    right: 16px;
    background-color: rgba(28, 28, 33, 0.85);
    border-radius: 50%;
}

.casos-cards__nav--next:hover {
    background-color: rgba(28, 28, 33, 0.95);
}

.casos-cards__nav--hidden {
    opacity: 0 !important;
    pointer-events: none !important;
}

.casos-cards__nav svg {
    width: 48px;
    height: 48px;
    stroke: white;
    stroke-width: 3;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.5));
}

.casos-cards__track {
    display: flex;
    gap: 32px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.casos-cards__track::-webkit-scrollbar {
    display: none;
}

.caso-card {
    background-color: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
    width: 517px;
    display: flex;
    flex-direction: column;
    scroll-snap-align: start;
    text-decoration: none;
    color: inherit;
    transition: all 0.2s ease;
}

.caso-card:hover {
    transform: translateY(-4px);
    background-color: var(--base-dark, #0F1011);
    border-color: #0C60D0;
	transition: all 0.2s ease;
}

.caso-card__img-wrap {
    width: 100%;
    height: 255px;
    overflow: hidden;
    flex-shrink: 0;
}

.caso-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.caso-card__body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 24px;
    margin-top: clamp(16px, 1.11vw + 13px, 32px);
    flex: 1;
    min-height: 375px;
}

.caso-card__top {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.caso-card__tag {
    background-color: var(--primary-blue-300);
    color: var(--base-dark);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    text-align: center;
    padding: 10px;
    border-radius: 4px;
    display: inline-block;
    width: fit-content;
    white-space: nowrap;
}

.caso-card__title {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 17px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    text-decoration: underline;
    width: 469px;
    max-width: 100%;
}

.caso-card__desc {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
    width: 469px;
    max-width: 100%;
}

.caso-card__arrow {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
}

.caso-card__arrow svg {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
}

/* ========================================
   TESTIMONIALS HEADER  (node 2909:9588)
   Reuses .one-header with --testimonials modifier
   ======================================== */
.one-header--testimonials {
    padding-top: 64px;
    padding-bottom: 56px;
    padding-left: clamp(20px, 3.06vw + 12px, 64px);
    padding-right: clamp(20px, 3.06vw + 12px, 64px);
}

.one-header--testimonials .one-header__title {
    max-width: 100%;
}

.one-header--testimonials .one-header__desc {
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.2;
    color: var(--scale-grey-200);
}

/* ========================================
   TESTIMONIAL CARDS  (node 2909:9599)
   ======================================== */
.testimonial-cards {
    display: flex;
    gap: 64px;
    align-items: stretch;
    padding: 0 clamp(20px, 3.06vw + 12px, 64px);
    width: 100%;
    margin-bottom: 64px;
}

.testimonial-card {
    background-color: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 24px 32px 32px;
}

.testimonial-card__quote {
    width: 100%;
}

.testimonial-card__quote p {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.testimonial-card__quote strong {
    font-weight: 700;
}

.testimonial-card__author {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.testimonial-card__name {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 17px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.testimonial-card__role {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--primary-blue-300);
}

/* ========================================
   BANNER LAB  (node 2057:7236)
   ======================================== */
.banner-lab {
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 32px;
    margin: 0 clamp(20px, 3.06vw + 12px, 64px);
    min-height: 332px;
    margin-bottom: clamp(64px, 4.17vw + 56px, 124px);
}

.banner-lab__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 4px;
}

.banner-lab__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
}

.banner-lab__bg-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.63);
    border-radius: 4px;
}

.banner-lab__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    max-width: 441px;
    width: 100%;
    position: relative;
    z-index: 1;
    padding: 10px;
}

.banner-lab__subtitle-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    padding: 10px;
    position: relative;
    z-index: 1;
}

.banner-lab__subtitle {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    max-width: 477px;
    width: 100%;
}

.banner-lab__bottom {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 308px;
    width: 100%;
    padding: 10px;
    position: relative;
    z-index: 1;
}

.banner-lab__desc {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    max-width: 441px;
    width: 100%;
    flex-shrink: 0;
}

/* ========================================
   PORQUE TELEMINING  (node 2057:7353)
   ======================================== */
.porque {
    display: flex;
    gap: 112px;
    align-items: flex-start;
    padding: clamp(80px, 5.56vw + 68px, 160px) clamp(20px, 7.5vw + 12px, 128px) clamp(64px, 4.44vw + 52px, 128px);
    width: 100%;
}

.porque__left {
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: flex-start;
    min-width: 0;
}

.porque__label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--base-light);
}

.porque__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.porque__desc {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.porque__right {
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: flex-end;
    min-width: 0;
}

.porque__item {
    display: flex;
    gap: 32px;
    align-items: flex-start;
    width: 100%;
    padding: 32px 0;
}

.porque__number {
    background-color: var(--primary-blue-300);
    color: var(--base-dark);
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.2;
    font-weight: 400;
    text-align: center;
    width: clamp(24px, 0.56vw + 22px, 32px);
    height: clamp(24px, 0.56vw + 22px, 32px);
    border-radius: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: clamp(4px, 0.28vw + 3px, 8px);
}

.porque__item-text {
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.porque__item:first-child {
    padding-top: 0;
}

.porque__item:last-child {
    padding-bottom: 0;
}

.porque__item-title {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 17px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.porque__item-desc {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
}

.porque__divider {
    width: 100%;
    height: 1px;
    background-color: var(--scale-grey-500);
}

/* ========================================
   PARTNERS TEXT LINE  (node 2057:7661)
   ======================================== */
.partners-text {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0 64px;
    margin-bottom: 24px;
}

.partners-text__line {
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    text-align: center;
}

/* ========================================
   PARTNERS LOGOS  (node 2057:7664)
   ======================================== */

.partners-logos {
    background-color: var(--base-dark);
    overflow: hidden;
    position: relative;
    width: 100%;
    height: clamp(80px, 3.33vw + 72px, 128px);
    display: flex;
    align-items: center;
    padding: 0;
}

.partners-logos::before,
.partners-logos::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 150px;
    z-index: 2;
    pointer-events: none;
}

.partners-logos::before {
    left: 0;
    background: linear-gradient(90deg, var(--base-dark) 0%, rgba(28, 28, 33, 0) 100%);
}

.partners-logos::after {
    right: 0;
    background: linear-gradient(-90deg, var(--base-dark) 0%, rgba(28, 28, 33, 0) 100%);
}

.partners-logos--on-dark {
    background-color: transparent;
    margin-top: 20px;
}

.partners-logos--on-dark::before {
    background: linear-gradient(90deg, #0f1011 0%, rgba(15, 16, 17, 0) 100%);
}

.partners-logos--on-dark::after {
    background: linear-gradient(-90deg, #0f1011 0%, rgba(15, 16, 17, 0) 100%);
}

.partners-logos__track {
    display: flex;
    gap: clamp(20px, 1.5vw + 16px, 42px);
    align-items: center;
    width: max-content;
    animation: partners-scroll 35s linear infinite;
}

.partners-logos:hover .partners-logos__track {
    animation-play-state: paused;
}

.partners-logos__item {
    width: clamp(100px, 6.25vw + 85px, 190px);
    height: clamp(48px, 2.22vw + 43px, 80px);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.partners-logos__item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

@keyframes partners-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* ========================================
   MINAS  (node 2354:6121)
   ======================================== */
.minas {
    background-color: var(--base-dark);
    display: flex;
    flex-wrap: wrap;
    gap: 0 128px;
    align-items: flex-start;
    padding: 128px 64px;
    width: 100%;
}

.minas__left {
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    gap: 48px;
    align-items: flex-start;
    min-width: 0;
}

.minas__label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--base-light);
}

.minas__title {
    font-family: var(--font-display);
    font-size: 32px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.minas__title-accent {
    color: var(--primary-blue-300);
}

/* ========================================
   FOOTER  (node 2051:4462)
   ======================================== */
.footer {
    background-color: var(--scale-grey-900);
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}

.footer__inner {
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: flex-start;
    padding: clamp(64px, 4.44vw + 52px, 128px) clamp(20px, 3.06vw + 12px, 64px) 32px;
}

.footer__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
}

.footer__logo {
    width: 155px;
    height: 33.214px;
    flex-shrink: 0;
}

.footer__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.footer__menu {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
}

.footer__menu-title {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 17px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.footer__menu-link {
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    transition: color 0.2s ease;
}

.footer__menu-link:hover {
    color: var(--primary-blue-300);
}

.footer__social {
    display: flex;
    align-items: center;
    gap: 24px;
}

.footer__social-link {
    display: none;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease;
}

.footer__social-link:hover {
    opacity: 0.7;
}

.footer__divider {
    width: 100%;
    height: 1px;
    background-color: var(--scale-grey-500);
}

.footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.footer__legal {
    display: flex;
    gap: 32px;
    align-items: center;
}

.footer__legal-link {
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    transition: color 0.2s ease;
}

.footer__legal-link:hover {
    color: var(--primary-blue-300);
}

.footer__lang {
    background-color: var(--base-dark);
    border: 1px solid var(--base-light);
    border-radius: 4px;
    padding: 12px 16px;
    height: 48px;
    width: 196px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--base-light);
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    cursor: pointer;
}

.footer__lang-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer__lang-icon svg {
    width: 100%;
    height: 100%;
}

.footer__copyright {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    width: 100%;
}

/* ========================================
   RESPONSIVE  (breakpoints)
   ======================================== */
@media (max-width: 1600px) {
    :root {
        --padding-desktop: 48px;
    }

    .hero {
        gap: 80px;
        padding-left: 48px;
        padding-right: 48px;
    }

    .one-cards {
        margin: 0 40px;
    }

    .minas {
        padding: 128px 48px;
    }
}

@media (max-width: 1280px) {
    :root {
        --padding-desktop: 32px;
    }
}

/* Header first compression */
@media (max-width: 1200px) {
    .header__container {
        padding: 16px 32px;
    }

    .header__logo {
        width: 180px;
        height: 40px;
    }

    .header__nav {
        gap: 2px;
    }

    .header__nav-item {
        font-size: 14px;
        padding: 10px 12px;
        height: 40px;
    }

    .header__cta {
        width: auto;
    }

    .announcement-bar__inner {
        padding: 2px 32px;
    }
}

@media (max-width: 1024px) {
    .hero {
        gap: 48px;
        padding: 64px 32px 12px;
    }

    .hero__ctas {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .one-intro__img {
        height: 300px;
    }

    /* Header second compression */
    .header__container {
        padding: 16px 20px;
    }

    .header__logo {
        width: 155px;
        height: 34px;
    }

    .header__nav {
        gap: 2px;
    }

    .header__nav-item {
        font-size: 14px;
        padding: 8px 10px;
        height: 36px;
    }

    .announcement-bar__inner {
        padding: 2px 20px;
    }
}

@media (max-width: 1100px) {
    .section-header__content {
        gap: 32px;
    }

    .data-numbers {
        flex-wrap: wrap;
        gap: 32px;
    }

    .data-numbers__divider {
        display: none;
    }

    .one-intro__row {
        flex-direction: column;
    }

    .one-intro__img {
        width: 100%;
    }

    .one-intro__text-block {
        width: 100%;
    }

    .one-intro__bottom {
        flex-direction: column;
        gap: 32px;
    }

    .one-intro__project {
        width: 100%;
    }

    .one-intro__stat {
        width: 100%;
        align-items: flex-start;
    }

    .one-modules__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .one-capabilities__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .portfolio-cards {
        flex-wrap: wrap;
    }

    .portfolio-card {
        min-width: calc(50% - 11px);
    }

    .caso-card {
        width: 400px;
    }

    .testimonial-cards {
        gap: 32px;
    }

    .porque {
        gap: 48px;
        flex-direction: column;
    }

    .banner-lab__bottom {
        gap: 32px;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .banner-lab__subtitle-row {
        justify-content: flex-start;
    }
}

@media (max-width: 1000px) {
    .footer__top {
        flex-wrap: wrap;
        gap: 32px;
    }
}

/* Burger mode activation */
@media (max-width: 992px) {
    .header__nav {
        display: none;
    }

    .header__cta {
        display: none;
    }

    .header__burger {
        display: flex;
    }

}

@media (max-width: 820px) {
    .hero {
        flex-direction: column;
        gap: 32px;
        padding: 48px 20px 32px;
        height: auto;
    }

    .hero__left {
        width: 100%;
    }

    .hero__images {
        display: none;
    }

    .hero__ctas {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }
}

@media (max-width: 768px) {
    :root {
        --padding-desktop: 20px;
    }

    body {
        max-width: none;
    }

    .header__container {
        padding: 12px 20px;
    }

    .header__logo {
        width: 140px;
        height: 31px;
    }

    /* Announcement bar mobile */
    .announcement-bar__inner {
        padding: 8px 16px;
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        gap: 8px;
    }

    .announcement-bar__content {
        flex: 1 0 0;
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .announcement-bar__close {
        flex-shrink: 0;
    }

    .announcement-bar__text {
        font-size: 14px;
    }

    .announcement-bar__divider {
        display: none;
    }

    .announcement-bar__link {
        font-size: 14px;
    }

    .announcement-bar__link svg {
        display: none;
    }

    .announcement-bar__close {
        position: static;
    }

    .hero {
        gap: 32px;
        flex-direction: column;
        padding: 48px 20px 32px;
        height: auto;
    }

    .hero__left {
        width: 100%;
    }

    .hero__images {
        display: none;
    }

    .hero__ctas {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }

    .section-header {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .data-numbers {
        flex-direction: column;
        align-items: center;
        gap: 24px;
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .data-number {
        width: 100%;
        align-items: center;
    }

    .data-number__value,
    .data-number__label {
        text-align: center;
    }

    .one-header {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .one-header--main {
        padding-top: 32px;
        padding-bottom: 16px;
    }

    .one-cards {
        margin: 0 20px;
    }

    .one-header__icon {
        display: none;
    }

    .one-intro__img {
        height: auto;
        max-height: 300px;
        width: 100%;
    }

    .one-banner--beneficios {
        min-height: auto;
    }

    .one-banner__content-center {
        display: none;
    }

    .one-banner__content-bottom {
        justify-content: flex-start;
    }

    .one-banner__subtitle-right {
        align-self: flex-start;
    }

    .one-modules {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .one-modules__grid {
        grid-template-columns: 1fr;
    }

    .one-capabilities {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .one-capabilities__grid {
        grid-template-columns: 1fr;
    }

    .cap-card__top {
        align-items: center;
    }

    .cap-card__title {
        font-size: 20px;
    }

    .module-card {
        min-width: 100%;
    }

    .clientes__track {
        gap: 24px;
    }

    .one-header--portfolio {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .portfolio-cards {
        flex-direction: column;
        padding-bottom: 16px;
    }

    .portfolio-card {
        min-width: 100%;
        min-height: auto;
    }

    .portfolio-card__list {
        height: auto;
    }

    .line-quote {
        border-top: none;
        border-bottom: none;
        padding: 32px 10px;
    }

    .section-header--sm {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .casos-cards {
        padding-top: 16px;
        padding-bottom: 32px;
    }

    .casos-cards__track {
        gap: 16px;
    }

    .caso-card {
        width: 320px;
    }

    .caso-card:hover {
        transform: none;
    }

    .caso-card__body {
        min-height: auto;
    }

    .caso-card__title {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .caso-card__desc {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .one-header--testimonials {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .testimonial-cards {
        flex-direction: column;
        margin-bottom: 16px;
    }

    .banner-lab {
        min-height: auto;
        padding: 20px;
    }

    .banner-lab__subtitle-row {
        justify-content: flex-start;
    }

    .banner-lab__bottom {
        flex-direction: column;
        gap: 24px;
        align-items: flex-start;
    }

    .porque {
        padding: 32px 20px 16px;
    }

    .porque__item {
        gap: 16px;
        padding: 16px 0;
    }

    .partners-logos {
        gap: 24px;
    }

    .partners-logos__item {
        width: 140px;
    }

    .footer__inner {
        padding: 64px 16px 32px;
    }

    .footer__top {
        flex-direction: column;
        gap: 64px;
    }

    .footer__menu {
        gap: 24px;
    }

    .footer__menu-title {
        font-size: 24px;
    }

    .footer__bottom {
        flex-direction: column;
        gap: 32px;
        align-items: flex-start;
    }

    .footer__legal {
        align-items: flex-start;
        flex-direction: column;
        gap: 32px;
    }

    .footer__social-btn {
        display: none;
    }

    .footer__social-link {
        display: flex;
    }
}

/* ── Capabilities: mobile header ≤ 576px ── */
@media (max-width: 576px) {
    .one-capabilities__header {
        flex-direction: column-reverse;
        gap: 64px;
    }

    .one-capabilities__logo {
        height: 88px;
        width: auto;
        max-width: 284px;
        object-fit: contain;
        object-position: left center;
    }

    .one-capabilities__title {
        max-width: 100%;
    }
}

/* ============================================
       CASO DETALLE — Estilos específicos
       ============================================ */

/* ── Wrapper de ancho máximo 1056 px ── */
.caso-wrapper {
    width: 100%;
    max-width: 1056px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

/* ── Navegación caso anterior / siguiente ── */
.caso-detalle-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 128px;
    padding-bottom: 0;
}

.caso-detalle-nav__btn {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 48px;
    padding: 12px 0;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--scale-grey-200);
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    text-decoration: none;
    transition: color 0.2s ease;
}

.caso-detalle-nav__btn:hover {
    color: var(--base-light);
}

.caso-detalle-nav__btn svg {
    flex-shrink: 0;
}

/* ── Cabecera del caso ── */
.caso-detalle-header {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-top: 32px;
    padding-bottom: 0;
}

.caso-detalle-header__texts {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.caso-detalle-header__title {
    font-family: var(--font-display);
    font-size: clamp(26px, 2.22vw + 18px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.caso-detalle-header__subtitle {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    font-weight: 400;
    color: var(--scale-grey-200);
}

.caso-detalle-header__img {
    width: 100%;
    height: clamp(200px, 23.33vw, 334px);
    overflow: hidden;
    border-radius: 4px;
    flex-shrink: 0;
}

.caso-detalle-header__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── Cliente + Tags ── */
.caso-detalle-client {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 32px;
}

/* ── Stats sin padding horizontal ── */
.data-numbers--caso {
    padding-left: 0;
    padding-right: 0;
}

.caso-detalle-client__label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--scale-grey-200);
}

.caso-detalle-client__name {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.11vw + 17px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
}

.caso-detalle-client__tags {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.caso-tag {
    background-color: var(--primary-blue-300);
    color: var(--base-dark);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    padding: 10px;
    border-radius: 4px;
    white-space: nowrap;
}

/* ── Divider horizontal ── */
.caso-divider {
    width: 100%;
    height: 1px;
    background-color: var(--scale-grey-500);
    flex-shrink: 0;
}

/* ── Sección de texto: label izq + cuerpo der ── */
.caso-section-full {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-top: 0;
    padding-bottom: 64px;
}

.caso-section-full__row {
    display: flex;
    align-items: flex-start;
    gap: 48px;
}

.caso-section-full__heading {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.11vw + 17px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    width: 260px;
    flex-shrink: 0;
}

.caso-section-full__body {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.caso-section-full__body p,
.caso-section-full__body li {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    font-weight: 400;
    color: var(--scale-grey-200);
    margin-bottom: 16px;
}

.caso-section-full__body p:last-child {
    margin-bottom: 0;
}

.caso-section-full__body strong {
    font-weight: 700;
    color: var(--base-light);
}

.caso-section-full__body ul {
    padding-left: 22px;
    margin-bottom: 16px;
}

.caso-section-full__body ul li {
    margin-bottom: 6px;
}

/* ── 2 columnas: Desafío / Solución ── */
.caso-cols {
    display: flex;
    align-items: flex-start;
    gap: 64px;
    padding: 64px 0;
}

.caso-col {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-bottom: 64px;
}

.caso-col__heading {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.11vw + 17px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.caso-col__body p,
.caso-col__body li {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    font-weight: 400;
    color: var(--scale-grey-200);
    margin-bottom: 16px;
}

.caso-col__body p:last-child {
    margin-bottom: 0;
}

.caso-col__body strong {
    font-weight: 700;
    color: var(--base-light);
}

.caso-col__body ul {
    list-style: disc;
    padding-left: 22px;
    margin-bottom: 16px;
}

.caso-col__body ul li {
    margin-bottom: 6px;
}

/* Divisor vertical entre columnas */
.caso-col-divider {
    width: 1px;
    background-color: var(--scale-grey-500);
    align-self: stretch;
    flex-shrink: 0;
    margin: 0 48px;
}

/* ── "Otros casos exitosos" header ── */
.otros-casos-header {
    border-top: 1px solid var(--scale-grey-500);
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 64px 64px 32px 64px;
}

.otros-casos-header__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
}

.otros-casos-header__title {
    font-family: var(--font-display);
    font-size: clamp(24px, 2.22vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

/* ── Espaciado entre stats y otros casos ── */
.data-numbers {
    padding-top: 32px;
}

/* ============================================
       RESPONSIVE — 1440 → 375 px
       ============================================ */

/* ≤ 1100 px: columnas → una sola */
@media (max-width: 1100px) {
    .caso-section-full__row {
        flex-direction: column;
        gap: 24px;
        padding: 20px 0;
    }

    .caso-section-full__heading {
        width: 100%;
    }

    .caso-cols {
        width: 100%;
        gap: 16px;
        flex-direction: column;
    }

    .caso-col {
        width: 100%;
    }

    .caso-col-divider {
        display: none;
    }
}

/* ≤ 768 px: mobile */
@media (max-width: 768px) {
    .caso-detalle-nav {
        padding-top: 80px;
    }

    .caso-detalle-header {
        gap: 24px;
        padding-top: 24px;
    }

    .caso-detalle-header__img {
        height: clamp(160px, 48vw, 240px);
    }

    .caso-section-full {
        padding-bottom: 40px;
        gap: 24px;
    }

    .caso-col {
        width: 100%;
        padding-bottom: 40px;
        gap: 20px;
    }

    .otros-casos-header {
        padding: 40px 20px;
    }

    .otros-casos-header__title {
        white-space: normal;
    }

    .caso-detalle-client__tags {
        gap: 8px;
    }

    .caso-tag {
        font-size: 12px;
        padding: 8px;
    }
}

/* ≤ 480 px: extra pequeño */
@media (max-width: 480px) {
    .caso-detalle-nav__btn {
        font-size: 14px;
        gap: 6px;
    }
}


/* ========================================
   CASOS DE ÉXITO PAGE
   ======================================== */
.section-header--casos-page {
    padding-top: 64px;
    padding-bottom: 32px;
    padding-left: 64px;
    padding-right: 64px;
}

.section-header--casos-page .section-header__content {
    gap: 0;
}

.casos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    padding: 64px;
    width: 100%;
}

.casos-grid .caso-card {
    width: 100%;
    min-width: auto;
}

/* Responsive para casos-grid */
@media (max-width: 1280px) {
    .casos-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .section-header--casos-page {
        padding-top: 128px;
        padding-left: 20px;
        padding-right: 20px;
        padding-bottom: 16px;
    }

    .casos-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 16px 20px 32px;
    }

    .casos-grid .caso-card {
        width: 100%;
    }
}

/* =====================================================================
   NOSOTROS PAGE
   ===================================================================== */

/* ── Content container (shared: nosotros + servicios) ── */
.content-container {
    max-width: 1184px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 1184px) {
    .content-container {
        padding-left: clamp(20px, 3.06vw + 12px, 64px);
        padding-right: clamp(20px, 3.06vw + 12px, 64px);
    }
}

/* ── Hero centrado (sin imágenes laterales) ── */
.about-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 64px clamp(20px, 3.06vw + 12px, 128px) 64px;
    text-align: center;
}

.about-hero__title {
    font-family: var(--font-display);
    font-size: clamp(32px, 20.73px + 3vw, 64px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    max-width: 750px;
}

/* ── Sección Sobre Telemining ── */
.about-section {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 64px 0;
    width: 100%;
}

.about-section__divider {
    width: 100%;
    height: 1px;
    background-color: var(--scale-grey-500);
    flex-shrink: 0;
}

.about-section__row {
    display: flex;
    align-items: flex-start;
    gap: 64px;
}

.about-section__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    width: 260px;
    flex-shrink: 0;
}

.about-section__body {
    flex: 1 0 0;
    min-width: 0;
}

.about-section__body p {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    font-weight: 400;
    color: var(--scale-grey-200);
    margin-bottom: 16px;
}

.about-section__body p:last-child {
    margin-bottom: 0;
}

.about-section__body strong {
    font-weight: 700;
    color: var(--base-light);
}

/* ── Cards (4 items) ── */
.about-cards {
    display: flex;
    gap: 26px;
    align-items: stretch;
    padding: 0 0 64px 0;
}

.about-card {
    background-color: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
    flex: 1 0 0;
    min-width: 0;
}

.about-card__icon {
    background-color: var(--primary-blue-50);
    border-radius: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}

.about-card__icon svg {
    max-width: 20px;
    max-height: 20px;
    width: auto;
    height: auto;
}

.about-card__title {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.56vw + 17px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

/* ── Banner con texto ── */
.about-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px 0;
    width: 100%;
}

.about-banner__content {
    max-width: 900px;
    text-align: center;
}

.about-banner__text {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.83vw + 16px, 24px);
    line-height: 1.2;
    color: var(--base-light);
    margin-bottom: 0;
}

.about-banner__text-group {
    margin-bottom: 24px;
}

.about-banner__text--highlight {
    font-size: clamp(22px, 1.11vw + 19px, 32px);
    color: var(--primary-blue-300);
}

/* ── Sección Nuestro equipo ── */
.team-section {
    display: flex;
    gap: 64px;
    align-items: flex-start;
    padding: 32px 0 64px 0;
    width: 100%;
}

.team-section__text {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 486px;
    flex-shrink: 0;
}

.team-section__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 1.94vw + 16px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.team-section__description {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    font-weight: 400;
    color: var(--scale-grey-200);
}

.team-section__cards {
    display: flex;
    gap: 53px;
    align-items: stretch;
    flex: 1 1 0;
    min-width: 0;
}

.team-section__cards .team-card {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
}

/* ── Card de miembro de equipo ── */
.team-card {
    background-color: var(--scale-grey-900);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    width: 290px;
    flex-shrink: 0;
}

.team-card__img {
    height: 300px;
    width: 100%;
    overflow: hidden;
    border-radius: 4px 4px 0 0;
}

.team-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.team-card__content {
    display: flex;
    flex-direction: column;
    gap: 32px;
    justify-content: space-between;
    padding: 24px 16px;
    flex: 1;
}

.team-card__info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.team-card__name {
    font-family: var(--font-display);
    font-size: 32px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    margin: 0;
}

.team-card__role {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--primary-blue-300);
    margin: 0;
}

.team-card__btn {
    background-color: var(--base-dark);
    border: 1px solid var(--base-light);
    color: var(--base-light);
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    padding: 12px 16px;
    border-radius: 4px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    cursor: pointer;
    transition: opacity 0.2s ease;
    text-decoration: none;
}

.team-card__btn:hover {
    opacity: 0.85;
}

.team-card__btn span {
    text-decoration: underline;
}

.team-card__btn svg {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

.team-grid .team-card__content {
    justify-content: space-between;
}

/* ── Caso-col inner row (nosotros variant: heading left + body right) ── */
.caso-col__row {
    display: flex;
    gap: 32px;
    align-items: flex-start;
    width: 100%;
}

.caso-col__row .caso-col__heading {
    width: 179px;
    flex-shrink: 0;
}

.caso-col__row .caso-col__body {
    flex: 1 0 0;
    min-width: 0;
}

/* ── Team popup ── */
.team-popup-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    z-index: 1000;
    align-items: center;
    justify-content: center;
    padding: 24px;
    overflow-y: auto;
}

.team-popup-overlay.is-open {
    display: flex;
}

.team-popup {
    background: #1c1c21;
    border-radius: 8px;
    padding: 32px;
    width: 100%;
    max-width: 900px;
    max-height: 90vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.team-popup__header {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.team-popup__header-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
}

.team-popup__name {
    font-family: var(--font-display);
    font-size: clamp(28px, 2.78vw + 18px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    margin: 0;
}

.team-popup__close {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.team-popup__close:hover {
    opacity: 1;
}

.team-popup__role {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--primary-blue-300);
    margin: 0;
}

.team-popup__body {
    display: flex;
    gap: 64px;
    align-items: flex-start;
    width: 100%;
}

.team-popup__photo {
    width: 313px;
    height: 339px;
    flex-shrink: 0;
    border-radius: 4px;
    overflow: hidden;
}

.team-popup__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.team-popup__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 64px;
    align-items: flex-end;
    min-width: 0;
}

.team-popup__bio {
    font-family: var(--font-body);
    font-size: clamp(14px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
    width: 100%;
}

.team-popup__bio p {
    margin: 0 0 12px;
}

.team-popup__bio p:last-child {
    margin-bottom: 0;
}

.team-popup__bio strong {
    font-weight: 700;
    color: var(--base-light);
}

.team-popup__linkedin {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: underline;
    font-family: var(--font-display);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    height: 48px;
    white-space: nowrap;
    transition: opacity 0.2s;
}

.team-popup__linkedin:hover {
    opacity: 0.8;
}

.team-popup__linkedin svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* ── Team grid ── */
.team-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 64px 24px;
    padding: 64px 0 124px 0;
    width: 100%;
}

.team-grid .team-card {
    flex: 1 1 calc(25% - 18px);
    max-width: 290px;
}

/* ── Nosotros responsive ── */
@media (max-width: 1100px) {
    .caso-col__row {
        flex-direction: column;
        gap: 16px;
    }

    .caso-col__row .caso-col__heading {
        width: 100%;
    }

    .about-section__row {
        flex-direction: column;
        gap: 24px;
    }

    .about-section__title {
        width: 100%;
    }

    .team-section {
        flex-direction: column;
        gap: 32px;
    }

    .team-section__text {
        width: 100%;
    }

    .team-section__cards {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .about-hero {
        padding-top: clamp(80px, 12vw + 32px, 112px);
    }

    .about-section {
        padding: 40px 0;
        gap: 24px;
    }

    .about-cards {
        flex-direction: column;
        padding: 0 0 40px 0;
    }

    .about-banner {
        padding: 40px 0;
    }

    .team-section {
        padding: 20px 0;
    }

    .team-popup {
        padding: 20px;
        gap: 24px;
    }

    .team-popup__body {
        flex-direction: column;
        gap: 24px;
    }

    .team-popup__photo {
        width: 100%;
        height: 240px;
    }

    .team-popup__info {
        align-items: flex-start;
        gap: 32px;
    }

    .team-grid {
        padding: 40px 0 80px 0;
    }

    .team-grid .team-card {
        flex: 1 1 calc(50% - 12px);
        max-width: calc(50% - 12px);
    }
}

@media (max-width: 576px) {
    .team-grid .team-card {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .team-section__cards .team-card {
        flex: 1 1 100%;
    }

    .team-card__name {
        font-size: 20px;
    }

    .clientes-logos {
        margin-bottom: 0;
    }
}

/* =====================================================================
   SERVICIOS PAGE
   ===================================================================== */

/* ── Container ── */
.servicio-container {
    max-width: 1266px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    box-sizing: border-box;
    padding-left: 20px;
    padding-right: 20px;
}

.servicio-container.small {
    max-width: 1180px;
}

/* ── Hero ── */
.servicio-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 64px clamp(20px, 3.06vw + 12px, 32px) 64px;
    text-align: center;
}

.servicio-hero__icon-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(156, 207, 255, 0.2);
    border-radius: 100px;
    padding: 8px;
    flex-shrink: 0;
}

.servicio-hero__icon-wrap {
    width: 27px;
    height: 27px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.servicio-hero__icon-wrap svg {
    width: 100%;
    height: 100%;
    display: block;
}

.servicio-hero__title {
    font-family: var(--font-display);
    font-size: clamp(32px, 2.22vw + 20px, 64px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    max-width: 858px;
}

.servicio-hero__subtitle {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 16px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
    max-width: 750px;
}

/* ── Informative CTA section ── */
.servicio-info-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    padding: 80px clamp(20px, 3.06vw + 12px, 64px);
    text-align: center;
}

.servicio-info-cta__text {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    line-height: 1.2;
    color: var(--primary-blue-300);
    max-width: 760px;
}

/* ── Static 3-col casos grid (template pages) ── */
.servicio-casos-static {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    padding: 0 clamp(20px, 3.06vw + 12px, 64px) 80px;
}

.servicio-casos-static .caso-card {
    width: 100%;
    min-width: 0;
}

@media (max-width: 1100px) {
    .servicio-casos-static {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .servicio-casos-static {
        grid-template-columns: 1fr;
        padding-bottom: 32px;
    }

    .servicio-info-cta {
        padding: 48px clamp(20px, 3.06vw + 12px, 64px);
    }

    .partners-logos--on-dark {
        margin-top: 8px;
    }
}

/* ── Section layout (divider + 2-col row) ── */
.servicio-section {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: clamp(48px, 8.89vw, 128px) 0 32px;
    width: 100%;
}

.servicio-section--intro {
    padding-top: 16px;
    padding-bottom: 64px;
}

.servicio-section__divider {
    width: 100%;
    height: 1px;
    background-color: var(--scale-grey-500);
    flex-shrink: 0;
}

.servicio-section__row {
    display: flex;
    align-items: flex-start;
    gap: 32px;
}

.servicio-section__title {
    flex: 0 0 464px;
    max-width: 464px;
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.servicio-section__body {
    min-width: 0;
}

.servicio-section__body p {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    color: var(--scale-grey-200);
    margin-bottom: 16px;
}

.servicio-section__body p:last-child {
    margin-bottom: 0;
}

.servicio-section__body ul {
    padding-left: 22px;
    margin: 0;
}

.servicio-section__body li {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    color: var(--scale-grey-200);
    margin-bottom: 8px;
}

.servicio-section__body li:last-child {
    margin-bottom: 0;
}

/* ── Quote ── */
.servicio-quote-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
}

.servicio-quote {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 16px;
    border-radius: 4px;
    background: var(--primary-blue-300);
    width: fit-content;
}

.servicio-quote p {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 16px, 24px);
    line-height: 1.2;
    color: var(--base-dark);
    text-align: center;
}

/* ── Capacidades grid ── */
.capacidades-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
    padding-bottom: 64px;
    width: 100%;
}

.capacidad-card {
    background: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1 0 calc(33.333% - 20px);
    min-width: 0;
    box-sizing: border-box;
}

.capacidad-card__title {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 16px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
}

.capacidad-card__desc {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.4;
    font-weight: 400;
    color: var(--scale-grey-200);
}

/* ── Resultado en operación grid ── */
.resultado-grid {
    display: flex;
    gap: 26px;
    padding-bottom: 64px;
    width: 100%;
}

.resultado-card {
    background: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1 0 0;
    min-width: 0;
}

.resultado-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 100px;
    background: rgba(156, 207, 255, 0.2);
    flex-shrink: 0;
}

.resultado-card__icon svg {
    display: block;
    width: 20px;
    height: auto;
}

.resultado-card__title {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 16px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

/* ── CTA ── */
.servicio-cta {
    display: flex;
    justify-content: center;
    padding-bottom: 96px;
}

/* ─────────────────────────────────────────
   RESPONSIVE — 1100px
   ───────────────────────────────────────── */
@media (max-width: 1100px) {
    .servicio-section__row {
        flex-direction: column;
        gap: 24px;
    }

    .servicio-section__title {
        flex: none;
        width: 100%;
        max-width: 100%;
        white-space: normal;
    }

    .capacidad-card {
        flex: 1 0 calc(50% - 16px);
    }
}

/* ─────────────────────────────────────────
   RESPONSIVE — 768px
   ───────────────────────────────────────── */
@media (max-width: 768px) {



    .servicio-section {
        padding-top: 48px;
    }

    .servicio-section--intro {
        padding-top: 16px;
        padding-bottom: 32px;
    }

    .servicio-quote {
        padding: 20px 24px 16px;
    }

    .capacidad-card {
        flex: 1 0 100%;
    }

    .resultado-grid {
        flex-wrap: wrap;
    }

    .resultado-card {
        flex: 1 0 calc(50% - 16px);
    }
}

/* ─────────────────────────────────────────
   RESPONSIVE — 576px
   ───────────────────────────────────────── */
@media (max-width: 576px) {
    .servicio-hero__title {
        font-size: 32px;
    }

    .resultado-card {
        align-items: center;
        flex: 1 0 100%;
    }
}

/* =====================================================================
   PRODUCTO PAGE
   ===================================================================== */

/* ── Tagline label ── */
.producto-tagline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border-radius: 4px;
    background: var(--primary-blue-300);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--base-dark);
}

/* ── Qué es / Para qué sirve 2-col ── */
.producto-cols {
    display: flex;
    gap: clamp(32px, 8.89vw, 128px);
    padding-bottom: 64px;
    width: 100%;
}

.producto-col {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-bottom: 20px;
    gap: 32px;
}

/* ── Cómo funciona ── */
.como-funciona__row {
    display: flex;
    gap: 64px;
    align-items: center;
    padding-bottom: 64px;
}

.como-funciona__left {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.como-funciona__img {
    width: 100%;
    border-radius: 4px;
    display: block;
    object-fit: cover;
    max-height: 280px;
}

.como-funciona__right {
    flex: 1 0 0;
    min-width: 0;
}

.como-funciona__right p {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    color: var(--scale-grey-200);
    margin-bottom: 16px;
}

.como-funciona__right p:last-child {
    margin-bottom: 0;
}

/* ── FAQ ── */
.faq-list {
    display: flex;
    flex-direction: column;
    padding: 64px 64px 128px 64px;
}

.faq-item {
    border-bottom: 1px solid var(--scale-grey-500);
}

.faq-item:first-child {
    border-top: 1px solid var(--scale-grey-500);
}

.faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 0;
    cursor: pointer;
    background: none;
    border: none;
    width: 100%;
    text-align: left;
}

.faq-question__text {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    color: var(--base-light);
    font-weight: 400;
}

.faq-icon {
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.faq-item.is-open .faq-icon {
    transform: rotate(180deg);
}

.faq-answer {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.35s ease;
}

.faq-answer__inner {
    padding-bottom: 20px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--scale-grey-200);
}

/* ── Anticipa banner ── */
.anticipa-banner {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    width: 100%;
    padding: clamp(48px, 4.44vw, 96px) clamp(20px, 4.44vw, 64px);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    margin: 64px 0;
}

.anticipa-banner__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.anticipa-banner__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.anticipa-banner__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.61);
}

.anticipa-banner__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
    text-align: center;
    max-width: 720px;
}

.anticipa-banner__title {
    font-family: var(--font-display);
    font-size: clamp(24px, 1.67vw + 18px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.anticipa-banner__desc {
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.4;
    font-weight: 400;
    color: var(--base-light);
}

/* ── Caso de implementación exitosa ── */
.caso-implementacion {
    display: flex;
    gap: 64px;
    align-items: flex-start;
    justify-content: space-between;
    padding-bottom: 64px;
}

.caso-implementacion__left {
    display: flex;
    flex-direction: column;
    gap: 32px;
    flex-shrink: 0;
    width: clamp(240px, 25vw, 360px);
}

.caso-implementacion__title {
    font-family: var(--font-display);
    font-size: clamp(24px, 1.67vw + 18px, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.caso-implementacion__right {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* ─────────────────────────────────────────
   PRODUCTO RESPONSIVE — 1100px
   ───────────────────────────────────────── */
@media (max-width: 1100px) {
    .producto-cols {
        flex-direction: column;
        gap: 0;
        padding-bottom: 0;
    }

    .como-funciona__row {
        flex-direction: column;
    }

}

/* ─────────────────────────────────────────
   PRODUCTO RESPONSIVE — 680px (caso section)
   ───────────────────────────────────────── */
@media (max-width: 680px) {
    .caso-implementacion {
        flex-direction: column;
        gap: 32px;
    }

    .caso-implementacion__left {
        width: 100%;
    }

    .caso-implementacion__right {
        width: 100%;
    }

    .caso-implementacion__right .caso-card {
        width: 100%;
    }
}

/* =====================================================================
   TELEMINING ONE PAGE
   ===================================================================== */

/* ── About row (¿Qué es? / Plataforma modular) ── */
.one-about__row {
    display: flex;
    gap: 64px;
    align-items: stretch;
    padding: 32px 0 64px;
}

.one-about__left {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.one-about__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.one-about__title--xl {
    font-size: 48px;
    line-height: 1;
}

.one-about__img {
    width: 100%;
    flex: 1 0 0;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}

.one-about__placeholder {
    width: 100%;
    height: 124px;
    background: #d9d9d9;
    border-radius: 4px;
    flex-shrink: 0;
}

.one-about__right {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 64px;
}

/* ── Hero tags ── */
.one-hero-tags {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    margin-top: 32px;
}

.one-hero-tags__row {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

.one-hero-tag {
    background: var(--scale-grey-900, #1c1c21);
    border: 1px solid var(--scale-grey-500, #4c4949);
    border-radius: 4px;
    padding: 12px 16px;
    color: var(--base-light, #fff);
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ── Laptop about section ── */
.one-about__row--laptop {
    align-items: center;
}

.one-about__left--laptop {
    align-items: center;
    justify-content: center;
}

.one-laptop-img {
    width: 100%;
    display: block;
    border-radius: 4px;
}

.one-about__right--laptop {
    display: flex;
    flex-direction: column;
    gap: 32px;
    justify-content: center;
    padding-left: 64px;
}

.one-tm-logo {
    width: 240px;
    display: block;
}

.one-about__body-text {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    font-weight: 400;
    line-height: 1.5;
    color: var(--scale-grey-200, #ccc);
    margin: 0;
}

/* ── Bubble text image ── */
.one-bubble-image {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 40px;
    margin: 10px 0;
    box-sizing: border-box;
}

.one-bubble-image picture {
    display: block;
    width: 100%;
    max-width: 1000px;
}

.one-bubble-image img {
    width: 100%;
    display: block;
    border-radius: 8px;
}

@media (max-width: 768px) {
    .one-bubble-image {
        padding: 0 20px;
    }
}

/* ── Quote banner (blue pill) ── */
.one-quote-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px 64px;
    width: 100%;
    box-sizing: border-box;
}

.one-quote-banner {
    background: var(--primary-blue-300);
    border-radius: 4px;
    padding: 16px 64px;
    font-family: var(--font-display);
    font-size: clamp(16px, 0.56vw + 14px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-dark);
    text-align: center;
    max-width: 1154px;
    width: 100%;
    box-sizing: border-box;
}

/* ── One FAQ (new design: circle icon + blue H3 title) ── */
.one-faq-list {
    width: 100%;
    padding-bottom: 64px;
}

.one-faq-item {
    width: 100%;
}

.one-faq-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    padding: 32px 0;
    gap: 16px;
    text-align: left;
}

.one-faq-trigger__left {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
    min-width: 0;
}

.one-faq-icon {
    background: rgba(156, 207, 255, 0.2);
    border-radius: 100px;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    overflow: hidden;
    box-sizing: border-box;
}

.one-faq-icon svg {
    display: block;
    width: 18px;
    height: 18px;
    max-width: 24px;
    max-height: 24px;
    flex-shrink: 0;
}

.one-faq-title {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    font-weight: 400;
    line-height: 1.2;
    color: var(--primary-blue-300);
    margin: 0;
}

.one-faq-chevron {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

.one-faq-item.is-open .one-faq-chevron {
    transform: rotate(180deg);
}

.one-faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.one-faq-content__inner {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 0 0 32px 50px;
}

.one-faq-subtitle {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    font-weight: 700;
    line-height: 1.2;
    color: var(--scale-grey-200);
    margin: 0;
}

.one-faq-desc {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    font-weight: 400;
    line-height: 1.2;
    color: var(--scale-grey-200);
    margin: 0;
}

.one-faq-apps-label {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    font-weight: 400;
    line-height: 1.2;
    color: var(--scale-grey-200);
    margin: 0;
}

.one-faq-apps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.one-faq-app-card {
    background: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    padding: 24px;
    font-family: var(--font-display);
    font-size: clamp(16px, 0.42vw + 14px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.one-faq-cta {
    display: flex;
    justify-content: flex-end;
    padding-top: 8px;
}

.one-faq-divider {
    height: 1px;
    background: var(--scale-grey-500);
    width: 100%;
}

/* ── Result cards (6 grid) ── */
.one-result-cards {
    padding-bottom: 64px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.one-result-row {
    display: flex;
    gap: 24px;
}

.one-result-card {
    flex: 1 0 0;
    min-width: 0;
    background: var(--scale-grey-900, #1c1c21);
    border: 1px solid var(--scale-grey-500, #4c4949);
    border-radius: 8px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-height: 160px;
    justify-content: flex-start;
}

.one-result-card__icon {
    background: rgba(156, 207, 255, 0.2);
    border-radius: 100px;
    padding: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    flex-shrink: 0;
}

.one-result-card__title {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: clamp(15px, 0.31vw + 13px, 18px);
    line-height: 1.3;
    color: var(--base-light, #fff);
    margin: 0;
}

/* ─────────────────────────────────────────
   TELEMINING ONE RESPONSIVE — 1100px
   ───────────────────────────────────────── */
@media (max-width: 1100px) {
    .one-about__row {
        flex-direction: column;
        gap: 32px;
    }

    .one-about__right {
        padding-left: 0;
    }

    .one-about__img {
        flex: none;
        max-height: 280px;
    }

    .one-faq-apps {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ─────────────────────────────────────────
   TELEMINING ONE RESPONSIVE — 768px
   ───────────────────────────────────────── */
@media (max-width: 768px) {
    .one-about__row {
        padding: 16px 0 32px;
        gap: 20px;
    }

    .one-quote-banner {
        padding: 16px 20px;
    }

    .one-faq-trigger {
        padding: 20px 0;
    }

    .one-faq-content__inner {
        padding: 0 0 24px 16px;
    }

    .one-faq-apps {
        grid-template-columns: 1fr;
    }

    .one-result-row {
        flex-direction: column;
    }

    .one-hero-tags__row {
        gap: 10px;
    }

    .one-hero-tag {
        font-size: 12px;
        padding: 10px 12px;
    }

    .one-about__right--laptop {
        padding-left: 0;
    }

    .one-tm-logo {
        width: 180px;
    }
}

/* =====================================================================
   LEGALES PAGE
   ===================================================================== */

.legales-container {
    max-width: 928px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    box-sizing: border-box;
    padding-left: 20px;
    padding-right: 20px;
}

.legales-hero {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 176px 0 0;
    padding-bottom: 32px;
}

.legales-hero__title {
    font-family: var(--font-display);
    font-size: clamp(32px, 3.33vw, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.legales-hero__date {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--scale-grey-200);
}

.legales-intro {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
}

.legales-section {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-bottom: 64px;
}

.legales-section__divider {
    width: 100%;
    height: 1px;
    background-color: var(--scale-grey-500);
    flex-shrink: 0;
}

.legales-section__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 48px;
}

.legales-section__title {
    font-family: var(--font-display);
    font-size: clamp(18px, 1.11vw + 16px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    width: 220px;
    flex-shrink: 0;
}

.legales-section__body {
    flex: 1 0 0;
    min-width: 0;
}

.legales-section__body p {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
    margin-bottom: 12px;
}

.legales-section__body p:last-child {
    margin-bottom: 0;
}

.legales-section__body ul {
    list-style: disc;
    padding-left: 22px;
    margin-bottom: 12px;
}

.legales-section__body ul:last-child {
    margin-bottom: 0;
}

.legales-section__body li {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--scale-grey-200);
    margin-bottom: 4px;
}

.legales-section__body li:last-child {
    margin-bottom: 0;
}

.legales-section__body a {
    color: var(--scale-grey-200);
    text-decoration: underline;
}

.legales-section__body a:hover {
    color: var(--base-light);
}

/* =====================================================================
   CONTACTO PAGE
   ===================================================================== */

.contacto-section {
    display: flex;
    gap: 80px;
    align-items: flex-start;
    justify-content: center;
    padding: 64px;
    width: 100%;
    max-width: 1312px;
    margin: 0 auto;
    box-sizing: border-box;
}

.contacto-details {
    display: flex;
    flex-direction: column;
    gap: 64px;
    flex: 0 0 300px;
}

.contacto-details__title {
    font-family: var(--font-display);
    font-size: clamp(32px, 3.33vw, 48px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
}

.contacto-info {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.contacto-info__item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.contacto-info__icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.contacto-info__text {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.contacto-info__link {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
    text-decoration: underline;
}

.contacto-info__link:hover {
    color: var(--base-light);
}

.contacto-form-card {
    background-color: var(--scale-grey-900);
    border-radius: 4px;
    padding: 32px 64px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-end;
    flex: 1 0 0;
    min-width: 0;
    max-width: 570px;
    box-sizing: border-box;
}

.contacto-form-inputs {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}

.form-group br {
	display: none;
}

.form-label {
	display: block;
	margin-bottom: 8px;
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--base-light);
}

.form-input,
.form-select,
.form-textarea {
    width: 100%;
    background: transparent;
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    padding: 8px 16px;
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--base-light);
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.2s;
}

.form-input::placeholder,
.form-textarea::placeholder {
    color: var(--scale-grey-200);
    font-size: 16px;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
    border-color: var(--primary-blue-300);
}

.form-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.375L6 9.375L7.4 7.975L12 12.575L16.6 7.975L18 9.375Z' fill='%23ffffff'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 44px;
    cursor: pointer;
}

.form-select option {
    background-color: var(--scale-grey-900);
    color: var(--base-light);
}

.form-textarea {
    resize: none;
    min-height: 147px;
}

.form-helper {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--scale-grey-200);
    display: flex;
    align-items: center;
    gap: 4px;
}

/* ─────────────────────────────────────────
   CONTACTO RESPONSIVE — 768px
   ───────────────────────────────────────── */
@media (max-width: 768px) {
    .contacto-section {
        flex-direction: column;
        padding: clamp(80px, 12vw + 32px, 112px) 20px 48px;
        gap: 48px;
    }

    .contacto-details {
        flex: none;
        width: 100%;
        gap: 32px;
    }

    .contacto-form-card {
        max-width: 100%;
        width: 100%;
        padding: 24px 20px;
    }

    .form-label,
    .form-input,
    .form-select,
    .form-textarea {
        font-size: 16px;
    }
}

/* ─────────────────────────────────────────
   LEGALES RESPONSIVE — 768px
   ───────────────────────────────────────── */
@media (max-width: 768px) {
    .legales-hero {
        padding-top: clamp(80px, 12vw + 32px, 112px);
        gap: 16px;
    }

    .legales-section__row {
        flex-direction: column;
        gap: 16px;
    }

    .legales-section__title {
        width: 100%;
    }

    .legales-intro,
    .legales-section__body p,
    .legales-section__body li {
        font-size: 16px;
    }
}

/* ─────────────────────────────────────────
   PRODUCTO RESPONSIVE — 768px
   ───────────────────────────────────────── */
@media (max-width: 768px) {
    .como-funciona__row {
        gap: 16px;
    }

    .faq-list {
        padding: 0 0 128px 0;
    }

    .faq-question__text {
        font-size: 16px;
    }

    .anticipa-banner {
        min-height: 300px;
    }
}

/* ========================================
   CAPACIDADES PAGE
   ======================================== */

.caps-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 64px clamp(20px, 3.06vw + 12px, 128px) 64px;
    gap: 32px;
}

.caps-hero__title {
    font-family: var(--font-display);
    font-size: clamp(32px, 3.33vw + 22px, 64px);
    line-height: 1;
    font-weight: 400;
    color: var(--base-light);
    text-align: center;
    max-width: 860px;
}

.caps-tags {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.caps-tags__row {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: center;
}

.caps-tag {
    background: var(--scale-grey-900, #1C1C21);
    border: 1px solid var(--scale-grey-500, #4C4949);
    border-radius: 4px;
    padding: 16px;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: white;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s, border-color 0.2s;
}

.caps-tag:hover {
    background: var(--scale-grey-700, #2A2A32);
    border-color: var(--primary-blue-300, #9CCFFF);
    color: var(--primary-blue-300, #9CCFFF);
}

.caps-body {
    padding: 0 clamp(20px, 3.06vw + 12px, 64px) 96px;
    display: flex;
    flex-direction: column;
    gap: 64px;
}

.caps-section {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.caps-divider {
    width: 100%;
    height: 1px;
    background: var(--scale-grey-500, #4C4949);
    flex-shrink: 0;
}

.caps-intro {
    display: flex;
    gap: clamp(80px, 6vw, 128px);
    align-items: flex-end;
}

.caps-intro__left {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 480px;
    flex-shrink: 0;
}

.caps-intro__right {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.caps-icon-pill {
    background: var(--primary-blue-50);
    border-radius: 100px;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.caps-icon-pill svg {
    width: 40px;
    height: 40px;
}

.caps-section__title {
    font-family: var(--font-display);
    font-size: 32px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300, #9CCFFF);
}

.caps-section__subtitle {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.caps-section__desc {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.4;
    font-weight: 400;
    color: var(--scale-grey-200, #CCC);
}

.caps-label {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300, #9CCFFF);
}

.caps-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.caps-card {
    background: var(--scale-grey-900, #1C1C21);
    border: 1px solid var(--scale-grey-500, #4C4949);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.caps-card__title {
    font-family: var(--font-display);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light, white);
}

.caps-cta {
    display: flex;
    justify-content: center;
    margin-top: 16px;
}

/* -- Parallax section -- */
.caps-parallax {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    height: 385px;
    background-image: url('../img/capacidades/parallax.png');
    background-size: 100% auto;
    background-position: center calc(50% + 25px);
    background-attachment: scroll;
}

/* -- Capacidades responsive -- */
@media (max-width: 1100px) {
    .caps-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .caps-intro {
        flex-direction: column;
        align-items: flex-start;
    }

    .caps-intro__left {
        width: 100%;
    }
}

@media (max-width: 820px) {
    .caps-parallax {
        background-attachment: scroll;
        background-size: cover;
        background-position: center 50%;
        margin-left: 0;
        width: 100%;
    }

    .caps-hero {
        padding-top: clamp(80px, 6vw + 48px, 120px);
        padding-bottom: 40px;
    }

    .caps-cards {
        grid-template-columns: 1fr;
    }

    .caps-section__title {
        font-size: 24px;
    }

    .caps-section__subtitle {
        font-size: 20px;
    }

    .caps-section__desc {
        font-size: 16px;
    }

    .caps-label {
        font-size: 20px;
    }

    .caps-tags {
        gap: 8px;
    }

    .caps-tags__row {
        flex-wrap: wrap;
        gap: 8px;
    }

    .caps-tag {
        padding: 12px;
        font-size: 12px;
    }
}

/* -- One Modules (telemining-one.html) -- */
.one-modules-body {
    max-width: 1266px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
}

.one-module__name {
    font-family: var(--font-display);
    font-size: 32px;
    line-height: 1.2;
    font-style: normal;
    color: var(--primary-blue-300, #9CCFFF);
}

.one-module__subtitle {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    font-style: normal;
    color: var(--base-light);
}

@media (max-width: 820px) {
    .one-module__name {
        font-size: 24px;
    }

    .one-module__subtitle {
        font-size: 20px;
    }
}

/* ========================================
   ONE DETAIL (od-*) — one-tracking.html template
   ======================================== */

/* Hero */
.od-hero {
    padding: 176px 20px 64px;
    text-align: center;
}

.od-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 900px;
    margin: 0 auto;
}

.od-hero__logo {
    height: 28px;
    width: auto;
}

.od-hero__title {
    font-family: var(--font-display);
    font-size: 64px;
    font-weight: 400;
    line-height: 1;
    color: var(--base-light);
}

.od-hero__subtitle {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--primary-blue-300, #9CCFFF);
}

/* Image + text */
.od-media {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 64px 0;
}

.od-media__visual {
    flex: 1 0 0;
    min-width: 0;
}

.od-media__visual img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.od-media__body {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
    padding-left: 64px;
}

.od-media__text {
    display: flex;
    flex-direction: column;
    gap: 16px;
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.4;
    color: var(--scale-grey-200, #CCC);
}

.od-media__lead {
    font-weight: 700;
}

.od-media__body .btn-primary {
    align-self: flex-end;
}

/* Generic section wrapper */
.od-section {
    padding: 64px 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.od-section__title {
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 400;
    line-height: 1;
    color: var(--base-light);
}

/* Impact cards (white text only) */
.od-impact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.od-impact-card {
    background: var(--scale-grey-900, #1C1C21);
    border: 1px solid var(--scale-grey-500, #4C4949);
    border-radius: 4px;
    padding: 24px;
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--base-light);
}

/* Informes — 2 images staggered */
.od-informes {
    display: flex;
    gap: 64px;
    align-items: flex-start;
    padding: 64px 0 0;
    min-height: 375px;
}

.od-informes__left {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-self: flex-end;
}

.od-informes__right {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.od-informes__left img,
.od-informes__right img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.od-caption {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--base-light, #FFF);
    padding: 12px 0 0px;
}

/* How it applies cards (blue title + white desc) */
.od-how-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.od-how-card {
    background: var(--scale-grey-900, #1C1C21);
    border: 1px solid var(--scale-grey-500, #4C4949);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.od-how-card__title {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--primary-blue-300, #9CCFFF);
}

.od-how-card__desc {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.4;
    color: var(--base-light);
}

/* Report — big image */
.od-report {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.od-report__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

/* Other modules grid */
.od-modules-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    padding-bottom: 64px;
}

.od-module-card {
    background: var(--scale-grey-900, #1C1C21);
    border: 1px solid var(--scale-grey-500, #4C4949);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-decoration: none;
    transition: border-color 0.2s;
}

.od-module-card:hover {
    border-color: var(--primary-blue-300, #9CCFFF);
}

.od-module-card__header {
    display: flex;
    align-items: center;
    gap: 8px;
}

.od-module-card__pill {
    background: var(--primary-blue-50, rgba(156, 207, 255, 0.2));
    border-radius: 100px;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.od-module-card__name {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--primary-blue-300, #9CCFFF);
}

.od-module-card__desc {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.4;
    color: var(--base-light);
}

/* Caso de implementación — título izq + card der */
.od-case-split {
    display: flex;
    gap: 64px;
    align-items: flex-start;
    padding: 64px 0;
}

.od-case-split__left {
    flex: 0 0 auto;
    width: 420px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
}

.od-case-split__right {
    flex: 1 0 0;
    min-width: 0;
}

.od-case-split__right .caso-card,
.od-cases-grid .caso-card {
    flex-shrink: 1;
    min-width: 0;
}

.od-case-split__right .caso-card__body,
.od-cases-grid .caso-card__body {
    min-height: 0;
}

/* Imágenes cara a cara */
.od-faces {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 64px 0;
}

.od-faces__item {
    flex: 1 0 0;
    min-width: 0;
}

.od-faces__item img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

/* Caso de uso real (icon + title/sub left + desc right) */
.od-usecase {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 64px;
    padding-bottom: 16px;
}

.od-usecase__left {
    flex: 0 0 auto;
    width: 440px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.od-usecase__pill {
    background: var(--primary-blue-50, rgba(156, 207, 255, 0.2));
    border-radius: 100px;
    padding: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
}

.od-usecase__name {
    font-family: var(--font-display);
    font-size: 32px;
    line-height: 1.2;
    color: var(--primary-blue-300, #9CCFFF);
}

.od-usecase__sub {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--base-light);
}

.od-usecase__right {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    color: var(--scale-grey-200, #CCC);
}

.od-permite {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--primary-blue-300, #9CCFFF);
}

/* CTA — texto azul centrado + botón */
.od-cta-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    padding: 64px 128px;
    text-align: center;
}

.od-cta-text__quote {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--primary-blue-300, #9CCFFF);
    max-width: 885px;
}

/* 2 casos cards 50/50 */
.od-cases-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    padding-bottom: 64px;
}

/* ── Responsive ── */
@media (max-width: 1100px) {

    .od-impact-grid,
    .od-how-grid,
    .od-modules-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .od-case-split__left {
        width: 320px;
    }

    .od-usecase__left {
        width: 320px;
    }

    .od-cta-text {
        padding: 64px 40px;
    }
}

@media (max-width: 820px) {
    .od-hero__title {
        font-size: 40px;
    }

    .od-hero__subtitle {
        font-size: 20px;
    }

    .od-section__title {
        font-size: 32px;
    }

    .od-case-split {
        flex-direction: column;
        padding: 40px 0;
    }

    .od-case-split__left {
        width: 100%;
    }

    .od-faces {
        flex-direction: column;
        padding: 40px 0;
        gap: 12px;
    }

    .od-usecase {
        flex-direction: column;
        align-items: flex-start;
        gap: 32px;
    }

    .od-usecase__left {
        width: 100%;
    }

    .od-cta-text {
        padding: 48px 0;
    }

    .od-cta-text__quote {
        font-size: 24px;
    }

    .od-cases-grid {
        grid-template-columns: 1fr;
    }

    .od-usecase__name {
        font-size: 24px;
    }

    .od-usecase__sub {
        font-size: 20px;
    }

    .od-case-split__right .caso-card__body,
    .od-cases-grid .caso-card__body {
        min-height: 0;
    }

    .od-media {
        flex-direction: column;
        padding: 40px 0;
    }

    .od-media__visual img {
        max-height: 260px;
        object-fit: cover;
        object-position: center;
    }

    .od-media__body {
        padding-left: 0;
        padding-top: 24px;
        width: 100%;
    }

    .od-media__body .btn-primary {
        align-self: flex-start;
    }

    .od-informes {
        flex-direction: column;
        min-height: auto;
        padding: 40px 0 0;
        gap: 16px;
    }

    .od-informes__left,
    .od-informes__right {
        align-self: auto;
    }

    .od-informes__left img,
    .od-informes__right img {
        max-height: 220px;
        object-fit: cover;
    }

    .od-impact-grid,
    .od-how-grid,
    .od-modules-grid {
        grid-template-columns: 1fr;
    }

    .od-impact-card {
        font-size: 20px;
    }
}

@media (max-width: 576px) {
    .od-media__body .btn-primary {
        align-self: stretch;
        justify-content: center;
    }
}

/* ========================================
   SOLUCIONES PAGE
   ======================================== */

.solucion-about {
    padding: 0 clamp(20px, 3.06vw + 12px, 64px);
    width: 100%;
}

.solucion-about__divider {
    width: 100%;
    height: 1px;
    background: var(--scale-grey-500);
}

.solucion-about__inner {
    display: flex;
    align-items: flex-end;
    gap: clamp(40px, 6vw, 128px);
    padding: 64px 0;
}

.solucion-about__left {
    flex: 0 0 464px;
    max-width: 464px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.solucion-about__label {
    font-family: var(--font-display);
    font-size: clamp(24px, 0.56vw + 22px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
}

.solucion-about__subtitle {
    font-family: var(--font-display);
    font-size: clamp(18px, 0.42vw + 17px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
}

.solucion-about__right {
    flex: 1 1 0;
    min-width: 0;
}

.solucion-about__body p {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.4;
    color: var(--scale-grey-200);
}

.solucion-about__body p+p {
    margin-top: 16px;
}

.solucion-image {
    width: 100%;
    background: transparent;
    overflow: hidden;
    display: block;
}

.solucion-image picture {
    width: 100%;
    display: block;
}

.solucion-image img {
    width: 100%;
    max-height: 1130px;
    object-fit: cover;
    object-position: center top;
    display: block;
    border: none;
    outline: none;
    transform: scale(1.015);
    transform-origin: center top;
}

.solucion-center-cta {
    display: flex;
    justify-content: center;
    padding: 48px clamp(20px, 3.06vw + 12px, 64px);
}

.solucion-comp-wrap {
    padding: 0 clamp(20px, 3.06vw + 12px, 64px) 80px;
}

.solucion-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 32px;
}

.solucion-card {
    background-color: var(--scale-grey-900);
    border: 1px solid var(--scale-grey-500);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 24px;
}

.solucion-card__title {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.42vw + 19px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
}

.solucion-card__subtitle {
    font-family: var(--font-body);
    font-size: clamp(15px, 0.21vw + 14px, 18px);
    line-height: 1.2;
    font-weight: 700;
    color: var(--base-light);
}

.solucion-card__desc {
    font-family: var(--font-body);
    font-size: clamp(14px, 0.14vw + 13px, 16px);
    line-height: 1.4;
    color: var(--scale-grey-200);
    flex: 1;
}

.solucion-card__footer {
    margin-top: 8px;
}

.solucion-closing {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 80px clamp(20px, 3.06vw + 12px, 64px);
    text-align: center;
}

.solucion-closing__blue {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 32px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--primary-blue-300);
    max-width: 900px;
}

.solucion-closing__white {
    font-family: var(--font-display);
    font-size: clamp(20px, 0.83vw + 18px, 24px);
    line-height: 1.2;
    font-weight: 400;
    color: var(--base-light);
    max-width: 900px;
}

@media (max-width: 1100px) {
    .solucion-about__inner {
        flex-direction: column;
        align-items: flex-start;
        padding: 40px 0;
    }

    .solucion-about__left {
        flex: none;
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .solucion-cards {
        grid-template-columns: 1fr;
    }

    .solucion-closing {
        padding: 48px clamp(20px, 3.06vw + 12px, 64px);
    }

    .solucion-center-cta {
        display: none;
    }

    .solucion-image img {
        max-height: none;
        object-fit: cover;
        transform: scale(1.005);
    }
}

/* ========================================
   SISTEMA (ss-*) — sistema-anticolision.html
   ======================================== */

/* Hero */
.ss-hero {
    padding: 176px 20px 64px;
    text-align: center;
}

.ss-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 800px;
    margin: 0 auto;
}

.ss-hero__title {
    font-family: var(--font-display);
    font-size: 64px;
    font-weight: 400;
    line-height: 1;
    color: var(--base-light);
}

.ss-hero__subtitle {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--primary-blue-300, #9CCFFF);
}

/* Doble columna — Qué es / Para qué sirve */
.ss-twin-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    padding: 64px 0;
}

.ss-twin-col__block {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.ss-twin-col__row {
    display: flex;
    gap: 32px;
    align-items: flex-start;
}

.ss-twin-col__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--base-light);
    flex: 0 0 160px;
}

.ss-twin-col__body {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    color: var(--scale-grey-200, #CCC);
}

.ss-twin-col__img-wrap {
    margin-top: 8px;
}

.ss-twin-col__img-wrap img {
    width: 100%;
    max-width: 320px;
    height: 230px;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

/* Barra azul */
.ss-quote-bar {
    background: var(--primary-blue-300, #9CCFFF);
    padding: 20px 64px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    margin: 0 20px;
}

.ss-quote-bar__text {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--base-dark, #0F1011);
    text-align: center;
}

/* Section title shared */
.ss-section-title {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--base-light);
}

/* Impacto cards */
.ss-impact-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    padding-bottom: 0;
}

.ss-impact-card {
    background: var(--scale-grey-900, #1C1C21);
    border: 1px solid var(--scale-grey-500, #4C4949);
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ss-impact-card__icon-pill {
    background: var(--primary-blue-50, rgba(156, 207, 255, 0.2));
    border-radius: 100px;
    padding: 4px;
    width: fit-content;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ss-impact-card__text {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--base-light);
}

/* Big full-width image — no container, border to border */
.ss-big-image {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
}

.ss-big-image img {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 820px) {
    .ss-big-image {
        display: none;
    }
}

/* 2 imágenes/videos 50/50 */
.ss-media-pair {
    display: flex;
    gap: 64px;
    align-items: center;
    padding: 64px 0;
}

.ss-media-pair__item {
    flex: 1 0 0;
    min-width: 0;
}

.ss-media-pair__item img,
.ss-media-pair__item video {
    width: 100%;
    aspect-ratio: 76 / 39;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

/* Testimonial — título izq + card der */
.ss-testimonial {
    display: flex;
    gap: 64px;
    align-items: flex-start;
    padding: 64px 0;
}

.ss-testimonial__left {
    flex: 0 0 420px;
}

.ss-testimonial__right {
    flex: 1 0 0;
    min-width: 0;
}

.ss-testimonial-card {
    background: var(--scale-grey-900, #1C1C21);
    border: 1px solid var(--scale-grey-500, #4C4949);
    border-radius: 4px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.ss-testimonial-card__quote {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.2;
    color: var(--base-light);
}

.ss-testimonial-card__author {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ss-testimonial-card__name {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--base-light);
}

.ss-testimonial-card__role {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 1.12px;
    text-transform: uppercase;
    color: var(--primary-blue-300, #9CCFFF);
}

/* ── Responsive ss-* ── */
@media (max-width: 1100px) {
    .ss-impact-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 820px) {
    .ss-hero__title {
        font-size: 40px;
    }

    .ss-hero__subtitle {
        font-size: 20px;
    }

    .ss-section-title {
        font-size: 24px;
    }

    .ss-twin-col {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 40px 0;
    }

    .ss-twin-col__row {
        flex-direction: column;
        gap: 16px;
    }

    .ss-twin-col__heading {
        flex: none;
        width: 100%;
    }

    .ss-twin-col__img-wrap img {
        max-width: 100%;
        height: 200px;
    }

    .ss-quote-bar {
        margin: 0;
        padding: 20px 24px;
    }

    .ss-quote-bar__text {
        font-size: 18px;
    }

    .ss-impact-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ss-media-pair {
        flex-direction: column;
        gap: 16px;
        padding: 40px 0;
    }

    .ss-testimonial {
        flex-direction: column;
        gap: 32px;
        padding: 40px 0;
    }

    .ss-testimonial__left {
        flex: none;
        width: 100%;
    }
}

@media (max-width: 576px) {
    .ss-impact-grid {
        grid-template-columns: 1fr;
    }
}

/* ─────────────────────────────────────────
   404 ERROR PAGE
   ───────────────────────────────────────── */
.error404-main {
    min-height: calc(100vh - 80px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 176px clamp(16px, 5vw, 128px) 64px;
}

.error404-card {
    background: var(--scale-grey-900);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 32px 24px;
    width: 100%;
    max-width: 928px;
    min-height: 490px;
    justify-content: center;
}

.error404-card__img {
    width: 100%;
    max-width: 360px;
    height: auto;
    display: block;
    flex-shrink: 0;
}

.error404-card__content {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    max-width: 700px;
    text-align: center;
}

.error404-card__title {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--base-light);
    margin: 0 0 16px 0;
}

.error404-card__text {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--base-light);
    margin: 0 0 8px 0;
}

.error404-card__text--small {
    font-size: 12px;
    line-height: 1.5;
    color: var(--scale-grey-200);
    margin: 0;
}

.error404-card__link {
    color: var(--primary-blue-300);
    text-decoration: underline;
}

@media (max-width: 600px) {
    .error404-card {
        min-height: unset;
        padding: 24px 16px;
    }

    .error404-card__img {
        max-width: 220px;
    }

    .error404-card__title {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .error404-card__text {
        font-size: 14px;
    }
}

/* ─────────────────────────────────────────
   SCROLL ANIMATIONS — data-anim system
   ───────────────────────────────────────── */
[data-anim] {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

[data-anim].anim-in {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    [data-anim] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ─────────────────────────────────────────
    PAGINATION COMPONENT
   ───────────────────────────────────────── */

.casos-pagination {
    display: flex;
    justify-content: center;
    margin-top: 64px;
    margin-bottom: 64px;
}

.casos-pagination__list {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.casos-pagination__item .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 12px;
    border: 1px solid #d9e2ef;
    border-radius: 999px;
    color: #0c60d0;
    font-weight: 500;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.casos-pagination__item .page-numbers:hover,
.casos-pagination__item .page-numbers:focus-visible {
    border-color: #0c60d0;
    background-color: #eef5ff;
}

.casos-pagination__item .page-numbers.current {
    border-color: #0c60d0;
    background-color: #0c60d0;
    color: #ffffff;
}

.casos-pagination__item .page-numbers.dots {
    border-color: transparent;
    background-color: transparent;
    color: #64748b;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* ─────────────────────────────────────────
    CONTACT FORM 7 — estilos para el bloque de botones
   ───────────────────────────────────────── */

.form-actions {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    margin-top: 32px;
}

/* Por si Contact Form 7 agrega un <p> dentro o alrededor del bloque */
.form-actions p {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    margin: 0;
}

.form-actions .btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

/* ============================================
   CONTACT FORM 7 — MENSAJES DE RESPUESTA
   ============================================ */

.contacto-form-card .wpcf7-response-output {
    margin: 24px 0 0;
    padding: 8px 10px !important;
    border: 0;
    border-radius: 8px;
    border: none !important;
    ;
    font-size: 12px;
    line-height: 1.5;
}

.wpcf7-not-valid-tip {
    color: #FD9F9F !important;
    font-size: 12px !important;
}

/* Error de validación o envío */
.contacto-form-card .wpcf7 form.invalid .wpcf7-response-output,
.contacto-form-card .wpcf7 form.failed .wpcf7-response-output,
.contacto-form-card .wpcf7 form.aborted .wpcf7-response-output,
.contacto-form-card .wpcf7 form.spam .wpcf7-response-output,
.contacto-form-card .wpcf7 form.unaccepted .wpcf7-response-output {
    color: #FFFFFF;
    background-color: #952E2E;
}

/* Envío exitoso */
.contacto-form-card .wpcf7 form.sent .wpcf7-response-output {
    color: #FFFFFF;
    background-color: #00A035;
}

.capacidad-card__header {
    display: flex;
    align-items: center;
    gap: 8px;
}

.servicio-info-cta-end {
    display: flex;
    justify-content: end;
}


/* =====================================================
   UTILITY CLASSES FOR INLINE STYLES
   ===================================================== */

/* Margin utilities */
.margin-top-64 {
	margin-top: 64px;
}

.margin-top-96 {
	margin-top: 96px;
}

.margin-top-24 {
	margin-top: 24px;
}

.margin-top-8 {
	margin-top: 8px;
}

.margin-bottom-14 {
	margin-bottom: 14px;
}

/* Padding utilities */
.padding-top-0 {
	padding-top: 0 !important;
}

/* Gap utilities */
.gap-24 {
	gap: 24px;
}

/* Grid layout utilities */
.grid-layout {
	display: grid;
}

.grid-cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.grid-cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.grid-cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

/* Combined utilities */
.parallax-hero-margins {
	margin-top: 96px;
	margin-bottom: 14px;
}

.width-fit-content {
	width: fit-content;
}

.hero-no-padding {
	padding-top: 0 !important;
}

.btn__icon {
    position: relative;
    width: 24px;
    height: 24px;
    display: inline-block;
}

.btn__icon img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.btn__icon-default {
    opacity: 1;
    z-index: 2;
}

.btn__icon-hover {
    opacity: 0;
    z-index: 1;
}

.footer__social-btn:hover .btn__icon-default {
    opacity: 0;
}

.footer__social-btn:hover .btn__icon-hover {
    opacity: 1;
}

.btn__icon-hover {
    display: none;
}

.footer__social-btn:hover .btn__icon-hover {
    display: block;
}

.footer__social-btn:hover .btn__icon-default {
    display: none;
}