/* ── Lignes dorées animées fixes au viewport ──────────────────── */
.gold-lines-wrap {
  position: fixed;
  top: 0; left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.gl {
  position: absolute;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,168,76,0.55) 40%, rgba(201,168,76,0.55) 60%, transparent 100%);
  will-change: transform;
}

@keyframes glLeft {
  from { transform: translateX(-100vw) rotate(-18deg); }
  to   { transform: translateX(200vw)  rotate(-18deg); }
}
@keyframes glRight {
  from { transform: translateX(200vw)  rotate(18deg); }
  to   { transform: translateX(-100vw) rotate(18deg); }
}

/* Gauche → droite */
.gl-1  { width: 40vw; top:  5vh; animation: glLeft  linear infinite 20s  -2s; }
.gl-2  { width: 30vw; top: 14vh; animation: glLeft  linear infinite 28s  -9s; }
.gl-3  { width: 50vw; top: 24vh; animation: glLeft  linear infinite 24s -16s; }
.gl-4  { width: 25vw; top: 34vh; animation: glLeft  linear infinite 35s  -5s; }
.gl-5  { width: 45vw; top: 45vh; animation: glLeft  linear infinite 22s -21s; }
.gl-6  { width: 35vw; top: 56vh; animation: glLeft  linear infinite 31s -11s; }
.gl-7  { width: 55vw; top: 67vh; animation: glLeft  linear infinite 19s -18s; }
.gl-8  { width: 30vw; top: 78vh; animation: glLeft  linear infinite 37s  -3s; }
.gl-9  { width: 42vw; top: 88vh; animation: glLeft  linear infinite 25s -13s; }

/* Droite → gauche */
.gl-r1 { width: 38vw; top: 10vh; animation: glRight linear infinite 26s   0s; }
.gl-r2 { width: 28vw; top: 20vh; animation: glRight linear infinite 33s  -7s; }
.gl-r3 { width: 48vw; top: 38vh; animation: glRight linear infinite 21s -19s; }
.gl-r4 { width: 32vw; top: 52vh; animation: glRight linear infinite 29s  -4s; }
.gl-r5 { width: 44vw; top: 62vh; animation: glRight linear infinite 36s -22s; }
.gl-r6 { width: 26vw; top: 73vh; animation: glRight linear infinite 23s -14s; }
.gl-r7 { width: 40vw; top: 84vh; animation: glRight linear infinite 30s  -8s; }

/* ── Page Loader ──────────────────────────────────────────────── */
#page-loader {
  position: fixed;
  inset: 0;
  background: var(--black);
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  transition: opacity 0.75s var(--ease);
}
#page-loader.hiding {
  opacity: 0;
  pointer-events: none;
}
.loader-logo {
  height: 52px;
  animation: loaderPulse 1.6s ease-in-out infinite;
}
@keyframes loaderPulse {
  0%, 100% { opacity: 1;    transform: scale(1); }
  50%       { opacity: 0.45; transform: scale(0.97); }
}
.loader-bar-wrap {
  width: 200px;
  height: 1px;
  background: rgba(201,168,76,0.12);
  position: relative;
  overflow: hidden;
}
.loader-bar-fill {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--gold), var(--gold-light), transparent);
  animation: loaderSweep 1.2s ease-in-out infinite;
}
@keyframes loaderSweep {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(250%); }
}

/* ── Custom Cursor (desktop uniquement) ───────────────────────── */
@media (hover: hover) and (pointer: fine) {
  body, body * { cursor: none !important; }
}
.cursor-dot {
  position: fixed;
  top: 0; left: 0;
  width: 8px;
  height: 8px;
  background: var(--gold);
  border-radius: 50%;
  pointer-events: none;
  z-index: 10002;
  transform: translate(-50%, -50%);
  transition: width 0.2s var(--ease), height 0.2s var(--ease), background 0.2s, opacity 0.2s;
  will-change: left, top;
}
.cursor-ring {
  position: fixed;
  top: 0; left: 0;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(201,168,76,0.55);
  border-radius: 50%;
  pointer-events: none;
  z-index: 10001;
  transform: translate(-50%, -50%);
  transition: width 0.35s var(--ease), height 0.35s var(--ease), border-color 0.35s, opacity 0.3s;
  will-change: left, top;
}
.cursor-dot.is-hovered  { width: 13px; height: 13px; background: var(--gold-light); }
.cursor-ring.is-hovered { width: 58px; height: 58px; border-color: var(--gold); }
.cursor-dot.is-clicking { width: 5px;  height: 5px;  opacity: 0.6; }
.cursor-ring.is-clicking{ width: 26px; height: 26px; }
.cursor-dot.is-hidden,
.cursor-ring.is-hidden  { opacity: 0; }

/* ── Barre de progression scroll ──────────────────────────────── */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 0%;
  background: linear-gradient(90deg, var(--gold), var(--gold-light));
  box-shadow: 0 0 10px rgba(201,168,76,0.5);
  z-index: 1100;
  pointer-events: none;
  transition: width 0.05s linear;
}

/* ── Entrée animée du hero ────────────────────────────────────── */
.hero-content .hero-eyebrow,
.hero-content .hero-title,
.hero-content .hero-subtitle,
.hero-content .hero-ctas {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 1s var(--ease-out), transform 1s var(--ease-out);
}
.hero-section.ready .hero-eyebrow  { opacity:1; transform:none; transition-delay:0.05s; }
.hero-section.ready .hero-title    { opacity:1; transform:none; transition-delay:0.25s; }
.hero-section.ready .hero-subtitle { opacity:1; transform:none; transition-delay:0.48s; }
.hero-section.ready .hero-ctas     { opacity:1; transform:none; transition-delay:0.65s; }

/* ── Reveal au scroll ─────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* ── Tilt 3D cards ────────────────────────────────────────────── */
.member-card.is-tilted,
.value-card.is-tilted,
.testimonial-card.is-tilted {
  transform: none;
}
