:root {
  --bg: #ffffff;
  --fg: #0b0b0c;
  --muted: #6b7280;
  --border: #e5e7eb;
  --card: #ffffff;
  --shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  --radius: 16px;
  --maxw: 1000px;
  /* New theme accents */
  --accent: #0072E5;        /* vibrant blue */
  --accent-hover: #005BBB;  /* darker blue on hover */
  --highlight: #FFC107;     /* shuttlecock yellow */
}

html, body { height: 100%; }
body {
  margin: 0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, 'Apple Color Emoji', 'Segoe UI Emoji';
  color: var(--fg);
  background: var(--bg);
  line-height: 1.6;
  background-image: url('image/background.jpg');
}

/* Links & headings pick up accent */
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3 { color: var(--accent); }

.container { max-width: var(--maxw); margin: 0 auto; padding: 0 16px; }
.prose p { margin: 0 0 1rem; }
.prose h2 { margin: 2rem 0 0.5rem; }
.card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1.25rem; }

/* Header */
.header { position: sticky; top: 0; z-index: 50; backdrop-filter: saturate(120%) blur(6px); background: rgba(255,255,255,0.85); border-bottom: 1px solid var(--border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 20px; }
.brand .logo { font-size: 26px; }

/* Hamburger */
#nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.hamburger { width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 14px; display: grid; place-content: center; cursor: pointer; background: #fff; }
.hamburger .bars { width: 24px; display: grid; gap: 5px; }
.hamburger .bar { height: 2px; background: #000; }

/* Dropdown menu */
.menu { position: absolute; right: 0; margin-top: 10px; width: 240px; background: var(--card); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow); padding: 6px; display: none; }
#nav-toggle:checked ~ .menu { display: grid; }
.menu a { padding: 10px 12px; border-radius: 10px; }
.menu a:hover { background: #eaf3ff; /* light blue tint */ }

/* Main & footer */
main { padding: 32px 0; }
section { scroll-margin-top: 76px; }
footer { border-top: 1px solid var(--border); padding: 40px 0; color: var(--muted); font-size: 14px; }

/* Lists */
ul { padding-left: 1.1rem; }
li { margin: 0.25rem 0; }

/* Forms & buttons */
input, select, textarea, button { width: 100%; padding: 12px; border: 1px solid var(--border); border-radius: 12px; font-size: 1rem; box-sizing: border-box; }
button { border-radius: 14px; box-shadow: var(--shadow); background: var(--accent); color: #fff; border: none; cursor: pointer; transition: 0.2s ease transform, 0.2s ease box-shadow, 0.2s ease background-color; }
button:hover { background: var(--accent-hover); box-shadow: 0 6px 16px rgba(0,0,0,0.12); transform: translateY(-1px); }
button:active { transform: translateY(0); }

/* Helpers */
.grid-2 { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px) { .grid-2 { grid-template-columns: 1fr 1fr; } }
.muted { color: var(--muted); font-size: 14px; margin-top: 8px; }

/* Notices (optional, used on auth pages) */
.notice { background: #fff8e1; border: 1px solid #f7e7a8; border-radius: 12px; padding: 10px 12px; font-size: 14px; }
.notice.ok { background: #effaf0; border-color: #c7e9cc; color: #0f6d2a; }
.notice.error { background: #ffefef; border-color: #ffd0d0; color: #a40000; }

/* Accent highlight elements */
mark { background: var(--highlight); padding: 0 4px; border-radius: 4px; }

/* Page selector boxes (index) */
.page-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.page-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(0,0,0,0.02), transparent);
  text-align: center;
  color: inherit;
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}
.page-box .icon { font-size: 28px; }
.page-box .label { font-weight: 600; }
.page-box:hover, .page-box:focus {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(0,0,0,0.08);
  border-color: var(--accent);
  background: linear-gradient(180deg, rgba(0,114,229,0.04), rgba(0,114,229,0.02));
}
.page-box:focus { outline: 3px solid rgba(0,114,229,0.12); outline-offset: 2px; }

/* Image row: place two images at the ends of the card */
.image-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
}
.image-row img {
  max-width: 48%;
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}

@media (max-width: 640px) {
  .image-row { flex-direction: column; gap: 0.75rem; }
  .image-row img { max-width: 100%; }
}

/* Racquet gallery: 4-up grid that collapses responsively */
.image-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  margin-top: 1rem;
}
.image-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  display: block;
  border-radius: 8px;
  object-fit: cover;
}

.racket-graph {
  margin-top: 1rem;
  text-align: center;
}

.shoe-img{
  margin-top: 1rem;
  text-align: center;
}

.worn-out-shoe-img{
  margin-top: 1rem;
  text-align: center;
}
.sizing-chart-shoe-img{
  margin-top: 1rem;
  text-align: center;
}

.sizing-chart-caption{
  margin-top: 0.5rem;
  text-align: center;
  color: black;
  font-size: 14px;
}

.insole-img{
  margin-top: 1rem;
  text-align: center;
}

.shirt-img{
  margin-top: 1rem;
  text-align: center;
}

.shorts-img{
  margin-top: 1rem;
  text-align: center;
}

.compression-tights-img{
  margin-top: 1rem;
  text-align: center;
}

.socks-img{
  margin-top: 1rem;
  text-align: center;
}

.outerwear-img{
  margin-top: 1rem;
  text-align: center;
}

.player-pic {
  border-radius: 8px;
  object-fit: cover;
}

.video {
  margin-top: 1rem;
  text-align: center;
}

@media (max-width: 900px) {
  .image-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .image-grid { grid-template-columns: 1fr; }
}