/* Socle commun aux cinq directions : ce qui ne doit PAS varier d'une direction à l'autre.
   Chaque direction porte ensuite sa propre feuille dans son <style>. */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { min-height: 100vh; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; }
:where(a, button):focus-visible { outline: 3px solid var(--focus, #0E4F46); outline-offset: 3px; border-radius: 3px; }

.lien-evitement { position: absolute; left: 12px; top: -60px; z-index: 200; padding: 10px 14px; background: #fff; color: #111; border-radius: 6px; text-decoration: none; }
.lien-evitement:focus { top: 12px; }
.invisible { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Le logo fourni est un PNG sans transparence. Ses deux éléments ont été détourés et servent
   de masque : la couleur vient de --logo, si bien que le logo suit chaque palette. */
.logo-chien, .logo-sg { display: inline-block; flex: none; background: var(--logo, currentColor);
  -webkit-mask: var(--masque) center / contain no-repeat; mask: var(--masque) center / contain no-repeat; }
.logo-chien { aspect-ratio: 91 / 162; height: 44px; --masque: url("data:image/png;base64,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"); }
.logo-sg    { aspect-ratio: 74 / 63;  height: 30px; --masque: url("data:image/png;base64,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"); }

/* Photos libres de droits en attendant celles du client : signalées comme telles,
   pour qu'il ne croie jamais qu'on lui montre ses propres chiens. */
.photo { position: relative; overflow: hidden; }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.photo[data-provisoire]::after {
  content: "Photo provisoire"; position: absolute; right: 10px; bottom: 10px; z-index: 3;
  font: 500 11px/1 system-ui, -apple-system, "Segoe UI", sans-serif; letter-spacing: .01em;
  color: #fff; background: rgba(0, 0, 0, .58); padding: 5px 8px; border-radius: 4px; pointer-events: none;
}
.photo[data-provisoire="haut"]::after { bottom: auto; top: 10px; }

.etoiles { letter-spacing: .12em; white-space: nowrap; }

/* Effets : tout est visible par défaut. L'état de départ masqué n'existe que si le script
   tourne (classe .js-effets) ET que le visiteur n'a pas demandé moins d'animations. */
@media (prefers-reduced-motion: no-preference) {
  .js-effets:not([data-effets="0"]) [data-revele]:not(.vu) { opacity: 0; }
  .js-effets:not([data-effets="0"]) [data-revele] { transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1), clip-path .9s ease; }
  .js-effets[data-effets="2"] [data-revele]:not(.vu) { transform: translateY(18px); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
