:root{
  --bg:#d9c8e2;
  --bg2:#c8b0d6;
  --paper:#fbf7fd;
  --ink:#2f2335;
  --muted:#5f5168;
  --line:#bfa4cb;
  --accent:#7d4f96;
  --accent-dark:#64397d;
  --accent2:#e5d3ee;
  --notice-bg:#f6eef9;
}
*{box-sizing:border-box}
html{
  font-family:Georgia,'Times New Roman',serif;
  color:var(--ink);
  background:linear-gradient(180deg,var(--bg),var(--bg2));
  line-height:1.55;
}
body{margin:0}
.wrap{max-width:900px;margin:0 auto;padding:24px}
.site{
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 16px 40px rgba(47,35,53,.14);
  margin:28px auto;
}
.top{
  padding:34px 28px 24px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#efe3f5,#dbc4e7);
}
.brand{
  font-size:42px;
  line-height:1.1;
  margin:0;
  color:var(--accent-dark);
  font-weight:normal;
}
.tagline{font-size:20px;margin:8px 0 0;color:var(--muted)}
nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
nav a,.button{
  display:inline-block;
  border:1px solid var(--accent-dark);
  color:var(--accent-dark);
  background:#f5ecf9;
  text-decoration:none;
  padding:9px 13px;
  border-radius:4px;
}
nav a:hover,.button:hover{background:var(--accent2)}
main{padding:28px}
.notice{
  border:2px solid var(--accent-dark);
  background:var(--notice-bg);
  padding:18px 20px;
  margin-bottom:26px;
}
.notice h2{margin-top:0}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.card{
  border:1px solid var(--line);
  background:#faf5fc;
  padding:18px 20px;
}
h1,h2,h3{line-height:1.25}
h1{font-size:32px;margin:0 0 18px}
h2{font-size:24px;margin:0 0 12px;color:var(--accent-dark)}
h3{font-size:20px;margin:18px 0 6px}
a{color:var(--accent-dark)}
a:hover{text-decoration-thickness:2px}
.hours{width:100%;border-collapse:collapse}
.hours td{padding:7px 0;border-bottom:1px solid var(--line);vertical-align:top}
.hours td:last-child{text-align:right;padding-left:14px}
.contact p{margin:.3rem 0}
.small{color:var(--muted);font-size:15px}
footer{
  border-top:1px solid var(--line);
  padding:18px 28px;
  color:var(--muted);
  font-size:15px;
  display:flex;
  gap:14px;
  justify-content:space-between;
  flex-wrap:wrap;
  background:#eadcf1;
}
footer a{color:var(--accent-dark)}
.legal main p,.legal main li{max-width:72ch}
.edit-hint{
  font-family:Arial,sans-serif;
  font-size:13px;
  color:#5f5168;
  background:#eadcf1;
  border:1px dashed #b998c9;
  padding:10px;
  margin-bottom:18px;
}
@media(max-width:720px){
  .wrap{padding:12px}
  .site{margin:12px auto}
  .top,main,footer{padding:20px}
  .brand{font-size:34px}
  .tagline{font-size:18px}
  .grid{grid-template-columns:1fr}
  .hours td:last-child{text-align:left}
  .hours tr{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
  .hours td{display:block;border:0;padding:0}
}
