:root{
  /* Parkinson's purple and silver palette — WCAG AA conscious choices */
  --purple:#5b2e8a;       /* strong purple for brand */
  --purple-dark:#3f1f62;  /* darker purple for accents */
  --silver:#d6d6d8;       /* light silver background */
  --muted:#55575a;
  --bg:#f4f4f6;
  --card:#ffffff;
  --max-width:1100px;
  --gap:1.25rem;
  --brand-font: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  --heading-font: 'Playfair Display', Georgia, 'Times New Roman', serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:#222;
  line-height:1.45;
  font-family:system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.schedule {color:white}
.inner{max-width:var(--max-width);margin:0 auto;padding:1.25rem}

/* Allow grid and flex children to shrink to prevent horizontal overflow on small screens */
.site-main, .site-main > section, .panel, .inner, .about-grid, .coaches-grid, .form-grid {
  min-width: 0;
}
.site-header .inner > *, .site-nav, .site-nav ul, .site-nav li { min-width: 0; }

/* Force long words/strings to wrap instead of causing overflow */
p, li, td, .brand-title, .banner-lead { word-break: break-word; overflow-wrap: break-word; }

/* Ensure media scale inside their containers */
img, embed, object, video { max-width:100%; height:auto; }
iframe { max-width:100%; max-height:50vh; }

.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:0;top:0;width:auto;height:auto;padding:.5rem;background:#000;color:#fff}
.visually-hidden{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.site-header{background:linear-gradient(180deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff}
.site-header .inner{display:flex;align-items:center;justify-content:space-between}
.brand-title{font-family:var(--brand-font);font-weight:700;margin:0;font-size:1.25rem;text-transform:uppercase;letter-spacing:4px;}
.brand .tag{margin:0;font-size:.9rem;opacity:.95}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1rem}
.site-nav a{color:inherit;text-decoration:none;font-weight:600}

/* Headings use Playfair Display */
h1,h2,h3{font-family:var(--heading-font);margin:.25rem 0}

/* Brand accent text uses Montserrat */
.banner-brand,.brand-title,.btn{font-family:var(--brand-font)}
.site-main{display:grid;grid-template-columns:1fr;gap:var(--gap);padding:1.5rem 0}
.banner{grid-column:1 / -1;min-height:420px;background-size:cover;background-position:center;display:flex;align-items:center}
.banner-overlay{background:linear-gradient(180deg, rgba(95,46,138,0.55), rgba(32,20,58,0.45));width:100%}
.banner-inner{padding:3rem 1.25rem;color:#fff}
.banner-brand{font-size:1.6rem;margin:0;text-transform:uppercase;letter-spacing:4px;}
.banner-lead{font-size:1.4rem;margin:.5rem 0 1rem}

@media(min-width:769px){
	.banner{background-image:url('images/hands.webp');}
}
@media(max-width:768px){
	.banner{background-image:url('images/hands768.webp');}
}

.panel{background:var(--card);border-radius:8px;box-shadow:0 6px 18px rgba(15,15,15,0.06);padding:1rem}
.panel h2{margin-top:0}

.btn{display:inline-block;background:var(--purple);color:#fff;padding:.6rem .9rem;border-radius:6px;text-decoration:none}
.btn.ghost{background:transparent;color:var(--purple-dark);border:2px solid var(--purple-dark)}

/* Desktop grid layout */
@media(min-width:769px){
  .site-main{grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(120px,auto)}
  /* About: image 3 cols, content 9 cols */
  .about{grid-column:1 / -1}
  .about-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;align-items:center}
  .about-image{grid-column:1 / 4}
  .about-content{grid-column:4 / -1}

  /* Coaches: two 6-column coach cards side by side */
  .coaches{grid-column:1 / -1}
  /* Coaches base grid: we'll place items into 12-column columns for 3-3-3-3 */
  .coaches-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem 1.25rem;align-items:start}
  .coaches-grid > h2{grid-column:1 / -1}
  /* Each coach on its own row at desktop: photo 4 cols, bio 8 cols */
  .coaches-grid > :nth-child(2){grid-column:1 / 5; grid-row:2}
  .coaches-grid > :nth-child(3){grid-column:5 / 13; grid-row:2; display:flex;flex-direction:column;justify-content:center}
  .coaches-grid > :nth-child(4){grid-column:1 / 5; grid-row:3}
  .coaches-grid > :nth-child(5){grid-column:5 / 13; grid-row:3; display:flex;flex-direction:column;justify-content:center}
  .coaches-grid > :nth-child(6){grid-column:1 / 5; grid-row:4}
  .coaches-grid > :nth-child(7){grid-column:5 / 13; grid-row:4; display:flex;flex-direction:column;justify-content:center}
  .coaches-grid img{width:100%;height:auto;object-fit:cover;border-radius:6px;display:block}

  /* Location full width */
  .location{grid-column:1 / -1;padding:1.25rem;border-radius:8px}
  .schedule{grid-column:1 / -1;padding:1.25rem;border-radius:8px}
  .contact{grid-column:1 / -1;padding:1.25rem;border-radius:8px}
}
@media(min-width:951px){
  .banner{grid-column:1 / -1}
}

/* Ensure schedule and location keep background colors at all widths */
.schedule{background:var(--purple)}
.location{background:var(--silver)}

/* Footer */
.site-footer{padding:1rem 0;margin-top:1.5rem;background:transparent}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.small-muted{color:var(--muted);font-size:.95rem}

/* Responsive tweaks */
@media(max-width:950px){
  .site-header .inner{flex-direction:column;align-items:flex-start;gap:.75rem}
  .site-nav ul{flex-wrap:wrap}
}
@media(max-width:768px){
  .banner-inner{padding:2rem 1rem}
  .banner-brand{font-size:1.8rem}
  /* Coaches stack on mobile: each item becomes full-width in source order */
  .coaches-grid{grid-template-columns:1fr}
  .coaches-grid > h2{grid-column:1}
  .coaches-grid > .coach-pic{grid-column:1}
  .coaches-grid > .coach-bio{grid-column:1}
}

/* Contact form styles */
.contact .contact-wrap{max-width:900px;margin:0 auto}
.contact small {display:block; margin-bottom:1rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem 1rem}
.form-col{display:flex;flex-direction:column;gap:.35rem}
.form-col-full{grid-column:1 / -1;display:flex;flex-direction:column;gap:.35rem}
.form-grid label{font-weight:600}
.form-grid input[type="text"],
.form-grid input[type="email"],
.form-grid input[type="tel"],
.form-grid textarea{
  padding:.6rem .7rem;border:1px solid #e6e6e6;border-radius:6px;font-size:1rem;font-family:var(--brand-font)
}
.form-grid textarea{min-height:140px}
.form-grid button{grid-column:1 / -1;justify-self:start;padding:.6rem .9rem;border-radius:8px;border:0;background:var(--purple);color:#fff;font-weight:700}
  .form-grid{grid-template-columns:1fr}
  .form-grid button{width:100%}

/* Images */
.about-image img,.coach-photo img{max-width:100%;height:auto;border-radius:6px}
.about-image {padding:0 12px 12px 0}
.map-wrap {margin-top:1rem}
.map-wrap iframe {border-radius:8px}

/* Table */
.table-wrap {overflow-x:scroll}
.table-wrap table{min-width:540px;border-radius:8px;border-collapse:collapse;width:100%}
.table-wrap th, .table-wrap tbody td {border: 1px solid white}
.table-wrap th, .table-wrap td {padding:10px}

/* Small visual helpers */
.brand h1{letter-spacing:.2px}
ul{margin-left:1rem}
