/* Public interface experiment; admin styles remain independent. */
.public-site { --ink:#203d42; --muted:#52686b; --teal:#17685f; --line:#d7e3df; background:#f6f8f4; color:var(--ink); font:17px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif; }
.public-site *, .public-site *::before, .public-site *::after { box-sizing:border-box; }
.public-site a { color:#17665c; text-underline-offset:4px; }
.public-site a:hover { text-decoration:underline; }
.public-site :focus-visible { outline:3px solid #ad560c; outline-offset:4px; }
.public-site h1,.public-site h2,.public-site h3 { color:var(--ink); line-height:1.2; text-wrap:balance; }
.public-site h1 { font-size:clamp(2rem,4vw,3.6rem); letter-spacing:-.04em; }
.public-site h2 { font-size:clamp(1.5rem,2.2vw,2rem); letter-spacing:-.025em; }
.public-site p { max-width:70ch; }
.public-site img { max-width:100%; }
.public-site header { background:#fff; border-bottom:1px solid var(--line); }
/* Restore the original autism-awareness rainbow across the branding strip. */
.public-site .header-container { max-width:none; margin:auto; justify-content:flex-start; gap:18px; padding:20px max(28px, calc((100% - 1124px) / 2)); background:linear-gradient(to right, #3399ff, #71e17c, #ffcc00, #ff6666); box-shadow:none; text-shadow:none; }
.public-site .header-container>a { flex-shrink:0; border-radius:12px; }
.public-site .header-container :focus-visible { outline-color:#173237; }
.public-site .site-title { min-width:0; }
.public-site .logo { width:88px; height:auto; filter:none; }
.public-site .brand-name { margin:0; color:#173237; font-size:20px; font-weight:750; line-height:1.3; }
.public-site .brand-name span { display:inline; }
.public-site header nav { max-width:1180px; margin:auto; padding:12px 28px; }
.public-site nav ul { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.public-site nav ul li a { display:inline-flex; min-height:44px; align-items:center; padding:8px 14px; text-shadow:none; font-size:15px; color:var(--ink); border-radius:8px; }
.public-site nav a[aria-current="page"],.public-site nav ul li a:hover { background:#e8f2ed; color:#14574e; }
.public-site #auth-status { margin-left:auto; }
.public-site main { min-height:55vh; }
.public-site .skip-link { position:absolute; left:16px; top:-100px; background:white; padding:12px; z-index:999; }
.public-site .skip-link:focus { top:12px; }
.public-site .intro,.public-site .directory { width:calc(100% - 56px); max-width:1124px; margin:44px auto; padding:0; background:none; box-shadow:none; border-radius:0; }
.public-site .intro::before,.public-site .directory::before { display:none; }
.public-site .intro-content { padding:0; gap:32px 64px; align-items:center; grid-template-columns:1.25fr 1fr; grid-template-areas:"text image" "what what"; }
.public-site .intro-text { text-align:left; }
.public-site .intro-text h1 { margin:16px 0 22px; }
.public-site .intro-text>p:not(.eyebrow) { font-size:19px; color:var(--muted); }
.public-site .eyebrow { font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.13em; color:#42675b; }
.public-site .intro-image img { width:100%; max-width:none; aspect-ratio:1/1; object-fit:cover; border-radius:24px; }
.public-site .hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:30px; }
.public-site .button,.public-site button[type="submit"] { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:46px; padding:12px 20px; background:var(--teal); color:#fff; border:1px solid var(--teal); border-radius:8px; font:600 15px/1.4 system-ui,sans-serif; text-decoration:none; cursor:pointer; box-shadow:none; }
.public-site .button:hover,.public-site button[type="submit"]:hover { background:#104f48; color:white; transform:none; }
.public-site .text-link { font-size:15px; font-weight:650; }
.public-site .intro-what-we-do { margin-top:24px; padding:32px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1.5fr; gap:48px; text-align:left; }
.public-site .intro-what-we-do h2,.public-site .intro-what-we-do p { margin:0; }
.public-site .featured-sections { max-width:1124px; margin:0 auto 64px; width:calc(100% - 56px); display:block; }
.public-site .feature-block { width:100%; max-width:none; padding:32px; background:#e6eee7; border:1px solid #d5e1d6; border-radius:16px; text-align:left; box-shadow:none; }
.public-site .feature-block h2 { margin-top:0; }
.public-site .feature-block .button { margin:8px 8px 0 0; }
.public-site .feature-block #signUpLink { background:white; color:#175b52; }
.public-site footer { padding:28px; border-top:1px solid var(--line); background:#edf2ed; color:var(--muted); text-align:center; }
.public-site footer nav { display:flex; justify-content:center; gap:28px; }
.public-site footer p { margin:16px auto 0; font-size:13px; }
.public-site .directory>h1 { font-size:clamp(2rem,4vw,3rem); margin:12px 0; }
.public-site .filter-section { background:white; padding:20px; margin:24px 0; border:1px solid var(--line); border-radius:12px; }
.public-site .filter-controls { display:flex; flex-wrap:wrap; gap:14px; }
.public-site .filter-controls label { font-weight:650; }
.public-site .filter-controls select { flex:1; min-width:170px; max-width:350px; margin:0; padding:12px; }
.public-site .category { width:100%; padding:0; background:white; border:1px solid var(--line); box-shadow:none; margin:16px 0; border-radius:12px; cursor:default; }
.public-site .category:hover { background:white; }
.public-site .category summary { padding:20px 24px; font-weight:700; font-size:19px; cursor:pointer; }
.public-site .category[open] summary { border-bottom:1px solid var(--line); }
.public-site .category .provider-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding:24px; margin:0; }
.public-site .provider { width:100%; max-width:none; padding:24px; border:1px solid var(--line); border-radius:10px; box-shadow:none; }
.public-site .provider:hover { transform:none; box-shadow:none; }
.public-site .provider-description { margin:0 0 16px; font-size:16px; }
.public-site .provider-contact a,.public-site .provider-contact p { white-space:normal; overflow-wrap:anywhere; }
.public-site .review-buttons { flex-wrap:wrap; }
.public-site .about-us-container { max-width:820px; width:calc(100% - 48px); margin:48px auto; padding:0; box-shadow:none; background:none; }
.public-site .about-us-image { margin:24px 0; }
.public-site .family-photo { max-width:100%; border-radius:16px; }
.public-site .auth-container { height:auto; min-height:65vh; padding:40px 24px; background:none; }
.public-site .form-box,.public-site .form-section { box-shadow:none; border:1px solid var(--line); border-radius:16px; }
.public-site .form-section { max-width:760px; width:calc(100% - 48px); margin:40px auto; padding:28px; background:white; }
.public-site main>h1,.public-site .events-container { max-width:1124px; width:calc(100% - 56px); margin:40px auto; }
.public-site .event { box-shadow:none; border:1px solid var(--line); border-radius:12px; padding:24px; background:white; }
.public-site .modal { z-index:100; background:rgb(16 36 37 / .55); padding:24px; overflow:auto; }
.public-site .modal-content { margin:6vh auto; width:100%; max-width:460px; border:0; border-radius:16px; padding:28px; text-align:left; }
.public-site .close-btn { width:44px; height:44px; border:0; background:#edf2ed; color:var(--ink); border-radius:50%; }
.public-site input,.public-site select,.public-site textarea { min-height:44px; font:inherit; border-color:#8b9d99; }
@media(max-width:700px) {
 .public-site .header-container { padding:16px 20px; gap:12px; }
 .public-site .brand-name { font-size:17px; }
 .public-site .brand-name span:last-child { display:block; }
 .public-site .logo { width:68px; }
 .public-site header nav { padding:12px; }
 .public-site nav ul { gap:0; }
 .public-site nav ul li a { font-size:13px; padding:8px 10px; }
 .public-site #auth-status { margin-left:0; }
 .public-site .intro,.public-site .directory,.public-site .featured-sections { width:calc(100% - 40px); margin:28px auto; }
 .public-site .intro-content { grid-template-columns:1fr; grid-template-areas:"text" "image" "what"; gap:28px; text-align:left; }
 .public-site .intro-image,.public-site .intro-text { margin:0; }
 .public-site .intro-image img { aspect-ratio:4/3; max-height:340px; object-position:center; }
 .public-site .intro-what-we-do { display:block; margin:0; padding:24px 0 0; }
 .public-site .intro-what-we-do h2 { margin-bottom:16px; }
 .public-site .feature-block { padding:24px; }
 .public-site .category .provider-list { grid-template-columns:1fr; padding:14px; }
 .public-site .filter-controls { align-items:stretch; }
 .public-site .filter-controls label { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { .public-site *, .public-site *::before, .public-site *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
.public-site .featured-sections .feature-block { width:100%; margin:0; }
