/* Additions to the frozen compiled stylesheet live in this file (ADR 0001).
   Never edit or regenerate assets/index-CoTukqDu.css. */

/* about-us bottom CTA (ticket 12 batch 3): the outline style uses an
   inset ring instead of a real border — a 2px border made the button
   4px taller than its "Schedule Appointment" sibling; the ring draws
   inside the identical box. */
.about-cta-outline {
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.7);
}
.about-cta-outline:hover {
  box-shadow: inset 0 0 0 2px #fff;
}

/* Carousel slide geometry (ticket 12 batch 2). The captured embla track
   carries -ml-4, and a block box with width:auto and a negative left
   margin computes 16px wider than its viewport — flex-basis percentages
   resolve against that, so a ~15px sliver of the next card peeks and
   full-card stepping never lands clean. Pin the track to the viewport
   and the md+ slides to exact thirds (mobile keeps basis-full; the
   -ml-4 offset and per-slide padding stay as captured). */
@media (min-width: 768px) {
  [data-carousel] > .overflow-hidden > .flex,
  [role='region'][aria-roledescription='carousel'] > .overflow-hidden > .flex {
    width: 100%;
  }
  [data-carousel] > .overflow-hidden > .flex > [role='group'],
  [role='region'][aria-roledescription='carousel'] > .overflow-hidden > .flex > [role='group'] {
    flex: 0 0 33.3333%;
    max-width: 33.3333%;
  }
}

/* Booking Modal dismiss (ticket 12). The frozen sheet's exit animation
   (.15s) has no fill-mode, so the overlay/content computed opacity
   snapped back to 1 for the ~50ms between the animation ending and the
   wrapper hiding — the reported dismiss "flash". Hold the animated
   (faded) end state until the wrapper hides. */
[data-booking-overlay][data-state='closed'],
[data-booking-content][data-state='closed'] {
  animation-fill-mode: forwards;
}

/* Interaction states (ticket 03). The frozen sheet's display utilities
   (grid, flex) would override the UA stylesheet's [hidden] { display: none },
   so the hidden attribute is re-asserted for the progressively enhanced
   markup: nav dropdown panels, the mobile menu, hero carousel slides, and
   the Booking Modal wrapper. */
[hidden] {
  display: none !important;
}

/* Mobile header fidelity (ticket 03). The legacy SPA switched its header to
   a compact mobile variant below 768px via JS (useIsMobile): the topbar
   unmounts and the logo drops from h-12/h-14 to h-10. The captured DOM is
   desktop-only, so the classes say sm:block / h-12 md:h-14; these rules
   reproduce the live mobile rendering without touching the captured markup
   (the desktop DOM and rendering stay exactly as captured). */
@media (max-width: 767.98px) {
  header div.hidden.sm\:block {
    display: none;
  }
  header img.h-12 {
    height: 2.5rem;
  }
}

/* Nav dropdown panels (reconstructed from the legacy bundle; the Radix
   viewport they render into was captured empty). Anchored under the nav bar,
   centered, with the same border/shadow treatment the viewport carried. */
[data-nav-panel] {
  position: absolute;
  left: 0;
  top: 100%;
  margin-top: 0.375rem;
  display: grid;
  place-items: center;
  width: 100%;
}
[data-nav-panel] > [data-nav-panel-inner] {
  border-radius: 0.375rem;
  border: 1px solid hsl(var(--border));
  background: hsl(var(--popover));
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  overflow: hidden;
}

