:root{
  --opbs-blue:#1f4e8c; --opbs-blue-dark:#173c6d; --opbs-ochre:#f2c94c; --opbs-ochre-soft:#fbefc4;
  --opbs-leaf:#2f7d4f; --opbs-ink:#1b2433; --opbs-muted:#556072; --opbs-bg:#fbfaf6;
  --bs-primary:#1f4e8c; --bs-primary-rgb:31,78,140; --bs-link-color:#1f4e8c; --bs-link-hover-color:#173c6d;
  --bs-body-font-family:"Source Sans 3","Segoe UI",system-ui,sans-serif;
}
body{background:var(--opbs-bg);color:var(--opbs-ink);font-size:1.0625rem}
h1,h2,h3,h4,.navbar-brand{font-family:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;font-weight:800;text-wrap:balance}
.navbar-opbs{background:var(--opbs-blue)}
.navbar-opbs .nav-link{color:rgba(255,255,255,.85);font-weight:600}
.navbar-opbs .nav-link:hover,.navbar-opbs .nav-link.active{color:#fff}
.navbar-opbs .nav-link.active{box-shadow:inset 0 -3px 0 var(--opbs-ochre)}
.navbar-brand img{width:42px;height:42px;border-radius:50%;background:#fff;object-fit:cover}
.btn-ochre{background:var(--opbs-ochre);border-color:var(--opbs-ochre);color:var(--opbs-ink);font-weight:600}
.btn-ochre:hover{background:#e8bb33;border-color:#e8bb33;color:var(--opbs-ink)}
.btn-primary{--bs-btn-bg:var(--opbs-blue);--bs-btn-border-color:var(--opbs-blue);--bs-btn-hover-bg:var(--opbs-blue-dark);--bs-btn-hover-border-color:var(--opbs-blue-dark);font-weight:600}
.hero{background:var(--opbs-blue);color:#fff}
.hero .eyebrow{color:var(--opbs-ochre)}
.hero-img{border:6px solid var(--opbs-ochre);border-radius:1rem;object-fit:cover;width:100%;aspect-ratio:4/3}
.page-head{background:var(--opbs-blue);color:#fff}
.page-head .eyebrow{color:var(--opbs-ochre)}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--opbs-leaf)}
.strip{background:var(--opbs-ochre);font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:600}
.lead-muted{color:var(--opbs-muted)}
.card-domain{border:1px solid #e3e1d8;border-radius:.9rem}
.card-domain .ico{width:48px;height:48px;border-radius:12px;background:var(--opbs-ochre-soft);display:grid;place-items:center;color:var(--opbs-blue)}
.card-domain .ico svg{width:26px;height:26px}
.bg-soft{background:var(--opbs-ochre-soft)}
.rounded-img{border-radius:.9rem;width:100%;object-fit:cover}
.ratio-3x2{aspect-ratio:3/2}
.ratio-16x8{aspect-ratio:16/8}
figcaption{font-size:.9rem;color:var(--opbs-muted);margin-top:.5rem}
.contact-card{background:var(--opbs-blue);color:#fff;border-radius:1.2rem}
.contact-card .label{opacity:.75;font-size:.85rem}
.contact-card .value{font-weight:700;font-size:1.15rem;user-select:all;overflow-wrap:anywhere}
.info-card{border:1px solid #e3e1d8;border-radius:.9rem;background:#fff}
.info-card .value{font-weight:700;font-size:1.1rem;overflow-wrap:anywhere;user-select:all}
footer.site-footer{background:var(--opbs-ink);color:rgba(255,255,255,.8)}
footer.site-footer a{color:#fff}
.timeline-date{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;color:var(--opbs-blue);font-size:1.1rem}
:focus-visible{outline:3px solid var(--opbs-ochre)!important;outline-offset:2px}
@media (max-width:575.98px){.ratio-16x8{aspect-ratio:3/2}}
.container{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
body{overflow-x:hidden}
/* ---- Animations ---- */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero-anim{animation:fadeUp .8s cubic-bezier(.2,.7,.2,1) both}
.hero-anim.d1{animation-delay:.05s}.hero-anim.d2{animation-delay:.2s}.hero-anim.d3{animation-delay:.35s}.hero-anim.d4{animation-delay:.3s}
.hero-frame{border:6px solid var(--opbs-ochre);border-radius:1rem;overflow:hidden}
.hero-frame .hero-img{border:0;border-radius:0;display:block}
.carousel-item img{animation:none}
.carousel-item.active img{animation:kenburns 8s ease-out both}
@keyframes kenburns{from{transform:scale(1.08)}to{transform:scale(1)}}
.carousel-caption{left:0;right:0;bottom:0;padding:.6rem 1rem 2.2rem;background:linear-gradient(transparent,rgba(0,0,0,.6));font-weight:600;font-size:.95rem}
.rotator{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.35rem;font-weight:600}
.rotate-word{color:var(--opbs-ochre);display:inline-block;border-right:3px solid var(--opbs-ochre);padding-right:4px;animation:caret 1s step-end infinite}
@keyframes caret{50%{border-color:transparent}}
.marquee{overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;gap:3rem;animation:marquee 28s linear infinite;padding-left:3rem}
.marquee-track span::before{content:"●";color:var(--opbs-blue);font-size:.6em;margin-right:.8rem;vertical-align:middle}
@keyframes marquee{to{transform:translateX(-50%)}}
.reveal{transition:transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.js .reveal.below{transform:translateY(28px)}
.card-domain{transition:transform .3s,box-shadow .3s}
.card-domain:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(31,78,140,.15)}
.card-domain:hover .ico{animation:pop .5s}
@keyframes pop{50%{transform:scale(1.18) rotate(-6deg)}}
.zoom-wrap{overflow:hidden;border-radius:.9rem}
.zoom-wrap figcaption{padding-bottom:.25rem}
.zoom-wrap img{transition:transform .6s}
.zoom-wrap:hover img{transform:scale(1.05)}
.btn{transition:transform .2s, background-color .2s}
.btn:hover{transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){
  .hero-anim,.carousel-item.active img,.rotate-word,.marquee-track,.card-domain:hover .ico{animation:none!important}
  .js .reveal.below{transform:none}
  .reveal,.zoom-wrap img,.btn,.card-domain{transition:none}
}
.lang-switch{display:inline-flex;border:1px solid rgba(255,255,255,.5);border-radius:999px;overflow:hidden}
.lang-switch a{color:#fff;text-decoration:none;font-weight:700;font-size:.85rem;padding:.3rem .7rem}
.lang-switch a.active{background:var(--opbs-ochre);color:var(--opbs-ink)}
.lang-switch a:not(.active):hover{background:rgba(255,255,255,.15)}
.timeline{border-left:3px solid var(--opbs-ochre);padding-left:1.5rem;display:grid;gap:1.75rem}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:calc(-1.5rem - 9px);top:.35rem;width:15px;height:15px;border-radius:50%;background:var(--opbs-blue);border:3px solid var(--opbs-ochre)}
.timeline p{margin-bottom:0;color:var(--opbs-muted)}
.stat-num{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;font-size:2.4rem;line-height:1;color:var(--opbs-blue)}
.press li{padding:.75rem 0;border-bottom:1px solid #e3e1d8}
.press li:last-child{border-bottom:0;padding-bottom:0}
.press a{font-weight:700;text-decoration:none;display:block}
.press a:hover{text-decoration:underline}
.press small{display:block;color:var(--opbs-muted);margin-top:.15rem}
.steps{display:grid;gap:3rem}
.step-text{border-left:4px solid var(--opbs-ochre);padding-left:1.25rem;position:relative}
.step-text p{color:var(--opbs-muted)}
.step-num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--opbs-blue);color:#fff;font-weight:800;margin-bottom:.5rem}
@media (min-width:992px){.steps{gap:4rem}}
