/* ==========================================================
   Maplewood Elementary School — official district website
   Institutional .edu framework, est. look c. 2002-2003.
   Navy & gold. Serious, civic, district-issued.
   Shared across all pages.
   ========================================================== */
* { margin:0; padding:0; box-sizing:border-box; }
body {
  background:#dfe2e6 url("data:image/png;base64,") repeat;
  font-family:"Times New Roman", Times, Georgia, serif;
  font-size:14px; color:#1c1c22; line-height:1.6;
}

.wrap {
  width:780px; margin:0 auto; background:#fbfbf8;
  border-left:1px solid #b6bcc4; border-right:1px solid #b6bcc4;
  min-height:100vh;
}

/* ---- masthead ---- */
.masthead {
  background:#13294b;
  color:#fff; padding:0; border-bottom:5px solid #c9a227;
  display:flex; align-items:center; gap:16px;
}
.crest {
  width:74px; height:74px; flex-shrink:0; margin:10px 0 10px 18px;
  background:radial-gradient(circle at 50% 38%, #1d3a66, #0c1b34);
  border:3px solid #c9a227; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:#c9a227; font-family:Georgia,serif; text-align:center; line-height:1.05;
}
.crest .tree { font-size:26px; line-height:1; }
.crest .yr { font-size:8px; letter-spacing:1px; color:#e9d9a0; margin-top:2px; }
.titleblock { padding:14px 0; }
.titleblock h1 {
  font-family:Georgia,"Times New Roman",serif; font-size:27px; font-weight:bold;
  letter-spacing:0.5px; color:#fff; line-height:1.1; border:0;
}
.titleblock .sub { font-size:12px; color:#c9a227; font-style:italic; letter-spacing:0.5px; }
.titleblock .dist { font-size:10px; color:#8fa3c0; letter-spacing:1.5px; text-transform:uppercase; margin-top:3px; }

/* ---- nav ---- */
.nav {
  background:#c9a227; display:flex;
  border-top:1px solid #e6d28f; border-bottom:1px solid #8a6f17;
}
.nav a {
  color:#13294b; text-decoration:none; padding:7px 18px; font-family:Georgia,serif;
  font-size:12px; font-weight:bold; letter-spacing:0.5px;
  border-right:1px solid #b08e1d;
}
.nav a:hover { background:#13294b; color:#e6d28f; }
.nav a.active { background:#13294b; color:#fff; }

/* ---- breadcrumb ---- */
.crumb { background:#eceef1; padding:5px 22px; font-size:11px; color:#5a6470; border-bottom:1px solid #d6dade; }
.crumb a { color:#1d4a7a; }

/* ---- layout ---- */
.body { padding:20px 22px 26px; }
.cols { display:flex; gap:22px; }
.main { flex:1; min-width:0; }
.side { width:188px; flex-shrink:0; }

h2 {
  font-family:Georgia,serif; color:#13294b; font-size:20px; font-weight:bold;
  border-bottom:2px solid #c9a227; padding-bottom:5px; margin:0 0 12px;
}
h3 { font-family:Georgia,serif; color:#13294b; font-size:15px; margin:18px 0 5px; }
p { margin-bottom:11px; }
a { color:#1d4a7a; }
ul { margin:0 0 11px 22px; }
li { margin-bottom:4px; }

.lead { font-size:15px; color:#2a2a33; }
.principal-sig { font-family:Georgia,serif; font-style:italic; color:#13294b; margin-top:14px; line-height:1.4; }
.principal-sig .nm { font-weight:bold; font-style:normal; }

/* welcome portrait */
.portrait {
  float:right; width:120px; margin:4px 0 12px 16px; text-align:center;
  border:1px solid #b6bcc4; background:#f3f3ef; padding:6px;
}
.portrait img { width:106px; height:106px; object-fit:cover; border:1px solid #9aa3ad; display:block; }
.portrait .cap { font-size:10px; color:#5a6470; margin-top:5px; font-style:italic; line-height:1.2; }

/* notice / bulletin */
.bulletin { background:#fbf6e4; border:1px solid #d8c479; border-left:5px solid #c9a227; padding:10px 14px; margin:0 0 16px; font-size:13px; }
.bulletin .bh { font-family:Georgia,serif; font-weight:bold; color:#7a5e0c; display:block; margin-bottom:3px; }

/* side boxes */
.sbox { background:#f1f3f6; border:1px solid #cfd5dc; margin-bottom:16px; }
.sbox h4 { background:#13294b; color:#e6d28f; font-family:Georgia,serif; font-size:12px; padding:5px 10px; font-weight:bold; }
.sbox .in { padding:9px 11px; font-size:12px; }
.sbox .in p { margin-bottom:6px; }
.sbox ul { margin:0 0 4px 18px; }

/* tables */
table.t { width:100%; border-collapse:collapse; font-size:13px; margin:8px 0 16px; }
table.t caption { text-align:left; font-family:Georgia,serif; color:#13294b; font-weight:bold; padding-bottom:4px; }
table.t th { background:#13294b; color:#fff; text-align:left; padding:6px 9px; font-size:11px; letter-spacing:0.5px; }
table.t td { border:1px solid #cdd4dc; padding:6px 9px; vertical-align:top; }
table.t tr:nth-child(even) td { background:#eef1f5; }

/* staff roster */
.staff-row td .room { color:#5a6470; font-size:11px; }
.onleave td { color:#7a7a82; font-style:italic; }
.onleave td:first-child { font-style:normal; }

/* calendar */
.calhead { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.calhead .wk { font-family:Georgia,serif; color:#13294b; font-size:15px; font-weight:bold; }
.calhead .navwk { font-size:11px; }
table.cal { width:100%; border-collapse:collapse; table-layout:fixed; font-size:11px; margin-bottom:8px; }
table.cal th { background:#13294b; color:#e6d28f; padding:4px; font-size:10px; letter-spacing:1px; text-transform:uppercase; }
table.cal td { border:1px solid #cdd4dc; height:96px; vertical-align:top; padding:4px 5px; background:#fff; }
table.cal td .dn { font-family:Georgia,serif; font-weight:bold; color:#13294b; font-size:13px; display:block; margin-bottom:3px; }
table.cal td.weekend { background:#f3f3ef; color:#9aa3ad; }
.ev { display:block; font-size:10px; line-height:1.25; margin-bottom:3px; color:#2a2a33; border-left:3px solid #c9a227; padding-left:4px; }
.ev.gold { border-left-color:#13294b; }

/* memorial */
.mem-head { text-align:center; padding:6px 0 14px; }
.mem-head h2 { border:0; display:inline-block; font-size:24px; color:#13294b; }
.mem-head .sub { font-family:Georgia,serif; font-style:italic; color:#5a6470; font-size:13px; }
.auto-note { background:#eceef1; border:1px solid #cfd5dc; padding:9px 13px; font-size:11px; color:#5a6470; font-style:italic; margin:0 0 18px; text-align:center; }
.mem-list { list-style:none; margin:0; padding:0; }
.mem-entry {
  display:flex; align-items:center; gap:12px; border-bottom:1px solid #e0e4e8; padding:9px 4px;
}
.mem-entry img { width:48px; height:48px; object-fit:cover; border:1px solid #9aa3ad; filter:saturate(0.55) contrast(0.95); flex-shrink:0; }
.mem-entry .nm { font-family:Georgia,serif; font-size:14px; color:#13294b; }
.mem-entry .meta { font-size:11px; color:#7a7a82; }
.mem-entry.deep .nm { color:#5a6470; }
.mem-entry.deeper img { filter:saturate(0.25) contrast(0.85) brightness(1.02); opacity:0.85; }
.mem-entry.deepest img { filter:saturate(0) contrast(0.7) brightness(1.05); opacity:0.6; }
.mem-entry.deepest .nm { color:#8a8a92; font-family:"Courier New",monospace; font-size:12px; }

/* misc */
.quiet { color:#7a7a82; font-size:12px; }
.hr { border:0; border-top:1px solid #d6dade; margin:18px 0; }
.stamp { font-family:"Courier New",monospace; font-size:10px; color:#9aa3ad; letter-spacing:1px; }

/* footer */
.foot {
  background:#13294b; color:#8fa3c0; font-size:11px; padding:16px 22px; text-align:center; line-height:1.9;
  border-top:5px solid #c9a227;
}
.foot a { color:#c9a227; }
.foot .addr { color:#6a7d99; font-size:10px; margin-top:6px; }

/* 404 */
.err { text-align:center; padding:36px 24px 44px; }
.err .code { font-family:Georgia,serif; font-size:64px; color:#c9a227; line-height:1; }
.err h2 { border:0; display:inline-block; font-size:22px; margin:8px 0 14px; }
.err p { max-width:520px; margin:0 auto 12px; text-align:left; }
.err .stamp { margin-top:20px; }
