.hero-photo,
.profile-photo,
.photo-panel{
  position:relative;
  overflow:hidden;
  background:#d9d0c2;
  border:1px solid rgba(25,37,34,.10);
  box-shadow:var(--shadow);
}

.hero-photo{
  aspect-ratio:4/5;
  min-height:0;
  border-radius:48px 48px 26px 26px;
}
.hero-photo:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(11,22,19,.68) 0,rgba(11,22,19,.10) 34%,transparent 58%);
  z-index:1;
  pointer-events:none;
}
.hero-photo:before{
  content:"";
  position:absolute;
  inset:16px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:36px 36px 18px 18px;
  z-index:2;
  pointer-events:none;
}

.hero-photo img,
.profile-photo img,
.photo-panel img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  opacity:0;
  transition:opacity .28s ease;
}
.hero-photo img{
  position:absolute;
  inset:0;
  object-position:center 40%;
}
.hero-photo img.is-loaded,
.profile-photo img.is-loaded,
.photo-panel img.is-loaded{
  opacity:1;
}
.photo-loading{
  background:linear-gradient(135deg,#ded5c7,#cfc6b8);
}
.image-load-error{
  background:#d9d0c2;
}

.hero-photo-caption{
  position:absolute;
  left:30px;
  right:30px;
  bottom:28px;
  z-index:3;
  color:#fff;
}
.hero-photo-caption strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:400;
  line-height:1.15;
}
.hero-photo-caption span{
  display:block;
  margin-top:7px;
  max-width:340px;
  font-size:10px;
  line-height:1.5;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:#eef2ef;
}

.hero-with-photo .hero-grid{
  grid-template-columns:minmax(0,1.08fr) minmax(350px,.72fr);
  gap:54px;
  align-items:center;
}
.hero-with-photo h1{
  font-size:clamp(44px,5.6vw,70px);
}

.page-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:64px;
  align-items:center;
}
.page-hero-grid .breadcrumbs{
  grid-column:1/-1;
  margin-bottom:-22px;
}
.profile-photo{
  aspect-ratio:4/5;
  border-radius:28px;
}
.profile-photo img{
  object-position:center 38%;
}

.photo-panel{
  margin-top:30px;
  border-radius:24px;
}
.photo-panel.landscape{
  aspect-ratio:4/3;
}
.photo-panel.portrait{
  aspect-ratio:4/5;
  max-width:420px;
}
.photo-panel.telemedicina img{
  object-position:center center;
}
.photo-panel.raciocinio img{
  object-position:center 40%;
}
.photo-caption{
  padding:12px 16px;
  background:var(--paper);
  color:var(--muted);
  font-size:12px;
  border-top:1px solid var(--line);
}

@media(max-width:1000px){
  .page-hero-grid{
    grid-template-columns:minmax(0,1fr) 280px;
    gap:42px;
  }
  .hero-with-photo .hero-grid{
    grid-template-columns:minmax(0,1fr) minmax(310px,.72fr);
    gap:38px;
  }
}

@media(max-width:900px){
  .page-hero-grid,
  .hero-with-photo .hero-grid{
    grid-template-columns:1fr;
  }
  .hero-with-photo .hero-grid{
    gap:30px;
  }
  .page-hero-grid .breadcrumbs{
    grid-column:auto;
    margin-bottom:0;
  }
  .profile-photo{
    max-width:420px;
  }
  .hero-photo{
    width:min(100%,520px);
    margin-inline:auto;
  }
  .photo-panel.landscape{
    max-width:680px;
  }
  .photo-panel.portrait{
    max-width:420px;
  }
}

@media(max-width:620px){
  .hero-with-photo{
    padding-bottom:44px;
  }
  .hero-with-photo .hero-grid{
    gap:26px;
  }
  .hero-photo{
    width:100%;
    aspect-ratio:4/5;
    border-radius:28px;
  }
  .hero-photo:before{
    inset:11px;
    border-radius:20px;
  }
  .hero-photo:after{
    background:linear-gradient(to top,rgba(11,22,19,.66) 0,rgba(11,22,19,.08) 31%,transparent 52%);
  }
  .hero-photo img{
    object-position:center 37%;
  }
  .hero-photo-caption{
    left:22px;
    right:22px;
    bottom:20px;
  }
  .hero-photo-caption strong{
    font-size:21px;
  }
  .hero-photo-caption span{
    font-size:9px;
    line-height:1.45;
    max-width:280px;
  }
  .profile-photo{
    border-radius:22px;
  }
  .photo-panel{
    border-radius:20px;
    margin-top:24px;
  }
  .whatsapp-float{
    font-size:0;
    padding:11px 14px;
    right:12px;
    bottom:12px;
  }
  .whatsapp-float:after{
    content:"Agendar";
    font-size:12px;
    letter-spacing:.01em;
  }
}

@media(prefers-reduced-motion:reduce){
  .hero-photo img,
  .profile-photo img,
  .photo-panel img{
    transition:none;
  }
}
