/*
Theme Name: Fkeszi Pro
Theme URI: https://franck.keszi.net/
Author: I2S Consultants
Author URI: https://www.i2s-consultants.com/
Description: Thème WordPress professionnel pour Franck Keszi, CEO I2S-Consultants. Design inspiré Carinel.com. Portfolio, Éditorial, Veille Technologique. Header sticky avec CTA, hero pleine largeur, compteurs animés, processus 4 étapes. Palette I2S : Navy #1A2B4C, Teal #3BBDB8, Blue #3B6EC8.
Version: 2.5.27
Requires at least: 6.2
Requires PHP: 7.3
Tested up to: 6.7
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fkeszi-pro
Tags: blog, portfolio, editorial, two-columns, right-sidebar, footer-widgets, custom-background, custom-menu, post-formats, featured-images, threaded-comments, translation-ready, full-width-template, theme-options, carousel

This theme, like WordPress, is licensed under the GPL.

Fkeszi Pro is based on Franck Keszi Pro v1.0.1 (I2S Consultants)
which is based on Josiane Yazbeck Pro (I2S Consultants),
itself derived from Lawyer Landing Page by Rara Themes (https://rarathemes.com/)
Lawyer Landing Page is based on Underscores http://underscores.me/, (C) 2012-2016 Automattic, Inc.

== Changelog ==
2.2.3 - April 2026 : Bloc editorial hub (titre + 4 paragraphes) editable via Customizer, rendu avec bordure teal.
2.2.2 - April 2026 : Hub Veille editable via Customizer (section Hub + stats + sous-titre), template-veille-hub.php v3 lit get_theme_mod().
2.2.1 - April 2026 : Correction PHP switch/case, remove_action dans hub+domain templates.
2.2.0 - April 2026 : Veille Technologique — panel customizer (fkpv-veille-panel.php), template-veille-domain.php v4 rendu PHP direct depuis customizer, landing_templates patche pour pleine largeur.
2.1.0 - April 2026 : Menu hamburger mobile autonome (fkp-mobile-menu.js), responsive header complet (logo, tagline, overlay), importeur WXR corrigé ($wpdb::update bypass kses, postmeta template), template-veille-domain.php (pleine largeur), CSS composants Veille Technologique (fkv-nav, fkv-grid, fkv-card, fkv-pill, fkv-rubric, fkv-ctitle, fkv-exc, fkv-cta).
1.0.0 - April 2026 : Fork de Franck Keszi Pro v1.0.1. Renommage fkeszi-pro. Design inspiré Carinel.com : header sticky, hero impact, stats animées, processus 4 étapes, logos clients défilants.
2.0.7 - April 2026 : Fix responsive header — menu hamburger mobile (overlay show-modal), logo redimensionné sur tablette/smartphone, tagline affichée sur desktop (suppression max-width 320px + white-space nowrap), tagline visible en mode tablette. Correction versionnage : style.css synchronisé avec numéro de build réel.
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Normalize
# Typography
# Elements
# Forms
# Navigation
	## Links
	## Menus
# Accessibility
# Alignments
# Clearings
# Widgets
# Content
	## Posts and pages
	## Asides
	## Comments
# Infinite scroll
# Media
	## Captions
	## Galleries
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Normalize
--------------------------------------------------------------*/
:root {
  --primary-color: #999;
  --primary-color-rgb: 153, 153, 153;
  --background-color: #ededed;
  --background-color-rgb: 237, 237, 237;
  --background-color-dark: #168dd2;
  --background-color--dark-rgb: 22, 141, 210;
  --font-color: #639bbc;
  --font-color-rgb: 99, 155, 188;
  --white-color: #fff;
  --white-color-rgb: 255, 255, 255;
  --black-color: #353d47;
  --black-color-rgb: 53, 61, 71;
}

html {
  font-family: "PT Serif", serif;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body {
  margin: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  display: block;
}

audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

[hidden],
template {
  display: none;
}

a {
  text-decoration: none;
  color: #bbbcc1;
  outline: none;
}

a:active,
a:hover {
  text-decoration: underline;
  color: #bbbcc1;
}

a:focus {
  outline: none;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b,
strong {
  font-weight: bold;
}

dfn {
  font-style: italic;
}

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

mark {
  background: #ff0;
  color: #000;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

img {
  border: 0;
}

svg:not(:root) {
  overflow: hidden;
}

figure {
  margin: 1em 40px;
}

hr {
  box-sizing: content-box;
  height: 0;
}

pre {
  overflow: auto;
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}

button {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input {
  line-height: normal;
}

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

legend {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
}

optgroup {
  font-weight: bold;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
body,
button,
input,
select,
textarea {
  color: #757575;
  font-family: "Raleway", sans-serif;
  font-size: 16px;
  line-height: 24px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
}

p {
  margin-bottom: 1.5em;
  margin-top: 0;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

pre {
  background: #f5f5f5;
  font-family: "Courier 10 Pitch", Courier, monospace;
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
  color: #333;
}

code,
kbd,
tt,
var {
  font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
  font-size: 15px;
  font-size: 0.9375rem;
}

abbr,
acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}

mark,
ins {
  background: #fff9c0;
  text-decoration: none;
}

big {
  font-size: 125%;
}

/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/
html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

*,
*:before,
*:after {
  /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
  -webkit-box-sizing: inherit;
  -moz-box-sizing: inherit;
  box-sizing: inherit;
}

body {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: none;
  min-width: 320px;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
}

blockquote,
q {
  quotes: "" "";
}

hr {
  background-color: #eee;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
  margin-top: 0;
}

ul,
ol {
  /*margin: 0 0 1.5em 3em;*/
  margin: 0 0 1.5em;
  padding: 0 0 0 15px;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 15px;
}

li > ul {
  list-style: circle;
}

dt {
  font-weight: bold;
}

dd {
  margin: 0 1.5em 1.5em;
}

img {
  height: auto;
  /* Make sure images are scaled correctly. */
  max-width: 100%;
  /* Adhere to container width. */
}

table {
  margin: 0 0 1.5em;
  width: 100%;
}

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  border-radius: 5px;
  background: #fa9d00;
  color: #fff;
  font-size: 16px;
  line-height: 46px;
  padding: 0 25px;
  height: 46px;
  border: 0;
  font-weight: 700;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
  background: #d68600;
}

button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
button:active,
input[type="button"]:active,
input[type="reset"]:active,
input[type="submit"]:active {
  background: #d68600;
}

button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus {
  outline: 1px dotted;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
textarea {
  background: #f5f5f5;
  color: #000;
  border: 0;
  border-radius: 0;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
textarea:focus {
  color: #111;
  outline: 1px dotted;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"] {
  padding: 10px;
  width: 70%;
}

textarea {
  padding: 10px;
  width: 100%;
  height: 105px;
  resize: none;
}

select:focus {
  outline: 1px dotted;
}

/*--------------------------------------------------------------
# Navigation
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Links
--------------------------------------------------------------*/
a {
  color: #639bbc;
}

a:hover,
a:focus,
a:active {
  color: #639bbc;
  text-decoration: underline;
}

a:focus {
  outline: 1px dotted;
  text-decoration: underline;
}

a:hover,
a:active {
  outline: none;
  text-decoration: underline;
}

/*--------------------------------------------------------------
## Menus
--------------------------------------------------------------*/
.main-navigation {
  float: left;
  margin: 5px 0 0;
}

.main-navigation ul {
  list-style: none;
  margin: 0;
  padding-left: 0;
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
}

.main-navigation li {
  float: left;
  position: relative;
  margin-left: 38px;
}

#site-navigation ul li.menu-item-has-children::before {
  position: absolute;
  top: 4px;
  right: -18px;
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg class='svg-inline--fa fa-angle-down fa-w-10' aria-hidden='true' data-prefix='fas' data-icon='angle-down' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512' data-fa-i2svg=''%3E%3Cpath fill='%233f6c91' d='M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  width: 10px;
  height: 12px;
  font-weight: 400;
}

#site-navigation
  ul
  li.menu-item-has-children
  ul.sub-menu
  li.menu-item-has-children::before {
  top: 12px;
  right: 14px;
  transform: rotate(270deg);
  -webkit-transform: rotate(270deg);
}

.main-navigation ul li:first-child {
  margin-left: 0;
}

.main-navigation a {
  display: block;
  text-decoration: none;
  color: #3f6c91;
  padding-bottom: 23px;
}

.main-navigation ul li a:hover,
.main-navigation ul li a:focus,
.main-navigation ul li:hover > a,
.main-navigation ul li:focus > a,
.main-navigation ul .current-menu-item > a,
.main-navigation ul .current-menu-ancestor > a,
.main-navigation ul .current_page_item > a,
.main-navigation ul .current_page_ancestor > a {
  color: #639bbc;
}

@media only screen and (min-width: 1025px) {
  .main-navigation ul ul {
    box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
    float: left;
    position: absolute;
    top: 100%;
    left: -20px;
    z-index: 99999;
    width: 232px;
    background: #fff;
    margin-left: -99999px;
  }

  .main-navigation ul li:hover > ul,
  .main-navigation ul li:focus > ul {
    margin-left: 0;
  }

  .main-navigation ul li:focus-within > ul {
    margin-left: 0;
  }

  .main-navigation ul li.focus > ul {
    margin-left: 0;
  }

  .main-navigation ul ul ul {
    left: 100%;
    top: 0;
  }

  .main-navigation ul ul a {
    display: block;
    padding: 5px 20px;
  }

  .main-navigation ul ul li a:hover,
  .main-navigation ul ul li a:focus,
  .main-navigation ul ul li:hover > a,
  .main-navigation ul ul li:focus > a,
  .main-navigation ul ul .current-menu-item > a,
  .main-navigation ul ul .current-menu-ancestor > a,
  .main-navigation ul ul .current_page_item > a,
  .main-navigation ul ul .current_page_ancestor > a {
    background: #ededed;
  }

  .main-navigation ul ul li {
    margin: 0;
    float: none;
    display: block;
  }
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
  overflow: hidden;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  float: left;
  width: 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  float: right;
  text-align: right;
  width: 50%;
}

/*--------------------------------------------------------------
# Accessibility
--------------------------------------------------------------*/
/* Text meant only for screen readers. */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #21759b;
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}

/* Do not show the outline on the skip link target. */
#content[tabindex="-1"]:focus {
  outline: 0;
}

/*--------------------------------------------------------------
# Fallback svg
--------------------------------------------------------------*/
svg.fallback-svg {
  vertical-align: top;
}

/*--------------------------------------------------------------
# Alignments
--------------------------------------------------------------*/
.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em;
}

.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/*--------------------------------------------------------------
# Clearings
--------------------------------------------------------------*/
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after {
  content: "";
  display: table;
  table-layout: fixed;
}

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
  clear: both;
}

/*--------------------------------------------------------------
# Widgets
--------------------------------------------------------------*/
.widget {
  margin: 0 0 1.5em;
}

/* Make sure select elements fit in widgets. */
.widget select {
  max-width: 100%;
}

/*--------------------------------------------------------------
# Content
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Posts and pages
--------------------------------------------------------------*/
.sticky {
  display: block;
}

.hentry {
  margin: 0 0 1.5em;
}

.byline,
.updated:not(.published) {
  display: none;
}

.single .byline,
.group-blog .byline {
  display: inline;
}

.page-content,
.entry-content,
.entry-summary {
  margin: 1.5em 0 0;
}

.page-links {
  clear: both;
  margin: 0 0 1.5em;
}

.page .entry-content {
  margin: 0;
}

/*--------------------------------------------------------------
## Asides
--------------------------------------------------------------*/
.blog .format-aside .entry-title,
.archive .format-aside .entry-title {
  display: none;
}

/*--------------------------------------------------------------
## Comments
--------------------------------------------------------------*/
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/*--------------------------------------------------------------

/* ============================================================
   Nettoyage v2.1.0 : suppression CSS Rara hérité
   (Galleries, Rara components, responsive Rara, Landing Pages)
   Lignes 887-4616 supprimées — 3730 lignes éliminées.
   ============================================================ */

/* ==========================================================================
   Services Layout - 2 Columns (Title Left, List Right)
   ========================================================================== */

.jy-services-wrapper {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.jy-service-row {
    display: grid !important;
    grid-template-columns: 220px 1fr !important;
    gap: 40px !important;
    margin-bottom: 35px !important;
    padding-bottom: 30px !important;
    border-bottom: 1px solid rgba(255,255,255,0.15) !important;
    align-items: start !important;
}

.jy-service-row:last-child {
    border-bottom: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.jy-service-title {
    text-align: center !important;
}

.jy-service-title h4,
.jy-service-title em,
.jy-service-title i {
    color: #d4a84b !important;
    font-style: italic !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
}

.jy-service-list ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.jy-service-list ul li {
    position: relative !important;
    padding-left: 28px !important;
    margin-bottom: 10px !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}

.jy-service-list ul li:last-child {
    margin-bottom: 0 !important;
}

.jy-service-list ul li:before {
    content: "✓" !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    color: #5ba3e0 !important;
    font-weight: bold !important;
    background: none !important;
    width: auto !important;
    height: auto !important;
}

/* Responsive for services layout */
@media (max-width: 768px) {
    .jy-service-row {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
    
    .jy-service-title {
        text-align: left !important;
    }
}



/*--------------------------------------------------------------
>>> FRANCK KESZI PRO - Identité visuelle I2S
>>> Palette : Navy #1A2B4C | Teal #3BBDB8 | Blue #3B6EC8 | Violet #7B5BC0
----------------------------------------------------------------*/

:root {
    --fkp-navy:   #1A2B4C;
    --fkp-teal:   #3BBDB8;
    --fkp-blue:   #3B6EC8;
    --fkp-violet: #7B5BC0;
    --fkp-white:  #FFFFFF;
    --fkp-light:  #F8F9FA;
    --fkp-text:   #1A1A1A;
    --fkp-border: #E5E7EB;
}

/* --- Bannières landing pages --- */
.landing-banner-section {
    width: 100%;
    margin-bottom: 0;
    position: relative;
}

.landing-banner-bg {
    position: relative;
    width: 100%;
    min-height: 280px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
}

.landing-banner-color {
    background: linear-gradient(135deg, var(--fkp-navy) 0%, #2d4a7a 100%);
}

.landing-banner-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(135deg, rgba(26,43,76,0.78) 0%, rgba(59,110,200,0.45) 100%);
}

.landing-banner-content {
    position: relative;
    z-index: 2;
    padding: 50px 60px;
    max-width: 900px;
}

.landing-banner-content .landing-title {
    font-size: 42px;
    font-weight: 700;
    margin: 0 0 12px;
    line-height: 1.2;
    text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}

.landing-banner-content .landing-subtitle {
    font-size: 18px;
    margin: 0;
    opacity: 0.95;
    font-weight: 400;
    letter-spacing: 0.3px;
}

/* --- Logo sur fond blanc --- */
.custom-logo-link img {
    filter: none !important; /* pas d'inversion, le logo I2S est déjà en couleur */
}
.site-header .text-logo::before {
    box-shadow: 0 0 0 2px rgba(59,189,184,0.15);
}

/* --- Header blanc I2S --- */
.site-header {
    background-color: #FFFFFF;
    border-bottom: 1px solid #E5E7EB;
    box-shadow: 0 1px 4px rgba(26,43,76,0.06);
}

.site-header .site-title a {
    color: var(--fkp-navy);
    font-weight: 700;
    letter-spacing: 0.5px;
}

.site-header .site-description {
    color: var(--fkp-teal);
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.site-header .main-navigation a {
    color: #4A5E72;
    font-size: 12.5px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-weight: 500;
}

.site-header .main-navigation a:hover,
.site-header .main-navigation ul li.current_page_item > a,
.site-header .main-navigation ul li.current-menu-item > a {
    color: var(--fkp-teal);
}

/* Indicateur actif */
.site-header .main-navigation ul li.current_page_item > a,
.site-header .main-navigation ul li.current-menu-item > a {
    border-bottom: 2px solid var(--fkp-teal);
    padding-bottom: 2px;
}

/* Dropdown menu */
.site-header .main-navigation ul ul {
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-top: 2px solid var(--fkp-teal);
    box-shadow: 0 4px 16px rgba(26,43,76,0.10);
}

.site-header .main-navigation ul ul a {
    color: #4A5E72;
    font-size: 12px;
}

/* Liens généraux */
a { color: var(--fkp-teal); }

/* --- Boutons --- */
.btn-primary,
input[type="submit"],
button[type="submit"],
.wp-block-button__link {
    background-color: var(--fkp-teal);
    border-color: var(--fkp-teal);
    color: var(--fkp-white);
}

.btn-primary:hover,
input[type="submit"]:hover {
    background-color: var(--fkp-blue);
    border-color: var(--fkp-blue);
}

/* --- Sections alternées --- */
.section-bg-alt {
    background-color: var(--fkp-light);
}

/* --- Footer --- */
.site-footer {
    background-color: #1A2B4C;
    color: rgba(255,255,255,0.75);
    border-top: 3px solid var(--fkp-teal);
    padding: 28px 0;
    font-size: 13px;
}
.site-footer a {
    color: var(--fkp-teal);
}
.site-footer a:hover {
    color: #fff;
}

/* --- Responsive bannières --- */
@media (max-width: 768px) {
    .landing-banner-bg { min-height: 200px; }
    .landing-banner-content { padding: 30px 20px; }
    .landing-banner-content .landing-title { font-size: 28px; }
    .landing-banner-content .landing-subtitle { font-size: 15px; }
}

@media (max-width: 480px) {
    .landing-banner-bg { min-height: 160px; }
    .landing-banner-content .landing-title { font-size: 22px; }
}

/* ============================================================
   FKESZI PRO v1.0.0 — DESIGN INSPIRÉ CARINEL.COM
   Header sticky · Hero impact · Stats · Processus · Logos clients
   Palette I2S : Navy #1A2B4C · Teal #3BBDB8 · Blue #3B6EC8
   ============================================================ */

/* ── Variables complémentaires ───────────────────────────────── */
:root {
    --fkp-navy-dark:  #111c33;
    --fkp-teal-dark:  #2fa09c;
    --fkp-teal-light: #e8f9f8;
    --fkp-shadow-sm:  0 2px 8px rgba(26,43,76,0.08);
    --fkp-shadow-md:  0 4px 20px rgba(26,43,76,0.13);
    --fkp-shadow-lg:  0 8px 40px rgba(26,43,76,0.18);
    --fkp-radius:     8px;
    --fkp-radius-lg:  14px;
    --fkp-transition: 0.25s ease;
    --fkp-font-sans:  'Inter', 'Segoe UI', system-ui, sans-serif;
}

/* ── Utilitaires ─────────────────────────────────────────────── */
.fkp-section-header {
    text-align: center;
    margin-bottom: 52px;
}
.fkp-section-header--compact { margin-bottom: 32px; }

.fkp-section-title {
    font-size: clamp(26px, 3.5vw, 38px);
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 0 0 14px;
    line-height: 1.2;
    letter-spacing: -0.3px;
}
.fkp-section-subtitle {
    font-size: 17px;
    color: #5a6e84;
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.65;
}

/* Bouton générique */
.fkp-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 30px;
    border-radius: var(--fkp-radius);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-decoration: none;
    cursor: pointer;
    transition: all var(--fkp-transition);
    border: 2px solid transparent;
}
.fkp-btn--primary {
    background: var(--fkp-teal);
    color: #fff;
    border-color: var(--fkp-teal);
}
.fkp-btn--primary:hover {
    background: var(--fkp-teal-dark);
    border-color: var(--fkp-teal-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--fkp-shadow-md);
}
.fkp-btn--outline {
    background: transparent;
    color: var(--fkp-navy);
    border-color: var(--fkp-navy);
}
.fkp-btn--outline:hover {
    background: var(--fkp-navy);
    color: #fff;
}
.fkp-btn--outline-white {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,0.65);
}
.fkp-btn--outline-white:hover {
    background: rgba(255,255,255,0.15);
    border-color: #fff;
    color: #fff;
}

/* ── HEADER STICKY ───────────────────────────────────────────── */
/* Inspiré Carinel : fond blanc, sticky, shadow au scroll, CTA button */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    transition: box-shadow var(--fkp-transition), background var(--fkp-transition);
}
.site-header.fkp-header--scrolled {
    box-shadow: 0 2px 20px rgba(26,43,76,0.12);
}

/* CTA dans le header nav */
.fkp-header-cta {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 22px;
    background: var(--fkp-teal);
    color: #fff !important;
    border-radius: var(--fkp-radius);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    text-decoration: none;
    transition: all var(--fkp-transition);
    border-bottom: none !important;
    margin-left: 18px;
}
.fkp-header-cta:hover {
    background: var(--fkp-teal-dark);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(59,189,184,0.35);
}
.site-header .main-navigation ul li:last-child .fkp-header-cta {
    border-bottom: none;
}

/* Script sticky header */

/* ── SECTION : STATS / COMPTEURS ─────────────────────────────── */
/* Inspiré Carinel : "+500 sites audités, +5000 personnes formées, 100% satisfaction" */

.fkp-stats-section {
    position: relative;
    padding: 72px 0;
    overflow: hidden;
}

/* Fond sombre (défaut) */
.fkp-stats--dark {
    background: linear-gradient(135deg, var(--fkp-navy) 0%, #1e3560 100%);
    color: #fff;
}
.fkp-stats--dark .fkp-stats__title  { color: #fff; }
.fkp-stats--dark .fkp-stats__subtitle { color: rgba(255,255,255,0.72); }
.fkp-stats--dark .fkp-stats__number  { color: var(--fkp-teal); }
.fkp-stats--dark .fkp-stats__label   { color: rgba(255,255,255,0.78); }
.fkp-stats--dark .fkp-stats__icon i  { color: var(--fkp-teal); }

/* Fond clair */
.fkp-stats--light {
    background: var(--fkp-teal-light);
}
.fkp-stats--light .fkp-stats__number { color: var(--fkp-navy); }
.fkp-stats--light .fkp-stats__label  { color: #5a6e84; }
.fkp-stats--light .fkp-stats__icon i { color: var(--fkp-teal); }

/* Fond image */
.fkp-stats--image {
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: #fff;
}
.fkp-stats__overlay {
    position: absolute;
    inset: 0;
    background: rgba(26,43,76,0.80);
    z-index: 0;
}
.fkp-stats--image .container { position: relative; z-index: 1; }
.fkp-stats--image .fkp-stats__title  { color: #fff; }
.fkp-stats--image .fkp-stats__number { color: var(--fkp-teal); }
.fkp-stats--image .fkp-stats__label  { color: rgba(255,255,255,0.80); }

/* Décorations géométriques */
.fkp-stats-section::before {
    content: '';
    position: absolute;
    top: -60px; right: -60px;
    width: 220px; height: 220px;
    border-radius: 50%;
    background: rgba(59,189,184,0.08);
    pointer-events: none;
}
.fkp-stats-section::after {
    content: '';
    position: absolute;
    bottom: -40px; left: -40px;
    width: 160px; height: 160px;
    border-radius: 50%;
    background: rgba(59,110,200,0.07);
    pointer-events: none;
}

.fkp-stats__header {
    text-align: center;
    margin-bottom: 52px;
}
.fkp-stats__title {
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 700;
    margin: 0 0 12px;
    line-height: 1.2;
}
.fkp-stats__subtitle {
    font-size: 16px;
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Grille */
.fkp-stats__grid {
    display: grid;
    gap: 32px;
    text-align: center;
}
.fkp-stats__grid--2 { grid-template-columns: repeat(2, 1fr); }
.fkp-stats__grid--3 { grid-template-columns: repeat(3, 1fr); }
.fkp-stats__grid--4 { grid-template-columns: repeat(4, 1fr); }
.fkp-stats__grid--5 { grid-template-columns: repeat(5, 1fr); }
.fkp-stats__grid--6 { grid-template-columns: repeat(6, 1fr); }

.fkp-stats__item {
    padding: 28px 20px;
    border-radius: var(--fkp-radius-lg);
    background: rgba(255,255,255,0.06);
    transition: transform var(--fkp-transition), background var(--fkp-transition);
}
.fkp-stats--light .fkp-stats__item {
    background: #fff;
    box-shadow: var(--fkp-shadow-sm);
}
.fkp-stats__item:hover {
    transform: translateY(-4px);
    background: rgba(255,255,255,0.10);
}
.fkp-stats--light .fkp-stats__item:hover {
    box-shadow: var(--fkp-shadow-md);
    background: #fff;
}

.fkp-stats__icon {
    margin-bottom: 14px;
}
.fkp-stats__icon i {
    font-size: 32px;
    display: block;
}

.fkp-stats__number {
    font-size: clamp(40px, 5vw, 60px);
    font-weight: 800;
    line-height: 1;
    margin-bottom: 10px;
    letter-spacing: -1px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
}
.fkp-stats__prefix,
.fkp-stats__suffix {
    font-size: 0.55em;
    font-weight: 700;
    opacity: 0.85;
}
.fkp-stats__label {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1.4;
    margin: 0;
}

/* Responsive stats */
@media (max-width: 900px) {
    .fkp-stats__grid--4,
    .fkp-stats__grid--5,
    .fkp-stats__grid--6 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .fkp-stats__grid--2,
    .fkp-stats__grid--3,
    .fkp-stats__grid--4,
    .fkp-stats__grid--5,
    .fkp-stats__grid--6 { grid-template-columns: 1fr; }
    .fkp-stats-section { padding: 52px 0; }
}

/* ── SECTION : PROCESSUS / ÉTAPES ────────────────────────────── */
/* Inspiré Carinel : "Notre processus en 4 étapes simples" */

.fkp-process-section {
    padding: 80px 0;
}

.fkp-process__grid {
    display: grid;
    gap: 32px;
    margin-bottom: 52px;
    position: relative;
}
.fkp-process__grid--2 { grid-template-columns: repeat(2, 1fr); }
.fkp-process__grid--3 { grid-template-columns: repeat(3, 1fr); }
.fkp-process__grid--4 { grid-template-columns: repeat(4, 1fr); }
.fkp-process__grid--5 { grid-template-columns: repeat(5, 1fr); }
.fkp-process__grid--6 { grid-template-columns: repeat(3, 1fr); }

.fkp-process__step {
    position: relative;
    text-align: center;
    padding: 36px 24px 28px;
    background: #fff;
    border-radius: var(--fkp-radius-lg);
    box-shadow: var(--fkp-shadow-sm);
    transition: transform var(--fkp-transition), box-shadow var(--fkp-transition);
    border-top: 4px solid transparent;
}
.fkp-process__step:hover {
    transform: translateY(-6px);
    box-shadow: var(--fkp-shadow-lg);
    border-top-color: var(--fkp-teal);
}

/* Connecteur horizontal entre étapes */
.fkp-process__connector {
    display: none; /* activé via JS/grid-aware */
}
@media (min-width: 769px) {
    .fkp-process__grid--4 .fkp-process__step:not(:last-child)::after,
    .fkp-process__grid--3 .fkp-process__step:not(:last-child)::after,
    .fkp-process__grid--2 .fkp-process__step:not(:last-child)::after {
        content: '';
        position: absolute;
        top: 56px;
        right: -18px;
        width: 20px;
        height: 2px;
        background: var(--fkp-teal);
        opacity: 0.4;
        z-index: 1;
    }
}

/* Numéro flottant */
.fkp-process__num {
    position: absolute;
    top: -16px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--fkp-teal);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    padding: 4px 12px;
    border-radius: 20px;
    line-height: 1;
}

/* Icône */
.fkp-process__icon-wrap {
    margin-bottom: 20px;
    margin-top: 12px;
}
.fkp-process__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--fkp-teal-light);
    border: 2px solid rgba(59,189,184,0.2);
    transition: all var(--fkp-transition);
}
.fkp-process__step:hover .fkp-process__icon {
    background: var(--fkp-teal);
    border-color: var(--fkp-teal);
}
.fkp-process__icon i {
    font-size: 28px;
    color: var(--fkp-teal);
    transition: color var(--fkp-transition);
}
.fkp-process__step:hover .fkp-process__icon i {
    color: #fff;
}

.fkp-process__step-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 0 0 10px;
    line-height: 1.3;
}
.fkp-process__step-desc {
    font-size: 14px;
    color: #5a6e84;
    line-height: 1.65;
    margin: 0;
}

.fkp-process__cta {
    text-align: center;
}

/* Responsive processus */
@media (max-width: 900px) {
    .fkp-process__grid--4,
    .fkp-process__grid--5 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .fkp-process__grid--2,
    .fkp-process__grid--3,
    .fkp-process__grid--4,
    .fkp-process__grid--5,
    .fkp-process__grid--6 { grid-template-columns: 1fr; }
    .fkp-process-section { padding: 52px 0; }
    .fkp-process__step { padding: 32px 20px 24px; }
}

/* ── SECTION : LOGOS CLIENTS (MARQUEE) ───────────────────────── */
/* Inspiré Carinel : bande de logos en défilement continu        */

.fkp-client-logos-section {
    padding: 60px 0;
    background: #fff;
    border-top: 1px solid var(--fkp-border);
    border-bottom: 1px solid var(--fkp-border);
    overflow: hidden;
}

/* Bande pleine largeur */
.fkp-marquee-outer {
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        #000 8%,
        #000 92%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        #000 8%,
        #000 92%,
        transparent 100%
    );
}

.fkp-marquee {
    display: flex;
    width: max-content;
    animation: fkp-marquee-scroll var(--marquee-speed, 40s) linear infinite;
}
.fkp-marquee--pause-hover:hover {
    animation-play-state: paused;
}

@keyframes fkp-marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.fkp-marquee__track {
    display: flex;
    align-items: center;
    gap: 0;
}

.fkp-marquee__item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 44px;
    flex-shrink: 0;
    border-right: 1px solid var(--fkp-border);
}
.fkp-marquee__item:last-child { border-right: none; }

.fkp-marquee__logo {
    max-height: 52px;
    max-width: 140px;
    width: auto;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.60;
    transition: filter var(--fkp-transition), opacity var(--fkp-transition), transform var(--fkp-transition);
}
.fkp-marquee__item:hover .fkp-marquee__logo,
.fkp-marquee__item a:focus .fkp-marquee__logo {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.06);
}

/* ── STICKY HEADER — Script inline ──────────────────────────── */
/* Injecté en bas de page via wp_footer hook dans functions.php  */

/* ── Améliorations générales inspirées Carinel ───────────────── */

/* Cards de service Carinel-style : icône ronde + titre + flèche */
.fkp-service-card {
    background: #fff;
    border-radius: var(--fkp-radius-lg);
    padding: 32px 28px;
    box-shadow: var(--fkp-shadow-sm);
    border: 1px solid var(--fkp-border);
    transition: all var(--fkp-transition);
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-decoration: none;
    color: inherit;
}
.fkp-service-card:hover {
    box-shadow: var(--fkp-shadow-lg);
    transform: translateY(-5px);
    border-color: var(--fkp-teal);
}
.fkp-service-card__icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--fkp-teal-light);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--fkp-transition);
}
.fkp-service-card:hover .fkp-service-card__icon {
    background: var(--fkp-teal);
}
.fkp-service-card__icon i {
    font-size: 24px;
    color: var(--fkp-teal);
    transition: color var(--fkp-transition);
}
.fkp-service-card:hover .fkp-service-card__icon i {
    color: #fff;
}
.fkp-service-card__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 0;
    line-height: 1.3;
}
.fkp-service-card__desc {
    font-size: 14px;
    color: #5a6e84;
    line-height: 1.65;
    flex-grow: 1;
    margin: 0;
}
.fkp-service-card__arrow {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--fkp-teal);
    margin-top: auto;
}
.fkp-service-card:hover .fkp-service-card__arrow {
    gap: 10px;
}

/* ── Responsive général ──────────────────────────────────────── */
@media (max-width: 768px) {
    .fkp-header-cta { padding: 8px 16px; font-size: 12px; }
    .fkp-section-header { margin-bottom: 36px; }
    .fkp-stats__number { font-size: 44px; }
}
@media (max-width: 480px) {
    .fkp-btn { padding: 12px 22px; font-size: 14px; }
    .fkp-marquee__item { padding: 10px 28px; }
}

/* ── Réduction des mouvements (accessibilité) ────────────────── */
@media (prefers-reduced-motion: reduce) {
    .fkp-marquee { animation: none; }
    .fkp-stats__item,
    .fkp-process__step,
    .fkp-service-card { transition: none; }
}


/* ── Police Inter globale ──────────────────────────────────── */
body, button, input, select, textarea {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
/* End fkeszi-pro v1.0.0 Carinel-inspired design =================== */

/* ============================================================
   FKESZI PRO v1.0.0 — TEMPLATES CARINEL-INSPIRED
   Service · Blog Index · Single Article · Page Légale
   ============================================================ */

/* ══════════════════════════════════════════════════════════════
   TEMPLATE SERVICE PAGE — inspiré Carinel audit-surete
   ══════════════════════════════════════════════════════════════ */

/* Hero bannière service */
.fkp-service-hero {
    position: relative;
    min-height: 380px;
    background: linear-gradient(135deg, var(--fkp-navy) 0%, #1e3560 100%);
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.fkp-service-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        110deg,
        rgba(26,43,76,0.90) 0%,
        rgba(26,43,76,0.70) 60%,
        rgba(59,110,200,0.40) 100%
    );
    z-index: 0;
}
.fkp-service-hero__inner {
    position: relative;
    z-index: 1;
    padding-top: 52px;
    padding-bottom: 52px;
}

/* Breadcrumb hero */
.fkp-service-hero__breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 13px;
    color: rgba(255,255,255,0.65);
    margin-bottom: 22px;
}
.fkp-service-hero__breadcrumb a {
    color: rgba(255,255,255,0.75);
    text-decoration: none;
    transition: color var(--fkp-transition);
}
.fkp-service-hero__breadcrumb a:hover { color: var(--fkp-teal); }
.fkp-service-hero__breadcrumb span { color: rgba(255,255,255,0.40); font-size: 12px; }

/* Eyebrow / pill */
.fkp-service-hero__eyebrow {
    display: inline-block;
    background: rgba(59,189,184,0.18);
    border: 1px solid rgba(59,189,184,0.35);
    color: var(--fkp-teal);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 5px 16px;
    border-radius: 20px;
    margin-bottom: 18px;
}
.fkp-service-hero__title {
    font-size: clamp(30px, 4.5vw, 52px);
    font-weight: 800;
    color: #fff;
    margin: 0 0 18px;
    line-height: 1.15;
    letter-spacing: -0.5px;
    max-width: 760px;
}
.fkp-service-hero__subtitle {
    font-size: 18px;
    color: rgba(255,255,255,0.82);
    max-width: 640px;
    margin: 0 0 32px;
    line-height: 1.6;
}
.fkp-service-hero__cta {
    margin-top: 8px;
}

/* ── Barre d'ancres — tabs sticky ──────────────────────────── */
.fkp-anchors {
    position: sticky;
    top: 64px; /* hauteur header */
    z-index: 900;
    background: #fff;
    border-bottom: 2px solid var(--fkp-border);
    box-shadow: 0 2px 12px rgba(26,43,76,0.07);
    transition: box-shadow var(--fkp-transition);
}
.fkp-anchors--stuck {
    box-shadow: 0 4px 20px rgba(26,43,76,0.12);
}
.fkp-anchors .container {
    display: flex;
    align-items: center;
    overflow-x: auto;
    scrollbar-width: none;
}
.fkp-anchors .container::-webkit-scrollbar { display: none; }

.fkp-anchors__list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
    flex-shrink: 0;
}
.fkp-anchors__item { flex-shrink: 0; }
.fkp-anchors__link {
    display: block;
    padding: 16px 22px;
    font-size: 13.5px;
    font-weight: 500;
    color: #5a6e84;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    transition: all var(--fkp-transition);
    white-space: nowrap;
    letter-spacing: 0.2px;
}
.fkp-anchors__link:hover,
.fkp-anchors__link.is-active {
    color: var(--fkp-navy);
    border-bottom-color: var(--fkp-teal);
}

/* ── Corps service — contenu pleine largeur stylisé ─────────── */
.fkp-service-body { background: #fff; }

.fkp-service-article { max-width: 100%; }

/* Styling du contenu Gutenberg dans template service */
.fkp-service-content {
    max-width: 860px;
    margin: 0 auto;
    padding: 60px 0 40px;
}
.fkp-service-content h2 {
    font-size: clamp(22px, 2.8vw, 32px);
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 60px 0 20px;
    padding-top: 20px;
    line-height: 1.25;
    border-top: 3px solid var(--fkp-teal-light);
}
.fkp-service-content h2:first-child { margin-top: 0; border-top: none; }
.fkp-service-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 36px 0 14px;
}
.fkp-service-content p {
    font-size: 16px;
    line-height: 1.75;
    color: #374151;
    margin-bottom: 18px;
}
/* Listes style Carinel : puces teal */
.fkp-service-content ul,
.fkp-service-content ol {
    margin: 18px 0 24px 0;
    padding-left: 0;
    list-style: none;
}
.fkp-service-content ul li,
.fkp-service-content ol li {
    position: relative;
    padding: 8px 0 8px 30px;
    font-size: 15.5px;
    line-height: 1.65;
    color: #374151;
    border-bottom: 1px solid var(--fkp-border);
}
.fkp-service-content ul li:last-child,
.fkp-service-content ol li:last-child { border-bottom: none; }
.fkp-service-content ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fkp-teal);
}
.fkp-service-content ol { counter-reset: fkp-ol; }
.fkp-service-content ol li { counter-increment: fkp-ol; }
.fkp-service-content ol li::before {
    content: counter(fkp-ol);
    position: absolute;
    left: 0;
    top: 8px;
    width: 22px;
    height: 22px;
    background: var(--fkp-teal);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
/* Colonnes WP blocks côte-à-côte = alternance image/texte Carinel */
.fkp-service-content .wp-block-columns {
    gap: 48px;
    align-items: center;
    margin: 48px 0;
    max-width: 100%;
}
.fkp-service-content .wp-block-image img {
    border-radius: var(--fkp-radius-lg);
    box-shadow: var(--fkp-shadow-md);
}
/* Bloc quote style Carinel */
.fkp-service-content blockquote {
    border-left: 4px solid var(--fkp-teal);
    background: var(--fkp-teal-light);
    padding: 20px 28px;
    margin: 32px 0;
    border-radius: 0 var(--fkp-radius) var(--fkp-radius) 0;
    font-style: italic;
    color: var(--fkp-navy);
}

/* Bloc CTA de conclusion */
.fkp-service-cta-block {
    background: linear-gradient(135deg, var(--fkp-navy) 0%, #1e3560 100%);
    padding: 52px 0;
    margin-top: 60px;
}
.fkp-service-cta-block__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}
.fkp-service-cta-block__title {
    font-size: 26px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 8px;
}
.fkp-service-cta-block__text {
    font-size: 16px;
    color: rgba(255,255,255,0.75);
    margin: 0;
}

@media (max-width: 768px) {
    .fkp-service-hero { min-height: 280px; }
    .fkp-service-hero__title { font-size: 28px; }
    .fkp-service-hero__subtitle { font-size: 16px; }
    .fkp-service-content { padding: 40px 0 24px; }
    .fkp-service-cta-block__inner { flex-direction: column; text-align: center; }
    .fkp-anchors__link { padding: 14px 16px; font-size: 12.5px; }
}

/* ══════════════════════════════════════════════════════════════
   TEMPLATE BLOG INDEX — inspiré Carinel blog-securite-et-surete
   ══════════════════════════════════════════════════════════════ */

/* Hero index blog */
.fkp-blog-hero {
    background: var(--fkp-light);
    border-bottom: 1px solid var(--fkp-border);
    padding: 52px 0 40px;
}
.fkp-blog-hero__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: center;
}
.fkp-blog-hero__title {
    font-size: clamp(26px, 3.5vw, 40px);
    font-weight: 800;
    color: var(--fkp-navy);
    margin: 0 0 16px;
    line-height: 1.2;
}
.fkp-blog-hero__subtitle {
    font-size: 17px;
    color: #5a6e84;
    line-height: 1.65;
    max-width: 560px;
    margin: 0;
}
.fkp-blog-hero__image { flex-shrink: 0; }
.fkp-blog-hero__img {
    width: 320px;
    height: 200px;
    object-fit: cover;
    border-radius: var(--fkp-radius-lg);
    box-shadow: var(--fkp-shadow-md);
}

/* Tabs catégories */
.fkp-blog-cats {
    background: #fff;
    border-bottom: 2px solid var(--fkp-border);
    position: sticky;
    top: 64px;
    z-index: 800;
}
.fkp-blog-cats .container {
    display: flex;
    align-items: center;
    gap: 12px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-top: 0;
    padding-bottom: 0;
}
.fkp-blog-cats .container::-webkit-scrollbar { display: none; }
.fkp-blog-cats__list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 2px;
    flex-shrink: 0;
}
.fkp-blog-cats__link {
    display: block;
    padding: 14px 18px;
    font-size: 13px;
    font-weight: 500;
    color: #5a6e84;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    transition: all var(--fkp-transition);
}
.fkp-blog-cats__link:hover,
.fkp-blog-cats__link.is-active {
    color: var(--fkp-navy);
    border-bottom-color: var(--fkp-teal);
    font-weight: 600;
}

/* Barre de recherche dans nav cats */
.fkp-blog-search {
    display: flex;
    align-items: center;
    gap: 0;
    margin-left: auto;
    flex-shrink: 0;
    background: var(--fkp-light);
    border: 1px solid var(--fkp-border);
    border-radius: 6px;
    overflow: hidden;
}
.fkp-blog-search__input {
    border: none;
    background: transparent;
    padding: 8px 14px;
    font-size: 13px;
    color: var(--fkp-navy);
    outline: none;
    width: 180px;
}
.fkp-blog-search__btn {
    background: none;
    border: none;
    padding: 8px 14px;
    cursor: pointer;
    color: #5a6e84;
    transition: color var(--fkp-transition);
}
.fkp-blog-search__btn:hover { color: var(--fkp-teal); }

/* Grille articles */
.fkp-blog-grid-section {
    padding: 56px 0 80px;
    background: #fff;
}
.fkp-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    margin-bottom: 52px;
}
.fkp-blog-grid--related {
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 0;
}

/* Card article */
.fkp-blog-card {
    background: #fff;
    border-radius: var(--fkp-radius-lg);
    border: 1px solid var(--fkp-border);
    overflow: hidden;
    transition: transform var(--fkp-transition), box-shadow var(--fkp-transition);
    display: flex;
    flex-direction: column;
}
.fkp-blog-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--fkp-shadow-lg);
}
.fkp-blog-card__thumb-link { display: block; overflow: hidden; aspect-ratio: 4/3; }
.fkp-blog-card__thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
    display: block;
}
.fkp-blog-card:hover .fkp-blog-card__thumb { transform: scale(1.05); }
.fkp-blog-card__thumb--placeholder {
    background: var(--fkp-teal-light);
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4/3;
    color: var(--fkp-teal);
    font-size: 36px;
}
.fkp-blog-card__body {
    padding: 22px 22px 18px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 10px;
}
.fkp-blog-card__cat {
    display: inline-block;
    background: var(--fkp-teal-light);
    color: var(--fkp-teal-dark);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 20px;
}
.fkp-blog-card__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--fkp-navy);
    line-height: 1.35;
    margin: 0;
    flex-grow: 1;
}
.fkp-blog-card__title--sm { font-size: 15px; }
.fkp-blog-card__title a { text-decoration: none; color: inherit; }
.fkp-blog-card__title a:hover { color: var(--fkp-teal); }
.fkp-blog-card__excerpt {
    font-size: 14px;
    color: #5a6e84;
    line-height: 1.6;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.fkp-blog-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 12px;
    border-top: 1px solid var(--fkp-border);
    margin-top: auto;
    font-size: 13px;
    color: #8899aa;
}
.fkp-blog-card__date { font-size: 12.5px; }
.fkp-blog-card__read-more {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 600;
    color: var(--fkp-teal);
    text-decoration: none;
    transition: gap var(--fkp-transition);
}
.fkp-blog-card__read-more:hover { gap: 9px; }

/* Pagination blog */
.fkp-blog-pagination .page-numbers {
    display: flex;
    list-style: none;
    gap: 6px;
    justify-content: center;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}
.fkp-blog-pagination .page-numbers li a,
.fkp-blog-pagination .page-numbers li span {
    display: inline-flex;
    align-items: center;
    padding: 9px 16px;
    border-radius: var(--fkp-radius);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid var(--fkp-border);
    color: #5a6e84;
    transition: all var(--fkp-transition);
}
.fkp-blog-pagination .page-numbers li .current,
.fkp-blog-pagination .page-numbers li a:hover {
    background: var(--fkp-teal);
    border-color: var(--fkp-teal);
    color: #fff;
}

/* Vide */
.fkp-blog-empty {
    text-align: center;
    padding: 60px 20px;
    color: #5a6e84;
}
.fkp-blog-empty i { font-size: 40px; color: var(--fkp-border); margin-bottom: 16px; display: block; }
.fkp-blog-empty p { font-size: 17px; margin-bottom: 24px; }

/* ══════════════════════════════════════════════════════════════
   SINGLE ARTICLE — inspiré Carinel /post/
   ══════════════════════════════════════════════════════════════ */

/* Single: tabs catégories avec état actif sur la catégorie courante */
.fkp-blog-cats--single .fkp-blog-cats__link.is-active {
    color: var(--fkp-teal);
    border-bottom-color: var(--fkp-teal);
    font-weight: 600;
}

.fkp-single-article { background: #fff; }

/* En-tête article */
.fkp-single-article__header {
    padding-top: 52px;
    padding-bottom: 36px;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}
.fkp-single-article__cat {
    display: inline-block;
    background: var(--fkp-teal-light);
    color: var(--fkp-teal-dark);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 20px;
    text-decoration: none;
    margin-bottom: 18px;
}
.fkp-single-article__title {
    font-size: clamp(26px, 4vw, 44px);
    font-weight: 800;
    color: var(--fkp-navy);
    margin: 0 0 24px;
    line-height: 1.2;
    letter-spacing: -0.5px;
}
.fkp-single-article__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    font-size: 13.5px;
    color: #7a8ea0;
}
.fkp-single-article__meta i { margin-right: 5px; color: var(--fkp-teal); }
.fkp-single-article__date,
.fkp-single-article__reading,
.fkp-single-article__author { display: flex; align-items: center; gap: 6px; }

/* Image hero */
.fkp-single-article__hero-img {
    width: 100%;
    max-width: 980px;
    margin: 0 auto 0;
    border-radius: 0;
    overflow: hidden;
    line-height: 0;
}
.fkp-single-article__hero-img-el {
    width: 100%;
    max-height: 520px;
    object-fit: cover;
    display: block;
}

/* Corps prose */
.fkp-single-article__body {
    padding-top: 52px;
    padding-bottom: 60px;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}
.fkp-single-article__content {
    font-size: 17px;
    line-height: 1.82;
    color: #2d3748;
}
.fkp-single-article__content h2 {
    font-size: 26px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 52px 0 18px;
    border-bottom: 2px solid var(--fkp-teal-light);
    padding-bottom: 10px;
    line-height: 1.25;
}
.fkp-single-article__content h3 {
    font-size: 21px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 36px 0 14px;
}
.fkp-single-article__content h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--fkp-navy);
    margin: 28px 0 12px;
}
.fkp-single-article__content ul,
.fkp-single-article__content ol {
    padding-left: 24px;
    margin: 18px 0 24px;
}
.fkp-single-article__content li { margin-bottom: 8px; }
.fkp-single-article__content blockquote {
    border-left: 4px solid var(--fkp-teal);
    background: var(--fkp-teal-light);
    padding: 20px 28px;
    margin: 32px 0;
    border-radius: 0 var(--fkp-radius) var(--fkp-radius) 0;
    font-style: italic;
    font-size: 18px;
    color: var(--fkp-navy);
    line-height: 1.6;
}
.fkp-single-article__content a {
    color: var(--fkp-teal);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.fkp-single-article__content img {
    border-radius: var(--fkp-radius);
    box-shadow: var(--fkp-shadow-sm);
    max-width: 100%;
}

/* Tags */
.fkp-single-article__tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 32px 0;
    padding-top: 24px;
    border-top: 1px solid var(--fkp-border);
    font-size: 13px;
    color: #7a8ea0;
}
.fkp-single-article__tags i { font-size: 14px; color: var(--fkp-teal); }
.fkp-single-article__tag {
    background: var(--fkp-light);
    border: 1px solid var(--fkp-border);
    color: #5a6e84;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    transition: all var(--fkp-transition);
}
.fkp-single-article__tag:hover {
    background: var(--fkp-teal);
    border-color: var(--fkp-teal);
    color: #fff;
}

/* Partage social */
.fkp-single-article__share {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    font-size: 13px;
    color: #7a8ea0;
    font-weight: 500;
}
.fkp-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: var(--fkp-radius);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--fkp-transition);
}
.fkp-share-btn--linkedin {
    background: #0A66C2;
    color: #fff;
}
.fkp-share-btn--linkedin:hover { background: #004182; color: #fff; }
.fkp-share-btn--twitter {
    background: #000;
    color: #fff;
}
.fkp-share-btn--twitter:hover { background: #333; color: #fff; }

/* Articles liés */
.fkp-related {
    background: var(--fkp-light);
    padding: 60px 0;
    border-top: 1px solid var(--fkp-border);
}
.fkp-related__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 0 0 32px;
}

/* ══════════════════════════════════════════════════════════════
   PAGE LÉGALE — inspiré Carinel mentions-legales
   ══════════════════════════════════════════════════════════════ */

.fkp-legal-page {
    background: #fff;
    min-height: 100vh;
}

/* En-tête logo */
.fkp-legal-page__header {
    padding: 32px 0;
    border-bottom: 1px solid var(--fkp-border);
    text-align: center;
}
.fkp-legal-page__logo-link { display: inline-block; }
.fkp-legal-page__logo {
    max-height: 60px;
    max-width: 240px;
    width: auto;
    object-fit: contain;
}

/* Corps légal */
.fkp-legal-page__main { padding: 60px 0 80px; }
.fkp-legal-page__inner {
    max-width: 780px;
    margin: 0 auto;
}

/* Titre H1 */
.fkp-legal-page__title {
    font-size: clamp(28px, 3.5vw, 42px);
    font-weight: 800;
    color: var(--fkp-navy);
    margin: 0 0 16px;
    line-height: 1.2;
}

/* Date de mise à jour */
.fkp-legal-page__updated {
    font-size: 13px;
    color: #7a8ea0;
    margin-bottom: 36px;
    display: flex;
    align-items: center;
    gap: 7px;
}
.fkp-legal-page__updated i { color: var(--fkp-teal); }

/* Sommaire */
.fkp-legal-page__toc {
    background: var(--fkp-light);
    border: 1px solid var(--fkp-border);
    border-left: 4px solid var(--fkp-teal);
    border-radius: 0 var(--fkp-radius) var(--fkp-radius) 0;
    padding: 22px 28px;
    margin-bottom: 44px;
}
.fkp-legal-page__toc-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}
.fkp-legal-page__toc-title i { color: var(--fkp-teal); }
.fkp-legal-page__toc-list {
    margin: 0;
    padding-left: 18px;
}
.fkp-legal-page__toc-list li { margin-bottom: 6px; }
.fkp-legal-page__toc-list a {
    font-size: 14px;
    color: #5a6e84;
    text-decoration: none;
    transition: color var(--fkp-transition);
}
.fkp-legal-page__toc-list a:hover { color: var(--fkp-teal); }

/* Contenu légal */
.fkp-legal-page__content {
    font-size: 15.5px;
    line-height: 1.78;
    color: #374151;
}
.fkp-legal-page__content h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 48px 0 16px;
    padding-top: 16px;
    border-top: 2px solid var(--fkp-teal-light);
}
.fkp-legal-page__content h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 32px 0 12px;
}
.fkp-legal-page__content h4,
.fkp-legal-page__content h5 {
    font-size: 15px;
    font-weight: 700;
    color: var(--fkp-navy);
    margin: 24px 0 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.fkp-legal-page__content p {
    margin-bottom: 16px;
}
.fkp-legal-page__content a {
    color: var(--fkp-teal);
    text-underline-offset: 3px;
}
.fkp-legal-page__content ul,
.fkp-legal-page__content ol {
    padding-left: 22px;
    margin-bottom: 18px;
}
.fkp-legal-page__content li { margin-bottom: 6px; }

/* Bouton retour */
.fkp-legal-page__back {
    margin-top: 52px;
    padding-top: 32px;
    border-top: 1px solid var(--fkp-border);
}

/* ── Responsive tous templates ─────────────────────────────── */
@media (max-width: 1024px) {
    .fkp-blog-grid,
    .fkp-blog-grid--related { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .fkp-blog-hero__inner { grid-template-columns: 1fr; }
    .fkp-blog-hero__image { display: none; }
    .fkp-blog-grid,
    .fkp-blog-grid--related { grid-template-columns: 1fr; }
    .fkp-single-article__header { padding-top: 36px; }
    .fkp-single-article__title { font-size: 26px; }
    .fkp-single-article__content { font-size: 16px; }
    .fkp-blog-search { display: none; }
    .fkp-legal-page__inner { max-width: 100%; }
    .fkp-legal-page__main { padding: 40px 0 52px; }
}
@media (max-width: 480px) {
    .fkp-anchors__link { padding: 12px 14px; font-size: 12px; }
    .fkp-single-article__meta { gap: 12px; font-size: 12.5px; }
    .fkp-service-cta-block { padding: 36px 0; }
}

/* End fkeszi-pro v1.0.0 Templates section =================== */

/* ============================================================
   FKESZI PRO v1.0.0 — CARINEL VISUAL REBUILD
   Couleurs Carinel : bleu #3a7fc8, dark teal #2a4d6e, gris-bleu article #dce8f4
   ============================================================ */

/* ── Variables Carinel ──────────────────────────────────────── */
:root {
    --fkc-blue:       #3a7fc8;
    --fkc-blue-dark:  #2461a8;
    --fkc-navy:       #1a2b4c;
    --fkc-teal:       #2a4d6e;
    --fkc-teal-bg:    #2d5878;
    --fkc-article-bg: #dce8f4;
    --fkc-card-bg:    #e8f2fb;
    --fkc-text:       #1a1a1a;
    --fkc-gray:       #5a6a7a;
    --fkc-border:     #e0e8f0;
    --fkc-white:      #ffffff;
}

/* ── Reset sidebar globalement ──────────────────────────────── */
#secondary,
.widget-area,
.sidebar,
[class*="sidebar"] { display: none !important; }

#primary,
.content-area { width: 100% !important; float: none !important; max-width: 100% !important; }

/* ── Header Carinel exact ───────────────────────────────────── */
.site-header {
    background: var(--fkc-white) !important;
    border-bottom: 1px solid var(--fkc-border) !important;
    box-shadow: 0 1px 8px rgba(26,43,76,0.07) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    padding: 0 !important;
}

/* Logo */
.site-header .custom-logo { max-height: 50px !important; width: auto !important; }
.site-header .site-title a { color: var(--fkc-navy) !important; font-weight: 800 !important; font-size: 20px !important; }
.site-header .site-description { color: var(--fkc-blue) !important; font-size: 10px !important; letter-spacing: 1.2px !important; text-transform: uppercase !important; }

/* Navigation */
.site-header .main-navigation a { color: var(--fkc-text) !important; font-size: 14px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; padding: 28px 14px !important; }
.site-header .main-navigation a:hover,
.site-header .main-navigation .current-menu-item > a,
.site-header .main-navigation .current_page_item > a { color: var(--fkc-blue) !important; border-bottom: none !important; }
.site-header .main-navigation ul ul { background: #fff !important; border: 1px solid var(--fkc-border) !important; border-top: 3px solid var(--fkc-blue) !important; box-shadow: 0 8px 24px rgba(0,0,0,0.10) !important; }

/* CTA bouton header */
.fkp-header-cta {
    background: var(--fkc-blue) !important;
    color: #fff !important;
    border-radius: 6px !important;
    padding: 10px 22px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    transition: background 0.2s !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    margin-left: 20px !important;
}
.fkp-header-cta:hover { background: var(--fkc-blue-dark) !important; color: #fff !important; }

/* ══════════════════════════════════════════════════════════════
   HOMEPAGE HERO — Split blanc texte/photo (Image 1 Carinel)
   ══════════════════════════════════════════════════════════════ */
.fkp-hp-hero {
    display: grid;
    grid-template-columns: 55% 45%;
    min-height: 560px;
    background: #fff;
    overflow: hidden;
}
.fkp-hp-hero__left {
    display: flex;
    align-items: center;
    padding: 60px 48px 60px 8%;
}
.fkp-hp-hero__content { max-width: 520px; }
.fkp-hp-hero__eyebrow {
    font-size: 13px;
    color: var(--fkc-gray);
    margin: 0 0 16px;
    letter-spacing: 0.2px;
    font-weight: 400;
}
.fkp-hp-hero__title {
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 800;
    color: var(--fkc-blue);
    line-height: 1.15;
    margin: 0 0 20px;
    letter-spacing: -0.5px;
}
.fkp-hp-hero__title u { text-decoration-color: var(--fkc-blue); text-underline-offset: 4px; }
.fkp-hp-hero__subtitle {
    font-size: 16px;
    font-weight: 600;
    color: var(--fkc-text);
    line-height: 1.6;
    margin: 0 0 32px;
}
.fkp-hp-hero__btns { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }

/* Boutons hero */
.fkp-hp-btn { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; text-decoration: none; transition: all 0.22s; cursor: pointer; }
.fkp-hp-btn--outline { border: 1.5px solid var(--fkc-blue); color: var(--fkc-blue); padding: 11px 24px; border-radius: 6px; background: transparent; }
.fkp-hp-btn--outline:hover { background: var(--fkc-blue); color: #fff; }
.fkp-hp-btn--link { color: var(--fkc-blue); border-bottom: 1.5px solid transparent; padding: 0; background: none; border-radius: 0; }
.fkp-hp-btn--link:hover { border-bottom-color: var(--fkc-blue); color: var(--fkc-blue-dark); }
.fkp-hp-btn--primary { background: var(--fkc-blue); color: #fff; padding: 12px 26px; border-radius: 6px; border: 1.5px solid var(--fkc-blue); }
.fkp-hp-btn--primary:hover { background: var(--fkc-blue-dark); border-color: var(--fkc-blue-dark); color: #fff; }

/* Photo droite flush au bord */
.fkp-hp-hero__right { position: relative; overflow: hidden; }
.fkp-hp-hero__img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ══════════════════════════════════════════════════════════════
   ABOUT — Teal tagline + image gauche + card droite
   ══════════════════════════════════════════════════════════════ */
.fkp-hp-about { padding: 70px 8% 70px; background: #fff; }
.fkp-hp-about__intro { margin-bottom: 48px; }
.fkp-hp-about__tagline {
    font-size: clamp(20px, 2.5vw, 28px);
    font-weight: 700;
    color: var(--fkc-blue);
    margin: 0 0 10px;
    line-height: 1.3;
}
.fkp-hp-about__title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--fkc-text);
    margin: 0 0 16px;
}
.fkp-hp-about__text { font-size: 15.5px; color: var(--fkc-gray); max-width: 700px; line-height: 1.7; margin: 0; }

.fkp-hp-about__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.fkp-hp-about__img { width: 100%; height: 340px; object-fit: cover; border-radius: 12px; display: block; }
.fkp-hp-about__card {
    background: var(--fkc-card-bg);
    border-radius: 12px;
    padding: 32px 32px 28px;
}
.fkp-hp-about__card-title { font-size: 15px; font-weight: 700; color: var(--fkc-text); margin: 0 0 20px; }
.fkp-hp-about__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.fkp-hp-about__item { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.5; color: var(--fkc-text); }
.fkp-hp-about__item i { color: var(--fkc-blue); font-size: 16px; margin-top: 2px; flex-shrink: 0; }

/* ══════════════════════════════════════════════════════════════
   SERVICES — 4 cartes (Carinel cards style)
   ══════════════════════════════════════════════════════════════ */
.fkp-hp-section-head { text-align: center; margin-bottom: 48px; }
.fkp-hp-section-title { font-size: clamp(22px, 3vw, 32px); font-weight: 700; color: var(--fkc-text); margin: 0 0 12px; }
.fkp-hp-section-subtitle { font-size: 16px; color: var(--fkc-gray); max-width: 560px; margin: 0 auto; line-height: 1.6; }

.fkp-hp-services { padding: 70px 8%; background: #f7f9fc; }
.fkp-hp-services__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }

.fkp-hp-svc-card {
    background: #fff;
    border-radius: 12px;
    padding: 28px 24px;
    border: 1px solid var(--fkc-border);
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: all 0.22s;
}
.fkp-hp-svc-card:hover { transform: translateY(-5px); box-shadow: 0 8px 32px rgba(58,127,200,0.13); border-color: var(--fkc-blue); }
.fkp-hp-svc-card__icon { width: 54px; height: 54px; border-radius: 50%; background: #e8f2fb; display: flex; align-items: center; justify-content: center; transition: background 0.22s; }
.fkp-hp-svc-card__icon i { font-size: 22px; color: var(--fkc-blue); transition: color 0.22s; }
.fkp-hp-svc-card:hover .fkp-hp-svc-card__icon { background: var(--fkc-blue); }
.fkp-hp-svc-card:hover .fkp-hp-svc-card__icon i { color: #fff; }
.fkp-hp-svc-card__title { font-size: 17px; font-weight: 700; color: var(--fkc-text); margin: 0; }
.fkp-hp-svc-card__desc { font-size: 14px; color: var(--fkc-gray); line-height: 1.6; flex-grow: 1; margin: 0; }
.fkp-hp-svc-card__arrow { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--fkc-blue); margin-top: auto; transition: gap 0.22s; }
.fkp-hp-svc-card:hover .fkp-hp-svc-card__arrow { gap: 10px; }

/* ══════════════════════════════════════════════════════════════
   STATS — Carinel "+500 sites audités" style
   ══════════════════════════════════════════════════════════════ */
.fkp-hp-stats { background: var(--fkc-teal-bg); padding: 64px 8%; }
.fkp-hp-stats__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; }
.fkp-hp-stat { text-align: center; padding: 24px; border-right: 1px solid rgba(255,255,255,0.15); }
.fkp-hp-stat:last-child { border-right: none; }
.fkp-hp-stat__number { font-size: clamp(44px, 6vw, 72px); font-weight: 800; color: #fff; line-height: 1; margin-bottom: 10px; display: flex; align-items: baseline; justify-content: center; gap: 3px; }
.fkp-counter { color: #fff; }
.fkp-hp-stat__suffix { font-size: 0.6em; font-weight: 700; color: rgba(255,255,255,0.85); }
.fkp-hp-stat__label { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1.2px; color: rgba(255,255,255,0.75); margin: 0; }

/* ══════════════════════════════════════════════════════════════
   PROCESS — 4 étapes (Carinel icons animées)
   ══════════════════════════════════════════════════════════════ */
.fkp-hp-process { padding: 70px 8%; background: #fff; }
.fkp-hp-process__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; margin-top: 0; }
.fkp-hp-process__step { text-align: center; padding: 32px 20px 24px; position: relative; }
.fkp-hp-process__icon-wrap { position: relative; display: inline-block; margin-bottom: 20px; }
.fkp-hp-process__icon { width: 80px; height: 80px; border-radius: 50%; background: var(--fkc-card-bg); display: flex; align-items: center; justify-content: center; margin: 0 auto; transition: all 0.25s; }
.fkp-hp-process__icon i { font-size: 30px; color: var(--fkc-blue); transition: color 0.25s; }
.fkp-hp-process__step:hover .fkp-hp-process__icon { background: var(--fkc-blue); }
.fkp-hp-process__step:hover .fkp-hp-process__icon i { color: #fff; }
.fkp-hp-process__num { position: absolute; top: -4px; right: -4px; background: var(--fkc-blue); color: #fff; width: 26px; height: 26px; border-radius: 50%; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.fkp-hp-process__title { font-size: 16px; font-weight: 700; color: var(--fkc-text); margin: 0 0 10px; }
.fkp-hp-process__desc { font-size: 14px; color: var(--fkc-gray); line-height: 1.6; margin: 0; }

/* ══════════════════════════════════════════════════════════════
   BLOG HOME — grille 3 colonnes
   ══════════════════════════════════════════════════════════════ */
.fkp-hp-blog { padding: 70px 8%; background: #f7f9fc; }

/* ══════════════════════════════════════════════════════════════
   SINGLE ARTICLE — carte blanche sur fond bleu-gris (Image 4-5 Carinel)
   ══════════════════════════════════════════════════════════════ */
.fkp-single-article {
    background: var(--fkc-article-bg) !important;
    min-height: 100vh;
}
.fkp-single-article__header {
    background: var(--fkc-article-bg);
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    max-width: 100% !important;
}
/* La carte blanche */
.fkp-single-article__body {
    background: transparent !important;
}
.fkp-single-article__body .container {
    max-width: 700px !important;
}
/* Réécriture : tout l'article dans une carte blanche */
.fkp-single-article .fkp-single-article__inner-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 24px rgba(26,43,76,0.10);
    max-width: 700px;
    margin: 0 auto;
    padding: 40px 48px 48px;
}

/* Tabs catégories sur single (même style Index) */
.fkp-blog-cats--single { top: 64px; background: #fff; }

/* ══════════════════════════════════════════════════════════════
   BLOG INDEX HERO — teal foncé gauche + photo droite (Image 3 Carinel)
   ══════════════════════════════════════════════════════════════ */
.fkp-blog-hero {
    background: none !important;
    border-bottom: none !important;
    padding: 0 !important;
    min-height: 300px;
    display: grid;
    grid-template-columns: 55% 45%;
    overflow: hidden;
}
.fkp-blog-hero__inner {
    display: contents; /* les enfants deviennent grid items */
}
.fkp-blog-hero__text {
    background: var(--fkc-teal-bg);
    padding: 52px 8%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.fkp-blog-hero__title { color: #fff !important; }
.fkp-blog-hero__subtitle { color: rgba(255,255,255,0.82) !important; font-weight: 600 !important; font-size: 16px !important; max-width: 100% !important; }
.fkp-blog-hero__image {
    display: block !important;
    overflow: hidden;
}
.fkp-blog-hero__img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    border-radius: 0 !important;
}

/* Fond gris-bleu pour la liste articles */
.fkp-blog-grid-section { background: var(--fkc-article-bg) !important; }

/* ══════════════════════════════════════════════════════════════
   SERVICE PAGE HERO — même dark teal split (Image 2 Carinel)
   ══════════════════════════════════════════════════════════════ */
.fkp-service-hero {
    background: none !important;
    min-height: 340px;
    display: grid;
    grid-template-columns: 55% 45%;
    overflow: hidden;
}
.fkp-service-hero__overlay { display: none !important; }
.fkp-service-hero__inner {
    background: var(--fkc-teal-bg);
    padding: 52px 8%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: static;
    z-index: auto;
}
/* Photo côté droit : injectée via ::after ou img ajouté */
.fkp-service-hero::after {
    content: '';
    display: block;
    background: var(--fkc-teal);
}

/* Tags secteurs (Image 2 Carinel) */
.fkp-sector-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.fkp-sector-tag { border: 1.5px solid rgba(255,255,255,0.7); color: #fff; padding: 7px 18px; border-radius: 6px; font-size: 14px; font-weight: 500; text-decoration: none; transition: all 0.2s; cursor: pointer; }
.fkp-sector-tag:hover { background: rgba(255,255,255,0.15); color: #fff; }

/* ══════════════════════════════════════════════════════════════
   PAGE LÉGALE — plus épurée, fonds gris-bleu léger
   ══════════════════════════════════════════════════════════════ */
.fkp-legal-page { background: var(--fkc-article-bg) !important; }
.fkp-legal-page__inner {
    background: #fff;
    border-radius: 12px;
    padding: 48px 52px;
    box-shadow: 0 2px 24px rgba(26,43,76,0.08);
}

/* ══════════════════════════════════════════════════════════════
   PAGE STANDARD — pleine largeur propre
   ══════════════════════════════════════════════════════════════ */
.fkp-page-wrap { background: #fff; min-height: 60vh; }
.fkp-page-thumb { overflow: hidden; max-height: 400px; }
.fkp-page-thumb__img { width: 100%; height: 400px; object-fit: cover; display: block; }
.fkp-page-article { padding: 0; }
.fkp-page-content { max-width: 800px; margin: 0 auto; padding: 56px 0 80px; font-size: 16.5px; line-height: 1.78; color: var(--fkc-text); }
.fkp-page-content h2 { font-size: 26px; font-weight: 700; color: var(--fkc-navy); margin: 40px 0 16px; }
.fkp-page-content h3 { font-size: 21px; font-weight: 700; color: var(--fkc-navy); margin: 30px 0 12px; }
.fkp-page-content a { color: var(--fkc-blue); }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .fkp-hp-services__grid { grid-template-columns: repeat(2,1fr); }
    .fkp-hp-process__grid  { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 768px) {
    .fkp-hp-hero { grid-template-columns: 1fr; min-height: auto; }
    .fkp-hp-hero__right { height: 280px; }
    .fkp-hp-hero__left { padding: 40px 24px; }
    .fkp-hp-about__cols { grid-template-columns: 1fr; }
    .fkp-hp-about { padding: 48px 24px; }
    .fkp-hp-services { padding: 48px 24px; }
    .fkp-hp-process { padding: 48px 24px; }
    .fkp-hp-blog { padding: 48px 24px; }
    .fkp-hp-stats__grid { grid-template-columns: 1fr; }
    .fkp-hp-stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.15); }
    .fkp-blog-hero { grid-template-columns: 1fr; }
    .fkp-blog-hero__image { display: none; }
    .fkp-service-hero { grid-template-columns: 1fr; }
    .fkp-legal-page__inner { padding: 32px 24px; }
    .fkp-blog-grid { grid-template-columns: 1fr !important; }
    .fkp-hp-services__grid { grid-template-columns: 1fr; }
    .fkp-hp-process__grid { grid-template-columns: 1fr; }
}

/* ── Nettoyage éléments parasites ──────────────────────────── */
.site-main > .container { padding-top: 0 !important; }
.pg-header, .page-header, .entry-header.pg-header { display: none; }
.breadcrumb-wrap { display: none; }

/* End Carinel Visual Rebuild ================================= */

/* ── Single article : carte blanche sur fond bleu-gris ───────── */
.fkp-single-wrap {
    background: var(--fkc-article-bg);
    min-height: 100vh;
    padding: 40px 0 80px;
}
.fkp-single-card {
    background: #fff;
    border-radius: 12px;
    max-width: 700px;
    margin: 0 auto;
    padding: 40px 48px 48px;
    box-shadow: 0 2px 24px rgba(26,43,76,0.08);
}
.fkp-single-card__img { margin: 28px -48px 32px; overflow: hidden; }
.fkp-single-card__img-el { width: 100%; max-height: 440px; object-fit: cover; display: block; }

/* Articles liés sur fond bleu-gris */
.fkp-single-related { background: var(--fkc-article-bg); padding: 0 0 60px; }
.fkp-single-related__inner { max-width: 700px; margin: 0 auto; }
.fkp-single-related .fkp-blog-grid { grid-template-columns: repeat(3,1fr); }

@media (max-width: 768px) {
    .fkp-single-card { padding: 28px 20px 32px; margin: 0 16px; }
    .fkp-single-card__img { margin: 20px -20px 24px; }
    .fkp-single-related .fkp-blog-grid { grid-template-columns: 1fr; }
    .fkp-single-related__inner { padding: 0 16px; }
}

/* ── SHORTCODE [fkp_html] & [fkp_veille] — classes corpus I2S ── */
.fkp-content-block,
.fkp-veille-embed,
.fkp-raw-page {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
}

/* Classes internes du corpus veille (se, st, ss, mrow, met…) */
.fkp-content-block .st,
.fkp-veille-embed .st { font-size: clamp(22px,3vw,32px); font-weight:800; color:#1A2B4C; margin:16px 0 14px; line-height:1.2; }
.fkp-content-block .se,
.fkp-veille-embed .se { font-size:12px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:#3BBDB8; margin-bottom:8px; }
.fkp-content-block .ss,
.fkp-veille-embed .ss { font-size:16px; color:#5a6e84; line-height:1.7; margin-bottom:28px; max-width:820px; }
.fkp-content-block .mrow,
.fkp-veille-embed .mrow { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:24px 0 32px; }
@media(max-width:768px){ .fkp-content-block .mrow,.fkp-veille-embed .mrow{grid-template-columns:repeat(2,1fr);} }
.fkp-content-block .met,
.fkp-veille-embed .met { background:#f0f7ff; border:1px solid #d0e3f5; border-radius:8px; padding:16px; text-align:center; }
.fkp-content-block .mv,
.fkp-veille-embed .mv { font-size:28px; font-weight:800; color:#1A2B4C; }
.fkp-content-block .ml,
.fkp-veille-embed .ml { font-size:12px; color:#5a6e84; margin-top:4px; }
.fkp-content-block .blk,
.fkp-veille-embed .blk { margin:32px 0; }
.fkp-content-block .bl,
.fkp-veille-embed .bl { font-size:14px; font-weight:700; color:#1A2B4C; text-transform:uppercase; letter-spacing:.8px; margin-bottom:16px; padding-bottom:8px; border-bottom:2px solid #e5e7eb; }
.fkp-content-block .g2,
.fkp-veille-embed .g2 { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.fkp-content-block .g3,
.fkp-veille-embed .g3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:900px){ .fkp-content-block .g2,.fkp-veille-embed .g2,.fkp-content-block .g3,.fkp-veille-embed .g3{grid-template-columns:1fr;} }
.fkp-content-block .cd,
.fkp-veille-embed .cd { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:18px 20px; border-top:4px solid #e5e7eb; }
.fkp-content-block .cd.ct,.fkp-veille-embed .cd.ct { border-top-color:#3BBDB8; }
.fkp-content-block .cd.cc,.fkp-veille-embed .cd.cc { border-top-color:#3B6EC8; }
.fkp-content-block .cd.cb,.fkp-veille-embed .cd.cb { border-top-color:#1A2B4C; }
.fkp-content-block .cd.cp,.fkp-veille-embed .cd.cp { border-top-color:#7B5BC0; }
.fkp-content-block .cd.cg,.fkp-veille-embed .cd.cg { border-top-color:#22C55E; }
.fkp-content-block .cl,
.fkp-veille-embed .cl { font-size:13px; font-weight:700; color:#1A2B4C; margin-bottom:8px; }
.fkp-content-block .cd p,
.fkp-veille-embed .cd p { font-size:14px; color:#374151; line-height:1.65; margin:0; }
.fkp-content-block table,
.fkp-veille-embed table { width:100%; border-collapse:collapse; font-size:14px; margin:0; }
.fkp-content-block table th,
.fkp-veille-embed table th { background:#1A2B4C; color:#fff; padding:10px 14px; text-align:left; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.5px; }
.fkp-content-block table td,
.fkp-veille-embed table td { padding:10px 14px; border-bottom:1px solid #f3f4f6; color:#374151; vertical-align:top; }
.fkp-content-block table tr:nth-child(even) td,
.fkp-veille-embed table tr:nth-child(even) td { background:#f8faff; }
.fkp-content-block .qt,
.fkp-veille-embed .qt { background:#f0f7ff; border-left:4px solid #3BBDB8; padding:20px 24px; margin:28px 0; border-radius:0 8px 8px 0; font-style:italic; font-size:15px; color:#1A2B4C; line-height:1.6; }
.fkp-content-block .qs,
.fkp-veille-embed .qs { font-size:12px; color:#5a6e84; font-style:normal; font-weight:600; margin-top:10px; }
.fkp-content-block .ff,
.fkp-veille-embed .ff { font-size:11px; color:#9ca3af; text-align:center; margin-top:32px; padding-top:16px; border-top:1px solid #f3f4f6; letter-spacing:.5px; text-transform:uppercase; }
.fkp-content-block .v-source,
.fkp-veille-embed .v-source { font-size:11px; color:#9ca3af; text-align:right; margin-top:8px; }
.fkp-content-block .v-back-bar,
.fkp-veille-embed .v-back-bar { margin-bottom:20px; }
.fkp-content-block .v-back,
.fkp-veille-embed .v-back { background:none; border:1px solid #d0e3f5; color:#3B6EC8; padding:7px 16px; border-radius:6px; cursor:pointer; font-size:13px; font-weight:600; }
.fkp-content-block .v-back:hover,
.fkp-veille-embed .v-back:hover { background:#3B6EC8; color:#fff; }

/* Page HTML Brute — pleine largeur, padding confortable */
.fkp-raw-page { padding:40px 6%; max-width:1280px; margin:0 auto; }

/* ============================================================
   FKESZI PRO v2.1.0 — FOOTER CARINEL + SECTIONS ORIGINALES
   ============================================================ */

/* ── Footer 3 colonnes style Carinel ─────────────────────────── */
.fkp-footer-top { padding: 52px 0 40px; }
.fkp-footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 48px;
    align-items: start;
}
@media (max-width: 900px) { .fkp-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .fkp-footer-grid { grid-template-columns: 1fr; gap: 32px; } }

.fkp-footer-logo { width: 120px !important; height: 120px !important; max-width: 120px !important; max-height: 120px !important; object-fit: cover !important; border-radius: 50% !important; opacity: 0.95; display: block !important; }
.fkp-footer-logo-link { display: inline-block; margin-bottom: 16px; }
.fkp-footer-slogan { font-size: 13.5px; color: rgba(255,255,255,0.60); line-height: 1.6; margin: 0 0 18px; }

/* Réseaux sociaux footer */
.site-footer .social-networks { list-style: none; margin: 16px 0 0; padding: 0; display: flex; gap: 10px; flex-wrap: wrap; }
.site-footer .social-networks li a {
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 50%;
    background: rgba(255,255,255,0.10); color: rgba(255,255,255,0.75);
    font-size: 14px; text-decoration: none;
    transition: all 0.22s;
}
.site-footer .social-networks li a:hover { background: var(--fkc-blue); color: #fff; }

/* Titres colonnes footer */
.fkp-footer-col__title {
    font-size: 13px; font-weight: 700; letter-spacing: 1.2px;
    text-transform: uppercase; color: #fff;
    margin: 0 0 18px; padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
/* Widget titles in footer */
.site-footer .widget-title {
    font-size: 13px; font-weight: 700; letter-spacing: 1.2px;
    text-transform: uppercase; color: #fff !important;
    margin: 0 0 18px; padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

/* Nav footer */
.fkp-footer-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.fkp-footer-nav li a { color: rgba(255,255,255,0.65); font-size: 14px; text-decoration: none; transition: color 0.2s; }
.fkp-footer-nav li a:hover { color: var(--fkc-blue,#3a7fc8); }

/* Contact footer */
.fkp-footer-contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fkp-footer-contact li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: rgba(255,255,255,0.65); line-height: 1.5; }
.fkp-footer-contact li i { color: var(--fkc-blue,#3a7fc8); margin-top: 2px; flex-shrink: 0; width: 14px; }
.fkp-footer-contact li a { color: rgba(255,255,255,0.65); text-decoration: none; }
.fkp-footer-contact li a:hover { color: var(--fkc-blue,#3a7fc8); }

/* Liens légaux footer */
.fkp-footer-legal { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.fkp-footer-legal li a { font-size: 12px; color: rgba(255,255,255,0.45); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.2); }
.fkp-footer-legal li a:hover { color: #fff; }

/* Footer bottom Carinel */
.footer-b { border-top: 1px solid rgba(255,255,255,0.10); padding: 18px 0; }
.footer-b .site-info { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; font-size: 13px; color: rgba(255,255,255,0.50); text-align: center; }
.footer-b .site-info a { color: rgba(255,255,255,0.70); text-decoration: none; }
.footer-b .site-info a:hover { color: #fff; }
.footer-b .site-info .copyright { color: rgba(255,255,255,0.60); }
.footer-b .site-info .by::before { content: '·'; margin-right: 8px; opacity: 0.4; }

/* ── SECTION ABOUT — style Carinel ───────────────────────────── */
.about { padding: 70px 0; background: #fff; }
.about .container { max-width: 1200px; margin: 0 auto; }
.about .row { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
@media (max-width: 768px) { .about .row { grid-template-columns: 1fr; } }
.about .text-holder { font-size: 16px; line-height: 1.75; color: #374151; }
.about .sub-title { font-size: 22px; font-weight: 700; color: var(--fkc-navy,#1A2B4C); margin: 0 0 16px; }
.about .sub-title a { color: inherit; text-decoration: none; }
.about .img-holder img { width: 100%; border-radius: 12px; box-shadow: 0 4px 20px rgba(26,43,76,0.10); }

/* ── SECTION PRACTICE — 4 cartes style Carinel ───────────────── */
.practice-area { padding: 70px 0; background: #f7f9fc; }
.practice-area .container { max-width: 1200px; margin: 0 auto; }
.practice-area .row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 1024px) { .practice-area .row { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px)  { .practice-area .row { grid-template-columns: 1fr; } }
.practice-area .column {
    background: #fff; border-radius: 12px; padding: 28px 24px;
    border: 1px solid #e5e7eb; text-align: center;
    transition: all 0.22s;
}
.practice-area .column:hover { transform: translateY(-5px); box-shadow: 0 8px 32px rgba(58,127,200,0.13); border-color: var(--fkc-blue,#3a7fc8); }
.practice-area .column img { width: 54px; height: 54px; object-fit: contain; margin: 0 auto 16px; display: block; border-radius: 50%; background: #e8f2fb; padding: 12px; }
.practice-area .column h3 { font-size: 17px; font-weight: 700; color: var(--fkc-navy,#1A2B4C); margin: 0 0 10px; }
.practice-area .column h3 a { color: inherit; text-decoration: none; }
.practice-area .column p { font-size: 14px; color: #5a6e84; line-height: 1.6; margin: 0; }

/* ── SECTION SERVICE (originale) — grille cards ──────────────── */
.service-section { padding: 70px 0; background: #fff; }
.service-section .container { max-width: 1200px; margin: 0 auto; }
.service-section .row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 900px) { .service-section .row { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .service-section .row { grid-template-columns: 1fr; } }
.service-section .column { background: #f8faff; border-radius: 12px; padding: 24px; border: 1px solid #e8edf8; transition: all 0.22s; }
.service-section .column:hover { background: #fff; box-shadow: 0 4px 20px rgba(58,127,200,0.10); }
.service-section .column .icon { width: 48px; height: 48px; border-radius: 50%; background: #e8f2fb; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.service-section .column .icon img, .service-section .column .icon i { font-size: 20px; color: var(--fkc-blue,#3a7fc8); }
.service-section .column h3 { font-size: 17px; font-weight: 700; color: var(--fkc-navy,#1A2B4C); margin: 0 0 10px; }
.service-section .column p { font-size: 14px; color: #5a6e84; line-height: 1.6; margin: 0; }

/* ── SECTION TESTIMONIAL — style Carinel ─────────────────────── */
.testimonial-section { padding: 70px 0; background: var(--fkc-article-bg,#dce8f4); }
.testimonial-section .container { max-width: 1200px; margin: 0 auto; }
.testimonial-section .row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 900px) { .testimonial-section .row { grid-template-columns: 1fr; } }
.testimonial-section .column {
    background: #fff; border-radius: 12px; padding: 28px;
    box-shadow: 0 2px 12px rgba(26,43,76,0.07);
}
.testimonial-section .column .testimonial-text { font-size: 15px; color: #374151; line-height: 1.7; font-style: italic; margin-bottom: 20px; position: relative; padding-left: 20px; border-left: 3px solid var(--fkc-blue,#3a7fc8); }
.testimonial-section .column .testimonial-info { display: flex; align-items: center; gap: 14px; }
.testimonial-section .column .testimonial-info img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.testimonial-section .column .testimonial-info .name { font-size: 14px; font-weight: 700; color: var(--fkc-navy,#1A2B4C); margin: 0; }
.testimonial-section .column .testimonial-info .position { font-size: 12px; color: #5a6e84; margin: 0; }

/* ── SECTION TEAM — cards membres ───────────────────────────── */
.team-section { padding: 70px 0; background: #f7f9fc; }
.team-section .container { max-width: 1200px; margin: 0 auto; }
.team-section .row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 1024px) { .team-section .row { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px)  { .team-section .row { grid-template-columns: 1fr; } }
.team-section .column { background: #fff; border-radius: 12px; overflow: hidden; border: 1px solid #e5e7eb; text-align: center; }
.team-section .column img { width: 100%; height: 220px; object-fit: cover; display: block; }
.team-section .column .text-holder { padding: 18px; }
.team-section .column h3 { font-size: 16px; font-weight: 700; color: var(--fkc-navy,#1A2B4C); margin: 0 0 6px; }
.team-section .column .designation { font-size: 13px; color: var(--fkc-blue,#3a7fc8); margin: 0 0 10px; }
.team-section .column p { font-size: 13px; color: #5a6e84; line-height: 1.6; margin: 0; }

/* ── SECTION FAQ — accordéon ─────────────────────────────────── */
.faq-section { padding: 70px 0; background: #fff; }
.faq-section .container { max-width: 860px; margin: 0 auto; }
.faq-section .faq-item { border: 1px solid #e5e7eb; border-radius: 10px; margin-bottom: 12px; overflow: hidden; }
.faq-section .faq-question { padding: 18px 22px; font-size: 16px; font-weight: 600; color: var(--fkc-navy,#1A2B4C); cursor: pointer; display: flex; justify-content: space-between; align-items: center; background: #f8faff; transition: background 0.2s; }
.faq-section .faq-question:hover { background: #e8f2fb; }
.faq-section .faq-question::after { content: '+'; font-size: 22px; color: var(--fkc-blue,#3a7fc8); font-weight: 400; }
.faq-section .faq-answer { padding: 0 22px; max-height: 0; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s; }
.faq-section .faq-item.open .faq-question { background: #fff; color: var(--fkc-blue,#3a7fc8); }
.faq-section .faq-item.open .faq-question::after { content: '−'; }
.faq-section .faq-item.open .faq-answer { max-height: 500px; padding: 14px 22px 20px; }
.faq-section .faq-answer p { font-size: 15px; color: #374151; line-height: 1.7; margin: 0; }

/* ── SECTION BLOG (originale) — grille 3 colonnes ───────────── */
.blog-section { padding: 70px 0; background: #f7f9fc; }
.blog-section .container { max-width: 1200px; margin: 0 auto; }
.blog-section .row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 900px) { .blog-section .row { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .blog-section .row { grid-template-columns: 1fr; } }
.blog-section .column { background: #fff; border-radius: 12px; border: 1px solid #e5e7eb; overflow: hidden; transition: all 0.22s; }
.blog-section .column:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(26,43,76,0.10); }
.blog-section .column .thumb { overflow: hidden; }
.blog-section .column .thumb img { width: 100%; height: 200px; object-fit: cover; display: block; transition: transform 0.4s; }
.blog-section .column:hover .thumb img { transform: scale(1.05); }
.blog-section .column .text-holder { padding: 20px; }
.blog-section .column .category { font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--fkc-blue,#3a7fc8); background: #e8f2fb; padding: 3px 10px; border-radius: 20px; display: inline-block; margin-bottom: 10px; }
.blog-section .column h3 { font-size: 16px; font-weight: 700; color: var(--fkc-navy,#1A2B4C); margin: 0 0 10px; line-height: 1.4; }
.blog-section .column h3 a { color: inherit; text-decoration: none; }
.blog-section .column h3 a:hover { color: var(--fkc-blue,#3a7fc8); }
.blog-section .column .excerpt { font-size: 13.5px; color: #5a6e84; line-height: 1.6; margin: 0 0 16px; }
.blog-section .column .read-more { font-size: 13px; font-weight: 600; color: var(--fkc-blue,#3a7fc8); text-decoration: none; display: flex; align-items: center; gap: 5px; }
.blog-section .column .read-more:hover { gap: 9px; }

/* ── SECTION PROMOTIONAL — bandeau CTA style Carinel ────────── */
.promotional-section { padding: 60px 0; background: var(--fkc-teal-bg,#2d5878); }
.promotional-section .container { max-width: 860px; margin: 0 auto; text-align: center; }
.promotional-section h2 { font-size: clamp(24px,3vw,36px); font-weight: 800; color: #fff; margin: 0 0 14px; line-height: 1.25; }
.promotional-section p { font-size: 17px; color: rgba(255,255,255,0.80); margin: 0 0 28px; line-height: 1.65; }
.promotional-section .btn, .promotional-section a.button {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--fkc-blue,#3a7fc8); color: #fff;
    padding: 14px 32px; border-radius: 8px; font-size: 15px; font-weight: 700;
    text-decoration: none; transition: all 0.22s; border: 2px solid var(--fkc-blue,#3a7fc8);
}
.promotional-section .btn:hover, .promotional-section a.button:hover {
    background: transparent; color: #fff;
}

/* ── Section header commun (titre centré) ────────────────────── */
.section-header, .section-title-wrap { text-align: center; margin-bottom: 44px; }
.section-header h2, .section-title, .section-title-wrap h2 {
    font-size: clamp(22px,3vw,32px); font-weight: 700;
    color: var(--fkc-navy,#1A2B4C); margin: 0 0 12px;
}
.section-header p, .section-subtitle { font-size: 16px; color: #5a6e84; max-width: 560px; margin: 0 auto; line-height: 1.6; }

/* ── FAQ JS accordion ────────────────────────────────────────── */
/* End fkeszi-pro v2.1.0 ======================================= */

/* ============================================================
   FKESZI PRO v2.1.0 — HEADER 1 LIGNE STYLE CARINEL
   ============================================================ */

/* ── Réinitialisation des anciens blocs header ─────────────── */
.header-t, .header-b { display: none !important; }

/* ── Conteneur header ───────────────────────────────────────── */
.site-header {
    background: #fff !important;
    border-bottom: 1px solid #e8edf5 !important;
    box-shadow: 0 1px 6px rgba(26,43,76,0.06) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    padding: 0 !important;
}
.site-header > .container { padding: 0 24px !important; max-width: 100%; }

/* ── Ligne unique Carinel ────────────────────────────────────── */
.fkp-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
    gap: 24px;
}

/* ── Branding gauche ─────────────────────────────────────────── */
.fkp-header-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    text-decoration: none;
}
.fkp-header-logo {
    display: block;
    object-fit: contain;
    flex-shrink: 0;
}
.fkp-header-logo-link {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
}
.fkp-header-brand-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.2;
}

/* Titre du site — style Carinel : compact, fort */
.fkp-site-title {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    color: var(--fkc-navy, #1A2B4C) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.15 !important;
}
.fkp-site-title a {
    color: inherit !important;
    text-decoration: none !important;
}
.fkp-site-title a:hover { color: var(--fkc-blue, #3a7fc8) !important; }

/* Description / tagline — v2.1.0 : multi-ligne, affichage complet */
.fkp-site-desc {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    color: #8a9ab0 !important;
    margin: 2px 0 0 !important;
    display: block !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    max-width: 440px !important;
    line-height: 1.4 !important;
}

/* ── Droite : nav + CTA ──────────────────────────────────────── */
.fkp-header-right {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 1;
    justify-content: flex-end;
}

/* ── Navigation desktop ──────────────────────────────────────── */
.fkp-desktop-nav { display: flex; align-items: center; }
.fkp-desktop-nav ul {
    display: flex !important;
    align-items: center !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
}
.fkp-desktop-nav ul li { position: relative; }
.fkp-desktop-nav ul li a {
    display: block !important;
    padding: 0 14px !important;
    height: 72px !important;
    line-height: 72px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #2d3748 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    border-bottom: 3px solid transparent !important;
    transition: color 0.2s, border-color 0.2s !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.fkp-desktop-nav ul li a:hover,
.fkp-desktop-nav ul li.current-menu-item > a,
.fkp-desktop-nav ul li.current_page_item > a {
    color: var(--fkc-blue, #3a7fc8) !important;
    border-bottom-color: var(--fkc-blue, #3a7fc8) !important;
}

/* Sous-menus desktop */
.fkp-desktop-nav ul ul {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    min-width: 200px !important;
    background: #fff !important;
    border: 1px solid #e8edf5 !important;
    border-top: 3px solid var(--fkc-blue, #3a7fc8) !important;
    box-shadow: 0 8px 24px rgba(26,43,76,0.12) !important;
    border-radius: 0 0 8px 8px !important;
    z-index: 999 !important;
    flex-direction: column !important;
    padding: 8px 0 !important;
    gap: 0 !important;
}
.fkp-desktop-nav ul li:hover > ul { display: flex !important; }
.fkp-desktop-nav ul ul li a {
    height: auto !important;
    line-height: 1.4 !important;
    padding: 10px 20px !important;
    font-size: 13.5px !important;
    border-bottom: none !important;
    color: #374151 !important;
}
.fkp-desktop-nav ul ul li a:hover { background: #f8faff !important; color: var(--fkc-blue, #3a7fc8) !important; }

/* ── CTA Button ──────────────────────────────────────────────── */
.fkp-header-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 10px 20px !important;
    background: var(--fkc-blue, #3a7fc8) !important;
    color: #fff !important;
    border-radius: 6px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    margin-left: 12px !important;
    transition: background 0.2s, transform 0.2s !important;
    border: none !important;
}
.fkp-header-cta:hover {
    background: var(--fkc-navy, #1A2B4C) !important;
    color: #fff !important;
    transform: translateY(-1px) !important;
}

/* ── Hamburger mobile ────────────────────────────────────────── */
.fkp-hamburger {
    display: none !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    padding: 8px !important;
    flex-direction: column !important;
    gap: 5px !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
}
.fkp-hamburger span {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    background: var(--fkc-navy, #1A2B4C) !important;
    border-radius: 2px !important;
    transition: all 0.2s !important;
}

/* ── Responsive header v2.1.0 ────────────────────────────────── */

/* ── TABLETTE (≤ 900px) : hamburger ON, nav desktop OFF ──────── */
@media (max-width: 900px) {
    .fkp-desktop-nav { display: none !important; }
    .fkp-hamburger   { display: flex !important; }
    .fkp-header-row  { height: 60px; }

    /* Logo réduit — override de l'inline style PHP height:Npx */
    .fkp-header-logo { height: 32px !important; width: auto !important; }

    /* Tagline visible mais compacte (sur 2 lignes si nécessaire) */
    .fkp-site-desc {
        display: block !important;
        font-size: 8px !important;
        letter-spacing: 0.35px !important;
        white-space: normal !important;
        max-width: 210px !important;
        overflow: visible !important;
        text-overflow: clip !important;
        line-height: 1.35 !important;
    }
}

/* ── SMARTPHONE (≤ 480px) : réduction maximale ───────────────── */
@media (max-width: 480px) {
    .fkp-site-title  { font-size: 13px !important; }
    .fkp-header-cta  { padding: 7px 12px !important; font-size: 11px !important; margin-left: 6px !important; }
    /* Logo encore plus petit */
    .fkp-header-logo { height: 26px !important; width: auto !important; }
    /* Tagline masquée à 480px : espace insuffisant */
    .fkp-site-desc   { display: none !important; }
    /* Header plus compact */
    .fkp-header-row  { height: 54px !important; gap: 8px !important; }
    .fkp-header-brand { gap: 8px !important; }
}

/* ── MENU MOBILE OVERLAY ────────────────────────────────────────
   Le JS (modal-accessibility.js) ajoute .show-modal sur
   .primary-menu-list.main-menu-modal.cover-modal quand
   le bouton .fkp-hamburger (data-toggle-target=".main-menu-modal")
   est cliqué. Il ajoute aussi .showing-main-menu-modal sur <body>.
   ─────────────────────────────────────────────────────────────── */

/* Panel : masqué par défaut */
.primary-menu-list.main-menu-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(26, 43, 76, 0.97);
    z-index: 99999;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 80px 36px 48px;
    overflow-y: auto;
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

/* Ouvert par modal-accessibility.js → classe .show-modal (legacy) */
.primary-menu-list.main-menu-modal.show-modal {
    display: flex !important;
}

/* Ouvert par fkp-mobile-menu.js → classe .fkp-open (nouveau, prioritaire) */
.primary-menu-list.main-menu-modal.fkp-open {
    display: flex !important;
}

/* Fallback body class (les deux systèmes) */
body.showing-main-menu-modal .primary-menu-list.main-menu-modal,
body.fkp-menu-open .primary-menu-list.main-menu-modal {
    display: flex !important;
}

/* Contenu du menu */
.primary-menu-list.main-menu-modal .mobile-menu {
    width: 100%;
}
.primary-menu-list.main-menu-modal .nav-menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
}

/* Liens du menu mobile */
.primary-menu-list.main-menu-modal .nav-menu > li > a {
    display: block !important;
    padding: 16px 0 !important;
    color: #fff !important;
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    letter-spacing: 0.3px !important;
    transition: color 0.2s !important;
    height: auto !important;
    line-height: 1.3 !important;
    text-transform: none !important;
}
.primary-menu-list.main-menu-modal .nav-menu > li > a:hover {
    color: var(--fkc-teal, #3BBDB8) !important;
    border-bottom-color: rgba(59,189,184, 0.3) !important;
}
.primary-menu-list.main-menu-modal .nav-menu > li.current-menu-item > a,
.primary-menu-list.main-menu-modal .nav-menu > li.current_page_item > a {
    color: var(--fkc-teal, #3BBDB8) !important;
}

/* Sous-menus mobiles */
.primary-menu-list.main-menu-modal .nav-menu ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 0 0 18px !important;
    display: block !important;
    position: static !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.primary-menu-list.main-menu-modal .nav-menu ul li a {
    font-size: 15px !important;
    font-weight: 400 !important;
    padding: 10px 0 !important;
    color: rgba(255,255,255,0.75) !important;
    border-bottom: 1px solid rgba(255,255,255,0.07) !important;
    height: auto !important;
    line-height: 1.3 !important;
}
.primary-menu-list.main-menu-modal .nav-menu ul li a:hover {
    color: var(--fkc-teal, #3BBDB8) !important;
}

/* Bouton fermer × — construit en CSS pur */
.primary-menu-list.main-menu-modal .close {
    position: absolute !important;
    top: 18px !important;
    right: 20px !important;
    width: 44px !important;
    height: 44px !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 1 !important;
    padding: 0 !important;
    color: transparent !important; /* masque le texte éventuel */
    font-size: 0 !important;
}
.primary-menu-list.main-menu-modal .close::before,
.primary-menu-list.main-menu-modal .close::after {
    content: '' !important;
    position: absolute !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,0.9) !important;
    border-radius: 2px !important;
    transition: background 0.2s !important;
}
.primary-menu-list.main-menu-modal .close::before { transform: rotate(45deg) !important; }
.primary-menu-list.main-menu-modal .close::after  { transform: rotate(-45deg) !important; }
.primary-menu-list.main-menu-modal .close:hover::before,
.primary-menu-list.main-menu-modal .close:hover::after {
    background: var(--fkc-teal, #3BBDB8) !important;
}

/* Bloquer le scroll du body quand le menu est ouvert (les deux systèmes JS) */
body.showing-main-menu-modal,
body.fkp-menu-open {
    overflow: hidden !important;
}

/* ── CRITIQUE : rendre le wrapper visible quand le menu s'ouvre ─
   display:none sur .mobile-menu-wrapper masque TOUS ses enfants,
   même ceux en position:fixed. Le JS ajoute .fkp-menu-open sur body
   → on débloque le wrapper pour que l'overlay .fkp-open s'affiche.
   Le fkp-mobile-menu.js force aussi wrapper.style.display='block'
   directement pour garantir l'affichage sans dépendre du CSS seul.
   ─────────────────────────────────────────────────────────────── */
body.showing-main-menu-modal .mobile-menu-wrapper,
body.fkp-menu-open .mobile-menu-wrapper {
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
    overflow: visible !important;
    z-index: auto !important;
}

/* Animation hamburger → croix quand ouvert */
.fkp-hamburger--open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg) !important;
}
.fkp-hamburger--open span:nth-child(2) {
    opacity: 0 !important;
    transform: scaleX(0) !important;
}
.fkp-hamburger--open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg) !important;
}

/* ════════════════════════════════════════════════════════════════
   v2.5.26 — CORRECTIF MENU MOBILE OVERLAY (layout + bouton close)
   ════════════════════════════════════════════════════════════════
   Trois causes racines neutralisées :
   1) .main-navigation li { float: left } (ligne 598) s'applique
      au mobile overlay car l'overlay vit sous <nav class="main-navigation
      mobile-navigation">. Les items partent en grille flottante.
   2) button { background:#fa9d00; height:46px } (ligne 476) s'applique
      au bouton .close vide, d'où le carré orange. L'override existant
      (l.3702) est trop faible en spécificité pour gagner dans tous
      les navigateurs. On renforce via body.fkp-menu-open.
   3) .main-navigation ul { text-transform:uppercase; font-weight:700 }
      (ligne 589) transforme les items sans sous-menu en majuscules
      grasses blanches, cassant la hiérarchie visuelle.
   ──────────────────────────────────────────────────────────────── */

/* 1. Désactivation totale du float hérité sur tous les items du overlay.
   Spécificité renforcée par body.fkp-menu-open et .showing-main-menu-modal */
body.fkp-menu-open .primary-menu-list.main-menu-modal li,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal li,
.primary-menu-list.main-menu-modal.fkp-open li,
.primary-menu-list.main-menu-modal.show-modal li {
    float: none !important;
    clear: both !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
}

/* 2. La UL principale : vertical pur, pleine largeur, max 520px centrée */
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal .nav-menu,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    list-style: none !important;
    gap: 0 !important;
    text-transform: none !important;
    font-weight: 400 !important;
    font-size: inherit !important;
}

/* 3. Items principaux : tous identiques, Playfair Display, même style.
   On casse explicitement le uppercase + 700 hérités de .main-navigation ul */
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu > li > a,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal .nav-menu > li > a,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu > li > a {
    display: block !important;
    width: 100% !important;
    padding: 18px 0 !important;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.01em !important;
    color: #ffffff !important;
    text-transform: none !important;
    text-decoration: none !important;
    text-align: left !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    float: none !important;
    background: transparent !important;
    transition: color 0.2s ease !important;
}

body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu > li > a:hover,
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu > li > a:focus,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal .nav-menu > li > a:hover,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu > li > a:hover {
    color: #3BBDB8 !important;
    border-bottom-color: rgba(59, 189, 184, 0.3) !important;
}

/* 4. Sous-menu Services : empilement vertical avec retrait indenté.
   On casse explicitement tout positionnement absolu ou box-shadow hérités */
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu .sub-menu,
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu ul,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal .nav-menu .sub-menu,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal .nav-menu ul,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu .sub-menu,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu ul {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 8px 0 !important;
    padding: 8px 0 12px 18px !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    list-style: none !important;
    float: none !important;
}

/* 5. Items de sous-menu : typographie fine Inter, couleur discrète */
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu .sub-menu li a,
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu ul li a,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal .nav-menu .sub-menu li a,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu ul li a {
    display: block !important;
    width: 100% !important;
    padding: 10px 0 !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
    color: rgba(255, 255, 255, 0.78) !important;
    text-transform: none !important;
    text-decoration: none !important;
    border: none !important;
    float: none !important;
    background: transparent !important;
}

body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu .sub-menu li a:hover,
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu ul li a:hover,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu ul li a:hover {
    color: #3BBDB8 !important;
}

/* 6. NEUTRALISATION du bouton .close orange (cause : button { background:#fa9d00 })
   On force avec spécificité maximale via body.fkp-menu-open */
body.fkp-menu-open .primary-menu-list.main-menu-modal button.close,
body.fkp-menu-open .primary-menu-list.main-menu-modal .close-main-nav-toggle,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal button.close,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal .close-main-nav-toggle,
.primary-menu-list.main-menu-modal.fkp-open button.close,
.primary-menu-list.main-menu-modal.fkp-open .close-main-nav-toggle {
    position: absolute !important;
    top: 18px !important;
    right: 20px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    cursor: pointer !important;
    z-index: 10 !important;
    float: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Reconstruire le X en CSS propre sur le bouton close */
body.fkp-menu-open .primary-menu-list.main-menu-modal button.close::before,
body.fkp-menu-open .primary-menu-list.main-menu-modal button.close::after,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal button.close::before,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal button.close::after,
.primary-menu-list.main-menu-modal.fkp-open button.close::before,
.primary-menu-list.main-menu-modal.fkp-open button.close::after {
    content: '' !important;
    position: absolute !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255, 255, 255, 0.9) !important;
    border-radius: 2px !important;
    top: 50% !important;
    left: 50% !important;
    margin: 0 !important;
    transition: background 0.2s !important;
}
body.fkp-menu-open .primary-menu-list.main-menu-modal button.close::before,
.primary-menu-list.main-menu-modal.fkp-open button.close::before {
    transform: translate(-50%, -50%) rotate(45deg) !important;
}
body.fkp-menu-open .primary-menu-list.main-menu-modal button.close::after,
.primary-menu-list.main-menu-modal.fkp-open button.close::after {
    transform: translate(-50%, -50%) rotate(-45deg) !important;
}
body.fkp-menu-open .primary-menu-list.main-menu-modal button.close:hover::before,
body.fkp-menu-open .primary-menu-list.main-menu-modal button.close:hover::after {
    background: #3BBDB8 !important;
}

/* 7. Neutraliser les chevrons SVG Rara (#site-navigation ... ::before)
   qui peuvent déborder sur le mobile overlay */
body.fkp-menu-open .primary-menu-list.main-menu-modal li.menu-item-has-children::before,
body.fkp-menu-open .primary-menu-list.main-menu-modal li.menu-item-has-children::after,
body.showing-main-menu-modal .primary-menu-list.main-menu-modal li.menu-item-has-children::before,
.primary-menu-list.main-menu-modal.fkp-open li.menu-item-has-children::before {
    display: none !important;
    content: none !important;
    background: none !important;
    background-image: none !important;
}

/* 8. Indicateur discret « › » en fin de label pour les items parents */
body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu > li.menu-item-has-children > a::after,
.primary-menu-list.main-menu-modal.fkp-open .nav-menu > li.menu-item-has-children > a::after {
    display: inline-block !important;
    content: "›" !important;
    margin-left: 10px !important;
    font-family: system-ui, -apple-system, sans-serif !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    color: #3BBDB8 !important;
    background: none !important;
    vertical-align: baseline !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
}

/* 9. Conteneur overlay : scroll vertical + padding propre */
body.fkp-menu-open .primary-menu-list.main-menu-modal,
.primary-menu-list.main-menu-modal.fkp-open {
    padding: 80px 28px 40px !important;
    overflow-y: auto !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
}

/* 10. Garde-fou : empêcher grid/columns hérités d'un parent inattendu */
body.fkp-menu-open .primary-menu-list.main-menu-modal,
body.fkp-menu-open .primary-menu-list.main-menu-modal *,
.primary-menu-list.main-menu-modal.fkp-open,
.primary-menu-list.main-menu-modal.fkp-open * {
    column-count: auto !important;
    columns: auto !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
}

/* 11. Adaptation écrans très étroits (<420px) */
@media (max-width: 420px) {
    body.fkp-menu-open .primary-menu-list.main-menu-modal,
    .primary-menu-list.main-menu-modal.fkp-open {
        padding: 72px 18px 32px !important;
    }
    body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu > li > a,
    .primary-menu-list.main-menu-modal.fkp-open .nav-menu > li > a {
        font-size: 20px !important;
        padding: 16px 0 !important;
    }
    body.fkp-menu-open .primary-menu-list.main-menu-modal .nav-menu ul li a,
    .primary-menu-list.main-menu-modal.fkp-open .nav-menu ul li a {
        font-size: 14px !important;
        padding: 9px 0 !important;
    }
}
/* ════════════════════════════════════════════════════════════════
   FIN du bloc v2.5.26
   ════════════════════════════════════════════════════════════════ */


/* ════════════════════════════════════════════════════════════════
   v2.5.27 — NEUTRALISATION des injections runtime legacy
   ════════════════════════════════════════════════════════════════
   Cause racine : js/build/custom.js ligne 86 injecte dynamiquement
   <button class="angle-down"></button> après chaque item parent du
   menu mobile (.menu-item-has-children > a) pour gérer un slideToggle
   du sous-menu. Ce bouton, vide et non ciblé par les overrides
   existants, hérite de button { background:#fa9d00 } → carré orange
   parasite sous « Services » dans l'overlay.
   Par ailleurs, le hamburger lui-même peut peek-through dans certains
   cas de stacking context — on le masque explicitement quand le menu
   est ouvert.
   ──────────────────────────────────────────────────────────────── */

/* 1. Masquer totalement le bouton injecté par custom.js — on n'en a
   pas besoin puisque le sous-menu est déjà affiché en permanence
   dans l'overlay (cf. bloc v2.5.26 sous-bloc 4). */
.mobile-menu-wrapper .angle-down,
.mobile-menu-wrapper .main-navigation .angle-down,
.primary-menu-list.main-menu-modal .angle-down,
body.fkp-menu-open .angle-down,
body.showing-main-menu-modal .angle-down {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* 2. Garde-fou : masquer le hamburger quand le menu est ouvert
   (évite tout peek-through en cas de stacking context inattendu) */
body.fkp-menu-open .fkp-hamburger,
body.showing-main-menu-modal .fkp-hamburger {
    display: none !important;
    visibility: hidden !important;
}

/* 3. Garde-fou général : neutraliser TOUT bouton non-whitelisté
   à l'intérieur de l'overlay pour parer aux futures injections
   legacy Rara (au cas où custom.js évolue). */
body.fkp-menu-open .primary-menu-list.main-menu-modal button:not(.close):not(.close-main-nav-toggle),
body.showing-main-menu-modal .primary-menu-list.main-menu-modal button:not(.close):not(.close-main-nav-toggle),
.primary-menu-list.main-menu-modal.fkp-open button:not(.close):not(.close-main-nav-toggle) {
    display: none !important;
    background: transparent !important;
    background-color: transparent !important;
}

/* 4. Filet de sécurité ultime : tout élément avec la couleur Rara
   orange #fa9d00 est neutralisé dans le périmètre overlay */
body.fkp-menu-open .primary-menu-list.main-menu-modal [style*="fa9d00"],
body.fkp-menu-open .mobile-menu-wrapper [style*="fa9d00"],
.primary-menu-list.main-menu-modal.fkp-open [style*="fa9d00"] {
    background: transparent !important;
    background-color: transparent !important;
}
/* ════════════════════════════════════════════════════════════════
   FIN du bloc v2.5.27
   ════════════════════════════════════════════════════════════════ */


/* Supprimer les anciens styles header qui interferent */
/* NE PAS cacher .fkp-desktop-nav même si c'est une .main-navigation */
.site-header .main-navigation:not(.fkp-desktop-nav):not(.mobile-navigation) { display: none !important; }
.site-header .search-form     { display: none !important; }
.site-header .header-t        { display: none !important; }
.site-header .header-b        { display: none !important; }

/* Force affichage menu desktop — UNIQUEMENT au-dessus du breakpoint mobile */
@media (min-width: 901px) {
    .fkp-desktop-nav,
    .site-header .fkp-desktop-nav,
    .fkp-header-right .fkp-desktop-nav { display: flex !important; }
    .fkp-desktop-nav #primary-menu,
    .fkp-desktop-nav ul { display: flex !important; }
}

/* End fkeszi-pro v2.1.0 Header ================================ */

/* ============================================================
   FKESZI PRO v2.1.0 — STATS : typographie & alignement
   Tous les éléments (préfixe, chiffre, suffixe, libellé)
   en Inter, alignés sur la même baseline.
   ============================================================ */

/* Carte stat : colonne centrée */
.fkp-hp-stat {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center !important;
    padding: 20px 12px !important;
    border-right: 1px solid rgba(255,255,255,0.12) !important;
}
.fkp-hp-stat:last-child { border-right: none !important; }
.fkp-hp-stats--light .fkp-hp-stat { border-right-color: #e5e7eb !important; }

/* Icône au-dessus */
.fkp-hp-stat__icon { margin-bottom: 12px !important; }
.fkp-hp-stat__icon i {
    font-family: 'Font Awesome 6 Free', 'Font Awesome 6 Pro', sans-serif !important;
    font-size: 24px !important;
    color: rgba(255,255,255,0.55) !important;
    display: block !important;
}
.fkp-hp-stats--light .fkp-hp-stat__icon i { color: var(--fkc-blue,#3a7fc8) !important; }

/* Bloc chiffre : préfixe + nombre + suffixe sur 1 ligne, baseline */
.fkp-hp-stat__number {
    display: flex !important;
    align-items: baseline !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    gap: 3px !important;
    line-height: 1 !important;
    margin-bottom: 8px !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* PRÉFIXE — petite taille, même graisse, même couleur que le chiffre */
.fkp-hp-stat__prefix {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-size: clamp(14px, 1.8vw, 20px) !important;
    font-weight: 700 !important;
    color: rgba(255,255,255,0.90) !important;
    line-height: 1 !important;
    align-self: flex-end !important;
    margin-bottom: 6px !important;
    /* Forcer — annuler tout héritage teal/link */
    background: none !important;
    text-decoration: none !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.fkp-hp-stats--light .fkp-hp-stat__prefix { color: var(--fkc-navy,#1A2B4C) !important; }

/* CHIFFRE animé — grand, bold */
.fkp-counter {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-size: clamp(44px, 5.5vw, 72px) !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    line-height: 1 !important;
    letter-spacing: -2px !important;
    display: inline !important;
}
.fkp-hp-stats--light .fkp-counter { color: var(--fkc-navy,#1A2B4C) !important; }

/* SUFFIXE — taille intermédiaire, superscript-like */
.fkp-hp-stat__suffix {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-size: clamp(20px, 2.5vw, 32px) !important;
    font-weight: 700 !important;
    color: rgba(255,255,255,0.85) !important;
    line-height: 1 !important;
    align-self: flex-start !important;
    margin-top: 6px !important;
    letter-spacing: -0.5px !important;
}
.fkp-hp-stats--light .fkp-hp-stat__suffix { color: var(--fkc-navy,#1A2B4C) !important; }

/* LIBELLÉ — uppercase, petit, espacé */
.fkp-hp-stat__label {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.60) !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    max-width: 120px !important;
}
.fkp-hp-stats--light .fkp-hp-stat__label { color: #6b7280 !important; }

/* Grille responsive */
.fkp-hp-stats__grid {
    display: grid !important;
    gap: 0 !important;
}
.fkp-hp-stats__grid:has(.fkp-hp-stat:nth-child(2):last-child) { grid-template-columns: repeat(2,1fr) !important; }
.fkp-hp-stats__grid:has(.fkp-hp-stat:nth-child(3):last-child) { grid-template-columns: repeat(3,1fr) !important; }
.fkp-hp-stats__grid                                            { grid-template-columns: repeat(4,1fr); }

@media (max-width: 768px) {
    .fkp-hp-stats__grid { grid-template-columns: repeat(2,1fr) !important; }
    .fkp-hp-stat { border-right: none !important; border-bottom: 1px solid rgba(255,255,255,0.12) !important; padding: 24px 16px !important; }
    .fkp-hp-stat:nth-child(odd) { border-right: 1px solid rgba(255,255,255,0.12) !important; }
    .fkp-hp-stat:last-child, .fkp-hp-stat:nth-last-child(2):nth-child(odd) { border-bottom: none !important; }
    .fkp-counter { font-size: 48px !important; }
}
@media (max-width: 480px) {
    .fkp-hp-stats__grid { grid-template-columns: 1fr !important; }
    .fkp-hp-stat { border-right: none !important; border-bottom: 1px solid rgba(255,255,255,0.12) !important; }
    .fkp-counter { font-size: 56px !important; }
}

/* End stats typography fix ================================== */

/* ============================================================
   FKESZI PRO v2.1.0 — LOGOS CLIENTS : centré / marquee
   ============================================================ */

.fkp-client-logos-section {
    padding: 52px 0 !important;
    background: #fff !important;
    border-top: 1px solid var(--fkc-border,#e5e7eb) !important;
    border-bottom: 1px solid var(--fkc-border,#e5e7eb) !important;
    overflow: hidden !important;
}

/* ── Mode centré (< 5 logos) ─────────────────────────────────── */
.fkp-logos-centered {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 40px 60px !important;
    padding: 16px 0 !important;
}
.fkp-logos-centered__item {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.fkp-logos-centered__img {
    max-height: 70px !important;
    max-width: 180px !important;
    width: auto !important;
    object-fit: contain !important;
    /* Gris au repos, couleur au survol */
    filter: grayscale(100%) !important;
    opacity: 0.65 !important;
    transition: filter 0.25s, opacity 0.25s, transform 0.25s !important;
    display: block !important;
}
.fkp-logos-centered__item:hover .fkp-logos-centered__img,
.fkp-logos-centered__item a:focus .fkp-logos-centered__img {
    filter: grayscale(0%) !important;
    opacity: 1 !important;
    transform: scale(1.08) !important;
}

/* ── Mode marquee (≥ 5 logos) — pleine largeur ───────────────── */
.fkp-marquee-outer {
    width: 100% !important;
    overflow: hidden !important;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%) !important;
    mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%) !important;
}
.fkp-marquee {
    display: flex !important;
    width: max-content !important;
    animation: fkp-marquee-scroll var(--marquee-speed, 40s) linear infinite !important;
}
.fkp-marquee--pause-hover:hover { animation-play-state: paused !important; }

@keyframes fkp-marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.fkp-marquee__track {
    display: flex !important;
    align-items: center !important;
}
.fkp-marquee__item {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 48px !important;
    flex-shrink: 0 !important;
    border-right: 1px solid var(--fkc-border,#e5e7eb) !important;
}
.fkp-marquee__item:last-child { border-right: none !important; }

.fkp-marquee__logo {
    max-height: 60px !important;
    max-width: 160px !important;
    width: auto !important;
    object-fit: contain !important;
    filter: grayscale(100%) !important;
    opacity: 0.65 !important;
    transition: filter 0.25s, opacity 0.25s, transform 0.25s !important;
    display: block !important;
}
.fkp-marquee__item:hover .fkp-marquee__logo,
.fkp-marquee__item a:focus .fkp-marquee__logo {
    filter: grayscale(0%) !important;
    opacity: 1 !important;
    transform: scale(1.06) !important;
}

@media (prefers-reduced-motion: reduce) {
    .fkp-marquee { animation: none !important; }
}

/* End logos clients fix ====================================== */

/* ============================================================
   FKESZI PRO v2.1.0 — PROCESSUS style Carinel exact
   + PROMOTIONAL bandeau configurable
   ============================================================ */

/* ── Processus — fond coloré, ligne pointillée, cercles blancs ── */
.fkp-process-carinel {
    padding: 72px 0 60px;
    position: relative;
}

/* En-tête titre + CTA top alignés */
.fkp-process-carinel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 52px;
    flex-wrap: wrap;
    gap: 20px;
}
.fkp-process-carinel__title {
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(22px, 3vw, 34px) !important;
    font-weight: 700 !important;
    color: #fff !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

/* CTA en haut à droite */
.fkp-process-carinel__cta-top {
    display: inline-flex;
    align-items: center;
    padding: 11px 26px;
    background: var(--fkc-teal, #3BBDB8);
    color: #fff;
    border-radius: 6px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.22s;
    flex-shrink: 0;
}
.fkp-process-carinel__cta-top:hover {
    background: #fff;
    color: var(--fkc-navy, #1A2B4C);
}

/* Rangée d'étapes + ligne pointillée */
.fkp-process-carinel__row {
    position: relative;
    display: grid;
    gap: 24px;
    text-align: center;
    align-items: start;
}
.fkp-process-carinel__row--2 { grid-template-columns: repeat(2, 1fr); }
.fkp-process-carinel__row--3 { grid-template-columns: repeat(3, 1fr); }
.fkp-process-carinel__row--4 { grid-template-columns: repeat(4, 1fr); }
.fkp-process-carinel__row--5 { grid-template-columns: repeat(5, 1fr); }
.fkp-process-carinel__row--6 { grid-template-columns: repeat(6, 1fr); }

/* Ligne pointillée horizontale — style Carinel exact */
.fkp-process-carinel__line {
    position: absolute;
    top: 44px; /* centre du cercle (88px/2) */
    left: calc(100% / (var(--cols, 4) * 2));
    right: calc(100% / (var(--cols, 4) * 2));
    height: 2px;
    background: none;
    border-top: 2px dashed rgba(255,255,255,0.35);
    z-index: 0;
    pointer-events: none;
}
.fkp-process-carinel__row--2 { --cols: 2; }
.fkp-process-carinel__row--3 { --cols: 3; }
.fkp-process-carinel__row--4 { --cols: 4; }
.fkp-process-carinel__row--5 { --cols: 5; }
.fkp-process-carinel__row--6 { --cols: 6; }

/* Étape individuelle */
.fkp-process-carinel__step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

/* Cercle blanc avec icône — style Carinel */
.fkp-process-carinel__circle {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    border: 2px solid rgba(255, 255, 255, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.25s, border-color 0.25s;
}
.fkp-process-carinel__step:hover .fkp-process-carinel__circle {
    background: rgba(255, 255, 255, 0.30);
    border-color: #fff;
}
.fkp-process-carinel__circle i {
    font-size: 30px;
    color: #ffffff;
}

/* Label ÉTAPE N */
.fkp-process-carinel__step-num {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.70) !important;
    margin: 0 !important;
}

/* Titre étape */
.fkp-process-carinel__step-title {
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}

/* Description étape */
.fkp-process-carinel__step-desc {
    font-family: 'Inter', sans-serif !important;
    font-size: 13.5px !important;
    color: rgba(255,255,255,0.72) !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    max-width: 180px;
}

/* CTA bouton contour en bas — style Carinel */
.fkp-process-carinel__cta-wrap {
    text-align: center;
    margin-top: 52px;
}
.fkp-process-carinel__cta-btn {
    display: inline-flex;
    align-items: center;
    padding: 14px 40px;
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.70);
    border-radius: 6px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.22s;
    letter-spacing: 0.3px;
}
.fkp-process-carinel__cta-btn:hover {
    background: rgba(255,255,255,0.15);
    border-color: #fff;
    color: #fff;
}

/* Responsive processus */
@media (max-width: 900px) {
    .fkp-process-carinel__row--4,
    .fkp-process-carinel__row--5,
    .fkp-process-carinel__row--6 { grid-template-columns: repeat(2, 1fr); }
    .fkp-process-carinel__line   { display: none; }
    .fkp-process-carinel__header { flex-direction: column; text-align: center; }
}
@media (max-width: 600px) {
    .fkp-process-carinel__row--2,
    .fkp-process-carinel__row--3,
    .fkp-process-carinel__row--4,
    .fkp-process-carinel__row--5,
    .fkp-process-carinel__row--6 { grid-template-columns: 1fr; }
    .fkp-process-carinel { padding: 48px 0 40px; }
}

/* ── Promotional section configurable ───────────────────────── */
.fkp-promo-section {
    position: relative;
    padding: 64px 0;
    overflow: hidden;
}
.fkp-promo-section__overlay {
    position: absolute;
    inset: 0;
    background: rgba(26,43,76,0.55);
}
.fkp-promo-section__inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
}
.fkp-promo-section__title {
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(24px, 3.5vw, 40px) !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 16px !important;
    line-height: 1.2 !important;
    letter-spacing: -0.3px !important;
}
.fkp-promo-section__desc {
    font-family: 'Inter', sans-serif !important;
    font-size: 17px !important;
    color: rgba(255,255,255,0.82) !important;
    margin: 0 0 32px !important;
    line-height: 1.65 !important;
}
.fkp-promo-section__btn {
    display: inline-flex !important;
    align-items: center !important;
    padding: 14px 36px !important;
    border-radius: 6px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    letter-spacing: 0.3px !important;
    transition: all 0.22s !important;
    cursor: pointer !important;
}
.fkp-promo-section__btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.20) !important;
    opacity: 0.92 !important;
}

/* Masquer l'ancienne .promotional-block */
.promotional-block { display: none !important; }

/* End process + promotional v2.1.0 ========================== */

/* ============================================================
   FKESZI PRO v2.1.0 — ABOUT + TESTIMONIALS + PRACTICE CSS
   ============================================================ */

/* ── About Section ─────────────────────────────────────────── */
.fkp-about-section { padding: 72px 0; background: #fff; }
.fkp-about-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 64px;
    align-items: center;
}
@media(max-width:900px){ .fkp-about-grid { grid-template-columns: 1fr; gap: 40px; } }

.fkp-about-visual {}
.fkp-about-img__img { width:100%; border-radius:12px; box-shadow:0 4px 24px rgba(26,43,76,0.12); }
.fkp-about-card {
    background: #f7f9fc; border-radius: 12px; padding: 32px;
    display: flex; flex-direction: column; gap: 24px;
    border: 1px solid #e5e7eb;
}
.fkp-about-card__stat { display: flex; flex-direction: column; gap: 4px; }
.fkp-about-card__n {
    font-family: 'Inter', sans-serif; font-size: 36px; font-weight: 800;
    color: var(--fkc-blue,#3a7fc8); line-height: 1;
}
.fkp-about-card__l { font-size: 12px; font-weight: 600; color: #6b7280; letter-spacing: 0.8px; text-transform: uppercase; }

.fkp-about-text__label {
    font-size: 11px; font-weight: 700; letter-spacing: 1.4px;
    text-transform: uppercase; color: var(--fkc-blue,#3a7fc8); margin: 0 0 12px;
}
.fkp-about-text__title {
    font-size: clamp(22px,2.8vw,32px); font-weight: 700;
    color: var(--fkc-navy,#1A2B4C); margin: 0 0 20px; line-height: 1.3;
}
.fkp-about-text__content p { font-size: 15px; color: #374151; line-height: 1.75; margin: 0 0 14px; }
.fkp-about-points { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fkp-about-points__item {
    display: flex; align-items: flex-start; gap: 10px;
    font-size: 14px; color: #374151; line-height: 1.5;
}
.fkp-about-points__item i { color: var(--fkc-teal,#3BBDB8); margin-top: 2px; flex-shrink: 0; }

/* ── Testimonials Section ─────────────────────────────────── */
.fkp-testimonials-section { padding: 72px 0; background: var(--fkc-article-bg,#dce8f4); }
.fkp-testi-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 40px;
}
@media(max-width:768px){ .fkp-testi-grid { grid-template-columns: 1fr; } }

.fkp-testi-card {
    background: #fff;
    border-radius: 12px;
    padding: 28px 28px 24px;
    box-shadow: 0 2px 12px rgba(26,43,76,0.07);
    display: flex; flex-direction: column; gap: 20px;
    position: relative;
}
.fkp-testi-card::before {
    content: '"';
    font-family: Georgia, serif;
    font-size: 64px;
    color: var(--fkc-teal,#3BBDB8);
    line-height: 1;
    opacity: 0.35;
    position: absolute;
    top: 16px; left: 22px;
}
.fkp-testi-card__quote {
    font-size: 15px; color: #374151; line-height: 1.75;
    font-style: italic; margin: 20px 0 0; padding: 0; border: none;
    quotes: none;
}
.fkp-testi-card__author strong {
    display: block; font-size: 14px; font-weight: 700;
    color: var(--fkc-navy,#1A2B4C); margin-bottom: 4px;
}
.fkp-testi-card__author span {
    font-size: 12px; color: #6b7280; letter-spacing: 0.5px;
}

/* ── Practice Section cards ───────────────────────────────── */
.fkp-hp-services { padding: 72px 0; background: #f7f9fc; }

/* End v2.1.0 ================================================ */

/* ============================================================
   FKESZI PRO v2.1.0 — 11 MODULES PORTFOLIO
   Design i2s-complet adapté au thème Fkeszi Pro
   ============================================================ */

/* ── Variables portfolio ────────────────────────────────────── */
:root {
  --fkp-ink:     #1B2A3B;
  --fkp-ink-mid: #4A5E72;
  --fkp-ink-lt:  #8B9FAD;
  --fkp-teal:    #2BA8A3;
  --fkp-teal-pale:#E8F6F5;
  --fkp-rule:    #D8E2EA;
  --fkp-bg:      #FFFFFF;
  --fkp-bg-off:  #F7F9FB;
  --fkp-serif:   'Playfair Display', Georgia, serif;
  --fkp-body:    'Libre Baskerville', Georgia, serif;
  --fkp-mono:    'JetBrains Mono', monospace;
}

/* ── Conteneur portfolio ────────────────────────────────────── */
.fkp-container {
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 2rem;
}
.fkp-teal  { color: var(--fkp-teal); }
.fkp-rule  { border: none; border-top: 1px solid var(--fkp-rule); margin: 0 0 2.5rem; }
.fkp-rule-full { border: none; border-top: 1px solid var(--fkp-rule); margin: 0; }

/* ── Typographie commune ────────────────────────────────────── */
.fkp-rubric {
  font-family: var(--fkp-mono); font-size: .65rem; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--fkp-teal); margin-bottom: 1rem;
  display: flex; align-items: center; gap: .7rem;
}
.fkp-rubric::before { content: ''; display: block; width: 24px; height: 1px; background: var(--fkp-teal); }
.fkp-serif-title {
  font-family: var(--fkp-serif); font-size: clamp(1.8rem,4vw,2.8rem);
  font-weight: 900; line-height: 1.1; color: var(--fkp-ink);
  margin-bottom: 1.5rem;
}
.fkp-serif-title--xl { font-size: clamp(2rem,5vw,3.5rem); }
.fkp-serif-title--block { display: block; }
.fkp-subtitle-italic { font-style: italic; color: var(--fkp-ink-mid); font-family: var(--fkp-body); font-size: 1.1rem; line-height: 1.65; margin-bottom: 2.5rem; }
.fkp-body-text { font-family: var(--fkp-body); font-size: 1rem; line-height: 1.8; color: var(--fkp-ink); text-align: justify; margin-bottom: 1.25rem; }
.fkp-mono-label { font-family: var(--fkp-mono); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fkp-ink-lt); margin-bottom: .75rem; }
.fkp-mono-label--sm { font-size: .55rem; }
.fkp-eyebrow { font-family: var(--fkp-mono); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fkp-teal); margin-bottom: 1.5rem; display: flex; align-items: center; gap: .75rem; }
.fkp-eyebrow::before { content: ''; display: inline-block; width: 24px; height: 1px; background: var(--fkp-teal); }

/* ── Tags ───────────────────────────────────────────────────── */
.fkp-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .75rem; }
.fkp-tag { font-family: var(--fkp-mono); font-size: .56rem; letter-spacing: .08em; padding: .25rem .6rem; border: 1px solid var(--fkp-teal); color: var(--fkp-teal); border-radius: 3px; }
.fkp-tags--outline .fkp-tag { border-color: var(--fkp-ink-lt); color: var(--fkp-ink-lt); }
.fkp-tags--lg .fkp-tag { font-size: .6rem; padding: .35rem .85rem; }
.fkp-tags--sm .fkp-tag { font-size: .5rem; }

/* ── Boutons ────────────────────────────────────────────────── */
.fkp-btn { display: inline-flex; align-items: center; padding: .75rem 1.6rem; font-family: var(--fkp-mono); font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; cursor: pointer; border: 2px solid; transition: all .2s; }
.fkp-btn--solid  { background: var(--fkp-teal); color: #fff; border-color: var(--fkp-teal); }
.fkp-btn--solid:hover  { background: transparent; color: var(--fkp-teal); }
.fkp-btn--outline { background: transparent; color: var(--fkp-ink); border-color: var(--fkp-rule); }
.fkp-btn--outline:hover { border-color: var(--fkp-ink); }
.fkp-btn--dark   { background: var(--fkp-ink); color: #fff; border-color: var(--fkp-ink); }
.fkp-btn--dark:hover   { background: transparent; color: var(--fkp-ink); }
.fkp-btn--full   { width: 100%; justify-content: center; }

/* ══ M1 — HERO — remplacé par .fkp-s-hero__inner en v1.9.4 ══ */
.fkp-hero-name { font-family: var(--fkp-serif); font-size: clamp(3.5rem,10vw,7rem); font-weight: 900; line-height: .95; color: var(--fkp-ink); margin: .5rem 0 1rem; }
.fkp-hero-tagline { font-family: var(--fkp-mono); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fkp-ink-lt); margin-bottom: 1.25rem; line-height: 1.6; }
.fkp-hero-lead { font-style: italic; font-family: var(--fkp-body); font-size: 1.1rem; color: var(--fkp-ink); line-height: 1.75; text-align: justify; margin-bottom: 1.5rem; }
.fkp-hero-tags { display: flex; flex-wrap: wrap; gap: .4rem .5rem; margin-bottom: 1.75rem; }
.fkp-hero-tag { font-family: var(--fkp-mono); font-size: .55rem; letter-spacing: .08em; padding: .3rem .75rem; border: 1px solid var(--fkp-rule); color: var(--fkp-ink-lt); border-radius: 2px; }
.fkp-hero-btns { display: flex; gap: .75rem; flex-wrap: wrap; }
/* Droite hero */
.fkp-exp-label { font-family: var(--fkp-mono); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fkp-ink-lt); margin-bottom: 1rem; }
.fkp-exp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-bottom: 1.5rem; }
.fkp-exp-box { font-family: var(--fkp-mono); font-size: .6rem; line-height: 1.5; color: var(--fkp-ink-mid); padding: .75rem 1rem; border: 1px solid var(--fkp-rule); }
.fkp-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; }
.fkp-metric { border: 1px solid var(--fkp-rule); padding: .75rem 1rem; display: flex; flex-direction: column; gap: .35rem; }
.fkp-metric__val { font-family: var(--fkp-serif); font-size: 2rem; font-weight: 700; color: var(--fkp-teal); line-height: 1; }
.fkp-metric__label { font-family: var(--fkp-mono); font-size: .5rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fkp-ink-lt); }

/* ══ M2 — PROFIL ════════════════════════════════════════════ */
.fkp-s-profil { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-profil__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; max-width: 1060px; margin: 0 auto; padding: 4rem 2rem; }
.fkp-s-profil__left, .fkp-s-profil__right { min-width: 0; }
@media(max-width:900px){ .fkp-s-profil__inner { grid-template-columns: 1fr; } }

.fkp-value-block { padding: 1.5rem 0 1.5rem 1.25rem; border-left: 2px solid var(--fkp-teal); border-bottom: 1px solid var(--fkp-rule); margin-bottom: 0; }
.fkp-value-block:last-child { border-bottom: none; }
.fkp-value-num { font-family: var(--fkp-mono); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fkp-teal); margin-bottom: .6rem; }
.fkp-value-num span { color: var(--fkp-ink-lt); }
.fkp-value-title { font-family: var(--fkp-body); font-size: 1rem; font-weight: 700; color: var(--fkp-ink); margin-bottom: .75rem; }
.fkp-value-text { font-family: var(--fkp-body); font-size: .9rem; color: var(--fkp-ink-mid); line-height: 1.7; text-align: justify; margin: 0; }

/* ══ M3 — FORMATIONS ════════════════════════════════════════ */
.fkp-s-formations { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-formations > .fkp-container { padding-top: 3rem; padding-bottom: 3rem; }
.fkp-formations-list { list-style: none; margin: 0; padding: 0; }
.fkp-formations-item { display: flex; align-items: baseline; gap: 1rem; font-family: var(--fkp-body); font-size: 1.15rem; color: var(--fkp-ink); padding: 1rem 0; border-bottom: 1px solid var(--fkp-rule); line-height: 1.4; }
.fkp-formations-item:last-child { border-bottom: none; }
.fkp-formations-dot { color: var(--fkp-teal); font-size: 1rem; flex-shrink: 0; }

/* ══ M4 — SERVICES ══════════════════════════════════════════ */
.fkp-s-services { width: 100%; padding: 0; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-services > .fkp-container { padding-top: 4rem; padding-bottom: 4rem; }
.fkp-svc-tabs { display: flex; gap: 0; margin: 2rem 0 0; flex-wrap: wrap; border-bottom: 1px solid #E5E7EB; }
button.fkp-svc-tab { font-family: var(--fkp-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; padding: .65rem 1.4rem; background: #F7F8FA !important; border: none !important; border-bottom: 2px solid transparent; border-right: 1px solid #E5E7EB !important; border-radius: 0 !important; box-shadow: none !important; cursor: pointer; color: #5A6E84; transition: all .2s; }
button.fkp-svc-tab:last-child { border-right: none !important; }
button.fkp-svc-tab.fkp-svc-tab--active { color: #fff !important; background: #2BA8A3 !important; border-bottom-color: #2BA8A3 !important; font-weight: 600; }
button.fkp-svc-tab:not(.fkp-svc-tab--active):hover { color: #1A2B4C !important; background: #EBF6F5 !important; border-bottom-color: #2BA8A3 !important; }
.fkp-svc-panel { display: none; padding-top: 2.5rem; }
.fkp-svc-panel--active { display: block; }
.fkp-svc-intro { font-style: italic; font-family: var(--fkp-body); font-size: 1.05rem; color: var(--fkp-ink-mid); line-height: 1.7; text-align: justify; margin-bottom: 2.5rem; }
.fkp-svc-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.25rem; }
@media(max-width:900px){ .fkp-svc-cards{grid-template-columns:1fr;} }
.fkp-svc-card { border: 1px solid var(--fkp-rule); padding: 1.5rem; font-family: var(--fkp-body); }
.fkp-svc-card--active { border-color: var(--fkp-teal); border-width: 2px; }
.fkp-svc-card__meta { font-family: var(--fkp-mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fkp-teal); margin-bottom: .75rem; }
.fkp-svc-card__meta span { color: var(--fkp-ink-lt); }
.fkp-svc-card__title { font-family: var(--fkp-body); font-size: 1.05rem; font-weight: 700; color: var(--fkp-ink); margin-bottom: .75rem; line-height: 1.3; }
.fkp-svc-card__text { font-size: .9rem; color: var(--fkp-ink-mid); line-height: 1.7; text-align: justify; margin-bottom: .75rem; }
.fkp-clients-bar { font-family: var(--fkp-mono); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; color: var(--fkp-ink-lt); text-align: center; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--fkp-rule); line-height: 2; }

/* ══ M5 — DOMAINES ══════════════════════════════════════════ */
.fkp-s-domaines { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-domaines > .fkp-container { padding-top: 4rem; padding-bottom: 4rem; }
.fkp-dom-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin-top: 2.5rem; }
@media(max-width:1000px){ .fkp-dom-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:600px)  { .fkp-dom-grid{grid-template-columns:1fr;} }
.fkp-dom-card { border: 1px solid var(--fkp-rule); padding: 1.25rem; font-family: var(--fkp-body); }
.fkp-dom-badge { font-family: var(--fkp-mono); font-size: .54rem; letter-spacing: .08em; text-transform: uppercase; background: var(--fkp-teal-pale); color: var(--fkp-teal); padding: .2rem .5rem; border-radius: 2px; display: inline-block; margin-bottom: .75rem; }
.fkp-dom-title { font-size: .95rem; font-weight: 700; color: var(--fkp-ink); margin-bottom: .6rem; line-height: 1.3; }
.fkp-dom-text  { font-size: .82rem; color: var(--fkp-ink-mid); line-height: 1.65; text-align: justify; margin-bottom: .6rem; }

/* ══ M6 — PARCOURS ══════════════════════════════════════════ */
.fkp-s-parcours { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-parcours > .fkp-container { padding-top: 4rem; padding-bottom: 4rem; }
.fkp-timeline { margin-top: 3rem; }
.fkp-timeline-entry { display: grid; grid-template-columns: 180px 1fr; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--fkp-rule); }
.fkp-timeline-entry:last-child { border-bottom: none; }
@media(max-width:700px){ .fkp-timeline-entry{grid-template-columns:1fr;gap:1rem;} }
.fkp-timeline-period   { font-family: var(--fkp-mono); font-size: .62rem; letter-spacing: .08em; color: var(--fkp-teal); display: block; margin-bottom: .3rem; }
.fkp-timeline-location { font-family: var(--fkp-mono); font-size: .55rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fkp-ink-lt); display: block; }
.fkp-timeline-title    { font-family: var(--fkp-body); font-size: 1.1rem; font-weight: 700; color: var(--fkp-ink); margin-bottom: .4rem; }
.fkp-timeline-subtitle { font-family: var(--fkp-mono); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; color: var(--fkp-teal); margin-bottom: 1rem; }
.fkp-timeline-bullets  { margin: 0; padding: 0 0 0 1rem; list-style: none; }
.fkp-timeline-bullets li { font-family: var(--fkp-body); font-size: .9rem; color: var(--fkp-ink-mid); line-height: 1.65; padding: .3rem 0; border-bottom: 1px solid var(--fkp-rule); text-align: justify; position: relative; padding-left: 1rem; }
.fkp-timeline-bullets li::before { content: '·'; position: absolute; left: 0; color: var(--fkp-teal); }
.fkp-timeline-bullets li:last-child { border-bottom: none; }

/* ══ M7 — CLIENTS ═══════════════════════════════════════════ */
.fkp-s-clients { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-clients > .fkp-container { padding-top: 4rem; padding-bottom: 4rem; }
.fkp-clients-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; margin-top: 2rem; }
@media(max-width:700px){ .fkp-clients-grid{grid-template-columns:1fr;gap:2rem;} }
.fkp-clients-list { list-style: none; margin: 0; padding: 0; }
.fkp-clients-list li { font-family: var(--fkp-body); font-size: 1rem; color: var(--fkp-ink); padding: .7rem 0; border-bottom: 1px solid var(--fkp-rule); position: relative; padding-left: 1.2rem; }
.fkp-clients-list li::before { content: '·'; position: absolute; left: 0; color: var(--fkp-teal); }

/* ══ M8 — PUBLICATIONS ══════════════════════════════════════ */
.fkp-s-publications { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-publications > .fkp-container { padding-top: 4rem; padding-bottom: 4rem; }
.fkp-pub-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: 2.5rem; }
@media(max-width:700px){ .fkp-pub-grid{grid-template-columns:1fr;} }
.fkp-pub-card { background: var(--fkp-bg); border: 1px solid var(--fkp-rule); border-left: 3px solid var(--fkp-teal); padding: 1.5rem; display: flex; flex-direction: column; gap: .75rem; }
.fkp-pub-type  { font-family: var(--fkp-mono); font-size: .54rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fkp-ink-lt); }
.fkp-pub-title { font-family: var(--fkp-body); font-size: 1rem; font-weight: 700; color: var(--fkp-ink); line-height: 1.35; }
.fkp-pub-desc  { font-family: var(--fkp-body); font-size: .88rem; color: var(--fkp-ink-mid); line-height: 1.7; text-align: justify; flex: 1; }
.fkp-pub-btn   { font-family: var(--fkp-mono); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; padding: .35rem .85rem; border: 1px solid #B8A26E; color: #B8A26E; text-decoration: none; display: inline-block; width: fit-content; transition: all .2s; }
.fkp-pub-btn:hover:not(.fkp-pub-btn--inactive) { background: #B8A26E; color: #fff; }
.fkp-pub-btn--inactive { opacity: .7; cursor: default; }

/* ══ M9 — TÉMOIGNAGES ═══════════════════════════════════════ */
.fkp-s-temoignages { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-temoignages > .fkp-container { padding-top: 4rem; padding-bottom: 4rem; }
.fkp-testi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: 2.5rem; }
@media(max-width:700px){ .fkp-testi-grid{grid-template-columns:1fr;} }
.fkp-testi-card { border: 1px solid var(--fkp-rule); padding: 2rem 1.75rem 1.5rem; position: relative; display: flex; flex-direction: column; gap: 1rem; }
.fkp-testi-quote { font-family: var(--fkp-serif); font-size: 3.5rem; color: var(--fkp-teal); line-height: 1; opacity: .4; position: absolute; top: 1rem; left: 1.25rem; }
.fkp-testi-text { font-family: var(--fkp-body); font-size: .95rem; font-style: italic; color: var(--fkp-ink); line-height: 1.8; text-align: justify; margin: 1rem 0 0; border: none; padding: 0; quotes: none; flex: 1; }
.fkp-testi-author strong { font-family: var(--fkp-body); font-size: .9rem; font-weight: 700; color: var(--fkp-ink); display: block; margin-bottom: .25rem; }
.fkp-testi-func  { font-family: var(--fkp-mono); font-size: .54rem; letter-spacing: .08em; text-transform: uppercase; color: var(--fkp-ink-lt); display: block; margin-bottom: .25rem; }
.fkp-testi-year  { font-family: var(--fkp-mono); font-size: .6rem; color: var(--fkp-teal); display: block; }

/* ══ M10 — PARTENARIATS ═════════════════════════════════════ */
.fkp-s-partenariats { width: 100%; border-bottom: 1px solid var(--fkp-rule); }
.fkp-s-partenariats > .fkp-container { padding-top: 4rem; padding-bottom: 4rem; }
.fkp-part-body { border-left: 2px solid var(--fkp-teal); padding-left: 1.5rem; margin: 2rem 0; }
.fkp-part-body p { font-family: var(--fkp-body); font-size: 1.05rem; color: var(--fkp-ink); line-height: 1.8; text-align: justify; margin-bottom: 1rem; }
.fkp-part-body p:last-child { margin-bottom: 0; }
.fkp-part-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 2rem; }
.fkp-part-modes { font-family: var(--fkp-mono); font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; color: var(--fkp-ink-lt); }

/* ══ M11 — CONTACT ══════════════════════════════════════════ */
.fkp-s-contact { background: #E8F5F0; }
.fkp-contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; max-width: 1060px; margin: 0 auto; padding: 4rem 2rem; gap: 4rem; }
@media(max-width:900px){ .fkp-contact-grid{grid-template-columns:1fr;gap:2.5rem;} }
.fkp-contact-dl { margin-top: 2rem; }
.fkp-contact-row { display: grid; grid-template-columns: 100px 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid rgba(26,42,59,.12); }
.fkp-contact-row:last-child { border-bottom: none; }
.fkp-contact-row dt { font-family: var(--fkp-mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fkp-ink-lt); padding-top: .1rem; }
.fkp-contact-row dd { font-family: var(--fkp-body); font-size: 1rem; color: var(--fkp-ink); margin: 0; }
.fkp-contact-row dd a { color: var(--fkp-teal); text-decoration: none; }
/* Formulaire */
.fkp-form { display: flex; flex-direction: column; gap: 1.1rem; }
.fkp-form-row { display: flex; gap: 1rem; }
.fkp-form-row--2 > * { flex: 1; }
@media(max-width:600px){ .fkp-form-row--2{ flex-direction: column; } }
.fkp-form-group { display: flex; flex-direction: column; gap: .35rem; }
.fkp-form-group label { font-family: var(--fkp-mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fkp-ink-lt); }
.fkp-form-group input, .fkp-form-group select, .fkp-form-group textarea {
  font-family: var(--fkp-body); font-size: .95rem; color: var(--fkp-ink);
  background: #fff; border: 1px solid var(--fkp-rule); padding: .6rem .85rem;
  border-radius: 0; outline: none; width: 100%; box-sizing: border-box;
  transition: border-color .2s;
}
.fkp-form-group input:focus, .fkp-form-group select:focus, .fkp-form-group textarea:focus { border-color: var(--fkp-teal); }
.fkp-form-group textarea { resize: vertical; min-height: 120px; }
.fkp-robot-row { display: flex; align-items: center; gap: .75rem; }
.fkp-robot-q { font-family: var(--fkp-mono); font-size: .9rem; color: var(--fkp-ink); }
.fkp-form-note { font-family: var(--fkp-mono); font-size: .52rem; letter-spacing: .06em; text-transform: uppercase; color: var(--fkp-ink-lt); text-align: center; margin-top: .5rem; }
.fkp-form-success { background: #d4edda; border: 1px solid #c3e6cb; padding: 1.5rem; font-family: var(--fkp-body); color: #155724; border-radius: 4px; text-align: center; font-size: 1.1rem; }
.fkp-form-error { background: #f8d7da; border: 1px solid #f5c6cb; padding: .75rem 1rem; font-family: var(--fkp-mono); font-size: .65rem; color: #721c24; margin-bottom: .75rem; }

/* End fkp-portfolio v2.1.0 ================================== */

/* ============================================================
   FKESZI PRO v2.1.0 — CORRECTIONS & AMÉLIORATIONS
   ============================================================ */

/* ── Header height dynamique (fallback 80px) ─────────────── */
.site-header { min-height: 80px !important; }
.fkp-header-row { min-height: 80px; }

/* ── Lien "Lire plus" ────────────────────────────────────── */
.fkp-readmore {
    display: inline-flex; align-items: center; gap: 5px;
    font-family: var(--fkp-mono); font-size: .58rem; letter-spacing: .08em;
    text-transform: uppercase; color: var(--fkp-teal);
    text-decoration: none; margin-top: .75rem;
    border-bottom: 1px solid var(--fkp-teal);
    padding-bottom: 2px; transition: opacity .2s;
}
.fkp-readmore:hover { opacity: .7; }
.fkp-readmore::after { content: '→'; font-size: .7rem; }

/* ── Section overlay image ───────────────────────────────── */
.fkp-s-hero, .fkp-s-profil, .fkp-s-formations, .fkp-s-services,
.fkp-s-domaines, .fkp-s-parcours, .fkp-s-clients, .fkp-s-publications,
.fkp-s-temoignages, .fkp-s-partenariats, .fkp-s-contact {
    position: relative;
}
[data-overlay]::before {
    content: ''; position: absolute; inset: 0;
    background: rgba(0,0,0,var(--overlay-opacity,0.4)); z-index: 0;
}
[data-overlay] > * { position: relative; z-index: 1; }

/* ── Publications avec photo ─────────────────────────────── */
.fkp-pub-card--with-photo { flex-direction: row !important; align-items: flex-start; gap: 1.25rem; }
.fkp-pub-card--with-photo .fkp-pub-card__photo { flex-shrink: 0; width: 100px; }
.fkp-pub-card--with-photo .fkp-pub-card__photo img { width: 100px; height: auto; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.12); }
.fkp-pub-card__body { display: flex; flex-direction: column; gap: .75rem; flex: 1; }
@media(max-width:600px) { .fkp-pub-card--with-photo { flex-direction: column !important; } }

/* ── Dom cards clickable ─────────────────────────────────── */
.fkp-dom-card[onclick] { transition: border-top-color 0.2s ease, box-shadow 0.2s ease; }

/* End v2.1.0 =============================================== */

/* ============================================================
   FKESZI PRO v2.1.0 — HERO PLEINE LARGEUR + OVERLAY
   ============================================================ */

/* ── Hero : pleine largeur de la page ─────────────────────── */
.fkp-s-hero {
    width: 100%;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
    overflow: hidden;
}
.fkp-s-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    max-width: 1060px;
    margin: 0 auto;
    padding: 5rem 2rem 3.5rem;
    position: relative;
    z-index: 1;
}
@media(max-width:900px) {
    .fkp-s-hero__inner { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* ── Toutes sections : position relative pour overlay ────── */
.fkp-s-hero, .fkp-s-profil, .fkp-s-formations,
.fkp-s-services, .fkp-s-domaines, .fkp-s-parcours,
.fkp-s-clients, .fkp-s-publications, .fkp-s-temoignages,
.fkp-s-partenariats, .fkp-s-contact {
    position: relative;
}

/* ── Overlay : div interne généré par PHP ────────────────── */
.fkp-bg-overlay {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none;
}

/* ── Contenu au-dessus de l'overlay ─────────────────────── */
.fkp-s-hero__inner,
.fkp-s-profil > *,
.fkp-s-formations > *,
.fkp-s-services > *,
.fkp-s-domaines > *,
.fkp-s-parcours > *,
.fkp-s-clients > *,
.fkp-s-publications > *,
.fkp-s-temoignages > *,
.fkp-s-partenariats > *,
.fkp-contact-grid {
    position: relative;
    z-index: 1;
}

/* End v2.1.0 ================================================ */

/* ============================================================
   FKESZI PRO v2.1.0 — ENCARTS CLIQUABLES
   ============================================================ */

/* ── Domaines expertise : boite cliquable ────────────────── */
.fkp-exp-box--link {
    display: flex; justify-content: space-between; align-items: flex-end;
    text-decoration: none; color: var(--fkp-ink-mid);
    transition: background .2s, border-color .2s, color .2s;
    cursor: pointer;
}
.fkp-exp-box--link:hover {
    background: var(--fkp-teal-pale);
    border-color: var(--fkp-teal);
    color: var(--fkp-ink);
}
.fkp-exp-box__arrow {
    font-size: .65rem; color: var(--fkp-teal);
    opacity: 0; transition: opacity .2s;
    align-self: center;
}
.fkp-exp-box--link:hover .fkp-exp-box__arrow { opacity: 1; }

/* ── Métriques cliquables ────────────────────────────────── */
.fkp-metric--link {
    text-decoration: none; cursor: pointer;
    transition: box-shadow .2s, transform .2s;
}
.fkp-metric--link:hover {
    box-shadow: 0 4px 16px rgba(43,168,163,0.15);
    transform: translateY(-2px);
}

/* ── Formations avec lien ────────────────────────────────── */
.fkp-formations-item--link { cursor: pointer; }
.fkp-formations-link {
    color: inherit; text-decoration: none;
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; width: 100%; transition: color .2s;
}
.fkp-formations-link:hover { color: var(--fkp-teal); }
.fkp-formations-arrow {
    font-size: .8rem; color: var(--fkp-teal);
    opacity: 0; transition: opacity .2s; flex-shrink: 0;
}
.fkp-formations-link:hover .fkp-formations-arrow { opacity: 1; }

/* ── Cartes services cliquables ──────────────────────────── */
.fkp-svc-card .fkp-readmore { margin-top: 1rem; }

/* ── Cartes domaines cliquables ──────────────────────────── */
.fkp-dom-card--link { cursor: pointer; transition: border-top-color 0.2s ease, box-shadow 0.2s ease; }

/* End v2.1.0 encarts ======================================= */

/* ============================================================
   FKESZI PRO v2.1.0 — LAYOUT PLEINE LARGEUR + HEADER MENU
   ============================================================ */

/* ── Site content pleine largeur sur front page ──────────── */
body.home .fkp-site-content,
body.home #content.fkp-site-content {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.home #fkp-portfolio-main {
    width: 100%;
    max-width: 100%;
}

/* ── Header : menu desktop visible ──────────────────────── */
.fkp-desktop-nav {
    display: flex !important;
    align-items: center;
}
.fkp-desktop-nav ul {
    display: flex !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0;
    align-items: center;
}
.fkp-desktop-nav ul li {
    display: block !important;
    position: relative;
}
.fkp-desktop-nav ul li a {
    display: flex;
    align-items: center;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: color .2s;
}
.fkp-desktop-nav ul li ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    min-width: 180px;
    z-index: 100;
    flex-direction: column;
    gap: 0;
}
.fkp-desktop-nav ul li:hover ul {
    display: flex;
}
.fkp-desktop-nav ul li ul li a {
    padding: 10px 16px;
    height: auto !important;
    line-height: 1.4 !important;
    font-size: 13px;
    border-bottom: 1px solid #f0f0f0;
}

/* ── Hamburger mobile visible uniquement en mobile ───────── */
.fkp-hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
}
.fkp-hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--fkp-ink, #1A2B4C);
    transition: all .3s;
}
@media(max-width:900px) {
    .fkp-desktop-nav { display: none !important; }
    .fkp-hamburger { display: flex !important; }
}

/* End v2.1.0 ================================================ */

/* ============================================================
   FKESZI PRO v2.1.0 — VEILLE TECHNOLOGIQUE
   Composants Gutenberg : subnav, header, grille de cartes
   ============================================================ */

/* ── Subnav inter-domaines ─────────────────────────────────── */
.fkp-vn-subnav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 14px 0 18px;
    border-bottom: 1px solid #D0DFE8;
    margin-bottom: 32px;
}
.fkp-vn-link {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #5A7A9A;
    text-decoration: none;
    padding: 6px 14px;
    border: 1px solid #D0DFE8;
    border-radius: 20px;
    transition: all 0.15s;
    white-space: nowrap;
}
.fkp-vn-link:hover {
    color: var(--fkc-teal, #3BBDB8);
    border-color: var(--fkc-teal, #3BBDB8);
    background: #E5F6F5;
}
.fkp-vn-link.fkp-vn-active {
    color: #fff;
    background: var(--fkc-teal, #3BBDB8);
    border-color: var(--fkc-teal, #3BBDB8);
    font-weight: 600;
}

/* ── Header de section ─────────────────────────────────────── */
.fkp-vs-header {
    margin-bottom: 36px !important;
}
.fkp-vs-title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    color: var(--fkc-navy, #1A2B4C) !important;
    margin-bottom: 10px !important;
}
.fkp-vs-intro {
    font-size: 15px !important;
    color: #5A7A9A !important;
    max-width: 720px !important;
    line-height: 1.65 !important;
    margin: 0 !important;
}

/* ── Grille de cartes ──────────────────────────────────────── */
.fkp-vc-grid.wp-block-group {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 18px !important;
    margin-bottom: 40px !important;
}
@media (max-width: 768px) {
    .fkp-vc-grid.wp-block-group { grid-template-columns: 1fr !important; }
}

/* ── Carte individuelle ────────────────────────────────────── */
.fkp-vc-card.wp-block-group {
    background: #fff !important;
    border: 1px solid #D0DFE8 !important;
    border-radius: 6px !important;
    padding: 20px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    cursor: default !important;
}
.fkp-vc-card.wp-block-group:hover {
    border-color: var(--fkc-teal, #3BBDB8) !important;
    box-shadow: 0 4px 16px rgba(59,189,184,0.10) !important;
}
.fkp-vc-rubric {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    color: #8AAABB !important;
    margin: 0 !important;
}
.fkp-vc-title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--fkc-navy, #1A2B4C) !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}
.fkp-vc-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 2px 0;
}
.fkp-vc-pill {
    font-family: 'Inter', sans-serif;
    font-size: 10px;
    font-weight: 500;
    padding: 3px 9px;
    background: #E5F6F5;
    color: #2A9E99;
    border-radius: 12px;
    white-space: nowrap;
}
.fkp-vc-excerpt {
    font-size: 13px !important;
    color: #5A7A9A !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    flex: 1 !important;
}
.fkp-vc-cta {
    margin: 4px 0 0 !important;
}
.fkp-vc-cta a {
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--fkc-teal, #3BBDB8) !important;
    text-decoration: none !important;
    letter-spacing: 0.3px !important;
}
.fkp-vc-cta a:hover {
    color: var(--fkc-blue, #3B6EC8) !important;
}

/* End Veille Technologique ================================== */

/* ============================================================
   FKESZI PRO — VEILLE DOMAINE (template-veille-domain.php)
   ============================================================ */

/* Wrapper pleine largeur — écrase le layout à colonne du thème */
.fkv-page-wrapper {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}
.fkv-page-inner {
    max-width: 1140px;
    margin: 0 auto;
    padding: 40px 32px 80px;
}
@media (max-width: 768px) {
    .fkv-page-inner { padding: 24px 16px 60px; }
}

/* Subnav inter-domaines */
.fkv-nav {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin-bottom: 8px !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid #E5EEF4 !important;
}
.fkv-nav a {
    font-size: 11px !important;
    font-weight: 500 !important;
    color: #5A7A9A !important;
    text-decoration: none !important;
    padding: 5px 12px !important;
    border: 1px solid #D0DFE8 !important;
    border-radius: 20px !important;
    white-space: nowrap !important;
    transition: .15s !important;
}
.fkv-nav a:hover, .fkv-nav a.on {
    color: #fff !important;
    background: #3BBDB8 !important;
    border-color: #3BBDB8 !important;
}

/* Titre de section */
.fkv-page-inner h2 {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #1A2B4C !important;
    margin: 24px 0 10px !important;
}

/* Intro */
.fkv-page-inner > p:first-of-type {
    font-size: 14.5px !important;
    color: #5A7A9A !important;
    line-height: 1.65 !important;
    margin-bottom: 32px !important;
    max-width: 760px !important;
}

/* Grille de cartes */
.fkv-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
    margin-top: 8px !important;
}
@media (max-width: 900px) {
    .fkv-grid { grid-template-columns: 1fr !important; }
}

/* Chaque carte */
.fkv-grid > .wp-block-group {
    border: 1px solid #D0DFE8 !important;
    border-radius: 6px !important;
    padding: 18px 20px !important;
    background: #fff !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin: 0 !important;
    transition: border-color .2s, box-shadow .2s !important;
}
.fkv-grid > .wp-block-group:hover {
    border-color: #3BBDB8 !important;
    box-shadow: 0 3px 12px rgba(59,189,184,.10) !important;
}

/* Rubric */
.fkv-rubric {
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: .7px !important;
    text-transform: uppercase !important;
    color: #8AAABB !important;
    margin: 0 !important;
}

/* Titre carte */
.fkv-ctitle {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #1A2B4C !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}

/* Pills */
.fkv-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 2px 0;
}
.fkv-pill {
    font-size: 10px;
    font-weight: 500;
    padding: 2px 8px;
    background: #E5F6F5;
    color: #2A9E99;
    border-radius: 10px;
    white-space: nowrap;
}

/* Extrait */
.fkv-exc {
    font-size: 12.5px !important;
    color: #5A7A9A !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    flex: 1 !important;
}

/* CTA */
.fkv-cta { margin-top: 4px !important; }
.fkv-cta a {
    font-size: 11.5px !important;
    font-weight: 600 !important;
    color: #3BBDB8 !important;
    text-decoration: none !important;
}
.fkv-cta a:hover { color: #3B6EC8 !important; }

/* Masquer les éléments du layout standard quand on est sur template-veille-domain */
.page-template-template-veille-domain .fkv-page-wrapper + *,
.page-template-template-veille-domain #secondary,
.page-template-template-veille-domain .widget-area { display: none !important; }

/* End Veille Domaine ======================================= */

/* ══════════════════════════════════════════════════════════
   FKESZI PRO — EFFET HOVER McKINSEY v1.0
   S'applique à toutes les cartes du site
   ══════════════════════════════════════════════════════════ */

/* ── Cartes domaine hub /veille/ ─────────────────────────── */
.fkp-domain-card {
    border-top: 2px solid #D0DFE8;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
    position: relative;
    overflow: hidden;
}
.fkp-domain-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
    transform: none !important;
}

/* Chevron sur les cartes domaine */
.fkp-domain-card .fkp-dc-cta::after {
    content: ' ›';
    display: inline-block;
    transform: translateX(-4px);
    opacity: 0;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.fkp-domain-card:hover .fkp-dc-cta::after {
    transform: translateX(2px);
    opacity: 1;
}
.fkp-domain-card:hover .fkp-dc-title {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* ── Cartes articles /veille/veille-itsm/ etc. ────────────── */
.fkpv-card {
    border-top: 2px solid #D0DFE8 !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
    position: relative;
}
.fkpv-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
    transform: none !important;
}
.fkpv-card .fkpv-ctitle {
    transition: text-decoration 0.15s;
}
.fkpv-card:hover .fkpv-ctitle {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.fkpv-card .fkpv-cta::after {
    content: ' ›';
    display: inline-block;
    transform: translateX(-4px);
    opacity: 0;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.fkpv-card:hover .fkpv-cta::after {
    transform: translateX(2px);
    opacity: 1;
}

/* ── Cartes services fkp-svc-card ────────────────────────── */
.fkp-svc-card {
    border-top: 2px solid #D0DFE8 !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
    overflow: hidden;
}
.fkp-svc-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
    transform: none !important;
}
.fkp-svc-card:hover .fkp-svc-card__title {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* ── Cartes publications fkp-pub-item ────────────────────── */
.fkp-pub-item {
    border-top: 2px solid #D0DFE8;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease;
}
.fkp-pub-item:hover {
    border-top-color: #1A2B4C;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10);
}
.fkp-pub-item:hover .fkp-pub-title {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* ── Boîtes expertise fkp-exp-box ────────────────────────── */
.fkp-exp-box {
    border-top: 2px solid #D0DFE8 !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fkp-exp-box:hover {
    border-top-color: #3BBDB8 !important;
    box-shadow: 0 2px 12px rgba(59,189,184,0.12) !important;
}

/* ── Cartes témoignages fkp-testi ────────────────────────── */
.fkp-testi-card {
    border-top: 2px solid #D0DFE8 !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fkp-testi-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
}

/* ── Image hover dans les cartes (si image présente) ────── */
.fkpv-card__img,
.fkp-domain-card__img,
.fkp-pub-item__img {
    overflow: hidden;
}
.fkpv-card__img img,
.fkp-domain-card__img img,
.fkp-pub-item__img img {
    transition: transform 0.4s ease;
    display: block;
    width: 100%;
}
.fkpv-card:hover .fkpv-card__img img,
.fkp-domain-card:hover .fkp-domain-card__img img,
.fkp-pub-item:hover .fkp-pub-item__img img {
    transform: scale(1.04);
}

/* End Effet Hover McKinsey ================================= */

/* ── Footer centrage et corrections ─────────────────────── */
.fkp-footer-top .fkp-container,
.footer-b .fkp-container {
    max-width: 1060px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
    width: 100% !important;
}
/* Supprimer tout padding gauche hérité du Bootstrap .container */
.fkp-footer-top,
.footer-b {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ── McKinsey hover — cartes manquantes ─────────────────── */

/* Publications (fkp-pub-card) */
.fkp-pub-card {
    border-top: 2px solid var(--fkp-rule) !important;
    border-left: none !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fkp-pub-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
}
.fkp-pub-card:hover .fkp-pub-title {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* Métriques hero (fkp-metric) */
.fkp-metric {
    border-top: 2px solid var(--fkp-rule) !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fkp-metric:hover {
    border-top-color: #3BBDB8 !important;
    box-shadow: 0 4px 16px rgba(59,189,184,0.10) !important;
}

/* Valeurs profil (fkp-value-block) */
.fkp-value-block {
    border-top: 2px solid var(--fkp-rule) !important;
    border-left: none !important;
    padding-left: 0 !important;
    padding-top: 1.5rem !important;
    transition: border-top-color 0.2s ease !important;
}
.fkp-value-block:hover {
    border-top-color: #3BBDB8 !important;
}

/* Services fkp-svc-card — renforcer l'effet */
.fkp-svc-card {
    border: none !important;
    border-top: 2px solid #D0DFE8 !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fkp-svc-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
}
.fkp-svc-card--active {
    border-top: 2px solid #3BBDB8 !important;
}

/* Timeline parcours — entrées */
.fkp-timeline-entry {
    border-top: 2px solid transparent !important;
    border-bottom: 1px solid var(--fkp-rule) !important;
    transition: border-top-color 0.2s ease, background 0.2s ease !important;
    padding: 2rem 0.5rem !important;
    margin: 0 -0.5rem !important;
}
.fkp-timeline-entry:hover {
    border-top-color: #3BBDB8 !important;
    background: rgba(59,189,184,0.03) !important;
}

/* Cartes "about" si présentes */
.fkp-about-card {
    border-top: 2px solid #D0DFE8 !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fkp-about-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
}

/* Partenaires logos */
.fkp-logos-centered__item {
    border-top: 2px solid transparent !important;
    transition: border-top-color 0.2s ease, opacity 0.2s ease !important;
}
.fkp-logos-centered__item:hover {
    border-top-color: #3BBDB8 !important;
    opacity: 1 !important;
}

/* Étapes processus */
.fkp-process-carinel__step {
    border-top: 2px solid transparent !important;
    transition: border-top-color 0.2s ease !important;
    padding-top: 1.5rem !important;
}
.fkp-process-carinel__step:hover {
    border-top-color: #3BBDB8 !important;
}

/* End McKinsey hover — cartes manquantes ================= */

/* ── Processus — étapes 7 à 12 avec retour à la ligne ───── */
.fkp-process-carinel__row--7  { grid-template-columns: repeat(4, 1fr); }
.fkp-process-carinel__row--8  { grid-template-columns: repeat(4, 1fr); }
.fkp-process-carinel__row--9  { grid-template-columns: repeat(3, 1fr); }
.fkp-process-carinel__row--10 { grid-template-columns: repeat(4, 1fr) !important; }
.fkp-process-carinel__row--11 { grid-template-columns: repeat(4, 1fr); }
.fkp-process-carinel__row--12 { grid-template-columns: repeat(4, 1fr); }

/* Pour >6 : masquer la ligne de connexion (incompatible avec le wrap) */
.fkp-process-carinel__row--7  .fkp-process-carinel__line,
.fkp-process-carinel__row--8  .fkp-process-carinel__line,
.fkp-process-carinel__row--9  .fkp-process-carinel__line,
.fkp-process-carinel__row--10 .fkp-process-carinel__line,
.fkp-process-carinel__row--11 .fkp-process-carinel__line,
.fkp-process-carinel__row--12 .fkp-process-carinel__line { display: none !important; }

/* Séparateur entre les lignes */
.fkp-process-carinel__row--7  .fkp-process-carinel__step,
.fkp-process-carinel__row--8  .fkp-process-carinel__step,
.fkp-process-carinel__row--9  .fkp-process-carinel__step,
.fkp-process-carinel__row--10 .fkp-process-carinel__step,
.fkp-process-carinel__row--11 .fkp-process-carinel__step,
.fkp-process-carinel__row--12 .fkp-process-carinel__step {
    border-top: 1px solid rgba(255,255,255,0.10);
    padding-top: 2rem !important;
    margin-top: 1rem;
}

@media(max-width:900px) {
    .fkp-process-carinel__row--7,
    .fkp-process-carinel__row--8,
    .fkp-process-carinel__row--9,
    .fkp-process-carinel__row--10,
    .fkp-process-carinel__row--11,
    .fkp-process-carinel__row--12 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media(max-width:600px) {
    .fkp-process-carinel__row--7,
    .fkp-process-carinel__row--8,
    .fkp-process-carinel__row--9,
    .fkp-process-carinel__row--10,
    .fkp-process-carinel__row--11,
    .fkp-process-carinel__row--12 { grid-template-columns: 1fr !important; }
}
/* End processus étapes 7-12 ================================ */

/* ── McKinsey — .fkp-dom-card (Domaines d'expertise) ────── */
.fkp-dom-card {
    border: none !important;
    border-top: 2px solid #D0DFE8 !important;
    border-radius: 0 !important;
    transition: border-top-color 0.2s ease, box-shadow 0.2s ease !important;
    transform: none !important;
}
.fkp-dom-card:hover {
    border-top-color: #1A2B4C !important;
    box-shadow: 0 4px 24px rgba(26,43,76,0.10) !important;
    transform: none !important;
}
.fkp-dom-card:hover .fkp-dom-title {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
/* Chevron slide-in sur les cartes domaine cliquables */
.fkp-dom-card--link::after {
    content: '›';
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    font-size: 18px;
    color: #3BBDB8;
    transform: translateX(-6px);
    opacity: 0;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.fkp-dom-card--link {
    position: relative;
}
.fkp-dom-card--link:hover::after {
    transform: translateX(0);
    opacity: 1;
}
/* End McKinsey dom-card ================================== */
