

body {
    font-family: "Plus Jakarta Sans", sans-serif;
    color: #2F3B4A;
    background-color: white;
    overflow-x: hidden;
}

body b, body strong {
    font-weight: 700;
}

.titulo-hero, .titulo-1, .titulo-2, .titulo-3, .titulo-4 {
    font-family: var(--font-titles, "Playfair Display", Georgia, serif);
    font-weight: 500;
    margin-bottom: 0.5em;
    line-height: 1.2em;
    max-width: 850px;
    color: #001630;
    text-wrap: balance;
}

.titulo-3, .titulo-4 {
    font-weight: 600;
}

.titulo-hero.text-center,
.titulo-1.text-center,
.titulo-2.text-center,
.titulo-3.text-center,
.titulo-4.text-center,
.text-center .titulo-hero,
.text-center .titulo-1,
.text-center .titulo-2,
.text-center .titulo-3,
.text-center .titulo-4,
.mx-auto > .titulo-hero.text-center,
.mx-auto > .titulo-1.text-center,
.mx-auto > .titulo-2.text-center,
.mx-auto > .titulo-3.text-center,
.mx-auto > .titulo-4.text-center {
    margin-left: auto;
    margin-right: auto;
}

.titulo-hero { font-size: clamp(42px, 5vw, 60px); }
.interior .titulo-hero { margin-bottom: 0.2em; }
.titulo-1    { font-size: clamp(34px, 4vw, 48px); }
.titulo-2    { font-size: clamp(28px, 3vw, 40px); }
.titulo-3    { font-size: clamp(22px, 2.5vw, 27px); }
.titulo-4    { font-size: clamp(18px, 2vw, 21px); }

.interior-hero .titulo-hero::after,
.interior main .titulo-2::after,
.interior main .titulo-3::after,
body:not(.interior) main .titulo-2::after {
    content: "";
    display: block;
    width: 60px;
    height: 4px;
    background-color: #e73739;
    margin-top: 20px;
    margin-bottom: 10px;
}

.interior-hero .titulo-hero::after,
.interior main .titulo-2.text-center::after,
.interior main .titulo-3.text-center::after,
body:not(.interior) main .titulo-2.text-center::after {
    margin-left: auto;
    margin-right: auto;
}

.texto-base {
    font-size: 16px;
    line-height: 1.8em;
    max-width: 700px;
}

.text-center > .texto-base,
.text-center > .texto-subtitulo,
.mx-auto > .texto-base,
.mx-auto > .texto-subtitulo {
    margin-left: auto;
    margin-right: auto;
}

.max-w-\[820px\] > .titulo-1,
.max-w-\[820px\] > .titulo-2 {
    max-width: 700px;
}
.texto-subtitulo {
    text-wrap: pretty;
}
@media (min-width: 479px) {
    .texto-subtitulo {
        text-wrap: balance;
    }
}

main img {
    max-height: 250px;
}
@media (min-width: 479px) {
    main img {
        max-height: 350px;
    }
}
@media (min-width: 768px) {
    main img {
        max-height: 500px;
    }
}
@media (min-width: 992px) {
    main img {
        max-height: none;
    }
}

.scroll-wheel {
    width: 2px;
    height: 8px;
    background: #fff;
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 2px;
    animation: scrollWheel 1.5s infinite;
}
@keyframes scrollWheel {
    0% { opacity: 1; top: 8px; }
    100% { opacity: 0; top: 24px; }
}

:target {
    scroll-margin-top: 120px;
}

.js-anim .fade-up,
.js-anim .fade-in {
    opacity: 0;
}

.legal-loading {
    opacity: 0;
}

@media (min-width: 768px) {
    #hero-section,
    #footer-section {
        transform: translateZ(0);
        backface-visibility: hidden;
    }
}

@media (max-width: 767px) {
    #footer-section {
        position: relative !important;
        z-index: 30 !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: none !important;
    }
    
    #hero-section {
        position: relative !important;
    }
    #main-content {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
    
    #footer-contact {
        grid-template-columns: 1fr !important;
    }
    #footer-contact > a {
        display: grid;
        grid-template-columns: 50px 1fr;
        column-gap: 15px;
        align-items: center;
    }
    #footer-contact > a > div {
        grid-row: 1 / span 2;
        margin-bottom: 0 !important;
    }
    #footer-contact > a > span {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    
    #footer-contact > a > span:last-child {
        font-size: 14px !important;
    }
}

.px-section {
    padding-left: 20px;
    padding-right: 20px;
}
@media (min-width: 479px) {
    .px-section {
        padding-left: 30px;
        padding-right: 30px;
    }
}

.py-section {
    padding-top: 80px;
    padding-bottom: 80px;
}
@media (min-width: 992px) {
    .py-section {
        padding-top: 120px;
        padding-bottom: 120px;
    }
}

.container-boxed {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.gap-responsive, .gap-responsive-2col {
    gap: 20px;
}
@media (min-width: 479px) {
    .gap-responsive, .gap-responsive-2col { gap: 30px; }
}
@media (min-width: 992px) {
    .gap-responsive { gap: 50px; }
    .gap-responsive-2col { gap: 90px; }
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50em;
    font-weight: 700;
    font-size: 16px;
    padding: 12px 25px;
    transition: all 0.3s;
    width: max-content;
    cursor: pointer;
    text-decoration: none;
}
.btn-filled {
    background-color: #194184;
    color: white;
}
.btn-filled:hover {
    background-color: #0F3163;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
    transform: translateY(-4px);
}
.btn-outline {
    border: 1px solid #194184;
    color: #194184;
    background-color: transparent;
}
.btn-outline:hover {
    background-color: #194184;
    color: white;
}
.block-text-inner .titulo-2,
.block-text-inner .titulo-3 {
    margin-bottom: 0;
}
.block-text-inner > .flex.flex-col {
    width: 100%;
}
.block-text-inner .btn {
    margin-top: 10px;
}

.form-field {
    display: block;
    width: 100%;
    border: 1px solid #D8DEE6;
    border-radius: 7px;
    padding: 14px 18px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    color: #001630;
    background-color: #ffffff;
    transition: border-color 0.2s;
}
.form-field::placeholder { color: #8A94A3; }
.form-field:focus {
    outline: none;
    border-color: #194184;
}
textarea.form-field { resize: vertical; min-height: 130px; }

header {
    transition: all 0.4s;
    background-color: #ffffff;
    box-shadow: 0 1px 3px rgba(0,22,48,0.08);
}

.aa-topbar {
    background-color: #EEF1F4;
    border-bottom: 1px solid #E3E8EE;
}

@media (max-width: 1449px) {
    .aa-topbar { display: none !important; }
    #mobile-menu { display: flex !important; }
    
    #footer-section > div { padding-bottom: 110px !important; }
}

.aa-header-bar {
    padding-top: 14px;
    padding-bottom: 14px;
    transition: all 0.4s;
}
header.scrolled .aa-header-bar {
    padding-top: 8px;
    padding-bottom: 8px;
}
header.scrolled {
    box-shadow: 0 6px 18px rgba(0,22,48,0.12);
}

body.interior header#main-header {
    position: sticky;
    top: 0;
}
header .nav-link {
    color: #001630;
}
header .nav-link:hover {
    color: #194184;
}
header .logo-img {
    filter: none;
}

.nav-dropdown-panel {
    box-shadow: 0 12px 30px rgba(0,22,48,0.15);
}

#aa-bottomnav {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    z-index: 95;
}
@media (min-width: 1450px) {
    #aa-bottomnav { display: none; }
}
.aa-bn-bar {
    display: flex;
    align-items: stretch;
    background: #ffffff;
    border: 1px solid #E3E8EE;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(0,22,48,0.20);
    padding: 5px;
}
.aa-bn-btn {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 8px 2px;
    background: none;
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    color: #3A4654;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.1;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s, background-color 0.2s;
}
.aa-bn-btn svg {
    width: 22px;
    height: 22px;
}
.aa-bn-btn > span {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.aa-bn-btn.active {
    color: var(--color-primary, #194184);
    background: #EEF3FA;
}
.aa-bn-sheet {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(100% + 8px);
    background: #ffffff;
    border: 1px solid #E3E8EE;
    border-radius: 16px;
    box-shadow: 0 12px 34px rgba(0,22,48,0.22);
    padding: 16px;
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
#aa-bottomnav.aa-bn-open .aa-bn-sheet {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.aa-bn-sheet-label {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #001630;
    text-align: center;
    margin-bottom: 12px;
}
.aa-bn-action {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary, #194184);
    color: #ffffff;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 700;
    font-size: 15px;
    padding: 13px 18px;
    border-radius: 50em;
    text-decoration: none;
    transition: background-color 0.2s;
}
.aa-bn-action:active, .aa-bn-action:hover {
    background: var(--color-primary-hover, #0F3163);
}

html.lenis, html.lenis body {
    height: auto;
}
.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}
.lenis.lenis-stopped {
    overflow: hidden;
}

.interior-hero {
    padding-top: 40px;
    padding-bottom: 40px;
}
@media (min-width: 479px) {
    .interior-hero {
        padding-top: 60px;
        padding-bottom: 60px;
    }
}

.block-full {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    max-width: 100%;
    gap: 0;
}
.block-full .block-text {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 50px 0;
}
.block-full .block-text-inner {
    width: 100%;
    max-width: 680px;
    padding: 0 30px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}
.block-full .block-image {
    height: 250px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
@media (min-width: 479px) {
    .block-full .block-image {
        height: 350px;
    }
}
@media (min-width: 768px) {
    .block-full .block-image {
        height: 500px;
    }
}
@media (min-width: 992px) {
    
    .block-full {
        grid-template-columns: 1fr 2fr;
    }
    .block-full.block-reverse {
        grid-template-columns: 2fr 1fr;
    }
    .block-full .block-text {
        padding: 120px 0;
    }
    .block-full .block-image {
        height: auto;
        aspect-ratio: 4 / 5;
        align-self: center;
    }
}

.app-escena {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 60px 24px;
    background: linear-gradient(160deg, #EEF2F7 0%, #F8F9FA 55%, #E9EEF5 100%);
    perspective: 1400px;
    perspective-origin: 50% 45%;
    overflow: hidden;
}

.app-escena {
    --rx: 0deg;
    --ry: 0deg;
    --tx: 0px;
    --ty: 0px;
    --entrada: 1;
}
.app-movil {
    position: relative;
    flex: 0 0 auto;
    width: 176px;
    aspect-ratio: 739 / 1600;
    border-radius: 26px;
    padding: 7px;
    background: linear-gradient(155deg, #3d4450 0%, #1d2430 100%);
    transform-style: preserve-3d;
    
    transition: box-shadow .5s cubic-bezier(.22, .61, .36, 1);
    will-change: transform;
    opacity: var(--entrada);
}

.app-movil--fondo {
    z-index: 1;
    margin-right: -34px;
    transform: translate3d(calc(var(--tx) * -1.15), calc(var(--ty) * .7), -70px)
               rotateX(calc(var(--rx) * .55))
               rotateY(calc(-19deg + var(--ry) * .55));
    box-shadow: 22px 30px 55px rgba(0, 22, 48, .20);
}

.app-movil--frente {
    z-index: 2;
    margin-top: 46px;
    transform: translate3d(var(--tx), var(--ty), 30px)
               rotateX(var(--rx))
               rotateY(calc(-8deg + var(--ry)));
    box-shadow: 26px 36px 64px rgba(0, 22, 48, .26);
}
.app-movil img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    border-radius: 20px;
}

.app-movil::before {
    content: "";
    position: absolute;
    top: 15px;
    left: 50%;
    transform: translateX(-50%);
    width: 42px;
    height: 4px;
    border-radius: 3px;
    background: rgba(255, 255, 255, .30);
    z-index: 2;
}

.app-movil::after {
    content: "";
    position: absolute;
    inset: 7px;
    border-radius: 20px;
    background: linear-gradient(115deg,
                rgba(255, 255, 255, .26) 0%,
                rgba(255, 255, 255, .07) 26%,
                rgba(255, 255, 255, 0) 46%);
    pointer-events: none;
    z-index: 3;
}
@media (min-width: 992px) {
    .app-escena { padding: 74px 30px; }
    .app-movil  { width: 208px; }
    .app-movil--fondo { margin-right: -42px; }
}

@media (max-width: 560px) {
    .app-escena { gap: 14px; padding: 44px 18px; perspective: none; }
    .app-movil  { width: 132px; }
    .app-movil--fondo  { margin-right: 0; transform: none; }
    .app-movil--frente { margin-top: 0; transform: none; }
    .app-escena { --tx: 0px; --ty: 0px; }
}
@media (prefers-reduced-motion: reduce) {
    .app-movil { transition: none; transform: none; opacity: 1; }
    .app-movil--fondo  { transform: rotateY(-19deg); }
    .app-movil--frente { transform: rotateY(-8deg); }
}

.proceso {
    display: grid;
    grid-template-columns: 1fr;
    gap: 34px 0;
}
.proceso__paso {
    position: relative;
    padding-top: 19px;
}

.proceso__paso::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: #194184;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .75s cubic-bezier(.22, .61, .36, 1), height .25s ease;
    transition-delay: calc(var(--i, 0) * .11s);
}
.proceso.esta-visible .proceso__paso::before {
    transform: scaleX(1);
}
.proceso__paso:last-child::before {
    background: #e73739;
}

.proceso__paso::after {
    content: attr(data-n);
    position: absolute;
    bottom: -38px;
    right: -18px;
    font-family: "Spectral", Georgia, serif;
    font-weight: 700;
    font-size: 128px;
    line-height: 1;
    letter-spacing: -.03em;
    color: #194184;
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .85s ease, transform .85s cubic-bezier(.22, .61, .36, 1);
    transition-delay: calc(var(--i, 0) * .11s + .18s);
    pointer-events: none;
    z-index: 0;
    display: none;
}
.proceso__paso:last-child::after {
    color: #e73739;
}

.proceso__n,
.proceso__paso h3,
.proceso__paso p {
    position: relative;
    z-index: 1;
    opacity: 0;
    transform: translateY(11px);
    transition: opacity .6s ease, transform .6s cubic-bezier(.22, .61, .36, 1);
    transition-delay: calc(var(--i, 0) * .11s + .14s);
}
.proceso.esta-visible .proceso__n,
.proceso.esta-visible .proceso__paso h3,
.proceso.esta-visible .proceso__paso p {
    opacity: 1;
    transform: none;
}

.proceso__n {
    display: block;
    font-family: "Spectral", Georgia, serif;
    font-weight: 300;
    font-size: 32px;
    line-height: 1;
    letter-spacing: -.01em;
    color: #194184;
    font-variant-numeric: tabular-nums;
}
.proceso__paso:last-child .proceso__n {
    color: #e73739;
}
.proceso__paso h3 {
    font-family: "Spectral", Georgia, serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.24;
    color: #001630;
    margin: 13px 0 8px;
}
.proceso__paso p {
    font-size: 14.5px;
    line-height: 1.65;
    color: #2F3B4A;
    margin: 0;
}

@media (min-width: 560px) {
    .proceso {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 30px;
    }
}
@media (min-width: 992px) {
    .proceso {
        grid-template-columns: repeat(5, 1fr);
        column-gap: 26px;
        gap: 0;
    }
    .proceso__paso {
        padding-top: 21px;
        min-height: 168px;
        
        overflow: hidden;
    }
    .proceso__paso::after {
        display: block;
    }
    .proceso__n {
        font-size: 36px;
    }
}

@media (hover: hover) {
    .proceso__paso:hover::before {
        height: 4px;
    }
    .proceso__paso:hover::after {
        opacity: .085;
    }
    .proceso__paso:hover .proceso__n {
        color: #e73739;
    }
    .proceso__n {
        transition: opacity .6s ease, transform .6s cubic-bezier(.22, .61, .36, 1), color .3s ease;
    }
}
.proceso.esta-visible .proceso__paso::after {
    opacity: .05;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .proceso__paso::before {
        transform: scaleX(1);
        transition: none;
    }
    .proceso__paso::after,
    .proceso__n,
    .proceso__paso h3,
    .proceso__paso p {
        transition: none;
        transform: none;
    }
    .proceso__paso::after { opacity: .05; }
    .proceso__n,
    .proceso__paso h3,
    .proceso__paso p { opacity: 1; }
}

.pila {
    margin-top: 45px;
}

.pila__t {
    background: #fff;
    border: 1px solid #E2E8F0;
    padding: 30px 30px 28px;
    margin-bottom: 20px;
}
.pila__t:last-child { margin-bottom: 0; }

.pila__cab {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 30px 18px;
    margin: 0 -30px 22px;
    border-bottom: 1px solid #EDF1F6;
}
.pila__n {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .16em;
    color: #C3CCD8;
    flex: 0 0 auto;
}
.pila__ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #194184;
}
.pila__ic svg,
.pila__ic i {
    width: 22px;
    height: 22px;
    stroke-width: 1.5;
}
.pila__tit {
    font-family: "Spectral", Georgia, serif;
    font-weight: 400;
    font-size: 25px;
    line-height: 1.12;
    color: #001630;
    margin: 0;
}

.pila__cuerpo p {
    font-size: 15px;
    line-height: 1.72;
    color: #4A5666;
    margin: 0;
    max-width: 760px;
}
.pila__cuerpo p + p {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #F1F4F8;
    font-size: 15.5px;
    color: #2F3B4A;
}

.pila__t:last-child .pila__ic { color: #e73739; }

@media (min-width: 768px) {
    .pila__t { padding: 32px 38px 32px; }
    .pila__cab { gap: 16px; padding: 0 38px 18px; margin: 0 -38px 24px; }
    .pila__tit { font-size: 28px; }
    .pila__cuerpo {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 40px;
    }
    
    .pila__cuerpo p + p {
        margin-top: 0;
        padding-top: 0;
        padding-left: 40px;
        margin-left: -40px;
        border-top: 0;
        border-left: 1px solid #F1F4F8;
    }
}

@media (min-width: 992px) {
    .pila__t {
        position: sticky;
        
        top: calc(96px + var(--i, 0) * 11px);
        margin-bottom: 26px;
        
        box-shadow: 0 -1px 0 #fff, 0 20px 46px rgba(0, 22, 48, .08);
    }
    .pila__t:last-child { margin-bottom: 0; }
    .pila__tit { font-size: 30px; }
}

@media (prefers-reduced-motion: reduce) {
    .pila__t {
        position: static;
        box-shadow: none;
    }
}

.gr-pasos {
    list-style: none;
    margin: 34px 0 0;
    padding: 0;
    max-width: 620px;
    counter-reset: grp;
}
.gr-paso {
    position: relative;
    display: flex;
    gap: 16px;
    padding-bottom: 22px;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .6s ease, transform .6s cubic-bezier(.22,.61,.36,1);
    transition-delay: calc(.9s + var(--i, 0) * .13s);
}
.gr-listo .gr-paso { opacity: 1; transform: none; }
.gr-paso:last-child { padding-bottom: 0; }
.gr-paso::before {
    content: "";
    position: absolute;
    top: 30px;
    bottom: 2px;
    left: 13px;
    width: 1px;
    background: #DDE4EC;
}
.gr-paso:last-child::before { display: none; }
.gr-paso__n {
    flex: 0 0 auto;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    border: 1.5px solid #DDE4EC;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #A8B2C0;
    position: relative;
    z-index: 1;
}
.gr-paso__n svg, .gr-paso__n i { width: 14px; height: 14px; }
.gr-paso__c { padding-top: 2px; }
.gr-paso__t {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 15.5px;
    font-weight: 600;
    color: #6A7686;
    margin: 0 0 3px;
}
.gr-paso__d { font-size: 14.5px; line-height: 1.6; color: #8A94A3; margin: 0; }

.gr-paso--hecho .gr-paso__n {
    border-color: #194184;
    background: #194184;
    color: #fff;
}
.gr-paso--hecho .gr-paso__t { color: #001630; }

.gr-paso--aqui .gr-paso__n {
    border-color: #e73739;
    background: #e73739;
    color: #fff;
}
.gr-paso--aqui .gr-paso__t {
    color: #001630;
    font-weight: 700;
}
.gr-paso--aqui .gr-paso__d { color: #2F3B4A; }
.gr-listo .gr-paso--aqui .gr-paso__n::after {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 1.5px solid #e73739;
    animation: grLatido 2.4s ease-out infinite 2s;
}
@keyframes grLatido {
    0%   { opacity: .6; transform: scale(.72); }
    70%  { opacity: 0;  transform: scale(1.25); }
    100% { opacity: 0;  transform: scale(1.25); }
}

.gr-puerta { padding: 150px 0 96px; }
.gr-puerta__in { max-width: 560px; }
.gr-puerta .gr-h1 { opacity: 1; transform: none; }
.gr-puerta .gr-rule { transform: scaleX(1); }
.gr-puerta .gr-eyebrow, .gr-puerta .gr-lead { opacity: 1; transform: none; }
[data-gr-estado="cerrado"] .gr-abierto { display: none; }
[data-gr-estado="abierto"] .gr-puerta { display: none; }

@media (min-width: 768px) {
    .gr-esc { margin-bottom: 46px; }
    .gr-puerta { padding: 176px 0 110px; }
}
@media (min-width: 992px) {
    .gr-puerta { padding: 204px 0 124px; }
}

@media (prefers-reduced-motion: reduce) {
    .gr-esc, .gr-esc .orig, .gr-paso { opacity: 1; transform: none; transition: none; }
    .gr-esc .via { stroke-dashoffset: 0; transition: none; }
    .gr-esc .dest { stroke: #194184; transition: none; }
    .gr-esc .destfill { opacity: 1; transform: none; transition: none; }
    .gr-esc .sobre, .gr-esc .onda { animation: none; opacity: 0; }
    .gr-listo .gr-paso--aqui .gr-paso__n::after { animation: none; opacity: .6; }
}

.gr-hero {
    position: relative;
    padding: 132px 0 58px;
    background: linear-gradient(170deg, #F4F7FA 0%, #FBFCFD 62%, #fff 100%);
    border-bottom: 1px solid #E7EBF0;
    overflow: hidden;
}
.gr-lienzo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    opacity: 0;
    transition: opacity 1.1s ease .15s;
    touch-action: manipulation;
}
.gr-listo .gr-lienzo { opacity: 1; }
.gr-hero > .container-boxed { position: relative; z-index: 1; }
.gr-hero__in {
    max-width: 660px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.gr-hero .gr-rule { margin-left: auto; margin-right: auto; }
.gr-hero .gr-lead, .gr-hero .gr-razon { margin-left: auto; margin-right: auto; }
.gr-hero .gr-accion { text-align: center; }
.gr-pasos { margin-left: auto; margin-right: auto; text-align: left; }
.gr-eyebrow {
    display: block;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #8A94A3;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .6s ease, transform .6s cubic-bezier(.22,.61,.36,1);
}
.gr-eyebrow--sec { margin-bottom: 26px; }
.gr-h1 {
    font-family: "Spectral", Georgia, serif;
    font-weight: 400;
    font-size: clamp(38px, 5.4vw, 62px);
    line-height: 1.06;
    letter-spacing: -.015em;
    color: #001630;
    margin: 14px 0 0;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .8s ease, transform .8s cubic-bezier(.22,.61,.36,1);
    transition-delay: .08s;
}
.gr-rule {
    display: block;
    width: 78px;
    height: 3px;
    margin: 26px 0 24px;
    background: #e73739;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .85s cubic-bezier(.22,.61,.36,1);
    transition-delay: .26s;
}
.gr-saludo {
    font-family: "Spectral", Georgia, serif;
    font-size: 20px;
    line-height: 1.4;
    color: #194184;
    margin: 0 0 12px;
}
.gr-lead {
    font-size: 18px;
    line-height: 1.66;
    color: #001630;
    margin: 0;
    max-width: 620px;
}
.gr-razon {
    font-size: 15.5px;
    line-height: 1.68;
    color: #6A7686;
    margin: 18px 0 0;
    max-width: 620px;
}
.gr-saludo, .gr-lead, .gr-razon {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1);
}
.gr-saludo { transition-delay: .34s; }
.gr-lead   { transition-delay: .40s; }
.gr-razon  { transition-delay: .48s; }

.gr-accion {
    margin-top: 34px;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1);
    transition-delay: .56s;
}
.gr-descarga { display: inline-flex; align-items: center; gap: 10px; }

.gr-listo .gr-eyebrow,
.gr-listo .gr-h1,
.gr-listo .gr-saludo,
.gr-listo .gr-lead,
.gr-listo .gr-razon,
.gr-listo .gr-accion { opacity: 1; transform: none; }
.gr-listo .gr-rule { transform: scaleX(1); }

.gr-sig { padding: 58px 0 76px; }
.gr-dests {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
.gr-dest {
    display: block;
    padding: 26px 26px 22px;
    background: #fff;
    border: 1px solid #E7EBF0;
    text-decoration: none;
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s ease,
                transform .7s cubic-bezier(.22,.61,.36,1),
                border-color .35s ease,
                box-shadow .45s cubic-bezier(.22,.61,.36,1);
    transition-delay: calc(.62s + var(--i, 0) * .09s);
}
.gr-listo .gr-dest { opacity: 1; transform: none; }
.gr-dest__ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid #DDE4EC;
    background: #F6F8FB;
    color: #194184;
    margin-bottom: 18px;
    transition: background-color .35s ease, border-color .35s ease, color .35s ease;
}
.gr-dest__ic svg, .gr-dest__ic i { width: 19px; height: 19px; stroke-width: 1.5; }
.gr-dest__t {
    font-family: "Spectral", Georgia, serif;
    font-weight: 400;
    font-size: 22px;
    line-height: 1.18;
    color: #001630;
    margin: 0 0 8px;
}
.gr-dest__p {
    font-size: 14.5px;
    line-height: 1.6;
    color: #6A7686;
    margin: 0 0 16px;
}
.gr-dest__mas {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #194184;
}
.gr-dest__mas svg, .gr-dest__mas i {
    width: 15px;
    height: 15px;
    transition: transform .35s cubic-bezier(.22,.61,.36,1);
}
@media (hover: hover) {
    .gr-dest:hover {
        border-color: #C9D4E2;
        box-shadow: 0 16px 40px rgba(0, 22, 48, .09);
    }
    .gr-dest:hover .gr-dest__ic {
        background: #194184;
        border-color: #194184;
        color: #fff;
    }
    .gr-dest:hover .gr-dest__mas svg,
    .gr-dest:hover .gr-dest__mas i { transform: translateX(4px); }
}

.gr-pie {
    margin-top: 46px;
    padding-top: 26px;
    border-top: 1px solid #E7EBF0;
    max-width: 640px;
}
.gr-pie__t {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #8A94A3;
    margin: 0 0 12px;
}
.gr-pie__l { list-style: none; margin: 0; padding: 0; }
.gr-pie__l li {
    position: relative;
    padding: 0 0 8px 16px;
    font-size: 14.5px;
    line-height: 1.6;
    color: #6A7686;
}
.gr-pie__l li::before {
    content: "";
    position: absolute;
    top: 11px;
    left: 0;
    width: 6px;
    height: 1px;
    background: #194184;
}
.gr-pie__l a { color: #194184; font-weight: 700; }
.gr-pie__l a:hover { text-decoration: underline; }

@media (min-width: 768px) {
    .gr-dests { grid-template-columns: repeat(3, 1fr); gap: 20px; }
    .gr-hero { padding: 158px 0 74px; }
    .gr-sig { padding: 66px 0 92px; }
}
@media (min-width: 992px) {
    .gr-hero { padding: 186px 0 88px; }
    .gr-dest { padding: 30px 30px 26px; }
}

@media (prefers-reduced-motion: reduce) {
    .gr-eyebrow, .gr-h1, .gr-saludo, .gr-lead, .gr-razon, .gr-accion, .gr-dest {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .gr-rule { transform: scaleX(1); transition: none; }
    .gr-dest__ic, .gr-dest__mas svg, .gr-dest__mas i { transition: none; }
}

.form { display: flex; flex-direction: column; gap: 10px; }
.form .eti {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #8A94A3;
}
.form input[type="email"] {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 15px;
    padding: 13px 14px;
    border: 1px solid #DDE4EC;
    background: #fff;
    color: #2F3B4A;
    border-radius: 2px;
}
.areas-check { display: flex; flex-wrap: wrap; gap: 14px; margin: 2px 0 4px; }
.areas-check label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: #6A7686;
    cursor: pointer;
}
.areas-check input { accent-color: #194184; }
.consent {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 4px 0 2px;
    font-size: 12.5px;
    line-height: 1.5;
    color: #6A7686;
    cursor: pointer;
}
.consent input { accent-color: #194184; margin-top: 2px; flex: 0 0 auto; }
.consent a { color: #194184; text-decoration: underline; }
.form button {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 14px;
    border: 0;
    background: #194184;
    color: #fff;
    cursor: pointer;
    border-radius: 2px;
}
.form .nota { font-size: 12px; line-height: 1.55; color: #8A94A3; }

@media (min-width: 992px) {
    .interior .block-text:has(> .flex.flex-col > details) {
        padding-top: 130px;
    }
}
details > summary {
    list-style: none;
}
details > summary::-webkit-details-marker {
    display: none;
}

.legal-content {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8em;
    color: #2F3B4A;
}
.legal-content h2 {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: #001630;
    margin-top: 2.5em;
    margin-bottom: 0.8em;
}
.legal-content h3 {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #001630;
    margin-top: 2em;
    margin-bottom: 0.5em;
}
.legal-content p {
    margin-bottom: 1em;
}
.legal-content ul {
    list-style: none;
    padding: 0;
    margin-bottom: 1.5em;
}
.legal-content ul li {
    padding: 4px 0;
}
.legal-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5em 0;
}
.legal-content table td {
    padding: 12px 15px;
    border-bottom: 1px solid #e5e7eb;
    vertical-align: top;
    font-size: 15px;
}
.legal-content table tr:first-child td {
    border-top: 1px solid #e5e7eb;
}
.legal-content table td:first-child {
    font-weight: 700;
    color: #001630;
    min-width: 150px;
    width: 200px;
}

.legal-content table.cookie-table td:first-child,
.legal-content table.cookie-table th:first-child {
    width: auto;
    min-width: 0;
}
.legal-content table.cookie-table th {
    padding: 12px 15px;
    border-bottom: 2px solid var(--color-primary, #194184);
    text-align: left;
    vertical-align: bottom;
    font-size: 14px;
    font-weight: 700;
    color: #001630;
    white-space: nowrap;
}
.legal-content table.cookie-table td {
    font-size: 14px;
}
.legal-content table.cookie-table code {
    font-size: 13px;
    word-break: break-all;
}
.legal-content a {
    color: #194184;
    text-decoration: underline;
}
.legal-content a:hover {
    color: #0F3163;
}

.legal-page-wrap {
    display: flex;
    justify-content: center;
}

.post-content {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8em;
    color: #2F3B4A;
}
.post-content h2 {
    font-family: "Spectral", Georgia, serif;
    font-weight: 600;
    font-size: clamp(22px, 2.5vw, 27px);
    line-height: 1.2em;
    color: #001630;
    margin-top: 2em;
    margin-bottom: 0.5em;
}
.post-content h3 {
    font-family: "Spectral", Georgia, serif;
    font-weight: 600;
    font-size: clamp(18px, 2vw, 21px);
    line-height: 1.2em;
    color: #001630;
    margin-top: 1.5em;
    margin-bottom: 0.5em;
}
.post-content p {
    margin-bottom: 1.2em;
    max-width: 700px;
}
.post-content img {
    width: 100%;
    height: auto;
    border-radius: 7px;
    margin: 1.5em 0;
}
.post-content ul, .post-content ol {
    padding-left: 1.5em;
    margin-bottom: 1.2em;
}
.post-content li {
    margin-bottom: 0.5em;
}
.post-content blockquote {
    border-left: 3px solid #194184;
    padding-left: 1.2em;
    margin: 1.5em 0;
    font-style: italic;
    color: #001630;
}
.post-content a {
    color: #194184;
    text-decoration: underline;
}
.post-content a:hover {
    color: #0F3163;
}

.cto-sedes {
    --cto-linea: #DDE3EC;
    --cto-fina: #EEF2F7;
    --cto-tenue: #5C6B80;
    --cto-banda: #10203A;
    --cto-banda-texto: #FCFCFB;
    --cto-banda-tenue: #9AABC4;
    --cto-acento: #E73839;
    --cto-papel2: #F4F7FA;
}

/* El antetitulo del sitio. Clase canonica .eti; las tres siguientes son
   alias historicos que se conservan para no tocar las paginas que las usan.
   Antes de unificar habia cinco aspectos distintos para este mismo elemento:
   11, 12, 13 y 14 px, cuatro colores y tres espaciados. */
.eti,
.cto-eti,
.eq-eti,
.eq-num {
    display: block;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #5C6B80;
}

/* Variante para fondo oscuro. El pie y la banda de contacto la necesitan;
   antes cada uno se la escribia por su cuenta. */
.eti--claro {
    color: rgba(255, 255, 255, 0.5);
}

/* Sobre el azul de las cabeceras interiores hace falta mas contraste que en
   el pie: 0.5 sobre #194184 se queda corto. */
.eti--hero {
    color: rgba(255, 255, 255, 0.7);
}


.cto-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--cto-linea);
    border: 1px solid var(--cto-linea);
    margin-top: 36px;
}

.cto-sede {
    background: #fff;
    padding: 28px 26px;
}

.cto-sede__t {
    font-family: var(--font-titles, "Playfair Display", Georgia, serif);
    font-weight: 500;
    font-size: 23px;
    line-height: 1.2;
    color: #001630;
    margin: 8px 0 0;
}

.cto-dir {
    margin-top: 14px;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--cto-tenue);
}

.cto-tel {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--cto-fina);
    font-size: 14.5px;
}

.cto-tel a {
    color: #001630;
    text-decoration: none;
    font-weight: 700;
}

.cto-tel a:hover {
    color: #194184;
}

.cto-mapa {
    display: inline-block;
    margin-top: 16px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #194184;
    text-decoration: none;
    border-bottom: 2px solid var(--cto-acento);
    padding-bottom: 3px;
}

.cto-mapa:hover {
    color: #0F3163;
}

.cto-banda {
    background: var(--cto-banda);
    color: var(--cto-banda-texto);
    border: 1px solid var(--cto-linea);
    border-top: 0;
    padding: 34px 36px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 26px 34px;
}

@media (min-width: 479px) {
    .cto-banda { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
    .cto-banda { grid-template-columns: repeat(3, 1fr); }
}

.cto-banda:empty {
    display: none;
}

.cto-banda .cto-eti {
    color: var(--cto-banda-tenue);
}

.cto-v {
    font-family: var(--font-titles, "Playfair Display", Georgia, serif);
    font-size: 19px;
    line-height: 1.35;
    margin: 8px 0 0;
    color: var(--cto-banda-texto);
    overflow-wrap: anywhere;
}

.cto-banda a {
    color: var(--cto-banda-texto);
    text-decoration: none;
}

.cto-banda a:hover {
    text-decoration: underline;
}

.cto-n {
    overflow-wrap: anywhere;
    font-size: 13px;
    line-height: 1.45;
    color: var(--cto-banda-tenue);
    margin: 6px 0 0;
}

.cto-cierre {
    margin-top: 56px;
    background: var(--cto-papel2);
    border: 1px solid var(--cto-linea);
    padding: 38px 40px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: center;
}

.cto-boton {
    display: inline-block;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 16px 30px;
    background: var(--cto-acento);
    color: #fff;
    text-decoration: none;
    white-space: nowrap;
    border-radius: 7px;
}

.cto-boton:hover {
    background: #C92D2E;
}

@media (max-width: 992px) {
    .cto-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .cto-banda {
        padding: 28px 24px;
    }
    .cto-cierre {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 30px 24px;
    }
}

.eq-areas {
    --eq-linea: #DDE3EC;
    --eq-fina: #EEF2F7;
    --eq-tenue: #5C6B80;
    --eq-acento: #E73839;
    --eq-papel2: #F4F7FA;
}

.eq-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
    background: var(--eq-linea);
    border: 1px solid var(--eq-linea);
    margin-top: 36px;
}

.eq-area {
    background: #fff;
    padding: 28px 26px;
}

.eq-area .eq-num {
    font-family: "Spectral", Georgia, serif;
    font-size: 14px;
    letter-spacing: 0.08em;
    color: var(--eq-acento);
    font-variant-numeric: tabular-nums;
}

.eq-area__t {
    font-family: var(--font-titles, "Playfair Display", Georgia, serif);
    font-weight: 500;
    font-size: 21px;
    line-height: 1.22;
    color: #001630;
    margin: 8px 0 0;
}

.eq-desc {
    margin-top: 12px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--eq-tenue);
}

.eq-puestos {
    list-style: none;
    margin: 16px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--eq-fina);
}

.eq-puestos li {
    position: relative;
    padding-left: 15px;
    font-size: 13.5px;
    line-height: 1.55;
    color: #001630;
}

.eq-puestos li + li {
    margin-top: 6px;
}

.eq-puestos li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    background: var(--eq-acento);
}

.eq-area--sedes {
    background: var(--eq-papel2);
}

.eq-recorrido {
    margin-top: 56px;
    background: var(--eq-papel2);
    border: 1px solid var(--eq-linea);
    padding: 38px 40px;
}

@media (min-width: 479px) {
    .eq-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
    .eq-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 768px) {
    .eq-recorrido { padding: 30px 24px; }
}

.eq-grid--tres {
    grid-template-columns: 1fr;
}

.eq-destacado {
    margin-top: 34px;
    padding: 24px 26px;
    background: #F4F7FA;
    border-left: 3px solid #E73839;
    max-width: 760px;
}

.eq-aviso {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #DDE3EC;
    font-size: 12.5px;
    line-height: 1.7;
    color: #5C6B80;
    max-width: 860px;
}

@media (min-width: 479px) {
    .eq-grid--tres { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
    .eq-grid--tres { grid-template-columns: repeat(3, 1fr); }
}

/* Punto 10 del cliente: las cifras van alineadas a la linea base y con el
   mismo ancho por digito en toda la web. La serifa de titulares usa cifras de
   estilo antiguo, que suben y bajan de la linea y dificultan leer un telefono
   o un horario. */
body {
    font-variant-numeric: lining-nums tabular-nums;
}

/* Los datos funcionales -telefonos, horarios, codigos postales y correo- no
   son titulares: van en la tipografia de texto. */
.cto-v,
.cto-n,
.cto-dir,
.cto-tel {
    font-family: "Plus Jakarta Sans", sans-serif;
}

.cto-v {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* ── Resenas de clientes (puntos 16 y 18) ─────────────────────────────────
   El antetitulo comparte declaracion con .cto-eti y .eq-eti mas arriba. La
   raya roja del titulo la pone el ::after de .titulo-2: no se anade. */
.res-cita {
    margin: 46px 0 0;
    padding: 0;
    border: 0;
    border-left: 4px solid #e73739;
    padding-left: 30px;
    max-width: 900px;
}

.res-cita__t {
    font-family: "Spectral", Georgia, serif;
    font-size: clamp(21px, 2.4vw, 28px);
    line-height: 1.5;
    color: #001630;
    margin: 0;
}

.res-pie {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 14px;
    margin-top: 18px;
}

.res-nombre {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #001630;
}

.res-estrellas {
    color: #e8a33d;
    font-size: 15px;
    letter-spacing: 0.08em;
}

.res-fuente {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 13px;
    color: #5C6B80;
}

.res-fuente a {
    color: #5C6B80;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.res-fuente a:hover {
    color: #194184;
}

.res-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 46px;
}

.res-t {
    background: #fff;
    /* 7px es el token del proyecto -borderRadius.base en tailwind.config-.
       Aqui habia un 8 que no venia de ninguna parte. */
    border-radius: 7px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.03);
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
}

.res-t__t {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #3C4858;
    margin: 0 0 auto;
}

.res-t .res-pie {
    margin-top: 22px;
}

/* La banda de citas cortas: las tres frases que el propio perfil destaca. */
.res-banda {
    list-style: none;
    margin: 46px 0 0;
    padding: 30px 0 0;
    border-top: 1px solid rgba(0, 22, 48, 0.1);
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.res-banda li {
    font-family: "Spectral", Georgia, serif;
    font-size: 17px;
    line-height: 1.55;
    color: #3C4858;
    font-style: italic;
}

@media (min-width: 768px) {
    .res-grid { grid-template-columns: repeat(2, 1fr); }
    .res-banda { grid-template-columns: repeat(3, 1fr); gap: 34px; }
}

@media (min-width: 1024px) {
    .res-grid { grid-template-columns: repeat(3, 1fr); }
}

/* La sexta celda cierra la rejilla -cinco tarjetas en tres columnas dejaban
   un hueco- y lleva la valoracion agregada con el enlace al perfil. */
.res-t--total {
    background: #10203A;
    justify-content: center;
    align-items: flex-start;
    gap: 4px;
}

.res-total__n {
    font-family: var(--font-titles, "Playfair Display", Georgia, serif);
    font-size: 46px;
    line-height: 1;
    color: #fff;
}

.res-total__d {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.7);
}

.res-total__a {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
    margin-top: 14px;
}

.res-total__a:hover {
    color: rgba(255, 255, 255, 0.75);
}

/* ── Sedes, variante oscura (punto 2) ─────────────────────────────────────
   El mismo componente de /contacto, en el pie. Solo cambian las variables:
   el maquetado y las clases son identicos, de modo que un cambio en el
   componente se ve en los dos sitios. */
.cto-sedes--oscuro {
    --cto-linea: rgba(255, 255, 255, 0.14);
    --cto-fina: rgba(255, 255, 255, 0.1);
    --cto-tenue: rgba(255, 255, 255, 0.68);
}

.cto-sedes--oscuro .cto-grid {
    margin-top: 16px;
    background: var(--cto-linea);
    border-color: var(--cto-linea);
}

.cto-sedes--oscuro .cto-sede {
    background: transparent;
    padding: 18px 20px;
}

.cto-sedes--oscuro .cto-dir {
    margin-top: 10px;
}

.cto-sedes--oscuro .cto-mapa {
    margin-top: 12px;
}

.cto-sedes--oscuro .cto-sede__t {
    color: #fff;
    font-size: 21px;
}

.cto-sedes--oscuro .cto-eti {
    color: rgba(255, 255, 255, 0.5);
}

.cto-sedes--oscuro .cto-tel a,
.cto-sedes--oscuro .cto-mapa {
    color: #fff;
}

.cto-sedes--oscuro .cto-mapa:hover,
.cto-sedes--oscuro .cto-tel a:hover {
    color: rgba(255, 255, 255, 0.72);
}

@media (max-width: 767px) {
    .cto-sedes--oscuro .cto-sede { padding: 20px 0; }
    .cto-sedes--oscuro .cto-grid { border-left: 0; border-right: 0; }
}

/* ── El pie fijo, solo cuando cabe ────────────────────────────────────────
   #footer-section es position:fixed anclado abajo y sin altura propia: lo que
   rebasa la ventana por arriba no se puede alcanzar, porque un elemento fijo
   no se desplaza. Medido a 1440 px de ancho, el pie ocupa unos 800 px tras
   recortarlo, asi que por debajo de 900 px de ventana se renuncia al efecto y
   el pie entra en el flujo, igual que ya se hace en movil.

   El umbral va con holgura sobre el alto real: si el pie crece -otra sede,
   otro enlace- el margen absorbe la diferencia en lugar de volver a cortar. */
@media (min-width: 768px) and (max-height: 900px) {
    #footer-section {
        position: relative !important;
        z-index: 30 !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    #hero-section {
        position: relative !important;
    }

    #main-content {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}
