html, body {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
    scroll-behavior: smooth !important;
    overscroll-behavior-x: none; /* Stops "swipe back" nav on Mac/iOS */
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none;    /* Firefox */
    -ms-user-select: none;     /* IE10+/Edge */
    user-select: none;         /* Standard */
}




/* --- LIGHT MODE (Default) --- */


:root {
  --background: 210 40% 98%;          /* Soft White with hint of blue */
  --foreground: 215 25% 15%;          /* Deep soft navy */

  --card: 0 0% 100%;
  --card-foreground: 215 25% 15%;

  --primary: 186 65% 45%;             /* Calm Teal (Health/Wellness) */
  --primary-foreground: 0 0% 100%;

  --secondary: 200 20% 94%;           /* Gentle cool grey/blue */
  --secondary-foreground: 215 25% 15%;

  --muted: 200 20% 92%;
  --muted-foreground: 215 15% 40%;

  --accent: 186 60% 50%;              /* Slightly brighter teal */
  --accent-foreground: 0 0% 100%;

  --border: 200 15% 85%;
  --input: 200 15% 85%;

  --ring: 186 65% 45%;
}

/* --- DARK MODE OVERRIDES --- */
.dark {
  --background: 215 30% 12%;           /* Deep navy charcoal */
  --foreground: 0 0% 100%;

  --card: 215 25% 15%;
  --card-foreground: 0 0% 100%;

  --primary: 186 55% 65%;              /* Soft bright teal */
  --primary-foreground: 215 30% 12%;

  --secondary: 215 22% 20%;
  --secondary-foreground: 0 0% 100%;

  --muted: 215 22% 20%;
  --muted-foreground: 186 20% 70%;

  --accent: 186 55% 65%;
  --accent-foreground: 215 30% 12%;

  --border: 215 20% 18%;
  --input: 215 20% 18%;

  --ring: 186 55% 65%;
}


/* --- ANIMATIONS & UTILS --- */
.fade-in-section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-section.is-visible {
    opacity: 1;
    transform: none;
}

.full-page-section {
    padding-top: 5rem;
    padding-bottom: 5rem;
    min-height: 80vh;
    display: flex;
    align-items: center;
}

#mobile-menu {
    transition: transform 0.3s ease-in-out;
}

.translate-x-full { transform: translateX(100%); }
.translate-x-0 { transform: translateX(0); }