/* ==========================================================================
   DAVID & MYRIAM - WEDDING INVITATION & GUIDE
   Global Core Stylesheet
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Typography (@font-face)
   -------------------------------------------------------------------------- */
@font-face {
  font-family: 'Josefin Sans';
  src: url('assets/fonts/JosefinSans[wght].ttf') format('truetype');
  font-weight: 100 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Josefin Sans';
  src: url('assets/fonts/JosefinSans-Italic[wght].ttf') format('truetype');
  font-weight: 100 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Elisabeth Darlington';
  src: url('assets/fonts/ElisabethDarlington.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* --------------------------------------------------------------------------
   2. Design Tokens & Variables
   -------------------------------------------------------------------------- */
:root {
  --bg-color: #FBF9F1;
  --text-main: #661028;
  --text-light: #661028;
  --text-muted: rgba(102, 16, 40, 0.72);
  --border-subtle: rgba(102, 16, 40, 0.18);
  --border-strong: rgba(102, 16, 40, 0.35);
  --btn-bg: #661028;
  --btn-text: #FBF9F1;
  
  --font-serif: 'Josefin Sans', Arial, sans-serif;
  --font-script: 'Elisabeth Darlington', 'Pinyon Script', cursive;
  
  --max-content-w: 640px;
  --page-padding-x: 20px;
}

/* --------------------------------------------------------------------------
   3. Reset & Base Setup
   -------------------------------------------------------------------------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  font-size: 16px;
  background-color: var(--bg-color);
  color: var(--text-main);
  overflow-x: hidden;
}

body {
  background-color: var(--bg-color);
  color: var(--text-main);
  font-family: var(--font-serif);
  line-height: 1.5;
  overflow-x: hidden;
  position: relative;
  min-height: 100vh;
}

html.no-scroll,
body.no-scroll {
  overflow: hidden !important;
  height: 100% !important;
  touch-action: none !important;
}

img, video {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

button {
  background: none;
  border: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

/* --------------------------------------------------------------------------
   4. Accessibility & Utility Classes
   -------------------------------------------------------------------------- */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.text-center { text-align: center; }
.uppercase { text-transform: uppercase; }

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 6px;
}
::-webkit-scrollbar-track {
  background: var(--bg-color);
}
::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--text-main);
}
