/* Fonts matched to the Fine Fellows website, namespaced to this widget. */
@font-face{font-family:"FFCS Heading";src:url("fonts/heading.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"FFCS Text";src:url("fonts/body-light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"FFCS Text";src:url("fonts/body-medium.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"FFCS Text";src:url("fonts/body-bold.ttf") format("truetype");font-weight:500 900;font-style:normal;font-display:swap}
/* Fine Fellows Characters. Styles are scoped to the widget. */
.elementor-widget-ff-character-section { width:100%; min-width:0; }
.elementor-widget-ff-character-section > .elementor-widget-container { overflow:visible; }
.ffcs {
  --ff-height:100svh; --ff-header:0px; --ff-visual-share:50%; --ff-content-max:610px;
  --ff-visual-bg:#2D3A50; --ff-content-bg:#0366C6; --ff-title:#FB8895; --ff-ink:#FFFFFF; --ff-muted:#FFFFFF; --ff-site-name:93px; --ff-name-cqw:19cqw; --ff-default-order:0;
  --ff-accent:#FB8895; --ff-line:rgba(255,255,255,.28); --ff-hover:rgba(255,255,255,.18);
  --ff-art-width:100%; --ff-art-height:100%; --ff-zoom:100; --ff-origin-x:50%; --ff-origin-y:50%; --ff-fit:cover; --ff-framing:trim; --ff-crop-top:0%; --ff-crop-right:0%; --ff-crop-bottom:0%; --ff-crop-left:0%; --ff-art-scale:1; --ff-art-x:0%; --ff-art-y:0%; --ff-art-rotate:0deg;
  --ff-content-gap:18px; --ff-service-cols:2; --ff-service-gap:14px; --ff-icon-size:20px;
  --ff-mobile-visual-height:100svh; --ff-motion:scroll; --ff-pin:0; --ff-pin-distance:130vh;
  --ff-word-color:rgba(255,255,255,.1);
  position:relative; width:100%; max-width:none; isolation:isolate; color:var(--ff-ink); font-family:"FFCS Text","Fine-T",Arial,sans-serif; font-weight:300;
}
.ffcs--scout { --ff-visual-bg:#2D3A51; --ff-content-bg:#FCF202; --ff-title:#FB8895; --ff-ink:#0C0C0C; --ff-muted:#0C0C0C; --ff-line:rgba(12,12,12,.24); --ff-site-name:131px; --ff-name-cqw:26cqw; --ff-default-order:2; }
.ffcs--vision { --ff-content-bg:#FA005C; --ff-title:#FCF202; --ff-ink:#FFFFFF; --ff-muted:#FFFFFF; --ff-accent:#FCF202; --ff-site-name:127px; --ff-name-cqw:25cqw; }
.ffcs--gloom { --ff-content-bg:#FB8895; --ff-title:#2D3A50; --ff-ink:#2D3A51; --ff-muted:#2D3A51; --ff-accent:#2D3A50; --ff-line:rgba(45,58,80,.24); --ff-site-name:121px; --ff-name-cqw:24cqw; --ff-default-order:2; }
.ffcs--custom { --ff-content-bg:#f3f1e9; --ff-visual-bg:#2D3A50; --ff-title:#2D3A50; --ff-ink:#2D3A50; --ff-muted:#2D3A50; --ff-line:rgba(45,58,80,.24); }
.ffcs, .ffcs * { box-sizing:border-box; }
.ffcs .ffcs-track { position:relative; }
.ffcs .ffcs-stage {
  --ff-media-basis:var(--ff-visual-share); --ff-content-basis:calc(100% - var(--ff-visual-share)); --ff-visual-min:0px; --ff-stack:0;
  display:flex; flex-direction:row; position:relative; height:max(0px,calc(var(--ff-height) - var(--ff-header))); min-height:0;
  overflow:visible; background:var(--ff-content-bg);
}
.ffcs.ffcs--pinned .ffcs-stage { position:sticky; top:var(--ff-header); }
.ffcs .ffcs-visual-track { display:flex; flex-direction:column; flex:0 0 var(--ff-media-basis); min-width:0; position:relative; order:var(--ff-default-order); border-radius:inherit; }
.ffcs .ffcs-visual {
  display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-width:0; flex-shrink:0;
  position:relative; overflow:hidden; overflow:clip; contain:paint; background:var(--ff-visual-bg);
  border:0 solid var(--ff-line); isolation:isolate; border-radius:inherit;
}
.ffcs.ffcs--stacked .ffcs-stage { height:auto; min-height:0; }
.ffcs.ffcs--stacked .ffcs-visual-track { flex-basis:auto; }
.ffcs.ffcs--stacked .ffcs-visual { height:max(1px,calc(var(--ff-mobile-visual-height) - var(--ff-header))); }
.ffcs.ffcs--stacked .ffcs-content { height:auto; min-height:max(0px,calc(var(--ff-height) - var(--ff-header))); overflow:visible; }
.ffcs.ffcs--stacked.ffcs--visual-pinned .ffcs-visual { position:sticky; top:var(--ff-header); }
.ffcs .ffcs-content {
  display:flex; flex-direction:column; justify-content:safe center; align-items:center; flex:1 1 var(--ff-content-basis);
  min-width:0; min-height:0; height:100%; overflow-y:auto; overscroll-behavior:auto; padding:clamp(24px,4vw,60px); background:var(--ff-content-bg); border-radius:inherit; order:1;
}
.ffcs .ffcs-copy { width:100%; max-width:var(--ff-content-max); display:flex; flex-direction:column; gap:var(--ff-content-gap); flex-shrink:0; container-type:inline-size; }
.ffcs .ffcs-meta { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.ffcs .ffcs-eyebrow { font-size:12px; font-weight:700; letter-spacing:.11em; line-height:1.5; text-transform:uppercase; }
.ffcs .ffcs-number { font-size:13px; font-weight:600; line-height:1; font-variant-numeric:tabular-nums; }
.ffcs .ffcs-name {
  margin:0; padding:0; color:var(--ff-title); font-family:"FFCS Heading","Fine-H",Arial,sans-serif;
  font-weight:800; font-size:min(var(--ff-site-name),var(--ff-name-cqw)); line-height:1.2;
  letter-spacing:-.027em; text-transform:uppercase; overflow-wrap:anywhere;
}
.ffcs .ffcs-role { margin:4px 0 0; padding:0; color:var(--ff-title); font-family:"FFCS Heading","Fine-H",Arial,sans-serif; font-size:32px; line-height:1.2; font-weight:800; letter-spacing:-.027em; }
.ffcs .ffcs-description { color:var(--ff-muted); font-size:16px; font-weight:300; line-height:1.7; }
.ffcs .ffcs-description > :first-child { margin-top:0; }
.ffcs .ffcs-description > :last-child { margin-bottom:0; }
.ffcs .ffcs-description a { color:inherit; text-decoration:underline; }
.ffcs .ffcs-services-heading { margin:0 0 12px; font-size:11px; line-height:1.5; font-weight:750; text-transform:uppercase; letter-spacing:.12em; color:var(--ff-muted); }
.ffcs .ffcs-service-list { display:grid; grid-template-columns:repeat(var(--ff-service-cols),minmax(0,1fr)); gap:var(--ff-service-gap); margin:0; padding:0; list-style:none; }
.ffcs .ffcs-service-list > li { list-style:none; margin:0; padding:0; min-width:0; }
.ffcs .ffcs-service {
  display:flex; align-items:center; gap:10px; height:100%; min-height:48px; padding:12px 0;
  border:0; border-top:1px solid var(--ff-line); text-align:start; color:var(--ff-ink); text-decoration:none;
  transition:background-color .2s,color .2s; box-shadow:none; outline-offset:4px;
}
.ffcs a.ffcs-service:hover, .ffcs a.ffcs-service:focus-visible { color:var(--ff-ink); background-color:var(--ff-hover); }
.ffcs .ffcs-service-number { align-self:flex-start; padding-top:3px; font-size:10px; line-height:1.6; opacity:.65; font-variant-numeric:tabular-nums; }
.ffcs .ffcs-service-body { flex:1; min-width:0; }
.ffcs .ffcs-service-title { display:block; font-size:15px; line-height:1.35; font-weight:400; overflow-wrap:anywhere; }
.ffcs .ffcs-service-detail { display:block; margin-top:5px; font-size:12px; line-height:1.6; font-weight:400; color:var(--ff-muted); overflow-wrap:anywhere; }
.ffcs .ffcs-service-icon { display:flex; align-items:center; justify-content:center; font-size:var(--ff-icon-size); width:var(--ff-icon-size); flex:0 0 var(--ff-icon-size); }
.ffcs .ffcs-service-icon svg { width:var(--ff-icon-size); height:var(--ff-icon-size); fill:currentColor; }
.ffcs .ffcs-arrow { font-size:20px; line-height:1; flex-shrink:0; transition:transform .2s; }
.ffcs a.ffcs-service:hover .ffcs-arrow { transform:translate(2px,-2px); }
.ffcs .ffcs-service-list--chips { display:flex; flex-wrap:wrap; }
.ffcs .ffcs-service-list--chips .ffcs-service { border:1px solid var(--ff-line); border-radius:999px; padding:12px 18px; }
.ffcs .ffcs-service-list--cards .ffcs-service { align-items:flex-start; border:1px solid var(--ff-line); border-radius:10px; padding:18px; }
.ffcs .ffcs-service-list--chips > li { max-width:100%; }
.ffcs .ffcs-cta {
  display:inline-flex; align-items:center; justify-content:space-between; gap:32px; max-width:100%;
  min-height:48px; padding:14px 22px; border-radius:999px; border:1px solid var(--ff-ink);
  background:var(--ff-ink); color:var(--ff-content-bg); text-decoration:none; font-size:13px; font-weight:700; line-height:1.4;
  transition:background-color .2s,color .2s,transform .2s; box-shadow:none;
}
.ffcs .ffcs-cta--outline { background:transparent; color:var(--ff-ink); }
.ffcs .ffcs-cta--text { background:transparent; border-color:transparent; color:var(--ff-ink); padding-inline:0; }
.ffcs .ffcs-cta:hover, .ffcs .ffcs-cta:focus-visible { color:var(--ff-ink); background:var(--ff-hover); transform:translateY(-2px); }
.ffcs a:focus-visible { outline:2px solid var(--ff-accent); outline-offset:4px; }
.ffcs .ffcs-art {
  position:absolute; left:var(--ff-align-x,50%); top:var(--ff-align-y,50%); width:var(--ff-art-width); height:var(--ff-art-height); max-width:none;
  transform-origin:var(--ff-origin-x) var(--ff-origin-y);
  transform:translate(calc(-1 * var(--ff-align-x,50%) + var(--ff-art-x)),calc(-1 * var(--ff-align-y,50%) + var(--ff-art-y))) rotate(var(--ff-art-rotate)) scale(calc(var(--ff-art-scale) * var(--ff-zoom) / 100));
  pointer-events:none;
}
.ffcs .ffcs-player, .ffcs .ffcs-poster { position:absolute; inset:0; display:block; width:100%; height:100%; }
.ffcs .ffcs-player { opacity:0; }
.ffcs .ffcs-player > svg { display:block; width:100%!important; height:100%!important; max-width:none; }
.ffcs .ffcs-poster { object-fit:cover; }
.ffcs .ffcs-placeholder { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.28); font-size:clamp(24px,5vw,72px); font-weight:800; letter-spacing:-.06em; }
.ffcs .ffcs-poster ~ .ffcs-placeholder { display:none; }
.ffcs.ffcs--ready .ffcs-player { opacity:1; }
.ffcs.ffcs--ready .ffcs-poster, .ffcs.ffcs--ready .ffcs-placeholder { visibility:hidden; }
.ffcs .ffcs-word { position:absolute; top:10%; left:50%; transform:translateX(-50%); font-size:15vw; line-height:1; font-weight:900; letter-spacing:-.08em; white-space:nowrap; -webkit-text-stroke:1px var(--ff-word-color); color:transparent; pointer-events:none; }
.ffcs .ffcs-progress { position:absolute; inset-inline:0; bottom:0; height:3px; overflow:hidden; pointer-events:none; }
.ffcs .ffcs-progress > span { display:block; height:100%; width:100%; background:var(--ff-accent); transform:scaleX(var(--ff-progress,0)); transform-origin:left center; }
.ffcs .ffcs-editor-message { position:absolute; bottom:18px; inset-inline:18px; background:#fff; color:#222; border-radius:6px; font-size:12px; line-height:1.5; padding:12px; z-index:2; }
.ffcs .ffcs-editor-message[hidden] { display:none; }
@media (max-width:767px) {
  .ffcs { --ff-service-cols:1; --ff-default-order:0; }
  .ffcs .ffcs-stage { height:auto; flex-direction:column; --ff-media-basis:auto; --ff-content-basis:auto; --ff-stack:1; --ff-visual-min:var(--ff-mobile-visual-height); }
  .ffcs .ffcs-visual { height:max(1px,calc(var(--ff-mobile-visual-height) - var(--ff-header))); }
  .ffcs .ffcs-content { height:auto; min-height:calc(var(--ff-height) - var(--ff-header)); overflow:visible; padding:32px 24px 40px; }
  .ffcs .ffcs-role { font-size:clamp(22px,6vw,32px); }
}
@media (max-height:680px) and (min-width:768px) {
  .ffcs .ffcs-content { padding-block:20px; }
  .ffcs .ffcs-copy { gap:12px; }
  .ffcs .ffcs-services-heading { margin-bottom:8px; }
}
@media (prefers-reduced-motion:reduce) {
  .ffcs *, .ffcs *::before, .ffcs *::after { transition:none!important; animation:none!important; }
  .ffcs .ffcs-progress { display:none; }
}
