/*
Theme Name: Mass Open
Theme URI: https://massopen.ai/
Author: Mass Open
Description: Theme for Mass Open — growing the open source AI community across Massachusetts, New England, and the Acela Corridor.
Version: 1.0.0
Text Domain: mass-open
*/

:root{
  --bg: #0a1220;
  --bg-soft: #0d1b30;
  --card-bg: rgba(59,130,246,0.07);
  --border: rgba(120,170,255,0.22);
  --blue: #4f8ef7;
  --blue-light: #8ab4f8;
  --text: #f4f7ff;
  --text-dim: #a9b8d4;
  --radius: 12px;
  --maxw: 1120px;
  --font: -apple-system, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text-dim);
  font-family:var(--font);
  font-size:16px;
  line-height:1.6;
  text-wrap:pretty;
}
h1,h2,h3,h4{
  color:var(--text);
  font-weight:800;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
a{color:var(--blue-light); text-decoration:none;}
a:hover{color:var(--blue);}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}

/* circuit background */
.circuit-bg{
  position:relative;
  background-color:var(--bg-soft);
  background-image:
    radial-gradient(circle at center, rgba(120,170,255,0.18) 0 2px, transparent 3px),
    linear-gradient(rgba(120,170,255,0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120,170,255,0.12) 1px, transparent 1px);
  background-size: 80px 80px, 80px 80px, 80px 80px;
  background-position: 0 0, 0 0, 0 0;
}

/* header */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(8,14,26,0.9);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:72px;
}
.site-logo{font-size:20px; font-weight:800; color:var(--text);}
.site-logo span{color:var(--blue-light);}
.primary-nav ul{display:flex; gap:32px; margin:0; padding:0; list-style:none;}
.primary-nav a{
  color:var(--text-dim); font-weight:600; font-size:15px;
  padding:8px 0; border-bottom:2px solid transparent;
}
.primary-nav a:hover, .primary-nav .current-menu-item a{
  color:var(--text); border-bottom-color:var(--blue);
}

/* buttons */
.btn{
  display:inline-block; padding:14px 28px; border-radius:999px;
  font-weight:700; font-size:15px; border:1px solid transparent; cursor:pointer;
}
.btn-primary{
  background:linear-gradient(135deg, var(--blue-light), var(--blue));
  color:#081428;
}
.btn-primary:hover{filter:brightness(1.08); color:#081428;}
.btn-secondary{
  background:transparent; border-color:var(--border); color:var(--text);
}
.btn-secondary:hover{border-color:var(--blue-light); color:var(--text);}
.btn-row{display:flex; gap:16px; flex-wrap:wrap;}

/* hero */
.hero{padding:120px 0 100px; text-align:center;}
.kicker{
  color:var(--blue-light); font-weight:700; font-size:13px;
  letter-spacing:.12em; text-transform:uppercase; margin-bottom:24px;
}
.hero h1{font-size:64px; line-height:1.08; margin-bottom:28px;}
.hero h1 .accent{color:var(--blue-light); text-shadow:0 0 30px rgba(79,142,247,.5);}
.hero p{font-size:19px; max-width:640px; margin:0 auto 36px;}
.hero .btn-row{justify-content:center;}

/* sections */
.section{padding:96px 0;}
.section-label{
  color:var(--blue-light); font-weight:700; font-size:13px;
  letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px;
}
.section h2{font-size:36px; max-width:720px;}
.section .lede{font-size:18px; max-width:760px;}

.subcards{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:40px;}
.subcard{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:28px;
}
.subcard h3{font-size:20px; margin-bottom:12px;}

/* events */
.event-row{
  display:flex; gap:28px; align-items:flex-start;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:24px 28px; margin-bottom:16px;
}
.event-date{color:var(--blue-light); font-weight:800; font-size:18px; min-width:140px;}
.event-row h3{font-size:19px; margin-bottom:6px;}
.event-row h3 a{color:var(--text);}
.event-agenda{margin-top:24px; white-space:pre-line;}

/* join form */
.join-form{display:flex; gap:12px; max-width:480px; margin:0 auto; flex-wrap:wrap;}
.join-form input[type=email]{
  flex:1; min-width:220px; padding:14px 18px; border-radius:999px;
  border:1px solid var(--border); background:rgba(255,255,255,0.03); color:var(--text); font-size:15px;
}

/* tables (sponsors etc, incl. core/table block) */
table, .wp-block-table table{
  width:100%; border-collapse:collapse; margin-top:32px;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;
}
table th, table td, .wp-block-table th, .wp-block-table td{
  padding:18px 24px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top;
}
table th, .wp-block-table th{color:var(--text); font-weight:700;}
table tr:last-child td{border-bottom:none;}

/* page/post content */
.page-header{padding:80px 0 40px;}
.page-header h1{font-size:44px;}
.content-wrap{padding-bottom:96px;}
.entry-content p{margin:0 0 1.3em;}
.entry-content h2{margin-top:1.4em;}

/* footer */
.site-footer{border-top:1px solid var(--border); padding:64px 0 40px; background:var(--bg);}
.site-footer .logo{font-size:18px; font-weight:800; color:var(--text); margin-bottom:8px;}
.site-footer .copy{font-size:13px; margin-top:24px; color:var(--text-dim);}
.footer-widgets{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:32px;}

/* layout grid + widgets + search */
.layout-grid{display:grid; grid-template-columns:1fr 320px; gap:48px; align-items:start;}
.widget{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:24px; margin-bottom:24px;
}
.widget h4{font-size:15px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:16px;}
.widget ul{list-style:none; margin:0; padding:0;}
.widget li{padding:8px 0; border-bottom:1px solid var(--border);}
.widget li:last-child{border-bottom:none;}
.search-form{display:flex; gap:8px;}
.search-form input[type=search]{
  flex:1; padding:10px 14px; border-radius:999px; border:1px solid var(--border);
  background:rgba(255,255,255,0.03); color:var(--text);
}
.search-toggle{position:relative; margin-left:24px;}
.search-toggle summary{list-style:none; cursor:pointer; font-size:18px; color:var(--text-dim);}
.search-toggle summary::-webkit-details-marker{display:none;}
.search-toggle[open] > form, .search-toggle form{
  position:absolute; right:0; top:36px; width:260px;
}

@media (max-width: 800px){
  .layout-grid{grid-template-columns:1fr;}
  .primary-nav{display:none;}
  .hero h1{font-size:40px;}
  .subcards, .footer-widgets{grid-template-columns:1fr;}
  .event-row{flex-direction:column;}
}
