
:root{--green:#103f32;--deep:#052f28;--gold:#efbd2b;--ink:#102526;--muted:#6b6b70;--cream:#f7f6f2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:16px/1.5 'Figtree',sans-serif}button,a{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #bd8e11;outline-offset:5px}h1,h2,h3,p{margin:0}h2{font-size:30px;line-height:1.15;letter-spacing:-.7px}h2:after{content:'';display:block;width:47px;height:3px;background:#d7aa25;margin-top:9px}.wrap{max-width:1200px;margin:auto;padding:0 34px}.topbar{background:var(--green);color:white;font:12px/28px 'Figtree',sans-serif}.topbar .wrap{display:flex;justify-content:space-between}.languages{display:flex;gap:9px}.languages a+a{border-left:1px solid #ffffff70;padding-left:9px}header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:15px;flex-shrink:0}.brand img{width:90px;height:82px;object-fit:contain}.brand strong{font-size:16px;color:#111;display:block}.brand span{display:flex;align-items:center;gap:12px;letter-spacing:7px;font-size:12px;font-weight:bold;justify-content:center}.brand span:before,.brand span:after{content:'';height:2px;width:51px;background:var(--gold)}nav{display:flex;gap:23px;align-items:center;font:12px 'Figtree',sans-serif}nav a{padding:13px 0;white-space:nowrap}nav a.active{border-bottom:3px solid #d8a81c;color:var(--green);font-weight:bold}.iconbutton{border:0;background:none;color:var(--ink);padding:8px}.iconbutton svg{width:21px;height:21px}.menu{display:none}.hero{max-width:1200px;padding:0 34px;margin:auto;display:grid;grid-template-columns:1.82fr 1fr;gap:7px}.feature{position:relative;min-height:478px;overflow:hidden;border-radius:0 0 4px 0;background:var(--deep)}.feature>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center}.feature:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#053a3290 60%,#032e28 100%)}.feature-content{position:absolute;z-index:1;bottom:23px;left:34px;right:25px;color:#fff}.tag{display:inline-block;background:var(--gold);color:#15261f;border-radius:4px;padding:5px 15px;font: bold 11px/1.3 'Figtree',sans-serif}.feature .tag{letter-spacing:2px;padding:8px 14px}.feature h1{font-size:51px;line-height:.98;letter-spacing:-1px;margin:13px 0 5px;max-width:540px}.feature p{font-size:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--gold);color:#10261e;border:1px solid #d5a121;border-radius:7px;padding:10px 24px;font:bold 14px 'Figtree',sans-serif;margin-top:10px;min-height:39px}.arrow{font:22px/1 'Figtree',sans-serif}.button.green{background:var(--green);color:white;border-color:var(--green);width:100%;padding:12px}.slider-controls{display:flex;justify-content:space-between;align-items:center;margin-left:45%;margin-top:-25px}.dots{display:flex;gap:10px}.dot{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid #bcc5bd;background:transparent}.dot.selected{background:var(--gold);border-color:var(--gold)}.round{border:1px solid #ffffff70;background:transparent;color:white;border-radius:50%;width:30px;height:30px;margin-left:10px;font:23px 'Figtree',sans-serif}.paper-panel{background:linear-gradient(120deg,#f8f6ee,#faf9f6);border-radius:9px;padding:24px 26px 22px;display:flex;flex-direction:column}.paper-panel h2{font-size:34px;color:var(--deep)}.newspapers{position:relative;height:270px;margin:8px 0 0;display:flex;align-items:center;justify-content:center}.paper{background:#fbfbf8;color:#171717;width:155px;height:228px;padding:8px;box-shadow:0 6px 14px #0003;transform:rotate(-6deg);z-index:1;flex-shrink:0;border:1px solid #ddd}.paper+.paper{transform:rotate(5deg);margin-left:-10px;margin-top:-20px;z-index:0}.paper small{font-size:6px;display:block;text-align:center;border-bottom:1px solid #333}.paper b{display:block;font-size:23px;letter-spacing:-1.3px;white-space:nowrap;border-bottom:2px solid #222;line-height:1.4}.paper img{width:100%;height:85px;object-fit:cover;margin-top:7px}.paper h3{font-size:9px;line-height:1.2;margin:3px 0}.columns{height:74px;background:repeating-linear-gradient(to bottom,#888 0,#888 1px,transparent 1px,transparent 4px);column-count:3;opacity:.55;mask-image:linear-gradient(90deg,#000 31%,transparent 31%,transparent 34%,#000 34%,#000 65%,transparent 65%,transparent 68%,#000 68%)}.paper-panel p{font-size:15px;line-height:1.35;color:#45464a;margin:auto 0 6px}.ticker{display:flex;align-items:center;gap:15px;margin:17px 0 20px;background:var(--cream);border:1px solid #eeebe3;border-radius:6px;height:37px;overflow:hidden;font:14px 'Figtree',sans-serif;color:#555}.ticker strong{align-self:stretch;display:flex;align-items:center;background:#e5b126;padding:0 20px;color:#17291f;font-size:12px;clip-path:polygon(0 0,92% 0,100% 100%,0 100%)}.ticker-text{flex:1}.ticker button{border:0;background:none;font-size:20px;color:#374542}.ticker button:last-child{margin-right:12px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.text-link{color:var(--green);font:bold 12px 'Figtree',sans-serif;display:inline-flex;gap:9px;align-items:center}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{border:1px solid #eeedf0;border-radius:6px;overflow:hidden}.card-image{position:relative;height:175px}.card-image img{width:100%;height:100%;object-fit:cover}.card-image .tag{position:absolute;left:12px;bottom:-7px;font:11px 'Figtree',sans-serif;padding:5px 13px}.card-body{padding:19px 12px 14px}.card h3{font-size:19px;line-height:1.2;letter-spacing:-.4px}.card p{color:var(--muted);font:13px/1.5 'Figtree',sans-serif;margin:7px 0 13px}.card-meta{display:flex;justify-content:space-between;align-items:center;font:11px 'Figtree',sans-serif;color:var(--muted)}.date{display:flex;align-items:center;gap:6px}.date svg{width:14px;height:14px}.info-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:6px;margin:20px 0 18px}.announcements{border-radius:7px;background:var(--cream);padding:10px 16px 15px}.announcements .section-heading{margin-bottom:12px}.notice{display:flex;gap:28px;align-items:center;background:white;border:1px solid #eeece8;padding:6px 10px;border-radius:6px;margin-top:7px}.notice time{width:68px;flex-shrink:0;background:#f2eedf;text-align:center;border-radius:5px;padding:7px 0;font-size:12px;line-height:1.3}.notice time b{display:block;font-size:17px;font-weight:normal}.notice h3{font-size:16px;letter-spacing:-.4px}.notice p{font:12px/1.4 'Figtree',sans-serif;color:var(--muted);margin-top:3px}.notice .chevron{margin-left:auto;background:#f8f8f7;border:1px solid #eee;border-radius:50%;width:26px;height:26px;flex-shrink:0;text-align:center;color:#555}.about{padding:18px 23px;border-radius:7px;background:linear-gradient(90deg,#06372bf2,#06372bd6),url('assets/waterfront.jpg') center/cover;color:white}.about h2{font-size:29px}.about h2:after{background:var(--gold)}.about .intro{font-size:15px;line-height:1.25;margin:14px 0}.about p{font:12px/1.45 'Figtree',sans-serif}.about .button{margin-top:20px}.services{margin:0 0 20px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:15px}.service{display:flex;gap:17px;padding:0 18px 0 0}.service+.service{border-left:1px solid #ede9df;padding-left:24px}.service-icon{width:65px;height:65px;background:#f2eedf;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.service-icon svg{width:36px;height:36px;fill:none;stroke:var(--ink);stroke-width:1.7}.service h3{font-size:16px;margin-top:4px}.service p{font:12px/1.35 'Figtree',sans-serif;color:var(--muted);margin:4px 0 10px}footer{color:white;background:linear-gradient(90deg,#0c3c2ff5,#0c3c2fd9),url('assets/waterfront.jpg') center 60%/cover;border-bottom:10px solid var(--gold);padding:18px 0 21px}footer .footer-top{display:flex;justify-content:space-between;align-items:center}footer .brand img{width:82px;height:75px}footer .brand strong{color:white;font-size:14px}footer .brand span{font-size:10px}footer nav{font-size:10px;gap:23px}footer p{font:11px 'Figtree',sans-serif;margin-top:27px;opacity:.8}.credits{font:10px 'Figtree',sans-serif;margin-top:12px;opacity:.7}.credits a{text-decoration:underline}dialog{border:0;border-radius:10px;padding:30px;width:min(90vw,620px);color:var(--ink);box-shadow:0 20px 80px #0004}dialog::backdrop{background:#002c26b3}dialog h2{margin-bottom:20px}dialog p{margin:12px 0}dialog button.close{float:right;border:0;background:#eee;border-radius:50%;width:30px;height:30px}dialog input{width:100%;padding:13px;border:1px solid #ccc;border-radius:5px;font:16px 'Figtree',sans-serif}.search-results{display:grid;gap:10px;margin-top:15px}.search-results a{padding:10px;background:var(--cream)}
@media(min-width:1100px){.feature{min-height:530px}.feature h1{font-size:60px}.paper-panel{padding:30px}.newspapers{height:310px}.paper{width:180px;height:255px}.paper img{height:105px}.card-image{height:220px}header{height:110px}nav{font-size:14px}}
@media(max-width:850px){header{gap:12px}.brand{gap:8px}.brand img{width:68px;height:67px}.brand strong{font-size:13px}.brand span{font-size:9px;letter-spacing:5px}.brand span:before,.brand span:after{width:30px}nav{gap:12px;font-size:11px}.wrap,.hero{padding:0 24px}.feature-content{left:24px}.feature h1{font-size:42px}.paper-panel{padding:22px 18px}.paper{width:130px;height:205px}.paper b{font-size:19px}.newspapers{height:250px}.notice{gap:14px}.service{gap:10px}.service+.service{padding-left:15px}footer nav{gap:13px}}
@media(max-width:680px){.wrap,.hero{padding:0 18px}.topbar{font-size:10px}.topbar .wrap{gap:10px}.topbar .official{max-width:72%;line-height:1.4;padding:7px 0}header{height:85px;position:relative}.menu{display:block}header nav{display:none;position:absolute;top:85px;left:0;right:0;background:white;z-index:5;box-shadow:0 10px 15px #0002;padding:20px;flex-wrap:wrap}header nav.open{display:flex}.hero{display:block;padding:0 18px}.feature{min-height:440px;border-radius:6px}.feature h1{font-size:43px}.feature p{font-size:16px}.slider-controls{margin-left:52%}.paper-panel{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.paper-panel h2{font-size:28px}.newspapers{grid-row:1/4;grid-column:2;height:230px;transform:scale(.85);margin:0 -14px}.paper-panel p{font-size:14px}.paper-panel .button{font-size:12px;padding:12px}.ticker{gap:8px;font-size:11px}.ticker strong{padding:0 10px;font-size:10px}.news-grid,.info-grid,.service-grid{grid-template-columns:1fr}.news-grid{gap:16px}.card-image{height:230px}.card-body{padding:20px 16px 16px}.card h3{font-size:23px}.card p{font-size:14px}.info-grid{margin:20px 0;gap:14px}.about{padding:23px}.about p{font-size:14px}.notice{padding:9px;gap:15px}.service{padding:15px 0!important;border-left:0!important}.service+.service{border-top:1px solid #eee}.service p{font-size:14px}.service h3{font-size:19px}footer .footer-top{align-items:flex-start;flex-direction:column;gap:14px}footer nav{display:flex;flex-wrap:wrap;gap:15px}h2{font-size:28px}.section-heading .text-link{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Consistent breathing room between homepage sections. */
.ticker{margin-top:28px;margin-bottom:40px}
.info-grid{margin-top:48px;margin-bottom:48px}
.services{margin-bottom:48px}
.section-heading{margin-bottom:22px}
.service-grid{margin-top:24px}
@media(max-width:680px){
 .ticker{margin-top:24px;margin-bottom:32px}
 .info-grid{margin-top:36px;margin-bottom:36px;gap:28px}
 .services{margin-bottom:36px}
 .section-heading{margin-bottom:18px}
 .paper-panel{margin-top:24px}
}

/* Three newspaper covers, with a staggered entrance and interactive lift. */
.newspapers{display:block;height:300px;margin:14px 0 12px;isolation:isolate}
.newspapers .paper{position:absolute;top:30px;left:0;width:54%;height:240px;max-width:180px;margin:0;z-index:1;--angle:-10deg;--lift:8px;transform:translateY(var(--lift)) rotate(var(--angle));transform-origin:50% 85%;transition:transform .35s ease,box-shadow .35s ease;animation:paper-enter .75s cubic-bezier(.2,.7,.2,1) backwards;outline-offset:4px}
.newspapers .paper:nth-child(2){left:23%;z-index:2;--angle:-1deg;--lift:-10px;animation-delay:.12s}
.newspapers .paper:nth-child(3){left:46%;z-index:3;--angle:10deg;--lift:8px;animation-delay:.24s}
.newspapers .paper b{font-size:clamp(17px,1.9vw,23px)}
.newspapers .paper-sports b{color:#0e693e;font-size:29px;letter-spacing:-1px}
.newspapers .paper img{height:90px}
.newspapers .paper:hover,.newspapers .paper:focus-visible{z-index:5;transform:translateY(-22px) rotate(0deg) scale(1.04);box-shadow:0 16px 25px #0004}
@keyframes paper-enter{from{opacity:0;transform:translateY(55px) rotate(0deg) scale(.88)}to{opacity:1;transform:translateY(var(--lift)) rotate(var(--angle))}}
@media(max-width:680px){.paper-panel{display:flex;gap:0}.newspapers{width:min(100%,340px);align-self:center;transform:none;grid-column:auto;grid-row:auto;height:300px;margin:16px 0}.newspapers .paper b{font-size:22px}.newspapers .paper-sports b{font-size:29px}}
@media(prefers-reduced-motion:reduce){.newspapers .paper{animation:none;transition:none}.newspapers .paper:hover,.newspapers .paper:focus-visible{transform:translateY(var(--lift)) rotate(var(--angle));box-shadow:0 6px 14px #0003;outline:2px solid var(--gold)}}

/* News card interaction. */
.news-grid .card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.news-grid .card-image{overflow:visible}
.news-grid .card-image img{clip-path:inset(0 round 5px 5px 0 0);transition:clip-path .4s ease,filter .4s ease}
.news-grid .card:hover,.news-grid .card:focus-within{transform:translateY(-7px);box-shadow:0 14px 30px #103f321c;border-color:#d6e2da}
.news-grid .card:hover .text-link .arrow,.news-grid .card:focus-within .text-link .arrow{transform:translateX(4px)}
.news-grid .text-link .arrow{transition:transform .3s ease}
@media(prefers-reduced-motion:reduce){.news-grid .card,.news-grid .card-image img,.news-grid .text-link .arrow{transition:none}.news-grid .card:hover,.news-grid .card:focus-within,.news-grid .card:hover .text-link .arrow,.news-grid .card:focus-within .text-link .arrow{transform:none}}
.card-photo{width:100%;height:100%;overflow:hidden;border-radius:5px 5px 0 0}
.news-grid .card-photo img{transition:transform .45s ease}
@media(hover:hover){.news-grid .card:hover .card-photo img{transform:scale(1.045)}}
.news-grid .card:focus-within .card-photo img{transform:scale(1.045)}
@media(prefers-reduced-motion:reduce){.news-grid .card-photo img{transition:none}.news-grid .card:hover .card-photo img,.news-grid .card:focus-within .card-photo img{transform:none}}

/* Actual newspaper covers retain their full artwork and existing animations. */
.newspapers .paper-cover{padding:0;background:#fff;height:240px}
.newspapers .paper-cover img{display:block;width:100%;height:100%;margin:0;object-fit:contain}
.hero-track{position:absolute;inset:0;display:flex;transition:transform .8s cubic-bezier(.22,.61,.36,1);will-change:transform}
.hero-track img{display:block;flex:0 0 100%;width:100%;min-width:0;height:100%;object-fit:cover;object-position:center}
@media(prefers-reduced-motion:reduce){.hero-track{transition:none}}

/* Announcement interactions, also available through keyboard focus. */
.announcements .notice{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.announcements .notice .chevron{transition:transform .25s ease,background-color .25s ease,color .25s ease}
.announcements .notice time{transition:background-color .25s ease}
.announcements .notice:hover,.announcements .notice:focus-visible{transform:translateY(-3px);box-shadow:0 8px 18px #103f3217;border-color:#d2ded6}
.announcements .notice:hover .chevron,.announcements .notice:focus-visible .chevron{transform:translateX(3px);background:var(--green);color:white}
.announcements .notice:hover time,.announcements .notice:focus-visible time{background:#f6e7ae}
@media(prefers-reduced-motion:reduce){
 .announcements .notice,.announcements .notice .chevron,.announcements .notice time{transition:none}
 .announcements .notice:hover,.announcements .notice:focus-visible,.announcements .notice:hover .chevron,.announcements .notice:focus-visible .chevron{transform:none}
}

/* Service interactions, including keyboard focus on their links. */
.services .service{transition:transform .3s ease}
.services .service-icon{transition:transform .3s ease,background-color .3s ease,box-shadow .3s ease}
.services .service-icon svg{transition:stroke .3s ease}
.services .text-link .arrow{transition:transform .3s ease}
.services .service:hover,.services .service:focus-within{transform:translateY(-5px)}
.services .service:hover .service-icon,.services .service:focus-within .service-icon{transform:rotate(-5deg) scale(1.06);background:var(--green);box-shadow:0 8px 18px #103f3226}
.services .service:hover .service-icon svg,.services .service:focus-within .service-icon svg{stroke:white}
.services .service:hover .text-link .arrow,.services .service:focus-within .text-link .arrow{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){
 .services .service,.services .service-icon,.services .service-icon svg,.services .text-link .arrow{transition:none}
 .services .service:hover,.services .service:focus-within,.services .service:hover .service-icon,.services .service:focus-within .service-icon,.services .service:hover .text-link .arrow,.services .service:focus-within .text-link .arrow{transform:none}
}

/* Readable organization copy and consistent call-to-action interactions. */
.about p{font-size:13px;line-height:1.65}
.about .intro{font-size:14px;line-height:1.5;margin:16px 0}
.about .button{margin-top:24px}
.button{transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease,border-color .25s ease}
.button .arrow{display:inline-block;transition:transform .25s ease}
.button:hover,.button:focus-visible{transform:translateY(-3px);background:#f5c944;border-color:#e3b225;box-shadow:0 8px 18px #0003}
.button.green:hover,.button.green:focus-visible{background:#185b46;border-color:#185b46}
.button:hover .arrow,.button:focus-visible .arrow{transform:translateX(5px)}
@media(max-width:680px){.about p{font-size:13px}.about .intro{font-size:14px}}
@media(prefers-reduced-motion:reduce){.button,.button .arrow{transition:none}.button:hover,.button:focus-visible,.button:hover .arrow,.button:focus-visible .arrow{transform:none}}

/* Branded scrollbars and locally stored language flags. */
html{scrollbar-width:thin;scrollbar-color:var(--green) #f2eedf}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#f2eedf}
::-webkit-scrollbar-thumb{background:var(--green);border:2px solid #f2eedf;border-radius:12px}
::-webkit-scrollbar-thumb:hover{background:#ba921d}
::-webkit-scrollbar-corner{background:#f2eedf}
.languages{align-items:center;flex-shrink:0}
.languages a{display:inline-flex;align-items:center;gap:6px;transition:color .2s ease}
.languages a:hover{color:var(--gold)}
.language-flag{display:block;width:20px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #ffffff35;flex-shrink:0}
@media(max-width:680px){.topbar .official{min-width:0;flex:1}.languages{gap:6px}.languages a{gap:4px}.languages a+a{padding-left:6px}.language-flag{width:17px;height:12px}}
@media(prefers-reduced-motion:reduce){.languages a{transition:none}}

/* Vertical ticker transitions stay clipped inside the announcement bar. */
.ticker-viewport{position:relative;display:block;flex:1;min-width:0;height:100%;overflow:hidden}
.ticker-viewport .ticker-text{position:absolute;inset:0;display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticker-viewport .ticker-incoming{pointer-events:none}
.ticker button{flex-shrink:0}
@media(max-width:680px){.ticker-viewport .ticker-text{font-size:11px}}

/* Institution footer: three substantial columns with clear link hierarchy. */
footer{position:relative;overflow:hidden;padding:44px 0 22px;background:linear-gradient(110deg,#07392ff5,#104d3feF),url('assets/waterfront.jpg') center/cover}
footer:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.12;background:repeating-radial-gradient(ellipse at 10% 90%,transparent 0,transparent 32px,#d9e9de 33px,transparent 35px)}
footer .wrap{position:relative}
.footer-columns{display:grid;grid-template-columns:1.05fr 1fr 1.25fr;gap:44px}
.footer-column h2{color:var(--gold);font-size:16px;letter-spacing:1px;line-height:1.5;margin:0 0 24px;font-weight:800}
.footer-column h2:after{display:none}
footer .brand{gap:12px}
footer .brand img{width:60px;height:58px}
footer .brand strong{font-size:12px;line-height:1.5}
footer .brand span{font-size:9px;letter-spacing:4px;gap:7px}
footer .brand span:before,footer .brand span:after{width:25px}
footer .footer-description{font:13px/1.6 'Figtree',sans-serif;margin:15px 0;color:#d4e3da;opacity:1}
.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.footer-links li{font-size:14px;line-height:1.6}
.footer-links a{position:relative;display:flex;align-items:flex-start;gap:11px;color:#e2ece6;transition:color .25s ease,transform .25s ease}
.footer-links a:before{content:'';width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:5px solid var(--gold);margin-top:7px;flex-shrink:0;transition:transform .25s ease}
.footer-links a:hover,.footer-links a:focus-visible{color:var(--gold);transform:translateX(4px)}
.footer-links a:hover:before,.footer-links a:focus-visible:before{transform:translateX(2px)}
.footer-location{display:flex;gap:9px;align-items:center;color:#e2ece6}
.footer-location svg{width:17px;height:19px;fill:none;stroke:var(--gold);stroke-width:1.8;flex-shrink:0}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:35px;padding-top:20px;border-top:1px solid #ffffff24}
footer .footer-bottom p{font:12px/1.5 'Figtree',sans-serif;margin:0;color:#d4e3da;opacity:1}
footer .footer-bottom .credits{margin:0;font:11px/1.5 'Figtree',sans-serif}
@media(max-width:850px){.footer-columns{gap:24px;grid-template-columns:1fr 1fr}.footer-column:last-child{grid-column:1/-1}.footer-column:last-child .footer-links{grid-template-columns:1fr 1fr;column-gap:24px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:10px}}
@media(max-width:540px){footer{padding-top:32px}.footer-columns{grid-template-columns:1fr;gap:32px}.footer-column:last-child{grid-column:auto}.footer-column:last-child .footer-links{grid-template-columns:1fr}.footer-column h2{margin-bottom:17px}.footer-links{gap:10px}}
@media(prefers-reduced-motion:reduce){.footer-links a,.footer-links a:before{transition:none}.footer-links a:hover,.footer-links a:focus-visible,.footer-links a:hover:before,.footer-links a:focus-visible:before{transform:none}}

/* Wider shared container and an edge-to-edge colored navigation bar. */
.wrap,.hero{max-width:1440px}
header.site-header{display:block;height:auto;background:var(--green);color:white;border-bottom:3px solid #d5aa26}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:110px;position:relative}
.site-header .brand strong{color:white}
.site-header .brand span{color:#f5f3e8}
.site-header nav{font-size:14px;gap:24px}
.site-header nav a{color:#f2f6f3;transition:color .2s ease,border-color .2s ease}
.site-header nav a:hover,.site-header nav a:focus-visible,.site-header nav a.active{color:var(--gold)}
.site-header .iconbutton{color:white;transition:color .2s ease,transform .2s ease}
.site-header .iconbutton:hover{color:var(--gold);transform:translateY(-2px)}
.hero{margin-top:20px}
@media(min-width:1100px){.hero{grid-template-columns:1.82fr 1fr}}
@media(min-width:681px) and (max-width:1099px){.header-inner{flex-wrap:wrap;justify-content:center;gap:4px;padding-top:12px;padding-bottom:10px}.site-header nav{justify-content:center;gap:21px;flex-wrap:wrap}.site-header .brand img{width:75px;height:70px}}
@media(max-width:680px){.header-inner{min-height:85px;gap:12px}.site-header nav{top:85px;background:var(--green);border-bottom:3px solid var(--gold);font-size:13px;gap:16px}.site-header .brand strong{font-size:12px}.site-header .brand img{width:60px;height:60px}.hero{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.site-header nav a,.site-header .iconbutton{transition:none}.site-header .iconbutton:hover{transform:none}}
.topbar{background:#062b24;border-bottom:1px solid #ffffff18}

/* Utility links on the left; social channels and languages on the right. */
.topbar .wrap{align-items:center;gap:20px;min-height:42px}
.top-links,.top-right,.social-links{display:flex;align-items:center}
.top-links{gap:22px}.top-right{gap:18px;margin-left:auto}
.top-links a,.top-links button{display:inline-flex;align-items:center;gap:7px;color:#edf4ef;font:12px/1.4 'Figtree',sans-serif;white-space:nowrap}
.top-links button,.social-link{border:0;padding:0;background:none}
.top-links svg{width:16px;height:16px;fill:none;stroke:var(--gold);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.social-links{gap:8px;border-right:1px solid #ffffff35;padding-right:18px}
.social-link{display:grid;place-items:center;width:27px;height:27px;border-radius:5px;color:#e8f1eb;transition:color .2s ease,background .2s ease,transform .2s ease}
.social-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.social-link:first-child svg{fill:currentColor;stroke:none}
.top-links a:hover,.top-links a:focus-visible{color:var(--gold)}
.social-link:not(:disabled):hover,.social-link:focus-visible{color:var(--gold);background:#ffffff12;transform:translateY(-2px)}
.topbar button:disabled{cursor:default;opacity:.7}
@media(max-width:680px){.topbar .wrap{flex-wrap:wrap;justify-content:center;gap:10px;padding-top:9px;padding-bottom:9px}.top-links{justify-content:center;gap:18px}.top-right{margin-left:0;gap:12px}.social-links{gap:4px;padding-right:12px}.top-links a,.top-links button{font-size:11px}}
@media(prefers-reduced-motion:reduce){.social-link{transition:none}.social-link:not(:disabled):hover,.social-link:focus-visible{transform:none}}

/* Social icon hover and keyboard-focus effects. */
.social-link{transition:transform .25s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease}
.social-link svg{transition:transform .25s ease}
.social-link:hover,.social-link:focus-visible{color:var(--gold);background:#ffffff18;transform:translateY(-3px);box-shadow:0 5px 12px #0003}
.social-link:hover svg,.social-link:focus-visible svg{transform:rotate(-8deg) scale(1.12)}
@media(prefers-reduced-motion:reduce){.social-link,.social-link svg{transition:none}.social-link:hover,.social-link:focus-visible,.social-link:hover svg,.social-link:focus-visible svg{transform:none}}

/* Match the lighter footer greens and keep the footer wordmark together. */
:root{--green:#175442;--deep:#104638}
header.site-header{background:linear-gradient(110deg,#124c3e,#195b49)}
.topbar{background:#0f4035}
.button.green{background:#175442;border-color:#175442}
.button.green:hover,.button.green:focus-visible{background:#226b54;border-color:#226b54}
.about{background:linear-gradient(90deg,#124c3ef2,#195b49d9),url('assets/waterfront.jpg') center/cover}
.site-header nav{background:transparent}
footer .brand{min-width:0}
footer .brand>div{min-width:0}
footer .brand strong{white-space:nowrap;font-size:12px}
@media(max-width:680px){.site-header nav{background:#175442}}
@media(max-width:420px){footer .brand{gap:9px}footer .brand img{width:50px;height:50px}footer .brand strong{font-size:10px}footer .brand span{font-size:8px;letter-spacing:3px}}
@media(min-width:681px) and (max-width:850px){footer .brand strong{font-size:10px}footer .brand img{width:50px;height:50px}}
@media(max-width:680px){.footer-columns{grid-template-columns:1fr}.footer-column:last-child{grid-column:auto}.footer-column:last-child .footer-links{grid-template-columns:1fr}}

/* Four footer columns: contacts, services, quick links and related institutions. */
.footer-columns{grid-template-columns:1.2fr .85fr .95fr 1.1fr;gap:28px}
.footer-column{min-width:0}
.footer-column h2{font-size:15px;letter-spacing:.6px}
.footer-links li{font-size:13px}
.contact-links a,.contact-links span{display:flex;gap:9px;align-items:flex-start;overflow-wrap:anywhere}
.contact-links a:before{display:none}
.contact-links svg{width:17px;height:19px;flex-shrink:0;margin-top:1px;fill:none;stroke:var(--gold);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
footer .brand strong{font-size:10px}
footer .brand img{width:50px;height:50px}
@media(max-width:1100px){.footer-columns{grid-template-columns:1fr 1fr;gap:32px}.footer-column:last-child{grid-column:auto}.footer-column:last-child .footer-links{grid-template-columns:1fr}}
@media(max-width:680px){.footer-columns{grid-template-columns:1fr;gap:30px}}

/* Equal item counts and consistent footer row rhythm. */
.footer-links{gap:0;grid-auto-rows:minmax(42px,auto)}
.footer-links li{display:flex;align-items:flex-start;padding:8px 0;min-width:0}
.footer-links li>a,.footer-links li>span{width:100%}
@media(max-width:680px){.footer-links{grid-auto-rows:minmax(38px,auto)}.footer-links li{padding:6px 0}}
footer .brand strong{font-size:15px;white-space:normal;line-height:1.4}
footer .brand span{font-size:10px}
@media(max-width:420px){footer .brand span{font-size:9px}}

/* Responsive news carousel with room for card hover shadows. */
.news-carousel{overflow:hidden;padding:12px 12px 22px;margin:-12px -12px -22px;touch-action:pan-y}
.news-carousel .news-grid{display:flex;gap:18px;transition:transform .75s cubic-bezier(.22,.61,.36,1);will-change:transform}
.news-carousel .card{flex:0 0 calc((100% - 36px)/3);min-width:0;display:flex;flex-direction:column}
.news-carousel .card-body{display:flex;flex-direction:column;flex:1}
.news-carousel .card-meta{margin-top:auto}
.news-controls{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:24px;font-size:12px;color:var(--green)}
.news-control{width:36px;height:36px;border:1px solid #d2dfd7;border-radius:50%;background:#f7f8f4;color:var(--green);font-size:20px;transition:background .2s ease,color .2s ease,transform .2s ease}
.news-control:hover{background:var(--green);color:white;transform:translateY(-2px)}
@media(min-width:681px) and (max-width:900px){.news-carousel .card{flex-basis:calc((100% - 18px)/2)}}
@media(max-width:680px){.news-carousel .card{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.news-carousel .news-grid,.news-control{transition:none}.news-control:hover{transform:none}}

/* Animated hero carousel controls. */
.slider-controls .round{display:inline-grid;place-items:center;transition:transform .25s ease,background-color .25s ease,border-color .25s ease,color .25s ease,box-shadow .25s ease}
.slider-controls .round:hover,.slider-controls .round:focus-visible{transform:translateY(-3px) scale(1.08);background:var(--gold);border-color:var(--gold);color:var(--deep);box-shadow:0 6px 15px #0003}
.slider-controls .round:active{transform:scale(.94)}
.slider-controls .dots{align-items:center;gap:10px}
.slider-controls .dot{position:relative;transition:transform .25s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease}
.slider-controls .dot:before{content:'';position:absolute;inset:-7px;border-radius:50%}
.slider-controls .dot:hover,.slider-controls .dot:focus-visible{transform:scale(1.3);border-color:var(--gold);box-shadow:0 0 0 4px #efbd2b24}
.slider-controls .dot.selected{transform:scale(1.15);box-shadow:0 0 0 3px #efbd2b20;animation:hero-dot-activate .45s ease}
@keyframes hero-dot-activate{0%{transform:scale(.8);box-shadow:0 0 0 0 #efbd2b66}60%{transform:scale(1.4);box-shadow:0 0 0 6px #efbd2b00}100%{transform:scale(1.15);box-shadow:0 0 0 3px #efbd2b20}}
@media(prefers-reduced-motion:reduce){.slider-controls .round,.slider-controls .dot{transition:none;animation:none}.slider-controls .round:hover,.slider-controls .round:focus-visible,.slider-controls .round:active,.slider-controls .dot:hover,.slider-controls .dot:focus-visible,.slider-controls .dot.selected{transform:none}}

/* Four services on desktop, two on tablet, one on mobile. */
.service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.service{min-width:0;gap:12px;padding-right:14px}
.service+.service{padding-left:16px}
.service-icon{width:56px;height:56px}
.service-icon svg{width:31px;height:31px}
@media(min-width:681px) and (max-width:1100px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}.service:nth-child(3){border-left:0;padding-left:0}}
@media(max-width:680px){.service-grid{grid-template-columns:1fr}.service-icon{width:65px;height:65px}.service-icon svg{width:36px;height:36px}}
.news-grid .card p,.news-grid .card:hover p,.news-grid .card:focus-within p{color:var(--ink)}

.card-photo{display:block}

/* Floating scroll-to-top control. */
.scroll-top{position:fixed;right:26px;bottom:26px;z-index:50;width:48px;height:48px;border:1px solid #d8a926;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--deep);box-shadow:0 5px 18px #0003;transition:transform .25s ease,background-color .25s ease,box-shadow .25s ease;animation:scroll-top-in .25s ease}
.scroll-top[hidden]{display:none}
.scroll-top svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.scroll-top:hover,.scroll-top:focus-visible{transform:translateY(-4px);background:#f5ca44;box-shadow:0 9px 22px #0004}
@keyframes scroll-top-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:680px){.scroll-top{right:18px;bottom:18px;width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.scroll-top{animation:none;transition:none}.scroll-top:hover,.scroll-top:focus-visible{transform:none}}
@media print{.scroll-top{display:none}}

.languages a[aria-current="page"]{color:var(--gold);font-weight:700}
