/* Public layout; colors, typography and branding come from theme.css. */
body { overflow-wrap:anywhere; font-size:1.075rem; }
.wrap { width:min(72rem,calc(100% - 2.5rem)); margin-inline:auto; }
header { background:var(--lc-green-dark); color:white; padding:1.5rem 0 1rem; }
header a,header a:hover { color:white; }
header .brand { font-size:1.5rem; }
header p { margin:.6rem 0 1.2rem; font-size:.95rem; }
nav { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
nav a { display:inline-flex; align-items:center; gap:.3rem; min-height:44px; padding:.6rem .8rem; border:1px solid transparent; border-radius:var(--radius-small); text-decoration:none; font-size:.9rem; }
nav a:hover,nav a[aria-current=page] { background:var(--lc-green); border-color:#78aa96; }
nav a[aria-current=page] { text-decoration:underline; text-underline-offset:.35em; }
nav .external-action { border-color:#78aa96; }
nav .portal-action { background:var(--lc-green-soft); color:var(--primary-hover); font-weight:650; }
nav .portal-action:hover { background:white; color:var(--primary-hover); }
.external { font-size:.8em; }
header :focus-visible { outline-color:#ffdb88; }
main { padding:2rem 0 3rem; }
h1 { font-size:clamp(2rem,4vw,3rem); margin:.4rem 0 1rem; }
h2 { font-size:1.5rem; } h3 { font-size:1.15rem; }
.eyebrow { color:var(--primary); text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:750; }
.intro { font-size:1.2rem; max-width:50rem; }
.text { white-space:pre-wrap; max-width:70ch; }
.welcome { padding:0 0 1.5rem; border-bottom:1px solid var(--border); }
.contact-grid,.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap:1rem; }
.contact-grid { margin-top:1.5rem; }
.contact-grid > div { background:var(--surface); padding:1.2rem; border:1px solid var(--border); border-radius:var(--radius); }
.contact-grid h2 { font-size:1.1rem; margin-top:0; }
.phone { display:inline-flex; align-items:center; min-height:44px; font-weight:700; }
section { margin-bottom:2rem; }
.notice { background:var(--surface); border:1px solid var(--border); border-left:4px solid var(--primary); border-radius:var(--radius); padding:1.2rem 1.5rem; margin:1rem 0; box-shadow:var(--shadow); }
.notice h3 { margin-top:0; }
.cards a { display:flex; align-items:center; min-height:60px; padding:1.2rem; background:var(--subtle); border:1px solid var(--border); border-radius:var(--radius); font-weight:650; }
.cards a:hover { background:var(--surface); }
footer { padding:1.5rem 0 2rem; border-top:1px solid var(--border); color:var(--muted); font-size:.9rem; }
footer a { display:inline-flex; align-items:center; min-height:44px; }
.skip { position:fixed; left:-10000px; top:.5rem; z-index:100; padding:.6rem; background:white; }
.skip:focus { left:.5rem; }
@media(max-width:480px) { .wrap { width:calc(100% - 2rem); } header { padding-top:1rem; } nav { gap:.3rem; } nav a { padding:.5rem .6rem; } .external { font-size:.75rem; } }
@media print { header nav,.cards,.skip { display:none; } body,header { background:white; color:black; } header a { color:black; } }
@media(max-width:480px) {
 main { padding-top:1.25rem; }
 .intro { font-size:1.1rem; }
 .contact-grid { gap:.5rem; margin-top:1rem; }
 .contact-grid > div { padding:.8rem 1rem; }
 .contact-grid h2 { margin-bottom:.25rem; }
 .contact-grid p { margin:.25rem 0; }
 .cards a { flex-wrap:wrap; gap:.25rem .5rem; }
}

.public-rich {overflow-wrap:anywhere}.public-asset {margin:1rem 0;max-width:100%}.public-asset img {display:block;max-width:100%;height:auto}.public-rich blockquote {padding-left:1rem;border-left:3px solid #777}

.public-asset img {max-height:32rem;width:auto;object-fit:contain}
