/*
Theme Name: UpWP FSE
Author:  
Author URI: 
Theme URI: 
Tags: full-site-editing
Text Domain: upwp-fse
Requires at least: 5.8
Requires PHP: 7.4
Tested up to: 5.9
Version: 1.0.0

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

All files, unless otherwise stated, are released under the GNU General Public
License version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html)

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned
with others.
*/


/* =============================================================================
   SOMMAIRE
   =============================================================================

   01. FONDATIONS GLOBALES
   02. EN-TÊTE ET NAVIGATION
   03. COMPOSANTS GLOBAUX
   04. PAGE — ACCUEIL
   05. PAGE — LA FBIA
   06. PAGE — ÉCOLES
   07. PAGE — ARCHIVE SPECTACLES
   08. PAGE — FORMATIONS
   09. PAGES ENFANTS — FORMATIONS
   10. FORMULAIRE NINJA FORMS N° 2
   11. PAGE — CONTACT
   12. PIED DE PAGE
   13. CORRECTIF FINAL — MENU MOBILE
*/








/* =============================================================================
   01. FONDATIONS GLOBALES
   ============================================================================= */


/* -----------------------------------------------------------------------------
   01.1 — Polices
   ----------------------------------------------------------------------------- */

@font-face {
    font-family: 'Open Sans';
    src: url('./fonts/OpenSans-VariableFont_wdth,wght.woff2') format('woff2');
    font-weight: 300 800;
    font-stretch: 75% 100%;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Passion One';
    src: url('./fonts/PassionOne-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}



/* -----------------------------------------------------------------------------
   01.2 — Base et utilitaires d’affichage
   ----------------------------------------------------------------------------- */

html {
    overflow-x: hidden;
}

*, ::after, ::before {
    box-sizing: border-box;
}

.mobileonly,
.hide {
    display: none;
}








/* =============================================================================
   02. EN-TÊTE ET NAVIGATION
   ============================================================================= */


/* -----------------------------------------------------------------------------
   02.1 — En-tête principal
   ----------------------------------------------------------------------------- */

.fbia-hero {
  position: relative;
}

.fbia-hero-breadcrumb {
  position: absolute;
  z-index: 2;

  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0 !important;
  box-sizing: border-box;
}

.fbia-hero-breadcrumb .wp-block-breadcrumbs ol {
  justify-content: center;
}
.wp-block-breadcrumbs span,
.wp-block-breadcrumbs li:not(:last-child):after {
	color: #fff!important;
}



/* 02.1.1 — Élément actif du menu principal
   -------------------------------------------------------------------------- */

.wp-block-navigation
.current-menu-item
> .wp-block-navigation-item__content,
.wp-block-navigation
.wp-block-navigation-item__content[aria-current="page"] {
    text-decoration-line: underline !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 7px !important;
}



/* 02.1.2 — Navigation active : archives et fiches Spectacles
   -------------------------------------------------------------------------- */

body.post-type-archive-spectacle
.fbia-overlap-header
.wp-block-navigation-item__content[href*="/spectacles"]::after,
body.single-spectacle
.fbia-overlap-header
.wp-block-navigation-item__content[href*="/spectacles"]::after {
    opacity: 1;
    transform: scaleX(1);
}

.wp-block-navigation
.wp-block-navigation-item__content:hover {
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
}




/* -----------------------------------------------------------------------------
   02.2 — Soulignement animé de la navigation
   ----------------------------------------------------------------------------- */

.fbia-overlap-header
.wp-block-navigation-item__content {
    position: relative;
    text-decoration: none !important;
}

/* Ligne cachée */

.fbia-overlap-header
.wp-block-navigation-item__content::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: -7px;
    left: 0;

    height: 1px;

    background-color: currentColor;
    border-radius: 100px;

    opacity: 0;
    transform: scaleX(0);
    transform-origin: center;

    transition:
        transform 240ms cubic-bezier(0.22, 1, 0.36, 1),
        opacity 180ms ease;
}

/* Survol et navigation au clavier */

.fbia-overlap-header
.wp-block-navigation-item__content:hover::after,
.fbia-overlap-header
.wp-block-navigation-item__content:focus-visible::after {
    opacity: 0.75;
    transform: scaleX(1);
}

/* Page active */

.fbia-overlap-header
.current-menu-item
> .wp-block-navigation-item__content::after,
.fbia-overlap-header
.wp-block-navigation-item__content[aria-current="page"]::after {
    opacity: 1;
    transform: scaleX(1);
}

/* Petit déplacement du texte au survol */

.fbia-overlap-header
.wp-block-navigation-item__content
.wp-block-navigation-item__label {
    display: inline-block;
    transition: transform 200ms ease;
}

.fbia-overlap-header
.wp-block-navigation-item__content:hover
.wp-block-navigation-item__label {
    transform: translateY(-2px);
}

/* Focus clavier clairement visible */

.fbia-overlap-header
.wp-block-navigation-item__content:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 8px;
    border-radius: 4px;
}





/* -----------------------------------------------------------------------------
   02.3 — Menu mobile
   ----------------------------------------------------------------------------- */

.fbia-mobile-menu {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 100dvh;
	padding: 24px !important;

	background-color:
		var(--wp--preset--color--fbia-pink) !important;
	color: var(--wp--preset--color--white);
}


/* Logo et fermeture */

.fbia-mobile-menu-top {
	display: flex !important;
	align-items: center;
	justify-content: space-between;

	width: 100%;
	margin: 0 0 48px !important;
}

.fbia-mobile-menu-top
	.wp-block-site-logo img {
	width: auto;
	max-width: 180px;
	height: auto;
}

.fbia-mobile-menu
	.wp-block-navigation-overlay-close {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 52px;
	height: 52px;
	padding: 0;

	border: 2px solid currentColor;
	border-radius: 14px;
	background-color:
		var(--wp--preset--color--fbia-black);
	color: var(--wp--preset--color--white);
}


/* Navigation verticale */

.fbia-mobile-menu .wp-block-navigation {
	width: 100%;
}

.fbia-mobile-menu
	.wp-block-navigation__container {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 0 !important;

	width: 100%;
}

.fbia-mobile-menu
	.wp-block-navigation-item {
	width: 100%;
}

.fbia-mobile-menu
	.wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 14px 0;

	border-bottom: 1px solid rgb(255 255 255 / 35%);
	color: var(--wp--preset--color--white) !important;

	font-family:
		var(--wp--preset--font-family--open-sans);
	font-size: clamp(24px, 7vw, 38px);
	font-weight: 800;
	line-height: 1.1;
	text-decoration: none;
	text-transform: uppercase;
}

.fbia-mobile-menu
	.wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--fbia-black) !important;
}


/* Boutons du menu */

.fbia-mobile-menu-actions {
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	gap: 14px;

	width: 100%;
	margin-top: auto !important;
	padding-top: 42px !important;
}

.fbia-mobile-menu-actions .stk-button {
	display: flex;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	border-radius: 18px !important;
}






/* -----------------------------------------------------------------------------
   02.4 — Superposition de l’en-tête et du contenu
   ----------------------------------------------------------------------------- */

/* Le fond rose du header occupe toute la largeur */

.fbia-overlap-header {
    position: relative;
    z-index: 1;

    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;

    /*
     * Ajoute une zone rose sous le menu.
     * Le contenu blanc viendra se poser par-dessus.
     */
    padding-bottom:
        calc(var(--wp--preset--spacing--30) + 38px)
        !important;
}

/* Contenu blanc superposé */

.fbia-overlap-content {
    position: relative;
    z-index: 2;

    width: 100%;
    margin-top: -38px !important;
    overflow: hidden;

    background-color: var(
        --wp--preset--color--white,
        #fff
    );
    border-radius: 42px 42px 0 0;
}

/* Mobile */

@media only screen and (max-width: 768px) {
    .fbia-overlap-header {
        padding-bottom:
            calc(var(--wp--preset--spacing--30) + 26px)
            !important;
    }

    .fbia-overlap-content {
        margin-top: -26px !important;
        border-radius: 28px 28px 0 0;
    }
}









/* =============================================================================
   03. COMPOSANTS GLOBAUX
   ============================================================================= */


/* -----------------------------------------------------------------------------
   03.1 — Couleurs et boutons utilitaires
   ----------------------------------------------------------------------------- */

/* Classes observées dans l'ancien site Oxygen */

.blue-bg {
    background-color: var(--wp--preset--color--fbia-blue);
}

.black-bg {
    background-color: var(--wp--preset--color--fbia-black);
}

.pink-bg {
    background-color: var(--wp--preset--color--fbia-pink);
}

.purple-bg {
    background-color: var(--wp--preset--color--fbia-purple);
}

.light-grey-bg {
    background-color: var(--wp--preset--color--fbia-light-grey);
}

.white-link a {
    color: var(--wp--preset--color--white);
}

.standard-button {
    border-radius: 10px;
    padding: 10px 15px;
    color: var(--wp--preset--color--white);
}










/* =============================================================================
   04. PAGE — ACCUEIL
   ============================================================================= */




/* -----------------------------------------------------------------------------
   04.1 — Hero
   ----------------------------------------------------------------------------- */

.fbia-hero-section {
    position: relative;
    min-height: auto;
    max-height: none;
    overflow: visible;
}

/* Image hero */
.fbia-hero-section .stk-ebf01f9 {
    height: clamp(460px, 58vh, 720px);
    margin-bottom: 0 !important;
}

.fbia-hero-section .stk-ebf01f9 figure,
.fbia-hero-section .stk-ebf01f9 .stk-img-wrapper,
.fbia-hero-section .stk-ebf01f9 picture,
.fbia-hero-section .stk-ebf01f9 img {
    width: 100%;
    height: 100%;
    display: block;
}

.fbia-hero-section .stk-ebf01f9 img {
    object-fit: cover;
    object-position: center center;
}

/* Bloc blanc titre + bouton */
.fbia-hero-section .fbia-hero-intro {
    position: relative;
    z-index: 10;
    width: min(75vw, 1080px);
    margin-top: clamp(-190px, -13vw, -120px) !important;
    padding: clamp(28px, 3vw, 52px) !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* Titre */
.fbia-hero-section .fbia-hero-intro h1 {
    font-size: clamp(40px, 4.5vw, 82px) !important;
    line-height: 0.95 !important;
    margin-top: 0 !important;
    margin-bottom: clamp(20px, 2vw, 30px) !important;
}

/* Bouton */
.fbia-hero-section .fbia-hero-intro .stk-block-button-group {
    margin-top: 0 !important;
}

/* Nettoyage des marges internes Gutenberg / Stackable */
.fbia-hero-section .fbia-hero-intro .stk-block-heading,
.fbia-hero-section .fbia-hero-intro .stk-block-button-group {
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* ---------------------------
   ÉCRANS PEU HAUTS / LAPTOP
 --------------------------- */

@media (max-height: 780px) and (min-width: 900px) {
    .fbia-hero-section .stk-ebf01f9 {
        height: 50vh;
    }

    .fbia-hero-section .fbia-hero-intro {
        width: min(72vw, 1080px);
        margin-top: -120px !important;
        padding: 28px 42px 34px !important;
    }

    .fbia-hero-section .fbia-hero-intro h1 {
        font-size: clamp(38px, 4.5vw, 68px) !important;
        margin-bottom: 20px !important;
    }
}

/* ---------------------------
   GRANDS ÉCRANS
 --------------------------- */

@media (min-height: 950px) and (min-width: 1200px) {
    .fbia-hero-section .stk-ebf01f9 {
        height: clamp(560px, 60vh, 760px);
    }

    .fbia-hero-section .fbia-hero-intro {
        margin-top: clamp(-200px, -12vw, -140px) !important;
    }
}

/* ---------------------------
   TABLETTE / MOBILE
 --------------------------- */

@media (max-width: 900px) {
    .fbia-hero-section .stk-ebf01f9 {
        height: clamp(320px, 52vh, 520px);
    }

    .fbia-hero-section .fbia-hero-intro {
        width: auto;
        max-width: none;
        margin-top: -115px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 32px 24px !important;
        border-top-right-radius: 32px !important;
    }

    .fbia-hero-section .fbia-hero-intro h1 {
        font-size: clamp(40px, 11vw, 64px) !important;
        line-height: 0.95 !important;
    }
}

@media (max-width: 600px) {
    .fbia-hero-section .stk-ebf01f9 {
        height: 340px;
    }

    .fbia-hero-section .fbia-hero-intro {
        margin-top: -115px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 28px 20px !important;
    }

    .fbia-hero-section .fbia-hero-intro h1 {
        font-size: clamp(36px, 12vw, 52px) !important;
    }
}





/* -----------------------------------------------------------------------------
   04.2 — Dernières actualités et cartes de blog
   ----------------------------------------------------------------------------- */

.fbia-latest-news .wp-block-post-template {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 50px;
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.fbia-latest-news .wp-block-post {
    margin: 0;
}

.fbia-news-card {
    position: relative;
    padding: 0 !important;
    overflow: visible;
}

/* Image */

.fbia-news-card .wp-block-post-featured-image {
    margin: 0;
    border-radius: 40px;
    overflow: hidden;
}

.fbia-news-card .wp-block-post-featured-image img {
    display: block;
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 40px;
}

/* Category pill */

.fbia-news-card > .wp-block-group:first-child {
    position: absolute;
    top: 20px;
    left: 28px;
    z-index: 2;
    width: auto;
    padding: 0 !important;
    border-radius: 8px !important;
    background-color: var(--wp--preset--color--fbia-blue) !important;
}

.fbia-news-card .wp-block-post-terms {
    margin: 0;
    padding: 5px 10px;
    color: var(--wp--preset--color--white);
    font-family: var(--wp--preset--font-family--open-sans);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.1;
}

.fbia-news-card .wp-block-post-terms a {
    color: var(--wp--preset--color--white);
    text-decoration: none;
}

/* Black title block */

.fbia-news-card-content {
    position: relative;
    z-index: 2;
    width: 80%;
    min-height: 155px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: -65px !important;
    margin-block-start: -65px !important;

    padding: 24px 20px !important;
    border-radius: 40px !important;
    background-color: var(--wp--preset--color--fbia-black) !important;
    color: var(--wp--preset--color--white);
}

.fbia-news-card-content .stk-block-heading {
    margin-bottom: 0 !important;
}

.fbia-news-card-content .stk-block-heading__text {
    margin: 0;
    color: var(--wp--preset--color--white) !important;
    font-family: var(--wp--preset--font-family--open-sans);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.15;
    text-align: left !important;
    text-transform: uppercase;
}

/* Hover effects */

.fbia-news-card {
    cursor: pointer;
    transition: transform 180ms ease;
}

.fbia-news-card:hover {
    transform: translateY(-6px);
}

/* Image zoom */
.fbia-news-card .wp-block-post-featured-image img {
    transition: transform 260ms ease, filter 260ms ease;
}

.fbia-news-card:hover .wp-block-post-featured-image img {
    transform: scale(1.05);
    filter: brightness(0.92) saturate(1.08);
}

/* Category badge */
.fbia-news-card > .wp-block-group:first-child {
    transition: transform 180ms ease, background-color 180ms ease;
}

.fbia-news-card > .wp-block-group:first-child:hover {
    transform: translateY(-3px);
    background-color: var(--wp--preset--color--fbia-pink) !important;
}

/* Black title box */
.fbia-news-card-content {
    transition: transform 220ms ease, background-color 220ms ease;
}

.fbia-news-card:hover .fbia-news-card-content {
    transform: translateY(-6px);
    background-color: var(--wp--preset--color--fbia-pink) !important;
}

/* Title text */
.fbia-news-card-content .stk-block-heading__text {
    transition: transform 220ms ease, color 220ms ease;
}

.fbia-news-card:hover .fbia-news-card-content .stk-block-heading__text {
    transform: scale(1.03);
    color: var(--wp--preset--color--white) !important;
}

.fbia-news-card a,
.fbia-news-card img,
.fbia-news-card-content {
    cursor: pointer;
}

/* Responsive */

@media only screen and (max-width: 1024px) {
    .fbia-latest-news .wp-block-post-template {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media only screen and (max-width: 768px) {
    .fbia-latest-news .wp-block-post-template {
        grid-template-columns: 1fr;
    }

    .fbia-news-card .wp-block-post-featured-image img {
        height: 280px;
    }

    .fbia-news-card-content {
        width: 82%;
    }
}




/* -----------------------------------------------------------------------------
   04.3 — Filtres des catégories d’actualités
   ----------------------------------------------------------------------------- */

.fbia-news-filters {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 18px 20px !important;
    margin: 0 0 30px !important;
}

/* Neutralise les balises ajoutées automatiquement par WordPress */
.fbia-news-filters p {
    display: contents !important;
}

.fbia-news-filters br {
    display: none !important;
}

.fbia-news-filters button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    width: auto !important;
    min-height: 48px;
    margin: 0 !important;
    padding: 10px 14px !important;

    appearance: none;
    background-color: transparent !important;
    color: var(--wp--preset--color--fbia-black) !important;
    border: 2px solid var(--wp--preset--color--fbia-pink) !important;
    border-radius: 18px !important;
    box-shadow: none !important;

    font-family: var(--wp--preset--font-family--open-sans);
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
}

.fbia-news-filters button:hover,
.fbia-news-filters button:focus-visible,
.fbia-news-filters button.is-active {
    background-color: var(--wp--preset--color--fbia-pink) !important;
    color: var(--wp--preset--color--white) !important;
}

@media only screen and (max-width: 768px) {
    .fbia-news-filters {
        gap: 10px !important;
    }

    .fbia-news-filters button {
        min-height: 42px;
        padding: 9px 12px !important;
        font-size: 14px !important;
    }
}





/* -----------------------------------------------------------------------------
   04.4 — Section Membres
   ----------------------------------------------------------------------------- */

.fbia-members-section {
    position: relative;
    overflow: visible !important;
    --fbia-members-gap: clamp(10px, 1vw, 18px);
    --fbia-members-image-size: clamp(300px, 24vw, 420px);
}

/* Rangée principale Stackable uniquement */
.fbia-members-section > .wp-block-stackable-columns {
    overflow: visible !important;
}

.fbia-members-section > .wp-block-stackable-columns > .stk-row {
    position: relative !important;
    isolation: isolate;
    align-items: stretch !important;
    gap: var(--fbia-members-gap) !important;
    overflow: visible !important;
}

/* =========================
   COLONNES
========================= */

.fbia-members-card-left {
    flex: 0 0 calc(58% - var(--fbia-members-gap)) !important;
    max-width: calc(58% - var(--fbia-members-gap)) !important;
}

.fbia-members-image-col {
    flex: 0 0 0 !important;
    width: 0 !important;
    max-width: 0 !important;
}

.fbia-members-card-right {
    flex: 0 0 calc(42% - var(--fbia-members-gap)) !important;
    max-width: calc(42% - var(--fbia-members-gap)) !important;
}

/* =========================
   CARDS
========================= */

.fbia-members-card {
    position: relative !important;
    min-height: clamp(520px, 42vw, 680px);
    color: #fff;
    overflow: visible !important;
    transform: none !important;
    z-index: 1 !important;
}

.fbia-members-card-left {
    background: var(--wp--preset--color--fbia-purple) !important;
    border-radius: 36px 80px 36px 36px !important;
}

.fbia-members-card-right {
    background: var(--wp--preset--color--fbia-blue) !important;
    border-radius: 80px 36px 36px 36px !important;
}

/* Stackable ne doit pas couper ce qui dépasse */
.fbia-members-card > .stk-column-wrapper,
.fbia-members-card .stk-block-content,
.fbia-members-card .stk-inner-blocks {
    overflow: visible !important;
}

/* Layout interne des cards */
.fbia-members-card > .stk-column-wrapper {
    height: 100% !important;
}


/* =========================
   LARGEUR DES TEXTES
   Sans toucher aux paddings des cards
========================= */

/* Carte gauche : le texte ne passe pas sous l’image */
.fbia-members-card-left .stk-block-heading,
.fbia-members-card-left .stk-block-text,
.fbia-members-card-left ul {
    max-width: min(620px, calc(100% - (var(--fbia-members-image-size) * 0.42))) !important;
}

/* Carte droite : le texte démarre après l’image */
.fbia-members-card-right .stk-block-heading,
.fbia-members-card-right .stk-block-text {
    max-width: 420px !important;
    margin-left: clamp(120px, 10vw, 200px) !important;
}

/* =========================
   TEXTE
========================= */

.fbia-members-section h2 {
    color: #fff !important;
    margin-top: 0 !important;
    margin-bottom: clamp(24px, 3vw, 40px) !important;
    font-size: clamp(42px, 4.2vw, 70px) !important;
    line-height: 1 !important;
    text-transform: uppercase;
}

.fbia-members-card-right h2 {
    font-size: clamp(42px, 3.8vw, 64px) !important;
}

.fbia-members-section p,
.fbia-members-section li {
    color: #fff !important;
    font-family: var(--wp--preset--font-family--open-sans);
    font-size: clamp(16px, 1.15vw, 19px);
    line-height: 1.55;
}

.fbia-members-section ul {
    margin-top: 22px;
    padding-left: 1.4em;
}

.fbia-members-section li + li {
    margin-top: 8px;
}

/* =========================
   IMAGE CENTRALE
========================= */

.fbia-members-image-col {
    position: relative !important;
    z-index: 20 !important;
    overflow: visible !important;
    pointer-events: none;
}

.fbia-members-image-col > .stk-column-wrapper {
    position: absolute !important;
    top: 50%;
    left: 50%;
    width: var(--fbia-members-image-size) !important;
    transform: translate(-50%, -50%) !important;
    z-index: 30 !important;
    overflow: visible !important;
}

.stk-block.stk-block-column.stk-column>.stk-column-wrapper {
	margin: unset !important;
}

.fbia-members-image-col .stk-block-image {
    position: relative !important;
    z-index: 40 !important;
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 1;
    margin: 0 !important;
    border: clamp(14px, 1.3vw, 22px) solid #fff;
    border-radius: 50%;
    overflow: hidden !important;
    background: #fff;
}

.fbia-members-image-col figure,
.fbia-members-image-col .stk-img-wrapper,
.fbia-members-image-col picture,
.fbia-members-image-col img {
    width: 100% !important;
    height: 100% !important;
    display: block;
}

.fbia-members-image-col img {
    object-fit: cover !important;
}



/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1100px) {
    .fbia-members-section {
        --fbia-members-image-size: min(320px, 72vw);
    }

    .fbia-members-section > .wp-block-stackable-columns > .stk-row {
        flex-direction: column !important;
        gap: 0 !important;
    }

    .fbia-members-card-left,
    .fbia-members-card-right,
    .fbia-members-image-col {
        flex: initial !important;
        width: auto !important;
        max-width: none !important;
    }

    .fbia-members-card {
        min-height: auto;
        border-radius: 36px !important;
    }

    .fbia-members-card-left .stk-block-heading,
    .fbia-members-card-left .stk-block-text,
    .fbia-members-card-left ul,
    .fbia-members-card-right .stk-block-heading,
    .fbia-members-card-right .stk-block-text {
        max-width: none !important;
        margin-left: 0 !important;
    }

    .fbia-members-image-col {
        z-index: 20;
        margin: -70px auto !important;
        pointer-events: none;
    }

    .fbia-members-image-col > .stk-column-wrapper {
        position: relative !important;
        top: auto;
        left: auto;
        width: var(--fbia-members-image-size) !important;
        transform: none !important;
    }
}

@media (max-width: 700px) {
    .fbia-members-section {
        padding-inline: 20px !important;
        --fbia-members-image-size: min(260px, 76vw);
    }

    .fbia-members-section h2,
    .fbia-members-card-right h2 {
        font-size: clamp(36px, 13vw, 56px) !important;
    }

    .fbia-members-image-col {
        margin: -56px auto !important;
    }

    .fbia-members-image-col .stk-block-image {
        border-width: 14px;
    }

    .fbia-members-card-left .stk-892a79a,
    .fbia-members-card-right .stk-8b21459 {
        transform: translateY(50%) !important;
    }
}





/* -----------------------------------------------------------------------------
   04.5 — Spectacles
   ----------------------------------------------------------------------------- */

/* Grille générale */

.fbia-spectacles .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 42px;
	margin: 0;
	padding-left: 0;
	list-style: none;
}

.fbia-spectacles .wp-block-post {
	display: flex;
	min-width: 0;
	margin: 0;
}


/* Carte */

.fbia-spectacle-card {
	position: relative;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	align-content: start;
	align-items: center;
	column-gap: 24px;
	width: 100%;
	height: 100%;
	padding: 0 !important;
}

.fbia-spectacle-card > * {
	max-width: none !important;
}


/* Date superposée à l’image */

.fbia-spectacle-date {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 4;

	width: max-content !important;
	max-width: calc(100% - 36px);
	margin: 0 !important;
	padding: 9px 18px !important;

	border-radius: 999px !important;
	background: var(--wp--preset--color--fbia-purple) !important;
	box-shadow: 0 8px 20px rgb(0 0 0 / 14%);
	color: var(--wp--preset--color--white);
}

.fbia-spectacle-date > .wp-block-group {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
}

.fbia-spectacle-date .stk-block-icon {
	flex: 0 0 auto;
	margin: 0 !important;
}

.fbia-spectacle-date .stk--svg-wrapper svg {
	width: 22px !important;
	height: 22px !important;
}

.fbia-spectacle-date .stk--inner-svg path {
	fill: currentColor !important;
}

.fbia-spectacle-date .stk-block-text {
	margin: 0 !important;
}

.fbia-spectacle-date .stk-block-text__text {
	margin: 0 !important;
	color: var(--wp--preset--color--white) !important;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}


/* Groupe image + titre */

.fbia-spectacle-media {
	grid-column: 1 / -1;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

.fbia-spectacle-media .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
	border-radius: 40px;
	background-color: #eee;
}

.fbia-spectacle-media .wp-block-post-featured-image a {
	display: block;
}

.fbia-spectacle-media .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 40px;
	transition:
		transform 280ms ease,
		filter 280ms ease;
}


/* Bloc noir contenant le titre */

.fbia-spectacle-card-content {
	position: relative;
	z-index: 3;

	display: flex !important;
	align-items: center;
	justify-content: center;

	width: 82%;
	min-height: 155px;
	margin: -62px auto 0 !important;
	padding: 28px 28px !important;

	border-radius: 40px !important;
	background-color: var(--wp--preset--color--fbia-black) !important;
	box-shadow: 0 12px 30px rgb(0 0 0 / 12%);
	color: var(--wp--preset--color--white);

	transition:
		transform 220ms ease,
		background-color 220ms ease;
}

.fbia-spectacle-card-content .wp-block-post-title {
	width: 100%;
	margin: 0 !important;

	font-family: var(--wp--preset--font-family--open-sans);
	font-size: clamp(20px, 2vw, 28px) !important;
	font-weight: 800;
	line-height: 1.08;
	text-align: left;
	text-transform: uppercase;
}

.fbia-spectacle-card-content .wp-block-post-title a {
	display: -webkit-box;
	overflow: hidden;
	color: var(--wp--preset--color--white) !important;
	text-decoration: none;

	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}


/* Lieu */

.fbia-spectacle-location {
	grid-column: 1;
	display: flex !important;
	align-items: center;
	align-self: center;
	gap: 10px;

	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;

	color: var(--wp--preset--color--fbia-pink);
}

.fbia-spectacle-location .stk-block-icon {
	flex: 0 0 auto;
	margin: 0 !important;
}

.fbia-spectacle-location .stk--inner-svg path {
	fill: currentColor !important;
}

.fbia-spectacle-location .stk-block-text {
	min-width: 0;
	margin: 0 !important;
}

.fbia-spectacle-location .stk-block-text__text {
	margin: 0 !important;
	color: var(--wp--preset--color--fbia-pink) !important;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.25;
}


/* Bouton Réserver */

.fbia-spectacle-actions {
	grid-column: 2;
	align-self: center;
	margin: 0 !important;
}

.fbia-spectacle-actions .stk-button-group {
	justify-content: flex-end;
}

.fbia-spectacle-actions .stk-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;

	min-height: 52px;
	padding: 12px 22px !important;

	border: 2px solid var(--wp--preset--color--fbia-pink) !important;
	border-radius: 18px !important;
	background: var(--wp--preset--color--fbia-pink) !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--white) !important;
	text-decoration: none;

	transition:
		transform 180ms ease,
		background-color 180ms ease,
		color 180ms ease;
}

.fbia-spectacle-actions .stk-button__inner-text {
	color: inherit !important;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 17px;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

.fbia-spectacle-actions .stk--svg-wrapper svg {
	width: 20px !important;
	height: 20px !important;
}

.fbia-spectacle-actions .stk--inner-svg path {
	fill: currentColor !important;
}


/* Interactions */

.fbia-spectacle-card {
	transition: transform 200ms ease;
}

.fbia-spectacle-card:hover {
	transform: translateY(-6px);
}

.fbia-spectacle-card:hover
	.fbia-spectacle-media
	.wp-block-post-featured-image img {
	transform: scale(1.045);
	filter: brightness(0.94) saturate(1.06);
}

.fbia-spectacle-card:hover
	.fbia-spectacle-card-content {
	transform: translateY(-4px);
	background-color: var(--wp--preset--color--fbia-pink) !important;
}

.fbia-spectacle-actions .stk-button:hover {
	transform: translateY(-3px);
	background: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--fbia-pink) !important;
}

.fbia-spectacle-container {
	width: 100%
}


/* Tablette */

@media only screen and (max-width: 1024px) {
	.fbia-spectacles .wp-block-post-template {
		gap: 30px;
	}

	.fbia-spectacle-card-content {
		width: 86%;
		min-height: 145px;
		padding: 24px !important;
	}

	.fbia-spectacle-card-content .wp-block-post-title {
		font-size: 21px !important;
	}
}


/* Mobile */

@media only screen and (max-width: 768px) {
	.fbia-spectacles .wp-block-post-template {
		grid-template-columns: 1fr;
		gap: 46px;
	}

	.fbia-spectacle-card-content {
		width: 84%;
	}
}


/* Petit mobile */

@media only screen and (max-width: 480px) {
	.fbia-spectacle-card {
		grid-template-columns: 1fr;
	}

	.fbia-spectacle-date {
		top: 12px;
		left: 12px;
		max-width: calc(100% - 24px);
		padding: 8px 13px !important;
	}

	.fbia-spectacle-date .stk-block-text__text {
		font-size: 14px;
		white-space: normal;
	}

	.fbia-spectacle-card-content {
		width: 88%;
		min-height: 125px;
		margin-top: -42px !important;
		padding: 22px !important;
		border-radius: 30px !important;
	}

	.fbia-spectacle-card-content .wp-block-post-title {
		font-size: 19px !important;
	}

	.fbia-spectacle-location,
	.fbia-spectacle-actions {
		grid-column: 1;
	}

	.fbia-spectacle-location,
	.fbia-spectacle-actions {
		margin-top: 0 !important;
	}

	.fbia-spectacle-actions .stk-button-group {
		justify-content: flex-start;
	}
}










/* =============================================================================
   05. PAGE — LA FBIA
   ============================================================================= */

.commissions-image {
  position: relative;
}

.commissions-image > .stk-column-wrapper {
  position: absolute;
  inset: 0;
}

.commissions-image .stk-inner-blocks,
.commissions-image .wp-block-stackable-image,
.commissions-image figure,
.commissions-image .stk-img-wrapper,
.commissions-image picture {
  width: 100%;
  height: 100% !important;
}

.commissions-image picture {
  display: block;
}

.commissions-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.team-grid .stk-img-wrapper {
  overflow: hidden !important;
  border-radius: 50% !important;
}

.team-grid .stk-img-wrapper picture {
  display: block;
  transition: transform 0.35s ease;
}

.team-grid .stk-img-wrapper img {
  transform: none !important;
}

@media (hover: hover) {
  .team-grid .stk-block-team-member:hover
  .stk-img-wrapper picture {
    transform: scale(1.04);
  }
}


@media (min-width: 1283px) {
  .association {
    display: none !important;
  }
}

@media (max-width: 1282px) {
	.fbia-members-section {
display: none!important;
}

}










/* =============================================================================
   06. PAGE — ÉCOLES
   ============================================================================= */
/* Aligne les boutons au bas des cartes */

.fbia-info-card .wp-block-stackable-button-group {
    margin-top: auto !important;
    padding-top: 24px;
}

.project-example-card {
    margin-top: -120px !important;
    width: 90% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    position: relative !important;
    z-index: 10 !important;
}










/* =============================================================================
   07. PAGE — ARCHIVE SPECTACLES
   ============================================================================= */




/* -----------------------------------------------------------------------------
   07.1 — Cartes des catégories de spectacles
   ----------------------------------------------------------------------------- */

/* Grille */

.fbia-term-cards .wp-block-term-template {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px !important;

    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.fbia-term-cards .wp-block-term {
    min-width: 0;
    margin: 0 !important;
}

/* Carte complète */

.fbia-term-cards .fbia-term-card {
    display: flex;
    flex-direction: column;

    height: 100%;
    min-height: 480px;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;

    background-color: var(--wp--preset--color--white, #fff);
    border: 2px solid var(--wp--preset--color--fbia-black, #1d1d1d);
    border-radius: 36px;

    transition:
        transform 180ms ease,
        box-shadow 180ms ease;
}

.fbia-term-cards .fbia-term-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 35px rgba(0, 0, 0, 0.12);
}

/* En-tête coloré */

.fbia-term-cards .fbia-term-card__header {
    display: flex;
    align-items: center;

    width: 100%;
    min-height: 180px;
    margin: 0 !important;
    padding: 32px 40px !important;

    background-color: var(--wp--preset--color--fbia-black, #1d1d1d);
}

/* Neutralise la largeur contrainte des groupes Gutenberg */

.fbia-term-cards .fbia-term-card__header > *,
.fbia-term-cards .fbia-term-card__body > * {
    width: 100%;
    max-width: none !important;
}

/* Alternance des couleurs */

.fbia-term-cards
.wp-block-term:nth-child(3n + 2)
.fbia-term-card__header {
    background-color: var(--wp--preset--color--fbia-pink, #ea2b8c);
}

.fbia-term-cards
.wp-block-term:nth-child(3n)
.fbia-term-card__header {
    background-color: var(--wp--preset--color--fbia-purple, #c653bf);
}

/* Nom de la catégorie */

.fbia-term-cards .fbia-term-card__title {
    margin: 0 !important;

    font-family: var(--wp--preset--font-family--open-sans);
    font-size: clamp(28px, 3vw, 44px);
    font-weight: 800;
    line-height: 1.05;
    text-transform: uppercase;
}

.fbia-term-cards .fbia-term-card__title a {
    color: var(--wp--preset--color--white, #fff) !important;
    text-decoration: none !important;
}

/* Corps de la carte */

.fbia-term-cards .fbia-term-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;

    width: 100%;
    margin: 0 !important;
    padding: 32px 40px 40px !important;

    background-color: var(--wp--preset--color--white, #fff);
}

/* Description dynamique */

.fbia-term-cards .fbia-term-card__description,
.fbia-term-cards .wp-block-term-description {
    margin: 0 0 28px !important;

    color: var(--wp--preset--color--fbia-black, #1d1d1d);
    font-family: var(--wp--preset--font-family--open-sans);
    font-size: 18px;
    line-height: 1.55;
}

.fbia-term-cards .wp-block-term-description p {
    margin: 0;
}

/* Bouton Stackable */

.fbia-term-cards .fbia-term-card__button {
    align-self: flex-start;

    width: auto !important;
    max-width: none !important;
    margin-top: auto !important;
    margin-bottom: 0 !important;
}

/* Responsive */

@media only screen and (max-width: 768px) {
    .fbia-term-cards .wp-block-term-template {
        grid-template-columns: 1fr;
        gap: 20px !important;
    }

    .fbia-term-cards .fbia-term-card {
        min-height: 0;
        border-radius: 28px;
    }

    .fbia-term-cards .fbia-term-card__header {
        min-height: 130px;
        padding: 26px !important;
    }

    .fbia-term-cards .fbia-term-card__body {
        min-height: 240px;
        padding: 26px !important;
    }

    .fbia-term-cards .fbia-term-card__description,
    .fbia-term-cards .wp-block-term-description {
        font-size: 16px;
    }
}










/* =============================================================================
   08. PAGE — FORMATIONS
   ============================================================================= */


/* -----------------------------------------------------------------------------
   08.1 — Cartes de formation de hauteur égale
   ----------------------------------------------------------------------------- */

/* Étire les deux colonnes d’une même rangée */

.fbia-training-grid > .stk-row {
    align-items: stretch !important;
    column-gap: 32px !important;
}

/* Transmet la hauteur disponible jusqu’à la carte */

.fbia-training-grid
> .stk-row
> .wp-block-stackable-column {
    display: flex !important;
    flex-direction: column;
}

.fbia-training-grid
> .stk-row
> .wp-block-stackable-column
> .stk-column-wrapper {
    display: flex !important;
    flex: 1;
    flex-direction: column;
    width: 100%;
}

.fbia-training-grid
> .stk-row
> .wp-block-stackable-column
> .stk-column-wrapper
> .stk-block-content {
    display: flex !important;
    flex: 1;
    flex-direction: column;
    width: 100%;
}

/* Carte grise */

.fbia-training-card {
    display: flex !important;
    flex: 1;
    flex-direction: column;
    
    width: 100%;
    height: 100%;
}


/* Réserve deux lignes pour tous les titres */

.fbia-training-card .stk-block-heading__text {
    min-height: 2.15em;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

/* Place le bouton en bas de la carte */

.fbia-training-card .wp-block-stackable-button-group {
    margin-top: auto !important;
    padding-top: 28px;
}

.fbia-training-tabs .stk-block-tabs__tab,
.fbia-training-tabs .stk-block-tab-labels__text,
.fbia-training-tabs .stk-block-tab-labels__text span {
    font-family: var(--wp--preset--font-family--passion-one) !important;
    font-size: clamp(17px, 1.5vw, 22px);
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
}

/* Sur mobile, la hauteur redevient naturelle */

@media only screen and (max-width: 768px) {
    .fbia-training-card {
        height: auto;
        min-height: 0;
    }

    .fbia-training-card .stk-block-heading__text {
        min-height: 0;
    }
	.fbia-training-grid > .stk-row {
        column-gap: 0 !important;
        row-gap: 24px !important;
    }
}










/* =============================================================================
   09. PAGES ENFANTS — FORMATIONS
   ============================================================================= */




/* -----------------------------------------------------------------------------
   09.1 — Cartes d’information
   ----------------------------------------------------------------------------- */

/*
 * Classes nécessaires :
 *
 * Groupe parent : fbia-info-section
 * Chaque bloc Columns : fbia-info-grid
 * Chaque bloc Icon Box : fbia-info-card
 */

/* Espacement général entre les différentes rangées */

.fbia-info-section {
    --fbia-info-gap: 32px;
}

/*
 * Neutralise l’espacement automatique que Gutenberg ajoute
 * entre les différents blocs Columns.
 */

.fbia-info-section > .fbia-info-grid {
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.fbia-info-section
> .fbia-info-grid
+ .fbia-info-grid {
    margin-top: var(--fbia-info-gap) !important;
}

/* Rangée de cartes */

.fbia-info-grid > .stk-row {
    display: flex !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: none !important;
    gap: var(--fbia-info-gap) !important;
}

/* Colonnes de même largeur */

.fbia-info-grid
> .stk-row
> .wp-block-stackable-column {
    display: flex !important;
    flex: 1 1 0 !important;
    flex-direction: column;

    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Étire le contenu interne de chaque colonne */

.fbia-info-grid
> .stk-row
> .wp-block-stackable-column
> .stk-column-wrapper {
    display: flex !important;
    flex: 1;
    flex-direction: column;

    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.fbia-info-grid
> .stk-row
> .wp-block-stackable-column
> .stk-column-wrapper
> .stk-block-content {
    display: flex !important;
    flex: 1;
    flex-direction: column;

    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Icon Box servant de carte */

.fbia-info-card {
    display: flex !important;
    flex: 1;

    width: 100% !important;
    max-width: none !important;
    height: 100%;
    margin: 0 !important;

    box-sizing: border-box;
}

.fbia-info-card
> .stk-block-icon-box__content {
    display: flex !important;
    flex: 1;
    flex-direction: column;

    width: 100% !important;
    max-width: none !important;
    height: 100%;
    margin: 0 !important;

    box-sizing: border-box;
}

/* ---------------------------
   Tablette et mobile
--------------------------- */

@media only screen and (max-width: 1024px) {
    /*
     * La même valeur est utilisée :
     * - entre les cartes d’un même Columns ;
     * - entre deux blocs Columns différents.
     */

    .fbia-info-section {
        --fbia-info-gap: 24px;
    }

    .fbia-info-grid > .stk-row {
        flex-direction: column !important;
        gap: var(--fbia-info-gap) !important;
    }

    .fbia-info-grid
    > .stk-row
    > .wp-block-stackable-column {
        flex: 0 0 100% !important;

        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    .fbia-info-card {
        width: 100% !important;
        height: auto;
        min-height: 0;
    }

    .fbia-info-card
    > .stk-block-icon-box__content {
        height: auto;
        min-height: 0;
    }
}










/* =============================================================================
   10. FORMULAIRE NINJA FORMS N° 2
   ============================================================================= */

.nf-form-fields-required {
    display: none;
}

#nf-form-2-cont {
    max-width: 960px;
    margin: 0 auto;
    padding: clamp(28px, 5vw, 56px);

    color: var(--wp--preset--color--fbia-black, #1d1d1d);
    background-color: var(
        --wp--preset--color--fbia-light-grey,
        #f1f1f1
    );
    border-radius: 40px;

    font-family: var(
        --wp--preset--font-family--open-sans,
        sans-serif
    );
}

/* Supprime le titre vide généré par Ninja Forms */

#nf-form-2-cont .nf-form-title:has(h3:empty) {
    display: none;
}

/* Grille des champs */

#nf-form-2-cont nf-fields-wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
}

#nf-form-2-cont nf-field {
    display: block;
    min-width: 0;
}

/* Champs qui doivent occuper toute la largeur */

#nf-form-2-cont nf-field:has(.listradio-container),
#nf-form-2-cont nf-field:has(.address-container),
#nf-form-2-cont nf-field:has(.listcountry-container),
#nf-form-2-cont nf-field:has(.listcheckbox-container),
#nf-form-2-cont nf-field:has(.listselect-container),
#nf-form-2-cont nf-field:has(.textarea-container),
#nf-form-2-cont nf-field:has(.submit-container) {
    grid-column: 1 / -1;
}

/* Espacement vertical */

#nf-form-2-cont .nf-field-container {
    margin-bottom: 24px !important;
}

/* Texte indiquant les champs obligatoires */

#nf-form-2-cont .nf-form-fields-required {
    margin-bottom: 28px;
    color: #555;
    font-size: 14px;
}

/* Labels */

#nf-form-2-cont .nf-field-label {
    margin-bottom: 8px !important;
}

#nf-form-2-cont .nf-field-label label,
#nf-form-2-cont .nf-field-label .nf-label-span {
    color: var(--wp--preset--color--fbia-black, #1d1d1d);

    font-family: var(
        --wp--preset--font-family--passion-one,
        sans-serif
    );
    font-size: 20px;
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
}

/* Astérisques obligatoires */

#nf-form-2-cont .ninja-forms-req-symbol {
    color: var(--wp--preset--color--fbia-pink, #ea2b8c);
}

/* Champs texte, date, listes et zone de texte */

#nf-form-2-cont input:not(
    [type="submit"],
    [type="radio"],
    [type="checkbox"],
    [type="hidden"]
),
#nf-form-2-cont select,
#nf-form-2-cont textarea {
    width: 100% !important;
    min-height: 54px !important;
    padding: 12px 18px !important;

    color: var(--wp--preset--color--fbia-black, #1d1d1d) !important;
    background-color: var(--wp--preset--color--white, #fff) !important;
    border: 2px solid transparent !important;
    border-radius: 16px !important;
    box-shadow: none !important;

    font-family: var(
        --wp--preset--font-family--open-sans,
        sans-serif
    ) !important;
    font-size: 16px !important;
    line-height: 1.4;

    transition:
        border-color 160ms ease,
        box-shadow 160ms ease,
        background-color 160ms ease;
}

/* Zone de commentaire */

#nf-form-2-cont textarea {
    min-height: 160px !important;
    resize: vertical;
}

/* Focus accessible */

#nf-form-2-cont input:not(
    [type="submit"],
    [type="radio"],
    [type="checkbox"]
):focus,
#nf-form-2-cont select:focus,
#nf-form-2-cont textarea:focus {
    outline: none !important;
    border-color: var(
        --wp--preset--color--fbia-pink,
        #ea2b8c
    ) !important;
    box-shadow: 0 0 0 4px rgba(234, 43, 140, 0.16) !important;
}

/* Radios et cases à cocher */

#nf-form-2-cont .list-radio-wrap ul,
#nf-form-2-cont .list-checkbox-wrap ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;

    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#nf-form-2-cont .list-radio-wrap li,
#nf-form-2-cont .list-checkbox-wrap li {
    display: flex;
    align-items: center;
    gap: 10px;

    margin: 0 !important;
    padding: 13px 16px;

    background-color: var(--wp--preset--color--white, #fff);
    border: 2px solid transparent;
    border-radius: 16px;

    cursor: pointer;
    transition:
        color 160ms ease,
        border-color 160ms ease,
        background-color 160ms ease;
}

#nf-form-2-cont input[type="radio"],
#nf-form-2-cont input[type="checkbox"] {
    flex: 0 0 auto;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;

    accent-color: var(--wp--preset--color--fbia-pink, #ea2b8c);
    cursor: pointer;
}

#nf-form-2-cont .list-radio-wrap li label,
#nf-form-2-cont .list-checkbox-wrap li label {
    flex: 1;
    margin: 0 !important;
    cursor: pointer;
}

/* Option sélectionnée */

#nf-form-2-cont .list-radio-wrap li:has(input:checked),
#nf-form-2-cont .list-checkbox-wrap li:has(input:checked) {
    color: var(--wp--preset--color--white, #fff);
    background-color: var(--wp--preset--color--fbia-pink, #ea2b8c);
    border-color: var(--wp--preset--color--fbia-pink, #ea2b8c);
}

#nf-form-2-cont
.list-radio-wrap
li:has(input:focus-visible),
#nf-form-2-cont
.list-checkbox-wrap
li:has(input:focus-visible) {
    outline: 3px solid rgba(234, 43, 140, 0.25);
    outline-offset: 2px;
}

/* Bouton d’envoi */

#nf-form-2-cont .submit-container {
    margin-top: 12px;
    margin-bottom: 0 !important;
    text-align: center;
}

#nf-form-2-cont input[type="submit"] {
    min-height: 56px;
    padding: 13px 32px !important;

    color: var(--wp--preset--color--white, #fff) !important;
    background-color: var(
        --wp--preset--color--fbia-pink,
        #ea2b8c
    ) !important;
    border: 2px solid var(
        --wp--preset--color--fbia-pink,
        #ea2b8c
    ) !important;
    border-radius: 18px !important;

    font-family: var(
        --wp--preset--font-family--passion-one,
        sans-serif
    ) !important;
    font-size: 22px !important;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;

    cursor: pointer;
    transition:
        color 160ms ease,
        background-color 160ms ease,
        transform 160ms ease;
}

#nf-form-2-cont input[type="submit"]:hover {
    color: var(--wp--preset--color--fbia-pink, #ea2b8c) !important;
    background-color: var(--wp--preset--color--white, #fff) !important;
    transform: translateY(-3px);
}

#nf-form-2-cont input[type="submit"]:focus-visible {
    outline: 4px solid rgba(234, 43, 140, 0.25);
    outline-offset: 3px;
}

/* Erreurs */

#nf-form-2-cont .nf-error-msg,
#nf-form-2-cont .nf-error-wrap {
    color: #b42318 !important;
    font-size: 14px;
}

#nf-form-2-cont .nf-error .ninja-forms-field {
    border-color: #b42318 !important;
}

/* Message de confirmation */

#nf-form-2-cont .nf-response-msg:not(:empty) {
    margin-bottom: 24px;
    padding: 20px 24px;

    color: var(--wp--preset--color--fbia-black, #1d1d1d);
    background-color: var(--wp--preset--color--white, #fff);
    border: 2px solid var(--wp--preset--color--fbia-pink, #ea2b8c);
    border-radius: 20px;
}

/* Responsive */

@media only screen and (max-width: 768px) {
    #nf-form-2-cont {
        padding: 26px 20px;
        border-radius: 28px;
    }

    #nf-form-2-cont nf-fields-wrap {
        grid-template-columns: 1fr;
    }

    #nf-form-2-cont nf-field {
        grid-column: 1 !important;
    }

    #nf-form-2-cont .list-radio-wrap ul,
    #nf-form-2-cont .list-checkbox-wrap ul {
        grid-template-columns: 1fr;
    }
}




/* -----------------------------------------------------------------------------
   10.1 — Options radio et cases à cocher simplifiées
   ----------------------------------------------------------------------------- */

#nf-form-2-cont .list-radio-wrap li,
#nf-form-2-cont .list-checkbox-wrap li,
#nf-form-2-cont .list-radio-wrap li:has(input:checked),
#nf-form-2-cont .list-checkbox-wrap li:has(input:checked) {
    padding: 6px 0 !important;

    color: var(--wp--preset--color--fbia-black, #1d1d1d) !important;
    background-color: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* Contrôles natifs colorés */

#nf-form-2-cont input[type="radio"],
#nf-form-2-cont input[type="checkbox"] {
    appearance: auto !important;
    -webkit-appearance: auto !important;

    flex: 0 0 22px;
    width: 22px !important;
    height: 22px !important;
    margin: 2px 4px 0 0 !important;

    accent-color: var(--wp--preset--color--fbia-pink, #ea2b8c);
}

/* Alignement correct lorsque le texte occupe plusieurs lignes */

#nf-form-2-cont .list-radio-wrap li,
#nf-form-2-cont .list-checkbox-wrap li {
    align-items: flex-start;
}

/* Focus clavier */

#nf-form-2-cont
.list-radio-wrap
li:has(input:focus-visible),
#nf-form-2-cont
.list-checkbox-wrap
li:has(input:focus-visible) {
    outline: 2px solid var(--wp--preset--color--fbia-pink, #ea2b8c);
    outline-offset: 5px;
}










/* =============================================================================
   11. PAGE — CONTACT
   ============================================================================= */




/* -----------------------------------------------------------------------------
   11.1 — Ninja Form n° 1 — Contact
   ----------------------------------------------------------------------------- */

#nf-form-1-cont {
    max-width: 960px;
    margin: 0 auto;
    padding: clamp(28px, 5vw, 56px);

    color: var(--wp--preset--color--fbia-black, #1d1d1d);
    background-color: var(
        --wp--preset--color--fbia-light-grey,
        #f1f1f1
    );
    border-radius: 40px;

    font-family: var(
        --wp--preset--font-family--open-sans,
        sans-serif
    );
}

/* Masque le titre Ninja Forms lorsqu’il est vide */

#nf-form-1-cont .nf-form-title:has(h3:empty) {
    display: none;
}

/* Champs sur deux colonnes */

#nf-form-1-cont nf-fields-wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
}

#nf-form-1-cont nf-field {
    display: block;
    min-width: 0;
}

/* Message et bouton sur toute la largeur */

#nf-form-1-cont nf-field:has(.textarea-container),
#nf-form-1-cont nf-field:has(.submit-container) {
    grid-column: 1 / -1;
}

/* Espacement des champs */

#nf-form-1-cont .nf-field-container {
    margin-bottom: 24px !important;
}

/* Indication des champs obligatoires */

#nf-form-1-cont .nf-form-fields-required {
    margin-bottom: 28px;
    color: #555;
    font-size: 14px;
}

/* Labels */

#nf-form-1-cont .nf-field-label {
    margin-bottom: 8px !important;
}

#nf-form-1-cont .nf-field-label label,
#nf-form-1-cont .nf-field-label .nf-label-span {
    color: var(--wp--preset--color--fbia-black, #1d1d1d);

    font-family: var(
        --wp--preset--font-family--passion-one,
        sans-serif
    );
    font-size: 20px;
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
}

#nf-form-1-cont .ninja-forms-req-symbol {
    color: var(--wp--preset--color--fbia-pink, #ea2b8c);
}

/* Champs */

#nf-form-1-cont input:not(
    [type="submit"],
    [type="hidden"]
),
#nf-form-1-cont select,
#nf-form-1-cont textarea {
    width: 100% !important;
    min-height: 54px !important;
    padding: 12px 18px !important;

    color: var(--wp--preset--color--fbia-black, #1d1d1d) !important;
    background-color: var(--wp--preset--color--white, #fff) !important;
    border: 2px solid transparent !important;
    border-radius: 16px !important;
    box-shadow: none !important;

    font-family: var(
        --wp--preset--font-family--open-sans,
        sans-serif
    ) !important;
    font-size: 16px !important;
    line-height: 1.4;

    transition:
        border-color 160ms ease,
        box-shadow 160ms ease;
}

/* Liste déroulante */

#nf-form-1-cont select {
    cursor: pointer;
}

/* Message */

#nf-form-1-cont textarea {
    min-height: 190px !important;
    resize: vertical;
}

/* Focus */

#nf-form-1-cont input:not([type="submit"]):focus,
#nf-form-1-cont select:focus,
#nf-form-1-cont textarea:focus {
    outline: none !important;
    border-color: var(
        --wp--preset--color--fbia-pink,
        #ea2b8c
    ) !important;
    box-shadow: 0 0 0 4px rgba(234, 43, 140, 0.16) !important;
}

/* Bouton */

#nf-form-1-cont .submit-container {
    margin-top: 12px;
    margin-bottom: 0 !important;
    text-align: center;
}

#nf-form-1-cont input[type="submit"] {
    min-height: 56px;
    padding: 13px 36px !important;

    color: var(--wp--preset--color--white, #fff) !important;
    background-color: var(
        --wp--preset--color--fbia-pink,
        #ea2b8c
    ) !important;
    border: 2px solid var(
        --wp--preset--color--fbia-pink,
        #ea2b8c
    ) !important;
    border-radius: 18px !important;

    font-family: var(
        --wp--preset--font-family--passion-one,
        sans-serif
    ) !important;
    font-size: 22px !important;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;

    cursor: pointer;
    transition:
        color 160ms ease,
        background-color 160ms ease,
        transform 160ms ease;
}

#nf-form-1-cont input[type="submit"]:hover {
    color: var(--wp--preset--color--fbia-pink, #ea2b8c) !important;
    background-color: var(--wp--preset--color--white, #fff) !important;
    transform: translateY(-3px);
}

#nf-form-1-cont input[type="submit"]:focus-visible {
    outline: 4px solid rgba(234, 43, 140, 0.25);
    outline-offset: 3px;
}

/* Erreurs */

#nf-form-1-cont .nf-error-msg,
#nf-form-1-cont .nf-error-wrap {
    color: #b42318 !important;
    font-size: 14px;
}

#nf-form-1-cont .nf-error .ninja-forms-field {
    border-color: #b42318 !important;
}

/* Confirmation */

#nf-form-1-cont .nf-response-msg:not(:empty) {
    margin-bottom: 24px;
    padding: 20px 24px;

    color: var(--wp--preset--color--fbia-black, #1d1d1d);
    background-color: var(--wp--preset--color--white, #fff);
    border: 2px solid var(--wp--preset--color--fbia-pink, #ea2b8c);
    border-radius: 20px;
}

/* Mobile */

@media only screen and (max-width: 768px) {
    #nf-form-1-cont {
        padding: 26px 20px;
        border-radius: 28px;
    }

    #nf-form-1-cont nf-fields-wrap {
        grid-template-columns: 1fr;
    }

    #nf-form-1-cont nf-field {
        grid-column: 1 !important;
    }

    #nf-form-1-cont textarea {
        min-height: 160px !important;
    }
}










/* =============================================================================
   12. PIED DE PAGE
   ============================================================================= */

@media only screen and (max-width: 1400px) {  
}

@media only screen and (max-width: 1024px) { 
    .mobileonly {
        display: block !important;
    }

    .dsktoponly {
        display: none !important;
    }
} 

@media only screen and (max-width: 768px) { 
    .nf-form-cont .one-half,
    .nf-form-cont .three-sixths,
    .nf-form-cont .two-fourths {
        width: 100% !important;
        margin-left: 0 !important;
    }
}

@media only screen and (max-width: 500px) { 
}

@media only screen and (max-width: 400px) { 
}


/* Le bloc noir sert de repère */
.fbia-instagram-band + .wp-block-group.has-fbia-black-background-color {
    position: relative;
}

/* Icônes centrées automatiquement sur la limite bleu/noir */
.fbia-socials {
    position: absolute !important;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 20;
    width: max-content;
    margin: 0 !important;
    padding: 0 !important;
}

/* Nettoyage Gutenberg */
.fbia-socials .wp-block-social-links {
    margin: 0 !important;
    padding: 0 !important;
    gap: clamp(10px, 1.2vw, 16px);
}


.fbia-footer a:not(.wp-block-social-link-anchor) {
    color: #fff !important;
    text-decoration: none !important;
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-size: 0% 1px;
    background-position: 0 100%;
    transition: background-size 0.25s ease;
}

.fbia-footer a:not(.wp-block-social-link-anchor):hover {
    background-size: 100% 1px;
}










/* =============================================================================
   13. CORRECTIF FINAL — MENU MOBILE ET CONTEXTE D’EMPILEMENT
   ============================================================================= */

/*
 * Lorsque le menu est ouvert, tout l’élément de modèle
 * Header doit passer devant le contenu et le Footer.
 */

html.has-modal-open
	.wp-block-template-part:has(.fbia-site-header),
body.has-modal-open
	.wp-block-template-part:has(.fbia-site-header) {
	position: relative !important;
	z-index: 2147483646 !important;

	overflow: visible !important;
	transform: none !important;
	filter: none !important;
	isolation: isolate !important;
}


/*
 * Le groupe principal du Header doit lui aussi
 * laisser sortir l’overlay.
 */

html.has-modal-open .fbia-site-header,
body.has-modal-open .fbia-site-header {
	position: relative !important;
	z-index: 2147483646 !important;

	overflow: visible !important;
	transform: none !important;
	filter: none !important;
}


/*
 * Overlay au niveau maximal.
 */

.wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	inset: 0 !important;
	z-index: 2147483647 !important;

	display: flex !important;

	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
	max-width: none !important;

	margin: 0 !important;
	padding: 0 !important;

	overflow-x: hidden !important;
	overflow-y: auto !important;

	background-color:
		var(--wp--preset--color--fbia-pink) !important;
}


/*
 * L’overlay FBIA remplit toute la fenêtre.
 */

.wp-block-navigation__responsive-container.is-menu-open
	.fbia-mobile-menu {
	position: relative !important;
	z-index: 2 !important;

	width: 100% !important;
	max-width: none !important;
	min-height: 100vh !important;
	min-height: 100dvh !important;

	margin: 0 !important;

	background-color:
		var(--wp--preset--color--fbia-pink) !important;
}


/*
 * Le contenu et le Footer restent derrière le Header
 * pendant l’ouverture.
 */

html.has-modal-open main,
html.has-modal-open footer,
body.has-modal-open main,
body.has-modal-open footer {
	position: relative !important;
	z-index: 0 !important;
}


/*
 * Blocage du défilement de la page arrière.
 */

html.has-modal-open,
body.has-modal-open {
	overflow: hidden !important;
}
