/* Content stays readable before JavaScript, on slow connections, and in print. */
.reveal { opacity: 1; transform: none; transition: none; }
:root { --sb-motion-ease: cubic-bezier(.22,.68,.28,1); }

@media (prefers-reduced-motion: no-preference) {
  .btn, .line-btn, .qbar button, .door, .card, .seo-guide-card,
  .nav a, .ft a, .gear-ph img, .card-ph img,
  .hero-isometric, .feature-isometric, .stage-iso, .water-care-isometric, .conservation-isometric {
    transition-duration: .28s;
    transition-timing-function: var(--sb-motion-ease);
    transition-property: transform, background-color, color, border-color, box-shadow;
  }
  .card-ph img, .gear-ph img { transition-duration: .55s; }
  .btn:active, .line-btn:active, .qbar button:active { transform: translateY(1px) scale(.985); }
  .btn:focus-visible, .line-btn:focus-visible { box-shadow: 0 0 0 5px rgba(65,132,141,.18); }
  .form input, .form select, .form textarea {
    transition: border-color .2s ease, box-shadow .2s ease;
  }
  .form input:focus-visible, .form select:focus-visible, .form textarea:focus-visible {
    box-shadow: 0 0 0 4px rgba(127,195,200,.18);
  }
  @media (hover: hover) and (pointer: fine) {
    .btn:hover, .line-btn:hover, .qbar button:hover { transform: translateY(-2px); }
    .door:hover { transform: translateY(-3px); }
    .card:hover .card-ph:not(.is-map) img { transform: scale(1.035); }
    .feat:hover .feature-isometric, .stages li:hover .stage-iso,
    .water-care-steps li:hover .water-care-isometric,
    .conservation-cards article:hover .conservation-isometric { transform: translateY(-4px); }
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal, .reveal.in { opacity: 1; transform: none; }
  .btn:hover, .btn:active, .line-btn:hover, .line-btn:active, .door:hover,
  .card:hover, .card:hover .card-ph img { transform: none; }
}
@media print {
  .reveal, [data-sb-motion] { opacity: 1 !important; transform: none !important; }
}
