.elementor-kit-3{--e-global-color-primary:#32594A;--e-global-color-secondary:#F6F0E3;--e-global-color-text:#32594A;--e-global-color-accent:#D79F7F;--e-global-color-7cf7cac:#32594A4D;--e-global-color-e49a97f:#F6F0E34D;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-3 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --pf-forest:#32594A; --pf-forest-deep:#23443A; --pf-ink:#15291F; --pf-ink-soft:#3B5248; --pf-ink-muted:#5E7068; --pf-cream:#F6F0E3; --pf-cream-deep:#EDE4D1; --pf-paper:#FBF8F1; --pf-sage:#D4DBD5; --pf-sage-deep:#BCC8BF; --pf-peach:#D79F7F; --pf-peach-deep:#C98A69; --pf-clay:#8E4F31; --pf-line-dark:rgba(246, 240, 227, 0.18); --pf-line-light:rgba(21, 41, 31, 0.14); --pf-font:Inter; --pf-fs-display:clamp(2.75rem, 1.2rem + 4.6vw, 5.5rem); --pf-fs-h2:clamp(2.125rem, 1.35rem + 3.1vw, 4rem); --pf-fs-h3:clamp(1.375rem, 1.15rem + 0.9vw, 1.875rem); --pf-fs-h4:1.25rem; --pf-fs-lead:clamp(1.125rem, 1.02rem + 0.42vw, 1.375rem); --pf-fs-body:1.0625rem; --pf-fs-small:0.875rem; --pf-fs-micro:0.8125rem; --pf-space-section:clamp(5rem, 3.2rem + 7.2vw, 9rem); --pf-gutter:clamp(1.25rem, 0.6rem + 2.6vw, 3.5rem); --pf-container:1320px; }
/* Start custom CSS *//* Restored site setting (was set in Site Settings before the design-system update): no overscroll bounce on the page body. */
.elementor-kit-3 { overscroll-behavior: none; }

/* Plus Forty design system: raw CSS layer (Elementor kit custom CSS, post 3).
   Everything is scoped to pf-* classes, so pages that don't use the system are untouched.
   Tokens live in the Elementor global variables (--pf-*); atoms and molecules are global classes. */

@property --pf-bk { syntax: '<length>'; inherits: true; initial-value: 22px; }

/* Page surfaces */
html:has(.pf-section) { background-color: #F6F0E3; scrollbar-color: #32594A #E4E0D4; interpolate-size: allow-keywords; }
body:has(.pf-section) { background-color: #F6F0E3; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
.pf-section ::selection, .pf-header ::selection, .pf-footer ::selection { background-color: #D79F7F; color: #15291F; }
.elementor .pf-section :focus-visible, .elementor .pf-header :focus-visible, .elementor .pf-footer :focus-visible { outline: 2px solid #D79F7F; outline-offset: 3px; }

/* Sticky running head */
.elementor-location-header:has(.pf-header) { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 90; }

/* ==========================================================================================================
   Motion system: reveal utilities. Global and reusable: add the classes to any element in any section.
     pf-reveal              fade and rise (the default entrance)
     pf-reveal-mask         wipes open from the top while the text rises a little (headlines)
     pf-reveal-scale        fade and settle from 92% scale (images, plates, badges)
     pf-reveal-fade         opacity only
     pf-reveal-draw         wipes in left to right (rules, ruled rows, strips)
     pf-reveal-group        on a parent: its direct children rise in sequence (the parent itself stays still)
     pf-reveal-group-scale  the same, with the scale entrance (avatars, logo rows, thumbnails)
     pf-delay-1 … 12        stagger position; one step is --pf-reveal-step (90ms on load, 4% of the entry range on scroll)
     pf-reveal-onload       on a section: everything inside plays on page load, time-based (use on the first screen)
     pf-reveal-onopen       on anything shown on demand (mega menu panels, drawers, tabs): its reveals replay, about twice
                            as fast, every time it appears (display none -> shown restarts them)
   Anywhere else the same classes are scroll-linked: each element plays as it enters the viewport.
   Inside a horizontal scroller, set --pf-reveal-axis: inline on the scroller and the reveals play as each slide slides in.
   Defaults are the finished state, so without motion support or with reduced motion everything simply shows.
   ========================================================================================================== */
.elementor { --pf-ease-out: cubic-bezier(0.16, 1, 0.3, 1); --pf-reveal-step: 90ms; --pf-reveal-base: 100ms; }
.elementor .pf-reveal, .elementor .pf-reveal-group > * { --pf-reveal-name: pf-r-up; --pf-reveal-dur: 1000ms; }
.elementor .pf-reveal-mask { --pf-reveal-name: pf-r-mask; --pf-reveal-dur: 1150ms; }
.elementor .pf-reveal-scale, .elementor .pf-reveal-group-scale > * { --pf-reveal-name: pf-r-scale; --pf-reveal-dur: 900ms; }
.elementor .pf-reveal-fade { --pf-reveal-name: pf-r-fade; --pf-reveal-dur: 900ms; }
.elementor .pf-reveal-draw { --pf-reveal-name: pf-r-draw; --pf-reveal-dur: 1300ms; }
.elementor .pf-delay-1 { --pf-reveal-i: 1; } .elementor .pf-delay-2 { --pf-reveal-i: 2; } .elementor .pf-delay-3 { --pf-reveal-i: 3; }
.elementor .pf-delay-4 { --pf-reveal-i: 4; } .elementor .pf-delay-5 { --pf-reveal-i: 5; } .elementor .pf-delay-6 { --pf-reveal-i: 6; }
.elementor .pf-delay-7 { --pf-reveal-i: 7; } .elementor .pf-delay-8 { --pf-reveal-i: 8; } .elementor .pf-delay-9 { --pf-reveal-i: 9; }
.elementor .pf-delay-10 { --pf-reveal-i: 10; } .elementor .pf-delay-11 { --pf-reveal-i: 11; } .elementor .pf-delay-12 { --pf-reveal-i: 12; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(2) { --pf-reveal-j: 1; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(3) { --pf-reveal-j: 2; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(4) { --pf-reveal-j: 3; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(5) { --pf-reveal-j: 4; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(6) { --pf-reveal-j: 5; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(7) { --pf-reveal-j: 6; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(8) { --pf-reveal-j: 7; }
.elementor :is(.pf-reveal-group, .pf-reveal-group-scale) > :nth-child(n+9) { --pf-reveal-j: 8; }
@keyframes pf-r-up { from { opacity: 0; transform: translate3d(0, 22px, 0); } }
@keyframes pf-r-mask { from { clip-path: inset(0 0 100% 0); transform: translate3d(0, 0.3em, 0); } to { clip-path: inset(-0.15em -0.15em -0.3em -0.15em); transform: none; } }
@keyframes pf-r-scale { from { opacity: 0; transform: scale(0.92); } }
@keyframes pf-r-fade { from { opacity: 0; } }
@keyframes pf-r-draw { from { clip-path: inset(-12px 100% -12px -12px); } to { clip-path: inset(-12px -12px -12px -12px); } }
/* Scroll-linked (the default): plays across the first half of the element's entry, staggered by range */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor :is(.pf-reveal, .pf-reveal-mask, .pf-reveal-scale, .pf-reveal-fade, .pf-reveal-draw, .pf-reveal-group > *, .pf-reveal-group-scale > *) {
      --pf-reveal-k: calc(var(--pf-reveal-i, 0) + var(--pf-reveal-j, 0));
      animation-name: var(--pf-reveal-name); animation-duration: auto; animation-timing-function: var(--pf-ease-out);
      animation-fill-mode: backwards; animation-timeline: view(var(--pf-reveal-axis, block));
      animation-range: entry calc(var(--pf-reveal-k) * 4%) entry calc(55% + var(--pf-reveal-k) * 4%);
    }
  }
}
/* On load (inside pf-reveal-onload) or on open (inside pf-reveal-onopen): time-based, staggered by delay; works in every browser */
.elementor .pf-reveal-onopen { --pf-reveal-base: 30ms; --pf-reveal-step: 45ms; --pf-reveal-speed: 0.5; }
@media (prefers-reduced-motion: no-preference) {
  .elementor .pf-reveal-onload :is(.pf-reveal, .pf-reveal-mask, .pf-reveal-scale, .pf-reveal-fade, .pf-reveal-draw, .pf-reveal-group > *, .pf-reveal-group-scale > *),
  .elementor .pf-reveal-onopen :is(.pf-reveal, .pf-reveal-mask, .pf-reveal-scale, .pf-reveal-fade, .pf-reveal-draw, .pf-reveal-group > *, .pf-reveal-group-scale > *) {
    animation-name: var(--pf-reveal-name); animation-duration: calc(var(--pf-reveal-dur) * var(--pf-reveal-speed, 1)); animation-timing-function: var(--pf-ease-out);
    animation-fill-mode: backwards; animation-timeline: auto; animation-range: normal;
    animation-delay: calc(var(--pf-reveal-base) + (var(--pf-reveal-i, 0) + var(--pf-reveal-j, 0)) * var(--pf-reveal-step));
  }
}

/* Header navigation and mega menus.
   Built from Elementor's native accordion (<details>/<summary>), so it needs no script.
   Desktop (1025px and up): each nav item opens its panel on hover or keyboard focus; a click or tap also opens it ([open]).
   Tablet and phone: the nav folds into the "Menu" disclosure and the panels become an accordion inside it.
   A panel is pf-mega + one tone (pf-mega-cream / -sage / -deep) + one layout (pf-mega-grid / -feature / -editorial).
   Panels carry pf-reveal-onopen, so their pf-reveal content replays quickly every time a panel opens. */
.elementor .pf-header-inner { position: relative; }
/* Elementor containers are position: relative; the wrappers must be static so panels and the phone menu anchor to the header row */
.elementor .pf-navwrap, .elementor .pf-navwrap-item { position: static; }
.elementor .pf-navwrap summary, .elementor .pf-nav summary { list-style: none; }
.elementor .pf-navwrap summary::-webkit-details-marker, .elementor .pf-nav summary::-webkit-details-marker { display: none; }
.elementor .pf-nav-trigger:focus-visible, .elementor .pf-menu-toggle:focus-visible { outline: 2px solid #D79F7F; outline-offset: -4px; }
.elementor .pf-nav-trigger::after {
  content: ""; flex: none; width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-nav-trigger::before {
  content: ""; position: absolute; display: block; inset: auto; left: 14px; right: 14px; bottom: 0; height: 1px; width: auto; opacity: 1;
  background-color: var(--pf-fg); transform: scaleX(0); transform-origin: left center; transition: transform 360ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes pf-mega-in { from { opacity: 0; transform: translate3d(0, -6px, 0); } }
@media (min-width: 1025px) {
  /* the closed <details> still lays its content out on desktop; Chrome's closed state also collapses the slot, hence !important */
  .elementor .pf-navwrap-item::details-content, .elementor .pf-nav-item::details-content {
    content-visibility: visible !important; display: block !important; block-size: auto !important; height: auto !important; overflow: visible !important;
  }
  .elementor .pf-navwrap-panel, .elementor .pf-nav, .elementor .pf-nav-item { position: static; }
  .elementor .pf-nav > .pf-nav-item { width: auto; flex: none; }
  .elementor .pf-nav-item > .pf-mega { display: none; }
  .elementor .pf-nav-item:is(:hover, :focus-within) > .pf-mega,
  .elementor .pf-nav:not(:has(.pf-nav-item:hover)) .pf-nav-item[open] > .pf-mega { display: block; }
  .elementor .pf-nav-item:is(:hover, :focus-within) > .pf-nav-trigger { color: var(--pf-fg); }
  .elementor .pf-nav-item:is(:hover, :focus-within) > .pf-nav-trigger::before { transform: scaleX(1); }
  .elementor .pf-nav-item:is(:hover, :focus-within) > .pf-nav-trigger::after { transform: translateY(2px) rotate(-135deg); }
}
@media (min-width: 1025px) and (prefers-reduced-motion: no-preference) {
  .elementor .pf-nav-item > .pf-mega { animation: pf-mega-in 260ms cubic-bezier(0.16, 1, 0.3, 1); }
}
@media (min-width: 1025px) and (max-width: 1199px) { .elementor .pf-header-note { display: none; } }
/* Without ::details-content support the desktop nav can't be forced visible, so the Menu toggle shows instead */
@supports not s\65lector(::details-content) {
  @media (min-width: 1025px) { .elementor .pf-menu-toggle { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 14px; cursor: pointer; border: 1px solid var(--pf-line-strong); border-radius: 2px; } }
}
/* Shared link marks: the brand's 45-degree arrow appears on hover */
.elementor .pf-mega-link, .elementor .pf-mega-more { transition: color 200ms, transform 360ms cubic-bezier(0.16, 1, 0.3, 1); }
.elementor .pf-mega-link { display: flex; align-items: center; gap: 8px; }
.elementor .pf-mega-link::after, .elementor .pf-mega-more::after, .elementor .pf-mega-row::after {
  content: ""; flex: none; width: 10px; height: 10px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 10.5l8.6-8.6M3.2 1.4h7.4v7.4' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 10.5l8.6-8.6M3.2 1.4h7.4v7.4' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: opacity 240ms, transform 360ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-mega-link::after { opacity: 0; transform: translate(-4px, 4px); }
.elementor .pf-mega-link:is(:hover, :focus-visible) { transform: translateX(3px); }
.elementor .pf-mega-link:is(:hover, :focus-visible)::after { opacity: 1; transform: none; }
.elementor .pf-mega-more:is(:hover, :focus-visible)::after { transform: translate(2px, -2px); }
/* Option 2: the featured image follows the hovered row (first image by default) */
.elementor .pf-mega-fimg { opacity: 0; transform: scale(1.04); transition: opacity 520ms cubic-bezier(0.16, 1, 0.3, 1), transform 900ms cubic-bezier(0.16, 1, 0.3, 1); }
.elementor .pf-mega-media > .pf-mega-fimg:first-child { opacity: 1; transform: none; }
.elementor .pf-mega-feature:has(.pf-mega-row:is(:hover, :focus-visible)) .pf-mega-fimg { opacity: 0; transform: scale(1.04); }
.elementor .pf-mega-feature:has(.pf-mega-row:nth-child(1):is(:hover, :focus-visible)) .pf-mega-fimg:nth-child(1),
.elementor .pf-mega-feature:has(.pf-mega-row:nth-child(2):is(:hover, :focus-visible)) .pf-mega-fimg:nth-child(2),
.elementor .pf-mega-feature:has(.pf-mega-row:nth-child(3):is(:hover, :focus-visible)) .pf-mega-fimg:nth-child(3),
.elementor .pf-mega-feature:has(.pf-mega-row:nth-child(4):is(:hover, :focus-visible)) .pf-mega-fimg:nth-child(4) { opacity: 1; transform: none; }
.elementor .pf-mega-row { transition: padding 360ms cubic-bezier(0.16, 1, 0.3, 1), border-color 240ms; }
.elementor .pf-mega-row::after { grid-column: 2; grid-row: 1 / span 2; width: 12px; height: 12px; opacity: 0.45; }
.elementor .pf-mega-row:is(:hover, :focus-visible) { padding-inline-start: 10px; border-bottom-color: var(--pf-line-strong); }
.elementor .pf-mega-row:is(:hover, :focus-visible)::after { opacity: 1; transform: translate(2px, -2px); }
/* Option 3: the hovered line stays, the rest step back */
.elementor .pf-mega-groups:has(.pf-mega-big:is(:hover, :focus-visible)) .pf-mega-big:not(:hover, :focus-visible) { opacity: 0.42; }
.elementor .pf-mega-big:is(:hover, :focus-visible) { transform: translateX(6px); }
/* Tablet and phone: Menu toggle (three hairlines that become a cross), accordion rows with a chevron */
@media (max-width: 1024px) {
  .elementor .pf-header-inner { gap: 10px; }
  .elementor .pf-header-actions { margin-inline-start: auto; }
  .elementor .pf-menu-toggle { width: auto; min-width: max-content; }
  .elementor .pf-menu-toggle > * { flex: none; width: auto; }
  .elementor .pf-menu-toggle::after {
    content: ""; flex: none; width: 16px; height: 11px;
    background: linear-gradient(currentColor, currentColor) top / 100% 1px no-repeat, linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat, linear-gradient(currentColor, currentColor) bottom / 100% 1px no-repeat;
  }
  .elementor .pf-navwrap-item[open] > .pf-menu-toggle::after {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 11'%3E%3Cpath d='M3 0l10 11M13 0L3 11' fill='none' stroke='%23F6F0E3' stroke-width='1'/%3E%3C/svg%3E") center / contain no-repeat;
  }
  .elementor .pf-nav-trigger::before { content: none; display: none; }
  .elementor .pf-nav-item[open] > .pf-nav-trigger::after { transform: translateY(2px) rotate(-135deg); }
}

/* Action arrow: the brand mark's 45-degree arrow */
.elementor .pf-btn::after, .elementor .pf-textlink::after {
  content: ""; flex: none; width: 11px; height: 11px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 10.5l8.6-8.6M3.2 1.4h7.4v7.4' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 10.5l8.6-8.6M3.2 1.4h7.4v7.4' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-btn:hover::after, .elementor .pf-textlink:hover::after { transform: translate(2px, -2px); }
.elementor .pf-btn:active { transform: translateY(1px); }

/* Clear-space frame: four L-brackets, the brand mark's own geometry */
.elementor .pf-frame {
  background-image:
    linear-gradient(var(--pf-bracket), var(--pf-bracket)), linear-gradient(var(--pf-bracket), var(--pf-bracket)),
    linear-gradient(var(--pf-bracket), var(--pf-bracket)), linear-gradient(var(--pf-bracket), var(--pf-bracket)),
    linear-gradient(var(--pf-bracket), var(--pf-bracket)), linear-gradient(var(--pf-bracket), var(--pf-bracket)),
    linear-gradient(var(--pf-bracket), var(--pf-bracket)), linear-gradient(var(--pf-bracket), var(--pf-bracket));
  background-repeat: no-repeat;
  background-size: var(--pf-bk) 2px, 2px var(--pf-bk), var(--pf-bk) 2px, 2px var(--pf-bk), var(--pf-bk) 2px, 2px var(--pf-bk), var(--pf-bk) 2px, 2px var(--pf-bk);
  background-position: left top, left top, right top, right top, left bottom, left bottom, right bottom, right bottom;
  transition: --pf-bk 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-talent:hover .pf-frame, .elementor .pf-talent:focus-within .pf-frame { --pf-bk: 36px; }

/* FPO placeholder plate (for position only): a crossed box, replaced by real photography later */
.elementor .pf-fpo { box-shadow: inset 0 0 0 1px rgba(21, 41, 31, 0.1); }
.elementor .pf-fpo::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 0L100 100M100 0L0 100' fill='none' stroke='%2315291F' stroke-opacity='.18' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* Hero specimen: dimension lines with a node at the plate and a tick at the label */
.elementor .pf-dim::before, .elementor .pf-dim::after { content: ""; position: absolute; top: 50%; transform: translateY(-50%); }
.elementor .pf-dim::before { left: -3px; width: 6px; height: 6px; background-color: #D4DBD5; }
.elementor .pf-dim::after { right: 0; width: 1px; height: 9px; background-color: var(--pf-line-strong); }
.elementor .pf-specstrip > .pf-stat + .pf-stat { border-left: 1px solid var(--pf-line); padding-left: 28px; }
@media (max-width: 767px) {
  .elementor .pf-specstrip > .pf-stat + .pf-stat { border-left: 0; padding-left: 0; }
  .elementor .pf-hero .pf-frame { width: min(100%, 300px); }
}

/* Hero credentials: talent and verified profiles above the call to action, brands and rating ruled off below it.
   Desktop and tablet: one line each, items divided by hairlines. Phone: both rows become one ruled 2x2 grid under the CTA. */
.elementor .pf-cred-t strong { font-weight: 700; color: var(--pf-fg); letter-spacing: -0.012em; font-variant-numeric: tabular-nums lining-nums; }
.elementor .pf-creds > .pf-cred + .pf-cred { padding-left: 28px; border-left: 1px solid var(--pf-line); }
.elementor .pf-avatars > .pf-avatar + .pf-avatar { margin-left: -6px; transition: margin-left 480ms cubic-bezier(0.16, 1, 0.3, 1); }
.elementor .pf-avatars > .pf-avatar:not(:last-child) > .pf-avatar-i { transform: translateX(-3px); }
.elementor .pf-avatars:hover > .pf-avatar + .pf-avatar { margin-left: 2px; }
.elementor .pf-cred-icon::before {
  content: ""; position: absolute; display: block; inset: auto; opacity: 1; border: 0; border-radius: 0; left: 50%; top: 50%;
}
.elementor .pf-icon-check::before {
  width: 10px; height: 5px; border-left: 1px solid var(--pf-fg); border-bottom: 1px solid var(--pf-fg);
  transform: translate(-50%, -75%) rotate(-45deg);
}
.elementor .pf-icon-box::before {
  width: 16px; height: 16px; transform: translate(-50%, -50%); background-color: var(--pf-fg);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5l5.5 3.2v6.6L8 14.5l-5.5-3.2V4.7zM2.5 4.7L8 7.9l5.5-3.2M8 7.9v6.6' fill='none' stroke='%23000' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5l5.5 3.2v6.6L8 14.5l-5.5-3.2V4.7zM2.5 4.7L8 7.9l5.5-3.2M8 7.9v6.6' fill='none' stroke='%23000' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Five stars from one element: a single star tile repeated by the mask, filled with the field foreground */
.elementor .pf-stars {
  background-color: var(--pf-fg);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 15'%3E%3Cpath d='M7.5 .3L9.32 5.39 14.73 5.55 10.45 8.86 11.97 14.05 7.5 11 3.03 14.05 4.55 8.86 .27 5.55 5.68 5.39Z'/%3E%3C/svg%3E") 0 0 / 18px 15px repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 15'%3E%3Cpath d='M7.5 .3L9.32 5.39 14.73 5.55 10.45 8.86 11.97 14.05 7.5 11 3.03 14.05 4.55 8.86 .27 5.55 5.68 5.39Z'/%3E%3C/svg%3E") 0 0 / 18px 15px repeat-x;
}
.elementor .pf-avatar-img[src*="/elementor/assets/images/placeholder"] { display: none; }
@media (max-width: 767px) {
  .elementor .pf-creds > .pf-cred + .pf-cred { padding-left: 0; border-left: 0; }
  .elementor .pf-creds-trust > .pf-cred { border-bottom: 1px solid var(--pf-line); }
  /* every cell's visual sits in the same 34px slot (the avatar height), so the labels line up across the grid */
  .elementor .pf-cred > .pf-cred-icon { margin-block: 5px; }
  .elementor .pf-cred > .pf-stars { margin-block: 9.5px; }
  .elementor .pf-hero .pf-actions .pf-btn { width: 100%; justify-content: center; }
}

/* The authored moment: the specimen is drawn in on load (the copy column uses the pf-reveal utilities) */
@keyframes pf-draw-x { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes pf-grow-x { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes pf-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pf-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes pf-bracket-in { from { --pf-bk: 0px; } to { --pf-bk: 22px; } }
@media (prefers-reduced-motion: no-preference) {
  .elementor .pf-hero .pf-frame { animation: pf-bracket-in 1100ms 200ms cubic-bezier(0.16, 1, 0.3, 1) both; }
  .elementor .pf-hero .pf-dim { transform-origin: left center; animation: pf-grow-x 800ms cubic-bezier(0.16, 1, 0.3, 1) both; }
  .elementor .pf-hero .pf-callout-text { animation: pf-fade 700ms cubic-bezier(0.16, 1, 0.3, 1) both; }
  .elementor .pf-hero .pf-callout:nth-child(1) .pf-dim { animation-delay: 650ms; }
  .elementor .pf-hero .pf-callout:nth-child(2) .pf-dim { animation-delay: 800ms; }
  .elementor .pf-hero .pf-callout:nth-child(3) .pf-dim { animation-delay: 950ms; }
  .elementor .pf-hero .pf-callout:nth-child(4) .pf-dim { animation-delay: 1100ms; }
  .elementor .pf-hero .pf-callout:nth-child(1) .pf-callout-text { animation-delay: 950ms; }
  .elementor .pf-hero .pf-callout:nth-child(2) .pf-callout-text { animation-delay: 1100ms; }
  .elementor .pf-hero .pf-callout:nth-child(3) .pf-callout-text { animation-delay: 1250ms; }
  .elementor .pf-hero .pf-callout:nth-child(4) .pf-callout-text { animation-delay: 1400ms; }
}

/* Talent slider: CSS scroll-snap carousel with native scroll buttons where supported */
.elementor .pf-track { anchor-name: --pf-talent; scroll-behavior: smooth; --pf-track-pad: calc(var(--pf-gutter) + max(0px, (100vw - 2 * var(--pf-gutter) - var(--pf-container)) / 2)); }
.elementor .pf-track > .pf-talent { flex: 0 0 clamp(268px, 23vw, 318px); }
.elementor .pf-track:focus-visible { outline: 2px solid #32594A; outline-offset: -2px; }
.elementor .pf-track::scroll-button(*) {
  position: fixed; position-anchor: --pf-talent; position-area: top center; justify-self: end; align-self: end;
  width: 48px; height: 48px; margin-bottom: 18px; padding: 0; cursor: pointer;
  border: 1px solid rgba(21, 41, 31, 0.42); border-radius: 2px; background-color: transparent; color: #15291F;
  background-position: center; background-repeat: no-repeat; background-size: 14px 14px;
  transition: background-color 240ms, border-color 240ms;
}
.elementor .pf-track::scroll-button(left) {
  content: "" / "Previous profiles"; margin-right: calc(var(--pf-track-pad) + 58px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M13 7H1.5M6.5 2L1.5 7l5 5' fill='none' stroke='%2315291F' stroke-width='1.1'/%3E%3C/svg%3E");
}
.elementor .pf-track::scroll-button(right) {
  content: "" / "Next profiles"; margin-right: var(--pf-track-pad);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M1 7h11.5M7.5 2l5 5-5 5' fill='none' stroke='%2315291F' stroke-width='1.1'/%3E%3C/svg%3E");
}
.elementor .pf-track::scroll-button(*):hover { background-color: rgba(246, 240, 227, 0.6); border-color: #15291F; }
.elementor .pf-track::scroll-button(*):disabled { opacity: 0.3; cursor: default; }
/* The supports function below is spelled with a CSS escape (\65 = "e"): Elementor rewrites the plain word in kit CSS
   to its wrapper class, which silently broke this fallback before. */
@supports not s\65lector(::scroll-button(*)) {
  .elementor .pf-track { scrollbar-width: thin; scrollbar-color: rgba(21, 41, 31, 0.45) transparent; padding-bottom: 22px; }
  .elementor .pf-section .pf-talent-hint { display: block; }
}
@media (max-width: 767px) {
  .elementor .pf-track::scroll-button(*) { display: none; }
  .elementor .pf-section .pf-talent-hint { display: block; }
}
/* Talent specimen: a leader spine drops from the portrait's lower-left bracket and branches out to the role and every spec,
   the same node / hairline / tick grammar as the hero's dimension lines */
.elementor .pf-talent .pf-talent-id::before,
.elementor .pf-talent .pf-spec-row::after {
  content: ""; position: absolute; display: block; top: 0; bottom: 0; width: 1px; height: auto; opacity: 1; border: 0; border-radius: 0;
  background-color: rgba(21, 41, 31, 0.42);
}
.elementor .pf-talent .pf-talent-id::before { left: 0; }
.elementor .pf-talent .pf-spec-row::after { left: -22px; }
.elementor .pf-talent .pf-spec-row:last-child::after { bottom: auto; height: 17px; }
.elementor .pf-talent .pf-talent-role::before,
.elementor .pf-talent .pf-spec-row::before {
  content: ""; position: absolute; display: block; left: -24px; top: 12.5px; width: 19px; height: 9px; opacity: 1; border: 0; border-radius: 0;
  background-image: linear-gradient(#32594A, #32594A), linear-gradient(rgba(21, 41, 31, 0.42), rgba(21, 41, 31, 0.42)), linear-gradient(rgba(21, 41, 31, 0.42), rgba(21, 41, 31, 0.42));
  background-size: 5px 5px, 100% 1px, 1px 9px; background-position: left center, left center, right center; background-repeat: no-repeat;
}
.elementor .pf-talent .pf-talent-role::before { top: calc(50% - 4.5px); }
@keyframes pf-draw-down { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes pf-draw-right { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .pf-track .pf-talent .pf-talent-id::before,
    .elementor .pf-track .pf-talent .pf-spec-row::after { animation: pf-draw-down linear both; animation-timeline: view(inline); animation-range: entry 35% entry 75%; }
    .elementor .pf-track .pf-talent .pf-talent-role::before,
    .elementor .pf-track .pf-talent .pf-spec-row::before { animation: pf-draw-right linear both; animation-timeline: view(inline); animation-range: entry 60% entry 100%; }
  }
}
@media (prefers-reduced-motion: no-preference) {
  .elementor .pf-track .pf-talent:hover .pf-talent-id::before,
  .elementor .pf-track .pf-talent:hover .pf-spec-row::after { animation: pf-draw-down 360ms cubic-bezier(0.16, 1, 0.3, 1) both; }
  .elementor .pf-track .pf-talent:hover .pf-talent-role::before,
  .elementor .pf-track .pf-talent:hover .pf-spec-row::before { animation: pf-draw-right 420ms cubic-bezier(0.16, 1, 0.3, 1) both; }
  .elementor .pf-track .pf-talent:hover .pf-talent-role::before { animation-delay: 160ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(1)::after { animation-delay: 220ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(1)::before { animation-delay: 320ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(2)::after { animation-delay: 300ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(2)::before { animation-delay: 400ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(3)::after { animation-delay: 380ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(3)::before { animation-delay: 480ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(4)::after { animation-delay: 460ms; }
  .elementor .pf-track .pf-talent:hover .pf-spec-row:nth-child(4)::before { animation-delay: 560ms; }
}

/* Ruled indexes respond to the pointer: the rule firms up and the entry comes forward */
.elementor .pf-role { transition: border-color 240ms; }
.elementor .pf-role .pf-role-pct { transition: color 240ms; }
.elementor .pf-role:hover { border-bottom-color: var(--pf-line-strong); }
.elementor .pf-role:hover .pf-role-pct { color: #15291F; }
.elementor .pf-namelist li { transition: color 240ms, border-color 240ms; }
.elementor .pf-namelist li:hover { color: #15291F; border-bottom-color: var(--pf-line-strong); }

/* Employer index lists */
.elementor .pf-namelist ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--pf-line); }
.elementor .pf-namelist li { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--pf-line); break-inside: avoid; }
.elementor .pf-namelist-2col ul { column-count: 2; column-gap: clamp(24px, 3vw, 48px); }

/* Comparison table marks */
.elementor .pf-mark-x::before, .elementor .pf-mark-check::before { content: ""; flex: none; }
.elementor .pf-mark-x::before { width: 11px; height: 11px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 11'%3E%3Cpath d='M1 1l9 9M10 1l-9 9' fill='none' stroke='%2315291F' stroke-opacity='.6' stroke-width='1'/%3E%3C/svg%3E") center / contain no-repeat; }
.elementor .pf-mark-check::before { width: 11px; height: 6px; border-left: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(-45deg); }
@media (max-width: 767px) {
  .elementor .pf-compare-old::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 10px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 11'%3E%3Cpath d='M1 1l9 9M10 1l-9 9' fill='none' stroke='%2315291F' stroke-opacity='.6' stroke-width='1'/%3E%3C/svg%3E") center / contain no-repeat; }
  .elementor .pf-compare-new-t::before { content: ""; display: inline-block; width: 10px; height: 5px; margin-right: 10px; border-left: 1px solid #F6F0E3; border-bottom: 1px solid #F6F0E3; transform: translateY(-4px) rotate(-45deg); }
}

/* Client logos: a ruled band that runs right to left without end.
   The track holds two identical groups and moves exactly one group width (-50%) per loop. Each group ends with one gap
   of trailing padding, so the spacing across the seam matches the spacing everywhere else and the loop never jumps. */
.elementor .pf-marquee { --pf-logo-gap: clamp(44px, 5vw, 88px); --pf-marquee-time: 64s; }
.elementor .pf-marquee-viewport {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
/* (gap and trailing padding live on the pf-marquee-group class, which loads after Elementor's base padding) */
.elementor .pf-marquee .pf-clientlogo {
  cursor: default; filter: grayscale(1); opacity: 0.5;
  transition: filter 600ms cubic-bezier(0.16, 1, 0.3, 1), opacity 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-marquee .pf-clientlogo:hover { filter: grayscale(0); opacity: 1; }
@keyframes pf-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 1024px) { .elementor .pf-marquee { --pf-marquee-time: 52s; } }
@media (max-width: 767px) { .elementor .pf-marquee { --pf-marquee-time: 40s; } }
@media (prefers-reduced-motion: no-preference) {
  .elementor .pf-marquee-track { animation: pf-marquee var(--pf-marquee-time) linear infinite; will-change: transform; }
  .elementor .pf-marquee:hover .pf-marquee-track { animation-play-state: paused; }
}
/* Reduced motion: the band holds still as one centred, wrapping row, and the duplicate group is dropped */
@media (prefers-reduced-motion: reduce) {
  .elementor .pf-marquee .pf-marquee-viewport { -webkit-mask-image: none; mask-image: none; }
  .elementor .pf-marquee .pf-marquee-track { width: 100%; }
  .elementor .pf-marquee .pf-marquee-group { width: 100%; flex-wrap: wrap; justify-content: center; row-gap: 28px; padding-inline-end: 0; }
  .elementor .pf-marquee .pf-marquee-group + .pf-marquee-group { display: none; }
}

/* "Worked inside" logo index (talent section): pf-logogrid holds 16 "PF / Logo Slot" components (508), 4 columns, 2 on phones.
   Ruled rows, no boxes. An empty slot hides Elementor's placeholder image and shows the company name centred inside four
   hairline corner marks (the clear-space frame, drawn at 1px). Once the Logo field is set, the logo shows (grey at rest,
   colour on hover), and the name and its marks stay for screen readers only. */
.elementor .pf-logo-img[src*="/elementor/assets/images/placeholder"] { display: none; }
.elementor .pf-logo-slot > .pf-logo-name {
  background-color: transparent;
  background-image:
    linear-gradient(var(--pf-line-strong), var(--pf-line-strong)), linear-gradient(var(--pf-line-strong), var(--pf-line-strong)),
    linear-gradient(var(--pf-line-strong), var(--pf-line-strong)), linear-gradient(var(--pf-line-strong), var(--pf-line-strong)),
    linear-gradient(var(--pf-line-strong), var(--pf-line-strong)), linear-gradient(var(--pf-line-strong), var(--pf-line-strong)),
    linear-gradient(var(--pf-line-strong), var(--pf-line-strong)), linear-gradient(var(--pf-line-strong), var(--pf-line-strong));
  background-repeat: no-repeat;
  background-size: 10px 1px, 1px 10px, 10px 1px, 1px 10px, 10px 1px, 1px 10px, 10px 1px, 1px 10px;
  background-position: left top, left top, right top, right top, left bottom, left bottom, right bottom, right bottom;
  transition: color 240ms;
}
.elementor .pf-logo-slot:hover > .pf-logo-name { color: var(--pf-fg); }
.elementor .pf-logo-slot:has(> .pf-logo-img:not([src*="/elementor/assets/images/placeholder"])) > .pf-logo-name {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; background: none;
}
.elementor .pf-logo-slot > .pf-logo-img {
  filter: grayscale(1) opacity(0.62); /* the dimming lives in filter so it never shares the entrance delay on opacity */
  transition: filter 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-logo-slot:hover > .pf-logo-img { filter: grayscale(0) opacity(1); }

/* Logo index entrance: time-based (550ms each), triggered when the grid scrolls into view, staggered as a diagonal wave
   (row + column, 70ms a step). A view timeline flips --pf-inview from 0 to 1 and a style query hides the slot contents
   while it is 0, so the contents transition in on their own clock instead of following the scroll. On phones each slot
   is its own trigger, so lower rows wait until they are on screen. Without view timelines or style queries, or with
   reduced motion, the logos simply show. */
@property --pf-inview { syntax: '<integer>'; inherits: true; initial-value: 1; }
@keyframes pf-inview-arm { from { --pf-inview: 0; } to { --pf-inview: 1; } }
.elementor .pf-logogrid > :nth-child(4n+2) { --pf-logo-c: 1; }
.elementor .pf-logogrid > :nth-child(4n+3) { --pf-logo-c: 2; }
.elementor .pf-logogrid > :nth-child(4n+4) { --pf-logo-c: 3; }
.elementor .pf-logogrid > :nth-child(n+5) { --pf-logo-r: 1; }
.elementor .pf-logogrid > :nth-child(n+9) { --pf-logo-r: 2; }
.elementor .pf-logogrid > :nth-child(n+13) { --pf-logo-r: 3; }
@media (max-width: 767px) {
  .elementor .pf-logogrid > :nth-child(n) { --pf-logo-c: 0; --pf-logo-r: 0; }
  .elementor .pf-logogrid > :nth-child(2n+2) { --pf-logo-c: 1; }
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .pf-logogrid { animation: pf-inview-arm linear both; animation-timeline: view(); animation-range: entry 30% entry 90%; }
    .elementor .pf-logogrid > .pf-logo-slot > * {
      transition: opacity 550ms cubic-bezier(0.16, 1, 0.3, 1), transform 550ms cubic-bezier(0.16, 1, 0.3, 1), filter 600ms cubic-bezier(0.16, 1, 0.3, 1), color 240ms;
      transition-delay: calc((var(--pf-logo-r, 0) + var(--pf-logo-c, 0)) * 70ms), calc((var(--pf-logo-r, 0) + var(--pf-logo-c, 0)) * 70ms), 0ms, 0ms;
    }
    @container style(--pf-inview: 0) {
      .elementor .pf-logogrid > .pf-logo-slot > * { opacity: 0; transform: translate3d(0, 12px, 0); transition-duration: 0s; transition-delay: 0s; }
    }
  }
  @media (prefers-reduced-motion: no-preference) and (max-width: 767px) {
    .elementor .pf-logogrid { animation: none; }
    .elementor .pf-logogrid > .pf-logo-slot { animation: pf-inview-arm linear both; animation-timeline: view(); animation-range: entry 20% entry 80%; }
  }
}

/* Founder stories: a CSS scroll-snap slider, one story per view (a peek of the next on phones).
   Swipe, trackpad and keyboard scrolling are native. Where the browser supports CSS carousels it adds the
   pagination bars (one per story, the current one long and in ink) and the previous/next buttons on the right of that row.
   Elsewhere a thin scrollbar and a text hint stand in. Autoplay is an optional script (design-system/founder-slider-autoplay.js). */
.elementor .pf-slides {
  --pf-reveal-axis: inline; anchor-name: --pf-slides;
  overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; scroll-marker-group: after;
}
.elementor .pf-slides::-webkit-scrollbar { display: none; }
.elementor .pf-slides > .pf-fslide { scroll-snap-align: start; scroll-snap-stop: always; }
.elementor .pf-slides:focus-visible { outline: 2px solid #D79F7F; outline-offset: 4px; }
.elementor .pf-slides::scroll-marker-group { display: flex; align-items: center; gap: 8px; height: 48px; margin-top: 20px; }
.elementor .pf-slides > .pf-fslide::scroll-marker {
  content: "" / "Founder story"; display: block; width: 28px; height: 24px; cursor: pointer;
  background: linear-gradient(var(--pf-line-strong), var(--pf-line-strong)) center / 100% 2px no-repeat;
  transition: width 500ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-slides > .pf-fslide::scroll-marker:target-current { width: 56px; background-image: linear-gradient(var(--pf-fg), var(--pf-fg)); }
.elementor .pf-slides > .pf-fslide::scroll-marker:focus-visible { outline: 2px solid #D79F7F; outline-offset: 2px; }
.elementor .pf-slides::scroll-button(*) {
  position: fixed; position-anchor: --pf-slides; position-area: bottom center; justify-self: end; align-self: start;
  z-index: 5; /* above the pagination row, which otherwise takes the clicks */
  width: 48px; height: 48px; margin-top: 20px; padding: 0; cursor: pointer;
  border: 1px solid rgba(21, 41, 31, 0.42); border-radius: 2px; background-color: transparent; color: #15291F;
  background-position: center; background-repeat: no-repeat; background-size: 14px 14px;
  transition: background-color 240ms, border-color 240ms;
}
.elementor .pf-slides::scroll-button(left) {
  content: "" / "Previous story"; margin-right: 58px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M13 7H1.5M6.5 2L1.5 7l5 5' fill='none' stroke='%2315291F' stroke-width='1.1'/%3E%3C/svg%3E");
}
.elementor .pf-slides::scroll-button(right) {
  content: "" / "Next story";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M1 7h11.5M7.5 2l5 5-5 5' fill='none' stroke='%2315291F' stroke-width='1.1'/%3E%3C/svg%3E");
}
.elementor .pf-slides::scroll-button(*):hover { background-color: rgba(21, 41, 31, 0.06); border-color: #15291F; }
.elementor .pf-slides::scroll-button(*):disabled { opacity: 0.3; cursor: default; }
@supports not s\65lector(::scroll-marker) {
  .elementor .pf-slides { scrollbar-width: thin; scrollbar-color: rgba(21, 41, 31, 0.45) transparent; padding-bottom: 18px; }
  .elementor .pf-slider .pf-slider-hint { display: block; }
}
@media (max-width: 767px) { .elementor .pf-slides::scroll-button(*) { display: none; } }
@media (prefers-reduced-motion: reduce) { .elementor .pf-slides { scroll-behavior: auto; } }
/* The portrait plate: FPO until the Founder photo is set; the FPO label moves to the top so the name chip owns the bottom */
.elementor .pf-fslide-media { box-shadow: inset 0 0 0 1px rgba(21, 41, 31, 0.1); }
.elementor .pf-fslide-media::before {
  content: ""; position: absolute; inset: 0; width: auto; height: auto; opacity: 1; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 0L100 100M100 0L0 100' fill='none' stroke='%2315291F' stroke-opacity='.18' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.elementor .pf-fslide-media > .pf-fpo-label { inset-block-end: auto; top: 12px; }
.elementor .pf-fslide-img[src*="/elementor/assets/images/placeholder"],
.elementor .pf-fslide-logo-img[src*="/elementor/assets/images/placeholder"] { display: none; }
.elementor .pf-fslide-media:has(> .pf-fslide-img:not([src*="/elementor/assets/images/placeholder"]))::before,
.elementor .pf-fslide-media:has(> .pf-fslide-img:not([src*="/elementor/assets/images/placeholder"])) > .pf-fpo-label,
.elementor .pf-fslide-logo:has(> .pf-fslide-logo-img:not([src*="/elementor/assets/images/placeholder"])) > .pf-fslide-logo-l { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .elementor .pf-fslide .pf-fslide-img { transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1); }
  .elementor .pf-fslide:hover .pf-fslide-img { transform: scale(1.03); }
}

/* Process story: six chapters hung on one vertical spine, beside a sticky index of the steps.
   The default state is complete and readable (full-strength text, a static spine, sage nodes).
   Scroll-linked motion is layered on top only where view timelines exist and motion is welcome. */
.elementor .pf-chapters::before,
.elementor .pf-chapters::after,
.elementor .pf-rail::before,
.elementor .pf-rail::after {
  content: ""; position: absolute; display: block; top: 0; bottom: 0; left: 0; width: 1px; height: auto; opacity: 1; border: 0; border-radius: 0;
  background-color: var(--pf-line-strong); transform-origin: center top;
}
.elementor .pf-rail::before, .elementor .pf-rail::after { left: 3px; }
.elementor .pf-chapters::after, .elementor .pf-rail::after { background-color: var(--pf-fg); transform: scaleY(0); }
/* Each chapter: a square node on the spine and a dimension tick reaching out to its numeral */
.elementor .pf-chapter::before,
.elementor .pf-chapter::after,
.elementor .pf-rail-item::before { content: ""; position: absolute; display: block; opacity: 1; border: 0; border-radius: 0; }
.elementor .pf-chapter::before {
  left: 0; top: 50%; width: calc(clamp(40px, 4.5vw, 72px) - 16px); height: 1px;
  background-color: var(--pf-line-strong); transform-origin: left center;
}
.elementor .pf-chapter::after { left: -4px; top: calc(50% - 4.5px); width: 9px; height: 9px; background-color: var(--pf-plate); }
.elementor .pf-rail-item::before { left: 0; top: calc(50% - 3.5px); width: 7px; height: 7px; background-color: var(--pf-plate); }
@media (max-width: 1024px) {
  .elementor .pf-chapter::before { top: 70px; width: 32px; }
  .elementor .pf-chapter::after { top: 65.5px; }
}
@media (max-width: 767px) {
  .elementor .pf-chapter::before { top: 58px; width: 20px; }
  .elementor .pf-chapter::after { top: 53.5px; }
}
.elementor .pf-chapter-out::before { content: ""; flex: none; width: 9px; height: 5px; border-left: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-3px) rotate(-45deg); }
/* Chapter plates: an FPO crossed box until a photo is set on the component's Photo field */
.elementor .pf-chapter-plate { box-shadow: inset 0 0 0 1px rgba(21, 41, 31, 0.1); }
.elementor .pf-chapter-plate::before {
  content: ""; position: absolute; inset: 0; width: auto; height: auto; opacity: 1; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 0L100 100M100 0L0 100' fill='none' stroke='%2315291F' stroke-opacity='.18' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.elementor .pf-chapter-img[src*="/elementor/assets/images/placeholder"] { display: none; }
.elementor .pf-chapter-plate:has(> .pf-chapter-img:not([src*="/elementor/assets/images/placeholder"]))::before,
.elementor .pf-chapter-plate:has(> .pf-chapter-img:not([src*="/elementor/assets/images/placeholder"])) > .pf-fpo-label { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .elementor .pf-chapter .pf-chapter-img { transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1); }
  .elementor .pf-chapter:hover .pf-chapter-img { transform: scale(1.035); }
  .elementor .pf-chapter:hover .pf-chapter-media { --pf-bk: 36px; }
}
@keyframes pf-grow-y { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes pf-lift { from { transform: translateY(28px); } to { transform: none; } }
@keyframes pf-plate-in { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes pf-chapter-on { 0%, 100% { opacity: 0.38; } 14%, 86% { opacity: 1; } }
@keyframes pf-tick-on { 0%, 100% { transform: scaleX(0); } 14%, 86% { transform: scaleX(1); } }
@keyframes pf-bracket-on { 0%, 100% { --pf-bk: 22px; } 14%, 86% { --pf-bk: 36px; } }
@keyframes pf-node-done {
  from { background-color: var(--pf-forest); box-shadow: inset 0 0 0 1px var(--pf-line-strong); }
  to { background-color: var(--pf-plate); box-shadow: inset 0 0 0 1px transparent; }
}
@keyframes pf-node-on { 14%, 86% { transform: scale(1.45); background-color: var(--pf-fg); } }
@keyframes pf-rail-reached { from { opacity: 0.5; } to { opacity: 1; } }
@keyframes pf-rail-on { 10%, 90% { color: var(--pf-fg); background-color: var(--pf-tint); } }
/* A chapter is active while it spans the middle of the viewport: from its top crossing the middle (cover 50vh)
   until its bottom crosses it (cover 100% - 50vh). A node fills when the spine's drawn line reaches it. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .pf-chapters { view-timeline: --pf-chs block; }
    .elementor .pf-chapter { view-timeline: --pf-chapter block; }
    .elementor .pf-chapters::after { animation: pf-grow-y linear both; animation-timeline: --pf-chs; animation-range: cover 50vh cover calc(100% - 50vh); }
    .elementor .pf-chapter-text {
      opacity: 0.38;
      animation: pf-lift linear both, pf-chapter-on linear none; animation-timeline: --pf-chapter, --pf-chapter;
      animation-range: entry 0% entry 80%, cover 50vh cover calc(100% - 50vh);
    }
    .elementor .pf-chapter-plate { animation: pf-plate-in linear both; animation-timeline: --pf-chapter; animation-range: entry 5% entry 85%; }
    .elementor .pf-chapter-media { animation: pf-bracket-on linear none; animation-timeline: --pf-chapter; animation-range: cover 50vh cover calc(100% - 50vh); }
    .elementor .pf-chapter::before { transform: scaleX(0); animation: pf-tick-on linear none; animation-timeline: --pf-chapter; animation-range: cover 50vh cover calc(100% - 50vh); }
    .elementor .pf-chapter::after {
      animation: pf-node-done linear both, pf-node-on linear none; animation-timeline: --pf-chapter, --pf-chapter;
      animation-range: cover calc(50% - 24px) cover 50%, cover 50vh cover calc(100% - 50vh);
    }
  }
  @media (prefers-reduced-motion: no-preference) and (max-width: 1024px) {
    .elementor .pf-chapter::after { animation-range: cover calc(50vh + 46px) cover calc(50vh + 70px), cover 50vh cover calc(100% - 50vh); }
  }
}
/* The sticky index mirrors the spine: each row reads one chapter's timeline, shared up to the story via timeline-scope */
@supports (animation-timeline: view()) and (timeline-scope: none) {
  @media (prefers-reduced-motion: no-preference) and (min-width: 1025px) {
    .elementor .pf-story { timeline-scope: --pf-chs, --pf-ch1, --pf-ch2, --pf-ch3, --pf-ch4, --pf-ch5, --pf-ch6; }
    .elementor .pf-chapter:nth-child(1) { view-timeline: --pf-chapter block, --pf-ch1 block; }
    .elementor .pf-chapter:nth-child(2) { view-timeline: --pf-chapter block, --pf-ch2 block; }
    .elementor .pf-chapter:nth-child(3) { view-timeline: --pf-chapter block, --pf-ch3 block; }
    .elementor .pf-chapter:nth-child(4) { view-timeline: --pf-chapter block, --pf-ch4 block; }
    .elementor .pf-chapter:nth-child(5) { view-timeline: --pf-chapter block, --pf-ch5 block; }
    .elementor .pf-chapter:nth-child(6) { view-timeline: --pf-chapter block, --pf-ch6 block; }
    .elementor .pf-rail::after { animation: pf-grow-y linear both; animation-timeline: --pf-chs; animation-range: cover 50vh cover calc(100% - 50vh); }
    .elementor .pf-rail-item { animation: pf-rail-reached linear both, pf-rail-on linear none; animation-range: cover calc(50vh - 40px) cover 50vh, cover 50vh cover calc(100% - 50vh); }
    .elementor .pf-rail-item::before { animation: pf-node-done linear both, pf-node-on linear none; animation-range: cover calc(50% - 24px) cover 50%, cover 50vh cover calc(100% - 50vh); }
    .elementor .pf-rail-item:nth-child(1), .elementor .pf-rail-item:nth-child(1)::before { animation-timeline: --pf-ch1, --pf-ch1; }
    .elementor .pf-rail-item:nth-child(2), .elementor .pf-rail-item:nth-child(2)::before { animation-timeline: --pf-ch2, --pf-ch2; }
    .elementor .pf-rail-item:nth-child(3), .elementor .pf-rail-item:nth-child(3)::before { animation-timeline: --pf-ch3, --pf-ch3; }
    .elementor .pf-rail-item:nth-child(4), .elementor .pf-rail-item:nth-child(4)::before { animation-timeline: --pf-ch4, --pf-ch4; }
    .elementor .pf-rail-item:nth-child(5), .elementor .pf-rail-item:nth-child(5)::before { animation-timeline: --pf-ch5, --pf-ch5; }
    .elementor .pf-rail-item:nth-child(6), .elementor .pf-rail-item:nth-child(6)::before { animation-timeline: --pf-ch6, --pf-ch6; }
  }
}

/* Services: each heading hangs on its rule; no icon */
.elementor .pf-check::before { content: none; display: none; }
.elementor .pf-scope-item::before {
  content: ""; position: absolute; left: 0; top: 31px; width: 13px; height: 13px;
  background-image: linear-gradient(#32594A, #32594A), linear-gradient(#32594A, #32594A);
  background-size: 13px 1px, 1px 13px; background-position: center; background-repeat: no-repeat;
}

/* Growth: statements with the figure set heavy, and a chart of the average team (2.8 hires of 5) */
.elementor .pf-growth-line strong { font-weight: 800; letter-spacing: -0.035em; color: #F6F0E3; }
.elementor .pf-slots .pf-slot { --pf-fill: 0; position: relative; }
.elementor .pf-slots .pf-slot:nth-child(1), .elementor .pf-slots .pf-slot:nth-child(2) { --pf-fill: 1; color: #15291F; }
.elementor .pf-slots .pf-slot:nth-child(3) { --pf-fill: 0.8; color: #15291F; }
.elementor .pf-slots .pf-slot::before {
  content: ""; display: block; position: absolute; inset: 0; top: 0; left: 0; width: 100%; height: 100%; opacity: 1;
  background-color: #F6F0E3; transform-origin: left center; transform: scaleX(var(--pf-fill));
}
.elementor .pf-slots .pf-slot:not(:last-child)::after {
  content: ""; position: absolute; top: 50%; right: calc(-0.5 * clamp(20px, 3vw, 48px) - 7px); width: 13px; height: 13px; transform: translateY(-50%);
  background-image: linear-gradient(#D4DBD5, #D4DBD5), linear-gradient(#D4DBD5, #D4DBD5);
  background-size: 13px 1px, 1px 13px; background-position: center; background-repeat: no-repeat;
}
.elementor .pf-slots .pf-slot { overflow: visible; }
@media (max-width: 767px) { .elementor .pf-slots .pf-slot:not(:last-child)::after { content: none; display: none; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .pf-slots { view-timeline: --pf-slots block; }
    .elementor .pf-slots .pf-slot::before { animation: pf-slot-fill linear both; animation-timeline: --pf-slots; }
    .elementor .pf-slots .pf-slot:nth-child(1)::before { animation-range: entry 30% entry 55%; }
    .elementor .pf-slots .pf-slot:nth-child(2)::before { animation-range: entry 55% entry 80%; }
    .elementor .pf-slots .pf-slot:nth-child(3)::before { animation-range: entry 80% cover 55%; }
    .elementor .pf-slots .pf-slot:nth-child(-n+3) { animation: pf-slot-ink linear both; animation-timeline: --pf-slots; }
    .elementor .pf-slots .pf-slot:nth-child(1) { animation-range: entry 30% entry 38%; }
    .elementor .pf-slots .pf-slot:nth-child(2) { animation-range: entry 55% entry 63%; }
    .elementor .pf-slots .pf-slot:nth-child(3) { animation-range: entry 80% entry 88%; }
  }
}
@keyframes pf-slot-fill { from { transform: scaleX(0); } to { transform: scaleX(var(--pf-fill)); } }
@keyframes pf-slot-ink { from { color: #F6F0E3; } to { color: #15291F; } }

/* FAQ: native details, the brand plus turns into a close mark */
.elementor .pf-faq-q::-webkit-details-marker { display: none; }
.elementor .pf-faq-q::after {
  content: ""; flex: none; width: 14px; height: 14px; color: #15291F;
  background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
  background-size: 14px 1px, 1px 14px; background-position: center; background-repeat: no-repeat;
  transition: transform 480ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor .pf-faq-item[open] > .pf-faq-q::after { transform: rotate(45deg); }
.elementor .pf-faq-q .pf-faq-qt { transition: color 200ms; }
.elementor .pf-faq-q:hover .pf-faq-qt { color: #32594A; }
.elementor .pf-faq-item::details-content { block-size: 0; overflow-y: clip; transition: block-size 520ms cubic-bezier(0.16, 1, 0.3, 1), content-visibility 520ms allow-discrete; }
.elementor .pf-faq-item[open]::details-content { block-size: auto; }

/* Closing mark drifts along its own arrow */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .pf-brandmark { animation: pf-drift linear both; animation-timeline: view(); animation-range: entry 0% exit 100%; }
  }
}
@keyframes pf-drift { from { transform: translate(-10px, 10px); } to { transform: translate(10px, -10px); } }

/* Section reveals, scroll-linked: headings rise, ruled rows are drawn in like a spec table */
@keyframes pf-rule-in { from { opacity: 0.15; clip-path: inset(-8px 100% -8px -8px); } to { opacity: 1; clip-path: inset(-8px -8px -8px -8px); } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .pf-section:not(.pf-hero) .pf-h2,
    .elementor .pf-section:not(.pf-hero) .pf-lead,
    .elementor .pf-check,
    .elementor .pf-scope-item,
    .elementor .pf-quote,
    .elementor .pf-pedigree > .pf-h3 {
      animation: pf-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 50%;
    }
    .elementor .pf-compare-row,
    .elementor .pf-role,
    .elementor .pf-role-cta,
    .elementor .pf-growth-line,
    .elementor .pf-marquee {
      animation: pf-rule-in linear both; animation-timeline: view(); animation-range: entry 5% entry 60%;
    }
  }
}/* End custom CSS */