/* Keep the original 2020 palette, Poppins typography and full-width sections.
   Only adapt the layout for the new text lengths and accessible navigation. */
html { scroll-behavior: smooth; scroll-padding-top: 0; }
body { background: #EDEAE4; font-weight: 200; }
h1, h2, h3, button { font-family: Poppins, sans-serif; font-weight: 200; }
a { color: #C69C47; }
a:hover { color: #C69C47; text-decoration: none; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid #C69C47; outline-offset: 5px; }
.skip-link { position: fixed; top: -100px; left: 15px; z-index: 50; background: #13182b; padding: 12px; font-size: 16px; }
.skip-link:focus { top: 12px; }
.site-header { position: fixed; top: 0; left: 0; width: 100%; min-height: 68px; z-index: 30; padding: 12px 45px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #EDEAE4; transition: background-color .4s; }
.site-header.dark { background: #13182b; }
.navbar-brand { padding: 0; margin: 0; }
.navbar-brand img { display: block; width: 200px; height: auto; }
#navigation { display: flex; align-items: center; gap: 50px; font-size: 24px; }
#navigation > a, #navigation summary { color: rgba(198,156,71,.6); }
#navigation a:hover, #navigation summary:hover, #navigation .active { color: #C69C47; }
.nav-dropdown { position: relative; }
.nav-dropdown summary { list-style: none; cursor: pointer; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary::after { content: ''; display: inline-block; vertical-align: middle; margin-left: 7px; border: 6px solid transparent; border-top-color: currentColor; transform: translateY(3px); }
.nav-dropdown[open] > .dropdown-menu { display: grid; gap: 7px; min-width: 260px; padding: 16px 20px; background: #EDEAE4; margin: 10px 0 0; }
.site-header.dark .dropdown-menu { background: #13182b; }
.dropdown-menu a { font-size: 16px; font-weight: 200; white-space: nowrap; }
.menu-toggle { background: none; border: 1px solid #C69C4770; color: #C69C47; border-radius: 4px; padding: 1px 12px; font-size: 26px; line-height: 1.5; }
.menu-toggle[hidden] { display: none; }
.page-home { position: relative; height: 100svh; min-height: 500px; margin-top: 0; background: #13182b; }
.page-home .intro-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.scroll-down { position: absolute; bottom: 12%; left: calc(50% - 25px); width: 50px; height: 50px; display: grid; place-items: center; z-index: 2; }
.scroll-down span { width: 26px; height: 26px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.page-wrapper { width: 100%; overflow: visible; }
.centered-section { padding: 128px 0 65px; min-height: 100vh; display: flex; align-items: center; text-align: center; }
.centered-section .container { padding-left: 24px; padding-right: 24px; }
.centered-section p { line-height: 1.5; margin-bottom: 1rem; }
.centered-section h2 { line-height: 1.2; margin-bottom: 30px; }
.session-section { padding: 116px 0 65px; display: grid; grid-template-columns: 1fr 2fr; gap: 0; align-items: start; min-height: 100vh; }
.session-pictures { position: sticky; top: 126px; width: 100%; height: 65vh; overflow: hidden; }
.session-picture { position: absolute; top: 0; left: 0; display: block; max-width: 100%; height: 65vh; width: auto; object-fit: cover; border-radius: 0 20px 20px 0; }
.session-picture.second { opacity: 0; transition: opacity 5s; }
.session-pictures.show-second .second { opacity: 1; }
.session-copy { padding: 0 48px; font-size: 16px; }
.session-copy h2 { line-height: 1.45; margin: 0 0 26px; }
.session-copy h2 span { white-space: nowrap; }
.session-copy p { line-height: 1.5; margin-bottom: 1rem; }
.contact-section { padding: 116px 0 80px; min-height: 100vh; }
.contact-section h2 { margin-bottom: 55px; }
.contact-email { display: inline-flex; align-items: center; gap: 15px; font-size: 18px; }
.contact-email span { font-size: 30px; color: #C69C47; }
@media (max-width: 1100px) {
    .site-header { padding-left: 25px; padding-right: 25px; }
    #navigation { gap: 27px; font-size: 21px; }
    .navbar-brand img { width: 180px; }
    .session-copy { padding-left: 30px; padding-right: 30px; }
}
@media (min-width: 992px) { .menu-toggle { display: none; } }
@media (max-width: 991px) {
    .site-header { flex-wrap: wrap; gap: 12px; }
    .menu-toggle:not([hidden]) { display: block; }
    #navigation { width: 100%; align-items: flex-start; flex-direction: column; gap: 16px; padding: 15px 0; font-size: 22px; }
    .js #navigation { display: none; }
    .js #navigation.is-open { display: flex; }
    .nav-dropdown { width: 100%; }
    .nav-dropdown[open] > .dropdown-menu { position: static; float: none; margin: 8px 0 0; padding: 8px 15px; min-width: 0; }
    .dropdown-menu a { white-space: normal; }
    .centered-section { padding: 105px 0 55px; }
    .centered-section .fs-60 { font-size: 46px; }
    .centered-section .fs-20 { font-size: 18px; }
}
@media (max-width: 767px) {
    .site-header { padding: 12px 20px; }
    .navbar-brand img { width: 180px; }
    .page-home { min-height: 460px; }
    .centered-section { min-height: 100svh; padding: 95px 0 50px; }
    .centered-section .fs-60 { font-size: 36px; }
    .centered-section .fs-20 { font-size: 17px; }
    .centered-section .fs-24 { font-size: 21px; }
    .session-section { display: block; padding: 88px 0 45px; }
    .session-pictures { position: relative; top: 0; height: min(125vw, 650px); margin-bottom: 32px; }
    .session-picture { width: 100%; height: 100%; max-width: 100%; object-position: center 45%; border-radius: 0; }
    .session-copy { padding: 0 24px; }
    .session-copy h2 { font-size: 30px; }
    .session-copy h2 span { display: block; font-size: 21px; white-space: normal; }
    .contact-section { padding: 95px 24px 60px; }
    .contact-section .container { padding: 0; }
    .contact-email { font-size: 16px; gap: 10px; overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
