:root {
    --ink: #0d203c;
    --blue: #064acb;
    --navy: #112941;
    --red: #c51e32;
    --green: #18763a;
    --light: #eff5fd;
    --paper: #f8fbff;
    --white: #fff;
    --muted: #394d66;
    --line: #dce6f1;
    --shadow: 0 5px 14px #102a4a0d, 0 1px 2px #102a4a0d;
    font-family: Inter, system-ui, sans-serif;
    color: var(--ink);
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; line-height: 1.52; }
main { flex: 1; }
img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid #3276d3; outline-offset: 3px; }
[hidden] { display: none !important; }
.container { width: min(1240px, 100% - 2 * clamp(16px, 6.5vw, 86px)); margin-inline: auto; }
.fg-skip, .fg-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.fg-skip:focus { z-index: 10; width: auto; height: auto; clip-path: none; top: 8px; left: 8px; background: white; padding: 9px; }
.fg-header { position: relative; z-index: 3; border-bottom: 1px solid var(--line); background: white; }
.fg-header-inner { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; min-height: 71px; padding-block: 8px; }
.fg-logo img { width: 165px; height: auto; }
.fg-nav { display: flex; justify-content: center; align-items: center; gap: clamp(8px, 2.4vw, 32px); font-size: 14px; font-weight: 700; }
.fg-nav a { text-decoration: none; }
.fg-nav a:hover, .fg-nav [aria-current=page] { color: var(--blue); text-decoration: underline; }
.fg-nav-services { position: relative; }
.fg-nav-services summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; padding: 7px 0; }
.fg-nav-services summary::-webkit-details-marker { display: none; }
.fg-nav-services summary::after {
    content: '';
    flex: none;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
}
.fg-nav-services[open] summary::after { transform: translateY(2px) rotate(225deg); }
.fg-nav-services ul { position: absolute; top: 100%; left: 0; width: 280px; padding: 6px; margin: 0; list-style: none; background: white; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); }
.fg-nav-services li a { display: block; padding: 9px; border-radius: 4px; }
.fg-nav-services li a:hover { background: var(--light); }
h1, h2, h3 { line-height: 1.08; margin: 0 0 .44em; letter-spacing: -.035em; font-weight: 800; }
h1 { font-size: clamp(34px, 4.05vw, 62px); }
h2 { font-size: clamp(25px, 2.65vw, 39px); }
h3 { font-size: clamp(17px, 1.55vw, 21px); letter-spacing: -.024em; }
p { color: var(--muted); margin: 0 0 .78em; }
p:last-child { margin-bottom: 0; }
.fg-kicker { display: flex; align-items: center; gap: 11px; color: #465e76; font-weight: 750; text-transform: uppercase; letter-spacing: .16em; font-size: 11px; margin-bottom: 15px; }
.fg-kicker::after, .fg-section-heading h2::before, .fg-section-heading h2::after { content: ''; display: inline-block; width: 32px; height: 2px; background: #31a858; flex: none; }
.fg-kicker-red { color: var(--red); }
.fg-kicker-red::after { background: var(--red); }
.fg-button { min-height: 43px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 16px; font-size: 14px; font-weight: 750; text-align: center; text-decoration: none; border: 1px solid transparent; border-radius: 7px; background: var(--blue); color: white; cursor: pointer; transition: background-color .14s; }
.fg-button:hover { background: #083689; }
.fg-button:disabled { opacity: .65; cursor: progress; }
.fg-outline { color: var(--ink); border-color: #3768a0; background: #ffffffa0; }
.fg-outline:hover { background: #e3efff; }
.fg-button-red { background: var(--red); }
.fg-button-red:hover { background: #9c1630; }
.fg-text-link { color: var(--blue); font-weight: 750; }
.fg-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--light); }
.fg-hero-copy { position: relative; padding-block: clamp(30px, 4.4vw, 65px); }
.fg-hero-copy h1, .fg-hero-copy > p, .fg-hero-copy .fg-actions { max-width: 52%; }
.fg-hero-copy h1 em { color: var(--blue); font-style: normal; }
.fg-home-hero h1 { font-size: clamp(34px, 3.4vw, 52px); }
.fg-home-hero h1 > * { display: block; }
.fg-home-hero .fg-hero-copy { padding-block: clamp(27px, 3.1vw, 43px); }
.fg-home-hero .fg-hero-photo::after { background: linear-gradient(90deg, var(--light), #eff5fdc0 17%, transparent 49%); }
.fg-lead { max-width: 54ch; font-size: clamp(15px, 1.52vw, 19px); }
.fg-hero-photo { position: absolute; inset: 0 0 0 42%; z-index: -2; }
.fg-hero-photo img, .fg-strip-photo img { width: 100%; height: 100%; object-fit: cover; }
.fg-hero-photo img { object-position: center 44%; }
.fg-hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--light), #eff5fd54 21%, transparent 43%); }
.fg-hero-short .fg-hero-copy { padding-block: clamp(27px, 3.3vw, 47px); }
.fg-hero-short .fg-hero-photo { inset-inline-start: 46%; clip-path: polygon(13% 0, 100% 0, 100% 100%, 0 100%); }
.fg-slashes { position: absolute; right: 0; bottom: 0; width: 170px; height: 148px; z-index: -1; }
.fg-slashes span { position: absolute; bottom: -28px; width: 33px; height: 140px; background: #1677dd75; transform: skew(-31deg); }
.fg-slashes span:nth-child(1) { right: 102px; height: 97px; }
.fg-slashes span:nth-child(2) { right: 63px; height: 173px; }
.fg-slashes span:nth-child(3) { right: 24px; height: 116px; background: #27a1e985; }
.fg-actions, .fg-jump, .fg-crumb { display: flex; flex-wrap: wrap; gap: 9px 15px; }
.fg-actions, .fg-jump { margin-top: 16px; }
.fg-jump { font-weight: 700; color: var(--blue); }
.fg-crumb { font-size: 13px; margin-bottom: 14px; }
.fg-section { padding-block: clamp(23px, 3.2vw, 46px); }
.fg-section-heading { text-align: center; margin-bottom: 19px; }
.fg-section-heading h2 { display: flex; justify-content: center; align-items: center; gap: .56em; }
.fg-section-heading p { margin-top: -3px; }
.fg-accent-heading::before { content: ''; display: block; width: 36px; height: 2px; margin-bottom: 12px; background: #31a858; }
#prestations .fg-card .fg-text-link { text-decoration: none; }
#prestations .fg-card .fg-text-link:hover { color: #083689; }
.fg-band, .fg-desk, .fg-pricing-page { background: var(--paper); }
.fg-band { background: #f0f5fc; }
.fg-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.fg-card-grid.fg-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fg-card { display: flex; flex-direction: column; align-items: stretch; padding: clamp(14px, 1.7vw, 22px); min-width: 0; background: white; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow); }
.fg-card h3 { display: flex; align-items: center; gap: 9px; min-width: 0; }
.fg-card p, .fg-card ul, .fg-benefits p { font-size: 14px; color: var(--muted); }
.fg-card ul { padding-inline-start: 18px; margin-top: 0; }
.fg-card > a:last-child, .fg-card > .fg-amount:last-child { margin-top: auto; }
.fg-icon { flex: none; color: #103f8d; font-size: 25px; }
.fg-card .fg-icon, .fg-section-bar .fg-icon { display: inline-grid; place-items: center; background: var(--light); width: 42px; height: 42px; border-radius: 9px; }
#prestations .fg-card h3 { gap: 14px; }
#prestations .fg-card .fg-icon {
    background: none;
    width: 1.15em;
    height: 1.2em;
    font-size: clamp(27px, 3vw, 36px);
}
.fg-benefits { display: grid; grid-template-columns: 1.25fr repeat(4, 1fr); align-items: center; gap: 16px; }
.fg-benefits article { border-inline-start: 1px solid #cbd9e9; padding-inline-start: 13px; }
.fg-benefits i { margin-bottom: 7px; }
.fg-benefits h3 { font-size: 16px; }
.fg-approach { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: clamp(20px, 4vw, 55px); align-items: center; }
.fg-approach-photo { overflow: hidden; border-radius: 12px; }
.fg-approach-photo img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; }
.fg-approach-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 19px; }
.fg-approach-details article { display: flex; align-items: flex-start; gap: 10px; }
.fg-approach-details h3 { font-size: 16px; }
.fg-approach-details p { font-size: 14px; }
.fg-home-pricing { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 26px; padding: clamp(18px, 3vw, 30px); background: var(--light); border: 1px solid var(--line); border-radius: 12px; }
.fg-home-pricing h2 { margin-bottom: 6px; }
.fg-rate h3 { font-size: 17px; }
.fg-rate-grid .fg-amount { min-height: 72px; align-content: center; }
.fg-amount { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; background: #ebf2fc; border-radius: 8px; padding: 9px 10px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.fg-amount span { font-size: 13px; }
.fg-amount strong { font-size: clamp(19px, 2.4vw, 32px); line-height: 1.05; }
.fg-amount del { color: #52657a; }
.fg-promo { color: var(--green); }
.fg-promo-label { color: var(--green); background: #e0f3e4; border-radius: 15px; padding: 0 8px; font-weight: 700; }
.fg-rate-note { margin-top: 14px; }
.fg-section-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; }
.fg-section-bar h2 { display: flex; align-items: center; gap: 12px; margin: 0; }
.fg-pricing-page .fg-icon { background: none; }
.fg-section-bar::after { content: ''; order: 1; flex: 1; height: 1px; background: #b7c9de; margin-inline: 12px; }
.fg-section-bar > a { order: 2; text-decoration: none; }
.fg-rate, .fg-quote-rate { background: linear-gradient(155deg, #fff 55%, #f8faff); border-radius: 15px; }
.fg-rate-grid + .fg-quote-rates { margin-top: 13px; }
.fg-quote-rate {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}
.fg-quote-rate-price {
    padding: 8px 0 8px 14px;
    border-inline-start: 1px solid #cbd9e9;
    font-weight: 800;
}
.fg-quote-rate-price a { text-decoration: none; }
@media (max-width: 1100px) {
    .fg-quote-rate { grid-template-columns: auto minmax(0, 1fr); }
    .fg-quote-rate-price {
        grid-column: 1 / -1;
        padding: 8px 12px;
        border: 0;
        border-radius: 8px;
        background: #ebf2fc;
    }
}
.fg-steps { padding: 0; margin: 0; list-style: none; counter-reset: step; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 19px; }
.fg-steps li { position: relative; padding-inline-start: 48px; counter-increment: step; }
.fg-steps li::before { content: counter(step); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #d7e9ff; color: #103f8d; font-weight: 800; }
.fg-steps p { font-size: 14px; }
.fg-cta-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding: clamp(20px, 4vw, 42px); color: white; background: linear-gradient(110deg, #102847, #173c70); border-radius: 12px; }
.fg-cta-banner p { color: #e6f0ff; }
.fg-cta-banner h2 { margin-bottom: 6px; }
.fg-pricing-benefits { margin-bottom: 25px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fg-pricing-benefits .fg-icon { color: var(--red); }
.fg-quote-strip { display: grid; grid-template-columns: .8fr .9fr 1.2fr; align-items: stretch; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); }
.fg-strip-copy { padding: 20px; align-self: center; }
.fg-quote-strip .fg-quote { border: 0; box-shadow: none; align-self: center; padding: 16px; }
.fg-quote-strip .fg-button { width: 100%; }
.fg-editorial, .fg-form-layout { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1fr); gap: clamp(16px, 4vw, 60px); align-items: start; }
.fg-ledger, .fg-quote, .fg-faq { padding: clamp(15px, 2.1vw, 27px); background: white; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow); }
.fg-ledger article + article, .fg-faq details + details { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 12px; }
.fg-faq summary { cursor: pointer; font-weight: 750; color: var(--blue); }
.fg-faq p { margin-top: 7px; }
.fg-inquiry { background: var(--light); }
.fg-audience { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.fg-audience > div { border: 1px solid var(--line); border-radius: 8px; padding: 14px; background: var(--paper); }
.fg-audience dt, .fg-contact-info dt { font-weight: 750; }
.fg-audience dd, .fg-contact-info dd { margin: 3px 0 0; color: var(--muted); overflow-wrap: anywhere; }
.fg-contact-info dd { margin-bottom: 10px; }
.fg-contact-photo { margin-top: 17px; border-radius: 10px; overflow: hidden; }
.fg-contact-photo img { width: 100%; height: clamp(135px, 17vw, 240px); object-fit: cover; }
.fg-document-note { grid-column: 2; }
.fg-document-note h2 { font-size: 23px; }
.fg-field { min-width: 0; margin-bottom: 10px; }
.fg-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
.fg-quote label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.fg-quote label span, .fg-form-note, .fg-field-error { font-size: 13px; font-weight: 400; }
.fg-quote input, .fg-quote select, .fg-quote textarea { display: block; width: 100%; min-width: 0; min-height: 43px; padding: 7px 9px; color: var(--ink); background: #f0f4f9; border: 1px solid #9aacbf; border-radius: 6px; }
.fg-quote textarea { resize: vertical; }
.fg-field-error { color: var(--red); }
.fg-quote [aria-invalid=true] { border: 2px solid var(--red); }
#form-messages { padding: 9px 11px; margin-bottom: 12px; border-radius: 6px; background: #e1f2ea; color: var(--green); }
#form-messages[data-state=error] { background: #fae9ed; color: #89162a; }
.fg-footer { background: var(--navy); color: white; padding-block: 24px 14px; }
.fg-footer-grid { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: 22px; }
.fg-footer h2 { font: inherit; font-weight: 750; }
.fg-footer p { color: #e5eef8; }
.fg-footer a { display: block; overflow-wrap: anywhere; }
.fg-footer a.fg-footer-logo { display: inline-block; margin-bottom: 7px; }
.fg-copyright { border-top: 1px solid #617993; margin-top: 16px; padding-top: 12px; font-size: 13px; }
.fg-error { max-width: 650px; margin: 11vh auto; padding: 0 20px; }
.fg-error img { margin-bottom: 25px; }

@media (max-width: 1050px) {
    .fg-header-inner { grid-template-columns: 1fr auto; gap: 5px 12px; }
    .fg-nav { grid-row: 2; grid-column: 1 / -1; position: relative; justify-content: space-between; }
    .fg-nav-services { position: static; }
    .fg-nav-services ul { left: 0; max-width: 100%; }
    .fg-card-grid, .fg-audience { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fg-benefits { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .fg-benefits h2 { grid-column: 1 / -1; }
    .fg-quote-strip { grid-template-columns: .8fr 1.2fr; }
    .fg-strip-photo { grid-row: span 2; }
    .fg-strip-copy { padding-bottom: 0; }
}
@media (max-width: 767px) {
    .fg-hero { display: flex; flex-direction: column-reverse; }
    .fg-hero-photo { position: relative; inset: auto; height: clamp(145px, 39vw, 270px); }
    .fg-hero-photo::after { background: linear-gradient(var(--light), transparent 37%); }
    .fg-home-hero .fg-hero-photo::after { background: linear-gradient(var(--light), transparent 30%); }
    .fg-hero-short .fg-hero-photo { inset-inline-start: auto; clip-path: none; }
    .fg-hero-copy h1, .fg-hero-copy > p, .fg-hero-copy .fg-actions { max-width: none; }
    .fg-slashes { width: 100px; height: 104px; }
    .fg-slashes span:nth-child(1) { display: none; }
    .fg-slashes span:nth-child(2) { height: 105px; right: 44px; }
    .fg-slashes span:nth-child(3) { height: 86px; right: 10px; }
    .fg-benefits, .fg-pricing-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fg-approach, .fg-steps, .fg-editorial, .fg-form-layout { grid-template-columns: minmax(0, 1fr); }
    .fg-approach-photo { grid-row: 2; }
    .fg-document-note { grid-column: auto; }
    .fg-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 465px) {
    .fg-approach-details { grid-template-columns: minmax(0, 1fr); }
    .container { width: calc(100% - 32px); }
    .fg-logo img { width: 107px; }
    .fg-nav { gap: 5px; font-size: 11px; }
    .fg-nav a, .fg-nav summary { padding-block: 8px; }
    .fg-nav > a, .fg-nav summary { white-space: nowrap; }
    .fg-home-hero h1 { font-size: clamp(29px, 8vw, 38px); }
    .fg-home-hero h1 > * { display: inline; }
    .fg-header-cta { padding-inline: 7px; font-size: 12px; }
    .fg-card-grid:not(.fg-rate-grid), .fg-card-grid.fg-two, .fg-quote-strip, .fg-footer-grid { grid-template-columns: minmax(0, 1fr); }
    .fg-amount strong { font-size: 20px; }
    .fg-card .fg-icon { width: 32px; height: 32px; font-size: 19px; }
    .fg-rate h3 { flex-wrap: wrap; }
    .fg-section-heading h2::before, .fg-section-heading h2::after { width: 11px; }
    .fg-strip-photo { grid-row: auto; height: 125px; }
}
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}
@media (prefers-reduced-motion: reduce) { .fg-button { transition: none; } }
