Skip to content
:root {
--grb-ink: #0b3042;
--grb-ink-2: #123f52;
--grb-teal: #1d8b8a;
--grb-teal-soft: #dff3f1;
--grb-orange: #ea7a11;
--grb-orange-soft: #fff1e3;
--grb-expansion: #7962a6;
--grb-expansion-soft: #f0ebf8;
--grb-text: #263942;
--grb-muted: #667980;
--grb-line: #dce5e8;
--grb-bg: #f5f8f8;
--grb-white: #ffffff;
--grb-shadow: 0 24px 70px rgba(11, 48, 66, 0.12);
--grb-radius-lg: 30px;
--grb-radius-md: 20px;
--grb-radius-sm: 13px;
--grb-container: 1180px;
}
.grb-page,
.grb-page * {
box-sizing: border-box;
}
.grb-page {
width: 100%;
overflow: hidden;
color: var(--grb-text);
background: var(--grb-white);
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 16px;
line-height: 1.65;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
.grb-page img {
display: block;
max-width: 100%;
}
.grb-page a {
color: inherit;
text-decoration: none;
}
.grb-page h1,
.grb-page h2,
.grb-page h3,
.grb-page p,
.grb-page ul,
.grb-page figure {
margin-top: 0;
}
.grb-page h1,
.grb-page h2,
.grb-page h3 {
color: var(--grb-ink);
font-weight: 760;
line-height: 1.08;
letter-spacing: -0.035em;
}
.grb-page h1 {
max-width: 860px;
margin-bottom: 24px;
color: var(--grb-white);
font-size: clamp(2.65rem, 5.8vw, 5.25rem);
}
.grb-page h2 {
margin-bottom: 22px;
font-size: clamp(2rem, 3.7vw, 3.5rem);
}
.grb-page h3 {
margin-bottom: 14px;
font-size: clamp(1.25rem, 2vw, 1.7rem);
}
.grb-page p {
margin-bottom: 18px;
}
.grb-container {
width: min(calc(100% - 40px), var(--grb-container));
margin-inline: auto;
}
.grb-section {
position: relative;
padding: clamp(74px, 8vw, 124px) 0;
}
.grb-eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
margin-bottom: 18px;
color: var(--grb-teal);
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.grb-eyebrow::before {
width: 28px;
height: 2px;
background: currentColor;
content: "";
}
.grb-eyebrow--light {
color: #9fe4df;
}
.grb-btn {
display: inline-flex;
min-height: 50px;
align-items: center;
justify-content: center;
gap: 10px;
padding: 12px 20px;
border: 1px solid transparent;
border-radius: 999px;
font-size: 0.95rem;
font-weight: 800;
line-height: 1.2;
transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.grb-btn:hover {
transform: translateY(-2px);
}
.grb-btn:focus-visible,
.grb-page a:focus-visible,
.grb-page summary:focus-visible {
outline: 3px solid rgba(234, 122, 17, 0.38);
outline-offset: 4px;
}
.grb-btn--primary {
background: var(--grb-orange);
color: var(--grb-white) !important;
box-shadow: 0 14px 30px rgba(234, 122, 17, 0.25);
}
.grb-btn--primary:hover {
background: #d96d0c;
box-shadow: 0 18px 34px rgba(234, 122, 17, 0.3);
}
.grb-btn--secondary {
background: var(--grb-ink);
color: var(--grb-white) !important;
}
.grb-btn--secondary:hover {
background: var(--grb-ink-2);
}
.grb-btn--ghost {
border-color: rgba(255, 255, 255, 0.42);
background: rgba(255, 255, 255, 0.08);
color: var(--grb-white) !important;
backdrop-filter: blur(12px);
}
.grb-btn--ghost:hover {
border-color: rgba(255, 255, 255, 0.75);
background: rgba(255, 255, 255, 0.15);
}
.grb-btn--outline {
border-color: rgba(234, 122, 17, 0.42);
background: var(--grb-white);
color: #b85808 !important;
}
.grb-btn--outline:hover {
border-color: var(--grb-orange);
background: var(--grb-orange-soft);
}
.grb-hero {
position: relative;
min-height: 760px;
display: flex;
align-items: center;
isolation: isolate;
background: var(--grb-ink);
}
.grb-hero__media,
.grb-hero__overlay {
position: absolute;
inset: 0;
}
.grb-hero__media {
z-index: -3;
}
.grb-hero__media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 36%;
}
.grb-hero__overlay {
z-index: -2;
background:
linear-gradient(90deg, rgba(7, 37, 51, 0.97) 0%, rgba(7, 37, 51, 0.9) 45%, rgba(7, 37, 51, 0.56) 73%, rgba(7, 37, 51, 0.72) 100%),
linear-gradient(180deg, rgba(7, 37, 51, 0.15), rgba(7, 37, 51, 0.52));
}
.grb-hero__grid {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(330px, 0.65fr);
gap: clamp(50px, 7vw, 100px);
align-items: center;
padding-top: clamp(100px, 11vw, 150px);
padding-bottom: clamp(82px, 9vw, 126px);
}
.grb-breadcrumbs {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 9px;
margin-bottom: 34px;
color: rgba(255, 255, 255, 0.72);
font-size: 0.8rem;
}
.grb-breadcrumbs a:hover {
color: var(--grb-white);
}
.grb-hero__lead {
max-width: 760px;
margin-bottom: 32px;
color: rgba(255, 255, 255, 0.84);
font-size: clamp(1.05rem, 1.6vw, 1.25rem);
line-height: 1.7;
}
.grb-hero__actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 34px;
}
.grb-hero__facts {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 0;
padding: 0;
list-style: none;
}
.grb-hero__facts li {
padding: 8px 12px;
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 999px;
background: rgba(255, 255, 255, 0.07);
color: rgba(255, 255, 255, 0.78);
font-size: 0.78rem;
backdrop-filter: blur(8px);
}
.grb-hero__facts strong {
color: var(--grb-white);
}
.grb-bridge {
padding: clamp(24px, 3vw, 34px);
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: var(--grb-radius-lg);
background: rgba(255, 255, 255, 0.1);
box-shadow: 0 30px 80px rgba(0, 0, 0, 0.22);
backdrop-filter: blur(18px);
}
.grb-bridge__head {
display: grid;
gap: 4px;
margin-bottom: 24px;
}
.grb-bridge__head span {
color: #9fe4df;
font-size: 0.74rem;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.grb-bridge__head strong {
color: var(--grb-white);
font-size: 1.13rem;
line-height: 1.35;
}
.grb-brand-token {
display: flex;
align-items: center;
gap: 16px;
padding: 18px;
border-radius: 18px;
background: rgba(255, 255, 255, 0.94);
}
.grb-brand-token__mark,
.grb-mini-mark {
display: inline-grid;
flex: 0 0 auto;
place-items: center;
border-radius: 14px;
color: var(--grb-white);
font-weight: 850;
line-height: 1;
}
.grb-brand-token__mark {
width: 48px;
height: 48px;
font-size: 1.35rem;
}
.grb-brand-token--rookie .grb-brand-token__mark,
.grb-mini-mark--rookie {
background: var(--grb-orange);
}
.grb-brand-token--gestia .grb-brand-token__mark,
.grb-mini-mark--gestia {
background: var(--grb-teal);
}
.grb-brand-token strong,
.grb-brand-token small {
display: block;
}
.grb-brand-token strong {
margin-bottom: 3px;
color: var(--grb-ink);
font-size: 1rem;
}
.grb-brand-token small {
color: var(--grb-muted);
font-size: 0.78rem;
line-height: 1.45;
}
.grb-bridge__connector {
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 10px;
align-items: center;
padding: 14px 6px;
color: rgba(255, 255, 255, 0.64);
font-size: 0.67rem;
font-weight: 800;
letter-spacing: 0.09em;
text-transform: uppercase;
}
.grb-bridge__connector span:first-child,
.grb-bridge__connector span:last-child {
height: 1px;
background: rgba(255, 255, 255, 0.25);
}
.grb-bridge__note {
margin: 22px 2px 0;
color: rgba(255, 255, 255, 0.74);
font-size: 0.8rem;
line-height: 1.55;
}
.grb-intro {
background: var(--grb-white);
}
.grb-intro__grid {
display: grid;
grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
gap: clamp(40px, 8vw, 110px);
align-items: start;
}
.grb-intro__copy {
padding-top: 8px;
color: var(--grb-muted);
font-size: 1.06rem;
}
.grb-intro__copy p:last-child {
margin-bottom: 0;
}
.grb-section-head {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.7fr);
gap: 40px;
align-items: end;
margin-bottom: 48px;
}
.grb-section-head > p,
.grb-section-head > div + p {
color: var(--grb-muted);
font-size: 1.02rem;
}
.grb-section-head--center {
display: block;
max-width: 790px;
margin-right: auto;
margin-left: auto;
text-align: center;
}
.grb-section-head--center .grb-eyebrow {
justify-content: center;
}
.grb-section-head--center p {
color: var(--grb-muted);
font-size: 1.03rem;
}
.grb-coverage {
background:
radial-gradient(circle at 92% 12%, rgba(29, 139, 138, 0.12), transparent 24%),
var(--grb-bg);
}
.grb-coverage-table {
overflow: hidden;
border: 1px solid var(--grb-line);
border-radius: var(--grb-radius-lg);
background: var(--grb-white);
box-shadow: var(--grb-shadow);
}
.grb-coverage-table__header,
.grb-coverage-row {
display: grid;
grid-template-columns: 1.05fr 1.45fr 1.2fr 0.7fr;
gap: 28px;
align-items: center;
}
.grb-coverage-table__header {
padding: 16px 26px;
background: var(--grb-ink);
color: rgba(255, 255, 255, 0.72);
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.11em;
text-transform: uppercase;
}
.grb-coverage-row {
position: relative;
padding: 28px 26px;
border-bottom: 1px solid var(--grb-line);
}
.grb-coverage-row:last-child {
border-bottom: 0;
}
.grb-coverage-row::before {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 4px;
content: "";
}
.grb-coverage-row--rookie::before {
background: var(--grb-orange);
}
.grb-coverage-row--gestia::before {
background: var(--grb-teal);
}
.grb-coverage-row--expansion::before {
background: var(--grb-expansion);
}
.grb-coverage-row--expansion {
background: linear-gradient(90deg, rgba(121, 98, 166, 0.065), transparent 35%);
}
.grb-coverage-row__brand {
display: flex;
align-items: center;
gap: 13px;
}
.grb-mini-mark {
width: 40px;
height: 40px;
}
.grb-coverage-row strong,
.grb-coverage-row small {
display: block;
}
.grb-coverage-row strong {
color: var(--grb-ink);
}
.grb-coverage-row small {
color: var(--grb-muted);
font-size: 0.75rem;
}
.grb-coverage-row p {
margin: 6px 0 0;
color: var(--grb-muted);
font-size: 0.83rem;
line-height: 1.5;
}
.grb-city-list {
display: flex;
flex-wrap: wrap;
gap: 7px;
}
.grb-city-list span,
.grb-city-list a {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 5px 10px;
border-radius: 999px;
font-size: 0.76rem;
font-weight: 800;
}
.grb-city-list span {
background: var(--grb-orange-soft);
color: #a84e05;
}
.grb-city-list--gestia a {
background: var(--grb-teal-soft);
color: #146e6d;
}
.grb-city-list--expansion a {
background: var(--grb-expansion-soft);
color: #624a8d;
}
.grb-city-list a:hover {
filter: brightness(0.96);
}
.grb-coverage-row__clarification {
max-width: 280px;
}
.grb-status {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 32px;
padding: 6px 10px;
border-radius: 9px;
font-size: 0.72rem;
font-weight: 850;
text-align: center;
}
.grb-status--rookie {
background: var(--grb-orange-soft);
color: #a84e05;
}
.grb-status--active {
background: var(--grb-teal-soft);
color: #146e6d;
}
.grb-status--expansion {
background: var(--grb-expansion-soft);
color: #624a8d;
}
.grb-coverage-note {
display: flex;
gap: 14px;
align-items: flex-start;
margin-top: 24px;
padding: 18px 20px;
border: 1px solid rgba(11, 48, 66, 0.11);
border-radius: var(--grb-radius-sm);
background: rgba(255, 255, 255, 0.72);
}
.grb-coverage-note > span {
display: grid;
flex: 0 0 auto;
width: 24px;
height: 24px;
place-items: center;
border-radius: 50%;
background: var(--grb-ink);
color: var(--grb-white);
font-size: 0.74rem;
font-weight: 850;
}
.grb-coverage-note p {
margin: 0;
color: var(--grb-muted);
font-size: 0.9rem;
}
.grb-transfer {
background: var(--grb-white);
}
.grb-transfer__grid {
display: grid;
grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
gap: clamp(44px, 7vw, 92px);
align-items: center;
}
.grb-transfer__media {
position: relative;
overflow: hidden;
min-height: 610px;
margin-bottom: 0;
border-radius: var(--grb-radius-lg);
box-shadow: var(--grb-shadow);
}
.grb-transfer__media::after {
position: absolute;
inset: auto 0 0;
height: 34%;
background: linear-gradient(180deg, transparent, rgba(11, 48, 66, 0.35));
content: "";
}
.grb-transfer__media img {
width: 100%;
height: 100%;
min-height: 610px;
object-fit: cover;
}
.grb-transfer__content > p {
color: var(--grb-muted);
font-size: 1.02rem;
}
.grb-transfer-list {
display: grid;
gap: 14px;
margin-top: 30px;
}
.grb-transfer-list article {
display: grid;
grid-template-columns: 46px 1fr;
gap: 15px;
padding: 18px 0;
border-top: 1px solid var(--grb-line);
}
.grb-transfer-list article > span {
display: grid;
width: 40px;
height: 40px;
place-items: center;
border-radius: 12px;
background: var(--grb-teal-soft);
color: var(--grb-teal);
font-size: 0.75rem;
font-weight: 850;
}
.grb-transfer-list h3 {
margin-bottom: 7px;
font-size: 1.1rem;
}
.grb-transfer-list p {
margin: 0;
color: var(--grb-muted);
font-size: 0.88rem;
}
.grb-services {
background: var(--grb-ink);
}
.grb-services h2,
.grb-services h3 {
color: var(--grb-white);
}
.grb-services .grb-section-head > p,
.grb-services .grb-section-head > div + p {
color: rgba(255, 255, 255, 0.66);
}
.grb-service-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
}
.grb-service-card {
display: flex;
min-height: 330px;
flex-direction: column;
padding: 25px;
border: 1px solid rgba(255, 255, 255, 0.14);
border-radius: var(--grb-radius-md);
background: rgba(255, 255, 255, 0.06);
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.grb-service-card:hover {
transform: translateY(-4px);
border-color: rgba(159, 228, 223, 0.5);
background: rgba(255, 255, 255, 0.1);
}
.grb-service-card--highlight {
border-color: rgba(234, 122, 17, 0.45);
background: linear-gradient(150deg, rgba(234, 122, 17, 0.16), rgba(255, 255, 255, 0.05));
}
.grb-service-card__number {
margin-bottom: 34px;
color: #9fe4df;
font-size: 0.77rem;
font-weight: 850;
letter-spacing: 0.12em;
}
.grb-service-card p {
color: rgba(255, 255, 255, 0.66);
font-size: 0.9rem;
}
.grb-service-card a {
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: auto;
color: #9fe4df;
font-size: 0.82rem;
font-weight: 850;
}
.grb-service-card--highlight a {
color: #ffb66d;
}
.grb-routes {
background: var(--grb-bg);
}
.grb-route-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px;
}
.grb-route-card {
display: flex;
min-height: 380px;
flex-direction: column;
padding: 30px;
border: 1px solid var(--grb-line);
border-radius: var(--grb-radius-lg);
background: var(--grb-white);
box-shadow: 0 16px 42px rgba(11, 48, 66, 0.07);
}
.grb-route-card--gestia {
border-top: 5px solid var(--grb-teal);
}
.grb-route-card--investor {
border-top: 5px solid var(--grb-expansion);
}
.grb-route-card--rookie {
border-top: 5px solid var(--grb-orange);
}
.grb-route-card__tag {
align-self: flex-start;
margin-bottom: 26px;
padding: 6px 10px;
border-radius: 999px;
background: var(--grb-bg);
color: var(--grb-muted);
font-size: 0.7rem;
font-weight: 850;
letter-spacing: 0.1em;
text-transform: uppercase;
}
.grb-route-card p {
color: var(--grb-muted);
font-size: 0.92rem;
}
.grb-route-card .grb-btn {
align-self: flex-start;
margin-top: auto;
}
.grb-faq {
background: var(--grb-white);
}
.grb-faq__grid {
display: grid;
grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
gap: clamp(50px, 8vw, 110px);
align-items: start;
}
.grb-faq__intro {
position: sticky;
top: 110px;
}
.grb-faq__intro p {
color: var(--grb-muted);
}
.grb-inline-link {
display: inline-flex;
align-items: center;
gap: 9px;
color: var(--grb-teal) !important;
font-size: 0.9rem;
font-weight: 850;
}
.grb-faq__list {
border-top: 1px solid var(--grb-line);
}
.grb-faq__item {
border-bottom: 1px solid var(--grb-line);
}
.grb-faq__item summary {
position: relative;
padding: 24px 52px 24px 0;
color: var(--grb-ink);
cursor: pointer;
font-size: 1.02rem;
font-weight: 800;
list-style: none;
}
.grb-faq__item summary::-webkit-details-marker {
display: none;
}
.grb-faq__item summary::before,
.grb-faq__item summary::after {
position: absolute;
top: 50%;
right: 12px;
width: 16px;
height: 2px;
background: var(--grb-teal);
content: "";
transition: transform 0.2s ease;
}
.grb-faq__item summary::before {
transform: translateY(-50%);
}
.grb-faq__item summary::after {
transform: translateY(-50%) rotate(90deg);
}
.grb-faq__item[open] summary::after {
transform: translateY(-50%) rotate(0deg);
}
.grb-faq__item p {
max-width: 760px;
margin: -3px 52px 25px 0;
color: var(--grb-muted);
font-size: 0.94rem;
}
.grb-final {
padding: clamp(66px, 7vw, 98px) 0;
background:
radial-gradient(circle at 8% 20%, rgba(29, 139, 138, 0.28), transparent 26%),
radial-gradient(circle at 94% 86%, rgba(234, 122, 17, 0.2), transparent 24%),
var(--grb-ink);
}
.grb-final__inner {
display: grid;
grid-template-columns: minmax(0, 1.2fr) auto;
gap: 44px;
align-items: center;
}
.grb-final h2 {
max-width: 760px;
color: var(--grb-white);
}
.grb-final p {
max-width: 750px;
margin-bottom: 0;
color: rgba(255, 255, 255, 0.7);
}
.grb-final__actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 10px;
}
@media (max-width: 1080px) {
.grb-hero__grid {
grid-template-columns: minmax(0, 1fr) minmax(310px, 0.55fr);
gap: 42px;
}
.grb-coverage-table__header,
.grb-coverage-row {
grid-template-columns: 1fr 1.35fr 1fr 0.72fr;
gap: 18px;
}
.grb-service-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grb-service-card {
min-height: 280px;
}
}
@media (max-width: 900px) {
.grb-hero {
min-height: auto;
}
.grb-hero__grid,
.grb-intro__grid,
.grb-transfer__grid,
.grb-faq__grid,
.grb-final__inner {
grid-template-columns: 1fr;
}
.grb-hero__grid {
padding-top: 115px;
}
.grb-bridge {
max-width: 620px;
}
.grb-section-head {
grid-template-columns: 1fr;
gap: 8px;
}
.grb-coverage-table__header {
display: none;
}
.grb-coverage-row {
grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: start;
}
.grb-coverage-row > [role="cell"]:not(.grb-coverage-row__brand)::before {
display: block;
margin-bottom: 6px;
color: var(--grb-muted);
content: attr(data-label);
font-size: 0.65rem;
font-weight: 850;
letter-spacing: 0.1em;
text-transform: uppercase;
}
.grb-route-grid {
grid-template-columns: 1fr;
}
.grb-route-card {
min-height: 320px;
}
.grb-faq__intro {
position: static;
}
.grb-final__actions {
justify-content: flex-start;
}
}
@media (max-width: 640px) {
.grb-container {
width: min(calc(100% - 28px), var(--grb-container));
}
.grb-section {
padding: 68px 0;
}
.grb-page h1 {
font-size: clamp(2.35rem, 12vw, 3.35rem);
}
.grb-page h2 {
font-size: clamp(1.8rem, 9vw, 2.55rem);
}
.grb-hero__overlay {
background: linear-gradient(180deg, rgba(7, 37, 51, 0.9), rgba(7, 37, 51, 0.97));
}
.grb-hero__media img {
object-position: 58% center;
}
.grb-hero__actions,
.grb-final__actions {
display: grid;
grid-template-columns: 1fr;
}
.grb-btn {
width: 100%;
}
.grb-hero__facts {
display: grid;
}
.grb-hero__facts li {
border-radius: 12px;
}
.grb-bridge {
padding: 20px;
border-radius: 22px;
}
.grb-brand-token {
align-items: flex-start;
padding: 15px;
}
.grb-coverage-row {
grid-template-columns: 1fr;
gap: 22px;
padding: 24px 20px;
}
.grb-coverage-note {
padding: 16px;
}
.grb-transfer__media,
.grb-transfer__media img {
min-height: 410px;
}
.grb-service-grid {
grid-template-columns: 1fr;
}
.grb-service-card {
min-height: 300px;
}
.grb-route-card {
min-height: 0;
padding: 24px;
}
.grb-route-card .grb-btn {
margin-top: 26px;
}
.grb-faq__item summary {
padding: 21px 46px 21px 0;
}
.grb-faq__item p {
margin-right: 20px;
}
}
@media (prefers-reduced-motion: reduce) {
.grb-page *,
.grb-page *::before,
.grb-page *::after {
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
}
}
/* =========================================================
GESTIA LIVIN · LANDING GESTIA + ROOKIE IN TOWN
Funciones:
1. Animaciones progresivas seguras.
2. Scroll suave para anchors internos.
3. FAQs nativas con una sola pregunta abierta.
4. Eventos para Google Tag Manager.
Las FAQs funcionan incluso si este archivo no se carga.
========================================================= */
(function () {
"use strict";
const root = document.querySelector("#gestiaRookie");
if (!root) {
return;
}
root.classList.add("gr-js");
/* ======================================================
REDUCED MOTION
====================================================== */
const reducedMotion = window.matchMedia(
"(prefers-reduced-motion: reduce)"
).matches;
/* ======================================================
REVEAL DE ELEMENTOS
====================================================== */
const revealElements = Array.from(
root.querySelectorAll(".gr-reveal")
);
if (
reducedMotion ||
!("IntersectionObserver" in window)
) {
revealElements.forEach(function (element) {
element.classList.add("is-visible");
});
} else {
const revealObserver = new IntersectionObserver(
function (entries, observer) {
entries.forEach(function (entry) {
if (!entry.isIntersecting) {
return;
}
entry.target.classList.add("is-visible");
observer.unobserve(entry.target);
});
},
{
root: null,
rootMargin: "0px 0px -8% 0px",
threshold: 0.12
}
);
revealElements.forEach(function (element, index) {
const delay = Math.min((index % 4) * 65, 195);
element.style.transitionDelay = delay + "ms";
revealObserver.observe(element);
});
}
/* ======================================================
SCROLL SUAVE EN ENLACES INTERNOS
====================================================== */
const internalAnchorLinks = root.querySelectorAll(
'a[href^="#"]:not([href="#"])'
);
internalAnchorLinks.forEach(function (link) {
link.addEventListener("click", function (event) {
const targetSelector = link.getAttribute("href");
if (!targetSelector) {
return;
}
let target;
try {
target = root.querySelector(targetSelector);
} catch (error) {
return;
}
if (!target) {
return;
}
event.preventDefault();
target.scrollIntoView({
behavior: reducedMotion ? "auto" : "smooth",
block: "start"
});
if (
window.history &&
typeof window.history.replaceState === "function"
) {
window.history.replaceState(null, "", targetSelector);
}
});
});
/* ======================================================
FAQ NATIVA
No se intercepta el click de summary.