/* V10.1 animee 3D, revision 2. All original text, links and images are retained. */
:root { --premium-ease: cubic-bezier(.16,.75,.25,1); }
.is-home .hero-identity,.is-home .hero-photo { animation:none; }
.is-home .vignette { background:linear-gradient(180deg,#08070655,#090807b0 68%,#090807ed),radial-gradient(ellipse at 65% 20%,transparent,#08070666); }
.mast { background:linear-gradient(110deg,#15130ffc,#0d0c0bfc 65%);box-shadow:0 8px 28px #0004,0 1px 0 #e3bd7722; }
.nav__a { transition:color 180ms ease,text-shadow 180ms ease; }
.nav__a:hover,.nav__a:focus-visible { text-shadow:0 0 18px #d8ad6588; }
.hero-identity { position:relative;isolation:isolate; }
.hero-identity::before { content:"";position:absolute;inset:-4%;z-index:-2;pointer-events:none;background:radial-gradient(ellipse,#b9873029,transparent 68%); }
.hero-location { display:flex;align-items:center;justify-content:center;gap:16px; }
.hero-location::before,.hero-location::after { content:"";width:44px;height:1px;background:linear-gradient(90deg,transparent,#dcaf66bb); }
.hero-location::after { transform:rotate(180deg); }
.is-home .logo { position:relative;perspective:1100px; }
/* The original accessible image forms the front of this layered emblem. */
.logo-model { position:relative;display:block;width:min(480px,100%);margin:auto;transform-style:preserve-3d;transform:rotateX(6deg) rotateY(-12deg);animation:premium-emblem-drift 8s ease-in-out infinite;animation-play-state:paused; }
.logo-model>a { display:block;position:relative;transform:translateZ(6px); }
.is-home .logo-model img { width:100%;height:auto;filter:drop-shadow(0 20px 12px #0009); }
.logo-extrusion { position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none; }
.logo-depth-layer { position:absolute;inset:0;background:linear-gradient(130deg,#e9bd77,hsl(34 52% var(--layer-light,35%)) 60%,#452b14);-webkit-mask-image:var(--premium-logo-mask);mask-image:var(--premium-logo-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:translateZ(var(--layer-z));backface-visibility:hidden; }
.logo-orbits { position:absolute;inset:3% -3%;z-index:-1;pointer-events:none;transform-style:preserve-3d; }
.premium-orbit { position:absolute;inset:0;border:1px solid #d8b87999;border-radius:50%;box-shadow:0 0 16px #d8a44510,inset 0 0 12px #d8a44508;animation:premium-orbit-turn 14s linear infinite;animation-play-state:paused;transform:rotateZ(-25deg) rotateX(66deg) rotateY(14deg); }
.premium-orbit::after { content:"";position:absolute;left:8%;top:20%;width:6px;height:6px;border-radius:50%;background:#edcb8a;box-shadow:0 0 15px #e5af60; }
.premium-orbit:nth-child(2) { inset:5%;border-color:#d8b87955;animation-name:premium-orbit-cross;animation-duration:18s;transform:rotateZ(25deg) rotateX(48deg) rotateY(-28deg); }
.premium-orbit:nth-child(2)::after { width:4px;height:4px;top:75%;left:12%; }
/* Floating photographic plates with a separate backing in depth. */
.hero-photo,.about-photo { position:relative;perspective:1400px; }
.premium-photo-model { position:relative;width:100%;transform-style:preserve-3d;transform:rotateY(-7deg) rotateX(3deg);animation:premium-photo-drift 9s ease-in-out infinite;animation-play-state:paused; }
.premium-photo-model>img { position:relative;width:100%;height:auto;transform:translateZ(16px);outline:1px solid #f5d59a55;box-shadow:0 28px 45px #0008; }
.premium-photo-model::before { content:"";position:absolute;inset:0;border:1px solid #e0b87988;border-radius:2px;background:linear-gradient(130deg,#ba8a47,#231a0e 45%,#72512c);transform:translate3d(16px,17px,-18px);box-shadow:0 28px 50px #0007;pointer-events:none; }
.premium-photo-model::after { content:"";position:absolute;inset:-7px;border:1px solid #dcb8754d;transform:translateZ(-32px);pointer-events:none; }
.premium-photo-light { position:absolute;inset:0;transform:translateZ(17px);overflow:hidden;pointer-events:none; }
.premium-photo-light::before { content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 22%,#ffe6af24 48%,transparent 72%);transform:translateX(-140%);animation:premium-photo-light 7s ease-in-out infinite;animation-play-state:paused; }
.motion-visible .logo-model,.motion-visible .premium-orbit,.motion-visible .premium-photo-model,.motion-visible .premium-photo-light::before { animation-play-state:running; }
/* Scroll/mouse affect the outer layer; automatic motion stays inside it. */
.premium-scene,.premium-tilt { transform:perspective(1400px) translateY(var(--premium-scroll-y,0px)) rotateX(var(--premium-rx,0deg)) rotateY(var(--premium-ry,0deg)) scale(var(--premium-scroll-scale,1));transform-origin:center;transition:transform 220ms var(--premium-ease); }
.premium-scene.is-arriving { animation:premium-scene-arrive 1600ms var(--premium-ease) both; }
.hero-photo.premium-scene.is-arriving { animation-name:premium-photo-arrive; }
.g__item { position:relative;box-shadow:0 16px 32px #0006; }
.g__item::after { content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px #e9c99055;pointer-events:none; }
.g__item.is-tilting { box-shadow:0 24px 42px #0009; }
.g__figure figcaption { transition:color 220ms ease; }
.g__figure:hover figcaption,.g__figure:focus-within figcaption { color:var(--beige); }
.welcome { position:relative; }
.welcome::before { content:"";position:absolute;top:-24px;left:0;width:100px;height:2px;background:linear-gradient(90deg,#dfb773,transparent); }
.btn--primary:not(.google-reviews) { position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#e8c994,#c79b55 40%,#e0b877 73%,#bf9049);border-color:#d2ac71;box-shadow:inset 0 1px 0 #ffedd370,0 8px 18px #0005;transition:transform 240ms var(--premium-ease),box-shadow 240ms ease; }
.btn--primary:not(.google-reviews)::before { content:"";position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(105deg,#fff0 25%,#fff5 50%,#fff0 75%);transform:translateX(-120%); }
.cta-panel,.deposit-panel,.contact-page .contact-card,.contact-page .hours-panel { background:linear-gradient(135deg,#302618ed,#12100df5 60%);box-shadow:inset 0 1px 0 #eed4a626,0 20px 38px #0005; }
.foot { background:radial-gradient(ellipse at 50% 0,#c79b5512,transparent 75%),#0c0b0ae6; }
/* Pause is accessible by keyboard and touch; no forced continuous movement. */
.premium-motion-toggle { position:fixed;right:18px;bottom:18px;z-index:18;width:44px;height:44px;border:1px solid #c79b55aa;border-radius:50%;background:#17130ef2;color:#e6c898;box-shadow:0 6px 20px #0008;display:grid;place-items:center; }
.premium-motion-toggle::before { content:"";width:12px;height:15px;border-left:4px solid currentColor;border-right:4px solid currentColor; }
.premium-motion-toggle.is-paused::before { width:0;height:0;border:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:12px solid currentColor;margin-left:3px; }
.nav-open .premium-motion-toggle,body:has(#cookie-consent) .premium-motion-toggle { visibility:hidden; }
.premium-motion-toggle:focus-visible { outline:2px solid #f2e9dc;outline-offset:4px; }
@media (hover:hover) and (pointer:fine) {
  body:not(.premium-static) .btn--primary:not(.google-reviews):hover { transform:translateY(-4px);box-shadow:inset 0 1px 0 #ffedd380,0 12px 26px #0007;color:#17130d; }
  body:not(.premium-static) .btn--primary:not(.google-reviews):hover::before,body:not(.premium-static) .btn--primary:not(.google-reviews):focus-visible::before { transform:translateX(120%);transition:transform 750ms var(--premium-ease); }
}
@media (prefers-reduced-motion:no-preference) {
  body:not(.premium-static) .premium-reveal { animation:premium-arrive 950ms var(--premium-ease) both; }
  body:not(.premium-static) .g__figure.premium-reveal { animation-name:premium-gallery-arrive;transform-origin:center; }
}
@keyframes premium-scene-arrive {
  from { transform:perspective(1200px) translateY(32px) rotateX(16deg) rotateY(-32deg) scale(.91); }
  to { transform:perspective(1200px) translateY(0) rotateX(0) rotateY(0) scale(1); }
}
@keyframes premium-photo-arrive {
  from { transform:perspective(1200px) translateY(48px) rotateY(22deg) rotateX(-10deg) scale(.92); }
  to { transform:perspective(1200px) translateY(0) rotateY(0) rotateX(0) scale(1); }
}
@keyframes premium-emblem-drift {
  0%,100% { transform:translateY(-6px) rotateX(6deg) rotateY(-12deg); }
  50% { transform:translateY(8px) rotateX(-5deg) rotateY(12deg); }
}
@keyframes premium-photo-drift {
  0%,100% { transform:translateY(5px) rotateY(-7deg) rotateX(3deg); }
  50% { transform:translateY(-8px) rotateY(6deg) rotateX(-2deg); }
}
@keyframes premium-orbit-turn {
  from { transform:rotateZ(-25deg) rotateX(66deg) rotateY(14deg); }
  to { transform:rotateZ(335deg) rotateX(66deg) rotateY(14deg); }
}
@keyframes premium-orbit-cross {
  from { transform:rotateZ(25deg) rotateX(48deg) rotateY(-28deg); }
  to { transform:rotateZ(-335deg) rotateX(48deg) rotateY(-28deg); }
}
@keyframes premium-photo-light {
  0%,18% { transform:translateX(-140%); }
  60%,100% { transform:translateX(140%); }
}
@keyframes premium-arrive {
  from { opacity:.3;transform:translateY(40px); }
  to { opacity:1;transform:translateY(0); }
}
@keyframes premium-gallery-arrive {
  from { opacity:.3;transform:perspective(1000px) translateY(48px) rotateY(-12deg) rotateX(6deg); }
  to { opacity:1;transform:perspective(1000px) translateY(0) rotateY(0) rotateX(0); }
}
@media (max-width:760px) {
  .logo-orbits { inset:3% 0; }
  .premium-photo-model::before { transform:translate3d(8px,11px,-14px); }
  .premium-photo-model::after { inset:-4px; }
  .premium-motion-toggle { right:12px;bottom:12px; }
}
@media (max-width:560px) {
  .logo-model { width:min(300px,90%); }
  .logo-orbits { inset:4% 3%; }
}
.premium-suspended .logo-model,.premium-suspended .premium-orbit,.premium-suspended .premium-photo-model,.premium-suspended .premium-photo-light::before,.premium-paused .logo-model,.premium-paused .premium-orbit,.premium-paused .premium-photo-model,.premium-paused .premium-photo-light::before { animation-play-state:paused !important; }
.premium-static .logo-model,.premium-static .premium-photo-model,.premium-static .premium-scene,.premium-static .premium-tilt,.premium-static .premium-reveal { animation:none !important;transform:none !important;transition:none !important; }
.premium-static .premium-orbit,.premium-static .premium-photo-light::before { animation:none !important; }
.premium-static .logo-orbits,.premium-static .logo-extrusion { display:none; }
@media (prefers-reduced-motion:reduce) {
  .logo-model,.premium-photo-model,.premium-scene,.premium-tilt,.premium-reveal { animation:none !important;transform:none !important;transition:none !important; }
  .premium-orbit,.premium-photo-light::before,.btn--primary::before { animation:none !important;transition:none !important; }
}
@media print {
  .logo-model,.premium-photo-model,.premium-scene,.premium-tilt,.premium-reveal { transform:none !important;animation:none !important; }
  .logo-extrusion,.logo-orbits,.premium-photo-light,.premium-photo-model::before,.premium-photo-model::after,.premium-motion-toggle { display:none !important; }
}

/* About: original monochrome background glides behind the content. */
.about-story.premium-parallax { position:relative;overflow:hidden;isolation:isolate;background:none; }
.about-story.premium-parallax::after { content:"";position:absolute;inset:-122px 0;z-index:-2;pointer-events:none;background:linear-gradient(#0b0a09b8,#0b0a09d9),url('../assets/img/a-propos-bg.avif') center/cover no-repeat;transform:translate3d(0,var(--story-shift,0px),0); }
.about-story.premium-parallax::before { z-index:-1; }
.premium-static .about-story.premium-parallax::after { transform:none; }
@media(prefers-reduced-motion:reduce) { .about-story.premium-parallax::after { transform:none; } }

@media(min-width:801px) { .about-story.premium-parallax::after { inset-block:-302px; } }
