/* Shared chrome measured from the accepted Stitch desktop and mobile screens. */
.material-symbols-outlined {
    font-family:"Material Symbols Outlined";
    font-weight:400;
    font-style:normal;
    font-size:24px;
    line-height:1;
    letter-spacing:normal;
    text-transform:none;
    display:inline-block;
    white-space:nowrap;
    word-wrap:normal;
    direction:ltr;
    -webkit-font-feature-settings:"liga";
    -webkit-font-smoothing:antialiased;
}
body { padding-top:var(--header-height); }
.site-header { position:fixed; inset:0 0 auto; z-index:50; background:rgba(255,255,255,.9); border-bottom:1px solid #ebebea; backdrop-filter:blur(12px); }
.header-inner { width:100%; max-width:1440px; height:80px; padding:0 56px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:0; }
.brand { display:block; width:auto; flex-shrink:0; padding:8px 0; }
.brand img { width:auto; height:32px; max-width:240px; object-fit:contain; }
.desktop-nav { display:flex; align-items:center; gap:40px; }
.desktop-nav a { font-size:16px; font-weight:700; line-height:24px; letter-spacing:.025em; padding:10px 0; white-space:nowrap; }
.desktop-nav a:hover,.desktop-nav a[aria-current] { color:#ff6f00; }
.header-contact { display:inline-flex; justify-content:center; align-items:center; padding:12px 24px; border-radius:9999px; font-size:15px; line-height:22.5px; font-weight:700; color:white; background:#111; white-space:nowrap; box-shadow:0 1px 2px #0000000d; }
.header-contact:hover { background:#ff6f00; }
.menu-toggle { display:none; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:44px; height:44px; background:transparent; border:0; padding:0; }
.menu-toggle .material-symbols-outlined { font-size:28px; }
.mobile-menu { position:fixed; inset:0; z-index:60; height:100dvh; overflow-y:auto; padding:16px; background:#131313fa; color:#e5e2e1; backdrop-filter:blur(40px); display:flex; flex-direction:column; justify-content:space-between; font-family:"Noto Sans",sans-serif; }
.mobile-menu-heading { display:flex; align-items:center; justify-content:space-between; padding-bottom:16px; }
.mobile-menu-heading>div { display:flex; align-items:center; gap:12px; font:600 20px/28px "Syne",sans-serif; }
.mobile-menu-mark { display:block; width:28px; height:28px; overflow:hidden; }
.mobile-menu-mark img { width:auto; max-width:none; height:28px; }
.menu-close { border:0; background:none; color:inherit; width:44px; height:44px; padding:0; display:grid; place-items:center; }
.menu-close .material-symbols-outlined { font-size:28px; }
.mobile-menu-links { display:flex; flex-direction:column; gap:8px; margin-block:auto; }
.mobile-menu-links a { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 0; min-height:44px; font:600 16px/24px "Syne","Noto Sans",sans-serif; letter-spacing:-.025em; }
.mobile-menu-index { color:#c6c7c499; font:600 12px/16px "Space Grotesk",sans-serif; letter-spacing:.08em; }
.mobile-menu-links .material-symbols-outlined { font-size:18px; }
.mobile-menu-links a:hover,.mobile-menu-links a[aria-current] { color:#ff7f0f; }
.mobile-menu-links .mobile-menu-external { color:#ffb689; }
.mobile-menu-external .mobile-menu-index { color:#ffb68999; }
.mobile-menu-bottom { padding-top:16px; display:flex; flex-direction:column; gap:4px; }
.mobile-menu-bottom a { color:#c8c6c5; font:600 16px/24px "Space Grotesk",sans-serif; letter-spacing:.08em; }
.mobile-menu-bottom small { font:400 14px/21px "Noto Sans",sans-serif; color:#c6c7c499; }
/* Replay the entrance on every open; hidden continues to control focus and visibility. */
@media (prefers-reduced-motion:no-preference) {
    .mobile-menu:not([hidden]) { animation:menu-reveal .36s ease-out both; }
    .mobile-menu:not([hidden]) .mobile-menu-links a { animation:menu-item-reveal .45s cubic-bezier(.22,1,.36,1) both; animation-delay:var(--menu-delay,.06s); }
    .mobile-menu-links a:nth-child(2) { --menu-delay:.10s; }
    .mobile-menu-links a:nth-child(3) { --menu-delay:.14s; }
    .mobile-menu-links a:nth-child(4) { --menu-delay:.18s; }
    .mobile-menu-links a:nth-child(5) { --menu-delay:.22s; }
    .mobile-menu-links a:nth-child(6) { --menu-delay:.26s; }
    .mobile-menu:not([hidden]) .mobile-menu-bottom { animation:menu-item-reveal .45s .28s cubic-bezier(.22,1,.36,1) both; }
}
@keyframes menu-reveal {
    from { opacity:0; }
    to { opacity:1; }
}
@keyframes menu-item-reveal {
    from { opacity:0; transform:translateY(18px); }
    to { opacity:1; transform:translateY(0); }
}
.site-footer { padding:64px 0; background:#111; color:white; border-top:1px solid #222; }
.footer-top,.footer-bottom { max-width:1328px; width:calc(100% - 112px); margin:auto; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:40px; padding-bottom:48px; border-bottom:1px solid #262626; }
.site-footer .brand img { filter:none; }
.site-footer .brand { display:inline-block; padding:0; }
.footer-logo { line-height:24px; }
.footer-top nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:32px; max-width:none; font-size:15px; font-weight:500; color:#d1d1d1; }
.footer-top a:hover { color:#ff6f00; }
.footer-bottom { border:0; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:32px 0 0; color:#777; font:14px/21px "Space Grotesk",sans-serif; }
.footer-bottom small { font:inherit; }
.footer-bottom a:hover { color:white; }
.footer-arrow { display:none; }
.footer-privacy-long,.footer-x-icon,.footer-x-handle { display:none; }
.footer-bottom-privacy,.footer-bottom-privacy-en,.footer-bottom-note { display:none; }
.post-type-archive-member .footer-bottom-privacy,.single-member .footer-bottom-privacy { display:inline; }
.admin-bar .site-header { top:32px; }
@media (min-width:1440px) { .footer-top,.footer-bottom { max-width:1328px; } }
@media (max-width:1199px) {
    .header-inner { padding-inline:40px; }
    .desktop-nav { gap:20px; }
    .header-contact { padding-inline:18px; }
    .footer-top,.footer-bottom { width:calc(100% - 80px); }
    .footer-top { flex-direction:column; align-items:flex-start; }
    .footer-top nav { justify-content:flex-start; }
}
@media (max-width:1023px) { .desktop-nav { display:none; } .menu-toggle { display:flex; } .header-contact { margin-left:auto; margin-right:24px; } }
@media (max-width:767px) {
    :root { --header-height:64px; }
    .site-header { background:#fcfcfce6; border-color:#e5e5e5; }
    .header-inner { height:64px; padding:0 16px; gap:16px; }
    .brand img { height:28px; max-width:190px; }
    .header-contact { display:none; }
    .site-footer { padding:40px 20px 48px; background:#f5f5f5; border-top-color:#e5e5e5; color:#111; }
    .footer-top,.footer-bottom { width:100%; max-width:none; }
    .footer-top { display:block; padding:0; border:0; }
    .site-footer .brand { padding:0; margin-bottom:24px; }
    .footer-logo { line-height:0; }
    .site-footer .brand img { height:24px; filter:none; }
    .footer-top nav { display:flex; flex-direction:column; align-items:stretch; gap:0; border-top:1px solid #e5e5e5; margin-bottom:32px; color:#111; font-size:16px; font-weight:600; }
    .footer-top nav a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; border-bottom:1px solid #e5e5e5; }
    .footer-arrow { display:inline-block; font-size:18px; color:#a3a3a3; }
    .footer-bottom { padding:0; display:block; font-size:14px; line-height:21px; }
    .footer-bottom>a { display:none; }
    .home .footer-top nav { font-size:15px; border-bottom:1px solid #e5e5e5; }
    .home .footer-privacy { order:1; font-size:14px; font-weight:500; color:#525252; }
    .home .footer-privacy-long,.home .footer-x-handle { display:inline; }
    .home .footer-copyright-full { display:none; }
    .home .footer-bottom { font-size:13px; line-height:19.5px; }
    .admin-bar .site-header { top:46px; }
}
@media (max-width:600px) { .admin-bar .site-header { top:0; } }
