/* Polish layer on top of the editorial pass: statement, buttons, audience rows, menu and footer. */

/* Statement: words light up as the reader scrolls through it. */
.statement{background:#101F22;color:white;padding:clamp(110px,14vw,200px) 8vw;display:grid;grid-template-columns:1fr 2.4fr;gap:6vw;align-items:start}
.statement-label{font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#A6E5CA;position:sticky;top:120px}
.statement p{font:500 clamp(34px,4.4vw,72px)/1.08 Space,sans-serif;letter-spacing:-.035em;margin:0;max-width:20ch}
.statement .w{color:rgba(255,255,255,.18);transition:color .3s}
.statement .w.lit{color:white}
.statement .w.hl.lit{color:#A6E5CA}

/* Heading reveal used on the About page. */
.js-motion .rise{clip-path:inset(0 0 100% 0);transform:translateY(24px);transition:clip-path .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.js-motion .rise.shown{clip-path:inset(0 0 -10% 0);transform:none}

/* Buttons: one solid and one outline style, equal height, no glyphs. */
.opening-actions{gap:12px!important}
.opening-actions a,.action,.mandate-link,.menu-cta{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;font:600 16px/1 Manrope,sans-serif;letter-spacing:.01em;text-decoration:none;border:1.5px solid transparent;transition:background-color .2s,color .2s,border-color .2s,transform .2s cubic-bezier(.16,1,.3,1)}
.opening-actions a.primary-opening{background:#A6E5CA;color:#101F22;border-color:#A6E5CA}
.opening-actions a.primary-opening:hover{background:white;border-color:white}
.opening-actions a:not(.primary-opening){color:white;border-color:rgba(255,255,255,.55);background:rgba(16,31,34,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.opening-actions a:not(.primary-opening):hover{border-color:white;background:rgba(255,255,255,.12)}
.opening-actions a:hover,.action:hover,.mandate-link:hover{transform:translateY(-2px)}
.action:hover,.mandate-link:hover{background:#247059}

/* Audience rows: the hovered row turns ink, the others step back. */
.audience-rows{margin:0 -28px}
.audience-row{grid-template-columns:1.1fr 1fr 220px;padding:30px 28px;margin:0;transition:background-color .35s,color .35s,opacity .35s}
.audience-row>span{display:none}
.audience-row h3{transition:transform .45s cubic-bezier(.16,1,.3,1),color .35s}
.audience-row p{transition:color .35s}
.audience-row img{width:220px;height:136px;filter:grayscale(1);transition:filter .45s,transform .6s cubic-bezier(.16,1,.3,1)}
.audience-rows:hover .audience-row:not(:hover){opacity:.4}
.audience-row:hover,.audience-row:focus-visible{background:#101F22;color:white;border-color:#101F22}
.audience-row:hover h3,.audience-row:focus-visible h3{color:#A6E5CA;transform:translateX(12px)}
.audience-row:hover p,.audience-row:focus-visible p{color:#D2E4DC}
.audience-row:hover img,.audience-row:focus-visible img{filter:none;transform:scale(1.04)}

/* Closing routes: no arrows, a mint rule that grows on hover. */
.build-closing nav a{position:relative}
.build-closing nav a:after{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:#101F22;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.build-closing nav a:hover:after{transform:scaleX(1)}

/* Mobile toggle and menu. */
.mobile-toggle{align-items:center;gap:10px;font:600 15px Manrope,sans-serif;border-radius:0}
.menu-icon{width:18px;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor;display:inline-block}
.preview-menu{padding:0;height:100dvh}
.preview-menu[open]{display:flex;flex-direction:column}
.preview-menu .menu-head{display:flex;justify-content:space-between;align-items:center;height:88px;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.12)}
.preview-menu .menu-close{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);padding:0;display:grid;place-items:center;cursor:pointer}
.preview-menu .menu-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.preview-menu nav{padding:12px 24px 0;gap:0;align-items:stretch}
.preview-menu nav a{display:flex;align-items:baseline;gap:18px;font:500 34px/1 Space,sans-serif;letter-spacing:-.03em;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1);text-decoration:none;color:white}
.preview-menu nav a:after{display:none}
.preview-menu nav a small{font:600 12px Manrope,sans-serif;letter-spacing:.06em;color:#A6E5CA;min-width:22px}
.preview-menu nav a[aria-current=page]{color:#A6E5CA}
.preview-menu .menu-foot{margin-top:auto;padding:28px 24px 32px;display:grid;gap:16px;justify-content:stretch;align-items:start}
.preview-menu .menu-cta{background:#A6E5CA;color:#101F22}
.preview-menu .menu-email{color:white;opacity:.85;text-decoration:none;min-height:0;padding:0;font-size:16px}
.preview-menu .menu-foot p{margin:0;color:rgba(255,255,255,.5);font-size:14px}
.preview-menu[open] nav a{animation:menu-item .5s cubic-bezier(.16,1,.3,1) both}
.preview-menu[open] nav a:nth-child(2){animation-delay:.04s}.preview-menu[open] nav a:nth-child(3){animation-delay:.08s}
.preview-menu[open] nav a:nth-child(4){animation-delay:.12s}.preview-menu[open] nav a:nth-child(5){animation-delay:.16s}
.preview-menu[open] nav a:nth-child(6){animation-delay:.2s}
@keyframes menu-item{from{opacity:0;transform:translateY(14px)}}

/* Footer: introduction and contact, offices, navigation, then the brand signature. */
.site-footer{background:#101F22;color:white;padding:96px 8vw 0;overflow:hidden}
.sf-grid{display:grid;grid-template-columns:1fr 2.4fr .6fr;gap:6vw;padding-bottom:72px;border-bottom:1px solid rgba(255,255,255,.14)}
.sf-line{font:500 clamp(26px,2.2vw,34px)/1.18 Space,sans-serif;letter-spacing:-.025em;max-width:17ch;margin:0 0 48px}
.sf-label{font:600 12px Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#A6E5CA;margin:0 0 18px}
.sf-mail{display:inline-block;font:500 clamp(18px,1.4vw,21px) Space,sans-serif;color:white;text-decoration:none;padding-bottom:6px;border-bottom:1.5px solid #A6E5CA;transition:color .2s}
.sf-mail:hover{color:#A6E5CA}
.sf-offices{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 32px;align-content:start}
.sf-offices .sf-label{grid-column:1/-1;margin:0}
.sf-offices address{font-style:normal;font-size:15px;line-height:1.7;color:rgba(255,255,255,.68)}
.sf-offices b{display:block;font-weight:600;color:white;margin-bottom:6px}
.sf-nav{display:flex;flex-direction:column;align-items:start;gap:12px}
.sf-nav .sf-label{margin-bottom:6px}
.sf-nav a{color:rgba(255,255,255,.8);text-decoration:none;font-size:15px;line-height:1.5;min-height:0;padding:0;width:auto}
.sf-nav a:hover,.sf-nav a[aria-current=page]{color:#A6E5CA}
.sf-base{display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-size:13px;color:rgba(255,255,255,.5)}
.sf-base a{color:inherit;text-decoration:none}.sf-base a:hover{color:white}
.sf-sign{font:600 10.9vw/.8 Space,sans-serif;letter-spacing:-.055em;white-space:nowrap;margin:12px 0 0;padding-bottom:3.4vw;color:white;user-select:none}
.sf-sign span{color:#A6E5CA}

@media(max-width:1000px){
 .statement{grid-template-columns:1fr;gap:28px}
 .statement-label{position:static}
 .audience-rows{margin:0 -20px}
 .audience-row{grid-template-columns:1fr 1fr;padding:28px 20px}
 .sf-grid{grid-template-columns:1fr 1fr;gap:56px 6vw}
 .sf-intro{grid-column:1/-1}
 .mobile-toggle{display:inline-flex!important;padding:12px 16px!important}
}
@media(max-width:700px){
 .statement{padding:90px 24px}
 .statement p{font-size:clamp(30px,8.4vw,44px)}
 .opening-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%}
 .opening-actions a{padding:0 16px;font-size:15px}
 .audience-rows{margin:0 -24px}
 .audience-row{grid-template-columns:1fr;padding:26px 24px}
 .audience-rows:hover .audience-row:not(:hover){opacity:1}
 .site-footer{padding:72px 24px 0}
 .sf-grid{grid-template-columns:1fr;gap:48px;padding-bottom:48px}
 .sf-line{margin-bottom:36px}
 .sf-offices{grid-template-columns:1fr 1fr;gap:24px}
 .sf-offices address:first-of-type{grid-column:1/-1}
 .sf-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
 .sf-nav .sf-label{grid-column:1/-1}
 .sf-sign{font-size:11.4vw;padding-bottom:3vw}
}
@media(prefers-reduced-motion:reduce){
 .statement .w{color:white}.statement .w.hl{color:#A6E5CA}
 .preview-menu[open] nav a{animation:none}
}
