*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:"Libre Franklin","Helvetica Neue",Arial,sans-serif;color:#1E2B3C;background:#F7F5F0}
a{color:#061A31;text-decoration:none}
a:hover{color:#7A6134}
img{max-width:100%}
input,textarea,button{font-family:inherit}
input::placeholder,textarea::placeholder{color:#8C97A6}
:focus-visible{outline:2px solid #AE9361;outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0;background:#061A31;color:#F7F5F0;padding:12px 20px;z-index:10}
.skip:focus{left:16px;top:16px;color:#F7F5F0}
.page{width:100%;min-height:100vh}
[id]{scroll-margin-top:24px}
/* wide screens: keep content at the designed width */
@media (min-width:1441px){
  .page header,.page section,.page footer{padding-left:calc((100vw - 1280px) / 2)!important;padding-right:calc((100vw - 1280px) / 2)!important}
  #events>div{max-width:1280px}
}
/* tablets and phones */
@media (max-width:1000px){
  .page header{height:auto!important;flex-wrap:wrap;gap:20px;padding:20px 24px!important}
  .page header img{height:52px!important}
  .page header nav{flex-wrap:wrap;gap:18px 24px!important;font-size:13px!important}
  .page header nav>div{padding-left:18px!important}
  .page section,.page footer{padding-left:24px!important;padding-right:24px!important}
  .page section{padding-top:64px!important;padding-bottom:64px!important}
  .page [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important;row-gap:20px}
  .page [style*="grid-column"]{grid-column:auto!important}
  .page h1{font-size:46px!important}
  .page h2{font-size:34px!important}
  .page h3{font-size:28px!important}
  .page [style*="font-size: 30px; line-height: 1.35"]{font-size:24px!important}
  .page footer>div:last-child{flex-direction:column;align-items:flex-start!important;gap:16px}
  .page footer>div:last-child>div{flex-wrap:wrap;gap:16px!important}
  .page img[alt^="Portrait"]{height:auto!important;aspect-ratio:4/5}
  .page section [style*="padding-left: 32px; border-left"]{padding-left:0!important;border-left:0!important}
}
@media (max-width:480px){
  .page h1{font-size:38px!important}
  .page p[style*="font-size: 19px"]{font-size:17px!important}
}
@media (max-width:1000px){
  .page header nav>div{border-left:0!important;padding-left:0!important}
  #insights>div:first-child{flex-direction:column;align-items:flex-start!important;gap:20px}
}
/* phones: justified text leaves large gaps on narrow screens */
@media (max-width:600px){
  .page [style*="text-align: justify"]{text-align:left!important}
}
