/* Xenertec Réservation - Base CSS */

:root {
  --creme: #f3f2f2;
  --or: #b68235;
  --or-sombre: #7d5411;
  --or-clair: #e1ad66;
  --or-dim: #c28d41;
  --fond-alt: #eae7e4;
  --noir: #201f1d;
  --texte: #201f1d;
  --texte-dim: #605d5d;
  --texte-muted: #9b9797;
  --texte-ghost: #7d7979;

  /* Dark-card tones (pricing/legal/callout cards sitting on the crème page) */
  --bg-dark: #1a1917;
  --bg-mid: #221f1c;
  --bg-lighter: #2b2723;
  --border-dark: rgba(225, 173, 102, .16);
  --text-muted: rgba(243, 242, 242, .64);
  --text-dim: rgba(243, 242, 242, .42);
  --text-bright: #f8f6f3;
  --font-heading: 'Cormorant Garamond', serif;
  --font-body: 'Lora', Georgia, serif;
  --blanc: #f3f2f2;
}

html, body { 
  margin: 0; 
  padding: 0; 
  background: var(--creme);
  color: var(--texte);
  font-family: 'Lora', Georgia, serif;
  scroll-behavior: smooth;
}

* {
  box-sizing: border-box;
}

/* Pages with a dedicated #scroll-root (index.html) hand scrolling over to the engine */
body.has-scroll-root {
  overflow: hidden;
  height: 100vh;
}

#scroll-root {
  position: relative;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--creme);
  color: var(--texte);
  font-family: 'Lora', Georgia, serif;
}

.full-section {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

a { 
  color: var(--or-sombre); 
  text-decoration: none; 
}

a:hover { 
  color: var(--or); 
}

::selection { 
  background: #ffe3bf; 
  color: var(--noir); 
}

/* Typography Utility Classes */
.font-heading {
  font-family: 'Cormorant Garamond', serif;
}

.font-body {
  font-family: 'Lora', Georgia, serif;
}

.tnum {
  font-feature-settings: 'tnum';
}

/* Keyframes */
@keyframes xnBreath { 
  0%, 100% { transform: scale(1); opacity: .55; } 
  50% { transform: scale(1.045); opacity: .85; } 
}

@keyframes xnDrift { 
  0% { transform: translate3d(0,0,0); } 
  50% { transform: translate3d(0,-14px,0); } 
  100% { transform: translate3d(0,0,0); } 
}

@keyframes xnPulse { 
  0% { transform: scale(.6); opacity: .9; } 
  100% { transform: scale(2.6); opacity: 0; } 
}

@keyframes xnSweep { 
  0% { transform: translateY(-120%); } 
  100% { transform: translateY(320%); } 
}

@keyframes xnBlink { 
  0%, 100% { opacity: 1; } 
  50% { opacity: .25; } 
}

@keyframes xnTick { 
  0% { opacity: 0; transform: translateY(6px); } 
  12% { opacity: 1; transform: translateY(0); } 
  88% { opacity: 1; } 
  100% { opacity: 0; transform: translateY(-6px); } 
}

@keyframes abSlide { 
  0% { transform: translateX(0); } 
  100% { transform: translateX(-50%); } 
}

@keyframes xnMenuIn { 
  0% { opacity: 0; transform: translateY(18px); } 
  100% { opacity: 1; transform: translateY(0); } 
}

@keyframes xnRuleIn { 
  0% { transform: scaleX(0); } 
  100% { transform: scaleX(1); } 
}
