.elementor-kit-10{--e-global-color-primary:#E6267B;--e-global-color-secondary:#119CD3;--e-global-color-text:#38383A;--e-global-color-accent:#FCD26A;--e-global-color-70f2ee9:#06BFB2;--e-global-color-d7a0970:#C5EDF9;--e-global-color-38ce52e:#232325;--e-global-color-3ccc43c:#0071BC;--e-global-color-9feaead:#004B92;--e-global-color-f697b0d:#FFFFFF;--e-global-color-54935df:#F5F5F2;--e-global-color-6f0b921:#00A099;--e-global-color-672661a:#E6287B;--e-global-color-1d35dd5:#FC9732;--e-global-color-736c818:#119CD3;--e-global-color-1395628:#93278F;--e-global-color-78e3dff:#B3B3B3;--e-global-color-9c665db:#666666;--e-global-typography-primary-font-family:"Bitter";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Anek Latin";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Anek Latin";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Bitter";--e-global-typography-accent-font-weight:400;--e-global-typography-accent-font-style:italic;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-10 e-page-transition{background-color:#FFBC7D;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ==========================================================================
   ELEMENTOR PRO v3 — BOILERPLATE SENIOR v1.4
   Auteur : David Matula
   Validé sur Elementor Pro 3.31 — Mai 2026
   
   Sections :
   1.  Design Tokens (variables CSS — source of truth)
   2.  Section & Wrapper (layout primaires)
   3.  Stack & Cluster Patterns (flex containers)
   4.  Cluster Children Sizing (flex enfants)
   5.  Alignment & Justification (utilities flex)
   6.  Spacing Utilities (margin échappatoires)
   7a. Reset & Foundations (HTML base)
   7b. Typography Applications (H1-H6, body, paragraphs)
   7c. Typography Utility Classes (eyebrow, lead, caption, label)
   7d. Media Overflow Safety (img/svg/iframe)
   8.  Accessibility (reduced motion, focus)
   9.  Kill-switches (utilities !important)
   10. Project-Specific Overrides (Francouzský trh)
   
   À AJOUTER EN v1.5 (oubliés ou découverts pendant la session) :
   - Blocs CSS .stand-title et .stand-link
   - Tokens couleurs brand
   - Pattern badge--numbered réutilisable
   - gap: 0 obligatoire pour CSS Grid Elementor
   ========================================================================== */


/* ==========================================================================
   1. DESIGN TOKENS — Source of truth
   ========================================================================== */

:root {

  /* ----- SPACING SCALE (base 8) ----- */
  --space-3xs:  4px;
  --space-2xs:  8px;
  --space-xs:   12px;
  --space-sm:   16px;
  --space-md:   24px;
  --space-lg:   32px;
  --space-xl:   48px;
  --space-2xl:  64px;
  --space-3xl:  96px;
  --space-4xl:  128px;
  --space-5xl:  160px;

  /* ----- LAYOUT ----- */
  --container-max-width:        1200px;
  --container-max-width-wide:   1440px;
  --container-max-width-narrow: 720px;
  --container-px: clamp(1rem, 4vw, 1.5rem); /* 16→24px responsive */

  /* ----- SECTION PADDINGS (fluides via clamp) ----- */
  --section-py-xs: clamp(2rem,  4vw,  3rem);    /* ~32→48px  */
  --section-py-sm: clamp(3rem,  6vw,  4rem);    /* ~48→64px  */
  --section-py-md: clamp(4rem,  8vw,  6rem);    /* ~64→96px  */
  --section-py-lg: clamp(5rem,  10vw, 8rem);    /* ~80→128px */
  --section-py-xl: clamp(6rem,  12vw, 10rem);   /* ~96→160px */

  /* ----- GAPS (sémantiques) ----- */
  --gap-tight:  var(--space-2xs);  /* 8px  — eyebrow+title, icon+label */
  --gap-widget: var(--space-md);   /* 24px — entre widgets distincts */
  --gap-group:  var(--space-lg);   /* 32px — entre sous-groupes */
  --gap-block:  var(--space-2xl);  /* 64px — entre blocs majeurs */

  /* ----- BORDER RADIUS ----- */
  --radius-xs:   4px;
  --radius-sm:   8px;
  --radius-md:   12px;
  --radius-lg:   16px;
  --radius-xl:   24px;
  --radius-2xl:  32px;
  --radius-full: 9999px;

  /* ----- SHADOWS ----- */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.10);
  --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.12);

  /* ----- TRANSITIONS ----- */
  --transition-fast: 150ms ease-out;
  --transition-base: 250ms ease-out;
  --transition-slow: 400ms ease-out;

  /* ----- Z-INDEX SCALE ----- */
  --z-base:     1;
  --z-dropdown: 10;
  --z-sticky:   100;
  --z-overlay:  500;
  --z-modal:    1000;
  --z-toast:    2000;

  /* ----- TYPOGRAPHY — FONT FAMILIES ----- */
  --font-primary:   'Bitter', Georgia, serif;        /* Titres */
  --font-secondary: 'Anek Latin', Arial, sans-serif; /* Body / UI */

  /* ----- TYPOGRAPHY — FONT WEIGHTS ----- */
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  /* ----- TYPOGRAPHY — FONT SIZES (échelle modulaire fixe) ----- */
  --fs-xs:   12px;
  --fs-sm:   14px;
  --fs-base: 16px;
  --fs-md:   18px;
  --fs-lg:   20px;
  --fs-xl:   24px;
  --fs-2xl:  32px;
  --fs-3xl:  40px;
  --fs-4xl:  48px;
  --fs-5xl:  64px;
  --fs-6xl:  80px;

  /* ----- TYPOGRAPHY — FONT SIZES FLUIDES (clamp) pour titres ----- */
  --fs-h1: clamp(2.5rem, 5vw, 4.5rem);     /* 40→72px */
  --fs-h2: clamp(2rem, 4vw, 3rem);          /* 32→48px */
  --fs-h3: clamp(1.5rem, 3vw, 2.25rem);     /* 24→36px */
  --fs-h4: clamp(1.25rem, 2vw, 1.75rem);    /* 20→28px */
  --fs-h5: 1.25rem;                          /* 20px */
  --fs-h6: 1rem;                             /* 16px */

  /* ----- TYPOGRAPHY — LINE HEIGHTS ----- */
  --lh-tight:    1.1;
  --lh-snug:     1.2;
  --lh-normal:   1.5;
  --lh-relaxed:  1.6;
  --lh-loose:    1.8;

  /* ----- TYPOGRAPHY — LETTER SPACING ----- */
  --ls-tight:    -0.02em;
  --ls-normal:   0;
  --ls-wide:     0.05em;
  --ls-wider:    0.1em;
  --ls-widest:   0.15em;
}


/* ==========================================================================
   2. SECTION & WRAPPER (Elementor v3 — vraies custom properties)
   ========================================================================== */

.elementor .section {
  --padding-inline-start: 0;
  --padding-inline-end: 0;
  --padding-left: 0;
  --padding-right: 0;
}

.elementor .section--xs {
  --padding-block-start: var(--section-py-xs);
  --padding-block-end: var(--section-py-xs);
  --padding-top: var(--section-py-xs);
  --padding-bottom: var(--section-py-xs);
}
.elementor .section--sm {
  --padding-block-start: var(--section-py-sm);
  --padding-block-end: var(--section-py-sm);
  --padding-top: var(--section-py-sm);
  --padding-bottom: var(--section-py-sm);
}
.elementor .section--md {
  --padding-block-start: var(--section-py-md);
  --padding-block-end: var(--section-py-md);
  --padding-top: var(--section-py-md);
  --padding-bottom: var(--section-py-md);
}
.elementor .section--lg {
  --padding-block-start: var(--section-py-lg);
  --padding-block-end: var(--section-py-lg);
  --padding-top: var(--section-py-lg);
  --padding-bottom: var(--section-py-lg);
}
.elementor .section--xl {
  --padding-block-start: var(--section-py-xl);
  --padding-block-end: var(--section-py-xl);
  --padding-top: var(--section-py-xl);
  --padding-bottom: var(--section-py-xl);
}

.elementor .section--pt-0 { 
  --padding-block-start: 0; 
  --padding-top: 0; 
}
.elementor .section--pb-0 { 
  --padding-block-end: 0; 
  --padding-bottom: 0; 
}

.elementor .wrapper {
  --content-width: var(--container-max-width);
  --width: 100%;
  --padding-inline-start: var(--container-px);
  --padding-inline-end: var(--container-px);
  --padding-left: var(--container-px);
  --padding-right: var(--container-px);
  --padding-block-start: 0;
  --padding-block-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
}

.elementor .wrapper--narrow { 
  --content-width: var(--container-max-width-narrow); 
  --width: 100%;
}
.elementor .wrapper--wide { 
  --content-width: var(--container-max-width-wide); 
  --width: 100%;
}
.elementor .wrapper--full { 
  --content-width: 100%; 
  --width: 100%;
  --padding-inline-start: 0;
  --padding-inline-end: 0;
  --padding-left: 0;
  --padding-right: 0;
}


/* ==========================================================================
   3. STACK & CLUSTER PATTERNS (Elementor v3 — row-gap / column-gap)
   ========================================================================== */

.elementor .stack-tight,
.elementor .stack-widget,
.elementor .stack-group,
.elementor .stack-block {
  --display: flex;
  --flex-direction: column;
}

.elementor .stack-tight  { --row-gap: var(--gap-tight);  --column-gap: 0; }
.elementor .stack-widget { --row-gap: var(--gap-widget); --column-gap: 0; }
.elementor .stack-group  { --row-gap: var(--gap-group);  --column-gap: 0; }
.elementor .stack-block  { --row-gap: var(--gap-block);  --column-gap: 0; }

.elementor .cluster-tight,
.elementor .cluster-widget,
.elementor .cluster-group,
.elementor .cluster-block {
  --display: flex;
  --flex-direction: row;
  --flex-wrap: wrap;
}

.elementor .cluster-tight  { --row-gap: var(--gap-tight);  --column-gap: var(--gap-tight); }
.elementor .cluster-widget { --row-gap: var(--gap-widget); --column-gap: var(--gap-widget); }
.elementor .cluster-group  { --row-gap: var(--gap-group);  --column-gap: var(--gap-group); }
.elementor .cluster-block  { --row-gap: var(--gap-block);  --column-gap: var(--gap-block); }

@media (max-width: 1024px) {
  .elementor .cluster--responsive {
    --flex-direction: column;
  }

  /* CTA Group : force les boutons Elementor à 100% largeur sur tablette + mobile */
  .elementor .cluster--btn-full .elementor-button-wrapper,
  .elementor .cluster--btn-full .elementor-button {
    width: 100%;
  }
  .elementor .cluster--btn-full .elementor-button {
    justify-content: center;
  }
  
  /* Espacement réduit entre boutons stackés (12px au lieu du 24px du cluster-widget) */
  .elementor .cluster--btn-full {
    --row-gap: var(--space-xs);
    row-gap: var(--space-xs);
  }
  
  
}


/* ==========================================================================
   4. CLUSTER CHILDREN SIZING
   ========================================================================== */

.elementor .cluster-tight  > .e-con,
.elementor .cluster-tight  > .elementor-widget,
.elementor .cluster-widget > .e-con,
.elementor .cluster-widget > .elementor-widget,
.elementor .cluster-group  > .e-con,
.elementor .cluster-group  > .elementor-widget,
.elementor .cluster-block  > .e-con,
.elementor .cluster-block  > .elementor-widget {
  --flex-grow: 1;
  --flex-shrink: 1;
  --flex-basis: 0;
  min-width: 0;
}

.elementor .cluster-tight  > .e-con-inner > .e-con,
.elementor .cluster-tight  > .e-con-inner > .elementor-widget,
.elementor .cluster-widget > .e-con-inner > .e-con,
.elementor .cluster-widget > .e-con-inner > .elementor-widget,
.elementor .cluster-group  > .e-con-inner > .e-con,
.elementor .cluster-group  > .e-con-inner > .elementor-widget,
.elementor .cluster-block  > .e-con-inner > .e-con,
.elementor .cluster-block  > .e-con-inner > .elementor-widget {
  --flex-grow: 1;
  --flex-shrink: 1;
  --flex-basis: 0;
  min-width: 0;
}

.elementor .col-auto { --flex-grow: 0; --flex-shrink: 0; --flex-basis: auto; }
.elementor .col-grow { --flex-grow: 1; --flex-shrink: 1; --flex-basis: 0; }
.elementor .col-1-2  { --flex-grow: 0; --flex-shrink: 0; --flex-basis: calc(50% - var(--column-gap, 0px) / 2); }
.elementor .col-1-3  { --flex-grow: 0; --flex-shrink: 0; --flex-basis: calc(33.333% - var(--column-gap, 0px) * 2 / 3); }
.elementor .col-2-3  { --flex-grow: 0; --flex-shrink: 0; --flex-basis: calc(66.666% - var(--column-gap, 0px) / 3); }
.elementor .col-1-4  { --flex-grow: 0; --flex-shrink: 0; --flex-basis: calc(25% - var(--column-gap, 0px) * 3 / 4); }
.elementor .col-3-4  { --flex-grow: 0; --flex-shrink: 0; --flex-basis: calc(75% - var(--column-gap, 0px) / 4); }

@media (max-width: 1024px) {
  .elementor .cluster-tight.cluster--responsive  > .e-con,
  .elementor .cluster-tight.cluster--responsive  > .elementor-widget,
  .elementor .cluster-widget.cluster--responsive > .e-con,
  .elementor .cluster-widget.cluster--responsive > .elementor-widget,
  .elementor .cluster-group.cluster--responsive  > .e-con,
  .elementor .cluster-group.cluster--responsive  > .elementor-widget,
  .elementor .cluster-block.cluster--responsive  > .e-con,
  .elementor .cluster-block.cluster--responsive  > .elementor-widget,
  .elementor .cluster-tight.cluster--responsive  > .e-con-inner > .e-con,
  .elementor .cluster-tight.cluster--responsive  > .e-con-inner > .elementor-widget,
  .elementor .cluster-widget.cluster--responsive > .e-con-inner > .e-con,
  .elementor .cluster-widget.cluster--responsive > .e-con-inner > .elementor-widget,
  .elementor .cluster-group.cluster--responsive  > .e-con-inner > .e-con,
  .elementor .cluster-group.cluster--responsive  > .e-con-inner > .elementor-widget,
  .elementor .cluster-block.cluster--responsive  > .e-con-inner > .e-con,
  .elementor .cluster-block.cluster--responsive  > .e-con-inner > .elementor-widget {
    --flex-grow: 1 !important;
    --flex-shrink: 1 !important;
    --flex-basis: 100% !important;
  }
}


/* ==========================================================================
   5. ALIGNMENT & JUSTIFICATION
   ========================================================================== */

.elementor .align-start   { --align-items: flex-start; }
.elementor .align-center  { --align-items: center; }
.elementor .align-end     { --align-items: flex-end; }
.elementor .align-stretch { --align-items: stretch; }

.elementor .justify-start    { --justify-content: flex-start; }
.elementor .justify-center   { --justify-content: center; }
.elementor .justify-end      { --justify-content: flex-end; }
.elementor .justify-between  { --justify-content: space-between; }
.elementor .justify-around   { --justify-content: space-around; }

.elementor .align-self-start  { align-self: flex-start; }
.elementor .align-self-center { align-self: center; }
.elementor .align-self-end    { align-self: flex-end; }
.elementor .align-self-stretch { align-self: stretch; }


/* Text alignment utilities (s'applique aussi aux widgets Elementor enfants) */
.elementor .text-left,
.elementor .text-left h1, .elementor .text-left h2, .elementor .text-left h3,
.elementor .text-left h4, .elementor .text-left h5, .elementor .text-left h6,
.elementor .text-left p,
.elementor .text-left .elementor-heading-title,
.elementor .text-left .elementor-text-editor {
  text-align: left;
}

.elementor .text-center,
.elementor .text-center h1, .elementor .text-center h2, .elementor .text-center h3,
.elementor .text-center h4, .elementor .text-center h5, .elementor .text-center h6,
.elementor .text-center p,
.elementor .text-center .elementor-heading-title,
.elementor .text-center .elementor-text-editor {
  text-align: center;
}

.elementor .text-right,
.elementor .text-right h1, .elementor .text-right h2, .elementor .text-right h3,
.elementor .text-right h4, .elementor .text-right h5, .elementor .text-right h6,
.elementor .text-right p,
.elementor .text-right .elementor-heading-title,
.elementor .text-right .elementor-text-editor {
  text-align: right;
}







/* ==========================================================================
   6. SPACING UTILITIES
   ========================================================================== */

.mt-xs { margin-top: var(--space-xs); }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }

.mb-xs { margin-bottom: var(--space-xs); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }


/* ==========================================================================
   7a. RESET & FOUNDATIONS
   ========================================================================== */

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--space-2xl);
}

img {
  max-width: 100%;
  height: auto;
}

.elementor :focus-visible {
  outline: 2px solid var(--e-global-color-primary, currentColor);
  outline-offset: 2px;
  border-radius: var(--radius-xs);
}


/* ==========================================================================
   7b. TYPOGRAPHY APPLICATIONS — Override Theme Style pour H1-H6 + body
   ========================================================================== */

.elementor h1,
.elementor .elementor-widget-heading h1.elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-h1);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  font-weight: var(--fw-bold);
}

.elementor h2,
.elementor .elementor-widget-heading h2.elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-h2);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
  font-weight: var(--fw-bold);
}

.elementor h3,
.elementor .elementor-widget-heading h3.elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-h3);
  line-height: var(--lh-snug);
  font-weight: var(--fw-semibold);
}

.elementor h4,
.elementor .elementor-widget-heading h4.elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-h4);
  line-height: var(--lh-snug);
  font-weight: var(--fw-semibold);
}

.elementor h5,
.elementor .elementor-widget-heading h5.elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-h5);
  line-height: var(--lh-normal);
  font-weight: var(--fw-medium);
}

.elementor h6,
.elementor .elementor-widget-heading h6.elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-h6);
  line-height: var(--lh-normal);
  font-weight: var(--fw-medium);
}

body.elementor-page,
.elementor {
  font-family: var(--font-secondary);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-normal);
}

.elementor p {
  font-family: var(--font-secondary);
  font-size: var(--fs-base);
  line-height: var(--lh-relaxed);
  margin: 0 0 1em 0;
}

.elementor p:last-child {
  margin-bottom: 0;
}

.elementor p a,
.elementor li a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
  transition: opacity 0.2s ease;
}

.elementor p a:hover,
.elementor li a:hover {
  opacity: 0.7;
}

.elementor ul,
.elementor ol {
  font-family: var(--font-secondary);
  font-size: var(--fs-base);
  line-height: var(--lh-relaxed);
  padding-left: 1.5em;
  margin: 0 0 1em 0;
}

.elementor li {
  margin-bottom: 0.25em;
}

.elementor strong,
.elementor b {
  font-weight: var(--fw-semibold);
}


/* ==========================================================================
   7c. TYPOGRAPHY — UTILITY CLASSES
   ========================================================================== */

.elementor .eyebrow,
.elementor .eyebrow p,
.elementor .eyebrow .elementor-heading-title {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  margin: 0;
}

.elementor .eyebrow--muted,
.elementor .eyebrow--muted p,
.elementor .eyebrow--muted .elementor-heading-title {
  opacity: 0.6;
}

.elementor .lead-text,
.elementor .lead-text p {
  font-family: var(--font-secondary);
  font-size: var(--fs-lg);
  font-weight: var(--fw-regular);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-normal);
}

.elementor .caption,
.elementor .caption p {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-regular);
  line-height: var(--lh-normal);
  opacity: 0.7;
  letter-spacing: var(--ls-normal);
}

.elementor .label,
.elementor .label p {
  font-family: var(--font-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}


/* ==========================================================================
   7d. ELEMENTOR MEDIA OVERFLOW SAFETY + IMAGE ALIGNMENT
   ========================================================================== */

.elementor img,
.elementor svg,
.elementor video,
.elementor iframe,
.elementor object,
.elementor embed {
  max-width: 100%;
  height: auto;
}

.elementor .elementor-widget-image,
.elementor .elementor-widget-video,
.elementor .elementor-widget-image-box {
  max-width: 100%;
  overflow: hidden;
}

.elementor .elementor-widget-image > .elementor-widget-container,
.elementor .elementor-widget-image .elementor-image,
.elementor .elementor-widget-image a {
  display: block;
  max-width: 100%;
  overflow: hidden;
}

.elementor .img-align-left,
.elementor .img-align-left .elementor-widget-container {
  text-align: left;
}

.elementor .img-align-left img {
  display: inline-block;
  margin-left: 0;
  margin-right: auto;
}

.elementor .img-align-right,
.elementor .img-align-right .elementor-widget-container {
  text-align: right;
}

.elementor .img-align-right img {
  display: inline-block;
  margin-left: auto;
  margin-right: 0;
}

.elementor .img-align-center,
.elementor .img-align-center .elementor-widget-container {
  text-align: center;
}

.elementor .img-align-center img {
  display: inline-block;
  margin-left: auto;
  margin-right: auto;
}


/* ==========================================================================
   8. ACCESSIBILITY
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* ==========================================================================
   9. KILL-SWITCHES (utilities !important)
   ========================================================================== */

.no-padding   { padding: 0 !important; }
.no-padding-y { padding-block: 0 !important; }
.no-padding-x { padding-inline: 0 !important; }
.no-margin    { margin: 0 !important; }
.no-gap       { gap: 0 !important; }

.full-bleed {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
}

/* Kill padding vertical sur tablette + mobile (utility responsive) */
@media (max-width: 1024px) {
  .elementor .section--py-0-md {
    --padding-block-start: 0;
    --padding-block-end:   0;
    --padding-top:         0;
    --padding-bottom:      0;
    padding-block: 0;
  }
  .elementor .section--pt-0-md {
    --padding-block-start: 0;
    --padding-top:         0;
  }
  .elementor .section--pb-0-md {
    --padding-block-end: 0;
    --padding-bottom:    0;
  }
}



/* Kill padding vertical sur desktop uniquement (laisse le padding sur tablette + mobile) */
@media (min-width: 1025px) {
  .elementor .section--py-0-desktop {
    --padding-block-start: 0;
    --padding-block-end:   0;
    --padding-top:         0;
    --padding-bottom:      0;
    padding-block: 0;
  }
  .elementor .section--pt-0-desktop {
    --padding-block-start: 0;
    --padding-top:         0;
  }
  .elementor .section--pb-0-desktop {
    --padding-block-end: 0;
    --padding-bottom:    0;
  }
}



/* Padding inline sur section parente pour "card section" avec margin externe */
@media (max-width: 1024px) {
  .elementor .section--has-cta {
    --padding-inline-start: var(--container-px);
    --padding-inline-end:   var(--container-px);
    --padding-left:         var(--container-px);
    --padding-right:        var(--container-px);
    padding-inline: var(--container-px);
  }
}

@media (min-width: 1025px) and (max-width: 1366px) {
  .elementor .section--has-cta {
    --padding-inline-start: clamp(var(--space-md), 3vw, var(--space-xl));
    --padding-inline-end:   clamp(var(--space-md), 3vw, var(--space-xl));
    --padding-left:         clamp(var(--space-md), 3vw, var(--space-xl));
    --padding-right:        clamp(var(--space-md), 3vw, var(--space-xl));
    padding-inline: clamp(var(--space-md), 3vw, var(--space-xl));
  }
}




/* ==========================================================================
   10. PROJECT-SPECIFIC OVERRIDES — Francouzský trh
   ========================================================================== */

/* ----- HERO WRAPPER (comportement identique à .wrapper, + margin laptop spécifique)
   - Desktop large (>1366px) : hero = 1200px, espace naturel autour
   - Laptop (1025-1366px) : margin externe pour ne pas coller aux bords
   - Tablette/mobile (≤1024px) : edge-to-edge */
.elementor .wrapper--hero {
  --padding-block-start:  clamp(3rem, 6vw, 5rem);
  --padding-block-end:    clamp(3rem, 6vw, 5rem);
  --padding-top:          clamp(3rem, 6vw, 5rem);
  --padding-bottom:       clamp(3rem, 6vw, 5rem);

  min-height: 600px;

  border-radius: var(--radius-lg);
  overflow: hidden;
}

/* Laptop uniquement : margin externe pour éviter le contact avec les bords du viewport */
@media (min-width: 1025px) and (max-width: 1366px) {
  .elementor .wrapper--hero {
    --margin-inline-start: clamp(var(--space-md), 3vw, var(--space-xl));
    --margin-inline-end:   clamp(var(--space-md), 3vw, var(--space-xl));
    --margin-left:         clamp(var(--space-md), 3vw, var(--space-xl));
    --margin-right:        clamp(var(--space-md), 3vw, var(--space-xl));
    --margin-block-start:  var(--space-md);
    --margin-block-end:    var(--space-md);
    --margin-top:          var(--space-md);
    --margin-bottom:       var(--space-md);
    margin-inline: clamp(var(--space-md), 3vw, var(--space-xl));
    margin-block:  var(--space-md);
  }
}

@media (max-width: 1024px) {
  .elementor .wrapper--hero {
    /* Edge-to-edge sur tablette/mobile */
    min-height: 0;
    border-radius: 0;
  }
}


/* ----- STANDS (section Exposants — Loop Grid) -----
   Couleurs cycliques par position d'affichage (gérée via position_home ACF) */

.elementor .exposants-loop .e-loop-item:nth-of-type(5n + 1) .stand {
  --stand-color: #06BFB2; /* Vert */
}
.elementor .exposants-loop .e-loop-item:nth-of-type(5n + 2) .stand {
  --stand-color: #E6287B; /* Rose */
}
.elementor .exposants-loop .e-loop-item:nth-of-type(5n + 3) .stand {
  --stand-color: #FC9732; /* Orange */
}
.elementor .exposants-loop .e-loop-item:nth-of-type(5n + 4) .stand {
  --stand-color: #119CD3; /* Bleu */
}
.elementor .exposants-loop .e-loop-item:nth-of-type(5n + 5) .stand {
  --stand-color: #93278F; /* Violet */
}

/* Badge "01 STAND" — CSS Grid avec gap: 0 obligatoire pour Elementor 
   Sinon le --row-gap: 20px d'Elementor cascade et mange l'espace du 1fr */
.elementor .stand-badge {
  --flex-grow: 0;
  --flex-shrink: 0;
  --flex-basis: auto;
  
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
  flex-basis: auto !important;
  
  --width: 80px;
  width: 80px !important;
  max-width: 80px !important;
  
  height: 80px !important;
  min-height: 80px !important;
  aspect-ratio: 1 / 1;
  
  align-self: flex-start;
  
  display: grid !important;
  grid-template-rows: 1fr 25px !important;
  
  /* CRITICAL: force aucun gap entre les rows du grid */
  --row-gap: 0 !important;
  --column-gap: 0 !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
  
  background: transparent;
  border: 2px solid var(--stand-color);
  overflow: hidden;
  box-sizing: border-box;
}

/* Numéro — centré dans la cellule 1fr du grid */
.elementor .stand-number {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.elementor .stand-number .elementor-widget-container {
  width: 100%;
  height: 100%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 0 !important;
}

.elementor .stand-number .elementor-heading-title {
  color: var(--stand-color) !important;
  font-family: var(--font-primary);
  font-size: 28px !important;
  font-weight: var(--fw-regular);
  line-height: 1;
  text-align: center;
  margin: 0 !important;
  padding: 0 !important;
}

/* Label "STAND" — fond plein, fixé en bas du badge */
.elementor .stand-label,
.elementor .stand-label .elementor-heading-title {
  color: #FFFFFF !important;
  background: var(--stand-color);
  font-family: var(--font-secondary);
  font-size: 11px !important;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  text-align: center;
  margin: 0 !important;
  padding: 4px 0 !important;
  
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 100%;
}

/* ----- TITRE & LIEN DU STAND (à ajouter en v1.5) ----- */

/* Titre du stand — couleur dynamique selon position d'affichage */
.elementor .stand-title,
.elementor .stand-title .elementor-heading-title,
.elementor .stand-title h1,
.elementor .stand-title h2,
.elementor .stand-title h3,
.elementor .stand-title h4,
.elementor .stand-title h5,
.elementor .stand-title h6 {
  color: var(--stand-color) !important;
  font-family: var(--font-secondary);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
}

/* Lien "> Profil de l'exposant" */
.elementor .stand-link,
.elementor .stand-link a {
  color: var(--stand-color) !important;
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-regular);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}


/* ----- EXPOSANTS SECTION — Backgrounds adaptatifs (Méthode 3, finalisée) -----
   Desktop : gradient horizontal 50/50 sur la section.
   Tablette/mobile : section en transparent, fonds full-bleed portés par les blocs internes.

   Note technique (v1.4.1) : Elementor pose --width: 100% sur tous les e-con.
   Avec une width fixe, les marges négatives ne peuvent plus étendre le bloc
   (elles ne font que le déplacer). Conséquence : margin-right négatif est
   visuellement ignoré → liseré blanc à droite. Le fix override --width à 100vw
   et utilise position: relative + left: 50% + margin-left: -50vw pour un
   full-bleed robuste, indépendant de la nesting Elementor. */

/* Desktop : gradient horizontal classique sur la section */
.elementor .exposants-section {
  background: linear-gradient(
    to right,
    #06BFB2 50%,
    #FFFFFF 50%
  );
}

/* Tablette + Mobile : supprime le gradient, met les fonds sur les blocs internes */
@media (max-width: 1024px) {
  .elementor .exposants-section {
    background: transparent !important;

    /* Kill section--md vertical padding sur tablette : les blocs full-bleed
       doivent toucher les sections voisines, sans bande blanche au-dessus/au-dessous.
       Le respiration verticale est portée par les blocs internes (padding 48px). */
    --padding-block-start: 0 !important;
    --padding-block-end: 0 !important;
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
  }

  .elementor .exposants-left,
  .elementor .exposants-right {
    /* Force full viewport width — override Elementor --width: 100% */
    --width: 100vw;
    width: 100vw !important;
    max-width: 100vw !important;

    /* Full-bleed robuste : positionnement depuis le centre du viewport,
       indépendant de la largeur exacte du parent Elementor */
    position: relative;
    left: 50%;
    margin-left: -50vw;
    margin-right: 0;

    /* Contenu aligné sur la même grille que le wrapper boxed */
    padding-left: var(--container-px);
    padding-right: var(--container-px);
    padding-top: var(--space-xl);
    padding-bottom: var(--space-xl);
  }

  .elementor .exposants-left  { background: #06BFB2; }
  .elementor .exposants-right { background: #FFFFFF; }
}






/* ----- PROGRAMME CARD (planning par jour) ----- */

.elementor .programme-card {
  background: #F5F5F2;
  border-radius: 12px;
  overflow: hidden;
}

/* Header dark bar */
.elementor .programme-header {
  background: #1A1A1A;
  padding: 16px 24px;
}

.elementor .programme-header .elementor-heading-title {
  color: #FFFFFF !important;
  margin: 0;
}

/* Row d'un créneau */
.elementor .programme-row {
  padding: 16px 24px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.elementor .programme-row:last-child {
  border-bottom: none;
}

/* Time column (gauche) — width fixe */
.elementor .programme-time {
  --flex-grow: 0 !important;
  --flex-shrink: 0 !important;
  --flex-basis: 100px !important;
  flex: 0 0 100px !important;
  border-right: 1px solid rgba(0, 0, 0, 0.15);
  padding-right: 24px;
  margin-right: 24px;
}

.elementor .programme-time .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: #E6267B !important;  /* Rose brand, comme dans ton screenshot original */
  margin: 0;
}

/* Content column (centre) — flex-grow pour prendre l'espace dispo */
.elementor .programme-content {
  --flex-grow: 1 !important;
  --flex-shrink: 1 !important;
  --flex-basis: 0 !important;
  flex: 1 1 0 !important;
  min-width: 0;
}

.elementor .programme-content .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: #1A1A1A !important;
  margin: 0;
}

.elementor .programme-content .elementor-text-editor p,
.elementor .programme-content p {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  color: #666666 !important;
  margin: 4px 0 0 0;
}

/* Action column (droite) — width auto, ne wrap pas */
.elementor .programme-action {
  --flex-grow: 0 !important;
  --flex-shrink: 0 !important;
  --flex-basis: auto !important;
  flex: 0 0 auto !important;
  width: auto !important;
}

/* Bouton "Detail" outlined */
.elementor .programme-action .elementor-button {
  background: transparent !important;
  color: #1A1A1A !important;
  border: 1px solid #1A1A1A !important;
  border-radius: 4px !important;
  padding: 8px 24px !important;
  font-family: var(--font-secondary);
  font-weight: 500;
  font-size: var(--fs-sm);
  transition: all 0.2s ease;
}

.elementor .programme-action .elementor-button:hover {
  background: #1A1A1A !important;
  color: #FFFFFF !important;
}

/* Responsive : stack vertical sur tablette/mobile */
@media (max-width: 768px) {
  .elementor .programme-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px;
  }
  
  .elementor .programme-time {
    border-right: none;
    padding-right: 0;
    margin-right: 0;
    flex-basis: auto !important;
  }
  
  .elementor .programme-action {
    width: 100% !important;
  }
  
  .elementor .programme-action .elementor-button {
    width: 100% !important;
    text-align: center;
  }
}



/* ----- HOURS TABLE (réutilise .programme-card et .programme-row, ajoute hours-*) ----- */

/* Header de hours card — 3 colonnes alignées avec les rows */
.elementor .programme-header.programme-header--hours {
  background: #1A1A1A;
}

.elementor .programme-header--hours .elementor-heading-title {
  font-family: var(--font-secondary);
  font-weight: 700;
  font-size: var(--fs-sm);
  color: #FFFFFF !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0;
}

/* Day name (gauche, grow) */
.elementor .hours-day {
  --flex-grow: 1 !important;
  --flex-shrink: 1 !important;
  --flex-basis: 0 !important;
  flex: 1 1 0 !important;
  min-width: 0;
}

.elementor .hours-day .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-base);
  font-weight: 700;
  color: #1A1A1A !important;
  margin: 0;
}

/* Open / Close time columns (fixed width) */
.elementor .hours-time {
  --flex-grow: 0 !important;
  --flex-shrink: 0 !important;
  --flex-basis: 120px !important;
  flex: 0 0 120px !important;
}

.elementor .hours-time .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-base);
  font-weight: 700;
  color: #E6267B !important;  /* rose comme les heures du programme */
  margin: 0;
}

/* Sur mobile, on garde le row layout mais on resserre */
@media (max-width: 600px) {
  .elementor .hours-time {
    --flex-basis: 80px !important;
    flex: 0 0 80px !important;
  }
  .elementor .hours-time .elementor-heading-title {
    font-size: var(--fs-sm);
  }
}









/* ----- CTA FINAL (card rose boxed avec margin externe partout) ----- */

.elementor .cta-pink {
  background: #E6267B;
  border-radius: var(--radius-lg);
  overflow: hidden;

  --padding-block-start: clamp(3rem, 6vw, 5rem);
  --padding-block-end:   clamp(3rem, 6vw, 5rem);
  --padding-top:         clamp(3rem, 6vw, 5rem);
  --padding-bottom:      clamp(3rem, 6vw, 5rem);
}

/* Texte en blanc */
.elementor .cta-pink .elementor-heading-title,
.elementor .cta-pink p {
  color: #FFFFFF !important;
}

.elementor .cta-pink p {
  opacity: 0.9;
}

/* Bouton primaire — fond blanc */
.elementor .cta-pink .btn-cta-primary .elementor-button {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 16px 32px !important;
  font-weight: 600;
  font-size: var(--fs-base);
  transition: all 0.2s ease;
}

.elementor .cta-pink .btn-cta-primary .elementor-button:hover {
  background: #FCD26A !important;
  color: #1A1A1A !important;
}

/* Bouton secondaire — outline blanc */
.elementor .cta-pink .btn-cta-outline .elementor-button {
  background: transparent !important;
  color: #FFFFFF !important;
  border: 1.5px solid #FFFFFF !important;
  border-radius: 0 !important;
  padding: 16px 32px !important;
  font-weight: 600;
  font-size: var(--fs-base);
  transition: all 0.2s ease;
}

.elementor .cta-pink .btn-cta-outline .elementor-button:hover {
  background: #FFFFFF !important;
  color: #E6267B !important;
}

/* Boutons full-width sur tablette + mobile (responsive) */
@media (max-width: 1024px) {
  .elementor .cta-pink .cluster-tight {
    width: 100%;
  }
  .elementor .cta-pink .btn-cta-primary .elementor-button,
  .elementor .cta-pink .btn-cta-outline .elementor-button {
    width: 100%;
    text-align: center;
  }
}




/* ----- TAXONOMY FILTER (style buttons outlined) ----- */
.elementor .filter-exposants .e-filter-item {
  background: transparent;
  border: 1px solid #1A1A1A;
  color: #1A1A1A;
  padding: 12px 20px;
  border-radius: 4px;
  font-weight: 500;
  font-size: var(--fs-sm);
  cursor: pointer;
  transition: all 0.2s ease;
}

.elementor .filter-exposants .e-filter-item:hover {
  background: #1A1A1A;
  color: #FFFFFF;
}

/* État actif (bouton sélectionné) */
.elementor .filter-exposants .e-filter-item.e-filter-active,
.elementor .filter-exposants .e-filter-item[aria-pressed="true"] {
  background: #1A1A1A;
  color: #FFFFFF;
}

/* Gap entre les buttons */
.elementor .filter-exposants .e-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}



/* ----- TRANSPORT ACCESS SECTION ----- */

/* Section header avec divider */
.elementor .access-header {
  border-bottom: 1px solid #1A1A1A;
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-lg);
}

/* Item (rangée avec badge + contenu) */
.elementor .access-item {
  --align-items: flex-start;
  padding: var(--space-md) 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  gap: var(--space-md);
}

.elementor .access-item:last-child {
  border-bottom: none;
}

/* Badge gris carré (TRAM, METRO, P, PĚŠKY) */
.elementor .access-badge {
  --flex-grow: 0;
  --flex-shrink: 0;
  --flex-basis: 60px;
  flex: 0 0 60px;
  width: 60px;
  height: 60px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-secondary);
  font-size: 11px;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-align: center;
}

/* Contenu à droite du badge */
.elementor .access-content {
  --flex-grow: 1;
  --flex-shrink: 1;
  --flex-basis: 0;
  flex: 1 1 0;
  min-width: 0;
}

.elementor .access-content .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-md);
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 4px 0;
}

.elementor .access-content p {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  color: #666666;
  margin: 0;
  line-height: 1.5;
}

/* Tip callout (encadré "💡 Tip:") */
.elementor .tip-callout {
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  padding: var(--space-md) var(--space-lg);
  border-radius: 4px;
  margin-top: var(--space-md);
}

.elementor .tip-callout p {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: #1A1A1A;
}

.elementor .tip-callout strong {
  font-weight: 700;
}

/* Responsive : sur tablette/mobile, items en column si nécessaire */
@media (max-width: 600px) {
  .elementor .access-item {
    --flex-direction: column;
    flex-direction: column;
    --align-items: flex-start;
  }
  .elementor .access-badge {
    margin-bottom: var(--space-xs);
  }
}



/* ----- CONTACT SECTION ----- */

/* Info card gauche */
.elementor .contact-info-card {
  background: #F5F5F2;
  padding: var(--space-lg);
  border-radius: var(--radius-sm);
}

.elementor .contact-info-card > .elementor-element:first-child .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-lg);
  font-weight: 700;
  margin-bottom: var(--space-md);
}

.elementor .contact-info-card p {
  margin: 0 0 var(--space-sm) 0;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: #1A1A1A;
}



/* Form Elementor Pro */
.elementor .contact-form .elementor-field-label {
  font-family: var(--font-secondary);
  font-weight: 700;
  font-size: var(--fs-sm);
  margin-bottom: var(--space-2xs);
  color: #1A1A1A;
}

.elementor .contact-form .elementor-field {
  border: 1px solid #1A1A1A !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  font-family: var(--font-secondary) !important;
  font-size: var(--fs-sm) !important;
  background: #FFFFFF !important;
}

.elementor .contact-form .elementor-field:focus {
  outline: 2px solid #E6267B;
  outline-offset: 2px;
}

/* Submit button */
.elementor .contact-form .elementor-button[type="submit"] {
  background: #1A1A1A !important;
  color: #FFFFFF !important;
  width: 100% !important;
  padding: 16px 24px !important;
  font-weight: 600 !important;
  font-size: var(--fs-base) !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer;
  transition: background 0.2s ease;
}

.elementor .contact-form .elementor-button[type="submit"]:hover {
  background: #E6267B !important;
}

/* Disclaimer */
.elementor .form-disclaimer p {
  font-size: var(--fs-xs);
  color: #666666;
  margin: 0;
}

.elementor .form-disclaimer a {
  color: #666666;
  text-decoration: underline;
}




/* ----- DATES & HOURS SECTION ----- */

/* Date card hero (big highlight box) */
.elementor .date-card {
  border: 2px solid #1A1A1A;
  border-radius: var(--radius-md);
  padding: clamp(var(--space-lg), 4vw, var(--space-2xl));
  text-align: center;
  background: transparent;
}

.elementor .date-card .date-main .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: clamp(3rem, 8vw, 5rem);
  font-weight: 700;
  color: #1A1A1A;
  line-height: 1;
  margin: 0;
}

.elementor .date-card .date-year .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-2xl);
  font-weight: 400;
  color: #999999;
  margin: var(--space-2xs) 0 var(--space-md) 0;
}

.elementor .date-card .date-subtitle p {
  font-family: var(--font-secondary);
  font-size: var(--fs-md);
  color: #666666;
  margin: 0;
}

/* Hours table */
.elementor .hours-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-secondary);
}

.elementor .hours-table thead {
  background: #1A1A1A;
  color: #FFFFFF;
}

.elementor .hours-table th {
  padding: var(--space-md) var(--space-lg);
  text-align: left;
  font-weight: 600;
  font-size: var(--fs-sm);
}

.elementor .hours-table td {
  padding: var(--space-md) var(--space-lg);
  font-size: var(--fs-base);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  background: #F5F5F2;
}

.elementor .hours-table tr:last-child td {
  border-bottom: none;
}

.elementor .hours-table td:first-child {
  font-weight: 700;
}

/* Calendar buttons (outlined) */
.elementor .calendar-buttons .elementor-button {
  background: transparent !important;
  border: 1px solid #1A1A1A !important;
  color: #1A1A1A !important;
  padding: 14px 20px !important;
  border-radius: 0 !important;
  font-weight: 500;
  font-size: var(--fs-sm);
  transition: all 0.2s ease;
}

.elementor .calendar-buttons .elementor-button:hover {
  background: #1A1A1A !important;
  color: #FFFFFF !important;
}

/* Share block (light gray container) */
.elementor .share-block {
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  padding: var(--space-md) var(--space-lg);
  border-radius: 4px;
  margin-top: var(--space-md);
}

.elementor .share-block .share-label .elementor-heading-title {
  font-family: var(--font-secondary);
  font-weight: 700;
  font-size: var(--fs-base);
  margin: 0 0 var(--space-sm) 0;
}

.elementor .share-block .elementor-button {
  background: transparent !important;
  border: 1px solid #E5E5E5 !important;
  color: #1A1A1A !important;
  padding: 8px 16px !important;
  border-radius: 4px !important;
  font-size: var(--fs-sm);
  font-weight: 500;
}

.elementor .share-block .elementor-button:hover {
  border-color: #1A1A1A !important;
  background: #F5F5F2 !important;
}

/* Footnote */
.elementor .footnote p {
  font-size: var(--fs-xs);
  color: #999;
  font-style: italic;
  margin: var(--space-sm) 0 0 0;
}



/* ----- DATES & HOURS SECTION ----- */

/* Date card hero (big highlight box) */
.elementor .date-card {
  border: 2px solid #1A1A1A;
  border-radius: var(--radius-md);
  padding: clamp(var(--space-lg), 4vw, var(--space-2xl));
  text-align: center;
  background: transparent;
}

.elementor .date-card .date-main .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: clamp(3rem, 8vw, 5rem);
  font-weight: 700;
  color: #1A1A1A;
  line-height: 1;
  margin: 0;
}

.elementor .date-card .date-year .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-2xl);
  font-weight: 400;
  color: #999999;
  margin: var(--space-2xs) 0 var(--space-md) 0;
}

.elementor .date-card .date-subtitle p {
  font-family: var(--font-secondary);
  font-size: var(--fs-md);
  color: #666666;
  margin: 0;
}

/* Hours table */
.elementor .hours-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-secondary);
}

.elementor .hours-table thead {
  background: #1A1A1A;
  color: #FFFFFF;
}

.elementor .hours-table th {
  padding: var(--space-md) var(--space-lg);
  text-align: left;
  font-weight: 600;
  font-size: var(--fs-sm);
}

.elementor .hours-table td {
  padding: var(--space-md) var(--space-lg);
  font-size: var(--fs-base);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  background: #F5F5F2;
}

.elementor .hours-table tr:last-child td {
  border-bottom: none;
}

.elementor .hours-table td:first-child {
  font-weight: 700;
}

/* Calendar buttons (outlined) */
.elementor .calendar-buttons .elementor-button {
  background: transparent !important;
  border: 1px solid #1A1A1A !important;
  color: #1A1A1A !important;
  padding: 14px 20px !important;
  border-radius: 0 !important;
  font-weight: 500;
  font-size: var(--fs-sm);
  transition: all 0.2s ease;
}

.elementor .calendar-buttons .elementor-button:hover {
  background: #1A1A1A !important;
  color: #FFFFFF !important;
}

/* Share block (light gray container) */
.elementor .share-block {
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  padding: var(--space-md) var(--space-lg);
  border-radius: 4px;
  margin-top: var(--space-md);
}

.elementor .share-block .share-label .elementor-heading-title {
  font-family: var(--font-secondary);
  font-weight: 700;
  font-size: var(--fs-base);
  margin: 0 0 var(--space-sm) 0;
}

.elementor .share-block .elementor-button {
  background: transparent !important;
  border: 1px solid #E5E5E5 !important;
  color: #1A1A1A !important;
  padding: 8px 16px !important;
  border-radius: 4px !important;
  font-size: var(--fs-sm);
  font-weight: 500;
}

.elementor .share-block .elementor-button:hover {
  border-color: #1A1A1A !important;
  background: #F5F5F2 !important;
}

/* Footnote */
.elementor .footnote p {
  font-size: var(--fs-xs);
  color: #999;
  font-style: italic;
  margin: var(--space-sm) 0 0 0;
}



/* ==========================================================================
   ARTIST FEATURED — 2 sections distinctes
   ========================================================================== */

/* ----- Section 1 : image hero full-width ----- */
.elementor .artist-hero {
  position: relative;
  width: 100%;
}

.elementor .artist-hero img {
  display: block;
  width: 100%;
  height: auto;
}

.elementor .artist-badge {
  position: absolute;
  bottom: 0;
  right: 0;
  background: #1A1A1A;
  color: #FFFFFF;
  padding: 8px 16px;
  font-family: var(--font-secondary);
  font-weight: 700;
  font-size: var(--fs-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  z-index: 2;
}

/* ----- Section 2 : content 2-cols dans wrapper boxed gris ----- */

/* Padding-block géré automatiquement par .section--md (token --section-py-md responsive 64→96) */

/* Wrapper interne : fond gris + layout 2 cols 40/60 */
.elementor .artist-content .wrapper {
  background: #F5F5F2;
  padding-block: var(--section-py-md);  /* 64→96px responsive, à l'intérieur du wrapper */
  --flex-direction: row;
  --flex-wrap: nowrap;
  --gap: var(--space-xl);
}

.elementor .artist-quote {
  flex: 0 1 40% !important;
  min-width: 0;
}

.elementor .artist-interview {
  flex: 0 1 60% !important;
  min-width: 0;
}


/* ----- Typographie quote ----- */
.elementor .artist-quote .elementor-heading-title {
  font-family: var(--font-primary);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: #119CD3;
  margin: 0 0 var(--space-md) 0;
}

.elementor .artist-quote p {
  font-family: var(--font-primary);
  font-size: var(--fs-md);
  font-style: italic;
  line-height: 1.6;
  color: #1A1A1A;
  margin: 0;
}

/* ----- Typographie interview ----- */
.elementor .artist-interview .elementor-heading-title {
  font-family: var(--font-secondary);
  font-size: var(--fs-base);
  font-weight: 700;
  color: #119CD3;
  margin: 0 0 var(--space-2xs) 0;
}

.elementor .artist-interview p {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: #1A1A1A;
  margin: 0 0 var(--space-md) 0;
}

.elementor .artist-interview .elementor-button {
  background: transparent !important;
  border: 1px solid #1A1A1A !important;
  color: #1A1A1A !important;
  border-radius: 0 !important;
  padding: 8px 16px !important;
  font-size: var(--fs-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  align-self: flex-end;
  margin-top: var(--space-sm);
}

/* ----- Responsive ≤ 1024px ----- */
@media (max-width: 1024px) {
  .elementor .artist-content .wrapper {
    --flex-direction: column;
    --flex-wrap: wrap;
  }
  .elementor .artist-quote,
  .elementor .artist-interview {
    flex: 0 1 100% !important;
  }
}






/* ==========================================================================
   HEADER GLOBAL — Francouzský trh
   ========================================================================== */

/* Section header — fond blanc, statique */
.elementor .header-section {
  background: #FFFFFF;
  padding-block: var(--space-md);
}

/* ----- DESKTOP ----- */

/* Top nav — menu centré avec séparateurs "|" */
.elementor .header-nav .elementor-nav-menu {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
}

.elementor .header-nav .elementor-nav-menu li {
  position: relative;
}

/* Séparateur pipe entre items (sauf le dernier) */
.elementor .header-nav .elementor-nav-menu li:not(:last-child)::after {
  content: "|";
  display: inline-block;
  margin: 0 var(--space-sm);
  color: #CCCCCC;
  font-weight: 400;
}

.elementor .header-nav .elementor-nav-menu a {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
  color: #999999 !important;
  text-decoration: none;
  padding: var(--space-2xs) 0;
  transition: color var(--transition-fast);
}

/* Item actif (page courante) + hover */
.elementor .header-nav .elementor-nav-menu .current-menu-item > a,
.elementor .header-nav .elementor-nav-menu a:hover {
  color: #1A1A1A !important;
}

/* Logo central — l'image SVG fait tout (fanions + texte + cœur) */
.elementor .header-logo {
  text-align: center;
}

.elementor .header-logo img {
  display: inline-block;
  max-width: 100%;
  height: auto;
}

/* Décoration : ligne bleue — tagline — ligne rose */
/* Les 2 lignes : grow + comportement flex */
.elementor .header-line-blue,
.elementor .header-line-pink {
  --flex-grow: 1;
  --flex-shrink: 1;
  --flex-basis: 0;
  flex: 1 1 0;
}

/* Ligne bleue : couleur + épaisseur 4px */
.elementor .header-line-blue .elementor-divider-separator {
  border-top-color: #119CD3 !important;
  border-top-width: 2px !important;
  border-top-style: solid !important;
}

/* Ligne rose : couleur + épaisseur 4px */
.elementor .header-line-pink .elementor-divider-separator {
  border-top-color: #E6267B !important;
  border-top-width: 2px !important;
  border-top-style: solid !important;
}


/* Tagline centrale entre les 2 lignes */
.elementor .header-tagline {
  --flex-grow: 0;
  --flex-shrink: 0;
  --flex-basis: auto;
  flex: 0 0 auto;
  padding-inline: var(--space-md);
}

.elementor .header-tagline .elementor-heading-title {
  font-family: var(--font-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: #1A1A1A;
  margin: 0;
  white-space: nowrap;
}

/* ----- MOBILE ----- */

.elementor .header-mobile {
  --flex-direction: row;
  --justify-content: space-between;
  --align-items: center;
  --flex-wrap: nowrap;
  --padding-inline-start: var(--container-px);
  --padding-inline-end: var(--container-px);
  --padding-left: var(--container-px);
  --padding-right: var(--container-px);
}

/* Tous les enfants : taille naturelle, pas d'étirement */
.elementor .header-mobile > * {
  --flex-grow: 0;
  --flex-shrink: 0;
  --flex-basis: auto;
  flex: 0 0 auto;
}

/* Logo mobile : largeur max contrôlée */
.elementor .header-mobile .header-logo-mobile {
  max-width: 180px;
}

.elementor .header-mobile .header-logo-mobile img {
  width: 100%;
  height: auto;
  display: block;
}

/* Burger : icône agrandie */
.elementor .header-mobile .header-burger .elementor-icon,
.elementor .header-mobile .header-burger svg,
.elementor .header-mobile .header-burger i {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: #1A1A1A;
}


/* Classes utility pour stands codés en dur (page provisoire) */
.elementor .stand--vert    { --stand-color: #06BFB2; }
.elementor .stand--rose    { --stand-color: #E6287B; }
.elementor .stand--orange  { --stand-color: #FC9732; }
.elementor .stand--bleu    { --stand-color: #119CD3; }
.elementor .stand--violet  { --stand-color: #93278F; }





.elementor .cluster-tight > .elementor-widget-image,
.elementor .cluster-widget > .elementor-widget-image,
.elementor .cluster-group > .elementor-widget-image {
  --flex-grow: 0;
  --flex-shrink: 0;
  --flex-basis: auto;
}/* End custom CSS */