/* Basic reset to remove default browser styles */
*, 
*::before, 
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Remove default padding and margin from common elements */
html, body, div, span, h1, h2, h3, h4, h5, h6, p, 
blockquote, pre, a, abbr, address, cite, code, 
del, em, img, ins, kbd, q, s, samp, small, strike, 
strong, sub, sup, tt, var, b, u, i, dl, dt, dd, ol, ul, li, 
fieldset, form, label, legend, table, caption, tbody, 
tfoot, thead, tr, th, td, article, aside, canvas, details, 
embed, figure, figcaption, footer, header, hgroup, menu, 
nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1.5;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  *, 
  *::before, 
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

/* Set proper focus styles to improve accessibility */
:focus {
  outline: 3px solid rgba(65, 148, 225, 0.5);
  outline-offset: 2px;
}

/* Remove outline for mouse users but keep it for keyboard navigation */
:focus:not(:focus-visible) {
  outline: none;
}

/* Prevent text size adjustments on orientation changes (iOS) */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

/* Remove form element styles */
button, input, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/* Remove default button styling */
button {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}
