/* ===================================================================
 * Flare Main Stylesheet OPTIMIZADO
 * =================================================================== */

@import url("https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700|Nunito+Sans:300,400,600,700&display=swap");

:root {
    --font-1: "Nunito Sans", sans-serif;
    --font-2: "Montserrat", sans-serif;
    --font-mono: Consolas, "Andale Mono", Courier, "Courier New", monospace;
    --color-1: rgb(6, 35, 165);
    --color-2: rgb(7, 113, 235);
    --color-3: rgb(0, 195, 255);
    --color-1-lighter: hsla(345, 93%, 64%, 1);
    --color-1-light: hsla(345, 93%, 54%, 1);
    --color-1-dark: hsla(345, 93%, 34%, 1);
    --color-1-darker: hsla(345, 93%, 24%, 1);
    --color-2-lighter: hsla(4, 79%, 83%, 1);
    --color-2-light: hsla(4, 79%, 73%, 1);
    --color-2-dark: hsla(4, 79%, 53%, 1);
    --color-2-darker: hsla(4, 79%, 43%, 1);
    --color-error: hsla(359, 100%, 91%, 1);
    --color-success: hsla(76, 69%, 68%, 1);
    --color-info: hsla(205, 82%, 91%, 1);
    --color-notice: hsla(51, 100%, 80%, 1);
    --color-error-content: hsla(359, 50%, 50%, 1);
    --color-success-content: hsla(76, 29%, 28%, 1);
    --color-info-content: hsla(205, 32%, 31%, 1);
    --color-notice-content: hsla(51, 30%, 30%, 1);
    --color-black: #000000;
    --color-gray-19: #0b0b0c;
    --color-gray-18: #161719;
    --color-gray-17: #202225;
    --color-gray-16: #2b2e32;
    --color-gray-15: #363a3f;
    --color-gray-14: #41454b;
    --color-gray-13: #4c5158;
    --color-gray-12: #565c64;
    --color-gray-11: #616871;
    --color-gray-10: #6c737d;
    --color-gray-9: #7b818a;
    --color-gray-8: #898f97;
    --color-gray-7: #989da4;
    --color-gray-6: #a7abb1;
    --color-gray-5: #b6b9be;
    --color-gray-4: #c4c7cb;
    --color-gray-3: #d3d5d8;
    --color-gray-2: #e2e3e5;
    --color-gray-1: #f0f1f2;
    --color-white: #ffffff;
    --color-text: var(--color-gray-3);
    --color-text-dark: var(--color-red);
    --color-text-light: var(--color-gray-12);
    --color-placeholder: var(--color-gray-11);
    --color-btn: var(--color-gray-15);
    --color-btn-text: var(--color-white);
    --color-btn-hover: var(--color-white);
    --color-btn-hover-text: var(--color-black);
    --color-btn-primary: var(--color-1);
    --color-btn-primary-text: var(--color-white);
    --color-btn-primary-hover: var(--color-white);
    --color-btn-primary-hover-text: var(--color-black);
    --color-btn-stroke: var(--color-white);
    --color-btn-stroke-text: var(--color-white);
    --color-btn-stroke-hover: var(--color-white);
    --color-btn-stroke-hover-text: var(--color-black);
    --color-body: var(--color-1);
    --color-bg: #14171B;
    --color-border: var(--color-gray-17);
    --base-size: 62.5%;
    --base-font-size: 1.8rem;
    --space: 3.2rem;
    --vspace-0_25: calc(0.25 * var(--space));
    --vspace-0_5: calc(0.5 * var(--space));
    --vspace-0_75: calc(0.75 * var(--space));
    --vspace-1: calc(var(--space));
    --vspace-1_25: calc(1.25 * var(--space));
    --vspace-1_5: calc(1.5 * var(--space));
    --vspace-1_75: calc(1.75 * var(--space));
    --vspace-2: calc(2 * var(--space));
    --vspace-2_5: calc(2.5 * var(--space));
    --vspace-3: calc(3 * var(--space));
    --vspace-3_5: calc(3.5 * var(--space));
    --vspace-4: calc(4 * var(--space));
    --text-scale-ratio: 1.2;
    --text-size: var(--base-font-size);
    --text-xs: calc((var(--text-size) / var(--text-scale-ratio)) / var(--text-scale-ratio));
    --text-sm: calc(var(--text-xs) * var(--text-scale-ratio));
    --text-md: calc(var(--text-sm) * var(--text-scale-ratio) * var(--text-scale-ratio));
    --text-lg: calc(var(--text-md) * var(--text-scale-ratio));
    --text-xl: calc(var(--text-lg) * var(--text-scale-ratio));
    --text-xxl: calc(var(--text-xl) * var(--text-scale-ratio));
    --text-xxxl: calc(var(--text-xxl) * var(--text-scale-ratio));
    --text-display-1: calc(var(--text-xxxl) * var(--text-scale-ratio));
    --text-display-2: calc(var(--text-display-1) * var(--text-scale-ratio));
    --text-display-3: calc(var(--text-display-2) * var(--text-scale-ratio));
    --vspace-btn: var(--vspace-2);
    --width-full: 100%;
    --width-max: 1200px;
    --width-wide: 1400px;
    --width-wider: 1600px;
    --width-widest: 1800px;
    --width-narrow: 1000px;
    --width-narrower: 900px;
    --width-grid-max: var(--width-max);
    --gutter-lg: 2rem;
    --gutter-md: 1.6rem;
    --gutter-mob: 1rem;
}

@media screen and (max-width: 480px) { :root { --base-font-size: 1.6rem; --space: 2.8rem; } }

/* ===== NORMALIZE ===== */
html { line-height: 1.15; -webkit-text-size-adjust: 100%; }
body { margin: 0; }
main { display: block; }
h1 { font-size: 2em; margin: 0.67em 0; }
hr { box-sizing: content-box; height: 0; overflow: visible; }
pre { font-family: monospace; font-size: 1em; }
a { background-color: transparent; }
abbr[title] { border-bottom: none; text-decoration: underline dotted; }
b, strong { font-weight: bolder; }
code, kbd, samp { font-family: monospace; font-size: 1em; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -0.25em; }
sup { top: -0.5em; }
img { border-style: none; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; }
button, input { overflow: visible; }
button, select { text-transform: none; }
button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
fieldset { padding: 0.35em 0.75em 0.625em; }
legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }
progress { vertical-align: baseline; }
textarea { overflow: auto; }
[type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; }
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }
[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
details { display: block; }
summary { display: list-item; }
template { display: none; }
[hidden] { display: none; }

/* ===== BASE ===== */
html { font-size: 62.5%; box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }
body { font-weight: normal; line-height: 1; word-wrap: break-word; -moz-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; -webkit-overflow-scrolling: touch; }
svg, img, video embed, iframe, object { max-width: 100%; height: auto; }
div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; }
p { font-size: inherit; text-rendering: optimizeLegibility; }
em, i { font-style: italic; line-height: inherit; }
strong, b { font-weight: bold; line-height: inherit; }
small { font-size: 60%; line-height: inherit; }
ol, ul { list-style: none; }
li { display: block; }
a { text-decoration: none; line-height: inherit; color: var(--color-white); transition: all 0.3s ease-in-out; }
a:hover, a:focus, a:active { color: red; }
a img { border: none; }
fieldset { margin: 0; padding: 0; }
input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea { -webkit-appearance: none; -moz-appearance: none; appearance: none; }

/* ===== GRID ===== */
.row { width: 92%; max-width: var(--width-grid-max); margin: 0 auto; display: flex; flex-flow: row wrap; }
.row .row { width: auto; max-width: none; margin-left: calc(var(--gutter-lg) * -1); margin-right: calc(var(--gutter-lg) * -1); }
.column { flex: 1 1 0%; padding: 0 var(--gutter-lg); }
.collapse>.column, .column.collapse { padding: 0; }
.row.row-wrap { flex-wrap: wrap; }
.row.row-nowrap { flex-wrap: nowrap; }
.row.row-y-top { align-items: flex-start; }
.row.row-y-bottom { align-items: flex-end; }
.row.row-y-center { align-items: center; }
.row.row-stretch { align-items: stretch; }
.row.row-baseline { align-items: baseline; }
.row.row-x-left { justify-content: flex-start; }
.row.row-x-right { justify-content: flex-end; }
.row.row-x-center { justify-content: center; }
.align-center { margin: auto; align-self: center; }
.align-left { margin-right: auto; align-self: center; }
.align-right { margin-left: auto; align-self: center; }
.align-x-center { margin-right: auto; margin-left: auto; }
.align-x-left { margin-right: auto; }
.align-x-right { margin-left: auto; }
.align-y-center { align-self: center; }
.align-y-top { align-self: flex-start; }
.align-y-bottom { align-self: flex-end; }

.large-1 { flex: 0 0 8.33333%; max-width: 8.33333%; }
.large-2 { flex: 0 0 16.66667%; max-width: 16.66667%; }
.large-3 { flex: 0 0 25%; max-width: 25%; }
.large-4 { flex: 0 0 33.33333%; max-width: 33.33333%; }
.large-5 { flex: 0 0 41.66667%; max-width: 41.66667%; }
.large-6 { flex: 0 0 50%; max-width: 50%; }
.large-7 { flex: 0 0 58.33333%; max-width: 58.33333%; }
.large-8 { flex: 0 0 66.66667%; max-width: 66.66667%; }
.large-9 { flex: 0 0 75%; max-width: 75%; }
.large-10 { flex: 0 0 83.33333%; max-width: 83.33333%; }
.large-11 { flex: 0 0 91.66667%; max-width: 91.66667%; }
.large-12 { flex: 0 0 100%; max-width: 100%; }

@media screen and (max-width:1200px) {
    .row .row { margin-left: calc(var(--gutter-md) * -1); margin-right: calc(var(--gutter-md) * -1); }
    .column { padding: 0 var(--gutter-md); }
    .medium-1 { flex: 0 0 8.33333%; max-width: 8.33333%; }
    .medium-2 { flex: 0 0 16.66667%; max-width: 16.66667%; }
    .medium-3 { flex: 0 0 25%; max-width: 25%; }
    .medium-4 { flex: 0 0 33.33333%; max-width: 33.33333%; }
    .medium-5 { flex: 0 0 41.66667%; max-width: 41.66667%; }
    .medium-6 { flex: 0 0 50%; max-width: 50%; }
    .medium-7 { flex: 0 0 58.33333%; max-width: 58.33333%; }
    .medium-8 { flex: 0 0 66.66667%; max-width: 66.66667%; }
    .medium-9 { flex: 0 0 75%; max-width: 75%; }
    .medium-10 { flex: 0 0 83.33333%; max-width: 83.33333%; }
    .medium-11 { flex: 0 0 91.66667%; max-width: 91.66667%; }
    .medium-12 { flex: 0 0 100%; max-width: 100%; }
}

@media screen and (max-width:800px) {
    .row { width: 90%; }
    .tab-1 { flex: 0 0 8.33333%; max-width: 8.33333%; }
    .tab-2 { flex: 0 0 16.66667%; max-width: 16.66667%; }
    .tab-3 { flex: 0 0 25%; max-width: 25%; }
    .tab-4 { flex: 0 0 33.33333%; max-width: 33.33333%; }
    .tab-5 { flex: 0 0 41.66667%; max-width: 41.66667%; }
    .tab-6 { flex: 0 0 50%; max-width: 50%; }
    .tab-7 { flex: 0 0 58.33333%; max-width: 58.33333%; }
    .tab-8 { flex: 0 0 66.66667%; max-width: 66.66667%; }
    .tab-9 { flex: 0 0 75%; max-width: 75%; }
    .tab-10 { flex: 0 0 83.33333%; max-width: 83.33333%; }
    .tab-11 { flex: 0 0 91.66667%; max-width: 91.66667%; }
    .tab-12 { flex: 0 0 100%; max-width: 100%; }
    .hide-on-tablet { display: none; }
}

@media screen and (max-width:600px) {
    .row { width: 100%; padding-left: 6vw; padding-right: 6vw; }
    .row .row { margin-left: calc(var(--gutter-mob) * -1); margin-right: calc(var(--gutter-mob) * -1); padding-left: 0; padding-right: 0; }
    .column { padding: 0 var(--gutter-mob); }
    .mob-1 { flex: 0 0 8.33333%; max-width: 8.33333%; }
    .mob-2 { flex: 0 0 16.66667%; max-width: 16.66667%; }
    .mob-3 { flex: 0 0 25%; max-width: 25%; }
    .mob-4 { flex: 0 0 33.33333%; max-width: 33.33333%; }
    .mob-5 { flex: 0 0 41.66667%; max-width: 41.66667%; }
    .mob-6 { flex: 0 0 50%; max-width: 50%; }
    .mob-7 { flex: 0 0 58.33333%; max-width: 58.33333%; }
    .mob-8 { flex: 0 0 66.66667%; max-width: 66.66667%; }
    .mob-9 { flex: 0 0 75%; max-width: 75%; }
    .mob-10 { flex: 0 0 83.33333%; max-width: 83.33333%; }
    .mob-11 { flex: 0 0 91.66667%; max-width: 91.66667%; }
    .mob-12 { flex: 0 0 100%; max-width: 100%; }
    .hide-on-mobile { display: none; }
}

@media screen and (max-width:400px) {
    .row .row { margin-left: 0; margin-right: 0; }
    .column { flex: 0 0 100%; max-width: 100%; margin-left: 0; margin-right: 0; padding: 0; }
}

/* ===== BLOCK GRIDS ===== */
.block-large-1-8>.column { flex: 0 0 12.5%; max-width: 12.5%; }
.block-large-1-6>.column { flex: 0 0 16.66667%; max-width: 16.66667%; }
.block-large-1-5>.column { flex: 0 0 20%; max-width: 20%; }
.block-large-1-4>.column { flex: 0 0 25%; max-width: 25%; }
.block-large-1-3>.column { flex: 0 0 33.33333%; max-width: 33.33333%; }
.block-large-1-2>.column { flex: 0 0 50%; max-width: 50%; }
.block-large-full>.column { flex: 0 0 100%; max-width: 100%; }

@media screen and (max-width:1200px) {
    .block-medium-1-8>.column { flex: 0 0 12.5%; max-width: 12.5%; }
    .block-medium-1-6>.column { flex: 0 0 16.66667%; max-width: 16.66667%; }
    .block-medium-1-5>.column { flex: 0 0 20%; max-width: 20%; }
    .block-medium-1-4>.column { flex: 0 0 25%; max-width: 25%; }
    .block-medium-1-3>.column { flex: 0 0 33.33333%; max-width: 33.33333%; }
    .block-medium-1-2>.column { flex: 0 0 50%; max-width: 50%; }
    .block-medium-full>.column { flex: 0 0 100%; max-width: 100%; }
}

@media screen and (max-width:800px) {
    .block-tab-1-8>.column { flex: 0 0 12.5%; max-width: 12.5%; }
    .block-tab-1-6>.column { flex: 0 0 16.66667%; max-width: 16.66667%; }
    .block-tab-1-5>.column { flex: 0 0 20%; max-width: 20%; }
    .block-tab-1-4>.column { flex: 0 0 25%; max-width: 25%; }
    .block-tab-1-3>.column { flex: 0 0 33.33333%; max-width: 33.33333%; }
    .block-tab-1-2>.column { flex: 0 0 50%; max-width: 50%; }
    .block-tab-full>.column { flex: 0 0 100%; max-width: 100%; }
}

@media screen and (max-width:600px) {
    .block-mob-1-8>.column { flex: 0 0 12.5%; max-width: 12.5%; }
    .block-mob-1-6>.column { flex: 0 0 16.66667%; max-width: 16.66667%; }
    .block-mob-1-5>.column { flex: 0 0 20%; max-width: 20%; }
    .block-mob-1-4>.column { flex: 0 0 25%; max-width: 25%; }
    .block-mob-1-3>.column { flex: 0 0 33.33333%; max-width: 33.33333%; }
    .block-mob-1-2>.column { flex: 0 0 50%; max-width: 50%; }
    .block-mob-full>.column { flex: 0 0 100%; max-width: 100%; }
}

@media screen and (max-width:400px) { .stack>.column { flex: 0 0 100%; max-width: 100%; margin: 0; padding: 0; } }

/* ===== MISC ===== */
.h-group:after { content: ""; display: table; clear: both; }
.is-hidden { display: none; }
.is-invisible { visibility: hidden; }
.h-antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.h-overflow-hidden { overflow: hidden; }
.h-remove-top { margin-top: 0; }
.h-remove-bottom { margin-bottom: 0; }
.h-add-half-bottom { margin-bottom: var(--vspace-0_5) !important; }
.h-add-bottom { margin-bottom: var(--vspace-1) !important; }
.h-no-border { border: none; }
.h-full-width { width: 100%; }
.h-text-center { text-align: center; }
.h-text-left { text-align: left; }
.h-text-right { text-align: right; }
.h-pull-left { float: left; }
.h-pull-right { float: right; }

@media screen and (max-width:1000px) { .block-1000-stack>.column { flex: 0 0 100%; max-width: 100%; } }
@media screen and (max-width:900px) { .w-900-stack, .block-900-stack>.column { flex: 0 0 100%; max-width: 100%; } }

/* ===== BASE OVERRIDES ===== */
html { font-size: var(--base-size); }
html, body { height: 100%; }
body { background: var(--color-body); font-family: var(--font-1); font-size: var(--text-size); line-height: var(--vspace-1); color: var(--color-text); }

/* ===== TYPOGRAPHY ===== */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: var(--font-2); font-weight: 500; color: var(--color-text); font-variant-ligatures: common-ligatures; text-rendering: optimizeLegibility; }
h1, .h1 { margin-top: var(--vspace-2_5); margin-bottom: var(--vspace-0_75); }
h2, .h2, h3, .h3, h4, .h4 { margin-top: var(--vspace-2); margin-bottom: var(--vspace-0_5); }
h5, .h5, h6, .h6 { margin-top: var(--vspace-1_5); margin-bottom: var(--vspace-0_5); }
h1, .h1 { font-size: var(--text-display-1); line-height: var(--vspace-2); letter-spacing: -.015em; }
@media screen and (max-width:400px) { h1, .h1 { font-size: var(--text-xxxl); line-height: var(--vspace-1_75); } }
h2, .h2 { font-size: var(--text-xxl); line-height: var(--vspace-1_5); }
h3, .h3 { font-size: var(--text-xl); line-height: var(--vspace-1_25); }
h4, .h4 { font-size: var(--text-lg); line-height: var(--vspace-1); }
h5, .h5 { font-size: var(--text-md); line-height: calc(0.875 * var(--space)); }
h6, .h6 { font-size: var(--text-sm); font-weight: 600; line-height: var(--vspace-0_75); text-transform: uppercase; letter-spacing: .22em; }
.lead, .attention-getter { font-family: var(--font-1); font-weight: 400; font-size: var(--text-md); line-height: calc(1.125 * var(--space)); }
@media screen and (max-width:400px) { .lead { font-size: 1.9rem; } }
figure img, p img { margin: 0; vertical-align: bottom; }
em, i, strong, b { font-size: inherit; line-height: inherit; }
em, i { font-family: var(--font-1); font-style: italic; }
strong, b { font-family: var(--font-1); font-weight: 600; }
small { font-size: 1.3rem; font-weight: 500; line-height: calc(0.5 * var(--space)); }
blockquote { margin: 0 0 var(--vspace-1) 0; padding: var(--vspace-1) var(--vspace-1_5); border-left: 4px solid var(--color-text-light); }
@media screen and (max-width:400px) { blockquote { padding: var(--vspace-0_75) var(--vspace-0_75); } }
blockquote p { font-family: var(--font-1); font-weight: 400; font-size: var(--text-md); line-height: calc(1.125 * var(--space)); color: var(--color-text-dark); }
blockquote cite { display: block; font-family: var(--font-1); font-weight: 400; font-size: var(--text-sm); line-height: var(--vspace-0_75); font-style: normal; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite, blockquote cite a, blockquote cite a:visited { color: var(--color-text); border: none; }
figure { display: block; margin: 0; }
figure img+figcaption { margin-top: var(--vspace-1); }
figcaption { font-size: var(--text-sm); text-align: center; }
var, kbd, samp, code, pre { font-family: var(--font-mono); }
pre { padding: var(--vspace-0_75) var(--vspace-1) var(--vspace-1); background: var(--color-gray-18); overflow-x: auto; }
code { font-size: var(--text-sm); line-height: 1.6rem; margin: 0 .2rem; padding: calc(((var(--vspace-1) - 1.6rem) / 2) - .1rem) calc(.8rem - .1rem); white-space: nowrap; background: var(--color-gray-18); border: 1px solid var(--color-gray-17); color: var(--color-text-dark); border-radius: 3px; }
pre>code { display: block; white-space: pre; line-height: var(--vspace-1); padding: 0; margin: 0; border: none; }
.prettyprint code { background: var(--color-gray-2); }
pre.prettyprint>code { border: none; }
del { text-decoration: line-through; }
abbr { font-family: var(--font-1); font-weight: 600; font-variant: small-caps; text-transform: lowercase; letter-spacing: .1em; }
abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; text-decoration: none; }
mark { background: var(--color-3); color: black; }
hr { border: solid var(--color-border); border-width: .1rem 0 0; clear: both; margin: var(--vspace-2) 0 calc(var(--vspace-2) - .1rem); height: 0; }
hr.fancy { border: none; margin: var(--vspace-2) 0; height: var(--vspace-1); text-align: center; }
hr.fancy::before { content: "*****"; letter-spacing: .3em; }

ol { list-style: decimal; }
ul { list-style: disc; }
li { display: list-item; }
ol, ul { margin-left: 1.6rem; }
ul li { padding-left: .4rem; }
ul ul, ul ol, ol ol, ol ul { margin: var(--vspace-0_5) 0 var(--vspace-0_5) var(--vspace-0_5); }
ul.disc li { display: list-item; list-style: none; padding: 0 0 0 .8rem; position: relative; }
ul.disc li::before { content: ""; display: inline-block; width: var(--vspace-0_25); height: var(--vspace-0_25); border-radius: 50%; background: var(--color-1-dark); position: absolute; left: -.9em; top: .65em; }
dt { margin: 0; color: var(--color-1); }
dd { margin: 0 0 0 2rem; }

.video-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.video-container iframe, .video-container object, .video-container embed, .video-container video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
img.h-pull-right { margin: var(--vspace-0_5) 0 var(--vspace-0_5) 2.8rem; }
img.h-pull-left { margin: var(--vspace-0_5) 2.8rem var(--vspace-0_5) 0; }

table { border-width: 0; width: 100%; max-width: 100%; font-family: var(--font-1); border-collapse: collapse; }
th, td { padding: var(--vspace-0_5) 3.2rem calc(var(--vspace-0_5) - .1rem); text-align: left; border-bottom: 1px solid var(--color-border); }
th { padding: var(--vspace-0_5) 3.2rem; color: var(--color-text-dark); font-family: var(--font-2); font-weight: 600; }
th:first-child, td:first-child { padding-left: 0; }
th:last-child, td:last-child { padding-right: 0; }
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }

img, p, pre, table, blockquote, figure, figcaption, ul, ol, dl, form, fieldset, input, textarea, select, button, .btn, .video-container, .ss-custom-select { margin-bottom: var(--vspace-1); }

/* ===== PRELOADER ===== */
#preloader { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--color-bg); z-index: 500; height: 100vh; width: 100%; overflow: hidden; }
.no-js #preloader, .oldie #preloader { display: none; }
#loader { position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; padding: 0; transform: translate3d(-50%, -50%, 0); }
#loader>div { content: ""; background: white; width: 6px; height: 6px; position: absolute; top: 0; left: 0; border-radius: 50%; }
#loader>div:nth-of-type(1) { left: 15px; }
#loader>div:nth-of-type(3) { left: -15px; }
.dots-fade>div { animation: dots-fade 1.6s infinite ease; animation-delay: 0.4s; }
.dots-fade>div:nth-of-type(1) { animation-delay: 0.8s; }
.dots-fade>div:nth-of-type(3) { animation-delay: 0s; }
@keyframes dots-fade { 0% { opacity: 1; } 40% { opacity: 0.2; } 80% { opacity: 1; } }

/* ===== FORMS ===== */
fieldset { border: none; margin-bottom: var(--vspace-0_5); }
input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea, select {
    --input-height: var(--vspace-2); --input-line-height: var(--vspace-1); --input-vpadding: calc(((var(--input-height) - var(--input-line-height)) / 2) - .1rem);
    display: block; height: var(--input-height); padding: var(--input-vpadding) calc(2.4rem - .1rem); border: 0; outline: none; color: var(--color-placeholder);
    font-family: var(--font-1); font-size: var(--text-sm); line-height: var(--input-line-height); max-width: 100%; background-color: var(--color-gray-17);
    border: .1rem solid transparent; transition: all .3s ease-in-out; border-radius: 4px;
}
.ss-custom-select { position: relative; padding: 0; }
.ss-custom-select select { -webkit-appearance: none; -moz-appearance: none; appearance: none; text-indent: 0.01px; text-overflow: ''; margin: 0; vertical-align: middle; }
.ss-custom-select select option { padding-left: 2rem; padding-right: 2rem; }
.ss-custom-select select::-ms-expand { display: none; }
.ss-custom-select::after { border-bottom: 2px solid var(--color-white); border-right: 2px solid var(--color-white); content: ''; display: block; height: 8px; width: 8px; margin-top: -7px; pointer-events: none; position: absolute; right: 2.4rem; top: 50%; transition: all 0.15s ease-in-out; transform-origin: 66% 66%; transform: rotate(45deg); }
textarea { min-height: calc(8 * var(--space)); }
input:focus, textarea:focus, select:focus { color: white; box-shadow: 0 0 8px var(--color-gray-15); border: 1px solid var(--color-gray-15); }
label, legend { font-family: var(--font-1); font-weight: 600; font-size: var(--text-sm); line-height: var(--vspace-0_5); margin-bottom: var(--vspace-0_5); color: var(--color-text-dark); display: block; }
input[type="checkbox"], input[type="radio"] { display: inline; }
label>.label-text { display: inline-block; margin-left: 1rem; font-family: var(--font-1); line-height: inherit; }
label>input[type="checkbox"], label>input[type="radio"] { margin: 0; position: relative; top: .2rem; }
::-webkit-input-placeholder, :-ms-input-placeholder, ::-ms-input-placeholder, ::placeholder { color: var(--color-placeholder); }
.placeholder { color: var(--color-placeholder) !important; }
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, textarea:-webkit-autofill, textarea:-webkit-autofill:hover, textarea:-webkit-autofill:focus, select:-webkit-autofill, select:-webkit-autofill:hover, select:-webkit-autofill:focus { -webkit-text-fill-color: var(--color-1); transition: background-color 5000s ease-in-out 0s; }

/* ===== BUTTONS ===== */
.btn, button, input[type="submit"], input[type="reset"], input[type="button"] {
    --btn-height: var(--vspace-btn); display: inline-block; font-family: var(--font-2); font-weight: 600; font-size: var(--text-xs);
    text-transform: uppercase; letter-spacing: .5em; height: var(--btn-height); line-height: calc(var(--btn-height) - .4rem); padding: 0 3.2rem;
    margin: 0 0.4rem var(--vspace-0_5) 0; color: var(--color-btn-text); text-decoration: none; text-align: center; white-space: nowrap;
    cursor: pointer; transition: all .3s; background-color: var(--color-btn); border: 0.2rem solid var(--color-btn);
}
.btn:hover, button:hover, input:hover, .btn:focus, button:focus, input:focus { background-color: var(--color-btn-hover); border-color: var(--color-btn-hover); color: var(--color-btn-hover-text); outline: 0; }
.btn.btn--primary, button.btn--primary, input.btn--primary { background: var(--color-btn-primary); border-color: var(--color-btn-primary); color: var(--color-btn-primary-text); }
.btn.btn--primary:hover, button.btn--primary:hover, input.btn--primary:hover { background: var(--color-btn-primary-hover); border-color: var(--color-btn-primary-hover); color: var(--color-btn-primary-hover-text); }
.btn.h-full-width, button.h-full-width { width: 100%; margin-right: 0; }
.btn--small, button.btn--small { font-size: 1.2rem; --btn-height: calc(var(--vspace-btn) - var(--vspace-0_5)); }
.btn--medium, button.btn--medium { --btn-height: calc(var(--vspace-btn) + var(--vspace-0_25)); }
.btn--large, button.btn--large { --btn-height: calc(var(--vspace-btn) + var(--vspace-0_5)); }
.btn--stroke, button.btn--stroke { background: transparent !important; border: 0.2rem solid var(--color-btn-stroke); color: var(--color-btn-stroke-text); }
.btn--stroke:hover, button.btn--stroke:hover { background: var(--color-btn-stroke-hover) !important; border: 0.2rem solid var(--color-btn-stroke-hover); color: var(--color-btn-stroke-hover-text); }
.btn--pill, button.btn--pill { padding-left: 3.2rem !important; padding-right: 3.2rem !important; border-radius: 1000px !important; }
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/* ===== ADDITIONAL COMPONENTS ===== */
.drop-cap:first-letter { float: left; font-family: var(--font-2); font-weight: 600; font-size: calc(3 * var(--space)); line-height: 1; padding: 0 0.125em 0 0; text-transform: uppercase; background: transparent; color: var(--color-text-dark); }
.lining dt, .lining dd { display: inline; margin: 0; }
.lining dt+dt:before, .lining dd+dt:before { content: "\A"; white-space: pre; }
.lining dd+dd:before { content: ", "; }
.lining dd:before { content: ": "; margin-left: -0.2em; }
.dictionary-style dt { display: inline; counter-reset: definitions; }
.dictionary-style dt+dt:before { content: ", "; margin-left: -0.2em; }
.dictionary-style dd { display: block; counter-increment: definitions; }
.dictionary-style dd:before { content: counter(definitions, decimal) ". "; }
.pull-quote { position: relative; padding: 0; margin-top: 0; text-align: center; }
.pull-quote blockquote { border: none; margin: 0 auto; max-width: 62rem; padding-top: var(--vspace-2_5); position: relative; }
.pull-quote blockquote p { font-weight: 400; color: var(--color-text-dark); }
.pull-quote blockquote:before { content: ""; display: block; height: var(--vspace-1); width: var(--vspace-1); background: center/contain url(../images/icons/icon-quote.svg); transform: translateX(-50%); position: absolute; top: var(--vspace-1); left: 50%; }
.stats-tabs { padding: 0; margin: var(--vspace-1) 0; }
.stats-tabs li { display: inline-block; margin: 0 1.6rem var(--vspace-0_5) 0; padding: 0 1.5rem 0 0; border-right: 1px solid var(--color-border); }
.stats-tabs li:last-child { margin: 0; padding: 0; border: none; }
.stats-tabs li a { display: inline-block; font-size: var(--text-lg); font-family: var(--font-2); font-weight: 500; line-height: var(--vspace-1_5); border: none; color: var(--color-white); }
.stats-tabs li a:hover { color: var(--color-1-light); }
.stats-tabs li a em { display: block; margin: 0; font-family: var(--font-1); font-size: var(--text-sm); line-height: var(--vspace-0_5); font-weight: normal; font-style: normal; color: var(--color-text-light); }

.skill-bars { list-style: none; margin: var(--vspace-2) 0 var(--vspace-1); }
.skill-bars li { height: .4rem; background: var(--color-white); width: 100%; margin-bottom: calc(var(--vspace-2) - .4rem); padding: 0; position: relative; }
.skill-bars li strong { position: absolute; left: 0; top: calc((var(--vspace-1) * 1.25) * -1); font-family: var(--font-2); font-weight: 500; color: var(--color-white); text-transform: uppercase; letter-spacing: .2em; font-size: 1.4rem; line-height: var(--vspace-0_75); }
.skill-bars li .progress { background: var(--color-1); position: relative; height: 100%; }
.skill-bars li .progress span { position: absolute; right: 0; top: calc((var(--vspace-1) + .8rem) * -1); display: block; font-family: var(--font-2); color: var(--color-white); font-size: 1rem; line-height: 1; background: var(--color-black); padding: calc(0.25 * var(--space)) calc(0.25 * var(--space)); border-radius: 4px; }
.skill-bars li .progress span::after { position: absolute; left: 50%; bottom: -10px; margin-left: -5px; width: 0; height: 0; border: 5px solid transparent; border-top-color: var(--color-black); content: ""; }
.skill-bars li [class*="percent"] { width: 5%; }
.percent10 { width: 10%; } .percent15 { width: 15%; } .percent20 { width: 20%; } .percent25 { width: 25%; } .percent30 { width: 30%; }
.percent35 { width: 35%; } .percent40 { width: 40%; } .percent45 { width: 45%; } .percent50 { width: 50%; } .percent55 { width: 55%; }
.percent60 { width: 60%; } .percent65 { width: 65%; } .percent70 { width: 70%; } .percent75 { width: 75%; } .percent80 { width: 80%; }
.percent85 { width: 85%; } .percent90 { width: 90%; } .percent95 { width: 95%; } .percent100 { width: 100%; }

.alert-box { padding: var(--vspace-0_75) 4rem var(--vspace-0_75) 3.2rem; position: relative; margin-bottom: var(--vspace-1); border-radius: 4px; font-family: var(--font-1); font-weight: 500; font-size: var(--text-sm); line-height: var(--vspace-0_75); }
.alert-box__close { position: absolute; right: 1.6rem; top: 1.6rem; cursor: pointer; width: 12px; height: 12px; }
.alert-box__close::before, .alert-box__close::after { content: ''; position: absolute; width: 2px; height: 12px; top: 0; left: 5px; }
.alert-box__close::before { transform: rotate(45deg); }
.alert-box__close::after { transform: rotate(-45deg); }
.alert-box--error { background-color: var(--color-error); color: var(--color-error-content); }
.alert-box--error .alert-box__close::before, .alert-box--error .alert-box__close::after { background-color: var(--color-error-content); }
.alert-box--success { background-color: var(--color-success); color: var(--color-success-content); }
.alert-box--success .alert-box__close::before, .alert-box--success .alert-box__close::after { background-color: var(--color-success-content); }
.alert-box--info { background-color: var(--color-info); color: var(--color-info-content); }
.alert-box--info .alert-box__close::before, .alert-box--info .alert-box__close::after { background-color: var(--color-info-content); }
.alert-box--notice { background-color: var(--color-notice); color: var(--color-notice-content); }
.alert-box--notice .alert-box__close::before, .alert-box--notice .alert-box__close::after { background-color: var(--color-notice-content); }

.wide { max-width: var(--width-wide); }
.wider { max-width: var(--width-wider); }
.narrow { max-width: var(--width-narrow); }
.narrower { max-width: var(--width-narrower); }
.section-title { display: block; margin-bottom: var(--vspace-2); position: relative; }
.section-title::before { content: attr(data-num); font-family: var(--font-2); font-weight: 600; font-size: calc(var(--text-size) * 10); line-height: 1; letter-spacing: -0.02em; color: var(--color-2); opacity: 1.1; }
.section-title h3 { z-index: 2; font-weight: 500; color: var(--color-white); padding-bottom: 2em; margin-top: 0; position: absolute; left: 1em; bottom: 0; }
.display-1 { font-size: var(--text-xxl); font-weight: 500; line-height: var(--vspace-1_75); margin-top: 0; }
.item-title { font-family: var(--font-2); font-weight: 500; font-size: var(--text-lg); line-height: var(--vspace-1_25); margin-top: 0; margin-bottom: var(--vspace-0_5); }
.item-list { margin-top: var(--vspace-2_5); }
.item-list .item { padding-right: 8.6rem; margin-bottom: var(--vspace-0_5); }

.slick-slider .slick-slide { outline: none; }
.slick-slider .slick-dots { display: block; list-style: none; width: 100%; padding: 0; margin: var(--vspace-1) 0 0; text-align: center; position: absolute; top: 100%; left: 0; }
.slick-slider .slick-dots li { display: inline-block; width: 28px; height: 28px; margin: 0; padding: 10px; cursor: pointer; }
.slick-slider .slick-dots li button { display: block; width: 8px; height: 8px; border-radius: 50%; background: white; border: none; padding: 0; margin: 0; cursor: pointer; color: transparent; }
.slick-slider .slick-dots li.slick-active button, .slick-slider .slick-dots li:hover button { background: var(--color-1); }

@media screen and (max-width:1100px) { .item-list .item { padding-right: 2rem; } }
@media screen and (max-width:1000px) { .section-title::before { font-size: calc(var(--text-size) * 8); } }
@media screen and (max-width:800px) { .section-title { margin-bottom: var(--vspace-1); } .item-list .item { margin-bottom: 0; padding-right: var(--gutter-md); } }
@media screen and (max-width:600px) { .item-list .item { padding-right: var(--gutter-mob); } }
@media screen and (max-width:400px) { .display-1 { font-size: var(--text-xl); line-height: var(--vspace-1_5); } .item-title { font-size: var(--text-md); line-height: var(--vspace-1); } .item-list .item { padding-right: 0; } }

/* ===== HEADER ===== */
.s-header { z-index: 100; width: 100%; height: 8.8rem; position: absolute; top: var(--vspace-0_75); left: 0; }
.s-header.offset { transform: translateY(-100%); transition: all .5s; }
.s-header.scrolling { transform: translateY(0); }
.s-header.sticky { background-color: var(--color-gray-19); opacity: 0; visibility: hidden; position: fixed; top: 0; left: 0; }
.s-header.sticky .s-header__content .btn { --btn-height: calc(var(--vspace-btn) - 1.6rem) !important; }
.s-header.sticky .header-nav a { color: rgba(255,255,255,0.6); }
.s-header.sticky.scrolling { opacity: 1; visibility: visible; }
.s-header__content { height: 8.8rem; position: relative; }
.s-header__logo { z-index: 101; display: inline-block; margin: 0; padding: 0; transform: translateY(-50%); transition: all .5s; position: absolute; left: 8rem; top: calc(50% - 2px); }
.s-header__logo a { display: block; border: none; padding: 0; outline: 0; }
.s-header__logo img { width: 68px; height: 10px; margin-bottom: 0; }
.s-header__nav-wrap { padding-left: 21.6rem; }
.s-header__nav { list-style: none; font-family: var(--font-2); font-weight: 500; font-size: 1rem; line-height: 6rem; padding: 1.4rem 0; margin: 0; text-transform: uppercase; letter-spacing: .4em; }
.s-header__nav a { color: var(--color-gray-2); }
.s-header__nav a:hover, .s-header__nav a:focus { color: white !important; }
.s-header__nav li { display: inline-block; margin: 0 1rem; }
.s-header__menu-toggle { z-index: 101; display: none; height: 4.2rem; width: 4.2rem; line-height: 4.2rem; font-family: var(--font-2); font-size: 1.4rem; text-transform: uppercase; letter-spacing: .2rem; color: white; outline: none; transition: all .5s; position: absolute; right: 5.2rem; top: 1.6rem; }
.s-header__menu-toggle:hover, .s-header__menu-toggle:focus { color: white; }
.s-header__menu-toggle span { display: block; width: 2.4rem; height: 2px; background-color: white; transition: all .5s; color: transparent; margin-top: -1px; position: absolute; top: 50%; left: .9rem; }
.s-header__menu-toggle span::before, .s-header__menu-toggle span::after { content: ''; width: 100%; height: 100%; background-color: inherit; transition: all .5s; position: absolute; left: 0; }
.s-header__menu-toggle span::before { top: -.9rem; }
.s-header__menu-toggle span::after { bottom: -.9rem; }
.s-header__menu-toggle.is-clicked span { background-color: transparent; transition: all .1s; }
.s-header__menu-toggle.is-clicked span::before, .s-header__menu-toggle.is-clicked span::after { background-color: white; }
.s-header__menu-toggle.is-clicked span::before { top: 0; transform: rotate(135deg); }
.s-header__menu-toggle.is-clicked span::after { bottom: 0; transform: rotate(225deg); }
.s-header__content .btn { --btn-height: calc(var(--vspace-btn) - 1.2rem); font-size: 1rem; padding: 0 2.8rem; margin: 0; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; position: absolute; top: 50%; right: 10rem; }
.s-header__content .btn svg { height: var(--vspace-0_5); width: var(--vspace-0_5); margin-right: 1.6rem; transform: translateY(-0.1rem); fill: white; }
.s-header__content .btn:hover, .s-header__content .btn:focus { background-color: var(--color-gray-19) !important; border-color: var(--color-gray-19) !important; color: white; }
.sticky .s-header__content .btn:hover, .sticky .s-header__content .btn:focus { background-color: white !important; border-color: white !important; color: black; }
.sticky .s-header__content .btn:hover svg, .sticky .s-header__content .btn:focus svg { fill: black; }

@media screen and (max-width:1700px) { .s-header__logo { left: 6rem; } .s-header__nav-wrap { padding-left: 19.6rem; } .s-header__content .btn { right: 6rem; } }
@media screen and (max-width:1000px) { .s-header__nav-wrap { padding-left: 17.6rem; } .s-header__content .btn { --btn-height: calc(var(--vspace-btn) - 1.6rem) !important; } }
@media screen and (max-width:900px) {
    .s-header { top: var(--vspace-0_5); height: 8rem; }
    .s-header.sticky .s-header__content .btn, .s-header .s-header__content .btn { --btn-height: calc(var(--vspace-btn) - 1.2rem) !important; }
    .s-header.sticky .s-header__content .btn:hover, .s-header.sticky .s-header__content .btn:focus,
    .s-header .s-header__content .btn:hover, .s-header .s-header__content .btn:focus { background-color: white !important; border-color: white !important; color: black; fill: black; }
    .s-header__content { display: block; background-color: var(--color-gray-19); height: auto; width: 100%; padding: calc(5 * var(--space)) 6rem var(--vspace-2); transform: translateY(-100%); position: absolute; top: calc(var(--vspace-0_5) * -1); left: 0; }
    .s-header__content .btn { margin-top: var(--vspace-1_5); text-align: center; transform: translateY(-2rem); opacity: 0; visibility: hidden; position: static; }
    .s-header__nav-wrap { padding: 0; transform: translateY(-2rem); opacity: 0; visibility: hidden; }
    .s-header__nav { display: block; width: 100%; padding: 0; }
    .s-header__nav a { display: block; }
    .s-header__nav li { border-top: 1px solid rgba(255,255,255,0.03); display: block; margin: 0; }
    .s-header__nav li:last-child { border-bottom: 1px solid rgba(255,255,255,0.03); }
    .s-header__menu-toggle { display: block; }
    .menu-is-open .s-header__content { transform: translateY(0); transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1); }
    .menu-is-open .s-header__content .btn { transform: translateY(0); opacity: 1; visibility: visible; transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.5s; transition-delay: .7s; }
    .menu-is-open .s-header__nav-wrap { transform: translateY(0); opacity: 1; visibility: visible; transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1); transition-delay: .6s; }
}
@media screen and (max-width:600px) { .s-header__logo { left: 4rem; } .s-header__menu-toggle { right: 4rem; } .s-header__content { padding: calc(5 * var(--space)) 4rem var(--vspace-2); } .s-header__content .btn { display: block; } .s-header__content .btn svg { transform: translateY(0.3rem); } }

/* ===== HERO ===== */
.s-hero { background-color: #121417; width: 100%; height: 100vh; min-height: calc(25.5 * var(--space)); overflow: hidden; position: relative; }
.s-hero__bg { background: url(../images/hero-bg.png) center/cover; position: absolute; top: 0; right: 0; bottom: 0; left: 36.5vw; }
.s-hero__bg2 { background: url(../images/hero-sop.png) center/cover; position: absolute; top: 0; right: 0; bottom: 0; left: 36.5vw; }
.s-hero__bg3 { background: url(../images/hero-inf.jpeg) center/cover; position: absolute; top: 0; right: 0; bottom: 0; left: 36.5vw; }
.s-hero__bg4 { background: url(../images/hero-seg.png) center/cover; position: absolute; top: 0; right: 0; bottom: 0; left: 36.5vw; }
.s-hero__bg5 { background: url(../images/hero-des.png) center/cover; position: absolute; top: 0; right: 0; bottom: 0; left: 36.5vw; }
.s-hero__bg::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: var(--color-black); opacity: .25; }
.s-hero__bg .gradient-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, black 10%, transparent); opacity: .35; }
.s-hero__content { height: 100%; align-items: flex-end; padding-top: 20vh; padding-bottom: 7vh; position: relative; }
.s-hero__content h1 { font-size: 15rem; font-weight: 600; letter-spacing: -.04em; line-height: 1; color: var(--color-1); margin-bottom: 0; position: relative; }
.s-hero__content h1::before { content: ""; height: 10rem; width: 20rem; background: url(../images/dots.svg); transform: translateX(-4rem); opacity: 1.25; position: absolute; bottom: .14em; right: 100%; }
.s-hero__content-about { font-family: var(--font-2); font-weight: 400; font-size: 3.6rem; line-height: 1.444; color: var(--color-white); padding-left: 3.6em; position: relative; }
.s-hero__content-about::before { content: ""; height: 1px; width: 2.4em; background-color: var(--color-border); position: absolute; left: .5em; top: .8em; }
.s-hero__content-about p { margin-bottom: var(--vspace-2); }
.s-hero__content-social { display: inline-block; font-size: 1.8rem; line-height: var(--vspace-1); }
.s-hero__content-social a { color: white; margin-right: 1.2rem; }
.s-hero__content-social a:hover, .s-hero__content-social a:focus { color: var(--color-1-light); }
.s-hero__video { position: absolute; right: 10.4rem; bottom: 20vh; }
.s-hero__video svg { height: 1.4rem; width: 1.4rem; position: absolute; transform: translate3d(-50%, -50%, 0); left: 50%; top: 50%; fill: white; }
.s-hero__video-link { display: block; height: 9.6rem; width: 9.6rem; background-color: var(--color-1); transition: all 0.3s; color: white; border-radius: 50%; position: relative; }
.s-hero__video-link:hover, .s-hero__video-link:focus { background-color: var(--color-gray-19); outline: 0; }
.s-hero__video-text { display: none; }
.s-hero__scroll { position: absolute; left: 6vw; bottom: 0; transform: rotate(90deg) translateX(-200px); transform-origin: left bottom; }
.s-hero__scroll-link { display: inline-block; font-family: var(--font-2); font-weight: 300; font-size: 9px; line-height: 3.2rem; height: 3.2rem; text-transform: uppercase; letter-spacing: .4em; color: var(--color-text); position: relative; }
.s-hero__scroll-link:hover, .s-hero__scroll-link:focus { color: white; }
html.ss-preload .s-hero__content { opacity: 0; }
html.ss-loaded .s-hero__content { animation: fadeIn 3s cubic-bezier(0.23, 1, 0.32, 1) both; }
@keyframes fadeIn { from { opacity: 0; visibility: hidden; transform: translate3d(0, 100%, 0); } to { opacity: 1; visibility: visible; transform: translate3d(0, 0, 0); } }

@media screen and (max-width:1600px) { .s-hero__content { max-width: 1100px; } }
@media screen and (max-width:1400px) { .s-hero__content { max-width: 1000px; } .s-hero__content h1 { font-size: 15rem; } .s-hero__content-about { font-size: 3.3rem; } .s-hero__video-link { height: 8.8rem; width: 8.8rem; } }
@media screen and (max-width:1200px) { .s-hero__content { max-width: 900px; } }
@media screen and (max-width:1100px) { .s-hero__content { max-width: 800px; } .s-hero__content h1 { font-size: 18rem; } }
@media screen and (max-width:1000px) {
    .s-hero__content { max-width: 700px; } .s-hero__content-about { padding-left: .6em; } .s-hero__content-about::before { display: none; }
    .s-hero__video { right: calc(100% - 48vw); bottom: 7vh; } .s-hero__video svg { display: inline-block; transform: none; margin-right: .4rem; position: static; }
    .s-hero__video-link { display: inline-block; height: auto; width: auto; background-color: transparent !important; border-radius: 0; }
    .s-hero__video-text { display: inline-block; } .s-hero__scroll { left: auto; right: 4.8rem; transform: rotate(90deg) translateX(-100px) translateY(3.2rem); transform-origin: right bottom; }
    .s-hero__scroll-link { color: var(--color-white); }
}
@media screen and (max-width:900px) { .s-hero__bg { width: 50vw; height: 50vh; top: 12rem; right: 0; bottom: auto; left: auto; } .s-hero__content { max-width: 600px; } .s-hero__video { right: calc(100% - 54vw); } .s-hero__scroll-link { color: var(--color-text); } }
@media screen and (max-width:800px) { .s-hero__content { padding-bottom: 8vh; } .s-hero__content h1::before { transform: translateX(0); left: -1.2rem; bottom: .8em; } .s-hero__video { bottom: 8vh; } }
@media screen and (max-width:700px) { .s-hero__content h1 { font-size: 16rem; } .s-hero__content-about { font-size: 2.8rem; } .s-hero__content-social, .s-hero__video { font-size: 1.6rem; } }
@media screen and (max-width:600px) { .s-hero__content h1 { font-size: 28vw; } .s-hero__content-about { padding-right: 15vw; } .s-hero__content-about br { display: none; } .s-hero__scroll { right: 2.8rem; } .s-hero__video { right: calc(100% - 30rem); } }
@media screen and (max-width:500px) { .s-hero__content h1::before { left: -6rem; bottom: .6em; } .s-hero__content-about { font-size: 2.6rem; padding-right: 4rem; padding-left: .5em; } }
@media screen and (max-width:400px) { .s-header__logo { left: 3.2rem; } .s-header__menu-toggle { right: 3.2rem; } .s-hero__content h1::before { left: -8rem; } .s-hero__content { padding-bottom: 14vh; } .s-hero__content-about { font-size: 2.2rem; padding-right: 6rem; } .s-hero__video { right: auto; left: 9vw; bottom: 8.2vh; } }
@media screen and (max-width:360px) { .s-hero__scroll { right: 2rem; transform: rotate(90deg) translateX(-4rem) translateY(3.2rem); } }

/* ===== ABOUT ===== */
.s-about { background-color: var(--color-bg); padding-top: calc(7 * var(--space)); padding-bottom: 0; position: relative; }
.s-about::before { content: ""; width: 28rem; height: 17.6rem; background: url(../images/dots.svg); opacity: .25; position: absolute; top: 0; left: 50%; }
.s-about .horizontal-line { width: 32px; height: 20rem; position: absolute; top: -7rem; left: calc(6vw + 1px); }
.s-about .horizontal-line::before { content: ""; width: 1px; background-color: var(--color-1-darker); position: absolute; right: calc(50% + 1px); top: 0; bottom: 0; }
.s-about__photo-block { position: relative; }
.s-about__photo { background: url(../images/about-photo.png) center/cover; position: absolute; top: var(--vspace-0_5); right: var(--gutter-lg); left: var(--gutter-lg); bottom: var(--vspace-1); }
.s-about__process { counter-reset: ctr; }
.s-about__process h3 { padding-left: 2.5em; position: relative; }
.s-about__process h3::before { content: counter(ctr); counter-increment: ctr; display: block; font-family: var(--font-2); font-size: var(--text-size); font-weight: 600; text-align: center; color: white; background-color: var(--color-1); height: var(--vspace-1_5); width: var(--vspace-1_5); line-height: var(--vspace-1_5); border-radius: 50%; position: absolute; left: 0; top: -5px; }
@media screen and (max-width:1400px) { .s-about::before { right: 15vw; left: auto; } }
@media screen and (max-width:1000px) { .s-about { padding-top: calc(5 * var(--space)); } .s-about .horizontal-line { right: 4.6rem; left: auto; } }
@media screen and (max-width:900px) { .s-about__photo-block { display: none; } }
@media screen and (max-width:800px) { .s-about::before { display: none; } }
@media screen and (max-width:600px) { .s-about .horizontal-line { right: 2.6rem; } }
@media screen and (max-width:400px) { .s-about { padding-top: var(--vspace-4); } .s-about__process h3 { padding-left: 3em; margin-bottom: var(--vspace-0_75); } }
@media screen and (max-width:360px) { .s-about .horizontal-line { height: 16rem; top: -2rem; right: 1.8rem; } }

/* ===== SERVICES / PORTFOLIO ===== */
.s-services, .s-portfolio { background-color: var(--color-bg); }
.s-services { padding-top: calc(6 * var(--space)); padding-bottom: var(--vspace-2); }
.s-portfolio { padding-top: calc(7 * var(--space)); padding-bottom: 0; }
.s-services .lead { margin-top: var(--vspace-0_25); }
.service-icon { display: block; width: calc(2.25 * var(--space)); height: calc(2.25 * var(--space)); background: center/contain; }
.service-icon--product-design { background-image: url(../images/icons/services/icon-product-design.svg); }
.service-icon--branding { background-image: url(../images/icons/services/icon-branding.svg); }
.service-icon--frontend { background-image: url(../images/icons/services/icon-frontend.svg); }
.service-icon--research { background-image: url(../images/icons/services/icon-research.svg); }
.service-icon--illustration { background-image: url(../images/icons/services/icon-illustration.svg); }
.service-icon--ecommerce { background-image: url(../images/icons/services/icon-ecommerce.svg); }
/* ===== SECCIÓN DE SERVICIOS (PORTFOLIO) - VERSIÓN MEJORADA ===== */
.s-portfolio__list { 
    max-width: calc(var(--width-max) + 40px); 
    padding-top: var(--vspace-1_5); 
}

.folio-item { 
    position: relative; 
    overflow: hidden; 
    border-radius: 10px; /* Bordes redondeados para un look más moderno */
}

.folio-item__caption { 
    display: none; 
}

.folio-item__thumb a { 
    display: block; 
}

.folio-item__thumb img { 
    vertical-align: bottom; 
    transition: all 0.5s ease-in-out; /* Transición suave para todos los cambios */
    width: 100%;
    height: auto;
    display: block;
}

/* INFO - Textos que aparecen desde arriba */
.folio-item__info { 
    z-index: 20; /* Aumentado para estar por encima */
    padding: 0 2rem; /* Reducido ligeramente */
    transform: translateY(-100%); 
    opacity: 0; 
    visibility: hidden; 
    transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1); 
    position: absolute; 
    left: 0; 
    top: 2rem; /* Reducido para mejor posición */
    width: 100%;
    text-align: left;
}

.folio-item__title { 
    color: white; /* Cambiado a blanco para mejor visibilidad */
    font-weight: 600; /* Más grueso */
    font-size: 1.8rem; /* Ligeramente más grande */
    line-height: 1.4;
    text-shadow: 0 2px 4px rgba(0,0,0,0.5); /* Sombra para que resalte */
    margin-bottom: 5px;
}

.folio-item__cat { 
    color: #00B7E5; /* Cambiado al azul de tu marca */
    font-family: var(--font-2); 
    font-size: 1.3rem; 
    line-height: 1.5;
    font-weight: 500;
    text-shadow: 0 1px 2px rgba(0,0,0,0.5);
    display: inline-block;
    background: rgba(0,0,0,0.3); /* Fondo semi-transparente */
    padding: 4px 12px;
    border-radius: 30px;
    border: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(5px); /* Efecto de vidrio */
}

/* PROJECT LINK - Enlace que aparece desde la izquierda */
.folio-item__project-link { 
    z-index: 20; 
    display: inline-block; /* Cambiado a inline-block */
    font-family: var(--font-2); 
    font-weight: 500; 
    font-size: 1.3rem; 
    line-height: 1;
    color: white; 
    background: rgba(0, 183, 229, 0.8); /* Fondo azul semi-transparente */
    border: 2px solid #00B7E5; 
    padding: 1rem 2rem; 
    opacity: 0; 
    visibility: hidden; 
    transform: translateX(-30px); /* Cambiado a -30px para que no se salga tanto */
    transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1); 
    position: absolute; 
    bottom: 3rem; /* Ajustado */
    left: 2rem; /* Ajustado */
    border-radius: 50px; /* Bordes redondeados */
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}

.folio-item__project-link::before { 
    content: ""; 
    height: 1px; 
    width: 2.5rem; /* Reducido ligeramente */
    background: rgba(255,255,255,0.5); 
    position: absolute; 
    top: 50%; 
    left: -2.5rem; /* Ajustado */
}

.folio-item__project-link:hover, 
.folio-item__project-link:focus { 
    background: white; 
    border-color: white; 
    color: #0004e5; /* Texto azul al hacer hover */
    transform: translateX(5px) !important; /* Se mueve un poco más */
}

/* ===== NUEVO EFECTO DE BRILLO (SIN CORTINA) ===== */
/* Eliminamos completamente los pseudo-elementos anteriores y los reemplazamos */

/* En lugar de usar ::before y ::after, usaremos un borde con glow */
.folio-item:hover .folio-item__thumb img {
    transform: scale(1.05); /* Ligero zoom */
    filter: brightness(1.1); /* Más brillante */
}

/* Efecto de brillo en los bordes usando box-shadow en el contenedor */
.folio-item:hover {
    box-shadow: 0 0 0 2px rgba(0, 183, 229, 0.3), 0 0 30px 5px rgba(0, 183, 229, 0.6);
    border-radius: 10px;
    transition: box-shadow 0.3s ease;
}

/* Mantenemos la animación de los textos */
.folio-item:hover .folio-item__info { 
    opacity: 1; 
    visibility: visible; 
    transform: translateY(0); 
}

.folio-item:hover .folio-item__project-link { 
    opacity: 1; 
    visibility: visible; 
    transform: translateX(0); 
}

@media screen and (max-width:1200px) { .s-services, .s-portfolio { padding-top: calc(5 * var(--space)); } .folio-item__thumb a::after { font-size: 2rem; } .folio-item__title { font-size: 1.5rem; } .folio-item__cat { font-size: 1.1rem; } }
@media screen and (max-width:800px) { .folio-item__thumb a::after { font-size: 3rem; } .folio-item__title { font-size: 1.6rem; } .folio-item__cat { font-size: 1.2rem; } }
@media screen and (max-width:600px) { .folio-item__thumb a::after { font-size: 2rem; } .folio-item__title { font-size: 1.5rem; } .folio-item__cat { font-size: 1.1rem; } }
@media screen and (max-width:400px) { .s-services, .s-portfolio { padding-top: var(--vspace-4); } }

/* ===== CLIENTS ===== */
.s-clients { background-color: var(--color-bg); padding-top: calc(6 * var(--space)); padding-bottom: var(--vspace-4); position: relative; }

input { padding: 10px; font-size: 16px; border: 2px solid #3498db; border-radius: 5px; width: 100%; box-sizing: border-box; transition: all 0.3s ease; }
input:focus { border-color: #2ecc71; outline: none; }
input[type="text"], input[type="email"] { background-color: #0b0b0c; }
input[type="button"] { background-color: #3498db; color: black; cursor: pointer; }

.clients-outer { max-width: 1080px; margin: var(--vspace-2) 0; text-align: center; position: relative; }
.clients-outer .column { min-height: 0; min-width: 0; }
.clients__slide { display: block; opacity: .15; padding: 0; transition: opacity .5s; text-align: center; }
.clients__slide img { padding: 0 2rem; }
.clients__slide:hover, .clients__slide:focus { opacity: 1; }

.testimonials { background-color: var(--color-bg); max-width: 800px; padding: var(--vspace-4) 0 var(--vspace-1_5); text-align: center; }
.testimonials .slick-arrow { z-index: 2; position: absolute; top: calc(2.5 * var(--space)); width: var(--vspace-1); height: var(--vspace-1); border: none; background: center/contain transparent; cursor: pointer; opacity: .15; color: transparent; }
.testimonials .slick-arrow:hover, .testimonials .slick-arrow:focus { opacity: 1; }
.testimonials .slick-prev { left: -100px; background-image: url("../images/icons/icon-arrow-left.svg"); }
.testimonials .slick-next { right: -100px; background-image: url("../images/icons/icon-arrow-right.svg"); }
.testimonial-slider p { font-size: var(--text-lg); line-height: 1.852; color: white; }
.testimonial-slider__slide { padding: 0 var(--gutter-lg); }
.testimonial-slider__author { display: inline-block; min-height: 7.2rem; margin-top: var(--vspace-1); padding-left: 8.4rem; text-align: left; position: relative; }
.testimonial-slider__avatar { width: var(--vspace-2); height: var(--vspace-2); border-radius: 50%; margin-right: 1.6rem; position: absolute; top: 0; left: 0; }
.testimonial-slider__cite { display: block; padding-top: calc(0.125 * var(--space)); font-style: normal; }
.testimonial-slider__cite strong { font-size: var(--text-size); color: var(--color-1); }
.testimonial-slider__cite span { display: block; font-size: 1.4rem; font-weight: 400; line-height: var(--vspace-0_5); color: var(--color-text-light); }

@media screen and (max-width:1400px) { .clients-outer { max-width: 1000px; } .testimonials { max-width: 700px; } .testimonials .slick-prev { left: -60px; } .testimonials .slick-next { right: -60px; } }
@media screen and (max-width:900px) { .testimonials { max-width: 600px; } .testimonials .slick-arrow { top: auto; bottom: var(--vspace-1); } .testimonials .slick-prev { left: 1.2rem; } .testimonials .slick-next { right: 1.2rem; } }
@media screen and (max-width:800px) { .clients-outer { max-width: 640px; } .testimonial-slider p { font-size: var(--text-md); } .testimonial-slider__author { min-height: 0; margin-top: var(--vspace-0_5); padding-left: 0; text-align: center; } .testimonial-slider__avatar { margin: 0 auto; position: static; } }
@media screen and (max-width:600px) { .testimonial-slider__slide { padding: 0; } .testimonial-slider__avatar { width: var(--vspace-1_75); height: var(--vspace-1_75); } }
@media screen and (max-width:400px) { .testimonials { padding-top: var(--vspace-2); } .testimonial-slider p { font-size: var(--text-size); } }

/* ===== CONTACT ===== */
.s-contact { background-color: var(--color-1); padding-top: calc(6 * var(--space)); padding-bottom: var(--vspace-2); }
.s-contact__top .h6 { color: black; margin-top: 0; margin-bottom: var(--vspace-1); }
.s-contact__email { margin-top: var(--vspace-1_5); font-family: var(--font-2); font-size: calc(var(--text-size) * 6.6); font-weight: 500; letter-spacing: -0.01em; line-height: 1; }
.s-contact__email a { color: white; border-bottom: 2px solid transparent; }
.s-contact__email a:hover, .s-contact__email a:focus { border-bottom: 2px solid white; }
@media screen and (max-width:1600px) { .s-contact__email { font-size: calc(var(--text-size) * 6); } }
@media screen and (max-width:1200px) { .s-contact__email { font-size: 10vw; } }
@media screen and (max-width:400px) { .s-contact { padding-top: var(--vspace-4); } }

/* ===== FOOTER ===== */
.s-footer { padding: var(--vspace-2) 0 var(--vspace-4); color: white; }
.s-footer a { color: white; }
.s-footer .h6 { color: black; margin-top: 0; }
.s-footer__block { font-size: var(--text-lg); line-height: calc(1.25 * var(--space)); }
.s-footer__block .h6 { margin-bottom: var(--vspace-0_75); }
.s-footer__block--end { font-size: var(--text-sm); line-height: var(--vspace-1); padding-top: var(--vspace-1_75); position: relative; }
.s-footer__block--end::before { content: ""; height: 1px; width: 33.333%; background: rgba(0,0,0,0.5); position: absolute; top: var(--vspace-0_25); left: var(--gutter-lg); }
.s-footer__block--end .btn { background: white; border: .2rem solid white; color: black; margin-right: 0; margin-bottom: var(--vspace-1); }
.s-footer__block--end .btn:hover, .s-footer__block--end .btn:focus { background: var(--color-gray-19); border-color: var(--color-gray-19); color: white; }
.s-footer__list { list-style: none; margin-left: 0; }
.s-footer__list li { padding-left: 0; }
.ss-copyright { z-index: 2; font-size: 1.5rem; font-weight: 300; position: relative; }
.ss-copyright a { display: inline-block; color: white; border-bottom: 1px dotted rgba(255,255,255,0.2); }
.ss-copyright a:hover, .ss-copyright a:focus { border-bottom: 1px solid white; }
.ss-copyright span { display: inline-block; }
.ss-copyright span::after { content: "|"; display: inline-block; padding: 0 .8rem 0 1rem; color: rgba(255,255,255,0.25); }
.ss-copyright span:last-child::after { display: none; }

.ss-go-top { z-index: 2; opacity: 0; visibility: hidden; transform: scale(0); transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1); position: fixed; bottom: var(--vspace-1); right: 4rem; }
.ss-go-top a { text-decoration: none; display: block; height: 6.4rem; width: 6.4rem; line-height: 6.4rem; text-align: center; border-radius: 50%; background: var(--color-gray-19) !important; transition: all .3s; }
.ss-go-top.link-is-visible { opacity: 1; visibility: visible; transform: scale(1); }

@media screen and (max-width:1400px) { .s-footer>.row { max-width: 1100px; } }
@media screen and (max-width:1200px) { .s-footer>.row { max-width: 800px; } .s-footer__block--end { text-align: center; } .s-footer__block--end::before { display: none; } }
@media screen and (max-width:800px) { .s-footer { padding-top: var(--vspace-1); } .ss-go-top a { font-size: 1.6rem; height: 6rem; width: 6rem; line-height: 6rem; } }
@media screen and (max-width:600px) { .ss-go-top { right: 2.4rem; bottom: 2.4rem; } .ss-copyright span { display: block; } .ss-copyright span::after { display: none; } }
@media screen and (max-width:400px) { .s-footer__block { font-size: var(--text-md); line-height: calc(1.125 * var(--space)); } .ss-go-top a { font-size: 1.4rem; height: 4.8rem; width: 4.8rem; line-height: 4.8rem; } .ss-copyright { font-size: 1.4rem; } }

/* ===== SUBMENU INTERACTIVO ===== */
.s-orgchart { padding: 6rem 0 8rem; background: #0b1a24; position: relative; overflow: hidden; border-top: 1px solid rgba(0,183,229,0.2); border-bottom: 1px solid rgba(0,183,229,0.2); }
.s-orgchart::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(0,183,229,0.05) 0%, transparent 70%); pointer-events: none; }
.org-chart__header { text-align: center; margin-bottom: 3rem; position: relative; z-index: 2; }
.org-chart__header .display-1 { font-size: 3.6rem; color: #fff; margin-bottom: 1rem; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.org-chart__header .lead { font-size: 1.8rem; color: #b0e0ff; max-width: 700px; margin: 0 auto; opacity: 0.9; }
.org-chart__main-buttons { display: flex; justify-content: center; gap: 2rem; margin: 3rem 0 2rem; flex-wrap: wrap; z-index: 2; }
.org-btn { display: inline-flex; align-items: center; gap: 1rem; padding: 1.2rem 2.5rem; border: none; border-radius: 50px; font-size: 1.8rem; font-weight: 600; cursor: pointer; transition: all 0.3s cubic-bezier(0.4,0,0.2,1); position: relative; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); }
.org-btn--primary, .org-btn--secondary { background: linear-gradient(145deg, #00B7E5, #0082a5); color: white; border-bottom: 3px solid #00B7E5; }
.org-btn--primary:hover, .org-btn--secondary:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0,183,229,0.3); background: linear-gradient(145deg, #1ac0ed, #0095c0); }
.org-btn__icon { font-size: 2.2rem; }
.org-btn__arrow { font-size: 1.4rem; transition: transform 0.3s; color: rgba(255,255,255,0.8); }
.org-btn.active .org-btn__arrow { transform: rotate(180deg); }
.org-chart__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; margin-top: 3rem; padding: 2rem 0; z-index: 2; }
.org-chart__item { background: rgba(11,26,36,0.8); backdrop-filter: blur(10px); border-radius: 20px; padding: 2.5rem 1.5rem; text-align: center; box-shadow: 0 10px 30px rgba(0,0,0,0.2); transition: all 0.3s; border: 1px solid rgba(0,183,229,0.2); position: relative; overflow: hidden; cursor: pointer; animation: fadeInUp 0.5s forwards; opacity: 0; }
.org-chart__item::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(0,183,229,0.1), transparent); transition: left 0.5s; }
.org-chart__item:hover::before { left: 100%; }
.org-chart__item::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, #00B7E5, #4ad0ff, #00B7E5); background-size: 200% 100%; animation: gradientMove 3s infinite; transform: scaleX(0); transition: transform 0.3s; }
.org-chart__item:hover::after { transform: scaleX(1); }
.org-chart__item-icon { font-size: 3.5rem; margin-bottom: 1.5rem; display: inline-block; background: linear-gradient(145deg, rgba(0,183,229,0.15), rgba(0,130,165,0.15)); padding: 1.5rem; border-radius: 50%; transition: transform 0.3s; border: 1px solid rgba(0,183,229,0.3); box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
.org-chart__item:hover .org-chart__item-icon { transform: scale(1.1) rotate(5deg); background: linear-gradient(145deg, rgba(0,183,229,0.25), rgba(0,130,165,0.25)); border-color: rgba(0,183,229,0.6); }
.org-chart__item h3 { font-size: 1.8rem; font-weight: 700; margin-bottom: 1rem; color: #fff; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.org-chart__item p { font-size: 1.4rem; color: #b0e0ff; line-height: 1.5; opacity: 0.9; }
.org-chart__badge { display: inline-block; background: rgba(0,183,229,0.15); color: #4ad0ff; padding: 0.4rem 1rem; border-radius: 50px; font-size: 1.2rem; font-weight: 600; margin-top: 1rem; border: 1px solid rgba(0,183,229,0.3); backdrop-filter: blur(5px); box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.org-chart__connector { display: flex; justify-content: center; align-items: center; gap: 0.5rem; margin: 1rem 0 0; color: #00B7E5; font-size: 1.2rem; opacity: 0.6; }
.org-chart__connector span { animation: pulse 2s infinite; }
.org-chart__connector span:nth-child(2) { animation-delay: 0.3s; }
.org-chart__connector span:nth-child(3) { animation-delay: 0.6s; }
.org-chart__item::before { content: '→'; position: absolute; bottom: 1rem; right: 1rem; font-size: 1.8rem; color: #00B7E5; opacity: 0; transform: translateX(-10px); transition: all 0.3s; text-shadow: 0 0 10px rgba(0,183,229,0.5); z-index: 2; }
.org-chart__item:hover::before { opacity: 1; transform: translateX(0); }
.org-chart__content { min-height: 200px; transition: all 0.5s; z-index: 2; }
.org-chart__content.hidden { opacity: 0; transform: translateY(20px); pointer-events: none; }

@keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gradientMove { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes pulse { 0%,100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } }

@media screen and (max-width:1200px) { .org-chart__grid { grid-template-columns: repeat(2, 1fr); } }
@media screen and (max-width:768px) {
    .s-orgchart { padding: 4rem 0; }
    .org-chart__main-buttons { flex-direction: column; align-items: stretch; padding: 0 2rem; }
    .org-btn { justify-content: center; }
    .org-chart__grid { grid-template-columns: 1fr; padding: 2rem; }
    .org-chart__header .display-1 { font-size: 2.8rem; }
    .org-chart__header .lead { font-size: 1.6rem; padding: 0 2rem; }
}
@media screen and (max-width:600px) { .org-chart__grid { grid-template-columns: 1fr; } .org-chart__item { margin: 0 1rem; } }
.org-chart__item:focus, .org-btn:focus { outline: 2px solid #00B7E5; outline-offset: 2px; }

/* ===== MODALES ===== */
.org-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(11,26,36,0.95); backdrop-filter: blur(10px); z-index: 9999; opacity: 0; transition: opacity 0.3s; overflow-y: auto; }
.org-modal.active { display: flex; opacity: 1; }
.org-modal__overlay { position: absolute; inset: 0; cursor: pointer; }
.org-modal__container { position: relative; width: 90%; max-width: 1000px; margin: auto; background: var(--color-bg, #14171B); border-radius: 20px; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.8); z-index: 2; overflow: hidden; display: flex; flex-direction: column; animation: modalSlideIn 0.3s ease-out; border: 1px solid rgba(0,183,229,0.2); }
@keyframes modalSlideIn { from { transform: translateY(-30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.org-modal__header { padding: 20px 30px; background: linear-gradient(135deg, #0b1a24, #1a2a35); color: white; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(0,183,229,0.3); }
.org-modal__title { display: flex; align-items: center; gap: 15px; }
.org-modal__icon { font-size: 32px; }
.org-modal__title h2 { margin: 0; font-size: 24px; font-weight: 600; color: white; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.org-modal__badge { padding: 6px 15px; background: rgba(0,183,229,0.2); border-radius: 30px; font-size: 14px; font-weight: 500; color: #4ad0ff; border: 1px solid rgba(0,183,229,0.3); }
.org-modal__close { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,0.1); border: none; color: white; font-size: 28px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s; }
.org-modal__close:hover { background: rgba(255,75,75,0.3); transform: scale(1.1); color: #ff4b4b; }
.org-modal__body { padding: 30px; overflow-y: auto; background: var(--color-bg); flex: 1; min-height: 300px; max-height: calc(85vh - 150px); color: var(--color-text); }
.org-modal__body h1, .org-modal__body h2, .org-modal__body h3, .org-modal__body h4, .org-modal__body h5, .org-modal__body h6 { color: white !important; margin: 20px 0 15px; }
.org-modal__body p { color: var(--color-text) !important; line-height: 1.6; margin-bottom: 15px; }
.org-modal__body .lead { color: #b0e0ff !important; font-size: 1.8rem; }
.org-modal__body ul, .org-modal__body ol { color: var(--color-text); margin-left: 20px; margin-bottom: 20px; }
.org-modal__body li { color: var(--color-text); margin-bottom: 8px; display: list-item; }
.org-modal__body img { max-width: 100%; height: auto; border-radius: 10px; margin: 20px 0; border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 10px 30px rgba(0,0,0,0.3); display: block; }
.org-modal__body .folio-item { margin: 20px 0; background: rgba(255,255,255,0.02); border-radius: 15px; padding: 20px; border: 1px solid rgba(0,183,229,0.1); }
.org-modal__body .folio-item__thumb { display: block !important; margin-bottom: 15px; }
.org-modal__body .folio-item__thumb img { width: 100%; max-height: 400px; object-fit: cover; margin: 0; }
.org-modal__body .folio-item__cat { color: #4ad0ff !important; font-size: 1.4rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }
.org-modal__body .s-about { padding: 20px 0; background: transparent !important; }
.org-modal__body .s-about__photo-block { display: block !important; margin: 20px 0; }
.org-modal__body .s-about__photo { position: relative !important; height: 300px; background-size: cover; background-position: center; border-radius: 15px; border: 1px solid rgba(255,255,255,0.1); }
.org-modal__body .clients { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 20px; margin: 20px 0; }
.org-modal__body .clients__slide { background: rgba(255,255,255,0.02); padding: 20px; border-radius: 10px; border: 1px solid rgba(0,183,229,0.1); transition: all 0.3s; }
.org-modal__body .clients__slide:hover { background: rgba(0,183,229,0.1); transform: translateY(-5px); }
.org-modal__body .clients__slide img { margin: 0 auto; max-width: 120px; filter: brightness(0.8) invert(0.1); }
.org-modal__body .testimonials { background: transparent !important; padding: 20px 0; }
.org-modal__body .testimonial-slider__slide { background: rgba(255,255,255,0.02); border-radius: 15px; padding: 30px; border: 1px solid rgba(0,183,229,0.1); }
.org-modal__body::-webkit-scrollbar { width: 8px; }
.org-modal__body::-webkit-scrollbar-track { background: #1a2a35; border-radius: 4px; }
.org-modal__body::-webkit-scrollbar-thumb { background: #00B7E5; border-radius: 4px; }
.org-modal__body::-webkit-scrollbar-thumb:hover { background: #4ad0ff; }
.org-modal__footer { padding: 20px 30px; background: #0b1a24; border-top: 1px solid rgba(0,183,229,0.2); text-align: right; }
.org-modal__btn { padding: 12px 30px; background: linear-gradient(135deg, #00B7E5, #0082a5); border: none; border-radius: 50px; color: white; font-size: 16px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; transition: all 0.3s; box-shadow: 0 4px 15px rgba(0,183,229,0.3); border: 1px solid rgba(255,255,255,0.1); }
.org-modal__btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,183,229,0.5); background: linear-gradient(135deg, #1ac0ed, #0095c0); }

/* ===== OCULTAR SECCIONES (VISUALMENTE) ===== */
#soporte, #seguridad, #infraestructura, #desarrollos, #about, #proceso, #clients, #testimonios {
    position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important;
    margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important;
    white-space: nowrap !important; border: 0 !important; opacity: 0 !important;
    pointer-events: none !important; visibility: hidden !important; z-index: -9999 !important;
}
.org-modal__body #soporte, .org-modal__body #seguridad, .org-modal__body #infraestructura,
.org-modal__body #desarrollos, .org-modal__body #about, .org-modal__body #proceso,
.org-modal__body #clients, .org-modal__body #testimonios, .org-modal__body #CCTV,
.org-modal__body #acceso, .org-modal__body #respaldo, .org-modal__body #conmutador {
    position: relative !important; width: auto !important; height: auto !important;
    padding: 20px !important; margin: 0 0 30px 0 !important; overflow: visible !important;
    clip: auto !important; white-space: normal !important; border: none !important;
    opacity: 1 !important; pointer-events: auto !important; visibility: visible !important;
    z-index: auto !important; display: block !important; background: transparent !important;
}
.org-modal__body .row, .org-modal__body .s-portfolio__list { display: block !important; margin-bottom: 30px !important; }
.org-modal__body .folio-item__thumb, .org-modal__body .folio-item__project-link,
.org-modal__body .slick-slider { display: none !important; }
.org-modal__body .section-title { margin-bottom: 15px !important; }
.org-modal__body .display-1 { font-size: 2rem !important; margin-bottom: 20px !important; }
.org-modal__body ul, .org-modal__body p { margin-bottom: 15px !important; line-height: 1.6 !important; }

/* ===== ESTILOS DE SERVICIOS ===== */
.service-details { margin: 30px 0; border-radius: 20px; background: rgba(255,255,255,0.02); border: 1px solid rgba(0,183,229,0.2); overflow: hidden; transition: all 0.3s; }
.service-details:hover { border-color: rgba(0,183,229,0.5); box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
.service-summary { padding: 20px 30px; background: linear-gradient(90deg, rgba(0,183,229,0.1), transparent); cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; font-weight: 600; color: white; transition: all 0.3s; }
.service-summary:hover { background: linear-gradient(90deg, rgba(0,183,229,0.2), transparent); padding-left: 35px; }
.service-summary::-webkit-details-marker { display: none; }
.summary-text { font-size: 1.6rem; letter-spacing: 0.5px; }
.summary-icon { font-size: 1.2rem; transition: transform 0.3s; color: #00B7E5; }
details[open] .summary-icon { transform: rotate(180deg); }
.details-content { padding: 30px; animation: slideDown 0.5s; }
@keyframes slideDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }
.details-intro { font-size: 1.8rem; color: #b0e0ff; margin-bottom: 25px; text-align: center; }
.service-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 25px; margin: 30px 0; }
.service-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.05); border-radius: 15px; overflow: hidden; transition: all 0.3s; }
.service-card:hover { transform: translateY(-5px); border-color: rgba(0,183,229,0.3); box-shadow: 0 10px 30px rgba(0,183,229,0.15); background: rgba(255,255,255,0.05); }
.service-card--featured { border: 2px solid rgba(0,183,229,0.3); background: linear-gradient(145deg, rgba(0,183,229,0.05), rgba(255,255,255,0.02)); }
.service-card--featured:hover { border-color: #00B7E5; }
.service-card__header { padding: 20px 20px 10px; border-bottom: 1px solid rgba(255,255,255,0.05); display: flex; align-items: center; gap: 15px; flex-wrap: wrap; }
.service-card__number { width: 40px; height: 40px; background: rgba(0,183,229,0.2); border: 1px solid rgba(0,183,229,0.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.8rem; color: #00B7E5; animation: pulse 2s infinite; }
.service-card__title { margin: 0; font-size: 1.6rem; color: white; flex: 1; }
.service-card__featured-badge { background: linear-gradient(135deg, #00B7E5, #0082a5); color: white; padding: 4px 12px; border-radius: 50px; font-size: 1.1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }
.service-card__body { padding: 20px; }
.service-card__description { color: #b0e0ff; font-size: 1.4rem; margin-bottom: 15px; line-height: 1.5; }
.service-card__badge { display: inline-block; background: rgba(255,255,255,0.05); padding: 4px 12px; border-radius: 50px; font-size: 1.2rem; color: #00B7E5; border: 1px solid rgba(0,183,229,0.2); }
.service-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.service-features { margin-top: 20px; }
.service-features__title { font-size: 1.4rem; color: #00B7E5; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 1px; }
.service-features__list { list-style: none; padding: 0; margin: 0; }
.service-features__item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.05); color: var(--color-text); font-size: 1.4rem; transition: transform 0.3s; }
.service-features__item:hover { transform: translateX(5px); background: rgba(0,183,229,0.05); }
.feature-icon { font-size: 1.8rem; min-width: 30px; }
.details-cta { text-align: center; margin-top: 40px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,0.05); }
.cta-text { font-size: 1.8rem; color: white; margin-bottom: 20px; }
.details-cta .btn--stroke { background: transparent !important; border: 2px solid #00B7E5 !important; color: #00B7E5 !important; }
.details-cta .btn--stroke:hover { background: #00B7E5 !important; color: #0b1a24 !important; }

@media screen and (max-width:768px) {
    .service-options { grid-template-columns: 1fr; }
    .service-card__header { flex-direction: column; text-align: center; }
    .service-card__number { margin: 0 auto; }
    .service-features__list { grid-template-columns: 1fr !important; }
    .details-content { padding: 20px; }
}

/* ===== NUEVO EFECTO DE BRILLO PARA IMÁGENES ===== */
.folio-item {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
}

.folio-item__thumb img {
    transition: all 0.5s ease-in-out;
    display: block;
    width: 100%;
    height: auto;
}

.folio-item:hover .folio-item__thumb img {
    transform: scale(1.05);
    filter: brightness(1.1);
}

/* Efecto de brillo en los bordes */
.folio-item:hover::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    border: 3px solid transparent;
    border-radius: 8px;
    box-shadow: 0 0 30px 8px rgba(0, 183, 229, 0.8);
    animation: pulseGlow 1.5s infinite alternate;
    z-index: 10;
}

@keyframes pulseGlow {
    0% {
        box-shadow: 0 0 20px 5px rgba(0, 183, 229, 0.6);
    }
    100% {
        box-shadow: 0 0 40px 15px rgba(0, 183, 229, 0.9);
    }
}

/* ===== OPTIMIZACIÓN MÓVIL PROFESIONAL - VERSIÓN AVIÓN ===== */

/* 1. ACELERACIÓN DE IMÁGENES (Lo más importante) */
@media screen and (max-width: 768px) {
    /* Forzar carga rápida y evitar saltos */
    .folio-item__thumb img,
    .s-hero__bg,
    .s-about__photo,
    img {
        content-visibility: auto; /* Carga diferida nativa */
        contain: content; /* Aísla el renderizado */
        loading: lazy; /* Carga diferida de imágenes */
        aspect-ratio: auto; /* Mantiene proporciones */
        width: 100%;
        height: auto;
    }
    
    /* Eliminar efectos pesados en móvil */
    .folio-item:hover .folio-item__thumb img {
        transform: none !important; /* Quita zoom en móvil */
        filter: none !important; /* Quita brillos */
    }
    
    .folio-item:hover {
        box-shadow: none !important; /* Quita sombras pesadas */
    }
    
    /* Simplificar hover effects */
    .folio-item__info {
        opacity: 1 !important; /* Siempre visible en móvil */
        visibility: visible !important;
        transform: translateY(0) !important;
        background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
        padding: 20px 15px 10px !important;
        top: auto !important;
        bottom: 0 !important;
        height: auto !important;
        width: 100% !important;
        left: 0 !important;
    }
    
    .folio-item__project-link {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateX(0) !important;
        bottom: 20px !important;
        right: 20px !important;
        left: auto !important;
        font-size: 1.2rem !important;
        padding: 8px 16px !important;
    }
    
    .folio-item__project-link::before {
        display: none !important; /* Quita la línea decorativa */
    }
    
    /* Mejorar legibilidad de textos */
    .folio-item__title {
        font-size: 1.6rem !important;
        color: white !important;
        margin-bottom: 5px !important;
    }
    
    .folio-item__cat {
        font-size: 1.1rem !important;
        background: rgba(0,183,229,0.9) !important;
        color: white !important;
        border: none !important;
        display: inline-block !important;
        padding: 3px 10px !important;
    }
}

/* 2. OPTIMIZACIÓN DE TIPOGRAFÍA Y ESPACIOS */
@media screen and (max-width: 768px) {
    body {
        font-size: 14px; /* Base más pequeña pero legible */
        line-height: 1.5;
        -webkit-text-size-adjust: 100%; /* Evita zoom automático */
    }
    
    h1, .h1, .display-1 {
        font-size: 2.4rem !important;
        line-height: 1.2 !important;
        margin: 15px 0 !important;
        word-break: break-word; /* Evita desbordes */
    }
    
    h2 {
        font-size: 2rem !important;
    }
    
    h3 {
        font-size: 1.8rem !important;
    }
    
    p, .lead {
        font-size: 1.4rem !important;
        line-height: 1.5 !important;
    }
    
    /* Reducir padding y márgenes */
    .row {
        padding-left: 15px !important;
        padding-right: 15px !important;
        width: 100% !important;
    }
    
    .column {
        padding: 0 10px !important;
    }
    
    /* Eliminar espacios innecesarios */
    .vspace-1, .vspace-2, .vspace-3 {
        margin-bottom: 30px !important;
    }
    
    /* Simplificar el header móvil */
    .s-header__logo img {
        width: 50px !important;
        height: auto !important;
    }
    
    .s-header__content {
        padding: 80px 20px 30px !important;
    }
    
    .s-header__nav li {
        font-size: 1.4rem !important;
        line-height: 4rem !important;
    }
    
    .btn {
        font-size: 1.2rem !important;
        padding: 10px 20px !important;
        height: auto !important;
        line-height: normal !important;
        white-space: normal !important; /* Permite texto multilínea */
    }
}

/* 3. OPTIMIZACIÓN DE SECCIONES COMPLETAS */
@media screen and (max-width: 768px) {
    /* Hero section más compacta */
    .s-hero {
        height: auto !important;
        min-height: 100vh !important;
    }
    
    .s-hero__content {
        padding: 120px 20px 40px !important;
    }
    
    .s-hero__content h1 {
        font-size: 5rem !important;
        margin-bottom: 10px !important;
    }
    
    .s-hero__content h1::before {
        display: none !important; /* Quita decoración pesada */
    }
    
    .s-hero__content-about {
        font-size: 1.8rem !important;
        padding-left: 0 !important;
    }
    
    .s-hero__content-about::before {
        display: none !important;
    }
    
    .s-hero__video {
        position: relative !important;
        right: auto !important;
        bottom: auto !important;
        margin: 30px 0 20px !important;
        text-align: center !important;
    }
    
    .s-hero__video-link {
        display: inline-block !important;
        width: auto !important;
        height: auto !important;
        background: #00B7E5 !important;
        padding: 10px 25px !important;
        border-radius: 50px !important;
    }
    
    .s-hero__video-link svg {
        display: inline-block !important;
        position: static !important;
        transform: none !important;
        margin-right: 10px !important;
    }
    
    .s-hero__scroll {
        display: none !important; /* Oculta scroll en móvil */
    }
    
    /* Servicios en grid simple */
    .service-options {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
    
    .service-card {
        margin-bottom: 15px !important;
    }
    
    .service-card__header {
        padding: 15px !important;
    }
    
    .service-card__body {
        padding: 15px !important;
    }
    
    .service-features__list {
        grid-template-columns: 1fr !important;
    }
    
    /* Simplificar submenú */
    .org-chart__main-buttons {
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    .org-btn {
        width: 100% !important;
        justify-content: center !important;
        font-size: 1.4rem !important;
        padding: 12px !important;
    }
    
    .org-chart__grid {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
    
    .org-chart__item {
        padding: 20px !important;
    }
    
    .org-chart__item-icon {
        font-size: 2.5rem !important;
        padding: 15px !important;
    }
    
    /* Mejorar formulario */
    input, textarea {
        font-size: 16px !important; /* Evita zoom en iOS */
        padding: 12px !important;
        margin-bottom: 15px !important;
    }
    
    /* Footer simplificado */
    .s-footer__block {
        font-size: 1.4rem !important;
        line-height: 1.6 !important;
        margin-bottom: 25px !important;
    }
    
    .s-footer__block--end {
        text-align: center !important;
        padding-top: 20px !important;
    }
    
    .s-footer__block--end::before {
        display: none !important;
    }
    
    .ss-go-top {
        right: 15px !important;
        bottom: 15px !important;
    }
    
    .ss-go-top a {
        width: 50px !important;
        height: 50px !important;
        line-height: 50px !important;
        font-size: 1.2rem !important;
    }
}

/* 4. OPTIMIZACIÓN PARA PANTALLAS MUY PEQUEÑAS */
@media screen and (max-width: 480px) {
    h1, .h1, .display-1 {
        font-size: 2rem !important;
    }
    
    .folio-item__info {
        padding: 15px 10px !important;
    }
    
    .folio-item__title {
        font-size: 1.4rem !important;
    }
    
    .folio-item__cat {
        font-size: 1rem !important;
        padding: 2px 8px !important;
    }
    
    .folio-item__project-link {
        font-size: 1rem !important;
        padding: 6px 12px !important;
        bottom: 15px !important;
        right: 15px !important;
    }
    
    .btn {
        width: 100% !important;
        margin: 5px 0 !important;
    }
}

/* 5. ACELERACIÓN DE RENDIMIENTO (para todas las pantallas) */
/* Esto hace que tu página sea más rápida SIEMPRE */
* {
    -webkit-tap-highlight-color: transparent; /* Quita flash al tocar */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Optimización de animaciones */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Carga diferida de imágenes */
img {
    loading: lazy;
}

/* Evitar layouts shifting */
img, video, iframe {
    aspect-ratio: attr(width) / attr(height);
    max-width: 100%;
    height: auto;
}

/* ===== OPTIMIZACIÓN PARA PANTALLAS EXTREMO DELGADAS (< 400px) ===== */
@media screen and (max-width: 400px) {
    
    /* 1. CONTENEDORES PRINCIPALES - Más compactos */
    .details-content {
        padding: 15px 10px !important;
    }
    
    .service-options {
        gap: 10px !important;
    }
    
    /* 2. TARJETAS DE SERVICIO - Rediseño compacto */
    .service-card {
        margin-bottom: 8px !important;
        border-radius: 12px !important;
    }
    
    .service-card__header {
        padding: 12px 10px 8px !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
    }
    
    .service-card__number {
        width: 30px !important;
        height: 30px !important;
        font-size: 1.4rem !important;
    }
    
    .service-card__title {
        font-size: 1.4rem !important;
        white-space: normal !important;
        word-break: break-word !important;
    }
    
    .service-card__featured-badge {
        font-size: 0.9rem !important;
        padding: 3px 8px !important;
        margin-left: 0 !important;
        width: 100% !important; /* Ocupa todo el ancho si es necesario */
        text-align: center !important;
    }
    
    .service-card__body {
        padding: 10px 12px 12px !important;
    }
    
    .service-card__description {
        font-size: 1.2rem !important;
        line-height: 1.4 !important;
        margin-bottom: 10px !important;
    }
    
    /* 3. TAGS / BADGES - Más pequeños y en grid */
    .service-tags {
        gap: 5px !important;
        margin-top: 8px !important;
        display: flex !important;
        flex-wrap: wrap !important;
    }
    
    .service-card__badge {
        font-size: 1.0rem !important;
        padding: 3px 8px !important;
        white-space: nowrap !important;
    }
    
    /* Cuando hay muchos badges, permitir que ocupen todo el ancho */
    .service-tags .service-card__badge {
        flex: 0 1 auto !important;
    }
    
    /* 4. LISTAS DE CARACTERÍSTICAS - Una columna compacta */
    .service-features {
        margin-top: 15px !important;
    }
    
    .service-features__title {
        font-size: 1.3rem !important;
        margin-bottom: 8px !important;
    }
    
    .service-features__list {
        grid-template-columns: 1fr !important;
        gap: 5px !important;
    }
    
    .service-features__item {
        padding: 6px 0 !important;
        font-size: 1.2rem !important;
        gap: 8px !important;
        border-bottom: 1px solid rgba(255,255,255,0.03) !important;
    }
    
    .feature-icon {
        font-size: 1.4rem !important;
        min-width: 24px !important;
    }
    
    /* 5. CAJAS ESPECIALES (como la de ahorro en conmutadores) */
    [style*="background:linear-gradient(145deg, rgba(0,100,0,0.1)"] {
        padding: 15px !important;
    }
    
    [style*="display: grid; grid-template-columns: repeat(3,1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    
    [style*="display:grid; grid-template-columns:repeat(3,1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    
    /* Tarjetas de años de ahorro */
    [style*="background:rgba(255,255,255,0.02)"] {
        padding: 10px !important;
    }
    
    /* 6. SECCIÓN DE SOPORTE (con imagen de fondo) */
    .details-content[style*="background-image"] {
        padding: 10px !important;
    }
    
    .details-content[style*="background-image"] .service-card {
        background-color: rgba(0, 0, 0, 0.8) !important;
        backdrop-filter: blur(3px) !important;
    }
    
    /* 7. TEXTOS INTRO Y CALL-TO-ACTION */
    .details-intro {
        font-size: 1.3rem !important;
        margin-bottom: 12px !important;
    }
    
    .cta-text {
        font-size: 1.4rem !important;
        margin-bottom: 12px !important;
    }
    
    .details-cta {
        margin-top: 20px !important;
        padding-top: 15px !important;
    }
    
    .details-cta .btn {
        font-size: 1.1rem !important;
        padding: 10px 15px !important;
        width: 100% !important;
        margin: 5px 0 !important;
        white-space: normal !important;
        line-height: 1.4 !important;
        height: auto !important;
    }
    
    /* Para botones en grupo (como en Acceso) */
    [style*="display:flex; gap:15px; justify-content:center"] {
        flex-direction: column !important;
        gap: 8px !important;
    }
    
    /* 8. TÍTULOS DE SECCIÓN - Más compactos */
    .section-title h3.h6 {
        font-size: 1.1rem !important;
    }
    
    h1.display-1 {
        font-size: 1.8rem !important;
        line-height: 1.3 !important;
        word-break: break-word !important;
    }
    
    .highlight {
        display: inline !important;
    }
    
    /* 9. TABLAS Y DATOS ESPECIALES */
    .service-features[style*="background:rgba(255,193,7,0.05)"] {
        padding: 12px !important;
    }
    
    /* 10. BOTÓN DE CIERRE - Más pequeño */
    button[onclick*="closeDetailsAndScroll"] {
        font-size: 18px !important;
        padding: 2px 5px !important;
    }
}

/* ===== OPTIMIZACIÓN ADICIONAL PARA 360px (pantallas muy pequeñas) ===== */
@media screen and (max-width: 360px) {
    
    /* Títulos aún más pequeños */
    h1.display-1 {
        font-size: 1.6rem !important;
    }
    
    .service-card__header {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
    }
    
    .service-card__number {
        margin-bottom: 5px !important;
    }
    
    .service-card__title {
        width: 100% !important;
        text-align: center !important;
    }
    
    .service-card__featured-badge {
        margin-top: 5px !important;
    }
    
    /* Badges más pequeños y wrapping */
    .service-card__badge {
        font-size: 0.9rem !important;
        padding: 2px 6px !important;
    }
    
    /* Ocultar elementos no esenciales si es necesario */
    .service-features__item .feature-icon {
        font-size: 1.2rem !important;
    }
    
    /* Simplificar la sección de años de ahorro */
    [style*="grid-template-columns:repeat(3,1fr)"] > div {
        padding: 8px 5px !important;
    }
    
    [style*="grid-template-columns:repeat(3,1fr)"] span[style*="font-size:2.5rem"] {
        font-size: 2rem !important;
    }
}

/* ===== SOLUCIÓN FINAL - BANNER SIEMPRE VISIBLE EN MÓVIL ===== */
/* Anula la regla problemática de max-width: 900px del CSS original */
@media screen and (max-width: 900px) {
    .s-hero__bg {
        width: 100% !important;
        height: 100% !important;
        left: 0 !important;
        right: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        position: absolute !important;
        background-image: url(../images/hero-bg.png) !important;
        background-size: cover !important;
        background-position: center 30% !important;
        background-repeat: no-repeat !important;
        opacity: 0.4 !important;
        display: block !important;
        visibility: visible !important;
    }
    
    .s-hero__bg::after {
        content: "" !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background: linear-gradient(180deg, rgba(0,0,0,0.6), rgba(10,26,42,0.85)) !important;
        z-index: 2 !important;
    }
    
    .s-hero__bg .gradient-overlay {
        display: none !important;
    }
    
    .s-hero__content {
        position: relative !important;
        z-index: 10 !important;
        padding: 100px 20px 60px !important;
    }
    
    .s-hero__content h1 {
        font-size: 3.5rem !important;
    }
    
    .s-hero__content h1::before {
        display: none !important;
    }
    
    .s-hero__content-about {
        padding-left: 0 !important;
    }
    
    .s-hero__content-about::before {
        display: none !important;
    }
    
    .s-hero__video {
        position: relative !important;
        margin: 20px auto 0 !important;
        right: auto !important;
        bottom: auto !important;
    }
    
    .s-hero__video-link {
        display: inline-flex !important;
        background: #00B7E5 !important;
        padding: 10px 24px !important;
        border-radius: 50px !important;
        width: auto !important;
        height: auto !important;
    }
    
    .s-hero__video-text {
        display: inline-block !important;
    }
    
    .s-hero__scroll {
        display: none !important;
    }
}

@media screen and (max-width: 480px) {
    .s-hero__content {
        padding: 80px 15px 50px !important;
    }
    
    .s-hero__content h1 {
        font-size: 2.8rem !important;
    }
}

@media screen and (max-width: 360px) {
    .s-hero__content {
        padding: 70px 12px 40px !important;
    }
    
    .s-hero__content h1 {
        font-size: 2.4rem !important;
    }
}

/* ===================================================================
 * EFECTO DE BRILLO - SOLO PARA ESCRITORIO
 * =================================================================== */

/* Efecto de brillo en imágenes - solo funciona en pantallas mayores a 768px */
@media screen and (min-width: 769px) {
    
    /* Contenedor de imagen con efecto de brillo */
    .folio-item {
        position: relative;
        overflow: hidden;
        border-radius: 8px;
        transition: all 0.3s ease;
    }
    
    .folio-item__thumb img {
        transition: transform 0.5s ease-in-out, filter 0.3s ease;
        display: block;
        width: 100%;
        height: auto;
    }
    
    /* Zoom y brillo al hacer hover */
    .folio-item:hover .folio-item__thumb img {
        transform: scale(1.05);
        filter: brightness(1.1);
    }
    
    /* Halo de luz - borde con glow pulsante */
    .folio-item:hover::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        pointer-events: none;
        border-radius: 8px;
        box-shadow: 0 0 0 2px rgba(0, 183, 229, 0.3),
                    0 0 30px 8px rgba(0, 183, 229, 0.6);
        animation: pulseGlow 1.5s infinite alternate;
        z-index: 10;
    }
    
    /* Animación del glow */
    @keyframes pulseGlow {
        0% {
            box-shadow: 0 0 0 2px rgba(0, 183, 229, 0.2),
                        0 0 15px 3px rgba(0, 183, 229, 0.4);
        }
        100% {
            box-shadow: 0 0 0 3px rgba(0, 183, 229, 0.5),
                        0 0 40px 12px rgba(0, 183, 229, 0.8);
        }
    }
    
    /* Textos que aparecen al hover */
    .folio-item__info {
        transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-20px);
    }
    
    .folio-item:hover .folio-item__info {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    
    .folio-item__project-link {
        transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
        opacity: 0;
        visibility: hidden;
        transform: translateX(-20px);
    }
    
    .folio-item:hover .folio-item__project-link {
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
    }
}

/* ===== MÓVIL: Efectos simplificados (sin halo para mejor rendimiento) ===== */
@media screen and (max-width: 768px) {
    .folio-item:hover .folio-item__thumb img {
        transform: none !important;
        filter: none !important;
    }
    
    .folio-item:hover::after {
        display: none !important;
    }
    
    /* En móvil, la info siempre visible */
    .folio-item__info {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) !important;
        background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
        padding: 20px 15px 10px !important;
        top: auto !important;
        bottom: 0 !important;
        height: auto !important;
        width: 100% !important;
        left: 0 !important;
    }
    
    .folio-item__project-link {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateX(0) !important;
        bottom: 20px !important;
        right: 20px !important;
        left: auto !important;
    }
}


/* ===================================================================
 * MEJORAS DE RESPONSIVE - SECCIÓN PROGRESO Y GRIDS
 * Agregar al final de styles.css
 * =================================================================== */

/* ===== 1. CORRECCIÓN DE TODOS LOS GRIDS EN MÓVIL ===== */
@media screen and (max-width: 768px) {
    
    /* Todas las tarjetas de servicio en una columna */
    .service-options {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    /* Grids de 2 columnas dentro de detalles */
    .details-content [style*="grid-template-columns: repeat(2, 1fr)"],
    .details-content [style*="grid-template-columns: repeat(2, 1fr);"],
    .details-content [style*="grid-template-columns:repeat(2,1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
    
    /* Grids de 3 columnas */
    .details-content [style*="grid-template-columns: repeat(3, 1fr)"],
    .details-content [style*="grid-template-columns:repeat(3,1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    /* Grids de 4 columnas (para la sección PROCESO) */
    .details-content [style*="grid-template-columns: repeat(4, 1fr)"],
    .details-content [style*="grid-template-columns:repeat(4,1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
    
    /* Cualquier otro grid con display grid */
    [style*="display: grid;"] {
        grid-template-columns: 1fr !important;
    }
    
    /* Listas de características */
    .service-features__list {
        grid-template-columns: 1fr !important;
    }
    
    /* Grid de años de ahorro (conmutadores) */
    [style*="grid-template-columns:repeat(3,1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    
    /* Grid de proveedores en modal */
    #modalBody [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
        max-width: 280px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    
    /* Grid de testimonios en modal */
    #modalBody [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    /* Tarjetas individuales */
    .service-card {
        width: 100% !important;
        margin: 0 !important;
    }
    
    /* Ajustar contenido de tarjetas */
    .service-card__body {
        padding: 15px !important;
    }
    
    .service-card__description {
        font-size: 1.3rem !important;
        line-height: 1.5 !important;
    }
}

/* ===== 2. SECCIÓN PROCESO - MEJORA COMPLETA ===== */
@media screen and (max-width: 768px) {
    /* Contenedor principal del proceso */
    #proceso .service-details .details-content {
        padding: 20px 15px !important;
    }
    
    /* Grid de 4 pasos - se convierte en vertical */
    #proceso [style*="grid-template-columns: repeat(4, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    /* Tarjetas de proceso */
    #proceso .service-card {
        margin: 0 !important;
        text-align: center !important;
    }
    
    /* Header de tarjeta de proceso */
    #proceso .service-card__header {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 10px !important;
    }
    
    /* Número de paso */
    #proceso .service-card__number {
        margin: 0 auto 5px auto !important;
    }
    
    /* Título */
    #proceso .service-card__title {
        text-align: center !important;
        font-size: 1.8rem !important;
    }
    
    /* Descripción */
    #proceso .service-card__description {
        font-size: 1.3rem !important;
        text-align: center !important;
    }
    
    /* Badge destacado */
    #proceso .service-card--featured .service-card__featured-badge {
        display: inline-block !important;
        margin-top: 5px !important;
    }
    
    /* Icono decorativo */
    #proceso .service-card__body div[style*="margin-top: auto"] {
        margin-top: 15px !important;
    }
    
    #proceso .service-card__body span[style*="font-size: 3rem"] {
        font-size: 2.5rem !important;
    }
    
    /* Grid de características del proceso (2 columnas a 1) */
    #proceso .service-features [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    
    /* Items de características */
    #proceso .service-features__item {
        font-size: 1.3rem !important;
        padding: 8px 0 !important;
        text-align: center !important;
        justify-content: center !important;
    }
    
    /* Botón de llamada a acción */
    #proceso .details-cta .btn {
        width: 100% !important;
        margin: 5px 0 !important;
        text-align: center !important;
        padding: 12px 20px !important;
    }
    
    /* Títulos */
    #proceso h1.display-1 {
        font-size: 2rem !important;
        text-align: center !important;
    }
    
    #proceso .lead {
        font-size: 1.4rem !important;
        text-align: center !important;
        padding: 0 10px !important;
    }
    
    /* Intro del proceso */
    #proceso .details-intro {
        font-size: 1.5rem !important;
        margin-bottom: 25px !important;
    }
}

/* ===== 3. AJUSTES FINOS PARA PANTALLAS MUY PEQUEÑAS ===== */
@media screen and (max-width: 480px) {
    /* Tarjetas de servicio - layout vertical compacto */
    .service-card__header {
        flex-direction: column !important;
        text-align: center !important;
        gap: 8px !important;
    }
    
    .service-card__number {
        margin: 0 auto !important;
    }
    
    .service-card__title {
        text-align: center !important;
        font-size: 1.5rem !important;
    }
    
    .service-card__featured-badge {
        align-self: center !important;
        width: auto !important;
        display: inline-block !important;
    }
    
    .service-tags {
        justify-content: center !important;
        flex-wrap: wrap !important;
    }
    
    .service-card__badge {
        white-space: normal !important;
        text-align: center !important;
        font-size: 1rem !important;
        padding: 4px 10px !important;
    }
    
    .service-features__item {
        padding: 8px 0 !important;
        font-size: 1.2rem !important;
        text-align: left !important;
        justify-content: flex-start !important;
    }
    
    .feature-icon {
        font-size: 1.4rem !important;
        min-width: 28px !important;
    }
    
    /* Sección de ahorro en conmutadores */
    .details-content [style*="background:linear-gradient"] {
        padding: 15px !important;
    }
    
    /* Botones agrupados */
    [style*="display:flex; gap:15px; justify-content:center"] {
        flex-direction: column !important;
        gap: 10px !important;
        align-items: stretch !important;
    }
    
    [style*="display:flex; gap:15px; justify-content:center"] .btn {
        width: 100% !important;
        margin: 0 !important;
        text-align: center !important;
    }
    
    /* Botón de cierre */
    button[onclick*="closeDetailsAndScroll"] {
        font-size: 20px !important;
        padding: 5px 8px !important;
    }
}

/* ===== 4. AJUSTE PARA SECCIÓN DE CONMUTADORES (GRID 3 COLUMNAS DE AHORRO) ===== */
@media screen and (max-width: 768px) {
    .service-details [style*="grid-template-columns: repeat(3,1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    .service-details [style*="grid-template-columns: repeat(3,1fr)"] > div {
        padding: 12px !important;
        text-align: center !important;
    }
    
    .service-details [style*="grid-template-columns: repeat(3,1fr)"] span[style*="font-size: 2.5rem"] {
        font-size: 2rem !important;
    }
    
    .service-details [style*="grid-template-columns: repeat(3,1fr)"] span[style*="font-size: 1.8rem"] {
        font-size: 1.5rem !important;
    }
}

/* ===== 5. GARANTIZAR QUE TODO SE VEA BIEN EN 360px ===== */
@media screen and (max-width: 360px) {
    h1.display-1 {
        font-size: 1.6rem !important;
    }
    
    .service-card__title {
        font-size: 1.3rem !important;
    }
    
    .service-card__description {
        font-size: 1.1rem !important;
    }
    
    .service-features__item {
        font-size: 1.1rem !important;
    }
    
    .feature-icon {
        font-size: 1.2rem !important;
        min-width: 24px !important;
    }
    
    .btn, .details-cta .btn {
        font-size: 1rem !important;
        padding: 8px 12px !important;
    }
    
    .org-chart__item h3 {
        font-size: 1.4rem !important;
    }
    
    .org-chart__item p {
        font-size: 1.1rem !important;
    }
}