@font-face {
    font-family:"Bryant Pro";
    src:url("assets/fonts/BryantPro-Regular.otf") format("opentype");
    font-weight:400;
    font-style:normal;
    font-display:swap
}
@font-face {
    font-family:"Bryant Pro";
    src:url("assets/fonts/BryantPro-Medium.otf") format("opentype");
    font-weight:500;
    font-style:normal;
    font-display:swap
}
@font-face {
    font-family:"Bryant Pro";
    src:url("assets/fonts/BryantPro-Bold.otf") format("opentype");
    font-weight:600;
    font-style:normal;
    font-display:swap
}
@font-face {
    font-family:"Ainslie Cond";
    src:url("assets/fonts/AinslieSansCond-Light.otf") format("opentype");
    font-weight:300;
    font-style:normal;
    font-display:swap
}

@font-face {
    font-family:"Ainslie Cond";
    src:url("assets/fonts/AinslieSansCond-Regular.otf") format("opentype");
    font-weight:400;
    font-style:normal;
    font-display:swap
}

@font-face {
    font-family:"Ainslie Cond";
    src:url("assets/fonts/AinslieSansCond-Medium.otf") format("opentype");
    font-weight:500;
    font-style:normal;
    font-display:swap
}

@font-face {
    font-family:"Ainslie Cond";
    src:url("assets/fonts/AinslieSansCond-Bold.otf") format("opentype");
    font-weight:700;
    font-style:normal;
    font-display:swap
}

@font-face {
    font-family:Avenir;
    src:url("assets/fonts/Avenir-Light.ttf") format("truetype");
    font-weight:300;
    font-style:normal;
    font-display:swap
}

@font-face {
    font-family:Avenir;
    src:url("assets/fonts/Avenir-Roman.ttf") format("truetype");
    font-weight:400;
    font-style:normal;
    font-display:swap
}

@font-face {
    font-family:Avenir;
    src:url("assets/fonts/Avenir-Medium.ttf") format("truetype");
    font-weight:500;
    font-style:normal;
    font-display:swap
}

@font-face {
    font-family:Avenir;
    src:url("assets/fonts/Avenir-Black.ttf") format("truetype");
    font-weight:800;
    font-style:normal;
    font-display:swap
}

:root {
    --pink:#b72467;
    --pink-dark:#8d184d;
    --pink-soft:#f5e2ea;
    --rose:#c96b94;
    --ink:#58595b;
    --ink-dark:#292a2d;
    --muted:#76777a;
    --cream:#f8f3ef;
    --paper:#fffdfb;
    --line:rgba(88,89,91,.16);
    --shadow:0 30px 80px rgba(71,39,54,.12);
    --container:min(1180px,calc(100% - 48px));
    --heading:"Bryant Pro";
    --body:Avenir,"Avenir Next",Montserrat,Arial,sans-serif
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink-dark);
    font-family:var(--body);
    font-size:16px;
    line-height:1.72;
    -webkit-font-smoothing:antialiased
}

body.modal-open {
    overflow:hidden
}

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

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

button {
    font:inherit
}

.container {
    width:var(--container);
    margin-inline:auto
}

.skip-link {
    position:fixed;
    left:16px;
    top:-60px;
    z-index:999;
    background:#fff;
    padding:10px 14px;
    border-radius:8px;
    box-shadow:var(--shadow)
}

.skip-link:focus {
    top:16px
}

.announcement {
    background:var(--ink-dark);
    color:#fff;
    font-size:.72rem;
    letter-spacing:.04em
}

.announcement__inner {
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px
}

.announcement p {
    margin:0;
    color:rgba(255,255,255,.7)
}

.announcement div {
    display:flex;
    gap:12px
}

.announcement a {
    color:rgba(255,255,255,.84)
}

.header {
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(255,253,251,.9);
    border-bottom:1px solid transparent;
    backdrop-filter:blur(18px);
    transition:.3s
}

.header.scrolled {
    border-color:var(--line);
    box-shadow:0 8px 30px rgba(56,37,44,.06)
}

.header__inner {
    height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px
}

.brand {
    display:block;
    width:min(410px,42vw)
}

.brand img {
    width:100%;
    height:auto
}

.menu {
    display:flex;
    align-items:center;
    gap:27px;
    font-size:.85rem;
    font-weight:500
}

.menu>a:not(.button) {
    position:relative
}

.menu>a:not(.button):after {
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:-7px;
    height:1px;
    background:var(--pink);
    transition:.25s
}

.menu>a:hover:after {
    right:0
}

.menu-toggle {
    display:none;
    width:44px;
    height:44px;
    border:0;
    background:transparent;
    padding:10px
}

.menu-toggle span {
    display:block;
    height:1px;
    background:var(--ink);
    margin:6px 0;
    transition:.25s
}

.eyebrow {
    margin:0 0 14px;
    color:var(--pink);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.2em;
    text-transform:uppercase
}

.eyebrow--light {
    color:#efbed2
}

h1,h2,h3 {
    font-family:var(--heading);
    font-weight:400;
    line-height:.98;
    margin:0
}

h1 {
    font-size:clamp(3.1rem,3vw,7.3rem)
}

h2 {
    font-size:clamp(2.5rem,2.8vw,5.2rem)
}

h3 {
    font-size:2.8rem
}

.button {
    min-height:52px;
    padding:0 25px;
    border:1px solid transparent;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.04em;
    transition:.25s
}

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

.button--small {
    min-height:42px;
    padding-inline:19px
}

.button--primary {
    background:var(--pink);
    color:#fff;
    box-shadow:0 13px 30px rgba(183,36,103,.2)
}

.button--primary:hover {
    background:var(--pink-dark)
}

.button--ghost {
    border-color:rgba(183,36,103,.28);
    color:var(--pink);
    background:transparent
}

.button--ghost:hover {
    border-color:var(--pink);
    background:var(--pink-soft)
}

.button--light {
    background:#fff;
    color:var(--pink-dark)
}

.button--outline-light {
    border-color:rgba(255,255,255,.48);
    color:#fff
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--pink);
    font-size:.8rem;
    font-weight:800
}

.text-link span {
    font-size:1.25rem;
    transition:.25s
}

.text-link:hover span {
    transform:translateX(5px)
}

.hero {
    position:relative;
    min-height:calc(100vh - 130px);
    overflow:hidden;
    background:linear-gradient(115deg,#fff 0%,#fff 45%,#f8ecef 100%)
}

.hero__wash {
    position:absolute;
    width:680px;
    height:680px;
    border-radius:50%;
    right:-260px;
    top:-250px;
    background:radial-gradient(circle,rgba(183,36,103,.13),transparent 67%)
}

.hero__grid {
    min-height:calc(100vh - 130px);
    display:grid;
    grid-template-columns:1.03fr .97fr;
    align-items:center;
    gap:76px;
    padding:70px 0 88px
}

.hero__copy {
    position:relative;
    z-index:2
}

.hero h1 {
    max-width:720px;
    color:var(--ink-dark)
}

.hero__lead {
    max-width:660px;
    margin:27px 0 32px;
    color:var(--muted);
    font-size:1.03rem
}

.hero__actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap
}

.hero__credentials {
    display:grid;
    grid-template-columns:1fr 1fr;
    max-width:650px;
    gap:0;
    margin-top:42px;
    padding-top:26px;
    border-top:1px solid var(--line)
}

.hero__credentials div {
    padding-right:25px
}

.hero__credentials div+div {
    padding-left:25px;
    border-left:1px solid var(--line)
}

.hero__credentials strong,.hero__credentials span {
    display:block
}

.hero__credentials strong {
    font-family:var(--heading);
    font-size:1.5rem;
    color:var(--pink)
}

.hero__credentials span {
    font-size:.8rem;
    color:var(--muted);
    line-height:1.45
}

.hero__visual {
    position:relative;
    min-height:680px
}

.hero__photo {
    position:absolute;
    right:0;
    top:0;
    width:85%;
    height:100%;
    overflow:hidden;
    border-radius:280px 280px 18px 18px;
    box-shadow:var(--shadow)
}

.hero__photo:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(43,25,32,.08),transparent 45%)
}

.hero__photo img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 18%
}

.hero__note {
    position:absolute;
    left:0;
    bottom:60px;
    z-index:2;
    width:310px;
    padding:21px 24px;
    background:rgba(255,255,255,.9);
    backdrop-filter:blur(16px);
    box-shadow:var(--shadow);
    display:flex;
    gap:15px;
    align-items:center
}

.hero__note-mark {
    flex:none;
    width:47px;
    height:47px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--pink-soft);
    font-family:var(--heading);
    font-size:2rem;
    color:var(--pink)
}

.hero__note p {
    margin:0;
    color:var(--muted);
    font-size:.72rem;
    line-height:1.5
}

.hero__note strong {
    display:block;
    color:var(--ink-dark);
    font-size:.84rem
}

.hero__line {
    position:absolute;
    left:14%;
    top:4%;
    width:82%;
    height:92%;
    border:1px solid rgba(183,36,103,.25);
    border-radius:260px 260px 12px 12px;
    transform:translate(26px,-22px)
}

.scroll-cue {
    position:absolute;
    left:50%;
    bottom:23px;
    transform:translateX(-50%);
    display:flex;
    gap:12px;
    align-items:center;
    color:var(--muted);
    font-size:.68rem;
    text-transform:uppercase;
    letter-spacing:.16em
}

.scroll-cue span {
    color:var(--pink);
    font-size:1.1rem
}

.principles {
    background:var(--ink-dark);
    color:#fff
}

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

.principles article {
    position:relative;
    padding:58px 42px;
    border-right:1px solid rgba(255,255,255,.1)
}

.principles article:last-child {
    border:0
}

.principles article>span {
    font-family:var(--heading);
    font-size:2rem;
    color:var(--rose)
}

.principles h2 {
    font-size:2rem;
    margin:8px 0 12px
}

.principles p {
    margin:0;
    color:rgba(255,255,255,.58);
    font-size:.82rem
}

.section {
    padding:130px 0
}

.about__grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px;
    align-items:center
}

.about__media {
    position:relative;
    min-height:730px
}

.about__photo {
    position:absolute;
    overflow:hidden;
    box-shadow:var(--shadow)
}

.about__photo img {
    width:100%;
    height:100%;
    object-fit:cover
}

.about__photo--main {
    left:0;
    top:0;
    width:77%;
    height:650px;
    border-radius:250px 250px 15px 15px
}

.about__photo--small {
    right:0;
    bottom:0;
    width:46%;
    height:330px;
    border:10px solid var(--paper);
    border-radius:150px 150px 12px 12px
}

.about__badge {
    position:absolute;
    right:8%;
    top:30%;
    width:140px;
    height:140px;
    border-radius:50%;
    background:var(--pink);
    color:#fff;
    display:grid;
    place-content:center;
    text-align:center;
    box-shadow:0 18px 40px rgba(183,36,103,.25)
}

.about__badge strong {
    font-family:var(--heading);
    font-size:2.3rem;
    line-height:1
}

.about__badge span {
    max-width:90px;
    font-size:.57rem;
    line-height:1.35;
    text-transform:uppercase;
    letter-spacing:.08em
}

.about__copy>p:not(.eyebrow) {
    color:var(--muted);
    max-width:640px
}

.education {
    margin-top:36px;
    border-top:1px solid var(--line)
}

.education article {
    display:grid;
    grid-template-columns:55px 1fr;
    gap:17px;
    padding:19px 0;
    border-bottom:1px solid var(--line)
}

.education article>span {
    font-family:var(--heading);
    font-size:1.55rem;
    color:var(--pink)
}

.education h3 {
    font-family:var(--body);
    font-size:.9rem;
    font-weight:800;
    line-height:1.35
}

.education p {
    margin:3px 0 0;
    color:var(--muted);
    font-size:.85rem;
    line-height:1.5
}

.services {
    background:var(--cream)
}

.section-heading {
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:80px;
    align-items:end;
    margin-bottom:60px
}

.section-heading>p {
    margin:0 0 7px;
    color:var(--muted);
    font-size:1rem
}

.service-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px
}

.service-card {
    position:relative;
    min-height:360px;
    padding:34px;
    background:#fff;
    border:1px solid transparent;
    overflow:hidden;
    transition:.35s
}

.service-card:before {
    content:"";
    position:absolute;
    inset:auto -80px -100px auto;
    width:210px;
    height:210px;
    border-radius:50%;
    background:var(--pink-soft);
    transition:.35s
}

.service-card:hover {
    transform:translateY(-7px);
    border-color:rgba(183,36,103,.18);
    box-shadow:0 25px 55px rgba(59,35,43,.08)
}

.service-card:hover:before {
    transform:scale(1.2)
}

.service-card__number {
    font-family:var(--heading);
    font-size:1.4rem;
    color:#c8c0c3
}

.service-card__symbol {
    position:relative;
    z-index:1;
    width:54px;
    height:54px;
    margin:45px 0 26px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--pink-soft);
    color:var(--pink);
    font-size:1.45rem
}

.service-card h3 {
    font-size:1.5rem
}

.service-card p {
    position:relative;
    z-index:1;
    color:var(--muted);
    font-size:.8rem
}

.service-card button {
    position:absolute;
    z-index:2;
    left:34px;
    bottom:31px;
    border:0;
    background:transparent;
    padding:0;
    color:var(--pink);
    font-size:.75rem;
    font-weight:800;
    cursor:pointer
}

.service-card button span {
    margin-left:8px
}

.service-card button:hover span {
    display:inline-block;
    transform:translateX(4px)
}

.prenatal-feature {
    padding:90px 0 130px;
    background:linear-gradient(to right,var(--paper) 0 50%,#f6e7ed 50%)
}

.prenatal-feature__grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:95px
}

.prenatal-feature__image {
    height:730px;
    overflow:hidden;
    border-radius:260px 260px 15px 15px;
    box-shadow:var(--shadow)
}

.prenatal-feature__image img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top
}

.prenatal-feature__content {
    padding-right:20px
}

.prenatal-feature__content>p:not(.eyebrow) {
    color:var(--muted)
}

.check-list {
    list-style:none;
    padding:0;
    margin:30px 0 34px
}

.check-list li {
    padding:11px 0 11px 31px;
    border-bottom:1px solid rgba(183,36,103,.16);
    position:relative;
    font-size:.84rem
}

.check-list li:before {
    content:"✓";
    position:absolute;
    left:0;
    color:var(--pink);
    font-weight:800
}

.hormonal {
    position:relative;
    overflow:hidden;
    background:var(--pink-dark);
    color:#fff;
    padding:130px 0
}

.hormonal:before {
    content:"";
    position:absolute;
    width:580px;
    height:580px;
    border-radius:50%;
    left:-250px;
    bottom:-330px;
    background:rgba(255,255,255,.05)
}

.hormonal__grid {
    display:grid;
    grid-template-columns:1.12fr .88fr;
    gap:90px;
    align-items:center
}

.hormonal__copy>p:not(.eyebrow) {
    color:rgba(255,255,255,.67);
    max-width:720px
}

.hormonal__items {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 35px;
    margin:34px 0 38px
}

.hormonal__items span {
    padding:13px 0 13px 22px;
    border-bottom:1px solid rgba(255,255,255,.14);
    position:relative;
    font-size:1rem
}

.hormonal__items span:before {
    content:"";
    position:absolute;
    left:0;
    top:22px;
    width:6px;
    height:6px;
    border-radius:50%;
    background:#efbed2
}

.hormonal__art {
    position:relative;
    min-height:500px;
    display:grid;
    place-content:center;
    text-align:center
}

.hormonal__ring {
    position:absolute;
    border:1px solid rgba(255,255,255,.24);
    border-radius:50%
}

.hormonal__ring--one {
    inset:5%
}

.hormonal__ring--two {
    inset:20%;
    border-color:rgba(255,255,255,.14)
}

.hormonal__monogram {
    font-family:var(--heading);
    font-size:12rem;
    line-height:.7;
    color:#efbed2
}

.hormonal__art p {
    margin:23px 0 0;
    font-family:var(--heading);
    font-size:2rem;
    text-transform:uppercase;
    letter-spacing:.08em
}

.method__grid {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:100px
}

.method__title {
    position:sticky;
    top:150px;
    align-self:start
}

.method__steps article {
    display:grid;
    grid-template-columns:90px 1fr;
    gap:28px;
    padding:35px 0;
    border-bottom:1px solid var(--line)
}

.method__steps article:first-child {
    padding-top:0
}

.method__steps span {
    font-family:var(--heading);
    font-size:3rem;
    color:var(--pink)
}

.method__steps h3 {
    font-size:2rem;
    margin-bottom:7px
}

.method__steps p {
    margin:0;
    color:var(--muted);
    font-size:1rem
}

.insurance {
    padding-top:0
}

.insurance__card {
    display:grid;
    grid-template-columns:100px 1fr 1fr;
    gap:45px;
    align-items:center;
    padding:54px;
    background:var(--cream);
    border:1px solid rgba(183,36,103,.1)
}

.insurance__icon {
    width:78px;
    height:78px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--pink);
    color:#fff;
    font-family:var(--heading);
    font-size:3rem
}

.insurance__card>div:last-child p {
    color:var(--muted);
    font-size:1rem
}

.appointment-banner {
    background:var(--ink-dark);
    color:#fff;
    padding:78px 0
}

.appointment-banner__inner {
    display:flex;
    justify-content:space-between;
    gap:70px;
    align-items:center
}

.appointment-banner h2 {
    max-width:800px
}

.appointment-banner p {
    margin-bottom:0;
    color:rgba(255,255,255,.62)
}

.appointment-banner__actions {
    display:flex;
    flex:none;
    gap:12px
}

.contact__grid {
    display:grid;
    grid-template-columns:.84fr 1.16fr;
    gap:75px;
    align-items:start
}

.contact__copy>p:not(.eyebrow) {
    color:var(--muted)
}

.contact__details {
    margin:30px 0
}

.contact__details a {
    display:block;
    padding:16px 0;
    border-bottom:1px solid var(--line)
}

.contact__details small,.contact__details strong {
    display:block
}

.contact__details small {
    color:var(--muted);
    font-size:.65rem;
    text-transform:uppercase;
    letter-spacing:.15em
}

.contact__details strong {
    font-size:.86rem;
    margin-top:3px
}

.contact__actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap
}

.location-card {
    background:var(--cream);
    box-shadow:var(--shadow)
}

.location-card iframe {
    display:block;
    width:100%;
    height:410px;
    border:0;
    filter:grayscale(1) sepia(.1) contrast(.92)
}

.location-card__caption {
    padding:30px 34px
}

.location-card__caption>span {
    color:var(--pink);
    font-size:.67rem;
    text-transform:uppercase;
    letter-spacing:.16em
}

.location-card__caption h3 {
    font-size:1.8rem;
    margin:4px 0
}

.location-card__caption p {
    margin:0 0 10px;
    color:var(--muted);
    font-size:1rem
}

.location-card__caption a {
    color:var(--pink);
    font-size:.73rem;
    font-weight:800
}

.footer {
    background:#292a2d;
    color:#fff;
    padding:65px 0 25px
}

.footer__top {
    display:grid;
    grid-template-columns:1fr .75fr .35fr;
    gap:60px;
    align-items:center;
    padding-bottom:40px
}

.footer__top img {
    width:420px;
    filter:brightness(0) invert(1);
    opacity:.94
}

.footer__top p {
    color:rgba(255,255,255,.58);
    font-size:.85rem
}

.footer__top nav {
    display:grid;
    gap:6px;
    font-size:.76rem
}

.footer__bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.1);
    color:rgba(255,255,255,.42);
    font-size:.80rem
}

.whatsapp-float {
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:45;
    width:62px;
    height:62px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#25d366;
    color:#fff;
    box-shadow:0 15px 35px rgba(37,211,102,.34);
    transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease
}

.whatsapp-float i {
    font-size:2rem;
    line-height:1
}

.whatsapp-float__tooltip {
    position:absolute;
    right:calc(100% + 13px);
    top:50%;
    transform:translate(10px,-50%);
    width:max-content;
    max-width:230px;
    padding:11px 16px;
    border-radius:999px;
    background:var(--pink);
    color:#fff;
    box-shadow:0 12px 28px rgba(183,36,103,.22);
    font-size:.76rem;
    font-weight:700;
    line-height:1.25;
    letter-spacing:.01em;
    white-space:nowrap;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease,transform .22s ease,visibility .22s ease
}

.whatsapp-float__tooltip:after {
    content:"";
    position:absolute;
    left:100%;
    top:50%;
    transform:translateY(-50%);
    border:7px solid transparent;
    border-left-color:var(--pink)
}

.whatsapp-float:hover,
.whatsapp-float:focus-visible {
    transform:translateY(-3px) scale(1.03);
    background:#20bd5a;
    box-shadow:0 18px 40px rgba(37,211,102,.42)
}

.whatsapp-float:hover .whatsapp-float__tooltip,
.whatsapp-float:focus-visible .whatsapp-float__tooltip {
    opacity:1;
    visibility:visible;
    transform:translate(0,-50%)
}

.whatsapp-float:focus-visible {
    outline:3px solid rgba(183,36,103,.28);
    outline-offset:4px
}

.modal {
    position:fixed;
    inset:0;
    z-index:100;
    display:none;
    place-items:center;
    padding:20px
}

.modal.is-open {
    display:grid
}

.modal__backdrop {
    position:absolute;
    inset:0;
    background:rgba(27,20,23,.72);
    backdrop-filter:blur(8px)
}

.modal__panel {
    position:relative;
    width:min(620px,100%);
    max-height:90vh;
    overflow:auto;
    padding:48px;
    background:#fff;
    box-shadow:0 30px 100px rgba(0,0,0,.3)
}

.modal__close {
    position:absolute;
    right:16px;
    top:14px;
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:var(--pink-soft);
    color:var(--pink);
    font-size:1.5rem;
    cursor:pointer
}

.modal h2 {
    font-size:2rem
}

.modal ul {
    list-style:none;
    padding:0;
    margin:25px 0 30px
}

.modal li {
    position:relative;
    padding:10px 0 10px 26px;
    border-bottom:1px solid var(--line);
    font-size:.83rem
}

.modal li:before {
    content:"✓";
    position:absolute;
    left:0;
    color:var(--pink);
    font-weight:800
}

.reveal {
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s ease,transform .8s ease
}

.reveal--delay {
    transition-delay:.14s
}

.reveal.visible {
    opacity:1;
    transform:none
}

@media(max-width:1050px) {
    .menu {
        position:fixed;
        left:0;
        right:0;
        top:130px;
        display:none;
        flex-direction:column;
        align-items:flex-start;
        padding:28px 24px;
        background:#fff;
        border-bottom:1px solid var(--line);
        box-shadow:0 20px 40px rgba(0,0,0,.08)
}

    .menu.open {
        display:flex
}

    .menu-toggle {
        display:block
}

    .hero__grid,.about__grid,.prenatal-feature__grid,.hormonal__grid,.method__grid,.contact__grid {
        grid-template-columns:1fr
}

    .hero__grid {
        padding-top:55px
}

    .hero__visual {
        width:min(680px,100%);
        margin:auto
}

    .about__media {
        width:min(700px,100%);
        margin:auto
}

    .section-heading {
        grid-template-columns:1fr;
        gap:20px
}

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

    .prenatal-feature {
        background:linear-gradient(to bottom,var(--paper) 0 43%,#f6e7ed 43%)
}

    .prenatal-feature__image {
        width:min(650px,100%);
        margin:auto
}

    .method__title {
        position:static
}

    .insurance__card {
        grid-template-columns:90px 1fr
}

    .insurance__card>div:last-child {
        grid-column:2
}

    .appointment-banner__inner {
        align-items:flex-start;
        flex-direction:column
}

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

    .footer__top nav {
        grid-column:2
}

    .brand {
        width:min(380px,70vw)
}

    }

@media(max-width:700px) {
    :root {
        --container:min(100% - 28px,1180px)
}

    .announcement__inner {
        padding:7px 0;
        min-height:0
}

    .announcement__inner>p {
        display:none
}

    .announcement__inner div {
        width:100%;
        justify-content:center
}

    .announcement__inner a:last-child,.announcement__inner span {
        display:none
}

    .header__inner {
        height:76px
}

    .brand {
        width:235px
}

    .menu {
        top:112px
}

    .hero {
        min-height:auto
}

    .hero__grid {
        min-height:auto;
        gap:45px;
        padding:55px 0 80px
}

    .hero h1 {
        font-size:2.5rem
}

    .hero__lead {
        font-size:.91rem
}

    .hero__actions {
        flex-direction:column;
        align-items:stretch
}

    .button {
        width:100%
}

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

    .hero__credentials div+div {
        padding:18px 0 0;
        border-left:0;
        border-top:1px solid var(--line);
        margin-top:18px
}

    .hero__visual {
        min-height:520px
}

    .hero__photo {
        width:88%
}

    .hero__photo img {
        object-position:center top
}

    .hero__note {
        left:0;
        bottom:25px;
        width:270px
}

    .hero__line {
        display:none
}

    .scroll-cue {
        display:none
}

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

    .principles article {
        padding:36px 22px;
        border-right:0;
        border-bottom:1px solid rgba(255,255,255,.1)
}

    .section {
        padding:90px 0
}

    .about__grid {
        gap:60px
}

    .about__media {
        min-height:520px
}

    .about__photo--main {
        height:475px;
        width:83%
}

    .about__photo--small {
        height:220px;
        width:45%;
        border-width:6px
}

    .about__badge {
        width:105px;
        height:105px;
        right:2%;
        top:28%
}

    .about__badge strong {
        font-size:1.8rem
}

    .about__badge span {
        font-size:.47rem
}

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

    .service-card {
        min-height:340px
}

    .prenatal-feature {
        padding:70px 0 90px
}

    .prenatal-feature__grid {
        gap:55px
}

    .prenatal-feature__image {
        height:540px
}

    .hormonal {
        padding:90px 0
}

    .hormonal__grid {
        gap:45px
}

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

    .hormonal__art {
        min-height:350px
}

    .hormonal__monogram {
        font-size:9rem
}

    .method__grid {
        gap:45px
}

    .method__steps article {
        grid-template-columns:58px 1fr
}

    .insurance__card {
        grid-template-columns:1fr;
        padding:30px
}

    .insurance__card>div:last-child {
        grid-column:auto
}

    .appointment-banner {
        padding:65px 0
}

    .appointment-banner__actions {
        width:100%;
        flex-direction:column
}

    .contact__grid {
        gap:55px
}

    .contact__actions {
        flex-direction:column
}

    .location-card iframe {
        height:320px
}

    .footer__top {
        grid-template-columns:1fr;
        gap:25px
}

    .footer__top nav {
        grid-column:auto
}

    .footer__bottom {
        flex-direction:column
}

    .modal__panel {
        padding:42px 24px 28px
}

    .modal h2 {
        font-size:2.7rem
}

    .whatsapp-float {
        right:14px;
        bottom:14px;
        width:56px;
        height:56px
}

    .whatsapp-float i {
        font-size:1.8rem
}

    .whatsapp-float__tooltip {
        display:none
}

    }

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
}

    .reveal {
        opacity:1;
        transform:none;
        transition:none
}

    .button,.service-card {
        transition:none
}

    }



/* =========================================================
   SECCIÓN SEGUROS MÉDICOS
   Adaptada a la identidad visual de la Dra. Andrea
========================================================= */

.insurance-section {
  --insurance-primary: #bd1f62;
  --insurance-primary-dark: #9f174f;
  --insurance-text: #2c292b;
  --insurance-muted: #7d777a;
  --insurance-accent: #b78572;
  --insurance-background: #fcf9f8;
  --insurance-background-soft: #f8f1ef;
  --insurance-border: rgba(189, 31, 98, 0.09);

  position: relative;
  overflow: hidden;
  padding: 90px 0 72px;

  background:
    radial-gradient(
      circle at 0% 10%,
      rgba(239, 221, 216, 0.42) 0,
      rgba(239, 221, 216, 0) 31%
    ),
    radial-gradient(
      circle at 100% 100%,
      rgba(246, 226, 235, 0.45) 0,
      rgba(246, 226, 235, 0) 27%
    ),
    linear-gradient(
      180deg,
      #fffdfc 0%,
      var(--insurance-background) 100%
    );
}

.insurance-section__container {
  position: relative;
  z-index: 2;
  width: min(100% - 48px, 1440px);
  margin: 0 auto;
}

.insurance-section__header {
  max-width: 760px;
  margin: 0 auto 52px;
  text-align: center;
}

/* Texto superior */
.insurance-section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 11px;

  margin-bottom: 16px;

  color: var(--pink);

  font-family: "Avenir", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.insurance-section__eyebrow::before,
.insurance-section__eyebrow::after {
  content: "";
  display: block;

  width: 28px;
  height: 1px;

  background-color: currentColor;
  opacity: 0.55;
}

/* Título más discreto */
.insurance-section__title {
  max-width: 680px;
  margin: 0 auto;

  color: var(--insurance-text);

}

/* Texto descriptivo */
.insurance-section__description {
  max-width: 700px;
  margin: 22px auto 0;

  color: var(--insurance-muted);

  font-family: "Avenir", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
}

/* Botón */
.insurance-section__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  margin-top: 28px;
  padding: 14px 24px;

  border: 1px solid var(--insurance-primary);
  border-radius: 999px;

  color: #ffffff;
  background-color: var(--insurance-primary);

  box-shadow: 0 12px 28px rgba(189, 31, 98, 0.18);

  font-family: "Avenir", sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;

  transition:
    background-color 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.3s ease;
}

.insurance-section__button svg {
  transition: transform 0.3s ease;
}

.insurance-section__button:hover {
  color: #ffffff;
  background-color: var(--insurance-primary-dark);
  border-color: var(--insurance-primary-dark);

  box-shadow: 0 16px 34px rgba(189, 31, 98, 0.24);
  transform: translateY(-2px);
}

.insurance-section__button:hover svg {
  transform: translateX(4px);
}

/* =========================================================
   CARRUSEL
========================================================= */

.insurance-marquee {
  position: relative;
  width: 100%;
  overflow: hidden;

  padding: 24px 0;

  border-top: 1px solid rgba(183, 133, 114, 0.16);
  border-bottom: 1px solid rgba(183, 133, 114, 0.16);
}

.insurance-marquee__track {
  display: flex;
  width: max-content;

  animation: insuranceMarquee 32s linear infinite;
  will-change: transform;
}

.insurance-marquee:hover .insurance-marquee__track {
  animation-play-state: paused;
}

.insurance-marquee__group {
  display: flex;
  align-items: center;
  flex-shrink: 0;

  gap: 24px;
  padding-right: 24px;
}

/* Tarjetas de aseguradoras */
.insurance-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;

  width: 220px;
  height: 112px;
  padding: 25px 28px;

  border: 1px solid rgba(189, 31, 98, 0.07);
  border-radius: 18px;

  background-color: rgba(255, 255, 255, 0.9);

  box-shadow:
    0 14px 34px rgba(88, 55, 67, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);

  transition:
    transform 0.35s ease,
    border-color 0.35s ease,
    box-shadow 0.35s ease,
    background-color 0.35s ease;
}

.insurance-logo img {
  display: block;
  width: 100%;

  max-width: 170px;
  max-height: 60px;

  object-fit: contain;

  filter: saturate(0.92);
  opacity: 0.9;

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

.insurance-logo:hover {
  border-color: rgba(189, 31, 98, 0.14);
  background-color: #ffffff;

  box-shadow:
    0 20px 40px rgba(88, 55, 67, 0.09),
    0 0 0 1px rgba(189, 31, 98, 0.025);

  transform: translateY(-4px);
}

.insurance-logo:hover img {
  filter: saturate(1);
  opacity: 1;
  transform: scale(1.025);
}

/* Desvanecido lateral */
.insurance-marquee__fade {
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;

  width: clamp(48px, 9vw, 150px);

  pointer-events: none;
}

.insurance-marquee__fade--left {
  left: 0;

  background: linear-gradient(
    90deg,
    var(--insurance-background) 10%,
    rgba(252, 249, 248, 0) 100%
  );
}

.insurance-marquee__fade--right {
  right: 0;

  background: linear-gradient(
    270deg,
    var(--insurance-background) 10%,
    rgba(252, 249, 248, 0) 100%
  );
}

/* Nota inferior */
.insurance-section__note {
  max-width: 580px;
  margin: 22px auto 0;

  color: rgba(125, 119, 122, 0.82);

  font-family: "Avenir", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}

/* Decoraciones sutiles */
.insurance-section__decoration {
  position: absolute;
  z-index: 1;

  border-radius: 50%;
  pointer-events: none;
}

.insurance-section__decoration--left {
  top: 100px;
  left: -190px;

  width: 350px;
  height: 350px;

  border: 1px solid rgba(183, 133, 114, 0.07);
}

.insurance-section__decoration--right {
  right: -130px;
  bottom: -190px;

  width: 350px;
  height: 350px;

  border: 1px solid rgba(189, 31, 98, 0.055);
}

@keyframes insuranceMarquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

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

@media (max-width: 991px) {
  .insurance-section {
    padding: 78px 0 65px;
  }

  .insurance-section__header {
    margin-bottom: 46px;
  }

  .insurance-section__title {
    font-size: clamp(40px, 6vw, 52px);
  }

  .insurance-logo {
    width: 195px;
    height: 102px;
    padding: 22px 24px;
  }

  .insurance-marquee__track {
    animation-duration: 27s;
  }
}

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

@media (max-width: 767px) {
  .insurance-section {
    padding: 65px 0 56px;
  }

  .insurance-section__container {
    width: min(100% - 30px, 1440px);
  }

  .insurance-section__header {
    margin-bottom: 40px;
  }

  .insurance-section__eyebrow {
    margin-bottom: 14px;

    font-size: 10px;
    letter-spacing: 0.18em;
  }

  .insurance-section__eyebrow::before,
  .insurance-section__eyebrow::after {
    width: 18px;
  }

  .insurance-section__title {
    max-width: 440px;

    font-size: clamp(36px, 11vw, 46px);
    line-height: 1.02;
  }

  .insurance-section__description {
    max-width: 390px;
    margin-top: 18px;

    font-size: 14px;
    line-height: 1.65;
  }

  .insurance-section__button {
    margin-top: 24px;
    padding: 13px 21px;

    font-size: 13px;
  }

  .insurance-marquee {
    width: calc(100% + 30px);
    margin-left: -15px;

    padding: 18px 0;
  }

  .insurance-marquee__group {
    gap: 14px;
    padding-right: 14px;
  }

  .insurance-logo {
    width: 166px;
    height: 88px;

    padding: 18px 20px;
    border-radius: 15px;
  }

  .insurance-logo img {
    max-width: 135px;
    max-height: 48px;
  }

  .insurance-marquee__track {
    animation-duration: 22s;
  }

  .insurance-section__note {
    max-width: 290px;
    margin-top: 18px;

    font-size: 10px;
  }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .insurance-marquee__track {
    animation: none;
  }

  .insurance-marquee {
    overflow-x: auto;
    scrollbar-width: none;
  }

  .insurance-marquee::-webkit-scrollbar {
    display: none;
  }

  .insurance-marquee__group[aria-hidden="true"] {
    display: none;
  }
}

.copyright-nuvex{
        text-align: center;
    margin-top: 35px;
    font-size: 13px;
    color: #ccc;
}
.copyright-nuvex img{
    width: 25px;
    display: inline-block;
    position: relative;
    top: 6px;
}