/* Fulfiller landing pages: cookie banner, WhatsApp button, live figures and testimonials, demo and call-back (landing.js). */
.ff-l-cookies {
    position: fixed; z-index: 90; left: 16px; right: 16px; bottom: 16px; max-width: 760px; margin: 0 auto;
    display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; padding: 16px 18px; border-radius: 16px;
    background: #0b2a30; color: #d3e3e6; box-shadow: 0 10px 40px rgba(0, 0, 0, .3);
    transition: opacity .25s ease, transform .25s ease;
}
.ff-l-cookies.is-gone { opacity: 0; transform: translateY(12px); }
.ff-l-cookies strong { display: block; margin-bottom: 2px; color: #fff; }
.ff-l-cookies p { margin: 0; font-size: 14px; line-height: 1.45; }
.ff-l-cookies__text { flex: 1 1 320px; min-width: 0; }
.ff-l-cookies__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ff-l-cookies__more { color: #bfe3e8; font-size: 14px; text-decoration: underline; margin-inline-end: 4px; }
.ff-l-btn {
    min-height: 40px; padding: 0 14px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .3); background: transparent;
    color: #d3e3e6; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
}
.ff-l-btn:hover { background: rgba(255, 255, 255, .08); }
.ff-l-btn.is-main { background: #f2b33d; border-color: #f2b33d; color: #2b1a00; font-weight: 700; }
.ff-l-btn:focus-visible, .ff-l-cookies__more:focus-visible, .ff-l-wa:focus-visible { outline: 3px solid #f2b33d; outline-offset: 2px; }

.ff-l-wa {
    position: fixed; z-index: 80; inset-inline-end: 18px; bottom: 18px; width: 56px; height: 56px; border-radius: 50%;
    display: grid; place-items: center; background: #25d366; box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
    transition: transform .15s ease, bottom .25s ease;
}
.ff-l-wa:hover { transform: scale(1.06); }
.ff-l-wa svg { width: 30px; height: 30px; fill: #fff; }
.ff-l-wa .ff-l-wa__phone { fill: #25d366; }
.ff-l-has-cookies .ff-l-wa { bottom: 150px; }
@media (max-width: 860px) {
    .ff-l-cookies { bottom: 88px; }
    .ff-l-wa { bottom: 92px; width: 50px; height: 50px; }
    .ff-l-has-cookies .ff-l-wa { bottom: 300px; }
}

/* Live figures and testimonials, just before the FAQ. */
.ff-l-proof { padding-block: 0 96px; }
.ff-l-proof[hidden] { display: none; }
.ff-l-proof__in { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.ff-l-proof__eyebrow {
    margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--k-accent-text, #0e6a78);
}
.ff-l-proof__title {
    margin: 0 0 28px; font-size: clamp(28px, 3vw, 42px); line-height: 1.12; font-weight: 700; letter-spacing: -.02em;
    color: var(--k-ink, #15181d);
}
.ff-l-figures {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 12px; margin: 0 0 24px;
}
.ff-l-figures__item {
    display: flex; flex-direction: column-reverse; gap: 4px; padding: 20px; border-radius: 18px;
    background: var(--k-tint, #eef6f7); border: 1px solid var(--k-tint-line, #d6e9ec);
}
.ff-l-figures dt { font-size: 15px; font-weight: 500; color: var(--k-ink2, #3f4752); }
.ff-l-figures dd { margin: 0; font-size: clamp(30px, 3.2vw, 44px); line-height: 1; font-weight: 700; color: var(--k-ink, #15181d); text-align: start; }
.ff-l-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 14px; }
.ff-l-quote {
    margin: 0; display: flex; flex-direction: column; gap: 14px; padding: 22px; border-radius: 18px;
    background: var(--k-surface, #fff); border: 1px solid var(--k-line, #e2e5ea);
}
@media (max-width: 600px) { .ff-l-figures__item { padding: 16px; } .ff-l-proof { padding-block: 0 72px; } }
.ff-l-quote blockquote { margin: 0; font-size: 16px; line-height: 1.6; color: var(--k-ink, #15181d); }
.ff-l-quote blockquote::before { content: "\201C"; display: block; height: 22px; font-size: 44px; line-height: 1; color: #f2b33d; }
.ff-l-quote figcaption { margin-top: auto; display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: var(--k-muted, #5a636e); }
.ff-l-quote figcaption strong { color: var(--k-ink, #15181d); font-size: 15px; }

/* What landing.js adds to the page sits outside .k-root: same font. */
.ff-l-cookies, .ff-l-bar, .ff-l-cb, .ff-l-hero-call {
    font-family: 'IBM Plex Sans', 'Tajawal', system-ui, -apple-system, 'Segoe UI', Roboto, Tahoma, sans-serif;
}

/* "Try the demo" and "Call me back" in the first screen. */
.ff-l-demo svg { width: 18px; height: 18px; fill: currentColor; flex: none; }
.ff-l-hero-call { margin: 14px 0 0; font-size: 15px; color: var(--k-muted, #5a636e); }
.ff-l-hero-call__link { color: var(--k-accent-text, #0e6a78); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ff-l-hero-call__link:focus-visible, .ff-l-demo:focus-visible, .ff-l-bar__btn:focus-visible { outline: 3px solid #f2b33d; outline-offset: 2px; }

/* Phones: a bar above the bottom menu once the first screen is scrolled past. */
.ff-l-bar { display: none; }
@media (max-width: 860px) {
    .ff-l-bar {
        position: fixed; z-index: 59; inset-inline: 10px; bottom: calc(70px + env(safe-area-inset-bottom));
        display: flex; gap: 8px; padding: 6px; border-radius: 14px;
        background: var(--k-surface, #fff); border: 1px solid var(--k-line, #e2e5ea); box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
        transform: translateY(16px); opacity: 0; visibility: hidden; transition: transform .2s ease, opacity .2s ease, visibility .2s;
    }
    .ff-l-bar.is-on { transform: none; opacity: 1; visibility: visible; }
    .ff-l-has-cookies .ff-l-bar { visibility: hidden; opacity: 0; }
    .ff-l-has-bar .ff-l-wa { bottom: 150px; }
    .ff-l-has-bar.ff-l-has-cookies .ff-l-wa { bottom: 300px; }
}
.ff-l-bar__btn {
    flex: 1 1 0; min-width: 0; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 0 10px; border-radius: 10px; border: 1px solid var(--k-line2, #cfd5dc); background: transparent;
    color: var(--k-ink, #15181d); font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap;
}
.ff-l-bar__btn.is-main { background: #0e6a78; border-color: #0e6a78; color: #fff; }
.ff-l-bar__btn svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.ff-l-bar__btn.is-main svg { fill: currentColor; stroke: none; }
.ff-l-bar__btn span { overflow: hidden; text-overflow: ellipsis; }

/* "Call me back" dialog. */
.ff-l-cb {
    width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; padding: 24px; border: 0; border-radius: 18px;
    background: var(--k-surface, #fff); color: var(--k-ink, #15181d); box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
}
.ff-l-cb::backdrop { background: rgba(8, 20, 24, .55); }
.ff-l-cb__close {
    position: absolute; inset-inline-end: 12px; top: 12px; width: 40px; height: 40px; display: grid; place-items: center;
    border: 0; border-radius: 10px; background: transparent; color: var(--k-muted, #5a636e); cursor: pointer;
}
.ff-l-cb__close:hover { background: var(--k-soft, #f2f4f6); }
.ff-l-cb__close svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.ff-l-cb__title { margin: 0 0 6px; padding-inline-end: 44px; font-size: 24px; line-height: 1.2; font-weight: 700; }
.ff-l-cb__lede { margin: 0 0 18px; font-size: 15px; line-height: 1.55; color: var(--k-muted, #5a636e); }
.ff-l-cb__form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.ff-l-cb__form[hidden] { display: none; }
.ff-l-cb__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ff-l-cb__field.is-wide, .ff-l-cb__foot { grid-column: 1 / -1; }
.ff-l-cb__field label { font-size: 14px; font-weight: 600; color: var(--k-ink2, #3f4752); }
.ff-l-cb__field input, .ff-l-cb__field select, .ff-l-cb__field textarea {
    width: 100%; min-height: 46px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--k-line2, #cfd5dc);
    background: var(--k-bg, #fff); color: var(--k-ink, #15181d); font: inherit; font-size: 16px;
}
.ff-l-cb__field textarea { min-height: 70px; resize: vertical; }
.ff-l-cb__field input:focus, .ff-l-cb__field select:focus, .ff-l-cb__field textarea:focus { outline: 3px solid rgba(14, 106, 120, .35); border-color: #0e6a78; }
.ff-l-cb__hp { position: absolute; inset-inline-start: -10000px; width: 1px; height: 1px; opacity: 0; }
.ff-l-cb__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 4px; }
.ff-l-cb__send { min-height: 48px; padding: 0 22px; font-size: 16px; }
.ff-l-cb__send:disabled { opacity: .7; cursor: wait; }
.ff-l-cb__privacy { flex: 1 1 220px; font-size: 13px; line-height: 1.45; color: var(--k-muted, #5a636e); }
.ff-l-cb__privacy a { color: inherit; text-decoration: underline; }
.ff-l-cb__status { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; font-size: 15px; font-weight: 600; }
.ff-l-cb__status.is-ok { background: #e6f4ec; color: #145c36; }
.ff-l-cb__status.is-bad { background: #fdecec; color: #8a1c1c; }
@media (max-width: 520px) { .ff-l-cb { padding: 20px 16px; } .ff-l-cb__form { grid-template-columns: 1fr; } }

/* Header on one line on computers, in every language (the French labels are the longest). */
@media (min-width: 1181px) {
    .k-header .k-hbar { flex-wrap: nowrap !important; gap: 14px !important; }
    .k-header .k-hgroup { flex-wrap: nowrap !important; gap: 6px !important; }
    .k-header .k-navlinks { gap: 16px !important; }
    .k-header .k-navlinks a, .k-header .k-login, .k-header .k-hcta { white-space: nowrap; }
    .k-header .k-lang a { padding-inline: 9px !important; }
    .k-header .k-login { padding-inline: 10px !important; }
}
@media (min-width: 1181px) and (max-width: 1260px) {
    .k-header .k-navlinks { gap: 13px !important; font-size: 14px !important; }
}
