:root{
  --brick:#6B3A2A;--brick-deep:#4A251C;--navy:#1E3A5F;--navy-deep:#142840;
  --cream:#F7F1E8;--cream-dark:#EDE3D4;--ink:#1A1612;--body:#3D342C;
  --muted:#6B5E52;--line:#D9CFC2;--white:#fff;--gold:#B8860B;--max:1080px;
  --shadow:0 10px 36px rgba(26,22,18,.12);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Source Serif 4",Georgia,"Times New Roman",serif;color:var(--body);background:var(--cream);line-height:1.6;font-size:17px}
h1,h2,h3,h4,.brand,.nav a,.btn,.sans{font-family:"Libre Franklin",system-ui,sans-serif}
h1,h2,h3{color:var(--ink);line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(1.85rem,4vw,2.65rem);font-weight:700;letter-spacing:-.02em}
h2{font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:700}
h3{font-size:1.1rem;font-weight:700;margin-bottom:.35em}
p{margin:0 0 .9em}a{color:var(--navy)}a:hover{color:var(--brick)}
img{max-width:100%;display:block;height:auto}ul{padding-left:1.2rem}
.wrap{width:min(100% - 2rem,var(--max));margin-inline:auto}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:100;border-radius:6px}

.topbar{background:var(--navy-deep);color:#c8d4e4;font-size:.82rem;padding:.4rem 0;font-family:"Libre Franklin",system-ui,sans-serif}
.topbar .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.topbar a{color:#e8eef6}
header.site{position:sticky;top:0;z-index:50;background:rgba(247,241,232,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);font-weight:800;font-size:.95rem}
.brand img{width:36px;height:36px;border-radius:9px}
.brand span{line-height:1.15}.brand small{display:block;font-weight:600;font-size:.68rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.nav{display:flex;gap:.25rem 1rem;flex-wrap:wrap;align-items:center}
.nav a{text-decoration:none;color:var(--body);font-size:.88rem;font-weight:600}
.nav a:hover{color:var(--brick)}
.header-actions{display:flex;gap:.6rem;align-items:center}

.btn{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.15rem;border-radius:8px;border:2px solid transparent;font-weight:700;font-size:.9rem;text-decoration:none;cursor:pointer;transition:transform .15s,background .15s;font-family:"Libre Franklin",system-ui,sans-serif;background:var(--brick);color:#fff}
.btn:hover{background:var(--brick-deep);color:#fff;transform:translateY(-1px)}
.btn-navy{background:var(--navy)}.btn-navy:hover{background:var(--navy-deep);color:#fff}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-block{width:100%}.btn-sm{padding:.45rem .85rem;font-size:.82rem}

.hero{background:linear-gradient(135deg,var(--navy-deep) 0%,var(--navy) 55%,var(--brick) 140%);color:#fff;padding:2.4rem 0 2.2rem}
.hero h1{color:#fff}.hero .lead{color:rgba(255,255,255,.9);font-size:1.12rem;max-width:38rem}
.hero-grid{display:grid;gap:1.5rem;grid-template-columns:1.35fr .9fr;align-items:start}
.eyebrow{display:inline-block;font-family:"Libre Franklin",system-ui,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:.55rem}
.hero-note{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:1rem 1.1rem;font-size:.95rem;color:rgba(255,255,255,.92)}
.hero-note a{color:#fff;text-decoration:underline}

.weather-box{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;box-shadow:var(--shadow);color:var(--body)}
.weather-box h2{font-size:1rem;margin:0 0 .55rem;color:var(--navy);font-family:"Libre Franklin",system-ui,sans-serif}
.weather-now{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:.65rem}
.weather-temp{font-size:2rem;font-weight:800;color:var(--ink);font-family:"Libre Franklin",system-ui,sans-serif;line-height:1}
.weather-meta{font-size:.9rem;color:var(--muted)}
.weather-periods{display:grid;gap:.4rem;margin:0;padding:0;list-style:none;font-size:.88rem}
.weather-periods li{display:flex;justify-content:space-between;gap:.75rem;border-top:1px solid var(--cream-dark);padding-top:.4rem}
.weather-alert{background:#fff4e5;border:1px solid #e8c48a;border-radius:8px;padding:.55rem .7rem;font-size:.85rem;margin-top:.65rem;color:var(--ink)}
.weather-alert a{font-weight:600}
.weather-err{font-size:.88rem;color:var(--muted);margin:0}

.section{padding:2.4rem 0}.section.alt{background:var(--cream-dark)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.section-head p{margin:0;color:var(--muted);font-size:.92rem}
.grid-2{display:grid;gap:1.1rem;grid-template-columns:repeat(2,1fr)}
.grid-3{display:grid;gap:1.1rem;grid-template-columns:repeat(3,1fr)}
.card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:1.15rem 1.2rem;box-shadow:0 2px 10px rgba(26,22,18,.04)}
.card h3{margin-top:0}.card .meta{font-family:"Libre Franklin",system-ui,sans-serif;font-size:.8rem;color:var(--muted);margin-bottom:.45rem}
.card .meta strong{color:var(--brick)}.card a.more{font-family:"Libre Franklin",system-ui,sans-serif;font-weight:700;font-size:.9rem;text-decoration:none}
.card img{border-radius:8px;margin-bottom:.75rem;width:100%;aspect-ratio:16/10;object-fit:cover}
.sponsor-slot{border:2px dashed #c4b5a4;background:rgba(255,255,255,.55);border-radius:12px;padding:1.2rem 1.1rem;text-align:center}
.sponsor-slot .ad-badge{display:inline-block;font-family:"Libre Franklin",system-ui,sans-serif;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--navy);color:#fff;padding:.28rem .55rem;border-radius:999px;margin:0 0 .65rem}
.sponsor-slot .ad-title{font-family:"Libre Franklin",system-ui,sans-serif;font-size:1.05rem;font-weight:800;color:var(--ink);margin:0 0 .25rem}
.sponsor-slot .ad-title a{color:inherit;text-decoration:none}
.sponsor-slot .ad-title a:hover{color:var(--brick);text-decoration:underline}
.sponsor-slot p{margin:.35rem 0 0;font-size:.88rem;color:var(--muted)}
.sponsor-slot .ad-cta{display:inline-block;margin-top:.75rem;font-family:"Libre Franklin",system-ui,sans-serif;font-weight:700;font-size:.88rem;text-decoration:none;color:var(--brick)}
.sponsor-slot .ad-cta:hover{text-decoration:underline}

.section-eyebrow{font-family:"Libre Franklin",system-ui,sans-serif;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brick);margin:0 0 .25rem}
.section-aside{margin:0;color:var(--muted);font-size:.88rem;font-family:"Libre Franklin",system-ui,sans-serif}
.section-aside a{font-weight:700;text-decoration:none}
.section-aside a:hover{text-decoration:underline}

.happening{display:flex;gap:1rem;align-items:stretch;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;margin-bottom:.85rem;box-shadow:0 2px 10px rgba(26,22,18,.04)}
.happening h3{font-size:1.05rem;margin:0 0 .45rem}
.hap-date{flex:0 0 3.6rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:.55rem .35rem .45rem;text-align:center;font-family:"Libre Franklin",system-ui,sans-serif;align-self:flex-start;min-height:3.8rem}
.hap-mon{font-size:.68rem;font-weight:800;letter-spacing:.06em;color:var(--brick);line-height:1}
.hap-day{font-size:1.55rem;font-weight:800;color:var(--ink);line-height:1.05;margin-top:.15rem}
.hap-multi{display:block;margin-top:.35rem;font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);line-height:1.2}
.hap-body{flex:1;min-width:0}
.hap-tag{display:inline-block;font-family:"Libre Franklin",system-ui,sans-serif;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:var(--cream-dark);color:var(--navy);border:1px solid var(--line);padding:.22rem .5rem;border-radius:999px;margin:0 0 .45rem}
.hap-meta{display:flex;flex-direction:column;gap:.28rem;margin:0 0 .55rem;font-family:"Libre Franklin",system-ui,sans-serif;font-size:.84rem;color:var(--muted)}
.hap-line{display:flex;align-items:flex-start;gap:.4rem;line-height:1.35}
.hap-line span{min-width:0}
.hap-ico{flex-shrink:0;margin-top:.15rem;color:var(--brick)}
.hap-source{font-family:"Libre Franklin",system-ui,sans-serif;font-size:.8rem;margin:0 0 .45rem;color:var(--muted)}
.hap-source a{font-weight:700;text-decoration:none}
.happening--notice .hap-date{background:rgba(30,58,95,.06);border-color:rgba(30,58,95,.18)}
.happening--notice .hap-mon{color:var(--navy)}
.happening--notice .hap-tag{color:var(--navy-deep)}
.happening--notice .hap-ico{color:var(--navy)}
.notice-list .happening{border-left:none}
.empty-note{font-size:.95rem;color:var(--muted);font-style:italic}

.page-hero{padding:2rem 0 1.25rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--cream-dark),var(--cream))}
.page-hero .lead{max-width:40rem;font-size:1.08rem;color:var(--muted);margin:0}
.crumbs{font-family:"Libre Franklin",system-ui,sans-serif;font-size:.8rem;color:var(--muted);margin-bottom:.65rem}
.crumbs a{color:var(--navy);text-decoration:none}
.prose{max-width:42rem}.prose h2{margin-top:1.6rem}
.sources{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
.sources h2{font-size:1rem;color:var(--navy)}.sources ul{margin:.4rem 0 0;padding-left:1.1rem}
.fig{margin:1.2rem 0}.fig figcaption{font-size:.82rem;color:var(--muted);margin-top:.4rem;font-family:"Libre Franklin",system-ui,sans-serif}
.credit{font-size:.78rem;color:var(--muted)}

form.lead label{display:block;font-family:"Libre Franklin",system-ui,sans-serif;font-size:.78rem;font-weight:700;color:var(--ink);margin:.55rem 0 .25rem}
form.lead input,form.lead select,form.lead textarea{width:100%;padding:.62rem .7rem;border-radius:8px;border:1px solid var(--line);font:inherit;color:var(--ink);background:#fff}
form.lead textarea{min-height:90px;resize:vertical}
.hp{position:absolute;left:-9999px}
.hint{font-size:.78rem;color:var(--muted);margin:.7rem 0 0;font-family:"Libre Franklin",system-ui,sans-serif}
.sponsor-banner{display:block;text-decoration:none;color:inherit;background:rgba(255,255,255,.55);border:2px dashed #c4b5a4;border-radius:12px;padding:.85rem 1.1rem;margin:1rem 0 0;transition:border-color .15s,background .15s}
.sponsor-banner:hover{border-color:var(--gold);background:#fff;color:inherit}
.sponsor-banner .sb-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.sponsor-banner .sb-badge{font-family:"Libre Franklin",system-ui,sans-serif;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--navy);color:#fff;padding:.28rem .55rem;border-radius:999px}
.sponsor-banner .sb-label{font-family:"Libre Franklin",system-ui,sans-serif;font-size:.78rem;font-weight:700;color:var(--gold);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .15rem}
.sponsor-banner .sb-title{font-family:"Libre Franklin",system-ui,sans-serif;font-size:1.05rem;font-weight:800;color:var(--ink);margin:0}
.sponsor-banner .sb-title a{color:inherit;text-decoration:none}
.sponsor-banner .sb-title a:hover{color:var(--brick);text-decoration:underline}
.sponsor-banner .sb-sub{margin:.2rem 0 0;font-size:.88rem;color:var(--muted)}
.sponsor-banner .sb-cta{font-family:"Libre Franklin",system-ui,sans-serif;font-weight:700;font-size:.88rem;color:var(--brick);white-space:nowrap;text-decoration:none}
.sponsor-banner .sb-cta:hover{text-decoration:underline}

.qotw{background:linear-gradient(160deg,var(--brick) 0%,var(--brick-deep) 55%,#3a1f18 100%);color:#f7f1e8;border:2px solid #8b5342;border-radius:18px;padding:1.5rem 1.4rem 1.45rem;box-shadow:0 14px 40px rgba(74,37,28,.28);position:relative;overflow:hidden}
.qotw::before{content:"?";position:absolute;right:-.1rem;top:-.55rem;font-family:"Libre Franklin",system-ui,sans-serif;font-size:7.5rem;font-weight:800;line-height:1;color:rgba(255,255,255,.08);pointer-events:none}
.qotw .qotw-badge{display:inline-flex;align-items:center;gap:.4rem;font-family:"Libre Franklin",system-ui,sans-serif;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--gold);color:#1a1612;padding:.35rem .7rem;border-radius:999px;margin:0 0 .85rem}
.qotw .qotw-badge .qm{display:inline-grid;place-items:center;width:1.15rem;height:1.15rem;border-radius:50%;background:#1a1612;color:var(--gold);font-size:.75rem;font-weight:800}
.qotw .q{font-size:clamp(1.25rem,2.6vw,1.55rem);color:#fff;font-weight:700;margin:0 0 1rem;line-height:1.3;position:relative}
.qotw label{color:#f0e2d4 !important}
.qotw input,.qotw textarea{background:rgba(255,255,255,.95) !important;border-color:rgba(255,255,255,.35) !important}
.qotw .btn{background:var(--gold);color:#1a1612;border-color:var(--gold)}
.qotw .btn:hover{background:#d4a017;color:#1a1612}
.qotw .hint{color:rgba(247,241,232,.78) !important}
.qotw .hint a{color:#fff}

footer.site{background:var(--navy-deep);color:#b8c4d4;padding:2.5rem 0 1.5rem;margin-top:2rem;font-family:"Libre Franklin",system-ui,sans-serif;font-size:.9rem}
footer.site a{color:#e0e8f2;text-decoration:none}footer.site a:hover{text-decoration:underline}
footer.site .brand{color:#fff;margin-bottom:.5rem}
.foot-grid{display:grid;gap:1.5rem;grid-template-columns:1.4fr 1fr 1fr 1fr}
.foot-grid ul{list-style:none;padding:0;margin:.4rem 0 0}.foot-grid li{margin:.3rem 0}
.foot-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.75rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem}
.disclaimer{font-size:.8rem;color:#8fa0b5;margin-top:.75rem;max-width:36rem}

@media(max-width:860px){
  .hero-grid,.grid-3,.foot-grid{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .nav{width:100%}
  .happening{gap:.75rem;padding:.9rem}
  .hap-date{flex-basis:3.2rem;min-height:3.4rem}
  .hap-day{font-size:1.35rem}
}
