/* Bright Care Autism — site theme (no Tailwind CDN needed) */
:root {
    --primary: #1e56a0;
    --secondary: #0369a1;
    --background: #f5f8ff;
    --on-surface: #191c20;
    --on-surface-variant: #43474e;
    --tertiary-container: #d8e2ff;
    --on-tertiary-container: #001945;
    --surface-container-low: #eef3fb;
    --surface-container: #e8eef8;
    --outline-variant: #c3c7cf;
    --primary-container: #a8c8ff;
    --secondary-fixed: #c2e7ff;
    --tertiary-fixed: #dce1ff;
    --primary-fixed-dim: #9ecaff;
    --on-secondary-container: #004b70;
    --on-tertiary-container: #2f4277;
    --container-max: 1140px;
}

.bg-background { background: var(--background); }
.bg-surface { background: var(--background); }
.bg-surface\/90 { background: rgba(245,248,255,.9); }
.bg-surface-container { background: var(--surface-container); }
.bg-surface-container-low { background: var(--surface-container-low); }
.bg-primary { background: var(--primary); }
.bg-secondary { background: var(--secondary); }
.bg-white { background: #fff; }
.bg-tertiary-container { background: var(--tertiary-container); }
.bg-primary-container { background: var(--primary-container); }
.bg-primary-container\/10 { background: rgba(168,200,255,.1); }
.bg-primary-fixed-dim, .bg-primary-fixed-dim { background: var(--primary-fixed-dim); }
.bg-secondary-fixed, .bg-secondary-fixed\/30 { background: var(--secondary-fixed); }
.bg-tertiary-fixed, .bg-tertiary-fixed\/30 { background: var(--tertiary-fixed); }
.bg-white\/10 { background: rgba(255,255,255,.1); }
.text-primary { color: var(--primary); }
.text-secondary { color: var(--secondary); }
.text-on-surface { color: var(--on-surface); }
.text-on-surface-variant { color: var(--on-surface-variant); }
.text-on-primary { color: #fff; }
.text-on-secondary { color: #fff; }
.text-on-tertiary-container { color: var(--on-tertiary-container); }
.text-on-secondary-container { color: var(--on-secondary-container); }
.text-on-primary-container { color: #001d3d; }
.text-headline-lg { font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 600; line-height: 1.2; }
.text-headline-md { font-size: clamp(1.25rem, 3vw, 1.75rem); font-weight: 500; line-height: 1.3; }
.text-body-lg { font-size: 1.125rem; line-height: 1.6; }
.text-body-md, .font-body-md { font-size: 1rem; line-height: 1.5; }
.text-label-md, .font-label-md { font-size: .875rem; line-height: 1.4; font-weight: 500; }
.font-bold { font-weight: 700; }
.font-headline-lg, .font-headline-md { font-family: Lexend, sans-serif; }
.max-w-container-max { max-width: var(--container-max); }
.mx-auto { margin-left: auto; margin-right: auto; }
.px-gutter { padding-left: 1.5rem; padding-right: 1.5rem; }
.py-md { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-sm { padding-top: .75rem; padding-bottom: .75rem; }
.py-xs { padding-top: .25rem; padding-bottom: .25rem; }
.py-xl { padding-top: 5rem; padding-bottom: 5rem; }
.pt-xl { padding-top: 5rem; }
.pb-lg { padding-bottom: 3rem; }
.pb-xl { padding-bottom: 5rem; }
.p-lg { padding: 3rem; }
.p-md { padding: 1.5rem; }
.p-xl { padding: 3rem; }
.p-sm { padding: .75rem; }
.px-sm { padding-left: .75rem; padding-right: .75rem; }
.px-lg { padding-left: 3rem; padding-right: 3rem; }
.px-xl { padding-left: 5rem; padding-right: 5rem; }
.px-md { padding-left: 1.5rem; padding-right: 1.5rem; }
.mb-md { margin-bottom: 1.5rem; }
.mb-lg { margin-bottom: 3rem; }
.mb-xl { margin-bottom: 5rem; }
.mb-sm { margin-bottom: .75rem; }
.mb-xs { margin-bottom: .25rem; }
.mt-md { margin-top: 1.5rem; }
.mt-lg { margin-top: 3rem; }
.mt-xl { margin-top: 5rem; }
.mt-sm { margin-top: .75rem; }
.mt-xs { margin-top: .25rem; }
.mr-sm { margin-right: .75rem; }
.gap-sm { gap: .75rem; }
.gap-md { gap: 1.5rem; }
.gap-lg { gap: 3rem; }
.gap-xl { gap: 5rem; }
.flex { display: flex; }
.grid { display: grid; }
.hidden { display: none; }
.inline-block { display: inline-block; }
.flex-wrap { flex-wrap: wrap; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.justify-end { justify-content: flex-end; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.rounded-full { border-radius: 9999px; }
.rounded-xl { border-radius: 1.5rem; }
.rounded-lg { border-radius: 1rem; }
.border { border-width: 1px; }
.border-2 { border-width: 2px; }
.border-8 { border-width: 8px; }
.border-white { border-color: #fff; }
.border-primary { border-color: var(--primary); }
.border-outline-variant\/30 { border: 1px solid rgba(195,199,207,.3); }
.border-outline-variant\/40 { border: 1px solid rgba(195,199,207,.4); }
.border-b-4 { border-bottom-width: 4px; }
.border-primary-container\/20 { border-color: rgba(168,200,255,.2); }
.border-secondary-fixed\/50 { border-color: rgba(194,231,255,.5); }
.border-tertiary-fixed\/50 { border-color: rgba(220,225,255,.5); }
.shadow-sm { box-shadow: 0 1px 3px rgba(30,86,160,.06); }
.shadow-md { box-shadow: 0 8px 24px rgba(30,86,160,.08); }
.shadow-lg { box-shadow: 0 12px 32px rgba(30,86,160,.12); }
.shadow-xl { box-shadow: 0 20px 50px rgba(30,86,160,.12); }
.shadow-primary\/5 { box-shadow: 0 1px 3px rgba(30,86,160,.05); }
.shadow-primary\/10 { box-shadow: 0 8px 24px rgba(30,86,160,.1); }
.shadow-secondary\/20 { box-shadow: 0 8px 24px rgba(3,105,161,.2); }
.sticky { position: sticky; }
.relative { position: relative; }
.absolute { position: absolute; }
.top-0 { top: 0; }
.right-0 { right: 0; }
.-z-10 { z-index: -10; }
.z-10 { z-index: 10; }
.z-50 { z-index: 50; }
.overflow-hidden { overflow: hidden; }
.w-full { width: 100%; }
.w-auto { width: auto; }
.w-1\/3 { width: 33.333%; }
.h-full { height: 100%; }
.h-10 { height: 2.5rem; }
.h-11 { height: 2.75rem; }
.h-12 { height: 3rem; }
.h-14 { height: 3.5rem; }
.h-16 { height: 4rem; }
.h-20 { height: 5rem; }
.h-48 { height: 12rem; }
.h-64 { height: 16rem; }
.min-h-\[1200px\] { min-height: 1200px; }
.max-w-lg { max-width: 32rem; }
.max-w-md { max-width: 28rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-\[90\%\] { max-width: 90%; }
.aspect-\[4\/3\] { aspect-ratio: 4/3; }
.object-cover { object-fit: cover; }
.object-contain { object-fit: contain; }
.shrink-0 { flex-shrink: 0; }
.leading-relaxed { line-height: 1.625; }
.leading-snug { line-height: 1.375; }
.leading-tight { line-height: 1.25; }
.uppercase { text-transform: uppercase; }
.tracking-wider { letter-spacing: .05em; }
.tracking-widest { letter-spacing: .1em; }
.opacity-50 { opacity: .5; }
.opacity-90 { opacity: .9; }
.backdrop-blur-md { backdrop-filter: blur(12px); }
.backdrop-blur-sm { backdrop-filter: blur(4px); }
.transition-colors { transition: color .2s, background .2s; }
.transition-transform { transition: transform .2s; }
.transition-shadow { transition: box-shadow .2s; }
.hover\:underline:hover { text-decoration: underline; }
.hover\:text-primary:hover { color: var(--primary); }
.hover\:text-secondary:hover { color: var(--secondary); }
.hover\:bg-primary\/5:hover { background: rgba(30,86,160,.05); }
.hover\:bg-secondary\/90:hover { background: rgba(3,105,161,.9); }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:scale-\[0\.99\]:hover { transform: scale(.99); }
.hover\:scale-95:hover { transform: scale(.95); }
.hover\:shadow-md:hover { box-shadow: 0 8px 24px rgba(30,86,160,.08); }
.group:hover .group-hover\:scale-105 { transform: scale(1.05); }
.space-y-sm > * + * { margin-top: .75rem; }
.space-y-md > * + * { margin-top: 1.5rem; }
.list-none { list-style: none; }
.cursor-pointer { cursor: pointer; }
.prose-block p + p { margin-top: 1rem; }
.page-hero { background: linear-gradient(135deg, rgba(168,200,255,.25) 0%, transparent 60%); }
.rounded-t-lg { border-top-left-radius: 1rem; border-top-right-radius: 1rem; }
.transform { transform: translateZ(0); }
.rotate-2 { transform: rotate(2deg); }
.blur-3xl { filter: blur(64px); }
.-bottom-4 { bottom: -1rem; }
.-bottom-6 { bottom: -1.5rem; }
.-left-2 { left: -.5rem; }
.-left-6 { left: -1.5rem; }
.-top-24 { top: -6rem; }
.-bottom-24 { bottom: -6rem; }
.-left-24 { left: -6rem; }
.-right-24 { right: -6rem; }
.w-64 { width: 16rem; }
.h-64 { height: 16rem; }
.duration-500 { transition-duration: .5s; }
.border-0 { border: 0; }
.col-span-2 { grid-column: span 2; }
.grid-cols-1 { grid-template-columns: repeat(1,minmax(0,1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.grid-rows-2 { grid-template-rows: repeat(2,minmax(0,1fr)); }
@media (min-width: 640px) {
    .sm\:inline-flex { display: inline-flex; }
    .sm\:inline { display: inline; }
    .sm\:hidden { display: none; }
    .sm\:h-12 { height: 3rem; }
    .sm\:h-14 { height: 3.5rem; }
    .sm\:text-headline-md { font-size: 1.75rem; }
    .sm\:text-sm { font-size: .875rem; }
    .sm\:-bottom-6 { bottom: -1.5rem; }
    .sm\:-left-6 { left: -1.5rem; }
    .sm\:gap-md { gap: 1.5rem; }
    .sm\:px-md { padding-left: 1.5rem; padding-right: 1.5rem; }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .sm\:flex-row { flex-direction: row; }
    .sm\:pb-xl { padding-bottom: 5rem; }
    .sm\:w-auto { width: auto; }
    .sm\:text-left { text-align: left; }
}
@media (min-width: 768px) {
    .md\:grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .md\:grid-cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .md\:grid-cols-12 { grid-template-columns: repeat(12,minmax(0,1fr)); }
    .md\:col-span-5 { grid-column: span 5; }
    .md\:col-span-7 { grid-column: span 7; }
    .md\:p-xl { padding: 3rem; }
    .md\:block { display: block; }
    .md\:text-headline-md { font-size: 1.75rem; }
}
@media (min-width: 1024px) {
    .lg\:flex { display: flex; }
    .lg\:hidden { display: none; }
    .lg\:grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .lg\:grid-cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .lg\:grid-cols-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
