/* Shared optional motion; no resting content is hidden and no geometry changes. */
@view-transition { navigation: auto; }
:root { --motion-direction: 1; --motion-distance: 12px; }
html[dir="rtl"] { --motion-direction: -1; }
::view-transition-old(root) { animation: motion-page-out 140ms ease both; }
::view-transition-new(root) { animation: motion-page-in 300ms ease both; }
@keyframes motion-page-out { to { opacity: 0; } }
@keyframes motion-page-in { from { opacity: 0; } to { opacity: 1; } }
html { background-color: #fdfbf7; }
html::after {
  content: ""; position: fixed; inset: 0; z-index: 10000;
  pointer-events: none; opacity: 0;
  background: linear-gradient(115deg, #fdfbf7, #f5ecd9);
  transition: opacity 160ms ease;
}
html.motion-departing::after { opacity: .7; }
.service-card, .button, .menu-toggle, .video-slider-arrow, .video-slider-rotation,
.emmy-chat-launcher, .emmy-chat-close, [data-whatsapp-contact] {
  transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.service-card-media { overflow: hidden; }
.service-card-media img { transition: transform 420ms cubic-bezier(.22,.7,.25,1); }
.service-card-link span[aria-hidden], .button svg { display: inline-block; transition: transform 180ms ease; }
.button:active, .menu-toggle:active, .video-slider-arrow:active, .video-slider-rotation:active,
.emmy-chat-launcher:active, .emmy-chat-close:active, [data-whatsapp-contact]:active { transform: scale(.98); }
.service-card:active { transform: translateY(-1px); }
@media (hover: hover) and (pointer: fine) {
  .service-card:hover { transform: translateY(-4px); border-color: #c8a96b; }
  .service-card:hover .service-card-media img:not(.service-card-logo) { transform: scale(1.025); }
  .service-card-link:hover span[aria-hidden], .button:hover svg { transform: translateX(calc(var(--motion-direction) * 3px)); }
  .button:hover { box-shadow: inset 0 1px 0 #fff5, 0 3px 12px #b9944b18; }
}
.video-slider.is-enhanced .video-slider-track { transition: transform 300ms cubic-bezier(.22,.7,.25,1); }
[data-video-slide] { transition: opacity 260ms ease; }
[data-video-slide][aria-hidden="true"] { opacity: .35; }
[data-video-slide][aria-hidden="false"] { opacity: 1; }
.emmy-chat-panel {
  transform-origin: bottom right;
  transition: opacity 180ms ease, transform 220ms cubic-bezier(.22,.7,.25,1), display 180ms allow-discrete;
}
html[dir="rtl"] .emmy-chat-panel { transform-origin: bottom left; }
.emmy-chat-panel[hidden] { opacity: 0; transform: scale(.96) translateY(5px); }
@starting-style { .emmy-chat-panel:not([hidden]) { opacity: 0; transform: scale(.96) translateY(5px); } }
.emmy-chat-message { animation: motion-message 200ms ease backwards; }
@keyframes motion-message { from { opacity: 0; transform: translateY(5px); } }
[data-booking-stage] { --motion-step: 1; }
[data-booking-stage][data-motion-back="true"] { --motion-step: -1; }
[data-booking-stage]:not([hidden]) { animation: motion-stage 220ms ease backwards; }
@keyframes motion-stage { from { opacity: 0; transform: translateX(calc(var(--motion-direction) * var(--motion-step) * var(--motion-distance))); } }
.booking-service-options label { transition: border-color 180ms ease, box-shadow 180ms ease; }
.booking-service-options label:has(input:checked) { box-shadow: inset 0 0 0 1px #c8a96b66; }
.booking-field-error:not([hidden]), [data-booking-success]:not([hidden]) { animation: motion-message 220ms ease backwards; }
[data-booking-success] { position: relative; }
[data-booking-success]::before {
  content: ""; position: absolute; inset-inline-end: 12px; top: 12px;
  width: 12px; height: 6px; border-inline-start: 2px solid #b18a42; border-bottom: 2px solid #b18a42;
  rotate: -45deg;
  animation: motion-check 480ms cubic-bezier(.22,.7,.25,1) backwards;
}
[data-booking-success]::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle at 25% 12%, #c8a96b 0 1px, transparent 2px), radial-gradient(circle at 70% 18%, #c8a96b 0 1px, transparent 2px), radial-gradient(circle at 80% 35%, #c8a96b 0 1px, transparent 2px);
  animation: motion-sparkle 650ms ease both;
}
@keyframes motion-check { from { opacity: 0; transform: scale(.85); } }
@keyframes motion-sparkle { from { opacity: 0; transform: translateY(6px); } 35% { opacity: .65; } to { opacity: 0; transform: translateY(-6px); } }
.booking-success-whatsapp { animation: motion-message 300ms 120ms ease backwards; }
@media (max-width: 48rem) { :root { --motion-distance: 6px; } }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
  html::after, [data-booking-success]::after { display: none; }
  .service-card:hover, .service-card:active, .service-card-media img, .button:active, .button:hover,
  .button:hover svg, .service-card-link:hover span[aria-hidden], .menu-toggle:active,
  .video-slider-arrow:active, .video-slider-rotation:active, .emmy-chat-launcher:active,
  .emmy-chat-close:active, [data-whatsapp-contact]:active { transform: none !important; }
}
