/*
Theme Name: CEC Ledger
Description: Custom theme for CEC Education.
Version: 1.0.3
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: cec-ledger
*/

:root{--ink:#1d2433;--navy:#18284a;--brick:#a23b2a;--paper:#fbf8f3;--line:#e3dccf;--muted:#5d6472;--soft:#f1ebe0}
*{box-sizing:border-box}
html{font-size:17px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Charter,"Bitstream Charter","Sitka Text",Cambria,Georgia,serif;line-height:1.65}
a{color:var(--brick)}
a:hover{color:var(--navy)}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.topline{background:var(--navy);color:#d9dfeb;font:13px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;padding:7px 0}
.topline .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
header.site{border-bottom:3px double var(--line);background:#fff}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;padding-bottom:18px;flex-wrap:wrap}
.brand{text-decoration:none;color:var(--navy);display:flex;align-items:center;gap:12px}
.brand .seal{width:44px;height:44px;border:2px solid var(--brick);border-radius:50%;display:grid;place-items:center;font:700 15px/1 Georgia,serif;color:var(--brick);letter-spacing:.5px}
.brand b{font-size:1.45rem;letter-spacing:.3px;display:block;line-height:1.1}
.brand small{font:12px system-ui,sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px}
nav.main{display:flex;gap:4px;flex-wrap:wrap;font:15px system-ui,-apple-system,"Segoe UI",sans-serif}
nav.main a{color:var(--ink);text-decoration:none;padding:8px 11px;border-radius:3px}
nav.main a:hover,nav.main a.on{background:var(--soft);color:var(--brick)}
.crumbs{font:13px system-ui,sans-serif;color:var(--muted);margin:22px 0 0}
.crumbs a{color:var(--muted)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:48px;margin:18px auto 60px}
article h1{font-size:2.15rem;line-height:1.2;color:var(--navy);margin:.2em 0 .4em}
article h2{font-size:1.4rem;color:var(--navy);margin-top:1.8em;border-bottom:1px solid var(--line);padding-bottom:4px}
article h3{font-size:1.12rem;margin-top:1.4em}
article table{border-collapse:collapse;width:100%;margin:1.2em 0;font:15px/1.45 system-ui,sans-serif;background:#fff}
article th,article td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
article th{background:var(--soft)}
.lede{font-size:1.15rem;color:#38404f}
.byline{font:13px system-ui,sans-serif;color:var(--muted);border-top:1px solid var(--line);margin-top:2.5em;padding-top:10px}
aside.side{font:15px/1.5 system-ui,sans-serif}
aside.side .box{background:#fff;border:1px solid var(--line);border-top:4px solid var(--brick);padding:16px 18px;margin-bottom:22px}
aside.side h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:1.2px;color:var(--navy)}
aside.side ul{list-style:none;margin:0;padding:0}
aside.side li{padding:5px 0;border-bottom:1px dotted var(--line)}
aside.side li:last-child{border:0}
aside.side a{text-decoration:none}
.kids{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:1.5em 0}
.kids a{display:block;background:#fff;border:1px solid var(--line);padding:16px;text-decoration:none;color:var(--ink)}
.kids a:hover{border-color:var(--brick)}
.kids b{display:block;color:var(--navy);font-size:1.05rem;margin-bottom:4px}
.kids span{font:14px/1.45 system-ui,sans-serif;color:var(--muted)}
.hero{background:var(--navy);color:#fff;padding:56px 0 50px}
.hero h1{font-size:2.5rem;line-height:1.15;margin:0 0 14px;max-width:760px}
.hero p{max-width:680px;font-size:1.12rem;color:#dfe5f1}
.hero .btns a{display:inline-block;margin:10px 10px 0 0;padding:10px 18px;background:var(--brick);color:#fff;text-decoration:none;font:600 15px system-ui,sans-serif;border-radius:3px}
.hero .btns a.alt{background:transparent;border:1px solid #9fb0d0}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin:44px auto}
.cols3 section{background:#fff;border:1px solid var(--line);padding:22px}
.cols3 h2{font-size:1.2rem;margin:0 0 8px;color:var(--navy)}
.cols3 ul{padding-left:18px;margin:10px 0 0}
.band{background:var(--soft);padding:36px 0;margin-top:20px}
.band h2{color:var(--navy);margin-top:0}
.cal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cal div{background:#fff;border-left:4px solid var(--brick);padding:12px 14px;font:14px/1.45 system-ui,sans-serif}
.cal b{display:block;color:var(--navy);font-size:15px}
footer.site{background:#121c33;color:#b9c2d6;font:14px/1.6 system-ui,sans-serif;padding:36px 0 26px}
footer.site .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}
footer.site a{color:#e2e7f2;text-decoration:none}
footer.site a:hover{text-decoration:underline}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site .legal{border-top:1px solid #2b3858;margin-top:22px;padding-top:14px;display:flex;gap:16px;flex-wrap:wrap}
form.contact label{display:block;font:600 14px system-ui,sans-serif;margin-top:12px}
form.contact input,form.contact textarea,form.contact select{width:100%;padding:9px;border:1px solid var(--line);font:15px system-ui,sans-serif;background:#fff}
form.contact button{margin-top:14px;background:var(--navy);color:#fff;border:0;padding:10px 18px;font:600 15px system-ui,sans-serif;cursor:pointer}
@media (max-width:900px){.layout{grid-template-columns:1fr}.cols3{grid-template-columns:1fr}.cal{grid-template-columns:1fr 1fr}footer.site .cols{grid-template-columns:1fr}.hero h1{font-size:1.9rem}}
@media (max-width:520px){html{font-size:16px}.cal{grid-template-columns:1fr}article h1{font-size:1.7rem}}

.form-error{color:#b42318;font-size:14px;margin:10px 0 0;min-height:1em}
[aria-invalid="true"]{border-color:#b42318!important;outline-color:#b42318}

/* photos */
picture{display:block}
.pic{margin:1.1rem 0 1.7rem;max-width:100%}
.pic img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:4px;background:#ddd}
.pic.wide img{aspect-ratio:21/9}
.hx-img img,.hx-band img{display:block;width:100%;height:auto;object-fit:cover;border-radius:4px;background:#ccc}
.hx-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:44px;align-items:center}
.hx-split .hx-img img{aspect-ratio:4/3}
.hx-band img{aspect-ratio:3/1}
.hx-split .hx-img img{border:6px solid #fff;box-shadow:0 10px 30px rgba(0,0,0,.35)}
@media (max-width:860px){.hx-split{grid-template-columns:1fr;gap:26px}.hx-split .hx-img img{aspect-ratio:16/10;box-shadow:none}.hx-band img{aspect-ratio:16/9}.pic.wide img{aspect-ratio:16/9}}
