/* Home refresh — light editorial hero inspired by the approved proposal. */
.site-enter {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  filter: blur(3px);
  transition:
    opacity .72s cubic-bezier(.22, 1, .36, 1) var(--site-enter-delay, 0ms),
    transform .86s cubic-bezier(.22, 1, .36, 1) var(--site-enter-delay, 0ms),
    filter .62s ease var(--site-enter-delay, 0ms);
  will-change: opacity, transform, filter;
}

.site-enter.site-enter-visible {
  opacity: 1;
  transform: none;
  filter: none;
}

.hero-section.hero-lb {
  isolation: isolate;
  min-height: 610px;
  padding: 66px 0 36px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(249,252,255,.96) 42%, rgba(234,246,255,.72) 100%),
    url('/assets/vector-dental-flow.svg') right center / auto 100% no-repeat,
    #f8fbff;
}

.hero-section.hero-lb::before,
.hero-section.hero-lb::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.hero-section.hero-lb::before {
  width: min(58vw, 850px);
  aspect-ratio: 1;
  top: -22%;
  right: -8%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 42% 48%, rgba(255,255,255,.98) 0 28%, rgba(186,222,247,.46) 48%, rgba(117,180,228,.14) 66%, transparent 70%);
  filter: blur(1px);
}

.hero-section.hero-lb::after {
  left: -80px;
  bottom: -150px;
  width: 470px;
  height: 470px;
  opacity: .42;
  background: url('/assets/vector-smile-orbit.svg') center / contain no-repeat;
}

.hero-lb .container { z-index: 2; }
.hero-lb .row.align-items-center { align-items: flex-start !important; }

.hero-lb .hero-text { padding-top: 0; }

.hero-lb .hero-text::before {
  content: "";
  position: absolute;
  top: -24px;
  left: -28px;
  width: 116px;
  height: 116px;
  z-index: -1;
  border: 1px solid rgba(47,142,229,.13);
  border-radius: 38% 62% 58% 42%;
  transform: rotate(18deg);
}

.hero-lb .hero-text h1 {
  max-width: 650px;
  color: #102649;
  font-size: clamp(52px, 5.1vw, 76px);
  line-height: .99;
  letter-spacing: -.045em;
  text-transform: none;
  text-wrap: balance;
}

.hero-lb .hero-text h1 span {
  color: #2f8ee5;
  font-style: normal;
}

.hero-lb .hero-text p {
  max-width: 565px;
  padding-bottom: 26px;
  color: #536781;
  font-size: 18px;
  line-height: 1.65;
}

.hero-lb .hero-divider {
  width: 62px;
  height: 4px;
  margin: 25px 0 20px;
  border-radius: 20px;
  background: linear-gradient(90deg, #2f8ee5, #89c8f3);
}

.hero-lb .hero-eyebrow.lead-badge {
  color: #245f9b;
  border-color: rgba(47,142,229,.22);
  background: rgba(255,255,255,.75);
  box-shadow: 0 10px 30px rgba(25,80,129,.09);
  backdrop-filter: blur(9px);
}

.hero-lb .he-dot { background: #2f8ee5; box-shadow: 0 0 0 4px rgba(47,142,229,.14); }
.hero-lb .hero-creds { color: #5f7085; }
.hero-lb .hc-chip strong { color: #102649; }
.hero-lb .hc-sep { background: rgba(16,38,73,.22); }
.hero-lb .btn-text { color: #173d69; }

.hero-lb .hero-cta .btn.btn-mauve {
  background: linear-gradient(135deg, #247fd0, #3ca4ec) !important;
  box-shadow: 0 16px 34px rgba(36,127,208,.26);
}

.hero-lb .hero-cta .btn.btn-mauve:hover {
  background: linear-gradient(135deg, #173d69, #247fd0) !important;
  transform: translateY(-2px);
}

.hero-lb .hero-mini-stats {
  display: none;
}

.hero-lb .hms-item h3,
.hero-lb .hms-item h3 * { color: #102649 !important; }
.hero-lb .hms-item span { color: #718197; }

.hero-lb .hero-figure {
  min-height: 530px;
  margin-top: -26px;
}

.hero-lb .hero-figure::before {
  content: "";
  position: absolute;
  inset: 7% 3% 2% 8%;
  z-index: 0;
  border: 1px solid rgba(73,157,218,.2);
  border-radius: 49% 51% 46% 54% / 43% 39% 61% 57%;
  background:
    linear-gradient(145deg, rgba(255,255,255,.84), rgba(202,232,252,.37)),
    url('/assets/vector-dental-flow.svg') center / cover no-repeat;
  box-shadow: 0 35px 90px rgba(54,122,178,.16), inset 0 0 65px rgba(255,255,255,.9);
  backdrop-filter: blur(4px);
  transform: rotate(-2deg);
}

.hero-lb .hero-ring {
  width: 470px;
  height: 470px;
  top: 54px;
  background: radial-gradient(circle at 50% 44%, rgba(255,255,255,.92), rgba(159,210,244,.28) 58%, transparent 69%);
}

.hero-lb .hero-ring::before { border-color: rgba(47,142,229,.24); }

.hero-lb .hero-cut {
  width: min(100%, 470px);
  height: 560px;
  max-height: 560px;
  object-fit: cover;
  object-position: center 36%;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 48% 48% 40% 40% / 30% 30% 16% 16%;
  -webkit-mask-image: none;
  mask-image: none;
  box-shadow: 0 28px 70px rgba(38,92,135,.16);
  filter: drop-shadow(0 32px 42px rgba(33,81,120,.20));
}

.hero-lb .hero-glow {
  background: radial-gradient(circle, rgba(90,172,229,.2), transparent 68%);
}

.hero-lb .hero-orb-1 {
  background: radial-gradient(circle, rgba(120,196,242,.28), transparent 68%);
}

.hero-lb .hero-orb-2 {
  background: radial-gradient(circle, rgba(187,219,244,.38), transparent 70%);
}

.hero-lb .hero-sparkle { color: #2f8ee5; opacity: .42; }
.hero-lb .hero-badge { box-shadow: 0 16px 45px rgba(28,73,111,.17); }
.hero-lb .hero-badge-rating { display: none; }

/* A shorter path through the home: four treatments first, with the full list one click away. */
.hero-lb + .container + .lb-marquee + .lb-pattern .row.g-4 > [class*="col-"]:nth-child(n+5) {
  display: none;
}

/* Home testimonial: larger editorial copy with a more compact vertical rhythm. */
.home-testimonials-section {
  padding-top: 60px !important;
  padding-bottom: 44px !important;
}

.home-testimonials-section .sec-head { margin-bottom: 26px; }

.home-testimonials-section + .lbsec { padding-top: 62px; }

.home-testimonials-section .video-testimonial-feature {
  grid-template-columns: minmax(0, 1fr) 360px;
  max-width: 1120px;
  margin-top: 24px;
  align-items: stretch;
}

.home-testimonials-section .video-testimonial-feature .vt-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 46px 54px;
}

.home-testimonials-section .video-testimonial-feature h3 {
  margin: 13px 0 16px;
  font-size: clamp(38px, 3.4vw, 52px);
  line-height: 1.08;
}

.home-testimonials-section .video-testimonial-feature p {
  max-width: 570px;
  margin-bottom: 24px;
  font-size: 17px;
  line-height: 1.75;
}

.home-testimonials-section .video-testimonial-feature video {
  width: 100%;
  height: 560px;
  max-height: 560px;
  object-fit: contain;
  background: #080d15;
}

/* New before/after material on the testimonials page. */
.patient-case-gallery {
  padding: 82px 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 10%, rgba(111,184,232,.18), transparent 28%),
    linear-gradient(145deg, #f9fcff, #eef6fc);
}

.patient-case-heading {
  max-width: 760px;
  margin: 0 auto 38px;
  text-align: center;
}

.patient-case-heading h2 {
  margin: 12px 0 14px;
  color: #13233b;
  font: 400 clamp(36px, 4.4vw, 60px)/1.08 var(--font-display);
  letter-spacing: -.035em;
}

.patient-case-heading p {
  margin: 0;
  color: #607087;
  font-size: 17px;
  line-height: 1.7;
}

.patient-case-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 930px;
  margin: 0 auto;
}

.patient-case-grid figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border: 8px solid rgba(255,255,255,.92);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(19,35,59,.14);
}

.patient-case-grid img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 38%;
  transition: transform .8s cubic-bezier(.22,1,.36,1);
}

.patient-case-grid figure:hover img { transform: scale(1.025); }

.patient-case-grid figcaption {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 17px;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 16px;
  color: #13233b;
  background: rgba(255,255,255,.9);
  box-shadow: 0 12px 34px rgba(19,35,59,.16);
  backdrop-filter: blur(12px);
}

.patient-case-grid figcaption span {
  color: #2f8ee5;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}

.patient-case-grid figcaption strong { font: 600 17px/1.2 var(--font-body); }

.patient-case-note {
  max-width: 720px;
  margin: 24px auto 0;
  color: #718096;
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
}

.results-proof-section { padding: 72px 0; }
.results-proof-list article p { display: none; }
.results-proof-list article { padding-top: 15px; padding-bottom: 15px; }
.lb-academic.lbsec { padding-top: 72px; padding-bottom: 72px; }

.mobile-menu-cta {
  position: absolute;
  right: 26px;
  bottom: max(20px, env(safe-area-inset-bottom));
  left: 26px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  border-radius: 999px;
  color: #fff !important;
  background: linear-gradient(135deg, #247fd0, #3ca4ec);
  box-shadow: 0 15px 35px rgba(36,127,208,.25);
  font-weight: 700;
}

.mobile-menu-cta i { font-size: 17px; }

/* Desktop off-canvas menu: compact, fixed to the viewport and without scrolling. */
body:has(.mobile-nav.open) { overflow: hidden; }

.mobile-nav {
  width: min(100vw, 430px);
  height: 100dvh;
  max-height: 100dvh;
  padding: 26px 30px 16px;
  overflow: hidden;
}

.mobile-nav .res-log { margin-bottom: 14px; }
.mobile-nav .res-log img {
  width: auto;
  max-width: 150px;
  max-height: 50px;
  object-fit: contain;
}
.mobile-nav > ul { margin: 0; padding: 0; }
.mobile-nav > ul > li { padding: 7px 0; }
.mobile-nav > ul li > a { font-size: 13px; line-height: 22px; }
.mobile-nav ul > li.menu-item-has-children::before { top: 14px; }
.mobile-nav > ul li.menu-item-has-children ul.sub-menu {
  margin-top: 3px;
  padding: 4px 0 2px 18px;
}
.mobile-nav > ul > li.menu-item-has-children.active > ul.sub-menu li { padding: 2px 0; }
.mobile-nav a#res-cross::before { top: 17px; right: 18px; font-size: 24px; }

/* Mascot-led WhatsApp CTA: the whole illustration remains the clickable link. */
.wa-float {
  right: 18px;
  bottom: 12px;
  width: 150px;
  height: 158px;
  padding: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent url('/media/mascot/mascota-whatsapp.png') center bottom / contain no-repeat;
  box-shadow: none;
  filter: drop-shadow(0 14px 18px rgba(18,58,88,.2));
  transform-origin: 70% 100%;
  transition: transform .3s ease, filter .3s ease;
  animation: mascot-wa-breathe 3.6s ease-in-out infinite;
  will-change: transform;
}

.wa-float > * { display: none !important; }

.wa-float:hover {
  width: 150px;
  color: #fff;
  box-shadow: none;
  filter: drop-shadow(0 18px 24px rgba(18,58,88,.28));
  transform: translateY(-5px) rotate(-1deg);
  animation-play-state: paused;
}

@keyframes mascot-wa-breathe {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-7px) rotate(-1.3deg); }
}

.wa-float:focus-visible {
  outline: 3px solid #247fd0;
  outline-offset: 4px;
  border-radius: 24px;
}

/* Compact mobile drawer: all navigation remains visible without inner scrolling. */
@media (max-width: 1199.98px) {
  .mobile-nav {
    width: min(100vw, 430px);
    height: 100dvh;
    max-height: 100dvh;
    padding: 24px 26px 14px;
    overflow: hidden;
  }

  .mobile-nav .res-log { margin-bottom: 13px; }
  .mobile-nav .res-log img { max-width: 142px; max-height: 48px; object-fit: contain; }
  .mobile-nav > ul > li { padding: 6px 0; }
  .mobile-nav > ul li > a { font-size: 13px; line-height: 22px; }
  .mobile-nav ul > li.menu-item-has-children::before { top: 13px; }
  .mobile-nav > ul li.menu-item-has-children ul.sub-menu {
    margin-top: 3px;
    padding: 4px 0 2px 18px;
  }
  .mobile-nav > ul > li.menu-item-has-children.active > ul.sub-menu li { padding: 2px 0; }
  .mobile-nav > ul > li.menu-item-has-children.active > ul.sub-menu li::after { top: 13px; left: -13px; width: 4px; height: 4px; }
  .mobile-nav a#res-cross::before { top: 18px; right: 18px; font-size: 24px; }
}

@media (max-width: 991.98px) {
  .hero-section.hero-lb {
    min-height: auto;
    padding: 82px 0 36px;
    text-align: center;
    background-position: 72% center;
  }
  .hero-section.hero-lb::before { width: 105vw; top: 30%; right: -32%; }
  .hero-section.hero-lb::after { width: 320px; height: 320px; bottom: 20%; }
  .hero-lb .hero-text h1,
  .hero-lb .hero-text p,
  .hero-lb .hero-mini-stats { margin-left: auto; margin-right: auto; }
  .hero-lb .hero-divider { margin-left: auto; margin-right: auto; }
  .hero-lb .hero-cta,
  .hero-lb .hero-creds { justify-content: center; }
  .hero-lb .hero-figure { min-height: 535px; margin-top: 20px; }
  .hero-lb .hero-cut { height: 520px; max-height: 520px; }
  .home-testimonials-section .video-testimonial-feature { grid-template-columns: 1fr; }
  .home-testimonials-section .video-testimonial-feature video { height: min(68vh, 600px); }
}

@media (max-width: 575.98px) {
  .hero-section.hero-lb { padding: 38px 0 12px; }
  .hero-lb .hero-eyebrow.lead-badge {
    max-width: calc(100vw - 32px);
    padding-right: 14px;
    padding-left: 14px;
    font-size: 10px;
    letter-spacing: .13em;
  }
  .hero-lb .hero-text::before { top: -12px; left: 2px; width: 82px; height: 82px; }
  .hero-lb .hero-text h1 { font-size: clamp(37px, 10.5vw, 46px); }
  .hero-lb .hero-text p { padding-bottom: 0; font-size: 16px; line-height: 1.5; }
  .hero-lb .hero-creds { display: none; }
  .hero-lb .hero-cta { margin-top: 21px; gap: 10px; justify-content: center; }
  .hero-lb .hero-cta .btn { padding: 15px 24px; }
  .hero-lb .hero-cta .btn-text { font-size: 14px; }
  .hero-lb .hero-figure { min-height: 390px; margin-top: -2px; }
  .hero-lb .hero-figure::before { inset: 9% -8% 0; }
  .hero-lb .hero-ring { width: 335px; height: 335px; top: 28px; }
  .hero-lb .hero-cut {
    width: min(92vw, 350px);
    height: 390px;
    max-height: 390px;
    object-position: center 34%;
  }
  .hero-badge-exp { bottom: 4px; }
  .wa-float,
  .wa-float:hover {
    right: 7px;
    bottom: 5px;
    width: 104px;
    height: 110px;
  }
  .results-proof-section { padding: 54px 0; }
  .lb-academic.lbsec { padding-top: 54px; padding-bottom: 54px; }
  .home-testimonials-section { padding-top: 48px !important; padding-bottom: 38px !important; }
  .home-testimonials-section + .lbsec { padding-top: 48px; }
  .home-testimonials-section .video-testimonial-feature .vt-copy { padding: 32px 25px; }
  .home-testimonials-section .video-testimonial-feature h3 { font-size: 34px; }
  .home-testimonials-section .video-testimonial-feature p { font-size: 16px; }
  .patient-case-gallery { padding: 58px 0; }
  .patient-case-grid { grid-template-columns: 1fr; gap: 18px; }
  .patient-case-grid img { aspect-ratio: 4 / 5; }
}

@media (max-height: 650px) and (max-width: 1199.98px) {
  .mobile-nav { padding-top: 15px; }
  .mobile-nav .res-log { margin-bottom: 5px; }
  .mobile-nav .res-log img { max-height: 34px; }
  .mobile-nav > ul > li { padding: 3px 0; }
  .mobile-nav > ul li > a { font-size: 12px; line-height: 18px; }
  .mobile-nav > ul li.menu-item-has-children ul.sub-menu { padding-top: 2px; padding-bottom: 0; }
  .mobile-nav > ul > li.menu-item-has-children.active > ul.sub-menu li { padding: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .site-enter,
  .site-enter.site-enter-visible {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
  .hero-lb .hero-cut,
  .hero-lb .hero-ring,
  .hero-lb .hero-ring::before,
  .hero-lb .hero-orb,
  .hero-lb .hero-sparkle,
  .hero-lb .hero-badge { animation: none !important; }
  .wa-float { animation: none !important; }
}
