*{box-sizing:border-box}
:root{--red:#e11d48;--blue:#2563eb;--green:#16a34a;--orange:#f97316;--violet:#7c3aed;--ink:#101114;--muted:#5f6672;--paper:#f5f7fb}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6}
body.large-text{font-size:18px}
body.high-contrast{background:#000;color:#fff}
body.high-contrast .content-wrap,body.high-contrast .service-card,body.high-contrast .portal-card,body.high-contrast .side-card,body.high-contrast .news-list,body.high-contrast .site-footer{background:#000;color:#fff}
body.high-contrast a{color:#fff!important;text-decoration:underline}
body.high-contrast .site-header,body.high-contrast .main-nav{background:#000}
body.high-contrast .top-strip{background:#111;color:#fff}
body.high-contrast .section-heading p,body.high-contrast .service-card small,body.high-contrast .portal-card p,body.high-contrast .news-list p{color:#fff}
.skip-link{position:absolute;left:-9999px;top:10px;z-index:9999;background:#fff;color:#000;padding:10px 16px;border:3px solid #000;border-radius:8px}
.skip-link:focus{left:10px}
.top-strip{background:#111827;color:#fff;font-size:.86rem;padding:7px 0;border-bottom:3px solid var(--orange)}
.access-btn,.language-select{border:1px solid #657084;background:#1f2937;color:#fff;border-radius:5px;padding:4px 9px;font-size:.78rem}
.access-btn:focus,.language-select:focus,input:focus,button:focus,a:focus{outline:3px solid #fbbf24;outline-offset:2px}
.language-label{font-size:.78rem}
.site-header{background:#fff;box-shadow:0 4px 18px #10111418;position:relative;z-index:20}
.brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.brand-mark{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:1.5rem;background:linear-gradient(135deg,var(--red),var(--violet),var(--blue),var(--green));background-size:250% 250%;animation:gradientMove 5s ease infinite}
.brand strong{display:block;font-size:1.2rem;letter-spacing:-.03em}
.brand small{display:block;font-size:.68rem;color:var(--muted)}
.header-link{color:#333;text-decoration:none;font-weight:600;margin-right:18px}
.header-link:hover{color:var(--blue)}
.js-menu-btn{border:0;background:#111;color:#fff;border-radius:7px;padding:8px 12px}
.main-nav{background:linear-gradient(90deg,#e11d48,#7c3aed,#2563eb,#16a34a,#f97316);background-size:300% 300%;animation:gradientMove 10s ease infinite}
.navbar .nav-link{color:#fff!important;font-weight:700;padding:13px 14px!important;text-shadow:0 1px 2px #0005}
.navbar .nav-link:hover,.navbar .nav-link.active{background:#fff;color:#111!important;border-radius:7px;text-shadow:none}
.navbar-toggler{border:1px solid #fff;color:#fff}
.hero-section{padding:34px 0;background:linear-gradient(135deg,#fce7f3,#e0f2fe 42%,#dcfce7 100%)}
.hero-box{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center;background:#101114;border-radius:24px;padding:34px;color:#fff;overflow:hidden;box-shadow:0 20px 55px #0003;position:relative}
.hero-box:before{content:"";position:absolute;inset:-60%;background:conic-gradient(from 90deg,transparent 0 35%,#e11d4860 42%,#7c3aed50 52%,#2563eb50 62%,transparent 72%);animation:spin 13s linear infinite}
.hero-copy,.hero-visual{position:relative;z-index:1}
.eyebrow,.section-kicker{font-size:.72rem;font-weight:800;letter-spacing:.12em}
.eyebrow{display:inline-flex;gap:7px;align-items:center;background:#fff;color:#111;padding:7px 11px;border-radius:999px;margin-bottom:13px}
.hero-copy h1{font-size:clamp(2.1rem,4vw,4.2rem);line-height:1.03;letter-spacing:-.055em;margin:0 0 16px}
.hero-copy h1 span{background:linear-gradient(90deg,#fb7185,#c084fc,#60a5fa,#4ade80,#fb923c);background-size:300%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradientMove 7s ease infinite}
.hero-copy p{color:#d1d5db;max-width:680px}
.hero-search{display:flex;background:#fff;padding:6px;border-radius:12px;margin-top:22px;max-width:700px}
.hero-search input{flex:1;border:0;outline:0;padding:13px 15px;font-size:1rem;min-width:0}
.hero-search button{border:0;background:linear-gradient(135deg,var(--red),var(--violet),var(--blue));color:#fff;font-weight:800;border-radius:8px;padding:0 20px}
.search-message{min-height:25px;color:#fde68a;font-size:.85rem;margin-top:6px}
.quick-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;font-size:.82rem}
.quick-links a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}
.hero-visual img{width:100%;height:420px;object-fit:cover}
.carousel-caption{text-align:left;left:7%;right:7%;bottom:8%;background:linear-gradient(90deg,#000c,#0002);padding:16px;border-radius:12px}
.carousel-caption strong,.carousel-caption span{display:block}
.carousel-caption strong{font-size:1.2rem}.carousel-caption span{color:#e5e7eb;font-size:.85rem}
.content-wrap{background:var(--paper)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:18px}
.section-kicker{color:var(--violet)}
.section-heading h2{font-size:2rem;letter-spacing:-.04em;margin:3px 0}
.section-heading p{color:var(--muted);margin:0}
.service-card{display:block;position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:15px;padding:20px;text-decoration:none;color:var(--ink);height:100%;transition:.25s;overflow:hidden}
.service-card:before{content:"";position:absolute;left:0;top:0;width:5px;height:100%;background:var(--accent)}
.service-card:hover{transform:translateY(-4px);box-shadow:0 14px 35px #0001}
.service-card>span{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:color-mix(in srgb,var(--accent) 13%,white);color:var(--accent);font-size:1.35rem;margin-bottom:12px}
.service-card strong,.service-card small{display:block}.service-card strong{font-size:1.05rem}.service-card small{color:var(--muted);padding-right:25px}.card-arrow{position:absolute;right:18px;top:18px;color:var(--accent)}
.color-red{--accent:var(--red)}.color-blue{--accent:var(--blue)}.color-green{--accent:var(--green)}.color-orange{--accent:var(--orange)}.color-violet{--accent:var(--violet)}.color-black{--accent:#111827}
.portal-section{padding:28px;border-radius:20px;background:linear-gradient(135deg,#fff,#eef2ff);border:1px solid #e5e7eb}
.portal-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px;height:100%}
.portal-card>i{font-size:1.8rem;color:var(--blue)}.portal-card h3{font-size:1.05rem;margin-top:10px}.portal-card p{color:var(--muted);font-size:.9rem}
.btn-gradient{color:#fff;background:linear-gradient(90deg,var(--red),var(--violet),var(--blue),var(--green));border:0;font-weight:800}
.news-list{background:#fff;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden}
.news-list article{padding:20px;border-bottom:1px solid #e5e7eb}.news-list article:last-child{border-bottom:0}.news-list time{font-size:.75rem;color:var(--violet);font-weight:800}.news-list h3{font-size:1.08rem;margin:4px 0}.news-list h3 a{color:var(--ink)}.news-list p{color:var(--muted);font-size:.9rem;margin:0}
.right-sidebar{top:20px}.side-card{background:#fff;border:1px solid #e5e7eb;border-radius:17px;padding:21px;margin-bottom:16px;box-shadow:0 7px 25px #0000000b}.side-card h3{font-size:1.2rem;margin:5px 0}.side-card p{color:var(--muted);font-size:.88rem}.emergency{background:linear-gradient(135deg,#991b1b,#e11d48,#f97316);color:#fff;border:0;display:flex;gap:15px}.emergency p{color:#ffe4e6}.side-icon{font-size:2rem}.emergency .section-kicker{color:#fff}.side-links{list-style:none;padding:0;margin:12px 0 0}.side-links li+li{border-top:1px solid #e5e7eb}.side-links a{display:block;padding:11px 2px;color:#222;text-decoration:none;font-weight:600;font-size:.9rem}.side-links a:hover{color:var(--blue)}.side-links i{width:25px;color:var(--violet)}
.accessibility-card{background:linear-gradient(135deg,#ecfdf5,#eff6ff)}
.site-footer{background:#0b0d12;color:#e5e7eb;border-top:7px solid transparent;border-image:linear-gradient(90deg,var(--red),var(--orange),var(--green),var(--blue),var(--violet)) 1}
.gallery-footer{padding:38px 0 28px}.footer-heading h2{font-size:1.5rem;margin:4px 0 18px}.footer-gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.footer-gallery img{width:100%;height:105px;object-fit:cover;border-radius:9px;filter:saturate(1.1);transition:.25s}.footer-gallery img:hover{transform:scale(1.04)}
.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr .7fr;gap:30px;padding:30px 0;border-top:1px solid #272b35}.footer-brand{color:#fff}.footer-main h3{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}.footer-main>div>a:not(.brand){display:block;color:#aeb5c2;text-decoration:none;margin:7px 0;font-size:.88rem}.footer-main p{color:#aeb5c2;max-width:550px;font-size:.88rem}
.js-logo{justify-self:end;display:flex;align-items:center;gap:10px}.js-logo span{font-size:2.2rem;font-weight:900;line-height:1;background:linear-gradient(135deg,#fb7185,#a78bfa,#60a5fa,#4ade80);-webkit-background-clip:text;color:transparent}.js-logo small{font-size:.58rem;font-weight:800;letter-spacing:.1em;color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:15px;padding:18px 0;border-top:1px solid #272b35;color:#858d9b;font-size:.76rem}
@keyframes gradientMove{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
@media(max-width:991px){.hero-box{grid-template-columns:1fr}.hero-visual img{height:330px}.footer-gallery{grid-template-columns:repeat(3,1fr)}.footer-main{grid-template-columns:1.5fr 1fr 1fr}.js-logo{grid-column:1/-1;justify-self:start}}
@media(max-width:575px){.top-strip .container{align-items:flex-start}.hero-section{padding:15px 0}.hero-box{padding:22px;border-radius:17px}.hero-search{display:block;background:transparent;padding:0}.hero-search input{width:100%;border-radius:8px;margin-bottom:7px}.hero-search button{width:100%;padding:12px}.section-heading{display:block}.section-heading .btn{margin-top:12px}.portal-section{padding:18px}.footer-gallery{grid-template-columns:repeat(2,1fr)}.footer-main{grid-template-columns:1fr 1fr}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:5px}}
