:root {
    --jw-focus: #11914a;
    --jw-motion: 700ms;
    --jw-ease: cubic-bezier(.25,.1,.25,1);
}
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; }

.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; background: white; color: black; padding: 12px 20px; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
a:focus-visible, button:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--jw-focus); outline-offset: 5px; }
[data-menu-toggle] { min-width: 44px; min-height: 44px; display: grid; place-items: center; }
.mobile-menu { position: absolute; top: 100%; left: 24px; right: 24px; padding: 16px; background: #fbf9f6; box-shadow: 0 12px 24px #0002; z-index: 60; }
.mobile-menu[hidden] { display: none; }
.mobile-menu a { display: block; padding: 12px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.portfolio-track { width: max-content; animation: portfolio-scroll calc(var(--portfolio-count, 7) * 2.86s) linear infinite; }
.portfolio-window:hover .portfolio-track, .portfolio-window:focus-within .portfolio-track { animation-play-state: paused; }
.portfolio-blur { backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); mask-image: linear-gradient(to bottom, transparent 30%, black 100%); -webkit-mask-image: linear-gradient(to bottom, transparent 30%, black 100%); }
@keyframes portfolio-scroll { to { transform: translateX(-50%); } }
.faq-item summary { list-style: none; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-icon { transition: transform 300ms ease, background-color 300ms ease, color 300ms ease; }
.faq-item[open] { background: white; box-shadow: 0 20px 25px -5px #0000000d; }
.faq-item[open] .faq-icon { transform: rotate(45deg); background: #050505; color: white; }
.faq-item[open] > div { animation: answer-in 300ms ease; }
@keyframes answer-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.quote-word { display: inline-flex; }
[data-letter] { transition: opacity 80ms linear; }
.jw-motion [data-reveal] { transition: opacity var(--jw-motion) var(--jw-ease), transform var(--jw-motion) var(--jw-ease), filter var(--jw-motion) var(--jw-ease); }
.jw-motion [data-reveal].reveal-pending { opacity: 0; transform: translateY(30px); }
.jw-motion [data-reveal].is-visible { opacity: 1; transform: none; }
.site-footer { padding: 72px 0 96px; }
.site-footer__main { display: grid; gap: 56px; }
.site-footer__signature { display: inline-block; }
.site-footer__signature img { display: block; width: auto; height: 64px; }
.site-footer__contact { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 24px; color: rgb(255 255 255 / .6); font-size: 14px; }
.site-footer__contact a:hover { color: #fff; }
.site-footer .newsletter__fields { flex-direction: column; align-items: stretch; gap: 12px; }
.site-footer .newsletter button { width: 100%; justify-content: center; }
.site-footer__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 32px; }
.site-footer__group h2 { margin: 0 0 18px; color: #fbf9f6; font: 400 24px/1.2 var(--font-serif); }
.site-footer__group h2 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.site-footer__group p { margin: 0 0 20px; color: rgb(255 255 255 / .6); font-size: 14px; line-height: 1.7; }
.site-footer__group ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.site-footer__group li a { color: rgb(255 255 255 / .6); font-size: 14px; line-height: 1.5; transition: color 180ms ease; }
.site-footer__group li a:hover { color: #fff; }
.site-footer__guides { gap: 16px; }
.site-footer__group .site-footer__guides a { display: flex; align-items: center; gap: 14px; color: #fff; font: 400 16px/1.3 var(--font-serif); }
.site-footer__guides img { flex-shrink: 0; display: block; width: 40px; height: auto; }
.site-footer__group .site-footer__guides a:hover span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.site-footer__action { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 12px; color: #fff; font-size: 14px; }
.site-footer__action svg { flex-shrink: 0; }
.site-footer__action:hover span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.site-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 72px; color: rgb(255 255 255 / .35); font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.site-footer__legal p { margin: 0; }
@media (max-width: 479px) { .site-footer__nav { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 768px) { .site-footer { padding-bottom: 56px; } }
@media (min-width: 1024px) {
    .site-footer__main { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 64px; }
    .site-footer__nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.standard-page { padding-top: 80px; padding-bottom: 80px; }


@media (min-width: 768px) { .mobile-menu { display: none; } }
@media (max-width: 639px) {
    .fixed.bottom-0 { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .portfolio-track { animation: none; }
    .portfolio-window { overflow-x: auto; }
    .jw-motion [data-reveal].reveal-pending { opacity: 1; transform: none; }
}
@media (max-width: 767px) { [data-menu-toggle] { margin-right: -12px; } }
@media (min-width: 768px) and (max-width: 786px) {
    #about h2 { font-size: min(88px, 11.2vw); }
}
.site-header { background: #fbf9f6; }
.site-header .site-navigation { min-height: 88px; }
.site-navigation a[aria-current="page"] { color: var(--color-editorial-black); text-decoration: underline; text-underline-offset: 7px; }
@media (max-width: 767px) { .site-header .site-navigation { min-height: 84px; } }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 768px) and (max-width: 1023px) {
    .site-navigation { min-height: 48px; }
    .site-navigation > .hidden.md\:flex { display: none; }
    .site-navigation > .md\:hidden { display: block; }
    .site-navigation .mobile-menu:not([hidden]) { display: block; }
    .site-navigation [data-menu-toggle] { margin-right: -12px; }
}

.portfolio-track h3 a:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.portfolio-track h3 a:focus-visible { outline: 2px solid white; outline-offset: 5px; }
