:root {
  /* Color Variables */
  --color-heading: #d3cab3;
  --color-button: #d28839;
  --color-paragraph: #c49c5c;
  --color-alterparagraph: #b07c4b;
  --color-border: #b07c4b;
  --color-dark: #0a0a0a;
  --color-input-bg: #e8e0d5;
  --color-text-light: #f5f5f5;

  /* Legacy color support (mapped to new colors) */
  --color-gold: #d28839;

  /* Font Family Variables */
  --font-menu: var(--font-canva-sans), sans-serif;
  --font-heading: 'Playfair Display', serif;
  --font-paragraph: var(--font-canva-sans), sans-serif;

  /* Legacy font support */
  --font-playfair: 'Playfair Display', serif;
  --font-lato: var(--font-canva-sans), sans-serif;
  --font-cormorant: var(--font-canva-sans), sans-serif;

  /* Responsive Font Size Variables - Desktop Optimized */
  --hero-title-size: 56px;
  --section-heading-size: 42px;
  --main-heading-size: 36px;
  --subheading-size: 22px;
  --body-size: 18px;
  --small-text-size: 16px;
}

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html,
body {
  max-width: 100vw;
  overflow-x: hidden;
  background-color: var(--color-dark);
  color: var(--color-text-light);
  font-family: var(--font-paragraph);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Global Heading Styles */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  color: var(--color-heading);
}

/* Global Paragraph Styles */
p {
  font-family: var(--font-paragraph);
  color: var(--color-paragraph);
}

/* Global Button Styles */
button {
  font-family: var(--font-paragraph);
  background-color: var(--color-button);
}

/* ===== H2 RESPONSIVE FONT SIZES ===== */

/* Desktop and Tablet Large: 992px and above - 48px */
h2 {
  font-size: 48px !important;
}

/* Tablet: 768px to 991px - 40px */
@media (max-width: 991px) and (min-width: 768px) {
  h2 {
    font-size: 40px !important;
  }
}

/* Mobile: 320px to 767px - 26px */
@media (max-width: 767px) {
  h2 {
    font-size: 30px !important;
  }
}

@media (max-width: 320px) {
  h2 {
    font-size: 26px !important;
  }
}

/* Global Border Utility */
.border-standard {
  border-color: var(--color-border);
}

/* ===== RESPONSIVE TYPOGRAPHY ===== */

/* ===== DESKTOP SIZES (1200px and above) ===== */

/* Extra Large Desktop: 1920px+ */
@media (min-width: 1920px) {
  :root {
    --hero-title-size: 56px;
    --section-heading-size: 44px;
    --main-heading-size: 38px;
    --subheading-size: 24px;
    --body-size: 19px;
    --small-text-size: 17px;
  }
}

/* Large Desktop: 1600px */
@media (max-width: 1919px) and (min-width: 1600px) {
  :root {
    --hero-title-size: 56px;
    --section-heading-size: 42px;
    --main-heading-size: 36px;
    --subheading-size: 22px;
    --body-size: 18px;
    --small-text-size: 16px;
  }
}

/* Desktop: 1540px */
@media (max-width: 1599px) and (min-width: 1540px) {
  :root {
    --hero-title-size: 56px;
    --section-heading-size: 40px;
    --main-heading-size: 35px;
    --subheading-size: 22px;
    --body-size: 18px;
    --small-text-size: 16px;
  }
}

/* Desktop: 1440px */
@media (max-width: 1539px) and (min-width: 1440px) {
  :root {
    --hero-title-size: 56px;
    --section-heading-size: 39px;
    --main-heading-size: 34px;
    --subheading-size: 21px;
    --body-size: 18px;
    --small-text-size: 16px;
  }
}

/* Desktop: 1360px */
@media (max-width: 1439px) and (min-width: 1360px) {
  :root {
    --hero-title-size: 47px;
    --section-heading-size: 38px;
    --main-heading-size: 33px;
    --subheading-size: 21px;
    --body-size: 17px;
    --small-text-size: 15px;
  }
}

/* Desktop/Laptop: 1200px */
@media (max-width: 1359px) and (min-width: 1200px) {
  :root {
    --hero-title-size: 47px;
    --section-heading-size: 36px;
    --main-heading-size: 32px;
    --subheading-size: 20px;
    --body-size: 17px;
    --small-text-size: 15px;
  }
}

/* ===== TABLET SIZES (768px - 1199px) ===== */

/* Laptop: 1024px */
@media (max-width: 1199px) and (min-width: 1024px) {
  :root {
    --hero-title-size: 44px;
    --section-heading-size: 32px;
    --main-heading-size: 28px;
    --subheading-size: 19px;
    --body-size: 16px;
    --small-text-size: 15px;
  }
}

/* Tablet Large: 992px */
@media (max-width: 1023px) and (min-width: 992px) {
  :root {
    --hero-title-size: 40px;
    --section-heading-size: 30px;
    --main-heading-size: 26px;
    --subheading-size: 18px;
    --body-size: 16px;
    --small-text-size: 15px;
  }
}

/* Tablet: 768px */
@media (max-width: 991px) and (min-width: 768px) {
  :root {
    --hero-title-size: 36px;
    --section-heading-size: 28px;
    --main-heading-size: 24px;
    --subheading-size: 17px;
    --body-size: 15px;
    --small-text-size: 14px;
  }
}

/* ===== MOBILE SIZES (below 768px) ===== */

/* Mobile Large: 500px */
@media (max-width: 767px) and (min-width: 500px) {
  :root {
    --hero-title-size: 36px;
    --section-heading-size: 26px;
    --main-heading-size: 22px;
    --subheading-size: 16px;
    --body-size: 15px;
    --small-text-size: 14px;
  }
}

/* Mobile: 475px */
@media (max-width: 499px) and (min-width: 475px) {
  :root {
    --hero-title-size: 34px;
    --section-heading-size: 24px;
    --main-heading-size: 21px;
    --subheading-size: 16px;
    --body-size: 15px;
    --small-text-size: 14px;
  }
}

/* Mobile: 424px */
@media (max-width: 474px) and (min-width: 424px) {
  :root {
    --hero-title-size: 32px;
    --section-heading-size: 23px;
    --main-heading-size: 20px;
    --subheading-size: 15px;
    --body-size: 14px;
    --small-text-size: 13px;
  }
}

/* Mobile Small: 320px */
@media (max-width: 423px) {
  :root {
    --hero-title-size: 28px;
    --section-heading-size: 21px;
    --main-heading-size: 20px;
    --subheading-size: 15px;
    --body-size: 14px;
    --small-text-size: 13px;
  }
}

/* Loading Spinner */
.loader {
  border: 4px solid #1a1a1a;
  border-top: 4px solid var(--color-button); /* Using existing gold/button color */
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}