.fm-section, .fm-site-header, .fm-site-footer { --fm-bg:#f5f5f5; --fm-heading:#323c4d; --fm-label:#666e7d; --fm-primary:#1d2736; --fm-primary-hover:#485261; --fm-tag-bg:#eff1f6; --fm-border:#e2e5e9; --fm-radius:.7rem; --fm-content:1152px; color:var(--fm-heading); font-family:"Inter Tight",Arial,sans-serif; }
.fm-section *, .fm-site-header *, .fm-site-footer * { box-sizing:border-box; }
.fm-section { width:min(calc(100% - 40px),var(--fm-content)); margin-inline:auto; }
.fm-section img { max-width:100%; height:auto; }
.fm-section-heading { position:relative; z-index:1; display:flex; flex-direction:column; gap:.35rem; color:var(--fm-heading); }
.fm-section-heading--center { align-items:center; text-align:center; }
.fm-section-heading--left { align-items:flex-start; text-align:left; }
.fm-section-heading--right { align-items:flex-end; text-align:right; }
.fm-section-heading .fm-badge, .fm-badge { display:inline-flex; width:fit-content; align-items:center; justify-content:center; gap:.45rem; padding:.25rem 1.5rem; border-radius:999px; background:var(--fm-tag-bg); color:var(--fm-label); font-size:.875rem; font-weight:500; line-height:1.4; }
.fm-badge__icon { width:12px; height:12px; object-fit:contain; }
.fm-section-heading__title { max-width:850px; margin:.4rem 0 0; color:var(--fm-heading); font-weight:600; letter-spacing:-.02em; }
.fm-section-heading--sm .fm-section-heading__title { font-size:clamp(1.3rem,3vw,1.6rem); }
.fm-section-heading--md .fm-section-heading__title { font-size:clamp(2rem,4vw,2.55rem); line-height:1.12; }
.fm-section-heading--lg .fm-section-heading__title { font-size:clamp(2.5rem,5vw,3.2rem); line-height:1.1; }
.fm-section-heading--xl .fm-section-heading__title { font-size:clamp(3rem,7vw,5rem); line-height:1; }
.fm-section-heading__description { max-width:760px; margin:.25rem 0 0; color:var(--fm-label); font-size:1rem; line-height:1.5; }
.fm-section-heading__description p { margin:0; }
.fm-section-heading__description p + p { margin-top:.45rem; }
.fm-button { display:inline-flex; min-height:40px; align-items:center; justify-content:center; padding:.6rem 1rem; border:1px solid var(--fm-primary); border-radius:.55rem; background:var(--fm-primary); color:#fff; font:inherit; font-size:.9rem; line-height:1; text-decoration:none; cursor:pointer; transition:background .2s,color .2s,transform .2s,box-shadow .2s; }
.fm-button:hover { background:var(--fm-primary-hover); color:#fff; }
.fm-button--outline { border-color:var(--fm-border); background:transparent; color:var(--fm-label); }
.fm-button--outline:hover { border-color:var(--fm-primary); background:transparent; color:var(--fm-primary); box-shadow:0 5px 14px rgba(29,39,54,.08); }

.fm-hero { padding:140px 20px 64px; text-align:center; }
.fm-hero .fm-section-heading__title { max-width:720px; }
.fm-hero__actions { display:flex; justify-content:center; gap:.75rem; margin-top:2rem; }
.fm-logo-marquee { position:relative; overflow:hidden; margin-top:3.5rem; }
.fm-logo-marquee__track { display:flex; width:max-content; gap:1.25rem; animation:fm-marquee 70s linear infinite; }
.fm-logo-marquee:hover .fm-logo-marquee__track { animation-play-state:paused; }
.fm-logo-marquee__item { display:flex; width:145px; height:64px; flex:0 0 auto; align-items:center; justify-content:center; padding:1rem; }
.fm-logo-marquee__item img { max-width:100%; max-height:100%; object-fit:contain; filter:grayscale(1); opacity:.78; transition:filter .2s,opacity .2s; }
.fm-logo-marquee__item img:hover { filter:none; opacity:1; }
.fm-logo-marquee__fade { position:absolute; inset-block:0; z-index:2; width:150px; pointer-events:none; }
.fm-logo-marquee__fade--left { left:0; background:linear-gradient(90deg,var(--fm-bg),transparent); }
.fm-logo-marquee__fade--right { right:0; background:linear-gradient(-90deg,var(--fm-bg),transparent); }
@keyframes fm-marquee { to { transform:translateX(calc(-50% - .625rem)); } }

.fm-about { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; padding-block:8rem; }
.fm-about__column { display:flex; flex-direction:column; }
.fm-about__column--first { gap:6rem; }
.fm-about__column--second { gap:3rem; padding-top:12rem; }
.fm-about__copy { padding-right:2rem; }
.fm-about__copy h2 { margin:0 0 2rem; font-size:clamp(2.7rem,5vw,3.75rem); line-height:1.05; letter-spacing:-.025em; }
.fm-about__copy p, .fm-about__secondary p { margin:.5rem 0; color:var(--fm-label); line-height:1.65; }
.fm-about__secondary { padding:0 2rem; }
.fm-about__secondary h3 { margin:0 0 1.2rem; font-size:1.6rem; }
.fm-about__images { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin:0; }
.fm-about__images img { display:block; width:100%; border-radius:.65rem; object-fit:cover; }
.fm-about__images img:first-child { grid-row:span 2; height:100%; aspect-ratio:.7; }
.fm-about__images img:nth-child(2) { aspect-ratio:1.1; }
.fm-about__images img:nth-child(3) { aspect-ratio:.7; }
.fm-about__images--two img:first-child { aspect-ratio:.9; }
.fm-about__images--two img:nth-child(2) { aspect-ratio:.8; }
.fm-about__images--two img:nth-child(3) { aspect-ratio:.9; background:#000; object-fit:contain; }

.fm-companies { width:min(calc(100% - 40px),1280px); padding-block:4rem 6rem; }
.fm-companies > .fm-section-heading { margin-bottom:3.5rem; }
.fm-companies__list { display:grid; gap:6rem; }
.fm-company-card { display:grid; grid-template-columns:5fr 7fr; gap:3rem; padding:1rem; border-radius:var(--fm-radius); }
.fm-company-card__content { display:flex; align-items:flex-start; flex-direction:column; gap:1.2rem; }
.fm-company-card img.fm-company-card__logo { inline-size:auto; width:auto; max-width:136px; block-size:26px; height:26px; object-fit:contain; object-position:left center; }
.fm-company-card h3 { margin:0; padding-right:1rem; font-size:clamp(1.55rem,3vw,1.9rem); line-height:1.15; }
.fm-company-card__description { color:var(--fm-label); font-size:.95rem; line-height:1.55; }
.fm-company-card__description p { margin:0; }
.fm-company-card__gallery { min-width:0; aspect-ratio:4/3; }
.fm-carousel { position:relative; height:100%; border-radius:var(--fm-radius); }
.fm-carousel__viewport { height:100%; overflow:hidden; border-radius:inherit; }
.fm-carousel__track { display:flex; height:100%; transition:transform .5s cubic-bezier(.2,.65,.3,1); }
.fm-carousel__slide { min-width:100%; height:100%; aspect-ratio:var(--fm-carousel-ratio,4/3); }
.fm-carousel__slide img { display:block; width:100%; height:100%; border-radius:var(--fm-radius); object-fit:cover; }
.fm-carousel__button, .fm-partner-carousel__button { position:absolute; z-index:3; top:50%; display:inline-grid; width:38px; height:38px; place-items:center; padding:0; border:0; border-radius:50%; background:rgba(72,82,97,.62); color:#fff; cursor:pointer; transform:translateY(-50%); }
.fm-carousel__button--prev { left:.75rem; }
.fm-carousel__button--next { right:.75rem; }

.fm-partners { padding-block:1rem 5rem; }
.fm-partners > .fm-section-heading { margin-bottom:3rem; }
.fm-partner-carousel { position:relative; }
.fm-partner-carousel::before,.fm-partner-carousel::after { content:""; position:absolute; inset-block:0; z-index:2; width:120px; pointer-events:none; }
.fm-partner-carousel::before { left:0; background:linear-gradient(90deg,var(--fm-bg),transparent); }
.fm-partner-carousel::after { right:0; background:linear-gradient(-90deg,var(--fm-bg),transparent); }
.fm-partner-carousel__viewport { overflow:hidden; }
.fm-partner-carousel__track { display:flex; gap:1.5rem; transition:transform .5s cubic-bezier(.2,.65,.3,1); }
.fm-partner-carousel__slide { min-width:calc((100% - 4.5rem)/4); }
.fm-partner-card { display:block; color:inherit; text-align:left; text-decoration:none; }
.fm-partner-card__image { display:flex; aspect-ratio:1; align-items:center; justify-content:center; padding:1rem; border-radius:.55rem; background:var(--fm-tag-bg); }
.fm-partner-card__image img { max-width:100%; max-height:100%; object-fit:contain; }
.fm-partner-card p { margin:.75rem 0 0; color:var(--fm-heading); font-size:1rem; }
.fm-partner-carousel__button--prev { left:0; }
.fm-partner-carousel__button--next { right:0; }

.fm-recognitions { padding-block:8rem; }
.fm-recognitions > .fm-section-heading { margin-bottom:3.4rem; }
.fm-recognition-grid { display:grid; grid-template-columns:repeat(var(--fm-columns,3),minmax(0,1fr)); gap:2.6rem 1.5rem; }
.fm-recognition-card h3 { margin:0; color:var(--fm-primary); font-size:1.25rem; font-weight:500; line-height:1.2; }
.fm-recognition-card__meta { display:flex; align-items:center; gap:1.25rem; margin-top:.8rem; color:var(--fm-label); font-size:.875rem; }
.fm-recognition-card__meta span { padding:.18rem .55rem; border-radius:999px; background:var(--fm-tag-bg); color:var(--fm-primary); font-size:.78rem; }

.fm-board { padding-block:5.5rem; }
.fm-board > .fm-section-heading { margin-bottom:3rem; }
.fm-board-grid { display:grid; grid-template-columns:repeat(var(--fm-columns,4),minmax(0,1fr)); gap:1.5rem; }
.fm-board-card { overflow:hidden; border:1px solid var(--fm-border); border-radius:1rem; background:rgba(255,255,255,.4); transition:transform .25s,box-shadow .25s; }
.fm-board-card:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(29,39,54,.08); }
.fm-board-card__portrait { aspect-ratio:4/5; overflow:hidden; background:var(--fm-tag-bg); }
.fm-board-card__portrait img { width:100%; height:100%; object-fit:cover; }
.fm-board-card__body { padding:1.15rem; }
.fm-board-card h3 { margin:0; font-size:1.2rem; line-height:1.15; }
.fm-board-card__role { margin:.35rem 0 0; color:var(--fm-label); font-size:.9rem; }
.fm-board-card__description { margin-top:.85rem; color:var(--fm-label); font-size:.88rem; }
.fm-board__action { margin-top:2rem; text-align:center; }

.fm-updates { padding-block:8rem 6rem; }
.fm-updates > .fm-section-heading { margin-bottom:3.4rem; }
.fm-updates .fm-update-grid { grid-template-columns:repeat(var(--fm-columns,3),minmax(0,1fr)); }
.fm-update-grid { display:grid; gap:2.8rem 1.5rem; }
.fm-update-card__link { display:block; color:inherit; text-decoration:none; }
.fm-update-card__image { aspect-ratio:16/10; overflow:hidden; border-radius:.7rem; background:var(--fm-tag-bg); }
.fm-update-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.fm-update-card__link:hover img { transform:scale(1.035); }
.fm-update-card h3 { margin:1rem 0 .55rem; color:var(--fm-primary); font-size:1.25rem; line-height:1.2; }
.fm-update-card__meta { display:flex; gap:.75rem; color:var(--fm-label); font-size:.82rem; }
.fm-update-card__meta span { padding:.08rem .45rem; border-radius:999px; background:var(--fm-tag-bg); }
.fm-update-card p { margin:.75rem 0 0; color:var(--fm-label); font-size:.9rem; line-height:1.5; }
.fm-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:.45rem; margin-top:3.5rem; }
.fm-pagination .page-numbers { display:inline-flex; min-width:40px; min-height:40px; align-items:center; justify-content:center; border:1px solid var(--fm-border); border-radius:.5rem; color:var(--fm-primary); text-decoration:none; }
.fm-pagination .current { border-color:var(--fm-primary); background:var(--fm-primary); color:#fff; }
.fm-related-updates { padding:0 0 6rem; }
.fm-related-updates > .fm-section-heading { margin-bottom:2rem; }

.fm-contact { padding-block:4rem 6rem; }
.fm-contact > .fm-section-heading { margin-bottom:3rem; }
.fm-contact__grid { display:grid; grid-template-columns:1fr 2fr; gap:2rem; }
.fm-contact-form { display:flex; flex-direction:column; gap:1.25rem; }
.fm-contact-form > div:not(.fm-contact-form__terms) { display:flex; flex-direction:column; gap:.45rem; }
.fm-contact-form label { color:var(--fm-heading); font-size:.94rem; font-weight:500; }
.fm-contact-form input[type="text"],.fm-contact-form input[type="email"],.fm-contact-form textarea { width:100%; min-height:44px; padding:.7rem .75rem; border:1px solid #d9dde3; border-radius:.5rem; background:rgba(255,255,255,.5); color:var(--fm-heading); font:inherit; }
.fm-contact-form textarea { min-height:150px; resize:vertical; }
.fm-contact-form input:focus,.fm-contact-form textarea:focus { border-color:var(--fm-primary); outline:2px solid rgba(29,39,54,.13); outline-offset:1px; }
.fm-contact-form__terms { display:flex; align-items:flex-start; gap:.6rem; color:var(--fm-label); }
.fm-contact-form__terms input { margin-top:.25rem; }
.fm-contact-form .fm-button { width:100%; }
.fm-contact-form__status { min-height:1.5em; margin:0; color:var(--fm-label); font-size:.88rem; }
.fm-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; opacity:0!important; }
.fm-contact__visual { position:relative; min-height:520px; overflow:hidden; border-radius:1rem; background-position:center; background-size:cover; }
.fm-contact__visual::before { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(20,27,38,.68),transparent 65%); }
.fm-contact__quote { position:absolute; right:1.5rem; bottom:1.5rem; left:1.5rem; padding:1rem; border:1px solid rgba(255,255,255,.12); border-radius:.7rem; background:rgba(255,255,255,.08); color:#fff; backdrop-filter:blur(10px); }
.fm-contact__quote img { width:auto; height:28px; }
.fm-contact__quote blockquote { margin:1rem 0; font-size:1.15rem; font-weight:500; font-style:italic; line-height:1.3; }
.fm-contact__quote p { margin:0; font-size:.9rem; }
.fm-contact__quote span { color:#d2d6dc; }

.fm-reveal-ready [data-fm-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
.fm-reveal-ready [data-fm-reveal].is-visible { opacity:1; transform:none; }

@media (max-width:1023px) {
  .fm-about { gap:2rem; }
  .fm-company-card { gap:2rem; }
  .fm-partner-carousel__slide { min-width:calc((100% - 1.5rem)/2); }
  .fm-board-grid { grid-template-columns:repeat(min(var(--fm-columns,4),2),minmax(0,1fr)); }
  .fm-contact__visual { min-height:460px; }
}
@media (max-width:767px) {
  .fm-section { width:min(calc(100% - 32px),var(--fm-content)); }
  .fm-hero { padding:116px 4px 50px; }
  .fm-hero__actions { flex-direction:column; }
  .fm-hero__actions .fm-button { width:100%; }
  .fm-logo-marquee__fade { width:48px; }
  .fm-about { grid-template-columns:1fr; padding-block:5rem; }
  .fm-about__column--first { gap:3.5rem; }
  .fm-about__column--second { gap:3rem; padding-top:0; }
  .fm-about__copy,.fm-about__secondary { padding:0; }
  .fm-about__images { gap:1rem; }
  .fm-company-card { grid-template-columns:1fr; padding:.25rem; }
  .fm-companies__list { gap:4.5rem; }
  .fm-company-card__gallery { aspect-ratio:4/3; }
  .fm-partner-carousel__slide { min-width:80%; }
  .fm-partner-carousel::before,.fm-partner-carousel::after { width:42px; }
  .fm-recognition-grid { grid-template-columns:1fr; gap:2rem; }
  .fm-board-grid { grid-template-columns:1fr; }
  .fm-updates .fm-update-grid { grid-template-columns:1fr; }
  .fm-contact__grid { grid-template-columns:1fr; }
  .fm-contact__visual { min-height:390px; }
}
@media (prefers-reduced-motion:reduce) {
  .fm-logo-marquee__track { animation:none; }
  .fm-reveal-ready [data-fm-reveal] { opacity:1; transform:none; }
  .fm-carousel__track,.fm-partner-carousel__track { transition:none; }
}
