/* Quiet, optional finishing touches. No content is hidden while waiting for JS. */
:root { --dicarlo-motion-ease: cubic-bezier(.2, .65, .3, 1); }

.button,
.mode-button,
.text-link,
.nav-book,
.feature-card,
.admin-product > summary,
.private-faq summary {
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease,
    box-shadow 180ms ease, transform 180ms var(--dicarlo-motion-ease);
}

.field input,
.field textarea,
.field select {
  transition: border-color 150ms ease, background-color 150ms ease;
}

.button:focus-visible,
.mode-button:focus-visible,
.feature-card:focus-visible {
  box-shadow: 0 0 0 5px #6d26301a;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .button:not(:disabled):hover { transform: translateY(-1px); }
  .feature-card:hover { transform: translateY(-3px); box-shadow: 0 5px 14px #3244320c; }
  .admin-product > summary:hover,
  .private-faq summary:hover { color: var(--bordeaux, #6d2630); }
}

/* No persistent movement, forced scrolling, image scaling or crop changes. */
@media (hover: none) {
  .button:hover, .feature-card:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .button:hover, .feature-card:hover { transform: none; }
}

/* Warm accents and deliberate movement, without hiding content. */
.offer-prices { display:flex; align-items:baseline; gap:.75rem; flex-wrap:wrap; }
.offer-prices del { font-size:1.3rem; color:#785c51; text-decoration-thickness:2px; }
.offer-prices strong { color:#842b3c; }
.offer-deadline { display:block; max-width:28rem; margin-top:.55rem; color:#842b3c; font:600 .85rem/1.5 sans-serif; }
.popup-offer { padding:.8rem 1rem; margin:1rem 0; border-left:4px solid #842b3c; background:#f4e5cc; border-radius:8px; }
.popup-offer strong { font-size:2.6rem; }
.price-lockup { border-left:4px solid #842b3c; padding-left:1rem; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .button { transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease; }
  .button:hover { transform:translateY(-3px); box-shadow:0 8px 20px #562b2526; }
  .hero-art img,.private-hero-photo img,.ld-section img { transition:transform .65s cubic-bezier(.2,.65,.3,1); }
  .hero-art:hover img,.private-hero-photo:hover img,.ld-section:hover img { transform:scale(1.025); }
}
/* Keep the complete promotion reachable on short screens. */
.site-popup-card { max-height:calc(100dvh - 32px); overflow-y:auto; }
