/* =============================================================================
 * Papir V2 — custom.css
 * Styles globaux du thème. Consomme les tokens de var.css.
 * Règle : jamais de valeur brute ici — toujours via var(--token)
 * ========================================================================== */

/* -----------------------------------------------------------------------------
 * 1. RESET & BASE
 * -------------------------------------------------------------------------- */

*, html {
    scroll-behavior: smooth !important;
    scroll-margin-top: 6rem;
}
html,
body {
  overflow-x: clip;
}
{overflow-x: clip}

body:not(.wp-admin) * {
    box-sizing: border-box;
    scroll-behavior: smooth;
}

body {
    padding: 0;
    margin: 0;
    line-height: var(--line-height);
}

#page {
    margin: auto;
}

b, strong {
    font-weight: 600;
}

a, a:link, a:visited {
    color: inherit;
}

/* -----------------------------------------------------------------------------
 * 2. TYPOGRAPHIE
 * -------------------------------------------------------------------------- */

/* ==========================================================================
   TITRES — Hiérarchie typographique
   Échelle fluide via clamp(min, preferred, max)
   ========================================================================== */

h1, .h1 {
  font-family: var(--font_title);
  font-weight: var(--fw-black);
  font-size: clamp(2rem, 4vw + 1rem, var(--font-size-xxxl));
  line-height: var(--line-height-tight);
  letter-spacing: -0.02em;
}

h2, .h2 {
  font-family: var(--font_title);
  font-weight: var(--fw-bold);
  font-size: clamp(1.75rem, 3vw + 0.75rem, var(--font-size-xxl));
  line-height: var(--line-height-tight);
  letter-spacing: -0.015em;
}

h3, .h3 {
  font-family: var(--font_title);
  font-weight: var(--fw-semibold);
  font-size: clamp(1.5rem, 2vw + 0.75rem, var(--font-size-xl));
  line-height: var(--line-height-snug);
}

h4, .h4 {
  font-family: var(--font_title);
  font-weight: var(--fw-semibold);
  font-size: var(--font-size-lg);
  line-height: var(--line-height-snug);
}

h5, .h5 {
  font-family: var(--font_title);
  font-weight: var(--fw-semibold);
  font-size: var(--font-size-md);
  line-height: var(--line-height-normal);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing);
}

h6, .h6 {
  font-family: var(--font);
  font-weight: var(--fw-bold);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-normal);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing);
}

/* Corps de texte par défaut */
body {
  font-family: var(--font);
  font-weight: var(--fw-regular);
  font-size: var(--font-size-md);
  line-height: var(--line-height-normal);
}
/* Extensions typographiques projet — ajouter ici */
.eyebow{
	font-weight:var(--fw-semibold)!important;
}
/* -----------------------------------------------------------------------------
 * 3. LAYOUT & CONTENEURS
 * -------------------------------------------------------------------------- */

#primary {
    
}

.entry-content > :not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator):not(.wp-block-kadence-rowlayout):not([class*="kb-"]) {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--small_width);
}

.entry-content .alignwide {
    margin: auto;
    max-width: var(--medium_width);
}

.entry-content .alignfull {
    max-width: 100%;
}

.alignfull:not(.fullWidth_content, .page_header, #primary_footer, .sub_footer) .kt-row-column-wrap,
.blog_container {
    margin: auto;
}

/* -----------------------------------------------------------------------------
 * 4. UTILITAIRES
 * -------------------------------------------------------------------------- */
/* ==========================================================================
   SITE LOGO — Dimensionnement universel SVG/PNG
   Cible le block Gutenberg natif, contextualisé header/footer
   ========================================================================== */

.wp-block-site-logo a,
.wp-block-site-logo img, .wp-block-site-logo svg {
  display: block;
  height: auto;
}

/* Logo dans le header */
.primary_header .wp-block-site-logo svg,
.site-header .wp-block-site-logo svg {
  width: var(--logo-width-header);
  max-width: 100%;
}

/* Logo dans le footer */
.site-footer .wp-block-site-logo svg,
.primary_footer .wp-block-site-logo svg {
  width: var(--logo-width-footer);
  max-width: 100%;
}
/* Adaptation mobile */
@media (max-width: 768px) {
  .primary_header .wp-block-site-logo img,
  .site-header .wp-block-site-logo img {
    width: var(--logo-width-mobile);
  }
}
/* ==========================================================================
   SITE LOGO — Variante footer (fond dark)
   SVG inliné : ciblage direct des éléments internes
   ========================================================================== */

.site-footer .wp-block-site-logo svg,
.primary_footer .wp-block-site-logo svg {
  color: #E1FFF9;
}

.site-footer .wp-block-site-logo svg *,
.primary_footer .wp-block-site-logo svg * {
  fill: currentColor;
}

.reverse_grid {
    direction: rtl;
}

/* Classes utilitaires projet — ajouter ici */

/* -----------------------------------------------------------------------------
 * 3. SLIDERS
 * -------------------------------------------------------------------------- */
.wp-block-cb-carousel-v2 .cb-pagination .swiper-pagination-bullet{
	background:var(--col_1);
	border:solid 1px var(--col_2);
	opacity:1;
}
.wp-block-cb-carousel-v2 .cb-pagination .swiper-pagination-bullet{
	background:var(--col_1);
	border:solid 1px var(--col_2);
	opacity:1;
}
.wp-block-cb-carousel-v2 .cb-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{
	background:var(--col_3);
	border-color:var(--col_3);
}
/* -----------------------------------------------------------------------------
 * 5. MENU
 * -------------------------------------------------------------------------- */
.navigation-mobile-style-standard .sub-menu{margin-left:0!important;}

/*LANG SWITCHER */

.lang-switcher-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: .4em 1em;
    border: 2px solid var(--col_2);
    border-radius: 999px;
    text-decoration: none;
    color: var(--col_2);
    font-weight: 400;
    transition: background-color 0.2s ease;
	font-size:0.9rem;
}

.lang-switcher-toggle:hover,
.lang-switcher-toggle:focus-visible {
    background-color: var(--col_5);
}

.lang-switcher-flag {
    display: block;
    border-radius: 2px;
}
/* -----------------------------------------------------------------------------
 * 5. COMPOSANTS UI
 * -------------------------------------------------------------------------- */

.site-title {
    display: none;
}

.entry-footer {
    display: none;
}

/* Boutons — surcharges globales */
.kt-btn-inner-text, .kt-btn-inner-text strong, .kb-nav-link-content{
	font-weight:var(--fw-medium)!important;
}
/* Formulaires — surcharges globales */
.kb-form-basic-style input[type="checkbox"]{
	width: 1.5rem!important;
	height: 1.2rem!important;
}

/* SOCIAL ICONS - surcharge globales */
.has-large-icon-size .wp-social-link svg {
  height: 2em;
  width: 2em;

	
}
/* Navigation — surcharges globales */
/* Layout : titre à gauche, bouton à droite, filet bas */
.wp-block-file {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #E5E5E5;
}

/* Titre : pas de soulignement, noir, ordre 1 */
.wp-block-file > a:first-child {
  order: 1;
  color: var(--wp--preset--color--col-2);
  text-decoration: none;
}

/* Bouton : ordre 2, ton style + picto */
.wp-block-file__button {
  order: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: var(--fw-medium) !important;
  color: var(--col_2);
  background: var(--col_3);
  letter-spacing: 0.5px;
  font-family: var( --global-heading-font-family, inherit );
  border-top-left-radius: 50px;
  border-top-right-radius: 50px;
  border-bottom-right-radius: 50px;
  border-bottom-left-radius: 50px;
  border-top: 2px solid var(--col_2);
  border-right: 2px solid var(--col_2);
  border-bottom: 2px solid var(--col_2);
  border-left: 2px solid var(--col_2);
  text-decoration: none;
	transition:all .4s;
}
.wp-block-file__button:hover{
	background:var(--col_2);
	color:var(--col_1);
	transition:all .4s;
}
/* Picto download avant le texte, en currentColor */
.wp-block-file__button::before {
  content: "";
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>') no-repeat center / contain;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>') no-repeat center / contain;
}

/* Overlay pills on top of Kadence image in product cards */
.pills-on-img .wp-block-group:has(.wp-block-orthopus-pills) .wp-block-group__inner-container {
	position: relative;
}

.pills-on-img .wp-block-orthopus-pills {
	position: absolute;
	top: var(--global-kb-spacing-sm, 1.5rem);
	left: var(--global-kb-spacing-sm, 1.5rem);
	z-index: 2;
	margin: 0;
}

/*TEAM GRID*/

.team-grid figure:before{
	content:"+";
	display:block;
	top:1rem;
	left:1rem;
	color:var(--col_2);
	background:white;
	height:1.5rem;
	width:1.5rem;
	border-radius:5rem;
	position:absolute;
	z-index:2;
	text-align:center;
	display:flex;
	align-items:center;
	justify-content:center;
	transform-origin:left top;
	transition:all .6s;
}
.team-grid figure:hover:before{
	transform:scale(1.5);
	transition:all .4s;
}
/*Cards blog */



/* Positionnement en overlay top-left, sans toucher à l'image */
.cat_on_first_plan {
  position: relative;
}

.cat_on_first_plan .kb-dynamic-list-id-19736_5685ff-dc {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  margin-bottom: 0;
}

/* N'afficher que le 1er terme */
.cat_on_first_plan .kb-dynamic-list-id-19736_5685ff-dc .kb-dynamic-list-item:not(:first-child) {
  display: none;
}

/* Forme pill + bordure sur le badge */
.kb-dynamic-list-style-pill .kb-dynamic-list-item {
  border-radius: 999px !important;
  padding: 4px 14px !important;
  border: 2px solid var(--col_2) !important;
}

/* Style pill unifié pour toutes les taxonomies du site */
.kb-dynamic-list-style-pill .kb-dynamic-list-item {
  border-radius: 999px;
  padding: 4px 14px;
  border: 2px solid var(--col_2);
}

/*READ MORE*/
.wp-block-post-excerpt__more-text {
  margin-top: 8px;
}

.wp-block-post-excerpt__more-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--global-kb-font-size-sm, 0.9rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--col_2);
  text-decoration: none;
  /*border-bottom: 2px solid var(--col_4);*/
  padding-bottom: 2px;
  transition: color 0.2s ease, border-color 0.2s ease, gap 0.2s ease;
}

.wp-block-post-excerpt__more-link::after {
  content: "→";
  transition: transform 0.2s ease;
}

.wp-block-post-excerpt__more-link:hover {
  color: var(--col_3);
  /*border-color: var(--col_3);*/
}

.wp-block-post-excerpt__more-link:hover::after {
  transform: translateX(3px);
}
/* -----------------------------------------------------------------------------
 * 6. CLASSES UTILITAIRES TYPOGRAPHIQUES
 * -------------------------------------------------------------------------- */

/*
 * Papir — Classes utilitaires typographiques
 * Usage dans Kadence Blocks : "Classe CSS additionnelle"
 * .font-primary   → Police principale (pilotée par le Customizer)
 * .font-secondary → Police secondaire (pilotée par le Customizer)
 * .font-accent    → Police d'accent (pilotée par le Customizer)
 */

/* -----------------------------------------------------------------------------
 * 7. SVG
 * -------------------------------------------------------------------------- */

/* SVG — ne pas forcer la largeur sur les blocs image (Kadence gère) */
img[src$=".svg"] {
    height: auto;
}

/* Logo SVG */
.custom-logo img[src$=".svg"],
.custom-logo-link img,
.site-logo img[src$=".svg"] {
    width: var(--logo-width, 160px);
    height: auto;
    display: block;
}

/* -----------------------------------------------------------------------------
 * 8. RESPONSIVE
 * -------------------------------------------------------------------------- */

/* Tablettes */
@media (max-width: 1024px) {

}

/* Mobiles */
@media (max-width: 767px) {

	.has-yvan-sticker .orthopus-sticker{
		display:none!important;
	}

}
/* ============================================
   Breadcrumb
   ============================================ */

.page__breadcrumb {
    padding-block: var(--global-sm-spacing);
    font-size: var(--font-size-xs); 
}
/* ==========================================Ò=Ò
   Trombinoscope — Card avec volet overlay
   ============================================ */

/* Card : référentiel de position pour l'overlay */
.team-card {
    position: relative;
    cursor: pointer;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    transition: transform .25s ease;
}

.team-card:hover {
    transform: translateY(-2px);
}

/* Volet : colonne .volet devient overlay absolu au clic */
.team-card .volet {
    position: absolute;
    inset: 0;
    z-index: 2;

    /* État masqué par défaut */
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition:
        opacity .2s ease-out,
        visibility .2s ease-out,
        transform .2s ease-out;

    /* Neutralise les contraintes de largeur imposées par Kadence */
    width: 100% !important;
    max-width: none !important;
    flex-basis: 100% !important;
}

/* Volet ouvert */
.team-card.is-open .volet {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Contenu interne du volet */
.team-card .volet > .kt-inside-inner-col {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--global-md-spacing);
    box-sizing: border-box;
    overflow-y: auto;
}

.team-card .volet .kt-inside-inner-col p {
    margin: 0;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-relaxed);
    
}

/* Indicateur focus clavier */
.team-card:focus-visible {
    outline: 2px solid var(--col_3);
    outline-offset: 4px;
}

/* Éditeur Gutenberg : volet dans le flux normal pour l'édition */
.block-editor-block-list__layout .team-card {
    cursor: default;
}

.block-editor-block-list__layout .team-card .volet {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    width: auto !important;
    max-width: none !important;
    flex-basis: auto !important;
}
/* ==========================================Ò=Ò
   Actu — Cards
   ============================================ */

   .kt-blocks-post-grid-item{
    position:relative;
   }
   .kt-blocks-post-grid-item .kt-blocks-category-pretext{
    display:none;
   }
   .kt-blocks-post-grid-item .kt-blocks-categories a{
    text-decoration:none;
    background:var(--col_4);
    color:var(--col_2);
    border-radius:4rem;
    padding:3px 10px;
    border:solid 1px var(--col_2);
   }
  /*.kt-blocks-post-grid-item .kt-blocks-categories a ~ a{
    display:none;
  }*/
   .kt-blocks-post-grid-item .kt-blocks-post-grid-item-inner, .kt-blocks-post-grid-item .kt-blocks-post-grid-item-inner header {
    position:static;
   }
   .kt-blocks-post-grid-item .kt-blocks-post-grid-item-inner header .kt-blocks-post-top-meta{
    position:absolute;
    top:2rem;
    left:1rem;
   }

.wp-block-kadence-query .wp-block-kadence-query-card .kb-query-grid-wrap *{
	text-decoration:none;
}

   /* ─── CB Carousel : flèches rondes 78px ─────────────────────────── */

.wp-block-cb-carousel-v2:not(.papir-carousel-peek) {
  position: relative;
  padding-inline: 94px !important; /* 78px bouton + 16px gap */
  max-width: 1250px;
  margin:auto;
}

.wp-block-cb-carousel-v2 .swiper {
  overflow: hidden;
}

.wp-block-cb-carousel-v2 .cb-button-prev,
.wp-block-cb-carousel-v2 .cb-button-next {
  width: 64px !important;
  height: 64px !important;
  border-radius: 50% !important;
  background-color: var(--wp--preset--color--kb-palette-4) !important;
  color: var(--wp--preset--color--kb-palette-2) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  margin-top: 0;
  transition: opacity 0.2s ease;
}

.cb-button-prev {
  left: 0;
}

.cb-button-next {
  right: 0;
}

.wp-block-cb-carousel-v2 .cb-button-prev::after,
.wp-block-cb-carousel-v2 .cb-button-next::after {
  font-size: 16px !important;
  color: var(--wp--preset--color--kb-palette-2) !important;
}

.cb-button-prev.swiper-button-disabled,
.cb-button-next.swiper-button-disabled {
  opacity: 0.35;
  pointer-events: none;
}