:root{
  --paper:#F6F2E7;
  --paper-dim:#EFE9D9;
  --ink:#24312A;
  --wine:#7C2D34;
  --wine-dark:#5E2027;
  --gold:#C69A3D;
  --sage:#5C6B57;
  --base-size:19px;
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Atkinson Hyperlegible", Arial, sans-serif;
  font-size:var(--base-size);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  color:var(--wine-dark);
  line-height:1.2;
  margin:0 0 0.5em 0;
}

a{color:var(--wine); text-underline-offset:3px;}

a:focus-visible, button:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:2px;
}

.skip-link{
  position:absolute; left:-9999px; top:0;
  background:var(--wine); color:#fff; padding:12px 20px;
  font-weight:700; z-index:100; border-radius:0 0 6px 0;
}
.skip-link:focus{left:0;}

header.site{
  background:var(--paper);
  border-bottom:3px double var(--sage);
  position:sticky; top:0; z-index:20;
}

.brand-row{
  max-width:860px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:16px;
  padding:16px 20px 10px;
}

.brand-row img{
  height:56px; width:56px; object-fit:cover; border-radius:50%;
  border:2px solid var(--gold);
}

.brand-row .wordmark{
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.5rem;
  color:var(--wine-dark);
}

.brand-row .wordmark small{
  display:block;
  font-family:"Atkinson Hyperlegible", Arial, sans-serif;
  font-weight:400;
  font-size:0.6rem;
  letter-spacing:.04em;
  color:var(--sage);
}

nav.primary{
  max-width:860px;
  margin:0 auto;
  padding:0 20px 12px;
}

nav.primary ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0; padding:0;
}

nav.primary a{
  display:flex;
  align-items:center;
  padding:10px 16px;
  min-height:44px;
  font-weight:700;
  text-decoration:none;
  color:var(--ink);
  border-radius:8px;
  font-size:1.02rem;
}

nav.primary a:hover, nav.primary a:focus-visible{
  background:var(--wine);
  color:#fff;
}

nav.primary a[aria-current="page"]{
  background:var(--wine-dark);
  color:#fff;
}

main{
  max-width:700px;
  margin:0 auto;
  padding:0 20px;
}

main.gallery-page{
  max-width:860px;
}

section{padding:44px 0;}
section + section{border-top:3px double var(--sage);}

h1{font-size:2.1rem; padding-top:36px;}

h2{font-size:1.4rem; margin-top:0;}

h3{font-size:1.15rem; color:var(--sage); font-family:"Atkinson Hyperlegible",sans-serif; font-weight:700;}

p{max-width:64ch; margin:0 0 1em 0;}

ul.plain, ol.plain{padding-left:1.4em; margin:0 0 1em 0;}
ul.plain li, ol.plain li{margin-bottom:6px;}

.hero{padding-top:40px; text-align:left;}
.hero h1{font-size:2.3rem; max-width:12ch; padding-top:0;}
.hero .lede{font-size:1.2rem; max-width:56ch; color:var(--ink);}
.hero-motif{margin:22px 0 8px;}

.pullquote{
  font-family:"Fraunces", Georgia, serif;
  font-size:1.3rem;
  color:var(--wine-dark);
  border-left:4px solid var(--gold);
  padding:4px 0 4px 20px;
  margin:24px 0;
  max-width:56ch;
}

.info-card{
  background:var(--paper-dim);
  border:1px solid var(--sage);
  border-radius:12px;
  padding:24px 26px;
  margin:20px 0;
}

.info-card dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 18px;}
.info-card dt{font-weight:700; color:var(--wine-dark); white-space:nowrap;}
.info-card dd{margin:0;}

.map-wrap{margin-top:18px; border-radius:10px; overflow:hidden; border:1px solid var(--sage);}
.map-wrap iframe{display:block; width:100%; height:300px; border:0;}

.cta-box{
  background:var(--wine);
  color:#fff;
  border-radius:14px;
  padding:34px 28px;
  text-align:left;
}

.cta-box h2{color:#fff;}
.cta-box p{color:#fff; opacity:.95;}

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--gold);
  color:var(--wine-dark);
  font-weight:700;
  text-decoration:none;
  padding:14px 26px;
  border-radius:10px;
  font-size:1.1rem;
  margin-top:10px;
  min-height:48px;
}

.btn:hover, .btn:focus-visible{background:#fff;}

.board-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px;
}

.board-list li{
  background:var(--paper-dim);
  border:1px solid var(--sage);
  border-radius:12px;
  padding:18px 20px;
}

.board-list .name,
.board-list .role{
  display:block;
}

.board-list .name{
  font-family:"Fraunces", Georgia, serif;
  font-size:1.2rem;
  color:var(--wine-dark);
}

.board-list .role{
  color:var(--sage);
  font-weight:700;
  margin:4px 0 8px;
}

.agenda-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.agenda-list li{
  background:var(--paper-dim);
  border:1px solid var(--sage);
  border-radius:12px;
  padding:16px 20px;
  display:flex;
  flex-wrap:wrap;
  gap:4px 18px;
}

.agenda-list .date{font-weight:700; color:var(--wine-dark); min-width:110px;}
.agenda-list .time{color:var(--sage); font-weight:700; min-width:80px;}
.agenda-list .what{flex:1 1 220px;}
.agenda-list .where{width:100%; color:var(--sage); font-size:0.95rem;}

.note{
  background:var(--paper-dim);
  border-left:4px solid var(--gold);
  padding:14px 18px;
  border-radius:0 10px 10px 0;
  margin-top:24px;
}

.note p{margin:0;}

.contact-card{
  background:var(--paper-dim);
  border:1px solid var(--sage);
  border-radius:12px;
  padding:20px 24px;
  margin-bottom:18px;
}

.contact-card .name{
  font-family:"Fraunces", Georgia, serif;
  font-weight:600;
  font-size:1.15rem;
  color:var(--wine-dark);
  display:block;
}

.contact-card .role{
  color:var(--sage);
  font-weight:700;
  display:block;
  margin-bottom:8px;
}

.contact-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}

.contact-links a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--wine);
  color:#fff;
  text-decoration:none;
  padding:10px 16px;
  border-radius:8px;
  font-weight:700;
  font-size:0.98rem;
  min-height:44px;
}

.contact-links a:hover, .contact-links a:focus-visible{background:var(--wine-dark);}

.gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
}

.gallery a{display:block; border-radius:10px; overflow:hidden; border:1px solid var(--sage);}
.gallery img{display:block; width:100%; height:220px; object-fit:cover;}

footer{
  text-align:left;
  padding:30px 20px 50px;
  max-width:700px;
  margin:0 auto;
  color:var(--sage);
  font-size:0.95rem;
}

@media (max-width:560px){
  nav.primary ul{flex-direction:column; gap:2px;}
  nav.primary a{width:100%; padding:14px 16px;}
}
