/* ============================================================
   CUSTOM ANIMATIONS & TRANSITIONS
   L'epilation auf der Koe - Pixel-genaue Replikation
   ============================================================ */

/* --- Standard Transitions --- */
.transition-colors {
  transition-property: color, background-color, border-color;
  transition-duration: 150ms;
  transition-timing-function: ease;
}

.transition-colors-300 {
  transition-property: color, background-color, border-color;
  transition-duration: 300ms;
  transition-timing-function: ease;
}

.transition-opacity {
  transition-property: opacity;
  transition-duration: 150ms;
  transition-timing-function: ease;
}

.transition-transform {
  transition-property: transform;
  transition-timing-function: ease;
}

.transition-shadow {
  transition-property: box-shadow;
  transition-duration: 150ms;
  transition-timing-function: ease;
}

.transition-all {
  transition-property: all;
  transition-duration: 150ms;
  transition-timing-function: ease;
}

/* --- Image Hover Zoom (Behandlungen, Instagram) --- */
.img-zoom-container {
  overflow: hidden;
}

.img-zoom-container img {
  transition: transform 500ms ease;
}

.img-zoom-container:hover img,
.card-hover:hover .img-zoom-container img {
  transform: scale(1.05);
}

/* --- Card Hover Shadow --- */
.card-hover {
  transition: box-shadow 150ms ease;
}

.card-hover:hover {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
              0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

/* --- Navbar Dropdown --- */
.dropdown-menu {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease;
}

.dropdown-trigger:hover .dropdown-menu,
.dropdown-trigger.is-open .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dropdown-chevron {
  transition: transform 200ms ease;
}

.dropdown-trigger:hover .dropdown-chevron,
.dropdown-trigger.is-open .dropdown-chevron {
  transform: rotate(180deg);
}

/* --- Mobile Sidebar --- */
.mobile-overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  visibility: hidden;
  transition: opacity 300ms ease, visibility 300ms ease;
}

.mobile-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.mobile-sidebar {
  position: fixed;
  top: 0;
  right: 0;
  height: 100dvh;
  width: 85vw;
  max-width: 380px;
  background: #FFFFFF;
  z-index: 70;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  transform: translateX(100%);
  transition: transform 500ms ease-in-out;
  display: flex;
  flex-direction: column;
}

.mobile-sidebar.is-open {
  transform: translateX(0);
}

/* --- Mobile Dropdown Accordion --- */
.mobile-dropdown-content {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 300ms ease, opacity 300ms ease;
}

.mobile-dropdown-content.is-open {
  max-height: 400px;
  opacity: 1;
}

/* --- Hero CTA Button Pulse --- */
.hero-cta-round:hover {
  background-color: rgba(223, 176, 167, 0.9);
}

/* --- Link Hover Underline --- */
.hover-underline {
  text-decoration: none;
}

.hover-underline:hover {
  text-decoration: underline;
}

/* --- Button Outline Hover Fill --- */
.btn-outline-primary {
  background: transparent;
  color: #DFB0A7;
  border: 1px solid #DFB0A7;
  transition: color 150ms ease, background-color 150ms ease;
}

.btn-outline-primary:hover {
  background: #DFB0A7;
  color: #FFFFFF;
}

/* --- Button on Primary Background (white outline) --- */
.btn-outline-white {
  background: transparent;
  color: #FFFFFF;
  border: 1px solid #FFFFFF;
  transition: color 300ms ease, background-color 300ms ease;
}

.btn-outline-white:hover {
  background: #FFFFFF;
  color: #DFB0A7;
}

/* --- Footer Submit Button --- */
.btn-footer-submit {
  background: rgba(255, 255, 255, 0.9);
  color: #333333;
  transition: background-color 150ms ease;
}

.btn-footer-submit:hover {
  background: #FFFFFF;
}

/* --- Navbar Link Hover --- */
.nav-link {
  color: #717374;
  transition: color 150ms ease;
}

.nav-link:hover {
  color: #DFB0A7;
}

/* --- Dropdown Item Hover --- */
.dropdown-item {
  color: #717374;
  transition: color 150ms ease, background-color 150ms ease;
}

.dropdown-item:hover {
  background-color: #DFB0A7;
  color: #FFFFFF;
}

/* --- Social Icon Hover --- */
.social-icon {
  color: #DFB0A7;
  transition: opacity 150ms ease;
}

.social-icon:hover {
  opacity: 0.8;
}

.social-icon-footer {
  color: rgba(255, 255, 255, 0.6);
  transition: color 150ms ease;
}

.social-icon-footer:hover {
  color: #FFFFFF;
}

/* --- TopBar Link Hover --- */
.topbar-link {
  transition: opacity 150ms ease;
}

.topbar-link:hover {
  opacity: 0.8;
}

/* --- Star Rating Animation --- */
.star-icon {
  color: #DFB0A7;
  fill: #DFB0A7;
}

/* --- Smooth Scroll --- */
html {
  scroll-behavior: smooth;
}

/* --- Focus Ring --- */
*:focus-visible {
  outline: 2px solid #DFB0A7;
  outline-offset: 2px;
}
