:root {
--blue:#294987;
--blue-dark:#102b5c;
--blue-deep:#081d42;
--sky:#dce8fa;
--ice:#f3f7fc;
--white:#fff;
--ink:#10203b;
--muted:#66738a;
--line:#d9e1ed;
--accent:#7fa7e8;
--shadow:0 24px 70px rgba(14,42,89,.13);
--radius:28px;
--container:min(1180px,calc(100% - 40px))}


* {
box-sizing:border-box;
margin:0;
padding:0}

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

body {
font-family:Manrope,sans-serif;
color:var(--ink);
background:#fff;
line-height:1.65;
overflow-x:hidden}

body.menu-open {
overflow:hidden}

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

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

button {
font:inherit}

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

.section {
padding:110px 0}

.skip-link {
position:fixed;
left:18px;
top:-80px;
background:#fff;
color:var(--blue);
padding:10px 18px;
z-index:999;
border-radius:8px}

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

.eyebrow {
display:inline-flex;
align-items:center;
gap:10px;
color:var(--blue);
font-size:.76rem;
font-weight:800;
letter-spacing:.18em;
margin-bottom:18px}

.eyebrow:before {
content:"";
width:32px;
height:2px;
background:currentColor}

.eyebrow.light {
color:#bdd2f4}

.section-heading {
max-width:700px;
margin-bottom:55px}

.section-heading.centered {
text-align:center;
margin-inline:auto}

.section-heading.centered .eyebrow {
justify-content:center}

.section-heading h2,.consult h2,.about h2,.contact h2,.facility-copy h2 {
font-family:"Plus Jakarta Sans",sans-serif;
font-size:clamp(2.15rem,4vw,4rem);
line-height:1.08;
letter-spacing:-.045em}

.section-heading p {
color:var(--muted);
font-size:1.03rem;
margin-top:18px}

.section-heading.split {
max-width:none;
display:grid;
grid-template-columns:1.35fr .65fr;
gap:80px;
align-items:end}

.section-heading.split p {
color:#c3d1e9}

.centered {
text-align:center}

.button {
display:inline-flex;
align-items:center;
justify-content:center;
gap:18px;
border:0;
border-radius:999px;
background:var(--blue);
color:#fff;
padding:15px 25px;
font-weight:800;
font-size:.9rem;
box-shadow:0 12px 28px rgba(41,73,135,.2);
transition:.3s ease}

.button:hover {
background:var(--blue-dark);
transform:translateY(-3px);
box-shadow:0 16px 36px rgba(41,73,135,.3)}

.button span {
font-size:1.2em}

.button-small {
padding:12px 20px}

.button-white {
background:#fff;
color:var(--blue);
box-shadow:0 12px 35px rgba(5,20,49,.18)}

.button-white:hover {
background:var(--sky);
color:var(--blue-dark)}


.site-header {
position:fixed;
z-index:100;
top:0;
left:0;
width:100%;
padding:18px 0;
transition:.3s}

.site-header.scrolled {
padding:10px 0;
background:rgba(255,255,255,.92);
backdrop-filter:blur(20px);
box-shadow:0 8px 35px rgba(16,32,59,.09)}

.nav-shell {
width:var(--container);
height:70px;
margin:auto;
padding:8px 10px 8px 16px;
display:flex;
align-items:center;
gap:28px;
background:rgba(255,255,255,.96);
border:1px solid rgba(255,255,255,.7);
border-radius:22px;
box-shadow:0 14px 45px rgba(8,29,66,.16)}

.brand {
width:170px;
overflow:hidden;
border-radius:13px;
background:var(--blue);
flex:0 0 auto}

.brand img {
width:100%;
height:52px;
object-fit:cover;
object-position:center}

.desktop-nav {
margin-left:auto;
display:flex;
align-items:center;
gap:26px}

.desktop-nav a {
font-size:.8rem;
font-weight:700;
color:#42506a;
transition:.2s}

.desktop-nav a:hover {
color:var(--blue)}

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

.menu-toggle span {
display:block;
height:2px;
background:var(--blue);
margin:7px 0;
transition:.25s}

.mobile-nav {
display:none}


.hero {
position:relative;
min-height:820px;
padding:165px 0 65px;
background:radial-gradient(circle at 75% 35%,#4569a7 0,transparent 35%),linear-gradient(135deg,var(--blue-deep),var(--blue) 62%,#355b9b);
color:#fff;
overflow:hidden}

.hero:after {
content:"";
position:absolute;
inset:auto -5% -150px;
width:65%;
height:320px;
background:#fff;
border-radius:50% 50% 0 0/100% 100% 0 0;
opacity:.07;
transform:rotate(-5deg)}

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

.orbit-one {
width:720px;
height:720px;
right:-180px;
top:50px}

.orbit-two {
width:460px;
height:460px;
right:-50px;
top:180px}

.hero-grid {
position:relative;
z-index:2;
display:grid;
grid-template-columns:1.08fr .92fr;
gap:70px;
align-items:center}

.hero-copy h1 {
font-family:"Plus Jakarta Sans",sans-serif;
font-size:clamp(3rem,5.6vw,6.2rem);
line-height:.96;
letter-spacing:-.065em;
max-width:780px}

.hero-copy h1 em {
display:block;
font-style:normal;
font-weight:500;
color:#bcd0f2}

.doctor-name {
font-family:"Plus Jakarta Sans",sans-serif;
font-size:clamp(1.2rem,2vw,1.65rem);
font-weight:700;
margin:28px 0 12px}

.hero-lead {
max-width:620px;
color:#dce7f8;
font-size:1.08rem}

.specialties {
display:flex;
align-items:center;
gap:10px;
flex-wrap:wrap;
color:#adc6ec;
font-size:.8rem;
font-weight:700;
letter-spacing:.08em;
margin-top:20px}

.specialties i {
width:4px;
height:4px;
border-radius:50%;
background:#fff}

.hero-actions {
display:flex;
align-items:center;
gap:26px;
margin-top:36px}

.text-link {
font-size:.86rem;
font-weight:700;
color:#dce7f8;
border-bottom:1px solid #819fcf;
padding-bottom:4px}

.doctor-visual {
position:relative;
min-height:530px;
display:flex;
align-items:center;
justify-content:center}

.photo-placeholder {
width:min(400px,90%);
height:520px;
border-radius:210px 210px 40px 40px;
background:linear-gradient(155deg,#e7eef8,#9bb7df);
border:1px solid rgba(255,255,255,.4);
box-shadow:0 30px 80px rgba(0,0,0,.24);
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
color:var(--blue);
overflow:hidden}

.photo-placeholder:before {
content:"";
position:absolute;
width:320px;
height:320px;
border:1px solid rgba(255,255,255,.3);
border-radius:50%}

.photo-placeholder span {
font:800 7rem/1 "Plus Jakarta Sans",sans-serif;
letter-spacing:-.1em;
opacity:.22}

.photo-placeholder small {
text-align:center;
font-weight:700;
line-height:1.4;
opacity:.7}

.visual-seal {
position:absolute;
right:-5px;
bottom:50px;
width:145px;
height:145px;
border-radius:50%;
background:#fff;
color:var(--blue);
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
box-shadow:var(--shadow)}

.visual-seal strong {
font-size:1.8rem}

.visual-seal span {
font-size:.68rem;
font-weight:800;
letter-spacing:.09em}

.ticker {
overflow:hidden;
background:#fff;
color:var(--blue);
border-bottom:1px solid var(--line);
padding:16px 0}

.ticker-track {
display:flex;
width:max-content;
align-items:center;
gap:32px;
animation:ticker 24s linear infinite;
white-space:nowrap}

.ticker span {
font-family:"Plus Jakarta Sans",sans-serif;
font-size:1.05rem;
font-weight:700}

.ticker b {
color:var(--blue-dark);
font-size:.85rem;
letter-spacing:.12em}

.ticker i {
font-style:normal;
color:var(--accent)}

@keyframes ticker {
to {
transform:translateX(-50%)}

}


.trust {
background:#fff}

.trust-path {
position:relative;
max-width:980px;
margin:0 auto 48px;
display:grid;
grid-template-columns:repeat(3,1fr);
gap:45px}

.trust-line {
position:absolute;
top:27px;
left:9%;
right:9%;
height:1px;
background:linear-gradient(90deg,transparent,var(--accent),transparent)}

.trust-path article {
position:relative;
text-align:center}

.trust-number {
position:relative;
z-index:1;
width:56px;
height:56px;
margin:0 auto 26px;
border-radius:50%;
display:grid;
place-items:center;
background:#fff;
border:1px solid var(--accent);
color:var(--blue);
font-weight:800;
font-size:.75rem}

.trust-path strong {
font:700 1.15rem "Plus Jakarta Sans",sans-serif}

.trust-path p {
color:var(--muted);
font-size:.88rem;
margin-top:9px}

.conditions {
background:var(--blue-deep);
color:#fff}

.condition-list {
border-top:1px solid rgba(255,255,255,.18);
margin-bottom:40px}

.condition-list details {
border-bottom:1px solid rgba(255,255,255,.18)}

.condition-list summary {
list-style:none;
display:grid;
grid-template-columns:60px 1fr 40px;
gap:15px;
align-items:center;
padding:22px 8px;
cursor:pointer}

.condition-list summary::-webkit-details-marker,.faq summary::-webkit-details-marker {
display:none}

.condition-list summary span {
font-size:.73rem;
color:#8cacdc}

.condition-list h3 {
font:600 clamp(1rem,2vw,1.3rem) "Plus Jakarta Sans",sans-serif}

.condition-list summary b,.faq summary b {
font-size:1.4rem;
font-weight:400;
transition:.25s}

.condition-list details[open] summary b,.faq details[open] summary b {
transform:rotate(45deg)}

.condition-list details>p {
padding:0 65px 24px;
color:#c6d3e8;
max-width:900px;
font-size:.94rem}

.condition-list details>p strong {
color:#fff}

.conditions-button {
margin-left:50%;
transform:translateX(-50%)}

.conditions-button:hover {
transform:translate(-50%,-3px)}


.consult {
background:var(--ice)}

.consult-grid {
display:grid;
grid-template-columns:1fr 430px;
gap:90px;
align-items:center}

.consult-copy>p {
color:var(--muted);
font-size:1.05rem;
max-width:580px;
margin:22px 0 30px}

.payment {
display:flex;
gap:9px;
flex-wrap:wrap}

.payment span {
background:#fff;
border:1px solid var(--line);
border-radius:999px;
padding:8px 14px;
font-size:.72rem;
font-weight:800;
color:var(--blue)}

.price-panel {
background:#fff;
border:1px solid #e3e9f2;
border-radius:var(--radius);
padding:38px;
box-shadow:var(--shadow);
display:grid;
grid-template-columns:1fr auto;
align-items:center;
gap:4px 18px}

.price-panel>span {
color:var(--muted);
font-size:.85rem}

.price-panel strong {
font:800 2.5rem "Plus Jakarta Sans",sans-serif;
color:var(--blue)}

.price-panel strong small {
font-size:1rem;
vertical-align:top}

.price-panel>div {
grid-column:1/-1;
height:1px;
background:var(--line);
margin:17px 0}

.price-panel .button {
grid-column:1/-1;
margin-top:24px}

.procedures {
overflow:hidden}

.procedure-wheel {
display:grid;
grid-template-columns:repeat(4,1fr);
border:1px solid var(--line);
border-radius:var(--radius);
overflow:hidden;
margin-bottom:42px}

.procedure-wheel article {
min-height:310px;
padding:34px 28px;
border-right:1px solid var(--line);
transition:.3s}

.procedure-wheel article:last-child {
border:0}

.procedure-wheel article:hover {
background:var(--blue);
color:#fff;
transform:translateY(-8px)}

.procedure-wheel span {
display:inline-grid;
place-items:center;
width:45px;
height:45px;
border-radius:50%;
border:1px solid var(--line);
font-size:.72rem;
color:var(--blue);
margin-bottom:70px}

.procedure-wheel article:hover span {
color:#fff;
border-color:#85a4d4}

.procedure-wheel h3 {
font:700 1.15rem "Plus Jakarta Sans",sans-serif;
margin-bottom:12px}

.procedure-wheel p {
font-size:.83rem;
color:var(--muted)}

.procedure-wheel article:hover p {
color:#d6e1f3}

.insurance {
background:linear-gradient(145deg,var(--blue),var(--blue-dark));
color:#fff}

.insurance .section-heading p {
color:#c4d3eb}

.logo-cloud {
display:flex;
flex-wrap:wrap;
justify-content:center;
border-top:1px solid rgba(255,255,255,.18);
border-left:1px solid rgba(255,255,255,.18);
margin-bottom:45px}

.logo-cloud span {
flex:1 0 190px;
min-height:95px;
display:grid;
place-items:center;
text-align:center;
border-right:1px solid rgba(255,255,255,.18);
border-bottom:1px solid rgba(255,255,255,.18);
font-weight:800;
color:#e4ecf9;
transition:.25s}

.logo-cloud span:hover {
background:#fff;
color:var(--blue)}


.about-grid {
display:grid;
grid-template-columns:.85fr 1.15fr;
gap:95px;
align-items:center}

.about-photo {
position:relative}

.light-placeholder {
position:relative;
width:100%;
height:650px;
border-radius:var(--radius);
background:linear-gradient(145deg,#dbe6f6,#9bb6df);
box-shadow:none}

.credential-float {
position:absolute;
right:-30px;
bottom:35px;
background:var(--blue);
color:#fff;
padding:21px 26px;
border-radius:18px;
box-shadow:var(--shadow);
display:flex;
flex-direction:column}

.credential-float b {
font-size:.7rem;
letter-spacing:.12em;
}

.credential-float span {
font-size:.8rem;
color:#c8d7ee}

.about-copy .subtitle {
color:var(--blue);
font-weight:800;
margin:6px 0 20px}

.about-copy>p:not(.subtitle) {
color:var(--muted)}

.bio-list {
margin:30px 0}

.bio-list>div {
display:grid;
grid-template-columns:42px 1fr;
gap:14px;
padding:16px 0;
border-bottom:1px solid var(--line)}

.bio-list span {
color:var(--accent);
font-size:.7rem;
font-weight:800}

.bio-list p {
color:var(--muted);
font-size:.85rem}

.bio-list b {
display:block;
color:var(--ink);
font-size:.9rem}

.testimonials {
background:var(--ice)}

.testimonial-stage {
display:grid;
grid-template-columns:55px 1fr 55px;
gap:30px;
align-items:center;
max-width:900px;
margin:0 auto 42px}

.testimonial-track {
min-height:265px;
position:relative}

.testimonial-track blockquote {
display:none;
text-align:center}

.testimonial-track blockquote.active {
display:block;
animation:quoteIn .55s ease}

.stars {
color:var(--blue);
letter-spacing:.2em;
margin-bottom:25px}

.testimonial-track p {
font:600 clamp(1.35rem,2.7vw,2.15rem)/1.45 "Plus Jakarta Sans",sans-serif;
letter-spacing:-.03em}

.testimonial-track cite {
display:block;
margin-top:24px;
color:var(--blue);
font-style:normal;
font-weight:800}

.slider-button {
width:50px;
height:50px;
border-radius:50%;
border:1px solid var(--line);
background:#fff;
color:var(--blue);
cursor:pointer;
transition:.2s}

.slider-button:hover {
background:var(--blue);
color:#fff}

@keyframes quoteIn {
from {
opacity:0;
transform:translateY(12px)}

}


.facilities {
background:var(--blue-deep);
color:#fff;
overflow:hidden}

.facilities .container {
display:grid;
grid-template-columns:.8fr 1.2fr;
gap:70px;
align-items:center}

.facility-copy h2 {
margin-bottom:32px}

.facility-gallery {
display:grid;
grid-template-columns:1fr 1fr;
gap:18px;
transform:rotate(-2deg)}

.facility-gallery img {
width:100%;
height:440px;
object-fit:cover;
border-radius:22px}

.facility-gallery img+img {
margin-top:55px}

.faq-grid {
display:grid;
grid-template-columns:.7fr 1.3fr;
gap:90px}

.faq-list {
border-top:1px solid var(--line)}

.faq-list details {
border-bottom:1px solid var(--line)}

.faq-list summary {
list-style:none;
display:grid;
grid-template-columns:1fr 30px;
gap:15px;
padding:24px 0;
cursor:pointer;
font-weight:800}

.faq-list details p {
padding:0 45px 24px 0;
color:var(--muted);
font-size:.9rem}

.contact {
background:var(--blue);
color:#fff}

.contact-heading {
display:grid;
grid-template-columns:.35fr 1fr;
gap:70px;
margin-bottom:55px}

.contact-heading h2 {
max-width:800px}

.contact-grid {
display:grid;
grid-template-columns:repeat(3,1fr) 1.15fr;
border-top:1px solid rgba(255,255,255,.22);
border-bottom:1px solid rgba(255,255,255,.22)}

.contact-grid>div,.contact-cta {
min-height:190px;
padding:28px;
border-right:1px solid rgba(255,255,255,.22)}

.contact-grid div>span {
display:block;
color:#a9c1e7;
font-size:.68rem;
letter-spacing:.13em;
font-weight:800;
margin-bottom:18px}

.contact-grid p,.contact-grid div>a {
font-weight:700;
font-size:.9rem}

.contact-cta {
display:flex;
align-items:center;
justify-content:space-between;
background:#fff;
color:var(--blue);
font-weight:800}

.contact-cta b {
font-size:2rem}

.floating-whatsapp {
position:fixed;
z-index:95;
right:22px;
bottom:22px;
width:62px;
height:62px;
border-radius:50%;
display:grid;
place-items:center;
background:#21c063;
color:#fff;
box-shadow:0 12px 35px rgba(6,74,38,.3);
font-weight:900;
font-size:.8rem;
transition:.25s}

.floating-whatsapp:hover {
transform:scale(1.08)}

footer {
background:#061630;
color:#aabbd5;
padding:45px 0}

footer .container {
display:flex;
align-items:center;
gap:28px}

footer img {
width:160px;
height:58px;
object-fit:cover;
border-radius:10px}

footer p {
font-size:.8rem}

footer span {
margin-left:auto;
font-size:.74rem}


.reveal {
opacity:0;
transform:translateY(26px);
transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}

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

.delay-1 {
transition-delay:.15s}

@media (prefers-reduced-motion:reduce) {
* {
scroll-behavior:auto!important;
animation-duration:.01ms!important;
animation-iteration-count:1!important}

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

}


@media(max-width:1050px) {
.desktop-nav {
display:none}

.menu-toggle {
display:block}

.nav-shell>.button {
display:none}

.mobile-nav {
position:fixed;
inset:98px 20px auto;
z-index:99;
background:#fff;
border-radius:22px;
padding:22px;
box-shadow:var(--shadow);
flex-direction:column;
gap:4px}

.mobile-nav.open {
display:flex}

.mobile-nav>a:not(.button) {
padding:13px 8px;
border-bottom:1px solid var(--line);
font-weight:700}

.hero-grid {
grid-template-columns:1.15fr .85fr;
gap:30px}

.consult-grid {
gap:45px}

.procedure-wheel {
grid-template-columns:1fr 1fr}

.procedure-wheel article:nth-child(2) {
border-right:0}

.procedure-wheel article:nth-child(-n+2) {
border-bottom:1px solid var(--line)}

.about-grid {
gap:55px}

.faq-grid {
gap:50px}

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

.contact-grid>*:nth-child(2) {
border-right:0}

.contact-grid>*:nth-child(-n+2) {
border-bottom:1px solid rgba(255,255,255,.22)}

}


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

.section {
padding:78px 0}

.nav-shell {
height:62px}

.brand {
width:145px}

.brand img {
height:44px}

.site-header {
padding:10px 0}

.mobile-nav {
top:82px}

.hero {
min-height:auto;
padding:130px 0 60px}

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

.hero-copy h1 {
font-size:clamp(2.9rem,13vw,4.7rem)}

.hero-actions {
align-items:flex-start;
flex-direction:column}

.doctor-visual {
min-height:400px}

.photo-placeholder {
height:390px;
width:290px}

.photo-placeholder span {
font-size:5rem}

.visual-seal {
right:3%;
bottom:20px;
width:120px;
height:120px}

.section-heading.split,.consult-grid,.about-grid,.facilities .container,.faq-grid,.contact-heading {
grid-template-columns:1fr;
gap:32px}

.trust-path {
grid-template-columns:1fr;
text-align:left}

.trust-line {
top:0;
bottom:0;
left:27px;
right:auto;
width:1px;
height:auto}

.trust-path article {
display:grid;
grid-template-columns:56px 1fr;
gap:18px;
text-align:left}

.trust-number {
margin:0}

.condition-list summary {
grid-template-columns:38px 1fr 25px}

.condition-list details>p {
padding-left:53px}

.consult-grid {
gap:35px}

.price-panel {
padding:28px}

.procedure-wheel {
grid-template-columns:1fr}

.procedure-wheel article {
min-height:auto;
border-right:0;
border-bottom:1px solid var(--line)!important}

.procedure-wheel article:last-child {
border-bottom:0!important}

.procedure-wheel span {
margin-bottom:35px}

.light-placeholder {
height:490px}

.credential-float {
right:15px}

.testimonial-stage {
grid-template-columns:42px 1fr 42px;
gap:8px}

.testimonial-track {
min-height:350px}

.slider-button {
width:40px;
height:40px}

.facility-gallery img {
height:260px}

.facility-gallery img+img {
margin-top:25px}

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

.contact-grid>* {
border-right:0!important;
border-bottom:1px solid rgba(255,255,255,.22)}

footer .container {
flex-direction:column;
text-align:center}

footer span {
margin-left:0}

}


@media(max-width:420px) {
.hero-copy h1 {
font-size:2.75rem}

.specialties {
gap:7px;
font-size:.68rem}

.doctor-visual {
min-height:350px}

.photo-placeholder {
height:340px;
width:250px}

.price-panel {
grid-template-columns:1fr auto}

.logo-cloud span {
flex-basis:140px}

.facility-gallery {
grid-template-columns:1fr}

.facility-gallery img+img {
margin-top:0}

.testimonial-track p {
font-size:1.25rem}

}



/* ==========================================================
   AJUSTES CONSOLIDADOS — styles-v2.css
   ========================================================== */
/* Segunda ronda de diseño: componentes refinados y espacios listos para enlaces */
.site-header {
padding:0;
background:transparent}


.site-header.scrolled {
padding:0;
background:rgba(255,255,255,.96);
box-shadow:0 8px 30px rgba(8,29,66,.12)}


.nav-shell {
width:var(--container);
height:92px;
padding:10px 0;
background:transparent;
border:0;
border-radius:0;
box-shadow:none}


.site-header:not(.scrolled) .nav-shell {
color:#fff}


.brand {
width:210px;
height:68px;
border-radius:0;
overflow:visible;
background:transparent}


.brand img {
width:100%;
height:100%;
object-fit:contain!important;
object-position:left center!important;
background:transparent!important}


.desktop-nav a {
color:#fff}


.site-header.scrolled .desktop-nav a {
color:#42506a}


.site-header:not(.scrolled) .menu-toggle span {
background:#fff}


.hero {
min-height:760px;
padding-top:180px;
background:linear-gradient(118deg,rgba(5,20,50,.98),rgba(27,62,123,.9) 62%,rgba(52,91,158,.82)),radial-gradient(circle at 80% 40%,#6d91ca,transparent 42%)}


.hero:after {
display:none}

.hero-grid-single {
grid-template-columns:minmax(0,850px)}


.hero-copy h1 {
max-width:850px}

.hero-video {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
z-index:0;
opacity:.42}


.hero-motion {
position:absolute;
inset:0;
overflow:hidden;
pointer-events:none}


.hero-motion i {
position:absolute;
border:1px solid rgba(255,255,255,.16);
border-radius:50%;
animation:heroPulse 8s ease-in-out infinite}


.hero-motion i:nth-child(1) {
width:620px;
height:620px;
right:-120px;
top:80px}


.hero-motion i:nth-child(2) {
width:430px;
height:430px;
right:-25px;
top:175px;
animation-delay:-2s}


.hero-motion i:nth-child(3) {
width:220px;
height:220px;
right:80px;
top:280px;
animation-delay:-4s}


.hero-motion i:nth-child(4) {
width:50vw;
height:1px;
left:55%;
top:50%;
border-radius:0;
animation:heroLine 6s ease-in-out infinite}


@keyframes heroPulse {
50% {
transform:scale(1.09) rotate(8deg);
opacity:.45}

}


@keyframes heroLine {
50% {
transform:translateX(-70px);
opacity:.2}

}


.trust-motion article {
transition:transform .35s ease}

.trust-motion article:hover {
transform:translateY(-12px)}


.trust-media,.trust-counter {
position:relative;
z-index:2;
width:90px;
height:90px;
margin:0 auto 24px;
border-radius:50%;
display:grid;
place-items:center;
background:#fff;
border:1px solid #a6bee2;
color:var(--blue);
box-shadow:0 14px 34px rgba(41,73,135,.13);
font-weight:800;
text-align:center;
line-height:1.15}


.trust-media span {
font-size:.66rem;
letter-spacing:.08em}

.joint-icon {
background:linear-gradient(145deg,#fff,#e0eaf8)}


.trust-counter {
font:800 1.5rem "Plus Jakarta Sans",sans-serif}

.trust-counter:after {
content:"+";
font-size:.8rem;
position:absolute;
right:13px;
top:16px}


.trust-line {
top:44px}


.condition-cards {
display:grid;
grid-template-columns:repeat(4,1fr);
gap:20px;
border:0;
margin-bottom:45px}


.condition-cards details {
position:relative;
background:#fff;
color:var(--ink);
border:0;
border-radius:34px 8px 34px 8px;
overflow:hidden;
box-shadow:0 15px 45px rgba(0,0,0,.14);
transition:transform .3s,box-shadow .3s}


.condition-cards details:hover {
transform:translateY(-8px);
box-shadow:0 24px 50px rgba(0,0,0,.24)}


.condition-cards summary {
display:grid;
grid-template-columns:1fr 34px;
padding:0;
gap:0;
align-items:center}


.condition-cards .condition-media {
grid-column:1/-1;
height:155px;
display:grid;
place-items:center;
background:linear-gradient(135deg,#dce8fa,#8eacd8);
color:var(--blue);
font-size:.68rem;
letter-spacing:.14em;
font-weight:800}


.condition-cards .condition-title {
padding:22px 10px 22px 22px;
font:700 .95rem/1.3 "Plus Jakarta Sans",sans-serif}


.condition-cards summary b {
color:var(--blue)}


.condition-cards details>p {
padding:0 22px 24px;
color:var(--muted);
font-size:.82rem}

.condition-cards details>p strong {
color:var(--blue);
display:block;
margin-bottom:7px}


.consult-grid {
grid-template-columns:1fr 460px}

.consult-media {
height:240px;
margin-bottom:38px;
border-radius:30px 8px 30px 8px;
display:grid;
place-items:center;
text-align:center;
background:linear-gradient(145deg,#dbe7f7,#a7bfe2);
color:var(--blue);
font-size:.72rem;
letter-spacing:.1em;
font-weight:800;
box-shadow:var(--shadow)}


.payment span {
display:flex;
align-items:center;
gap:8px}

.payment b {
width:25px;
height:25px;
border-radius:50%;
display:grid;
place-items:center;
background:#e4ecf8;
color:var(--blue);
font-size:.65rem}


.price-panel {
position:relative;
display:flex;
flex-direction:column;
gap:18px;
padding:44px;
overflow:hidden;
background:linear-gradient(155deg,#fff,#eaf1fb)}


.price-orbit {
position:absolute!important;
width:300px!important;
height:300px!important;
border:1px solid #bdcee8!important;
border-radius:50%;
right:-160px;
top:-120px;
margin:0!important;
background:transparent!important}


.price-item {
position:relative;
width:100%;
padding:22px 24px;
border-radius:20px;
background:rgba(255,255,255,.78);
border:1px solid #d5e0f0;
transition:.3s}


.price-item:hover {
transform:translateX(8px);
border-color:#7fa7e8}

.price-item span,.price-item em {
display:block;
color:var(--muted);
font-size:.78rem}

.price-item strong {
font:800 2.7rem "Plus Jakarta Sans",sans-serif;
color:var(--blue)}

.price-item strong small {
font-size:1rem;
vertical-align:top}

.price-item em {
font-style:normal}


.procedure-layout {
display:grid;
grid-template-columns:.78fr 1.22fr;
gap:25px;
margin-bottom:42px}

.procedure-media {
min-height:560px;
border:1px solid #b9cce8;
border-radius:70px 12px 70px 12px;
background:linear-gradient(145deg,#e9f0fa,#adc2e2);
display:grid;
place-items:center;
text-align:center;
color:var(--blue);
font-size:.75rem;
font-weight:800;
letter-spacing:.12em}


.procedure-layout .procedure-wheel {
grid-template-columns:1fr 1fr;
margin:0}

.procedure-layout .procedure-wheel article {
min-height:268px}

.procedure-layout .procedure-wheel span {
margin-bottom:35px;
font-size:.62rem;
width:52px;
height:52px}


.logo-marquee {
overflow:hidden;
margin-bottom:45px}

.logo-marquee .logo-cloud {
width:max-content;
flex-wrap:nowrap;
margin:0;
animation:logoScroll 28s linear infinite}

.logo-marquee:hover .logo-cloud {
animation-play-state:paused}

.logo-cloud span {
flex:0 0 190px;
width:190px}


@keyframes logoScroll {
to {
transform:translateX(-50%)}

}


.about {
position:relative;
background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(236,243,252,.9));
overflow:hidden}

.about:before {
content:"";
position:absolute;
width:650px;
height:650px;
border:1px solid #d6e2f3;
border-radius:50%;
right:-300px;
top:-250px;
animation:aboutFloat 10s ease-in-out infinite}

.about:after {
content:"";
position:absolute;
width:420px;
height:420px;
border:1px solid #e0e9f5;
border-radius:50%;
right:-80px;
top:-80px;
animation:aboutFloat 8s ease-in-out infinite reverse}

@keyframes aboutFloat {
50% {
transform:translate(-35px,28px) scale(1.05)}

}

.about-grid {
position:relative;
z-index:1}


.bio-list>div {
grid-template-columns:56px 1fr}

.bio-list>div>a {
width:46px;
height:46px;
border-radius:50%;
display:grid;
place-items:center;
border:1px solid #b6c9e5;
color:var(--blue);
font-size:.58rem;
font-weight:800}


.testimonial-stage {
max-width:none;
grid-template-columns:45px 1fr 45px}

.testimonial-track {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:20px;
min-height:330px;
overflow:hidden}

.testimonial-track blockquote,.testimonial-track blockquote.active {
display:block;
background:#fff;
border:1px solid #dbe4f0;
border-radius:30px 8px 30px 8px;
padding:30px;
text-align:left;
transition:opacity .35s,transform .35s}

.testimonial-track blockquote.is-hidden {
display:none}

.testimonial-track p {
font-size:1rem;
line-height:1.65}

.testimonial-track cite {
font-size:.86rem}

.stars {
margin-bottom:17px}


.facility-carousel {
overflow:hidden;
border-radius:34px}

.facility-track {
display:flex;
width:max-content;
gap:18px;
animation:facilityScroll 30s linear infinite}

.facility-carousel:hover .facility-track {
animation-play-state:paused}

.facility-track img {
width:430px;
height:450px;
object-fit:cover;
border-radius:24px}

@keyframes facilityScroll {
to {
transform:translateX(-50%)}

}


.contact {
background:linear-gradient(145deg,#f9fbfe,#fff);
color:var(--ink)}

.contact-heading {
display:block;
text-align:center;
max-width:950px;
margin:0 auto 60px}

.contact-heading .eyebrow {
justify-content:center}

.contact-heading h2 {
color:var(--blue-deep)}


.contact-grid {
grid-template-columns:repeat(4,1fr);
gap:18px;
border:0}

.contact-grid article {
min-height:310px;
padding:36px 24px;
border:1px solid #d9e1e9!important;
border-radius:30px;
background:rgba(255,255,255,.86);
display:flex;
flex-direction:column;
align-items:center;
text-align:center;
justify-content:flex-start;
box-shadow:0 15px 40px rgba(16,32,59,.06)}

.contact-grid article i {
width:64px;
height:64px;
border-radius:50%;
display:grid;
place-items:center;
background:#edf2f8;
color:var(--blue);
font-style:normal;
font-size:1.4rem;
margin-bottom:28px}

.contact-grid article h3 {
font:700 1.15rem "Plus Jakarta Sans",sans-serif;
margin-bottom:18px}

.contact-grid article p,.contact-grid article a {
font-size:.9rem;
color:var(--muted)}

.contact-grid article a {
font-weight:800;
color:var(--blue);
font-size:1.1rem}

.map-frame {
height:480px;
margin-top:55px;
padding:12px;
border:1px solid #d8e2ee;
border-radius:34px;
background:#fff;
box-shadow:var(--shadow);
overflow:hidden}

.map-frame iframe {
width:100%;
height:100%;
border:0;
border-radius:24px}


.floating-whatsapp img,.mobile-actions img {
width:28px;
height:28px}

.mobile-actions {
display:none}


footer .container {
flex-wrap:wrap}

footer img {
width:185px;
height:90px;
object-fit:contain!important;
background:transparent!important}

.privacy-open {
border:0;
background:none;
color:#c7d5e8;
text-decoration:underline;
cursor:pointer}

.privacy-modal {
position:fixed;
inset:0;
z-index:500;
background:rgba(4,17,41,.75);
padding:20px;
display:grid;
place-items:center;
backdrop-filter:blur(8px)}

.privacy-modal[hidden] {
display:none}

.privacy-dialog {
position:relative;
width:min(600px,100%);
background:#fff;
border-radius:30px;
padding:45px;
color:var(--ink);
box-shadow:0 35px 90px rgba(0,0,0,.3)}

.privacy-dialog h2 {
font:700 2rem "Plus Jakarta Sans",sans-serif;
margin-bottom:18px}

.privacy-dialog p {
color:var(--muted);
margin-bottom:25px}

.privacy-close {
position:absolute;
right:20px;
top:15px;
border:0;
background:none;
color:var(--blue);
font-size:2rem;
cursor:pointer}


@media(max-width:1050px) {
.condition-cards {
grid-template-columns:repeat(2,1fr)}

.procedure-layout {
grid-template-columns:1fr}

.procedure-media {
min-height:380px}

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

.desktop-nav a {
color:#42506a}

.site-header:not(.scrolled) .menu-toggle span {
background:#fff}

}


@media(max-width:760px) {
.nav-shell {
height:76px}

.brand {
width:165px;
height:58px}

.mobile-nav {
top:76px}

.hero {
padding-top:135px;
min-height:650px}

.hero-grid-single {
grid-template-columns:1fr}

.condition-cards {
grid-template-columns:1fr 1fr;
gap:12px}

.condition-cards .condition-media {
height:110px}

.condition-cards .condition-title {
font-size:.76rem;
padding:15px 7px 15px 13px}

.condition-cards details>p {
font-size:.75rem;
padding:0 14px 18px}

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

.procedure-layout .procedure-wheel {
grid-template-columns:1fr}

.procedure-media {
min-height:300px}

.testimonial-track {
grid-template-columns:1fr}

.testimonial-track blockquote.is-mobile-hidden {
display:none}

.facility-track img {
width:300px;
height:350px}

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

.map-frame {
height:360px}

.floating-whatsapp {
display:none}

.mobile-actions {
position:fixed;
z-index:120;
display:flex;
right:16px;
bottom:16px;
gap:10px}

.mobile-actions a {
width:56px;
height:56px;
border-radius:50%;
display:grid;
place-items:center;
background:var(--blue);
color:#fff;
box-shadow:0 12px 30px rgba(8,29,66,.3);
font-size:1.4rem}

.mobile-actions a:last-child {
background:#21c063}

footer {
padding-bottom:100px}

footer .container {
flex-direction:column}

.privacy-dialog {
padding:35px 25px}

}



/* ==========================================================
   AJUSTES CONSOLIDADOS — styles-v3.css
   ========================================================== */
/* Ajustes finos solicitados */
.section {
  padding-top: 78px;
  padding-bottom: 78px;
}

.section-heading {
  margin-bottom: 38px;
}

.trust-counter::after {
  top: 11px;
  right: 10px;
  font-size: 0.72rem;
  line-height: 1;
}

.conditions .section-heading.split {
  grid-template-columns: 1fr;
}

.consult-grid {
  align-items: center;
}

.payment span {
  min-height: 48px;
  padding: 8px 15px 8px 9px;
}

.payment b {
  width: 32px;
  height: 32px;
  background: #e4ecf8;
  font-size: 1rem;
}

.price-panel {
  gap: 14px;
  padding: 30px;
}

.price-item {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
  padding: 20px 22px;
}

.price-item:hover {
  transform: translateY(-4px);
}

.price-primary {
  color: #fff;
  background: linear-gradient(135deg, #294987, #173667);
  border-color: transparent;
  box-shadow: 0 14px 32px rgba(41, 73, 135, 0.22);
}

.price-primary span,
.price-primary em,
.price-primary strong {
  color: #fff;
}

.price-item strong {
  line-height: 1;
}

.price-orbit {
  opacity: 0.5;
}

.procedures .section-heading {
  margin-bottom: 32px;
}

.procedure-layout {
  gap: 18px;
  margin-bottom: 28px;
}

.procedure-media {
  min-height: 450px;
}

.procedure-layout .procedure-wheel article {
  min-height: 215px;
  padding: 23px 21px;
}

.procedure-layout .procedure-wheel span {
  width: 42px;
  height: 42px;
  margin-bottom: 20px;
}

.procedure-layout .procedure-wheel h3 {
  margin-bottom: 8px;
}

.insurance {
  padding-top: 72px;
  padding-bottom: 72px;
}

.logo-marquee {
  padding: 12px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.logo-cloud {
  border: 0;
}

.logo-cloud a {
  width: 180px;
  height: 105px;
  flex: 0 0 180px;
  display: grid;
  place-items: center;
  margin-right: 14px;
  padding: 18px;
  background: #fff;
  border: 0;
  border-radius: 18px;
  transition: transform 0.25s ease;
}

.logo-cloud a:hover {
  transform: translateY(-5px);
}

.logo-cloud img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.contact-grid article i img {
  width: 28px;
  height: 28px;
}

.contact-icon-slot {
  width: 64px;
  height: 64px;
  margin-bottom: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #edf2f8;
  color: #294987;
  font-size: 0.62rem !important;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.phone-symbol {
  font-family: system-ui, sans-serif;
  font-size: 1.45rem !important;
}

/* Alineación general de títulos */
.section h2,
.section-heading,
.contact-heading,
.facility-copy {
  text-align: center;
}

.section-heading,
.contact-heading {
  margin-left: auto;
  margin-right: auto;
}

.section-heading .eyebrow,
.contact-heading .eyebrow,
.facility-copy .eyebrow {
  justify-content: center;
}

.section-heading.split {
  display: block;
}

/*
  FONDO DEL HERO:
  1. Guarda el archivo dentro de images/, por ejemplo images/fondos/hero.mp4
  2. En index.html busca "PEGA_AQUI_EL_LINK_DEL_VIDEO" y escribe esa ruta en src.
  3. Elimina el atributo hidden del video.
*/
/* Curva y desvanecido para la futura imagen o video del hero */
.hero-video {
  inset: 24px 2.5%;
  width: 95%;
  height: calc(100% - 48px);
  border-radius: 52px 12px 52px 12px;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 9%, #000 91%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 9%, #000 91%, transparent 100%);
}

/* Contador: el signo queda en la misma línea que el número */
.trust-counter {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  white-space: nowrap;
}

.trust-counter::after {
  display: none;
}

.counter-plus {
  position: static;
  font-size: 1.05rem;
  line-height: 1;
  transform: none;
}

/* Rediseño completo de consulta */
.consult-redesign {
  max-width: 1050px;
}

.consult-redesign .section-heading {
  max-width: 820px;
}

.consult-prices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.consult-price {
  position: relative;
  min-height: 285px;
  padding: 35px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d6e1f0;
  border-radius: 34px 10px 34px 10px;
  box-shadow: 0 18px 48px rgba(16, 43, 92, 0.09);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.consult-price::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -90px;
  width: 210px;
  height: 210px;
  border: 1px solid rgba(41, 73, 135, 0.17);
  border-radius: 50%;
}

.consult-price:hover {
  transform: translateY(-7px);
  box-shadow: 0 24px 58px rgba(16, 43, 92, 0.15);
}

.consult-price.featured {
  color: #fff;
  background: linear-gradient(135deg, #294987, #122e60);
  border-color: transparent;
}

.price-label {
  display: block;
  margin-bottom: 12px;
  color: #62718a;
  font-size: 0.77rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.featured .price-label,
.featured .consult-price p {
  color: #d7e4f8;
}

.consult-price strong {
  display: block;
  color: #294987;
  font: 800 3.9rem/1 "Plus Jakarta Sans", sans-serif;
}

.featured strong {
  color: #fff;
}

.consult-price strong small {
  margin-right: 4px;
  font-size: 1.2rem;
  vertical-align: top;
}

.consult-price p {
  max-width: 340px;
  margin-top: 20px;
  color: #66738a;
  font-size: 0.88rem;
}

.price-tag {
  position: absolute;
  right: 24px;
  top: 24px;
  padding: 7px 11px;
  color: #294987;
  background: #edf3fc;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 800;
}

.featured .price-tag {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
}

.consult-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 24px;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid #dce5f1;
  border-radius: 22px;
}

.consult-bottom .payment {
  display: flex;
  flex-wrap: wrap;
}

/* Logo del footer clicable y con bordes orgánicos */
.footer-logo {
  display: block;
  padding: 7px;
  overflow: hidden;
  background: #294987;
  border-radius: 24px 7px 24px 7px;
  transition: transform 0.25s ease;
}

.footer-logo:hover {
  transform: translateY(-4px);
}

.footer-logo img {
  border-radius: 18px 5px 18px 5px;
}

.footer-credit {
  flex: 1 0 100%;
  margin-top: 8px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: #aabbd5;
  text-align: center;
  font-size: 0.76rem;
}

.footer-credit a {
  color: #fff;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.footer-credit a:hover {
  color: #c7d9f3;
}

footer .privacy-open {
  flex: 1 0 100%;
  width: max-content;
  margin: 10px auto 0;
  text-align: center;
}

.about-copy > p:not(.subtitle) {
  text-align: justify;
  text-justify: inter-word;
}

.about-doctor-frame {
  position: relative;
  width: 100%;
  height: 650px;
  overflow: hidden;
  background: linear-gradient(145deg, #dbe6f6, #9bb6df);
  border-radius: 70px 14px 70px 14px;
  box-shadow: 0 24px 60px rgba(16, 43, 92, 0.16);
}

.about-doctor-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* Header fijo con contraste correcto para el logotipo blanco */
.site-header.scrolled {
  background: rgba(27, 58, 116, 0.97);
  box-shadow: 0 10px 32px rgba(6, 22, 50, 0.22);
}

.site-header.scrolled .desktop-nav a {
  color: #fff;
}

.site-header.scrolled .desktop-nav a:hover {
  color: #c9dcf8;
}

.site-header.scrolled .button-small {
  color: #294987;
  background: #fff;
  box-shadow: 0 10px 26px rgba(4, 19, 46, 0.2);
}

.site-header.scrolled .menu-toggle span {
  background: #fff;
}

/* Imágenes locales: usar siempre rutas relativas dentro de images/ */
.trust-media img,
.education-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.trust-media img {
  padding: 12px;
}

.education-logo {
  width: 58px;
  height: 58px;
  padding: 7px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #fff;
  border: 1px solid #b6c9e5;
  border-radius: 50%;
}

.education-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  transform: scale(0.9);
}

/* Fondos de video cargados desde images/fondos/ */
.section-with-video {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.section-with-video > .container {
  position: relative;
  z-index: 2;
}

.section-video-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.section-with-video::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(255, 255, 255, 0.46);
  pointer-events: none;
}

.testimonials.section-with-video::before {
  background: rgba(243, 247, 252, 0.5);
}

.faq.section-with-video::before {
  background: rgba(255, 255, 255, 0.38);
}

.contact.section-with-video::before {
  background: rgba(255, 255, 255, 0.82);
}

.contact .section-video-bg {
  opacity: 0.38;
}

/* Centrado uniforme de botones dentro del contenido. */
.hero-actions,
.procedures .centered,
.insurance .centered,
.testimonials .centered,
.facility-copy {
  justify-content: center;
  text-align: center;
}

.about-copy .button,
.facility-copy .button,
.privacy-close-button {
  display: flex;
  width: max-content;
  margin-right: auto;
  margin-left: auto;
}

.consult-bottom {
  align-items: center;
  flex-direction: column;
  justify-content: center;
}

.consult-bottom .payment {
  justify-content: center;
}

/* La imagen principal de procedimientos ocupa correctamente su marco. */
.procedure-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.procedure-wheel article > img {
  width: 42px;
  height: 42px;
  margin-bottom: 20px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(27%) sepia(29%) saturate(1780%) hue-rotate(180deg) brightness(84%) contrast(89%);
  transition: filter 0.3s ease, transform 0.3s ease;
}

.procedure-wheel article:hover > img {
  filter: brightness(0) invert(1);
  transform: scale(1.08);
}

.resource-fallback {
  align-items: center;
  justify-content: center;
  padding: 7px;
  overflow-wrap: anywhere;
  color: #294987;
  background: #edf3fc;
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
}

.resource-fallback:not([hidden]) {
  display: flex;
}

/* Evita que Chrome muestre al mismo tiempo la imagen rota y su reemplazo. */
[hidden] {
  display: none !important;
}

/* Los nombres de archivo permanecen en el HTML, pero no ensucian el diseño. */
.condition-cards .condition-media.resource-fallback {
  position: relative;
  font-size: 0;
  background: linear-gradient(135deg, #dce8fa, #8eacd8);
}

.condition-cards .condition-media.resource-fallback::after {
  content: "Imagen pendiente";
  font-size: 0.66rem;
  letter-spacing: 0.12em;
}

.procedure-wheel .resource-fallback {
  width: 42px;
  height: 42px;
  margin-bottom: 20px;
  padding: 0;
  border: 1px solid #c7d5e8;
  border-radius: 50%;
  font-size: 0;
}

.procedure-wheel .resource-fallback::after {
  content: "+";
  font-size: 1rem;
  font-weight: 500;
}

.trust-media .resource-fallback {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  font-size: 0;
}

.trust-media .resource-fallback::after {
  content: "+";
  font-size: 1rem;
}

.condition-cards img.condition-media {
  width: 100%;
  height: 155px;
  object-fit: cover;
}

/* Acordeones con apertura y cierre más suaves */
.condition-cards details::details-content {
  block-size: 0;
  overflow: hidden;
  opacity: 0;
  transition: block-size 0.42s ease, opacity 0.3s ease, content-visibility 0.42s allow-discrete;
}

.condition-cards details {
  interpolate-size: allow-keywords;
}

@supports not selector(details::details-content) {
  .condition-cards details p {
    animation: conditionReveal 0.42s ease both;
  }
}

@keyframes conditionReveal {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.condition-cards details[open]::details-content {
  block-size: auto;
  opacity: 1;
}

.condition-cards details[open] {
  transform: translateY(-4px);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.2);
}

.condition-cards summary,
.condition-cards summary b {
  transition: color 0.3s ease, background-color 0.3s ease, transform 0.35s ease;
}

.condition-cards details[open] summary b {
  transform: rotate(45deg);
}

/*
  FONDO DE PADECIMIENTOS:
  Si deseas una fotografía, descomenta background-image y cambia la ruta.
  Ejemplo: background-image: linear-gradient(rgba(8,29,66,.90), rgba(8,29,66,.90)), url("images/fondos/padecimientos.webp");
*/
.conditions {
  background-position: center;
  background-size: cover;
}

/*
  FONDO DE CONSULTA:
  Ejemplo: background-image: linear-gradient(rgba(243,247,252,.92), rgba(243,247,252,.92)), url("images/fondos/consulta.webp");
*/
.consult {
  background-position: center;
  background-size: cover;
}

/*
  FONDO DE SOBRE MÍ:
  Ejemplo: background-image: linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)), url("images/fondos/sobre-mi.webp");
*/

/*
  FONDO DE ASEGURADORAS:
  Ejemplo: background-image: linear-gradient(rgba(20,48,101,.92), rgba(20,48,101,.92)), url("images/fondos/aseguradoras.webp");
*/

/*
  FONDO DE TESTIMONIOS:
  Ejemplo: background-image: linear-gradient(rgba(243,247,252,.94), rgba(243,247,252,.94)), url("images/fondos/testimonios.webp");
*/

/*
  FONDO DE INSTALACIONES:
  Ejemplo: background-image: linear-gradient(rgba(8,29,66,.88), rgba(8,29,66,.88)), url("images/fondos/instalaciones.webp");
*/

/*
  FONDO DE CONTACTO:
  Ejemplo: background-image: linear-gradient(rgba(255,255,255,.94), rgba(255,255,255,.94)), url("images/fondos/contacto.webp");
*/

/*
  FONDO DE PREGUNTAS FRECUENTES:
  El fondo anterior apuntaba a un archivo inexistente. Para agregarlo usa:
  background-image: linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)), url("images/fondos/preguntas.webp");
*/
.faq {
  background-image: linear-gradient(rgba(255,255,255,.96), rgba(243,247,252,.96));
}

/* Tarjetas completas de contacto: ubicación, WhatsApp y teléfono son clicables. */
.contact-grid .contact-card {
  min-height: 310px;
  padding: 36px 24px;
  border: 1px solid #d9e1e9;
  border-radius: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 15px 40px rgba(16, 32, 59, 0.06);
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.contact-grid a.contact-card:hover {
  transform: translateY(-7px);
  border-color: #9bb7df;
  box-shadow: 0 22px 52px rgba(16, 32, 59, 0.13);
}

.contact-grid .contact-card i {
  width: 64px;
  height: 64px;
  margin-bottom: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #294987;
  background: #edf2f8;
  font-style: normal;
  font-size: 1.4rem;
}

.contact-grid .contact-card i img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(27%) sepia(29%) saturate(1780%) hue-rotate(180deg) brightness(84%) contrast(89%);
}

.contact-grid .contact-card i span:not([hidden]) {
  display: grid;
  place-items: center;
  font-family: system-ui, sans-serif;
  color: #294987;
  font-family: Arial, sans-serif;
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1;
}

/* Los cuatro iconos de contacto comparten el mismo lenguaje visual. */
.contact-grid .contact-card i,
.contact-grid .contact-card .contact-icon {
  border: 1px solid #d7e3f3;
  color: #294987;
  background: #edf3fc;
}

.joint-icon img {
  filter: brightness(0) saturate(100%) invert(27%) sepia(29%) saturate(1780%) hue-rotate(180deg) brightness(84%) contrast(89%);
}

.mobile-call span {
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
}

.mobile-call img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

/* Ajustes específicos para celular */
@media (max-width: 760px) {
  .trust-path {
    gap: 34px;
  }

  .trust-path article {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
  }

  .trust-media,
  .trust-counter {
    width: 76px;
    height: 76px;
    margin: 0;
  }

  .trust-line {
    left: 38px;
  }

  .trust-path article strong {
    display: block;
    font-size: 1rem;
    line-height: 1.25;
  }

  .trust-path article p {
    margin-top: 6px;
    font-size: 0.82rem;
    line-height: 1.55;
  }

  .trust-counter {
    font-size: 1.12rem;
  }

  .procedure-layout .procedure-wheel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .procedure-layout .procedure-wheel article {
    min-height: 220px;
    padding: 18px 14px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line) !important;
  }

  .procedure-layout .procedure-wheel article:nth-child(2n) {
    border-right: 0;
  }

  .procedure-layout .procedure-wheel article:nth-last-child(-n + 2) {
    border-bottom: 0 !important;
  }

  .procedure-layout .procedure-wheel h3 {
    font-size: 0.9rem;
  }

  .procedure-layout .procedure-wheel p {
    font-size: 0.72rem;
    line-height: 1.5;
  }

  .procedure-wheel article > img {
    width: 38px;
    height: 38px;
    margin-bottom: 14px;
  }

  .mobile-actions {
    flex-direction: column;
    align-items: center;
  }

  .mobile-actions a:first-child {
    order: 1;
  }

  .mobile-actions a:last-child {
    order: 2;
  }

  .education-logo {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
  }

  .bio-list > div {
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
  }
}

.contact-grid .contact-card h3 {
  margin-bottom: 18px;
  font: 700 1.15rem "Plus Jakarta Sans", sans-serif;
}

.contact-grid .contact-card p {
  color: var(--muted);
  font-size: 0.9rem;
}

.contact-grid .contact-card strong {
  color: #294987;
  font-size: 1.1rem;
}

/* Contraste correcto en la consulta destacada */
.consult-price.featured p,
.consult-price.featured .price-label,
.consult-price.featured strong,
.consult-price.featured small {
  color: #fff;
}

.consult-price.featured p {
  opacity: 0.9;
}

.consult-price {
  animation: consultFloat 5.5s ease-in-out infinite;
}

.consult-price:nth-child(2) {
  animation-delay: -2.75s;
}

@keyframes consultFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}

/* Ritmo vertical más compacto en todo el sitio */
.section {
  padding-top: 54px;
  padding-bottom: 54px;
}

.section-heading {
  margin-bottom: 30px;
}

.procedures,
.consult,
.insurance,
.about,
.testimonials,
.facilities,
.faq,
.contact {
  padding-top: 54px;
  padding-bottom: 54px;
}

@media (max-width: 760px) {
  .section {
    padding-top: 46px;
    padding-bottom: 46px;
  }

  .price-panel {
    padding: 20px;
  }

  .price-item {
    gap: 10px;
    padding: 18px;
  }

  .price-item strong {
    font-size: 2.15rem;
  }

  .procedure-media {
    min-height: 250px;
  }

  .hero-video {
    inset: 12px;
    width: calc(100% - 24px);
    height: calc(100% - 24px);
    border-radius: 32px 8px 32px 8px;
  }

  .consult-prices {
    grid-template-columns: 1fr;
  }

  .consult-price {
    min-height: 250px;
    padding: 28px 24px;
  }

  .consult-price strong {
    font-size: 3.2rem;
  }

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

  .consult-bottom .button {
    width: 100%;
  }

  .about-doctor-frame {
    height: 500px;
    border-radius: 42px 10px 42px 10px;
  }
}

/* ==========================================================
   AJUSTES FINALES DE ALINEACIÓN Y CÉDULAS PROFESIONALES
   ========================================================== */

/* El botón principal acompaña la alineación izquierda del hero. */
.hero-actions {
  justify-content: flex-start;
  text-align: left;
}

/* Cada procedimiento centra su icono y su título dentro del recuadro. */
.procedure-layout .procedure-wheel article {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.procedure-layout .procedure-wheel article > img,
.procedure-layout .procedure-wheel .resource-fallback {
  margin-right: auto;
  margin-left: auto;
}

.procedure-layout .procedure-wheel h3 {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

/* Cédulas presentadas como datos profesionales legibles y ordenados. */
.credential-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0 24px;
}

.credential-list p {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 16px 18px 16px 21px;
  border: 1px solid #cfdbed;
  border-radius: 16px;
  background: linear-gradient(145deg, #f7faff, #edf3fc);
  box-shadow: 0 10px 24px rgba(16, 32, 59, 0.06);
}

.credential-list p::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  background: var(--blue);
  content: "";
}

.credential-list span,
.credential-list strong {
  display: block;
}

.credential-list span {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  line-height: 1.35;
}

.credential-list strong {
  color: var(--blue-deep);
  font: 800 1.08rem "Plus Jakarta Sans", sans-serif;
  letter-spacing: 0.03em;
}

@media (max-width: 760px) {
  /* Evita que el texto largo del botón se corte o sobresalga en celular. */
  .conditions-button {
    display: flex;
    width: min(100%, 330px);
    min-height: 54px;
    margin-right: auto;
    margin-left: auto;
    padding: 13px 18px;
    transform: none;
    gap: 10px;
    text-align: center;
    white-space: normal;
  }

  .conditions-button:hover {
    transform: translateY(-3px);
  }

  .credential-list {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .credential-list p {
    padding: 14px 16px 14px 19px;
  }
}

/* ==========================================================
   ORGANIZACIÓN DE FORMACIÓN, FAQ Y CONTACTO
   ========================================================== */

.about-section-title {
  position: relative;
  margin: 30px 0 12px;
  padding-left: 18px;
  color: var(--blue-deep);
  font: 800 1.08rem "Plus Jakarta Sans", sans-serif;
}

.about-section-title::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 4px;
  border-radius: 999px;
  background: var(--blue);
  content: "";
}

.about-section-title + .bio-list {
  margin-top: 0;
  margin-bottom: 22px;
}

.certification-list {
  margin-bottom: 28px;
}

.faq-cta {
  display: flex;
  justify-content: center;
  padding-top: 28px;
}

.faq-cta .button {
  min-width: 245px;
}

.contact-heading {
  width: 100%;
}

.contact-heading h2 {
  width: min(100%, 900px);
  margin-right: auto;
  margin-left: auto;
  text-align: center;
  text-wrap: balance;
}

@media (max-width: 760px) {
  .about-section-title {
    margin-top: 25px;
  }

  .faq-cta {
    padding-top: 22px;
  }

  .faq-cta .button {
    width: min(100%, 310px);
    min-width: 0;
    padding-right: 18px;
    padding-left: 18px;
    text-align: center;
  }

  .contact-heading h2 {
    max-width: 100%;
  }
}

/* ==========================================================
   AVISOS LEGALES DEL FOOTER
   ========================================================== */

.footer-legal {
  display: flex;
  flex: 1 0 100%;
  align-items: center;
  justify-content: center;
  gap: 12px 24px;
  flex-wrap: wrap;
  margin: 10px auto 0;
}

footer .footer-legal .privacy-open {
  flex: 0 0 auto;
  width: auto;
  margin: 0;
}

.privacy-ad-link {
  color: #c7d5e8;
  font-size: 0.9rem;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.25s ease;
}

.privacy-ad-link:hover {
  color: #fff;
}

.privacy-dialog {
  width: min(760px, 100%);
  max-height: min(88vh, 840px);
  overflow-y: auto;
}

.privacy-dialog .privacy-intro {
  margin-bottom: 24px;
  color: var(--blue);
  line-height: 1.55;
}

.privacy-content {
  padding-right: 8px;
}

.privacy-content section + section {
  margin-top: 22px;
}

.privacy-content h3 {
  margin-bottom: 8px;
  color: var(--blue-deep);
  font: 800 1rem "Plus Jakarta Sans", sans-serif;
}

.privacy-content p {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.75;
}

.privacy-content ul {
  display: grid;
  gap: 7px;
  margin: 10px 0 0;
  padding-left: 22px;
  color: var(--muted);
  line-height: 1.65;
}

.privacy-content a {
  color: var(--blue);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.privacy-dialog .privacy-close-button {
  margin-top: 30px;
}

@media (max-width: 760px) {
  .footer-legal {
    flex-direction: column;
    gap: 12px;
  }

  .privacy-dialog {
    max-height: 90vh;
    border-radius: 22px;
    padding: 32px 20px;
  }

  .privacy-dialog h2 {
    padding-right: 32px;
    font-size: 1.65rem;
  }
}
