/* Source Serif 4 by Adobe, SIL Open Font License; self-hosted, no font service. */
@font-face { font-family: "Source Serif 4"; src: url("/assets/fonts/source-serif-4.ttf") format("truetype"); font-weight: 200 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("/assets/fonts/source-serif-4-italic.ttf") format("truetype"); font-weight: 200 900; font-style: italic; font-display: swap; }
/* Portable overrides: no Squarespace runtime or animation loader. */
body { font-optical-sizing: auto; }
html { scroll-behavior: smooth; }
body { margin: 0; }
.site-header { display: flex; align-items: center; gap: 2.8vw; padding: 2vw 4vw; background: #fff; color: #000; position: relative; z-index: 10; }
.brand { display: block; flex-shrink: 0; margin-right: auto; }
.brand img { width: auto; height: 50px; display: block; }
.desktop-nav { display: flex; align-items: center; gap: 1.6vw; }
.site-header nav a { color: inherit; text-decoration: none; font: 300 clamp(19px, 1.4vw, 21px)/1.6 "Source Serif 4", Georgia, serif; white-space: nowrap; }
.site-header nav a:hover, .site-header nav a[aria-current] { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.desktop-actions { display: flex; align-items: center; gap: 2.8vw; }
.social-links { display: flex; align-items: center; gap: 1.6vw; }
.social-links a { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; min-height: 44px; color: inherit; }
.social-links img { display: block; width: 20px; height: 20px; }
.site-header .contact-button { display: inline-block; background: #000; color: #fff; padding: 1.2em 2em; font: 500 15px/1.2 "Source Serif 4", Georgia, serif; letter-spacing: .02em; text-decoration: none; white-space: nowrap; border: 1px solid #000; transition: background .15s, color .15s; }
.site-header .contact-button:hover, .site-header .contact-button:focus-visible { background: #fff; color: #000; text-decoration: none; }
.mobile-menu { display: none; }
.skip-link { position: absolute; top: -100px; left: 1rem; z-index: 100; background: white; color: black; padding: 1rem; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid #9349ad; outline-offset: 4px; }
/* Saved blocks may otherwise wait indefinitely for a platform reveal script. */
.sqs-block, .sqs-block-content, .sqs-image-shape-container-element, .image-block-outer-wrapper, .image-block-wrapper, .image-inset { opacity: 1 !important; visibility: visible !important; }
img { max-width: 100%; }
.section-background img { width: 100%; height: 100%; object-fit: cover; }
.image-block-wrapper img { width: 100%; height: 100%; object-fit: contain; }
.sqs-block-image img { opacity: 1 !important; }
.preFade, .fadeIn, [class*="animation"] { opacity: 1 !important; }
@media (max-width: 960px) {
 .site-header { padding: 20px 6vw; }
 .brand img { height: 30px; }
 .desktop-nav, .desktop-actions { display: none; }
 .mobile-menu { display: block; }
 .mobile-menu summary { cursor: pointer; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; list-style: none; }
 .mobile-menu summary::-webkit-details-marker { display: none; }
 .menu-icon { position: relative; display: block; width: 30px; height: 14px; }
 .menu-icon::before, .menu-icon::after { content: ''; position: absolute; left: 0; width: 30px; height: 1px; background: currentColor; transition: transform .2s, top .2s; }
 .menu-icon::before { top: 2px; }
 .menu-icon::after { top: 12px; }
 .mobile-menu[open] .menu-icon::before { top: 7px; transform: rotate(45deg); }
 .mobile-menu[open] .menu-icon::after { top: 7px; transform: rotate(-45deg); }
 .mobile-panel { position: absolute; right: 0; left: 0; top: 100%; background: white; padding: 2rem 6vw; min-height: calc(100svh - 84px); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2rem; }
 .mobile-menu nav { display: flex; flex-direction: column; align-items: center; gap: .6rem; }
 .mobile-menu nav a { font-size: clamp(26px, 5vw, 36px); }
 .mobile-menu nav .contact-button { margin-top: 1rem; font-size: 18px; }
 .mobile-panel .social-links { gap: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
