/* ============================================================
   fix machine. · SITE STYLES
   fm-top / fm-menu / fm-search → header, full-page index, search (every page)
   .fm-home                     → the home: sliding images and videos
   .fm-page                     → inner pages
   ============================================================ */
:root {
  --fm-green: #004040;
  --fm-ivory: #FFFFFF;
  --fm-paper: #FFFFFF;
  --fm-ink: #0B2626;
  --fm-muted: #5A6E6C;
  --fm-line: #DCD5C5;
  --fm-brass: #3E7370;
  --fm-logo: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTEgOTEyIDEyNyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTIxLjg5IDEyNC43N0M1MjYuMDEgMTI0LjQ5IDUyOC40NSAxMjQuMDYgNTMyLjg5IDEyMi44MkM1MzguMTggMTIxLjM1IDU0NC41MiAxMTcuNjcgNTQ4LjY1IDExMy42OEM1NTAuMTkgMTEyLjE5IDU1My40OCAxMDcuOTYgNTU0LjY4IDEwNS45MkM1NTUuNDYgMTA0LjYwIDU1Ny4zNSAxMDAuNzkgNTU3LjM1IDEwMC41NEM1NTcuMzUgMTAwLjQ1IDU1Ny41MCAxMDAuMDQgNTU3LjY4IDk5LjY0QzU1OS4yMyA5Ni4xOSA1NjEuMzggODUuMzcgNTYwLjgzIDgzLjg2TDU2MC42NCA4My4zM0w1NDYuNTUgODMuMzlMNTMyLjQ2IDgzLjQ1TDUzMi4wMSA4NS45MUM1MzAuMzkgOTQuODAgNTI3LjY0IDk4LjQ5IDUyMS41MCAxMDAuMDNDNTE5LjczIDEwMC40NyA1MTcuMTkgMTAwLjUzIDUxNS44MCAxMDAuMTZDNTE1LjI5IDEwMC4wMyA1MTQuNTcgOTkuODYgNTE0LjIyIDk5Ljc5QzUxMi44OCA5OS41MyA1MTAuNTkgOTguMDkgNTA5LjIyIDk2LjY0QzUwNi43MSA5NC4wMSA1MDUuNDYgOTEuMzEgNTA0LjA2IDg1LjU2QzUwMy40OSA4My4yNCA1MDMuMzcgNzUuMTAgNTAzLjg1IDcyLjEwQzUwNS41MiA2MS43MCA1MDguODQgNTYuNDUgNTE0LjkwIDU0LjY1QzUxNi45MCA1NC4wNSA1MjAuOTAgNTQuMTAgNTIzLjA2IDU0Ljc0QzUyNS43MiA1NS41MyA1MjcuODYgNTcuMTcgNTI5LjIwIDU5LjQyQzUzMC4wMSA2MC44MCA1MzAuMjggNjEuNjQgNTMxLjAyIDY1LjE5QzUzMS4zNyA2Ni44NyA1MzEuNzYgNjguMzcgNTMxLjg5IDY4LjUzQzUzMi4wNyA2OC43NiA1MzUuMDYgNjguNzkgNTQ1Ljg1IDY4LjY5QzU1My40MCA2OC42MiA1NTkuNzIgNjguNTEgNTU5LjkwIDY4LjQ1QzU2MC4xNyA2OC4zNiA1NjAuMjEgNjcuNjcgNTYwLjA5IDY0LjUxQzU2MC4wMiA2Mi40MCA1NTkuODUgNjAuMjcgNTU5LjcyIDU5Ljc3QzU1OS41OSA1OS4yOCA1NTkuMzEgNTguMTMgNTU5LjEwIDU3LjIzQzU1Ny4wMyA0OC41MSA1NTAuODUgNDAuMjYgNTQyLjk1IDM1LjY2QzU0Mi43MCAzNS41MSA1NDEuNDkgMzQuOTAgNTQwLjI2IDM0LjI5QzUzNS41MSAzMS45MyA1MzEuNTAgMzAuNzYgNTI0LjU4IDI5LjcwQzUyMS45NiAyOS4zMCA1MTUuMTEgMjkuMzggNTExLjgyIDI5Ljg2QzUwNi42NSAzMC42MCA1MDAuMzAgMzIuNTggNDk3LjE2IDM0LjQzQzQ5Ni41MiAzNC44MCA0OTUuOTUgMzUuMTEgNDk1Ljg5IDM1LjExQzQ5NS43MCAzNS4xMSA0OTEuMjUgMzguMTkgNDkwLjA1IDM5LjE2QzQ4NS4yMyA0My4wNSA0ODAuNDQgNDkuNjcgNDc4LjAwIDU1LjgzQzQ3Ni4zMiA2MC4wNiA0NzQuOTUgNjUuMzYgNDc0LjIwIDcwLjU4QzQ3My44MCA3My4zNiA0NzMuODAgODIuNzkgNDc0LjIxIDg1LjU2QzQ3NC43NCA4OS4yMSA0NzUuOTAgOTMuODggNDc3LjA3IDk3LjAzQzQ4MC4yOCAxMDUuNjggNDg1LjgxIDExMi44MyA0OTIuOTggMTE3LjYwQzQ5NS40MSAxMTkuMjIgNDk4LjYyIDEyMC45MyA1MDAuNDcgMTIxLjYwQzUwNi4zNCAxMjMuNzAgNTA5LjYxIDEyNC40NCA1MTQuNTEgMTI0Ljc2QzUxOC4zNiAxMjUuMDEgNTE4LjUzIDEyNS4wMSA1MjEuODkgMTI0Ljc3Wk04MzYuODQgMTI0LjM4Qzg0MC40MCAxMjMuODcgODQ0LjcwIDEyMi44MCA4NDYuNTggMTIxLjk3Qzg0Ny4xOCAxMjEuNzEgODQ3Ljc2IDEyMS40OSA4NDcuODcgMTIxLjQ5Qzg0OC4xMiAxMjEuNDkgODUxLjE2IDEyMC4wMCA4NTIuNTMgMTE5LjIxQzg2MS43MyAxMTMuODkgODY3LjkzIDEwNC43NSA4NzEuNDkgOTEuMjRDODcyLjAwIDg5LjI4IDg3Mi45NiA4OS40MSA4NTguMDcgODkuNDhMODQ0Ljk0IDg5LjU0TDg0NC40OSA5MC43MUM4NDMuMzcgOTMuNjUgODQzLjAwIDk0LjI2IDg0MS40MSA5NS44NkM4MzkuNDQgOTcuODQgODM2Ljg5IDk5LjIwIDgzMy42OCA5OS45NkM4MzEuOTYgMTAwLjM4IDgzMS4xMSAxMDAuNDUgODI5LjAwIDEwMC4zNkM4MjUuOTAgMTAwLjIzIDgyNC42OSA5OS45NCA4MjIuMTUgOTguNzNDODE4Ljc5IDk3LjEzIDgxNi44MCA5NC44MCA4MTUuNzAgOTEuMThDODE1LjE4IDg5LjQ0IDgxNC41NCA4NS43NCA4MTQuNzIgODUuNDVDODE0LjgyIDg1LjI4IDgyMy41NSA4NS4yMSA4NDMuMTcgODUuMjFMODcxLjQ4IDg1LjIxTDg3MS44NyA4NC42MUM4NzIuNDcgODMuNjkgODcyLjYxIDc2LjI3IDg3Mi4xMCA3Mi4xMEM4NzAuODggNjIuMTAgODY4Ljc1IDU1LjYxIDg2NC40MSA0OC42OUM4NjEuMzQgNDMuNzkgODU4LjMzIDQwLjQ4IDg1My44OSAzNy4xNUM4NDguNTIgMzMuMTIgODQyLjc5IDMwLjg1IDgzNS4yNiAyOS43NEM4MzMuMDQgMjkuNDIgODI2LjMwIDI5LjQyIDgyMy43NSAyOS43NUM4MTUuMTggMzAuODUgODA4LjAyIDMzLjkzIDgwMS4xMSAzOS40OEM3OTQuNjggNDQuNjUgNzg5LjEyIDUzLjEwIDc4Ny4wOCA2MC44MEM3ODYuOTAgNjEuNDggNzg2LjU5IDYyLjY0IDc4Ni4zOSA2My4zOEM3ODUuNTUgNjYuNTUgNzg1LjE5IDY4Ljk0IDc4NC42MyA3NS4wMkM3ODQuMzggNzcuNzcgNzg0LjQxIDc4LjU1IDc4NC45MCA4My41N0M3ODUuODcgOTMuNTQgNzg5LjQzIDEwMi43NyA3OTQuODMgMTA5LjMwQzc5OC41NSAxMTMuODEgODAwLjg5IDExNS44OSA4MDUuMTggMTE4LjUyQzgwNy44NCAxMjAuMTUgODEwLjQzIDEyMS40MCA4MTIuOTcgMTIyLjI3QzgyMC4wNiAxMjQuNjkgODI5LjE0IDEyNS41MCA4MzYuODQgMTI0LjM4Wk00MjQuODYgMTI0LjMyQzQyNi4zNCAxMjQuMDcgNDI4LjA4IDEyMy43NCA0MjguNzIgMTIzLjU5QzQzMC40NiAxMjMuMTcgNDM1LjQ2IDEyMS40OCA0MzYuMjcgMTIxLjAzQzQzNy4yNiAxMjAuNDkgNDQxLjA5IDExOC42OCA0NDEuMjUgMTE4LjY4QzQ0MS4zNSAxMTguNjggNDQxLjcyIDExOS40NiA0NDIuMDcgMTIwLjQyQzQ0Mi40MiAxMjEuMzggNDQyLjkwIDEyMi4zNSA0NDMuMTQgMTIyLjU2QzQ0My41NSAxMjIuOTMgNDQ0LjY3IDEyMi45NSA0NTguNjIgMTIyLjc5QzQ2Ni45MCAxMjIuNzAgNDczLjc2IDEyMi41MyA0NzMuODcgMTIyLjQyQzQ3My45OSAxMjIuMzEgNDczLjc4IDEyMS43NCA0NzMuNDAgMTIxLjEwQzQ3Mi41NSAxMTkuNjkgNDcwLjUxIDExNS41MSA0NzAuNTEgMTE1LjE5QzQ3MC41MSAxMTUuMDYgNDcwLjM2IDExNC42MCA0NzAuMTggMTE0LjE4QzQ2OS45OSAxMTMuNzYgNDY5LjY2IDExMi42MiA0NjkuNDMgMTExLjY2QzQ2OS4wNCAxMTAuMDQgNDY4Ljk5IDEwNy42OCA0NjguODUgODEuMTFDNDY4Ljc3IDY1LjI3IDQ2OC42MiA1Mi4wMCA0NjguNTMgNTEuNjJDNDY4LjQ0IDUxLjIzIDQ2OC4yMSA1MC4yNCA0NjguMDEgNDkuNDJDNDY3LjgyIDQ4LjU5IDQ2Ny41OCA0Ny43NSA0NjcuNDggNDcuNTRDNDY3LjM4IDQ3LjM0IDQ2Ni45NSA0Ni40MyA0NjYuNTQgNDUuNTNDNDY0LjQ3IDQxLjAzIDQ2MC42MCAzNy4xNiA0NTUuNDEgMzQuMzlDNDUyLjAyIDMyLjU4IDQ0OC4wNyAzMS4zMSA0NDMuMDAgMzAuNDJDNDM4LjcyIDI5LjY2IDQyOS4yMSAyOS4zMCA0MjQuNTEgMjkuNzJDNDE0Ljc4IDMwLjU3IDQwOC4zNCAzMi40OCA0MDIuMDQgMzYuMzVDNDAwLjgwIDM3LjExIDM5Ny4wNSA0MC4yOCAzOTUuOTAgNDEuNTRDMzkzLjU3IDQ0LjEwIDM5MC45NiA0OC41NiAzODkuODggNTEuODVDMzg5LjY3IDUyLjQ5IDM4OS40MyA1My4xOCAzODkuMzUgNTMuMzdDMzg4Ljg1IDU0LjUzIDM4OC41MSA1Ny4xNCAzODguNDkgNjAuMDRMMzg4LjQ2IDYzLjMyTDQwMi43NCA2My4zOEM0MTEuMTkgNjMuNDEgNDE3LjE2IDYzLjM0IDQxNy4zNiA2My4yMUM0MTcuNTcgNjMuMDggNDE3Ljc3IDYyLjM4IDQxNy44OCA2MS40MEM0MTguMTUgNTkuMDUgNDE4LjYyIDU2Ljk1IDQxOC45NSA1Ni42MUM0MTkuMTEgNTYuNDUgNDE5LjI0IDU2LjE5IDQxOS4yNCA1Ni4wNEM0MTkuMjQgNTUuMzEgNDIxLjk4IDUzLjU5IDQyNC42MyA1Mi42N0M0MjYuMDMgNTIuMTggNDMyLjQxIDUyLjA4IDQzNC41MSA1Mi41MkM0MzguNjMgNTMuMzcgNDM5LjU3IDU0LjQyIDQzOS41OSA1OC4yNEM0MzkuNjEgNjAuODYgNDM5LjE5IDYxLjg5IDQzNy42NSA2Mi45NEM0MzUuNjMgNjQuMzQgNDMzLjI0IDY0Ljk1IDQyNy4wOCA2NS42NUM0MjUuMjggNjUuODYgNDIyLjkxIDY2LjE4IDQyMS44MiA2Ni4zN0M0MjAuNzIgNjYuNTYgNDE5LjU5IDY2LjcyIDQxOS4zMCA2Ni43MkM0MTguNzcgNjYuNzEgNDE1LjgzIDY3LjIzIDQxMy43NCA2Ny42OUM0MTMuMTAgNjcuODMgNDEyLjEwIDY4LjAzIDQxMS41MiA2OC4xM0M0MDkuMTUgNjguNTYgNDA0LjUyIDY5LjgzIDQwMi41MCA3MC42MkMzOTUuOTAgNzMuMTkgMzkxLjM4IDc3LjMyIDM4OC40NyA4My40NUMzODYuOTIgODYuNzIgMzg2LjQyIDg4LjQzIDM4NS44NyA5Mi4zNUMzODUuMDQgOTguMjQgMzg2LjE5IDEwNS4wOSAzODguODMgMTEwLjA1QzM4OS4wOCAxMTAuNTIgMzg5LjQzIDExMS4xOSAzODkuNjEgMTExLjUzQzM5MC41MSAxMTMuMjcgMzkzLjU4IDExNi44NSAzOTUuNDMgMTE4LjMyQzM5Ny42MyAxMjAuMDcgMzk3LjY5IDEyMC4xMSA0MDAuNjMgMTIxLjU2QzQwMy4zNCAxMjIuODkgNDA2LjI3IDEyMy43NyA0MDkuNzYgMTI0LjI5QzQxMC43OSAxMjQuNDQgNDExLjc5IDEyNC42MCA0MTEuOTkgMTI0LjY0QzQxMi4xOCAxMjQuNjggNDE0LjU1IDEyNC43MiA0MTcuMjUgMTI0Ljc0QzQyMS4xMCAxMjQuNzYgNDIyLjc1IDEyNC42NyA0MjQuODYgMTI0LjMyWk00Mi43OCA4OC45MkM0Mi44MyA2Mi4yMyA0Mi45MCA1NS4wMSA0My4xMyA1NC44MkM0My4zMSA1NC42OCA0Ni4zMSA1NC41MSA1MC43NCA1NC40MUM1NC43NyA1NC4zMiA1OC4xMiA1NC4xNSA1OC4xOSA1NC4wM0M1OC4zNiA1My43NiA1OC4zMSAzMi42MyA1OC4xNCAzMi4xOEM1OC4wMiAzMS44OSA1Ni45OSAzMS44MyA1MS4zMCAzMS44MUM0Ny42MSAzMS43OSA0NC4yOCAzMS43MSA0My44OSAzMS42M0M0My4wNiAzMS40NSA0Mi44NSAzMC43MyA0My4xMSAyOC45MUM0My40NSAyNi40NiA0My45MCAyNS41MSA0NS4wMiAyNC44OEM0NS43MyAyNC40OCA1MS4yOSAyNC41MSA1NC4xOSAyNC45M0M1Ni4yMSAyNS4yMyA1OS40MSAyNS40MCA1OS40OCAyNS4yMkM1OS40OSAyNS4xOSA1OS41NiAxOS45MiA1OS42MiAxMy41MkM1OS43MyAzLjM1IDU5LjcwIDEuODEgNTkuMzkgMS4zM0M1OS4wNyAwLjg1IDU4Ljc1IDAuNzYgNTYuMjYgMC41MkM0Mi42NiAtMC44MiAzNC44NCAtMC4xNCAyOC41NSAyLjk0QzI1Ljk1IDQuMjEgMjUuODQgNC4yOCAyMy43NCA1Ljk1QzE5LjY2IDkuMjAgMTcuMTIgMTIuODkgMTUuMTAgMTguNDlDMTQuMjMgMjAuOTEgMTMuNTcgMjQuODYgMTMuNDIgMjguNTZDMTMuMzQgMzAuNjggMTMuMjMgMzEuMzEgMTIuOTMgMzEuNTRDMTIuNjUgMzEuNzYgMTAuOTkgMzEuODQgNi41MiAzMS44NEMxLjAwIDMxLjg0IDAuNDcgMzEuODcgMC4zMCAzMi4yNEMwLjIwIDMyLjQ3IDAuMTUgMzcuNDYgMC4xOCA0My4zNEMwLjI0IDUyLjQ2IDAuMzAgNTQuMDUgMC41OSA1NC4xNkMwLjc4IDU0LjIzIDMuNjUgNTQuMzYgNi45NiA1NC40NUMxMC45MiA1NC41NiAxMy4wNSA1NC43MCAxMy4xNiA1NC44N0MxMy4yNiA1NS4wMSAxMy4zNCA3MC4yNSAxMy4zNCA4OC43M0MxMy4zNCAxMTQuNjYgMTMuNDEgMTIyLjQwIDEzLjYzIDEyMi42MUMxMy44NCAxMjIuODMgMTcuMzEgMTIyLjg4IDI4LjMxIDEyMi44NEw0Mi43MiAxMjIuNzhMNDIuNzggODguOTJaTTk1LjY5IDEyMi42MUM5Ni4wNyAxMjIuMjQgOTYuMTAgMzIuOTkgOTUuNzMgMzIuMjlDOTUuNTAgMzEuODUgOTUuMDkgMzEuODQgODEuMTUgMzEuODRDNzAuMzEgMzEuODQgNjYuNzQgMzEuOTAgNjYuNTMgMzIuMTJDNjYuMTIgMzIuNTIgNjYuMTIgMTIyLjIwIDY2LjUzIDEyMi42MUM2Ni45MyAxMjMuMDIgOTUuMjkgMTIzLjAyIDk1LjY5IDEyMi42MVpNMTM1Ljk3IDEyMi43OUMxMzYuMzcgMTIyLjY2IDEzOC4zNCAxMjAuMTIgMTM4LjM0IDExOS43M0MxMzguMzQgMTE5LjY5IDEzOC45OSAxMTguNjcgMTM5Ljc5IDExNy40N0MxNDEuMzQgMTE1LjEyIDE0Mi42NiAxMTMuMDcgMTQ0LjA2IDExMC44NEMxNDcuNDUgMTA1LjQ0IDE1MS4wMyAxMDAuMTkgMTUxLjMxIDEwMC4xOUMxNTEuNTAgMTAwLjE5IDE1MS45MCAxMDAuNjEgMTUyLjE5IDEwMS4xM0MxNTIuNjkgMTAyLjAwIDE1Ny41NCAxMDkuNTkgMTYwLjE2IDExMy42MEMxNjAuNzYgMTE0LjUzIDE2Mi4yNyAxMTYuODkgMTYzLjUxIDExOC44NkMxNjQuNzUgMTIwLjgyIDE2NS45NiAxMjIuNTMgMTY2LjIwIDEyMi42NkMxNjYuNDggMTIyLjgxIDE3Mi4yNSAxMjIuODUgMTgyLjc0IDEyMi43NkMxOTEuNjAgMTIyLjY5IDE5OS4wNCAxMjIuNjQgMTk5LjI2IDEyMi42NEMxOTkuNDkgMTIyLjY1IDE5OS42NyAxMjIuNTUgMTk5LjY3IDEyMi40MUMxOTkuNjcgMTIyLjExIDE5Ni4yMiAxMTYuODMgMTg3LjgwIDEwNC4yOEMxODYuNzcgMTAyLjc0IDE4NC44NyA5OS44OSAxODMuNTkgOTcuOTZDMTgyLjMyIDk2LjAzIDE3OS45NiA5Mi41MCAxNzguMzYgOTAuMTJDMTc2Ljc1IDg3Ljc0IDE3NC4yMyA4My45NiAxNzIuNzUgODEuNzJDMTcxLjI3IDc5LjQ4IDE2OS42NyA3Ny4wNiAxNjkuMTggNzYuMzRDMTY4LjcwIDc1LjYyIDE2OC4zMSA3NC44NiAxNjguMzEgNzQuNjRDMTY4LjMxIDc0LjQyIDE2OS40OSA3Mi40OSAxNzAuOTQgNzAuMzZDMTcyLjM5IDY4LjIyIDE3NC4xNSA2NS41OSAxNzQuODYgNjQuNTFDMTc1LjU3IDYzLjQzIDE3Ny40MiA2MC42NyAxNzguOTggNTguMzdDMTgwLjUzIDU2LjA3IDE4My42NSA1MS40NSAxODUuOTAgNDguMTBDMTg4LjE1IDQ0Ljc2IDE5MS40MyAzOS44OCAxOTMuMTkgMzcuMjdDMTk0Ljk1IDM0LjY1IDE5Ni40MCAzMi4zNiAxOTYuNDAgMzIuMTdDMTk2LjQwIDMxLjg4IDE5NC4xNyAzMS44NCAxODAuMDUgMzEuODRDMTY0Ljc3IDMxLjg0IDE2My42NyAzMS44NiAxNjMuMzMgMzIuMjRDMTYyLjk1IDMyLjY4IDE2MC44MSAzNS44MiAxNjAuODEgMzUuOTZDMTYwLjgxIDM2LjAwIDE2MC4zMCAzNi44MCAxNTkuNjcgMzcuNzRDMTU4LjQ2IDM5LjU1IDE1NS41MCA0NC4xMCAxNTMuMjEgNDcuNjlDMTUyLjQ1IDQ4Ljg5IDE1MS43MCA0OS44NiAxNTEuNTQgNDkuODZDMTUxLjMxIDQ5Ljg2IDE0OS41OCA0Ny43MiAxNDkuNTggNDcuNDJDMTQ5LjU4IDQ3LjM3IDE0OC4yMyA0NS4yOSAxNDYuNTcgNDIuNzlDMTQ0LjkyIDQwLjMwIDE0My40MyAzOC4wMCAxNDMuMjYgMzcuNjhDMTQzLjA5IDM3LjM2IDE0Mi4xNyAzNS45MiAxNDEuMjEgMzQuNDdMMTM5LjQ4IDMxLjg0TDEyMi42MiAzMS44NEwxMDUuNzUgMzEuODRMMTA1Ljg2IDMyLjM2QzEwNS45MiAzMi42NSAxMDYuNjIgMzMuODQgMTA3LjQxIDM1LjAwQzEwOC43OCAzNi45OSAxMTguNzAgNTEuODUgMTIxLjAwIDU1LjM1QzEyMS41OSA1Ni4yNSAxMjMuMzggNTguOTQgMTI0Ljk4IDYxLjMyQzEyOC4wNSA2NS45MCAxMzEuODggNzEuNjcgMTMzLjE0IDczLjYwQzEzMy41NiA3NC4yMyAxMzMuOTAgNzQuOTEgMTMzLjkwIDc1LjEwQzEzMy45MCA3NS4yOSAxMzMuNTYgNzUuOTkgMTMzLjE0IDc2LjY0QzEzMi4yMSA3OC4xMiAxMjYuNjkgODYuNDcgMTI2LjAxIDg3LjQzQzEyNS43NCA4Ny44MiAxMjQuMDIgOTAuNDUgMTIyLjE5IDkzLjI4QzEyMC4zNiA5Ni4xMSAxMTguNjUgOTguNzQgMTE4LjM4IDk5LjEyQzExNy44NSA5OS44OCAxMTUuOTkgMTAyLjY4IDExMy40MCAxMDYuNjJDMTEyLjQ4IDEwOC4wNCAxMDkuODUgMTEyLjAyIDEwNy41NyAxMTUuNDZDMTA1LjI5IDExOC45MSAxMDMuMzcgMTIxLjkzIDEwMy4zMCAxMjIuMTdDMTAzLjIyIDEyMi41MSAxMDMuMzMgMTIyLjY0IDEwMy43MyAxMjIuNzBDMTA0Ljg2IDEyMi44NiAxMzUuNDggMTIyLjk0IDEzNS45NyAxMjIuNzlaTTI3OC4xNCAxMjIuNDVDMjc4LjI0IDEyMi4zNiAyNzguMzQgMTA5LjU1IDI3OC4zOCA5My45OEwyNzguNDQgNjUuNjZMMjc5LjE4IDYzLjYyQzI4MC45OSA1OC42MyAyODMuMjMgNTYuNDAgMjg3LjQ1IDU1LjQwQzI5MC4xNSA1NC43NiAyOTAuODQgNTQuNzIgMjkyLjUyIDU1LjE0QzI5NS45NiA1NS45OSAyOTcuNTYgNTcuNTQgMjk4LjUxIDYwLjkzQzI5OC45NyA2Mi41NiAyOTguOTkgNjMuNTYgMjk5LjE2IDkyLjQzQzI5OS4yOCAxMTEuODAgMjk5LjQyIDEyMi4zMiAyOTkuNTggMTIyLjQ3QzI5OS45MiAxMjIuODEgMzI3LjcyIDEyMy4wMyAzMjguMzQgMTIyLjcwQzMyOC44MCAxMjIuNDUgMzI4LjgxIDEyMi4xMCAzMjguOTUgOTQuMjlDMzI5LjA5IDY3LjAwIDMyOS4xMSA2Ni4wNiAzMjkuNTcgNjQuMDhDMzMwLjczIDU5LjExIDMzMi44NCA1Ni41OSAzMzYuOTQgNTUuMjVDMzM4LjIzIDU0LjgzIDM0MS42MyA1NC44NiAzNDMuMDUgNTUuMzBDMzQ1LjA4IDU1LjkzIDM0Ni41NSA1Ni44NCAzNDcuNDEgNTguMDFDMzQ4LjU1IDU5LjU1IDM0OC43NiA2MC4xNCAzNDkuMjcgNjMuMjBDMzQ5LjY5IDY1Ljc1IDM0OS43MiA2Ny40MyAzNDkuNzIgOTQuMjdMMzQ5LjcyIDEyMi42NUwzNTAuMjUgMTIyLjc4QzM1MC41NCAxMjIuODUgMzU3LjE1IDEyMi44OCAzNjQuOTMgMTIyLjg0TDM3OS4xMCAxMjIuNzhMMzc5LjEwIDg5LjU0QzM3OS4xMCA1My43MyAzNzkuMTUgNTUuMzcgMzc3Ljk0IDUxLjE1QzM3Ni40NCA0NS44OCAzNzMuODcgNDEuNDQgMzcwLjIyIDM3Ljc4QzM2Ny45OCAzNS41MiAzNjYuMzMgMzQuMzQgMzYzLjY1IDMzLjA0QzM1OS4xOCAzMC44OSAzNTIuNTcgMjkuNTAgMzQ2LjU0IDI5LjQ2QzM0My43NCAyOS40NCAzNDIuNjEgMjkuNTYgMzM5LjE5IDMwLjIzQzMzNi4xNyAzMC44MyAzMzIuNzIgMzIuMjUgMzI5LjQ4IDM0LjI0QzMyOC4zMCAzNC45NiAzMjYuMjAgMzYuNjYgMzI0LjQ5IDM4LjI3QzMyMy40NiAzOS4yMyAzMjIuNTYgNDAuMDMgMzIyLjUwIDQwLjAzQzMyMi40MyA0MC4wMyAzMjEuMTggMzguODMgMzE5LjcyIDM3LjM3QzMxNi45MSAzNC41NSAzMTUuMTggMzMuNDAgMzExLjU2IDMxLjkwQzMwMS40OSAyNy43NSAyODguMjYgMjkuMDUgMjc5LjgwIDM1LjAzQzI3Ny42OCAzNi41MyAyNzcuNTggMzYuNDggMjc3LjI1IDMzLjY0QzI3Ny4xNiAzMi45MSAyNzYuOTYgMzIuMjAgMjc2LjgwIDMyLjA3QzI3Ni42MSAzMS45MSAyNzEuODIgMzEuODUgMjYyLjczIDMxLjg5TDI0OC45NSAzMS45NUwyNDguODkgNzcuMjNDMjQ4Ljg0IDExMy4zMCAyNDguODkgMTIyLjU1IDI0OS4xMiAxMjIuNzFDMjQ5LjQ2IDEyMi45NCAyNzcuODkgMTIyLjY4IDI3OC4xNCAxMjIuNDVaTTU5Ni45MiA5Ni4wOUM1OTcuMDIgNzUuODggNTk3LjEyIDY5LjAxIDU5Ny4zNSA2Ny43N0M1OTguNDAgNjIuMDIgNTk5LjA5IDYwLjMxIDYwMS4yMyA1OC4xNkM2MDMuNDUgNTUuOTQgNjA1Ljk3IDU0Ljk5IDYwOS43OCA1NC45M0M2MTIuMTcgNTQuODkgNjEzLjMzIDU1LjE0IDYxNS40MCA1Ni4xNEM2MTguMDcgNTcuNDMgNjE5LjE5IDU5LjIyIDYyMC4wMyA2My41NUM2MjAuMzQgNjUuMTYgNjIwLjQyIDY5LjQ2IDYyMC41MyA5My45M0M2MjAuNjUgMTE4LjkxIDYyMC43MSAxMjIuNDcgNjIxLjAyIDEyMi42OEM2MjEuNDIgMTIyLjk1IDY0OS44MSAxMjIuNzIgNjUwLjExIDEyMi40NEM2NTAuMjEgMTIyLjM1IDY1MC4yNiAxMDguMzIgNjUwLjIyIDkxLjI3QzY1MC4xNSA1OC43MiA2NTAuMTggNTkuNjUgNjQ5LjA4IDUzLjk2QzY0OC41MSA1MC45NCA2NDguMjAgNDkuNjkgNjQ3LjgwIDQ4Ljc0QzY0Ny42MiA0OC4zMiA2NDcuNDcgNDcuODMgNjQ3LjQ3IDQ3LjY1QzY0Ny40NyA0Ny40NyA2NDcuMzIgNDcuMDIgNjQ3LjE0IDQ2LjY2QzY0Ni45NiA0Ni4zMCA2NDYuNjIgNDUuNTggNjQ2LjM4IDQ1LjA2QzY0Mi45OSAzNy42OCA2MzYuMDggMzIuMzcgNjI3LjM0IDMwLjQ0QzYxNy4xNyAyOC4yMCA2MDYuODUgMjkuOTcgNTk4Ljg0IDM1LjMyQzU5OC4wMyAzNS44NiA1OTcuMjcgMzYuMjQgNTk3LjE0IDM2LjE2QzU5Ni45OSAzNi4wNyA1OTYuOTEgMjkuNjAgNTk2LjkxIDE4LjI2QzU5Ni45MSA4LjUwIDU5Ni44NSAwLjM0IDU5Ni43NyAwLjE0QzU5Ni42NCAtMC4yMCA1OTUuMTUgLTAuMjMgNTgyLjMwIC0wLjIzQzU3MS40NyAtMC4yMyA1NjcuOTEgLTAuMTcgNTY3LjcwIDAuMDVDNTY3LjI4IDAuNDcgNTY3LjI5IDEyMi41NyA1NjcuNzEgMTIyLjc0QzU2Ny44NyAxMjIuODAgNTc0LjQ4IDEyMi44NCA1ODIuNDAgMTIyLjgyTDU5Ni43OSAxMjIuNzhMNTk2LjkyIDk2LjA5Wk02ODYuNjggNzcuMzZMNjg2LjY4IDMxLjk1TDY3Mi4wNSAzMS45NUw2NTcuNDIgMzEuOTVMNjU3LjM2IDc3LjEzQzY1Ny4zMyAxMDEuOTggNjU3LjM1IDEyMi40NCA2NTcuNDEgMTIyLjYwQzY1Ny41MCAxMjIuODQgNjYwLjU2IDEyMi44OCA2NzIuMTAgMTIyLjg0TDY4Ni42OCAxMjIuNzhMNjg2LjY4IDc3LjM2Wk03MjMuNzQgMTIyLjYxQzcyMy45NSAxMjIuNDAgNzI0LjAyIDExNi42MCA3MjQuMDIgOTcuOTVDNzI0LjAyIDgzLjA4IDcyNC4xMSA3Mi4zNSA3MjQuMjYgNzAuNDNDNzI1LjAwIDYxLjA4IDcyNy42NCA1Ni43MSA3MzMuMzggNTUuMzNDNzM2LjA5IDU0LjY5IDc0MC45NiA1NS4wNCA3NDIuODcgNTYuMDNDNzQ1LjI5IDU3LjI4IDc0Ny4xNyA2MS41MCA3NDcuNjMgNjYuNzFDNzQ3Ljc3IDY4LjMyIDc0Ny44OCA4MC4wOSA3NDcuODkgOTUuODRDNzQ3LjkxIDExNS44NCA3NDcuOTggMTIyLjM2IDc0OC4xOSAxMjIuNjFDNzQ4LjQyIDEyMi45MCA3NTAuNTIgMTIyLjkyIDc2Mi43NSAxMjIuNzhDNzcwLjYxIDEyMi42OSA3NzcuMTIgMTIyLjUzIDc3Ny4yMiAxMjIuNDRDNzc3LjMyIDEyMi4zNCA3NzcuMzcgMTA4LjAwIDc3Ny4zMyA5MC41N0M3NzcuMjUgNTkuMzQgNzc3LjI0IDU4LjgzIDc3Ni43NSA1Ni4xOEM3NzUuNjMgNTAuMTcgNzc0LjMxIDQ2LjE3IDc3Mi4zOCA0Mi45NUM3NjguMjQgMzYuMDggNzYyLjM5IDMyLjAxIDc1NC4yMSAzMC4zNUM3NDMuODQgMjguMjQgNzMzLjExIDMwLjAxIDcyNS41NSAzNS4wOUM3MjQuNTcgMzUuNzQgNzIzLjY4IDM2LjI4IDcyMy41OCAzNi4yOEM3MjMuNDcgMzYuMjggNzIzLjI2IDM1LjM4IDcyMy4xMiAzNC4yOEM3MjIuOTggMzMuMTggNzIyLjgwIDMyLjE4IDcyMi43MiAzMi4wNkM3MjIuNTcgMzEuODEgNjk1LjUyIDMxLjczIDY5NC44OSAzMS45OEM2OTQuNTYgMzIuMTEgNjk0LjUyIDM2LjMxIDY5NC41MiA3Ny4yM0M2OTQuNTIgMTEyLjAwIDY5NC41OSAxMjIuNDAgNjk0LjgwIDEyMi42MUM2OTUuMjEgMTIzLjAyIDcyMy4zMyAxMjMuMDIgNzIzLjc0IDEyMi42MVpNOTEwLjU1IDEyMi41N0M5MTAuNzUgMTIyLjM0IDkxMC44MCAxMTcuOTQgOTEwLjc2IDEwNi40OEw5MTAuNzAgOTAuNzFMODk0LjkwIDkwLjcxTDg3OS4xMCA5MC43MUw4NzkuMDQgMTA2LjQ4Qzg3OC45OSAxMTcuOTQgODc5LjA1IDEyMi4zNCA4NzkuMjQgMTIyLjU3Qzg3OS40NiAxMjIuODQgODgyLjIwIDEyMi44OSA4OTQuOTAgMTIyLjg5QzkwNy41OSAxMjIuODkgOTEwLjM0IDEyMi44NCA5MTAuNTUgMTIyLjU3Wk00MjAuODggMTAxLjgzQzQxOC42NSAxMDEuMjQgNDE3Ljc4IDEwMC44MSA0MTYuODUgOTkuODVDNDE1LjI4IDk4LjI0IDQxNC43OCA5NC45MyA0MTUuNzMgOTIuNDFDNDE2LjE5IDkxLjE4IDQxOC4xMyA4OS4wMiA0MTkuNDMgODguMzBDNDIwLjM0IDg3Ljc5IDQyMi44MiA4Ny4wOCA0MjMuNzEgODcuMDhDNDI0LjE4IDg3LjA4IDQyNC44NiA4Ni45NyA0MjUuMjMgODYuODVDNDI1LjYxIDg2LjcyIDQyNi42MCA4Ni41MSA0MjcuNDMgODYuMzhDNDI4LjI3IDg2LjI2IDQyOS44NSA4Ni4wMCA0MzAuOTUgODUuODFDNDM1LjUwIDg1LjAzIDQzNy40MyA4NC43MSA0MzguMjQgODQuNThDNDM5LjAzIDg0LjQ2IDQzOS4xMCA4NC40OSA0MzkuMjEgODUuMTJDNDM5LjI4IDg1LjQ5IDQzOS4zMCA4Ni4zNyA0MzkuMjUgODcuMDhDNDM4LjgwIDkzLjk4IDQzNy45MyA5Ni41NSA0MzUuMjAgOTkuMDVDNDMzLjY2IDEwMC40NiA0MzEuNjMgMTAxLjQ1IDQyOS4yOSAxMDEuOTVDNDI3LjA3IDEwMi40MSA0MjIuODUgMTAyLjM1IDQyMC44OCAxMDEuODNaTTgxNS4yOCA2NC4zMUM4MTUuMjEgNjMuNDYgODE1LjQyIDYyLjY5IDgxNi4xNSA2MS4yMUM4MTcuNzggNTcuOTIgODIwLjcxIDU1LjY0IDgyNC42NiA1NC42MUM4MjYuNTQgNTQuMTEgODMxLjM1IDU0LjA1IDgzMi43NSA1NC41MEM4MzcuMjkgNTUuOTcgODM5Ljg0IDU4LjU1IDg0MC45NyA2Mi44NEM4NDEuMTkgNjMuNjcgODQxLjIwIDY0LjA4IDg0MS4wMiA2NC4zMEM4NDAuNjYgNjQuNzQgODE1LjMyIDY0Ljc1IDgxNS4yOCA2NC4zMVpNOTUuNTEgMjUuOThDOTUuOTYgMjUuNzQgOTUuOTcgMjUuNDQgOTUuOTcgMTMuMjBDOTUuOTcgNS4wMSA5NS44OSAwLjUxIDk1LjczIDAuMjJDOTUuNTAgLTAuMjIgOTUuMDkgLTAuMjMgODEuMTUgLTAuMjNDNzAuMzEgLTAuMjMgNjYuNzQgLTAuMTcgNjYuNTMgMC4wNUM2Ni4zMSAwLjI2IDY2LjI1IDMuNDYgNjYuMjUgMTMuMDNDNjYuMjUgMjQuODggNjYuMjcgMjUuNzQgNjYuNjUgMjUuOTZDNjcuMjQgMjYuMjkgOTQuOTAgMjYuMzEgOTUuNTEgMjUuOThaTTY4Ni4wNyAyNi4wN0w2ODYuODAgMjUuOTJMNjg2LjgwIDEzLjExQzY4Ni44MCAyLjU4IDY4Ni43NCAwLjI0IDY4Ni40OCAwLjAzQzY4Ni4yNSAtMC4xNiA2ODIuMjEgLTAuMjIgNjcxLjc5IC0wLjE4TDY1Ny40MiAtMC4xMkw2NTcuMzAgMTIuNjRDNjU3LjI0IDE5LjY2IDY1Ny4yNyAyNS41OCA2NTcuMzcgMjUuODFDNjU3LjU0IDI2LjE5IDY1OC40NCAyNi4yMiA2NzEuNDQgMjYuMjJDNjc5LjA4IDI2LjIyIDY4NS42NiAyNi4xNSA2ODYuMDcgMjYuMDdaIi8+PC9zdmc+");
  --fm-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --fm-serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --fm-gl: max(18px, env(safe-area-inset-left, 0px));
  --fm-gr: max(18px, env(safe-area-inset-right, 0px));
  --fm-ease: cubic-bezier(.2, .7, .1, 1);
  color-scheme: light;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--fm-ivory); }
body { margin: 0; background: var(--fm-ivory); color: var(--fm-green); font-family: var(--fm-sans); font-size: 14.5px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
:focus-visible { outline: 1.5px solid currentColor; outline-offset: 3px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wordmark { display: block; background: currentColor; -webkit-mask: var(--fm-logo) center / contain no-repeat; mask: var(--fm-logo) center / contain no-repeat; }
.fm-lock, .fm-lock body { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* ── Header ─────────────────────────────────────────────── */
.fm-top { position: fixed; z-index: 40; top: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: calc(env(safe-area-inset-top, 0px) + 26px) var(--fm-gr) 18px var(--fm-gl); color: var(--fm-green); pointer-events: none; transition: color .4s; }
.fm-top > * { pointer-events: auto; }
.fm-on-media .fm-top { color: var(--fm-ivory); }
.fm-on-media.fm-media-light .fm-top { color: var(--fm-green); }
.fm-menu-open .fm-top { color: var(--fm-green); }
.fm-page-top { background: var(--fm-ivory); }
.fm-menu-open .fm-page-top { background: transparent; }

.fm-burger { position: relative; width: 64px; height: 30px; background: none; border: 0; padding: 0; color: inherit; cursor: pointer; }
.fm-burger span { position: absolute; left: 0; right: 0; height: 1px; background: currentColor; transition: transform .55s var(--fm-ease), width .55s var(--fm-ease); }
.fm-burger span:first-child { top: 8px; }
.fm-burger span:last-child { top: 20px; }
.fm-menu-open .fm-burger { width: 44px; height: 44px; }
.fm-menu-open .fm-burger span:first-child { transform: translate3d(0, 14px, 0) rotate(45deg); }
.fm-menu-open .fm-burger span:last-child { transform: translate3d(0, 2px, 0) rotate(-45deg); }

.fm-right { display: flex; align-items: center; gap: 26px; }
.fm-logo { display: block; flex: none; width: 148px; aspect-ratio: 912 / 127; color: inherit; transform: translateY(-3px); }
.fm-logo .wordmark { width: 100%; height: 100%; }
.fm-on-media .fm-top .fm-logo { display: none; }
.fm-menu-open .fm-top .fm-logo { display: none; }

/* ── Search ─────────────────────────────────────────────── */
.fm-search { position: relative; display: flex; align-items: center; gap: 10px; margin: 0; border-bottom: 1px solid currentColor; padding: 0 0 7px; width: 200px; transition: width .6s var(--fm-ease); }
.fm-search:focus-within { width: 260px; }
.fm-search svg { width: 14px; height: 14px; flex: none; }
.fm-search input { flex: 1; min-width: 0; font: 400 12.5px var(--fm-sans); letter-spacing: .1em; text-transform: uppercase; text-align: right; color: inherit; background: transparent; border: 0; border-radius: 0; padding: 0; }
.fm-search input::placeholder { color: inherit; opacity: 1; }
.fm-search input:focus { outline: none; text-transform: none; letter-spacing: .02em; }
.fm-search input:focus::placeholder { opacity: .4; }
.fm-search input::-webkit-search-cancel-button { display: none; }
.fm-results { position: absolute; right: 0; top: calc(100% + 12px); width: min(340px, calc(100vw - 36px)); max-height: 60vh; overflow-y: auto; background: var(--fm-ivory); color: var(--fm-green); border: 1px solid var(--fm-line); box-shadow: 0 18px 40px -24px rgba(0,40,40,.5); list-style: none; margin: 0; padding: 6px 0; text-transform: none; letter-spacing: 0; }
.fm-results li a { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 8px 14px; text-decoration: none; font-size: 13px; }
.fm-results li a:hover, .fm-results li a[aria-selected="true"] { background: #FFFFFF; }
.fm-results small { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--fm-muted); align-self: center; }
.fm-results .fm-empty { padding: 8px 14px; font-size: 13px; color: var(--fm-muted); font-family: var(--fm-serif); font-style: italic; }
@media (max-width: 700px) {
  .fm-right { gap: 16px; }
  .fm-logo { width: 104px; transform: translateY(-2px); }
  .fm-search { width: 110px; }
  .fm-search:focus-within { width: 170px; }
  .fm-burger { width: 48px; }
}

/* ── Full-page index (menu) ─────────────────────────────── */
.fm-menu { position: fixed; inset: 0; z-index: 35; background: var(--fm-ivory); color: var(--fm-green); clip-path: inset(0 0 100% 0); transition: clip-path .8s var(--fm-ease), visibility 0s .8s; overflow-y: auto; visibility: hidden; }
.fm-menu-open .fm-menu { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path .8s var(--fm-ease), visibility 0s; }
.fm-menu-in { min-height: 100%; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) minmax(0, .9fr); grid-template-rows: auto 1fr auto; column-gap: clamp(24px, 4vw, 70px); padding: calc(env(safe-area-inset-top, 0px) + 30px) var(--fm-gr) 30px calc(var(--fm-gl) + clamp(80px, 13vw, 200px)); }
.fm-menu-logo { grid-column: 1 / -1; width: clamp(150px, 16vw, 230px); aspect-ratio: 912 / 127; display: block; margin-bottom: clamp(50px, 9vh, 110px); }
.fm-menu-logo .wordmark { width: 100%; height: 100%; }
.fm-col ul { list-style: none; margin: 0; padding: 0; }
.fm-col li { transform: translate3d(0, 18px, 0); opacity: 0; transition: transform .7s var(--fm-ease), opacity .5s; }
.fm-menu-open .fm-col li { transform: none; opacity: 1; transition-delay: calc(var(--d, 0) * 35ms + 260ms); }
.fm-col a { text-decoration: none; display: inline-flex; align-items: baseline; gap: 12px; position: relative; }
.fm-col a .t { display: inline-block; transition: transform .45s var(--fm-ease); }
.fm-col a:hover .t, .fm-col a:focus-visible .t { transform: translate3d(6px, 0, 0); }
.fm-col a[aria-current="page"]::before { content: ""; position: absolute; left: -22px; top: 50%; width: 5px; height: 5px; border-radius: 50%; background: currentColor; transform: translateY(-50%); }
/* column 1: big */
.fm-col-1 a { font-family: var(--fm-serif); font-size: clamp(18px, 1.5vw, 21px); line-height: 1.75; text-transform: uppercase; letter-spacing: -.01em; }
/* columns 2–3: small, numbered */
.fm-col-2 li, .fm-col-3 li { padding: 9px 0; }
.fm-col-2 a, .fm-col-3 a { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.fm-col-2 a .n { font-size: 11.5px; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.fm-col-2 a .n::before, .fm-col-2 a .n::after { content: "|"; font-weight: 300; }
.fm-col-h { display: block; font-size: 9.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--fm-muted); margin-bottom: 14px; }
.fm-menu-foot { grid-column: 1 / -1; display: flex; gap: 26px; flex-wrap: wrap; margin-top: 50px; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--fm-muted); }
@media (max-width: 860px) {
  .fm-menu-in { grid-template-columns: minmax(0, 1fr); padding-left: var(--fm-gl); padding-top: calc(env(safe-area-inset-top, 0px) + 90px); row-gap: 34px; grid-template-rows: none; }
  .fm-menu-logo { margin-bottom: 0; }
}

/* ── Home: sliding images and videos ────────────────────── */
.fm-home { position: fixed; inset: 0; background: #0E2E2D; color: var(--fm-ivory); overflow: hidden; transition: color .6s; }
.fm-media-light .fm-home { color: var(--fm-green); }
.fm-media-light .fm-home::after { opacity: 0; }
.fm-media-light .hs-tag { text-shadow: none; }
.hs-media.hs-contain { object-fit: contain; mix-blend-mode: multiply; padding: 100px 0 130px; }
.hs { position: absolute; inset: 0; }
.hs-slide { position: absolute; inset: 0; overflow: hidden; transform: translate3d(100%, 0, 0); will-change: transform; }
.hs-slide.from-left { transform: translate3d(-100%, 0, 0); }
.hs-slide.is-in { transform: translate3d(0, 0, 0); transition: transform 1.2s var(--fm-ease); z-index: 2; }
.hs-slide.is-out { transform: translate3d(-28%, 0, 0); transition: transform 1.2s var(--fm-ease); z-index: 1; }
.hs-slide.is-out.to-right { transform: translate3d(28%, 0, 0); }
.hs-slide.is-out .hs-media { opacity: .55; }
.hs-slide.is-static { transform: none; z-index: 2; }
.hs-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 7s linear, opacity 1.2s; }
.hs-slide.is-in .hs-media, .hs-slide.is-static .hs-media { transform: scale(1); }
.hs-ph { display: grid; place-items: center; }
.hs-ph span { font-size: 10px; letter-spacing: .2em; text-transform: uppercase; opacity: .55; }
.fm-home::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; transition: opacity .6s; background: linear-gradient(rgba(0,25,25,.32), rgba(0,25,25,0) 20%, rgba(0,25,25,0) 55%, rgba(0,25,25,.55)); }
.hs-logo { position: absolute; z-index: 4; right: var(--fm-gr); bottom: calc(env(safe-area-inset-bottom, 0px) + 96px); width: clamp(220px, 34vw, 560px); aspect-ratio: 912 / 127; color: inherit; }
.hs-logo .wordmark { width: 100%; height: 100%; }
.hs-arrow { position: absolute; z-index: 4; bottom: calc(env(safe-area-inset-bottom, 0px) + 22px); width: 52px; height: 52px; display: grid; place-items: center; background: none; border: 0; color: inherit; cursor: pointer; }
.hs-arrow svg { width: 22px; height: 22px; transition: transform .45s var(--fm-ease); }
.hs-prev { left: calc(var(--fm-gl) - 14px); }
.hs-next { right: calc(var(--fm-gr) - 14px); }
.hs-prev:hover svg { transform: translate3d(-4px, 0, 0); }
.hs-next:hover svg { transform: translate3d(4px, 0, 0); }
.hs-ui { position: absolute; z-index: 4; left: 50%; bottom: calc(env(safe-area-inset-bottom, 0px) + 38px); transform: translateX(-50%); display: flex; align-items: center; gap: 14px; }
.hs-tag { position: absolute; z-index: 4; left: var(--fm-gl); bottom: calc(env(safe-area-inset-bottom, 0px) + 100px); font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; margin: 0; max-width: 40vw; text-shadow: 0 1px 12px rgba(0,25,25,.35); }
.hs-bars { display: flex; gap: 6px; }
.hs-bars button { position: relative; width: 30px; height: 14px; padding: 0; background: none; border: 0; cursor: pointer; }
.hs-bars button::before, .hs-bars button i { content: ""; position: absolute; left: 0; right: 0; top: 6px; height: 1px; background: currentColor; opacity: .35; }
.hs-bars button i { opacity: 1; transform: scaleX(0); transform-origin: left; }
.hs-bars button.is-done i { transform: scaleX(1); }
.hs-bars button.is-now i { animation: hsFill var(--hs-dur, 6s) linear forwards; }
.hs-paused .hs-bars button.is-now i { animation-play-state: paused; }
@keyframes hsFill { to { transform: scaleX(1); } }
.hs-count { font-size: 10.5px; letter-spacing: .16em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hs-pause { background: none; border: 0; color: inherit; font: 400 10.5px var(--fm-sans); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; padding: 4px 0; }
@media (max-width: 700px) {
  .hs-logo { width: calc(100vw - 36px); bottom: calc(env(safe-area-inset-bottom, 0px) + 84px); }
  .hs-tag { bottom: auto; top: calc(env(safe-area-inset-top, 0px) + 80px); max-width: none; }
  .hs-ui .hs-pause { display: none; }
  .hs-bars button { width: 20px; }
}

/* ── Inner pages ────────────────────────────────────────── */
.fm-page { padding: calc(env(safe-area-inset-top, 0px) + 120px) var(--fm-gr) 0 var(--fm-gl); max-width: 1240px; margin: 0 auto; }
.pg-hero { display: grid; gap: 14px; max-width: 46rem; padding-bottom: 40px; }
.pg-eyebrow { font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--fm-muted); }
.pg-title { margin: 0; font-size: clamp(28px, 3.4vw, 44px); font-weight: 800; letter-spacing: -.045em; line-height: 1; text-transform: lowercase; text-wrap: balance; }
.pg-lede { margin: 0; font-family: var(--fm-serif); font-size: clamp(17px, 1.6vw, 20px); line-height: 1.5; color: var(--fm-ink); max-width: 38rem; }
.slot { position: relative; margin: 0; background: #E1D9CD; overflow: hidden; }
.slot::after { content: attr(data-label); position: absolute; left: 14px; bottom: 12px; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: #857E72; }
.slot.wide { aspect-ratio: 16 / 7; width: 100%; }
.slot.tall { aspect-ratio: 4 / 5; width: 100%; }
.pg-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); padding-block: 56px; border-top: 1px solid var(--fm-line); margin-top: 56px; }
@media (max-width: 820px) { .pg-grid { grid-template-columns: minmax(0, 1fr); } }
.pg-txt { display: grid; gap: 18px; align-content: start; max-width: 36rem; }
.pg-txt h2 { margin: 0; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; color: var(--fm-muted); }
.pg-txt p { margin: 0; color: var(--fm-ink); }
.pg-txt .big { font-size: clamp(17px, 1.6vw, 21px); line-height: 1.4; font-weight: 500; color: var(--fm-green); letter-spacing: -.01em; }
.pg-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fm-line); }
.pg-list li { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--fm-line); }
.pg-list li span:first-child { color: var(--fm-muted); font-size: 12px; letter-spacing: .06em; }
.pending { border: 1px dashed var(--fm-brass); padding: 18px 20px; display: grid; gap: 6px; max-width: 36rem; }
.pending b { font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--fm-brass); font-weight: 500; }
.pending p { margin: 0; font-size: 13.5px; color: var(--fm-muted); }
.manifest { list-style: none; margin: 0; padding: 0; counter-reset: m; display: grid; gap: 0; border-top: 1px solid var(--fm-line); }
.manifest li { counter-increment: m; display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 10px; padding: 22px 0; border-bottom: 1px solid var(--fm-line); font-size: clamp(18px, 2vw, 26px); line-height: 1.3; letter-spacing: -.01em; color: var(--fm-green); }
.manifest li::before { content: counter(m, decimal-leading-zero); font-size: 10px; letter-spacing: .16em; color: var(--fm-muted); padding-top: .6em; }
.fx-words { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fx-words a { display: inline-block; border: 1px solid var(--fm-line); padding: 6px 10px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; transition: border-color .2s, transform .35s var(--fm-ease); }
.fx-words a:hover { border-color: var(--fm-green); transform: translate3d(0, -2px, 0); }
.form { display: grid; gap: 14px; max-width: 30rem; }
.form label { display: grid; gap: 6px; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--fm-muted); }
.form input, .form textarea { font: 400 15px var(--fm-sans); color: var(--fm-ink); background: transparent; border: 0; border-bottom: 1px solid var(--fm-line); border-radius: 0; padding: 8px 0; letter-spacing: 0; text-transform: none; }
.form textarea { min-height: 7rem; resize: vertical; }
.form input:focus, .form textarea:focus { outline: none; border-bottom-color: var(--fm-green); }
.btn { justify-self: start; display: inline-flex; align-items: center; gap: 10px; background: var(--fm-green); color: var(--fm-ivory); border: 0; border-radius: 2px; padding: 12px 18px; font: 500 11px var(--fm-sans); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: transform .35s var(--fm-ease); }
.btn:hover { transform: translate3d(0, -2px, 0); }
.form-msg { margin: 0; min-height: 1.4em; font-size: 13px; color: var(--fm-muted); }
.pg-next { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--fm-line); padding: 26px 0; margin-top: 30px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.pg-next a { text-decoration: none; }
.pg-next a:hover { text-decoration: underline; text-underline-offset: 5px; }
.fm-foot { max-width: 1240px; margin: 0 auto; padding: 26px var(--fm-gr) 36px var(--fm-gl); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--fm-muted); border-top: 1px solid var(--fm-line); }
.copy { background: none; border: 1px solid var(--fm-line); color: var(--fm-green); font: 500 10px var(--fm-sans); letter-spacing: .14em; text-transform: uppercase; padding: 3px 7px; border-radius: 2px; cursor: pointer; margin-left: 8px; }

/* ── Utility column under the search (basket · contact · FOQ) ── */
.fm-util { position: fixed; z-index: 40; top: calc(env(safe-area-inset-top, 0px) + 100px); right: var(--fm-gr); display: grid; justify-items: end; gap: 16px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: inherit; pointer-events: auto; }
.fm-on-media .fm-util { color: var(--fm-ivory); }
.fm-on-media.fm-media-light .fm-util, .fm-menu-open .fm-util { color: var(--fm-green); }
.fm-util a { text-decoration: none; color: inherit; background: linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat; transition: background-size .35s var(--fm-ease); padding-bottom: 2px; }
.fm-util a:hover, .fm-util a[aria-current="page"] { background-size: 100% 1px; }
.fm-util .cnt { display: inline-block; min-width: 18px; text-align: center; margin-left: 6px; padding: 0 4px; border: 1px solid currentColor; border-top: 0; font-variant-numeric: tabular-nums; }
.fm-util .cnt.bump { animation: cntBump .5s var(--fm-ease); }
@keyframes cntBump { 40% { transform: translate3d(0, -3px, 0); } }
@media (max-width: 900px) {
  .fm-util { top: calc(env(safe-area-inset-top, 0px) + 62px); gap: 0; }
  .fm-util a:not([href="basket.html"]) { display: none; }
}
.fm-col-h { text-decoration: none; }
a.fm-col-h:hover { color: var(--fm-green); }

/* ── Toast ─────────────────────────────────────────────── */
.fm-toast { position: fixed; z-index: 60; left: 50%; bottom: calc(env(safe-area-inset-bottom, 0px) + 24px); transform: translate3d(-50%, 20px, 0); opacity: 0; background: var(--fm-green); color: var(--fm-ivory); padding: 12px 18px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; transition: transform .35s var(--fm-ease), opacity .3s; pointer-events: none; }
.fm-toast.on { transform: translate3d(-50%, 0, 0); opacity: 1; }
.fm-toast a { color: inherit; pointer-events: auto; margin-left: 10px; }

/* ── Department = shop listing ─────────────────────────── */
.fm-shop { display: grid; grid-template-columns: 210px minmax(0, 1fr); column-gap: clamp(24px, 3vw, 44px); padding: calc(env(safe-area-inset-top, 0px) + 104px) max(var(--fm-gr), 150px) 0 var(--fm-gl); }
.shop-title { grid-column: 1 / -1; justify-self: center; margin: 0 0 clamp(36px, 6vh, 64px); font-size: clamp(20px, 2.4vw, 30px); font-weight: 400; letter-spacing: .32em; padding-left: .32em; text-transform: uppercase; }
.shop-side { align-self: start; position: sticky; top: 120px; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; }
.shop-side ol, .shop-side ul { list-style: none; margin: 0; padding: 0; }
.shop-side > ol > li { margin-bottom: 20px; }
.shop-side .h, .shop-side > ol > li > a { display: flex; gap: 10px; text-decoration: none; }
.shop-side .n { font-variant-numeric: tabular-nums; }
.shop-side .n::before, .shop-side .n::after { content: "|"; font-weight: 300; }
.shop-side .n::before { margin-right: 3px; } .shop-side .n::after { margin-left: 3px; }
.shop-side ul { margin: 14px 0 0 36px; display: grid; gap: 11px; }
.shop-side ul a { text-decoration: none; position: relative; text-transform: uppercase; line-height: 1.35; display: inline-block; background: linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat; transition: background-size .35s var(--fm-ease); }
.shop-side ul a:hover { background-size: 100% 1px; }
.shop-side li.is-on > a::before { content: ""; position: absolute; left: -20px; top: .45em; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.shop-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 46px 18px; align-content: start; }
.pc { position: relative; display: grid; gap: 8px; justify-items: center; text-align: center; }
.pc-link { display: grid; gap: 12px; justify-items: center; text-decoration: none; width: 100%; }
.pc-img { width: 100%; aspect-ratio: 3 / 4; background: #E9E5DC; transition: opacity .3s; }
.pc-link:hover .pc-img { opacity: .82; }
.pc-t { margin: 0; font-size: 11.5px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; line-height: 1.45; max-width: 26ch; }
.pc-c { margin: 0; font-size: 11px; letter-spacing: .1em; color: var(--fm-muted); text-transform: uppercase; }
.pc-add { width: 28px; height: 28px; display: grid; place-items: center; background: none; border: 0; color: var(--fm-green); cursor: pointer; padding: 0; transition: transform .3s var(--fm-ease); }
.pc-add svg { width: 14px; height: 14px; transition: transform .35s var(--fm-ease); }
.pc-add:hover svg { transform: rotate(90deg); }
.pc-add.is-in svg { transform: rotate(45deg); }
.pc-add.is-in::after { content: "In basket"; position: absolute; transform: translate3d(0, 22px, 0); font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--fm-muted); white-space: nowrap; }
.shop-about { grid-column: 2; margin-top: 90px; padding: 40px 0 70px; border-top: 1px solid var(--fm-line); display: grid; gap: 18px; max-width: 46rem; }
.shop-lbl { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--fm-muted); }
.shop-tag { margin: 0; font-family: var(--fm-serif); font-size: clamp(20px, 2vw, 26px); line-height: 1.3; color: var(--fm-green); }
.shop-about p { margin: 0; color: var(--fm-ink); }
.shop-who { display: grid; gap: 6px; padding-top: 16px; border-top: 1px solid var(--fm-line); }
.shop-about .pg-words { display: grid; gap: 10px; padding-top: 16px; border-top: 1px solid var(--fm-line); }
@media (max-width: 1200px) { .shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .fm-shop { grid-template-columns: minmax(0, 1fr); padding-right: var(--fm-gr); padding-top: calc(env(safe-area-inset-top, 0px) + 96px); }
  .shop-side { display: none; }
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 12px; }
  .shop-about { grid-column: 1; }
}

/* ── Service = product page ────────────────────────────── */
.fm-prod { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 520px); column-gap: clamp(28px, 4vw, 64px); padding: calc(env(safe-area-inset-top, 0px) + 96px) max(var(--fm-gr), 150px) 60px var(--fm-gl); align-items: start; }
.prod-media { position: relative; display: grid; gap: 10px; }
.prod-img { width: 100%; aspect-ratio: 4 / 5; background: #E9E5DC; }
.prod-brand { position: sticky; bottom: 20px; margin-top: -40px; padding-left: 16px; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--fm-muted); }
.prod-info { position: sticky; top: 110px; display: grid; gap: 16px; }
.prod-crumb { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--fm-muted); }
.prod-crumb a { text-decoration: none; }
.prod-crumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.prod-t { margin: 0; font-size: clamp(18px, 1.8vw, 24px); font-weight: 400; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; }
.prod-code { margin: 0 0 6px; padding-bottom: 22px; border-bottom: 1px solid var(--fm-green); font-size: 11.5px; letter-spacing: .08em; color: var(--fm-muted); }
.prod-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 10px; }
.btn-line { display: grid; place-items: center; min-height: 50px; padding: 0 14px; border: 1px solid var(--fm-green); background: transparent; color: var(--fm-green); font: 400 11.5px var(--fm-sans); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background .25s, color .25s; }
.btn-line:hover, .btn-line.is-in { background: var(--fm-green); color: var(--fm-ivory); }
.prod-what { margin: 6px 0 0; font-size: 14px; line-height: 1.7; color: var(--fm-ink); }
.prod-plan { margin-top: 18px; display: grid; gap: 14px; }
.prod-plan-h { display: flex; justify-content: space-between; align-items: center; }
.prod-plan-h h2 { margin: 0; font-size: 11.5px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; }
.prod-plan-h button { background: none; border: 0; color: var(--fm-green); width: 30px; height: 26px; padding: 0; cursor: pointer; }
.prod-plan-h button svg { width: 18px; height: 18px; }
.prod-plan-h button:disabled { opacity: .3; cursor: default; }
.prod-plan-track { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.prod-plan-track::-webkit-scrollbar { display: none; }
.pc-s { flex: 0 0 104px; scroll-snap-align: start; }
.pc-s .pc-t { font-size: 9.5px; letter-spacing: .08em; }
.prod-acc { margin-top: 14px; display: grid; }
.prod-acc details { border-top: 1px solid var(--fm-line); }
.prod-acc details:last-child { border-bottom: 1px solid var(--fm-line); }
.prod-acc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; padding: 13px 0; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.prod-acc summary::-webkit-details-marker { display: none; }
.prod-acc summary::after { content: "+"; font-weight: 300; transition: transform .3s var(--fm-ease); }
.prod-acc details[open] summary::after { transform: rotate(45deg); }
.prod-acc details > *:not(summary) { margin: 0 0 16px; font-size: 13.5px; color: var(--fm-ink); animation: accIn .3s var(--fm-ease); }
.prod-acc ul { padding-left: 1.1em; display: grid; gap: 6px; }
@keyframes accIn { from { opacity: 0; transform: translate3d(0, -4px, 0); } }
@media (max-width: 900px) {
  .fm-prod { grid-template-columns: minmax(0, 1fr); padding-right: var(--fm-gr); padding-top: calc(env(safe-area-inset-top, 0px) + 96px); row-gap: 28px; }
  .prod-media { grid-auto-flow: column; grid-auto-columns: 86%; overflow-x: auto; scroll-snap-type: x mandatory; }
  .prod-img { scroll-snap-align: start; }
  .prod-brand { display: none; }
  .prod-info { position: static; }
}

/* ── Departments overview ──────────────────────────────── */
.dp-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 42px 18px; padding-top: 20px; }
.dp-tile { display: grid; gap: 8px; text-decoration: none; align-content: start; }
.dp-tile .slot { aspect-ratio: 4 / 5; background: #E9E5DC; transition: opacity .3s; }
.dp-tile:hover .slot { opacity: .82; }
.dp-n { font-size: 11px; letter-spacing: .1em; color: var(--fm-muted); margin-top: 6px; }
.dp-name { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.dp-tag { font-family: var(--fm-serif); font-size: 15px; line-height: 1.4; color: var(--fm-ink); }
.dp-count { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--fm-muted); }
.dp-closing { margin: 70px 0 60px; text-align: center; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; }
@media (max-width: 1000px) { .dp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── Basket ────────────────────────────────────────────── */
.basket { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); padding: 20px 0 70px; border-top: 1px solid var(--fm-line); }
@media (max-width: 860px) { .basket { grid-template-columns: minmax(0, 1fr); } }
.basket-list { display: grid; align-content: start; }
.bl-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--fm-line); }
.bl-row .slot { aspect-ratio: 3 / 4; background: #E9E5DC; }
.bl-row a { text-decoration: none; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.bl-row small { display: block; margin-top: 4px; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--fm-muted); }
.bl-row button { background: none; border: 0; color: var(--fm-muted); font: 400 10.5px var(--fm-sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.bl-row button:hover { color: var(--fm-green); }
.bl-empty { padding: 20px 0; display: grid; gap: 12px; justify-items: start; }
.bl-empty p { margin: 0; font-family: var(--fm-serif); font-size: 18px; color: var(--fm-ink); }
.bl-total { padding-top: 14px; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--fm-muted); }
.basket-summary { white-space: pre-wrap; font: 400 12.5px/1.6 var(--fm-sans); color: var(--fm-ink); background: #FFFFFF; padding: 14px 16px; margin: 0; max-height: 220px; overflow: auto; }
@media (min-width: 1100px) { .fm-page { max-width: 1420px; padding-right: max(var(--fm-gr), 160px); } }

/* ── Real images inside slots ──────────────────────────── */
.slot.has-img::after { content: none; }
.slot > img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.slot > img.fit-cover { object-fit: cover; }
.slot > img.fit-contain { object-fit: contain; padding: 8%; }
.pc-img, .prod-img, .dp-img { position: relative; }
.bl-row .slot img { object-fit: cover; }

/* ── Department sidebar: quiet at 50%, full on hover ────── */
.shop-side .h, .shop-side a { opacity: .5; transition: opacity .3s var(--fm-ease), background-size .35s var(--fm-ease); }
.shop-side a:hover, .shop-side a:focus-visible, .shop-side li.is-on > a { opacity: 1; }
.shop-side > ol > li:hover > .h { opacity: 1; }

/* ── View switch: 2 or 4 per row ───────────────────────── */
.view-sw { display: flex; justify-content: flex-end; align-items: center; gap: 4px; margin-bottom: 18px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.view-sw span { opacity: .5; margin-right: 8px; }
.view-sw button { background: none; border: 0; padding: 4px 7px; font: 400 12px var(--fm-sans); color: var(--fm-green); cursor: pointer; opacity: .45; transition: opacity .25s; font-variant-numeric: tabular-nums; }
.view-sw button:hover, .view-sw button[aria-pressed="true"] { opacity: 1; }
.view-sw button[aria-pressed="true"] { text-decoration: underline; text-underline-offset: 4px; }
.fm-shop .view-sw { grid-column: 2; }
.shop-grid[data-view="2"], .dp-grid[data-view="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 60px 22px; }
.shop-grid[data-view="2"] .pc-t { font-size: 12.5px; }
@media (max-width: 1200px) { .shop-grid[data-view="4"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .fm-shop .view-sw { grid-column: 1; }
  .shop-grid[data-view="4"], .dp-grid[data-view="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-grid[data-view="2"], .dp-grid[data-view="2"] { grid-template-columns: minmax(0, 1fr); }
}
.fm-shop .shop-side { grid-column: 1; grid-row: 2 / span 3; }
.fm-shop .view-sw { grid-column: 2; grid-row: 2; align-self: start; }
.fm-shop .shop-grid { grid-column: 2; grid-row: 3; }
.fm-shop .shop-about { grid-column: 2; grid-row: 4; }
@media (max-width: 900px) {
  .fm-shop .view-sw, .fm-shop .shop-grid, .fm-shop .shop-about { grid-column: 1; }
}

/* ── View 8 + simpler service page ─────────────────────── */
.shop-grid[data-view="8"], .dp-grid[data-view="8"] { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 30px 10px; }
.shop-grid[data-view="8"] .pc-t, .dp-grid[data-view="8"] .dp-name { font-size: 10px; letter-spacing: .08em; }
.shop-grid[data-view="8"] .pc-c { font-size: 9.5px; }
.shop-grid[data-view="8"] .pc-add svg { width: 12px; height: 12px; }
.dp-grid[data-view="8"] .dp-tag { font-size: 12.5px; }
.dp-grid[data-view="8"] .dp-count { font-size: 9.5px; }
@media (max-width: 1200px) { .shop-grid[data-view="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); } .shop-grid[data-view="8"], .dp-grid[data-view="8"] { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px) { .shop-grid[data-view="8"], .dp-grid[data-view="8"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .shop-grid[data-view="8"], .dp-grid[data-view="8"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fm-prod { grid-template-columns: minmax(0, 1fr) minmax(320px, 560px); }
.prod-media { position: sticky; top: 96px; }
.prod-media .prod-img { aspect-ratio: 4 / 5; max-height: calc(100vh - 130px); }
.prod-dept { display: grid; gap: 10px; padding-bottom: 22px; margin-bottom: 6px; border-bottom: 1px solid var(--fm-line); }
.prod-dept-n { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--fm-muted); }
.prod-dept-tag { margin: 0; font-family: var(--fm-serif); font-size: clamp(19px, 1.7vw, 23px); line-height: 1.3; color: var(--fm-green); }
.prod-dept p:last-child { margin: 0; font-size: 14px; line-height: 1.7; color: var(--fm-ink); }
.fm-prod .prod-code { padding-bottom: 0; border-bottom: 0; margin: 0; }
.fm-prod .prod-what { margin: 4px 0 6px; padding-bottom: 20px; border-bottom: 1px solid var(--fm-green); }
@media (max-width: 900px) { .prod-media { position: static; } .prod-media .prod-img { max-height: none; } }

/* ---- Smaller grids: cards no longer fill the screen; 8 services = two rows of 4 ---- */
.shop-grid[data-view="4"] { max-width: 760px; gap: 30px 16px; }
.shop-grid[data-view="2"] { max-width: 620px; gap: 40px 20px; }
.dp-grid[data-view="4"] { max-width: 820px; }
.dp-grid[data-view="2"] { max-width: 680px; }
.shop-grid[data-view="4"] .pc-t { font-size: 10.5px; }
.shop-grid[data-view="4"] .pc-link, .shop-grid[data-view="8"] .pc-link { gap: 9px; }

/* Phones: denser and easier to read */
@media (max-width: 520px) {
  .shop-grid[data-view], .dp-grid[data-view] { max-width: none; }
  .shop-grid[data-view="8"], .dp-grid[data-view="8"] { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 8px; }
  .shop-grid[data-view="8"] .pc-t, .dp-grid[data-view="8"] .dp-name { font-size: 9px; letter-spacing: .06em; }
  .shop-grid[data-view="4"], .dp-grid[data-view="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 10px; }
  .shop-grid[data-view="4"] .pc-t { font-size: 10.5px; }
  .shop-grid[data-view="2"], .dp-grid[data-view="2"] { grid-template-columns: minmax(0, 1fr); width: 78%; margin-inline: auto; }
}

/* Department names stand out: bold and a step larger */
.dp-name { font-size: 15px; font-weight: 700; letter-spacing: .12em; }
.dp-grid[data-view="8"] .dp-name { font-size: 11.5px; font-weight: 700; }
@media (max-width: 520px) { .dp-grid[data-view="8"] .dp-name { font-size: 10px; } }

/* About · Experience: slow logo ribbon ("Cinta") */
.xp { display: grid; gap: 26px; padding: 40px 0 24px; border-top: 1px solid var(--fm-line); }
.xp-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; }
.xp-head h2 { margin: 0; font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.xp-head p { margin: 0; font-size: 12.5px; color: var(--fm-muted); }
.xp-ticker { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.xp-track { display: flex; align-items: center; gap: 96px; width: max-content; padding-inline: 48px; animation: xp-ribbon 46s linear infinite; }
.xp-ticker:hover .xp-track { animation-play-state: paused; }
.xp-logo { display: flex; align-items: center; height: 56px; opacity: .62; transition: opacity .4s; color: var(--fm-green); }
.xp-logo:hover { opacity: 1; }
.xp-logo img { display: block; width: auto; max-width: none; }
.xp-veepee { gap: 4px; font-family: var(--fm-sans); font-weight: 500; font-size: 27px; letter-spacing: .01em; }
.xp-veepee svg { height: 34px; width: auto; fill: currentColor; margin-top: -10px; }
@keyframes xp-ribbon { to { transform: translateX(-50%); } }
@media (max-width: 600px) {
  .xp-track { gap: 56px; animation-duration: 34s; }
  .xp-logo { transform: scale(.78); }
}
@media (prefers-reduced-motion: reduce) {
  .xp-track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; gap: 28px 56px; padding-inline: 0; }
  .xp-track > [aria-hidden="true"] { display: none; }
  .xp-ticker { -webkit-mask-image: none; mask-image: none; }
}

/* Department · full pack: the whole department in one click (inverted band) */
.shop-pack { display: flex; align-items: center; justify-content: space-between; gap: 18px 40px; flex-wrap: wrap; background: var(--fm-green); color: var(--fm-ivory); padding: 22px 26px; margin-bottom: 30px; }
.sp-txt { display: grid; gap: 4px; min-width: 0; flex: 1 1 420px; }
.sp-lbl { font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; opacity: .7; }
.sp-t { margin: 0; font-family: var(--fm-serif); font-size: 21px; line-height: 1.25; text-wrap: balance; }
.sp-list { margin: 4px 0 0; font-size: 11px; letter-spacing: .04em; line-height: 1.6; opacity: .62; max-width: 92ch; }
.sp-btn { flex: 0 0 auto; min-height: 48px; padding: 0 22px; border: 1px solid var(--fm-ivory); background: transparent; color: var(--fm-ivory); font: 400 11.5px var(--fm-sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: background .25s, color .25s; }
.sp-btn:hover, .sp-btn.is-in { background: var(--fm-ivory); color: var(--fm-green); }
.sp-btn:focus-visible, .prod-pack:focus-visible { outline: 2px solid var(--fm-brass); outline-offset: 3px; }
.fm-shop .shop-side { grid-row: 2 / span 4; }
.fm-shop .shop-pack { grid-column: 2; grid-row: 3; }
.fm-shop .shop-grid { grid-row: 4; }
.fm-shop .shop-about { grid-row: 5; }
@media (max-width: 900px) { .fm-shop .shop-pack { grid-column: 1; } .shop-pack { padding: 18px; } .sp-btn { width: 100%; } }
/* Service cards already covered by the pack */
.pc-add.in-pack { opacity: .35; }
.prod-pack { justify-self: start; margin-top: -6px; padding: 4px 0; background: none; border: 0; border-bottom: 1px solid currentColor; color: var(--fm-green); font: 400 11px var(--fm-sans); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.prod-pack.is-in { color: var(--fm-muted); }
.btn-line.in-pack { color: var(--fm-muted); border-color: var(--fm-line); }
.bl-pack a { font-weight: 600; }

/* ── Languages: one block per language, only the visitor's stays ── */
.fm-l { display: contents; }
.fm-lang { position: relative; display: flex; align-items: center; margin-right: -8px; }
.fm-lang-btn { display: inline-flex; align-items: center; gap: 7px; padding: 0 0 7px; background: none; border: 0; border-bottom: 1px solid transparent; color: inherit; font: 400 11px var(--fm-sans); letter-spacing: .14em; cursor: pointer; }
.fm-lang-btn i { width: 5px; height: 5px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); margin-top: -3px; transition: transform .35s var(--fm-ease), margin .35s var(--fm-ease); }
.fm-lang.is-open .fm-lang-btn i { transform: rotate(225deg); margin-top: 2px; }
.fm-lang-list { position: absolute; z-index: 60; top: calc(100% + 10px); right: -14px; margin: 0; padding: 9px 10px; list-style: none; display: flex; gap: 2px; background: var(--fm-ivory); color: var(--fm-green); border: 1px solid var(--fm-line); white-space: nowrap;
  transform: translate3d(0, -10px, 0); opacity: 0; visibility: hidden; clip-path: inset(0 0 100% 0); transition: transform .5s var(--fm-ease), opacity .3s, clip-path .55s var(--fm-ease), visibility 0s .55s; }
.fm-lang.is-open .fm-lang-list { transform: none; opacity: 1; visibility: visible; clip-path: inset(0); transition: transform .5s var(--fm-ease), opacity .3s, clip-path .55s var(--fm-ease), visibility 0s; }
.fm-lang-list button { display: grid; justify-items: center; gap: 2px; padding: 4px 9px; background: none; border: 0; color: inherit; font: 400 11px var(--fm-sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; opacity: .55; transition: opacity .25s; }
.fm-lang-list button b { font-weight: 500; }
.fm-lang-list button span { font-size: 9px; letter-spacing: .06em; text-transform: none; }
.fm-lang-list button:hover, .fm-lang-list button[aria-current="true"] { opacity: 1; }
.fm-lang-list button[aria-current="true"] b { border-bottom: 1px solid currentColor; }
.fm-lang-btn:focus-visible, .fm-lang-list button:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
@media (max-width: 700px) {
  .fm-lang { margin-right: -6px; }
  .fm-lang-list { right: auto; left: 50%; transform: translate3d(-50%, -10px, 0); }
  .fm-lang.is-open .fm-lang-list { transform: translate3d(-50%, 0, 0); }
  .fm-lang-list button { padding: 4px 6px; }
  .fm-lang-list button span { display: none; }
}
@media (prefers-reduced-motion: reduce) { .fm-lang-list, .fm-lang.is-open .fm-lang-list { transition: none; } }

/* Every card keeps its column width: long words (German, Dutch…) wrap instead of widening one card */
.shop-grid > .pc, .dp-grid > .dp-tile, .pc-link { min-width: 0; }
.pc-t, .pc-c, .dp-name, .dp-tag { max-width: 100%; overflow-wrap: anywhere; hyphens: auto; }

/* Service page on phones and tablets: one column, the photo first and full width */
@media (max-width: 900px) {
  .fm-prod { grid-template-columns: minmax(0, 1fr); }
  .prod-media { grid-auto-columns: 100%; overflow: visible; }
  .prod-media .prod-img { aspect-ratio: 4 / 5; max-height: 72vh; }
}

/* ── Motion · 1: the seam. A dashed stitch is drawn round the photo on hover and closes when the service is in the basket ── */
.pc-ph { position: relative; width: 100%; }
.pc-ph .seam { position: absolute; inset: -6px; width: calc(100% + 12px); height: calc(100% + 12px); pointer-events: none; overflow: visible; }
.seam-thread { fill: none; stroke: var(--fm-green); stroke-width: 1.1; stroke-dasharray: 5 4; transition: stroke-width .3s; }
.seam-reveal { fill: none; stroke: #fff; stroke-width: 4; stroke-dasharray: 100 100; stroke-dashoffset: 100; transition: stroke-dashoffset .9s var(--fm-ease); transition-delay: var(--d, 0ms); }
@media (hover: hover) { .pc:hover .seam-reveal { stroke-dashoffset: 0; } }
.pc:focus-within .seam-reveal, .pc.is-in .seam-reveal { stroke-dashoffset: 0; }
.pc.is-in .seam-thread { stroke-dasharray: none; stroke-width: 1.4; }
.pc .pc-img img { transition: transform 1.2s var(--fm-ease); }
@media (hover: hover) { .pc:hover .pc-img img { transform: scale(1.04); } }
.shop-grid[data-view="8"] .pc-ph .seam { inset: -4px; width: calc(100% + 8px); height: calc(100% + 8px); }

/* ── Motion · 2: the photo flies to the basket ── */
.fm-flyer { position: fixed; z-index: 90; margin: 0; object-fit: cover; pointer-events: none; box-shadow: 0 10px 30px -10px rgba(0, 40, 40, .5); }
@media (prefers-reduced-motion: reduce) { .seam-reveal, .seam-thread, .pc .pc-img img { transition: none; } }

/* ── Motion · logo "sewn by hand": a dashed seam draws the frame, a needle runs across and fills the logo ── */

.fm-stitch .st-frame { position: absolute; inset: -9px -11px; width: calc(100% + 22px); height: calc(100% + 18px); overflow: visible; pointer-events: none; opacity: 0; }
.fm-stitch .st-frame .th { fill: none; stroke: currentColor; stroke-width: 1; stroke-dasharray: 4 3.5; }
.fm-stitch .st-frame .rv { fill: none; stroke: #fff; stroke-width: 6; stroke-dasharray: 100 100; stroke-dashoffset: 100; }
.fm-stitch .st-needle { position: absolute; top: -20%; height: 140%; width: 1px; background: currentColor; left: 0; opacity: 0; pointer-events: none; }
.fm-stitch .st-needle::before { content: ""; position: absolute; top: -4px; left: -2px; width: 5px; height: 5px; border-radius: 50%; border: 1px solid currentColor; }
.fm-stitch.st-go .st-frame { opacity: 1; animation: stFade .5s ease 2.2s forwards; }
.fm-stitch.st-go .st-frame .rv { animation: stDraw .8s var(--fm-ease) forwards; }
.fm-stitch.st-go .wordmark { clip-path: inset(0 100% 0 0); animation: stSew 1.4s cubic-bezier(.6, 0, .3, 1) .7s forwards; }
.fm-stitch.st-go .st-needle { animation: stNeedle 1.4s cubic-bezier(.6, 0, .3, 1) .7s both; }
@keyframes stDraw { to { stroke-dashoffset: 0; } }
@keyframes stSew { to { clip-path: inset(0 0 0 0); } }
@keyframes stNeedle { 0% { left: 0; opacity: 1; } 95% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
@keyframes stFade { to { opacity: 0; } }
.hs-logo.fm-stitch .st-frame { inset: -14px -18px; width: calc(100% + 36px); height: calc(100% + 28px); }
@media (prefers-reduced-motion: reduce) { .fm-stitch.st-go .st-frame, .fm-stitch.st-go .st-needle { display: none; } .fm-stitch.st-go .wordmark { animation: none; clip-path: none; } }

/* Brand rule: "fix machine" in running text uses the logo's type */
.fm-word { font-family: "Archivo", "Helvetica Neue", Arial, sans-serif; font-weight: 900; font-stretch: 100%; font-style: normal; text-transform: none; letter-spacing: -.035em; word-spacing: .1em; white-space: nowrap; font-variation-settings: normal; }
h1 .fm-word, h2 .fm-word { font-size: .86em; letter-spacing: -.04em; }

/* Inner pages: one header element, "← Back to" + the real logo (no duplicated brand) */
.cp-back, .a2-back, .pd-back { align-items: center; }
.back-mark { display: inline-block; width: 118px; aspect-ratio: 912 / 127; flex: none; }
@media (max-width: 760px) { .back-mark { width: 96px; } }

/* Chinese (/zh/): Chinese system fonts after the Latin faces, no slanted italics, no wide letter-spacing on CJK text */
:root:lang(zh) {
  --fm-sans: "Archivo", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --fm-serif: "Newsreader", "Songti SC", "Noto Serif SC", "Source Han Serif SC", "SimSun", serif;
}
:root:lang(zh) :is(h1, h2, h3, h4, p, em, i, li, a, span, b, blockquote) { font-style: normal; }
:root:lang(zh) body { line-break: strict; word-break: normal; }
