:root{
  --bg: #eef2f7;
  --card: #ffffff8f;
  --border: rgba(20,35,55,.12);
  --cardBorder: #bbb4ac;
  --text: #0f172a;
  --muted: #475569;
  --blue: #2563eb;
  --seaGreen: #1f678a;
  --seaGreenAcc: #456a71;
  --shadow: 0 14px 38px rgba(2,8,23,.10);
}

*{ box-sizing:border-box; }
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color: var(--text);
  background: radial-gradient(1200px 600px at 20% 0%, #cfe5ff 0%, transparent 60%),
              radial-gradient(900px 500px at 90% 10%, #ffd9c2 0%, transparent 55%),
              var(--bg);
}

a{ color: inherit; text-decoration:none; }
.wrap{ width:min(1100px, 92vw); margin: 0 auto; padding: 24px 0 44px; min-height: calc(100vh - 143px); }

h1, h2, h3, h4, h5{
  font-family: "Lilita One", sans-serif;
  font-size:22px;
  text-transform: uppercase;
  color: #c08638;
}

p,a { font-family: "Rubik", sans-serif; }

.nav{
  position: sticky;
  top:0;
  z-index: 30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 12px 4vw 9px;
  background: rgba(248,251,255,.70);
  border-bottom: 1px solid var(--border);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  backdrop-filter: blur(12px) saturate(140%);
}

.logo{ font-weight: 900; letter-spacing: .2px; }

.links{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.links a{ padding: 8px 10px; border-radius: 12px; }
.links a.active{ background: rgba(37,99,235,.10); border:1px solid rgba(37,99,235,.18); }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(248,251,255,.85);
  box-shadow: 0 10px 22px rgba(2,8,23,.06);
  font-weight: 700;
}
.btn.primary{
  background: linear-gradient(180deg, var(--seaGreen), var(--seaGreenAcc));
  color:#fff;
  border-color: rgba(0,0,0,.08);
  box-shadow: 0 12px 26px rgba(37,99,235,.22);
}

.hero{
  padding: 34px 18px;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: var(--card);
  box-shadow: var(--shadow);
}
.hero h1{ margin:0 0 8px; font-size: clamp(28px, 4vw, 44px); }
.hero p{ margin:0 0 14px; color: var(--muted); font-size: 16px; line-height: 1.45; }
.ctaRow{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 12px; }

.grid2{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 12px; }
.card{
  padding: 16px;
  border-radius: 18px;
  border: .8px solid var(--cardBorder);
  background: var(--card);
  box-shadow: var(--shadow);
  backdrop-filter: blur(5px) saturate(90%);
  margin: 10px 0;
}
.card h2{ margin:0 0 10px; }

.list{ display:flex; flex-direction:column; gap:8px; }
.item{
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(20,35,55,.10);
  background: rgba(255,255,255,.55);
}
.item:hover{ filter: brightness(1.02); }
.t{ font-weight: 600; color: #1e5779; }
.m{ color: var(--muted); font-size: 13px; margin-top: 3px; }

.row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top: 12px; }

.callout{ background: rgba(37,99,235,.08); border-color: rgba(37,99,235,.18); }

.foot{
  padding: 20px 4vw;
  border-top: 1px solid var(--border);
  background: rgba(248,251,255,.60);
  display:flex;
  justify-content:space-between;
  gap: 10px;
  flex-wrap:wrap;
}
.footLinks{ display:flex; gap: 10px; }

@media (max-width: 900px){
  .grid2{ grid-template-columns: 1fr; }
}

.dirTop{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-end;
  flex-wrap:wrap;
}

.dirControls{
  display:flex;
  gap:10px;
  align-items:flex-end;
  flex-wrap:wrap;
}

.sortObj label{
  display:block;
  font-size:12px;
  opacity:.8;
  margin-bottom:6px;
}

.dirControls select,
.dirControls input{
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.55);
}

.dirGo{ padding: 10px 14px; }

.dirCount{
  margin-top: 10px;
  font-weight: 800;
  opacity: .85;
}

.dirList{ margin-top: 12px; }

.itemCard{
  display:block;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(20,35,55,.10);
  background: rgba(255,255,255,.55);
  box-shadow: 0 10px 22px rgba(2,8,23,.06);
}

.itemCard:hover{ filter: brightness(1.02); }

.tags{
  margin-top: 8px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.tag{
  display:inline-block;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid rgba(20,35,55,.12);
  background: rgba(248,251,255,.72);
  font-size: 12px;
  font-weight: 700;
  opacity: .9;
}

.dayBox{
  margin-bottom: 12px;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(20,35,55,.10);
  background: rgba(255,255,255,.45);
}
.dayHeader{
  font-weight: 900;
  margin-bottom: 10px;
}

.monthHead{ display:flex; justify-content:space-between; align-items:baseline; margin-top:12px; }
.monthTitle{ font-weight:900; font-size:18px; }
.monthGrid{ margin-top:10px; display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:8px; }
.dow{ font-size:12px; opacity:.7; padding:0 2px; }
.dayCell{ border:1px solid rgba(0,0,0,.10); background:rgba(255,255,255,.85); border-radius:14px; padding:10px; min-height:110px; overflow:hidden; }
.dayCell.off{ opacity:.55; }
.dayNum{ font-weight:900; font-size:12px; opacity:.75; }
.dayEvents{ margin-top:8px; display:flex; flex-direction:column; gap:6px; }
.dayEv{ font-size:12px; text-decoration:none; color:inherit; padding:6px 8px; border-radius:10px; background:rgba(0,0,0,.05); border:1px solid rgba(0,0,0,.06); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dayEv:hover{ transform: translateY(-1px); }
.more{ font-size:12px; margin-top:2px; }
@media (max-width: 900px){
  .monthGrid{ gap:6px; }
  .dayCell{ min-height:90px; padding:8px; }
}

/* ======================================================
   CONTENT PAGES (About / How it Works / Join)
   Add at END of site.css
====================================================== */

/* General content rhythm */
.page {
  display: grid;
  gap: 12px;
}

.prose {
  color: var(--text);
  line-height: 1.6;
  font-size: 15.5px;
}

.prose p { margin: 0 0 12px; color: var(--muted); }
.prose strong { color: var(--text); }
.prose ul { margin: 10px 0 0; padding-left: 18px; color: var(--muted); }
.prose li { margin: 6px 0; }

/* Section headers inside cards */
.sectionHead {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom: 10px;
}
.sectionHead h2, .sectionHead h3 { margin: 0; }
.kicker {
  font-weight: 900;
  letter-spacing: .18px;
  font-size: 12px;
  text-transform: uppercase;
  color: rgba(15,23,42,.75);
}

/* Feature grid (works great for About + Join benefits) */
.features3 {
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 900px){
  .features3 { grid-template-columns: 1fr; }
}

/* A slightly different card style for smaller feature cards */
.miniCard{
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(20,35,55,.10);
  background: rgba(255,255,255,.55);
  box-shadow: 0 10px 22px rgba(2,8,23,.06);
}
.miniCard h3{ margin:0 0 8px; font-size: 16px; }
.miniCard p{ margin:0; color: var(--muted); font-size: 13.5px; line-height: 1.5; }

/* “Steps” (How it Works) */
.steps {
  display:grid;
  gap: 10px;
  counter-reset: step;
}
.step {
  display:flex;
  gap: 12px;
  align-items:flex-start;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(20,35,55,.10);
  background: rgba(255,255,255,.55);
  box-shadow: 0 10px 22px rgba(2,8,23,.06);
}
.stepNum{
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  background: rgba(37,99,235,.10);
  border: 1px solid rgba(37,99,235,.18);
}
.stepBody{ flex:1; }
.stepTitle{ font-weight: 900; margin: 0 0 4px; }
.stepMeta{ margin:0; color: var(--muted); font-size: 13.5px; line-height: 1.5; }

/* Two-column “panel” layout for Join (membership + stay connected) */
.split2 {
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 12px;
  margin-top: 12px;
}
@media (max-width: 900px){
  .split2 { grid-template-columns: 1fr; }
}

/* Social buttons row */
.socialRow{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 10px;
}

/* Form styling (newsletter + contact) */
.formCard .row { margin-top: 10px; }

.fieldGrid {
  display:grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-top: 10px;
}
@media (max-width: 700px){
  .fieldGrid { grid-template-columns: 1fr; }
}

.input, .textarea {
  width: 100%;
  padding: 11px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.55);
  font: inherit;
  outline: none;
}
.textarea { min-height: 120px; resize: vertical; }

.input:focus, .textarea:focus{
  border-color: rgba(37,99,235,.35);
  box-shadow: 0 0 0 4px rgba(37,99,235,.10);
}

/* Small helper text */
.helper {
  margin-top: 8px;
  font-size: 12px;
  color: var(--muted);
}

/* Callout variants */
.callout.soft {
  background: rgba(37,99,235,.06);
  border-color: rgba(37,99,235,.14);
}
.callout.orange {
  background: rgba(249,115,22,.08);
  border-color: rgba(249,115,22,.18);
}

/* Tighten up hero on these pages */
.hero.slim { padding: 26px 18px; }
.hero.slim p { max-width: 72ch; }

/* Optional: make inner links in prose look “designed” */
.prose a{
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(37,99,235,.35);
}
.prose a:hover{ text-decoration-color: rgba(37,99,235,.65); }



/******************************
 **   SHELL
 ******************************/
 
#styleBG,
#bgOverlay,
#finalOV{
  position: fixed;
  z-index: 0;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url('https://makemusicmaine.org/shared/assets/img/make-music-maine-bg-3.png');
  background-size: cover;
  background-position: bottom;
  opacity: .7;
  z-index:-3;
  pointer-events: none;
}
#bgOverlay{ 
  background: linear-gradient(#2b4773 0%, #42719b 10%, #ff6f36 100%, #2b5173);
  opacity: .3;
  z-index:-2;
}
#finalOV { 
  background: #112128;
  z-index: -1;
  opacity: .3;
}


/******************************
 ** SPONSORS
 ******************************/
 
.tierGrid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:20px;
    margin-top:20px;
}

.tierCard{
    background:#fff;
    border:1px solid var(--border);
    border-radius:14px;
    padding:20px;
}

.tierTitle{
    font-weight:800;
    font-size:18px;
    margin-bottom:4px;
}

.tierPrice{
    font-weight:700;
    color:var(--accent);
    margin-bottom:10px;
}

.tierCard ul{
    padding-left:18px;
}

.featuredTier{
    border:2px solid var(--accent);
}

.sponsorStrip .sTier { margin-top: 14px; }
.sponsorStrip .sLogos{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}

.sponsorStrip .sLogo{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:120px;
  height:54px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:14px;
  background: rgba(255,255,255,.6);
  text-decoration:none;
}

.sponsorStrip .sLogo img{
  max-height:34px;
  max-width:140px;
  object-fit:contain;
}

.sponsorStrip .sLogoText{
  font-weight:800;
  font-size:13px;
  line-height:1.1;
  text-align:center;
}


/******************************
 **   HEADER
 ******************************/
 
.logoImg{
    width:150px;
}
.logoImg img{ width:100%; }