@charset "UTF-8";
/*
 * RR Estudio Dental — THA experience parity, adapted to RR's visual identity.
 * Source: THA Website-THA/marketing-site/src/app.css (reveal + marquee patterns).
 * Presentation is opt-in and degrades to fully visible content without JS.
 */
[data-rr-reveal] {
  opacity: 1;
  transform: none;
}
.rr-reveal-ready [data-rr-reveal] {
  opacity: 0;
  transform: translateY(1.5rem);
  transition:
    opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--rr-reveal-delay, 0ms);
}
.rr-reveal-ready [data-rr-reveal][data-rr-reveal-effect="fade"] {
  transform: none;
}
.rr-reveal-ready [data-rr-reveal].is-visible {
  opacity: 1;
  transform: none;
}
/* Keep the 600ms reveal independent from the 250ms interactive card lift.
   Otherwise reveal's transition shorthand suppresses hover/focus easing. */
.rr-reveal-ready [data-rr-reveal].rr-service-card {
  transition:
    opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 600ms cubic-bezier(0.22, 1, 0.36, 1),
    translate 250ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 250ms ease,
    border-color 250ms ease;
  transition-delay:
    var(--rr-reveal-delay, 0ms), var(--rr-reveal-delay, 0ms),
    0ms, 0ms, 0ms;
}
.rr-experience-linked-card {
  position: relative;
  cursor: pointer;
}
.rr-experience-linked-card .rr-experience-link {
  position: static;
}
.rr-experience-linked-card .rr-experience-link::after {
  content: "";
  position: absolute;
  z-index: 8;
  inset: 0;
  border-radius: inherit;
}
.rr-experience-linked-card .rr-experience-link:focus {
  outline: none;
}
.rr-experience-linked-card .rr-experience-link:focus-visible::after {
  box-shadow: inset 0 0 0 3px var(--rr-brand-orange);
}

/* Server-rendered, JS-independent hit areas for existing one-action RR cards.
   The native anchor stays focusable and owns navigation, including Turbo/external links.
   Do not include multi-link cards or purely editorial panels here. */
:where(
  .rr-founder-card, .rr-contact-feature, .rr-address-card, .rr-location-internal,
  .rr-value-grid > article, .rr-contact-stack > article,
  .rr-contact-notices > article, .rr-corp-plan
) {
  position: relative;
  cursor: pointer;
}
:where(
  .rr-founder-card, .rr-contact-feature, .rr-address-card, .rr-location-internal,
  .rr-value-grid > article, .rr-contact-stack > article,
  .rr-contact-notices > article, .rr-corp-plan
) a[href]::after {
  content: "";
  position: absolute;
  z-index: 8;
  inset: 0;
  border-radius: 18px;
}
:where(
  .rr-founder-card, .rr-contact-feature, .rr-address-card, .rr-location-internal,
  .rr-value-grid > article, .rr-contact-stack > article,
  .rr-contact-notices > article, .rr-corp-plan
):has(a[href]:focus-visible) {
  outline: 3px solid var(--rr-brand-orange);
  outline-offset: -3px;
}


/* Fixed copy heights prevent button and image jumps on small screens. */
.rr-hero-intro-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
}
.rr-hero-intro-topline .rr-overline { margin-bottom: 0; }
.rr-hero-rotation-toggle {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 250, 244, 0.42);
  border-radius: 50%;
  background: transparent;
  color: #fffaf4;
  font-size: 15px;
  cursor: pointer;
}
.rr-hero-rotation-toggle[hidden] { display: none; }
.rr-hero-rotation-toggle:hover { background: rgba(255, 255, 255, 0.11); }
.rr-hero-rotation-toggle:focus-visible {
  outline: 2px solid var(--rr-orange-light);
  outline-offset: 3px;
}
.rr-hero-copy [data-rr-hero-title],
.rr-hero-copy [data-rr-hero-lead] {
  transition: opacity var(--rr-hero-transition, 220ms) ease;
}
.rr-hero-copy .is-swapping { opacity: 0; }

/* Streaming fade: characters follow their actual reading order and natural wraps. */
.rr-hero-stream-word {
  display: inline-block;
  white-space: nowrap;
}
.rr-hero-stream-char { display: inline-block; }
.rr-hero-streaming [data-rr-hero-title],
.rr-hero-streaming [data-rr-hero-lead] { transition: none; }
.rr-hero-streaming .rr-hero-stream-char {
  animation: rr-hero-stream-fade var(--rr-hero-stream-duration, 440ms)
    cubic-bezier(.22, 1, .36, 1) both;
  animation-delay: var(--rr-hero-stream-delay, 0ms);
}
/* Measurement clones must occupy their full line height, without animating. */
.rr-hero-stream-probe .rr-hero-stream-char {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}
@keyframes rr-hero-stream-fade {
  from {
    opacity: 0;
    transform: translate3d(0, var(--rr-hero-stream-rise, 5px), 0);
    filter: blur(var(--rr-hero-stream-blur, 2px));
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .rr-hero-copy [data-rr-hero-title],
  .rr-hero-copy [data-rr-hero-lead] { transition: none; }
  .rr-hero-streaming .rr-hero-stream-char {
    animation: none;
    opacity: 1;
    transform: none;
    filter: none;
  }
}

.rr-motion-strip {
  overflow: hidden;
  border-block: 1px solid var(--rr-line);
  background: var(--rr-bg-muted);
  color: var(--rr-ink-soft);
}
.rr-motion-track {
  display: flex;
  align-items: center;
  width: max-content;
  /* Longer treatment lineup: preserve a comfortable reading speed. */
  animation: rr-marquee 132s linear infinite;
}
.rr-motion-group {
  display: flex;
  flex: none;
  align-items: center;
  gap: 2rem;
  padding: 1rem 2rem 1rem 0;
}
.rr-motion-group span {
  font-size: 0.69rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  white-space: nowrap;
  text-transform: uppercase;
}
.rr-motion-group i {
  display: block;
  width: 0.3rem;
  height: 0.3rem;
  flex: none;
  border-radius: 50%;
  background: var(--rr-brand-orange);
}
.rr-motion-strip:hover .rr-motion-track {
  animation-play-state: paused;
}
@keyframes rr-marquee {
  to { transform: translateX(-50%); }
}

/* Gentle independent translations preserve THA-like spatial depth.
   translate is intentionally separate from existing transform rotations. */
.rr-hero-orbit-one {
  animation: rr-orbit-breathe 12s ease-in-out infinite alternate;
}
.rr-hero-orbit-two {
  animation: rr-orbit-breathe 15s ease-in-out infinite alternate-reverse;
}
.rr-hero-monogram {
  animation: rr-float 9s ease-in-out infinite alternate;
}
.rr-hero-floating {
  animation: rr-float 8s ease-in-out infinite alternate-reverse;
}
@keyframes rr-orbit-breathe {
  to { scale: 1.055; opacity: 0.6; }
}
@keyframes rr-float {
  to { translate: 0 -9px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rr-reveal-ready [data-rr-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .rr-service-card,
  .rr-reveal-ready [data-rr-reveal].rr-service-card {
    translate: none;
    transition: none;
  }
  .rr-service-card::after { transition: none; }
  .rr-motion-track,
  .rr-hero-orbit-one,
  .rr-hero-orbit-two,
  .rr-hero-monogram,
  .rr-hero-floating { animation: none; }
}
