/* Fabrica interactions measured on fabrica.framer.media (24.09.2026):
   - CTA hover: label rolls down to a copy with a light spring (~3px overshoot, ~0.3s),
     the pill lightens slightly, no lift.
   - Menu: white sheet from the top, header links hidden, 60px entries that roll up on
     hover, contact bottom left, legal centre, copyright right. */
:root{--roll-spring:cubic-bezier(.3,1.35,.55,1)}

/* CTA label roll (markup from build-release rollCtas). */
.btn-roll{position:relative;display:block;overflow:hidden;line-height:1.25}
.btn-roll>span{display:block;transition:transform .45s var(--roll-spring)}
.btn-roll>span+span{position:absolute;left:0;right:0;top:-100%}
.pill-button,.pill-button:hover{transform:none}
.pill-button{transition:background-color .35s ease}
.pill-button .btn-roll,.pill-button:hover .btn-roll,.round-link .btn-roll,.round-link:hover .btn-roll{transform:none}
.pill-button:hover{background:#2a2a2a}
.pill-button.light:hover{background:#e8e8e8}
@media(hover:hover){
 .pill-button:hover .btn-roll>span,.pill-button:focus-visible .btn-roll>span,
 .round-link:hover .btn-roll>span,.round-link:focus-visible .btn-roll>span{transform:translateY(100%)}
}

/* Menu entries roll up to their copy on hover. */
.menu-roll{display:block;overflow:hidden;height:1.2em;line-height:1.2em}
.menu-roll>span{display:block;transition:transform .45s var(--roll-spring)}
.menu a:hover,.menu button:hover{opacity:1}
@media(hover:hover){.menu a:hover .menu-roll>span,.menu button:hover .menu-roll>span,.menu a:focus-visible .menu-roll>span,.menu button:focus-visible .menu-roll>span{transform:translateY(-100%)}}

/* Open menu: the bar turns white and keeps only logo and toggle. */
.navigation{transition:background-color .45s cubic-bezier(.22,1,.36,1)}
.navigation:has(.menu-toggle[aria-expanded=true]){background:#fff}
.navigation nav{transition:opacity .35s ease}
.navigation:has(.menu-toggle[aria-expanded=true]) nav>*{opacity:0;pointer-events:none;transition:opacity .25s ease}
.navigation nav>*{transition:opacity .35s ease .1s}

@media(min-width:810px){
 .menu{inset:0 0 auto;padding:128px 36px 34px;background:#fff;box-shadow:0 40px 60px -40px #0002;max-height:none;overflow:visible}
 .menu:not([hidden]){justify-items:center}
 .menu>a,.menu>button{font-size:60px;font-weight:600;line-height:1.2;letter-spacing:-.06em}
 .menu>.menu-contact{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;justify-self:stretch;width:100%;margin-top:112px;text-align:left}
 .menu .menu-contact a{font-size:18px;font-weight:500;line-height:1.3;letter-spacing:-.04em}
 .menu .menu-contact>a:first-child{grid-column:1;grid-row:1;margin-bottom:6px}
 .menu .menu-contact .menu-mail{grid-column:1;grid-row:2;justify-self:start;display:inline-flex;align-items:center;gap:10px;font-size:34px;font-weight:600;letter-spacing:-.05em;line-height:1.1;border-bottom:2px solid currentColor;padding-bottom:2px}
 .menu-plus{position:relative;flex:none;width:20px;height:20px;border-radius:50%;background:#111}
 .menu-plus:before,.menu-plus:after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.6px;background:#fff;transform:translate(-50%,-50%)}
 .menu-plus:after{transform:translate(-50%,-50%) rotate(90deg)}
 .menu-legal{grid-column:2;grid-row:2;display:flex;gap:40px;align-self:center}
 .menu .menu-legal a{font-size:15px}
 .menu .menu-legal a:hover,.menu .menu-contact>a:hover{opacity:.55}
 .menu-contact small{grid-column:3;grid-row:2;justify-self:end;align-self:center;font-size:14px;font-weight:500;letter-spacing:-.04em;color:#0a0a0a}
}
@media(prefers-reduced-motion:reduce){.btn-roll>span,.menu-roll>span,.navigation,.navigation nav>*{transition:none}}
