/*
 * Intelecta - Estilos principales
 * Archivo ordenado para mantenimiento manual.
 *
 * IMPORTANTE:
 * - No se han cambiado selectores ni valores.
 * - Solo se ha aplicado formato e indentación.
 * - Puedes reemplazar el contenido de /assets/css/main.css por este archivo.
 */

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:400;
    src:url(/assets/fonts/be-vietnam-pro-vietnamese-400-normal.CRcqvyg1.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-vietnamese-400-normal.BuGn0gnm.woff)format("woff");
    unicode-range:U+102-103,
    U+110-111,
    U+128-129,
    U+168-169,
    U+1A0-1A1,
    U+1AF-1B0,
    U+300-301,
    U+303-304,
    U+308-309,
    U+323,
    U+329,
    U+1EA0-1EF9,
    U+20AB
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:400;
    src:url(/assets/fonts/be-vietnam-pro-latin-ext-400-normal.CiZNW1ec.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-ext-400-normal.DYBYyMQr.woff)format("woff");
    unicode-range:U+100-2BA,
    U+2BD-2C5,
    U+2C7-2CC,
    U+2CE-2D7,
    U+2DD-2FF,
    U+304,
    U+308,
    U+329,
    U+1D00-1DBF,
    U+1E00-1E9F,
    U+1EF2-1EFF,
    U+2020,
    U+20A0-20AB,
    U+20AD-20C0,
    U+2113,
    U+2C60-2C7F,
    U+A720-A7FF
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:400;
    src:url(/assets/fonts/be-vietnam-pro-latin-400-normal.PpnXBOrz.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-400-normal.bXgqVju9.woff)format("woff");
    unicode-range:U+??,
    U+131,
    U+152-153,
    U+2BB-2BC,
    U+2C6,
    U+2DA,
    U+2DC,
    U+304,
    U+308,
    U+329,
    U+2000-206F,
    U+20AC,
    U+2122,
    U+2191,
    U+2193,
    U+2212,
    U+2215,
    U+FEFF,
    U+FFFD
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:500;
    src:url(/assets/fonts/be-vietnam-pro-vietnamese-500-normal.DREgrEoJ.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-vietnamese-500-normal.CfdwVo8-.woff)format("woff");
    unicode-range:U+102-103,
    U+110-111,
    U+128-129,
    U+168-169,
    U+1A0-1A1,
    U+1AF-1B0,
    U+300-301,
    U+303-304,
    U+308-309,
    U+323,
    U+329,
    U+1EA0-1EF9,
    U+20AB
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:500;
    src:url(/assets/fonts/be-vietnam-pro-latin-ext-500-normal.h0Fp6aX0.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-ext-500-normal.CK0UkkKf.woff)format("woff");
    unicode-range:U+100-2BA,
    U+2BD-2C5,
    U+2C7-2CC,
    U+2CE-2D7,
    U+2DD-2FF,
    U+304,
    U+308,
    U+329,
    U+1D00-1DBF,
    U+1E00-1E9F,
    U+1EF2-1EFF,
    U+2020,
    U+20A0-20AB,
    U+20AD-20C0,
    U+2113,
    U+2C60-2C7F,
    U+A720-A7FF
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:500;
    src:url(/assets/fonts/be-vietnam-pro-latin-500-normal.B6LVzGNe.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-500-normal.BJkVuMHw.woff)format("woff");
    unicode-range:U+??,
    U+131,
    U+152-153,
    U+2BB-2BC,
    U+2C6,
    U+2DA,
    U+2DC,
    U+304,
    U+308,
    U+329,
    U+2000-206F,
    U+20AC,
    U+2122,
    U+2191,
    U+2193,
    U+2212,
    U+2215,
    U+FEFF,
    U+FFFD
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:600;
    src:url(/assets/fonts/be-vietnam-pro-vietnamese-600-normal.nyU-ZL2p.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-vietnamese-600-normal.DkpCIyan.woff)format("woff");
    unicode-range:U+102-103,
    U+110-111,
    U+128-129,
    U+168-169,
    U+1A0-1A1,
    U+1AF-1B0,
    U+300-301,
    U+303-304,
    U+308-309,
    U+323,
    U+329,
    U+1EA0-1EF9,
    U+20AB
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:600;
    src:url(/assets/fonts/be-vietnam-pro-latin-ext-600-normal.BNd8euf0.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-ext-600-normal.BeUwKxhG.woff)format("woff");
    unicode-range:U+100-2BA,
    U+2BD-2C5,
    U+2C7-2CC,
    U+2CE-2D7,
    U+2DD-2FF,
    U+304,
    U+308,
    U+329,
    U+1D00-1DBF,
    U+1E00-1E9F,
    U+1EF2-1EFF,
    U+2020,
    U+20A0-20AB,
    U+20AD-20C0,
    U+2113,
    U+2C60-2C7F,
    U+A720-A7FF
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:600;
    src:url(/assets/fonts/be-vietnam-pro-latin-600-normal.BZDkUTrt.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-600-normal.5IO4e7bK.woff)format("woff");
    unicode-range:U+??,
    U+131,
    U+152-153,
    U+2BB-2BC,
    U+2C6,
    U+2DA,
    U+2DC,
    U+304,
    U+308,
    U+329,
    U+2000-206F,
    U+20AC,
    U+2122,
    U+2191,
    U+2193,
    U+2212,
    U+2215,
    U+FEFF,
    U+FFFD
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:700;
    src:url(/assets/fonts/be-vietnam-pro-vietnamese-700-normal.Csr0PCuG.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-vietnamese-700-normal.By_5yT39.woff)format("woff");
    unicode-range:U+102-103,
    U+110-111,
    U+128-129,
    U+168-169,
    U+1A0-1A1,
    U+1AF-1B0,
    U+300-301,
    U+303-304,
    U+308-309,
    U+323,
    U+329,
    U+1EA0-1EF9,
    U+20AB
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:700;
    src:url(/assets/fonts/be-vietnam-pro-latin-ext-700-normal.C8_gqRu2.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-ext-700-normal.4Hjo2OtD.woff)format("woff");
    unicode-range:U+100-2BA,
    U+2BD-2C5,
    U+2C7-2CC,
    U+2CE-2D7,
    U+2DD-2FF,
    U+304,
    U+308,
    U+329,
    U+1D00-1DBF,
    U+1E00-1E9F,
    U+1EF2-1EFF,
    U+2020,
    U+20A0-20AB,
    U+20AD-20C0,
    U+2113,
    U+2C60-2C7F,
    U+A720-A7FF
}

@font-face {
    font-family:Be Vietnam Pro;
    font-style:normal;
    font-display:swap;
    font-weight:700;
    src:url(/assets/fonts/be-vietnam-pro-latin-700-normal.DlW1Zbsh.woff2)format("woff2"),
    url(/assets/fonts/be-vietnam-pro-latin-700-normal.C2EtzaOi.woff)format("woff");
    unicode-range:U+??,
    U+131,
    U+152-153,
    U+2BB-2BC,
    U+2C6,
    U+2DA,
    U+2DC,
    U+304,
    U+308,
    U+329,
    U+2000-206F,
    U+20AC,
    U+2122,
    U+2191,
    U+2193,
    U+2212,
    U+2215,
    U+FEFF,
    U+FFFD
}

@font-face {
    font-family:Reddit Sans Variable;
    font-style:normal;
    font-display:swap;
    font-weight:200 900;
    src:url(/assets/fonts/reddit-sans-vietnamese-wght-normal.Dq6RSFnG.woff2)format("woff2-variations");
    unicode-range:U+102-103,
    U+110-111,
    U+128-129,
    U+168-169,
    U+1A0-1A1,
    U+1AF-1B0,
    U+300-301,
    U+303-304,
    U+308-309,
    U+323,
    U+329,
    U+1EA0-1EF9,
    U+20AB
}

@font-face {
    font-family:Reddit Sans Variable;
    font-style:normal;
    font-display:swap;
    font-weight:200 900;
    src:url(/assets/fonts/reddit-sans-latin-ext-wght-normal.BnZzAaJu.woff2)format("woff2-variations");
    unicode-range:U+100-2BA,
    U+2BD-2C5,
    U+2C7-2CC,
    U+2CE-2D7,
    U+2DD-2FF,
    U+304,
    U+308,
    U+329,
    U+1D00-1DBF,
    U+1E00-1E9F,
    U+1EF2-1EFF,
    U+2020,
    U+20A0-20AB,
    U+20AD-20C0,
    U+2113,
    U+2C60-2C7F,
    U+A720-A7FF
}

@font-face {
    font-family:Reddit Sans Variable;
    font-style:normal;
    font-display:swap;
    font-weight:200 900;
    src:url(/assets/fonts/reddit-sans-latin-wght-normal.BY_1BeEl.woff2)format("woff2-variations");
    unicode-range:U+??,
    U+131,
    U+152-153,
    U+2BB-2BC,
    U+2C6,
    U+2DA,
    U+2DC,
    U+304,
    U+308,
    U+329,
    U+2000-206F,
    U+20AC,
    U+2122,
    U+2191,
    U+2193,
    U+2212,
    U+2215,
    U+FEFF,
    U+FFFD
}

:root {
    color-scheme:light;
    --color-background:#f7f8f7;
    --color-surface:#fff;
    --color-surface-raised:#fff;
    --color-surface-soft:#eef4f3;
    --color-text:#173344;
    --color-text-muted:#506471;
    --color-brand-primary:#113952;
    --color-brand-secondary:#00acc9;
    --color-secondary-text:#006c80;
    --color-accent:#31d4a9;
    --color-border:#11395224;
    --color-shadow:#1139521c;
    --color-on-brand:#f7f8f7;
    --color-focus:#006d82;
    --font-heading:"Be Vietnam Pro",
     "Arial",
     sans-serif;
    --font-body:"Reddit Sans Variable",
     "Arial",
     sans-serif;
    --container:1200px;
    --gutter:clamp(1.25rem, 5vw, 4.5rem);
    --radius-small:.8rem;
    --radius-card:1.25rem;
    --radius-large:2rem;
    --shadow-card:0 18px 48px var(--color-shadow);
    font-family:var(--font-body);
    background:var(--color-background);
    color:var(--color-text);
    scroll-behavior:smooth;
    scroll-padding-top:6rem
}

:root[data-theme=dark] {
    color-scheme:dark;
    --color-background:#10232e;
    --color-surface:#172f3b;
    --color-surface-raised:#1c3947;
    --color-surface-soft:#203d49;
    --color-text:#f0f6f5;
    --color-text-muted:#bccbd0;
    --color-brand-primary:#a9e5e5;
    --color-brand-secondary:#39c4d6;
    --color-secondary-text:#64dce7;
    --color-accent:#40dbb2;
    --color-border:#ecf6f526;
    --color-shadow:#00000038;
    --color-on-brand:#10232e;
    --color-focus:#71e4ec
}

@media (prefers-color-scheme:dark) {
    :root:not([data-theme]) {
        color-scheme:dark;
        --color-background:#10232e;
        --color-surface:#172f3b;
        --color-surface-raised:#1c3947;
        --color-surface-soft:#203d49;
        --color-text:#f0f6f5;
        --color-text-muted:#bccbd0;
        --color-brand-primary:#a9e5e5;
        --color-brand-secondary:#39c4d6;
        --color-secondary-text:#64dce7;
        --color-accent:#40dbb2;
        --color-border:#ecf6f526;
        --color-shadow:#00000038;
        --color-on-brand:#10232e;
        --color-focus:#71e4ec
    }

}

* {
    box-sizing:border-box
}

.visually-hidden {
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    clip-path:inset(50%);
    width:1px;
    height:1px;
    position:absolute;
    overflow:hidden
}

html {
    min-width:320px
}

body {
    min-width:320px;
    margin:0;
    font-size:1rem;
    line-height:1.65
}

body,
button,
input,
textarea,
select {
    font-family:var(--font-body)
}

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

button,
a {
    -webkit-tap-highlight-color:transparent
}

a {
    color:inherit;
    text-underline-offset:.2em;
    text-decoration-thickness:.08em
}

a:hover {
    color:var(--color-secondary-text)
}

button {
    color:inherit
}

h1,
h2,
h3,
h4,
p {
    margin-top:0
}

h1,
h2,
h3,
h4 {
    font-family:var(--font-heading);
    letter-spacing:-.035em;
    line-height:1.12
}

h1 {
    font-size:clamp(2.8rem,6.4vw,5.25rem);
    font-weight:600
}

h2 {
    font-size:clamp(2.1rem,4vw,3.55rem);
    font-weight:600
}

h3 {
    font-size:clamp(1.25rem,2vw,1.55rem);
    font-weight:600
}

p {
    color:var(--color-text-muted)
}

::selection {
    background:var(--color-brand-secondary);
    color:#092c3b
}

:focus-visible {
    outline:3px solid var(--color-focus);
    outline-offset:4px;
    border-radius:.2rem
}

.skip-link {
    z-index:100;
    color:#fff;
    background:#113952;
    border-radius:.5rem;
    padding:.7rem 1rem;
    position:absolute;
    top:.75rem;
    left:.75rem;
    transform:translateY(-180%)
}

.skip-link:focus {
    transform:translateY(0)
}

.container {
    width:min(var(--container), calc(100% - 2 * var(--gutter)));
    margin-inline:auto
}

.section {
    padding-block:clamp(4.75rem,9vw,8.5rem)
}

.section--compact {
    padding-block:clamp(3.5rem,6vw,5.75rem)
}

.section--soft {
    background:var(--color-surface-soft)
}

.section--dark {
    color:#f7f8f7;
    background:#113952
}

.section--dark p {
    color:#f7f8f7c4
}

.eyebrow {
    color:var(--color-secondary-text);
    letter-spacing:.13em;
    text-transform:uppercase;
    align-items:center;
    gap:.55rem;
    margin-bottom:1.1rem;
    font-size:.76rem;
    font-weight:700;
    line-height:1.4;
    display:inline-flex
}

.eyebrow:before {
    content:"";
    background:currentColor;
    width:1.3rem;
    height:2px
}

.section-heading {
    max-width:780px;
    margin-bottom:2.7rem
}

.section-heading h2 {
    max-width:17ch;
    margin-bottom:1rem
}

.section-heading p {
    max-width:68ch;
    margin-bottom:0;
    font-size:clamp(1.05rem,1.5vw,1.18rem)
}

.section-heading--center {
    text-align:center;
    margin-inline:auto
}

.section-heading--center h2,
.section-heading--center p {
    margin-inline:auto
}

.section-heading--light h2 {
    color:#f7f8f7
}

.section-heading--light .eyebrow {
    color:#5cdecb
}

.button {
    cursor:pointer;
    text-align:center;
    border:1px solid #0000;
    border-radius:999px;
    justify-content:center;
    align-items:center;
    gap:.65rem;
    min-height:3.25rem;
    padding:.8rem 1.2rem;
    font-size:.96rem;
    font-weight:700;
    line-height:1.2;
    text-decoration:none;
    transition:transform .18s,
    background-color .18s,
    border-color .18s,
    color .18s;
    display:inline-flex
}

.button:hover {
    transform:translateY(-2px)
}

.button--primary {
    color:#092c3b;
    background:var(--color-accent)
}

.button--primary:hover {
    color:#092c3b;
    background:#5ce5c2
}

.button--outline {
    color:var(--color-text);
    border-color:var(--color-border);
    background:0 0
}

.button--outline:hover {
    color:var(--color-secondary-text);
    border-color:var(--color-brand-secondary)
}

.button--inverse {
    color:#113952;
    background:#f7f8f7
}

.button--inverse:hover {
    color:#113952;
    background:#dff6ef
}

.text-link {
    color:var(--color-secondary-text);
    align-items:center;
    gap:.4rem;
    font-weight:700;
    text-decoration:none;
    display:inline-flex
}

.text-link:hover {
    gap:.65rem
}

.button-row {
    flex-wrap:wrap;
    align-items:center;
    gap:.8rem;
    display:flex
}

.site-header {
    z-index:50;
    border-bottom:1px solid var(--color-border);
    background:color-mix(in srgb, var(--color-background) 91%, transparent);
    backdrop-filter:blur(16px);
    position:sticky;
    top:0
}

.header-inner {
    justify-content:space-between;
    align-items:center;
    gap:1.3rem;
    min-height:5.25rem;
    display:flex
}

.brand-lockup {
    flex:none;
    width:clamp(7.5rem,12vw,9.5rem);
    display:block
}

.brand-logo {
    width:100%;
    height:auto
}

.brand-logo--dark,
:root[data-theme=dark] .brand-logo--light {
    display:none
}

:root[data-theme=dark] .brand-logo--dark {
    display:block
}

@media (prefers-color-scheme:dark) {
    :root:not([data-theme]) .brand-logo--light {
        display:none
    }

    :root:not([data-theme]) .brand-logo--dark {
        display:block
    }

}

.desktop-nav {
    align-items:center;
    gap:clamp(.8rem,1.55vw,1.45rem);
    display:flex
}

.desktop-nav a,
.mobile-nav a {
    color:var(--color-text);
    white-space:nowrap;
    font-size:.87rem;
    font-weight:600;
    text-decoration:none
}

.desktop-nav a:hover,
.mobile-nav a:hover {
    color:var(--color-secondary-text)
}

.header-actions {
    align-items:center;
    gap:.7rem;
    display:flex
}

.header-cta {
    min-height:2.75rem;
    padding-inline:1rem;
    font-size:.88rem
}

.icon-button {
    border:1px solid var(--color-border);
    width:2.75rem;
    height:2.75rem;
    color:var(--color-text);
    cursor:pointer;
    background:0 0;
    border-radius:50%;
    flex:none;
    place-items:center;
    display:inline-grid
}

.icon-button:hover {
    border-color:var(--color-brand-secondary);
    color:var(--color-secondary-text)
}

.icon-button svg {
    width:1.1rem;
    height:1.1rem
}

.language-switcher {
    align-items:center;
    gap:.28rem;
    font-size:.77rem;
    font-weight:700;
    display:inline-flex
}

.language-switcher a {
    color:var(--color-text-muted);
    border-radius:.3rem;
    padding:.28rem .36rem;
    text-decoration:none
}

.language-switcher a[aria-current=page] {
    color:var(--color-brand-primary);
    background:var(--color-surface-soft)
}

.mobile-navigation {
    display:none;
    position:relative
}

.mobile-navigation summary {
    border:1px solid var(--color-border);
    cursor:pointer;
    border-radius:50%;
    place-items:center;
    width:2.75rem;
    height:2.75rem;
    list-style:none;
    display:grid
}

.mobile-navigation summary::-webkit-details-marker {
    display:none
}

.mobile-navigation summary svg {
    width:1.2rem;
    height:1.2rem
}

.mobile-nav {
    border:1px solid var(--color-border);
    background:var(--color-surface);
    width:min(19rem,100vw - 2.5rem);
    box-shadow:var(--shadow-card);
    border-radius:1rem;
    gap:.15rem;
    padding:.6rem;
    display:grid;
    position:absolute;
    top:calc(100% + .75rem);
    right:0
}

.mobile-nav a {
    border-radius:.65rem;
    padding:.85rem 1rem;
    font-size:1rem;
    display:block
}

.mobile-nav a:hover {
    background:var(--color-surface-soft)
}

.hero {
    isolation:isolate;
    padding-block:clamp(4.3rem,8vw,7.4rem) clamp(4.5rem,8vw,7rem);
    position:relative;
    overflow:hidden
}

.hero:before {
    z-index:-1;
    border:1px solid var(--color-border);
    content:"";
    border-radius:50%;
    width:53rem;
    height:53rem;
    position:absolute;
    top:-14rem;
    right:-16rem
}

.hero:after {
    z-index:-1;
    border:1px solid var(--color-border);
    content:"";
    border-radius:50%;
    width:39rem;
    height:39rem;
    position:absolute;
    top:-7rem;
    right:-9rem
}

.hero-grid {
    grid-template-columns:minmax(0,1.25fr) minmax(17rem,.75fr);
    align-items:center;
    gap:clamp(2rem,4vw,4rem);
    display:grid
}

.hero-copy {
    max-width:700px
}

.hero h1 {
    max-width:24ch;
    margin-bottom:1.4rem;
    font-size:clamp(2.4rem,3.3vw,3.1rem)
}

.hero h1 .highlight {
    color:var(--color-secondary-text)
}

.hero-copy>p {
    max-width:58ch;
    margin-bottom:1.7rem;
    font-size:clamp(1.1rem,1.6vw,1.28rem)
}

.hero-principle {
    color:var(--color-text);
    align-items:center;
    gap:.75rem;
    margin-top:2rem;
    font-size:.93rem;
    font-weight:600;
    display:flex
}

.hero-principle:before {
    content:"";
    background:var(--color-accent);
    flex:none;
    width:2.4rem;
    height:2px
}

.hero-visual {
    place-items:center;
    min-height:28rem;
    display:grid;
    position:relative
}

.technology-diagram {
    aspect-ratio:1;
    width:min(100%,35rem);
    position:relative
}

.technology-diagram:before,
.technology-diagram:after {
    border:1px solid var(--color-border);
    content:"";
    border-radius:50%;
    position:absolute;
    inset:13%
}

.technology-diagram:after {
    inset:27%
}

.diagram-orbit {
    border:1px dashed color-mix(in srgb, var(--color-brand-secondary) 43%, transparent);
    border-radius:50%;
    position:absolute;
    inset:4%;
    transform:rotate(-24deg)scaleY(.56)
}

.diagram-orbit--two {
    border-style:solid;
    border-color:color-mix(in srgb, var(--color-accent) 46%, transparent);
    inset:15%;
    transform:rotate(28deg)scaleY(.72)
}

.diagram-core {
    z-index:2;
    background:linear-gradient(145deg,#00acc9,#31d4a9);
    border:1px solid #ffffffa6;
    border-radius:50%;
    place-items:center;
    display:grid;
    position:absolute;
    inset:37%;
    box-shadow:0 15px 50px #00acc947
}

.diagram-core svg {
    color:#113952;
    width:40%
}

.diagram-node {
    z-index:3;
    border:1px solid var(--color-border);
    min-width:7.7rem;
    color:var(--color-text);
    background:var(--color-surface);
    box-shadow:0 12px 32px var(--color-shadow);
    text-align:center;
    border-radius:.9rem;
    padding:.75rem .85rem;
    font-size:.82rem;
    font-weight:700;
    position:absolute
}

.diagram-node:before {
    content:"";
    background:var(--color-accent);
    vertical-align:.02em;
    border-radius:50%;
    width:.5rem;
    height:.5rem;
    margin-right:.4rem;
    display:inline-block
}

.diagram-node--one {
    top:9%;
    left:36%
}

.diagram-node--two {
    top:37%;
    right:-1%
}

.diagram-node--three {
    bottom:13%;
    right:10%
}

.diagram-node--four {
    bottom:15%;
    left:7%
}

.diagram-node--five {
    top:31%;
    left:-4%
}

.hero-caption {
    color:var(--color-text-muted);
    letter-spacing:.08em;
    text-transform:uppercase;
    font-size:.78rem;
    position:absolute;
    bottom:.75rem;
    right:0
}

.trust-strip {
    border-top:1px solid var(--color-border);
    border-bottom:1px solid var(--color-border);
    background:var(--color-surface)
}

.trust-inner {
    grid-template-columns:.8fr 1.4fr;
    align-items:center;
    gap:2rem;
    padding-block:2rem;
    display:grid
}

.trust-inner h2 {
    letter-spacing:-.025em;
    max-width:17ch;
    margin:0;
    font-size:clamp(1.25rem,2.1vw,1.8rem)
}

.trust-logos {
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:.55rem;
    display:flex
}

.client-name {
    border:1px solid var(--color-border);
    color:var(--color-text-muted);
    border-radius:999px;
    padding:.5rem .85rem;
    font-size:.82rem;
    font-weight:600
}

.capability-grid {
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:1rem;
    display:grid
}

.capability-card,
.product-card,
.article-card,
.testimonial-card,
.info-card {
    border:1px solid var(--color-border);
    border-radius:var(--radius-card);
    background:var(--color-surface)
}

.capability-card {
    flex-direction:column;
    min-height:19rem;
    padding:1.35rem;
    transition:transform .18s,
    box-shadow .18s;
    display:flex
}

.capability-card:hover {
    box-shadow:var(--shadow-card);
    transform:translateY(-4px)
}

.card-number {
    color:var(--color-secondary-text);
    font-family:var(--font-heading);
    letter-spacing:.08em;
    margin-bottom:2rem;
    font-size:.78rem;
    font-weight:700;
    display:block
}

.capability-card h3 {
    margin-bottom:.7rem;
    font-size:1.18rem
}

.capability-card p {
    margin-bottom:1.2rem;
    font-size:.91rem
}

.capability-card .text-link {
    margin-top:auto;
    font-size:.88rem
}

.section-footer {
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    margin-top:2rem;
    display:flex
}

.section-note {
    color:var(--color-text-muted);
    margin:1.2rem 0 0;
    font-size:.84rem
}

.sap-feature {
    isolation:isolate;
    color:#f7f8f7;
    background:#113952;
    position:relative;
    overflow:hidden
}

.sap-feature:after {
    z-index:-1;
    content:"";
    border:1px solid #ffffff21;
    border-radius:50%;
    width:43rem;
    height:43rem;
    position:absolute;
    bottom:-20rem;
    right:-4rem
}

.sap-feature-inner {
    grid-template-columns:minmax(0,1fr) minmax(17rem,.75fr);
    align-items:center;
    gap:4rem;
    display:grid
}

.sap-feature h2 {
    color:#fff;
    max-width:15ch
}

.sap-feature .eyebrow {
    color:#5cdecb
}

.sap-feature p {
    color:#f7f8f7c7;
    max-width:62ch;
    font-size:1.1rem
}

.sap-feature .text-link {
    color:#74dce5
}

.sap-technology-list {
    flex-wrap:wrap;
    gap:.55rem;
    margin:1.7rem 0 2rem;
    padding:0;
    list-style:none;
    display:flex
}

.sap-technology-list li {
    color:#e9f4f2;
    border:1px solid #ffffff38;
    border-radius:999px;
    padding:.48rem .72rem;
    font-size:.82rem
}

.sap-visual {
    place-items:center;
    min-height:18rem;
    display:grid;
    position:relative
}

.sap-visual:before {
    content:"";
    border:1px solid #ffffff3b;
    border-radius:50%;
    width:17rem;
    height:17rem;
    position:absolute
}

.sap-visual:after {
    content:"";
    border:1px solid #31d4a985;
    border-radius:50%;
    width:11rem;
    height:11rem;
    position:absolute
}

.sap-visual-center {
    z-index:1;
    aspect-ratio:1;
    color:#113952;
    width:7rem;
    font-family:var(--font-heading);
    background:#31d4a9;
    border-radius:50%;
    place-items:center;
    font-weight:700;
    display:grid
}

.sap-chip {
    color:#fff;
    background:#113952b3;
    border:1px solid #fff3;
    border-radius:.65rem;
    padding:.55rem .75rem;
    font-size:.8rem;
    font-weight:600;
    position:absolute
}

.sap-chip--one {
    top:.5rem;
    left:20%
}

.sap-chip--two {
    top:39%;
    right:-1rem
}

.sap-chip--three {
    bottom:.75rem;
    left:21%
}

.product-grid {
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
    display:grid
}

.product-card {
    flex-direction:column;
    min-height:19rem;
    padding:clamp(1.4rem,2.5vw,2rem);
    transition:transform .18s,
    box-shadow .18s;
    display:flex
}

.product-card:hover {
    box-shadow:var(--shadow-card);
    transform:translateY(-4px)
}

.product-card--featured {
    border-color:color-mix(in srgb, var(--color-brand-secondary) 50%, var(--color-border))
}

.product-category {
    color:var(--color-secondary-text);
    letter-spacing:.1em;
    text-transform:uppercase;
    margin-bottom:1.4rem;
    font-size:.74rem;
    font-weight:700
}

.product-card h3 {
    margin-bottom:.7rem;
    font-size:clamp(1.5rem,2.2vw,2rem)
}

.product-card p {
    max-width:31ch;
    margin-bottom:1.5rem
}

.product-card .text-link {
    margin-top:auto
}

.complementary-row {
    border-top:1px solid var(--color-border);
    flex-wrap:wrap;
    align-items:center;
    gap:.7rem;
    margin-top:2.1rem;
    padding-top:1.4rem;
    display:flex
}

.complementary-label {
    color:var(--color-text-muted);
    margin-right:.35rem;
    font-size:.83rem;
    font-weight:600
}

.complementary-row a {
    border:1px solid var(--color-border);
    color:var(--color-text-muted);
    border-radius:.7rem;
    padding:.55rem .8rem;
    font-size:.83rem;
    text-decoration:none
}

.complementary-row a:hover {
    border-color:var(--color-brand-secondary);
    color:var(--color-secondary-text)
}

.tower-banner {
    isolation:isolate;
    border-radius:var(--radius-large);
    color:#f7f8f7;
    background:#113952;
    padding:clamp(2.2rem,6vw,5rem);
    position:relative;
    overflow:hidden
}

.tower-banner:after {
    z-index:-1;
    content:"";
    border:1px solid #f7f8f72e;
    border-radius:50%;
    width:34rem;
    height:34rem;
    position:absolute;
    bottom:-18rem;
    right:-8rem
}

.tower-banner-content {
    max-width:60rem
}

.tower-banner h2 {
    color:#fff;
    max-width:18ch
}

.tower-banner .eyebrow {
    color:#5cdecb
}

.tower-banner p {
    color:#f7f8f7c2;
    max-width:57ch
}

.tower-brand {
    font-family:var(--font-heading);
    flex-wrap:wrap;
    align-items:baseline;
    gap:.7rem;
    margin-bottom:1rem;
    font-size:clamp(1.4rem,3vw,2rem);
    font-weight:600;
    display:flex
}

.tower-brand small {
    color:#f7f8f7ad;
    font-family:var(--font-body);
    font-size:.9rem;
    font-weight:500
}

.tower-principles {
    color:#b2f6e7;
    letter-spacing:.11em;
    flex-wrap:wrap;
    gap:.45rem;
    margin:1.3rem 0 1.8rem;
    font-size:.77rem;
    font-weight:700;
    display:flex
}

.tower-principles span+span:before {
    color:#ffffff6b;
    content:"/";
    margin-right:.45rem
}

.testimonial-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
    display:grid
}

.testimonial-card {
    flex-direction:column;
    min-height:16rem;
    padding:1.5rem;
    display:flex
}

.quote-mark {
    color:var(--color-brand-secondary);
    margin-bottom:.55rem;
    font-family:Georgia,
    serif;
    font-size:2.6rem;
    line-height:1
}

.testimonial-card blockquote {
    color:var(--color-text);
    margin:0 0 1.4rem;
    font-size:.96rem;
    line-height:1.65
}

.testimonial-byline {
    border-top:1px solid var(--color-border);
    margin-top:auto;
    padding-top:.9rem;
    font-size:.87rem;
    font-weight:700
}

.testimonial-byline span {
    color:var(--color-text-muted);
    font-size:.8rem;
    font-weight:500;
    display:block
}

.article-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
    display:grid
}

.article-card {
    flex-direction:column;
    min-height:15rem;
    padding:1.4rem;
    text-decoration:none;
    transition:transform .18s,
    box-shadow .18s;
    display:flex
}

.article-card:hover {
    box-shadow:var(--shadow-card);
    transform:translateY(-4px)
}

.article-card .article-topic {
    color:var(--color-secondary-text);
    letter-spacing:.1em;
    text-transform:uppercase;
    margin-bottom:1.2rem;
    font-size:.73rem;
    font-weight:700
}

.article-card h3 {
    margin-bottom:1.4rem;
    font-size:1.2rem
}

.article-card .text-link {
    margin-top:auto
}

.article-language {
    color:var(--color-text-muted);
    margin-top:.8rem;
    font-size:.78rem
}

.presence-panel {
    border:1px solid var(--color-border);
    border-radius:var(--radius-large);
    background:var(--color-surface);
    grid-template-columns:minmax(0,1fr) minmax(15rem,.65fr);
    align-items:center;
    gap:3rem;
    padding:clamp(1.8rem,4vw,3rem);
    display:grid
}

.presence-panel h2 {
    max-width:14ch;
    margin-bottom:1rem
}

.presence-panel p {
    max-width:55ch;
    margin-bottom:0
}

.presence-list {
    grid-template-columns:repeat(2,1fr);
    gap:.7rem;
    margin:0;
    padding:0;
    list-style:none;
    display:grid
}

.presence-list li {
    border:1px solid var(--color-border);
    color:var(--color-text);
    border-radius:.75rem;
    padding:.8rem 1rem;
    font-size:.93rem;
    font-weight:600
}

.final-cta {
    color:#f7f8f7;
    background:#113952;
    padding-block:clamp(4.5rem,8vw,7rem)
}

.final-cta-grid {
    grid-template-columns:minmax(0,1fr) minmax(18rem,.72fr);
    align-items:center;
    gap:3rem;
    display:grid
}

.final-cta h2 {
    color:#fff;
    max-width:13ch
}

.final-cta p {
    color:#f7f8f7c2;
    max-width:48ch
}

.final-cta .eyebrow {
    color:#5cdecb
}

.site-footer {
    color:#f7f8f7;
    background:#0b2b3d;
    padding-block:3.2rem 1.5rem
}

.footer-main {
    grid-template-columns:1.15fr repeat(4,minmax(0,.72fr));
    gap:1.5rem;
    padding-bottom:2.7rem;
    display:grid
}

.footer-brand {
    max-width:15rem
}

.footer-logo {
    height:auto;
    max-width:220px;
    margin:auto;
    margin-bottom:20px;
}

.footer-brand p {
    color:#f7f8f7a6;
    font-size:.91rem
}

.footer-group h2 {
    color:#fff;
    font-family:var(--font-body);
    letter-spacing:.08em;
    text-transform:uppercase;
    margin:.2rem 0 1rem;
    font-size:.82rem;
    font-weight:700
}

.footer-group ul {
    gap:.56rem;
    margin:0;
    padding:0;
    list-style:none;
    display:grid
}

.footer-group a,
.footer-group p {
    color:#f7f8f7b8;
    font-size:.87rem;
    text-decoration:none
}

.footer-group a:hover {
    color:#5cdecb
}

.footer-locations {
    gap:.45rem;
    display:grid
}

.footer-locations a {
    justify-content:space-between;
    gap:.5rem;
    display:flex
}

.footer-bottom {
    color:#f7f8f78f;
    border-top:1px solid #f7f8f726;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:.8rem;
    padding-top:1.2rem;
    font-size:.78rem;
    display:flex
}

.footer-legal {
    flex-wrap:wrap;
    gap:1rem;
    display:flex
}

.footer-bottom a {
    color:inherit;
    text-decoration:none
}

.page-hero {
    padding-block:clamp(4rem,7vw,6.5rem) 3rem
}

.page-hero h1 {
    max-width:15ch;
    margin-bottom:1.1rem;
    font-size:clamp(2.7rem,5vw,4.5rem)
}

.page-hero>.container>p {
    max-width:65ch;
    font-size:clamp(1.05rem,1.55vw,1.23rem)
}

.breadcrumbs {
    color:var(--color-text-muted);
    margin-bottom:1.5rem;
    font-size:.82rem
}

.breadcrumbs ol {
    flex-wrap:wrap;
    align-items:center;
    gap:.55rem;
    margin:0;
    padding:0;
    list-style:none;
    display:flex
}

.breadcrumbs li+li:before {
    color:var(--color-text-muted);
    content:"/";
    margin-right:.55rem
}

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

.breadcrumb-current {
    color:var(--color-text);
    font-weight:600
}

.tower-page-hero {
    isolation:isolate;
    color:#f7f8f7;
    background:#113952;
    position:relative;
    overflow:hidden
}

.tower-page-hero:after {
    z-index:-1;
    content:"";
    border:1px solid #ffffff24;
    border-radius:50%;
    width:47rem;
    height:47rem;
    position:absolute;
    bottom:-24rem;
    right:-11rem
}

.tower-page-hero h1 {
    color:#fff
}

.tower-page-hero p {
    color:#f7f8f7c4;
    max-width:63ch;
    font-size:clamp(1.1rem,1.6vw,1.28rem)
}

.tower-page-hero .eyebrow {
    color:#5cdecb
}

.tower-tagline {
    color:#a7eee1;
    margin-block:1rem 1.5rem;
    font-size:1.04rem;
    font-weight:600
}

.tower-hero-grid {
    grid-template-columns:minmax(0,1fr) minmax(16rem,.6fr);
    align-items:center;
    gap:3rem;
    display:grid
}

.tower-hero-visual {
    place-items:center;
    min-height:18rem;
    display:grid;
    position:relative
}

.tower-hero-orbit,
.tower-hero-orbit:before,
.tower-hero-orbit:after {
    content:"";
    border:1px solid #5cdecb80;
    border-radius:50%;
    position:absolute
}

.tower-hero-orbit {
    width:17rem;
    height:17rem
}

.tower-hero-orbit:before {
    border-color:#ffffff47;
    inset:1.5rem
}

.tower-hero-orbit:after {
    border-color:#fff3;
    inset:3.5rem
}

.tower-hero-mark {
    z-index:2;
    color:#113952;
    width:8rem;
    height:8rem;
    font-family:var(--font-heading);
    background:#31d4a9;
    border-radius:50%;
    place-items:center;
    font-size:1.55rem;
    font-weight:700;
    display:grid;
    position:relative
}

.pillar-grid {
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
    display:grid
}

.pillar-card {
    border:1px solid var(--color-border);
    border-radius:var(--radius-card);
    background:var(--color-surface);
    padding:1.6rem
}

.pillar-label {
    color:var(--color-secondary-text);
    letter-spacing:.12em;
    margin-bottom:1.1rem;
    font-size:.77rem;
    font-weight:700;
    display:inline-block
}

.pillar-card h3 {
    margin-bottom:.8rem
}

.pillar-card p {
    margin-bottom:1rem
}

.pillar-card ul {
    color:var(--color-text-muted);
    gap:.5rem;
    margin:0;
    padding-left:1.15rem;
    font-size:.89rem;
    display:grid
}

.ecosystem-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:.75rem;
    display:grid
}

.ecosystem-item {
    border:1px solid var(--color-border);
    background:var(--color-surface);
    border-radius:.85rem;
    padding:1rem;
    font-weight:600
}

.callout {
    border:1px solid var(--color-border);
    border-left:4px solid var(--color-brand-secondary);
    border-radius:0 var(--radius-card) var(--radius-card) 0;
    background:var(--color-surface);
    padding:clamp(1.4rem,3.5vw,2.6rem)
}

.callout h2,
.callout h3 {
    margin-bottom:.8rem
}

.callout p:last-child {
    margin-bottom:0
}

.steps-grid {
    counter-reset:project-steps;
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
    display:grid
}

.step-card {
    border-top:2px solid var(--color-brand-secondary);
    background:var(--color-surface);
    padding:1.4rem
}

.step-card:before {
    color:var(--color-brand-secondary);
    counter-increment:project-steps;
    content:"0" counter(project-steps);
    font-family:var(--font-heading);
    margin-bottom:1.4rem;
    font-size:.83rem;
    font-weight:700;
    display:block
}

.deliverables-list {
    grid-template-columns:repeat(3,1fr);
    gap:.6rem;
    margin:0;
    padding:0;
    list-style:none;
    display:grid
}

.deliverables-list li {
    border:1px solid var(--color-border);
    background:var(--color-surface);
    color:var(--color-text-muted);
    border-radius:.65rem;
    padding:.75rem .9rem;
    font-size:.9rem
}

.modality-grid {
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
    display:grid
}

.modality-card {
    border:1px solid var(--color-border);
    border-radius:var(--radius-card);
    background:var(--color-surface);
    padding:1.5rem
}

.modality-card h3 {
    margin-bottom:.65rem
}

.modality-card p {
    margin:0
}

.faq-list {
    gap:.65rem;
    max-width:850px;
    display:grid
}

.faq-list details {
    border:1px solid var(--color-border);
    background:var(--color-surface);
    border-radius:.85rem
}

.faq-list summary {
    color:var(--color-text);
    cursor:pointer;
    padding:1.1rem 3rem 1.1rem 1.1rem;
    font-weight:700;
    list-style:none;
    position:relative
}

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

.faq-list summary:after {
    content:"+";
    color:var(--color-brand-secondary);
    font-size:1.4rem;
    line-height:1;
    position:absolute;
    top:50%;
    right:1.1rem;
    transform:translateY(-50%)
}

.faq-list details[open] summary:after {
    content:"−"
}

.faq-answer {
    padding:0 1.1rem 1.1rem
}

.faq-answer p:last-child {
    margin-bottom:0
}

.bigin-panel {
    border-radius:var(--radius-card);
    background:#ffffff12;
    border:1px solid #fff3;
    padding:1.4rem
}

.bigin-panel--light {
    border-color:var(--color-border);
    background:var(--color-surface)
}

.bigin-panel h2,
.bigin-panel h3 {
    color:#fff;
    letter-spacing:-.02em;
    margin-bottom:.6rem;
    font-size:1.25rem
}

.bigin-panel p {
    color:#f7f8f7c2;
    margin-bottom:1rem;
    font-size:.9rem
}

.phone-list {
    gap:.4rem;
    margin:0;
    padding:0;
    list-style:none;
    display:grid
}

.phone-list a {
    color:#f7f8f7;
    justify-content:space-between;
    gap:.7rem;
    font-size:.85rem;
    text-decoration:none;
    display:flex
}

.phone-list a:hover {
    color:#5cdecb
}

.bigin-panel--light h2,
.bigin-panel--light h3 {
    color:var(--color-text)
}

.bigin-panel--light p {
    color:var(--color-text-muted)
}

.bigin-panel--light .phone-list a {
    color:var(--color-text)
}

.bigin-panel--light .phone-list a:hover {
    color:var(--color-secondary-text)
}

.legal-content {
    max-width:820px;
    padding-bottom:6rem
}

.legal-content h1 {
    margin-bottom:2rem;
    font-size:clamp(2.5rem,4.5vw,3.8rem)
}

.legal-content h2 {
    letter-spacing:-.02em;
    margin:2.1rem 0 .8rem;
    font-size:1.45rem
}

.legal-content p,
.legal-content li {
    color:var(--color-text-muted)
}

.legal-content ul {
    gap:.35rem;
    padding-left:1.3rem;
    display:grid
}

.legal-content a {
    color:var(--color-secondary-text)
}

.placeholder-panel {
    border:1px solid var(--color-border);
    border-radius:var(--radius-card);
    background:var(--color-surface);
    padding:clamp(1.5rem,3vw,2.4rem)
}

.placeholder-panel h2 {
    font-size:1.45rem
}

.placeholder-panel p:last-child {
    margin-bottom:0
}

.about-intro {
    grid-template-columns:1fr .7fr;
    align-items:center;
    gap:2rem;
    display:grid
}

.about-intro .info-card {
    padding:1.5rem
}

.error-page {
    align-items:center;
    min-height:60vh;
    display:grid
}

@media (width<=1120px) {
    .desktop-nav {
        gap:.75rem
    }

    .desktop-nav a {
        font-size:.8rem
    }

    .capability-grid {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }

    .footer-main {
        grid-template-columns:1.2fr repeat(2,minmax(0,1fr))
    }

}

@media (width<=880px) {
    .desktop-nav {
        display:none
    }

    .mobile-navigation {
        display:block
    }

    .hero-grid {
        grid-template-columns:1fr
    }

    .hero-copy {
        max-width:760px
    }

    .hero-visual {
        width:min(100%,34rem);
        min-height:23rem;
        margin:0 auto
    }

    .hero-caption {
        right:1rem
    }

    .trust-inner {
        grid-template-columns:1fr
    }

    .trust-logos {
        justify-content:flex-start
    }

    .capability-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .sap-feature-inner {
        grid-template-columns:1fr;
        gap:2rem
    }

    .sap-visual {
        min-height:17rem
    }

    .testimonial-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .presence-panel,
    .final-cta-grid {
        grid-template-columns:1fr;
        gap:1.7rem
    }

    .footer-main {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .footer-brand {
        grid-column:1/-1
    }

    .tower-hero-grid {
        grid-template-columns:1fr
    }

    .tower-hero-visual {
        display:none
    }

    .ecosystem-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

}

@media (width<=600px) {
    :root {
        --gutter:1.15rem
    }

    .header-inner {
        gap:.6rem;
        min-height:4.5rem
    }

    .brand-lockup {
        width:7.2rem
    }

    .header-actions {
        gap:.45rem
    }

    .header-cta {
        display:none
    }

    .language-switcher {
        font-size:.72rem
    }

    .icon-button,
    .mobile-navigation summary {
        width:2.55rem;
        height:2.55rem
    }

    .hero {
        padding-top:3.4rem
    }

    .hero h1 {
        max-width:12ch;
        font-size:clamp(2rem,9vw,3.2rem)
    }

    .hero-visual {
        min-height:auto;
        margin-top:.7rem
    }

    .technology-diagram {
        width:min(100%,25rem)
    }

    .diagram-node {
        min-width:6.5rem;
        padding:.55rem .5rem;
        font-size:.72rem
    }

    .diagram-node--two {
        right:-2%
    }

    .diagram-node--five {
        left:-3%
    }

    .hero-caption {
        text-align:right;
        margin-top:.6rem;
        position:static
    }

    .trust-inner {
        padding-block:1.5rem
    }

    .trust-logos {
        gap:.4rem
    }

    .client-name {
        padding:.43rem .65rem;
        font-size:.75rem
    }

    .capability-grid,
    .product-grid,
    .testimonial-grid,
    .article-grid,
    .pillar-grid,
    .steps-grid,
    .modality-grid,
    .about-intro {
        grid-template-columns:1fr
    }

    .capability-card {
        min-height:15rem
    }

    .card-number {
        margin-bottom:1.2rem
    }

    .section-footer {
        flex-direction:column;
        align-items:flex-start
    }

    .product-card {
        min-height:16rem
    }

    .tower-banner {
        border-radius:1.4rem;
        padding:1.65rem
    }

    .presence-panel {
        padding:1.4rem
    }

    .presence-list {
        grid-template-columns:repeat(2,1fr)
    }

    .footer-main {
        grid-template-columns:1fr 1fr;
        gap:1.6rem 1rem
    }

    .footer-brand,
    .footer-group:last-child {
        grid-column:1/-1
    }

    .footer-bottom {
        flex-direction:column
    }

    .footer-legal {
        gap:.75rem
    }

    .ecosystem-grid,
    .deliverables-list {
        grid-template-columns:1fr 1fr
    }

    .phone-list a {
        flex-direction:column;
        gap:.05rem
    }

    .page-hero {
        padding-top:3.3rem
    }

}

@media (prefers-reduced-motion:reduce) {
    *,
    :before,
    :after {
        scroll-behavior:auto!important;
        transition-duration:.01ms!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important
    }

}



/*---- modificaicones Footer --------*/
.footer_legales ul{
display: flex; gap: 10px; list-style: none; margin:0; padding:0;}
.footer_legales ul li a{font-size: 13px!important; color:#f7f8f7b8!important; text-decoration:underline!important;}



/* =========================================================
   FOOTER - REDES SOCIALES
   ========================================================= */

.footer-socials {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0rem;
    justify-content: center;
}

.footer-social-link {
    width: 2.5rem;
    height: 2.5rem;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #f7f8f7b8;
    background: transparent;

    border: 2px solid #f7f8f733;
    border-radius: 50%;

    text-decoration: none;

    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}

.footer-social-link svg {
    width: 1.2rem;
    height: 1.2rem;
}

.footer-social-link:hover {
    color: #5cdecb;
    border-color: #5cdecb;
    background: #ffffff0d;
    transform: translateY(-2px);
}

.footer-social-link:focus-visible {
    outline: 2px solid #5cdecb;
    outline-offset: 3px;
}

/* Mobile */
@media (width <= 600px) {
    .footer-socials {
        margin-top: 1.2rem;
        gap: 0.6rem;
    }

    .footer-social-link {
        width: 2.5rem;
        height: 2.5rem;
    }

    .footer-social-link svg {
        width: 1.05rem;
        height: 1.05rem;
    }
}


@media screen and (max-width:767px){
.footer-brand{margin:auto!important;}
.footer-bottom .footer_legales{order:1!important;}
.footer-bottom span{order:2!important;}
}

@media screen and (max-width:600px){
.footer_legales ul{display:inline-block;}
.footer_legales ul li{display: inline-block; margin: 2px 7px;
        margin-left: 0;}
}


/* =========================================================
   WHATSAPP FLOTANTE
   ========================================================= */

.whatsapp-float {
    position: fixed;
    right: 1.75rem;
    bottom: 1.75rem;
    z-index: 100;

    width: 3.8rem;
    height: 3.8rem;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #ffffff;
    background: #25d366;

    border-radius: 50%;

    box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.18),
        0 2px 8px rgba(0, 0, 0, 0.12);

    text-decoration: none;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;

    animation: whatsapp-float-pulse 3s ease-in-out infinite;
}

/* Halo difuminado */
.whatsapp-float::before {
    content: "";

    position: absolute;
    inset: -0.45rem;

    border-radius: 50%;

    background: rgba(37, 211, 102, 0.18);

    filter: blur(6px);

    opacity: 0.65;

    z-index: -1;

    animation: whatsapp-glow 3s ease-in-out infinite;
}

.whatsapp-float svg {
    width: 1.85rem;
    height: 1.85rem;
}

.whatsapp-float:hover {
    color: #ffffff;

    transform: scale(1.06);

    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.22),
        0 4px 10px rgba(0, 0, 0, 0.14);
}

.whatsapp-float:focus-visible {
    outline: 3px solid #40dbb2;
    outline-offset: 4px;
}


/* =========================================================
   ANIMACIONES
   ========================================================= */

@keyframes whatsapp-float-pulse {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.045);
    }
}

@keyframes whatsapp-glow {

    0%,
    100% {
        transform: scale(1);
        opacity: 0.45;
    }

    50% {
        transform: scale(1.16);
        opacity: 0.7;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (width <= 600px) {

    .whatsapp-float {
        right: 1rem;
        bottom: 1rem;

        width: 3.4rem;
        height: 3.4rem;
    }

    .whatsapp-float svg {
        width: 1.65rem;
        height: 1.65rem;
    }
}


/* =========================================================
   ACCESIBILIDAD
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .whatsapp-float,
    .whatsapp-float::before {
        animation: none;
    }
}