/* Shared by both routes. Content keeps the original responsive V1 layout. */
/* Match Safari’s root/background tint to the dark video. Browser controls
   remain native UI; avoid the previous contrasting green safe-area bands. */
html, body {
  margin: 0;
  min-height: 100%;
  width: 100%;
  overflow-x: hidden;
  background-color: #030e16;
}
/* Keep this body-level layer outside all content/animation/overflow wrappers.
   lvh covers the largest iOS viewport even while the browser bars retract;
   vh is the fallback. A definite height makes the video's 100% reliable. */
.video-background {
  position: fixed;
  inset: 0 auto auto 0;
  width: 100%;
  height: 100vh;
  height: 100lvh;
  min-height: 100dvh;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background: #030e16 url('/assets/background-poster-v3.jpg') center / cover no-repeat;
}
.video-background video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  opacity: 0;
}
.video-background.is-playing video { opacity: 1; }
/* The supplied PNG has large transparent margins. This viewport trims only
   those margins in CSS, without editing the asset or distorting its artwork.
   Visible bounds: x=142..837, y=619..1256 in a 1080 x 1920 canvas. */
.brand-logo {
  display: block;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  aspect-ratio: 695 / 637;
  max-width: 100%;
}
.brand-logo img {
  position: absolute;
  width: 155.395683%;
  max-width: none;
  height: auto;
  left: -20.431655%;
  top: -97.174254%;
}
.brand-logo--home { width: 100px; margin: 34px auto 18px; }
/* Share the available space above the buttons evenly around the handle. */
.home-header { flex: 1 0 auto; }
.home-header .brand-logo--home { margin-bottom: 0; }
.home-profile-title {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 104px;
  padding-block: 24px;
  padding-inline: 32px;
}
.instagram-handle {
  position: relative;
  display: block;
  white-space: nowrap;
}
/* Center the text independently of its badge, on the logo/button centerline.
   Side padding reserves badge space even at a 320px viewport. */
.instagram-badge {
  position: absolute;
  left: calc(100% + .28em);
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 1em;
  height: 1em;
  overflow: hidden;
}
.instagram-badge img {
  position: absolute;
  width: 107%;
  height: 110%;
  max-width: none;
  left: -3.5%;
  top: -5%;
}
.brand-logo--clinic { width: 110px; margin-inline: auto; }
/* Clinic-button asset: square crop x=285, y=450, side=460 on 1080x1350.
   The complete artwork remains centered; the original image is unchanged. */
.brand-logo--button {
  width: 40px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #073c70;
}
.brand-logo--button img {
  width: 234.782609%;
  left: -61.956522%;
  top: -97.826087%;
}
/* Transparent glass buttons retain their tint over the moving background.
   WhatsApp stays less transparent, with its original pulse and sheen. */
.glass-button.button-blue,
.glass-button.button-whatsapp {
  -webkit-backdrop-filter: blur(16px) saturate(120%);
  backdrop-filter: blur(16px) saturate(120%);
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 15, 30, .8);
}
.glass-button.button-blue {
  background: linear-gradient(120deg, rgba(12, 65, 111, .22), rgba(32, 111, 169, .12));
  border-color: rgba(164, 215, 255, .38);
  box-shadow: 0 6px 22px rgba(0, 30, 66, .22), inset 0 1px 0 rgba(255, 255, 255, .12);
}
.glass-button.button-blue:hover {
  background: linear-gradient(120deg, rgba(18, 80, 133, .28), rgba(45, 130, 191, .18));
  border-color: rgba(190, 228, 255, .65);
}
.glass-button.button-whatsapp {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(115deg, rgba(10, 102, 61, .50), rgba(22, 149, 83, .40));
  border-color: rgba(133, 244, 176, .55);
  box-shadow: 0 5px 24px rgba(7, 86, 48, .28);
}
.glass-button.button-whatsapp:hover {
  background: linear-gradient(115deg, rgba(13, 120, 71, .58), rgba(24, 164, 91, .48));
  border-color: rgba(175, 255, 207, .78);
}
.button-whatsapp > * { position: relative; z-index: 2; }
.button-whatsapp::before,
.button-whatsapp::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 1;
}
/* The outer layer owns the continuous depth motion. The link keeps its
   entrance/press transform and the independent WAAPI hover/mobile shake.
   Scale and green glow share one timeline, peaking together at 1.02. */
.whatsapp-depth {
  width: 100%;
  min-width: 0;
  border-radius: 1rem;
  transform-origin: center;
  animation: whatsapp-depth 3s ease-in-out infinite;
}
@keyframes whatsapp-depth {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 rgba(80, 244, 148, 0); }
  50% { transform: scale(1.02); box-shadow: 0 0 16px rgba(80, 244, 148, .24); }
}
/* Animate separate layers so the entrance/press transforms remain intact. */
.button-whatsapp::before {
  inset: 0;
  border-radius: inherit;
  animation: whatsapp-pulse 3s ease-in-out infinite;
}
.button-whatsapp::after {
  inset: 0 auto 0 0;
  width: 55%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .24), transparent);
  transform: translateX(-120%);
  animation: whatsapp-sheen 4.5s ease-in-out infinite;
}
@keyframes whatsapp-pulse {
  0%, 100% { box-shadow: inset 0 0 0 1px rgba(140, 255, 186, .08), inset 0 0 5px rgba(118, 255, 172, .03); }
  50% { box-shadow: inset 0 0 0 2px rgba(140, 255, 186, .38), inset 0 0 18px rgba(118, 255, 172, .17); }
}
@keyframes whatsapp-sheen {
  0%, 12% { transform: translateX(-120%); }
  65%, 100% { transform: translateX(220%); }
}
/* Only the external “Acessar Site” link receives the light-blue glow.
   A pseudo-element avoids replacing its entrance or press animation. */
.glass-button.button-site { position: relative; isolation: isolate; }
.button-site::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: 0 0 15px rgba(125, 211, 255, .38), inset 0 0 10px rgba(170, 229, 255, .16);
  animation: site-glow 3s ease-in-out infinite;
}
@keyframes site-glow {
  0%, 100% { opacity: .18; }
  50% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .whatsapp-depth { animation: none; transform: none; box-shadow: none; }
  .button-site::before { animation: none; opacity: .18; }
  .button-whatsapp, .button-site { animation: none !important; opacity: 1; transition: none !important; }
  .button-whatsapp:hover, .button-whatsapp:active,
  .button-site:hover, .button-site:active { transform: none !important; }
  .button-whatsapp::before, .button-whatsapp::after { animation: none; }
  .button-whatsapp::after { display: none; }
}
@media (min-width: 640px) {
  .brand-logo--home { width: 120px; }
  .brand-logo--clinic { width: 128px; }
}
@media (prefers-reduced-motion: reduce) {
  .video-background video { display: none; }
}

/* A translucent overlay keeps the video visible all the way to the footer. */
.video-readability-overlay { position: fixed; inset: 0; pointer-events: none; background: linear-gradient(rgba(0,0,0,.4), rgba(0,0,0,.6)); }
