/* ==========================================================================
   Base — Reset + Global Styles (Château de Vaumarcus)
   ========================================================================== */

/* Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

/* Body */
body {
  font-family: var(--font-serif);
  color: var(--color-dark);
  background-color: var(--color-bg);
  min-height: 100vh;
  overflow-x: hidden;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

/* Headings */
h1 { font-size: var(--h1); font-weight: 400; line-height: 1.1; color: var(--color-dark); letter-spacing: 0.02em; }
h2 { font-size: var(--h2); font-weight: 400; line-height: 1.3; color: var(--color-dark); }
h3 { font-size: var(--h3); font-weight: 400; line-height: 1.3; color: var(--color-dark); }
h4 { font-size: var(--h4); font-weight: 400; line-height: 1.3; color: var(--color-dark); }
h5 { font-size: var(--h5); font-weight: 400; line-height: 1.4; color: var(--color-dark); }
h6 { font-size: var(--h6); font-weight: 400; line-height: 1.4; color: var(--color-dark); }

/* Links */
a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease;
}
a:hover {
  color: var(--color-primary) !important;
}

/* Images */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Lists */
ul, ol {
  list-style: none;
}

/* Buttons */
button {
  font-family: inherit;
  cursor: pointer;
  transition: all 0.4s ease;
}
button:hover {
  transform: translateY(-2px);
}

/* Forms */
input, textarea, select {
  font-family: var(--font-sans);
  outline: none;
}
input:focus, textarea:focus, select:focus {
  border-color: var(--color-primary) !important;
}

/* Selection */
::selection {
  background-color: var(--color-primary);
  color: var(--color-white);
}

/* Keyframes */
@keyframes pulse {
  0%, 100% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
}
