/* =========================================================
   OPEN VISION
   ESTILOS COMPLETOS
========================================================= */


/* =========================================================
   VARIABLES
========================================================= */

:root {

    --cyan: #2099cc;
    --blue: #2879c6;
    --indigo: #3154b9;
    --violet: #3925a8;

    --dark: #25217d;
    --deep: #18165c;

    --text: #252c54;
    --muted: #707895;

    --white: #ffffff;

    --bg: #f7f9ff;
    --bg-blue: #f1f7fd;
    --bg-violet: #f5f3ff;

    --border:
        rgba(49, 84, 185, 0.14);

    --shadow:
        0 25px 70px
        rgba(49, 84, 185, 0.14);

    --gradient:
        linear-gradient(
            120deg,
            #2099cc 0%,
            #2879c6 35%,
            #3154b9 68%,
            #3925a8 100%
        );

    --gradient-dark:
        linear-gradient(
            135deg,
            #3154b9 0%,
            #3925a8 55%,
            #25217d 100%
        );

    --container: 1240px;

}


/* =========================================================
   RESET
========================================================= */

* {

    margin: 0;
    padding: 0;

    box-sizing: border-box;

}


html {

    scroll-behavior: smooth;

    scroll-padding-top: 100px;

}


body {

    font-family:
        "DM Sans",
        sans-serif;

    color: var(--text);

    background: white;

    line-height: 1.6;

    overflow-x: hidden;

}


body.menu-open {

    overflow: hidden;

}


h1,
h2,
h3,
h4 {

    font-family:
        "Manrope",
        sans-serif;

}


a {

    color: inherit;

    text-decoration: none;

}


button {

    font: inherit;

}


img {

    display: block;

    max-width: 100%;

}


.container {

    width:
        min(
            calc(100% - 48px),
            var(--container)
        );

    margin-inline: auto;

}


.section {

    padding: 125px 0;

}


::selection {

    color: var(--violet);

    background:
        rgba(32, 153, 204, 0.20);

}



/* =========================================================
   GENERAL
========================================================= */

.eyebrow {

    margin-bottom: 18px;

    color: var(--indigo);

    font-size: 0.68rem;

    font-weight: 800;

    letter-spacing: 0.18em;

}


.eyebrow-white {

    color: #83e8f5;

}


.btn {

    min-height: 48px;

    padding:
        13px 24px;

    display: inline-flex;

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

    gap: 9px;

    border-radius: 999px;

    font-size: 0.88rem;

    font-weight: 700;

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

}


.btn:hover {

    transform:
        translateY(-3px);

}


.btn-primary {

    color: white;

    background:
        var(--gradient);

    box-shadow:
        0 15px 35px
        rgba(49, 84, 185, 0.23);

}


.btn-primary:hover {

    box-shadow:
        0 20px 45px
        rgba(57, 37, 168, 0.28);

}


.btn-secondary {

    color: var(--indigo);

    background:
        rgba(255, 255, 255, 0.92);

    border:
        1px solid
        var(--border);

}



/* =========================================================
   HEADER
========================================================= */

.header {

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    z-index: 1000;

    background:
        rgba(255, 255, 255, 0.93);

    border-bottom:
        1px solid
        rgba(49, 84, 185, 0.08);

    backdrop-filter:
        blur(20px);

    -webkit-backdrop-filter:
        blur(20px);

    transition:
        box-shadow 0.3s ease,
        background 0.3s ease;

}


.header.scrolled {

    background:
        rgba(255, 255, 255, 0.98);

    box-shadow:
        0 10px 35px
        rgba(49, 84, 185, 0.08);

}


.header-inner {

    min-height: 88px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 25px;

}


.brand-logo {

    flex-shrink: 0;

}


.brand-logo img {

    width: 185px;

}



/* =========================================================
   DESKTOP NAV
========================================================= */

.desktop-nav {

    display: flex;

    align-items: center;

    gap: 22px;

    font-size: 0.8rem;

    font-weight: 600;

}


.desktop-nav > a,
.nav-dropdown-trigger {

    padding:
        32px 0;

    transition:
        color 0.3s ease;

}


.desktop-nav > a:hover,
.nav-dropdown-trigger:hover {

    color: var(--violet);

}


.nav-dropdown {

    position: relative;

}


.nav-dropdown-trigger {

    display: flex;

    align-items: center;

    gap: 5px;

}


.mega-menu {

    position: absolute;

    top: 77px;
    left: 50%;

    width: 880px;

    padding: 28px;

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 28px;

    border-radius: 25px;

    background:
        rgba(255, 255, 255, 0.98);

    border:
        1px solid
        var(--border);

    box-shadow:
        var(--shadow);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transform:
        translateX(-50%)
        translateY(12px);

    transition:
        opacity 0.25s ease,
        transform 0.25s ease,
        visibility 0.25s ease;

}


.nav-dropdown:hover
.mega-menu {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

    transform:
        translateX(-50%)
        translateY(0);

}


.mega-column {

    display: flex;

    flex-direction: column;

    gap: 9px;

}


.mega-column p {

    margin-bottom: 6px;

    color: var(--indigo);

    font-size: 0.65rem;

    font-weight: 800;

    letter-spacing: 0.12em;

    text-transform: uppercase;

}


.mega-column a {

    color: var(--text);

    font-size: 0.8rem;

    transition:
        color 0.25s ease,
        transform 0.25s ease;

}


.mega-column a:hover {

    color: var(--violet);

    transform:
        translateX(4px);

}



/* =========================================================
   HAMBURGUESA
========================================================= */

.menu-toggle {

    width: 46px;
    height: 46px;

    display: none;

    flex-direction: column;

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

    gap: 5px;

    flex-shrink: 0;

    border: 0;

    border-radius: 50%;

    background:
        linear-gradient(
            135deg,
            rgba(32, 153, 204, 0.10),
            rgba(57, 37, 168, 0.10)
        );

    cursor: pointer;

}


.menu-toggle span {

    width: 20px;
    height: 2px;

    display: block;

    border-radius: 20px;

    background: var(--indigo);

}



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

.mobile-overlay {

    position: fixed;

    inset: 0;

    z-index: 1080;

    background:
        rgba(25, 20, 85, 0.45);

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);

    opacity: 0;

    visibility: hidden;

    transition:
        opacity 0.35s ease,
        visibility 0.35s ease;

}


.mobile-overlay.active {

    opacity: 1;

    visibility: visible;

}


.mobile-menu {

    position: fixed;

    top: 0;
    right: 0;

    z-index: 1090;

    width:
        min(
            430px,
            92vw
        );

    height: 100dvh;

    overflow-y: auto;

    background:

        radial-gradient(
            circle at 90% 5%,
            rgba(32, 153, 204, 0.13),
            transparent 27%
        ),

        linear-gradient(
            180deg,
            #ffffff,
            #f5f5ff
        );

    box-shadow:
        -25px 0 80px
        rgba(35, 30, 120, 0.18);

    transform:
        translateX(105%);

    transition:
        transform
        0.48s
        cubic-bezier(
            0.77,
            0,
            0.18,
            1
        );

}


.mobile-menu.active {

    transform:
        translateX(0);

}


.mobile-menu-header {

    min-height: 88px;

    padding:
        18px 24px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    border-bottom:
        1px solid
        var(--border);

}


.mobile-menu-header img {

    width: 170px;

}


.mobile-close {

    width: 44px;
    height: 44px;

    display: flex;

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

    flex-shrink: 0;

    border: 0;

    border-radius: 50%;

    color: var(--indigo);

    background:
        rgba(49, 84, 185, 0.07);

    font-size: 1.8rem;

    cursor: pointer;

}


.mobile-menu-body {

    padding:
        30px 25px
        40px;

}


.mobile-kicker {

    margin-bottom: 14px;

    color: var(--cyan);

    font-size: 0.63rem;

    font-weight: 800;

    letter-spacing: 0.15em;

}


.mobile-nav {

    display: flex;

    flex-direction: column;

}


.mobile-nav a {

    padding:
        16px 0;

    display: flex;

    align-items: center;

    gap: 15px;

    color: var(--text);

    border-bottom:
        1px solid
        var(--border);

    font-family:
        "Manrope",
        sans-serif;

    font-size: 1.06rem;

    font-weight: 700;

}


.mobile-nav a span {

    width: 23px;

    color: var(--cyan);

    font-family:
        "DM Sans",
        sans-serif;

    font-size: 0.62rem;

}


.mobile-procedures {

    margin-top: 30px;

    padding: 21px;

    border-radius: 22px;

    background:
        linear-gradient(
            135deg,
            #eefaff,
            #f3efff
        );

    border:
        1px solid
        var(--border);

}


.mobile-procedures > p {

    margin-bottom: 13px;

    color: var(--indigo);

    font-size: 0.62rem;

    font-weight: 800;

    letter-spacing: 0.13em;

}


.mobile-procedures > div {

    display: flex;

    flex-wrap: wrap;

    gap: 7px;

}


.mobile-procedures a {

    padding:
        6px 10px;

    border-radius: 999px;

    color: var(--indigo);

    background: white;

    border:
        1px solid
        var(--border);

    font-size: 0.7rem;

    font-weight: 600;

}


.mobile-main-cta {

    width: 100%;

    margin-top: 20px;

}


.mobile-brand-message {

    margin-top: 32px;

    padding-top: 22px;

    display: flex;

    flex-direction: column;

    border-top:
        1px solid
        var(--border);

}


.mobile-brand-message strong {

    color: var(--indigo);

}


.mobile-brand-message span {

    color: var(--muted);

    font-size: 0.73rem;

}



/* =========================================================
   HERO
========================================================= */

.hero {

    position: relative;

    min-height: 900px;

    padding:
        185px 0
        105px;

    display: flex;

    align-items: center;

    overflow: hidden;

    background:

        radial-gradient(
            circle at 82% 24%,
            rgba(32, 153, 204, 0.14),
            transparent 30%
        ),

        radial-gradient(
            circle at 75% 82%,
            rgba(57, 37, 168, 0.09),
            transparent 32%
        ),

        linear-gradient(
            180deg,
            #ffffff,
            #f4f6ff
        );

}


.hero-watermark {

    position: absolute;

    width: 760px;

    top: 70px;
    right: -220px;

    opacity: 0.035;

    transform:
        rotate(-7deg);

    pointer-events: none;

}


.hero-grid {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        1.05fr 0.95fr;

    gap: 65px;

    align-items: center;

}


.hero h1 {

    max-width: 760px;

    color: var(--text);

    font-size:
        clamp(
            3.3rem,
            5.7vw,
            6rem
        );

    line-height: 1;

    letter-spacing: -0.055em;

}


.hero h1 span {

    display: block;

    margin-top: 10px;

    background:
        var(--gradient);

    -webkit-background-clip: text;

    background-clip: text;

    color: transparent;

}


.hero-description {

    max-width: 630px;

    margin:
        30px 0;

    color: var(--muted);

    font-size: 1.04rem;

}


.hero-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 12px;

}


.hero-distances {

    max-width: 650px;

    margin-top: 58px;

    padding-top: 24px;

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;

    border-top:
        1px solid
        var(--border);

}


.hero-distances div {

    display: flex;

    flex-direction: column;

}


.hero-distances strong {

    color: var(--indigo);

    font-size: 0.86rem;

}


.hero-distances span {

    margin-top: 3px;

    color: var(--muted);

    font-size: 0.72rem;

}


.hero-visual {

    position: relative;

    min-width: 0;

    height: 560px;

    display: flex;

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

}


.hero-logo-orbit {

    position: relative;

    width:
        min(
            470px,
            100%
        );

    aspect-ratio: 1;

    display: flex;

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

}


.hero-symbol {

    position: relative;

    z-index: 2;

    width: 70%;

    max-width: 340px;

    filter:
        drop-shadow(
            0 25px 45px
            rgba(49, 84, 185, 0.20)
        );

    animation:
        symbolFloat
        6s
        ease-in-out
        infinite;

}


.orbit {

    position: absolute;

    border-radius: 50%;

    border:
        1px solid
        rgba(49, 84, 185, 0.16);

}


.orbit-one {

    width: 100%;
    height: 100%;

    animation:
        spin
        28s
        linear
        infinite;

}


.orbit-two {

    width: 76%;
    height: 76%;

    border-style: dashed;

    animation:
        reverseSpin
        22s
        linear
        infinite;

}


.glass-card {

    position: absolute;

    z-index: 5;

    padding: 19px;

    border-radius: 19px;

    background:
        rgba(255, 255, 255, 0.88);

    border:
        1px solid
        rgba(49, 84, 185, 0.10);

    box-shadow:
        0 20px 50px
        rgba(49, 84, 185, 0.13);

    backdrop-filter:
        blur(17px);

}


.hero-card-one {

    top: 55px;
    right: 0;

}


.hero-card-two {

    bottom: 55px;
    left: 0;

    display: flex;

    align-items: center;

    gap: 12px;

}


.glass-card > span {

    color: var(--blue);

    font-size: 0.6rem;

    font-weight: 800;

    letter-spacing: 0.12em;

}


.glass-card strong {

    display: block;

    color: var(--indigo);

}


.glass-card p {

    color: var(--muted);

    font-size: 0.74rem;

}


.hero-card-two i {

    width: 10px;
    height: 10px;

    display: block;

    border-radius: 50%;

    background: var(--cyan);

    box-shadow:
        0 0 0 6px
        rgba(32, 153, 204, 0.12);

}



/* =========================================================
   FILOSOFÍA
========================================================= */

.philosophy {

    padding:
        125px 0;

    color: white;

    background:

        radial-gradient(
            circle at 85% 18%,
            rgba(32, 153, 204, 0.23),
            transparent 30%
        ),

        linear-gradient(
            135deg,
            #294bac,
            #3528a5 52%,
            #21166c
        );

}


.philosophy-grid {

    display: grid;

    grid-template-columns:
        0.95fr 1.05fr;

    gap: 85px;

    align-items: center;

}


.philosophy-copy h2 {

    color: white;

    font-size:
        clamp(
            3rem,
            5vw,
            5.1rem
        );

    line-height: 1.03;

    letter-spacing: -0.05em;

}


.philosophy-copy h2 span {

    display: block;

    color: white;

}


.philosophy-text-box {

    margin-top: 34px;

    padding: 27px;

    border-radius: 24px;

    background:
        rgba(255, 255, 255, 0.11);

    border:
        1px solid
        rgba(255, 255, 255, 0.18);

    backdrop-filter:
        blur(14px);

}


.philosophy-text-box p {

    color:
        rgba(255, 255, 255, 0.92);

}


.philosophy-text-box p + p {

    margin-top: 16px;

}


.white-link {

    margin-top: 27px;

    display: inline-flex;

    gap: 8px;

    color: #83e8f5;

    font-weight: 700;

}


.vision-distance-cards {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 15px;

}


.vision-card {

    min-height: 250px;

    padding: 26px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    border-radius: 27px;

    background:
        rgba(255, 255, 255, 0.10);

    border:
        1px solid
        rgba(255, 255, 255, 0.16);

    transition:
        transform 0.35s ease,
        background 0.35s ease;

}


.vision-card:first-child {

    grid-column:
        span 2;

}


.vision-card:hover {

    transform:
        translateY(-7px);

    background:
        rgba(255, 255, 255, 0.15);

}


.vision-card-top {

    display: flex;

    align-items: center;
    justify-content: space-between;

}


.vision-card-top span {

    color: #83e8f5;

    font-size: 0.68rem;

    font-weight: 800;

}


.vision-card-top i {

    color: #83e8f5;

    font-size: 1.8rem;

    font-style: normal;

}


.vision-card h3 {

    color: white;

    font-size: 1.3rem;

}


.vision-card p {

    margin-top: 7px;

    color:
        rgba(255, 255, 255, 0.73);

}



/* =========================================================
   PROCEDIMIENTOS
========================================================= */

.procedures {

    background:
        linear-gradient(
            180deg,
            #f8faff,
            #f1f6fd
        );

}


.section-heading {

    display: grid;

    grid-template-columns:
        1fr 0.42fr;

    gap: 70px;

    align-items: end;

}


.section-heading h2,
.age-heading h2,
.education-heading h2 {

    color: var(--text);

    font-size:
        clamp(
            2.9rem,
            4.8vw,
            4.9rem
        );

    line-height: 1.04;

    letter-spacing: -0.05em;

}


.section-heading h2 span,
.age-heading h2 span,
.education-heading h2 span {

    display: block;

    background:
        var(--gradient);

    -webkit-background-clip: text;

    background-clip: text;

    color: transparent;

}


.section-heading > p {

    color: var(--muted);

}


.procedure-category {

    margin-top: 90px;

}


.procedure-category-heading {

    margin-bottom: 30px;

    display: grid;

    grid-template-columns:
        55px 1fr;

    gap: 18px;

}


.procedure-category-heading > span {

    color: var(--cyan);

    font-size: 0.7rem;

    font-weight: 800;

}


.procedure-category-heading p {

    color: var(--indigo);

    font-size: 0.65rem;

    font-weight: 800;

    letter-spacing: 0.14em;

}


.procedure-category-heading h3 {

    margin-top: 5px;

    color: var(--text);

    font-size:
        clamp(
            1.7rem,
            3vw,
            2.6rem
        );

    line-height: 1.15;

    letter-spacing: -0.035em;

}


.procedure-grid {

    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 15px;

}


.procedure-grid-three {

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

}


.procedure-card {

    min-width: 0;

    min-height: 350px;

    padding: 27px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    border-radius: 27px;

    background: white;

    border:
        1px solid
        var(--border);

    box-shadow:
        0 8px 30px
        rgba(49, 84, 185, 0.04);

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

}


.procedure-card:hover {

    transform:
        translateY(-8px);

    box-shadow:
        var(--shadow);

}


.procedure-card-top {

    display: flex;

    justify-content: space-between;

    gap: 12px;

}


.procedure-card-top span,
.small-label {

    color: var(--indigo);

    font-size: 0.63rem;

    font-weight: 800;

    letter-spacing: 0.12em;

}


.procedure-card-top i {

    width: 37px;
    height: 37px;

    display: flex;

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

    flex-shrink: 0;

    border-radius: 50%;

    color: var(--violet);

    border:
        1px solid
        var(--border);

    font-style: normal;

}


.procedure-card h3 {

    margin-bottom: 10px;

    color: var(--text);

    font-size: 1.55rem;

}


.procedure-card p {

    color: var(--muted);

    font-size: 0.86rem;

}


.procedure-card a {

    display: inline-block;

    margin-top: 17px;

    color: var(--indigo);

    font-size: 0.78rem;

    font-weight: 700;

}


.procedure-featured {

    color: white;

    background:

        radial-gradient(
            circle at 80% 15%,
            rgba(32, 153, 204, 0.40),
            transparent 38%
        ),

        var(--gradient-dark);

}


.procedure-featured h3 {

    color: white;

}


.procedure-featured p {

    color:
        rgba(255, 255, 255, 0.72);

}


.procedure-featured
.procedure-card-top span,
.procedure-featured
.small-label,
.procedure-featured a {

    color: #83e8f5;

}


.procedure-featured
.procedure-card-top i {

    color: white;

    border-color:
        rgba(255, 255, 255, 0.20);

}


.large-card {

    min-height: 385px;

}


.accent-procedure {

    background:
        linear-gradient(
            135deg,
            #eaf9fd,
            #f1f3ff 55%,
            #f4efff
        );

}


.lens-card {

    overflow: hidden;

}


.lens-graphic {

    width: 88px;
    height: 88px;

    margin-bottom: auto;

    border-radius: 50%;

    background:

        radial-gradient(
            circle at 35% 30%,
            white,
            rgba(32, 153, 204, 0.50) 35%,
            rgba(57, 37, 168, 0.45)
        );

    box-shadow:
        0 15px 40px
        rgba(49, 84, 185, 0.16);

}


.crosslinking-card {

    min-height: 325px;

    padding: 38px;

    display: grid;

    grid-template-columns:
        1fr 0.8fr;

    align-items: center;

    gap: 30px;

    overflow: hidden;

    border-radius: 30px;

    color: white;

    background:
        var(--gradient-dark);

}


.crosslinking-card
> div:first-child {

    max-width: 520px;

}


.crosslinking-card
> div:first-child
> span {

    color: #83e8f5;

    font-size: 0.65rem;

    font-weight: 800;

    letter-spacing: 0.14em;

}


.crosslinking-card h3 {

    margin-top: 9px;

    color: white;

    font-size: 2.4rem;

}


.crosslinking-card p {

    margin-top: 12px;

    color:
        rgba(255, 255, 255, 0.72);

}


.crosslinking-visual {

    position: relative;

    min-height: 210px;

    display: flex;

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

}


.crosslinking-visual span {

    position: absolute;

    display: block;

    border-radius: 50%;

    border:
        1px solid
        rgba(255, 255, 255, 0.25);

}


.crosslinking-visual
span:nth-child(1) {

    width: 195px;
    height: 195px;

}


.crosslinking-visual
span:nth-child(2) {

    width: 135px;
    height: 135px;

}


.crosslinking-visual
span:nth-child(3) {

    width: 72px;
    height: 72px;

    background:
        rgba(131, 232, 245, 0.20);

}



/* =========================================================
   EDADES
========================================================= */

.age-section {

    background:

        radial-gradient(
            circle at 10% 10%,
            rgba(32, 153, 204, 0.09),
            transparent 28%
        ),

        linear-gradient(
            180deg,
            #ffffff,
            #f4f4ff
        );

}


.age-heading {

    display: grid;

    grid-template-columns:
        1fr 0.44fr;

    gap: 70px;

    align-items: end;

}


.age-heading
> div:last-child {

    color: var(--muted);

}


.age-heading
> div:last-child
p + p {

    margin-top: 12px;

}


.age-cards {

    margin-top: 68px;

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 17px;

}


.age-card {

    min-width: 0;

    overflow: hidden;

    border-radius: 30px;

    background: white;

    border:
        1px solid
        var(--border);

    box-shadow:
        0 13px 40px
        rgba(49, 84, 185, 0.08);

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

}


.age-card:hover {

    transform:
        translateY(-8px);

    box-shadow:
        var(--shadow);

}


.age-card-visual {

    position: relative;

    height: 210px;

    padding: 27px;

    overflow: hidden;

}


.age-young {

    background:
        linear-gradient(
            135deg,
            #2099cc,
            #2879c6
        );

}


.age-middle {

    background:
        linear-gradient(
            135deg,
            #2879c6,
            #3154b9,
            #3925a8
        );

}


.age-mature {

    background:
        linear-gradient(
            135deg,
            #3154b9,
            #3925a8
        );

}


.age-card-visual > span {

    position: relative;

    z-index: 3;

    color: white;

    font-weight: 800;

}


.age-card-visual > strong {

    position: absolute;

    right: 15px;
    bottom: -47px;

    color:
        rgba(255, 255, 255, 0.14);

    font-size: 9rem;

    line-height: 1;

}


.age-focus {

    position: absolute;

    width: 145px;
    height: 145px;

    top: 35px;
    right: 55px;

    border-radius: 50%;

    border:
        1px solid
        rgba(255, 255, 255, 0.25);

    box-shadow:

        0 0 0 20px
        rgba(255, 255, 255, 0.05),

        0 0 0 45px
        rgba(255, 255, 255, 0.025);

}


.age-card-content {

    padding: 29px;

}


.age-card-content h3 {

    margin-top: 8px;

    color: var(--text);

    font-size: 1.6rem;

    line-height: 1.2;

}


.age-card-content
> p:not(.small-label) {

    margin-top: 14px;

    color: var(--muted);

}


.tag-group {

    margin-top: 23px;

    display: flex;

    flex-wrap: wrap;

    gap: 7px;

}


.tag-group span {

    padding:
        6px 10px;

    border-radius: 999px;

    background:
        #f1f3ff;

    color: var(--indigo);

    font-size: 0.68rem;

    font-weight: 600;

}


.orientation-note {

    max-width: 800px;

    margin:
        38px auto 0;

    padding:
        18px 22px;

    display: flex;

    align-items: center;

    gap: 14px;

    border-radius: 18px;

    background:
        rgba(49, 84, 185, 0.055);

    border:
        1px solid
        var(--border);

}


.orientation-note span {

    width: 29px;
    height: 29px;

    display: flex;

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

    flex: 0 0 auto;

    border-radius: 50%;

    color: white;

    background:
        var(--gradient);

    font-weight: 800;

}


.orientation-note p {

    color: var(--muted);

    font-size: 0.8rem;

}



/* =========================================================
   DISEÑO VISUAL
========================================================= */

.visual-design {

    color: white;

    background:

        radial-gradient(
            circle at 85% 15%,
            rgba(32, 153, 204, 0.24),
            transparent 30%
        ),

        linear-gradient(
            135deg,
            #294bac,
            #3528a5 50%,
            #21166c
        );

}


.visual-design-heading {

    max-width: 870px;

}


.visual-design-heading h2 {

    color: white;

    font-size:
        clamp(
            3rem,
            5vw,
            5rem
        );

    line-height: 1.04;

    letter-spacing: -0.05em;

}


.visual-design-heading h2 span {

    display: block;

    color:
        rgba(255, 255, 255, 0.50);

}


.visual-design-heading
> p:last-child {

    max-width: 650px;

    margin-top: 24px;

    color:
        rgba(255, 255, 255, 0.72);

}


.process-list {

    margin-top: 75px;

    border-top:
        1px solid
        rgba(255, 255, 255, 0.15);

}


.process-item {

    padding:
        27px 0;

    display: grid;

    grid-template-columns:
        75px 1fr 0.75fr;

    gap: 28px;

    align-items: center;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.14);

    transition:
        padding 0.3s ease,
        background 0.3s ease;

}


.process-item:hover {

    padding-left: 16px;
    padding-right: 16px;

    background:
        rgba(255, 255, 255, 0.06);

}


.process-item span {

    color: #83e8f5;

    font-size: 0.7rem;

    font-weight: 800;

}


.process-item h3 {

    color: white;

    font-size: 1.35rem;

}


.process-item p {

    color:
        rgba(255, 255, 255, 0.67);

}



/* =========================================================
   EDUCACIÓN
========================================================= */

.education {

    background:

        radial-gradient(
            circle at 90% 8%,
            rgba(57, 37, 168, 0.07),
            transparent 30%
        ),

        white;

}


.education-heading {

    display: grid;

    grid-template-columns:
        1fr 0.44fr;

    gap: 70px;

    align-items: end;

}


.education-heading > p {

    color: var(--muted);

}


.education-layout {

    margin-top: 68px;

    display: grid;

    grid-template-columns:
        1.25fr 0.75fr;

    gap: 17px;

}


.video-card {

    min-width: 0;

    min-height: 500px;

    display: grid;

    grid-template-columns:
        0.95fr 1.05fr;

    overflow: hidden;

    border-radius: 31px;

    background:
        var(--gradient-dark);

    box-shadow:
        var(--shadow);

}


.video-preview {

    position: relative;

    min-height: 100%;

    display: flex;

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

    overflow: hidden;

    background:

        radial-gradient(
            circle,
            rgba(32, 153, 204, 0.35),
            transparent 35%
        ),

        linear-gradient(
            145deg,
            #2099cc,
            #3154b9 55%,
            #3925a8
        );

}


.video-preview img {

    position: absolute;

    width: 78%;

    opacity: 0.17;

}


.play-button {

    position: relative;

    z-index: 3;

    width: 78px;
    height: 78px;

    display: flex;

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

    border: 0;

    border-radius: 50%;

    color: var(--violet);

    background: white;

    box-shadow:
        0 18px 45px
        rgba(0, 0, 0, 0.18);

    font-size: 1.35rem;

}


.video-caption {

    position: absolute;

    left: 19px;
    bottom: 19px;

    padding:
        6px 10px;

    border-radius: 999px;

    color: white;

    background:
        rgba(255, 255, 255, 0.13);

    font-size: 0.62rem;

    font-weight: 700;

}


.video-content {

    padding: 40px;

    display: flex;

    flex-direction: column;

    justify-content: center;

}


.education-label {

    color: #83e8f5;

    font-size: 0.63rem;

    font-weight: 800;

    letter-spacing: 0.14em;

}


.video-content h3 {

    margin-top: 10px;

    color: white;

    font-size: 1.85rem;

    line-height: 1.2;

}


.video-content
> p:not(.education-label) {

    margin-top: 16px;

    color:
        rgba(255, 255, 255, 0.70);

}


.video-tags {

    margin-top: 21px;

    display: flex;

    flex-wrap: wrap;

    gap: 7px;

}


.video-tags span {

    padding:
        6px 10px;

    border-radius: 999px;

    color: white;

    border:
        1px solid
        rgba(255, 255, 255, 0.16);

    background:
        rgba(255, 255, 255, 0.07);

    font-size: 0.68rem;

}


.coming-soon {

    width: fit-content;

    margin-top: 23px;

    padding:
        6px 10px;

    border-radius: 999px;

    color: #83e8f5;

    background:
        rgba(131, 232, 245, 0.12);

    font-size: 0.68rem;

    font-weight: 700;

}


.education-tools {

    display: grid;

    gap: 16px;

}


.education-tool-card {

    min-height: 150px;

    padding: 22px;

    display: grid;

    grid-template-columns:
        50px 1fr 22px;

    gap: 15px;

    align-items: center;

    border-radius: 24px;

    background:
        #f6f7ff;

    border:
        1px solid
        var(--border);

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

}


.education-tool-card:hover {

    transform:
        translateX(5px);

    box-shadow:
        var(--shadow);

}


.education-tool-icon {

    width: 48px;
    height: 48px;

    display: flex;

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

    border-radius: 14px;

    color: white;

    background:
        var(--gradient);

    font-weight: 800;

}


.education-tool-card
> div:nth-child(2)
> span {

    color: var(--indigo);

    font-size: 0.6rem;

    font-weight: 800;

    letter-spacing: 0.12em;

}


.education-tool-card h3 {

    margin-top: 4px;

    color: var(--text);

    font-size: 1rem;

}


.education-tool-card p {

    margin-top: 5px;

    color: var(--muted);

    font-size: 0.76rem;

}


.education-tool-card > i {

    color: var(--violet);

    font-style: normal;

}


.education-library {

    margin-top: 75px;

    padding: 40px;

    border-radius: 30px;

    background:
        linear-gradient(
            135deg,
            #f3f9ff,
            #f5f1ff
        );

    border:
        1px solid
        var(--border);

}


.library-heading {

    margin-bottom: 28px;

    display: flex;

    align-items: end;
    justify-content: space-between;

    gap: 35px;

}


.library-heading h3 {

    color: var(--text);

    font-size: 1.85rem;

}


.library-heading > p {

    color: var(--muted);

}


.library-grid {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    border-top:
        1px solid
        var(--border);

}


.library-grid a {

    min-width: 0;

    padding:
        19px 8px;

    display: grid;

    grid-template-columns:
        34px minmax(0, 1fr) 20px;

    gap: 6px;

    align-items: center;

    border-bottom:
        1px solid
        var(--border);

    color: var(--text);

}


.library-grid span {

    color: var(--cyan);

    font-size: 0.63rem;

    font-weight: 800;

}


.library-grid i {

    color: var(--violet);

    font-style: normal;

}



/* =========================================================
   DOCTOR
========================================================= */

.doctor {

    background:
        linear-gradient(
            180deg,
            #ffffff,
            #f8f9ff
        );

}


.doctor-main-grid {

    display: grid;

    grid-template-columns:
        0.9fr 1.1fr;

    gap: 90px;

    align-items: center;

}


.doctor-visual {

    position: relative;

    min-width: 0;

}


.doctor-photo-gallery {

    min-height: 610px;
    padding: 14px;

    display: grid;
    grid-template-columns:
        minmax(0, 1.42fr)
        minmax(150px, 0.58fr);
    gap: 14px;

    overflow: hidden;

    border-radius: 35px;

    background:
        linear-gradient(
            145deg,
            rgba(32, 153, 204, 0.10),
            rgba(49, 84, 185, 0.10) 55%,
            rgba(57, 37, 168, 0.12)
        );

    border:
        1px solid
        var(--border);

    box-shadow:
        var(--shadow);

}


.doctor-photo {

    position: relative;
    min-width: 0;
    margin: 0;

    overflow: hidden;
    border-radius: 24px;
    background: #eef3ff;

}


.doctor-photo-main {

    min-height: 580px;

}


.doctor-photo-secondary {

    min-width: 0;
    display: grid;
    grid-template-rows:
        repeat(2, minmax(0, 1fr));
    gap: 14px;

}


.doctor-photo img {

    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;

    transition:
        transform 0.6s
        cubic-bezier(0.2, 0.7, 0.2, 1);

}


.doctor-photo-main img {

    object-position: center 18%;

}


.doctor-photo:hover img {

    transform: scale(1.035);

}


.doctor-location-card {

    position: absolute;

    right: -20px;
    bottom: 32px;

    min-width: 185px;

    padding: 19px;

    border-radius: 18px;

    background:
        rgba(255, 255, 255, 0.93);

    box-shadow:
        var(--shadow);

}


.doctor-location-card span {

    display: block;

    color: var(--blue);

    font-size: 0.61rem;

    font-weight: 800;

    letter-spacing: 0.12em;

}


.doctor-location-card strong {

    color: var(--indigo);

}


.doctor-copy {

    max-width: 610px;

}


.doctor-copy h2 {

    background:
        var(--gradient);

    -webkit-background-clip:
        text;

    background-clip:
        text;

    color:
        transparent;

    font-size:
        clamp(
            3rem,
            4.5vw,
            4.7rem
        );

    line-height: 1.05;

    letter-spacing: -0.05em;

}


.doctor-lead {

    margin:
        27px 0
        17px;

    color:
        var(--indigo);

    font-size: 1.16rem;

}


.doctor-copy
> p:not(.eyebrow, .doctor-lead) {

    color:
        var(--muted);

}


.doctor-signature-line {

    margin:
        28px 0;

    display: flex;

    align-items: center;

    gap: 13px;

}


.doctor-signature-line > span {

    width: 42px;
    height: 2px;

    flex-shrink: 0;

    border-radius: 999px;

    background:
        var(--gradient);

}


.doctor-signature-line p {

    color:
        var(--muted);

    font-size: 0.73rem;

}



/* =========================================================
   CREDENCIALES / MEMBRESÍAS
========================================================= */

.doctor-credentials {

    margin-top: 110px;

}


.credentials-heading {

    display: grid;

    grid-template-columns:
        1fr 0.55fr;

    gap: 60px;

    align-items: end;

    margin-bottom: 38px;

}


.credentials-eyebrow {

    margin-bottom: 10px;

    color:
        var(--cyan);

    font-size: 0.63rem;

    font-weight: 800;

    letter-spacing: 0.16em;

}


.credentials-heading h3 {

    color:
        var(--text);

    font-size:
        clamp(
            2.2rem,
            4vw,
            3.6rem
        );

    line-height: 1.06;

    letter-spacing:
        -0.045em;

}


.credentials-heading h3 span {

    display: block;

    background:
        var(--gradient);

    -webkit-background-clip:
        text;

    background-clip:
        text;

    color:
        transparent;

}


.credentials-heading > p {

    color:
        var(--muted);

    font-size:
        0.92rem;

}


.credentials-showcase {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 16px;

}


.credential-card {

    position: relative;

    min-width: 0;

    min-height: 420px;

    padding: 25px;

    display: flex;

    flex-direction: column;

    overflow: hidden;

    border-radius: 28px;

    background:

        linear-gradient(
            155deg,
            rgba(255, 255, 255, 0.99),
            rgba(246, 248, 255, 0.98)
        );

    border:
        1px solid
        var(--border);

    box-shadow:
        0 14px 40px
        rgba(49, 84, 185, 0.07);

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

}


.credential-card:hover {

    transform:
        translateY(-9px);

    box-shadow:
        0 26px 58px
        rgba(49, 84, 185, 0.15);

}


.credential-international {

    color: white;

    background:

        radial-gradient(
            circle at 85% 12%,
            rgba(32, 153, 204, 0.21),
            transparent 35%
        ),

        linear-gradient(
            145deg,
            #2c4caf,
            #3925a8 60%,
            #25217d
        );

    border-color:
        rgba(255, 255, 255, 0.13);

}


.credential-glow {

    position: absolute;

    width: 180px;
    height: 180px;

    top: -85px;
    right: -70px;

    border-radius: 50%;

    filter:
        blur(25px);

    pointer-events: none;

}


.glow-cyan {

    background:
        rgba(32, 153, 204, 0.14);

}


.glow-blue {

    background:
        rgba(49, 84, 185, 0.14);

}


.glow-violet {

    background:
        rgba(131, 232, 245, 0.17);

}


.credential-top {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 10px;

}


.credential-index {

    color:
        var(--cyan);

    font-size:
        0.64rem;

    font-weight: 800;

}


.credential-international
.credential-index {

    color:
        #83e8f5;

}


.credential-country {

    padding:
        5px 9px;

    border-radius:
        999px;

    color:
        var(--indigo);

    background:
        rgba(49, 84, 185, 0.07);

    font-size:
        0.52rem;

    font-weight:
        800;

    letter-spacing:
        0.10em;

}


.international-badge {

    color:
        white;

    background:
        rgba(255, 255, 255, 0.12);

    border:
        1px solid
        rgba(255, 255, 255, 0.13);

}


.credential-logo-wrap {

    position:
        relative;

    z-index:
        2;

    height:
        125px;

    margin:
        30px 0
        26px;

    padding:
        18px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        20px;

    background:
        rgba(255, 255, 255, 0.95);

    border:
        1px solid
        rgba(49, 84, 185, 0.08);

    box-shadow:
        inset 0 0 30px
        rgba(49, 84, 185, 0.03);

}


.credential-logo-wrap img {

    width:
        100%;

    height:
        100%;

    object-fit:
        contain;

}


.credential-placeholder {

    background:
        var(--gradient);

    -webkit-background-clip:
        text;

    background-clip:
        text;

    color:
        transparent;

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        1.85rem;

    font-weight:
        800;

    letter-spacing:
        -0.04em;

}


.credential-info {

    position:
        relative;

    z-index:
        2;

    margin-top:
        auto;

}


.credential-role {

    display:
        block;

    margin-bottom:
        8px;

    color:
        var(--cyan);

    font-size:
        0.53rem;

    font-weight:
        800;

    letter-spacing:
        0.13em;

}


.credential-international
.credential-role {

    color:
        #83e8f5;

}


.credential-info h4 {

    color:
        var(--text);

    font-size:
        1.08rem;

    line-height:
        1.25;

}


.credential-international
.credential-info h4 {

    color:
        white;

}


.credential-info p {

    margin-top:
        11px;

    color:
        var(--muted);

    font-size:
        0.78rem;

    line-height:
        1.55;

}


.credential-international
.credential-info p {

    color:
        rgba(255, 255, 255, 0.70);

}


.credentials-footer {

    margin-top:
        28px;

    display:
        grid;

    grid-template-columns:
        1fr auto 1fr;

    gap:
        15px;

    align-items:
        center;

}


.credentials-footer > div {

    height:
        1px;

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(49, 84, 185, 0.20)
        );

}


.credentials-footer > div:last-child {

    background:

        linear-gradient(
            90deg,
            rgba(49, 84, 185, 0.20),
            transparent
        );

}


.credentials-footer p {

    color:
        var(--muted);

    font-size:
        0.63rem;

    font-weight:
        700;

    letter-spacing:
        0.08em;

}



/* =========================================================
   FRASE DE MARCA
========================================================= */

.brand-statement {

    padding:
        115px 0;

    background:

        linear-gradient(
            135deg,
            #eaf9fd,
            #f1f4ff 55%,
            #f3efff
        );

}


.brand-statement
.container {

    max-width:
        1050px;

}


.quote {

    display:
        block;

    height:
        62px;

    color:
        var(--cyan);

    font-family:
        Georgia,
        serif;

    font-size:
        7rem;

    line-height:
        1;

}


.brand-statement h2 {

    color:
        var(--text);

    font-size:
        clamp(
            2.8rem,
            5vw,
            4.8rem
        );

    line-height:
        1.07;

    letter-spacing:
        -0.05em;

}


.brand-statement h2 span {

    display:
        block;

    background:
        var(--gradient);

    -webkit-background-clip:
        text;

    background-clip:
        text;

    color:
        transparent;

}



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

.contact {

    background:

        radial-gradient(
            circle at 5% 15%,
            rgba(32, 153, 204, 0.10),
            transparent 30%
        ),

        linear-gradient(
            135deg,
            #f5faff,
            #f6f3ff
        );

}


.contact-grid {

    display:
        grid;

    grid-template-columns:
        1fr 0.8fr;

    gap:
        85px;

    align-items:
        center;

}


.contact-copy h2 {

    color:
        var(--text);

    font-size:
        clamp(
            3rem,
            4.8vw,
            4.9rem
        );

    line-height:
        1.04;

    letter-spacing:
        -0.05em;

}


.contact-copy h2 span {

    display:
        block;

    background:
        var(--gradient);

    -webkit-background-clip:
        text;

    background-clip:
        text;

    color:
        transparent;

}


.contact-copy
> p:not(.eyebrow) {

    margin-top:
        23px;

    color:
        var(--muted);

}


.contact-actions {

    margin-top:
        28px;

    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        11px;

}


.contact-card {

    padding:
        38px;

    color:
        white;

    border-radius:
        28px;

    background:
        var(--gradient-dark);

    box-shadow:
        var(--shadow);

}


.contact-card > div {

    padding:
        21px 0;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.15);

}


.contact-card
> div:first-child {

    padding-top:
        0;

}


.contact-card
> div:last-child {

    padding-bottom:
        0;

    border-bottom:
        0;

}


.contact-card span {

    display:
        block;

    margin-bottom:
        7px;

    color:
        #83e8f5;

    font-size:
        0.62rem;

    font-weight:
        800;

    letter-spacing:
        0.13em;

}


.contact-card strong,
.contact-card a {

    color:
        white;

    font-weight:
        700;

    overflow-wrap:
        anywhere;

}


.contact-card p {

    margin-top:
        7px;

    color:
        rgba(255, 255, 255, 0.68);

}



/* =========================================================
   FOOTER
========================================================= */

.footer {

    padding:
        60px 0
        27px;

    background:

        linear-gradient(
            180deg,
            #f7f8ff,
            #eef2ff
        );

}


.footer-main {

    padding-bottom:
        42px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        40px;

}


.footer-logo img {

    width:
        230px;

}


.footer-links {

    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        23px;

    color:
        var(--muted);

    font-size:
        0.8rem;

}


.footer-links a:hover {

    color:
        var(--violet);

}


.footer-bottom {

    padding-top:
        24px;

    display:
        flex;

    justify-content:
        space-between;

    gap:
        20px;

    color:
        var(--muted);

    font-size:
        0.71rem;

    border-top:
        1px solid
        var(--border);

}



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

.whatsapp-float {

    position:
        fixed;

    right:
        25px;

    bottom:
        25px;

    z-index:
        900;

    min-height:
        60px;

    padding:
        8px 18px
        8px 8px;

    display:
        flex;

    align-items:
        center;

    gap:
        10px;

    border-radius:
        999px;

    color:
        white;

    background:
        var(--gradient);

    box-shadow:
        0 18px 45px
        rgba(49, 84, 185, 0.30);

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

}


.whatsapp-float:hover {

    transform:
        translateY(-4px);

    box-shadow:
        0 22px 52px
        rgba(57, 37, 168, 0.35);

}


.whatsapp-icon {

    width:
        43px;

    height:
        43px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 auto;

    border-radius:
        50%;

    background:
        rgba(255, 255, 255, 0.16);

}


.whatsapp-icon svg {

    width:
        24px;

    height:
        24px;

    fill:
        none;

    stroke:
        white;

    stroke-width:
        1.8;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;

}


.whatsapp-copy {

    display:
        flex;

    flex-direction:
        column;

    line-height:
        1.08;

}


.whatsapp-copy small {

    margin-bottom:
        3px;

    color:
        rgba(255, 255, 255, 0.73);

    font-size:
        0.63rem;

}


.whatsapp-copy strong {

    color:
        white;

    font-size:
        0.82rem;

}



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

.reveal {

    opacity:
        0;

    transform:
        translateY(32px);

    transition:

        opacity
        0.8s
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        ),

        transform
        0.8s
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );

}


.reveal-left {

    transform:
        translateX(-35px);

}


.reveal-right {

    transform:
        translateX(35px);

}


.reveal-scale {

    transform:
        translateY(25px)
        scale(0.97);

}


.reveal.visible {

    opacity:
        1;

    transform:
        translate(0, 0)
        scale(1);

}



/* =========================================================
   KEYFRAMES
========================================================= */

@keyframes symbolFloat {

    0%,
    100% {

        transform:
            translateY(0);

    }

    50% {

        transform:
            translateY(-13px);

    }

}


@keyframes spin {

    from {

        transform:
            rotate(0deg);

    }

    to {

        transform:
            rotate(360deg);

    }

}


@keyframes reverseSpin {

    from {

        transform:
            rotate(360deg);

    }

    to {

        transform:
            rotate(0deg);

    }

}



/* =========================================================
   TABLET
========================================================= */

@media
(max-width: 1180px) {

    .desktop-nav {

        display:
            none;

    }


    .header-cta {

        margin-left:
            auto;

    }


    .menu-toggle {

        display:
            flex;

    }


    .procedure-grid {

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

    }


    .procedure-grid-three {

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

    }

}



/* =========================================================
   TABLET PEQUEÑA
========================================================= */

@media
(max-width: 900px) {

    .section {

        padding:
            95px 0;

    }


    .hero {

        min-height:
            auto;

        padding:
            145px 0
            85px;

    }


    .hero-grid,
    .philosophy-grid,
    .section-heading,
    .age-heading,
    .education-heading,
    .doctor-main-grid,
    .contact-grid,
    .credentials-heading {

        grid-template-columns:
            1fr;

    }


    .hero-grid {

        gap:
            20px;

    }


    .hero-visual {

        height:
            480px;

    }


    .philosophy-grid {

        gap:
            60px;

    }


    .procedure-grid-three {

        grid-template-columns:
            1fr;

    }


    .crosslinking-card {

        grid-template-columns:
            1fr;

    }


    .age-cards {

        grid-template-columns:
            1fr;

    }


    .process-item {

        grid-template-columns:
            55px 1fr;

        gap:
            15px 20px;

    }


    .process-item p {

        grid-column:
            2;

    }


    .education-layout {

        grid-template-columns:
            1fr;

    }


    .video-card {

        grid-template-columns:
            1fr;

    }


    .video-preview {

        min-height:
            340px;

    }


    .library-grid {

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

    }


    .doctor-main-grid {

        gap:
            55px;

    }


    .doctor-placeholder {

        min-height:
            530px;

    }


    .doctor-location-card {

        right:
            18px;

    }


    .credentials-heading {

        gap:
            18px;

    }


    .credentials-showcase {

        grid-template-columns:
            1fr;

    }


    .credential-card {

        min-height:
            300px;

        display:
            grid;

        grid-template-columns:
            130px 1fr;

        grid-template-rows:
            auto 1fr;

        gap:
            0 22px;

    }


    .credential-top {

        grid-column:
            1 / -1;

    }


    .credential-logo-wrap {

        width:
            130px;

        height:
            105px;

        margin:
            27px 0 0;

    }


    .credential-info {

        align-self:
            center;

        margin-top:
            27px;

    }


    .contact-grid {

        gap:
            50px;

    }

}



/* =========================================================
   MÓVIL
========================================================= */

@media
(max-width: 620px) {

    .container {

        width:
            min(
                calc(100% - 28px),
                var(--container)
            );

    }


    .section {

        padding:
            80px 0;

    }


    .header-inner {

        min-height:
            74px;

        gap:
            12px;

    }


    .brand-logo img {

        width:
            148px;

    }


    .header-cta {

        display:
            none;

    }


    .menu-toggle {

        width:
            43px;

        height:
            43px;

        margin-left:
            auto;

    }


    .mobile-menu {

        width:
            100%;

    }


    .hero {

        padding:
            120px 0
            70px;

    }


    .hero h1 {

        font-size:
            clamp(
                2.75rem,
                13vw,
                3.6rem
            );

    }


    .hero-actions {

        flex-direction:
            column;

    }


    .hero-actions .btn {

        width:
            100%;

    }


    .hero-distances {

        margin-top:
            40px;

        grid-template-columns:
            1fr;

        gap:
            13px;

    }


    .hero-visual {

        height:
            365px;

    }


    .hero-logo-orbit {

        width:
            285px;

    }


    .hero-symbol {

        width:
            210px;

    }


    .hero-card-one,
    .hero-card-two {

        padding:
            15px;

        transform:
            scale(0.88);

    }


    .hero-card-one {

        top:
            20px;

        right:
            -15px;

    }


    .hero-card-two {

        bottom:
            20px;

        left:
            -15px;

    }


    .philosophy {

        padding:
            80px 0;

    }


    .philosophy-copy h2,
    .visual-design-heading h2,
    .section-heading h2,
    .age-heading h2,
    .education-heading h2,
    .doctor-copy h2,
    .contact-copy h2,
    .brand-statement h2 {

        font-size:
            clamp(
                2.4rem,
                11vw,
                3.4rem
            );

    }


    .vision-distance-cards {

        grid-template-columns:
            1fr;

    }


    .vision-card:first-child {

        grid-column:
            auto;

    }


    .procedure-category {

        margin-top:
            65px;

    }


    .procedure-category-heading {

        grid-template-columns:
            40px 1fr;

    }


    .procedure-grid,
    .procedure-grid-three {

        grid-template-columns:
            1fr;

    }


    .procedure-card {

        min-height:
            310px;

    }


    .crosslinking-card {

        padding:
            27px;

    }


    .video-preview {

        min-height:
            280px;

    }


    .video-content {

        padding:
            28px;

    }


    .education-library {

        padding:
            25px;

    }


    .library-heading {

        flex-direction:
            column;

        align-items:
            flex-start;

        gap:
            10px;

    }


    .library-grid {

        grid-template-columns:
            1fr;

    }


    .doctor-placeholder {

        min-height:
            410px;

    }


    .doctor-location-card {

        right:
            12px;

        bottom:
            20px;

    }


    .doctor-credentials {

        margin-top:
            75px;

    }


    .credentials-heading h3 {

        font-size:
            2.25rem;

    }


    .credential-card {

        min-height:
            370px;

        display:
            flex;

    }


    .credential-logo-wrap {

        width:
            100%;

        height:
            105px;

        margin:
            26px 0
            22px;

    }


    .credential-info {

        margin-top:
            auto;

    }


    .credentials-footer {

        grid-template-columns:
            1fr;

    }


    .credentials-footer > div {

        display:
            none;

    }


    .contact-actions {

        flex-direction:
            column;

    }


    .contact-actions .btn {

        width:
            100%;

    }


    .contact-card {

        padding:
            27px;

    }


    .footer-main {

        flex-direction:
            column;

        align-items:
            flex-start;

    }


    .footer-logo img {

        width:
            200px;

    }


    .footer-links {

        flex-direction:
            column;

        gap:
            11px;

    }


    .footer-bottom {

        flex-direction:
            column;

        align-items:
            flex-start;

    }


    .whatsapp-float {

        right:
            16px;

        bottom:
            16px;

        width:
            56px;

        height:
            56px;

        min-height:
            56px;

        padding:
            6px;

        justify-content:
            center;

    }


    .whatsapp-copy {

        display:
            none;

    }

}



/* =========================================================
   MENOS MOVIMIENTO
========================================================= */

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

    html {

        scroll-behavior:
            auto;

    }


    .reveal,
    .reveal-left,
    .reveal-right,
    .reveal-scale {

        opacity:
            1;

        transform:
            none;

        transition:
            none;

    }


    .hero-symbol,
    .orbit {

        animation:
            none;

    }

}

/* =========================================================
   GALERÍA DE FOTOS · DR. ROBERTO
   Ajustes responsivos
========================================================= */

@media (max-width: 980px) {

    .doctor-photo-gallery { min-height: 530px; }
    .doctor-photo-main { min-height: 500px; }

}

@media (max-width: 720px) {

    .doctor-photo-gallery {
        min-height: 0;
        padding: 10px;
        grid-template-columns: 1fr;
        gap: 10px;
        border-radius: 28px;
    }

    .doctor-photo-main { min-height: 470px; }

    .doctor-photo-secondary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
        gap: 10px;
    }

    .doctor-photo-secondary .doctor-photo { min-height: 210px; }
    .doctor-photo { border-radius: 20px; }

}

@media (max-width: 480px) {

    .doctor-photo-main { min-height: 420px; }
    .doctor-photo-secondary .doctor-photo { min-height: 175px; }

}


/* =========================================================
   OPEN VISION EN PRÁCTICA
========================================================= */

.ov-practice {

    position: relative;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 14% 24%,
            rgba(32, 153, 204, 0.10),
            transparent 30%
        ),
        radial-gradient(
            circle at 86% 70%,
            rgba(57, 37, 168, 0.10),
            transparent 34%
        ),
        linear-gradient(
            180deg,
            #f9fbff 0%,
            #ffffff 100%
        );

}


.ov-practice-grid {

    display: grid;

    grid-template-columns:
        minmax(0, 0.92fr)
        minmax(0, 1.08fr);

    gap: 76px;

    align-items: center;

}


.ov-practice-copy {

    min-width: 0;

}


.ov-practice-copy h2 {

    max-width: 660px;

    margin:
        0
        0
        26px;

    font-size:
        clamp(
            2.6rem,
            5vw,
            5rem
        );

    line-height: 0.98;

    letter-spacing: -0.045em;

    color: var(--deep);

}


.ov-practice-copy h2 span {

    display: block;

    background:
        var(--gradient);

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;

}


.ov-practice-lead {

    max-width: 650px;

    margin-bottom: 28px;

    color: var(--muted);

    font-size: 1.05rem;

    line-height: 1.8;

}


.ov-practice-pill-row {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

    margin-bottom: 34px;

}


.ov-practice-pill-row span {

    padding:
        10px
        14px;

    border:
        1px solid
        rgba(49, 84, 185, 0.14);

    border-radius: 999px;

    background:
        rgba(255, 255, 255, 0.82);

    box-shadow:
        0 10px 30px
        rgba(37, 44, 84, 0.05);

    color: var(--indigo);

    font-size: 0.78rem;

    font-weight: 800;

    letter-spacing: 0.035em;

}


.ov-practice-small-photo {

    position: relative;

    width: min(100%, 420px);

    aspect-ratio: 16 / 11;

    overflow: hidden;

    border-radius: 28px;

    box-shadow:
        0 28px 70px
        rgba(24, 22, 92, 0.16);

}


.ov-practice-small-photo img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    object-position: center 38%;

    display: block;

}


.ov-practice-photo-label {

    position: absolute;

    left: 16px;
    right: 16px;
    bottom: 16px;

    padding:
        13px
        15px;

    border:
        1px solid
        rgba(255, 255, 255, 0.34);

    border-radius: 18px;

    background:
        rgba(19, 26, 78, 0.70);

    backdrop-filter:
        blur(12px);

    -webkit-backdrop-filter:
        blur(12px);

}


.ov-practice-photo-label span {

    display: block;

    margin-bottom: 3px;

    color:
        rgba(255, 255, 255, 0.72);

    font-size: 0.62rem;

    font-weight: 800;

    letter-spacing: 0.14em;

}


.ov-practice-photo-label strong {

    color: #ffffff;

    font-size: 0.92rem;

}


.ov-practice-visual {

    position: relative;

    min-width: 0;

}


.ov-practice-main-photo {

    position: relative;

    min-height: 720px;

    margin: 0;

    overflow: hidden;

    border-radius: 38px;

    background:
        #edf2ff;

    box-shadow:
        0 34px 90px
        rgba(24, 22, 92, 0.18);

}


.ov-practice-main-photo::after {

    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            180deg,
            transparent 56%,
            rgba(13, 22, 67, 0.18)
        );

}


.ov-practice-main-photo img {

    width: 100%;
    height: 100%;

    min-height: 720px;

    display: block;

    object-fit: cover;

    object-position: center 46%;

}


.ov-practice-brand-card {

    position: absolute;

    left: -38px;
    bottom: 40px;

    min-width: 210px;

    padding:
        20px
        22px;

    border:
        1px solid
        rgba(255, 255, 255, 0.36);

    border-radius: 22px;

    background:
        linear-gradient(
            135deg,
            rgba(40, 121, 198, 0.94),
            rgba(57, 37, 168, 0.94)
        );

    box-shadow:
        0 20px 55px
        rgba(24, 22, 92, 0.24);

    backdrop-filter:
        blur(14px);

    -webkit-backdrop-filter:
        blur(14px);

}


.ov-practice-brand-card span {

    display: block;

    margin-bottom: 8px;

    color:
        rgba(255, 255, 255, 0.72);

    font-size: 0.66rem;

    font-weight: 800;

    letter-spacing: 0.16em;

}


.ov-practice-brand-card strong {

    color: #ffffff;

    font-size: 1.22rem;

    line-height: 1.25;

}


@media (max-width: 980px) {

    .ov-practice-grid {

        grid-template-columns: 1fr;

        gap: 48px;

    }


    .ov-practice-copy {

        max-width: 760px;

    }


    .ov-practice-small-photo {

        width:
            min(
                100%,
                520px
            );

    }


    .ov-practice-main-photo,
    .ov-practice-main-photo img {

        min-height: 620px;

    }


    .ov-practice-brand-card {

        left: 24px;

    }

}


@media (max-width: 720px) {

    .ov-practice-grid {

        gap: 36px;

    }


    .ov-practice-copy h2 {

        margin-bottom: 20px;

    }


    .ov-practice-lead {

        font-size: 1rem;

        line-height: 1.7;

    }


    .ov-practice-pill-row {

        margin-bottom: 26px;

    }


    .ov-practice-small-photo {

        width: 100%;

        border-radius: 24px;

    }


    .ov-practice-main-photo {

        min-height: 520px;

        border-radius: 28px;

    }


    .ov-practice-main-photo img {

        min-height: 520px;

        object-position: center 48%;

    }


    .ov-practice-brand-card {

        left: 16px;
        right: 16px;
        bottom: 16px;

        min-width: 0;

    }

}


@media (max-width: 480px) {

    .ov-practice-main-photo,
    .ov-practice-main-photo img {

        min-height: 460px;

    }


    .ov-practice-small-photo {

        aspect-ratio: 4 / 3;

    }

}


/* =========================================================
   CONTACTO · REDES + GOOGLE MAPS
========================================================= */

.contact-socials {

    margin-top: 34px;

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;

}


.contact-social-link {

    position: relative;

    min-width: 0;

    padding:
        18px
        46px
        18px
        18px;

    display: block;

    border:
        1px solid
        rgba(49, 84, 185, 0.12);

    border-radius: 18px;

    background:
        rgba(255, 255, 255, 0.78);

    box-shadow:
        0 12px 34px
        rgba(37, 44, 84, 0.06);

    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;

}


.contact-social-link:hover {

    transform:
        translateY(-3px);

    border-color:
        rgba(49, 84, 185, 0.28);

    box-shadow:
        0 18px 44px
        rgba(37, 44, 84, 0.10);

}


.contact-social-link span {

    display: block;

    margin-bottom: 6px;

    color: var(--blue);

    font-size: 0.62rem;

    font-weight: 800;

    letter-spacing: 0.13em;

}


.contact-social-link strong {

    display: block;

    color: var(--text);

    font-size: 0.86rem;

    line-height: 1.35;

    overflow-wrap: anywhere;

}


.contact-social-link b {

    position: absolute;

    top: 18px;
    right: 18px;

    color: var(--violet);

    font-size: 1rem;

}


.contact-map-link {

    display: inline-block;

    margin-top: 10px;

    color: #83e8f5 !important;

    font-size: 0.82rem;

}


.contact-map-link:hover {

    color: #ffffff !important;

}


.contact-map {

    margin-top: 76px;

}


.contact-map-heading {

    margin-bottom: 24px;

    display: flex;

    align-items: end;

    justify-content: space-between;

    gap: 30px;

}


.contact-map-heading h3 {

    margin: 0;

    color: var(--text);

    font-size:
        clamp(
            2rem,
            4vw,
            3.5rem
        );

    line-height: 1.04;

    letter-spacing: -0.04em;

}


.contact-map-heading h3 span {

    background:
        var(--gradient);

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;

}


.contact-map-frame {

    position: relative;

    overflow: hidden;

    border-radius: 34px;

    border:
        1px solid
        rgba(49, 84, 185, 0.12);

    background: #ffffff;

    box-shadow:
        0 28px 80px
        rgba(24, 22, 92, 0.12);

}


.contact-map-frame iframe {

    width: 100%;

    min-height: 560px;

    display: block;

}


@media (max-width: 900px) {

    .contact-socials {

        grid-template-columns: 1fr;

    }


    .contact-map {

        margin-top: 56px;

    }

}


@media (max-width: 720px) {

    .contact-map-heading {

        align-items: flex-start;

        flex-direction: column;

    }


    .contact-map-frame {

        border-radius: 24px;

    }


    .contact-map-frame iframe {

        min-height: 450px;

        height: 450px;

    }

}


@media (max-width: 480px) {

    .contact-map-frame iframe {

        min-height: 390px;

        height: 390px;

    }

}


/* =========================================================
   TESTIMONIOS + RESEÑAS GOOGLE
========================================================= */

.testimonials {

    position: relative;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 85% 8%,
            rgba(32, 153, 204, 0.10),
            transparent 28%
        ),
        radial-gradient(
            circle at 10% 90%,
            rgba(57, 37, 168, 0.09),
            transparent 30%
        ),
        #ffffff;

}


.testimonials-heading {

    margin-bottom: 48px;

    display: grid;

    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(280px, 0.8fr);

    gap: 50px;

    align-items: end;

}


.testimonials-heading h2 {

    max-width: 760px;

    margin: 0;

    color: var(--text);

    font-size:
        clamp(
            2.7rem,
            5vw,
            5rem
        );

    line-height: 0.98;

    letter-spacing: -0.045em;

}


.testimonials-heading h2 span {

    display: block;

    background: var(--gradient);

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;

}


.testimonials-heading > p {

    margin: 0;

    color: var(--muted);

    font-size: 1rem;

    line-height: 1.75;

}


.testimonial-video-grid {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 20px;

}


.testimonial-video-card {

    min-width: 0;

    overflow: hidden;

    border:
        1px solid
        rgba(49, 84, 185, 0.11);

    border-radius: 28px;

    background: #ffffff;

    box-shadow:
        0 22px 65px
        rgba(24, 22, 92, 0.09);

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

}


.testimonial-video-card:hover {

    transform:
        translateY(-5px);

    box-shadow:
        0 30px 78px
        rgba(24, 22, 92, 0.14);

}


.testimonial-video-frame {

    position: relative;

    aspect-ratio: 9 / 16;

    max-height: 570px;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #17255f,
            #3925a8
        );

}


.testimonial-video-frame iframe {

    width: 100%;
    height: 100%;

    display: block;

    border: 0;

}


.testimonial-video-copy {

    padding:
        20px
        22px
        23px;

}


.testimonial-video-copy span {

    display: block;

    margin-bottom: 7px;

    color: var(--blue);

    font-size: 0.65rem;

    font-weight: 800;

    letter-spacing: 0.13em;

}


.testimonial-video-copy h3 {

    margin:
        0
        0
        14px;

    color: var(--text);

    font-size: 1.12rem;

}


.testimonial-video-copy a {

    color: var(--violet);

    font-size: 0.82rem;

    font-weight: 800;

}


.google-reviews {

    margin-top: 56px;

    padding: 32px;

    border:
        1px solid
        rgba(49, 84, 185, 0.11);

    border-radius: 30px;

    background:
        linear-gradient(
            135deg,
            rgba(247, 250, 255, 0.98),
            rgba(245, 243, 255, 0.98)
        );

    box-shadow:
        0 22px 70px
        rgba(24, 22, 92, 0.08);

}


.google-reviews-summary {

    display: grid;

    grid-template-columns:
        auto
        minmax(0, 1fr)
        auto;

    gap: 34px;

    align-items: center;

}


.google-reviews-score {

    min-width: 220px;

    display: flex;

    align-items: center;

    gap: 18px;

}


.google-reviews-score > strong {

    color: var(--deep);

    font-size: 4.2rem;

    line-height: 1;

    letter-spacing: -0.05em;

}


.google-stars {

    color: #f4b400;

    font-size: 1.05rem;

    letter-spacing: 0.08em;

}


.google-reviews-score span {

    display: block;

    margin-top: 5px;

    color: var(--muted);

    font-size: 0.78rem;

}


.google-reviews-copy h3 {

    margin:
        5px
        0
        8px;

    color: var(--text);

    font-size:
        clamp(
            1.45rem,
            2.3vw,
            2rem
        );

    line-height: 1.15;

}


.google-reviews-copy > p:last-child {

    margin: 0;

    color: var(--muted);

    line-height: 1.65;

}


.google-review-note {

    margin-top: 26px;

    padding-top: 22px;

    display: flex;

    gap: 18px;

    align-items: flex-start;

    border-top:
        1px solid
        rgba(49, 84, 185, 0.10);

}


.google-review-note span {

    flex: 0 0 auto;

    padding:
        7px
        10px;

    border-radius: 999px;

    color: var(--indigo);

    background:
        rgba(49, 84, 185, 0.08);

    font-size: 0.62rem;

    font-weight: 800;

    letter-spacing: 0.11em;

}


.google-review-note p {

    margin: 0;

    color: var(--muted);

    font-size: 0.85rem;

    line-height: 1.6;

}


@media (max-width: 1050px) {

    .testimonial-video-grid {

        grid-template-columns:
            repeat(3, minmax(0, 1fr));

    }


    .google-reviews-summary {

        grid-template-columns:
            1fr 1.4fr;

    }


    .google-reviews-summary .btn {

        grid-column:
            1 / -1;

        justify-self: start;

    }

}


@media (max-width: 820px) {

    .testimonials-heading {

        grid-template-columns: 1fr;

        gap: 22px;

    }


    .testimonial-video-grid {

        grid-template-columns: 1fr;

    }


    .testimonial-video-card {

        display: grid;

        grid-template-columns:
            minmax(180px, 0.72fr)
            minmax(0, 1fr);

    }


    .testimonial-video-frame {

        max-height: 430px;

    }


    .testimonial-video-copy {

        align-self: center;

        padding: 30px;

    }


    .google-reviews-summary {

        grid-template-columns: 1fr;

    }

}


@media (max-width: 560px) {

    .testimonial-video-card {

        display: block;

    }


    .testimonial-video-frame {

        max-height: none;

    }


    .google-reviews {

        padding: 24px;

        border-radius: 24px;

    }


    .google-reviews-score {

        min-width: 0;

    }


    .google-reviews-score > strong {

        font-size: 3.5rem;

    }


    .google-review-note {

        flex-direction: column;

    }

}


/* =========================================================
   TARJETAS DE RESEÑAS GOOGLE
========================================================= */
.google-review-grid {
    margin-top: 30px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.google-review-card {
    min-width: 0;
    padding: 24px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(49, 84, 185, 0.10);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 14px 38px rgba(24, 22, 92, 0.055);
}
.google-review-card-top {
    margin-bottom: 18px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.google-review-card-stars {
    margin-bottom: 7px;
    color: #f4b400;
    font-size: 0.92rem;
    letter-spacing: 0.06em;
}
.google-review-card-top strong {
    display: block;
    color: var(--text);
    font-size: 0.95rem;
    line-height: 1.3;
}
.google-review-badge {
    flex: 0 0 auto;
    padding: 6px 8px;
    border-radius: 999px;
    color: var(--indigo);
    background: rgba(49, 84, 185, 0.07);
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.10em;
}
.google-review-card > p {
    margin: 0 0 22px;
    flex: 1;
    color: var(--text);
    font-size: 0.88rem;
    line-height: 1.7;
}
.google-review-card > a {
    align-self: flex-start;
    color: var(--violet);
    font-size: 0.76rem;
    font-weight: 800;
}
.google-review-card > a:hover {
    text-decoration: underline;
}
@media (max-width: 980px) {
    .google-review-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 620px) {
    .google-review-grid {
        grid-template-columns: 1fr;
    }
    .google-review-card {
        padding: 21px;
    }
}


/* =========================================================
   TESTIMONIOS · PREVIEW DE YOUTUBE
========================================================= */

.testimonial-video-preview {

    position: relative;

    display: block;

    cursor: pointer;

}


.testimonial-video-preview img {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    object-position: center;

    transition:
        transform 0.35s ease,
        filter 0.35s ease;

}


.testimonial-video-preview::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(15, 20, 55, 0.03) 30%,
            rgba(15, 20, 55, 0.72) 100%
        );

    pointer-events: none;

}


.testimonial-video-preview:hover img {

    transform: scale(1.035);

    filter: brightness(0.92);

}


.testimonial-video-play {

    position: absolute;

    top: 50%;
    left: 50%;

    z-index: 2;

    width: 72px;
    height: 72px;

    display: flex;

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

    padding-left: 5px;

    border:
        1px solid
        rgba(255, 255, 255, 0.38);

    border-radius: 50%;

    color: #ffffff;

    background:
        rgba(24, 22, 92, 0.78);

    box-shadow:
        0 18px 42px
        rgba(0, 0, 0, 0.20);

    backdrop-filter:
        blur(8px);

    transform:
        translate(-50%, -50%);

    font-size: 1.25rem;

    transition:
        transform 0.25s ease,
        background 0.25s ease;

}


.testimonial-video-preview:hover
.testimonial-video-play {

    transform:
        translate(-50%, -50%)
        scale(1.08);

    background:
        rgba(49, 84, 185, 0.92);

}


.testimonial-video-overlay {

    position: absolute;

    left: 18px;
    bottom: 18px;

    z-index: 2;

    padding:
        8px
        11px;

    border-radius: 999px;

    color: #ffffff;

    background:
        rgba(24, 22, 92, 0.72);

    backdrop-filter:
        blur(8px);

    font-size: 0.61rem;

    font-weight: 800;

    letter-spacing: 0.11em;

}


@media (max-width: 560px) {

    .testimonial-video-play {

        width: 64px;
        height: 64px;

    }

}


/* =========================================================
   IMÁGENES EN TARJETAS DE PROCEDIMIENTOS
========================================================= */

.procedure-card-image {
    width: 100%;
    height: 190px;
    margin: 8px 0 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 18px;
    background:
        radial-gradient(circle at 50% 48%, rgba(32, 153, 204, 0.10), transparent 45%),
        linear-gradient(145deg, rgba(247, 249, 255, 0.95), rgba(241, 247, 253, 0.72));
}

.procedure-card-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    object-position: center;
    padding: 8px;
    transition: transform 0.35s ease;
}

a:hover > .procedure-card-image img {
    transform: scale(1.035);
}

/* La tarjeta destacada de SMILE conserva su fondo oscuro,
   pero la imagen se integra con una base translúcida. */
.procedure-card-featured .procedure-card-image,
.procedure-card.is-featured .procedure-card-image {
    background:
        radial-gradient(circle at 50% 48%, rgba(85, 230, 255, 0.16), transparent 48%),
        rgba(255, 255, 255, 0.06);
}

@media (max-width: 900px) {
    .procedure-card-image {
        height: 175px;
    }
}

@media (max-width: 560px) {
    .procedure-card-image {
        height: 160px;
        margin-bottom: 15px;
    }

    .procedure-card-image img {
        padding: 6px;
    }
}



/* =========================================================
   REFINAMIENTO VISUAL · TARJETAS DE PROCEDIMIENTOS
========================================================= */

/* Integra la imagen con la tarjeta y evita que parezca "pegada". */
.procedure-card-image {
    position: relative;
    width: calc(100% + 2px);
    height: 210px;
    margin: 18px -1px 18px;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(49, 84, 185, 0.08);
    border-radius: 20px;
    background:
        radial-gradient(circle at 50% 45%, rgba(32, 153, 204, 0.12), transparent 46%),
        linear-gradient(145deg, #fbfdff 0%, #f3f8ff 58%, #f7f4ff 100%);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.85),
        0 10px 24px rgba(24, 22, 92, 0.045);
}

.procedure-card-image::after {
    content: "";
    position: absolute;
    inset: auto 9% 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(49,84,185,.13), transparent);
}

.procedure-card-image img {
    width: 100%;
    height: 100%;
    padding: 12px;
    object-fit: contain;
    object-position: center;
    filter: drop-shadow(0 10px 18px rgba(38, 69, 150, 0.08));
    transition:
        transform .35s ease,
        filter .35s ease;
}

a:hover > .procedure-card-image img {
    transform: scale(1.025);
    filter: drop-shadow(0 14px 24px rgba(38, 69, 150, 0.12));
}

/* Tipos de visual para aprovechar mejor el encuadre. */
.procedure-card-image--laser img,
.procedure-card-image--eye img {
    padding: 8px;
}

.procedure-card-image--lens img {
    padding: 18px 20px;
}

.procedure-card-image--wide img {
    padding: 14px 10px;
}

/* Elimina huecos verticales exagerados dentro de las tarjetas. */
.procedure-card,
.procedure-card-featured,
.procedure-card.is-featured {
    display: flex;
    flex-direction: column;
}

.procedure-card .procedure-card-image,
.procedure-card-featured .procedure-card-image,
.procedure-card.is-featured .procedure-card-image {
    flex: 0 0 auto;
}

/* En la tarjeta oscura, integra la imagen con el degradado del fondo. */
.procedure-card-featured .procedure-card-image,
.procedure-card.is-featured .procedure-card-image {
    border-color: rgba(255,255,255,.10);
    background:
        radial-gradient(circle at 50% 45%, rgba(101, 231, 255, .13), transparent 50%),
        linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.08),
        0 12px 28px rgba(11, 15, 76, .16);
}

.procedure-card-featured .procedure-card-image img,
.procedure-card.is-featured .procedure-card-image img {
    filter: drop-shadow(0 12px 20px rgba(0,0,0,.12));
}

/* Tarjetas de presbicia y catarata: el visual ocupa mejor el ancho disponible. */
.procedure-card-image--eye {
    height: 220px;
}

/* Tarjetas de lentes: más aire lateral y menos espacio vertical desperdiciado. */
.procedure-card-image--lens {
    height: 200px;
}

/* Minimonovisión es horizontal. */
.procedure-card-image--wide {
    height: 180px;
}

/* Evita un gran bloque vacío en la sección "Diferentes estrategias..." cuando no hay imagen. */
#lentes-alta-tecnologia img[alt="Lente intraocular de alta tecnología"],
.lenses-high-tech-hero img[alt="Lente intraocular de alta tecnología"],
.high-tech-lenses img[alt="Lente intraocular de alta tecnología"] {
    display: none !important;
}

@media (max-width: 980px) {
    .procedure-card-image,
    .procedure-card-image--eye,
    .procedure-card-image--lens {
        height: 190px;
    }

    .procedure-card-image--wide {
        height: 170px;
    }
}

@media (max-width: 620px) {
    .procedure-card-image,
    .procedure-card-image--eye,
    .procedure-card-image--lens,
    .procedure-card-image--wide {
        height: 170px;
        margin-top: 14px;
        margin-bottom: 16px;
    }

    .procedure-card-image img {
        padding: 8px;
    }

    .procedure-card-image--lens img {
        padding: 12px 14px;
    }
}



/* =========================================================
   AJUSTE WEB · IMÁGENES MÁS HORIZONTALES EN PROCEDIMIENTOS
========================================================= */

.procedure-card-image,
.procedure-card-image--eye,
.procedure-card-image--lens,
.procedure-card-image--wide {
    width: 100%;
    height: 185px;
    margin: 18px 0 18px;
    border-radius: 18px;
}

.procedure-card-image img,
.procedure-card-image--eye img,
.procedure-card-image--lens img,
.procedure-card-image--wide img {
    width: 100%;
    height: 100%;
    padding: 0;
    object-fit: cover;
    object-position: center;
    transform: none;
}

.procedure-card-image--laser img {
    object-position: center 48%;
}

.procedure-card-image--eye img,
.procedure-card-image--lens img,
.procedure-card-image--wide img {
    object-position: center center;
}

.procedure-card-image {
    border: 1px solid rgba(49, 84, 185, 0.07);
    background:
        linear-gradient(145deg, rgba(247,249,255,.98), rgba(241,247,253,.86));
    box-shadow:
        0 12px 28px rgba(24, 22, 92, .055);
}

.procedure-card-image img {
    transition: transform .35s ease, filter .35s ease;
}

a:hover > .procedure-card-image img {
    transform: scale(1.025);
}

.procedure-card-featured .procedure-card-image,
.procedure-card.is-featured .procedure-card-image {
    background:
        linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
    border-color: rgba(255,255,255,.10);
}

.procedure-card-image--eye,
.procedure-card-image--wide {
    height: 195px;
}

@media (max-width: 900px) {
    .procedure-card-image,
    .procedure-card-image--eye,
    .procedure-card-image--lens,
    .procedure-card-image--wide {
        height: 175px;
    }
}

@media (max-width: 560px) {
    .procedure-card-image,
    .procedure-card-image--eye,
    .procedure-card-image--lens,
    .procedure-card-image--wide {
        height: 160px;
        margin: 14px 0 16px;
    }
}


/* =========================================================
   LENTES DE ALTA TECNOLOGÍA · quitar SOLO rectángulo vacío
========================================================= */
#lentes-alta-tecnologia .lenses-showcase-image,
#lentes-alta-tecnologia .lenses-visual,
#lentes-alta-tecnologia .lenses-media {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}



/* =========================================================
   LENTES DE ALTA TECNOLOGÍA · BLOQUE OSCURO OPEN VISION
========================================================= */

#lentes-alta-tecnologia {
    position: relative;
}

#lentes-alta-tecnologia .section-heading,
#lentes-alta-tecnologia .procedure-section-heading,
#lentes-alta-tecnologia .lenses-heading {
    padding: 38px 42px;
    border-radius: 28px;
    background:
        radial-gradient(circle at 88% 18%, rgba(32,153,204,.20), transparent 28%),
        linear-gradient(120deg, #18165c 0%, #25217d 38%, #3154b9 72%, #3925a8 100%);
    box-shadow: 0 24px 60px rgba(24,22,92,.16);
}

#lentes-alta-tecnologia .section-heading h2,
#lentes-alta-tecnologia .procedure-section-heading h2,
#lentes-alta-tecnologia .lenses-heading h2 {
    color: #ffffff !important;
}

#lentes-alta-tecnologia .section-heading .eyebrow,
#lentes-alta-tecnologia .procedure-section-heading .eyebrow,
#lentes-alta-tecnologia .lenses-heading .eyebrow {
    color: #63ddff !important;
}

#lentes-alta-tecnologia .section-heading p,
#lentes-alta-tecnologia .procedure-section-heading p,
#lentes-alta-tecnologia .lenses-heading p {
    color: rgba(255,255,255,.78) !important;
}

@media (max-width: 700px) {
    #lentes-alta-tecnologia .section-heading,
    #lentes-alta-tecnologia .procedure-section-heading,
    #lentes-alta-tecnologia .lenses-heading {
        padding: 28px 24px;
        border-radius: 22px;
    }
}
