:root{--color-primary:#475569;--color-primary-hover:#334155;--color-text:#334155;--color-text-muted:#64748b;--color-bg:#f8fafc;--color-bg-alt:#f1f5f9;--color-surface:#fff;--color-border:#cbd5e1;--color-success:#475569;--color-error:#dc2626;--color-accent:#475569;--color-accent-hover:#334155;--color-accent-light:#f1f5f9;--font-family:Inter, system-ui, -apple-system, sans-serif;--font-family-serif:Georgia, "Times New Roman", serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius:0;--radius-lg:0;--transition:.15s ease}*,:before,:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:var(--font-family-serif);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);width:100%;max-width:1100px;padding-inline:var(--space-lg);margin-inline:auto;line-height:1.5}img,svg{max-width:100%;display:block}a{color:var(--color-primary);transition:color var(--transition);text-decoration:none}main a:not(.btn):hover{text-underline-offset:2px;text-decoration:underline}a:hover{color:var(--color-primary-hover)}h1,h2,h3,h4{font-family:var(--font-family-serif);font-weight:700;line-height:1.2}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:inherit;font-size:inherit;border-radius:var(--radius);cursor:pointer;transition:background-color var(--transition);border:none;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover);color:#fff}.btn-secondary{background-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover{background-color:var(--color-text-muted);color:var(--color-bg)}.btn-ghost{color:var(--color-text);padding:var(--space-sm);-webkit-tap-highlight-color:transparent;background:0 0}.btn-ghost:hover{background-color:var(--color-border)}header{padding-block:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.logo{font-size:var(--font-size-xl);color:var(--color-text);min-width:0;font-weight:700}.logo:hover{color:var(--color-text)}nav{flex-shrink:0;position:relative}nav ul{gap:var(--space-md);flex-wrap:wrap;padding:0;list-style:none;display:flex}nav a:hover{text-underline-offset:4px;text-decoration:underline}nav a.active{color:var(--color-primary);text-underline-offset:4px;text-decoration:underline}.nav-toggle{display:none}@media (min-width:769px){nav .transition{visibility:visible!important;pointer-events:auto!important;opacity:1!important;transform:none!important}.nav-toggle{display:none!important}}@media (max-width:768px){.nav-toggle{display:flex}nav .transition{position:absolute;top:100%;right:0}nav .transition ul{background:var(--color-bg);padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius);z-index:100;flex-direction:column;min-width:150px;list-style:none}nav .transition ul li{padding:0}nav .transition ul li a{width:100%;padding:var(--space-sm) 0;display:block}}main{padding-block:var(--space-3xl);flex:1}footer{padding-block:var(--space-lg);color:var(--color-text-muted);font-size:var(--font-size-sm)}footer a{color:var(--color-text-muted)}footer a:hover{color:var(--color-accent)}.footer-grid{gap:var(--space-xl);margin-bottom:var(--space-xl);flex-wrap:wrap;justify-content:space-between;display:flex}.footer-col{gap:var(--space-sm);flex-direction:column;display:flex}.footer-col strong{color:var(--color-text);font-size:var(--font-size-base)}.footer-copy{text-align:center;padding-top:var(--space-lg)}.hero{margin-bottom:var(--space-2xl)}.home-hero{margin-top:0}@media (max-width:767px){.home-hero{margin-top:calc(-1 * var(--space-3xl))}}.hero p{font-size:var(--font-size-lg);color:var(--color-text-muted);margin-block:var(--space-md)}form{gap:var(--space-md);max-width:500px;margin-top:var(--space-xl);display:grid}@media (max-width:767px){form{max-width:none}}label{font-weight:500}input,textarea{width:100%;padding:var(--space-sm) var(--space-md);font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--transition)}input:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}textarea{resize:vertical;min-height:120px}.form-success{color:var(--color-success);font-weight:500}.form-error{color:var(--color-error);font-weight:500}.transition{transition:opacity var(--transition), transform var(--transition), visibility var(--transition);visibility:hidden;pointer-events:none}.transition.show{visibility:visible;pointer-events:auto}.transition-fade{opacity:0}.transition-fade.show{opacity:1}.transition-slide{opacity:0;transform:translateY(-10px)}.transition-slide.show{opacity:1;transform:translateY(0)}.transition-scale{opacity:0;transform:scale(.95)}.transition-scale.show{opacity:1;transform:scale(1)}.transition-fade-slide{opacity:0;transform:translateY(-10px)}.transition-fade-slide.show{opacity:1;transform:translateY(0)}.text-muted{color:var(--color-text-muted)}.events-grid{gap:var(--space-lg);margin-top:var(--space-xl);display:grid}.event-card{padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--transition)}.event-card:hover{border-color:var(--color-primary)}.event-date{font-size:var(--font-size-sm);color:var(--color-primary);margin-bottom:var(--space-xs);font-weight:600;display:block}.event-title{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.event-location{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.event-description{font-size:var(--font-size-sm);color:var(--color-text-muted)}.query-state{align-items:center;gap:var(--space-sm);color:var(--color-text-muted);padding:var(--space-lg) 0;display:flex}.query-error{color:var(--color-error)}.query-empty{color:var(--color-text-muted)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skip-link{top:-100%;left:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-primary);color:#fff;z-index:1000;position:absolute}.skip-link:focus{top:var(--space-md)}.callout-wrapper{bottom:var(--space-lg);left:var(--space-lg);right:var(--space-lg);z-index:1000;max-width:500px;position:fixed}.callout{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-text);color:var(--color-bg);border-radius:var(--radius);display:flex}.callout p{align-items:center;gap:var(--space-md);margin:0;display:flex}.callout-close{color:var(--color-bg);cursor:pointer;padding:var(--space-xs);background:0 0;border:none}.section{padding-block:var(--space-3xl)}.section:first-child{padding-top:0}.section+.section{position:relative}.section+.section:before{content:"";border-top:1px solid var(--color-border);width:100vw;position:absolute;top:0;left:calc(50% - 50vw)}.section-alt{background-color:var(--color-bg-alt);margin-inline:calc(50% - 50vw);padding-inline:calc(50vw - 50%)}.section-header{margin-bottom:var(--space-2xl)}.section-header h2{margin-bottom:var(--space-sm)}.section-header p{color:var(--color-text-muted);font-size:var(--font-size-lg);max-width:40rem}.section-center{text-align:center}.section-center .section-header p{margin-inline:auto}.home-hero{gap:var(--space-2xl);padding-block:var(--space-xl) var(--space-3xl);flex-direction:column-reverse;display:flex}.home-hero-content{gap:var(--space-lg);flex-direction:column;display:flex}.home-hero-content h1{font-size:var(--font-size-3xl);line-height:1.15}.home-hero-content .subtitle{font-size:var(--font-size-lg);color:var(--color-accent);font-weight:600}.home-hero-content .lead{font-size:var(--font-size-lg);color:var(--color-text-muted);line-height:1.7}.home-hero-actions{gap:var(--space-md);flex-wrap:wrap;display:flex}.home-hero-image{border-radius:var(--radius-lg);overflow:hidden}.home-hero-image img{width:100%;height:auto}@media (min-width:768px){.home-hero{flex-direction:row;align-items:center}.home-hero-content{flex:1}.home-hero-content h1{font-size:var(--font-size-4xl)}.home-hero-image{flex:1}.home-hero-image img{height:auto}}.card-grid{gap:var(--space-lg);display:grid}.card-grid-2{grid-template-columns:1fr}.card-grid-3{flex-wrap:wrap;justify-content:center;display:flex}.card-grid-3>*{width:100%}.card-grid-4{grid-template-columns:1fr}@media (min-width:600px){.card-grid-2{grid-template-columns:repeat(2,1fr)}.card-grid-3>*{width:calc(50% - var(--space-lg))}.card-grid-4{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.card-grid-3>*{width:calc(33.333% - var(--space-lg))}.card-grid-4{grid-template-columns:repeat(4,1fr)}}.service-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);transition:border-color var(--transition), box-shadow var(--transition)}.service-card h3{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.service-card p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.6}.service-icon{width:2.5rem;height:2.5rem;color:var(--color-accent);margin-bottom:var(--space-md)}.pillar{text-align:center;padding:var(--space-lg)}.pillar h3{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.pillar p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.6}.pillar-icon{width:3rem;height:3rem;color:var(--color-accent);margin-inline:auto;margin-bottom:var(--space-md)}.team-grid{gap:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.profile-card{text-align:center}.profile-card-image{object-fit:cover;object-position:center center;width:250px;height:250px;margin-inline:auto;margin-bottom:var(--space-md);border-radius:50%}.profile-card-placeholder{width:200px;height:200px;margin-inline:auto;margin-bottom:var(--space-md);background:var(--color-bg-alt);color:var(--color-text-muted);font-size:var(--font-size-3xl);border-radius:50%;justify-content:center;align-items:center;display:flex}.profile-card h3{font-size:var(--font-size-lg);margin-bottom:var(--space-xs)}.profile-card .profile-role{color:var(--color-accent);font-size:var(--font-size-sm);margin-bottom:var(--space-sm);font-weight:500}.profile-card .profile-bio{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.6}.cta-banner{text-align:center;padding:var(--space-3xl) var(--space-xl);background:var(--color-accent-light);border-radius:var(--radius-lg)}.cta-banner h2{margin-bottom:var(--space-sm)}.cta-banner p{color:var(--color-text-muted);margin-bottom:var(--space-xl);max-width:30rem;margin-inline:auto}.cta-banner .cta-actions{gap:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.btn-accent{background-color:var(--color-accent);color:#fff}.btn-accent:hover{background-color:var(--color-accent-hover);color:#fff}.featured-image{margin-block:var(--space-xl);overflow:hidden}.featured-image img{width:100%;height:auto;display:block}@media (min-width:768px){.featured-image{max-width:60%}.featured-image img{object-fit:cover;height:300px}}.two-col{gap:var(--space-2xl);align-items:start;display:grid}@media (min-width:768px){.two-col{grid-template-columns:1fr 1fr}}.two-col-text h1,.two-col-text h2{margin-bottom:var(--space-md)}.two-col-text p{color:var(--color-text-muted);margin-bottom:var(--space-md);line-height:1.7}.two-col-text p:last-child{margin-bottom:0}.two-col-image{border-radius:var(--radius-lg);overflow:hidden}.two-col-image img{width:100%;height:auto;display:block}.area-list{gap:var(--space-sm) var(--space-xl);margin-top:var(--space-md);flex-wrap:wrap;padding:0;list-style:none;display:flex}.area-list li{padding-left:var(--space-lg);color:var(--color-text-muted);position:relative}.area-list li:before{content:"";background:var(--color-accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:0}.contact-grid{gap:var(--space-2xl);display:grid}@media (min-width:768px){.contact-grid{grid-template-columns:1fr 1fr}}.contact-info h3{margin-bottom:var(--space-md)}.contact-info p{color:var(--color-text-muted);margin-bottom:var(--space-md);line-height:1.7}.contact-info a{color:var(--color-accent)}.contact-info a:hover{color:var(--color-accent-hover)}.contact-detail{gap:var(--space-xs);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.contact-detail strong{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.team-member-full{gap:var(--space-xl);padding-block:var(--space-2xl);display:grid}.team-member-full+.team-member-full{border-top:1px solid var(--color-border)}@media (min-width:600px){.team-member-full{grid-template-columns:250px 1fr;align-items:start}}.team-member-full .profile-card{text-align:center}.team-member-bio h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-xs)}.team-member-bio .profile-role{color:var(--color-accent);margin-bottom:var(--space-xs);font-weight:500}.team-member-bio .profile-email{font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.team-member-bio p{color:var(--color-text-muted);line-height:1.7}.bio-text p+p{margin-top:var(--space-md)}.bio-toggle{color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-family);background:0 0;border:none;padding:0;text-decoration:underline}.bio-toggle:hover{color:var(--color-primary-hover)}.service-detail{padding-block:var(--space-2xl)}.service-detail+.service-detail{border-top:1px solid var(--color-border)}.service-detail h2{margin-bottom:var(--space-md)}.service-detail p{color:var(--color-text-muted);max-width:40rem;line-height:1.7}.not-found{text-align:center;justify-content:center;align-items:center;gap:var(--space-md);flex-direction:column;min-height:50vh;display:flex}.not-found h1{font-size:6rem;line-height:1}.not-found p{color:var(--color-text-muted);font-size:var(--font-size-lg)}
