/* Public pages share the homepage identity. */
.fm-site {
    --navy: var(--brand-navy);
    --deep: var(--brand-deep);
    --blue: var(--brand-blue);
    --blue2: var(--brand-green-dark);
    --red: var(--brand-red);
    --yellow: var(--brand-mint);
    --ink: var(--brand-ink);
    --muted: var(--brand-muted);
    --surface: var(--brand-soft);
    --line: var(--brand-line);
    --max: 1280px;
    --shadow: 0 20px 60px hsl(222 58% 13% / .1);
    background: var(--brand-surface);
    color: var(--ink);
}
.fm-site .container { width: min(calc(100% - 80px), var(--max)); }
.fm-site main { overflow: clip; }
.fm-site [data-site-section] { scroll-margin-top: 108px; }
.fm-site .section { padding: clamp(64px, 7vw, 108px) 0; }
.fm-site .surface { background: var(--surface); }
.fm-site .eyebrow { color: var(--blue2); font-size: .7rem; letter-spacing: .17em; font-weight: 800; }
.fm-site .section-title, .fm-site .home-feature-heading h2, .fm-site .home-about-copy h2,
.fm-site .audience-pathways-head h2 { font-size: clamp(2rem, 3.6vw, 3.65rem); line-height: 1.13; letter-spacing: -.055em; color: var(--navy); }
.fm-site .head { gap: 72px; margin-bottom: 44px; align-items: end; }
.fm-site .lead { color: var(--muted); font-size: 1rem; line-height: 1.8; }
.fm-site .btn { min-height: 50px; padding: 13px 23px; border-radius: 999px; font-size: .8rem; font-weight: 800; box-shadow: none; }
.fm-site .btn.primary { color: #fff; background: linear-gradient(135deg,var(--brand-red),var(--brand-coral)); border-color: transparent; box-shadow: 0 10px 24px hsl(355 62% 54% / .22); }
.fm-site .btn.navy { color: #fff; background: var(--navy); border-color: var(--navy); }
.fm-site .btn.primary:hover, .fm-site .btn.navy:hover { background: var(--blue2); border-color: var(--blue2); }
.fm-site .btn.outline { color: var(--navy); background: transparent; border-color: var(--brand-line); }
.fm-site .btn.outline:hover { background: var(--brand-soft); }
.fm-site :focus-visible { outline: 3px solid var(--brand-mint); outline-offset: 4px; }
.fm-site .crumb, .fm-site .crumb a { color: var(--muted); }
.fm-site .crumb { flex-wrap: wrap; font-size: .75rem; }
.fm-site .crumb a:hover { color: var(--navy); text-decoration: underline; }
.fm-site .fm-header { background: hsl(216 30% 97% / .96); border-bottom: 1px solid var(--line); box-shadow: none; }
.fm-site .nav { min-height: 94px; gap: 24px; }
.fm-site .brand { flex-shrink: 0; gap: 12px; }
.fm-site .brand img { width: 43px; height: 43px; filter: none; }
.fm-site .navbar-brand-name { line-height: 1.12; letter-spacing: -.04em; }
.fm-site .navbar-brand-name span { color: var(--navy); }
.fm-site .brand-licence { max-width: 210px; font-size: .52rem; letter-spacing: .04em; margin-top: 5px; }
.fm-site .header .brand .brand-licence { color: var(--muted); }
.fm-site .navbar-brand-name { word-spacing: .12em; }
.fm-site .header .navbar-brand-name { display: flex; align-items: baseline; gap: .2em; }
.fm-site .site-links { gap: 21px; }
.fm-site .site-links > a, .fm-site .nav-media-menu > summary { color: var(--muted); font-size: .74rem; padding-block: 12px; }
.fm-site .site-links > a[aria-current], .fm-site .site-links > a:hover, .fm-site .nav-media-menu > summary.is-current { color: var(--navy); }
.fm-site .nav-auth { gap: 7px; }
.fm-site .nav-action-button { min-height: 42px; padding: 10px 17px; }
.fm-site .nav-language-button, .fm-site .nav-account-button { min-height: 40px; padding: 9px; background: transparent; border-color: var(--line); }
.fm-site .nav-language-name, .fm-site .nav-account-name { display: none; }
.fm-site .account-popover { background: #fff; border-color: var(--line); border-radius: 15px; box-shadow: var(--shadow); }
.fm-site .account-popover a, .fm-site .account-popover button { color: var(--navy); }
.fm-site .account-popover a:hover, .fm-site .account-popover button:hover { background: var(--surface); }

/* An editorial split hero keeps the message and photography distinct. */
.fm-site .hero { min-height: 690px; height: auto; padding: 0; color: var(--navy); background: var(--brand-surface); isolation: isolate; }
.fm-site .hero::after { display: none; }
.fm-site .hero .hero-media { position: absolute; inset: 28px 28px 28px 53%; overflow: hidden; border-radius: 180px 20px 20px 20px; z-index: 0; }
.fm-site .hero .hero-bg, .fm-site .hero .hero-bg img { width: 100%; height: 100%; }
.fm-site .hero .hero-bg::after { background: linear-gradient(0deg, rgb(13 46 39 / 80%), transparent 65%); }
.fm-site .hero.hero-overlay--balanced .hero-bg::after { background: linear-gradient(0deg, rgb(13 46 39 / 85%), transparent 70%); }
.fm-site .hero.hero-overlay--soft .hero-bg::after { background: linear-gradient(0deg, rgb(13 46 39 / 65%), transparent 60%); }
.fm-site .hero.hero-overlay--strong .hero-bg::after { background: linear-gradient(0deg, rgb(13 46 39 / 95%), rgb(13 46 39 / 20%)); }
.fm-site .hero .hero-bg img { filter: none; }
.fm-site .hero .hero-content { display: grid; grid-template-columns: 1fr; min-height: 690px; padding: 76px 0 90px; position: relative; z-index: 1; align-items: center; }
.fm-site .hero .hero-copy-panel { width: 51%; max-width: 660px; padding: 0 44px 0 0; color: var(--navy); background: transparent; border: none; border-radius: 0; box-shadow: none; backdrop-filter: none; }
.fm-site .hero .eyebrow { color: var(--blue2); }
.fm-site .hero .hero-tagline { color: var(--muted); font-size: .84rem; font-weight: 600; }
.fm-site .hero h1 { font-size: clamp(3rem, 4.7vw, 5.2rem); line-height: 1.07; letter-spacing: -.065em; margin: 0 0 24px; color: var(--navy); }
.fm-site .hero h1 span { color: var(--blue2); }
.fm-site .hero .hero-desc { color: var(--muted); font-size: .94rem; line-height: 1.8; max-width: 490px; }
.fm-site .hero .hero-note { color: var(--muted); border-top: 1px solid var(--line); padding-top: 21px; margin-top: 25px; font-size: .65rem; }
.fm-site .fm-hero-secondary { display: block; width: fit-content; margin-top: 19px; font-size: .76rem; color: var(--navy); font-weight: 700; }
.fm-site .fm-hero-secondary span { margin-left: 12px; }
.fm-site .hero .hero-featured-image { display: none; }
.fm-site .hero--split .hero-media, .fm-site .hero--spotlight .hero-media { display: block; }
.fm-site .hero--reverse .hero-copy-panel { grid-column: 1; grid-row: 1; justify-self: end; padding: 0 0 0 44px; }
.fm-site .hero--reverse .hero-media { inset: 28px 53% 28px 28px; border-radius: 20px 180px 20px 20px; }
.fm-site .hero--reverse .fm-hero-caption { left: 60px; right: 57%; }
.fm-site .hero--centered .hero-content { display: grid; text-align: left; }
.fm-site .hero--centered .hero-desc { margin-left: 0; }
.fm-site .hero--caption .hero-copy-panel { display: block; grid-template-columns: none; }
.fm-site .hero--spotlight .hero-media { border-radius: 50%; inset: 70px 35px 70px 54%; }
.fm-site .hero--spotlight .fm-hero-caption { left: 60%; right: 10%; bottom: 125px; }
.fm-site .fm-hero-caption { position: absolute; z-index: 2; left: 57%; right: 60px; bottom: 82px; display: grid; gap: 12px; color: #fff; pointer-events: none; }
.fm-site .fm-hero-caption > span { font-size: .65rem; letter-spacing: .2em; opacity: .85; }
.fm-site .fm-hero-caption strong { font-size: clamp(1.7rem, 2.5vw, 2.8rem); letter-spacing: -.04em; line-height: 1.2; }
.fm-site .fm-hero-caption b { position: absolute; right: 0; bottom: 0; width: 56px; height: 56px; display: grid; place-items: center; border: 1px solid #fff8; border-radius: 50%; font-size: 1.7rem; }
.fm-site .hero .hero-carousel-controls { right: 65px; bottom: 43px; left: auto; z-index: 3; }
.fm-site .hero .dots { position: static; }
.fm-site .hero .dots button.active { background: var(--brand-mint); }
.fm-site .hero .hero-carousel-pause { background: hsl(220 52% 28% / .47); }
.fm-site .hero--spotlight .hero-carousel-controls { bottom: 88px; right: 100px; }
.fm-site .trust { margin: 0; border-block: 1px solid var(--line); background: var(--brand-soft); }
.fm-site .trust-grid { background: transparent; color: var(--navy); border-radius: 0; box-shadow: none; }
.fm-site .trust-item { min-height: 108px; border-color: var(--brand-line); }
.fm-site .trust-item b { color: var(--blue2); background: hsl(152 35% 92%); border-radius: 12px; }
.fm-site .trust-item small { color: var(--muted); }

/* Shared inner-page heroes, with their own media and copy. */
.fm-site .page-hero { min-height: 630px; display: block; color: var(--navy); background: var(--brand-soft); padding: 0; }
.fm-site .page-hero::after { display: none; }
.fm-site .page-hero > img { inset: 26px 26px 26px auto; width: 35%; height: calc(100% - 52px); opacity: 1; border-radius: 28px; }
.fm-site .page-hero .hero-inner { width: min(calc(100% - 80px), var(--max)); padding: 58px 39% 54px 0; }
.fm-site .page-hero .hero-grid { grid-template-columns: 1fr; gap: 22px; }
.fm-site .page-hero .display { color: var(--navy); font-size: clamp(2.8rem, 4.5vw, 4.9rem); line-height: 1.1; }
.fm-site .page-hero .display em { color: var(--blue2); }
.fm-site .page-hero .eyebrow { color: var(--blue2); }
.fm-site .page-hero .lead { color: var(--muted); max-width: 620px; }
.fm-site .hero-actions .outline { color: var(--navy); background: transparent; border-color: var(--brand-line); }
.fm-site .metric-row { margin-top: 36px; border-color: var(--brand-line); gap: 20px; }
.fm-site .metric { padding-top: 18px; }
.fm-site .metric b { color: var(--blue2); font-size: .6rem; }
.fm-site .metric strong { color: var(--navy); font-size: .75rem; line-height: 1.6; }
.fm-site .about-hero { background: var(--brand-soft); padding: 65px 0 80px; }
.fm-site .about-hero-grid { gap: 65px; }
.fm-site .about-hero .display { color: var(--navy); font-size: clamp(2.8rem, 4.7vw, 5rem); line-height: 1.1; }
.fm-site .about-hero .display em { color: var(--blue2); }
.fm-site .about-visual-main { border-radius: 28px; box-shadow: none; }
.fm-site .about-visual-main img { min-height: 490px; object-fit: cover; }
.fm-site .about-visual-caption { background: var(--navy); }
.fm-site .about-hero-proof { border-color: var(--brand-line); background: #fff; }
.fm-site .about-hero-proof { color: var(--navy); padding: 14px 18px; border: 1px solid var(--line); border-radius: 14px; width: fit-content; }
.fm-site .about-hero-proof small { color: var(--muted); }
.fm-site .about-hero-proof strong { color: var(--navy); }
.fm-site .about-hero-redesign .about-hero-copy .display { font-size: clamp(2.8rem, 4.7vw, 5rem); }
.fm-site .about-hero-redesign .about-hero-copy .lead { color: var(--muted); }
.fm-site .about-hero-proof > span { color: var(--blue2); background: hsl(152 35% 92%); }
.fm-site .hero-mark { background: var(--brand-surface); border-color: var(--line); }
.fm-site .hero-mark img, .fm-site .commitment-heart img { filter: none; }
.fm-site .countries-hero { background: var(--deep); padding: 65px 0 80px; }
.fm-site .countries-hero h1 { font-size: clamp(3rem, 5vw, 5.4rem); line-height: 1.08; }
.fm-site .countries-hero h1 span { color: var(--brand-mint); }
.fm-site .countries-hero .eyebrow { color: var(--brand-mint); }
.fm-site .countries-hero .crumb, .fm-site .countries-hero .crumb a { color: hsl(216 25% 78%); }
.fm-site .countries-hero .btn.primary { color: var(--deep); background: var(--brand-mint); border-color: var(--brand-mint); }
.fm-site .countries-hero .btn.outline { color: #fff; border-color: hsl(217 25% 60%); }
.fm-site .countries-hero-glow { background: radial-gradient(ellipse, hsl(217 50% 40% / .4), transparent 70%); }
.fm-site .countries-world-badge { background: var(--brand-navy); border-color: hsl(217 25% 60%); }
.fm-site .countries-world-badge, .fm-site .countries-world-badge strong { color: #fff; }
.fm-site .countries-world-badge span { color: hsl(216 25% 78%); }
.fm-site .country-hero-editorial { background: var(--brand-soft); color: var(--navy); }
.fm-site .country-hero-editorial h1 { color: var(--navy); letter-spacing: -.065em; }
.fm-site .country-hero-summary { color: var(--muted); }
.fm-site .country-hero-editorial .country-label p, .fm-site .country-hero-facts dt { color: var(--muted); }
.fm-site .country-hero-facts dd { color: var(--navy); }
.fm-site .country-hero-facts { border-color: var(--line); }
.fm-site .country-page { background: var(--brand-surface); }
.fm-site .country-hero-code { color: var(--brand-line); }
.fm-site .country-hero-visual figure { border-radius: 28px; box-shadow: none; }
.fm-site .country-hero-flag, .fm-site .country-route-stamp, .fm-site .country-facts-panel { background: #fff; border-color: var(--line); border-radius: 20px; }
.fm-site .industry-detail-hero { color: var(--navy); background: var(--brand-soft); min-height: 540px; }
.fm-site .industry-detail-hero::after { display: none; }
.fm-site .industry-detail-hero > img { left: auto; right: 28px; top: 28px; width: 40%; height: calc(100% - 56px); border-radius: 140px 18px 18px 18px; opacity: 1; }
.fm-site .industry-detail-hero > .container { padding-right: 46%; }
.fm-site .industry-detail-hero h1 { color: var(--navy); font-size: clamp(3rem, 5vw, 5rem); }
.fm-site .industry-detail-hero p { color: var(--muted); }
.fm-site .industry-detail-hero p:not(.eyebrow) { color: var(--muted); }
.fm-site .industry-detail-hero .crumb, .fm-site .industry-detail-hero .crumb a { color: var(--muted); }
.fm-site .industry-detail-overview { background: var(--brand-surface); }
.fm-site .industry-profile-facts > section { background: #fff; border-color: var(--line); box-shadow: none; }
.fm-site .industry-profile-facts > section:last-child { background: var(--navy); }
.fm-site .media-hero { position: relative; padding: 85px 0; color: var(--navy); background: var(--brand-soft); border: 0; overflow: hidden; }
.fm-site .media-hero::after { content: "↗"; position: absolute; right: 5%; top: -80px; color: var(--brand-line); font: 600 30rem/1 Manrope, sans-serif; pointer-events: none; }
.fm-site .media-hero .container { position: relative; z-index: 1; }
.fm-site .media-hero h1 { color: var(--navy); max-width: 900px; font-size: clamp(3rem, 5.7vw, 5.6rem); line-height: 1.1; }
.fm-site .media-hero h1 span { color: var(--blue2); }
.fm-site .media-hero p { color: var(--muted); }
.fm-site .media-hero .container > p:not(.eyebrow) { color: var(--muted); }
.fm-site .media-hero-meta > span { border-color: var(--brand-line); }
.fm-site .media-hero .eyebrow { color: var(--blue2); }
.fm-site .media-hero-meta { color: var(--navy); }
.fm-site .process-hero { color: var(--navy); background: var(--brand-soft); }

/* Section families: quiet surfaces, soft corners and useful visual hierarchy. */
.fm-site .audience-pathways { background: var(--brand-surface); }
.fm-site .audience-pathway { padding: 42px; border-radius: 24px; box-shadow: none; border: 1px solid var(--line); }
.fm-site .audience-pathway-employer { color: var(--navy); background: var(--brand-soft); }
.fm-site .audience-pathway-candidate { color: var(--navy); background: hsl(2 65% 96%); }
.fm-site .audience-pathway h2 { color: var(--navy); font-size: clamp(1.7rem, 2.6vw, 2.6rem); line-height: 1.2; }
.fm-site .audience-pathway p { color: var(--muted); }
.fm-site .audience-pathway .eyebrow { color: var(--blue2); }
.fm-site .audience-pathway-actions .btn { color: #fff; background: var(--navy); }
.fm-site .audience-pathway-actions .btn.outline { background: transparent; color: var(--navy); }
.fm-site .home-about-shell, .fm-site .about-company-shell { gap: 75px; }
.fm-site .home-about-image, .fm-site .about-company-photo { border-radius: 28px; overflow: hidden; box-shadow: none; }
.fm-site .home-about-image > div { background: var(--navy); color: #fff; }
.fm-site .home-about-cycle span, .fm-site .pill, .fm-site .country-sector-list strong { color: var(--blue2); background: var(--brand-soft); border-color: var(--brand-line); border-radius: 999px; }
.fm-site .services { background: var(--brand-soft); }
.fm-site .service-grid { gap: 28px; }
.fm-site .home-service-list { border: 0; border-radius: 18px; background: transparent; }
.fm-site .home-service-list button { min-height: 78px; border-bottom: 1px solid var(--brand-line); color: var(--navy); background: transparent; }
.fm-site .home-service-list button[aria-selected=true] { color: #fff; background: var(--navy); border-radius: 14px; }
.fm-site .home-service-list button b { color: var(--blue2); background: hsl(152 35% 92%); border-radius: 50%; }
.fm-site .home-service-detail { background: #fff; border: 1px solid var(--line); border-radius: 24px; box-shadow: none; padding: 44px; color: var(--navy); }
.fm-site .home-service-detail h3 { color: var(--navy); font-size: 2rem; line-height: 1.2; }
.fm-site .home-service-detail p { color: var(--muted); }
.fm-site .home-service-detail .eyebrow, .fm-site .home-service-all { color: var(--blue2); }
.fm-site .card, .fm-site .purpose-card, .fm-site .doc, .fm-site .timeline-card,
.fm-site .team-card, .fm-site .why-fm-associates-card, .fm-site .industry-card,
.fm-site .country-industry-card, .fm-site .home-story-card, .fm-site .story-card,
.fm-site .home-video-card, .fm-site .home-job-card, .fm-site .modern-job-card {
    background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: none;
}
.fm-site .card:hover, .fm-site .industry-card:hover, .fm-site .modern-job-card:hover { border-color: hsl(217 25% 60%); box-shadow: var(--shadow); transform: translateY(-4px); }
.fm-site .card { padding: 32px; }
.fm-site .card-index { color: var(--blue2); }
.fm-site .card h3 { margin-top: 38px; font-size: 1.4rem; }
.fm-site .purpose-card, .fm-site .doc { padding: 34px; }
.fm-site .purpose-card:first-child { color: #fff; background: var(--navy); }
.fm-site .purpose-card:last-child { color: var(--navy); background: hsl(2 65% 96%); }
.fm-site .about-company-section { background: var(--brand-surface); }
.fm-site .home-compliance { background: var(--brand-soft); color: var(--navy); border-block: 1px solid var(--line); }
.fm-site .home-compliance h2, .fm-site .home-compliance strong { color: var(--navy); }
.fm-site .home-compliance p, .fm-site .home-compliance small { color: var(--muted); }
.fm-site .home-compliance-identity { border-color: var(--brand-line); }
.fm-site .home-compliance-facts > div { border-color: var(--brand-line); }
.fm-site .home-compliance-copy .eyebrow, .fm-site .home-compliance-copy a,
.fm-site .home-compliance-facts span, .fm-site .home-compliance-facts a { color: var(--blue2); }
.fm-site .home-founder-shell, .fm-site .founder-card, .fm-site .licence-shell { border-radius: 26px; box-shadow: none; border-color: var(--line); }
.fm-site .home-founder-preface { background: var(--brand-surface); }
.fm-site .home-founder-copy h2 { font-size: clamp(2rem, 3.5vw, 3.5rem); color: var(--navy); }
.fm-site .commitment-shell { background: var(--brand-soft); border-radius: 26px; }
.fm-site .commitment-graphic { background: var(--navy); }
.fm-site .commitment-copy { color: var(--navy); }
.fm-site .commitment-copy .section-title { color: var(--navy); }
.fm-site .commitment-copy .eyebrow { color: var(--blue2); }
.fm-site .commitment-copy .lead, .fm-site .commitment-point:not(.commitment-lead) p { color: var(--muted); }
.fm-site .commitment-point, .fm-site .commitment-signoff { border-color: var(--line); }
.fm-site .commitment-signoff b { color: var(--navy); }
.fm-site .why-fm-associates-section { background: var(--brand-soft); }
.fm-site .home-process-preview, .fm-site .countries-process-section { background: var(--brand-surface); }
.fm-site .process-visual { background: var(--brand-soft); border-radius: 24px; border-color: var(--line); }
.fm-site .process-visual-card { background: #fff; border-radius: 16px; border-color: var(--line); }
.fm-site .process-visual-card-heading b, .fm-site .countries-process-marker { color: var(--navy); background: hsl(152 35% 92%); }
.fm-site .countries-process-step { background: #fff; border-color: var(--line); border-radius: 18px; }
.fm-site .dark-section { background: var(--navy); }
.fm-site .dark-section .eyebrow { color: var(--brand-mint); }
.fm-site .dark-section .section-title { color: #fff; }
.fm-site .dark-section .lead { color: hsl(216 25% 78%); }
.fm-site .process-step { background: #ffffff0a; border-color: #ffffff20; border-radius: 14px; }
.fm-site .destinations-section { background: var(--brand-surface); }
.fm-site .destination-card { background: #fff; border-color: var(--line); border-radius: 22px; box-shadow: none; }
.fm-site .destination-tags span { background: var(--brand-soft); color: var(--navy); }
.fm-site .network-map { background: var(--brand-soft); border-color: var(--brand-line); border-radius: 28px; }
.fm-site .map-section { background: var(--brand-soft); }
.fm-site .band, .fm-site .cta, .fm-site .process-cta, .fm-site .industry-contact-cta {
    color: #fff; background: var(--navy); border-radius: 28px; box-shadow: none; border: 0;
}
.fm-site .band h2, .fm-site .cta h2, .fm-site .industry-contact-cta h2 { color: #fff; letter-spacing: -.045em; }
.fm-site .band p, .fm-site .cta p, .fm-site .industry-contact-cta p { color: hsl(216 25% 78%); }
.fm-site .band .eyebrow, .fm-site .cta .eyebrow { color: var(--brand-mint); }
.fm-site .band .btn.primary, .fm-site .cta .btn.primary, .fm-site .process-cta .btn.primary { color: var(--navy); background: var(--brand-mint); border-color: var(--brand-mint); }
.fm-site .band .btn.outline, .fm-site .cta .btn.outline { color: #fff; border-color: hsl(217 25% 60%); }
.fm-site .content-empty, .fm-site .media-empty, .fm-site .home-jobs-empty,
.fm-site .home-gallery-empty, .fm-site .home-stories-empty, .fm-site .home-video-empty,
.fm-site .fm-empty-state { background: var(--brand-soft); border: 1px dashed hsl(217 25% 60%); border-radius: 22px; padding: 48px 28px; color: var(--muted); }
.fm-site .fm-empty-state .btn { margin-top: 18px; }
.fm-site .content-empty h3 { margin-top: 0; color: var(--navy); font-size: 1.4rem; }
.fm-site .content-empty > a:not(.btn) { color: var(--blue2); font-weight: 700; }
.fm-site .sister-concerns-home { background: var(--brand-surface); }
.fm-site .sister-concern-home-identity, .fm-site .sister-concern-slide { border-color: var(--line); background: #fff; border-radius: 18px; }
.fm-site .sister-concerns-home-head h2, .fm-site .sister-concerns-about-copy h2 { color: var(--navy); font-size: clamp(2rem, 3.6vw, 3.65rem); letter-spacing: -.055em; }
.fm-site .industry-showcase-card, .fm-site .home-gallery-card { border-radius: 22px; }
.fm-site .home-gallery { background: var(--brand-soft); }
.fm-site .carousel-controls button { color: var(--navy); background: #fff; border-color: var(--line); border-radius: 50%; }
.fm-site .home-feature-heading a, .fm-site .home-gallery-heading a { color: var(--blue2); }
.fm-site .team-copy h3, .fm-site .auth-card h2, .fm-site .account-heading h1,
.fm-site .account-card-heading h2, .fm-site .story-form-container h1,
.fm-site .story-detail h1 { color: var(--navy); }

/* Jobs, candidate forms and account screens. */
.fm-site .jobs-directory, .fm-site .jobs.section, .fm-site .media-section { background: var(--brand-surface); }
.fm-site .job-search-panel { padding: 26px; border-radius: 22px; background: var(--brand-soft); border-color: var(--brand-line); box-shadow: none; }
.fm-site .job-search-panel input, .fm-site .job-search-panel select { background: #fff; border-color: var(--brand-line); border-radius: 12px; min-height: 52px; }
.fm-site .job-results-bar { padding-block: 24px; }
.fm-site .modern-job-grid { gap: 24px; }
.fm-site .modern-job-image { height: 210px; }
.fm-site .modern-job-body { padding: 26px; }
.fm-site .modern-job-body h3 { font-size: 1.4rem; color: var(--navy); }
.fm-site .modern-job-meta > span { color: var(--blue2); background: var(--brand-soft); border-radius: 999px; }
.fm-site .modern-job-footer { border-color: var(--line); }
.fm-site .modern-job-footer > span { color: var(--blue2); }
.fm-site .notice { padding: 20px 24px; color: hsl(355 40% 32%); background: hsl(2 65% 96%); border: 1px solid hsl(2 45% 88%); border-radius: 14px; }
.fm-site .form-card, .fm-site .story-form-card, .fm-site .auth-card, .fm-site .account-card {
    background: #fff; border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow);
}
.fm-site .form-card { padding: 38px; }
.fm-site .field input, .fm-site .field select, .fm-site .field textarea,
.fm-site .form-field input, .fm-site .form-field select, .fm-site .form-field textarea {
    background: var(--brand-surface); border-color: var(--brand-line); border-radius: 10px; min-height: 49px; color: var(--ink);
}
.fm-site .field input:focus, .fm-site .field select:focus, .fm-site .field textarea:focus,
.fm-site .form-field input:focus, .fm-site .form-field textarea:focus { border-color: var(--blue2); outline-color: hsl(152 45% 72% / .27); }
.fm-site .form-section-title { color: var(--blue2); border-color: var(--line); }
.fm-site input[type=checkbox], .fm-site input[type=radio] { accent-color: var(--blue2); min-height: auto; }
.fm-site .contact-image-panel { border-radius: 26px; background-color: var(--navy); box-shadow: none; }
.fm-site .contact-image-panel .eyebrow { color: var(--brand-mint); }
.fm-site .contact-image-panel .section-title { color: #fff; }
.fm-site .contact-image-panel .lead { color: hsl(216 25% 78%); }
.fm-site .contact-section-copy .btn { white-space: normal; }
.fm-site .auth-section { background: var(--brand-soft); gap: 64px; padding: 90px max(40px, calc((100vw - 1150px)/2)); }
.fm-site .auth-intro { color: var(--navy); background: transparent; }
.fm-site .auth-intro h1 { color: var(--navy); font-size: clamp(3rem, 5vw, 5rem); line-height: 1.1; }
.fm-site .auth-intro p, .fm-site .auth-intro a { color: var(--muted); }
.fm-site .auth-card { padding: 42px; }
.fm-site .account-card-heading { background: var(--brand-soft); border-color: var(--line); }
.fm-site .story-detail { background: #fff; border-radius: 24px; }
.fm-site .jobs-modal-body, .fm-site .jobs-employer-body, .fm-site .modal-body { background: #fff; }
.fm-site .jobs-modal-facts > div { background: var(--brand-soft); border-color: var(--line); }
.fm-site .modal, .fm-site .jobs-detail-modal, .fm-site .jobs-employer-modal { border-radius: 24px; }

/* The footer closes each page with a useful invitation. */
.fm-site .fm-footer { color: hsl(216 25% 78%); background: var(--deep); padding-top: 70px; border: 0; }
.fm-site .fm-footer-intro { padding-bottom: 55px; border-bottom: 1px solid #ffffff20; margin-bottom: 55px; }
.fm-site .fm-footer-intro .eyebrow { color: var(--brand-mint); }
.fm-site .fm-footer-intro > div { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.fm-site .fm-footer-intro h2 { color: #fff; font-size: clamp(2.4rem, 4vw, 4rem); font-weight: 600; line-height: 1.1; letter-spacing: -.05em; margin: 0; }
.fm-site .fm-footer-intro .btn { color: var(--navy); background: var(--brand-mint); border-color: var(--brand-mint); margin: 0; padding: 16px 26px; }
.fm-site .footer-grid { gap: 45px; }
.fm-site .footer h3 { color: #fff; letter-spacing: .05em; font-size: .75rem; }
.fm-site .footer .brand strong { color: #fff; font-size: 1.4rem; }
.fm-site .footer p, .fm-site .footer a, .fm-site .footer span { color: hsl(216 25% 78%); font-size: .8rem; }
.fm-site .footer a:hover { color: var(--brand-mint); }
.fm-site .footer-bottom { border-color: #ffffff20; padding-block: 26px; }
.fm-site .footer-social-icon { border-color: #ffffff25; background: #ffffff0a; }

@media(min-width: 1101px) and (max-width: 1380px) {
    .fm-site .nav { gap: 17px; }
    .fm-site .site-links { gap: 13px; }
    .fm-site .site-links > a, .fm-site .nav-media-menu > summary { font-size: .68rem; }
    .fm-site .brand-licence { max-width: 175px; }
    .fm-site .navbar-brand-name { font-size: 1.1rem; }
    .fm-site .navbar-brand-name span { font-size: 1.1rem; }
}
@media(min-width: 1181px) and (max-width: 1440px) {
    .fm-site .header .nav-toggle { display: none; }
    .fm-site .header .site-menu, .fm-site .header .site-menu.open {
        position: static !important; display: flex !important; max-height: none; padding: 0 !important;
        overflow: visible; background: transparent !important; border: 0 !important; border-radius: 0;
        box-shadow: none !important; flex-direction: row; align-items: center; gap: 18px;
    }
    .fm-site .header .site-links { width: auto; flex-direction: row; align-items: center; gap: 13px; }
    .fm-site .header .site-links > a, .fm-site .header .nav-media-menu > summary { white-space: nowrap; font-size: .72rem; }
    .fm-site .header .nav-auth { display: flex; grid-template-columns: none; margin-left: auto; gap: 7px; }
    .fm-site .header .nav-auth .btn { width: auto; min-height: 40px; font-size: .72rem; padding: 9px 11px; }
    .fm-site .header .auth-menu .account-popover { position: absolute; width: 200px; box-shadow: var(--shadow); }
}
@media(max-width: 1100px) {
    .fm-site .container { width: min(calc(100% - 48px), var(--max)); }
    .fm-site .nav { min-height: 80px; }
    .fm-site .site-menu { background: var(--brand-surface); border-color: var(--line); }
    .fm-site .site-links { gap: 0; }
    .fm-site .site-links > a, .fm-site .nav-media-menu > summary { font-size: .85rem; }
    .fm-site .nav-language-name, .fm-site .nav-account-name { display: inline; }
    .fm-site .hero, .fm-site .hero .hero-content { min-height: 640px; }
    .fm-site .hero .hero-media { left: 54%; right: 20px; }
    .fm-site .hero .hero-copy-panel { width: 54%; padding-right: 32px; }
    .fm-site .hero h1 { font-size: 3.3rem; }
    .fm-site .fm-hero-caption { left: 58%; right: 40px; }
    .fm-site .fm-hero-caption b { display: none; }
    .fm-site .page-hero .hero-inner { width: calc(100% - 48px); padding-right: 39%; }
    .fm-site .page-hero .display { font-size: 3.2rem; }
    .fm-site .about-hero-grid { gap: 36px; }
    .fm-site .about-hero .display { font-size: 3.2rem; }
    .fm-site .head, .fm-site .home-about-shell, .fm-site .about-company-shell { gap: 35px; }
    .fm-site .job-search-panel { grid-template-columns: 1fr 1fr; }
    .fm-site .auth-section { padding: 70px 30px; gap: 35px; }
}
@media(max-width: 760px) {
    .fm-site .container { width: calc(100% - 36px); }
    .fm-site .nav { min-height: 76px; }
    .fm-site .hero { padding-bottom: 335px; min-height: 0; }
    .fm-site .hero .hero-content { min-height: 0; padding: 48px 0 38px; }
    .fm-site .hero .hero-copy-panel { width: 100%; max-width: none; padding: 0; }
    .fm-site .hero h1 { font-size: clamp(2.8rem, 8vw, 4.2rem); max-width: 620px; }
    .fm-site .hero .hero-desc { max-width: none; }
    .fm-site .hero .hero-media { inset: auto 18px 18px; height: 310px; border-radius: 80px 16px 16px 16px; }
    .fm-site .hero--reverse .hero-copy-panel { justify-self: stretch; padding: 0; grid-row: 1; }
    .fm-site .hero--reverse .hero-media, .fm-site .hero--spotlight .hero-media { inset: auto 18px 18px; border-radius: 80px 16px 16px 16px; }
    .fm-site .hero--reverse .fm-hero-caption, .fm-site .hero--spotlight .fm-hero-caption { left: 42px; right: 42px; bottom: 68px; }
    .fm-site .hero--spotlight .hero-carousel-controls { bottom: 32px; right: 40px; }
    .fm-site .fm-hero-caption { left: 42px; right: 42px; bottom: 68px; }
    .fm-site .fm-hero-caption strong { font-size: 1.9rem; }
    .fm-site .hero .hero-carousel-controls { right: 40px; bottom: 32px; }
    .fm-site .trust-grid { grid-template-columns: 1fr; }
    .fm-site .trust-item { border-right: 0; border-bottom: 1px solid var(--line); min-height: 84px; padding: 18px 8px; }
    .fm-site .page-hero { min-height: 0; padding-bottom: 280px; }
    .fm-site .page-hero .hero-inner { width: calc(100% - 36px); padding: 40px 0; }
    .fm-site .page-hero .display { font-size: clamp(2.5rem, 8vw, 3.8rem); }
    .fm-site .page-hero > img { inset: auto 18px 18px; width: calc(100% - 36px); height: 260px; border-radius: 70px 16px 16px 16px; }
    .fm-site .metric-row { gap: 12px; margin-top: 26px; }
    .fm-site .metric strong { font-size: .67rem; }
    .fm-site .about-hero { padding: 42px 0; }
    .fm-site .about-hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .fm-site .about-visual-main { border-radius: 100px 16px 16px 16px; }
    .fm-site .about-visual-main img { min-height: 0; height: 350px; }
    .fm-site .about-hero .display { font-size: 2.8rem; }
    .fm-site .countries-hero { padding: 40px 0 55px; }
    .fm-site .countries-hero h1 { font-size: 3rem; }
    .fm-site .country-hero-visual figure { border-radius: 80px 16px 16px 16px; }
    .fm-site .industry-detail-hero { padding-bottom: 280px; min-height: 0; }
    .fm-site .industry-detail-hero > .container { padding-right: 0; }
    .fm-site .industry-detail-hero > img { inset: auto 18px 18px; width: calc(100% - 36px); height: 250px; border-radius: 70px 16px 16px 16px; }
    .fm-site .media-hero { padding: 55px 0; }
    .fm-site .media-hero h1 { font-size: 3rem; }
    .fm-site .media-hero::after { font-size: 20rem; top: 20px; right: -100px; }
    .fm-site .head { grid-template-columns: 1fr; gap: 18px; margin-bottom: 30px; }
    .fm-site .audience-pathway { padding: 28px; }
    .fm-site .home-service-detail { padding: 28px; }
    .fm-site .home-about-shell, .fm-site .about-company-shell { gap: 35px; }
    .fm-site .home-about-image { border-radius: 18px 80px 18px 18px; }
    .fm-site .card, .fm-site .purpose-card, .fm-site .doc { padding: 26px; }
    .fm-site .job-search-panel { padding: 20px; grid-template-columns: 1fr; }
    .fm-site .modern-job-image { height: 220px; }
    .fm-site .form-card, .fm-site .auth-card { padding: 26px; }
    .fm-site .auth-section { grid-template-columns: 1fr; padding: 48px 18px; }
    .fm-site .auth-intro h1 { font-size: 3.2rem; }
    .fm-site .band, .fm-site .cta, .fm-site .process-cta { padding: 30px; border-radius: 22px; }
    .fm-site .footer-grid { gap: 35px; }
    .fm-site .fm-footer-intro > div { align-items: flex-start; flex-direction: column; }
    .fm-site .fm-footer-intro { padding-bottom: 35px; margin-bottom: 35px; }
    .fm-site .fm-footer-intro h2 { font-size: 2.8rem; }
}
@media(prefers-reduced-motion: reduce) {
    .fm-site *, .fm-site *::before, .fm-site *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Page-specific compositions use the same navy opening and mint headline accent. */
.fm-site .page-hero { min-height: 620px; isolation: isolate; background: var(--brand-deep); color: #fff; }
.fm-site .page-hero > img { inset: 0; width: 100%; height: 100%; opacity: .55; border-radius: 0; z-index: -2; }
.fm-site .page-hero::after { display: block; z-index: -1; background: linear-gradient(90deg,hsl(222 58% 9% / .94),hsl(222 58% 9% / .7) 60%,hsl(222 58% 9% / .25)); }
.fm-site .page-hero .hero-inner { padding: 76px 0 64px; }
.fm-site .page-hero .hero-grid { max-width: 900px; gap: 24px; }
.fm-site .page-hero .display { color: #fff; max-width: 960px; font-weight: 700; letter-spacing: -.055em; line-height: 1.02; text-wrap: balance; }
.fm-site :is(.page-hero,.about-hero,.media-hero) :is(.display em,h1 span) { color: var(--brand-mint); font-style: normal; }
.fm-site :is(.page-hero,.about-hero,.media-hero) .eyebrow { color: var(--brand-mint); }
.fm-site :is(.page-hero,.about-hero,.media-hero) .lead, .fm-site .media-hero .container > p:not(.eyebrow) { color: rgb(255 255 255 / .76); }
.fm-site :is(.page-hero,.about-hero,.media-hero) :is(.crumb,.crumb a) { color: rgb(255 255 255 / .6); }
.fm-site :is(.page-hero,.about-hero,.countries-hero) .btn.outline { color: #fff; border-color: rgb(255 255 255 / .35); background: rgb(255 255 255 / .06); }
.fm-site .page-hero .metric-row { max-width: 960px; border-color: rgb(255 255 255 / .2); }
.fm-site .page-hero .metric b { color: var(--brand-mint); }
.fm-site .page-hero .metric strong { color: #fff; font-weight: 600; }
.fm-site .about-hero { padding: 70px 0; color: #fff; background: radial-gradient(ellipse at 90% 80%,hsl(217 50% 40% / .5),transparent 55%),var(--brand-deep); }
.fm-site .about-hero .display { color: #fff; font-weight: 700; letter-spacing: -.055em; }
.fm-site .about-hero-redesign .about-hero-copy .lead { color: rgb(255 255 255 / .76); }
.fm-site .about-visual-main { border: 1px solid rgb(255 255 255 / .2); box-shadow: 0 24px 65px rgb(0 0 0 / .25); }
.fm-site .about-hero-proof { color: #fff; border-color: rgb(255 255 255 / .2); background: rgb(255 255 255 / .06); }
.fm-site .about-hero-proof strong { color: #fff; }
.fm-site .about-hero-proof small { color: rgb(255 255 255 / .68); }
.fm-site .about-hero-proof > span { color: var(--brand-mint); background: hsl(152 38% 42% / .2); }
.fm-site .countries-hero { background: radial-gradient(ellipse at 85% 55%,hsl(217 50% 40% / .45),transparent 60%),var(--brand-deep); }
.fm-site .countries-hero .btn.primary, .fm-site :is(.band,.cta,.process-cta) .btn.primary { color: #fff; background: linear-gradient(135deg,var(--brand-red),var(--brand-coral)); border-color: transparent; }
.fm-site .media-hero { color: #fff; background: radial-gradient(ellipse at top right,hsl(217 50% 40% / .55),transparent 65%),var(--brand-deep); }
.fm-site .media-hero h1 { color: #fff; font-weight: 700; letter-spacing: -.055em; }
.fm-site .media-hero::after { color: rgb(255 255 255 / .04); font-family: var(--brand-display); }
.fm-site .media-hero-meta { color: rgb(255 255 255 / .8); }
.fm-site .media-hero-meta > span { border-color: rgb(255 255 255 / .2); }
.fm-site :is(.section-title,.head h2) { font-weight: 600; letter-spacing: -.04em; }
.fm-site :is(.card,.industry-card,.destination-card,.modern-job-card,.story-card,.doc,.why-fm-associates-card) { box-shadow: 0 12px 36px hsl(222 58% 13% / .05); }
.fm-site :is(.card,.industry-card,.destination-card,.modern-job-card):hover { border-color: var(--brand-blue); box-shadow: 0 20px 50px hsl(222 58% 13% / .12); }
.fm-site :is(.filter-tab,.filter-btn,.media-filter)[aria-pressed=true] { color: #fff; background: var(--brand-navy); }
.fm-site .notice { border-inline-start: 3px solid var(--brand-coral); }
@media (max-width: 760px) {
    .fm-site .page-hero { min-height: 0; padding-bottom: 0; }
    .fm-site .page-hero .hero-inner { padding: 48px 0; }
    .fm-site .page-hero > img { inset: 0; width: 100%; height: 100%; border-radius: 0; }
    .fm-site .page-hero .display { font-size: clamp(2.4rem,10vw,3.5rem); }
    .fm-site .about-hero { padding: 45px 0; }
    .fm-site .about-hero .display { font-size: clamp(2.4rem,10vw,3.5rem); }
    .fm-site .about-visual-main { border-radius: 24px; }
    .fm-site .media-hero h1 { font-size: clamp(2.5rem,10vw,3.5rem); }
    .fm-site .metric-row { grid-template-columns: 1fr; gap: 12px; }
    .fm-site .metric { padding-top: 12px; }
}

.fm-site .contact-info { background: var(--brand-navy); border: 1px solid var(--brand-line); border-radius: 24px; }
.fm-site .contact-info .eyebrow { color: var(--brand-mint); }
.fm-site .contact-info > p:not(.eyebrow) { color: rgb(255 255 255 / .72); }

.fm-site .service-deliverables { margin:24px 0 0; padding-top:18px; border-top:1px solid var(--brand-line); }
.fm-site .service-deliverables > div + div { margin-top:18px; }
.fm-site .service-deliverables dt { color:var(--brand-green-dark); font-size:.72rem; font-weight:800; }
.fm-site .service-deliverables dd { margin:6px 0 0; color:var(--brand-muted); font-size:.82rem; line-height:1.65; }
.fm-site .process-responsibilities { margin:18px 0 0; padding-top:14px; border-top:1px solid currentColor; }
.fm-site .process-responsibilities > div + div { margin-top:12px; }
.fm-site .process-responsibilities dt { font-size:.7rem; font-weight:800; opacity:.95; }
.fm-site .process-responsibilities dd { margin:4px 0 0; font-size:.76rem; line-height:1.6; opacity:.85; }
.fm-site .country-reviewed { width:fit-content; padding:7px 13px; border:1px solid var(--brand-line); border-radius:999px; color:var(--brand-muted); background:var(--brand-soft); font-size:.72rem; }

.fm-site .countries-process-step.process-palette--classic { --process-card-bg: #15263e; --process-card-border: #354860; --process-accent: #9bdfc4; --process-number-text: #15263e; --process-label: #9bdfc4; --process-icon-bg: #244239; --process-icon-border: #588876; --process-icon-text: #9bdfc4; --process-line: #588876; }
.fm-site .countries-process-step[class*="process-palette--"] { color:var(--process-body); background:var(--process-card-bg); border-color:var(--process-card-border); }
.fm-site .countries-process-step .process-responsibilities { color:var(--process-body); border-color:var(--process-card-border); }
.fm-site .countries-process-step .process-responsibilities dt { color:var(--process-title); }
